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 shadow. Você só precisa de privilégios de root se quiser verificar se o usuário tem uma senha configurada (usuário humano), caso contrário, você poderá apenas cat /etc/passwd
em vez de sudo grep ...
:
sudo
Mostrar apenas usuários que tenham 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 pelos nomes de usuário e enriqueça com informações do grupo:
while read user; do id $user; done
Formate a entrada em colunas:
column -ts' ,'
Use vi para ver o resultado:
vi '+set nowrap' -
Se você não tem acesso root,
tente algo assim:
cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t
Sua saída é um pouco diferente, mas deixo como um exercício para o leitor combinar as duas partes desta resposta em algo que se encaixa perfeitamente no trabalho. (Você não ama apenas sed
?)