软件指南针:专注于软件传播与分享

Linux用户组管理命令详解

来源:原创 814次浏览 0条评论
☞ 本文主要介绍软件Red Hat Linux的相关内容:Linux用户组管理命令详解

   其下列版本/分支可以参考本文:

  • 全部版本/分支

和Windows系统一样,Linux系统的用户也可以划分为不同的群组进行管理。

下面,我们以Red Hat Linux 9为例来介绍如何进行用户组管理(添加用户组、更改用户组成员、删除用户组等),诸如Ubuntu、Debian、CentOS等Linux发行版均可参考此文。

Linux用户组介绍

在Linux中,我们可以使用用户组对多个具有指定特征的用户进行统一管理。Linux允许创建多个用户组,并且每个用户也可以加入多个用户组,用户也能够继承其所属的全部用户组所具备的所有权限。

在Linux中,用户组大致可以分为普通用户组、系统用户组、私有组三种。其中,

  1. 普通用户组:可以加入多个用户;
  2. 系统用户组:一般用于加入一些系统用户;
  3. 私有组(也成基本组):当创建用户时,如果没有指定所属用户组,则Linux会为其定义一个私有的用户组,其名称与用户名完全相同。
私有组也可以加入其他用户,当私有组中加入其他成员时,该私有组也就成了普通用户组。

添加用户组

在Linux中,我们可以使用命令groupadd 组名来添加用户组。例如,我们想要创建一个名为developer的开发人员组,就可以直接执行命令groupadd developer

查看用户组

当我们创建用户组后,我们可以查看用户组的相关信息。

查看所有用户组

在Linux系统中,所有的用户组信息都存储在文件/etc/group中。因此,想要查看所有用户组的信息,我们可以执行命令cat /etc/group

以最后一行的developers:x:520:为例,其中的developers是用户组名称,x是用户组的密码(一般无用),520是用户组的ID。

文件/etc/group的部分内容

查看指定用户所属用户组

在知道用户名称的前提下,我们还可以使用命令groups 用户名来查看用户所属的用户组。如下图所示,我们使用groups root命令来查看root用户的所有用户组。

root用户组的所有成员

查看指定用户组的所有成员

Linux并没有直接提供查看指定用户组的所有成员的命令。不过,在Linux中,用户组信息一般存储于/etc/group文件中,用户信息存储于/etc/passwd文件中,因此我们可以使用如下命令间接实现查看指定用户组的成员信息。

1、先通过命令grep '用户组名' /etc/group来查看指定用户组名的ID。

查看用户组ID

2、通过正则表达式查找命令grep -E -e '.+?:x:[0-9]+:用户组ID:' /etc/passwd来查看属于指定ID的用户组的成员信息行。

查看用户组的所有成员信息行

修改用户组

如果我们想要修改用户组的名称,我们可以使用命令groupmod -n 新用户组名 原用户组名来修改用户组的名称。例如我们将上面创建的用户组developer修改为developers,则可以执行命令:groupmod -n developers developer

更改用户组成员

创建用户组后,我们可以为该用户组添加多个用户。对于用户而言,其所属的用户组,可以分为主要用户组(也称登录组)和附加用户组两类。一个用户只能属于一个主要用户组,但可以属于多个附加用户组。在Linux中,主要有两种方式可以将用户添加到指定的用户组中。

创建用户时直接指定所属用户组

当我们使用useradd命令创建用户的同时,也可以直接同时指定该用户所属的用户组(如果没有指定任何用户组,Linux会自动为该用户创建一个私有组),命令行语法如下(中括号内的参数为可选参数,注意大小写):

useradd [-g 主要用户组名] [-G 附加用户组] 用户名

例如,我们在创建用户jim的同时,可以指定其所属的主要用户组为developers,执行命令为:useradd -g developers jim

同理,我们想要为用户指定多个附加用户组,也可以使用命令useradd -G groupname username。如果我们想要一次性为该用户指定多个附加用户组,则可以写上多个用户组名称,它们之间用英文逗号隔开(不要留空格),例如:useradd -G group1,group2,group3 username

指定现存用户的所属用户组

如果用户已经存在,我们也可以使用usermod命令来指定用户所属的主要用户组和附加用户组等信息,命令语法如下:

usermod [-g 主要用户组名] [-G 附加用户组] 用户名

确切地说,使用usermod指定用户组的参数及用法与前面所说的useradd命令完全一致,在这里我们就不再赘述。

移除指定用户组:上述两种命令指定的用户组,不是在用户原有用户组的基础上进行追加,而是直接覆盖该用户之前所在的用户组。也就是说,如果用户原来属于组A和组B,我们重新指定该用户所属用户组为A,就相当于将该用户从组B中移除。

删除用户组

我们可以使用groupdel 用户组名来删除指定的用户组。例如,使用命令groupdel developers即可删除用户组developers

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部