如何永久更改sudo的$ PATH变量(Ubuntu 9.x)

时间:2009-10-04 22:32:49

标签: path sudo

我想在运行sudo时向$ PATH添加一些目录,这是一个(半)永久性要求,而不是需要添加到脚本本身的东西。我注意到Django已经设法做到了,(运行sudo时我的$ PATH是“/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / X11R6 / bin:/ django / django-trunk / django / bin“) - 那是怎么做到的?

3 个答案:

答案 0 :(得分:17)

这是sudoers文件中重置的行:

Defaults env_reset

您可以通过将PATH添加到env_keeps或添加以下内容来解决此问题:

Defaults env_keep = "PATH"

编辑:meder,你没有禁用env_reset,你只需绕过路径重置

或者您可以删除有问题的env_reset行。

更好的是,您可以在运行sudo时声明将替换secure_path的{​​{1}}:

PATH

通过这种方式,您可以控制要包含在路径中的特定目录。

答案 1 :(得分:6)

我认为如果将其保存在/root/.bashrc中,这应该可以解决:

export PATH=/www/foo:$PATH

我忘记了它是PATH还是PYTHONPATH,如果真的很重要,这是基于我的用户的.bashrc:

export PYTHONPATH=/www/django:$PYTHONPATH

答案 2 :(得分:3)

您可以在/ etc / environment中设置变量,然后使用“sudo -i”运行脚本(适用于ubuntu 10.10)。