Samba mit LDAP passdb backend

Dieses Thema im Forum "Samba" wurde erstellt von bit-teufel, 05.06.2008.

  1. #1 bit-teufel, 05.06.2008
    bit-teufel

    bit-teufel Eroberer

    Dabei seit:
    05.06.2008
    Beiträge:
    59
    Zustimmungen:
    0
    Hallo zusammen !

    Ich bin gerade dabei einen Samba Server (Version 3.0.30) der mit LDAP (openLDAP 2.4.8) gesteuerte Accounts arbeiten soll, einzurichten.
    Nur gibt es ein Problem, wenn ein User der keinen Lokalen Unix Account hat (sambaSamAccount), kann er nicht auf die Shares zugreifen.
    In diesem Fall spuckt Samba folgenden Fehler aus:
    "NT_STATUS_LOGON_FAILURE" bzw.
    [2008/06/05 20:09:07, 0] passdb/pdb_get_set.c:pdb_get_group_sid(211)
    pdb_get_group_sid: Failed to find Unix account for test1
    [2008/06/05 20:09:07, 1] auth/auth_util.c:make_server_info_sam(566)
    User test1 in passdb, but getpwnam() fails!
    [2008/06/05 20:09:07, 0] auth/auth_sam.c:check_sam_security(352)
    check_sam_security: make_server_info_sam() failed with 'NT_STATUS_NO_SUCH_USER'

    Wenn ich mit einem User, der ein lokales Unix Konto hat, einlogge z.B. "root", dann funktioniert alles
    wunderbar.

    Kann ich LDAP Accounts für Samba benutzen die keinen Lokalen Account haben bzw. quasi Imaginär sind ?
    Muss ich noch zusätzlich Programme installieren oder irgendwelche Einstellungen machen ?

    Vielen Dank im Voraus
    Bit-Devil


    ############################################################################################
    Hier meine smb.conf:

    [global]
    workgroup = DOMAIN
    domain logons = Yes
    domain master = Yes
    local master = Yes
    netbios name = SMBserver
    os level = 255
    preferred master = Yes
    security = user
    server string = Linux Test Center
    usershare max shares = 100
    log file = /var/log/samba/%m.log
    syslog = 3
    passdb backend = ldapsam:ldap://master.domain.corp
    ldap suffix = dc=domain,dc=corp
    ldap admin dn = cn=master,dc=domain,dc=corp
    ldap delete dn = no
    [share]
    comment = test share
    path = /tmp
    valid users = %U
    writeable = yes
    create mask = 0600
    directory mask = 0700
    ############################################################################################
    slapd.conf:
    include /usr/local/etc/openldap/schema/core.schema
    include /usr/local/etc/openldap/schema/cosine.schema
    include /usr/local/etc/openldap/schema/inetorgperson.schema
    include /usr/local/etc/openldap/schema/nis.schema
    include /usr/local/etc/openldap/schema/openldap.schema
    include /usr/local/etc/openldap/schema/samba.schema
    include /usr/local/etc/openldap/schema/collective.schema
    include /usr/local/etc/openldap/schema/corba.schema
    include /usr/local/etc/openldap/schema/duaconf.schema
    include /usr/local/etc/openldap/schema/dyngroup.schema
    include /usr/local/etc/openldap/schema/java.schema
    include /usr/local/etc/openldap/schema/misc.schema
    include /usr/local/etc/openldap/schema/ppolicy.schema

    referral ldap://master.domain.corp

    pidfile /usr/local/var/run/slapd.pid
    argsfile /usr/local/var/run/slapd.args

    access to *
    by write
    by read

    database bdb
    suffix dc=domain,dc=corp
    rootdn cn=master,dc=domain,dc=corp
    rootpw PassWort

    directory /usr/local/var/openldap-data

    index cn,sn,uid pres,eq,approx,sub
    index objectclass pres,eq

    index ou,mail,givenname eq,pres,sub
    index uidNumber,gidNumber,loginShell eq,pres
    index memberUid eq,pres,sub
    index nisMapName,nisMapEntry eq,pres,sub

    index displayName pres,sub,eq
    index sambaSID eq
    index sambaPrimaryGroupSID eq
    index sambaDomainName eq
    index default sub

    loglevel 256
    ############################################################################################
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 kartoffel200, 06.06.2008
    Zuletzt bearbeitet: 06.06.2008
    kartoffel200

    kartoffel200 AMD Fanboy Since 2003

    Dabei seit:
    12.03.2007
    Beiträge:
    938
    Zustimmungen:
    0
    Ort:
    L wie localhost
    Gucke mal in dein Samba log File wenn sich ein LDAP User einloggt.
    /var/log/samba/
    Notfalls probiers mit Webmin.
    Mach mal security = server
     
  4. #3 bitmuncher, 06.06.2008
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Die Meldungen hat er bereits gepostet

    Was soll das bringen, ausser dass es am Ziel vorbei geht?

    Ist ja echt lobenswert, dass du helfen willst, aber wenn man keine Ahnung hat, sollte man nicht um des Beitrags willen antworten. *find*

    'security = user' ist jedenfalls absolut korrekt, da damit Samba gezwungen ist das passdb-Backend zu nutzen.

    Die hier relevante Meldung dürfte sein:

    Code:
    User test1 in passdb, but getpwnam() fails!
    Der User wird also im angegebenen passdb-Backend gefunden, aber sein Passwort nicht. Die Logs des LDAP-Servers könnten evtl. Aufschluss darüber geben, was hier falsch läuft. Evtl. ist kein Passwort-Eintrag im LDAP vorhanden, es wird das falsche Feld abgefragt o.ä.
     
  5. #4 saeckereier, 06.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Stimme dir voll zu auch wenn dein Beitrag ebenfalls nicht die richtige Antwort ist :-)

    Das ist zwar der Fehler, aber getpwnam hat nichts (i.d.R.) mit dem Kennwort zu tun, wenn du mal man getpwnam eingibst, dann sagt er dir, dass das dazu dient den Eintrag aus der /etc/passwd zu lesen, er meckert also darüber, dass der User nicht in der passwd zu finden ist. Wie du im ersten Post ricvhtig diagnostiziert hast, brauchst du einen lokalen User, Samba wüsste sonst auch gar nicht, mit was für Rechten er den Zugriff regeln soll. Alternativen sind nun entweder winbind (schlecht) oder nsswitch so einzurichten, dass es LDAP verwendet (bsp.: http://imaginator.com/~simon/ldap/ ) damit werden dann deine User ausm LDAP auch lokal sichtbar.
     
  6. #5 bitmuncher, 06.06.2008
    Zuletzt bearbeitet: 06.06.2008
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Ich code eindeutig zu wenig C in letzter Zeit. :(
     
  7. #6 saeckereier, 06.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    es gibt nicht zuwenig c nur zuviel :-) ich code gar keins :-) Daher muss ich ja nachschauen ;)
     
  8. #7 bitmuncher, 06.06.2008
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Wenn ich nachschauen muss, kann der TE das auch und dann spar ich mir meine Antwort lieber. :D
     
  9. #8 bit-teufel, 06.06.2008
    bit-teufel

    bit-teufel Eroberer

    Dabei seit:
    05.06.2008
    Beiträge:
    59
    Zustimmungen:
    0
    nsswitch

    Hallo Zusammen !

    Die "getpwnam()" dient ja dazu um den Namen aus der "/etc/passwd" zu bekommen.
    Da der Name aber in der "/etc/passwd" nicht existiert sondern nur im LDAP Server, kann
    Samba gar nicht den richtigen User zuweisen. Dafür gibt es aber ein nettes
    Progrämmchen das dieses Problem löst "nss_ldap" "http://www.padl.com/OSS/nss_ldap.html" .
    In der Datei "/etc/nsswitch.conf" muss angegeben werden, das getpwnam() quasi nicht die Datei "/etc/passwd"
    durchsucht, sondern den LDAP Server (PosixAccount).
    Leider ist die Theorie immer ander als die Praxis. Es funktioniert natürlich nicht.
    Wenn ich z.B. mit dem Befehl "getent passwd" überprüfen möchte ob der NSSwitch funktioniert,
    kommt eine Fehlermeldung: "getent: nss_ldap: could not determine LDAP server from ldap.conf or DNS"
    Aber in der ldap.conf ist der Server richtig angegeben.

    Hat jemand eine Idee oder Lösung ?

    Vielen Dank im Voraus
    Bit-Devil

    ################################################################
    Hier die "/etc/nsswitch.conf" Datei:

    passwd: ldap
    group: ldap
    shadow: ldap

    hosts: files mdns4_minimal [NOTFOUND=return] dns
    networks: files dns

    services: files db
    protocols: files db
    rpc: files db
    ethers: files db
    netmasks: files
    netgroup: files nis
    publickey: files

    bootparams: files
    automount: files nis
    aliases: files

    ################################################################
    Hier die "/etc/ldap.conf"

    host localhost (mit dem "normaler Name" oder "127.0.0.1" oder "IP" oder "FQDN" funktionierts auch nicht)

    uri ldap://localhost (mit "master" oder "127.0.0.1" oder "192.168.0.1" oder "master.domain.corp" funktionierts auch nicht)

    base dc=domain,dc=corp

    nss_base_passwd ou=People,dc=domain,dc=corp
    nss_base_shadow ou=People,dc=domain,dc=corp
    nss_base_group ou=Group,dc=domain,dc=corp
     
  10. #9 saeckereier, 06.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Probier mal einen / hinter dem Servernamen
     
  11. #10 bit-teufel, 06.06.2008
    bit-teufel

    bit-teufel Eroberer

    Dabei seit:
    05.06.2008
    Beiträge:
    59
    Zustimmungen:
    0
    ldap.conf

    Leider ohne Erfolge. Die Fehlermeldung kommt trotz "uri ldap://localhost/".
     
  12. #11 saeckereier, 06.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Was hast du denn für eine Distribution?
     
  13. #12 bit-teufel, 06.06.2008
    bit-teufel

    bit-teufel Eroberer

    Dabei seit:
    05.06.2008
    Beiträge:
    59
    Zustimmungen:
    0
    Ich nutz SuSE 10.3 allerding sind die Programme Teile wie Samba, pam (inkl. nss_ldap und pam_ldap), Berkeley DB und LDAP selbst kompiliert worden bzw. installiert.

    Kernel Version:
    "Linux master 2.6.25.2-default #3 SMP Thu May 8 16:05:36 CEST 2008 i686 i686 i386 GNU/Linux"
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. #13 saeckereier, 06.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Warum? Du solltest einmal prüfen, ob nss_ldap die ldap.conf evtl. woanders sucht, sollte bei den Sourcen oder im Configure Befehl stehen, Evtl. kopieren nach /etc/openldap
    oder die Pakete der Distribution nehmen
     
  16. #14 bit-teufel, 06.06.2008
    bit-teufel

    bit-teufel Eroberer

    Dabei seit:
    05.06.2008
    Beiträge:
    59
    Zustimmungen:
    0
    Fehler gefunden

    Tatsache, ich hatte beim kompilieren von nss_ldap den falschen Pfad "--with-ldap-conf-file=/usr/local/etc/openldap/ldap.conf" angegeben. Richtig wäre gewesen "--with-ldap-conf-file=/etc/ldap.conf". Naja so ein kleine Fehler kosten sehr viel Kraft/Nerven, Zigaretten und unmengen an Kaffee. Aber egal jetzt geht ja alles.
    Also wenn jemand einen solchen Fehler wieder irgendwo sieht/hat/feststellt , weiß er ja wo er zuerst suchen muss.

    Danke an alle die mir geholfen haben :D:D:D:D:):):):):)


    Gruss
    Bit-Devil
     
Thema:

Samba mit LDAP passdb backend

Die Seite wird geladen...

Samba mit LDAP passdb backend - Ähnliche Themen

  1. Samba mit OpenLDAP Backend

    Samba mit OpenLDAP Backend: Hallo zusammen, ich habe ein paar grundlegende Fragen zur Kombination von Samba-PDC mit LDAP-Backend: ich würde gerne diese beiden Dienste...
  2. Passwortsynchronisation zwischen OpenLDAP und Samba

    Passwortsynchronisation zwischen OpenLDAP und Samba: Hallo zusammen, Ich habe folgendes Problem: 1. Auf einem Server laeuft ein OpenLDAP mit LAM-Manager-Pro und dem User-Self-Service zum Setzen...
  3. Virtualisieren einer Samba Domäne mit OpenLDAP und Sanfte Migration

    Virtualisieren einer Samba Domäne mit OpenLDAP und Sanfte Migration: Hallo zusammen, ich bin dabei einen Suse SLES 10 mit Samba 3.0.28 auf einen SLES11 mit einer neueren Sambaversion zu portieren. Das SLES10...
  4. CentOS 6 Samba LDAP Domänenbeitritt

    CentOS 6 Samba LDAP Domänenbeitritt: Hallo, nach tagelangen erfolglosen googeln wende ich mich an euch- bin wie so viele am verzweifeln: habe auf einem centos 6.3 mit samba 3.5.10...
  5. Dringend: Samba-Server zerstört Konfiguration des LDAP-Servers. Anonymer Zugang weg.

    Dringend: Samba-Server zerstört Konfiguration des LDAP-Servers. Anonymer Zugang weg.: Hey Leute, hoffe das ist das richtige Forum, brauche allerdings dringend Hilfe! Haben in der Schule den sogenannten Open School Server (basiert...