如何在 Linux 中列出某个组的所有用户
我已经向您展示了如何在 Linux 命令行中列出所有用户。这个快速提示与此相关但又不同。
我假设您对 Linux 中的组和用户概念有点熟悉。Linux 系统中有多个组和各种用户。一个组可以有多个成员,而一个用户可以是多个组的成员。
您可以检查特定用户属于哪些组,还可以查找某个组的所有用户。
列出 Linux 中某个组的所有用户
在此快速教程中,我将向您展示在 Linux 命令行中列出组中用户的不同方法。
1.使用 /etc/group 文件列出 Linux 中组的成员
群组信息保存在文件 /etc/group 中。您可以查看此文件的内容并查找有关成员的信息。
通常,此文件的条目格式如下:
adm:x:4:syslog,abhishek
以下是各个字段的解释:
- adm 是组名称
- x 代表密码字段(当然你不会看到明文密码)
- 4 是组 ID,又称 GID
- syslog和 abhishek 是属于 adm 组的用户
如果您发现手动在文件中搜索某个组很困难,则可以结合使用grep 命令和cut 命令。
grep '^group_name:.*$' /etc/group | cut -d: -f4
上述命令查找以指定组名开头的所有行,然后 cut 命令提取以 : 分隔符分隔的第四列。结果就是组成员的名称。
grep '^adm:.*$' /etc/group | cut -d: -f4
syslog,abhishek
2. 使用 getent 命令列出 Linux 中的组成员
getent是一个多用途命令,用于查询 /etc 目录中的数据库文件。因此,您可以使用它来查询 /etc/group 文件,并以以下方式获取指定组的用户:
getent group group_name
这将显示与组名匹配的行,在这里您可以看到该组的成员:
getent group sudo
sudo:x:27:abhishek
3. 使用“members”命令列出组中的用户
有一个微小的命令行工具,可以简化列出特定组的所有成员的过程。
通常,所有系统中都不会安装成员命令,因此您必须自行安装。
在基于 Debian/Ubuntu 的系统上,您可以使用以下命令安装它:
sudo apt install members
如果在 Ubuntu 中找不到该命令,您应该启用 universe 存储库并重试。
安装命令后,您可以像这样运行它:
members group_name
例如,如果您想检查哪些用户具有 sudo 访问权限,您可以使用这样的成员命令:
members sudo
输出将列出 sudo 组的所有用户。
members sudo
abhishek
就是这样…
瞧,获取属于某个组的用户非常简单。您学习了三种方法。
您最喜欢哪种方法?或者,您是否使用其他方法在 Linux 中列出群组成员?为什么不在这里与我们分享呢?