Я установил PATH в /etc/profile
. У меня нет проблем в случае с обычным пользователем, но PATH не переходит, когда я становлюсь корневым полномочием в sudo
.
Что бы вы сделали, чтобы переопределить PATH
который установлен /etc/profile
даже если я стану основным авторитетом в sudo
?
Sudo сбрасывает PATH вместе со многими другими переменными среды из соображений безопасности. Неважно, что установлено в / etc / profile, если вы не запустите sudo -i
.
Страница руководства sudo в разделе ЗАМЕЧАНИЯ ПО БЕЗОПАСНОСТИ дает представление о последствиях для безопасности, а также о параметрах, которые вам нужно изменить в файле / etc / sudoers, чтобы изменить эти ограничения, после того, как вы поймете последствия этого.
корневой путь не изменяется / etc / profile (безопасность ...)
вам нужно настроить его отдельно (например, в корневом ~ / .bash_profile)
Обновить:
Если вы хотите добавить конкретный ПУТЬ к ПУТИ по умолчанию вашей «корневой» учетной записи при использовании sudo или sudo -i:
В Ubuntu 10.04.x LTS:
Измените соответствующим образом как / etc / окружающая среда и и т.д. / login.defs файлы.
В Ubuntu 12.04.x LTS:
Измените соответствующим образом как / etc / окружающая среда и /etc/login.defs файлы так же как линия По умолчанию secure_path из / и т.д. / sudoers файл (используя visudo).
Если вы используете графический интерфейс и вам неудобно работать с редактором nano в текстовом режиме, используйте следующую команду для редактирования файла / etc / sudoers с помощью gedit:
sudo EDITOR = gedit visudo
Когда вы сохраните файл / etc / sudoers, visudo проверит синтаксис ваших изменений.
Если все в порядке, вы вернетесь к сеансу терминала.
Если произошла ошибка, нажмите букву «e», чтобы снова отредактировать файл / etc / sudoers и исправить вашу модификацию.
Я еще не пробовал с Ubuntu 12.10, но думаю (и надеюсь), что это то же самое, что и с Ubuntu 12.04.x!
Ура.
Если в ваших дистрибутивах Linux включен плагин политики безопасности, PATH
может быть отменено secure_path
в твоем sudoers
файл, поэтому вам нужно отредактировать его sudo visudo
и добавьте его в список.
Вы можете проверить это, если это так:
$ sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
В качестве альтернативы для одноразового использования попробуйте:
sudo "PATH=$PATH" foo
Видеть: Почему переменные PATH различаются при запуске через sudo и su? в Unix SE