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