Mostrar todos os usuários e seus grupos / vice-versa

51

Eu sei que tenho grupos e usuários existentes, mas não tenho certeza sobre a associação deles. Existe um comando de shell que posso usar para listar todos os usuários ou todos os grupos e um comando para listar todos os grupos / usuários para um usuário / grupo especificado?

Então, algo como showusers listaria todos os usuários e showgroups -u thisuser mostraria todos os grupos que possuem thisuser .

    
por Steve Robbins 31.01.2012 / 04:42

7 respostas

68

Todos os usuários:

$ getent passwd

Todos os grupos:

$ getent group

Todos os grupos com um usuário específico:

$ getent group | grep username
    
por 31.01.2012 / 04:45
10

Listar usuários e seus grupos:

for user in $(awk -F: '{print $1}' /etc/passwd); do groups $user; done

Listar grupos e seus usuários:

cat /etc/group | awk -F: '{print $1, $3, $4}' | while read group gid members; do
    members=$members,$(awk -F: "\ == $gid {print \",\" \}" /etc/passwd);
    echo "$group: $members" | sed 's/,,*/ /g';
done
    
por 31.01.2012 / 05:33
2

Listar todos os usuários

cut -d':' -f 1 /etc/passwd

Ou

awk -F ':' '{print $1}' /etc/passwd

Enquanto cat / etc / passwd mostra todos os usuários (e um monte de outras coisas), cut -d ':' -f 1 é uma maneira simples de dividir cada linha com ':' como um delimitador e extrai apenas o primeiro campo (usuários). Praticamente o mesmo que a versão awk.

Listar todos os grupos

cut -d':' -f 1 /etc/group

Ou

awk -F ':' '{print $1}' /etc/group

Adivinhe, muito semelhante a listar usuários. Basta analisar / etc / group .

Outra maneira interessante, talvez mais próxima do que o OP queria, é compgen . Não tenho certeza sobre problemas de compatibilidade.

compgen -u
compgen -g
    
por 23.09.2017 / 19:48
2

Se você não se importa com usuários remotos, como LDAP ou NIS, para listar usuários e seus grupos associados de uma maneira simples:

cut -d: -f1 /etc/passwd | xargs groups

Saída;

root : root
myuser : root www-data fuse 
anotheruser : anotheruser   cdrom floppy audio dip video plugdev scanner bluetooth netdev
    
por 19.10.2017 / 07:42
-1

para o debian

cat /etc/passwd # show all users
cat /etc/group # show all groups
cat /etc/passwd | grep group # show all users with specified group
    
por 30.11.2016 / 10:25
-2

Assim:

sudo cat /etc/gshadow |grep group
sudo cat /etc/gshadow |grep username
    
por 02.09.2016 / 22:05
-2

Use este comando para obter todos os grupos e usuários desse grupo específico.

grep '
> ' /etc/group
    
por 08.02.2017 / 09:21