Linux: come elencare tutti gli utenti

Per elencare tutti gli utenti su Linux, il comando generico migliore è `getent` getent passwd. Se si desiderano solo i nomi utente, eseguire `getent` getent passwd | cut -d: -f1. Questo è solitamente più completo rispetto alla lettura /etc/passwddiretta perché `getent` segue la configurazione del Name Service Switch (NSS) del sistema , quindi può includere account forniti da servizi come LDAP o altre fonti di identità configurate.

Elenca tutti gli utenti con getent

Apri un terminale ed esegui:

getent passwd

Ogni riga rappresenta un record utente. Per visualizzare solo i nomi di accesso, utilizzare:

getent passwd | cut -d: -f1

È inoltre possibile visualizzare un account conosciuto senza scorrere l'intero elenco:

getent passwd alice

La documentazione della libreria GNU C spiega che NSS controlla il modo in cui i database di sistema, come ad esempio, passwdvengono risolti tramite /etc/nsswitch.conf. Vedi la documentazione NSS della libreria GNU C.

Terminale Linux che mostra il comando getent passwd e diversi record di account utente.
getent passwdMostra i record degli account disponibili tramite le origini del database utente configurate.

Elenca gli utenti locali da /etc/passwd

Se desideri specificamente che gli account vengano memorizzati nel database locale delle password, consulta il file /etc/passwd. Il file contiene un record separato da due punti per ogni account locale. Un record tipico include il nome utente, il segnaposto della password, l'UID, il GID primario, il campo dei commenti, la directory home e la shell di login.

Solo per i nomi utente:

cut -d: -f1 /etc/passwd

Lo stesso risultato può essere ottenuto con awk:

awk -F: '{print $1}' /etc/passwd

Questo elenco normalmente include sia utenti umani che account di servizio come root, daemon, o account creati da software installato.

Terminale Linux che mostra l'estrazione dei nomi utente dal file locale /etc/passwd
Il cutcomando estrae solo il primo campo, ovvero il nome utente.

Visualizza i dati completi dell'account locale

Per visualizzare l'intero file locale, utilizzare lessil comando che consente di scorrere comodamente:

less /etc/passwd

È anche possibile stampare il file direttamente:

cat /etc/passwd

Sui moderni sistemi Linux, il campo password contiene comunemente x. Ciò non significa che la password venga memorizzata come testo in chiaro in /etc/passwd; gli hash delle password vengono normalmente conservati separatamente in /etc/shadow, che ha permessi più restrittivi. Il progetto Linux man-pages documenta i sette campi e questo comportamento della password ombra in passwd(5) .

Terminale Linux che mostra i record completi, separati da due punti, del file /etc/passwd
Una /etc/passwdvoce completa contiene il nome utente, l'UID, il GID, la directory home, la shell e altri campi dell'account.

Elenca i nomi utente con Bash compgen

Se utilizzi Bash, compgenpuoi generare candidati per il completamento del nome utente:

compgen -u

Per un risultato lungo, sfoglialo pagina per pagina con:

compgen -u | less

Oppure rimuovi i nomi duplicati e ordina l'output:

compgen -u | sort -u

compgenè un comando integrato di Bash, quindi è meno universale rispetto getentagli script che devono funzionare su shell diverse. Il manuale di GNU Bash lo documenta compgencome parte delle funzionalità di completamento programmabile di Bash.

Terminale Linux che mostra il comando compgen -u reindirizzato a less con un elenco paginato di nomi utente.
In Bash, compgen -u | lessfornisce un elenco di nomi utente paginato.

Come visualizzare gli utenti regolari anziché gli account di servizio

Non esiste un singolo valore limite UID corretto per ogni distribuzione Linux o organizzazione. Molti sistemi riservano UID inferiori agli account di sistema e li assegnano agli utenti regolari a partire da un valore minimo configurato, ma questa politica può variare. Se il tuo sistema utilizza /etc/login.defs, puoi verificarne il valore minimo configurato con:

grep '^UID_MIN' /etc/login.defs

Puoi anche cercare account con shell interattive come indizio pratico:

getent passwd | awk -F: '$7 !~ /(nologin|false)$/ {print $1}'

Si tratta solo di un'ipotesi euristica: un account può avere una shell interattiva senza essere un normale utente desktop, e gli utenti gestiti esternamente possono seguire politiche UID diverse.

Salva, conta o cerca nell'elenco utenti

Una volta ottenuto l'elenco necessario, gli strumenti standard della shell ne semplificano il riutilizzo:

  • Salva i nomi utente: getent passwd | cut -d: -f1 > ~/linux-users.txt
  • Conteggio degli account restituiti: getent passwd | cut -d: -f1 | wc -l
  • Trova un account: getent passwd username

Quale metodo dovresti usare?

ComandoIdeale per
getent passwdMigliore impostazione predefinita; segue le sorgenti utente NSS configurate
cut -d: -f1 /etc/passwdSolo nomi utente locali
cat /etc/passwdoless /etc/passwdIspezione dei registri completi dell'account locale
compgen -uElenco rapido dei nomi utente da Bash

Per la maggior parte degli amministratori e degli utenti desktop, inizia con getent passwd | cut -d: -f1. Usa /etc/passwdquando hai bisogno intenzionalmente solo di account locali.

Lascia un commento

Ubuntu: come reimpostare la password di root o utente

Ubuntu: come reimpostare la password di root o utente

Scopri come reimpostare una password utente Ubuntu dimenticata dalla modalità di ripristino, cambiare la password di un altro account locale e gestire in modo sicuro l'account root bloccato di Ubuntu.

Linux: come elencare tutti gli utenti

Linux: come elencare tutti gli utenti

Scopri come elencare tutti gli utenti su Linux con getent, /etc/passwd, cut e Bash compgen, inclusi gli account locali, di sistema e di directory.

Riparazione di Ubuntu GRUB: Reinstallare GRUB da una chiavetta USB avviabile

Riparazione di Ubuntu GRUB: Reinstallare GRUB da una chiavetta USB avviabile

Riparare GRUB su Ubuntu da una chiavetta USB avviabile: identificare le partizioni root ed EFI corrette, accedere all'installazione tramite chroot, reinstallare GRUB e ricostruire il menu di avvio.

Ubuntu: come elencare i pacchetti installati

Ubuntu: come elencare i pacchetti installati

Scopri come elencare i pacchetti installati su Ubuntu con apt, dpkg-query, Synaptic, Snap e Flatpak, inclusi i comandi manual-package ed export.

Linux: come scaricare un file da un URL tramite terminale

Linux: come scaricare un file da un URL tramite terminale

Scarica un file da un URL nel terminale Linux con wget o curl. Impara le operazioni di base di salvataggio, percorsi personalizzati, reindirizzamenti, URL multipli e comandi di ripresa.

Come utilizzare uno strumento di benchmark per CPU Linux

Come utilizzare uno strumento di benchmark per CPU Linux

Scopri come eseguire il benchmark di una CPU Linux con Geekbench 7, Sysbench e Hardinfo2, oltre alle impostazioni che rendono i confronti prestazionali più affidabili.

Debian: Come installare un file .deb [Guida]

Debian: Come installare un file .deb [Guida]

Scopri come installare un file .deb su Debian con APT, dpkg o GDebi, incluse le correzioni delle dipendenze e i controlli rapidi per la sicurezza e l'architettura del pacchetto.

Come giocare a Monster Hunter: World su Linux con Steam Proton

Come giocare a Monster Hunter: World su Linux con Steam Proton

Scopri come giocare a Monster Hunter: World su Linux con Steam Proton, dall'installazione di Steam e l'attivazione della compatibilità alla scelta di Proton e alla risoluzione dei problemi di avvio.

Come installare WebTorrent su Linux: desktop e riga di comando

Come installare WebTorrent su Linux: desktop e riga di comando

Scopri come installare WebTorrent su Linux utilizzando il pacchetto DEB ufficiale, il pacchetto RPM, il file ZIP portatile o l'interfaccia a riga di comando (CLI) di WebTorrent, attivamente supportata.

Come giocare a World of Warships su Linux con Steam Proton

Come giocare a World of Warships su Linux con Steam Proton

World of Warships non ha un client nativo per Linux, ma è possibile eseguire la versione Steam con Proton. Scopri come installarlo, scegliere Proton e risolvere i problemi di avvio più comuni.