Sådan bruger du den sidste kommando på Linux

Hvem, hvornår og hvorfra? God sikkerhedspraksis siger, at du skal vide, hvem der har haft adgang til din Linux-computer. Vi viser dig hvordan.

wtmp-filen

Linux og andre Unix-lignende operativsystemer såsom MacOS er meget gode til at logge. Et eller andet sted i systemets tarme er der en log for stort set alt, hvad du kan komme i tanke om. Logfilen, vi er interesseret i, hedder wtmp. “w” kan stå for “hvornår” eller “hvem” – ingen synes at være enige. “tmp”-delen står sandsynligvis for “midlertidig”, men den kan også stå for “tidsstempel.”

Hvad vi ved er, at wtmp er en log, der fanger og registrerer hver login- og logout-begivenhed. Gennemgang af dataene i wtmp-loggen er et grundlæggende trin i at tage en sikkerhedsorienteret tilgang til dine systemadministratoropgaver. For en typisk familiecomputer er det måske ikke så kritisk set ud fra et sikkerhedsperspektiv, men det er interessant at kunne gennemgå din kombinerede brug af computeren.

I modsætning til mange af de tekstbaserede logfiler i Linux, er wtmp en binær fil. For at få adgang til dataene i den skal vi bruge et værktøj designet til den opgave.

Det værktøj er den sidste kommando.

Den sidste kommando

Den sidste kommando læser data fra wtmp-loggen og viser dem i et terminalvindue.

Hvis du skriver sidst og trykker på Enter vil det vise alle poster fra logfilen.

last

Hver post fra wtmp vises i terminalvinduet.

Fra venstre mod højre indeholder hver linje:

Brugernavnet på den person, der loggede ind.
Terminalen de var logget ind på. En terminalindtastning på :0 betyder, at de var logget ind på selve Linux-computeren.
IP-adressen på den maskine, de var logget på.
Indlogningstidspunkt og datostempel.
Sessionens varighed.

  Sådan installeres LightningBug GTK-temaet på Linux

Den sidste linje fortæller os datoen og klokkeslættet for den tidligst registrerede session i loggen.

En login-post for den fiktive bruger ‘genstart’ indtastes i loggen, hver gang computeren startes op. Terminalfeltet erstattes med kerneversionen. Varigheden af ​​den loggede session for disse poster repræsenterer oppetiden for computeren.

Viser et bestemt antal linjer

Brug af den sidste kommando alene producerer et dump af hele loggen, hvor det meste suser forbi terminalvinduet. Den del, der forbliver synlig, er de tidligste data i loggen. Det er nok ikke det, du ønskede at se.

Du kan fortælle sidst for at give dig et bestemt antal outputlinjer. Gør dette ved at angive det antal linjer, du ønsker på kommandolinjen. Bemærk bindestregen. For at se fem linjer skal du skrive -5 og ikke 5:

last -5

Dette giver de første fem linjer fra loggen, som er de seneste data.

Viser netværksnavne for fjernbrugere

Indstillingen -d (Domain Name System) fortæller, at sidst skal forsøge at omsætte fjernbrugeres IP-adresser til en maskine eller et netværksnavn.

last -d

Det er ikke altid muligt for sidste at konvertere IP-adressen til et netværksnavn, men kommandoen vil gøre det, når den kan.

Skjuler IP-adresser og netværksnavne

Hvis du ikke er interesseret i IP-adressen eller netværksnavnet, skal du bruge -R (ingen værtsnavn) mulighed for at undertrykke dette felt.

Fordi dette giver et pænere output uden grimme omslag, er denne mulighed blevet brugt i alle de følgende eksempler. Hvis du brugte last til at forsøge at identificere usædvanlig eller mistænkelig aktivitet, ville du ikke undertrykke dette felt.

Valg af poster efter dato

Du kan bruge -s (siden) mulighed for at begrænse output til kun at vise login hændelser, der fandt sted siden en bestemt dato.

Hvis du kun ville se login-begivenheder, der fandt sted fra maj, 26. 2019, ville du bruge følgende kommando:

last -R -s 2019-05-26

Outputtet viser poster med login-hændelser, der fandt sted fra klokken 00:00 på den angivne dag, op til de nyeste poster i logfilen.

  Sådan bruges regulære udtryk (regexes) på Linux

Søgning indtil en slutdato

Du kan bruge -t (indtil) til at angive en slutdato. Dette giver dig mulighed for at vælge et sæt login-poster, der fandt sted mellem to interessedatoer.

Denne kommando beder sidst om at hente og vise login-records fra kl. 00:00 (daggry) den 26. til klokken 00:00 (daggry) den 27. Dette indsnævrer fortegnelsen til login-sessioner, der kun fandt sted den 26.

Tids- og datoformater

Du kan bruge tider såvel som datoer med -s og -t mulighederne.

De forskellige tidsformater, der kan bruges med de sidste muligheder, der bruger datoer og klokkeslæt er (angiveligt):

ÅÅÅÅMMDDhhmmss
ÅÅÅÅ-MM-DD tt:mm:ss
ÅÅÅÅ-MM-DD tt:mm – sekunder er sat til 00
ÅÅÅÅ-MM-DD – tiden er indstillet til 00:00:00
tt:mm:ss – datoen er sat til i dag
tt:mm – datoen indstilles til i dag, sekunder til 00
nu
i går – tiden er sat til 00:00:00
i dag – klokken er sat til 00:00:00
i morgen – klokken er sat til 00:00:00
+5 min
-5 dage

Hvorfor ‘angiveligt’?

Det andet og tredje format på listen fungerede ikke under undersøgelsen af ​​denne artikel. Disse kommandoer blev testet på Ubuntu, Fedora og Manjaro distributioner. Disse er derivater af henholdsvis Debian-, RedHat- og Arch-distributionerne. Det dækker alle hovedfamilierne af Linux-distribution.

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

Som du kan se, returnerede kommandoen ingen poster overhovedet.

Brug af det første dato- og tidsformat fra listen med samme dato og klokkeslæt som den forrige kommando returnerer poster:

last -R -s 20190526110000 -t 20190527130000

Søgning efter relative enheder

Du angiver også tidsperioder, der måles i minutter eller dage i forhold til den aktuelle dato og klokkeslæt. Her beder vi om optegnelser fra to dage siden til en dag siden.

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

I går, i dag og nu

Du kan bruge i går og i morgen som stenografi for gårsdagens dato og dagens dato.

last -R -s yesterday -t today

Ikke at dette ikke vil inkludere nogen poster for i dag. Det er den forventede adfærd. Kommandoen beder om poster fra startdatoen til slutdatoen. Det inkluderer ikke poster fra slutdatoen.

  Sådan spiller du Crusader Kings II på Linux

Nu-indstillingen er en forkortelse for “i dag på det aktuelle tidspunkt.” For at se login-hændelser, der har fundet sted siden 00:00 (daggry) indtil det tidspunkt, hvor du udsender kommandoen, skal du bruge denne kommando:

last -R -s today -t now

Dette vil vise alle login-begivenheder lige på nuværende tidspunkt, inklusive dem, der stadig er logget ind.

Den nuværende mulighed

Indstillingen -p (nuværende) giver dig mulighed for at finde ud af, hvem der var logget ind på et tidspunkt.

Det er lige meget, hvornår de loggede ind eller ud, men hvis de var logget ind på computeren på det tidspunkt, du angiver, vil de blive inkluderet i oversigten.

Hvis du angiver et tidspunkt uden en dato, antager du sidst, at du mener “i dag”.

last -R -p 09:30

Personer, der stadig er logget ind (naturligvis), har ikke en log ud tid; de beskrives som stadig logget ind. Hvis computeren ikke er blevet genstartet siden det tidspunkt, du angiver, vil den blive vist som stadig kørende.

Hvis du bruger den nu stenografi med -p (nuværende) mulighed, kan du finde ud af, hvem der er logget ind på det tidspunkt, du afgiver kommandoen.

last -R -p now

Dette er en lidt omstændelig måde at opnå, hvad der kan opnås ved at bruge who-kommandoen.

Den sidste kommando

Lastb kommandoen fortjener omtale. Den læser data fra en log kaldet btmp. Der er lidt mere konsensus om dette lognavn. ‘b’et’ står for dårligt, men ‘tmp’-delen er stadig genstand for debat.

lastb viser de dårlige (mislykkede) loginforsøg. Den accepterer de samme muligheder som sidst. Fordi de var mislykkede loginforsøg, har de alle en varighed kl. 00:00.

Du skal bruge sudo med lastb.

sudo lastb -R

Det sidste ord om sagen

At vide, hvem der har logget ind på din Linux-computer, og hvornår og hvorfra er nyttig information. Ved at kombinere dette med detaljerne om mislykkede login-forsøg bevæbner du dig med de første trin i efterforskningen af ​​mistænkelig adfærd.