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

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

2

 

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

(8)
wangxczwangxcz
上一篇 2018-04-03
下一篇 2018-04-03

相关推荐

  • linux 新手命令操作3

    linux 新手命令操作3

    Linux笔记 2018-07-06
  • 学习笔记(14)

    学习笔记(14)

    Linux笔记 2018-04-30
  • MySQL数据库简介及安装实验

    本节索引: 一、MySQL数据库简介 二、实验:使用yum源安装MariaDB 10.2.15 三、实验:通用二进制格式安装MariaDB 10.2.15 四、实验:编译安装MariaDB 10.2.15 五、实验:进行mysql(MariaDB)多实例安装 一、MySQL数据库简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目…

    2018-06-05
  • 第三周作业

    1 列出当前系统上所有已经登陆的用户的用户名,注意:同一个用户名登陆多次,则只显示一次。
    2 取出最后登陆到当前系统的用户的相关信息。
    3 取出当前系统上被用户当作其默认shell的最多的那个shell.
    4 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5 取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6 列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字装换为大写后保存至/tmp/etc.conf文件中。
    7 显示/var目录下一级子目录或文件的总个数。
    8 取出/etc/group文件中第三个字符段数值最小的10个组的名字。
    9 将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10. 请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)创建组distro, 其GID为2016
    (2)创建用户mandriva, 其ID号为1005,基本组为distro
    (3)创建用户mageia, 其ID号为1100,家目录为/home/linux
    (4)给用户mageia添加密码,密码为mageedu
    (5)删除mandriva, 但保留其家目录
    (6)创建用户slackware, 其ID号为2002, 基本组为distro, 附加组为peguin
    (7)修改slackware的默认shell为/bin/tcsh
    (8)为用户slackware的新增附加组admins

    2018-06-05
  • 程序包编译

    程序包编译安装:Application-VERSION-release.src.rpm –> 安装后,使用rpmbuild命令制作 成二进制格式的rpm包,而后再安装源代码–>预处理–>编译–>汇编–>链接–>执行源代码组织格式:多文件:文件中的代码之…

    Linux笔记 2018-04-22
  • d

    ““ function fun(){ echo “这是一句非常牛逼的代码”;}fun(); ““

    Linux笔记 2018-07-09

评论列表(1条)

  • 小孜然
    小孜然 2018-04-16 15:04

    电信大佬 666