GNU/Linux >> Linux Esercitazione >  >> Linux

Come elencare utenti e gruppi su Linux

Su Linux, come amministratore di sistema, spesso desideri avere un elenco completo di tutti gli utenti e di tutti i gruppi sul tuo host.

È fondamentale per motivi di sicurezza assicurarsi di avere il numero corretto di utenti e di non aver dimenticato di eliminarne alcuni.

Esistono diversi modi per elencare utenti e gruppi su Linux .

Innanzitutto, puoi leggere la passwd e il file di gruppo sul tuo sistema, con i comandi di taglio per estrarre informazioni utili.

Un modo più efficace è utilizzare il comando getent che si basa su Name Service Switch, una struttura basata su Unix per definire database personalizzati sul tuo host.

Ecco come puoi elencare utenti e gruppi su Linux .

Elenca utenti su Linux

Per elencare gli utenti su Linux, devi eseguire il comando "cat" sul file "/etc/passwd". Quando esegui questo comando, ti verrà presentato l'elenco degli utenti attualmente disponibili sul tuo sistema.

In alternativa, puoi utilizzare il comando “meno” o “più” per navigare all'interno dell'elenco dei nomi utente.

$ cat /etc/passwd

$ less /etc/passwd

$ more /etc/passwd

Ti verrà presentato un elenco di utenti attualmente disponibili sul tuo sistema.

Nota :non significa che gli utenti siano connessi subito!

Ma cosa fanno le colonne del file passwd significa anche?

Come breve nota a margine, una "x" nella colonna della password significa che la password è crittografata e deve essere trovata nel file /etc/shadow.

Ora che sai come elencare gli utenti sul tuo host Linux, vediamo come isolare efficacemente un elenco di nomi utente.

Elenca i nomi utente usando il file /etc/passwd

Come probabilmente avrai notato, il /etc/passwd il file è composto da righe separate da due punti.

a – Elenca i nomi utente usando il taglio

Per elencare i nomi utente su Linux, usa il comando "cat" e reindirizzalo al comando "cut" per isolare i nomi utente disponibili nella prima colonna del tuo file.

Per ottenerlo, esegui il seguente comando

$ cat /etc/passwd | cut -d: -f1

Innanzitutto, stai stampando un elenco di tutti i record nel file passwd. Successivamente, questi risultati vengono reindirizzati (utilizzando pipe e reindirizzamento Linux) al comando cut.

Il comando taglia definisce un separatore personalizzato (con l'opzione d) che è uguale al carattere due punti.

Infine, stiamo isolando il primo campo dei risultati che stiamo ottenendo. In questo caso, questo è uguale ai nomi utente definiti dal nostro schema nelle colonne passwd.

b – Elenca i nomi utente usando awk

Per elencare i nomi utente su Linux, puoi anche usare il comando "cat" inviato tramite pipe con il comando "awk" che è simile al comando "cut" che abbiamo visto prima.

Ricordiamo che il comando awk (o mawk) è un interprete per il linguaggio di programmazione AWK.

AWK è un linguaggio di programmazione progettato per facilitare l'estrazione e la manipolazione dei dati per i flussi di dati.

È ampiamente utilizzato su sistemi basati su Unix quando le strutture di testo sono piuttosto complicate e non possono essere separate con un solo comando.

Per elencare i nomi utente su Linux usando l'interprete awk, esegui il comando seguente

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

Elenca gli utenti su Linux usando getent

Il modo più semplice per elencare gli utenti su Linux è usare il comando "geent" con l'argomento "passwd" e specificare un utente facoltativo che vuoi elencare sul tuo sistema.

getent passwd <optional_user>

Come promemoria, il comando getent recupera le voci dai database Name Service Switch .

Name Service Switch è un'utilità Unix che recupera le voci da un insieme di diverse origini dati come file, LDAP, un server DNS o un Network Information Service .

L'elenco di tutte le origini dati disponibili può essere letto da nsswitch.conf file che si trova in /etc.

Nel nostro caso, può essere utilizzato per elencare facilmente utenti e gruppi sul nostro host Linux.

Per elencare gli utenti che utilizzano la funzione getent, esegui il comando seguente

$ getent passwd

a – Elenca i nomi utente con getent

Analogamente alla sezione precedente, è possibile elencare solo i nomi utente quando si interagisce con il comando getent.

Per ottenere ciò, puoi in alternativa eseguire il comando cut o il comando awk nel modo seguente.

$ getent passwd | cut -d: -f1

O con AWK

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

Elenca gli utenti connessi sul tuo host Linux

Come accennato in precedenza, l'ispezione del file passwd, con less o con getent, non fornirti un elenco di tutti gli utenti collegati sul tuo host.

Per raggiungere questo obiettivo, utilizzerai il comando who.

$ who

Come puoi vedere, ti viene fornito un elenco di utenti attualmente connessi sul tuo host insieme alla shell che stanno utilizzando e quando si sono connessi.

In alternativa, puoi utilizzare il comando users per ottenere lo stesso risultato con meno dettagli.

$ users
devconnected john

Piuttosto a portata di mano!

Ora che abbiamo visto come possiamo elencare gli utenti su un host Linux, vediamo come possiamo applicare la stessa conoscenza per elencare i gruppi sul tuo sistema.

Elenca i gruppi su Linux usando il file /etc/group

Per elencare i gruppi su Linux, devi eseguire il comando "cat" sul file "/etc/group". Quando esegui questo comando, ti verrà presentato l'elenco dei gruppi disponibili sul tuo sistema.

Utilizza uno dei seguenti comandi per elencare i gruppi sul tuo sistema.

$ cat /etc/group

$ less /etc/group

$ more /etc/group

Ma cosa rappresentano anche le colonne del file di gruppo?

Prendiamo una riga completa sul file di gruppo per ispezionarlo.

Come puoi vedere, analogamente al file passwd, le voci sono separate da due punti. Sono abbastanza facili da capire.

Nota :il campo della password non viene utilizzato per la maggior parte del tempo, è riservato alla creazione di gruppi privilegiati sul tuo sistema.

Elenca i nomi dei gruppi usando /etc/group

Come puoi vedere, l'ispezione di /etc/group ti dà un elenco completo e talvolta troppo dettagliato di tutti i gruppi sul tuo sistema.

Tuttavia, a volte vuoi isolare i nomi dei gruppi nel tuo file di gruppo.

Per ottenere ciò, puoi usare il comando taglia o il comando AWK.

$ cat /etc/group | cut -d: -f1
$ cat /etc/group | awk -F: '{print $1}'

Ovviamente puoi scegliere di isolare un gruppo se vuoi vedere quali utenti appartengono al gruppo a cui ti rivolgi.

$ cat /etc/group | grep <group>

Elenca i gruppi usando getent

Di nuovo, puoi scegliere di elencare i gruppi su Linux usando il comando getent.

$ getent <database> <key>

Qui, siamo interessati al database del "gruppo".

Se scegli di non fornire una chiave, ti verrà fornito l'intero file del gruppo.

$ getent group

Analogamente al database passwd, puoi scegliere di "mirare" un gruppo specifico fornendo una chiave per la funzione getent.

$ getent group sudo

Elenca i gruppi per l'utente corrente

I comandi dei gruppi vengono utilizzati per ottenere un elenco di gruppi in cui si trova un utente specifico.

$ groups <username>

Se fornito senza argomenti, restituirà i gruppi per l'utente che ha lanciato il comando.

Per dimostrare che fornisce i gruppi per l'utente che ha lanciato il comando, prova ad avviare il comando con privilegi sudo.

$ sudo groups

Il risultato è... root! Poiché il comando viene eseguito come root e root appartiene solo a un gruppo che è il gruppo root.

Conclusione

In questo tutorial, hai imparato come elencare utenti e gruppi su qualsiasi sistema basato su Linux.

Hai imparato di più su file di configurazione specifici come passwd e gruppo , nonché il comando getent per le funzionalità di cambio del servizio nomi.

Ancora una volta, se sei interessato all'amministrazione del sistema Linux, abbiamo tonnellate di tutorial sull'argomento nella nostra categoria Amministrazione del sistema Linux.

Clicca l'immagine qui sotto per controllarli.


Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Come gestire ed elencare i servizi in Linux

  3. Come gestire le autorizzazioni Linux per utenti, gruppi e altri

  4. Come lavorare con utenti e gruppi in Linux

  5. Come elencare tutti gli utenti in un gruppo Linux?

Come installare e utilizzare il comando fd in Linux

Come elencare i dischi su Linux

Come elencare tutti gli utenti di un gruppo in Linux

Come elencare solo le directory in Linux

Come creare e gestire nuovi utenti su Linux

Come elencare tutti i gruppi in Linux?