• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] OpenSuseUpdater als User ausführen

A

Anonymous

Gast
Hallo zusammen,

ich habe ein kleines Problem bei der Zusammenarbeit mit dem OpenSuseUpdater:
Ich kann ihn nur mit kdesu zum Arbeiten bringen. Mit normalen User-Rechten ausgeführt gibt er ein Ausrufezeichen als Symbol aus mit der Meldung:
Code:
Error: helped program returned: setuid: Operation not permitted. forgot to chmod this program?

Die Frage ist nur, wo kann ich meinem user die Rechte geben? Opensuseupdater in der Konsole gibt nur folgendes aus:
Code:
opensuseupdater --help
Verwendung: opensuseupdater [Qt-Optionen] [KDE-Optionen]

SUSE Updater

Einfache Optionen:
  --help                    Optionen von "Hilfe zu" anzeigen
  --help-qt                 Spezielle Optionen zu Qt anzeigen
  --help-kde                Spezielle Optionen zu KDE anzeigen
  --help-all                Alle Optionen anzeigen
  --author                  Autoren-Information anzeigen
  -v, --version             Versionsinformation anzeigen
  --license                 Lizenz-Info anzeigen


  --                        Ende der Optionen
Die Untermenüs führen auch nicht wirklich weiter.
Unter Google finde ich noch gar nichts zum Updater und unter opensuse.org sieht es auch irgendwie mau aus.
Bei "rug" gab es die Möglichkeit einzelne User in er Konsole zu konfigurieren.

Habe schon "set UID" ausprobiert aber das ist mir zu riskant.
Hat jemand einen Vorschlag?

Danke für jede Hilfe,
Grüße, Aldaron

PS: Dies ist ein Crossposting. Es wurde ebenfalls noch unter
http://www.linuxforen.de/forums/showthread.php?t=227782 gepostet.
 
OP
A

Anonymous

Gast
Hallo b3ll3roph0n,

danke für deinen ausführlichen und höflich formulierten Hinweis. Ich habe meinen thread nun als crossposting kenntlich gemacht.
Ich empfhele dir ebenfalls eine Seite: Netiquette

Zitat: Die erste und grundlegende Empfehlung der Usenet-Netiquette ist: „Vergessen Sie niemals, dass auf der anderen Seite ein Mensch sitzt!“ Zitat-Ende
Und diese machen Fehler! Immer gilt: Der Ton macht die Musik.

Grüße, Aldaron

PS: Ich hoffe, wir können wieder zur sachlichen Problemlösung zurück finden.
 

Fat_Fox

Hacker
besser als einen treadc als cross posting zu kennzeichnen ist crossposting zu vermeiden

Code:
IF user$ = "multiposter" THEN

antwort$ = ""

END IF
 
Poste bitte die Ausgabe von
Code:
ls -l /usr/sbin/zypp-checkpatches-wrapper
und
Code:
rpm -V zypper
und
Code:
grep -v '^#' < /etc/sysconfig/security
Solltest Du zufällig das Berechtigungsschema "secure" (und nicht nur "easy" und "local") verwenden, dann funktioniert der opensuse-updater nicht, weil er das SUID-Bit auf /usr/sbin/zypp-checkpatches-wrapper braucht, welches im Berechtigungsschema "secure" nicht vergeben wird.

Begründung:
in secure mode the setuid root bit should be off.

in "secure" mode we do not trust the user with system administrative duties, so
an admin should use su or similar to do administrative stuff.

If you want to override this decission, adjust permissions.local or similar.
https://bugzilla.novell.com/show_bug.cgi?id=216485#c7

Abhilfe: Erstelle in der Datei /etc/permissions.local eine Zeile mit dem Inhalt
Code:
/usr/sbin/zypp-checkpatches-wrapper root:root 4755
und führ anschließend
Code:
/sbin/SuSEconfig --module permissions
aus.
 
OP
A

Anonymous

Gast
Hallo traffic,

vielen Dank! Du hattest recht. Ich habe das Berechtigungsschema über YAST auf "Sicher" gestellt.
Habe jetzt nach deiner Anweisung der Datei "zypp-checkpatches-wrapper" permanent das UID gewährt.
Meine einzige Sorge dabei ist, dass nun jeder User (also auch jemand, der unberechtigter Weise auf meinem System ist) den Updater nutzen kann.
Aber er wird wohl eh nur Updates von Suse einspielen können, da die Einbindung von zusätzlichen Installations-Quellen ja extra über YAST mit root-Rechten oder mit su erfolgen muss.

Danke für deine Hilfe :D !

PS: Werde diese Lösung auch in dem Parallel-Thread posten und beide als gelöst markieren. Ich halte crosspostings (den Begriff kannte ich bis heute nicht aber man lernt ja nie aus) weiterhin auch dann für legitim, wenn der User in zwei getrennten Foren(etwa durch die Domäne getrennt) seine Frage postet um mehr Teilnehmer um Hilfe zu bitten. Das Problem der parallelen Strukturen ist mir heute erst bewusst geworden und ich habe Abhilfe geschaffen.

Wenn man es so hält, denke ich, kann man auch mit crosspostings arbeiten.
 
zypp-checkpatches-wrapper installiert keine Patches, sondern sieht nur nach, ob es welche gibt.

Zum Installieren bräuchte trotzdem jeder das root-Passwort.
 
OP
A

Anonymous

Gast
Danke,

hatte das auch schon selber getestet und so vermutet aber noch habe ich mich nicht genug in das Hintergrundwissen zum OpenSuseUpdater eingelesen und war deshalb unsicher.

Gruß, Aldaron :D
 
Jo ;)

Der opensuse-updater funktioniert ungefähr folgendermaßen:

Das GUI ist nur ein GUI und ist von sich aus überhaupt nicht in der Lage, irgendwelche Pakete zu verwalten. Es greift dazu auf andere Programme zurück:

- /usr/sbin/zypp-checkpatches-wrapper
- /sbin/yast2 online_update

Beim Login und alle 24 Stunden ruft der opensuse-updater das Programm /usr/sbin/zypp-checkpatches-wrapper auf. Dieses schaut nach, ob es überhaupt irgendwelche Patches gibt. Das Ergebnis wird in die Datei /var/lib/zypp/cache/updates_result.xml geschrieben und sieht ungefähr so aus:
Code:
<?xml version='1.0'?>
<update-status version="0.4">
 <errors>
 </errors>
 <update-sources>
  <source url="http://ftp-1.gwdg.de/pub/linux/suse/ftp.suse.com/suse/update/10.2" alias="20061129-092444"/>
 </update-sources>
 <update-list>
 </update-list>
 <update-summary total="0" security="0"/>
</update-status>
Für diesen Schritt braucht man kein Passwort, aber /usr/sbin/zypp-checkpatches-wrapper muss setuid root sein, weil es sonst keine Dateien in /var/lib/zypp/cache anlegen könnte.

Der opensuse-updater liest dann das Ergebnis und bereitet es grafisch auf. Wenn es Patches gibt, dann werden diese angezeigt, und wenn der Benutzer sich entscheidet, sie zu installieren, dann wird /sbin/yast2 online_update ausgeführt. Dafür braucht man dann aber sehr wohl das Passwort, was auch irgendwie logisch ist. setuid root (d.h. ohne Passwort) ist nur /usr/sbin/zypp-checkpatches-wrapper, welches keine Patches installiert, sondern nur dafür zuständig ist, dass sie überhaupt angezeigt werden.
 
OP
A

Anonymous

Gast
Hallo trafic,

ich danke dir für die ausführliche Beschreibung. So kommt man nach und nach als "normaler User" wieder etwas tiefer in die Thematik rein.
Ich war, wie beschrieben, wirklich nicht sicher in wie weit ich meine System-Sicherheit hier freigebe.
Aber anhand deiner Ausführungen ist klar, dass kein Risiko besteht.

Dies ist für mich wieder ein gelungenes Beispiel von User hilft User. Manchmal gibt es nämlich die Antwort schon im Netz aber man sucht nach der falschen Sache, da einem das Hintergrundwissen fehlt.
Dann ist es gut, wenn man einmal so eine grundlegende Info bekommt.

Gruß, Aldaron
 
Oben