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

Linux用户与组的管理命令,对于初学者来说很容易造成混淆,此外,这些命令之间有很多相重合的用法,即:拥有多种命令可实现相同的需求的情况。

Linux用户与组的管理命令主要有useradd、usermod、userdel、groupadd、groupmod、groupdel、groupmems、gpasswd、passwd、newgrp等等,其中每条命令也都有很多的可选项,对于初学者来说很容易造成混淆;此外,这些命令之间有很多相重合的用法,即:拥有多种命令可实现相同的需求的情况。

接下来,我们来把这些混淆和重合点进行下梳理:

一、易混淆点:关于GID的改变

命令1:usermod -g 改变一个用户的gid

1
2
3
4
5
6
[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

1
2
3
4
5
6
7
8
9
10
[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

1
2


此条命令仅仅是改变了组的ID,组成员还是原来的组成员,没有变化。

二、增、删辅助组的多种方式

1.为一个用户添加一个辅助组有三种方式:(这里暂以添加一个辅助组为例,暂不考虑添加多个辅助组的情况)

命令1:groupmems -a user -g group 指定用户user加入组group

1
2
3
4
5
6
7
[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中:

1
2
3
4
5
[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用户添加辅助组,注意:新的辅助组覆盖原辅助组:

1
2
3
4
5
6
7
[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)
  1. 从一个辅助组中删除一个用户也有三种方式:

命令1:groupmems -d user -g group 从group组中删除用户user

1
2
3
4
5
6
7
[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组中删除

1
2
3
4
5
6
7
8
[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

1
2
3
4
5
6
7
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
    2
    3
    命令1:chsh             修改用户的shell

    命令2:usermod -s 新的默认shell
  1. 修改一个用户的描述信息(2种方法):

    1
    2
    3
    命令1:chfn              修改用户描述信息

    命令2:usermod -c 新的用户描述信息
  1. 修改一个账号下次登录自动修改密码(2种方法):

    1
    2
    3
    命令1:chage -l wang    使wang账户口令立马失效,下次登录自动修改

    命令2:passwd -e wang 使wang账户口令立马失效,下次登录自动修改
  1. 给一个账号加锁(2种方法):

    1
    2
    3
    命令1:usermod -L

    命令2:passwd -l
  1. 给一个账号解锁(2种方法):

    1
    2
    3
    命令1:usermod -U

    命令2:passwd -u
  2. 给一个账号指定最短使用期限(mindays)(2种方法):

    1
    2
    3
    命令1:passwd -n

    命令2:chage -m
  1. 最大使用期限(maxdays)(2种方法):

    1
    2
    3
    命令1:passwd -x

    命令2:chage -M
  1. 设置一个账号提前多少天开始警告(warndays)(2种方法):

    1
    2
    3
    命令1:passwd -w

    命令2:chage -W
  2. 设置一个账号非活动期限(inactivedays)(3种方法):

    1
    2
    3
    4
    5
    命令1:passwd -i

    命令2:usermod -f

    命令3:chage -I
  3. 设置一个账号的有效期(expiredate)(2种方法):

    1
    2
    3
    命令1:usermod -e YYYY-MM-DD    设置用户账号过期时间

    命令2:chage -E YYYY-MM-DD 设置用户账号过期时间
-------------本文结束感谢您的阅读-------------
0%