目录
[二、了解 /etc/group 文件](#二、了解 /etc/group 文件)
[3.1 任务:查看当前组设置](#3.1 任务:查看当前组设置)
[3.2 任务:找出用户所在的组](#3.2 任务:找出用户所在的组)
[3.3 任务:打印用户/组身份](#3.3 任务:打印用户/组身份)
[3.3.1 仅显示组 ID,输入:](#3.3.1 仅显示组 ID,输入:)
[3.3.2 仅显示组 ID 和补充组,输入:](#3.3.2 仅显示组 ID 和补充组,输入:)
[四、如何使用 groupadd 命令在 Linux 中创建新组?](#四、如何使用 groupadd 命令在 Linux 中创建新组?)
[五、如何从 Linux 系统中删除已有的用户组?](#五、如何从 Linux 系统中删除已有的用户组?)
[六、修改 Linux 系统中的现有用户组](#六、修改 Linux 系统中的现有用户组)
[6.1 在 Linux 中更改组 ID](#6.1 在 Linux 中更改组 ID)
[6.2 更改组名称](#6.2 更改组名称)
[七、关于 gpasswd 命令的说明](#七、关于 gpasswd 命令的说明)
[八、/etc/groups 相关 Linux 命令](#八、/etc/groups 相关 Linux 命令)
一、说明
/etc/group 是一个文本文件,用于定义用户在 Linux 和 UNIX 操作系统下所属的组。在 Unix / Linux 下,可以将多个用户分类为组。Unix 文件系统权限分为三个类:用户、组和其他。使用组允许以有组织的方式委派其他功能,例如访问磁盘、打印机和其他外围设备。除其他外,此方法还使超级用户能够将某些管理任务委派给普通用户。
教程详细信息 | |
---|---|
难度级别 | 容易 |
需要Root 权限 | 是的 |
要求 | Linux 或 Unix 终端 |
类别 | 用户管理 |
操作系统兼容性 | AIX • AlmaLinux • Alpine • Amazon Linux • Arch • BSD • CentOS • Debian • Fedora • FreeBSD • HP-UX • Linux • macOS • Mint • NetBSD • OpenBSD • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu • Unix • WSL |
预计阅读时间 | 4 分钟 |
二、了解 /etc/group 文件
它存储组信息或定义用户组,即定义用户所属的组。每行有一个条目,每行具有以下格式(所有字段都用冒号 (:)
图 01: /etc/group 文件中的示例条目
这里项目解释
- group_name:是组的名称。如果运行 ls -l 命令,您将在 group 字段中看到此名称。
- 密码:通常不使用密码,因此它是空的/空白的。它可以存储加密的密码。这对于实施特权组非常有用。
- **群组 ID (GID):**必须为每个用户分配一个群组 ID。您可以在 /etc/passwd 文件中看到此数字。
- 组列表:组成员的用户名列表。用户名必须用逗号分隔。
三、有关用户组的更多信息
Linux 和 UNIX 系统上的用户被分配到一个或多个组,原因如下:
- 与少量用户共享文件或其他资源
- 易于用户管理
- 易于用户监控
- 组成员资格是大型 Linux (UNIX) 安装的完美解决方案。
- 组成员身份为您或您的用户提供了对允许该组访问的文件、目录或设备的特殊访问权限
(图 01:理解组)
用户 tom 是"Web 开发人员"和"销售"组的成员。所以 tom 可以访问的文件属于两个组。
3.1 任务:查看当前组设置
键入以下任一命令:
less /etc/group
或:
more /etc/group
或:
$ more /etc/group
3.2 任务:找出用户所在的组
键入以下 groups 命令:
示例输出:
$ groups {username}
$ groups
$ groups vivek
输出:
vivek : vivek adm dialout cdrom plugdev lpadmin netdev admin sambashare libvirtd
3.3 任务:打印用户/组身份
使用 id 命令显示有关给定用户的信息。
3.3.1 仅显示组 ID,
输入:
使用 id 命令:
OR$ id -g
$ id -g user
$ id -g vivek
$ id -gn vivek
3.3.2 仅显示组 ID 和补充组
输入
$ id -G
$ id -G user
$ id -G vivek
或
$ id -Gn vivek
四、如何使用oupadd 命令在 Linux 中创建新组?
要创建名为 sales 的新组,请运行:
想要创建名为 sysftp 的新系统组吗?
以下是创建一个名为 'blogusers' 的新组的方法,其特定 GID(组 ID)为 3000:$ sudo groupadd sales
$ sudo groupadd --system sysftp
$ sudo groupadd --gid 3000 blogusers
五、如何从 Linux 系统中删除已有的用户组?
尝试 groupdel 命令或 groupmod 命令。例如,删除一个名为 'vftpusers' 的现有组:
$ sudo groupdel vftpusers
六、修改 Linux 系统中的现有用户组
你需要使用 groupmod 命令。让我们看看一些常见的例子:
6.1 在 Linux 中更改组 ID
请尝试以下示例:
$ sudo groupmod --gid <new_id> <group_name>
6.2 更改组名称
语法为:
$ sudo groupmod --new-name <new_group_name_here> <old_group_name_here>
七、关于 gpasswd 命令的说明
请注意,可以使用 gpasswd 命令来管理 /etc/group 和 /etc/gshadow 文件。每个组都可以有管理员、成员和密码。下面是一个简单的示例:
设置组管理员(比如名为 ftpadmin 的组,带有 tom 和 jerry 成员)
接下来,设置组成员列表:
现在,为命名组 'ftpadmin' 创建一个密码:
你可以将用户添加到命名组 'ftpadmin':
想要从命名组 'ftpadmin' 中移动一个用户:
$ sudo gpasswd -A tom,jerry ftpadmin
$ sudo gpasswd -M vivek,raj ftpadmin
$ sudo gpasswd ftpadmin
$ sudo gpasswd -a <user_name_here> ftpadmin
$ sudo gpasswd -d <user_name_here> ftpadmin
八、/etc/groups 相关 Linux 命令
请参阅以下与 Linux 中的 /etc/groups 文件相关的命令
- chgrp command (chgrp 命令) -- 更改文件和目录的组所有权。
- groupadd 命令 -- 将用户组添加到系统。
- gpasswd 命令 -- 管理 /etc/group 和 /etc/gshadow 文件。
- groups 命令 -- 请参阅用户的组成员资格。
- login command (登录命令) -- 登录程序用于与系统建立新会话。
- groupdel 命令 -- 从系统中删除现有用户组。
- newgrp 命令 -- 切换主组成员资格。
- sg command -- 以不同的组 ID 运行命令。
- groupmod command -- 修改系统中的现有用户组。
- gshadow -- 组账户的影子组文件。
- passwd command (passwd 命令) -- 用于更改用户密码的工具。
- vigr command (vigr 命令) -- 编辑组文件。
此条目是 Linux/UNIX 系统的帐户文件教程 系列(共 3 个)的第 3 个。继续阅读该系列的其余部分: