在我的个人计算机上,我经常在某些命令前面键入sudo
以完成管理任务。我一直希望通过输入su root
并提供与sudo
相同的密码来避免整天这样做。但是,这两个密码并不相同(我不知道如何登录到su root
)。使用sudo
运行命令与使用su root
登录和运行相同的命令不同吗?
我认为sudo
和su root
是一样的,因为当我输入sudo whoami
时,我会得到root
,而不是只得到用户名的whoami
。
发布于 2014-01-19 01:05:47
与其最常用的用法相反,su
和sudo
并不仅仅是作为root登录(或执行操作)。
su
允许您转换身份与其他人的身份。因此,当您键入su
时,系统需要验证您是否拥有要更改的目标用户的凭据。
sudo
有点不同。使用sudo
允许您以其他人的身份运行某些命令(或全部命令,取决于配置)。您自己的身份用于确定在其他人的身份下sudo
将为您运行哪些类型的命令:如果您是一个受信任的用户(在系统管理员信任您的意义上),您将被允许比实习生更自由地运行。这就是为什么sudo
需要验证您自己的身份,而不是目标用户的身份。
换句话说,试图su
给你不是的人就像试图用偷来的信用卡来支付你的购买,而使用sudo
就像通过合法代理出售你朋友的汽车一样。
至于您想要做的事情,只需要sudo su root
,或者更简单的sudo su
,然后键入您的常规用户密码。这相当于使用他们给你的合法代理来替换你朋友的信用卡凭证:)。当然,它假定sudo
配置允许您以升级的权限运行su
。
此外,与sudo
access一起预先配置的系统通常禁用根帐户(没有根密码),您可以在通过sudo su
成为根用户后使用passwd
命令。
发布于 2014-01-19 00:06:45
它是可配置的*但是,默认情况下,"sudo“要求您输入密码。它只是试图确保是你,而不是某人使用你的键盘,而你正在喝咖啡。
相反,"su root“要求您输入根密码。
*如果/etc/sudoers中的targetpw为false (默认),"sudo“将询问您的密码。如果为真,则"sudo“向您询问根用户的密码,或者,如果您使用"-u”选项指定了其他用户,则询问该用户的密码。
发布于 2014-01-19 00:09:42
sudo
用于将用户权限临时提升到根级,而su root
用于创建以root用户身份的新shell;
https://unix.stackexchange.com/questions/109944
复制相似问题