Come elencare gli utenti in Linux
Pubblicato: 2022-06-25Linux è un sistema operativo multiutente, quindi creare numerosi account utente è facile. Nel tempo, è facile perdere traccia di quali account sono richiesti. L'elenco degli account utente ti aiuta a gestirli.
Profili utente
I progressi tecnologici spesso portano i loro nuovi problemi. Non appena i computer sono stati in grado di supportare più utenti, è diventata evidente la necessità di delimitare e incapsulare il lavoro di ogni persona da tutti gli altri. Ciò ha portato al concetto di account utente. Ogni utente ha un ID e una password nominati. Queste sono le credenziali che consentono loro di accedere al proprio account. I loro file sono conservati in un'area privata per ciascun utente.
In un sistema occupato, è facile perdere di vista quali account hai creato e quali non sono più necessari. Dal punto di vista della sicurezza, è una cattiva pratica mantenere gli account utente che non devono più essere configurati e accessibili sul proprio computer. Dovresti rimuovere quegli utenti.
Anche se non hai altre persone che usano il tuo computer, potresti aver creato degli account solo per imparare come farlo, o per imparare e fare pratica con i processi di amministrazione.
Il primo passaggio consiste nell'elenco degli account utente configurati sul computer. Ciò ti consente di esaminarli ed esprimere un giudizio che può essere eliminato. Esistono diversi metodi per elencare gli utenti. Indipendentemente dalla distribuzione in uso, queste tecniche dovrebbero funzionare per te senza la necessità di installare applicazioni o utilità.
Elenca gli utenti con il comando cat
Un elenco degli utenti configurati viene mantenuto, insieme alle informazioni su ciascun utente, nel file "/etc/passwd". Questo è un file di testo che gli utenti normali possono elencare nella finestra del terminale. Non è necessario utilizzare sudo
per esaminare il file "/etc/passwd".
Possiamo usare il comando cat
per inviare il contenuto del file “/etc/passwd” alla finestra del terminale. Questo elencherà l'intero contenuto del file. Ciò significa che vedrai anche le voci per gli account utente che sono di proprietà dei processi e del sistema, non delle persone.
gatto /etc/passwd
C'è una linea di informazioni dense riportate per ogni account utente.
Le informazioni per l'account utente chiamato "dave" contengono queste informazioni, con i due punti " :
" tra di loro.
- dave : il nome dell'account utente. Di solito il nome della persona che possiede l'account.
- x : un tempo conteneva la password dell'account. Al giorno d'oggi, le password sono memorizzate nel file "/etc/shadow". La "x" significa che la password è in quel file.
- 1000 : L'ID utente per questo account. Tutti gli account utente hanno un ID numerico univoco. Gli account utente regolari di solito iniziano da 1000, con ogni nuovo account che prende l'ID gratuito successivo, come 1001, 1002 e così via.
- 1000 : L'ID del gruppo predefinito a cui appartiene l'utente. In circostanze normali, il gruppo predefinito ha lo stesso valore dell'ID utente.
- dave,,, : una raccolta di informazioni aggiuntive opzionali sull'utente. Questo campo contiene dati con virgole "
,
" tra di loro. Possono contenere elementi come il nome completo dell'utente, il numero dell'ufficio e il numero di telefono. La voce per l'account utente "mary" mostra che il suo nome completo è Mary Quinn. - /home/dave : il percorso della cartella home dell'utente.
- /bin/bash : la shell predefinita per questo utente.
Se conduciamo l'output di questo comando tramite l'utilità wc
e utilizziamo l'opzione -l
(linee), possiamo contare le righe nel file. Questo ci darà il numero di account configurati su questo computer.
gatto /etc/passwd | wc -l
Tale cifra include gli account di sistema e gli utenti creati dalle applicazioni. Ci sono circa 400 utenti regolari configurati su questo computer. È probabile che il tuo risultato sia molto inferiore.
Con così tanti account, è più conveniente usarne less
per visualizzare il file "/etc/passwd".
meno /etc/passwd
L'uso di less
consente anche di cercare all'interno dell'output, se si desidera cercare un account utente particolare.
Il comando awk
Usando il comando awk
possiamo visualizzare solo il nome utente. Questo può essere utile quando stai scrivendo uno script che deve fare qualcosa per molti account utente. Elencare i nomi degli account utente e reindirizzarli in un file di testo può essere un ottimo risparmio di tempo. Tutto quello che devi fare è copiare e incollare il resto del comando su ciascuna riga.
Diremo ad awk di usare i due punti “:” come separatore di campo e di stampare il primo campo. Useremo l'opzione -F (separatore di campo).
awk -F: '{stampa $1}' /etc/passwd
I nomi degli account utente vengono scritti nella finestra del terminale senza nessuna delle altre informazioni sull'account.
Il comando di taglio
Possiamo ottenere lo stesso genere di cose usando il comando cut
. Dobbiamo usare l'opzione -d
(delimitatore) e chiedergli di selezionare solo il primo campo, usando l'opzione -f
(campi).
taglia -d: -f1
Questo elenca tutti gli account utente, incluso il sistema e altri account non umani.
Il comando compgen
Il comando compgen
può essere utilizzato con l'opzione -u
(utente) per elencare gli account utente. Indirizzeremo l'output tramite il comando column
per elencare gli account utente in colonne, invece di un lungo elenco con un unico nome utente per riga.
compgen -u | colonna
Anche in questo caso, i primi account utente elencati appartengono a processi, non umani.
UID MIN e UID MAX
Agli account utente viene assegnato un ID numerico, che abbiamo visto in precedenza. Di solito, gli account utente umani regolari iniziano da 1000 e gli account utente di sistema, non umani, iniziano da 0. L'ID dell'account root è 0.
Se siamo in grado di verificare gli ID utente più bassi e più alti possibili, possiamo utilizzare tali informazioni per selezionare gli account utente che si trovano tra questi due valori. Ciò ci consentirà di selezionare solo gli account utente appartenenti a persone reali.
Linux tiene traccia di questi due valori usando parametri di configurazione chiamati UID_MIN
e UID_MAX
. Questi sono conservati nel file "/etc/login.defs". Possiamo facilmente vedere questi valori usando grep
.
Utilizzeremo l'opzione -E
(espressione regolare estesa). La nostra stringa di ricerca cerca le righe che iniziano con "UID_MIN" o "UID_MAX" nel file "/etc/login.defs". Il cursore “ ^
” rappresenta l'inizio di una riga.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
L'intervallo per gli ID utente su questo computer è compreso tra 1000 e 60.000.
CORRELATI: Come utilizzare le espressioni regolari (regex) su Linux
Il comando getent
Il comando getent
legge le informazioni dai database di sistema. Possiamo dirgli di elencare le voci nel file "/etc/passwd" usando "passwd" come parametro.
getent passwd
Questo ci dà la stessa lettura che possiamo ottenere usando cat
. Ma dove getent
brilla è accettando valori noti come "chiavi". Una chiave determina su quali informazioni getent
riportati i rapporti. Se vogliamo vedere la voce per un singolo utente, possiamo passare il nome del suo account utente sulla riga di comando.
getent passwd Sarah
Si noti che il nome dell'account utente fa distinzione tra maiuscole e minuscole.
getent passwd sarah
Possiamo anche superare i limiti superiore e inferiore degli ID account utente che vogliamo vedere. Per vedere assolutamente tutti gli account utente regolari, possiamo utilizzare i valori di UID_MIN
e UID_MAX
.
getent passwd {1000..60000}
Questo richiede del tempo per l'esecuzione. Alla fine, verrai restituito al prompt dei comandi.
Il motivo del lungo tempo di esecuzione è che getent
cerca di trovare corrispondenze per tutti i valori dell'account utente fino a 60000.
Vediamo qual è l'ID account utente più alto. Useremo il comando cut
, ma questa volta chiederemo il campo tre, il campo dell'ID utente. Indirizzeremo l'output tramite l' sort
e utilizzeremo l' -g
(ordinamento numerico generale).
taglia -d: -f3 /etc/passwd | ordina -g
Il valore ID più alto di un account utente di proprietà umana è 1401.
L'ID utente 65534 è assegnato al concetto di sistema di "nessuno".
getent passwd {65534..65534}
Quindi sappiamo che invece di usare il valore UID_MAX
di 60000, su questo computer possiamo usare un valore più realistico come 1500. Questo accelererà notevolmente le cose. Invieremo anche l'output attraverso il cut
per estrarre solo i nomi degli account utente.
getent passwd {1000..1500} | taglia -d: -f1
Gli utenti vengono elencati e si torna immediatamente al prompt dei comandi.
Invece di convogliare l'output attraverso cut
, convogliamo l'output attraverso wc
e contiamo ancora una volta le righe. Questo ci darà il numero di account utente "reali".
getent passwd {1000..1500} | wc -l
Ora possiamo vedere che su questo computer, in definitiva, ci sono 400 account utente configurati, di proprietà umana.
Potenza e semplicità
Una di queste tecniche soddisferà sicuramente le tue esigenze quando devi rivedere gli account utente su un computer Linux. Questi comandi dovrebbero essere presenti su tutte le distribuzioni e nessuna di esse richiede l'accesso sudo
, quindi sono tutti disponibili per ogni utente.
CORRELATI: Come controllare sudo Access su Linux