为什么’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
但是,不建议这样做。