GNU/Linux >> Linux Esercitazione >  >> Linux

Elenca utenti in Linux - Metodo migliore

Per configurare e gestire il sistema di autorizzazione, l'amministratore ha bisogno dell'elenco di tutti gli utenti. Ci sono comandi per creare utente, eliminare utente ma è un compito critico elencare tutti gli utenti nel sistema Linux. Inoltre è abbastanza necessario per motivi di sicurezza assicurarsi di avere il numero corretto di utenti e di non aver dimenticato di eliminarne alcuni.

Qui a LinuxAPT, come parte dei nostri servizi di gestione del server, aiutiamo regolarmente i nostri clienti a eseguire query relative al sistema Linux.

In questo contesto, esamineremo come elencare gli utenti nei sistemi Linux.


Come elencare tutti gli utenti usando il file /etc/passwd?

Le informazioni sull'utente sono memorizzate nel file /etc/passwd. Contiene una riga con nome utente per ciascun account utente sul sistema. Puoi usare less o cat comando per vedere il contenuto del file:

$ cat /etc/passwd

Nell'output, vedrai che ogni riga ha sette campi delimitati da due punti che contengono le seguenti informazioni:

  • Nome utente.
  • Password crittografata dove x significa che la password è salvata in etc/file shadow.
  • UID (ID utente).
  • GID (ID gruppo utente).
  • Nome completo dell'utente.
  • Utente $HOME directory.
  • Percorso shell di accesso.


Se vuoi elencare solo il nome utente, puoi usare i comandi awk o cut per stampare solo il nome utente:

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

L'output sarà il seguente:

Output
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
...
...
geoclue
gdm
gnome-initial-setup
sshd


Come elencare tutti gli utenti usando il comando getent?

Il comando Getent leggerà le voci dai database. Elencherà gli utenti sia dal database LDAP che dal file /etc/passwd.

Per ottenere un elenco di tutti gli utenti Linux, digita il seguente comando:

$ getent passwd

L'output sarà lo stesso del contenuto del file /etc/passwd. Puoi anche usare awk o cut per stampare solo il nome utente:

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


Come verificare se esiste un utente nel sistema Linux?

Ora sappiamo come ottenere l'elenco degli utenti. Ma cosa succede se si desidera verificare se un utente esiste o meno sul sistema corrente. Puoi controllare usando il comando grep e senza usare il comando grep.

Ad esempio, vogliamo verificare che l'utente linuxapt esista o meno, quindi dovresti emettere il comando come di seguito:

$ getent passwd | grep linuxapt
$ getent passwd linuxapt
Output
linuxapt:x:1001:1001:,,,:/home/linuxapt:/bin/bash

Se l'utente esiste nel sistema, stamperà i dettagli di quell'utente, altrimenti non stamperà nulla.

Se vuoi che il numero totale di utenti esista sul tuo sistema, puoi ottenerlo da:

$ getent passwd | wc -l

Restituirà il numero di utenti come il seguente output:

Output
47


Come differenziare il sistema e gli utenti normali?

Gli utenti del sistema vengono creati durante l'installazione del sistema operativo o l'aggiornamento di nuovi pacchetti. Non c'è più differenza tra utenti di sistema e utenti normali.

Gli utenti normali sono gli utenti creati dal root o da un altro utente con privilegi sudo. Di solito, un utente normale ha una vera shell di login e una home directory.

Ogni utente ha un UID (User ID) che sia utente di sistema o utente normale. Quando l'utente normale aggiunge l'utente utilizzando il comando adduser. L'utente verrà aggiunto e l'UID verrà assegnato automaticamente con riferimento a UID_MIN e UID_MAX dal file /etc/login.defs.

Puoi controllare UID_MIN e UID_MAX con il comando seguente:

$ grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

Mostrerà l'output come di seguito:

Output
UID_MIN             1000
UID_MAX            60000

Dall'output sopra, possiamo vedere che tutti gli utenti normali dovrebbero avere un ID univoco compreso tra 1000 e 60000.

Ora emetteremo il comando per ottenere l'elenco degli utenti normali il cui ID univoco compreso tra 1000 e 60000.

$ getent passwd {1000..60000}
Output
linuxapt:x:1000:1000:LinuxAPT,,,:/home/linuxapt:/bin/bash
demouser:x:1001:1001:,,,:/home/demouser:/bin/bash

Per stampare solo i nomi utente, digita il seguente comando:

$ eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1
Output
linuxapt
demouser


Come ottenere l'elenco dei gruppi in Linux?

Puoi elencare tutti i gruppi in Linux usando il seguente comando:

$ getent group

Puoi ottenere l'elenco di tutti i gruppi con un utente specifico usando il seguente comando:

$ getent group | grep linuxapt



Linux
  1. Come creare più account utente in Linux

  2. Gestisci utenti Linux e gruppi Linux

  3. Come trovare tutti gli utenti Sudo in Linux

  4. Come elencare gli utenti in CentOS 7

  5. Best practice per la sicurezza di Wordpress su Linux

Gli effetti dell'aggiunta di utenti a un sistema Linux

Come elencare utenti e gruppi su Linux

Come elencare tutti gli utenti di un gruppo in Linux

Elimina gli utenti in Linux con il comando Userdel

Linux – Aggiungi utente all'elenco di Sudoers

I 10 migliori antivirus per Linux - Elenco dei software antivirus per Linux!