getent
(vem com libc-bin
) é o que você está procurando.
Você deseja analisar o banco de dados group
( /etc/group
e / ou semelhante), por exemplo:
getent group adm
você receberá a entrada relevante para o grupo adm
, incluindo as informações de associação do grupo.
Os campos são:
<group_name>:<group_password>:<group_id>:<members>
Se você quiser apenas os nomes de usuário dos membros:
getent group adm | awk -F: '{print $NF}'
A vantagem adicional de getent
é que ele também buscaria os dados da rede, se configurado em /etc/nsswitch.conf
.
No meu sistema:
% getent group adm
adm:x:4:syslog,foobar
% getent group adm | awk -F: '{print $NF}'
syslog,foobar