11.5. 使用命令行编辑用户组
用户属于某个组集合,允许用户的逻辑组集合对文件和文件夹具有类似的访问权限。您可以从命令行编辑主和补充用户组,以更改用户的权限。
11.5.1. 主和补充用户组
组是出于共同目的将多个用户帐户连接在一起的实体,例如对特定文件授予访问权限。
在 Linux 上,用户组可以充当主或补充组。主和补充组具有以下属性:
- 主组
- 每个用户始终只有一个主组。
- 您可以更改用户的主组。
- 补充组
- 您可以将现有用户添加到现有的补充组中,以使用相同的安全和访问权限管理组中的用户。
- 用户可以是零个或多个补充组的成员。
11.5.2. 列出用户的主和补充组
您可以列出用户的组,以查看他们所属的主和补充组。
流程
显示用户的主组以及任何补充组的名称:
$ groups user-name
使用用户名称替换 user-name。如果不提供用户名,则命令将显示当前用户的组成员身份。第一个组是主组,后跟可选的补充组。
例 11.4. 列出用户 sarah 的组:
$ groups sarah
输出显示:
sarah : sarah wheel developer
用户
arah
有一个主组sarah
,它是补充组wheel
和developer
的成员。例 11.5. 列出用户 marc 的组:
$ groups marc
输出显示:
marc : marc
用户
marc
仅有一个主组marc
,没有补充组。
11.5.3. 更改用户的主组
您可以将现有用户的主组更改为一个新组。
先决条件:
-
root
访问权限 - 新组必须存在
流程
更改用户的主组:
# usermod -g group-name user-name
使用新主组的名称替换 group-name,并使用用户名替换 user-name。
注意更改用户的主组时,命令还会将用户主目录中所有文件的组所有权自动更改为新的主组。您必须手动修复用户主目录外文件的组所有权。
例 11.6. 更改用户的主组的示例:
如果用户
arah
属于主组sarah1
,且您想将用户的主组更改为sarah2
,请使用:# usermod -g sarah2 sarah
验证
验证您是否更改了用户的主组:
$ groups sarah
输出显示:
sarah : sarah2
11.5.4. 从命令行将用户添加到补充组中
您可以将用户添加到补充组中,以管理权限或启用对特定文件或设备的访问权限。
先决条件
-
root
访问权限
流程
要在用户的附加组中添加一个组,请使用:
# usermod --append -G group-name username
使用组群名称替换 group- name,并将 group-name 替换为组的名称。
例 11.7. 将用户添加到补充组中
要将用户
sysadmin
添加到system-administrators
组中,请使用:# usermod --append -G system-administrators sysadmin
验证
要验证新的组被添加到用户
sysadmin
的附加组中,请使用:# groups sysadmin
输出显示:
sysadmin : sysadmin system-administrators
11.5.5. 从补充组中删除用户
您可以从补充组中删除现有的用户,以限制他们对文件和设备的权限或访问。
先决条件
-
root
访问权限
流程
从补充组中删除用户:
# gpasswd -d user-name group-name
使用用户名替换 user-name,并使用补充组的名称替换 group-name。
例 11.8. 从补充组中删除用户
如果用户 sarah 有一个主组
sarah2
,并且属于次要组wheel
和developers
,并且您想从组developers
中删除该用户,请使用:# gpasswd -d sarah developers
验证
验证您是否从次要组 developers 中删除了用户 sarah:
$ groups sarah
输出显示:
sarah : sarah2 wheel
11.5.6. 更改用户的所有补充组
您可以覆盖您希望用户保留其成员的补充组的列表。
先决条件
-
root
访问权限 - 补充组必须存在
流程
覆盖用户的补充组的列表:
# usermod -G group-names username
使用一个或多个补充组的名称替换 group-names。要将用户一次添加到多个补充组中,请使用逗号分隔组名称,并且没有插入空格。例如:
wheel,developer
。使用用户名称替换 user-name。
重要如果用户是当前您未指定的组的成员,则该命令会从组中删除该用户。
例 11.9. 更改用户的补充组的列表
如果用户
sarah
有一个主组sarah2
,并且属于补充组wheel
,您希望用户属于多个补充组developer
、sysadmin
和security
,请使用:# usermod -G wheel,developer,sysadmin,security sarah
验证
验证您是否正确设置了补充组列表:
# groups sarah
输出显示:
sarah : sarah2 wheel developer sysadmin security