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/passwd
vez 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).