Назад | Перейти на главную страницу

Как переопределить переменную среды PATH в sudo?

Я установил 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