View | Details | Raw Unified | Return to bug 32863
Collapse All | Expand All

(-)sdb.txt (-27 / +26 lines)
 Lines 12-41    Link Here 
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
 Lines 43-59    Link Here 
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
 Lines 68-84    Link Here 
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
 Lines 86-118    Link Here 
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

Return to bug 32863