Linux 用户管理:用户组管理(groupadd, gruopdel) 0 个改进

用户可归属不同的用户组中。用户组机制可允许我们便利地在用户组上设置权限应用到归属组中的所有用户上,以代替繁琐地分别在单一用户级别上设置权限。

每个 Linux 发行版都会包含有图形化工具管理用户组配置。而命令行工具或使用 vivigr 管理用户组依赖管理者的经验。只有有经验的管理者才会使用 vivigr 管理用户组,由于这些工具可准确地操纵配置文件去锁定或修改用户组的配置。

groupadd 命令

groupadd 命令用来在系统中创建或新增用户组。

语法:

groupadd <groupName>  

举例:

# groupadd php  
# groupadd java  
# groupadd android  
# groupadd spring  

Linux Local Group1

见如上截图,通过 groupadd 命令,用户组 php,java,android 和 spring 被创建。(需要超级用户权限「root」)


用户组文件

'/etc/group' 文件中包含了所有用户组及成员信息。一个用户可以同时隶属多个不同的用户组。

语法:

/etc/group  

Linux Local Group2

参见如上截图,以冒号(:)分隔的第一列是用户组名,第二列是密码标记 -- 可能会是密码密文,也可能为空 -- ,第三列是用户组 id (GID),第四列是用户组成员列表。也许第四列为空,代表此用户组中无成员用户。

Groups 命令

groups 命令告诉我们当前用户属于哪些用户组。

语法:

groups  

Linux Local Group3

如上截图显示,用户 jtpsssit 分属不同的用户组。


使用 usermod 命令

用户组成员可通过 usermoduseradd 进行改变。如果在 usermod 命令中未列出用户所有所属的用户组名,那么用户将被从未列出的所属用户组中删除。为了避免这种情况发生,命令行中使用 '-a' 命令选项,其中 '-a' 选项是 append (追加) 的含义。

语法:

usermod -a -G <group> <userName>  
#修改 userName 用户所属用户组,
#追加 userName 用户属于 group 组,
#保持 userName 原有其它所属用户组不变。

举例:

usermod -a -G php akki  
usermod -a -G php abc  
usermod -a -G java jtp  

Linux Local Group4

见如上截图,我们显示 '/etc/group' 内容表明,用户 akkiabc 被加入到 php 用户组,用户 jtp 被加入到 java 用户组。(需要超级用户「root」权限)


groupmod 命令

groupmod 命令的帮助下,可以修改已存在的用户组名。

语法:

groupmod -n  <newGroup>  <oldGroup>
#将 oldGroup 组名修改为 newGroup 新组名
#原文例示有错,已改,新组名在前,旧组名在后

举例:

groupmod -n sql spring  

Linux Local Group5

见如上截图,用户组 spring 被改为 sql


gruopdel 命令

groupdel 命令从系统中永久删除一个用户组。

语法:

groupdel <group>  
#删除名为 group 的用户组

举例:

groupdel sql  

Linux Local Group6

见如上截图,用户组 sql 从系统中被删除。(需要超级用户「root」权限)


gpasswd 命令

使用 gpasswd 命令可控制用户组成员,增加成员用户或删除。

语法:

gpsswd -A <user> <group>  
#命令选项 -A 用于添加用户组的管理员成员

Example:

gpasswd -A jtp java  
#添加用户 jtp 成为用户组 java 的管理员成员

Linux Local Group7

参考如上截图,我们通过命令 gpasswd -A jtp java 命令将用户 jtp 添加为用户组 java管理员成员(需要超级用户「root」权限),然后使用 su - jtp 切换到用户 jtp 。在用户 jtp 下使用 gpasswd -a aaa java 将用户 aaa 添加为用户组 java 的组成员。

用户组管理员成员 用户可以不必是用户组的组成员。它被赋予增加、删除组成员的权利,而不必是那个组的组成员。

下面的截图显示,文件 '/etc/gshadow' 中保存着用户组的管理员成员用户信息。

Linux Local Group8

删除用户组中所有的管理员成员用户,通过设置用户组管理员成员为空命令完成。

语法:

gpasswd -A "" <group>  
#设置用户组 group 的管理员成员为 "",清空管理员成员

举例:

gpasswd -A "" java  
#清空用户组 java 的管理员成员为空

Linux Local Group9

见如上截图,用户 jtp 被清除出用户组 java 的管理员成员。(需要超级用户「root」权限)

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!