Tente isto:
getent passwd | awk -F: '{print $1}' | while read name; do groups $name; done
Eu preciso obter e filtrar a lista de usuários do Linux como:
username1 username1_group
username2 username2_group
...
usernameN usernameN_group
Eu tentei, mas apenas o que encontrei é:
cat /etc/passwd | grep /home | cut -d: -f1
Isso me dá a lista de usuários na pasta / home. Mas como posso adicionar o nome do grupo a cada um deles?
Tente isto:
getent passwd | awk -F: '{print $1}' | while read name; do groups $name; done
getent passwd
... e corte o que você precisa.
Além disso, o getent tem a vantagem de procurar em todos os bancos de dados do sistema. O / etc / passwd contém apenas informações para usuários locais, mas não para outros locais como LDAP, NIS, etc.
A lista de grupos é /etc/group
.
Para obter uma lista dos grupos em que um usuário específico está, você pode executar
$ groups username
dê uma olhada no / etc / group
Tags linux