如何在Linux中列出组
在Linux中,组是用户的集合。组的主要目的是为指定资源定义一组权限,例如读,写或执行权限,这些权限可以在组内的用户之间共享。可以将用户添加到现有组中,以利用组授予权限。
本教程说明了如何查找用户所属的所有组。我们还将说明如何列出组中的所有成员。用户可以拥有属于两种类型的组,分别是主要组和补充组。使用groups命令或者id命令列出用户所属的所有组,使用getent group
命令列出组中的所有成员,使用cat命令或less命令查看/etc/group
文件列出系统所有组。
linux-">Linux组
用户可以拥有属于两种类型的组,分别是主要组和补充组。
主要组或登录组
通常,主要组的名称与用户的名称相同。每个用户拥有一个主要组。
次要或补充组
用于向一组用户授予某些权限。辅助组的成员用户可以是零个或多个。
列出用户所属的所有组
有多种方法可以找出用户所属的组。主要用户组存储在/etc/passwd
文件中,补充组在/etc/group
文件中列出。找到用户组的一种方法是将这些文件的内容,你可使用cat
,less
或grep
命令查看两个文件的内容。另一个更简单的选择是使用groups命令,该命令的目的是提供系统用户和组的信息。
使用groups命令
列出用户所属的所有组的最常用的命令是groups
命令。当不带参数执行时,groups
命令将打印当前登录用户所属的所有组:
groups
第一个是主要组,即john是主要组,其它都是补充组。
myfreax adm cdrom sudo dip plugdev lpadmin sambashare
要获取指定用户所属的所有组,请为groups
命令提供用户名作为参数:
groups myfreax
第一个是主要组,即myfreax是主要组,其它都是补充组。
myfreax : myfreax adm cdrom sudo dip plugdev lpadmin lxd sambashare
使用id命令
id
命令显示有关指定用户及其组的信息。如果省略用户名,则会显示当前用户的信息。例如,要获取用户myfreax
的信息,您可以输入:
id myfreax
该命令将显示用户名uid
,用户的主要组gid
和用户的辅助组groups
:
uid=1001(myfreax) gid=1001(myfreax) groups=1001(myfreax),27(sudo)
要仅打印名称而不包含用户和组ID,请使用-n
选项。 -g
选项将仅打印主要组,-G
选项将打印所有组。以下命令将显示当前用户所属的组的名称:
id -nG
myfreax adm cdrom sudo dip plugdev lpadmin lxd sambashare
列出组中的所有成员
要列出组的所有成员,请使用getent group
命令,后跟组名称。例如,要查找developers
组的成员,可以使用以下命令:
getent group developers
如果该组存在,则命令将打印该组及其所有成员:
developers:x:126:frank,mary
如果没有输出,则表示该组不存在。
列出所有组
要查看系统上存在的所有组,只需使用cat命令或less命令查看/etc/group
文件即可。该文件中的每一行代表一组信息。
less /etc/group
另一个选择是使用getent
命令,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。如有任何疑问,请随时发表评论。
以上是 如何在Linux中列出组 的全部内容, 来源链接: utcz.com/z/507026.html