#####用户管理######
 1在Linux中,有三种用户:
 1 root : 也成为超级用户,对系统有控制权限,超级用户可以不受限制的运行任何命令,root 用户可以看作是系统的管理员。
 2 系统用户: 系统用户通常为系统功能所必须的,是Linux运行某些程序所必须的用户。
 3 普通用户: 一般用户都是普通用户,这些用户对系统文件的访问受限。
2.用户的查看
 查看当前用户
 whoami ##查看当前用户
系统中用户的查看
 id ##查看指定用户id信息
 id
| -u | 查看用户的uid | 
|---|---|
| -g | 查看用户的gid | 
| -G | 查看用户所在的所有组的id | 
| -n | 显示名字而不显示id数字 | 
| -nG | 查看用户的所有组的名字 | 
示例:
3用户切换
 gome-session-quit --force ##注销当前用户
 在用其他用户登陆
 su - 用户名称
 su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
 su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
 注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户
 
 
 4 用户在系统中的存储方式
 /etc/passwd 用户信息文件
 用户名称:密码:uid:gid:说明:家目录:默认shell
/etc/group 用户组信息文件
 组的名字:组密码:组id:组成员
 /etc/shadows 认证信息文件
 /etc/skel/.* 默认开启shell的配置,用户的骨文件
 /home/username 用户的家目录
 示例:
 5 用户管理命令
 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
 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 westos ##建立用户组并指定用户组的id
 groupdel ##删除用户组
 
 6更改用户信息
 usermod
 -l ##更改用户名
 -u ##更改uid
 -g ##更改gid
 -G ##更改附加组
 -G 21,27,… ##添加多个附加组
 -G “” ##清空附加组
 -aG ##在原有的附加组上添加
 -c “…” ##更改说明
 -c ‘’ ##清空说明
 -d /home/me ##更改家目录的指向,不改变原家目录名称
 -md /home/me ##更改家目录,更改家目录文件名称
 -s /bin/sh ##更改用户的shell ,
 -L ##冻结用户,在此之前应先给用户设置密码
 -U ##解锁用户
示例:
7 用户认证信息
 /etc/shadows ##记录用户认证信息
 redhat:!!:17895:0:99999: 7: : :
 [1] [2] [3] [4] [5] [6] [7] [8] [9]
 此文件一共有九列:
| 1.用户名 | 用户名称 | 
|---|---|
| 2.密码 | 用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现"!"那么用户被冻结 | 
| 3.用户密码最后一次被更改的时间 | 此时间计算是从1970-1-1开始计算的累计天数 | 
| 4.用户密码最短有效期 | 如果此位有设定数字,那么在此数字范围内的天数内是不能修改用户密码的 | 
| 5.用户密码最长有效期 | 用户必须在此有效期内更新密码,如果超时会被冻结 | 
| 6.密码警告期限 | 在过期前制定天数内会发送警告信息给用户 | 
| 7.用户非活跃天数 | 此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数 | 
| 8.用户到期日 | 默认为空,表示帐号一定会被冻结的时间点 | 
| 9.用户自定义列 | 用户自定义列,目前没有启用 | 
passwd -S westos ##查看westos用户密码信息
  passwd   westos ##更改westos密码passwd  -l  westos ##在用户密码前加入“!!” passwd  -u  westos  ##消除用户密码前的“!”usermod -L  westos ##在用户密码前加入“!”usermod -U  westos ##在密码不为空时使用passwd  -d  westos ##清空westos密码passwd -S westos   ##查看用户密码信息
注意: 普通用户改密码时
 1.必须知道当前用户原始密码
 2.密码不能和帐号名称相似
 3.密码不能是纯数字或纯字母
 4.密码不能是有序的字母和数字的组合
#用户密码最后一次被更改的时间#
| passwd -e westos | 会改变用户最后一次更改密码时间为0. | 
|---|---|
| chage -d 0 westos | 会改变用户最后一次更改密码时间为0 | 
                 注:  ##用户在登陆时会被强制更改密码##两个命令功能类似
#用户密码最短有效期#
| passwd -n 1 westos | westos用户在1天之内不能修改密码 | 
|---|---|
| chage -m 1 westos | westos用户在1天之内不能修改密码 | 
#用户密码最长有效期#
| passwd -x 30 westos | 设定westos在30天内必须改密码 | 
|---|---|
| chage -M 30 westos | 设定westos在30天内必须改密码 | 
#密码警告期限#
| passwd -w 2 westos | 密码过期前两天有警告输出 | 
|---|---|
| chage -W 2 westos | 密码过期前两天有警告输出 | 
#用户非活跃天数#
| passwd -i 1 westos | 密码过期后仍可登陆系统的天数 | 
|---|---|
| chage -I 1 | 密码过期后仍可登陆系统的天数 | 
#用户到期日#
 chage -E 2018-11-11 westos ##westos用户在2018-11-11日会被冻结
 #用户自定义列,目前没有启用#
8用户授权
 1.权力下放文件为/etc/sudoers
 此文件可以用vim直接编辑,但是不提供语法检测
 也可以使用visudo编辑此文件,visudo命令是提供语法检测的
 2.下放方式
- visudo
 100行左右
 用户 主机名称=(得到的用户身份) 命令
 tom localhost=(root) /usr/sbin/useradd ##tom用户可以在localhost主机以
 root用户身份执行useradd命令
 tom localhost=(root) NOPASSWD: /usr/sbin/useradd ##tom用户可以在localhost主机以 root用户身份免密执行useradd
3.测试
 su - tom
 sudo useradd hello
 示例:
 
 