#############################################
#################第五单元#####################
#############################################

####################用户如何存在于系统当中######################
/etc/passwd        #用信息文件
用户名称:用户密码:用户uid:用户gid:用户说明:用户家目录:用户使用的shell

/etc/shadow        #用户认证信息
用户名称:密码:密码使用天数:最短有效期:密码最长有效期:密码警告期:密码非活跃期:密码到期日:

/etc/group        #用户组信息
用户组名称:用户组密码:用户组id:附加用户成员

/home/username         #用户家目录
/etc/skel/.*        #用户的基本信息配置

##########################用户操作命令################
id        查看用户信息
id     -u    ###用户uid
        -g    ###用户gid
        -a    ###用户所有信息
        -G    ###用户所在组,所有的id
       -un    ###用户名字
        -gn    ###用户初始组名称
        -Gn    ###用户所在所有组名称(id -Gn student学生的组名称;id -Gn 当前用户的组名称)

su - username    ###切换用户用户所使用的环境
echo $PATH    ###查看当前用户的用户环境
echo $USER    ###显示当前用户的信息

useradd            ###新建用户(root建立,在/home/下)
        -u    ###指定用户的uid
        -g    ###指定用户初始组,这个组一定要存在!
        -G    ###指定附加组,组同样要存在!
                eg:useradd -G 2225 son(新建son用户附加到2225组,即为附加组)id son 可以查看
        -c    ###用户说明
        -d    ###指定用户家目录
        -s    ###指定用户使用的shell,shell种类参看/etc/shells
eg:useradd -G 2225 son(新建son用户附加到2225组,即为附加组),id son 可以查看
eg:useradd -c shuoming -u5555 -g6660 -d /mnt -s /etc/son son(6660这个组要存在)

userdel     -r    ####删除用户(删干净用户的所有信息)

groupadd    -g    ###新建组,-g表示指定组的id(id可以给)
groupdel        ###删除组
passwd            ####更改用户密码
                        ####删除用户
passwd            ####更改用户密码
eg:监控用户建立或管理的过程如下
watch -n 1 'tail -3 /etc/passwd;echo @@@@@@@@@@@@@@@@@@@@@@@@@@;tail -3 /etc/group'
watch -n 1 tail -n5 /etc/passwd /etc/group


usermod        -u    ##改变用户uid
        -g    ##改变用户初始组
        -G    ##改变用户附加组(只加一个,若有第二个会覆盖第一个)westos student
        -aG    ##追增加用户附加组
                eg:usermod -aG0 sun 把sun追加到0(root)中  id sun 查看
        -d    ##改变用户家目录信息
        -md    ##改变用户家目录信息和改变家目录名称
        -s    ##改变用户的shell
        -c    ##改变用户的说明
               eg:usermod -c shuoming son
        -L    ##冻结用户(passwd -S westos查看密码信息)
        -U    ##解锁用户


###################用户权限下放(sudo)###################
权限下放动作的配置文件
/etc/sudoers
这个文件用visudo命令编辑(直接输入visudo进去更改),我们不用vim直接编辑。
:99     ##第99行书写   (用hostname命令可以来看主机名称)
文件内容写法:
授权目标用户    主机名称=(授权用户得到的新用户身份)    授权用户执行命令
westos desktop8.example.com=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
示例:
###test用户能在localhost主机执行useradd(要test密码)
test        localhost=(root)    /usr/sbin/useradd
###test用户能在localhost主机执行useradd(不要要test密码)
test        localhost=(root)    NOPASSWD: /usr/sbin/useradd

###测试结果:
su - test
sudo useradd  username

##########################密码期限更改###################
chage         ##这个命令是用来修改帐号和密码有效期的
        -d   0    ##密码使用了多久,如果设定为0表示用户登陆系统前必须更改密码
                     passwd  -S  westos 可以查看
        -m    ##最短有效期  eg:-m 0 test 为0表示可以随时更改密码
        -M    ##最长有效期
        -W    ##警告期,用户密码到期前,提起警告天数
        -I    ##非活跃期 eg:-I 2 westos密码到期两天之内必须修改
        -E    ##到期时间格式yyyy-mm-dd
watch -n1 tail -n3 /etc/shadow ##监控/etc/shadow文件
grep student /etc/shadow  ##关键字为student的用户认证信息