Linux学习之路Linux每日命令我用 Linux

groupadd,groupmod,groupdel,gpass

2019-05-10  本文已影响0人  快乐程序员

groupadd:添加用户组

语法:

groupadd [选项] 组名

 参数:

-g   GID:指定组 ID;

-r:创建系统群组

使用实例

实例1:创建新群组group1

命令:

groupadd group1

输出:

groupmod:修改用户组

语法:

groupmod [选项] 组名

参数:

-g   GID:指定组 ID;

-n: 新组名,修改后的组名

使用实例

实例2:把群组group1 改成group2

命令:

groupmod –n group2 group1

输出:

groupdel:刪除用户组

语法:

groupdel 组名

注意,不能使用groupdel 命令随意删除群组。此命令仅适用于删除那些 "不是任何用户初始组" 的群组,换句话说,如果有群组还是某用户的初始群组,则无法使用 groupdel 命令成功删除。

使用实例

实例3:

1、删除组group2

2、删除有用户组test2

命令:

groupdel group2

useradd test2

groupdel test2

输出:

说明:

上篇文章中说过useradd test2 没有指定-g的情况下会创建一个与用户名同名组。在删除test2组时会报错,因为该组下有用户test2

gpasswd:把用户添加进组或从组中删除

语法:

gpasswd [选项] 组名

参数:

选项为空时,表示给群组设置密码,仅 root 用户可用

-a:向组内添加一个用户

-d:从组内删除一个用户成员

-M:定义组成员列表,以逗号分隔

-A: 将群组的控制权交给指定用户

使用实例

实例4:

1、把用户test1 加入test2组

2、将用户test2设置成test2组的管理员

命令:

gpasswd –a test1 test2

gpasswd –A test2 test2

输出:

说明:/etc/group 和/etc/gshadow的解释请看下文扩展部份。

扩展:

/ect/group 文件是用户组配置文件,即用户组的所有信息都存放在此文件中。此文件是记录组 ID(GID)和组名相对应的文件。前面讲过,etc/passwd 文件中每行用户信息的第四个字段记录的是用户的初始组 ID,那么,此 GID 的组名到底是什么呢?就要从 /etc/group 文件中查找。

/etc/group 文件的内容可以通过 Vim 看到:

[root@localhost ~]#vim/etc/group

root:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

省略部分输出…

lamp:x:502:

可以看到,此文件中每一行各代表一个用户组。在前面章节中,我们曾创建 lamp 用户,系统默认生成一个 lamp 用户组,在此可以看到,此用户组的 GID 为 502,目前它仅作为 lamp 用户的初始组。各用户组中,还是以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:

组名:密码:GID:该用户组中的用户列表

接下来,分别介绍各个字段具体的含义。

组名

也就是是用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。

组密码

和 /etc/passwd 文件一样,这里的 "x" 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。不过,用户设置密码是为了验证用户的身份,那用户组设置密码是用来做什么的呢?用户组密码主要是用来指定组管理员的,由于系统中的账号可能会非常多,root 用户可能没有时间进行用户的组调整,这时可以给用户组指定组管理员,如果有用户需要加入或退出某用户组,可以由该组的组管理员替代 root 进行管理。但是这项功能目前很少使用,我们也很少设置组密码。如果需要赋予某用户调整某个用户组的权限,则可以使用 sudo 命令代替。

组ID (GID)

就是群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆。这里的组 GID 与 /etc/passwd 文件中第 4 个字段的 GID 相对应,实际上,/etc/passwd

文件中使用 GID 对应的群组名,就是通过此文件对应得到的。

组中的用户

此字段列出每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户。举个例子,lamp 组的组信息为 "lamp:x:502:",可以看到,第四个字段没有写入 lamp 用户,因为 lamp 组是 lamp 用户的初始组。如果要查询这些用户的初始组,则需要先到 /etc/passwd 文件中查看 GID(第四个字段),然后到

/etc/group 文件中比对组名。每个用户都可以加入多个附加组,但是只能属于一个初始组。所以我们在实际工作中,如果需要把用户加入其他组,则需要以附加组的形式添加。例如,我们想让 lamp 也加入 root 这个群组,那么只需要在第一行的最后一个字段加入 lamp,即 root:x:0:lamp 就可以了。一般情况下,用户的初始组就是在建立用户的同时建立的和用户名相同的组。

/ect/gshadow

前面讲过,/etc/passwd文件存储用户基本信息,同时考虑到账户的安全性,将用户的密码信息存放另一个文件 /etc/shadow 中。本节要将的 /etc/gshadow 文件也是如此,组用户信息存储在 /etc/group 文件中,而将组用户的密码信息存储在 /etc/gshadow 文件中。首先,我们借助 Vim 命令查看一下此文件中的内容:

[root@localhost ~]#vim/etc/gshadow

root:::

bin:::bin, daemon

daemon:::bin, daemon

...

省略部分输出...

lamp:!::

文件中,每行代表一个组用户的密码信息,各行信息用 ":" 作为分隔符分为 4 个字段,每个字段的含义如下:

组名:加密密码:组管理员:组附加用户列表

组名

同 /etc/group 文件中的组名相对应。

组密码

对于大多数用户来说,通常不设置组密码,因此该字段常为空,但有时为 "!",指的是该群组没有组密码,也不设有群组管理员。

组管理员

从系统管理员的角度来说,该文件最大的功能就是创建群组管理员。那么,什么是群组管理员呢?考虑到 Linux 系统中账号太多,而超级管理员 root 可能比较忙碌,因此当有用户想要加入某群组时,root 或许不能及时作出回应。这种情况下,如果有群组管理员,那么他就能将用户加入自己管理的群组中,也就免去麻烦 root 了。不过,由于目前有 sudo 之类的工具,因此群组管理员的这个功能已经很少使用了。

组中的附加用户

该字段显示这个用户组中有哪些附加用户,和 /etc/group 文件中附加组显示内容相同。

观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

上一篇下一篇

猜你喜欢

热点阅读