Univention Bugzilla – Bug 26817
Traceback wenn primäre Gruppe keine Sambagruppe
Last modified: 2012-12-12 21:10:22 CET
Aufgefallen an Ticket#: 2012041621001491 Nach dem Update von UCS 2.4-1 auf UCS 2.4-4 war das Anlegen neuer Rechner nicht möglich. Die primäre Gruppe der Rechner "Computers" war keine Sambagruppe nud auch nie eine gewesen. Der UDM hat dies mit dem folgenden Traceback quittiert: Traceback (most recent call last): File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 233, in doit output = univention.admincli.admin.doit(arglist) File "/usr/lib/python2.4/site-packages/univention/admincli/admin.py", line 740, in doit dn=object.create() File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 306, in create return self._create() File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 649, in _create raise e KeyError: 'sambaSID' Hier würde eine Fehlermeldung weiterhelfen, ggf. tritt dies nur in älteren Umgebungen auf. Zur Lösung wurde per ldapvi folgendes am Objekt hinzugefügt: objectClass: sambaGroupMapping sambaGroupType: 2 sambaSID: <Berechnete SID>
Ist generell auf 2.4-4-Systemen reproduzierbar? D.h. das Hinzufügen in Gruppen, die keine Samba-Gruppen sind schlägt generell fehl?
Wenn ich an einem Benutzer die primäre Gruppe auf eine "Nicht Samba Gruppe" setze wird das mit dieser Melung quittiert: Beim Übernehmen der Änderungen ist ein Fehler aufgetreten: 'sambaSID' Bei einer normalen Gruppenmitgliedschaft ist das kein Problem.
Ticket#: 2012073021006793 Das Tritt nicht nur bei Rechnerobjekten und auch noch mit UCS 3.0 auf. Auch bei "normalen" Benutzern bei denen als primäre Gruppe eine nicht Samba Gruppe angegeben wird kommt es zu diesem Traceback. Beobachtet habe ich das bei mehreren OXASE Installationen oxase6205-20120625-dvd-amd64.iso bei denen das Join-Script 20univention-join.inst beim initialen Join zwei Tracebacks wirft: Configure 20univention-join.inst Object created: cn=Backup Join,cn=groups,dc=univention,dc=qa Object created: cn=Slave Join,cn=groups,dc=univention,dc=qa Traceback (most recent call last): File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 233, in doit output = univention.admincli.admin.doit(arglist) File "/usr/lib/pymodules/python2.6/univention/admincli/admin.py", line 762, in doit dn=object.create() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 332, in create return self._create() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 712, in _create self.remove() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 455, in remove return self._remove(remove_childs) File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 916, in _remove self._ldap_pre_remove() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/users/user.py", line 2470, in _ldap_pre_remove self.sid=self.oldattr['sambaSID'][0] KeyError: 'sambaSID' Traceback (most recent call last): File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 233, in doit output = univention.admincli.admin.doit(arglist) File "/usr/lib/pymodules/python2.6/univention/admincli/admin.py", line 762, in doit dn=object.create() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 332, in create return self._create() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 712, in _create self.remove() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 455, in remove return self._remove(remove_childs) File "/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py", line 916, in _remove self._ldap_pre_remove() File "/usr/lib/pymodules/python2.6/univention/admin/handlers/users/user.py", line 2470, in _ldap_pre_remove self.sid=self.oldattr['sambaSID'][0] KeyError: 'sambaSID' Lt. Code werden dort die Benutzer join-backup und join-slave angelegt was auch in allen Fällen funktioniert hat. Die beiden Benutzer sind auch in allen im UDM Aufruf angegebenen Gruppen Mitglied, allerdings haben Sie kein sambaPrimaryGroupSID Attribut da die Primärgruppen ("Backup Join" und "Slave Join") ohne Samba Attribute angelegt werden.
Das Problem tritt auf wenn versucht wird einen Benutzer mit Samba-Option und Posix-Option anzulegen, dessen primäre Gruppe aber keine Sambagruppe ist, weil dann der Versuch fehlschlägt die zur Primärgruppe gehörende SID zu ermitteln (nach der gesucht wird wenn am Benutzer die Samba-Option gesetzt ist um das Attribut "sambaPrimaryGroupSID" am zu setzen). Im Traceback ist das nicht direkt zu erkennen, weil der dabei auftretende KeyError von einem generischen Abfangen aller Exceptions verschluckt wird und so einfach nur das Entfernen des just angelegten Benutzers triggert (wobei die fehlende SID dann wieder einen KeyError erzeugt). Um dieses Problem zu vermeiden wird das Anlegen von Benutzern mit Samba-Option, deren ausgewählte Primärgruppe keine Sambagruppe ist, zukünftig unterbunden. Der Versuch einen solchen Benutzer anzulegen wird jetzt mit einer Fehlermeldung und dem Abbrechen des Vorgangs quittiert. univention-directory-manager-modules (8.0.31-1) unstable; urgency=low * permit creating users with samba option if their chosen primary group does not have samba option too (Bug #26817) svn35785
Funktionalität: OK Changelog: OK Code Review: OK
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".