7

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

4

3 回答 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 回答