Se si dispone dell'accesso root sulla macchina, è possibile effettuare le seguenti operazioni:
sudo grep -vE '^[^*!]+:[*!]:' /etc/shadow | sort | cut -d: -f1 | while read user; do id $user; done | column -ts' ,' | vi '+set nowrap' -
Come funziona
Diventa root per leggere il file shadow. Hai bisogno dei privilegi di root solo se vuoi verificare se l'utente ha una password impostata (utente umano), altrimenti puoi semplicemente cat /etc/passwd
invece di sudo grep ...
:
sudo
Mostra solo gli utenti che hanno una password impostata:
grep -vE '^[^*!]+:[*!]:' /etc/shadow
Ordina per nome utente:
sort
Elimina tutte le informazioni tranne il nome utente:
cut -d: -f1
Scorrere i nomi utente e arricchirlo con le informazioni di gruppo:
while read user; do id $user; done
Formatta l'input in colonne:
column -ts' ,'
Usa vi per visualizzare il risultato:
vi '+set nowrap' -
Se non si dispone dell'accesso root,
prova qualcosa del genere:
cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t
Il suo output è un po 'diverso, ma lo lascio come un esercizio al lettore per combinare le due parti in questa risposta in qualcosa che si adatta perfettamente al lavoro. (Non ami e basta sed
?)
cut
. Per alfabetico, c'èsort
. Se hai bisogno dei nomi dei gruppi, gioca con join (che potrebbe effettivamente essere in grado di mostrare solo un sottoinsieme di colonne, tra l'altro).