Damit Samba am Verschlüsselungsprotokoll teilnehmen kann, muß es den 16 Byte langen Hashwert anhand des Benutzernamens herausfinden können. Unglücklicherweise ist der Unix Paßwortwert auch ein Einweghash. Das heißt, es ist unmöglich, das Klartextpaßwort des Benutzers herauszufinden, wenn man den Unix-Hashwert hat. So muß eine separate Datei vorgehalten werden, in der dieser 16 Byte lange Hashwert gespeichert ist. Um Probleme zu vermeiden, wenn diese beiden Paßwortdateien nicht mehr übereinstimmen, kann mit dem Programm mksmbpasswd.sh aus der /etc/passwd eine smbpasswd-Datei gemacht werden.
Um eine smbpasswd-Datei aus Ihrer /etc/passwd zu generieren, benutzen Sie das folgende Kommando:
cat /etc/passwd | \ mksmbpasswd.sh > /usr/local/samba/private/smbpasswd
Wenn Sie NIS benutzen, dann sollten Sie
ypcat passwd | \ mksmbpasswd.sh > /usr/local/samba/private/smbpasswd
benutzen. Das Programm mksmbpasswd.sh können Sie im Samba Quellverzeichnis finden. Der voreingestellte Ort für die Datei smbpasswd ist
/usr/local/samba/private/smbpasswd
Der Besitzer des Verzeichnisses /usr/local/samba/private sollte root sein, und die Zugriffsrechte sollten auf r-x------ stehen. Das Kommando
chmod 500 /usr/local/samba/private
setzt die Rechte ensprechend. Die Datei smbpasswd selbst sollte ebenfalls root gehören und die Zugriffsrechte auf rw------- stehen. Mit
chmod 600 /usr/local/samba/private/smbpasswd
werden die Rechte korrekt gesetzt. Das Format der Datei smbpasswd ist
username:uid:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: \ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: \ Long name:user home dir:user shell
wobei alles in einer Zeile zu stehen hat. Für Samba sind nur die ersten 4 Felder signifikant, der Rest wird von Samba ignoriert.
Es ist extrem wichtig, daß an Stelle der 32 'X' genau 32 Zeichen mit dem Hashwert stehen. Samba funktioniert nicht, wenn dort weniger Zeichen stehen. Das erste 'XXX'-Feld ist der LanManager Hashwert, das zweite die Windows NT Version.
Wenn die Datei erzeugt wird, haben alle Benutzer Paßworteinträge mit 32 'X'. Dies bedeutet normalerweise, daß der Zugang für diesen Benutzer vollständig gesperrt ist. Wenn der Benutzer ein Paßwort gesetzt hat, werden die 'X' in 32 hexadezimale Ziffern (0-9, A-F) geändert. Dies ist die Ascii-Darstellung des 16 Byte langen Hashwertes des Benutzerpaßwortes.
Um einen Benutzer ohne Paßwort zuzulassen, sollten Sie die Datei smbpasswd mit einem Editor verändern. Die ersten 11 Zeichen sollten durch
NO PASSWORD
ersetzt werden. Um beispielsweise das Paßwort für den Benutzer Bob zu löschen, muß der Eintrag in der smbpasswd-Datei folgendermaßen aussehen:
bob:100:NO PASSWORDXXXXXXXXXXXXXXXXXXXXX:\ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:\ Bob's full name:/bobhome:/bobshell
Wenn Sie Ihren Benutzern erlauben, ihre Paßwörter selbst mit dem Kommand smbpasswd zu ändern, sollten Sie vielleicht anfangs die Eintrag auf NO PASSWORD setzen, damit die Benutzer ihre Paßwörter direkt ändern können.
Wichtig: Diese Datei sollte sehr sorgfältig geschützt werden. Jeder mit Zugriff auf diese Datei kann mit genügend Wissen um die Protokolle Zugriff auf den SMB Server bekommen. Diese Datei ist somit erheblich kritischer als die normale /etc/passwd oder /etc/shadow.