安卓系统

如何在Linux中列出群组

Linux权限机制 [LinuxCast视频教程]

Linux权限机制 [LinuxCast视频教程]

目录:

Anonim

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

本教程说明了如何显示用户所属的所有组。 我们还将说明如何列出组中的所有成员。

Linux群组

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

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

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

列出用户所属的所有组

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

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

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

使用 groups 命令

列出用户所属的所有组的最难忘的命令是 groups 命令。 当不带参数执行时,该命令将打印当前登录用户所属的所有组的列表:

groups

第一组是主要组。

john adm cdrom sudo dip plugdev lpadmin sambashare

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

groups linuxize

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

linuxize: linuxize sudo

使用 id 命令

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

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

id linuxize

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

uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize), 27(sudo)

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

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

id -nG

john adm cdrom sudo dip plugdev lpadmin sambashare

列出组中的所有成员

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

例如,要查找名称为 developers 的组的成员,可以使用以下命令:

getent group developers

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

developers:x:126:frank, mary

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

列出所有组

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

less /etc/group

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

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

getent group

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

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

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

getent group | cut -d: -f1

结论

在本教程中,您学习了如何查找用户所属的组。 相同的命令适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。

如有任何疑问,请随时发表评论。

终奌站