Se você tiver acesso root na máquina, poderá fazer o seguinte:
sudo grep -vE '^[^*!]+:[*!]:' /etc/shadow | sort | cut -d: -f1 | while read user; do id $user; done | column -ts' ,' | vi '+set nowrap' -
Como funciona
Torne-se root para ler o arquivo de sombra. Você só precisa de privilégios de root se quiser verificar se o usuário tem uma senha definida (usuário humano); caso contrário, você pode simplesmente em cat /etc/passwdvez de sudo grep ...:
sudo
Mostrar apenas usuários com uma senha definida:
grep -vE '^[^*!]+:[*!]:' /etc/shadow
Classificar por nome de usuário:
sort
Descarte todas as informações, exceto o nome de usuário:
cut -d: -f1
Itere os nomes de usuário e o enriqueça com informações do grupo:
while read user; do id $user; done
Formate a entrada em colunas:
column -ts' ,'
Use vi para visualizar o resultado:
vi '+set nowrap' -
Se você não tem acesso root,
tente algo como isto:
cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t
Seu resultado é um pouco diferente, mas deixo como exercício para o leitor combinar as duas partes desta resposta em algo que se encaixa perfeitamente no trabalho. (Você simplesmente não ama sed?)
cut. Para alfabetizado, existesort. Se você precisar dos nomes dos grupos, jogue com join (que pode realmente mostrar apenas um subconjunto de colunas, btw).