为什么“su”命令在 Ubuntu 中不起作用但在其他 Linux 发行版中起作用?

为什么“su”命令在 Ubuntu 中不起作用但在其他 Linux 发行版中起作用?

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

 su: Authentication failure

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

答案1

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

不带参数,su表示“将用户切换为 root”,为此您必须输入 root 的密码,而不是您自己的密码。除非您为 root 提供密码,否则它没有密码,因此您实际上无法以 root 身份登录。

以下是一些背景信息:

在 Unix 世界中,由于 Unix 的多用户传统,普通用户和管理员之间的区别一直很大。Unix 采取的方法是仅在需要时授予超级用户权限。为此,通常使用 su 和 sudo 命令。

直到几年前,大多数 Linux 发行版都依赖 su 来实现此目的。su 不需要 sudo 所需的配置,而且在 Unix 中拥有 root 帐户是传统做法。这带来了一个问题。用户不必要地被诱惑以 root 身份操作。事实上,一些用户只以 root 用户身份操作他们的系统,因为这样可以消除所有那些烦人的“权限被拒绝”消息。这就是将 Linux 系统的安全性降低到 Windows 系统水平的方式。这不是一个好主意。

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

~Linux 命令行

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

通常情况下,你应该使用sudo自己的密码进行身份验证,或者启动 root shell,使用sudo -i

答案2

这是因为在其他发行版中,安装时通常会提示您设置root密码以及用户帐户密码。Ubuntu 在设置期间不会要求输入密码,只会要求输入有权访问root的用户的用户帐户密码,而Ubuntu 中帐户则处于禁用状态。如果您想要启用此功能,请为将启用该帐户的帐户设置密码,以便命令能够正常工作。sudorootrootrootsu

sudo passwd root

希望这可以帮助!

答案3

简要地

Ubuntu 默认禁用 root 帐户,因此没有设置密码,因此导致身份验证失败

要在 Ubuntu 中成为 root,你可以使用以下命令

sudo -i

答案4

(超级用户身份su验证)未配置为安全和管理。当您安装 ubuntu 时,您将以sudo “第一用户”[1000] 的身份获得所有管理访问权限。具有“root”权限sudo。“来宾用户”[1001、1002、1003 等] 将无法使用 进行超级用户身份验证sudo。管理员[具有“root”权限的用户]需要将其他“来宾用户”添加到“组”以获得超级用户权限。

您可以在 Ubuntu 中执行所有su身份验证命令sudo

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

su身份验证使您能够以 root 用户身份修改和删除任何文件或文件夹。

您可以通过以下方式以超级用户身份登录

sudo -i

但是,不建议这样做。

相关内容