我可以使用sudo但由于密码validation失败我不能使用su,不应该都是同一个密码?

当我尝试使用sudo一切正常,但是,如果我想以超级用户身份登录使用su它不会让我。 为什么?

怎么了?

要使用su命令更改(切换)用户,您应该提供目标用户的密码,它的工作方式。 但是使用sudo您可以使用自己的密码。

例如,如果使用su -命令切换到root用户,则必须使用root的密码,默认情况下它没有任何密码,并且其帐户也被禁用。

有什么不同?

因此,对于su我们向所有需要切换到目标用户的用户赠送一个密码, sudo做的是克服这个问题。

我们设置了一个名为sudoers的文件,在其中我们将定义谁可以做什么,所以每个人都使用sudo和他自己的密码可以certificate它真的是他并运行一些特定的命令。

我能做什么?

您可以使用: sudo -i切换到root,其默认shell作为登录shell,或者对于无登录shell sudo -s甚至是旧学校sudo su - (再次登录shell)。


额外的信息

您还可以使用sudo -l查看您拥有的权限,例如,您是否有权在特定计算机上使用john切换到root或用户bob或运行特定命令?

澄清root帐户:
在Ubuntu机器中,默认情况下root帐户没有任何密码,同时帐户被禁用。 当您禁用帐户时,会在其密码哈希前面添加感叹号“!”,因此无论是否有密码,都无法登录该帐户。

 $ sudo grep root /etc/shadow root:!:2020:0:99999:2::: 

这意味着root没有任何密码(第二部分是空的,它只包含一个感叹号),同时它被禁用:注意!

不,在sudo你输入自己的密码,在su它是root的密码,通常在Ubuntu中被禁用。