[gelöst] modprobe mit pkexec
Re: modprobe mit pkexec
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
/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
Re: modprobe mit pkexec
Danke für die Info!smutbert hat geschrieben:Naja, dass modprobe direkt als root gestartet, funktioniert ist wohl sicher.
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.
Re: modprobe mit pkexec
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 hat geschrieben:17.08.2021 14:43:59Wieso ist das dann von GNOME abhängig. Ein xterm führt beim Aufruf auch die bashrc aus. Vorausgesetzt man benutzt die Bash.
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: modprobe mit pkexec
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.
Re: modprobe mit pkexec
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.alexander_ro hat geschrieben:17.08.2021 17:21:40Oben 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.
Für mich wäre das Problem grundsätzlich mit der 2. Möglichkeit gelöst:
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.smutbert hat geschrieben:17.08.2021 13:44:38mir fallen unter den Umständen nur diese 3 Möglichkeiten ein:
- 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
- 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«- »/etc/login.defs« editieren und /usr/sbin dort zum Suchpfad für normale Benutzer hinzufügen. Da sollte es bereits diese Zeile geben
die danach etwa so aussehen könnteCode: Alles auswählen
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Code: Alles auswählen
ENV_PATH PATH=/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: modprobe mit pkexec
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/.
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/.
Re: [gelöst] modprobe mit pkexec
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
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
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
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
Re: [gelöst] modprobe mit pkexec
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):
Irgendwelche Pfade (PATH) sind dann unnötig zu setzen, sehe auch nicht ein, warum man das tun sollte.
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
Re: [gelöst] modprobe mit pkexec
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.
Re: [gelöst] modprobe mit pkexec
Vielleicht habe ich das alles Falsch verstanden.smutbert hat geschrieben:20.08.2021 12:57:23In 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.
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.