3A认证方式
- 验明正身(Authentication):
- 账户密码一一对应
- 生物特征
- 短信验证
- 授权(Authorization):什么拥护有什么样的权限
- 审计(Accounting):什么用户做了什么操作,导致什么后果
用户账号和组账号的概述
用户账号的种类
- 超级用户(超级管理员):拥有最高权限的账户,可正常登录,给人使用(默认叫root)
- 普通用户:权限受限用户,可正常登录,给人使用
- 程序用户:不可正常登录,只给程序使用
系统启动时,没有登录用户,但又需要部分程序运行。程序用户专门给程序使用,无需登录,直接启动程序。 不登录人使用的用户,只运行一些程序用户,只给运行的程序分配程序用户。
w命令查看当前登录用户
组的种类
- 基本组:一个用户一定要有一个基本组,且只有一个
- 附加组:一个用户可以没有附加组,一个用户可以有多个附加组
如何分别基本组和附加组?
基本组:创建用户的时候系统会同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。
附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。
一个用户可以属于多个附加组。但是一个用户只能有一个基本组。(上图abc为基本组,root为附加组)
uid和gid
- uid:系统用来识别用户的唯一身份标识(只能是整数,不能重复)
- gid:系统用来识别组的唯一身份标识
centos7中uid的范围
- 超级管理员:uid为 0
- 程序用户uid 范围 :1-999
- 普通用户uid 范围 :1000 - 60000
- (centos6中,程序用户uid范围:1-499,普通用户uid范围:500-60000)
root 一定是超级管理员么?
叫root的不一定是超级管理员,分别是否为超级管理员,查看uid是否为0。
id+用户名命令可查看uid、gid、组。
修改uid 的范围(了解即可)
[root@localhost data]#vim /etc/login.defs
重要文件及命令
/etc/passwd 存放用户信息
保存用户名称、宿主目录、登录shell等基本信息。
- 第一字段:用户名
- 第二字段:密码占位符
- 第三字段:uid
- 第四字段:组id
- 第五字段:备注信息
- 第六字段:家目录位置
- 第七字段:默认shell程序
/etc/shadow 存放密码信息
保护用户的密码、账号有效期等信息。
- 第一字段:用户名
- 第二字段:加密后的密码,如果为 * 或!!,无法登录。
- 第三字段:上一次修改密码时间,数字的含义为:从1970-1-1到改密码的时间,一共经历多少天。
- 第四字段:最小修改密码间隔时间。如果是0,可以随意修改,7代表7天后才可以修改。
- 第五字段:密码有效期。默认99999天,即273年,设置为7则代表7天要求你重新设置密码。
- 第六字段:密码到期提醒时间。设置为7,代表密码到期前7天会提示。
- 第七字段:密码过期后的宽限天数。设置为10,表示密码到期后还可以使用10天。
- 第八字段:用户失效时间。同第3个字段一样,使用自1970-1-1以来的总天数作为账户的失效时间,到期后无法登录。
- 第九字段:保留字段
使用date -d可计算除具体日期。
useradd 添加用户
用法:useradd [选项].... 用户名
| 选项 | 作用 | |
|---|---|---|
| -u | 指定uid | |
| -g | 指定基本组(组名和gid都可以) | |
| -G | 指定附加组(组名和gid都可以) | |
| -d | 指定家目录 | |
| -M | 不建立家目录 | * |
| -s | 指定默认登录shell | * |
| -e | 指定用户失效时间,可使用 YYYY-MM-DD 的日期格式 | |
| -r | 建立系统用户 |
- -g 指定基本组
- -d 指定家目录
- -M 不建立家目录
- -s 指定默认登录shell
当建立用户时不加选项
- 会按顺序使用uid号
- 会建立一个 和用户名同名的基本组
- 按顺序使用gid
- 会在/home 建立一个和用户名同名的家目录
- 会将用户信息保存在 /etc/passwd 文件中
passwd 修改密码
作用:改密码,交互
用法:passwd 用户名(不指定用户名,修改当前用户的密码)
| 选项 | 作用 |
|---|---|
| -l | 锁定用户,不让登录 |
| -u | 解锁 |
| -d | 清空密码,无需使用密码直接登录 |
| -S | 查看锁定状态 |
usermod 修改已有用户账号的属性
用法:usermod [选项].... 用户名 在passwd中,锁定用户是小写l;在usermod中,锁定用户是大写L。
| 选项 | 作用 |
|---|---|
| -l | 修改用户登录名 |
| -L | 锁定用户 |
| -U | 解锁用户 |
| -u | 指定uid |
| -d | 指定家目录 |
| -e | 指定用户失效时间,可使用 YYYY-MM-DD 的日期格式 |
| -g | 指定基本组(组名和gid都可以) |
| -G | 指定附加组(组名和gid都可以) |
| -s | 指定默认登录shell |
usermod的使用
userdel 删除用户
-r 连家目录一起删除
用户账号初始配置文件
新建用户账号时,从/etc/skel目录中复制而来。
主要的用户初始配置文件
- ~/.bash_profile
- ~/.bashrc
- ~/.bash_logout
组账号文件
与用户账号文件类似
- /etc/group 保存组账号基本信息
- /etc/gshadow 保存组账号密码信息
- groupadd 添加组账号
- groupdel 删除组账号
finger 查询账号信息(需安装)
用法:finger [用户名]
- 查询用户账号的详细信息
- 需要安装
w、who、users、finger的区别
- w指令作用:显示当前登录到该台的所有在线用户,以及他们在干什么
- who指令作用:显示当前登录到该台主机的所有在线用户
- user命令作用:显示当前登录到这台主机的所有在线用户
- finger指令作用:显示系统中用户信息
文件/目录的权限和归属
访问权限
- 读取r:允许查看文件内容、显示目录列表
- 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x:允许运行程序、切换目录
归属(所有权)
- 属主:拥有该文件或目录的用户帐号
- 属组:拥有该文件或目录的组帐号
- rw-(前三位):文件的主人,属主
- r--(中间三位):文件所属的组,属组
- r--(后三位):其他人
- 前一个root属主,后一个属组
注意:
- 文件夹的最小权限是x,一定要带上否则无法进行任何操作,超级管理员不受影响。
- 删除一个文件和所在文件夹权限有关和自身没关系,注意超级管理员不受影响。
八进制标识权限
| r | w | x | 数字表示 |
|---|---|---|---|
| 1 | 0 | 0 | 4 |
| 0 | 1 | 0 | 2 |
| 0 | 0 | 1 | 1 |
| 7 |
chmod 设置文件和目录的权限
chmod [ugoa] [+-=] [rwx] 文件或目录
或
chmod nnn 文件或目录
解析:
- u表示属主,g表示属组,o表示其他用户,a表示所有用户。
- +表示增加权限,-表示去除权限,=表示设置权限。
- nnn表示三位八进制数表示的权限
常用选项:
-R:递归修改指定目录下所有子项的权限
chown 设置文件和目录的归属
- chown 属主文件或目录
- chown :属组文件或目录
- chown 属主:属组文件或目录
常用选项:
-R:递归修改指定目录下所有文件、子目录的归属
umask 权限掩码
umask作用
- 控制新建的文件或者目录的权限
- 默认权限去除umask的权限为新建的文件或者目录的权限
umask设置:umask 022
(反掩码:普通文件最高权限666,由6减对应位的数;目录最高权限777,由7减对应位的数)
注意:普通文件落地的时候,权限不可能有奇数,如果减过后有奇数+1。
umask查看:umask
三种特殊权限
suid
此处s表示当使用这个命令程序时,把当前用户当成文件的所属主。
[root@localhost aa]#chmod u+s /usr/bin/vim
表示给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件。(不建议尝试)
sgid
[root@1ocalhost aa]#chmod g+s /usr/bin/vim
[root@localhost aa]#ll /usr/bin/vim
-rwxr-sr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
此处s表示当使用这个命令程序时,把当前用户当成文件的所属组。
sticky位
具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权。
在目录设置Sticky 位,只有文件的所有者或root可以删除该文件。
sticky设置在文件上无意义。
Sticky权限设定:
[root@localhost aa]#chmod o+t /opt/aa
#添加Sticky 位
[root@localhost opt]#chmod o-t /opt/aa
#减少Sticky 位