Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP fast geschafft
Hallo liebe Gemeinschaft,
habe mit eurer Hilfe bis hierhin viel geschafft - danke erstmal dafür ! Habe jetzt nur noch ein paar kleine Probleme, bevor mein Samba-LDAP Server auf RedHat 9 funktioniert.
zum ersten :
=========
habe ich das Gefühl, dass der Samba-Dienst nicht richtig läuft. Es fehlt z.B. auch eine Datei namens 'nmbd.pid'
Ist diese wichtig ?
zum zweiten :
==========
wenn ich versuche ein Administrator-Konto anzulegen
smbpasswd -a root
dann kommt folgende Fehlermeldung :
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
Bind failed: Invalid credentials
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
Bind failed: Invalid credentials
Failed to add entry for user root.
Failed to modify password entry for user root
Und als drittes :
===========
Wenn ich einen User hinzufügen möchte (in dem Fall admin) mit der uid=200
./smbldap-useradd.pl -a -m -g 200 admin
dann erscheint diese Fehlermeldung :
Malformed UTF-8 character (unexpected continuation byte 0xab, with no preceding start byte) at /usr/lib/perl5/5.8.0/smbldap_tools.pm line 520.
Malformed UTF-8 character (unexpected continuation byte 0xbb, with no preceding start byte) at /usr/lib/perl5/5.8.0/smbldap_tools.pm line 520.
Das bereitet mir dabei Sorgen :
./smbldap-useradd.pl: unknown group 200
Die Gruppe steht wie folg im Verzeichnis :
cn=Admins
gidNumber: 200
memberUid: admin
objectClass: posixGroup
Danke schonmal für eure Mühe !
Gruß Marcel
zum ersteren:
hast du smbpasswd -w "manager_pw" gemacht?
arbeitest du mit ACLs im slapd?
zu letzterem: hab nie mit den idealx tools gearbeitet, aber kann es sein, dass du evtl. falsche angaben in den tools bzgl. der organisation deines trees gemacht hast (ou angeben, bind passwort, ... ) ?
bezieht dein OS die gruppen auch aus dem ldap? ->
getent groups
zu erstem: AFAIK nicht zwingend notwendig
greez
Hi,
Ich habe erstmal
smbpasswd -w "Passwort"
gemacht. Das wurde mir dann auch bestätigt und geschrieben, dass das PW in die secrets.tdb gesetzt wurde.
====
Ich kann immer noch keinen Root-User hinzufügen :
====
wenn ich jetzt smbpasswd -a root mache, kommt immer noch folgende Fehlermeldung :
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
LDAP search "(&(objectclass=sambaaccount)(uid=root))" returned 0 entries.
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
failed to modify user with uid = root with: Undefined attribute type
pwdLastSet: attribute type undefined
Failed to add entry for user root.
Failed to modify password entry for user root
====
>>>arbeitest du mit ACLs im slapd?
was ist ACLs ? habe in der slapd.conf dazu nichts gefunden.
====
>>> zu letzterem: hab nie mit den idealx tools gearbeitet, aber kann es sein, >>> dass du evtl. falsche angaben in den tools bzgl. der organisation deines >>> trees gemacht hast (ou angeben, bind passwort, ... ) ?
ich habe mal spaßeshalber die Gruppeid durch den Gruppennamen ersetzt. ALso
./smbldap-useradd.pl -a -m -g admin admin -- hat funktioniert !
ich hab vorher eine Gruppe namens "admin" nochmal mit den Tools erstellt - funktionierte.
====
>>> bezieht dein OS die gruppen auch aus dem ldap? ->
>>> getent groups
Mein OS bezieht keine Gruppen aus dem LDAP.
====
So nun habe ich versucht, einen Win2000 Rechner in die Domain zu bringen. Fehlanzeige. Es kommt immer die Fehlermeldung :
"Die angegebene Domäne ist nicht vorhanden oder es konnte keine Verbindung hergestellt werden"
Wie sieht das mit Samba aus ? Wenn Samba nicht einwandfrei läuft, kann man dann trotzdem auf die Homedirectories zugreifen ? Habe nämlich den Verdacht, dass Samba in diesem Fall net richtig tickt.
EDIT :
ich habe jetzt den smbd und nmbd Dienst mal aus einem anderen Ordner gestartet. Wenn ich nun px -ax mache, wird folgendes u.a. aufgelistet :
2350 ? S 0:00 /usr/sbin/smbd -D
2358 ? S 0:00 /usr/local/samba/bin/nmbd -D
außerdem sagt mir Webmin, dass der Dienst läuft.
Samba läuft also jetzt einwandfrei. Trotzdem haben sich die Fehlermeldungen oben noch net geändert :(
Danke für eure Hilfe !
Netten gruß Marcel
Hi Leute,
habe es jetzt doch geschafft, mich an die Domain anzumelden - FAST !
Wenn ich mit dem Win2k-Client den Rechner zur Domain hinzufügen will, komm ich bis zum Fenster, wo ich den root-Benutzer angeben muss. Ich schätze mal, dass der Root Nutzer nicht richtig angegeben ist (es kommt ja auch immer eine Fehlermeldung)
siehe :
Ich kann immer noch keinen Root-User hinzufügen :
====
wenn ich jetzt smbpasswd -a root mache, kommt immer noch folgende Fehlermeldung :
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
LDAP search "(&(objectclass=sambaaccount)(uid=root))" returned 0 entries.
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
failed to modify user with uid = root with: Undefined attribute type
pwdLastSet: attribute type undefined
Failed to add entry for user root.
Failed to modify password entry for user root
====
hm ...
muss der admin(root) in dem LDAP-Verzeichnet eingetragen sein ? auf dem Server existiert er und ins Verzeichnis hab ich ihn auch schon eingetragen - ohne Erfolg.
Was besagt die Fehlermeldung ? kann es sein, dass man als Objekt "pwdLastSet" mit angeben muss ? Ich hab's versucht, da zeigt er mir aber ständig nen Fehler an und fügt dieses Attribut nicht hinzu.
Ich weiß net mehr weiter :(
Gruß Marcel
hast du denn die samba.schema ins openldap verzeichnis zu den anderen schemata gelegt?
vllt. wäre es ratsam, wenn du zunächst einen grundeintrag im ldap für den rootuser anlegst, damit smbpasswd überhaupt einen findet, den er editieren kann?
wenn samba nicht läuft, kannst du auch nicht via smb auf die von samba zur verfügung gestellten shares zugreifen
greez
also im openldap verzeichnis befindet sich bereits eine samba.schema. Muss ich irgendwas beachten, wenn ich den User im Verzeichnis anlege ? Habe ihn vorhin schonmal mit ./smbldap-useradd.pl angelegt. Aber jetzt hab ich nochmal ne schlanke Version des Users angelegt :
gidNumber: 505
uidNumber: 1000
uid: smbroot
objectClass: sambaAccount - (habe auch posixAccount ausprobiert)
description: System User
cn: smbroot
Samba läuft mittlerweile !
Was mir nur noch fehlt ist dieser doofe admin Account :-D sonst kann ich mich net an der Domäne anmelden.
Danke nochmal !
Gruß Marcel
du hast diese schlanke version des users in ldap integrieren können?
kann ich mir net vorstellen, da du keine strukturelle objektklasse angegeben hast
welche version von openldap benutzt du?
im prinzip muss es so sein, dass du dich an deiner linux workstation in der konsole mit einem user aus dem ldap anmelden kannst - wenn das klappt, dann klappt auch das smbpasswd
ansonsten muss ein getent passwd die user aus dem ldap listen und ein
id user
muss details zum user ausspucken
dann klappt smbpasswd
dies realisierst du alles, wenn noch nicht geschehen, mit nsswitch.conf und pam
greez
wie emba schon sagte: "Da fehlt noch 'n büschen was"
Schau Dir mal die Objectklassen posixAccount an. Da steht, was required und was allowed ist. Daneben brauchst Du noch eine strukturelle Oberklasse in jedem ldap-Eintrag (siehe emba). Vielleicht noch nicht jetzt, weil Deine ldap Version da nachsichtig ist, aber beim nächsten Update wirst Du Deine ware Freude haben, wenn Du das jetzt nicht beachtest (Ich weiss, wovon ich rede <:-) )
Strukturell Oberklassen sind als "structurell" gekennzeichnet, z.B. "top".
mamue
Ich habe jetzt erstmal alle Unix-User in das LDAP Verzeichnis eingetragen - das hab ich natürtlich nicht per Hand gemacht *g* sondern mit dem Tool migrate_all_online.sh. Davor habe ich noch die migrate_common.ph angepasst. Nun kann ich mich also mit den Usern aus dem LDAP-Verzeichnis anmelden. Ich hab mal NUR im LDAP-Verzeichnis einen testuser angelegt und konnte dann einfach auf dem Unixrechner mich als testuser anmelden. Wunderbar dachte ich mir. Aber einen smb-admin kann ich immer noch net anlegen :( Immer noch die gleiche Fehlermeldung :
wenn ich jetzt smbpasswd -a root mache, kommt immer noch folgende Fehlermeldung :
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
LDAP search "(&(objectclass=sambaaccount)(uid=root))" returned 0 entries.
ldap_connect_system: Binding to ldap server as "cn=admin,dc=samba,dc=de"
failed to modify user with uid = root with: Undefined attribute type
pwdLastSet: attribute type undefined
Failed to add entry for user root.
Failed to modify password entry for user root
=======================
Schau Dir mal die Objectklassen posixAccount an. Da steht, was required und was allowed ist.
Strukturell Oberklassen sind als "structurell" gekennzeichnet, z.B. "top".
mamue
was meinst du damit, dass posixAccount required und allowed sein können - kann man festlegen, was der Server mit posixAccount machen darf und was nicht ? Wenn ja, wo kann man das festlegen ? Liegt es vielleicht daran, dass er bei pwdLastSet immer nen Fehler zeigt ?
Strukturelle Oberklassen existierten vorher (Groups, User usw) und jetzt hat sie das System ja automatisch angelegt.
Hm weiß noch jemand weiter ?
Wäre nett, wenn mir noch jemand helfen könnte !
THX so lot
Gruß Marcel
EDIT :
achso, wenn ich getent passwd user & id user eingebe, erscheint der User aus dem LDAP Verzeichnis, also so wie es sein sollte.
Meine Openldap version :
openldap-2.0.27-8
mit welcher samba version arbeitest du eigentlich ?
die objectclass sambaaccount gilt doch als deprecated und man sollte die "sambaSamAccount" nehmen
alternativ kannst du auch dem user zunächst das attribut objectClass=sambaaccount spendieren, dann sollte das auch lüppen
kannst du bitte mal die samba.schema posten?
greez
Meine Samba Version ist die 2.2.8a.
Ich habe mal die objectclass sambaaccount und sambaSamAccount ausprobiert. Klappte beides mal auch net. Hatte ich aber schonmal ausprobiert - trotzdem danke.
hier meine
/etc/openldap/schema/samba.schema
##
## schema file for OpenLDAP 2.0.x
## Schema for storing Samba's smbpasswd file in LDAP
## OIDs are owned by the Samba Team
##
## Prerequisite schemas - uid (cosine.schema)
## - displayName (inetorgperson.schema)
##
## 1.3.6.1.4.1.7165.2.1.x - attributetypes
## 1.3.6.1.4.1.7165.2.2.x - objectclasses
##
##
## Password hashes
##
attributetype ( 1.3.6.1.4.1.7165.2.1.1 NAME 'lmPassword'
DESC 'LanManager Passwd'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.2 NAME 'ntPassword'
DESC 'NT Passwd'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
##
## Account flags in string format ([UWDX ])
##
attributetype ( 1.3.6.1.4.1.7165.2.1.4 NAME 'acctFlags'
DESC 'Account Flags'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE )
##
## Password timestamps & policies
##
attributetype ( 1.3.6.1.4.1.7165.2.1.3 NAME 'pwdLastSet'
DESC 'NT pwdLastSet'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime'
DESC 'NT logonTime'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.6 NAME 'logoffTime'
DESC 'NT logoffTime'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.7 NAME 'kickoffTime'
DESC 'NT kickoffTime'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.8 NAME 'pwdCanChange'
DESC 'NT pwdCanChange'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.9 NAME 'pwdMustChange'
DESC 'NT pwdMustChange'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
##
## string settings
##
attributetype ( 1.3.6.1.4.1.7165.2.1.10 NAME 'homeDrive'
DESC 'NT homeDrive'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.11 NAME 'scriptPath'
DESC 'NT scriptPath'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.12 NAME 'profilePath'
DESC 'NT profilePath'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.13 NAME 'userWorkstations'
DESC 'userWorkstations'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.17 NAME 'smbHome'
DESC 'smbHome'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
attributetype ( 1.3.6.1.4.1.7165.2.1.18 NAME 'domain'
DESC 'Windows NT domain to which the user belongs'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
##
## user and group RID
##
attributetype ( 1.3.6.1.4.1.7165.2.1.14 NAME 'rid'
DESC 'NT rid'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID'
DESC 'NT Group RID'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
##
## The smbPasswordEntry objectclass has been depreciated in favor of the
## sambaAccount objectclass
##
#objectclass ( 1.3.6.1.4.1.7165.2.2.1 NAME 'smbPasswordEntry' SUP top AUXILIARY
# DESC 'Samba smbpasswd entry'
# MUST ( uid $ uidNumber )
# MAY ( lmPassword $ ntPassword $ pwdLastSet $ acctFlags ))
#objectclass ( 1.3.6.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL
# DESC 'Samba Account'
# MUST ( uid $ rid )
# MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
# logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
# displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
# description $ userWorkstations $ primaryGroupID $ domain ))
## The X.500 data model (and therefore LDAPv3) says that each entry can
## only have one structural objectclass. OpenLDAP 2.0 does not enforce
## this currently but will in v2.1
objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY
DESC 'Samba Auxilary Account'
MUST ( uid $ rid )
MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
description $ userWorkstations $ primaryGroupID $ domain ))
##
## Used for Winbind experimentation
##
#objectclass ( 1.3.6.1.4.1.7165.1.2.2.3 NAME 'uidPool' SUP top AUXILIARY
# DESC 'Pool for allocating UNIX uids'
# MUST ( uidNumber $ cn ) )
#objectclass ( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' SUP top AUXILIARY
# DESC 'Pool for allocating UNIX gids'
# MUST ( gidNumber $ cn ) )
THX Marcel
hi
achso, das alte samba noch...
dann sind meine angaben oben bzgl. "deprecated" nicht korrekt
okay, du hast es schonmal versucht, aber es ging auch nicht?
meinst du damit, dass das hinzufügen der objectclass sambaaccount nicht klappte oder dass dies zwar klappte (ohne fehlermeldungen - du hast auch rid und uid als attribute in dem eintrag), aber smbpasswd wieder nicht ging ???
normalerweise sollte er doch das attribut pwdlastset hinzufügen können, da du die entsprechende objectclass eingefügt hast
kannst du eigentlich händisch dieses attribut mit einem wert "123456" belegen?
greez
hi
achso, das alte samba noch...
dann sind meine angaben oben bzgl. "deprecated" nicht korrekt
okay, du hast es schonmal versucht, aber es ging auch nicht?
meinst du damit, dass das hinzufügen der objectclass sambaaccount nicht klappte oder dass dies zwar klappte (ohne fehlermeldungen - du hast auch rid und uid als attribute in dem eintrag), aber smbpasswd wieder nicht ging ???
normalerweise sollte er doch das attribut pwdlastset hinzufügen können, da du die entsprechende objectclass eingefügt hast
kannst du eigentlich händisch dieses attribut mit einem wert "123456" belegen?
greez
also ich hab mal versucht dem User root oder smbroot die objectclass sambaaccount oder sambaSamAccount zu geben. Das hinzufügen in dem LDAP-Verzeichnis hat keine Schwierigkeiten bereitet. Aber das Problem war damit leider noch nicht gelöst. Oder muss ich ne extra Gruppe (ou) sambaaccount anlegen ? nee, oder ?
Was ich nicht machen kann ist : pwdlastset einem user zuteilen. Also eine objectclass namens pwdlastset definieren geht nicht. Da zeigt mir der LDAP-Browser immer den Fehler failed to add attribute 'pwdlastset'.
Das Attribut existiert nicht in dem Verzeichnis und anlegen kann ich es auch nicht - hm.
Oder muss ich ne extra Gruppe (ou) sambaaccount anlegen ? nee, oder ?
nein
Also eine objectclass namens pwdlastset definieren
es ist ein attribut, keine OC !!!
erst die OC sambaaccount hinzufügen und dann mittels ldif file und ldapmodify das attribut pwdlastset hunzufügen
teste es mal so
greez
Ich habe nun nochmal versucht, das Attribut in der LDIF-Datei anzugeben - FEHLANZEIGE :( ich gebe folgenden Befehl ein
ldapadd -D cn=admin,dc=samba,dc=de -x -W -f /etc/openldap/ldif/samba/users.ldif
und bekomme folgende Fehlermeldung an den Kopf geworfen.
adding new entry "uid=testadmin, ou=People,dc=samba,dc=de"
ldap_add: Undefined attribute type
additional info: pwdlastset: attribute type undefined
ldif_record() = 17
Er mag prinzipiell das Attribut pwdlastset nicht. ich hab auch schon pwlastset und mit groß und kleinschreibung probiert - alles gescheitert. Kann es sein, dass meine LDAP-Version dieses Attribut nicht kennt - oder muss ich irgend ein anderes Attribut noch zusätzlich hinzufügen ? Habe aber im Internet keine Hinweise dazu gefunden - hatte bis jetzt auch noch keiner den Fehler.
Was muss ich mit ldapmodify machen ? fügt man damit Attribute hinzu ?
Gruß der leicht verzweifelte Marcel
ldapmodify und ldapadd sind prinzipiell die gleichen, außer dass modify bei bestehenden einträgen nicht "schimpft" und diese ggf. modifiziert
ldap selbst hat nichts mit den attributen zu tun:
dafür sind die scheme dateien zuständig
das einzige, was man eigentlich machen muss, um objectclasses und attribute überhaupt einem user zuweisen zu können ist
a) das schema ins openldap-schema verzeichnis kopieren
b) das schema laden
include /path/to/openldap/schema/file.schema
und das attribut heißt genau so in deinem ldif file: pwdLastSet ???
greez
@DaQuark
mein Tipp:
Fang mit Samba 3 noch mal von vorne an.
Mit Samba 3 hat sich einiges verändert und v.a. vieles verbessert.
Auch die "Profis" im Forum (emba, mamue, usw.) setzen schon längere Zeit auf die Version 3.
Grüße
Manx
Auch die "Profis" im Forum (emba
:ugly:
Diese Problem liegt doch aber nicht an Samba, oder ? Es liegt doch eher ein LDAP-Problem vor, oder täusch ich mich ? Habe schon das Internet dreimal komplett aufgekrämpelt, aber zu diesem Fehler noch nix gefunden. Scheint bis jetzt wohl noch niemand gehabt zu haben ...
mfg Marcel
... ja aber die LDAP-Unterstützung hat sich mit Samba 3 verbessert.
Und da ich nur empfehlen kann, die "Samba Howto Collection" durchzuarbeiten, würd' ich gleich auf Samba 3 setzen bzw. besser gehofen werden kann dir auch.
Manx
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.