У меня странное поведение.

Мой файл sudoers очень короткий и выглядит так:

Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root    ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

(Обратите внимание, что это Ubuntu 13.10 с резервным ядром 3.12)

С этим sudoers, когда я делаю sudo env я получаю почти все окружение моего непривилегированного пользователя, включая http_proxy и https_proxy . Теперь, если я добавлю эту строку в файл, окружение будет уничтожено до чертиков:

Defaults env_keep="http_proxy"

Я держу пари, что для env_keep есть значение по умолчанию, которое хранит большую часть того, что установлено в моем окружении, и что определение его без env_keep+= стирает его.

Или это ошибка sudo, которую я должен представить?

1 ответ1

0

После устранения неполадок и обсуждения isue с Бобом в чате Root Access, мы обнаружили, что действительно env_keep имеет недокументированные значения по умолчанию.

Выдержка из справочной страницы sudo:

     -V          The -V (version) option causes sudo to print its version string and the ver‐
                 sion string of the security policy plugin and any I/O plugins.  If the invok‐
                 ing user is already root the -V option will display the arguments passed to
                 configure when sudo was built and plugins may display more verbose informa‐
                 tion such as default options.
user@host $: sudo sudo -V : 
[...]
Environment variables to preserve: 
XAUTHORIZATION 
XAUTHORITY 
TZ 
PS2 
PS1 
PATH 
LS_COLORS 
KRB5CCNAME 
HOSTNAME 
HOME 
DISPLAY 
COLORS
[...]

Если вы установите env_keep, не добавляя его, он переопределит эти значения. Так что используйте значения по Defaults env_keep +="values"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .