15 + esempi per elencare gli utenti in Linux

In questo post, imparerai a elencare gli utenti in Linux. Oltre a questo, saprai altri trucchi sulle caratteristiche degli utenti Linux.

Ci sono due tipi di utenti in Linux, gli utenti di sistema che vengono creati di default con il sistema. D’altra parte, ci sono utenti regolari che vengono creati dagli amministratori di sistema e possono accedere al sistema e usarlo.

Sommario

Quale file contiene l’elenco degli utenti su Linux?,

Prima di iniziare a elencare gli utenti, abbiamo bisogno di sapere dove questi utenti salvati su Linux?

Gli utenti sono memorizzati in un file di testo sul sistema chiamato file passwd. Questo file si trova nella directory / etc.

Il file si trova nel seguente percorso:

$ /etc/passwd

In questo file, è possibile trovare tutte le informazioni sugli utenti nel sistema.

Elenca tutti gli utenti

Elencare gli utenti è il primo passo per gestirli. In questo modo, sapremo quanti sono e chi sono. In Linux, quasi tutto può essere fatto in vari modi, e questo non fa eccezione.,

Per elencare tutti gli utenti, puoi usare il comando cat:

$ cat /etc/passwd

Come puoi vedere nell’immagine, ci sono tutte le informazioni sugli utenti.

1 – Nel primo campo, vedrai il nome utente.

2-Il secondo campo (Il carattere x) è una rappresentazione della password crittografata. La password crittografata è memorizzata nel file/etc / shadow.

3-L’UID o l’ID utente.

4-Il campo successivo si riferisce al gruppo primario dell’utente.

5-Quindi, mostra informazioni sull’ID utente come l’indirizzo, l’email, ecc.,

6-Dopo questo, vedrai la directory home dell’utente.

7-L’ultimo campo è la shell utilizzata da quell’utente.

Tuttavia, anche se le informazioni sono abbastanza utili, se si desidera solo elencare i nomi degli utenti in modo semplice, è possibile utilizzare questo comando:

$ cut -d: -f1 /etc/passwd

Ora abbiamo i nomi solo stampando il primo campo del file solo.

List& ordina gli utenti per nome

Il comando precedente ha lo scopo di elencare gli utenti su Linux. Ma per quanto riguarda l’elenco degli utenti in ordine alfabetico?,

Per fare ciò, useremo il comando precedente, ma aggiungeremo il comando sort.

Quindi, il comando sarà così:

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

Come puoi vedere nell’immagine, gli utenti sono mostrati ordinati.

Linux elenca gli utenti senza password

È importante conoscere gli utenti che non hanno password e prendere le misure appropriate. Per elencare gli utenti che non hanno una password, basta usare il seguente comando:

$ sudo getent shadow | grep -Po '^*(?=:.?:)'

La regex utilizzata elencherà tutti gli utenti senza password.,

Elenca gli utenti per utilizzo del disco

Se hai una directory grande e vuoi sapere quale utente la sta inondando, puoi usare il comando du per ottenere l’utilizzo del disco.

Con questo, è possibile rilevare quali di questi utenti stanno abusando dello spazio su disco.

Per questo, è sufficiente utilizzare il seguente comando:

$ sudo du -smc /home/* | sort -n

In questo modo, avrai gli utenti ordinati dall’utilizzo del disco per la directory /home.

Abbiamo usato il-n per il comando sort per ordinare l’output in base ai numeri.,

Elenca gli utenti attualmente registrati

Per elencare gli utenti attualmente registrati, abbiamo diversi modi per farlo. Il primo metodo possiamo usare il comando users:

$ users

Elencherà gli utenti con sessioni aperte nel sistema.

Ma questa informazione è un po ‘ di base; tuttavia, abbiamo un altro comando che fornisce maggiori dettagli. Il comando è semplicemente w.,

$ w

Con questo comando, possiamo avere più informazioni, come l’ora esatta in cui la sessione è stata avviata e la sessione terminale che ha a disposizione.

Infine, c’è un comando chiamato who. È disponibile per l’intera famiglia Unix. Quindi puoi usarlo su altri sistemi come FreeBSD.

$ who

Con il comando who, abbiamo anche alcune informazioni sugli utenti attualmente connessi. Naturalmente, possiamo aggiungere l’opzione-a e mostrare tutti i dettagli.,

$ who -a

In questo modo, sai tutto sugli utenti registrati.

Linux elenco degli utenti che hanno recentemente effettuato l’accesso al sistema

Abbiamo visto come ottenere gli utenti attualmente connessi, che dire di elencare la cronologia di accesso degli utenti?,

È possibile utilizzare l’ultimo comando o per avere maggiori informazioni sull’account di accesso che ha avuto luogo:

$ last

O gli account di accesso di un determinato utente

$ last 

Per esempio:

$ last angelo

Queste sono le attività di accesso degli utenti e quando è nato e di come il tempo impiegato.

Elenca gli accessi degli utenti in una data o ora specifica

Che ne dici di elencare gli accessi degli utenti in una data o ora specifica?, Per raggiungere questo obiettivo, utilizziamo l’ultimo comando, ma con il parametro-t:

$ last -t YYMMDDHHMMSS

Per esempio:

$ last -t 20190926110509

E ora, tutto quello che dovete fare è scegliere una data esatta & elenco connesso in quel momento.

Elenca tutti gli utenti in un gruppo

Ci sono due modi per elencare i membri di un gruppo in Linux, il modo più semplice e diretto è quello di ottenere gli utenti dal file/etc/group in questo modo:

$ cat /etc/group | grep likegeeks

Questo comando elencherà gli utenti nel gruppo likegeeks.,

L’altro modo è usare comandi come il comando members nelle distribuzioni basate su Debian. Tuttavia, non è installato di default nelle distribuzioni Linux.,

Per installarlo in Ubuntu / Linux Mint 19, basta usare APT:

$ sudo apt install members

O, nel caso di CentOS:

$ sudo dnf install members

una Volta installato, è possibile eseguire il comando con il nome del gruppo che si desidera elencare gli utenti di:

$ members 

Per esempio:

$ members avahi

in Questo modo, è possibile elencare gli utenti per un gruppo in una distro basata su Debian. Che dire di una distribuzione basata su RedHat come CentOS?,

È possibile utilizzare il seguente comando:

$ getent group likegeeks

Elencare gli utenti con UID

Nei sistemi Unix, ogni utente ha un identificatore utente o ID. Serve a gestire e amministrare gli account internamente nel sistema operativo.

Generalmente, gli UID da 0 a 1000 sono per gli utenti di sistema. E successivamente per gli utenti regolari. Sempre su sistemi Unix, UID zero appartiene agli utenti root (puoi avere più di un utente con UID di zero).

Così ora, elencheremo gli utenti con il loro rispettivo UID usando Awk.,

Il comando che esegue l’operazione è il seguente:

$ awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd

Come puoi vedere, ogni utente con il suo UID.

Elenca gli utenti root

In un sistema simile a Unix come Linux, di solito c’è un solo utente root. Se ce ne sono molti, come elencarli?

Per fare ciò, possiamo usare questo comando:

$ grep 'x:0:' /etc/passwd

Qui stiamo filtrando il file per ottenere utenti con UID di zero (utenti root).,

Un altro modo controllando il file/etc/group:

$ grep root /etc/group

Qui stiamo ottenendo gli utenti nella radice del gruppo dal file/etc / group.

Inoltre, è possibile controllare se un utente può eseguire comandi come root, controllando il file /etc/sudoers:

$ cat /etc/sudoers

Ottenere il numero totale di utenti

Per ottenere il numero totale di utenti in Linux, si possono contare le righe in /etc/passwd file utilizzando il comando wc come questo:

$ cut -d: -f1 /etc/passwd | wc -l

Grande! 43 utenti., Ma questo include il sistema e gli utenti regolari. Che dire di ottenere solo il numero di utenti regolari?

Facile! Poiché sappiamo dall’alto che gli utenti regolari hanno UID di 1000 o superiore, possiamo usare Awk per ottenerli:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd

Cool!

Elenca gli utenti sudo

I sistemi Linux hanno un’utilità chiamata sudo che ti permette di eseguire comandi come se fossi un altro utente che di solito è l’utente root.

Questo deve essere maneggiato con cura in un ambiente professionale.,

Inoltre, è molto importante sapere quali utenti possono eseguire il comando sudo. Per questo, è sufficiente elencare gli utenti che appartengono al gruppo sudo.

$ members sudo

Gli utenti di questo gruppo possono eseguire comandi come super utenti.

Elenca gli utenti che hanno accesso SSH

SSH consente agli utenti di accedere a computer remoti su una rete. E ‘ abbastanza sicuro ed è nato come un sostituto per Telnet.

Per impostazione predefinita, tutti gli utenti regolari possono accedere e utilizzare SSH., Se si vuole limitare a questo, è possibile utilizzare SSH file di configurazione (/etc/ssh/ssh_config) e aggiungere la seguente direttiva:

AllowUsers user1 user2 user3

Inoltre, è possibile consentire a gruppi invece di consentire agli utenti solo tramite la direttiva AllowGroups:

AllowGroups group1 group2 group3

Queste direttive definiscono chi può accedere al servizio. Non dimenticare di riavviare il servizio SSH.

Elenca gli utenti che hanno le autorizzazioni per un file o una directory

Possiamo dare a più di un utente il permesso di accedere o modificare i file& directory in due modi.,

Il primo metodo consiste nell’aggiungere utenti al gruppo del file o della directory.

In questo modo, possiamo elencare i membri del gruppo utilizzando l’utilità membri come mostrato sopra.

Va bene, ma cosa succede se vogliamo solo che questo utente abbia accesso solo a questo file specifico (non a tutte le autorizzazioni del gruppo)?

Qui possiamo impostare le ACL per questo file usando setfacl comando come questo:

$ setfacl -m u:newuser:rwx myfile

Qui diamo l’utente chiamato newser l’autorizzazione per il file chiamato myfile le autorizzazioni di lettura & scrivere & execute.,

Ora è possibile accedere al file o modificarlo dal proprietario e l’utente ha chiamato newuser. Quindi, come elencarli?

Possiamo elencarli usando il comando getfacl in questo modo:

$ getfacl myfile

Questo comando elencherà tutti gli utenti che hanno le autorizzazioni per il file con le autorizzazioni corrispondenti.

Elenca gli utenti bloccati (disabilitati)

In Linux, come misura di sicurezza, possiamo bloccare gli utenti. Questo come precauzione se si sospetta che l’utente stia facendo cose sbagliate e non si desidera rimuovere completamente l’utente e bloccarlo per le indagini.,

Per bloccare un utente, è possibile utilizzare il seguente comando:

$ usermod -L myuser

Ora l’utente denominato myuser non sarà più in grado di accedere o utilizzare il sistema.

Per elencare tutti gli utenti bloccati del sistema, basta usare il seguente comando:

$ cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

Questo stamperà tutti gli utenti bloccati, inclusi gli utenti del sistema. Che dire di elencare solo gli utenti regolari?

Come abbiamo visto sopra, usando Awk, possiamo bloccare gli utenti regolari in questo modo:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

Molto facile!,

Elenco utenti remoti (LDAP)

Ok, ora puoi elencare tutti gli utenti di sistema (utenti locali), ma per quanto riguarda gli utenti remoti o gli utenti LDAP? Bene, possiamo usare uno strumento come ldapsearch, ma c’è un altro modo?

Per fortuna sì! È possibile elencare gli utenti remoti locali & con un comando chiamato getent

$ getent passwd

Questo comando elenca sia gli utenti di sistema locali che gli utenti LDAP o NIS o qualsiasi altro utente di rete.

È possibile convogliare i risultati di questo comando a uno qualsiasi dei comandi sopra menzionati allo stesso modo.,

Inoltre, il comando getent può elencare gli account di gruppo in questo modo:

$ getent group

È possibile controllare la pagina man del comando per conoscere gli altri database in cui il comando può cercare.

Conclusione

Elencare gli utenti nel sistema Linux è stato divertente! Oltre a questo, abbiamo imparato alcuni suggerimenti sugli utenti e su come gestirli in modi diversi.

Infine, questa conoscenza permetterà una migliore amministrazione degli utenti del sistema.

Spero che il tutorial sia utile. Continua a tornare.,

Fondatore di LikeGeeks. Sto lavorando come amministratore di sistema Linux dal 2010. Sono responsabile della manutenzione, della protezione e della risoluzione dei problemi dei server Linux per più client in tutto il mondo. Mi piace scrivere script shell e Python per automatizzare il mio lavoro.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *