[gelöst] modprobe mit pkexec

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
willy4711

Re: modprobe mit pkexec

Beitrag von willy4711 » 17.08.2021 15:10:10

Die Regeln, was wer mit pkexec ausführen darf werden weitestgehend in

/usr/share/polkit-1/actions/
und
/usr/share/polkit-1/rules.d/

festgelegt.

Erklärungen gibt es hier:
https://www.freedesktop.org/software/po ... kit.8.html

fischig
Beiträge: 3640
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: modprobe mit pkexec

Beitrag von fischig » 17.08.2021 15:24:35

smutbert hat geschrieben:Naja, dass modprobe direkt als root gestartet, funktioniert ist wohl sicher.
Danke für die Info!
So hätte ich das auch erwartet. Aber ich weiß ja nie so recht, wohin die Entwicklungs-„Reise“ so alles gehen mag. Deswegen hatte ich mal vorsorglich gefragt, obwohl's mich ja gar nichts angeht. Bitte den TE um Entschuldigung ob der Einmischung. Mag der geneigte Leser selber weiterdenken. :wink:

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: modprobe mit pkexec

Beitrag von smutbert » 17.08.2021 16:20:24

alexander_ro hat geschrieben: ↑ zum Beitrag ↑
17.08.2021 14:43:59
Wieso ist das dann von GNOME abhängig. Ein xterm führt beim Aufruf auch die bashrc aus. Vorausgesetzt man benutzt die Bash.
Ja, aber hier wird pkexec nicht aus einer Shell, nicht einmal in einem Terminal sondern von einer Gnome Shell Extension gestartet – da muss also nie eine Bash (oder andere Shell) im Spiel gewesen sein.

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: modprobe mit pkexec

Beitrag von alexander_ro » 17.08.2021 17:21:40

smutbert hat geschrieben: ↑ zum Beitrag ↑
17.08.2021 16:20:24
nie eine Bash
Man kann nicht einfach ein Programm starten ohne nichts. Irgendwer muss es im Filesystem suchen, Berechtigungen prüfen und in den Speicher laden. Die vereinfachte Version meist ist da eine Shell in irgendeiner Form beteiligt. Klar das könnten die von GNOME alles selber Programmiert haben. Wäre aber doppelt Arbeit ohne echten Nutzen.

Oben stand auch das es so funktioniert hat mit der veränderten PATH Variable. Das heißt dann das die GNOME Shell zumindest auch die PATH Variable kennt und benutzt. Es bleibt halt die Frage an welcher Stelle wurde die PATH Variable verändert.

avDeb
Beiträge: 31
Registriert: 04.02.2017 16:49:33

Re: modprobe mit pkexec

Beitrag von avDeb » 18.08.2021 13:03:57

alexander_ro hat geschrieben: ↑ zum Beitrag ↑
17.08.2021 17:21:40
Oben stand auch das es so funktioniert hat mit der veränderten PATH Variable. Das heißt dann das die GNOME Shell zumindest auch die PATH Variable kennt und benutzt. Es bleibt halt die Frage an welcher Stelle wurde die PATH Variable verändert.
Ich habe mich geirrt. Ich hatte die Extension umgeschrieben gehabt, was ich vergessen hatte und dachte mir, dass es nun wegen der ergänzten PATH geklappt hat. Mit der frisch installierten Extension geht's also nicht.

Für mich wäre das Problem grundsätzlich mit der 2. Möglichkeit gelöst:
smutbert hat geschrieben: ↑ zum Beitrag ↑
17.08.2021 13:44:38
mir fallen unter den Umständen nur diese 3 Möglichkeiten ein:
  1. ein symbolischer Link zu modprobe zB in »/usr/local/bin« oder »~/.local/bin«

    Code: Alles auswählen

    $ mkdir -p ~/.local/bin
    $ ln -s /sbin/modprobe ~/.local/bin/modprobe
    
  2. das Anpassen der Extension. Dazu ist nicht einmal notwendig den Quellcode der Extension zu verstehen, es sollte genügen die Stelle zu finden an der pkexec aufgerufen wird und dort modprobe um den Pfad zu ergänzen.
    Die installierten Extensions liegen unter »~/.local/share/gnome-shell/extensions«
  3. »/etc/login.defs« editieren und /usr/sbin dort zum Suchpfad für normale Benutzer hinzufügen. Da sollte es bereits diese Zeile geben

    Code: Alles auswählen

    ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    
    die danach etwa so aussehen könnte

    Code: Alles auswählen

    ENV_PATH        PATH=/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    
Die 1. und 3. Möglichkeit brachten keine Resultate. Aus Neugier würde mich trotzdem noch interessieren, ob Gnome-Shell so etwas Ähnliches wie PATH hat.

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: modprobe mit pkexec

Beitrag von alexander_ro » 18.08.2021 13:45:54

Ok das Erklärt warum das alles etwas widersprüchlich aussah.

Ich verwende keinen GNOME und kann es deshalb nicht testen. Wenn Du das noch nicht gemacht hast gibt es hier einige Infos wo man die Verschiedenen Einstellungen machen kann. Ist zwar Ubuntu aber es sollte hier ähnlich sein: https://wiki.ubuntuusers.de/Umgebungsvariable/Dateien/.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [gelöst] modprobe mit pkexec

Beitrag von smutbert » 19.08.2021 23:47:03

Da gibt es viele Varianten, die auch nicht mehr funktionieren, weil sie zB durch die Startskripte der Xorg-Gnome-Sitzung gelesen und jetzt bei wayland ignoriert werden.

Warum gleich zwei meiner Vorschläge daneben gegangen sind ist mir noch nicht ganz klar - bei einem allerdings schon:
In Debian wird (bei Login-Shells) $PATH mittels »/etc/profile« gesetzt bzw. überschrieben. das dürfte der Grund sein, dass mein 3. ins Leere gegangen ist. Dass Gnome auch in der wayland-Variante überhaupt von einer Shell mit einem Shellskript gestartet wird, habe ich nicht vermutet. Ohne alexander_ros Einwand hätte ich das nicht bemerkt.

Jedenfalls bin ich mir jetzt ziemlich sicher, dass du $PATH in der »/etc/profile« oder in »~/.profile« anpassen kannst, damit die Extension ohne weitere Maßnahmen funktioniert. In ersterer kannst du diese Zeilen

Code: Alles auswählen

if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
so ändern, dass das zweite PATH=..., das ist das für die normalen Benutzer, ebenfalls /usr/sbin (und der Vollständigkeit halber eventuell auch die anderen sbins) enthält – am besten am Anfang der Liste.

Wenn du das dagegen benutzerspezifisch mit der »~/.profile« erledigen willst, genügt es so etwas hineinzuschreiben

Code: Alles auswählen

PATH="/usr/local/sbin:/usr/sbin:/sbin:${PATH}"
export PATH

willy4711

Re: [gelöst] modprobe mit pkexec

Beitrag von willy4711 » 20.08.2021 12:12:35

Kann bisher nicht sehen, was wie funktioniert hat.
Hätte aber einen Vorschlag, der zumindest funktioniert (hier mit einer für mich unschädlichen Option):

Code: Alles auswählen

~$ pkexec sh -c "/usr/sbin/modprobe -V"
kmod version 28
-ZSTD +XZ -ZLIB +LIBCRYPTO -EXPERIMENTAL
Irgendwelche Pfade (PATH) sind dann unnötig zu setzen, sehe auch nicht ein, warum man das tun sollte.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [gelöst] modprobe mit pkexec

Beitrag von smutbert » 20.08.2021 12:57:23

In dem Fall, weil der Befehl nicht im Terminal sondern von einer Gnome Shell Extension ausgeführt wird und man dazu (bei jedem Update der Extension von neuem) den Quellcode der Extension anpassen muss.

willy4711

Re: [gelöst] modprobe mit pkexec

Beitrag von willy4711 » 20.08.2021 13:07:54

smutbert hat geschrieben: ↑ zum Beitrag ↑
20.08.2021 12:57:23
In dem Fall, weil der Befehl nicht im Terminal sondern von einer Gnome Shell Extension ausgeführt wird und man dazu (bei jedem Update der Extension von neuem) den Quellcode der Extension anpassen muss.
Vielleicht habe ich das alles Falsch verstanden.
Ich hatte gedacht dass das eine selbst geschriebene Extension ist.
Andersherum: Wenn er den modprobe Befehl in eine Bestehende einfügt, wird er um die händische Korrektur
auch nicht herumkommen.

Aber wie auch immer, ist wohl unwichtig.

Antworten