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

sim*_*sby 6 sudo path

我想在运行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") - 那是怎么做到的?

h4u*_*t3r 17

这是sudoers文件中重置的行:

Defaults env_reset

您可以通过添加或添加此行PATH来解决此问题env_keeps:

Defaults env_keep = "PATH"

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

或者你可以删除违规env_reset行.

但更好的是,你可以声明一个在运行sudo时secure_path会替换的东西PATH:

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

这样,您可以控制要包含在路径中的特定目录.


med*_*iev 6

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

export PATH=/www/foo:$PATH
Run Code Online (Sandbox Code Playgroud)

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

export PYTHONPATH=/www/django:$PYTHONPATH
Run Code Online (Sandbox Code Playgroud)