Samba

Aus ConfigWiki
Wechseln zu: Navigation, Suche

Bei der Installation wird die Arbeitsgruppe/Domain abgefragt, wir verwenden hier SAMBA. Vorerst genügt eine Arbeitsgruppenumgebung. Die vorhandenen Benutzer wurden in das TDB-Backend importiert, haben aber noch keine Passwörter bekommen.

Da bei der Installation der sudo-root-Umgebung ein normaler Benutzer angelegt wurde, der nicht im LDAP gelandet ist, verwenden wir diesen gleich wieder um Samba ohne LDAP zu testen und geben ihm als root ein Passwort:

# smbpasswd <username>

Danach fragen wir den Sambaserver nach den verfügbaren Services:

# smbclient -L -U <username> //lenny3

Sollten hier Fehler auftreten, sind diese zu beseitigen, bevor versucht wird, LDAP ins Spiel zu bringen.


Samba-LDAP-Konfiguration

Für den Betrieb von Samba mit LDAP ist ein funktionierendes NSS-LDAP, PAM-LDAP wird jedoch nicht benötigt.

In der LDAP-Konfiguration (/etc/ldap/slapd.conf) muß das Samba-Schema aufgenommen werden:

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/samba.schema

Das Schema muß noch an die richtige Stelle gelegt werden

# cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema
# gunzip /etc/ldap/schema/samba.schema.gz

Anschließend den LDAP-Server neu starten:

# invoke-rc.d slapd restart 

In /etc/samba/smb.conf sind folgende minimale Anpassungen nötig:

/etc/samba# diff smb.conf.tdb smb.conf
110c110,117
<    passdb backend = tdbsam
---
>    passdb backend = ldapsam
>    ldap suffix = dc=debian,dc=local
>    ldap admin dn = cn=admin,dc=debian,dc=local
>    ldap ssl = no
>    ldap user suffix = ou=people
>    ldap group suffix = ou=group
>    ldap machine suffix = ou=hosts
>    ldap passwd sync = yes

Die Änderungen sollten mit testparm auf Fehler überprüft werden. Danach kann die Serverkonfiguration neu geladen werden:

# invoke-rc.d samba reload

Weiterhin muß das Passwort für ldap admin gesetzt werden:

# smbpasswd -W

Jetzt kann das Samba-Passwort für einen im LDAP hinterlegten Benutzer gesetzt werden:

# smbpasswd -a testuser

Im LDAP-Verzeichnis wird daraufhin dem testuser folgende Attribute hinzugefügt:

displayname: TestUser
objectclass: sambaSamAccount
sambaacctflags: [U          ]
sambantpassword: 41F15D06F7F59A98BDFCCFC9ADB1C106
sambapasswordhistory: 0000000000000000000000000000000000000000000000000000000000000000
sambapwdlastset: 1291395231
sambasid: S-1-5-21-1344755936-1802148465-1015568262-3002

Beim 1. Aufruf von smbpasswd wird außerdem im LDAP-Verzeichnis der Domain-Eintrag erzeugt:

dn: sambaDomainName=LENNY3,dc=debian,dc=local
objectclass: sambaDomain
sambaalgorithmicridbase: 1000
sambadomainname: LENNY3
sambaforcelogoff: -1
sambalockoutduration: 30
sambalockoutobservationwindow: 30
sambalockoutthreshold: 0
sambalogontochgpwd: 0
sambamaxpwdage: -1
sambaminpwdage: 0
sambaminpwdlength: 5
sambanextuserrid: 1000
sambapwdhistorylength: 0
sambarefusemachinepwdchange: 0
sambasid: S-1-5-21-1344755936-1802148465-1015568262

Obwohl in der smb.conf die Workgroup/Domain

workgroup = SAMBA

angegeben ist, wird im LDAP der Hostname als Domain hinterlegt. (???)

Meine Werkzeuge