在 Linux 零碎中,用户和组的治理是十分重要的一部分。每个用户都属于一个或多个组,这些组的定义存储在 /etc/group 文件中。如果你想查看属于特定组(例如 docker 组)的所有用户,能够应用一些命令行工具来实现。
首先,咱们须要了解 /etc/group 文件的构造。这个文件中的每一行都示意一个组,每一行由四个字段组成,这四个字段由冒号 ”:” 分隔。这四个字段顺次是:组名,明码(通常为空或为 ”x”),GID(组 ID),和组成员(以逗号分隔的用户名列表)。
例如,docker 组的一行可能看起来像这样:
docker:x:999:user1,user2,user3
这示意有一个名为 docker 的组,其 GID 为 999,有三个用户 user1、user2 和 user3 是这个组的成员。
要列出 docker 组的所有成员,你能够应用 grep 命令来搜寻 /etc/group 文件中蕴含 ”docker” 的行,而后应用 cut 命令来提取组成员字段。这个命令可能是这样的:
grep '^docker:' /etc/group | cut -d: -f4
这个命令的工作原理如下:
grep '^docker:' /etc/group
:这个命令在 /etc/group 文件中搜寻以 ”docker:” 结尾的行。”^docker:” 是一个正则表达式,”^” 示意行的结尾。cut -d: -f4
:这个命令用冒号作为字段分隔符,而后提取第 4 个字段(即组成员字段)。
这个命令的输入是一个以逗号分隔的用户名列表,这些用户名就是 docker 组的所有成员。
如果你心愿每个用户名都独自占一行,你能够再增加一个 tr 命令来替换逗号为换行符,这样就能够失去一个更易读的列表:
grep '^docker:' /etc/group | cut -d: -f4 | tr ',' '\n'
这个命令的输入是一个每行一个用户名的列表。
以上就是在 Linux 零碎中查看属于特定组的所有用户的办法。这个办法是基于文本处理工具的,它们是 Linux 命令行的弱小性能之一。通过这些工具,你能够轻松地解决各种文本文件,包含零碎配置文件和日志文件等。