Linux用户与组管理命令的易混淆点和重合点
Linux用户与组的管理命令主要有useradd、usermod、userdel、groupadd、groupmod、groupdel、groupmems、gpasswd、passwd、newgrp等等(详见上篇Linux用户与组的管理详解),其中每条命令也都有很多的可选项,对于初学者来说很容易造成混淆;此外,这些命令之间有很多相重合的用法,即:拥有多种命令可实现相同的需求的情况。
一、易混淆点:关于GID的改变
1.改变一个用户的gid
usermod -g
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx)
[root@CentOS6 ~]#usermod -g 4322 wangx
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=4322(mage) groups=4322(mage)
此条命令改变了用户的主组,需注意的是新改变的主组需已存在
2.临时改变一个用户的gid
[wangx@CentOS6 ~]$id
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[wangx@CentOS6 ~]$newgrp mage
[wangx@CentOS6 ~]$id
uid=1666(wangx) gid=4322(mage) groups=4322(mage),1235(wangx) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[wangx@CentOS6 ~]$id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage)
此条命令作用为切换当前登录用户的主组,注意是临时切换,重新登录后失效,使用id user命令看到的还是切换前的主组
3.改变组的gid
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx)
[root@CentOS6 ~]#groupmod -g 1236 wangx
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1236(wangx) groups=1236(wangx)
此条命令仅仅是改变了组的ID,组成员还是原来的组成员,没有变化。
二、增、删辅助组的多种方式
1.指定用户user加入组group
groupmems -a user -g group
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx)
[root@CentOS6 ~]#groupmems -a wangx -g mage
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage)
2.将用户user添加至指定组group中
gpasswd -a user group
[root@CentOS6 ~]#gpasswd -a wangx mage
Adding user wangx to group mage
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage)
3.为user用户添加辅助组
注意:新的辅助组覆盖原辅助组
usermod -G
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx)
[root@CentOS6 ~]#usermod -G mage wangx
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage)
4.从group组中删除用户user
groupmems -d user -g group
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage)
[root@CentOS6 ~]#groupmems -d wangx -g mage
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx)
5.将用户user从group组中删除
gpasswd -d user group
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage)
[root@CentOS6 ~]#gpasswd -d wangx mage
Removing user wangx from group mage
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx)
6.两种方法均可删除所有辅助组
usermod -G user user
usermod -G “” user
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx),4322(mage)
[root@CentOS6 ~]#usermod -G wangx wangx
[root@CentOS6 ~]#id wangx
uid=1666(wangx) gid=1235(wangx) groups=1235(wangx)
三、其他的一些拥有多种命令可实现相同需求的情况
1.修改一个用户的shell类型(2种方法)
命令1:chsh 修改用户的shell
命令2:usermod -s 新的默认shell
2.修改一个用户的描述信息(2种方法)
命令1:chfn 修改用户描述信息
命令2:usermod -c 新的用户描述信息
3.修改一个账号下次登录自动修改密码(2种方法)
命令1:chage -l wang 使wang账户口令立马失效,下次登录自动修改
命令2:passwd -e wang 使wang账户口令立马失效,下次登录自动修改
4.给一个账号加锁(4种方法)
命令1:usermod -L
命令2:passwd -l
命令3:usermod -U
命令4:passwd -u
5.给一个账号指定最短使用期限(mindays)(2种方法)
命令1:passwd -n
命令2:chage -m
6.最大使用期限(maxdays)(2种方法)
命令1:passwd -x
命令2:chage -M
7.设置一个账号提前多少天开始警告(warndays)(2种方法)
命令1:passwd -w
命令2:chage -W
8.设置一个账号非活动期限(inactivedays)(3种方法)
命令1:passwd -i
命令2:usermod -f
命令3:chage -I
9.设置一个账号的有效期(expiredate)(2种方法)
命令1:usermod -e YYYY-MM-DD 设置用户账号过期时间
命令2:chage -E YYYY-MM-DD 设置用户账号过期时间