bea*_*mit 17 sudo environment-variables
当我运行 sudo 时,我的环境到底发生了什么?
当我运行时sudo command
,它似乎没有看到我或 root 的环境。例如,我的两个路径都包含/usr/local/bin
,但是如果我尝试在没有完整路径的情况下运行程序之一,则会失败。
我以为 sudo 以 root 身份运行,因此获得了 root 的环境。bash 在 sudo 下执行的方式与在 root 或我的普通用户下执行的方式不同吗?
编辑:
我sudo -i
最近一直在使用,但最近它引起了问题,因为我当前的工作目录被设置为/root
. 这符合预期(有点),但我仍然不明白为什么 sudo 无法识别我的/usr/local/bin
.
编辑:
我正在运行 Fedora 15。
我不知道 Fedora 上的sudo
默认设置,但在 Debian 上默认使用secure_path
默认值为/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
.
这意味着每次使用时路径都会更改为该值sudo
;但是当您使用 时sudo -i
,root 用户的 RC 文件会在此之后更改路径。
你可以用类似的东西很容易地检查这个
比较输出
sudo env
env
Run Code Online (Sandbox Code Playgroud)
还有像
sudo whoami
whoami
Run Code Online (Sandbox Code Playgroud)
这样您就可以尝试找出您的设置中缺少什么。