|
12 |
/etc/init.d/univention-s4-connector restart |
12 |
/etc/init.d/univention-s4-connector restart |
13 |
vorhanderer Gruppen |
13 |
vorhanderer Gruppen |
14 |
|
14 |
|
15 |
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. |
15 |
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. |
16 |
|
16 |
|
17 |
1. Synchronisation der AD BUILTIN Gruppen |
17 |
1. Synchronisation der AD BUILTIN Gruppen |
18 |
|
18 |
|
19 |
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. |
19 |
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. |
20 |
|
20 |
|
21 |
#!/bin/bash |
21 |
#!/bin/bash |
22 |
|
22 |
|
23 |
# check if ad builtin groups exist in ucs |
23 |
# check if ad builtin groups exist in ucs |
24 |
eval "$(ucr shell)" |
24 |
eval "$(ucr shell)" |
25 |
. /usr/share/univention-lib/base.sh |
25 |
. /usr/share/univention-lib/base.sh |
26 |
base="CN=Builtin,$connector_s4_ldap_base" |
|
|
27 |
declare -a dns |
26 |
declare -a dns |
28 |
while read line; do |
27 |
while read dn; do |
29 |
dn=${line#dn: } |
|
|
30 |
cn=$(echo "$dn" | awk -F , '{print $1}' | awk -F = '{print $2}') |
28 |
cn=$(echo "$dn" | awk -F , '{print $1}' | awk -F = '{print $2}') |
31 |
ucscn=$(custom_groupname "$cn") |
29 |
ucscn=$(custom_groupname "$cn") |
32 |
ucsdn=$(univention-ldapsearch cn="$ucscn" dn | sed -n 's/^dn: \(.*\)/\1/p') |
30 |
ucsdn=$(univention-ldapsearch cn="$ucscn" dn | sed -n 's/^dn: //p') |
33 |
if [ -z "$ucsdn" ]; then |
31 |
if [ -z "$ucsdn" ]; then |
34 |
# check if mapping/group/table |
32 |
# check if mapping/group/table |
35 |
echo "missing Builtin group in ucs: $cn" |
33 |
echo "missing Builtin group in ucs: $cn" |
36 |
dns=("${dns[@]}" "$dn") |
34 |
dns+=("$dn") |
37 |
fi |
35 |
fi |
38 |
done < <(univention-s4search -b "$base" --cross-ncs '(objectClass=group)' dn | ldapsearch-wrapper | grep '^dn: ') |
36 |
done < <(univention-s4search '(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=1))' dn \ |
|
|
37 |
| ldapsearch-wrapper | sed -n 's/^dn: //p') |
39 |
if [ -n "$dns" ]; then |
38 |
if [ -n "$dns" ]; then |
40 |
echo "please run:" |
39 |
echo "please run:" |
41 |
for dn in "${dns[@]}"; do |
40 |
for dn in "${dns[@]}"; do |
|
43 |
done |
42 |
done |
44 |
fi |
43 |
fi |
45 |
|
44 |
|
46 |
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: |
45 |
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: |
47 |
|
46 |
|
48 |
missing Builtin group in ucs: IIS_IUSRS |
47 |
missing Builtin group in ucs: IIS_IUSRS |
49 |
please run: |
48 |
please run: |
50 |
/usr/share/univention-s4-connector/resync_object_from_s4.py "CN=IIS_IUSRS,CN=Builtin,DC=aaa,DC=bbb" |
49 |
/usr/share/univention-s4-connector/resync_object_from_s4.py "CN=IIS_IUSRS,CN=Builtin,DC=aaa,DC=bbb" |
51 |
|
50 |
|
52 |
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. |
51 |
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. |
53 |
|
52 |
|
54 |
2. Synchronisation des Gruppentyp |
53 |
2. Synchronisation des Gruppentyps |
55 |
|
54 |
|
56 |
Mit dem folgenden Bash-Script kann geprüft werden, ob Gruppentypen in Samba und UCS unterschiedlich sind. |
55 |
Mit dem folgenden Bash-Script kann geprüft werden, ob Gruppentypen in Samba und OpenLDAP unterschiedlich sind. |
57 |
|
56 |
|
58 |
#!/bin/bash |
57 |
#!/bin/bash |
59 |
|
58 |
|
|
68 |
if [ -n "$dn" -a -n "$type" ]; then |
67 |
if [ -n "$dn" -a -n "$type" ]; then |
69 |
cn=$(echo "$dn" | awk -F , '{print $1}' | awk -F = '{print $2}') |
68 |
cn=$(echo "$dn" | awk -F , '{print $1}' | awk -F = '{print $2}') |
70 |
ucscn=$(custom_groupname "$cn") |
69 |
ucscn=$(custom_groupname "$cn") |
71 |
otype=$(univention-ldapsearch cn="$ucscn" univentionGroupType | sed -n 's/^univentionGroupType: \(.*\)/\1/p') |
70 |
otype=$(univention-ldapsearch cn="$ucscn" univentionGroupType | sed -n 's/^univentionGroupType: //p') |
72 |
if [ -z "$otype" -o "$otype" != "$type" ]; then |
71 |
if [ -z "$otype" -o "$otype" != "$type" ]; then |
73 |
echo "mismatch group type: $cn (s4:$type ucs:$otype)" |
72 |
echo "mismatch group type: $cn (s4:$type ucs:$otype)" |
74 |
test -z "$otype" && missing=("${missing[@]}" "$dn") || mismatch=("${mismatch[@]}" "$dn") |
73 |
test -z "$otype" && missing+=("$dn") || mismatch+=("$dn") |
75 |
fi |
74 |
fi |
76 |
fi |
75 |
fi |
77 |
done < <(univention-s4search '(objectClass=group)' dn groupType | ldapsearch-wrapper | grep '^groupType: \|^dn: ') |
76 |
done < <(univention-s4search '(objectCategory=group)' dn groupType | ldapsearch-wrapper | grep '^groupType: \|^dn: ') |
78 |
|
77 |
|
79 |
# resync if type is missing in UCS |
78 |
# resync if type is missing in OpenLDAP |
80 |
if [ -n "$missing" ]; then |
79 |
if [ -n "$missing" ]; then |
81 |
echo "UCS Grouptype missing, sync AD objects (group type) to UCS with:" |
80 |
echo "OpenLDAP Grouptype missing, sync AD objects (group type) to OpenLDAP with:" |
82 |
for dn in "${missing[@]}"; do |
81 |
for dn in "${missing[@]}"; do |
83 |
echo "/usr/share/univention-s4-connector/resync_object_from_s4.py \"$dn\"" |
82 |
echo "/usr/share/univention-s4-connector/resync_object_from_s4.py \"$dn\"" |
84 |
done |
83 |
done |
|
86 |
|
85 |
|
87 |
# manually sync if type mismatch |
86 |
# manually sync if type mismatch |
88 |
if [ -n "$mismatch" ]; then |
87 |
if [ -n "$mismatch" ]; then |
89 |
echo "UCS and AD type mismatch, please manually sync group type for the following objects" |
88 |
echo "OpenLDAP and AD type mismatch, please manually sync group type for the following objects" |
90 |
for dn in "${mismatch[@]}"; do |
89 |
for dn in "${mismatch[@]}"; do |
91 |
echo "$dn" |
90 |
echo $dn |
92 |
done |
91 |
done |
93 |
fi |
92 |
fi |
94 |
|
93 |
|
95 |
2.1 Gruppentyp in UCS nicht gesetzt |
94 |
2.1 Gruppentyp in UDM/OpenLDAP nicht gesetzt |
96 |
|
95 |
|
97 |
Für alle Gruppen, für die in UCS kein Gruppentyp gesetzt ist, wird die folgende Meldung ausgegeben. |
96 |
Für alle Gruppen, für die in UDM/OpenLDAP kein Gruppentyp gesetzt ist, wird die folgende Meldung ausgegeben. |
98 |
|
97 |
|
99 |
mismatch group type: DC Slave Hosts (s4:-2147483646 ucs:) |
98 |
mismatch group type: DC Slave Hosts (s4:-2147483646 ucs:) |
100 |
mismatch group type: DnsUpdateProxy (s4:-2147483646 ucs:) |
99 |
mismatch group type: DnsUpdateProxy (s4:-2147483646 ucs:) |
101 |
... |
100 |
... |
102 |
UCS Grouptype missing, sync AD objects (group type) to UCS with: |
101 |
OpenLDAP Grouptype missing, sync AD objects (group type) to OpenLDAP with: |
103 |
/usr/share/univention-s4-connector/resync_object_from_s4.py "CN=DC Slave Hosts,CN=Groups,DC=aaa,DC=bbb" |
102 |
/usr/share/univention-s4-connector/resync_object_from_s4.py "CN=DC Slave Hosts,CN=Groups,DC=aaa,DC=bbb" |
104 |
/usr/share/univention-s4-connector/resync_object_from_s4.py "CN=DnsUpdateProxy,CN=Groups,DC=aaa,DC=bbb" |
103 |
/usr/share/univention-s4-connector/resync_object_from_s4.py "CN=DnsUpdateProxy,CN=Groups,DC=aaa,DC=bbb" |
105 |
|
104 |
|
106 |
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. |
105 |
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. |
107 |
|
106 |
|
108 |
2.2 Gruppentyp in UCS und Samba4 unterschiedlichen |
107 |
2.2 Gruppentyp in OpenLDAP und Samba/AD Verzechnisdienst unterschiedlichen |
109 |
|
108 |
|
110 |
Für alle Gruppen, bei denen der Typ in Samba4 und UCS gesetzt aber unterschiedlich ist, wird die folgende Meldung ausgegeben. |
109 |
Für alle Gruppen, bei denen der Typ im Samba/AD Verzechnisdienst und OpenLDAP gesetzt aber unterschiedlich ist, wird die folgende Meldung ausgegeben. |
111 |
|
110 |
|
112 |
mismatch group type: group1 (s4:-2147483640 ucs:-2147483646) |
111 |
mismatch group type: group1 (s4:-2147483640 ucs:-2147483646) |
113 |
mismatch group type: group2 (s4:8 ucs:-2147483646) |
112 |
mismatch group type: group2 (s4:-2147483643 ucs:-2147483646) |
114 |
... |
113 |
... |
115 |
UCS and AD type mismatch, please manually sync group type for the following objects |
114 |
OpenLDAP and AD type mismatch, please manually sync group type for the following objects |
116 |
CN=group1,CN=Users,DC=aaa,DC=bbb |
115 |
CN=group1,CN=Users,DC=aaa,DC=bbb |
117 |
CN=group2,CN=Users,DC=aaa,DC=bbb |
116 |
CN=group2,CN=Users,DC=aaa,DC=bbb |
118 |
|
117 |
|