9.5. 使用命令行编辑用户组

用户属于某个组集合,允许用户的逻辑组集合对文件和文件夹具有类似的访问权限。您可以从命令行编辑主和补充用户组,以更改用户的权限。

9.5.1. 主和补充用户组

组是出于共同目的将多个用户帐户连接在一起的实体,例如对特定文件授予访问权限。

在 Linux 上,用户组可以充当主或补充组。主和补充组具有以下属性:

主组
  • 每个用户始终只有一个主组。
  • 您可以更改用户的主组。
补充组
  • 您可以将现有用户添加到现有的补充组中,以使用相同的安全和访问权限管理组中的用户。
  • 用户可以是零个或多个补充组的成员。

9.5.2. 列出用户的主和补充组

您可以列出用户的组,以查看他们所属的主和补充组。

流程

  • 显示用户的主组以及任何补充组的名称:

    $ groups user-name

    使用用户名称替换 user-name。如果不提供用户名,则命令将显示当前用户的组成员身份。第一个组是主组,后跟可选的补充组。

    例 9.4. 列出用户 sarah 的组:

    $ groups sarah

    输出显示:

    sarah : sarah wheel developer

    用户 arah 有一个主组 sarah,它是补充组 wheeldeveloper 的成员。

    例 9.5. 列出用户 marc 的组:

    $ groups marc

    输出显示:

    marc : marc

    用户 marc 仅有一个主组 marc,没有补充组。

9.5.3. 更改用户的主组

您可以将现有用户的主组更改为一个新组。

先决条件:

  1. root 访问权限
  2. 新组必须存在

流程

  • 更改用户的主组:

    # usermod -g group-name user-name

    使用新主组的名称替换 group-name,并使用用户名替换 user-name

    注意

    更改用户的主组时,命令还会将用户主目录中所有文件的组所有权自动更改为新的主组。您必须手动修复用户主目录外文件的组所有权。

    例 9.6. 更改用户的主组的示例:

    如果用户 arah 属于主组 sarah1,且您想将用户的主组更改为 sarah2,请使用:

    # usermod -g sarah2 sarah

验证步骤

  • 验证您是否更改了用户的主组:

    $ groups sarah

    输出显示:

    sarah : sarah2

9.5.4. 从命令行将用户添加到补充组中

您可以将用户添加到补充组中,以管理权限或启用对特定文件或设备的访问权限。

先决条件

  • root 访问权限

流程

  • 要在用户的附加组中添加一个组,请使用:

    # usermod --append -G group-name username

    使用组群名称替换 group- name,并将 group-name 替换为组的名称。

    例 9.7. 将用户添加到补充组中

    要将用户 sysadmin 添加到 system-administrators 组中,请使用:

    # usermod --append -G system-administrators sysadmin

验证步骤

  • 要验证新的组被添加到用户 sysadmin 的附加组中,请使用:

    # groups sysadmin

    输出显示:

    sysadmin : sysadmin system-administrators

9.5.5. 从补充组中删除用户

您可以从补充组中删除现有的用户,以限制他们对文件和设备的权限或访问。

先决条件

  • root 访问权限

流程

  • 从补充组中删除用户:

    # gpasswd -d user-name group-name

    使用用户名替换 user-name,并使用补充组的名称替换 group-name

    例 9.8. 从补充组中删除用户

    如果用户 sarah 有一个主组 sarah2,并且属于次要组 wheeldevelopers,并且您想从组 developers 中删除该用户,请使用:

    # gpasswd -d sarah developers

验证步骤

  • 验证您是否从次要组 developers 中删除了用户 sarah:

    $ groups sarah

    输出显示:

    sarah : sarah2 wheel

9.5.6. 更改用户的所有补充组

您可以覆盖您希望用户保留其成员的补充组的列表。

先决条件

  • root 访问权限
  • 补充组必须存在

流程

  • 覆盖用户的补充组的列表:

    # usermod -G group-names username

    使用一个或多个补充组的名称替换 group-names。要将用户一次添加到多个补充组中,请使用逗号分隔组名称,并且没有插入空格。例如:wheel,developer

    使用用户名称替换 user-name

    重要

    如果用户是当前您未指定的组的成员,则该命令会从组中删除该用户。

    例 9.9. 更改用户的补充组的列表

    如果用户 sarah 有一个主组 sarah2,并且属于补充组 wheel,您希望用户属于多个补充组 developersysadminsecurity,请使用:

    # usermod -G wheel,developer,sysadmin,security sarah

验证步骤

  • 验证您是否正确设置了补充组列表:

    # groups sarah

    输出显示:

    sarah : sarah2 wheel developer sysadmin security