########################
###Linux系统的用户管理 ###
########################
##1.用户的理解
用户就是系统使用者的身份,在系统中用户存储为若干窜字符+若干个系统配置文件,具有一定的系统权限。
##2.用户组的理解
对用户组的定义其实就是权限的分配,每一个拥有不同权限的组下的所有用户均拥有此组所附有权限。
##3.用户的查看
1)
查看当前用户
whoami ##查看当前用户
2)
系统中用户的查看
id ##查看指定用户id信息
id
-u ##查看用户的uid
-g ##查看用户的gid
-G ##查看用户所在的所有组的id
-n ##显示名字而不显示id数字
3)
用户切换
su - 用户名称
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户
##4.用户在系统中的存储方式
/etc/passwd
用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
/etc/group
用户组信息文件
组的名字:组密码:组id:组成员
/etc/shadow
认证信息文件
用户名称:
用户密码:
用户密码最后一次被修改的时间:
密码最短有效期:
密码最长有效期:
密码警告期限:
密码非活跃期限:
密码到期日:
用户自定义位置,目前没有启用
/etc/skel/.*
默认开启shell的配置,用户的骨文件
/home/username
用户的家目录
##5.用户管理命令
1)用户的删除
userdel
userdel student ##删除用户不删除其配置文件
userdel -r student ##删除用户并且删除其配置文件
首先,让我们来输入一个监控命令:
watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home' ##每秒监控一次/etc/passwd以及/etc/group、/home 下的后三行
useradd ##建立用户,在建立用户时,读取/etc/login.defs 文件内容规定的规则
-u 1234 redhat ##指定用户UID
-g 21 redhat ##指定用户初始组ID,“21”必须存在
-G 21 redhat ##指定用户附加组ID,“21”必须存在
-c “hello” redhat ##制定用户的说明
-d /home/hou redhat ##指定用户家目录
-s /bin/sh redhat ##指定用户shell
groupadd ##新建组
-g 888 ##建立用户组并制定用户组的ID
groupdel ##删除用户组
3)更改用户信息
usermod
usermod -l 新名称 redhat #更改用户名称
usermod -u 6666 redhat #更改用户uid
usermod -g 21 redhat #更改用户初始组
usermod -G 21 redhat #更改用户附加组
usermod -aG 72 redhat #添加用户的附加组
usermod -G “” redhat #删除所有附加组的身份
usermod -c “haha” redhat #指定用户说明文字
usermod -d /home/hou redhat #t特别注意:-d更改用户家目录指向,不改变真实名字
usermod -md /home/hou redhat #更改用户家目录
usermod -s /bin/sh redhat #修改用的的默认shell
usermod -L redhat #冻结用户
usermod -U redhat #解冻用户
##6.用户认证信息
/etc/shadow #记录用户认证信息
#用户名称: passwd redhat #更改密码
passwd -l redhat #用户密码加入:!!:
passwd -u redhat
passwd -L redhat #用户密码加入:!:
passwd -U redhat
passwd -d redhat #清空密码
Tips: 某些情况下使用root可以进入 vim /etc/shadow 找到相对的用户进行密码冻结,但切忌勿进行密码修改,因为这里显示的密码是受保护加密后的字符。
值得注意的是:
普通用户修改密码时
必须知道当前永久原始密码
密码不能和帐号名称相似
密码不能是纯数字或纯字母
密码不能是有序的数字或字母组合
passwd -S redhat #可看到用户密码信息的绝大部分信息
#用户密码:
#用户密码最后一次被修改的时间:
passwd -e 0 redhat #会改变用户最后一次更改密码的时间为0,用户在登陆时会强制被更改密码。
chage -d 0 redhat #与以上一样
#密码最短有效期:
passwd -n 1 redhat #westos用户在一天之内不能修改密码
chage -m 2 redhat #同上
#密码最长有效期:
passwd -x 30 redhat #设定westos用户在30天之内必须修改密码
chage -M 40 redhat #同上
#密码警告期限:
passwd -w 3 redhat #密码过期前两天有警告输出
chage -W 2 redhat #同上
#密码非活跃期限:
passwd -i 1 redhat #密码过期后仍可登陆系统的天数
chage -I 2 redhat #同上
#密码到期日:
chage -E 2018-11-11 redhat #密码到期在2018.11.11到期
注意:不难看出17846减去17731所得的天数正好为今天到2018-11-11日的天数
#用户自定义位置,目前没有启用:
##7.用户授权
用户授权配置文件
/etc/sudoers
注:用vim编辑器编辑/etc/sudoers在退出的时候如果发生错误不会提示,为了保证系统配置不出差错一般用以下命令
授权配置命令
visudo
规范操作:文件100行左右
普通用户 主机名称=(转换成的新用户身份) NOPASSWD; 命令, 命令2, ...
示例:
hostnamectl set-hostname desktop0.example.com
redhat desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
su - redhat
sudo useradd hello