用户管理
1.前言
1.用户存在的意义
安全
用户概念在系统中是系统安全机制的一部分
2.组存在的意义
共享 开放权力,同一个组的用户共享部分权力
2.用户的查看
1)whoami ---查看当前用户
2) id ---查看指定用户id信息
id
-u ---查看用户的uid
-g --- 查看用户的gid
-G ---查看用户所在的所有组的id
-n ---显示名字而不显示id数字
查看root用户的id信息,其中u参数需要与其他参数一起使用,不然会报错,如上图。
3.用户切换
su - 用户名称
例子:
su - student ---切换到student用户
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
! su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
先由root用户切换到student用户,不需要密码
再由student用户切换到root用户,需要输入root的密码
注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户
由于没有在切换用户后退出用户登陆,在关闭shell时会有隐藏的问题,
此时不能直接关闭shell,需要进行两次exit操作。
4.用户在系统中的存储方式
1)/etc/passwd
用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
2)/etc/group
用户组信息文件
组的名字:组密码:组id:组成员
3)/etc/shadows
认证信息文件
4)/etc/skel/.*
默认开启shell的配置,用户的骨文件
5)/home/username
用户的家目录
6.用户管理命令
1)用户的删除
userdel
userdel student ---删除用户但不删除用户的配置文件
userdel -r student ---删除用户并删除用户的配置文件
2)用户建立
用户信息监控命令
watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home'
useradd ---建立用户的,建立用户时,读取/etc/login.defs 文件内容确定规则
useradd -u 8888 westos ---指定用户uid,默认从1000开始
useradd -g 21 westos ---指定用户初始组id,"21用户组必须是存在的",实验时可先建立组,再建立用户指定用户初始组
useradd -G 21 westos ---指定用户的附加组id “21用户组必须存在”
useradd -c "hello" westos ---指定用户的说明
useradd -d /home/lee westos ---指定用户的家目录
useradd -s /bin/sh westos ---指定用户的默认shell
groupadd ---建立用户组
groupadd -g 888 ---建立用户组并指定用户组的id
groupdel ---删除用户组
使用用户信息监控命令,每秒刷新一次,显示passwd文件的最后三行
和group文件的最后三行
以及home/目录下用户具体信息
再重新打开一个shell进行实验操作
1.新建用户westos,由于建立用户时,读取/etc/login.defs 文件内容确定规则,所以新建的用户uid与gid及其他信息默认规则所定,uid从1000开始。
2.删除用户westos及其配置,若没有使用参数-r,则会在home目录下遗留配置文件
3.指定新建用户westos的uid为8888
4.新建用户组group1,指定用户组id为888,若不指定的话,默认从1001开始,
新建用户westos,指定他的gid为888,在group文件中没有显示出最新更新,因为他已经在888的组中,不会出现新的组信息
新建用户linux,指定他为组id为21的组的附加用户。
5.新建用户,指定用户的说明是指在登陆界面时所见的用户名
6.指定用户的家目录是指在登陆后所在目录位置
3)更改用户信息
usermod
usermod -l 新名称 westos ---更改用户的名称
usermod -u 6666 westos ---更改用户uid
usermod -g 21 westos ---更改用户的初始组
usermod -G 21 westos ---更改用户的附加组
usermod -aG 72 westos ---添加用户的附加组
usermod -G "" westos ---删除用户所有附加组的身份
usermod -c "hahahah" westos ---指定用户说明文字
usermod -d /home/lee westos ---更改用户家目录的指向
usermod -md /home/lee westos ---更改用户家目录
usermod -s /bin/sh westos ---更改用户的shell
usermod -L westos ---冻结用户
usermod -U westos ---解锁用户
1.更改用户家目录指向
更改用户家目录
两图结果对比,更改家目录指向只是暂时更改,在home目录下的文件中并没有被修改
而更改用户家目录可直接更改home目录下的文件
2.冻结用户与用户解冻
冻结student用户后,重新载入登陆界面,student用户选项消失
进入root用户进行解冻,重新载入登陆界面,student用户选项出现
7.用户认证信息
/etc/shadow ---记录用户认证信息
此文件一共有九列:
用户名称:用户密码:用户密码最后一次被更改的时间:用户密码最短有效期:用户密码最长有效期:
密码警告期限:用户非活跃天数:用户到期日:用户自定义列,目前没有启用
passwd -S westos ---查看westos用户密码信息
westos用户名称为westos,用户密码冻结,用户密码最后一次被修改时间时10-07,用户密码最短有效期为0,最长有效期为99999,密码警告期限7天,非活跃天数为-1.
1)用户名称
2)用户密码
passwd westos ---更改westos密码
passwd -l westos ---在用户密码前加入“!!”
passwd -u westos
usermod -L westos ---在用户密码前加入“!”
usermod -U westos ---在密码不为空时使用
passwd -d westos ---清空westos密码
注意:
普通用户改密码时
1.必须知道当前永久原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或纯字母
4.密码不能是有序的字母和数字的组合
使用watch -n 1 tail -n 3 /etc/shadow 来监测用户认证信息
1.passwd -u westos 将westos密码!!去掉
2.使用usermod -L 给密码加上!,使用-U 去掉!失败,因为usermod -U 只能在密码不为空时使用
若密码不为空,且密码前!!,则可连续使用两次-U操作,去掉!!。
3.使用passwd westos可修改westos密码,
超级用户环境下不需要输入原始密码,且密码修改格式不限制,可强行修改
普通用户只能修改自己的密码,且需要输入原始密码
3)用户密码最后一次被更改的时间
passwd -e westos ---会改变用户最后一次更改密码时间为0.
---用户在登陆时会被强制更改密码
chage -d 0 westos ---两个命令功能类似
用户密码最后一次被更改的时间
4)用户密码最短有效期
passwd -n 1 westos ---westos用户在1天之内不能修改密码
chage -m 1 westos
用户密码最短有效期
root用户下设置westos密码为westos,将最短有效期修改为1,
切换到westos用户下,修改密码,被系统告知需要等待一段时间才能修改密码
5)用户密码最长有效期
passwd -x 30 westos ---设定westos在30天内必须改密码
chage -M 40 westos
6)密码警告期限
passwd -w 2 westos ---密码过期前两天有警告输出
chage -W 2 westos
7)用户非活跃天数
passwd -i 1 westos ---密码过期后仍可登陆系统的天数
chage -I 1 westos
8)用户到期日
chage -E 2018-11-11 westos ---westos用户在2018-11-11日会被冻结
9)用户自定义列,目前没有启用
将westos密码最后一次修改时间修改为0,则重新登陆用户westos时,输入一次密码后,系统要求重新设置一次新密码