当前位置: 首页 > 科技观察

linux下查询一个组内所有用户的三种方式

时间:2023-03-12 01:20:01 科技观察

之前我们介绍过如何在linux下列出所有用户,今天分享类似的内容,如何列出一个组内所有用户。每个人都应该知道组和用户的概念。在Linux中,可以有多个组和用户。一个组包含多个用户,一个用户也可以是多个组的成员。我们可以查询一个用户属于哪些组,或者一个组中的所有用户。以下是查找组中所有用户的三种方法。1、使用/etc/group文件列出组中的用户Linux系统中组的信息包含在/etc/group文件中,所以我们可以通过查看的内容来查看组成员的信息这个文件。通常,该文件的内容格式如下:adm:x:4:syslog,gliu下面是各个字段的说明:adm是组名;x代表密码字段(当然你不会看到明文的密码);4是组ID为GID;syslog和gliu是属于组adm的用户。如果觉得手动查看文件内容很麻烦,可以使用grep和cut命令搜索文件内容:grep'^group_name:.*$'/etc/group|cut-d:-f4上面的命令搜索指定组名开头的所有行,然后cut命令把第四列用冒号:隔开,结果就是组成员的名字:grep'^adm:.*$'/etc/组|cut-d:-f4syslog,gliu2,在Linux中使用getent命令列出组成员getent是一个多用途命令,用于查询/etc目录下的数据库文件,所以我们可以用它来查询/etc/group文件和获取指定组的用户如下:getentgroupgroup_name会显示匹配组名的行,即该组的成员:getentgroupsudosudo:x:27:gliu3,使用members命令列出用户在group有一个非常简洁的命令行工具就是members命令,它也很容易列出特定组的所有成员。不过通常情况下,并不是所有的系统都会默认安装members命令,所以我们需要手动安装:在基于Debian/Ubuntu的系统上,可以使用如下命令安装:sudoaptinstallmembers如果找不到这在Ubuntu命令中,您需要启用universe存储库并重试。Ubuntu中的repository的启用和禁用请参考:https://itsfoss.com/ubuntu-repositories/命令安装完成后,可以运行如下命令:membersgroup_name例如查看哪些用户有sudo权限权限,可以使用members命令如下:memberssudo这样会列出sudo组内的所有用户:$memberssudogliu以上就是本次分享的三种列出组内所有用户的方法。