Il comando who in Linux elenca tutti gli utenti registrati nel sistema. È piuttosto semplice da usare.
Basta inserire chi nella riga di comando e mostrerà tutti gli utenti attualmente connessi sul tuo sistema Linux.
[email protected]:~# who
root pts/0 2020-02-03 06:48 (152.72.29.73)
john pts/1 2020-02-03 07:02 (187.41.92.90)
jane pts/2 2020-02-03 07:02 (252.142.106.85)
Tieni presente che mostra solo gli utenti che sono attualmente collegati al tuo sistema. Ci sono altri modi per vedere tutti gli utenti su un sistema Linux come compgen.
Il comando who ha alcune opzioni per ottenere altre informazioni specifiche sugli utenti registrati.
Utilizzo del comando who in Linux
Ecco la sintassi del comando who:
who [options] [filename]
Hai già visto quali informazioni mostra il comando who senza alcuna opzione. Vediamo ora quali opzioni offre.
Stampa il tempo di inattività degli utenti
Insieme alle informazioni regolari, puoi anche stampare il tempo di inattività degli utenti. Se un utente non ha digitato nulla per un periodo di tempo, viene riflesso come tempo di inattività.
who -u
Come puoi vedere nell'output di seguito, l'utente john è rimasto inattivo per 2 minuti e 3 secondi.
[email protected]:~# who -u
root pts/0 2020-02-03 06:48 . 10669 (152.72.29.73)
john pts/2 2020-02-03 07:02 02:03 31528 (187.41.92.90)
Cosa potresti fare con queste informazioni? Un uso pratico è implementare un livello di sicurezza aggiuntivo disconnettendo automaticamente gli utenti che sono inattivi per più di un certo tempo.
Visualizza solo i nomi utente (e il loro conteggio)
Con l'opzione -q, puoi visualizzare solo gli utenti registrati e il loro conteggio.
[email protected]:~# who -q
root john jane
# users=3
Questo è simile all'output del "comando utenti" con l'eccezione del conteggio degli utenti registrati.
Verifica se gli utenti possono ricevere messaggi istantanei o meno
Sapevi che gli utenti possono scambiarsi messaggi nel terminale Linux utilizzando strumenti da riga di comando come mesg? Ovviamente spetta a un utente decidere se desidera ricevere o meno tali messaggi.
Puoi verificare se a un utente possono essere inviati messaggi o meno utilizzando l'opzione-T :
who -T
Nell'output seguente, + significa sì e – significa no. Se vedi ?, significa sconosciuto.
[email protected]:~# who -T
root - pts/0 2020-02-03 06:48 (152.72.29.73)
john + pts/2 2020-02-03 07:02 (187.41.92.90)
Mostra informazioni su di te
Una specie di alternativa whoami. Visualizza le informazioni sull'utente ma solo per te (ovvero l'utente associato al terminale corrente).
who -m
Controlla l'ora dell'ultimo avvio del sistema
In qualche modo simile al comando uptime, puoi ottenere informazioni sull'ultimo avvio del sistema utilizzando l'opzione -b del comando who:
who -b
Come puoi vedere, il mio server di prova è stato avviato l'ultima volta alle 09:41 del 19 dicembre 2019.
[email protected]:~# who -b
system boot 2019-12-19 09:41
Stampa il nome host degli utenti registrati
Questo potrebbe funzionare per gli utenti sulla stessa sottorete. Con l'opzione di ricerca , puoi visualizzare il nome host degli utenti che hanno effettuato l'accesso.
Controlla gli accessi passati e le informazioni sugli accessi errati
Probabilmente sai che nella gerarchia del filesystem Linux, memorizza informazioni e registri di runtime.
Il comando Who recupera le informazioni da /var/run/utmp. Puoi specificare altri file di registro per ottenere informazioni diverse.
Ad esempio, puoi ottenere informazioni sugli accessi passati se utilizzi il file /var/log/wtmp.
[email protected]:~# who /var/log/wtmp
root pts/0 2020-02-03 06:48 (152.72.29.73)
jane pts/1 2020-02-03 07:02 (252.142.106.85)
john pts/2 2020-02-03 07:02 (187.41.92.90)
jane pts/1 2020-02-03 07:12 (252.142.106.85)
jane pts/1 2020-02-03 08:55 (252.142.106.85)
Allo stesso modo, puoi vedere tutti i tentativi di accesso falliti usando il file /var/log/btmp.
[email protected]:~# who /var/log/btmp
Ovviamente, dipende dal fatto che il tuo sistema sia configurato per registrare queste informazioni.
Alla fine...
Ci sono alcune altre opzioni come -H che aggiunge un'intestazione come prima riga dell'output. Puoi sempre esplorarli tramite la sua pagina man.
Ho elencato, ciò che considero, gli esempi importanti del comando who. Spero che questo breve tutorial sui comandi Linux ti piaccia.