root 执行命令作为 sudo 与不使用 sudo 之间的区别?

use*_*276 2 linux root sudo su

我有一个关于 sudo 命令和 root 用户的 Linux 问题。如果我使用该su命令以root用户登录,下面两个命令有什么区别?

root> sudo ./some_executable
Run Code Online (Sandbox Code Playgroud)

root> ./some_executable
Run Code Online (Sandbox Code Playgroud)

有区别吗?我正在尝试使用一个可执行文件,并注意到该可执行文件与第一个命令一起工作正常,但第二个命令失败,说明我没有以 root 身份运行该命令。我一直认为 sudo/su 命令允许您以 root 权限执行命令,因此执行第一个命令将是多余的。但是,我确实注意到 root 用户在 sudoers 文件中,所以我不知道这是否是可执行文件中的错误,或者运行以 root 身份登录的命令与使用 sudo 登录的命令之间是否真的有区别?

djg*_*djg 5

两个实例的环境变量将不同。

sudo 将重置您的一些环境变量 - 阅读 sudo 的手册页并查看-E选项以及 sudoers 配置文件中的部分。

此外,您使用suand 不su -获取 root 意味着在直接执行文件时您没有真正的 root 环境。

总而言之,您在两种情况之间存在环境不匹配,使一种工作而另一种不工作。