--- sdb.txt 2015-02-02 19:24:26.541226493 +0100 +++ sdb.txt.qa 2015-02-02 19:19:51.296102885 +0100 @@ -12,30 +12,29 @@ /etc/init.d/univention-s4-connector restart vorhanderer Gruppen -Auf Systemen die vor UCS 3.2 installiert wurden, sind die Gruppentypen u.U. in UCS und Samba 4 nicht synchron, zusätzlich sind eventuell einige AD BUILTIN Gruppen und UCS nicht vorhanden, Die folgenden Schritte sind notwendig, um diese Unterschiede zu finden und zu beheben. All diese Schritte müssen auf dem UCS, auf dem der Connector installiert ist, ausgeführt werden. Die UCS Version des Systems muss mindestens 3.2-3 sein. +Auf Systemen die vor UCS 3.2 installiert wurden, sind die Gruppentypen u.U. in OpenLDAP und dem Samba/AD Verzeichnisdienst nicht synchron. Zusätzlich sind eventuell einige AD BUILTIN Gruppen in UDM/OpenLDAP nicht vorhanden. Die folgenden Schritte sind notwendig, um diese Unterschiede zu finden und zu beheben. All diese Schritte müssen auf dem UCS Server, auf dem der Connector installiert ist, ausgeführt werden. Die UCS Version des Systems muss mindestens 3.2-3 sein. 1. Synchronisation der AD BUILTIN Gruppen -Zunächst müssen die zwei Gruppen "Replicators" und "System Operators" in UCS gelöscht werden. Dann kann mit folgendem Bash-Script geprüft werden, ob alle AD BUILTIN Gruppen in UCS vorhanden sind. +Zunächst sollten die zwei Gruppen "Replicators" und "System Operators" in UDM/OpenLDAP gelöscht werden. Dann kann mit folgendem Bash-Script geprüft werden, ob alle AD BUILTIN Gruppen in UDM/OpenLDAP vorhanden sind. #!/bin/bash # check if ad builtin groups exist in ucs eval "$(ucr shell)" . /usr/share/univention-lib/base.sh -base="CN=Builtin,$connector_s4_ldap_base" declare -a dns -while read line; do - dn=${line#dn: } +while read dn; do cn=$(echo "$dn" | awk -F , '{print $1}' | awk -F = '{print $2}') ucscn=$(custom_groupname "$cn") - ucsdn=$(univention-ldapsearch cn="$ucscn" dn | sed -n 's/^dn: \(.*\)/\1/p') + ucsdn=$(univention-ldapsearch cn="$ucscn" dn | sed -n 's/^dn: //p') if [ -z "$ucsdn" ]; then # check if mapping/group/table echo "missing Builtin group in ucs: $cn" - dns=("${dns[@]}" "$dn") + dns+=("$dn") fi -done < <(univention-s4search -b "$base" --cross-ncs '(objectClass=group)' dn | ldapsearch-wrapper | grep '^dn: ') +done < <(univention-s4search '(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=1))' dn \ + | ldapsearch-wrapper | sed -n 's/^dn: //p') if [ -n "$dns" ]; then echo "please run:" for dn in "${dns[@]}"; do @@ -43,17 +42,17 @@ done fi -Alle in UCS nicht vorhanden BUILTIN Gruppen werden nun ausgegeben. Zusätzlich wird ein Kommando angezeigt, um das entsprechende Objekt erneut von Samba4 nach UCS zu synchronisieren (also um das Objekt in UCS anzulegen), zum Beispiel: +Alle in UDM/OpenLDAP nicht vorhanden BUILTIN Gruppen werden nun ausgegeben. Zusätzlich wird ein Kommando angezeigt, um das entsprechende Objekt erneut aus dem Samba/AD Verzeichnisdienst nach UDM/OpenLDAP zu synchronisieren (also um das Objekt in OpenLDAP anzulegen), zum Beispiel: missing Builtin group in ucs: IIS_IUSRS please run: /usr/share/univention-s4-connector/resync_object_from_s4.py "CN=IIS_IUSRS,CN=Builtin,DC=aaa,DC=bbb" -Durch den Aufruf von "/usr/share/univention-s4-connector/resync_object_from_s4.py" mit der DN des Samba4 Objekt wird das Objekt dann synchronisiert. +Durch den Aufruf von "/usr/share/univention-s4-connector/resync_object_from_s4.py" mit der DN des Samba Objekts wird das Objekt dann synchronisiert. -2. Synchronisation des Gruppentyp +2. Synchronisation des Gruppentyps -Mit dem folgenden Bash-Script kann geprüft werden, ob Gruppentypen in Samba und UCS unterschiedlich sind. +Mit dem folgenden Bash-Script kann geprüft werden, ob Gruppentypen in Samba und OpenLDAP unterschiedlich sind. #!/bin/bash @@ -68,17 +67,17 @@ if [ -n "$dn" -a -n "$type" ]; then cn=$(echo "$dn" | awk -F , '{print $1}' | awk -F = '{print $2}') ucscn=$(custom_groupname "$cn") - otype=$(univention-ldapsearch cn="$ucscn" univentionGroupType | sed -n 's/^univentionGroupType: \(.*\)/\1/p') + otype=$(univention-ldapsearch cn="$ucscn" univentionGroupType | sed -n 's/^univentionGroupType: //p') if [ -z "$otype" -o "$otype" != "$type" ]; then echo "mismatch group type: $cn (s4:$type ucs:$otype)" - test -z "$otype" && missing=("${missing[@]}" "$dn") || mismatch=("${mismatch[@]}" "$dn") + test -z "$otype" && missing+=("$dn") || mismatch+=("$dn") fi fi -done < <(univention-s4search '(objectClass=group)' dn groupType | ldapsearch-wrapper | grep '^groupType: \|^dn: ') +done < <(univention-s4search '(objectCategory=group)' dn groupType | ldapsearch-wrapper | grep '^groupType: \|^dn: ') -# resync if type is missing in UCS +# resync if type is missing in OpenLDAP if [ -n "$missing" ]; then - echo "UCS Grouptype missing, sync AD objects (group type) to UCS with:" + echo "OpenLDAP Grouptype missing, sync AD objects (group type) to OpenLDAP with:" for dn in "${missing[@]}"; do echo "/usr/share/univention-s4-connector/resync_object_from_s4.py \"$dn\"" done @@ -86,33 +85,33 @@ # manually sync if type mismatch if [ -n "$mismatch" ]; then - echo "UCS and AD type mismatch, please manually sync group type for the following objects" + echo "OpenLDAP and AD type mismatch, please manually sync group type for the following objects" for dn in "${mismatch[@]}"; do - echo "$dn" + echo $dn done fi -2.1 Gruppentyp in UCS nicht gesetzt +2.1 Gruppentyp in UDM/OpenLDAP nicht gesetzt -Für alle Gruppen, für die in UCS kein Gruppentyp gesetzt ist, wird die folgende Meldung ausgegeben. +Für alle Gruppen, für die in UDM/OpenLDAP kein Gruppentyp gesetzt ist, wird die folgende Meldung ausgegeben. mismatch group type: DC Slave Hosts (s4:-2147483646 ucs:) mismatch group type: DnsUpdateProxy (s4:-2147483646 ucs:) ... -UCS Grouptype missing, sync AD objects (group type) to UCS with: +OpenLDAP Grouptype missing, sync AD objects (group type) to OpenLDAP with: /usr/share/univention-s4-connector/resync_object_from_s4.py "CN=DC Slave Hosts,CN=Groups,DC=aaa,DC=bbb" /usr/share/univention-s4-connector/resync_object_from_s4.py "CN=DnsUpdateProxy,CN=Groups,DC=aaa,DC=bbb" -Die Objekte können nun nochmals von Samba4 nach UCS synchronisiert werden um den Typ der Gruppe nach UCS zu übernehmen. Dafür muss das Kommando "/usr/share/univention-s4-connector/resync_object_from_s4.py" mit der entsprechenden DN ausgerufen werden. +Die Objekte können nun nochmals aus dem Samba/AD Verzeichnisdienst nach OpenLDAP synchronisiert werden um den Typ der Gruppe nach OpenLDAP zu übernehmen. Dafür muss das Kommando "/usr/share/univention-s4-connector/resync_object_from_s4.py" mit der entsprechenden DN ausgerufen werden. -2.2 Gruppentyp in UCS und Samba4 unterschiedlichen +2.2 Gruppentyp in OpenLDAP und Samba/AD Verzechnisdienst unterschiedlichen -Für alle Gruppen, bei denen der Typ in Samba4 und UCS gesetzt aber unterschiedlich ist, wird die folgende Meldung ausgegeben. +Für alle Gruppen, bei denen der Typ im Samba/AD Verzechnisdienst und OpenLDAP gesetzt aber unterschiedlich ist, wird die folgende Meldung ausgegeben. mismatch group type: group1 (s4:-2147483640 ucs:-2147483646) -mismatch group type: group2 (s4:8 ucs:-2147483646) +mismatch group type: group2 (s4:-2147483643 ucs:-2147483646) ... -UCS and AD type mismatch, please manually sync group type for the following objects +OpenLDAP and AD type mismatch, please manually sync group type for the following objects CN=group1,CN=Users,DC=aaa,DC=bbb CN=group2,CN=Users,DC=aaa,DC=bbb