Come utilizzare l’ultimo comando su Linux

Chi, quando e da dove? Buone pratiche di sicurezza dicono che dovresti sapere chi ha accesso al tuo computer Linux. Ti mostriamo come.

Il file wtmp

Linux e altri sistemi operativi simili a Unix come MacOS sono molto bravi a registrare. Da qualche parte nelle viscere del sistema, c’è un registro per quasi tutto ciò a cui puoi pensare. Il file di registro che ci interessa si chiama wtmp. La “w” potrebbe significare “quando” o “chi”: nessuno sembra essere d’accordo. La parte “tmp” probabilmente sta per “temporaneo”, ma potrebbe anche stare per “timestamp”.

Quello che sappiamo è che wtmp è un registro che acquisisce e registra ogni evento di accesso e disconnessione. La revisione dei dati nel registro wtmp è un passaggio fondamentale per adottare un approccio orientato alla sicurezza ai compiti di amministratore del sistema. Per un tipico computer di famiglia, potrebbe non essere così critico dal punto di vista della sicurezza, ma è interessante essere in grado di rivedere il tuo utilizzo combinato del computer.

A differenza di molti dei file di registro basati su testo in Linux, wtmp è un file binario. Per accedere ai dati al suo interno, dobbiamo utilizzare uno strumento progettato per tale compito.

Quello strumento è l’ultimo comando.

L’ultimo comando

L’ultimo comando legge i dati dal registro wtmp e li visualizza in una finestra di terminale.

Se digiti l’ultimo e premi Invio, lo farà visualizzare tutti i record dal file di registro.

last

ultimo comando in una finestra di terminale

Ogni record da wtmp viene visualizzato nella finestra del terminale.

Da sinistra a destra, ogni riga contiene:

Il nome utente della persona che ha effettuato l’accesso.
Il terminale a cui erano collegati. Una voce di terminale di: 0 significa che sono stati registrati sul computer Linux stesso.
L’indirizzo IP della macchina a cui sono stati collegati.
L’ora e la data di accesso.
La durata della sessione.

  Come giocare a Little Nightmares su Linux

output da last in una finestra di terminale

L’ultima riga ci dice la data e l’ora della prima sessione registrata nel registro.

Una voce di accesso per l’utente fittizio “riavvio” viene inserita nel registro ogni volta che il computer viene avviato. Il campo del terminale viene sostituito con la versione del kernel. La durata della sessione di accesso per queste voci rappresenta il tempo di attività del computer.

Visualizzazione di un numero specifico di righe

L’uso dell’ultimo comando da solo produce un dump dell’intero registro con la maggior parte di esso che sfreccia oltre la finestra del terminale. La parte che rimane visibile sono i primi dati nel registro. Questo probabilmente non è quello che volevi vedere.

Puoi dire a last per darti un numero specifico di righe di output. Fallo fornendo il numero di righe che desideri sulla riga di comando. Nota il trattino. Per vedere cinque righe, è necessario digitare -5 e non 5:

last -5

ultimi -5 in una finestra di terminale

Questo fornisce le prime cinque righe del registro, che sono i dati più recenti.

prime cinque righe da twmp in una finestra di terminale

Visualizzazione dei nomi di rete per gli utenti remoti

L’opzione -d (Domain Name System) indica a last di provare a risolvere gli indirizzi IP degli utenti remoti in un nome di macchina o di rete.

last -d

last -d in una finestra di terminale

Non è sempre possibile per ultimo convertire l’indirizzo IP in un nome di rete, ma il comando lo farà quando possibile.

output da last -d in una finestra di terminale

Nascondere indirizzi IP e nomi di rete

Se non sei interessato all’indirizzo IP o al nome della rete, utilizza l’opzione -R (nessun nome host) per eliminare questo campo.

last -R in una finestra di terminale

Poiché questo fornisce un output più ordinato senza brutti involucri, questa opzione è stata utilizzata in tutti gli esempi seguenti. Se si utilizza l’ultimo per tentare di identificare attività insolite o sospette, non si eliminerà questo campo.

output dall'ultimo -R in una finestra di terminale

Selezione dei record per data

È possibile utilizzare l’opzione -s (dal) per limitare l’output in modo da mostrare solo gli eventi di accesso che si sono verificati a partire da una data specifica.

  Come giocare a Dead Space su Linux

Se volessi vedere solo gli eventi di accesso che hanno avuto luogo dal 26 maggio 2019, dovresti utilizzare il seguente comando:

last -R -s 2019-05-26

last -R -s 2019-05-26 in una finestra di terminale

L’output mostra i record con eventi di accesso che si sono verificati dall’ora 00:00 del giorno specificato, fino ai record più recenti nel file di registro.

Uscita dall'ultimo -R -s 2019-05-26 in una finestra di terminale

Ricerca fino a una data di fine

È possibile utilizzare -t (fino a) per specificare una data di fine. Ciò consente di selezionare una serie di record di accesso avvenuti tra due date di interesse.

last -R -s 2019-05-26 -t 2019-05-27 in una finestra di terminale

Questo comando chiede per ultimo di recuperare e visualizzare i record di accesso dalle 00:00 (alba) del 26 fino alle 00:00 (alba) del 27. Questo restringe l’elenco alle sessioni di accesso che si sono svolte solo il 26.

Output degli ultimi -R -s 2019-05-26 -t 2019-05-27 in una finestra di terminale

Formati di data e ora

È possibile utilizzare orari e date con le opzioni -s e -t.

I diversi formati di ora che possono essere utilizzati con le ultime opzioni che utilizzano date e orari sono (presumibilmente):

AAAAMMGGhhmmss
AAAA-MM-GG hh: mm: ss
AAAA-MM-GG hh: mm – i secondi sono impostati su 00
AAAA-MM-GG: l’ora è impostata su 00:00:00
hh: mm: ss – la data è impostata su oggi
hh: mm – la data verrà impostata su oggi, i secondi su 00
adesso
ieri – l’ora è impostata su 00:00:00
oggi – l’ora è impostata su 00:00:00
domani – l’ora è impostata su 00:00:00
+ 5min
-5 giorni

Perché “presumibilmente”?

Il secondo e il terzo formato nell’elenco non hanno funzionato durante la ricerca per questo articolo. Questi comandi sono stati testati su distribuzioni Ubuntu, Fedora e Manjaro. Questi sono derivati ​​delle distribuzioni Debian, RedHat e Arch, rispettivamente. Questo copre tutte le principali famiglie di distribuzione Linux.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Uscita da un ultimo comando non riuscito in una finestra di terminale

Come puoi vedere, il comando non ha restituito alcun record.

L’utilizzo del primo formato di data e ora dall’elenco con la stessa data e ora del comando precedente restituisce i record:

last -R -s 20190526110000 -t 20190527130000

last -R -s 20190526110000 -t 20190527130000 in una finestra di terminale

Ricerca per unità relative

Si specificano anche periodi di tempo misurati in minuti o giorni, relativi alla data e all’ora correnti. Qui stiamo chiedendo record da due giorni fa fino a un giorno fa.

last -R -s -2days -t -1days

last -R -s -2days -t -1days in una finestra di terminale

Ieri, oggi e adesso

Puoi usare ieri e domani come abbreviazione per la data di ieri e la data di oggi.

last -R -s yesterday -t today

last -R -s ieri -t oggi in una finestra di terminale

Non che questo non includerà alcun record per oggi. Questo è il comportamento previsto. Il comando richiede record dalla data di inizio fino alla data di fine. Non include record entro la data di fine.

  Come utilizzare il comando yes su Linux

Uscita dall'ultimo -R -s ieri -t oggi in una finestra di terminale

L’opzione now è l’abbreviazione di “today at the current time”. Per vedere gli eventi di login che si sono verificati dalle 00:00 (alba) fino all’ora in cui hai emesso il comando usa questo comando:

last -R -s today -t now

last -R -s oggi - t ora in una finestra di terminale

Questo mostrerà tutti gli eventi di accesso fino al momento attuale, compresi quelli che sono ancora collegati.

output dall'ultimo -R -s oggi-adesso

La presente opzione

L’opzione -p (presente) ti consente di scoprire chi è stato connesso in un determinato momento.

Non importa quando si sono collegati o scollegati, ma se sono stati connessi al computer all’ora specificata, verranno inclusi nell’elenco.

Se specifichi un’ora senza una data ultima, si presume che tu intenda “oggi”.

last -R -p 09:30

last -R -p 09:30 in una finestra di terminale

Le persone che sono ancora loggate (ovviamente) non hanno un tempo di logout; sono descritti come ancora loggati. Se il computer non è stato riavviato dall’ora specificata, verrà elencato come ancora in esecuzione.

Uscita dall'ultimo -R -p 09:30

Se usi la scorciatoia now con l’opzione -p (present) puoi scoprire chi è loggato nel momento in cui emetti il ​​comando.

last -R -p now

last -R -p ora in una finestra di terminale

Questo è un modo un po ‘prolisso per ottenere ciò che può essere ottenuto utilizzando il comando who.

Uscita dall'ultima -R -p ora in una finestra di terminale

Il comando lastb

Il comando lastb merita di essere menzionato. Legge i dati da un registro chiamato btmp. C’è un po ‘più di consenso su questo nome di registro. La “b” sta per cattivo, ma la parte “tmp” è ancora oggetto di dibattito.

lastb elenca i tentativi di accesso non validi (falliti). Accetta le stesse opzioni dell’ultimo. Poiché erano tentativi di accesso non riusciti, tutte le voci avranno una durata di 00:00.

Devi usare sudo con lastb.

sudo lastb -R

lastb - R in una finestra di terminale

L’ultima parola sulla questione

Sapere chi ha effettuato l’accesso al tuo computer Linux, e quando e da dove sono utili informazioni. La combinazione di questo con i dettagli dei tentativi di accesso non riusciti fornisce i primi passi per indagare su comportamenti sospetti.