Linux用户与组的管理命令主要有useradd、usermod、userdel、groupadd、groupmod、groupdel、groupmems、gpasswd、passwd、newgrp等等(详见上篇Linux用户与组的管理详解),其中每条命令也都有很多的可选项,对于初学者来说很容易造成混淆;此外,这些命令之间有很多相重合的用法,即:拥有多种命令可实现相同的需求的情况。
接下来,我们来把这些混淆和重合点进行下梳理:
一、易混淆点:关于GID的改变
命令1:usermod -g 改变一个用户的gid
[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:newgrp 临时改变一个用户的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:groupmod -g 改变组的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.为一个用户添加一个辅助组有三种方式:(这里暂以添加一个辅助组为例,暂不考虑添加多个辅助组的情况)
命令1:groupmems -a user -g group 指定用户user加入组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:gpasswd -a user group 将用户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:usermod -G 为user用户添加辅助组,注意:新的辅助组覆盖原辅助组:
[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)
2.从一个辅助组中删除一个用户也有三种方式:
命令1:groupmems -d user -g group 从group组中删除用户user
[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)
命令2:gpasswd -d user group 将用户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)
命令3:usermod -G “” user
usermod -G user 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.给一个账号加锁(2种方法):
命令1:usermod -L
命令2:passwd -l
5.给一个账号解锁(2种方法):
命令1:usermod -U
命令2:passwd -u
6.给一个账号指定最短使用期限(mindays)(2种方法):
命令1:passwd -n
命令2:chage -m
7.最大使用期限(maxdays)(2种方法):
命令1:passwd -x
命令2:chage -M
8.设置一个账号提前多少天开始警告(warndays)(2种方法):
命令1:passwd -w
命令2:chage -W
9.设置一个账号非活动期限(inactivedays)(3种方法):
命令1:passwd -i
命令2:usermod -f
命令3:chage -I
10.设置一个账号的有效期(expiredate)(2种方法):
命令1:usermod -e YYYY-MM-DD 设置用户账号过期时间
命令2:chage -E YYYY-MM-DD 设置用户账号过期时间
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94830
评论列表(1条)
电信大佬 666