mcrelax
Goto Top

Samba mit LDAP benötigt Unix-Account?

Ich habe einen Samba-Server mit LDAP-Anbindung.

In meiner smb.conf hatte ich eine Freigabe, mit folgenden Einstellungen:
...
force user = sebastian
write list = sebastian
...
Der User (sebastian) war nur am LDAP-Server vorhanden und die Anmeldung war nie erfolgreich. Der Befehl pdbedit sagte mir immer
...
pdb_get_group_sid: Failed to find Unix account for sebastian
...
Also habe ich einen Unix account hinzugefügt (useradd sebastian ...) und nun funktioniert alles!

Nun meine Frage:
Brauche ich für jeden LDAP-Account, den ich bei Samba verwende einen Unix-Account?

Benjamin

Content-ID: 64140

Url: https://administrator.de/contentid/64140

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

AndreasHoster
AndreasHoster 24.07.2007 um 11:50:14 Uhr
Goto Top
Ja.
Aus dem Samba Manual:
The need for Windows user, group, machine, trust, and other accounts to be tied to a valid UNIX UID is a design decision that was made a long way back in the history of Samba development. It is unlikely that this decision will be reversed or changed during the remaining life of the Samba-3.x series.

Allerdings kann Samba das unter Umständen automatisieren. Eventuell hilft Dir dies weiter:

add user script

Hier kann der komplette Pfad angegeben werden für eine Skript-Datei, die von smbd ausgeführt werden kann. Dieses Skript wird von Samba mit root-Rechten ausgeführt.

Wenn ein Client die Dienste eines Samba-Servers nutzen will, so muss dieser über einen ganz normalen Unix-Account auf der Linux- beziehungsweise Unix-Workstation verfügen. Das bedeutet, für jede Share der Datei /etc/samba/smb.conf muss ein Eintrag in der passwd-Datei existieren (ausgenommen die [homes]S, die [global]-section und die [printers]). Für Clients, die die Windows NT-Account Database als Primary User Database verwenden, können die User-Einträge des Windows NT-PDC (siehe Glossarpdcpdc) auf der Unix-Seite auch automatisch generiert werden. Dazu bedient man sich eines Skripts, das mit dieser Option ausgeführt werden kann. Wenn ein User, der in dem Windows NT-PDC registriert ist, sich das erste Mal mit dem Samba-Server verbinden will, kann der User auf Anforderung in der /etc/passwd-Datei angelegt werden. Um diese Eigenschaft nutzen zu können, muss der Daemon smbd als security=server oder als security=domain konfiguriert sein. Der Eintrag add user script in der /etc/samba/smb.conf muss unter Angabe des vollen Pfadnamens auf ein Skript zeigen, das ein Argument %u akzeptiert. Dieses Skript erzeugt dann auf Anfrage den User in der /etc/passwd-Datei.

Wenn ein Windows-Client das erste Mal auf einem Samba-Server einen Login-Versuch startet, wird der Daemon smbd den Password-Server kontaktieren (Windows NT-PDC) und versuchen, sich mit dem korrekten Password zu authentifizieren. Falls die Authentifizierung erfolgreich war, wird der Daemon smbd versuchen, einen gleichlautenden Eintrag in der /etc/passwd zu finden. Wird ein solcher Eintrag gefunden, so kann der User die Verbindung zum Samba-Server aufbauen. Im Falle des Misserfolges (das ist immer dann der Fall, wenn es zum ersten Kontaktversuch eines Windows-Clients auf einem Samba-Server kommt) und wenn der Parameter add user script auf ein ausführbares Skript zeigt, wird smbd das angegebene Skript mit root-Rechten aufrufen, das Argument %u expandieren und den User in der Password-Datenbasis erzeugen. Falls das Skript den User erfolgreich anlegen konnte, wird die Verbindung zum Samba-Server freigeschaltet, so als ob das Login bereits vor dem Versuch existiert hätte.

Voreinstellung:

add user script = <leere Zeichenkette>

Beispiel:

add user script = /usr/lib/samba/bin/add_user %u