Как навсегда изменить переменную $ PATH sudo (Ubuntu 9.x) - PullRequest
6 голосов
/ 05 октября 2009

Я хочу добавить каталог в $ PATH при запуске sudo, это (полу) постоянное требование, а не то, что нужно добавлять в сами сценарии. Я заметил, что Django сумел это сделать (мой $ PATH при запуске sudo - "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / X11R6 / bin: / django / django-trunk / django / bin ") - так как это получилось?

Ответы [ 3 ]

17 голосов
/ 05 мая 2013

Это строка в файле sudoers, которая сбрасывает:

Defaults env_reset

Вы можете обойти это, добавив PATH к env_keeps или добавив эту строку:

Defaults env_keep = "PATH"

РЕДАКТИРОВАТЬ: meder, вы не отключаете env_reset, вы просто обойти сброс пути

Или вы можете удалить ошибочную строку env_reset.

Даже лучше, вы можете объявить secure_path, который заменит PATH при запуске sudo:

Defaults secure_path="/bin:/usr/bin"

Таким образом, вы можете контролировать, какие конкретные каталоги включать в путь.

6 голосов
/ 05 октября 2009

Я думаю, что это должно сработать, если вы сохраните его в /root/.bashrc:

export PATH=/www/foo:$PATH

Я забыл, является ли это PATH или PYTHONPATH, и если это действительно имеет значение, это основано на моем пользователе .bashrc:

export PYTHONPATH=/www/django:$PYTHONPATH
3 голосов
/ 05 сентября 2011

Вы можете установить переменную в / etc / environment, а затем использовать «sudo -i» для запуска скрипта (работает в Ubuntu 10.10).

...