我想在运行 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") - 那么它是怎么做到的呢?
问问题
18247 次
3 回答
17
这是 sudoers 文件中重置的行:
Defaults env_reset
您可以通过添加或添加此行PATH
来解决此问题:env_keeps
Defaults env_keep = "PATH"
编辑:meder,你没有禁用 env_reset,你只是绕过路径重置
或者您可以删除违规env_reset
行。
更好的是,您可以声明在运行 sudo 时secure_path
将替换的 a:PATH
Defaults secure_path="/bin:/usr/bin"
这样您就可以控制要在路径中包含哪些特定目录。
于 2013-05-05T02:05:34.037 回答
7
我认为如果您将其保存在 /root/.bashrc 中,这应该可以解决:
export PATH=/www/foo:$PATH
我忘记了它是 PATH 还是 PYTHONPATH,如果它真的很重要,这是基于我用户的 .bashrc:
export PYTHONPATH=/www/django:$PYTHONPATH
于 2009-10-04T22:35:14.387 回答
3
您可以在 /etc/environment 中设置变量,然后使用“sudo -i”运行脚本(适用于 ubuntu 10.10)。
于 2011-09-05T11:39:57.467 回答