fb-pixel

Come verificare gli accessi con il comando last su Linux

Pubblicato in:

by:

Vuoi sapere come fare a verificare gli ultimi accessi da terminale? In questa guida ti mostreremo come usare il comando last su Linux per verificare gli accessi più recenti o per cercare gli accessi degli utenti in un periodo preciso.

Iniziamo dalla sintassi del comando per poi passare alle varie opzioni che possiamo sfruttare.

Sintassi del comando last

Su Linux il comando last fa parte dei comandi Linux che ci permettono di gestire gli utenti. In particolare questo comando ci permette di ottenere una lista degli utenti che hanno effettuato login e logout di recente.

Nella pratica questo comando va a recuperare le informazioni che sono salvate nel file /var/log/wtmp vale a dire tutti gli accessi che vengono registrati.

La sintassi di base del comando è questa:

last [opzioni] [username]

Usando il comando senza opzioni e senza argomenti, avremo una lista degli ultimi login (e logout) che saranno ordinati dal più recente al meno recente.

Come vedremo in questa guida, ci sono diverse opzioni che ci permettono di ottenere informazioni più dettagliate riguardo a periodi di tempo o utenti specifici.

Casi d’uso del comando last

In questa sezione andiamo a vedere come utilizzare il comando last e le sue opzioni.

Prima, però, dobbiamo capire come leggere l’output che ci viene restituito dal comando, in modo da sapere quali informazioni possiamo ricavare utilizzandolo.

Usare il comando last senza opzioni e leggere l’output

Uno dei metodi per usare il comando last su Linux è quello di dare il comando senza nessuna opzione.

Questo ci permette di avere un’idea degli ultimi login e logout che ci sono stati, una sorta di cronologia di quello che è successo.

Vediamo un esempio pratico. Riporto qui le prime righe dell’output del comando last sulla mia macchina virtuale.

maria tty1 :1 Wed Sep 10 10:35 - 10:40 (00:05) 
mariagra tty1 :1 Wed Sep 10 10:33 - 10:34 (00:01) 
vbox tty2 :0 Mon Jul 21 15:23 gone - no logout 
reboot system boot 6.8.0-64-generic Mon Jul 21 15:23 still running

Capiamo come leggere l’output.

Prima colonna: mostra il nome dell’utente che ha effettuato il login. Nota che il nome viene tagliato se supera una certa dimensione, poi con le opzioni vedremo come fare a mostrarlo completo.

Seconda colonna: indica il tipo di terminale (esempio pts o tty). Nella riga reboot vedremo invece indicato “system boot” per indicare che si tratta di un riavvio.

Terza colonna: in questa colonna viene indicato l’IP se la connessione è avvenuta da un altro dispositivo o in remoto. Non è il caso del mio esempio sopra, ma ecco un esempio che mostra diversi IP:

Comando Last Colonna Ip Connessione Remota

Quarta colonna: indica la data di login.

Quinta e sesta colonna: variano in base allo stato.

  • Se l’utente si è scollegato, vedremo una data di login separata da un trattino dalla data di logout come in questo esempio in cui fra parentesi viene anche indicato l’intervallo di tempo.
Wed Sep 10 10:35 - 10:40 (00:05)
  • Se l’utente è ancora loggato vedremo “still logged in“.

Qui sotto puoi vedere un esempio che ti aiuta a riconoscere gli utenti con sessioni ancora in corso, da quelli che hanno terminato la loro sessione facendo logout.

Utenti Loggati Utenti Log Out
  • Altre indicazioni in queste ultime colonne possono essere:
    • down – se il sistema è stato chiuso regolarmente;
    • crash – se il sistema è crashato e quindi non è stata memorizzata una voce relativa al logout.

Per ricapitolare, prendiamo questa voce dell’output come esempio:

maria tty1 :1 Wed Sep 10 10:35 - 10:40 (00:05) 

In questo caso abbiamo:

  • maria – nome utente
  • tty1 – tipo di terminale
  • Wed Sep 10 10:35 – data di login
  • 10:40 – logout
  • (00:05) – durata della sessione.

Tieni presente che alla fine dell’elenco, il comando ci restituisce un’ultima riga come questa:

wtmp begins Sat Jan 4 12:31:22 2025

Questa riga indica la data di creazione del file wtmp in cui vengono registrati gli accessi. Questo significa che saranno disponibili solo i log successivi a quella data.

Come limitare il numero di risultati

Se utilizziamo il comando last senza opzioni, come nell’esempio precedente, potremo trovarci davanti a una lista molto lunga e difficile da interpretare. L’ideale è utilizzare l’opzione -n per ridurre il numero di risultati da mostrare e poter così visualizzare solo gli accessi più recenti.

L’opzione si usa in questo modo:

last -n [numero-di-righe-da-mostrare]

Per esempio:

last -n 5

Questo comando ci mostrerà solamente le ultime 5 voci.

In questo esempio puoi vedere il confronto tra il comando last senza opzioni (a sinistra) e l’utilizzo dell’opzione -n (a destra).

Usare Comando Last Con Opzione N

Sapere quando c’è stato l’ultimo reboot o spegnimento

Se vogliamo informazioni specifiche sull’ultima volta che il sistema è stato riavviato o spento possiamo usare due comandi.

Per il riavvio usiamo:

last reboot

L’output di questo comando ci mostrerà l’elenco degli ultimi reboot del sistema come in questo esempio.

Comando Last Reboot

Per gli spegnimenti usiamo:

last shutdown

Conoscere gli ultimi accessi di un utente specifico

Nei sistemi con più utenti è comodo poter ricercare tutti gli accessi di uno specifico utente.

Suggerimento: per elencare tutti gli utenti, puoi consultare il file /etc/passwd ad esempio usando il comando cat, così cat /etc/passwd.

Per farlo ci basta usare il comando in questo modo:

last [nome-utete]

Per esempio:

last mariagrazia

Questo è un output di esempio:

Comando Last Utente Specifico

Mostrare i nomi utente per esteso

Nell’esempio precedente abbiamo visto che nell’output i nomi degli utenti vengono accorciati. Se, invece, vogliamo vederli per esteso, ci basta aggiungere al comando l’opzione -w.

Si usa in questo modo:

last -w

In questo esempio ti mostro la differenza nell’usare il comando last con e senza questa opzione.

Last Opzione W

Mostrare gli IP in formato più leggibile

Usando l’opzione -i insieme al comando last possiamo far sì che gli IP nell’elenco vengano indicati con la notazione puntata. Questa opzione è utile solo se di default l’IP viene mostrato in formato diverso.

Comando Last Colonna Ip Connessione Remota

Restringere la ricerca in base al terminale

Possiamo mostrare gli ultimi accessi registrati a un terminale specifico.

Negli esempi precedenti avrai notato che nella seconda colonna vengono specificati i terminali, nei miei esempi tty1 e tty2.

In questo caso per restringere la ricerca a uno specifico terminale ci basterà indicarlo come argomento, in questo modo:

last tty1

Possiamo anche abbreviare i tty indicando solo il numero, così:

last 1

In questo esempio ti mostro i due output (ovviamente sono identici visto che la seconda è solo un’abbreviazione che indica lo stesso terminale):

Comando Last Terminale Specifico

Conoscere gli utenti loggati in una determinata data

Un’altra opzione interessante su Linux è la possibilità di usare il comando last per conoscere tutti gli accessi avvenuti fino a una data specifica o prima di una data specifica.

Per ottenere la lista di tutti gli accessi avvenuti fino a una data specifica, l’opzione da usare è -t.

Invece per ottenere tutti quelli prima di una data specifica, dobbiamo usare -s.

Le opzioni si usano allo stesso modo e devono essere seguite dalla data indicata in questo modo:

[[CC]YY]MMDDhhmm[.SS]

Dove:

  • CC indica e prime due cifre dell’anno;
  • YY le ultime due cifre dell’anno;
  • MM indica il mese (sempre in formato numerico: 01 sarà gennaio, ecc.)
  • DD indica il giorno; hh per l’ora (da 00 a 23);
  • mm per i minuti (da 00 a 59);
  • SS per i secondi (da 00 a 59).

Per esempio per avere la lista di tutti gli accessi fino al 10 settembre 2025 alle ore 10:30:00 userò questo comando:

last -t 20250910103000

Mentre per avere la lista degli accessi avvenuti dopo le 10:32 del 10/09/2025 userò:

last -s 20250910103200
Comando Last Tempi Specifici

Tieni presente che puoi usare anche altre notazioni per indicare le date:

  • now – per indicare il timestamp attuale;
  • today – oggi;
  • yesterday – ieri;
  • -Xday (ad esempio -3days) – per indicare gli ultimi tre giorni.

Per esempio questo comando ci mostrerà gli accessi avvenuti negli ultimi 90 giorni:

last -s -90days

In questo esempio si può vedere la differenza in base al periodo indicato:

  • nel primo caso vediamo gli accessi degli ultimi 90 giorni (comando: last -s -90days);
  • nel secondo abbiamo esteso il periodo agli ultimi 200 giorni (comando: last -s -200days).
Comando Last Linux Intervalli Tempo

Comandi alternativi a last

Oltre al comando last, un altro comando interessante da conoscere è lastb.

Il comando last, come abbiamo visto, mostra le ultime attività di login e logout e va a prendere i dati dal file di log che si trova al percorso “/var/log/wtmp“.

Il comando lastb, invece, ha esattamente lo stesso funzionamento, ma in questo caso va a prendere i dati dal file di log “/var/log/btmp” vale a dire dal file che contiene tutti i tentativi di login che sono falliti.

Tieni presente che per usare lastb devi essere collegato al terminale come utente con permessi root.

In questo esempio puoi vedere gli output dei due comandi a confronto. Nella schermata di destra vediamo l’output di lastb che ci indica i tentativi di accesso falliti ordinandoli dal più al meno recente.

Differenze Tra Last Lastb

Conclusioni

Come abbiamo visto in questa guida, il comando last ci permette di fare un controllo da terminale per trovare rapidamente gli ultimi accessi.

Tieni presente che se non usi opzioni, il comando ti restituirà l’elenco completo di tutto il registro degli accessi. Per fortuna, con le opzioni che abbiamo visto, possiamo fare delle ricerche più selettive andando a mostrare sia gli accessi più recenti che restringendo i risultati per utenti e date.

E tu, avevi mai usato il comando last su Linux? Lascia un commento per farcelo sapere.


Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Commenti

Lascia un commento

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