Bug 12644 - Benutzer und Rechner mit dem gleichen Namen als Gruppenmitglied
Benutzer und Rechner mit dem gleichen Namen als Gruppenmitglied
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UDM (Generic)
UCS 2.1
All All
: P5 normal (vote)
: UCS 2.2
Assigned To: Stefan Gohmann
Felix Botner
:
Depends on:
Blocks: 12863 13565
  Show dependency treegraph
 
Reported: 2008-11-17 09:53 CET by Andreas Büsching
Modified: 2023-03-25 06:45 CET (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
LDAP Auszug (2.32 KB, text/plain)
2008-12-08 14:17 CET, Janek Walkenhorst
Details
Patch zum Beheben des Problems (1.43 KB, patch)
2008-12-09 15:55 CET, Janek Walkenhorst
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Büsching univentionstaff 2008-11-17 09:53:11 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)
Comment 1 Ingo Steuwer univentionstaff 2008-11-17 10:36:24 CET
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.
Comment 2 Stefan Gohmann univentionstaff 2008-11-18 09:15:58 CET
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.
Comment 3 Janek Walkenhorst univentionstaff 2008-12-03 16:30:06 CET
Man kann Benutzer und Computer der Gruppe beim Erstellen zuweisen, jedoch nicht nachdem die Gruppe schon erstellt wurde.

("LDAP-Fehler Type or value exists")
Comment 4 Stefan Gohmann univentionstaff 2008-12-04 08:35:05 CET
Wenn du der Gruppe einen Rechner zuweist, steht dann im Feld memberUID "rechner" oder "rechner$"?

Comment 5 Janek Walkenhorst univentionstaff 2008-12-08 14:17:51 CET
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$
Comment 6 Janek Walkenhorst univentionstaff 2008-12-09 15:55:20 CET
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.
Comment 7 Stefan Gohmann univentionstaff 2009-01-28 20:30:08 CET
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.
Comment 8 Stefan Gohmann univentionstaff 2009-01-28 20:41:07 CET
+\item Im memberUid"=Attribut einer Gruppe werden nur noch Benutzer und Rechner
+mit ihrer echten \ucsName{uid} gespeichert (Bug 12644).
+
Comment 9 Felix Botner univentionstaff 2009-02-25 16:33:48 CET
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




Comment 10 Stefan Gohmann univentionstaff 2009-02-27 08:46:38 CET
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
Comment 11 Felix Botner univentionstaff 2009-03-09 17:27:57 CET
klappt