Het wijzigen van wachtwoorden kun je verplichten

Veel bedrijven verplichten gebruikers om periodiek hun wachtwoord te veranderen. Onder Linux implementeer je zo'n beleid met het programma chage.


Het programma chage zit standaard in alle Linux-distributies en is verantwoordelijk voor 'password aging', het automatisch vervallen van wachtwoorden na een bepaalde tijd. Met de optie -l en een gebruikersnaam krijg je de informatie te zien over het vervallen van het wachtwoord. Standaard zal dit iets als het volgende tonen:


$ chage -l koen
Last password change : May 14, 2012
Password expires : never
Password inactive : never
Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7


Doe je dit voor een andere gebruikersnaam dan de jouwe, dan heb je wel rootrechten nodig. Je krijgt in de uitvoer te zien wanneer de gebruiker de laatste keer zijn wachtwoord gewijzigd heeft, wanneer het wachtwoord vervalt en wanneer het op inactief wordt gezet. Ook krijg je het minimale aantal dagen te zien dat tussen twee wijzigingen van het wachtwoord moet zitten en het maximale aantal dagen. Tot slot krijg je ook te zien hoeveel dagen de gebruiker een waarschuwing te zien krijgt voor zijn wachtwoord vervalt.

Verander de instellingen

Als je de bovenstaande instellingen wil veranderen, moet je andere opties gebruiken. Met -m stel je het minimale aantal dagen tussen twee wachtwoordveranderingen in. Met -m 0 geef je aan dat de gebruiker zijn wachtwoord onbeperkt kan veranderen, met -m 1 dat hij dit n keer per dag kan doen, met -m 2 n keer in twee dagen, enzovoort. Het maximale aantal dagen tussen twee wachtwoordveranderingen geef je op met -M. Met -M 365 verplicht je de gebruiker bijvoorbeeld n keer per jaar zijn wachtwoord te veranderen. Wanneer hij inlogt, verplicht het loginprogramma dan immers zijn wachtwoord te veranderen, dat niet identiek aan het vorige mag zijn.

Als de gebruiker zijn wachtwoord vroeger verandert, wordt de teller overigens op 0 gezet en moet hij maximaal een jaar na deze verandering weer zijn wachtwoord veranderen. Met -W geef je het aantal dagen op dat de gebruiker een waarschuwing krijgt vr het wachtwoord vervalt. Wil je bijvoorbeeld dat de gebruiker een week lang een waarschuwing te zien krijgt dat hij zijn wachtwoord moet veranderen als hij dit een week voor de vervaldatum nog niet heeft gedaan, gebruik dan de optie -W 7.

Datum instellen

Met de optie -E kun je een absolute datum instellen waarop het wachtwoord vervalt, bijvoorbeeld -E 2012-12-31. En met -I geef je het aantal dagen inactiviteit nadat het wachtwoord vervallen is op waarna de gebruikersaccount op inactief wordt gezet. Deze account kan dan helemaal niet meer gebruikt worden en moet door de systeembeheerder terug ingeschakeld worden.

Met de optie -d tot slot kun je de datum van de laatste wachtwoordwijziging instellen. Meestal zul je dit niet doen, behalve in n veel voorkomend geval: met chage -d 0 verplicht je de account om bij de volgende login zijn wachtwoord te veranderen omdat de laatste verandering dan schijnbaar op 1 januari 1970 gebeurd is.

Automatisch voor nieuwe accounts

Je hoeft je beleid overigens niet voor elke gebruiker individueel in te stellen met chage. Je kunt deze waardes immers n keer in het bestand /etc/login.defs instellen. Gebruik hiervoor de variabelen PASS_MIN_DAYS, PASS_MAX_DAYS en PASS_WARN_AGE. En in /etc/default/useradd vul je de juiste waardes voor INACTIVE en EXPIRE in. Vanaf dan worden deze waardes ingesteld bij alle nieuw aangemaakte accounts.

Let op: bestaande accounts houden hier dus geen rekening mee, maar deze informatie kun je bij hen ook aanpassen in /etc/shadow. Denk trouwens voor je je gebruikers verplicht om regelmatig hun wachtwoorden te veranderen eens na of het wel zinvol is, want uit onderzoek blijkt dat velen dan minder goede wachtwoorden kiezen omdat ze telkens een nieuw wachtwoord moeten onthouden...