用户认证
用户使用账户登入Linux系统时,系统要对该账户进行3A认证,确实账户的身份,进行授权并且进行行为的审计
3A: Authentication 认证 Authorization 授权 Accounting/Audition 审计
用户及组的分类
系统管理员: root 0
普通用户: 1-65535
系统用户:1-499(centos6) 1-999(centos7)
登录用户:500+(centos6) 1000+(centos7)
图1-1 Centos6
管理员组: root 0
普通组:
系统组:1-499(centos6) 1-999(centos7)
普通组:500+(centos6) 1000+(centos7)
图1-2 Centos7
Linux组的类别
用户的主组:
用户必须属于一个且只有一个主组
组名与用户名相同,且仅包含一个用户,私有组
图2-1 用户的主组
用户的辅助组:
一个用户可以属于零个或多个辅助组
图2-2 用户的辅助组
用户与组的相关配置文件
a./etc/passwd:用户及其属性信息
图3-1 passwd文件
passwd文件组成部分:
username:password:uid:gid:gecos:homedirectory:shell
用户名:密码:UID:GID:注释信息:家目录:默认使用的shell
注:在以前的较早版本中,密码是存放在此文件中,采用md5加密,任何可以读到该文件的用户都可以看到加密的密码,随着技术的发展,md5加密已经不再安全,所以之后的版本都将password加密密码数据用x表示,真实的存放地址转移到shadow文件中并且密码的加密也采用了更加复杂的sha512加密,并且设置了严格的权限,加强了系统的安全性。
b./etc/shadow:用户密码存放信息 图3-2 shadow文件
shadow文件组成部分:
name:password:lastday:minday:maxday:warnday:inactiveday:expirationday:
用户名:密码:最后修改时间:最小时间:最大时间:警告时间:不活跃时间:失效时间:保留字段
图3-3 password时间线
注:shadow文件又称影子文件,普通用户是没有权限进行查看的,只有管理员root(uid=0)才有权限查看,密文密码以$进行分割,第一个数字表示采用的哪种加密算法,如6表示采用的sha512加密算法,第二个$表示salt,即随机数,这样可以防止通过一样的密文推算出密码,加了salt,即使是同样的密码,也会因为随机数的原因,产生不一样的加密密文,加强了密码的安全性,后面的参数是对密码有效期,过期期限及警告时间等等的设置。
c./etc/group:用户组的相关属性
图3-4 group文件
group文件的组成部分:
groupname:password:gid:userlist
组名:密码:组id:成员列表
注:组文件类似于passwd文件,不过该文件是用来存放组数据的,它包含了四部分,组名-密码-gid-成员列表。出于与passwd一样安全性的考虑,组密码也不存放在该文件中,用x表示,成员列表记录的是以此组作为辅助组的用户,所以成员列表中可以存在多个用户帐号。
d./etc/gshadow:组密码及其相关属性
图3-5 gshadow文件
gshadow文件组成部分
group name:encrypted password:administrator:userlist
组名:加密密码:组管理员:组中成员
注:gshadow文件是用来存存放组密码的文件,也是采用的sha512加密算法进行的加密,这边不建议为组设置组密码,以保证它的安全性,当为组设置了密码后,组外的成员想进入到组时,系统就会提示输入密码,当其他用户从其他渠道获取了组密码时,就可以进入到组中,获取组中的数据和权限,但如果不为组设置密码,组外用户想进入该组时就会变得相对困难,因为系统不会提示要输入密码的相关信息,用户没有了输入密码的机会,就无法通过密码进入到组中。组成员是以此组作为辅助组的零个或多个用户帐号。
5. 用户和组管理命令
1.用户管理命令
1.1 useradd:添加用户 图4-1 useradd帮助手册
useradd是一个系统管理命令,用来创建新的用户或者更新新用户信息,下面是它的相关选项:
-u 指定UID,默认定义在/etc/login.defs
图4-2 login.defs文件
-o 配合-u选项,不检查UID唯一性
-g GID 指明用户所属的基本组,可以是组名,也可以是GID
-c 用户的注释信息
-d 用户的家目录路径
-s 指定用户使用的shell
-G 指定用户的辅助组
-N 不创建自己的主组,将用户添加到UID为100的user组中
-M 不创建用户的家目录
-r 创建系统帐号
-D 显示默认参数
图4-3 useradd -D选项 图4-4 useradd文件
1.2 usermod:修改用户
图4-5 usermod帮助手册
-u UID 指定新的uid
-g GID 指定新的gid,基本组
-G 新辅助组,原来的辅助组会被覆盖,若要保留,-a选项,表示添加
-s shell 指定新的默认shell
-c comment 新的注释
-d home 新的家目录,不会主动创建,配合-m选项可以创建新家目录,并且移动原家目录数据
-l login 新的登录名
-L lock 锁定账户
-U unlock 解锁账户
-e yyyy-mm-dd 指定用户帐号过期时间
-f inactive 设定非活动期限
1.3 userdel:删除用户
图4-7 userdel帮助手册
-r 删除用户家目录
2. 组账号管理命令
2.1 groupadd: 添加组帐号
图4-8 groupadd帮助手册
-g 指定gid
-r 创建系统组
Centos6(gid<500) Centos7(gid<1000)
2.2 groupmod: 组属性修改
-n group_name 新名字
-g GID 新的GID
2.3 groupdel: 删除组
图4-10 groupdel帮助手册
groupdel group
6.切换用户命令
su [option...][-][args...]
su username 非登录式切换:不会读取目标的配置文件,不会改变当前工作目录
图5-2 su非登录式切换
su - username 登录时切换:会读取用户的配置文件,改变当前的工作目录,完全切换
图5-2 su登录式切换
7.设置密码passwd
passwd [option] username 修改指定用户的密码,仅root用户有权限
passwd 修改自己的密码
-l 锁定用户帐号
-u 解锁用户帐号
-e 强制用户下次登录修改密码
-n 密码最短使用时间
-x 最长使用期限
-w 提前警告天数
-i 非活动期限
--stdin 标准输入接收密码
图6-2 passwd命令
8.修改密码chage
chage 修改密码用户策略
-d last_day
-E 过期时间
-W 警告时间
-M 最长时间
-m 最短时间爱你
-l 显示密码策略
图7-2 chage -l命令
9.查看和更改组成员groupmems
groupmems [option][action]
-g 更改指定组,仅root有权限
-a 指定用户加入到组
-d 从组中删除成员
-p 清楚组中所有成员
-l 显示组中成员
图8-1 groupmems命令