为什么’su’命令在Ubuntu中不起作用,在其他Linux发行版中起作用呢?

当我在终端输入su命令时,我得到了

  su: Authentication failure 

为什么这不适用于Ubuntu? 我在另一个Linux发行版(Parrot OS)中尝试过这个命令,它确实有效。

因为在Ubuntu中,默认情况下root没有密码。

没有参数, su意味着“将用户切换到root”,为此,您必须输入root的密码,而不是您自己的密码。 除非你给root一个密码,否则它没有密码,所以你不能以root身份直接登录。

这是一些背景知识:

在Unix世界中,由于Unix的多用户传统,常规用户和管理员之间总是存在更大的划分。 Unix中采用的方法是仅在需要时授予超级用户权限。 为此,通常使用su和sudo命令。

直到几年前,大多数Linux发行版都依赖于su来达到这个目的。 su不需要sudo所需的配置,并且拥有root帐户在Unix中是传统的。 这引入了一个问题。 用户很想不必要地以root身份运行。 实际上,一些用户专门以root用户身份操作他们的系统,因为它消除了所有那些恼人的“许可被拒绝”消息。 这就是将Linux系统的安全性降低到Windows系统的安全性的方法。 不是个好主意。

当Ubuntu推出时,它的创建者采取了不同的策略。 默认情况下,Ubuntu禁用登录到root帐户(通过无法为帐户设置密码),而是使用sudo授予超级用户权限。 初始用户帐户被授予通过sudo对超级用户权限的完全访问权限,并可授予后续用户帐户类似的权限。

~ Linux命令行

你可以使用su切换用户,如果你知道要切换到的用户的密码,例如,我可以su pixie作为我的备份用户登录。

通常,您应该使用sudo和您自己的密码进行身份validation,或者启动root shell,使用sudo -i

这是因为在安装它们的其他发行版中,它们通常会提示您设置root密码以及用户帐户密码。 Ubuntu在安装过程中不要求root密码,只有用户的帐户密码才能在Ubuntu中禁用root帐户。 如果要启用此function,请为root帐户设置密码,以启用root帐户以允许su命令工作。

 sudo passwd root 

希望这可以帮助!

默认情况下, su没有密码。 运行该命令时,您尝试登录计算机上隐藏的root帐户。 我将假设Parrot OS使用root帐户或将密码设置为你的帐户,否则它将无效。

如果你想使用su ,那么你可以运行sudo passwd root并设置你想用来登录su的密码。 这也将使root用户成为完整帐户用户,但我不建议这样做。

相反,当您在该shell中需要持久的root权限时,请使用sudo su 。 这将允许您使用自己的帐户和密码成为root用户。 sudo -i将具有相同的效果(人们会建议你使用它)。

简要地

默认情况下,在Ubuntu中禁用root帐户,因此没有设置密码,因此会导致身份validation失败

要成为Ubuntu的root用户,可以使用它

 sudo -i 

su (超级用户身份validation)未配置安全性和安全管理。 当您安装ubuntu时,您可以使用sudo作为’拳头用户'[1000]获得所有管理访问权限。 sudo的’root’权限。 ‘访客用户'[1001,1002,1003等]将无法使用sudo进行超级用户身份validation。 Admin [具有’root’权限的用户]需要将其他’访客用户’添加到’group’以获得超级用户权限。

您可以在Ubuntu中使用sudo执行所有su身份validation命令。

对于其他Linux发行版,系统将“root用户”读作[500],将“第一个用户”读作[501]。

su身份validation使您可以以root用户身份修改和删除任何文件或文件夹。

您可以以超级用户身份登录

 sudo -i 

但是,不建议这样做。