我猜是因为 root 密码是默认用户帐户密码(如果我错了请纠正我)在终端中当我输入 su 时它会询问我密码当我输入密码时它说身份验证失败为什么会这样??
答案1
默认情况下,Ubuntu 不设置 root 密码,因此您无法以 root 身份登录。相反,您可以使用 sudo 以超级用户权限执行任务。
我已经回答了一个类似问题前。
当你能为 root 帐户创建一个密码,允许您以 root 身份登录su
,这不是典型的“Ubuntu”做事方式。
Sudo 是为执行超级用户职责而授予用户 root 密码的替代方法。在默认的 Ubuntu 安装中,安装操作系统的人默认被授予“sudo”权限。
任何拥有“sudo”权限的人都可以通过在命令前附加命令来“以超级用户身份”执行某些操作sudo
。例如,要apt-get dist-upgrade
以超级用户身份运行,您可以使用:
sudo apt-get dist-upgrade
在网上阅读有关 Ubuntu 的教程时,你几乎都会看到 sudo 的这种用法。这是执行此操作的替代方法。
su
apt-get dist-upgrade
exit
使用 sudo,您可以提前选择哪些用户具有 sudo 访问权限。他们无需记住 root 密码,因为他们使用自己的密码。如果您有多个用户,只需删除他们的 sudo 权限即可撤销某个用户的超级用户访问权限,而无需更改 root 密码并通知每个人新密码。您甚至可以选择允许用户使用 sudo 执行哪些命令以及禁止该用户执行哪些命令。最后,如果存在安全漏洞,在某些情况下它可以留下更好的审计线索,显示哪个用户帐户被盗用。
Sudo 使使用超级用户权限执行单个命令变得更容易。使用su
,您可以永久进入超级用户 shell,必须使用exit
或退出logout
。这可能会导致人们停留在超级用户 shell 中的时间超过必要时间,只是因为这比注销并稍后再次登录更方便。
使用 sudo,您仍然可以选择使用以下命令打开永久(交互式)超级用户 shell:
sudo su
...并且这仍然可以在没有任何 root 密码的情况下完成,因为sudo
赋予了该命令超级用户权限su
。
类似地,您可以使用或 甚至su -
来代替登录 shell 。sudo su -
sudo -i
但是,在这样做时,您只需意识到您是作为每个命令的超级用户。 一个很好的安全原则是不要以超级用户身份停留超过必要的时间,只是为了减少意外对系统造成损害的可能性(没有它,您只能损坏用户拥有的文件)。
需要澄清的是,你能,如果您愿意,请为 root 用户提供一个密码,允许以 root 身份登录,如果您特别想这样做的话。我只是想让您了解 Ubuntu 的偏好惯例,sudo
并让您知道还有另一种选择。