Linux Password & Shadow Bestandsformaten

Tradionele Unix-systemen houden informatie bij over een gebruikersaccount, waaronder de in één richting versleutelde wachtwoorden, in een tekstbestand genaamd ``/etc/passwd''. Aangezien dit bestand door veel tools wordt gebruikt (zoals ``ls'') om de eigenaar van bestanden te tonen, enz. door een match tussen het gebruikersid # en de gebruikersnaam, moet het bestand voor iedereen leesbaar zijn. Dit heeft als consequentie dat het een beveiligingsrisico met zich meebrengt.

Een andere methode om account-informatie op te slaan, één die ik altijd gebruik, is in het shadow passwd formaat. Net als bij de traditionele methode wordt de account-informatie in het bestand /etc/passwd in een compatibel formaat opgeslagen. Het wachtwoord wordt echter als een enkel “x”-teken opgeslagen (dwz. niet echt in dit bestand opgeslagen). In een tweede bestand, genaamd ``/etc/shadow'', staat een versleuteld wachtwoord als ook nog wat andere informatie zoals waarden wanneer de account of het wachtwoord verloopt, enz. Het bestand /etc/shadow is alleen leesbaar voor het root-account en is daarom een minder beveiligingsrisico.

Terwijl een aantal Linux-distributies je dwingen de Shadow Password Suite te installeren om gebruik te kunnen maken van het shadow-formaat, maakt Red Hat het je gemakkelijk. Om tussen de twee formaten te schakelen, typ je (als root):

  /usr/sbin/pwconv	Converteren naar het shadow formaat
  /usr/sbin/pwunconv	Weer terugzetten in het tradionele formaat

Met shadow passwords, staat in het bestand ``/etc/passwd'' de account-informatie en het ziet er ongeveer zo uit:

smithj:x:561:561:Joe Smith:/home/smithj:/bin/bash

De velden in een passwd record worden van elkaar gescheiden door een dubbele punt, “:”, en dit zijn:

Misschien dat je niet in shell-accounts voor je gebruikers wilt voorzien. Je zou bijvoorbeeld een script-bestand genaamd ``/bin/sorrysh'' aan kunnen maken, dat één of andere foutmelding weergeeft en de gebruiker uitlogt, en je zou dit script dan als de standaardshell in kunnen stellen.

Note

Noot: Als de account moet zijn worden voorzien van “FTP”-transport om webpages bij te werken, enz., dan zal de shell-account moeten worden ingesteld op ``/bin/bash'' -- en vervolgens zullen speciale permissies moeten worden ingesteld in de homedirectory van de gebruiker om shell-logins te voorkomen. Zie de the section called Web Server en HTTP Caching Proxy Beheer in Chapter 7 voor details.

Het ``/etc/shadow'' bestand bevat informatie over het verlopen van het wachtwoord en account voor gebruikers en het ziet er ongeveer zo uit:

smithj:Ep6mckrOLChF.:10063:0:99999:7:::

Net als in het passwd bestand, worden ook alle velden in het shadow bestand door “:” dubbele punten gescheiden, en dit zijn de velden: