Gibt es eine Möglichkeit, anzugeben, dass sudo
bestimmte Umgebungsvariablen nur für angegebene Befehle beibehalten werden sollen? Für einige Zwecke möchte ich mein $HOME
env. Variable, die beim Ausführen bestimmter Befehle beibehalten wird. Für andere Zwecke und andere Befehle möchte ich es zurücksetzen. Kann man damit fertig werden /etc/sudoers
?
Bearbeiten:
Vielen Dank für die Antworten. Ich frage mich, ob ich eine Folgefrage stellen könnte: "Warum funktioniert das dann nicht?"
In dem Beispiel, in dem ich versuche zu arbeiten, möchte sudo nano
ich meine lesen $HOME/.nanorc
. Wenn ich das benutze:
Defaults:simon env_keep=HOME
es funktioniert einwandfrei. Wenn ich das benutze:
Defaults!/bin/nano env_keep=HOME
oder dieses:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
es funktioniert überhaupt nicht. Irgendwelche Vorschläge, warum? (Ich bin übrigens bei Debian-Tests.)
(Anmerkung: Ich denke nicht, dass es nano
spezifisch ist, übrigens - ich kann das Verhalten mit einem einzeiligen Bash-Skript reproduzieren, das einfach echo
s ist $HOME
).
sudo
eine eigene Funktion verwende, habe ich einfach einen if [ "$1" == "$EDITOR" ]; then
Block hinzugefügt und rufe jetzt sudoedit
stattdessen auf :)
sudoedit
stattdessen.sudoedit
Kopiert den Inhalt einer Datei in eine tmp-Datei und führt den Editor Ihrer Wahl als Benutzer aus. Wenn der Editor beendet wird, wird überprüft, ob Sie etwas geändert haben, und in diesem Fall wird das Original durch das bearbeitete ersetzt. Sie können auswählen, welcher Editor ausgeführt werden soll, indem Sie die Umgebungsvariablen$EDITOR
oder $ VISUAL` einstellen.