TangWei's Studio

Linux用户与组管理命令的易混淆点和重合点

Word count: 1,075 / Reading time: 5 min
2018/04/03 Share

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 设置用户账号过期时间

CATALOG
  1. 1. Linux用户与组管理命令的易混淆点和重合点
    1. 1.1. 一、易混淆点:关于GID的改变
      1. 1.1.1. 1.改变一个用户的gid
      2. 1.1.2. 2.临时改变一个用户的gid
      3. 1.1.3. 3.改变组的gid
    2. 1.2. 二、增、删辅助组的多种方式
      1. 1.2.1. 1.指定用户user加入组group
      2. 1.2.2. 2.将用户user添加至指定组group中
      3. 1.2.3. 3.为user用户添加辅助组
      4. 1.2.4. 4.从group组中删除用户user
      5. 1.2.5. 5.将用户user从group组中删除
      6. 1.2.6. 6.两种方法均可删除所有辅助组
    3. 1.3. 三、其他的一些拥有多种命令可实现相同需求的情况
      1. 1.3.1. 1.修改一个用户的shell类型(2种方法)
      2. 1.3.2. 2.修改一个用户的描述信息(2种方法)
      3. 1.3.3. 3.修改一个账号下次登录自动修改密码(2种方法)
      4. 1.3.4. 4.给一个账号加锁(4种方法)
      5. 1.3.5. 5.给一个账号指定最短使用期限(mindays)(2种方法)
      6. 1.3.6. 6.最大使用期限(maxdays)(2种方法)
      7. 1.3.7. 7.设置一个账号提前多少天开始警告(warndays)(2种方法)
      8. 1.3.8. 8.设置一个账号非活动期限(inactivedays)(3种方法)
      9. 1.3.9. 9.设置一个账号的有效期(expiredate)(2种方法)