Czy jest jakiś sposób na określenie, które sudo
powinny zachować pewne zmienne środowiskowe tylko dla określonych poleceń? Do niektórych celów chciałbym mojej $HOME
env. zmienna zachowana po uruchomieniu niektórych poleceń. Do innych celów i innych poleceń chcę go zresetować. Czy można to zrobić /etc/sudoers
?
Edytować:
Dziękuję za odpowiedzi. Zastanawiam się, czy mógłbym zadać dalsze pytanie, które brzmi: „Dlaczego więc to nie działa?”.
W przykładzie, który próbuję rozpocząć, chcę sudo nano
przeczytać mój $HOME/.nanorc
. Jeśli użyję tego:
Defaults:simon env_keep=HOME
działa idealnie. Jeśli użyję tego:
Defaults!/bin/nano env_keep=HOME
albo to:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
to w ogóle nie działa. Wszelkie sugestie, dlaczego? (Jestem na testach Debiana, btw.)
(Uwaga: nie wydaje mi się, żeby było to nano
specyficzne, btw - mogę odtworzyć zachowanie za pomocą jednowierszowego skryptu bash, który po prostu echo
s $HOME
).
sudo
swoją własną funkcję, po prostu dodałem if [ "$1" == "$EDITOR" ]; then
blok i teraz dzwonię sudoedit
:)
sudoedit
zamiast tego.sudoedit
uruchomi skopiuj zawartość pliku do pliku tmp i uruchomi wybrany przez ciebie edytor jako użytkownik, gdy edytor wyjdzie, sprawdzi, czy coś zmieniłeś, a jeśli tak, zamień oryginał na edytowany. Możesz wybrać edytor, który ma być uruchamiany, ustawiając$EDITOR
zmienne env lub $ VISUAL`.