了解 Linux 中的 /etc/group 文件
/etc/group 是一个文本文件,它定义了 Linux 和 UNIX 操作系统下用户所属的组。在 Unix / Linux 下,多个用户可以分为多个组。Unix 文件系统权限分为三类:用户、组和其他。使用组可以有组织地委派其他能力,例如访问磁盘、打印机和其他外围设备。除其他方法外,这种方法还允许超级用户将一些管理任务委派给普通用户。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 或 Unix 终端 |
类别 | 用户管理 |
操作系统兼容性 | AIX • Alma • 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 可以访问属于这两个组的文件。
任务:查看当前组设置
键入以下任一命令:
$ less /etc/group
或者使用 more 命令:
$ more /etc/group
或者使用cat 命令:
$ more /etc/group
任务:找出用户所在的组
输入以下组命令:
示例输出:
$ groups {username}
$ groups
$ groups vivek
vivek : vivek adm dialout cdrom plugdev lpadmin netdev admin sambashare libvirtd
任务:打印用户/组身份
使用 id 命令显示有关给定用户的信息。
仅显示组ID,输入:
使用id 命令:
或者
$ id -g
$ id -g user
$ id -g vivek
$ id -gn vivek
仅显示组ID和补充组,输入:
$ id -G
$ id -G user
$ id -G vivek
或者
$ id -Gn vivek
如何使用 groupadd 命令在 Linux 中创建新组?
要创建一个名为 sales 的新组,请运行:
$ sudo groupadd sales
想要创建一个名为 sysftp 的新系统组?
$ sudo groupadd --system sysftp
以下是如何创建一个名为“blogusers”的新组,其特定 GID(组 ID)为 3000:
$ sudo groupadd --gid 3000 blogusers
如何从 Linux 系统中删除现有的用户组?
尝试 groupdel 命令或 groupmod 命令。例如,删除名为“vftpusers”的现有组:
$ sudo groupdel vftpusers
修改Linux系统中现有的用户组
您需要使用 groupmod 命令。让我们看一些常见示例:
在 Linux 中更改组 ID
尝试以下示例:
$ sudo groupmod --gid <new_id> <group_name>
更改群组名称
语法是:
$ sudo groupmod --new-name <new_group_name_here> <old_group_name_here>
关于 gpasswd 命令的说明
请注意,可以使用 gpasswd 命令来管理 /etc/group 和 /etc/gshadow 文件。每个组都可以有管理员、成员和密码。下面是一个简单的示例:
设置组管理员(假设组名为 ftpadmin,成员包括 tom 和 jerry)
$ sudo gpasswd -A tom,jerry ftpadmin
接下来,设置组成员列表:
$ sudo gpasswd -M vivek,raj ftpadmin
现在,为命名组“ftpadmin”创建密码:
$ sudo gpasswd ftpadmin
您可以将用户添加到命名组“ftpadmin”:
$ sudo gpasswd -a <user_name_here> ftpadmin
想要从命名组“ftpadmin”中删除用户:
$ sudo gpasswd -d <user_name_here> ftpadmin
/etc/groups 相关的 Linux 命令
在 Linux 中查看下列与 /etc/groups 文件相关的命令
- chgrp 命令
- groupadd 命令
- gpasswd 命令
- 组命令
- login 命令
- groupdel 命令
- newgrp 命令
- sg 命令
- getgrent 命令
- groupmod 命令
- getgrnam 命令
- gshadow 命令
- passwd 命令
- vigr 命令
- 了解/etc/passwd文件格式
- /etc/shadow文件格式
- Linux 和 Unix /etc/group文件