![root 以 sudo 身份执行命令与不使用 sudo 之间的区别?](https://linux22.com/image/1398198/root%20%E4%BB%A5%20sudo%20%E8%BA%AB%E4%BB%BD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E4%B8%8E%E4%B8%8D%E4%BD%BF%E7%94%A8%20sudo%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我有一个关于 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 -
获取根权限意味着您在直接执行文件时没有真正的根环境。
总而言之,两种情况的环境不匹配,导致一种情况有效,而另一种情况无效。