Introduzione

Se gestisci un sistema multiutente, dovrai spesso sapere chi, quando e da dove è stato effettuato l'accesso alla macchina.

last è un'utilità della riga di comando che visualizza informazioni sulle ultime sessioni di accesso degli utenti del sistema. È molto utile quando è necessario tenere traccia dell'attività dell'utente o indagare su una possibile violazione della sicurezza.

Questo articolo spiega come controllare chi ha effettuato l'accesso al sistema usando il comando last.

Come usare il comando last

La sintassi per il comando last è la seguente:

last [OPTIONS] [USER] [<TTY>...]

Ogni volta che un utente accede al sistema, un record per quella sessione viene scritto nel file /var/log/wtmp. last legge il file wtmp e stampa informazioni sugli accessi e le disconnessioni degli utenti. I record vengono stampati in ordine inverso, a partire da quelli più recenti.

Quando last viene invocato senza alcuna opzione o argomento, l'output è simile al seguente:

root     pts/0        2.226.134.97     Tue Feb 25 20:12   still logged in
alice    pts/0        2.226.134.97     Sat Feb 22 19:33 - 19:39  (00:06)
reboot   system boot  4.19.0-6-amd64   Sat Feb 22 18:56   still running

wtmp begins Sun Jan 12 05:11:32 2020

Ogni riga di output contiene le seguenti colonne da sinistra a destra:

  • Il nome utente. Quando il sistema si riavvia o si spegne, last mostra gli utenti speciali reboot e shutdown.
  • Il numero su cui si è svolta la sessione. :0 di solito significa che l'utente stava effettuando l'accesso a un ambiente desktop.
  • L'indirizzo IP o il nome host da cui l'utente ha effettuato l'accesso.
  • I tempi di inizio e fine della sessione.
  • La durata della sessione Se la sessione è ancora attiva o l'utente non si è disconnesso, l'ultimo mostrerà le informazioni al riguardo invece della durata.

Per limitare l'output a un utente o tty specifico, passare il nome utente o tty come argomento al comando last:

last alice

Puoi anche specificare più nomi utente e tty come argomenti:

last alice root pts/0

Opzioni del comando last

last accetta diverse opzioni che consentono di limitare, formattare e filtrare l'output. In questa sezione, tratteremo quelli più comuni.

Per specificare il numero di righe che si desidera stampare sulla riga di comando, passare il numero preceduto da un singolo trattino al comando last. Ad esempio, per stampare solo le ultime dieci sessioni di accesso digitare:

last -10

Con l'opzione -p(--present), puoi scoprire chi ha effettuato l'accesso al sistema in una data specifica.

last -p 2020-02-20

Utilizzare l'opzione -s(--since) e -t(--until) per indicare last di visualizzare le righe da o fino al tempo specificato. Queste due opzioni vengono spesso utilizzate insieme per definire un intervallo di tempo per il quale si desidera recuperare le informazioni. Ad esempio, per visualizzare i record di accesso dal 15 febbraio al 22 febbraio, eseguire:

last -s 2020-02-15 -u 2020-02-22

Il tempo è dato dalle opzioni -p, -s e -t  e possono essere specificate nei seguenti formati:

YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm     (seconds will be set to 00)
YYYY-MM-DD           (time will be set to 00:00:00)
hh:mm:ss             (date will be set to today)
hh:mm                (date will be set to today, seconds to 00)
now
yesterday            (time is set to 00:00:00)
today                (time is set to 00:00:00)
tomorrow             (time is set to 00:00:00)
+5min
-5days

Per impostazione predefinita, last non mostra i secondi e l'anno. Utilizzare l'opzione -F, --fulltimes per visualizzare orari e date di accesso e disconnessione completi:

last -F

L'opzione -i(--ip) impone last di mostrare sempre l'indirizzo IP e -d(--dns) di mostrare i nomi host:

last -i

Conclusione

Il comando last stampa le informazioni sui tempi di accesso e disconnessione degli utenti. Per ulteriori informazioni sul comando, digitare man last:

man last