root 以 sudo 身份执行命令与不使用 sudo 之间的区别?

root 以 sudo 身份执行命令与不使用 sudo 之间的区别?

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

root> sudo ./some_executable

root> ./some_executable

有什么区别吗?我尝试使用可执行文件,发现可执行文件可以很好地执行第一个命令,但第二个命令失败,提示我没有以 root 身份运行该命令。我一直认为 sudo/su 命令允许您以 root 权限执行命令,因此执行第一个命令是多余的。但是,我确实注意到 root 用户在 sudoers 文件中,所以我不知道这是可执行文件中的错误还是以 root 身份登录运行命令与使用 sudo 之间真的有区别?

答案1

这两个实例的环境变量将会有所不同。

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

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

总而言之,两种情况的环境不匹配,导致一种情况有效,而另一种情况无效。

相关内容