Hur man ändrar kontolösenord på Linux

Lösenord har spelat en central roll för kontosäkerhet i sex decennier, med rötter som sträcker sig nästan ett årtionde före Unix. Denna artikel utforskar hur du kan hantera dina lösenord i Linux, oavsett om du föredrar kommandoraden eller GNOME-skrivbordsmiljön.

Att Skapa Ett Starkt Lösenord

Behovet av datorlösenord uppstod ur nödvändighet. Med introduktionen av tidsdelningssystem för flera användare, blev det tydligt att man behövde separera och skydda användares data. Lösenordet blev lösningen på detta problem.

Trots nyare tekniker som två- och multifaktorautentisering och biometrisk autentisering, är lösenordet fortfarande den mest utbredda metoden för kontoautentisering. Därför är det viktigt att känna till hur man skapar och använder lösenord på bästa sätt, särskilt eftersom vissa gamla metoder inte längre är effektiva.

Här är några grundläggande riktlinjer för lösenord:

  • Använd lösenordsfraser istället för lösenord: Välj tre eller fyra ord som inte är relaterade och sammanfoga dem med skiljetecken, symboler eller siffror. Detta gör lösenordet betydligt svårare att knäcka än en slumpmässig teckensträng eller ett lösenord där vokaler bytts ut mot siffror.
  • Återanvänd inte lösenord: Använd inte samma lösenord på olika system eller konton.
  • Dela inte dina lösenord: Lösenord är personliga och ska inte delas med andra.
  • Basera inte lösenord på personlig information: Undvik att använda namn på familjemedlemmar, favoritlag, band eller annan information som kan härledas från sociala medier eller genom social manipulering.
  • Använd inte mönsterlösenord: Undvik lösenord som bygger på mönster eller tangentplaceringar, såsom ”qwerty” eller ”1q2w3e”.

Regelbundna lösenordsbyten är inte längre rekommenderad praxis. Med starka lösenordsfraser är det tillräckligt att byta lösenord om du misstänker att det har komprometterats. Att kräva täta byten kan leda till sämre lösenordsval eftersom många användare bara lägger till ett datum eller en siffra till ett befintligt lösenord.

Det amerikanska National Institute of Standards and Technology (NIST) har publicerat omfattande riktlinjer för lösenord och användarautentisering, tillgängliga i Special Publication 800-63-3: Digital Authentication Guidelines.

Passwd-filen

I äldre Unix-system lagrades lösenord tillsammans med kontoinformation i filen ”/etc/passwd”. Nu innehåller ”/etc/passwd” endast kontoinformation, medan krypterade lösenord finns i ”/etc/shadow”, som har begränsad åtkomst. Alla kan dock läsa filen ”/etc/passwd”.

För att visa innehållet i ”/etc/passwd” kan du använda följande kommando:

less /etc/passwd

Filens innehåll visas. Här är detaljerna för ett konto som heter ”mary”:

Varje rad representerar ett konto (eller ett program med ett ”användarkonto”). Fälten är kolonavgränsade och inkluderar:

Användarnamn: Inloggningsnamnet för kontot.
Lösenord: ”x” indikerar att lösenordet finns i /etc/shadow.
Användar-ID: Användaridentifierare för kontot.
Grupp-ID: Gruppidentifierare för kontot.
GECOS: Står för General Electric Comprehensive Operating Supervisor. GECOS-fältet innehåller kommaavgränsad information om kontot, t.ex. namn, rum, telefonnummer.
Hem: Sökvägen till kontots hemkatalog.
Skal: Programmet som startas när användaren loggar in.

Tomma fält representeras av kolon.

Kommandot `finger` hämtar information från GECOS-fältet:

finger mary

Skuggfilen

För att visa ”/etc/shadow” måste du använda `sudo`:

sudo less /etc/shadow

En motsvarande rad i ”/etc/shadow” finns för varje rad i ”/etc/passwd”.

Varje rad representerar ett konto, och fälten (kolonavgränsade) inkluderar:

Användarnamn: Inloggningsnamnet för kontot.
Krypterat lösenord: Det krypterade lösenordet för kontot.
Senaste ändring: Datum då lösenordet senast ändrades.
Minsta antal dagar: Antal dagar mellan lösenordsändringar. Om detta är 0, kan lösenordet ändras när som helst.
Maximalt antal dagar: Max antal dagar mellan lösenordsändringar. Värdet för ”mary” är 99 999 (över 27 år).
Varningsdagar: Antal dagar innan lösenordet löper ut då en varning visas.
Återställ utlåsning: Antal dagar som systemet väntar innan kontot inaktiveras efter att lösenordet löpt ut.
Kontots utgångsdatum: Datum då kontot inte längre kan användas. Om tomt, löper kontot aldrig ut.
Reservfält: Ett tomt fält för framtida användning.

Tomma fält representeras av kolon.

Visa ”Senaste ändring” som ett datum

Unix-epoken startade 1 januari 1970. Värdet ”Senaste ändring” är antal dagar efter detta datum. Exempelvis, ett värde på 18209 motsvarar datumet då lösenordet för ”mary” senast ändrades.

För att visa värdet ”Senaste ändring” som ett datum, använd detta kommando:

date -d "1970-01-01 18209 days"

Detta visar datumet då lösenordet senast ändrades, i detta fall 9 november 2019.

`passwd`-kommandot

Du kan använda `passwd`-kommandot för att ändra ditt eget eller, med `sudo`-rättigheter, andras lösenord.

För att ändra ditt eget lösenord, använd kommandot utan parametrar:

passwd

Du kommer att uppmanas att ange ditt nuvarande lösenord och därefter ditt nya lösenord (två gånger för bekräftelse).

Ändra någon annans lösenord

För att ändra ett annat kontos lösenord måste du använda `sudo` och ange kontonamnet:

sudo passwd mary

Du måste ange ditt lösenord för att verifiera administratörsrättigheter. Ange därefter det nya lösenordet för det aktuella kontot (två gånger för bekräftelse).

Tvinga fram en lösenordsändring

För att tvinga en användare att ändra sitt lösenord vid nästa inloggning, använd alternativet `-e` (expire):

sudo passwd -e mary

Du får bekräftelse på att lösenordets utgångsdatum har ändrats.

När användaren ”mary” loggar in nästa gång kommer hon att uppmanas att ändra sitt lösenord:

Lås ett konto

För att låsa ett konto, använd `passwd` med alternativet `-l` (lock):

sudo passwd -l mary

Du får besked om att lösenordets utgångsdatum har ändrats.

Användaren kan inte längre logga in med sitt lösenord. För att låsa upp kontot, använd alternativet `-u` (unlock):

sudo passwd -u mary

Du får återigen information om att lösenordets utgångsdatum har ändrats:

Användaren kan fortfarande logga in med andra metoder, t.ex. SSH-nycklar. Om du vill låsa ut någon helt, måste du inaktivera kontot.

`chage`-kommandot

`chage` (change age) används för att ställa in ett utgångsdatum för ett konto.

Låt oss undersöka de nuvarande inställningarna för kontot ”mary” med alternativet `-l` (list):

sudo chage -l mary

Utgångsdatumet för kontot är ”aldrig”.

För att ändra utgångsdatumet, använd alternativet `-E`. Om du sätter det till 0, tolkas det som noll dagar från Unix-epoken (1 januari 1970):

sudo chage -E0 mary

Kontrollera kontots utgångsdatum igen:

sudo chage -l mary

Kontot är nu inaktiverat eftersom utgångsdatumet ligger i det förflutna, oavsett autentiseringsmetod. För att återställa kontot, använd samma kommando med `-1` som numerisk parameter:

sudo chage -E -1 mary

Verifiera genom att köra:

sudo chage -l mary

Kontots utgångsdatum är återställt till ”aldrig”.

Ändra lösenord i GNOME

Ubuntu och många andra Linux-distributioner använder GNOME som standard. Du kan ändra lösenord via dialogrutan ”Inställningar”.

Klicka på ikonen ”Inställningar” i systemmenyn.

I fönstret ”Inställningar”, klicka på ”Detaljer” i vänstermenyn och sedan ”Användare”.

Klicka på kontot du vill ändra (i exemplet ”Mary Quinn”). Klicka sedan på ”Lås upp”.

Ange ditt lösenord. När du är inloggad blir ”Marys” detaljer redigerbara. Klicka på ”Lösenord”-fältet.

I dialogrutan ”Ändra lösenord”, välj ”Ange ett lösenord nu”.

Ange det nya lösenordet i fälten ”Nytt lösenord” och ”Verifiera nytt lösenord”.

Om lösenordet matchar, blir ”Ändra”-knappen grön. Klicka på den för att spara.

Verktygen för kontohantering ser liknande ut i andra skrivbordsmiljöer.

Säkerhet är A och O

Lösenord har varit en viktig del av kontosäkerhet i 60 år och kommer inte att försvinna i närtid.

Därför är det viktigt att hantera dem med omsorg. Genom att förstå mekanismerna för lösenord i Linux och använda bästa praxis för lösenord, kan du hålla ditt system säkert.