• 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] Unterschiedliche smart-gui unter root und user

Lurchi

Hacker
Hallo und frohes Neues!

Wie aus dem Titel des Threads schon unschwer zu erkennen ist, habe ich unter smart unterschiedliche gui's, was deren Aussehen betrifft.
Unter root ist alles O.K., aber unter dem User, sieht es so aus, als ob ein Link/Pfad? falsch gesetz wurde, der die GUI wie unter dem root "Normal" erscheinen lässt.
Ich finde es nicht schlimm und kann damit leben, aber es wäre schön, wenn mir jemand dieses Phänomen mal erklären könnte.
Meine smart-Version ist 0.50 rc1. :wink:
 

Grothesk

Ultimate Guru
Wie rufst du smart aus der Usersitzung auf?
Es macht einen Unterschied, ob du 'su -' oder nur 'su' nimmst, wenn du root wirst. Bei su - wird der $PATH von root mit aufgerufen, bei su nicht.
 
OP
Lurchi

Lurchi

Hacker
Hallo Grothesk!

Danke für Dein Tipp. Würde ich über die Konsole gehen, und su und danach smart --gui eingeben, hätte ich das Tagesziel von Heute erreicht.
Aber da ich smart über eine Verknüpfung meines Desktops öffne,
kann ich den Tipp so ohne weiteres nicht 1:1 umsetzen.
Habe schon versucht, kdesu oder su vor den smart-Befehl zu setzen. Es öffnet sich nichts. :?
 
Das ist wieder der berühmte Unterschied zwischen drei Dingen:

su
su -c
sudo

Wenn Du "smart --gui" über die Desktop-Verknüpfung (d.h. eigentlich kdesu) startest, dann wird weder "su" noch "su -c" benutzt, sondern etwas ganz anderes, nämlich "sudo".

"sudo" setzt alle Umgebungsvariablen zurück. Dazu gehört auch GTK_PATH, was benutzt wird, um die gtk2-Themes zu finden. Dann werden natürlich auch keine Themes gefunden und es wird das unspektakuläre Standard-Theme benutzt.

Du könntest in /etc/sudoers einstellen, dass GTK_PATH nicht zurückgesetzt werden soll. Ich würde das allerdings nicht machen, weil es garantiert nicht sicher ist, da über diese Umgebungsvariable auch ausführbarer Code geladen wird.
 
OP
Lurchi

Lurchi

Hacker
@ traffic:
Wie gebe ich dann diesen Zustand in /etc/sudo an? Wie ändere ich ihn? Pfad etc.
Danke! :)
 
Eigeninitiative? :roll:

In /etc/sudoers (nicht /etc/sudo) nach der Zeile
Code:
Defaults env_reset
sowas hier einfügen:
Code:
Defaults env_keep = GTK_PATH
Oder aber einfach mal lesen, was ich oben geschrieben habe und zur Kenntnis nehmen, dass mit root-Rechten gestartete Programme wirklich unter einer anderen Benutzerkennung laufen, dass es deshalb normal ist, wenn sie andere Einstellungen verwenden und dass es nicht sicher ist, x-beliebige Umgebungsvariablen über sudo weiterzugeben!

Wenn Du es trotzdem ändern willst, weißt Du jetzt, wie es geht.
 
OP
Lurchi

Lurchi

Hacker
@ traffic:

Entschuldige bitte das ich den Pfad /etc/sudoers falsch geschrieben habe. :shock:
Aber ich bin dann später alleine darauf gekommen, wo "GTK_PATH" in diese Datei eingefüght wird.
Also zwischen den Zeilen kann ich auch schon lesen und verstehen. :!:

Ich hatte bereits angedeutet, dass mich dieser Zustand auch nicht großartig stört. Zumal ich daran interessiert war, den fachlichen Hintergrund zu erfahren.
Dieser "sudo"-Eintrag in YaST ist ja auch eine von vielen Neuheiten. Was man damit macht und wie man damit arbeitet, geht einem ja völlig abhanden.
Gehe ich damit richtig mit der Annahme, dass man z.B. Usern "erschwert" root-seitige Befehle auszuführen und deren Nutzungsrechte zu verändern. Da man ja nur als User unterwegs ist, hätte man also als Angreifer die Möglichkeit, sich darüber vollkommende Nutzungsrechte über relevante Systemmtools zu bekommen.
Kurz und gut: Ein neuer Versuch, SUSE zu schützen. Wie gesagt. Es ist nur mein persönlicher Eindruck.
Aber nochmals Danke für Deine Hintergrund-Infos, traffic.

P.S.: Das mit "GTK_PATH" hat nicht funktioniert.
 
sudo ist sowas wie die Luxus-Version von su.

su ist ein Programm, mit dem man Befehle unter einer anderen Benutzerkennung ausführen kann. Dazu wird immer das Passwort des Benutzers benötigt, auf den man gerade wechselt, es sei denn, man ist schon als dieser Benutzer oder als root angemeldet.

Mit sudo läuft das etwas anders. sudo verhält sich im unkonfigurierten Zustand ähnlich wie su, man kann es aber so einrichten, dass einzelne, genau definierte Befehle auch ohne Passwort ausgeführt werden können. Das ist sehr nützlich, wenn man ein System so einrichten will, dass Benutzer bestimmte Verwaltungsaufgaben übernehmen können, ohne ihnen deswegen gleich das root-Passwort zu geben. Man kann es sogar so extrem wie Ubuntu durchziehen und das root-Konto komplett sperren und alles nur über sudo erledigen.

Es gibt dabei aber ein kleines Problem, nämlich das der Sicherheit. Ein Befehl, der in verschiedenen Umgebungen ausgeführt wird, bewirkt nicht immer genau dasselbe, sondern die Programme können über Umgebungsvariablen beeinflusst werden. Das ist nützlich, aber im sudo-Fall auch gefährlich, weil das Ergebnis ganz anders aussehen kann, als was die sudo-Konfiguration eigentlich bezweckt hatte.

Lange Rede, kurzer Sinn: sudo setzt bis auf das Allernötigste sämtliche Umgebungsvariablen zurück, und das ist auch gut so. Daran liegt es, dass die gtk2-Themes anders aussehen, weil auch das gtk2-Theming Umgebungsvariablen nutzt. GTK_PATH war jetzt offenbar kein Treffer - sorry, dann weiß ich es leider nicht, aber es muss irgendeine Umgebungsvariable sein.

Wenn Dich die o.g. Nachteile von sudo stören und Du die Vorteile nicht brauchst, dann stell kdesu einfach wieder auf su um. Dazu erstellst Du eine Konfigurationsdatei $HOME/.kde/share/config/kdesurc mit folgendem Inhalt:
Code:
[super-user-command]
super-user-command=su
 
OP
Lurchi

Lurchi

Hacker
traffic schrieb:
Dazu erstellst Du eine Konfigurationsdatei $HOME/.kde/share/config/kdesurc mit folgendem Inhalt:

Code:
[super-user-command]
super-user-command=su

Ich hab's ausprobiert-es funktioniert. Werde es aber wieder in den alten Zustand zurücksetzten.

Wäre es also konsequenterweise auch möglich, "normalen Benutzern" sog. Key-User-Rechte zu verleiben, um administrativ tätig zu sein?? Nur so als Randbemerkung??
Aber wie sieht es dann mit der Sicherheit aus? Nur wer umfassende Dateirechte hat, kann somit zur Angriffsfläche für schädlichen Code werden. Oder??

Danke nochmals für die ausführliche Darstellung der Luxus-Version von su. :wink:
 
Lurchi schrieb:
Wäre es also konsequenterweise auch möglich, "normalen Benutzern" sog. Key-User-Rechte zu verleiben, um administrativ tätig zu sein?? Nur so als Randbemerkung??
Ja, natürlich. Genau dazu ist sudo ja gedacht. Du könntest Nicht-root-Benutzern beispielsweise das "smart update" und "smart upgrade" erlauben und gleichzeitig das "smart remove" verbieten, damit sie Sicherheitsupdates einspielen, aber das System nicht durch Deinstallation wichtiger Pakete ruinieren können.

Was die Sicherheit angeht: Es klingt vielleicht unsicher, Benutzern Administrationsaufgaben zu erlauben, muss es aber nicht sein, weil Du ihnen im Umkehrschluss nicht das root-Passwort geben musst.

Wie sicher das Ganze ist, hängt von der Konfiguration ab. Wenn Du Deinen Benutzern beispielsweise "smart channel --add" erlauben würdest, dann wäre das extrem unsicher, weil sie sofort root werden könnten; wenn Du allerdings nur vertrauenswürdige Channels verwendest und keine Channel-Änderungen zulässt, kann es sehr sicher sein.
 
Oben