默认情况下,Ubuntu不设置root密码,因此您无法以root用户身份登录。相反,您可以使用sudo以超级用户权限执行任务。
我之前也回答过类似的问题。
尽管您可以为root帐户创建密码,从而允许您使用root身份登录su
,但这不是典型的“ Ubuntu”操作方式。相反,Ubuntu期望您将使用sudo
。
使用sudo
Sudo是为人们提供超级用户密码以执行超级用户职责的替代方法。在默认的Ubuntu安装中,默认情况下会向安装操作系统的人授予“ sudo”权限。
具有“ sudo”许可权的任何人都可以通过sudo
在命令之前附加“超级用户”的身份来执行某些操作。例如,要apt-get dist-upgrade
以超级用户身份运行,可以使用:
sudo apt-get dist-upgrade
默认情况下,sudo在执行此操作时会询问您自己的帐户密码。这有助于安全性。这会记住几分钟,因此,如果您有一些与sudo有关的任务,它只会在第一次询问您的密码。
在网上阅读有关Ubuntu的教程时,几乎都会看到sudo的上述用法。这是替代方法。
su
apt-get dist-upgrade
exit
好处
使用sudo,您可以预先选择哪些用户具有sudo访问权限。由于他们使用自己的密码,因此无需记住根密码。如果您有多个用户,则只需删除超级用户的sudo权限即可撤销其超级用户访问权限,而无需更改root密码并通知所有人新密码。您甚至可以选择允许用户使用sudo执行哪些命令,以及禁止该用户使用哪些命令。最后,如果存在安全漏洞,则在某些情况下可以留下更好的审核记录,以显示哪个用户帐户遭到入侵。
没有root密码将无法对root帐户进行暴力攻击:这与允许通过SSH登录有关。相反,攻击者需要知道本地帐户名。
使用Sudo可以更轻松地使用超级用户权限执行单个命令。使用su
,您将永久掉入必须使用exit
或退出的超级用户外壳程序logout
。这可能导致人们在超级用户外壳程序中停留的时间比必要的时间长,这是因为它比注销然后再登录更方便。
获取根shell
使用sudo,您仍然可以选择使用以下命令打开永久(交互)超级用户外壳程序:
sudo su
...,并且仍然可以在没有任何root密码的情况下完成此操作,因为sudo
它为su
命令赋予了超级用户特权。
同样,su -
您可以使用sudo su -
甚至来代替登录shell sudo -i
。
但是,这样做时,您只需要知道您正在充当每个命令的超级用户即可。这是一个很好的安全原则,不要以超级用户身份停留超过必要的时间,而只是为了减少意外损坏系统的可能性(如果没有,则只能破坏用户拥有的文件)。
为了清楚起见,如果您愿意,可以选择为根用户提供一个密码,该密码允许以root用户身份登录。我只是想让您了解sudo
代替的Ubuntu约定,并让您知道还有另一种选择。