怎样在 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、Linux下用getent命令列出组成员

getent 是一个多用途命令,用于从 /etc 目录中的数据库文件进行查询。 所以你可以用它来查询/etc/group文件,通过以下方式获取指定组的用户:

getent group group_name

这将显示与组名匹配的行,在这里您可以看到组的成员:

getent group sudo
sudo:x:27:abhishek

3.使用’members’命令列出组中的用户

有一个微小的命令行工具可以简化列出特定组的所有成员的过程。

members 命令通常不会安装在所有系统中,因此您必须自己安装。

在基于 Debian/Ubuntu 的系统上,您可以使用以下命令安装它:

sudo apt install members

如果在 Ubuntu 中找不到该命令,您应该 启用 Universe 存储库 然后再试一次。

安装命令后,您可以像这样运行它:

members group_name

为了 example, 如果你想检查哪些用户有 sudo 访问,您可以像这样使用 members 命令:

members sudo

并且输出将列出所有用户 sudo 团体。

members sudo
abhishek

就是这样…

看,获取属于一个组的用户绝对简单。 你学会了三种方法。

你最喜欢哪种方法? 或者,您是否使用其他方式在 Linux 中列出组成员? 为什么不在这里与我们分享呢?

相关阅读:

Posted in: LinuxTags: ,