Czy jest jakiś sposób na określenie, które sudopowinny zachować pewne zmienne środowiskowe tylko dla określonych poleceń? Do niektórych celów chciałbym mojej $HOMEenv. 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 nanoprzeczytać 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 nanospecyficzne, btw - mogę odtworzyć zachowanie za pomocą jednowierszowego skryptu bash, który po prostu echos $HOME).
sudoswoją własną funkcję, po prostu dodałem if [ "$1" == "$EDITOR" ]; thenblok i teraz dzwonię sudoedit:)
sudoeditzamiast tego.sudoedituruchomi 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$EDITORzmienne env lub $ VISUAL`.