Чи є спосіб вказати, який sudo
повинен зберігати певні змінні середовища лише для вказаних команд? Для якихось цілей я хотів би моє $HOME
оточення. змінна зберігається, коли я запускаю певні команди. Для інших цілей та інших команд я хочу її скинути. Це можна зробити /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, btw.)
(Примітка: Я не думаю , що це nano
специфічне, до речі - я можу відтворити поведінку з Баш скрипт на один рядок , яка просто echo
S $HOME
).
sudo
функцію, я просто додав if [ "$1" == "$EDITOR" ]; then
блок і зараз телефоную sudoedit
:)
sudoedit
замість цього.sudoedit
запустить копіювати вміст файлу у файл tmp та запустить редактор на ваш вибір як ваш користувач, коли редактор вийде, він перевірить, чи ви щось змінили, і якщо так замінить оригінал на відредагований. Ви можете вибрати редактор, який ви хочете, щоб він працював, встановивши$EDITOR
env vars або $ VISUAL`.