在 Linux 中查看所有的用户组

Linux 中,组是用户的集合。这些组的主要目的是为给定资源定义一组权限,如读取,写入或执行权限,这些权限可以在组内的用户之间共享。还可以可以将用户添加到现有的用户组以利用其授予的权限。

本教程介绍在 Linux 中如何显示用户所属的所有组。我们还将解释如何列出组中的所有成员。

Linux组

用户可以属于两种类型的组:

主要或登录组 - 是分配给用户创建的文件的组。通常,主组的名称与用户的名称相同。每个用户必须属于一个主要组。

辅助组或补充组 - 用于向一组用户授予某些特权。用户可以是零个或多个辅助组的成员。

列出用户所属的所有组

有多种方法可以找出用户所属的组。

主用户的组存储在 /etc/passwd 文件中,补充组(如果有)列在 /etc/group 文件中。

找到用户群的一种方法是使用 cat , less 或 grep 这些命令列出这些文件的内容。另一个更简单的选择是使用一个命令,其目的是提供有关系统用户和组的信息。

使用 groups 命令

最常用的列出用户所属的所有组的命令是 groups 命令。在没有参数的情况下执行时,该命令将打印当前登录用户所属的所有组的列表:

groups

第一组是主要组。

linuxidc adm cdrom sudo dip plugdev lpadmin sambashare

要获取特定用户所属的所有组的列表,请将该用户名作为 groups 的参数提供:

groups linuxidc

与第一组是主要组之前相同。

linuxidc : linuxidc adm cdrom sudo dip plugdev lpadmin sambashare

在 Linux 中查看所有的用户组

使用 id 命令

该 id 命令打印有关指定用户及其组的信息。如果省略用户名,则显示当前用户的信息。

例如,要获取有关用户 linuxidc 的信息,请键入:

id linuxidc

该命令将显示用户名 (uid) ,用户的主要组 (gid) 和用户的辅助组 (groups)

uid=1000(linuxidc) gid=1000(linuxidc) 组=1000(linuxidc),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)

在 Linux 中查看所有的用户组

要仅打印用户和组名称而不打印用户 ID 和组 ID ,请使用该 -n 选项。选项 -g 将仅打印主要组, 选项 -G 打印所有组。

以下命令将打印当前用户所属组的名称:

id -nG

linuxidc adm cdrom sudo dip plugdev lpadmin sambashare

在 Linux 中查看所有的用户组

列出组的所有成员

要列出组的所有成员,请使用 getent group 命令后跟组名。

例如,要查找具有该名称的组的成员, developers 请使用以下命令:

linuxidc@linuxidc:~/www.linuxidc.com$ getent group linuxidc

如果该组存在,该命令将打印该组及其所有成员:

linuxidc:x:1000:

如果没有输出则表示该组不存在。如下图

在 Linux 中查看所有的用户组

列出所有组

要查看系统上存在的所有组,只需打开该 /etc/group 文件即可。此文件中的每一行代表一个组的信息。

less /etc/group

在 Linux 中查看所有的用户组

另一个选项是使用 getent 命令显示 /etc/nsswitch.conf 文件中配置的 group 数据库中的条目,包括可用于查询所有组列表的数据库。

要获取所有组的列表,请键入以下命令:

getent group

在 Linux 中查看所有的用户组

输出与显示 /etc/group 文件内容时的输出相同。如果使用 LDAP 进行用户身份验证, getent 则将显示 /etc/group 文件和 LDAP 数据库中的所有组。

您还可以使用 awk 或 cut 仅打印包含组名称的第一个字段:

getent group | awk -F: '{ print $1}'

在 Linux 中查看所有的用户组

getent group | cut -d: -f1

在 Linux 中查看所有的用户组

结论

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11839.html