上述问题也可以改写为:what is the use of the sudo command?
man
bash shell 中的pagessudo
具有以下描述。
sudo, sudoedit - execute a command as another user.
这对我来说没有任何意义。我不需要成为root
从终端安装的用户吗?在命令sudo
之前使用有什么yum install
帮助?
答案1
如果您已经处于具有 root 权限的 shell 中,那么您是对的;使用没有意义sudo
。但sudo
允许您以 root 身份运行命令没有以 root 身份登录。
原始su
(切换用户)命令允许您以不同用户身份运行程序。它采取全有或全无的方法。如果您知道该用户的密码(或者您已经是root用户),您就可以做任何您想做的事情。如果您不知道密码,则无法执行任何操作。
新的sudo
命令更智能。可以将其配置为仅允许某些命令。它还可以配置为要求你的密码,而不是其他用户的密码(如su
要求的)。 (事实上,这是sudo
正常配置。)
答案2
yum install [...]
如果不使用它也能运行,sudo
则说明您正在以 root 用户身份运行。在这种情况下,使用sudo
是没有意义的。
允许sudo
您做的是以升级的权限运行其他事情从普通用户帐户使用普通用户密码,而不是 root 的密码。
您应该认真考虑始终以普通用户身份使用系统,并sudo
在需要以更多权限运行特定命令时使用。
答案3
sudo 命令设置了 setuid 位,这意味着它始终被授予拥有该文件的用户的权限(除非你自己弄乱了一些东西,否则它总是根)。因此,即使您没有 root 权限,sudo 也会获得它们。所有带有 setuid 的程序都是以特别仔细的方式编写的,以防止漏洞。
须藤读苏多尔斯文件以确定是否允许您以 root 身份执行所选命令以及是否应提示您输入密码。如果允许您运行该命令并且密码正确(如果需要),由于 sudo 具有 root 权限,因此它的所有子项(可能是 yum 和安装脚本)也会获得这些权限。
几年前,当大型机被大量用户使用时,具有 root 访问权限的用户希望允许一些受信任的用户执行一些常用且不太危险的命令,这一点尤其重要。如今,所有命令通常都会授予 sudo 访问权限(至少在家庭桌面上)。