Vedere tutti gli utenti in Linux

Mattepuffo's logo
Vedere tutti gli utenti in Linux

Vedere tutti gli utenti in Linux

In questo articolo avevo parlato di come ottenere informazioni sugli utenti presenti nella nostra Linux box.

Se invece vogliamo sapere quali sono gli utenti linux presenti??

Ogni volta dobbiamo andare in /etc/passwd che non è così comodo da leggere.

Ho trovato in giro questo script bash molto comodo che in pratica mostra tutti gli utenti presenti dividendoli in tre categorie:

  • gli utenti che possono fare login
  • gli utenti che possono fare login e hanno una directory personale in /home
  • quelli che non possono fare login

La funziona in realtà non fa altro che usare awk.

Io ho messo il codice dentro una funzione aggiunta al mio .bashrc.

 

function userinfo {
echo "----- Users that can login -----"
awk -F":" '!/bin\/false/ { print "username: " $1 ", uid: " $3 ", homedir: " $6 }' /etc/passwd

echo -e "\n----- And have /home dir -----"
awk -F":" '!/bin\/false/ && /\/home/ { print "username: " $1 ", uid: " $3 ", homedir: " $6 }' /etc/passwd

echo -e "\n----- Users that can't login -----"
awk -F":" '/\/bin\/false/ { print "username: " $1 ", uid: " $3 ", homedir: " $6 }' /etc/passwd
echo ""
}

Se fate come me vi basterà ricaricare la sehll e dare il nome della funzione (userinfo).

Questo il mio output:

$ userinfo
----- Users that can login -----
username: root, uid: 0, homedir: /root
username: casa, uid: 1000, homedir: /home/casa
username: gdm, uid: 120, homedir: /var/lib/gdm

----- And have /home dir -----
username: casa, uid: 1000, homedir: /home/casa

----- Users that can't login -----
username: bin, uid: 1, homedir: /bin
username: daemon, uid: 2, homedir: /sbin
username: mail, uid: 8, homedir: /var/spool/mail
username: ftp, uid: 14, homedir: /srv/ftp
username: http, uid: 33, homedir: /srv/http
username: nobody, uid: 99, homedir: /
username: dbus, uid: 81, homedir: /
username: avahi, uid: 84, homedir: /
username: hal, uid: 82, homedir: /
username: mysql, uid: 89, homedir: /var/lib/mysql
username: nagios, uid: 30, homedir: /dev/null

Come vedete la funzione rende il file /etc/passwd più leggibile.

La funzione dovrebbe essere utilizzabile su qualsiasi sistema .*NIX.

Non ho provato sul Mac però.

 

Un'altra possibilità è usare questo comando:

$ cat /etc/passwd | awk -F: '/^[^#]/ {print $1}'

root
bin
daemon
mail
ftp
http
nobody
dbus
casa
avahi
hal
gdm
mysql
nagios

Che però da poche info sugli utenti.


Condividi

Commentami!