Questa breve guida spiega come elencare tutti gli utenti nei sistemi operativi Linux. Prima di entrare nell'argomento, vedremo cos'è il file /etc/passwd. Perché dipendiamo da questo file attraverso questa guida.
Una breve nota sul file /etc/passwd
In Linux (e Unix in generale), le informazioni di base su ciascun account utente sono archiviate in "/etc/passwd" file. Non è altro che un semplice file di testo che contiene gli attributi di tutti gli account utente presenti in un sistema Linux.
Per impostazione predefinita, questo file è leggibile da tutti gli utenti con l'aiuto di qualsiasi programma di testo o grafico, come Vi, Nano, Gedit ecc. o con comandi come "cat ".
Se apri questo file..
$ cat /etc/passwd
... vedrai diverse voci come di seguito:
root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/ bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:giochi :/usr/games:/usr/sbin/nologin[...]
Ogni riga nel file /etc/passwd rappresenta un singolo utente. L'utente root sarà elencato in alto. Ogni riga contiene sette attributi o campi separati da due punti senza spazi tra ogni campo. Il nome dei sette campi è riportato di seguito:
- nome,
- password,
- ID utente,
- ID gruppo,
- geco,
- home directory,
- conchiglia.
Il "nome" campo è il nome di accesso dell'utente che usi per accedere al tuo box Linux.
La "password" il campo contiene semplicemente una lettera X. Significato:la password è crittografata e archiviata in un file separato chiamato "/etc/shadow" per motivi di sicurezza. Il file /etc/shadow non può essere letto dagli utenti normali. Qui la X indica che l'utente ha una password. Se questo campo è vuoto, l'utente non ha password, quindi può accedere senza password.
L'"ID utente " (o UID in breve) indica il numero identificativo numerico univoco dell'utente. L'UID dell'account root è 0 (zero). I numeri da 1 a 99 sono riservati agli account di sistema. E i numeri da 100 a 999 sono riservati agli utenti normali e gruppi.
L'"ID gruppo" (o GID in breve) indica l'identificatore del gruppo principale a cui appartiene l'utente. Il GID è solitamente lo stesso dell'UID.
I "gechi" campo contiene le informazioni generali di un utente. Ad esempio, può contenere il vero nome dell'utente. Questo campo potrebbe essere vuoto separato da due punti o contenere più voci separate da virgole.
La "home directory" campo indica il percorso completo della directory home dell'utente, ad esempio /home/sk . Questa è la directory in cui l'utente si trova per primo quando ha effettuato l'accesso a un sistema. La home directory di solito contiene programmi e file di configurazione appartenuti all'utente.
L'ultimo archiviato è "shell" . Indica il percorso completo della shell predefinita per quell'utente.
Ora prendiamo come esempio la seguente riga:
root:x:0:0:root:/root:/bin/bash
Nella riga sopra,
- radice - è il nome utente,
- x - indica che l'utente root ha una password,
- 0 - Il primo 0 (zero) indica l'UID,
- 0 - Il secondo zero indica il GID,
- radice - Indica il vero nome dell'utente.
- /radice - È la home directory dell'utente root,
- /bin/bash - Shell predefinita per utente root.
Spero che tu abbia un'idea di base sul file /etc/passwd. Ora torniamo al nostro argomento, ovvero l'elenco di tutti gli utenti in un sistema Linux.
Elenca tutti gli utenti in Linux
Esistono due modi per elencare tutti gli utenti in un sistema Linux. Qui ho incluso tutti i modi possibili.
1. Elenca tutti gli utenti in Linux usando il comando cat
Come dicono i nomi, il comando cat viene generalmente utilizzato per concatenare file e stampare il contenuto dei file.
Per elencare tutti gli utenti in un sistema Linux usando il comando cut, esegui:
$ cat /etc/passwd
Questo comando elencherà tutti gli utenti disponibili
Risultato di esempio:
root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/ bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:giochi :/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologinmail:x:8:8:mail:/var/mail:/usr/sbin/nologinnews:x:9:9:news:/var/spool/news:/usr/sbin/nologinuucp:x :10:10:uucp:/var/spool/uucp:/usr/sbin/nologinproxy:x:13:13:proxy:/bin:/usr/sbin/nologinwww-data:x:33:33:www-data :/var/www:/usr/sbin/nologinbackup:x:34:34:backup:/var/backups:/usr/sbin/nologinlist:x:38:38:Mailing List Manager:/var/list:/usr /sbin/nologinirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologingnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/ usr/sbin/nologinnobody:x:65534:65534:nobody:/nonesistente:/usr/sbin/nologinsystemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin /nologinsystemd-resolve:x:101:103:systemd Resolver,, ,:/run/systemd/resolve:/usr/sbin/nologinsyslog:x:102:106::/home/syslog:/usr/sbin/nologinmessagebus:x:103:107::/nonesistente:/usr/sbin/ nologin_apt:x:104:65534::/nonesistente:/usr/sbin/nologinuuidd:x:105:111::/run/uuidd:/usr/sbin/nologinavahi-autoipd:x:106:112:Avahi autoip daemon, ,,:/var/lib/avahi-autoipd:/usr/sbin/nologinusbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologindnsmasq:x:108:65534 :dnsmasq,,,:/var/lib/misc:/usr/sbin/nologinrtkit:x:109:114:RealtimeKit,,,:/proc:/usr/sbin/nologincups-pk-helper:x:110:116 :user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologinspeech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech- dispatcher:/bin/falsewhoopsie:x:112:117::/nonesistente:/bin/falsekernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologinsaned:x:114:119 ::/var/lib/saned:/usr/sbin/nologinavahi:x:116:122:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologincolord:x:117:123 :daemon di gestione del colore a colori,,,:/var/lib/colord:/usr/sbi n/nologinhplip:x:118:7:Utente di sistema HPLIP,,,:/var/run/hplip:/bin/falsegeoclue:x:119:124::/var/lib/geoclue:/usr/sbin/nologingnome- initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/falsegdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/falsesk:x:1000:1000:sk,,,:/home/sk:/bin/bashDebian-exim:x:122:128::/var/spool/exim4:/usr/sbin/nologinpulse:x:115:120:PulseAudio daemon ,,,:/var/run/pulse:/usr/sbin/nologinsystemd-timesync:x:123:127:sincronizzazione dell'ora di sistema,,,:/run/systemd:/usr/sbin/nologintss:x:124:131 :Stack software TPM,,,:/var/lib/tpm:/bin/falsetcpdump:x:125:132::/nonesistente:/usr/sbin/nologin_flatpak:x:126:133:Flatpak system-wide installation helper, ,,:/nonesistente:/usr/sbin/nologinsystemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
Elenca tutti gli utenti in Linux usando il comando cat
Come ho già detto, il primo campo nelle voci sopra rappresenta gli utenti. Se non si desidera visualizzare tutti i campi ma visualizzare solo i nomi utente, i seguenti metodi potrebbero essere d'aiuto.
3. Elenca gli utenti usando il comando taglia
Il comando "taglia" viene utilizzato per rimuovere sezioni (o campi) da ogni riga di file.
Per elencare tutti gli utenti con il comando cut in un sistema Linux, esegui:
$ taglio -d:-f1 /etc/passwd
Questo comando visualizzerà solo i nomi utente dal file /etc/passwd e ignorerà tutti gli altri campi.
Risultato di esempio:
rootdaemonbinsyssyncgamesmanlpmailnewsuucpproxywww-databackuplistircgnatsnobodysystemd-networksystemd-resolvesyslogmessagebus_aptuuiddavahi-autoipdusbmuxdnsmasqrtkitcups-pk-helperspeech-dispatcherwhoopsiekernoopssanedavahicolordhplipgeocluegnome-initial-setupgdmskDebian-eximpulsesystemd-flatcorepdumppak>Elenca tutti gli utenti in Linux usando il comando cut
4. Stampa gli utenti in Linux con il comando awk
Possiamo anche usare il comando "awk" per elencare tutti gli utenti in Linux.
$ awk -F':' '{ print $1}' /etc/passwdQuesto comando mostrerà anche solo gli utenti e ometterà tutti gli altri dettagli.
Elenca tutti gli utenti in Linux usando il comando awk
5. Visualizza l'elenco degli utenti con compgen
Compg è BASH integrato per manipolare le strutture di completamento programmabili.
Per elencare tutti gli utenti che utilizzano compgen, esegui:
$ compgen -u6. Visualizza tutti gli utenti utilizzando il comando getent
Un altro modo per elencare gli utenti in Linux è usare "geent" comando come di seguito:
$ getent passwdQuesto comando leggerà il file /etc/passwd ed elenca tutti gli utenti in quel file.
Elenca tutti gli utenti in Linux usando il comando awk
Un notevole vantaggio del comando getent è che non solo elenca gli utenti nel file /etc/passwd ma tutti gli utenti in tutti i backend userdb configurati, ad esempio LDAP, su un dato sistema.
7. Elenca gli utenti utilizzando i comandi "more" o "less"
I comandi more e less servono per aprire un determinato file per la lettura interattiva, consentendo lo scorrimento e la ricerca.
Per stampare tutti gli utenti utilizzando più o meno comandi, eseguire:
$ più /etc/passwdOppure,
$ meno /etc/passwdLettura correlata:
- Come elencare i membri di un gruppo in Linux
- Come trovare utenti attualmente collegati in Linux
- Come monitorare l'attività degli utenti in Linux
- Come limitare l'accesso degli utenti al sistema Linux
- La differenza tra più, meno e la maggior parte dei comandi
- Come aggiungere, eliminare e concedere privilegi Sudo agli utenti in Ubuntu
- Come scoprire a quali gruppi appartiene un utente in Linux
- Il modo giusto per modificare i file /etc/passwd e /etc/group in Linux
Spero che questo aiuti.