Crea sito

How To : Come elencare gli utenti in Linux

11 / 100

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 registrati, 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 che utilizzano il /etc/passwdfile
Le informazioni sull’utente locale sono memorizzate nel /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

linux etc passwd list utenti
Ogni riga del file ha sette campi delimitati da due punti che contengono le seguenti informazioni:

-Nome utente.
-Password crittografata ( xsignifica che la password è memorizzata nel /etc/shadow file).
-Numero ID utente (UID).
-Numero ID del gruppo dell’utente (GID).
-Nome completo dell’utente (GECOS).
-Directory principale dell’utente.
-Shell di accesso (predefinito su /bin/bash).

Se vuoi visualizzare solo il nome utente puoi utilizzare uno dei comandi awk o cut per stampare solo il primo campo contenente il nome utente:

awk -F: ‘{ print $1}’ /etc/passwd
copia
cut -d: -f1 /etc/passwd
copia
root
daemon
bin
sys
sync


sshd
vagrant
jack
anne

Ottieni un elenco di tutti gli utenti utilizzando il comando getent
Il comando getent visualizza le voci dai database configurati nel /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 Linux, inserisci il seguente comando:

getent passwd

fig 2

utenti dell’elenco getent linux

Come puoi vedere, l’output è lo stesso della visualizzazione del contenuto del /etc/passwdfile. Se stai utilizzando LDAP per l’autenticazione utente, getentverranno visualizzati tutti gli utenti Linux sia dal /etc/passwdfile che dal database LDAP. Puoi anche utilizzare awko cutstampare solo il primo campo contenente il nome utente:

getent passwd | awk -F: ‘{ print $1}’

getent passwd | cut -d: -f1

Controlla se esiste un utente nel sistema Linux
Ora che sappiamo come elencare tutti gli utenti, per verificare se un utente esiste nella nostra casella Linux, possiamo semplicemente filtrare l’elenco degli utenti reindirizzando l’elenco al comando grep. Ad esempio, per scoprire se jackesiste un utente con nome nel nostro sistema Linux possiamo utilizzare il seguente comando:

getent passwd | grep jack

Controlla se esiste un utente nel sistema Linux
Se l’utente esiste, il comando sopra stamperà le informazioni di accesso dell’utente. Nessun output che significa che l’utente non esiste. Possiamo anche verificare se un utente esiste senza utilizzare il grepcomando 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, reindirizza l’ getent passwdoutput al wccomando:

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 c’è una vera differenza tecnica tra il sistema e gli utenti normali (normali).

In genere gli utenti del sistema vengono creati durante l’installazione del sistema operativo e dei nuovi pacchetti. In alcuni casi, è possibile 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 il comando useradd, l’UID verrà selezionato automaticamente dal /etc/login.defsfile in base ai valori UID_MIN e UID_MAX. Per controllare i valori UID_MINe UID_MAX sul tuo sistema, puoi utilizzare il seguente comando:

grep -E ‘^UID_MIN|^UID_MAX’ /etc/login.defs
copia
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}

Sistema Linux e utenti normali
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/nologincopia

Il tuo sistema UID_MINe i tuoi UID_MINvalori potrebbero essere diversi, quindi la versione più generica del comando sopra 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, devi solo reindirizzare l’output al comando cut :

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 i normali utenti Linux. Gli stessi comandi si applicano a qualsiasi distribuzione Linux, inclusi Ubuntu, C

Translate »