Похоже, эта ошибка существует уже довольно давно! Вот некоторые ссылки на ошибки, которые могут оказаться полезными (и вы можете подписаться на / голосовать, подсказка, подсказка ...):
Ошибка Debian # 85123 («sudo: SECURE_PATH все еще нельзя переопределить») (с 2001 года!)
Кажется, что ошибка # 20996 все еще присутствует в этой версии sudo. Список изменений говорит, что он может быть переопределен во время выполнения, но я еще не выяснил, как это сделать.
Они упоминают что-то вроде этого в вашем файле sudoers:
Defaults secure_path="/bin:/usr/bin:/usr/local/bin"
но когда я делаю это в Ubuntu 8.10 по крайней мере, это дает мне эту ошибку:
visudo: unknown defaults entry `secure_path' referenced near line 10
Ошибка Ubuntu # 50797 («sudo, созданный с помощью --with-secure-path, проблематичен»)
Что еще хуже, насколько я могу судить, невозможно переопределить secure_path в файле sudoers. Так что, если, например, вы хотите предложить своим пользователям легкий доступ к чему-либо в / opt, вы должны перекомпилировать sudo.
Да. Там нужно быть способ , чтобы переопределить эту «особенность» без необходимости перекомпиляции. Нет ничего хуже, чем фанаты безопасности, которые говорят вам, что лучше для вашей среды, а затем не дают вам способа отключить его.
Это действительно раздражает. Возможно, было бы разумно сохранить текущее поведение по умолчанию из соображений безопасности, но должен быть способ переопределить его, кроме перекомпиляции из исходного кода! Многие люди нуждаются в наследовании PATH. Я удивляюсь, почему никакие сопровождающие не изучают это, что кажется легким, чтобы придумать приемлемое решение.
Я работал над этим так:
mv /usr/bin/sudo /usr/bin/sudo.orig
затем создайте файл / usr / bin / sudo, содержащий следующее:
#!/bin/bash
/usr/bin/sudo.orig env PATH=$PATH "$@"
тогда ваш обычный sudo работает так же, как sudo без безопасного пути
Ubuntu bug # 192651 («путь sudo всегда сбрасывается»)
Учитывая, что дубликат этой ошибки был первоначально подан в июле 2006 года, мне не ясно, как долго неэффективный env_keep работал. Какими бы ни были преимущества принуждения пользователей к использованию уловок, подобных перечисленным выше, безусловно, страницы руководства для sudo и sudoers должны отражать тот факт, что варианты изменения PATH фактически избыточны.
Изменение документации для отражения фактического выполнения не является дестабилизирующим и очень полезным.
Ошибка Ubuntu # 226595 («невозможно сохранить / указать путь»)
Мне нужно иметь возможность запускать sudo с дополнительными не стандартными двоичными папками в PATH. Уже добавив свои требования в / etc / environment, я удивился, когда получил ошибки об отсутствующих командах при запуске их под sudo .....
Я попытался следующее, чтобы исправить это без успеха:
Использование sudo -E
опции « » - не сработало. Мой существующий PATH все еще был сброшен sudo
Изменение " Defaults env_reset
" на " Defaults !env_reset
" в / etc / sudoers - также не работает (даже в сочетании с sudo -E)
Раскомментирование env_reset
(например, " #Defaults env_reset
") в / etc / sudoers - также не сработало.
Добавление ' Defaults env_keep += "PATH"
' в / etc / sudoers - тоже не сработало.
Ясно, что, несмотря на документацию man, sudo полностью жестко запрограммирован в отношении PATH и не дает никакой гибкости в отношении сохранения пользовательского PATH. Очень раздражает, так как я не могу запустить нестандартное программное обеспечение с правами root с помощью sudo.