Linux系统中一般会包含多个用户,不同用户拥有不同权限,则需要对多个用户进行管理
用户在系统中的存储方式
/etc/passwd
用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
"说明:默认shell的指定有那些可以查看系统中/etc/shells文件"
/etc/group
用户组信息文件
组的名字:组密码:组id:组成员
/etc/shadows
认证信息文件
用户名称:密码:密码最后一次被更改的时间
/etc/skel/.*
默认开启shell的配置,用户的骨文件
/home/username
用户的家目录
用户管理
1.用户的建立
useradd 参数 用户名字
-u 指定用户uid,如果同时有-o选项,则可以重复使用其他用户的标识号。
-g 指定用户初始组信息,这个组必须已经存在
-G 指定附加组,这个组必须存在
-c 用户说明
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-s 用户所使用的shell,/etc/shells记录了用户能使用shell的名字
使用命令在linux系统中创建用户test,用户组为test1,用户目录 /test , 并赋予sudo权限。
useradd -d /test -m test -g test1 -G root
Sudo可以修改文件需要root用户
sudo的工作过程如下:
1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
3,若密码输入成功,则开始执行sudo后续的命令
4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
5,若欲切换的身份与执行者的身份相同,也不需要输入密码
2. 用户删除
userdel -r 用户名称 -r表示删除用户信息及用户的系统配置
3.组的建立
groupadd -g 建立组
groupdel 组名字 删除组
动态监控(1)、(2)、(3)命令:
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home/'
4.用户id信息查看
id 参数用户
-u 用户uid
-g 用户初始组id
-G 用户所有所在组id
-n 显示名称而不是id数字
-a 显示所有信息
5.用户信息更改
usermod 参数 用户
-l 更改用户名称
-u 更改uid
-g 更改gid
-G 更改附加组
-aG 添加附加组
-c 更改说明
-d 更改家目录指定
-md 更改家目录指定及家目录名称
-s 更改shell
-L 冻结帐号
-U 解锁
用户权限管理
1.用户权利下放的配置
在系统中超级用户可以下放普通用户不能执行的操作给普通用户,以方便用户管理。
root下放权力的方法
1)超级用户执行visudo进入编辑/etc/sudoers模式
2)格式:欲获得权限用户主机名称=(获得到的用户身份)命令
2.执行下放权限命令
格式:sudo命令
表示用户调用sudo命令的时候不需要自己密码
3.用户认证信息的控制
chage 参数用户
-d 用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码
-m 最短有效期
-M 最长有效期
-W 警告期
-I 用户非活跃天数
-E 帐号到期日格式 -E "YYYY-MM-DD"
用户认证信息 ##记录用户认证信息
[1] [2] [3][4] [5] [6] [7] [8] [9]
此文件一共有九列:
1.用户名称:root
2.用户密码:
用户的加密字符串,默认用的加密方式为sha512对称加密,
如果加密字符串前出现"!"那么用户被冻结
3.
用户密码最后一次被更改的时间:16442
此时间计算是从1970-1-1开始计算的累计天数
4.
用户密码最短有效期:0
如果此位有设定数字,那么在此数字范围内的天数内是不能修改用户密码的
5.
用户密码最长有效期:999999
用户必须在此有效期内更新密码,如果超时会被冻结
6.
密码警告期限:7
在过期前制定天数内会发送警告信息给用户
7.
用户非活跃天数:延期的期限。有效期限+延期期限=总共可以使用的时间
此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数
8.
用户到期日:
默认为空,表示帐号一定会被冻结的时间点
9.
用户自定义列,目前没有启用
passwd -S westos ##查看westos用户密码信息
综合实验结果如下: