Ultimo aggiornamento il
È importante sapere chi ha accesso al tuo PC Linux (e il controllo sui tuoi file), ma puoi facilmente elencare gli utenti in Linux per scoprirlo. Ecco come.
Il Sistema operativo Linux offre comandi per creare ed eliminare utenti e controllare quali hanno effettuato l'accesso. Tuttavia, non esiste un comando per elencare gli utenti, connessi o meno, sul sistema.
Tuttavia, ci sono un paio di modi per farcela. Se vuoi imparare come elencare gli utenti in Linux, segui i nostri passaggi di seguito.
Perché dovresti controllare la tua lista utenti Linux
Ci sono una serie di motivi per cui potresti voler elencare gli utenti in Linux. È una buona pratica in termini di ricerca ed eliminazione di account inutilizzati, per esempio. Dal punto di vista della sicurezza, è anche un buon modo per assicurarti di non avere intrusi che creano account utente.
Questa è un'attività amministrativa che probabilmente dovresti svolgere almeno una volta al mese. Se stai utilizzando un server Linux aziendale, potresti volerlo fare più spesso.
Utenti elencati in /etc/passwd
Tutti gli account utente del tuo server Linux hanno voci nel file /etc/passwd. Ogni riga rappresenta un utente e ha sette campi separati da due punti. I campi forniscono informazioni sull'utente.
- Nome utente.
- Password crittografata (X indica che la password è effettivamente inserita /etc/shadow)
- Numero ID utente (UID).
- Numero ID gruppo utente (GID).
- Nome completo dell'utente, se elencato.
- Directory principale dell'utente.
- Shell di accesso
Quindi, questo ci porta a un modo per elencare tutti gli utenti su Linux. Puoi usare il meno comando per vedere l'intero file, una schermata alla volta.
meno /etc/passwd.
Se vuoi verificare se un particolare utente esiste nel sistema Linux, è un buon uso per il comando grep:
meno passwd | grep jeff.
Se non ottieni alcun output, quell'utente non esiste sul server Linux.
Tuttavia, sono molte informazioni. Puoi ridurlo solo al nome utente, ad esempio, utilizzando il file awk o taglio comandi:
awk -F: '{stampa $1}' /etc/passwd. taglia -d: -f1 /etc/passwd.
Questo tende ad essere molto più facile da capire, ma ti lascia comunque visualizzare tutti gli account utente basati sul sistema mescolati con i tuoi utenti umani.
Come usare getent per elencare gli utenti
Un altro comando, getent, è molto più utile. Visualizza le voci da qualsiasi database configurato nel tuo server /etc/nsswitch.conf file. Uno di questi è il passwd Banca dati. Usare getent per visualizzare un elenco di tutti gli utenti Linux, funziona in questo modo:
getent passwd
L'output ha lo stesso aspetto dell'utilizzo di meno comando, ma elenca tutti gli utenti LDAP sul sistema Linux. Ancora una volta il ns awk e taglio i comandi possono aiutare a vedere solo il primo campo, i nomi utente.
Se vuoi verificare se un particolare utente esiste nel sistema Linux, getent lo rende facile:
getent passwd jeff.
Ancora una volta, nessun output di questo comando ti dice che l'utente non esiste.
Un altro fantastico uso per getent sta scoprendo quanti account utente esistono sul server. Questo viene fatto mediante tubazioni getent's output attraverso il WC comando, in questo modo:
getent passwd | wc -l.
Come puoi vedere, il mio sistema Linux ha un totale di 48 account. Abbastanza interessante, dal momento che sono l'unico che lo usa, ma questo mostra solo quanti account di sistema vengono creati in Linux.
Eliminare gli utenti del sistema dagli utenti normali
Agli occhi di Linux, non c'è differenza tra un utente di sistema e uno umano. Ogni volta che si installa il sistema operativo, viene creato un numero di utenti del sistema. Altri utenti di sistema vengono creati per vari pacchetti, come software di servizi Web o di posta.
Quindi, come puoi elencare solo gli utenti umani regolari sul sistema Linux? La chiave qui è capire che quando crei un utente normale, il suo UID viene assegnato all'interno di un certo intervallo di numeri. Controllando il /etc/login.defs file, possiamo determinare l'intervallo di valori UID disponibili per gli account utente regolari.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
In base all'output, so che gli utenti normali dovrebbero avere un UID compreso tra 1000 e 60000. Da questo, posso costruire a getent query che visualizzerà solo gli utenti normali.
getent passwd {1000..60000}
Tenere presente, getent sembrerà bloccato anche dopo aver visualizzato il suo output. Puoi premere Ctrl-C per terminare il processo o attendere fino al termine. Di solito ci vogliono meno di 15 secondi per completare la ricerca di passwd Banca dati.
Una versione più generica di questo comando tiene conto di diversi UID_MIN e UID_MAX valori che potrebbero essere utilizzati da vari server.
eval getent passwd {$(awk '/^UID_MIN/ {stampa $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {stampa $2}' /etc/login.defs)}
In quel comando, stiamo sfruttando la capacità di Linux di fare più cose contemporaneamente. Il awk i comandi ottengono il UID_MIN e UID_MAX valori, quindi utilizzarli all'interno di getent comando.
Ora, diciamo che tutto ciò che vogliamo sono i nomi utente. Ancora una volta, convogliamo il nostro output attraverso il taglio comando, in questo modo:
eval getent passwd {$(awk '/^UID_MIN/ {stampa $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {stampa $2}' /etc/login.defs)} | taglia -d: -f1.
Questo comando potrebbe richiedere da 10 a 15 secondi per essere completato, quindi sii paziente.
Gestire efficacemente i tuoi utenti Linux
È importante tenere traccia di quali account utente esistono sul tuo sistema Linux. Quando sai che un dipendente è andato via, sii pronto a eliminare il suo account utente. Elencare periodicamente i tuoi utenti Linux ti aiuterà a catturare tutti gli account che potrebbero essere rimasti bloccati.
Allo stesso tempo, assicurati di tenerti aggiornato politiche di sicurezza delle password e incoraggia i tuoi utenti a farlo cambiare le loro password regolarmente.