GNU/Linux >> Linux Esercitazione >  >> Linux

Come elencare gli utenti in Linux

Hai mai desiderato elencare tutti gli utenti nel tuo sistema Linux o contare il numero di utenti nel sistema? Esistono comandi per creare un utente, eliminare un utente, elencare gli utenti che hanno effettuato l'accesso, ma qual è il comando per elencare tutti gli utenti in Linux?

Questo tutorial ti mostrerà come elencare gli utenti nei sistemi Linux.

Ottieni un elenco di tutti gli utenti utilizzando il /etc/passwd File #

Le informazioni sull'utente locale sono memorizzate in /etc/passwd file. Ogni riga in questo file rappresenta le informazioni di accesso per un utente. Per aprire il file puoi usare cat o less :

less /etc/passwd

Ogni riga del file ha sette campi delimitati da due punti che contengono le seguenti informazioni:

  • Nome utente.
  • Password crittografata (x significa che la password è memorizzata nel /etc/shadow file).
  • Numero ID utente (UID).
  • Numero ID gruppo (GID) dell'utente.
  • Nome completo dell'utente (GECOS).
  • Home directory utente.
  • Shell di accesso (predefinito su /bin/bash ).

Se vuoi visualizzare solo il nome utente puoi usare sia awk o cut comandi per stampare solo il primo campo contenente il nome utente:

awk -F: '{ print $1}' /etc/passwd
cut -d: -f1 /etc/passwd
root
daemon
bin
sys
sync
...
...
sshd
vagrant
jack
anne

Ottieni un elenco di tutti gli utenti utilizzando il comando getent #

Il getent il comando visualizza le voci dai database configurati in /etc/nsswitch.conf file, incluso il passwd database, che può essere utilizzato per interrogare un elenco di tutti gli utenti.

Per ottenere un elenco di tutti gli utenti Linuxr, immettere il seguente comando:

getent passwd

Come puoi vedere, l'output è lo stesso di quando si visualizza il contenuto di /etc/passwd file. Se stai usando LDAP per l'autenticazione utente, il getent visualizzerà tutti gli utenti Linux da entrambi /etc/passwd file e database LDAP.

Puoi anche usare awk o cut per stampare solo il primo campo contenente il nome utente:

getent passwd | awk -F: '{ print $1}'
getent passwd | cut -d: -f1

Verifica se un utente esiste nel sistema Linux #

Ora che sappiamo come elencare tutti gli utenti, per verificare se esiste un utente nel nostro box Linux, possiamo semplicemente filtrare l'elenco degli utenti collegando l'elenco a grep comando.

Ad esempio, per scoprire se un utente con nome jack esiste nel nostro sistema Linux possiamo usare il seguente comando:

getent passwd | grep jack

Se l'utente esiste, il comando precedente stamperà le informazioni di accesso dell'utente. Nessun output significa che l'utente non esiste.

Possiamo anche verificare se esiste un utente senza usare il grep comando come mostrato di seguito:

getent passwd jack

Come prima, se l'utente esiste, il comando visualizzerà le informazioni di accesso dell'utente.

Se vuoi scoprire quanti account utente hai sul tuo sistema, invia il pipe getent passwd output al wc comando:

getent passwd | wc -l
33

Come puoi vedere dall'output sopra, il mio sistema Linux ha 33 account utente.

Utenti di sistema e normali #

Non vi è alcuna reale differenza tecnica tra il sistema e gli utenti regolari (normali). In genere gli utenti del sistema vengono creati durante l'installazione del sistema operativo e dei nuovi pacchetti. In alcuni casi, puoi creare un utente di sistema che verrà utilizzato da alcune applicazioni.

Gli utenti normali sono gli utenti creati dal root o da un altro utente con privilegi sudo. Di solito, un utente normale ha una vera shell di login e una home directory.

Ogni utente ha un ID utente numerico chiamato UID. Se non specificato durante la creazione di un nuovo utente con useradd comando, l'UID verrà selezionato automaticamente da /etc/login.defs file a seconda del UID_MIN e UID_MIN valori.

Per controllare il UID_MIN e UID_MIN valori sul tuo sistema, puoi usare il seguente comando:

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
UID_MIN          1000
UID_MAX         60000

Dall'output sopra, possiamo vedere che tutti gli utenti normali dovrebbero avere un UID compreso tra 1000 e 60000. Conoscere il valore minimo e massimo ci consente di interrogare un elenco di tutti gli utenti normali nel nostro sistema.

Il comando seguente elencherà tutti gli utenti normali nel nostro sistema Linux:

getent passwd {1000..60000}
vagrant:x:1000:1000:vagrant,,,:/home/vagrant:/bin/bash
jack:x:1001:1001:,,,:/home/jack:/bin/bash
anne:x:1002:1002:Anne Stone,,,:/home/anne:/bin/bash
patrick:x:1003:1003:Patrick Star,,,:/home/patrick:/usr/sbin/nologin

Il tuo sistema UID_MIN e UID_MIN i valori potrebbero essere diversi, quindi la versione più generica del comando precedente sarebbe:

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}

Se vuoi stampare solo i nomi utente, reindirizza l'output al cut comando:

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1

Conclusione #

In questo tutorial, hai imparato come elencare e filtrare gli utenti nel tuo sistema Linux e quali sono le principali differenze tra il sistema e gli utenti Linux normali.

Gli stessi comandi si applicano a qualsiasi distribuzione Linux, inclusi Ubuntu, CentOS, RHEL, Debian e Linux Mint.

Sentiti libero di lasciare un commento in caso di domande.


Linux
  1. Come creare più account utente in Linux

  2. Come trovare tutti gli utenti Sudo in Linux

  3. Elenca utenti in Linux - Metodo migliore

  4. Come elencare gli utenti in CentOS 7

  5. 3 modi per elencare gli utenti in Linux

Come limitare l'accesso SSH a determinati utenti in Linux

Come ottenere l'elenco degli account utente MySQL in Linux

Come elencare utenti e gruppi su Linux

Come cambiare utente su Linux

Come elencare tutti gli utenti di un gruppo in Linux

Come creare/aggiungere utenti in Linux