merenda Geschrieben 20. September 2005 Geschrieben 20. September 2005 HI @all, ich hab in der Config von phpLDAPadmin das man die UIDs für die einzelnen User automatisch vergeben kann. Ich hab da jetzt mal etwas rum getestet aber irgendwie funkt das nicht. Hat schon jemand erfahrungen damit gemacht bzw. weiß jemand wie das Funktioniert ? Danke schon mal im voraus für die Hilfe. Gruß Merenda Zitieren
dr.disk Geschrieben 20. September 2005 Geschrieben 20. September 2005 Da gibt's zwei Möglichkeiten: - die UIDs ermitteln lassen von phpLdapAdmin. Dazu kann man in der Config angeben wo er suchen soll und nimmt dann einfach die nächste freie. - im LDAP ein Objekt hinterlegen indem die nächste UID drinsteht. Funktioniert beides wunderbar, ich bevorzuge i.d.R. die letztere Variante. Dafür nehme ich von Samba die Klasse sambaUnixIdPool. Anbei mal die LDIF von mir. dn: cn=NextFreeUnixId,ou=Auth,dc=Rock,dc=Local objectClass: inetOrgPerson objectClass: sambaUnixIdPool gidNumber: 1000 cn: NextFreeUnixId sn: NextFreeUnixId uidNumber: 1020 Zitieren
merenda Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Da gibt's zwei Möglichkeiten: - die UIDs ermitteln lassen von phpLdapAdmin. Dazu kann man in der Config angeben wo er suchen soll und nimmt dann einfach die nächste freie. - im LDAP ein Objekt hinterlegen indem die nächste UID drinsteht. Funktioniert beides wunderbar, ich bevorzuge i.d.R. die letztere Variante. Dafür nehme ich von Samba die Klasse sambaUnixIdPool. Anbei mal die LDIF von mir. dn: cn=NextFreeUnixId,ou=Auth,dc=Rock,dc=Local objectClass: inetOrgPerson objectClass: sambaUnixIdPool gidNumber: 1000 cn: NextFreeUnixId sn: NextFreeUnixId uidNumber: 1020 Das zweite scheint mir in der Tat besser zu sein, ich hab aber noch ein paar Fragen dazu. Gehe ich recht in der Anahme, dass ich erst das SAMBA-Schema installieren bzw. einfügen muss ? Kann ich es so einstellen, dass z.B. einen UID-Pool für jede Abteilung bzw. für jedes System habe, zum besseren Verständnis habe ich dir ein Schaubild angehängt. Damit möchte ich bewerkstelligen, dass eine UID, System weit nur einmal vorhaden ist. Ist das so realisierbar ? Danke schon mal im voraus. Gruß Merenda Zitieren
dr.disk Geschrieben 21. September 2005 Geschrieben 21. September 2005 Evtl. gibt's auch irgendwo anders so ein ähnliches Schema drin oder man baut sich selbst eins. Bei mir lief bisher auch immer Samba, deswegen war dieses Schema immer bereits integriert. Aber zurück zur Frage: ja, dieses Schema muss inkludiert werden. Der UID Pool wird nur einmal, global für alle User/Abteilungen eingerichtet. Damit ist dann auch gewährleistet, dass jede UID nur einmal vorkommt. Die Lösung die Du gerne hättest, dass man an der UID auch die Abteilung erkennt, ist mit phpldapadmin in seiner jetztigen Form nicht direkt realisierbar. Tricksen könnte man, indem man für jede Abteilung eine eigene phpldapadmin-Instanz einrichtet. Und da lassen sich dann auch verschiedene ID-Pools einrichten. Das könnte eine Möglichkeit sein. Die Frage die noch bleibt ist: Wozu bzw. lohnt der Aufwand überhaupt? Was würde gegen einen zentralen ID-Pool für alle sprechen? Zitieren
merenda Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Ok, also ich hab das schmema inkludiert (wie sich das anhört:D). Du hast recht, ich werde das erstmal über alle abteilungen machen, das ist auch nicht schlecht, wenn die UIDs dann automatisch vergeben werden muss ich mir ja keine gedanken mehr darüber machen. Ich hab das jetzt mal ausprobiert aber es funkt leider nicht Was habe ich gemacht: 1. Die config.php des phpLDAPadmin editiert:$servers[$i]['name'] = 'Another server'; $servers[$i]['host'] = ''; $servers[$i]['base'] = 'dc=example,dc=com'; $servers[$i]['port'] = 389; $servers[$i]['auth_type'] = 'config'; $servers[$i]['login_dn'] = ''; $servers[$i]['login_pass'] = ''; $servers[$i]['tls'] = false; $servers[$i]['low_bandwidth'] = false; $servers[$i]['default_hash'] = 'crypt'; $servers[$i]['login_attr'] = 'dn'; $servers[$i]['login_class'] = ''; $servers[$i]['read_only'] = false; $servers[$i]['show_create'] = true; [COLOR=Red]$servers[$i]['enable_auto_uid_numbers'] = true;[/COLOR] $servers[$i]['auto_uid_number_mechanism'] = 'search'; [COLOR=Red]$servers[$i]['auto_uid_number_search_base'] = 'cn=NextFreeUnixId,o=firma,c=de';[/COLOR] [COLOR=Red]$servers[$i]['auto_uid_number_min'] = 10000;[/COLOR] $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com'; $servers[$i]['unique_attrs_dn'] = ''; $servers[$i]['unique_attrs_dn_pass'] = ''; 2. Ich hab den LDAP-Baum um Folgenden Eintrag Eweitert:dn: cn=NextFreeUnixId,o=firma,c=de objectClass: inetOrgPerson objectClass: sambaUnixIdPool gidNumber: 1000 uidNumber: 1000 cn: NextFreeUnixId sn: NextFreeUnixId 3. Ich wollte testen ob er das gezogen hat und hab versucht einen neuen User anzulegen. Aber er hat leider nicht automatisch eine UID bzw. GID genommen ? Muss ich da noch was an den Access-Regeln machen ? Hast du mir ein Tipp ? Gruß Merenda Zitieren
dr.disk Geschrieben 21. September 2005 Geschrieben 21. September 2005 Setzte mal die Option auto_uid_number_uid_pool_dn richtig, dann sollte es gehen. Edit: Sorry, auch die Option auto_uid_number_mechanism muss natürlich geändert werden. Hab's gerade nicht zur Hand, auf jeden Fall ist das nicht mehr search. Steht aber in der Doku direkt dahinter. Zitieren
merenda Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Setzte mal die Option auto_uid_number_uid_pool_dn richtig, dann sollte es gehen. Edit: Sorry, auch die Option auto_uid_number_mechanism muss natürlich geändert werden. Hab's gerade nicht zur Hand, auf jeden Fall ist das nicht mehr search. Steht aber in der Doku direkt dahinter. Hi, also hier meine Aktuelle Konfiguration:[...] $servers[$i]['enable_auto_uid_numbers'] = true; $servers[$i]['auto_uid_number_mechanism'] = 'uidpool'; $servers[$i]['auto_uid_number_search_base'] = 'ou=Test-Systeme,o=firma,c=de'; $servers[$i]['auto_uid_number_min'] = 10000; $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=NextFreeUnixId,ou=Test-Systeme,o=firma,c=de'; $servers[$i]['auto_uid_number_search_dn'] = ''; [...] Ich bekomm aber folgenden Fehler:Fehler Es scheint so, dass der "uidPool" - der in der Konfiguration festgelegt ist - nicht vorhanden ist. Aber der ist doch drin, oder:slapcat [...] dn: cn=NextFreeUnixId,o=firma,c=de cn: NextFreeUnixId gidNumber: 1000 objectClass: inetOrgPerson objectClass: sambaUnixIdPool sn: NextFreeUnixId uidNumber: 1000 structuralObjectClass: inetOrgPerson entryUUID: 865bf5a2-beca-1029-81c2-f315531d6780 creatorsName: cn=admin,o=firma,c=de createTimestamp: 20050921090456Z entryCSN: 2005092109:04:56Z#0x0001#0#0000 modifiersName: cn=admin,o=firma,c=de modifyTimestamp: 20050921090456Z Was mache ich da falsch ? Zitieren
dr.disk Geschrieben 21. September 2005 Geschrieben 21. September 2005 In Deiner phpLdapConfig ist das 'ou=Test-Systeme' zuviel. Zitieren
merenda Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Ja klar oh mann das ich das wieder übersehen habe OKI Jetzt Funktioniert es :marine DANKE FÜR DIE HILFE .... Zitieren
merenda Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Noch eine Frage ... Kann ich das auch mit der GID machen ? Hab in der Konfig nichts gefunden ... Gruß und danke noch mals Merenda Zitieren
dr.disk Geschrieben 21. September 2005 Geschrieben 21. September 2005 Nein, für die GID habe ich da noch nichts gefunden. Wobei soviele Gruppen legt man ja zum Glück i.d.R. nicht an, da ist's wesentlich leichert den Überblick zu behalten. Zitieren
merenda Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Ja ok ... das stimmt auch wieder Was mir ist gerade aufgefallen ist, der Zählt nur bis 1001 und dann hört er auf ?! Außerdem hab ich in der Konfig nicht 1000 sondern 10 000. Was muss ich da noch einstellen ? Zitieren
dr.disk Geschrieben 21. September 2005 Geschrieben 21. September 2005 Nee, ein Limit kenne ich dabei nicht. Bei mir zählt er sauber immer bei jedem neuen User um eins hoch. Dein Startwert war doch auch 1000? Ist diese UID evtl. schon vergeben? Zitieren
dr.disk Geschrieben 21. September 2005 Geschrieben 21. September 2005 Die 10000 in der Konfig ist nur bei search interessant. Die wird dann als minimum genommen. Damit wird erreicht, dass keine automatisch vergebene UID kleiner 10000 sein kann. Zitieren
merenda Geschrieben 21. September 2005 Autor Geschrieben 21. September 2005 Nee, ein Limit kenne ich dabei nicht. Bei mir zählt er sauber immer bei jedem neuen User um eins hoch. Dein Startwert war doch auch 1000? Ist diese UID evtl. schon vergeben? Die 1000 ist schon vergeben ja, die hat ja der "NextFreeUnixId" Aber der müstet doch trozdem weiter Zählen ... Und wo holt er sich jetzt die 1000 her ? Die 10000 in der Konfig ist nur bei search interessant. Die wird dann als minimum genommen. Damit wird erreicht, dass keine automatisch vergebene UID kleiner 10000 sein kann. Ok ... ich dachte er würde sich die UIDs dort holen. Wo holt er sie dann ? Geht er dann vom uidNumber des NextFreeUnixId Users oder wie ? Zitieren
dr.disk Geschrieben 22. September 2005 Geschrieben 22. September 2005 Die uidNumber ist die letzte oder nächste vergebene uid (welche genau müßte ich nachsehen). Da sollte also schon eine Nummer drin stehen, die noch nicht verwendet wurde. Sobald ein neuer User angelegt wird, wird die uidNumber verwendet und im ID Pool um eins erhöht. Zitieren
merenda Geschrieben 22. September 2005 Autor Geschrieben 22. September 2005 HI, hab gestern noch rum gespielt und es mir folgendes aufgefallen, wenn ich die UID des NextFreeUnixId Users ändere, sagen wir mal auf 2000 und dann einen neuen User anlegen, dann bekommt dieser User die nächste UID 2001, das ist schön und gut, aber so bald ich noch einen User anlege, schlägt er mir wieder die UID 2001 vor An was kann das liegen ? Hast du eine IDEE ? Gruß Merenda Zitieren
merenda Geschrieben 22. September 2005 Autor Geschrieben 22. September 2005 [NACHTRAG] Mir ist gerade noch was aufgefallen, in der /var/log/messages kommt immer folgende Meldung, wenn ich einen neuen User anlegen möchte:Sep 22 13:01:20 g8sxz001 slapd[10766]: do_search: invalid dn (Array) Ich hab mal etwas im netzt gesucht aber nichts brauchbare gefunden Merenda Zitieren
dr.disk Geschrieben 23. September 2005 Geschrieben 23. September 2005 Könnte evtl. ein Zugriffsproblem sein. Was Du machen kannst ist den Loglevel von slapd hochdrehen. Dann solltest Du sehen was daneben geht. Zitieren
merenda Geschrieben 23. September 2005 Autor Geschrieben 23. September 2005 Hi, ja du hast recht gehabt ! Ich musste noch einen berechtigten User eintragen. Also mit Search funktioniert das jetzt, aber nicht mit uidpool ? Meine config sieht folgendermasen aus:[...] $servers[$i]['enable_auto_uid_numbers'] = true; $servers[$i]['auto_uid_number_mechanism'] = 'search'; $servers[$i]['auto_uid_number_search_base'] = 'o=firma,c=de'; $servers[$i]['auto_uid_number_min'] = 2000; $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=NextFreeUnixId,o=firma,c=de'; $servers[$i]['auto_uid_number_search_dn'] = 'cn=admin,o=firma,c=de'; $servers[$i]['auto_uid_number_search_dn_pass'] = 'test'; [...] Das sagen die logs: ### Mit uidpoolSep 23 10:59:46 g8sxz001 slapd[6191]: daemon: conn=0 fd=12 connection from IP=10.206.176.97:22962 (IP=0.0.0.0:389) accepted. Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=0 op=0 BIND dn="cn=admin,o=firma,c=de" method=128 Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=0 op=0 RESULT tag=97 err=0 text= Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=0 op=1 SRCH base="cn=NextFreeUnixId,o=firma,c=de" scope=0 filter="(objectClass=*)" Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=0 op=1 ENTRY dn="cn=NextFreeUnixId,o=firma,c=de" Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=0 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=0 op=2 UNBIND Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=0 fd=12 closed Sep 23 10:59:46 g8sxz001 slapd[6191]: daemon: conn=1 fd=12 connection from IP=10.206.176.97:22963 (IP=0.0.0.0:389) accepted. Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=1 op=0 BIND dn="cn=admin,o=firma,c=de" method=128 Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=1 op=0 RESULT tag=97 err=0 text= Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=1 op=1 SRCH base="cn=NextFreeUnixId,o=firma,c=de" scope=0 filter="(objectClass=*)" Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=1 op=1 ENTRY dn="cn=NextFreeUnixId,o=firma,c=de" Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=1 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=1 op=2 UNBIND Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=1 fd=12 closed Sep 23 10:59:46 g8sxz001 slapd[6191]: daemon: conn=2 fd=12 connection from IP=10.206.176.97:22964 (IP=0.0.0.0:389) accepted. Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=2 op=0 BIND dn="cn=admin,o=firma,c=de" method=128 Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=2 op=0 RESULT tag=97 err=0 text= Sep 23 10:59:46 g8sxz001 slapd[6192]: do_search: invalid dn (Array) Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=2 op=1 RESULT tag=101 err=34 text=invalid DN Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=2 op=2 UNBIND Sep 23 10:59:46 g8sxz001 slapd[6192]: conn=2 fd=12 closed Sep 23 11:00:01 g8sxz001 /USR/SBIN/CRON[6201]: (root) CMD ( /usr/lib/sa/sa1 ) ### Mit searchSep 23 11:02:52 g8sxz001 slapd[6191]: daemon: conn=13 fd=13 connection from IP=10.206.176.97:22980 (IP=0.0.0.0:389) accepted. Sep 23 11:02:52 g8sxz001 slapd[6193]: conn=13 op=0 BIND dn="cn=admin,o=firma,c=de" method=128 Sep 23 11:02:52 g8sxz001 slapd[6193]: conn=13 op=0 RESULT tag=97 err=0 text= Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 SRCH base="o=firma,c=de" scope=2 filter="(uidNumber=*)" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="cn=NextFreeUnixId,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=mars_ldap,ou=mars,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=mars_ldap2,ou=mars,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=a,ou=UID-USER,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=b,ou=UID-USER,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=cc,ou=UID-USER,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=mars_ldap3,ou=mars,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=d,ou=UID-USER,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=aasdf,ou=UID-USER,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 ENTRY dn="uid=gg,ou=UID-USER,ou=Test-Systeme,o=firma,c=de" Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=13 op=1 SEARCH RESULT tag=101 err=0 nentries=10 text= Sep 23 11:02:52 g8sxz001 slapd[6193]: conn=13 op=2 UNBIND Sep 23 11:02:52 g8sxz001 slapd[6193]: conn=13 fd=13 closed Sep 23 11:02:52 g8sxz001 slapd[6191]: daemon: conn=14 fd=13 connection from IP=10.206.176.97:22981 (IP=0.0.0.0:389) accepted. Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=14 op=0 BIND dn="cn=admin,o=firma,c=de" method=128 Sep 23 11:02:52 g8sxz001 slapd[6192]: conn=14 op=0 RESULT tag=97 err=0 text= Sep 23 11:02:52 g8sxz001 slapd[6193]: do_search: invalid dn (Array) Sep 23 11:02:52 g8sxz001 slapd[6193]: conn=14 op=1 RESULT tag=101 err=34 text=invalid DN Sep 23 11:02:52 g8sxz001 slapd[6193]: conn=14 op=2 UNBIND Sep 23 11:02:52 g8sxz001 slapd[6193]: conn=14 fd=13 closed Also ich dachte mir jetzt so naiv wie ich bin, ich tausche einfach search mit uidpool aus und gut ist aber anscheindn nicht. Aus den logs werde ich auch nicht schlau Wie machst du das ? mit search oder mit uidpool ? Gruß Merenda Zitieren
dr.disk Geschrieben 23. September 2005 Geschrieben 23. September 2005 Bei uidpool passiert hier ein Fehler: Sep 23 10:59:46 g8sxz001 slapd[6192]: do_search: invalid dn (Array) Interessant wäre hier jetzt zu wissen was er da genau sucht. Steht leider nicht im Protokoll. Kannst Du evtl. die Protokollierung noch ausführlicher machen oder halt mal ein Packetsniffer die Verbindung aufzeichnen lassen? Zitieren
merenda Geschrieben 23. September 2005 Autor Geschrieben 23. September 2005 Bei uidpool passiert hier ein Fehler: Sep 23 10:59:46 g8sxz001 slapd[6192]: do_search: invalid dn (Array) Interessant wäre hier jetzt zu wissen was er da genau sucht. Steht leider nicht im Protokoll. Kannst Du evtl. die Protokollierung noch ausführlicher machen oder halt mal ein Packetsniffer die Verbindung aufzeichnen lassen? Häm was sollte ich am besten für ein LOG Level einstellen ? Bzw. das mit dem Packetsniffer ist auch interessant, aber ich kenn mich mit den Dinger überhaupt nicht aus. Kannst du mir einen empfehlen ? Danke & Gruß Merenda Zitieren
dr.disk Geschrieben 26. September 2005 Geschrieben 26. September 2005 Den Loglevel sollte man mindestens auf den Wert stellen, dass alle Fragen und Antworten protokolliert werden. Müsste ebenfalls die Manpage ziehen welcher Wert das genau ist. Ich selbst benutze dann in der Regel einen Paketsniffer. Geht, meinem Gechmack nach, einfacher und ist schneller. Z.B. tcpdump. Der Aufruf könnte auf dem LDAP-Server so aussehen: tcpdump -nps0 -iany -w ldap.pcap tcp port ldap Die Datei ldap.pcap die so entsteht könnte man dann auswerten welche Frage gestellt wurde und wie der LDAP Server darauf reagiert hat. Zitieren
merenda Geschrieben 26. September 2005 Autor Geschrieben 26. September 2005 Hi, ich hab das mal versucht aber irgenwie finde ich da nichts Hab gerade gelesen dass es mit uidpool gar nicht gehen soll ? Stimmt das oder ist das nur ein gerücht ? Zitieren
dr.disk Geschrieben 26. September 2005 Geschrieben 26. September 2005 Komisch, bei mir funktioniert das mit dem uidpool aber. Nee, Spaß beiseite. Bei mir geht's. Lege zwar nicht regelmäßig User an, soll aber so dann und wann vorkommen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.