Diskussion:Samba mit LDAP

Aus Linupedia.org
Version vom 24. Juni 2007, 07:21 Uhr von Yehudi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Den folgenden Part von Flo84 kann man ev. noch einarbeiten.

Bei den bisherigen Dokus wurde immer davon ausgegangen, dass Samba die Benutzerauthentifizierung über die smbpasswd vornimmt. Das Ganze funktioniert soweit auch wunderbar, was aber, wenn man jetzt z. B. noch einen E-Mail-Server etc. einrichten möchte? Sicher kann man – um beim Beispiel E-Mails zu bleiben – postfix/cyrus dementsprechend konfigurieren, doch stellt das Ganze einen erheblich höheren Administrationsaufwand dar. Mit einem Verzeichnisdienst wie OpenLDAP werden die Benutzerdaten zentral verwaltet und die User können mit ein und denselben Anmeldedaten (Username + Kennwort) auf mehrere Dienste zugreifen. Man bezeichnet dies auch als "Single-Sign-On".


Installation von OpenLDAP

Normalerweise dürften bei jeder Distribution Binärpakete bereit liegen. Folgendes muss installiert werden:

    OpenLDAP (der LDAP-Server, ldap-server unter Debian)
    smbldap-tools (erleichtern die Arbeit: http://sourceforge.net/projects/smbldap-tools)
    pam_ldap (PAM-Konfigurations-Dateien für LDAP, libpam-ldap unter Debian)
    nss_ldap (Konfig-Dateien für NSS LDAP-Unterstützung, libnss-ldap unter Debian)
    pam_smb (PAM-Support für SMB, libpam-smbpass unter Debian)
    gosa-schema (nur bei Debian – beinhaltete gosa+samba3.schema)

Nach der Installation können wir nun loslegen. Bitte bis dahin LDAP- und Samba-Daemons noch NICHT starten!


Verschlüsselungsdateien erstellen

Die Verschlüsselung erfolgt mit SSLv3, auch TLS genannt. Eine Erklärung, wie du die Schlüssel erstellst, findest du in meiner Doku OpenSSL – Zertifikate selbst erstellen (folgt noch)!


Wenn du fertig bist, erstelle im Verzeichnis /etc/openldap (/etc/ldap/ unter Debian) den Ordner ssl:

    mkdir /etc/openldap/ssl

und kopiere hier das CA-Zertifikat, den privaten und öffentlichen Schlüssel hinein (hier wird davon ausgegangen, dass sich diese Dateien im Ordner /root/.ssl/ befinden):

    cp /root/.ssl/cacert.pem /etc/openldap/ssl/CA.cer
    cp /root/.ssl/ldap.pem /etc/openldap/ssl/
    cp /root/.ssl/ldap.key /etc/openldap/ssl/

Da im Verzeichnis /etc/openldap/ssl nun auch der private Schlüssel liegt, müssen die Zugriffsrechte wie folgt angepasst werden:

    chown -R ldap:ldap /etc/openldap/ssl
    chmod 400 /etc/openldap/ssl/ldap.key
    chmod 444 /etc/openldap/ssl/CA.cer
    chmod 444 /etc/openldap/ssl/ldap.pem

SuSE Linux-Benutzer müssen noch die Datei /etc/sysconfig/openldap anpassen:

    OPENLDAP_START_LDAPS=“yes“

Bei Debian muss die Datei /etc/default/slapd wie folgt geändert werden:

    SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:///"

Andernfalls können wir uns nicht über LDAPS anmelden! Solltest du eine andere Distribution verwenden, starte den slapd-Daemon mit dem entsprechenden Parametern.


Konfiguration von OpenLDAP

Zunächst konfigurieren wir die /etc/ldap.conf (/etc/libnss-ldap.conf sowie das Selbe in der /etc/pam_ldap.conf bei Debian):

    # Falls kein TLS: URI ldap://server01
    # Verwende bei TLS NICHT 127.0.0.1 oder localhost, sondern den FQHN!
    URI			ldaps://server01:636
    base			dc=firma_xyz,dc=de
    ldap_version		3
    bind_policy		soft
    pam_password	CRYPT
    nss_base_passwd	ou=Users,dc=firma_xyz,dc=de?one
    nss_base_passwd	ou=Computers,dc=firma_xyz,,dc=de?one
    nss_base_shadow	ou=Users,dc=firma_xyz,,dc=de?one
    nss_base_group	ou=Groups,dc=firma_xyz,,dc=de?one
    nss_map_attribute	uniqueMember member
    pam_filter		objectclass=posixAccount
    TLS_CACERT 	/etc/openldap/ssl/CA.cer

Natürlich kann man dc=firma_xyz,dc=de seinen Bedürfnissen anpassen. Man muss aber dann beachten, diesen Suffix in den anderen Konfigurationsdateien ebenfalls zu verwenden!


Weiter geht’s mit der /etc/openldap/ldap.conf:

    # Falls du ausschließlich TLS verwenden willst: TLS_REQCERT demand
    TLS_REQCERT 	allow
    base 			dc=firma_xyz,dc=de
    # Falls du kein TLS verwendest: wie bei der /etc/ldap.conf!
    URI 			ldaps://server01:636
    # Nur notwendig, wenn du TLS verwendest!
    TLS_CACERT 	/etc/openldap/ssl/CA.cer


Im nächsten Schritt konfigurieren wir die /etc/openldap/slapd.conf, die LDAP-Server-Konfigurationsdatei:

    include 	/etc/openldap/schema/core.schema
    include 	/etc/openldap/schema/cosine.schema
    include 	/etc/openldap/schema/inetorgperson.schema
    include 	/etc/openldap/schema/nis.schema
    include 	/etc/openldap/schema/misc.schema
    include 	/etc/openldap/schema/yast.schema
    include 	/etc/openldap/schema/samba3.schema
    pidfile    /var/run/slapd/slapd.pid
    argsfile 	/var/run/slapd/slapd.args
    modulepath	 /usr/lib/openldap/modules
    # Zeile bisher nur bei Debian notwendig!
    module_load	back_bdb
    backend	bdb
    database 	bdb
    suffix 	"dc=firma_xyz,,dc=de"
    checkpoint 1024    5
    cachesize 	10000
    rootdn 	"cn=admin,dc=firma_xyz,,dc=de"
    rootpw 	secret
    directory 	/var/lib/ldap
    # Die 4 Zeilen sind nur notwendig, wenn man TLS verwenden möchte:
    TLSCipherSuite HIGH:MEDIUM+SSLv3
    TLSCACertificateFile /etc/openldap/ssl/CA.cer
    TLSCertificateFile /etc/openldap/ssl/ldap.pem
    TLSCertificateKeyFile /etc/openldap/ssl/ldap.key
    index objectClass eq
    index cn pres,sub,eq
    index uid pres,sub,eq
    index displayName pres,sub,eq
    index uidNumber eq
    index gidNumber eq
    index memberUid eq
    index sambaSID eq
    index sambaPrimaryGroupSID eq
    index sambaDomainName eq
    index default sub


Um ein verschlüsseltes admin-Passwort in der slapd.conf zu hinterlegen, verwendet man den Befehl

    slappasswd >> /etc/openldap/slapd.conf

Am Ende der slapd.conf wurde das Passwort verschlüsselt hinzugefügt. Das secret bei rootpw nun durch den verschlüsselten Wert ersetzt.


Wichtig: die samba3.schema DARF NICHT durch die samba.schema ersetzt werden, da letztere nur für LDAP 2 und nicht für LDAP 3 gedacht ist! Die Datei kann unter [1] heruntergeladen werden. Alle oben nicht aufgeführten includes könnten zu Problemen führen, daher vorerst nur die oben Beschriebenen verwenden!


Weiter geht’s mit der /etc/nsswitch.conf:

    passwd: 	compat ldap
    group: 	compat ldap
    shadow:	compat ldap
    services: 	files ldap
    netgroup: 	files ldap
    aliases: 	files ldap
    hosts:		files dns wins

In dieser Konfigurationsdatei wird hinterlegt, auf welche Weise die User- und Passwortüberprüfung stattfindet – in unserem Falle über die /etc/passwd | /etc/shadow und eben über OpenLDAP. Auch zu beachten ist hosts: wenn in der /etc/resolv.conf von dir ein Namensserver eingetragen wurde (DSL-Router...), dann muss der Eintrag dns gesetzt werden (wie im Beispiel an zweiter Stelle, da sonst erst über WINS die Auflösung probiert wird, dann erst über DNS – dauert länger)!


Außerdem muss noch die /etc/security/pam_unix2.conf bearbeitet werden:

    auth: 		use_ldap
    account: 	use_ldap
    password:	use_ldap
    session: 	none


Konfigurieren von Samba

Absolut wichtig: sollte Samba bereits einmal eingerichtet worden und dabei die Authentifizierung über die smbpasswd erfolgt sein, müssen folgende Einstellungen rückgängig gemacht werden:


- löschen / umbenennen der secrets.tdb

- löschen / umbenennen der smbpasswd

- löschen eventuell angelegter Samba-Gruppen (User- und Maschinengruppen) mit groupdel [gruppe]; User mit der Primärgruppe einer zu löschenden Gruppe müssen entweder gelöscht oder einer anderen Gruppe zugeordnet werden

- in das Verzeichnis /var/lib/samba wechseln und tdbbackup * verwenden, um die *.tdb-Dateien zurückzusetzen. Die erstellten *.tdb.bak-Dateien können gelöscht werden

- System neu starten!


Bei mir hat diese Vorgehensweise zum Erfolg geführt. Nun kann man mit der weiteren Einrichtung fortfahren.


Im Prinzip sollte die /etc/samba/smb.conf wie im Beitrag Beispiel einer smb.conf aussehen. Bist du hiermit fertig, füge folgende Zeilen hinzu, um Samba mitzuteilen, LDAP für die Authentifizierungs-Arbeit zu verwenden:

  [global]
    ...
    # Der LDAP-Server – hier einmal OHNE TLS:
    #passdb backend = ldapsam:ldap://server01
    # Und hier ein Beispiel mit TLS (wieder FQHN verwenden!):
    passdb backend = ldapsam:ldaps://server01
    # Der LDAP-Suffix
    ldap suffix = dc=firma_xyz,dc=de
    # Admin-DN
    ldap admin dn = cn=admin,dc=firma_xyz,dc=de
    # User-, Gruppen- und Maschinen-Suffix
    ldap user suffix = ou=Users
    ldap group suffix = ou=Groups
    ldap machine suffix = ou=Computers
    ldap idmap suffix = ou=Idmap
    ldap delete dn = no
    # Passwortänderung soll sich nur auf die Samba-Accounts auswirken --> NO setzen!
    ldap passwd sync = no
    unix password sync = no
    # Scripte zum Hinzufügen/Löschen von Usern, Gruppen und Maschinen
    add user script = /usr/sbin/smbldap-useradd -m -a %u
    delete user script = /usr/sbin/smbldap-userdel %u
    add group script = /usr/sbin/smbldap-groupadd -p %g
    delete group script = /usr/sbin/smbldap-groupdel %g
    add user to group script = /usr/sbin/smbldap-groupmod -m %g %u
    delete user from group script = /usr/sbin/smbldap-groupmod -x %g %u
    set primary group script = /usr/sbin/smbldap-usermod -g %g %u
    add machine script = /usr/sbin/smbldap-useradd -i -w %u
    ...

Fett markierte Einträge könnten evtl. schon in der smb.conf vorhanden sein und sollten genau beachtet und ggf. abgeändert werden. Alle anderen Einstellungen in der smb.conf kannst du beibehalten.


Jetzt muss der LDAP-Admin in die secrets.tdb des Samba-Servers eingetragen werden:

    smbpasswd -w [ldap_adminpasswort]

Es sollte eine Bestätigung kommen, dass "cn=admin,dc=firma_xyz,dc=de" erfolgreich in der secrets.tdb gespeichert wurde. Steht anstatt dem Admin-Suffix "", sollte die smb.conf geprüft werden!


Überprüfen der Konfiguration: starten des LDAP- und des Samba-Daemons

Bevor du nun die Daemons startest: testparm eingeben und kontrollieren, ob deine smb.conf auch korrekt konfiguriert wurde und Samba als PDC fungiert.

So, jetzt wird’s ernst: starte die Dienste (für SuSE Linux)

    rcldap start
    rcsmbd start
    rcnmbd start

Man sollte vielleicht darauf achten, dass LDAP vor Samba gestartet wird.


Alle Daemons sollten erfolgreich gestartet werden können, andernfalls die Konfigurationen prüfen – da muss man jetzt selber durch, Log-Files checken (/var/log/messages für ldap, /var/log/samba/log.smbd für Samba) und auf Google nach Problemlösungen suchen. Bei LDAP sollte z. B. darauf geachtet werden, dass bei den Includes der slapd.conf nur oben Genannte verwendet werden und auch die samba3.schema die Neueste ist. Bei Samba-Problemen gibt meist das Logfile den genauen Hinweis auf die Fehlerursache.


Sollte meine Anleitung befolgt worden sein, dürfte jedoch wenig schief laufen – ich bin selbst Stunden dagesessen, war fast am Verzweifeln und zuletzt funktionierte doch alles mit oben aufgeführter Konfiguration. Natürlich übernehme ich keine Garantie für diese Erklärung hier und sie sollte keines falls als "heilig" angesehen werden – nobody is perfect! Aber sie ist sicher eine gute Basis für den Einstieg.


Die smbldap-tools

Fehlt noch die Konfiguration von zwei Dateien für die smbldap-tools. Um dies durchzuführen, muss der LDAP-Server laufen! Zuerst konfigurieren wir die /etc/smbldap-tools/smbldap.conf:

    # Diese SID fügt man am Besten so ein: net getlocalsid >> /etc/smbldap-tools/smbldap.conf
    SID="S-1-5-21-3962808140-4185845012-18905748"
    # Name der Samba-Domäne
    sambaDomain="firma_xyz"
    # Der Slave LDAP Server: der localhost
    slaveLDAP="127.0.0.1"
    # Der Slave LDAP Port
    slavePort="389"
    # Master LDAP Server – für Schreibvorgänge
    masterLDAP="127.0.0.1"
    # Master LDAP Port; ohne TLS 389
    masterPort="389"
    # Wir verwenden zwar TLS, aber da die smbldap-tools am selben Rechner abgearbeitet 
    # werden, kann TLS meines Erachtens hier ignoriert werden; gab bei mir nur Probleme ;-)
    ldapTLS="0"
    # Wie wird das Server-Zertifikat verifiziert (none, optional oder require)
    verify="require"
    # CA Zertifikat
    cafile="/etc/openldap/ssl/CA.cer"
    # Zertifikat zum Verbinden mit dem LDAP-Server
    clientcert="/etc/openldap/ssl/ldap.pem"
    # Schlüssel-Zertifikat zum Verbinden mit dem LDAP-Server
    clientkey="/etc/openldap/ssl/ldap.key"
    # LDAP Suffix
    suffix="dc=firma_xyz,dc=de"
    # Wo werden die User im LDAP abgelegt?
    usersdn="ou=Users,${suffix}"
    # Wo werden die Computer-Accounts im LDAP abgelegt?
    computersdn="ou=Computers,${suffix}"
    # Wo werden die Gruppen im LDAP abgelegt?
    groupsdn="ou=Groups,${suffix}"
    # Wo werden die ID's für fremde LDAP-Server abgelegt?
    idmapdn="ou=Idmap,${suffix}"
    # Hier werden die Gruppen- und User-IDs verwaltet
    sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
    scope="sub"
    # CRYPT für die Verschlüsselung verwenden (beachte auch /etc/ldap.conf !!!)
    hash_encrypt="CRYPT"
    # salt-format für die CRYPT-Verschlüsselung
    crypt_salt_format="%s"
    # Folgende Settings sind Voreinstellungen für User, die neu angelegt werden
    # Login-Shell für neu angelegte User
    userLoginShell="/bin/false"
    # Pfad zum Homeverzeichnis
    userHome="/home/%U"
    # Mit welchen Rechten wird das Home-Verzeichnis versehen?
    userHomeDirectoryMode="700"
    # User-Beschreibung
    userGecos="Samba-User"
    # Die Standard-Gruppe – wichtig: diese Gruppe werden wir später noch angelegen;
    # man muss dann exakt diese Gid's verwenden; muss > 1000 sein!
    defaultUserGid="1001"
    # Gleiches gilt für die Maschinen-Gruppe
    defaultComputerGid="1002"
    # Dieses Verzeichnis dient als Quell-Ordner beim Anlegen des Homeverzeichnisses
    skeletonDir="/etc/skel"
    # Wann müssen User spätestens das Passwort ändern?
    defaultMaxPasswordAge="30"
    # Entspricht eigentlich dem logon path der smb.conf – kann weggelassen werden, wenn
    # logon path in der smb.conf gesetzt ist!
    #userSmbHome="\\%L\homes"
    # Das Gleiche gilt für dieses Attribut...
    #userProfile="\\%L\profiles\%U"
    # ... und für dieses
    #userHomeDrive="k:"
    # ... und auch für dieses
    #userScript="%U.logon.bat"
    # Dieser Zusatz wird für Email-Adressen verwendet
    mailDomain="test_flo.dyndns.org"
    with_smbpasswd="0"
    smbpasswd="/usr/bin/smbpasswd"
    with_slappasswd="0"
    slappasswd="/usr/sbin/slappasswd"

Die zweite Konfigurationsdatei im Ordner /etc/smbldap-tools – die smbldap_bind.conf – muss als letztes angepasst werden:

    slaveDN="cn=admin,dc=firma_xyz,dc=de"
    slavePw="[admin-pwd im Klartext]"
    masterDN="cn=admin,dc=firma_xyz,dc=de"
    masterPw="[admin-pwd im Klartext]"

Wie zu sehen ist, kann das LDAP-Passwort in dieser Datei nicht verschlüsselt abgelegt werden. Daher unbedingt sicherstellen, dass diese Datei nur von root gelesen und bearbeitet werden darf!

Die eben erklärten Schritte wurden unter SuSE Linux 10.1 und Debian 3.1r4 getestet. In wie fern sich die Konfigurationen zu älteren/neueren Versionen bzw. anderen Distributionen unterscheiden, wurde nicht berücksichtigt. Bis auf die /etc/security/pam_unix2.conf dürften jedoch – wenn überhaupt – wenige bis keine Unterschiede sein. Bezüglich der PAM-Konfiguration muss man halt googlen.


LDAP-Struktur für Samba anlegen

Auf diversen Internetseiten bin ich auf "nette" Scripts/Erklärungen gestoßen, wo beschrieben wird, wie man denn jetzt LDAP für Samba konfiguriert bzw. eine Struktur für Samba in LDAP anlegt. Ohne LDAP-Vorkenntnisse stellt eine solche Lösung eine schier unlösbare Herausforderung dar - zumindest war ich zu faul, mich da noch dahinter zu klemmen ;-). Doch zum Glück gibt es die Samba LDAP-Tools! Diese Sammlung an Perl-Scripten besteht aus folgenden Dateien:

    smbldap-populate: mit diesem Script erstellt man die Samba-Struktur
    smbldap-passwd: zum Setzen des Samba-Passwortes
    smbldap-userinfo: ändern der Infos zu einem User
    smbldap-groupadd
    smbldap-groupdel
    smbldap-groupmod
    smbldap-groupshow
    smbldap-useradd
    smbldap-userdel
    smbldap-usermod
    smbldap-usershow

Alle nicht kommentierten Scripte dürften selbsterklärend sein.


Nun legen wir die eben angesprochene LDAP-Struktur für Samba an:

    smbldap-populate

Bei SuSE wird noch ein Samba-Passwort für root verlangt, unter Debian lautet der User "Administrator" und das Passwort muss separat mit smbldap-passwd vergeben werden (oder du legst einen root-User mit der GID 512 an)! Solltest du den "Administrator" verwenden, füge noch die Zeile

    admin users = root,Administrator

in die smb.conf hinzu, sonst schlägt die Aufnahme in die Domäne fehl!


Es dürften ein paar Hinweise ausgegeben worden sein, dass ou's (organizationalUnits) sowie Benutzer und Gruppen angelegt wurden. Sollten Fehler auftauchen, stelle sicher, dass


- die Konfigurationsdateien stimmen (/etc/openldap/slapd.conf, /etc/ldap.conf, /etc/smbldap-tools/smbldap.conf und smbldap_bind.conf)
- der LDAP-Admin mit smbpasswd -w [ldap_admin_passwort] in die secrets.tdb aufgenommen wurde
- vorhergehende Samba-Konfigurationen wirklich nicht mehr aktiv sind und auch die smb.conf alle notwendigen Einträge für einen PDC enthält
- die Konfigurationsdateien auf Schreibfehler kontrolliert werden


Prüfe auch wieder die Logfiles nach Hinweisen. Bei mir traten Probleme auf, da ich die falsche samba3.schema verwendete, in der smb.conf soetwas wie preferred master = yes vergaß und in der /etc/openldap/slapd.conf Zugriffs-Beschränkungen einrichtete, welche die Abfrage von Username und Passwort beim Login verhinderten (tja: nobody is perfect) – kontrolliere auch das!


Zum Prüfen, ob etwas im LDAP-Verzeichnis angelegt wurde (und falls ja: was), empfehle ich das Java-Tool LDAP Browser/Editor [2]. Lade das Tool herunter, extrahiere das Programm und starte es unter Windows durch Doppelklick auf lbe.bat. Natürlich muss auf dem Rechner ein Java RE installiert sein. Über den Button New legen wir jetzt die Verbindung zu unserem LDAP-Server an:


Smb ldap 01.jpg


Die Base DN und User DN müssen natürlich deiner Umgebung angepasst werden. Für eine SSL-Verbindung Häkchen setzen. Klicke auf Save und dann auf Connect, um die Verbindung herzustellen. Wurde alles richtig eingegeben und ist der LDAP-Server richtig konfiguriert, müsste das Ganze so aussehen:


Smb ldap 02.jpg


Bei dieser Grafik sieht man, dass die Struktur von Samba erfolgreich in das Verzeichnis eingetragen wurde. Klickt man nun auf ou=Groups oder ou=Users, müssten schon Einträge vorhanden sein. Ich weiß das ist keine Hilfe, doch wenn keine Verbindung zustande kommen sollte oder – wie oben erwähnt – der Befehl smbldap-populate zu Fehlern geführt hat, musst du selbst in Logfiles und den Konfigurationen rumsuchen. LDAP ist beim ersten Mal alles Andere als easy, wenn man es nicht von jemanden erklärt bekommt; ich weiß wovon ich rede – aber hat man's einmal verstanden...


Davon ausgehend, dass der smbldap-populate erfolgreich ausgeführt wurde, legen wir nun die Default-Gruppen, die wir ja in der /etc/smbldap-tools/smbldap.conf festgelegt haben (defaultUserGid, defaultComputerGid), an. Dieser Schritt ist wichtig! Beim Hinzufügen einer Client-Maschine zur Domäne traten bei mir Fehler auf und auch die User konnten nicht angelegt werden, da die Default-Gruppen nicht existierten. Daher:

    smbldap-groupadd -g 1001 -a sambausers
    smbldap-groupadd -g 1002 -a sambamachines

Wie in meiner smbldap.conf hinterlegt, erstelle ich hier die Gruppe sambausers mit der Gruppen-ID 1001 und die sambamachines mit der Gruppen-ID 1002. Erstere wird als Default-Gruppe beim Anlegen neuer Samba-User (siehe nächster Schritt) und Zweitere für die Client-Maschinen verwendet. Die ID für die Gruppen müssen > 1000 sein!


Es dürfte nun möglich sein, den Client-Rechner in die Domäne aufzunehmen. Infos hierzu findest du unter Samba als PDC: Clients einrichten!


Nun können wir einmal einen Benutzer anlegen:

    smbldap-useradd -a -P -m -M flo flo
    smbldap-usermod -B1 -A1 flo

In diesem Falle lege ich den User flo mit den in der /etc/smbldap-tools/smbldap.conf hinterlegten Voreinstellungen (Home-Verzeichnis, Profil, Gruppe etc.) an. Das -P bedeutet, dass für den Benutzer noch ein Passwort zu vergeben ist, bevor er im Verzeichnis gespeichert wird. -M flo – nicht zu verwechseln mit -m, mit dem man ein Homeverzeichnis für den User anlegt (als Quelle für das Homeverzeichnis wird /etc/sekl verwendet; siehe smbldap.conf) – ist die Mail-Adresse für den Benutzer. Nächster Befehl: -B 1 verlangt, dass beim ersten Login des Users dieser ein neues Passwort vergeben muss, -A 1 erlaubt es grundsätzlich dem Benutzer sein Passwort zu ändern (in Verwendung mit -B 1 sehr wichtig, da sonst evtl. ständig das Telefon klingelt, weil der Benutzer sein Passwort ändern will, dies jedoch nicht möglich ist...). Es gibt zwar die Möglichkeit, -A1 und -B1 gleich beim Anlegen des Users (smbldap-useradd) zu setzen, jedoch griffen diese Optionen bei mir nicht (ein Bug?)! Sollte der User beim Login sein Passwort nicht ändern können ("Keine Berechtigung"), dann unbedingt auch sicherstellen, dass in der smb.conf die Attribute unix password sync und ldap passwd sync auf NO gesetzt sind – war bei mir ebenfalls eine Fehlerquelle (nobody is perfect)! Zudem noch der Hinweis: wenn der letzte Befehl zum Ändern des Passwortes beim nächsten Login gesetzt wurde, du jedoch eine "Netzlaufwerksverbindung" herstellen willst, schlägt diese Fehl! Ändere in diesem Falle das Passwort an der Konsole und dann funktioniert es.


Durch Eingabe von smbldap-useradd -h erhält man – wie übrigens bei allen anderen Scripten der Samba LDAP-Tools auch – eine Übersicht der möglichen Parameter. Um zu sehen, ob der LDAP-User auch wirklich vorhanden und für die Authentifizierung verwendet werden kann, gib den Befehl

    getent passwd 

ein. Der Benutzer sollte in der Liste aufgeführt sein. Zu beachten ist auch, dass ein neu hinzuzufügender LDAP-Benutzer nicht lokal existieren sollte (also in der /etc/passwd). Zum Schluss sei noch angemerkt, dass eine Passwortänderung nicht mit LDAP Browser/Editor durchgeführt werden sollte. Verwende stattdessen smbldap-passwd.


Sicherung des LDAP-Servers

Ein Backup ist schnell angelegt:

    slapcat -l backup.ldif

Das ist die einfachste Variante. Um dieses Backup zurückzusichern, verwende den Befehl

    slapadd -l backup.ldif

Leichter kann man es nun wirklich nicht machen. Das soll's gewesen sein.


--Flo84 22:00, 14. Mai 2007 (CEST)