Linux 根据组名查询出该组内所有成员

时间:2021-05-09 17:05:27

目前linux中没有直接根据组名查询组员的命令。

目前系统提供的查找组员和组之间的关系的方法有两种,

一种是:查找/etc/passwd和/etc/group目录,根据/etc/group目录里面的组的id,在/etc/passwd中查找到组内成员。

另一种是:通过groups命令,根据组员查找该组员所属组

我用grep和cut命令实现了通过组名查找出其内组员的功能,命令如下

# gid=`grep '组名' /etc/group | cut -d ':' -f 3` && grep ".*:x:[0-9]*:$gid" /etc/passwd |cut -d ':' -f 1

说明:

这串命令通过&&分开(&&:当前面的命令正确时,后面的命令再执行)

&&前一段命令:先是根据组名用grep从/etc/group中查询出组名哪一行的信息,再用管道命令cut查出GID,之后将GID赋值给变量。

&&后一段命令:先是在grep中通过“正则匹配加GID”从/etc/passwd中查查询出该组内组员的各个信息(一行为一个组员),再用cut将组员的用户名“切”出来。