De structuur van de password file

De file /etc/passwd wordt de password file genoemd. De password file is een eenvoudige database met gegevens over de gebruikers van het systeem. Elke regel bestaat uit een aantal, door dubbele punt teken gescheiden, velden. Een voorbeeld van een regel uit de password file ziet er als volgt uit:

leovm:x:500:500:Leo van Moergestel:/home/leovm:/bin/bash

Het betreft hier de gebruiker met inlognaam leovm Het tweede veld bevat een x. Dit veld was oorspronkelijk gereserveerd voor de ge-encrypte versie van het password. In principe is dat nog steeds mogelijk, maar moderne systemen gebruiken een wat veiligere methode. We zullen dit aanstonds toelichten. Het volgende veld bevat de zogenoemde user-id ook wel UID genoemd. Dit is een uniek nummer waarmee een gebruiker in dit geval leovm geidentificeerd wordt. Voor het Linux systeem is de user leovm een gebruiker met gebruikersnummer 500. Naast het gebruikersnummer is er ook een groepsnummer van de default groep waartoe leovm behoort. Dit groepsnummer wordt ook met GID genoemd. In principe kan een user lid zijn van meer groepen, maar er is een default GID.
Het veld volgend op het GID is het GCOS field. Een veld waar naar willekeurige informatie over de user in te voeren is, zoals in dit geval de naam. Let wel de systeembeheerder kan hier zelf een invulling aangeven. In sommige bedrijven zet men hier een kamernummer of telefoonnummer bij. Na het GCOS field komt een veld waarin de homedirectory van de gebruiker komt te staan. Als laatste wordt het programma gegeven waarmee een gebruiker na succesvol inloggen mee aan de slag kan gaan. In dit geval dus /bin/bash

Zoals al opgemerkt, werd het tweede veld vroeger gebruikt voor het opslaan van de ge-encrypte versie van het password. Bij het inloggen werd het ingevoerde password opnieuw ge-encrypt, als dit hetzelfde ge-encrypte password opleverde was het inloggen succesvol. Elk ge-encrypt password maakte bovendien gebruikt van een twee-letter code (salt) waarmee het encryptiealgoritme werd gevarieerd. Deze variatie was onder meer nodig om te voorkomen dat twee personen met gebruik van hetzelfde password ook dezelfde ge-encrypte string in de password file zouden zien. De passwordfile is voor alle gebruikers leesbaar. Alle gebruikers konden dus ook de ge-encrypte passwords zien. Dit was in beginsel niet zo erg omdat daaruit niet het orginele password afgeleid kon worden. Met de komst van krachtige CPU's in combinatie met een groot opslagmedium is er echter een brute-force methode om passwords te vinden mogelijk geowrden. De werkwijze is als volgt: maak voor een grote verzameling woorden met verschillende twee-lettercodes de ge-encrypte passwords. Vergelijk vervolgens of in een passwordfile een van de gevonden ge-encrypte passwords gebruikt wordt en het oorspronkelijke password is bekend. Het programma crack doet dit. Om je tegen crack te beveiligen moet je dus met zorg een password kiezen. Maak er een moeilijke string van die rare tekens bevat (haakjes, etc.) die niet als bestaand woord in een bekende taal voorkomt. Dit is echter een beveiliging voor jezelf. Als een gebruiker een zwak password kiest, zoals Telefoon, dan is er voor crackers een mogelijkheid om onder de inlognaam van die persoon het systeem binnen te komen. Om dan superuser te worden is weliswaar nog een stap verder, maar het is beter om ongewenst bezoek sowieso te voorkomen. Modere Unix/Linux systemen hebben de passwordfile daarom in twee stukken gesplits. Het ene openbare gedeelte heet nog steeds passwd, maar bevat geen ge-encrypte passwords meer. Deze zitten in een bestand dat alleen voor de superuser te lezen is en dit bestand heet shadow. Beide bestanden zijn in /etc te vinden. ziehier het resultaat van ls -l /etc/passwd /etc/shadow

-rw-r--r-- 1 root root 651 Mar 3 22:05 /etc/passwd
-rw------- 1 root root 597 Mar 3 22:05 /etc/shadow

Ook shadow bevat een entry met de naam leovm maar nu met het ge-encrypte password erbij. Daarnaast bevat shadow nog informatie over het verlopen van het password, hoe vaak het vernieuwd moet worden etc.


Aangemaakt 31 mei 2000
Laatst bijgewerkt januari 2016