Univention Bugzilla – Bug 26120
LDAP Struktur bleibt nicht erhalten
Last modified: 2012-03-04 14:34:03 CET
Bei der Migration von Samba 3 nach Samba 4 bleibt die Struktur nicht erhalten. Wenn ein Benutzer vorher unter cn=users,ou=verwaltung liegt, so ist der Benutzer im S4 nach dem Update unter cn=users. Es sollte ein Tool hinzugefügt werden, welches die Benutzer, Gruppen und Rechner nach der Migration verschiebt. Das Tool sollte einen --dry-run Modus haben. Das Tool kann erst aufgerufen werden, wenn der Connector die Struktur synchronisiert hat. Zusätzlich sollte das Wiki aktualisiert werden.
Created attachment 4177 [details] univention-samba4-ldap-position-sync.py Das angehängte Skript scheint die geforderte Funktionalität zu liefern, weitere Tests stehen noch aus.
Das Tool wird jetzt durch das Paket univention-s4-connector nach /usr/sbin/univention-s4-position-sync installiert. Falls nicht --dry-run angegeben ist fragt es interaktiv nach, ob es wirklich Änderungen am Samba4-Verzeichnis vornehmen soll. Per Option "-y" lässt sich die interaktive Nachfrage deaktivieren.
Das Script schlägt fehl sobald ldap/base nicht gleich samba4/ldap/base ist. Zum Beispiel wird versucht das Samba objekt cn=mycomputer,cn=computers,dc=first,dc=second in folgendes zu ändern cn=mycomputer,cn=Computers,o=something,c=de
Das ist jetzt angepasst. Anscheinend muss da aber noch was im S4-Connector angepasst werden: Nach dem Verschieben der Objekte versucht der Connector im UCS entsprechende Objekte anzulegen.
Created attachment 4193 [details] connector-s4.log Der S4 Connector versucht hier das Objekt im UCS-LDAP von cn= auf uid= umzubenennen: 02.11.2011 19:31:19,435 LDAP (INFO ): move_in_ucs: move object from cn=member33,ou=foo1,dc=s3upi2,dc=qa to uid=member33$,ou=foo1,dc=s3upi2,dc=qa
Mit der aktualisierten Version des univention-s4-connector treten keine Rejects mehr nach dem Durchlauf des Scripts auf.
Das Tool sollte nicht im Standard Pfad liegen. Es wird ja nur einmalig bei der Migration verwendet.
Das Tool wird jetzt nach /usr/share/univention-s4-connector/ installiert
Meine Tests für Benutzer, Gruppen und Rechner waren erfolgreich. Nach dem Connector Restart konnten die Objekte auch wieder modifiziert werden und die Änderungen wurden synchronisiert.
in meiner Umgebung wird das Skript nicht executable installiert: # ls -la /usr/share/univention-s4-connector/univention-s4-position-sync -rw-r--r-- 1 root root 8512 15. Feb 15:22 /usr/share/univention-s4-connector/univention-s4-position-sync
(In reply to comment #10) > in meiner Umgebung wird das Skript nicht executable installiert: > > # ls -la /usr/share/univention-s4-connector/univention-s4-position-sync > -rw-r--r-- 1 root root 8512 15. Feb 15:22 > /usr/share/univention-s4-connector/univention-s4-position-sync Das hatte Arvid heute behoben. Verwendest du die letzte Version?
(In reply to comment #11) > (In reply to comment #10) > > in meiner Umgebung wird das Skript nicht executable installiert: > > > > # ls -la /usr/share/univention-s4-connector/univention-s4-position-sync > > -rw-r--r-- 1 root root 8512 15. Feb 15:22 > > /usr/share/univention-s4-connector/univention-s4-position-sync > > Das hatte Arvid heute behoben. Verwendest du die letzte Version? nein, stimmt. mein cherrypick-build: 6.0.110-1.135.201202231048 Arvids letzter build: 6.0.110-2.136.201202231214
Wieder verified.
UCS 3.0-1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"