Univention Bugzilla – Bug 12644
Benutzer und Rechner mit dem gleichen Namen als Gruppenmitglied
Last modified: 2023-03-25 06:45:27 CET
Wenn ein Benutzer und ein Rechner mit dem gleichen Namen angelegt werden (uid=sharp und cn=sharp) dann gibt es im UDM Schwierigkeiten, wenn diese in die gleiche Gruppe eingetragen werden, da dann versucht wird in das Attribut memberUid zweimal den gleichen Wert einzutragen. Es sollte noch einmal geprüft werden, ob dies tatsächlich über den UDM realisierbar ist (wurde im Forum berichtet)
In der Theorie darf das nicht sein, der Rechner hätte dann uid=sharp$ und müsste auch mit dieser uid als "memberuid" in der Gruppe erscheinen. UIDs werden auch sonst vom UDM übergreifend auf Eindeutigkeit geprüft.
Ich stufe das mal als Bug ein, ggf. wird nicht die uid des Rechners gespeichert, sondern der cn. Janek, bitte prüfen und ggf. einen Patch anhängen.
Man kann Benutzer und Computer der Gruppe beim Erstellen zuweisen, jedoch nicht nachdem die Gruppe schon erstellt wurde. ("LDAP-Fehler Type or value exists")
Wenn du der Gruppe einen Rechner zuweist, steht dann im Feld memberUID "rechner" oder "rechner$"?
Created attachment 1418 [details] LDAP Auszug Es wurde 1 Benutzer Benutzername: doppel Nachname: dopellteer Passwort: univention und ein Managed Client Rechnername: doppel angelegt. Dann wurde eine Gruppe "sammler1" mit dem Benutzer und dem Rechner als Mitglieder angelegt. ==> Funktioniert Danach wurden zwei Gruppen "sammler[23]" angelegt, und entweder der Benutzer ("sammler3") oder der Rechner ("sammler2") hinzugefügt. Bei diesen beiden Gruppen war es danach nicht möglich den jeweils anderen Benutzer/Rechner hinzuzufügen. In allen drei Gruppen ist memberUid: doppel Bei dem Rechner ist uid: doppel$
Created attachment 1419 [details] Patch zum Beheben des Problems Das Problem war, das der UDM als Wert für die "memberUid" einfach den Teil zwischen '=' und ',' in der DN der Mitglieder verwendet hat, also für Computer den "cn" anstatt der eigentlichen "uid". Dieser Patch behebt das Problem, indem die uid des Objektes ausgelesen wird, wenn sie nicht schon in der DN steht.
Der Patch behebt das ursprüngliche Problem. Allerdings offenbart der Patch ein weiteres Problem. Eine Gruppe kann eine andere Gruppe als Mitglied haben. In dem Patch wird dann versucht von der Gruppe das Attribut uid zu lesen, das gibt es nicht und die Gruppe wird nicht als memberUid gespeichert. Ein Benutzer kann so heissen wie eine Gruppe: dn: uid=benutzer1,cn=users,... #Benutzer mit dem Namen benutzer1 dn: cn=benutzer1,cn=groups,... #Gruppe mit dem Namen benutzer1 dn: cn=gruppe1,cn=groups,.... uniqueMember: cn=benutzer1,cn=groups,... memberUid: benutzer1 Damit wäre der Benutzer benutzer1 Mitglied in der Gruppe gruppe1 obwohl das nicht gewollt war. Da für den Gruppen in Gruppen-Mechanismus uniqueMember ausreicht, wird eine Gruppe nicht noch als memberUid gespeichert.
+\item Im memberUid"=Attribut einer Gruppe werden nur noch Benutzer und Rechner +mit ihrer echten \ucsName{uid} gespeichert (Bug 12644). +
1) Gruppen == Benutzername klappt dn: uid=test,cn=users,dc=univention,dc=qa dn: cn=test,cn=groups,dc=univention,dc=qa dn: cn=more,cn=groups,dc=univention,dc=qa Gruppe test ist Mitglied von "more" dn: cn=more,cn=groups,dc=univention,dc=qa sambaGroupType: 2 cn: more objectClass: top objectClass: posixGroup objectClass: univentionGroup objectClass: sambaGroupMapping gidNumber: 5025 sambaSID: S-1-5-21-2722036353-2009055846-386090948-11051 uniqueMember: cn=test,cn=groups,dc=univention,dc=qa 2) Rechnern ohne uid es wird nur uniqueMember in den Gruppen gesetzt dn: cn=gfgf,cn=computers,dc=univention,dc=qa ist Mitglied von dn: cn=Domain Users,cn=groups,dc=univention,dc=qa dn: cn=Domain Users,cn=groups,dc=univention,dc=qa objectClass: top objectClass: posixGroup objectClass: univentionGroup objectClass: sambaGroupMapping cn: Domain Users sambaSID: S-1-5-21-2722036353-2009055846-386090948-513 sambaGroupType: 2 gidNumber: 5001 uniqueMember: uid=Administrator,cn=users,dc=univention,dc=qa uniqueMember: cn=gfgf,cn=computers,dc=univention,dc=qa memberUid: Administrator 3) Rechner mit UID die UID wird nicht in den Gruppen gespeichert, soll das so sein? Rechner dn: cn=test,cn=computers,dc=univention,dc=qa uid: test$ ist Mitglied von cn=test2,cn=groups,dc=univention,dc=qa aber als memberUid taucht er nicht auf dn: cn=test2,cn=groups,dc=univention,dc=qa sambaGroupType: 2 cn: test2 objectClass: top objectClass: posixGroup objectClass: univentionGroup objectClass: sambaGroupMapping memberUid: test gidNumber: 5021 sambaSID: S-1-5-21-2722036353-2009055846-386090948-11043 uniqueMember: uid=test,cn=users,dc=univention,dc=qa uniqueMember: cn=test,cn=computers,dc=univention,dc=qa
Rechner mit UID wird jetzt auch als memberUID-Mitglied gespeichert, sowohl wenn die Gruppenmitgliedschaft am Rechner, als auch an der Gruppe geändert wird: root@master:~# ldapsearch -x '(|(cn=test)(cn=ipmanaged))' -LLL uid dn: cn=test,cn=computers,dc=ucs,dc=local uid: test$ dn: cn=ipmanaged,cn=computers,dc=ucs,dc=local root@master:~# ldapsearch -x -LLL '(|(cn=Administrators)(cn=Account Operators))' memberUid uniqueMember dn: cn=Administrators,cn=groups,dc=ucs,dc=local memberUid: test memberUid: test$ uniqueMember: uid=test,cn=users,dc=ucs,dc=local uniqueMember: cn=test,cn=computers,dc=ucs,dc=local uniqueMember: cn=ipmanaged,cn=computers,dc=ucs,dc=local dn: cn=Account Operators,cn=groups,dc=ucs,dc=local memberUid: test memberUid: test$ uniqueMember: uid=test,cn=users,dc=ucs,dc=local uniqueMember: cn=test,cn=computers,dc=ucs,dc=local uniqueMember: cn=ipmanaged,cn=computers,dc=ucs,dc=local
klappt