什么是用户
用户是操作者在系统中的身份
用户是系统中最底层的安全机制的一部分
用户在系统中以字符和文件的形式存在
用户存储文件
/ect/passwd
用户信息文件
用户名称:密码:uid:gid:用户说明:用户家目录:用户默认开启的shell
“说明:默认shell的指定有哪些可以查看系统中/etc/shells文件”
/ect/group
用户组信息文件
组的名字:组密码:组id:组成员
/ect/shadows
认证信息文件
/home/username
用户的家目录
/ect/skel/
默认开启shell的配置,用户的骨文件
用户存在的意义
组存在的意义
用户查看
- 查看当前用户
whoami ##查看当前用户
- 系统中用户查看
id ##查看指定用户ID信息
id -u ##查看用户的uid
-g ##查看用户的gid
-G ##查看用户所在的所有组的id
-n ##显示名字而不显示id数字,-n用在g、G、u之后
用户建立(useradd)
useradd xxx(用户名字) ##建立用户,建立用户时,读取/etc/login.defs 文件内容
useradd -u 888 zjy ##指定用户uid
useradd -g 21 zjy ##指定用户初始组id,“21用户组必须存在”
如果不存在:建立用户组
groupadd ##建立用户组
groupadd -g 888 weatos ##建立用户组并指定用户组的id
groupdel ##删除用户组
useradd -G 21 zjy ##指定用户的附加组id,“21用户组必须存在”
如果不存在:建立用户组(同上)
useradd -c “hello” zjy ##指定用户说明
useradd -d /home/lee zjy ##指定用户的家目录
useradd -s /bin/sh zjy ##指定用户的默认shell
cat /etc/shells ##查看系统中有哪些shell
修改用户信息(usermod)
usermod -l linux westos ## 将westos的用户名改为linux,l表示登录
usermod -u 8888 westos ## 将westos的uid改为8888,u表示uid
usermod -g 8889 westos ## 将westos的gid改为8889,g表示gid(祖组)
G表示更改原始组
usermod -G admin leo ## 将admin加到leo的附加组
usermod -G 1001 leo ## 将组1001加到leo的附加组 ,会抹掉admin
aG表示添加原始组
usermod -aG admin leo ## 将admin加到leo的附加组
删掉leo的所有附加组
usermod -G “” leo
知识点小结(用法:usermod)
命令 | 解释 |
---|---|
usermod -l 新名称 westos | 更改westos用户的名称 |
usermod -u 6666 westos | 更改westos用户的uid为6666 |
usermod -g 21 westos | 更改westos用户的初始组 |
usermod -G 21 westos | 更改westos用户的附加组 |
usermod -aG 72 westos | 添加uid为72的用户到westos用户的附加组中 |
usermod -G “” westos | 删除westos用户的所有附加组的身份 |
usermod -c “haha” westos | 指定westos用户的说明文字 |
usermod -d /home/lee westos | 更改westos用户的家目录的指向 |
usermod -md /home/lee westos | 更改westos用户的家目录 |
usermod -s /bin/sh westos | 更改westos用户的shell |
usermod -L westos | 冻结westos用户 |
usermod -U westos | 解锁westos用户 |
冻结账户和解冻账户
用户的切换操作(su)
su和su -的区别
知识点小结(用法:su)
gnome-session-quit --force ##注销当前用户
再用其他用户登录
su - 用户名称
su - 中“-”表示用户身份切换时同时切换当前用户环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要密码,评级用户切花也需要密码
注意:每次su切换到其它用户操作之后必须退出,然后再次切换到其他用户
密码文件修改(passwd、chage)
当前是root用户
passwd ##修改当前用户密码
passwd westos ##更改westos用户的密码
如果是普通用户,只能修改自己的密码,且需要知道原始密码
echo westos|passwd --stdin westos ##将密码修改为weatos一步完成(非交互式改密码)
passwd -e weatos ##密码最后一次被修改的时间
passwd -l weatos ##密码被锁,会在密码前+!!
passwd -u weatos ##密码解锁
passwd -n 0 weatos ##修改最短有限期为0
passwd -x 7 weatos ##修改最长有效期为7
passwd -w 2 weatos ##修改警告期为2
passwd -i 1 weatos ##修改非活跃为1
passwd -d westos ##删除westos用户密码
passwd -S westos ##查看westos用户状态
passwd无法修改用户到期日
chage:只能修改密码的相关日期,但是不能修改密码
chage -d 0 weatos ##修改westos的最后一次修改时间为0
chage -m 10 weatos ##修改westos的最短有效期为10
chage -M 20 weatos ##修改westos的最长有效期为20
chage -W 1 weatos ##修改westos的警告期为1
chage -I 2 weatos ##修改westos的非活跃天数为2
chage -E “2019-12-12” weatos ##修改westos的到期日为2019-12-12
用户认证信息文件(/etc/shadows)
/etc/shadows------------记录用户认证信息
westos:!!:18183:0:99999:7: : :
[1] [2] [3][4] [5][6] [7] [8] [9]
编号 | 解释 |
---|---|
【1】 | westos:用户名称 |
【2】 | !!:用户密码 用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现“!”那么用户被冻结 |
【3】 | 18183:用户密码最后一次被更改的时间 |
【4】 | 0:用户密码最短有效期 如果此位有设定数字,那么在此数字范围内的天数内是不能修改用户密码的 |
【5】 | 99999:用户密码最长有效期 用户必须在此有效期内更新密码,如果超时会被冻结 |
【6】 | 7:密码警告期限 在国旗前制定天数内会发送警告信息给用户 |
【7】 | 用户非活跃天数 此为默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数 |
【8】 | 用户到期日 默认为空,表示账号一定会被冻结的时间点 |
【9】 | 用户自定义列,目前没有启用 |
下放权利(visudo)
对/etc/sudoers文件进行修改
visudo
hostnamectl ##查看主机名称
用户 主机名称=(得到的用户身份) 命令 解释
westos localhost=(root) /usr/sbin/useradd ##weatos用户可以在localhost主机以root用户身份执行useradd,命令
westos localhost=(root) NOPASSWD:/usr/sbin/useradd ##weatos用户可以在localhost主机以root用户身份免密执行useradd命令
westos localhost=(root) NOPASSWD:/usr/sbin/useradd,/usr/sbin/userdel ##给weatos下放删除用户权限
测试:
su - westos ##切换westos用户
sudo useradd lee ##添加lee用户
sudo userdel -r lee l##删除lee用户
下放多个命令(命令集合)
visudo ##编辑/etc/sudoers文件
【Cmnd_Alias CTRL_USER = /usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin.usermod ##集合的名字Ctrl_user】
用户集合
visudo ##编辑/etc/sudoers文件
【User_Alias ADMIN = westos,leo】