我使用 sudo 获得什么环境?

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。

Arr*_*ter 7

我不知道 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 文件会在此之后更改路径。


Joh*_*han 5

你可以用类似的东西很容易地检查这个

比较输出

sudo env 
env
Run Code Online (Sandbox Code Playgroud)

还有像

sudo whoami 
whoami
Run Code Online (Sandbox Code Playgroud)

这样您就可以尝试找出您的设置中缺少什么。