Bug 26817 - Traceback wenn primäre Gruppe keine Sambagruppe
Traceback wenn primäre Gruppe keine Sambagruppe
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UDM (Generic)
UCS 3.0
Other Linux
: P3 normal (vote)
: UCS 3.1
Assigned To: Lukas Walter
Stefan Gohmann
: interim-2
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-17 16:09 CEST by Tobias Scherer
Modified: 2012-12-12 21:10 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

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Scherer univentionstaff 2012-04-17 16:09:41 CEST
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>
Comment 1 Alexander Kläser univentionstaff 2012-04-18 09:59:09 CEST
Ist generell auf 2.4-4-Systemen reproduzierbar? D.h. das Hinzufügen in Gruppen, die keine Samba-Gruppen sind schlägt generell fehl?
Comment 2 Tobias Scherer univentionstaff 2012-04-18 10:18:26 CEST
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.
Comment 3 Janis Meybohm univentionstaff 2012-08-01 16:15:21 CEST
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.
Comment 4 Lukas Walter univentionstaff 2012-09-21 14:15:58 CEST
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
Comment 5 Stefan Gohmann univentionstaff 2012-10-19 08:19:36 CEST
Funktionalität: OK

Changelog: OK

Code Review: OK
Comment 6 Stefan Gohmann univentionstaff 2012-12-12 21:10:22 CET
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".