Есть ли способ указать, что sudo
следует сохранять определенные переменные среды только для указанных команд? В некоторых целях я хотел бы, чтобы мой $HOME
env. переменная сохраняется, когда я запускаю определенные команды. Для других целей и других команд я хочу сбросить его. Можно ли это сделать /etc/sudoers
?
Редактировать:
Спасибо за ответы. Интересно, могу ли я задать дополнительный вопрос: «Почему же тогда это не работает?»
В примере я пытаюсь получить работу, я хочу sudo nano
прочитать мой $HOME/.nanorc
. Если я использую это:
Defaults:simon env_keep=HOME
это работает отлично. Если я использую это:
Defaults!/bin/nano env_keep=HOME
или это:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
это не работает вообще. Любые предложения относительно того, почему? (Кстати, я нахожусь на тестировании Debian.)
(Примечание: я не думаю, что это nano
конкретно, кстати - я могу воспроизвести поведение с помощью однострочного сценария bash, который просто echo
s $HOME
).
sudo
использую свою собственную функцию, я просто добавил if [ "$1" == "$EDITOR" ]; then
блок и теперь sudoedit
вместо этого
sudoedit
вместо этого.sudoedit
запустит копирование содержимого файла в файл tmp и запустит редактор по вашему выбору в качестве вашего пользователя, при выходе из редактора проверит, изменили ли вы что-нибудь, и если да, замените оригинал на отредактированный. Вы можете выбрать, какой редактор вы хотите запустить, установив$EDITOR
переменные или $ VISUAL` env.