为什么 Ubuntu 禁用 root 帐户?

为什么 Ubuntu 禁用 root 帐户?

Ubuntu 出于“安全原因”禁用 root 登录。然而,在我看来,这对安全没有任何帮助。

如果入侵者设法获取您的 Ubuntu 登录密码,那么他也拥有超级用户密码,因为它与登录密码相同。

然而,如果需要 root 密码,那么仅仅拥有登录名对入侵者来说没有太大帮助 —— 对吧?

所以基本上我想知道的是:Ubuntu 为什么选择禁用 root 密码?出于什么安全原因?

请不要根据您“认为”的原因来回答 - 我正在寻找来自官方来源或与之相关的答案。

答案1

Mitch 在评论中发布了一个很好的链接:为什么以 root 身份登录不好?Debian 网站列出了主要优点他们的维基

为什么sudo

sudo由于多种原因,使用比以 root 身份打开会话更好(更安全),其中包括:

  • 没有人需要知道 root 密码(sudo提示输入当前用户的密码)。可以暂时向个人用户授予额外权限,然后无需更改密码即可将其取消。

  • 通过 可以轻松仅运行需要特殊权限的命令sudo;其​​余时间,您以非特权用户的身份工作,从而减少错误可能造成的损害。

  • 审计/日志记录:当sudo执行命令时,会记录原始用户名和命令。

由于上述原因,使用sudo -i(或sudo su)切换到 root 通常被弃用,因为它取消了上述功能。

关于 Ubuntu优点和缺点列于我们的维基

使用 sudo 的好处

Ubuntu 默认禁用 root 登录有许多好处,其中包括:

  • 安装程序询问的问题更少。用户不必记住偶尔使用的额外密码(即 root 密码)。如果他们记住了,他们很可能会忘记它(或不安全地记录它,让任何人都能轻易破解他们的系统)。

  • 它默认避免了“我可以做任何事情”的交互式登录。在发生重大更改之前,系统会提示您输入密码,这应该让您考虑所做之事的后果。

  • sudo 添加运行命令的日志条目(在 中/var/log/auth.log)。如果搞砸了,您可以返回并查看运行了哪些命令。

  • 在服务器上,每个试图强行入侵的黑客都知道它有一个名为 root 的帐户,并会首先尝试该帐户。他们不知道的是其他用户的用户名是什么。由于 root 帐户密码被锁定,这种攻击基本上毫无意义,因为首先没有密码可以破解或猜测。

  • 通过添加和删除组中的用户,可以轻松转移管理员权限。当您使用单个 root 密码时,取消用户授权的唯一方法是更改​​ root 密码。
  • sudo 可以设置更细粒度的安全策略。root 帐户密码不需要与需要在系统上执行某种管理任务的每个人共享(参见上一条)。

  • 身份验证会在短暂的时间后自动过期(可以设置为所需的最短时间或 0);因此,如果您在使用 sudo 以 root 身份运行命令后离开终端,则不会无限期地打开 root 终端。

使用 sudo 的缺点

虽然对于桌面来说使用 sudo 的好处很多,但仍存在一些需要注意的问题:

  • 重定向使用 sudo 运行的命令的输出需要不同的方法。例如,考虑sudo ls > /root/somefile 将不起作用,因为是 shell 尝试写入该文件。您可以使用ls | sudo tee -a /root/somefile附加或ls | sudo tee /root/somefile覆盖内容。您还可以将整个命令传递给在 sudo 下运行的 shell 进程,以便使用 root 权限写入文件,例如sudo sh -c "ls > /root/somefile"

  • 在许多办公环境中,系统上唯一的本地用户是 root。所有其他用户都使用 NSS 技术(如 nss-ldap)导入。要设置工作站,或在发生网络故障(nss-ldap 损坏)时修复它,需要 root。除非破解,否则这往往会使系统无法使用。这里需要额外的本地用户或启用的 root 密码。本地用户帐户应该在本地磁盘上有其 $HOME,不是在 NFS(或任何其他联网文件系统)上,以及不引用 NFS 挂载上的任何文件的 .profile/.bashrc。这通常是 root 的情况,但如果添加非 root 救援帐户,则必须手动采取这些预防措施。但是,使用本地用户和 sudo 的优点是可以轻松跟踪命令,如上文所述。

我们一直都有它(从第一个版本开始)。


我发现的最古老的参考资料提到 4.10 有“sudo”

沙特尔沃斯推出基于 DEBIAN 的 UBUNTU Linux

... 基于 Debian 的 Ubuntu Linux 包含 Gnome 2.8、内核 2.6.8.1、OpenOffice.org 1.1.2,并附带基于文本但简单的安装程序。Ubuntu 已禁用 root 用户,而更喜欢使用 sudo,就像 Mac OSX 一样...

答案2

我相信所写的在帮助页面上足够清晰,足够客观。

Ubuntu 是“为所有人而设”的虽然如果你足够优秀,你不需要 root 权限就可以损坏你的计算机,但同时你几乎根本不需要它(并且你知道如何轻松启用它)。
所以问题不在于那些“足够优秀”的人,而在于其他所有人,他们可能从另一个计算世界来到 Linux,而第一个影响就是 Ubuntu(我们有很多)。

如果您不是专家,不知道具体root是什么以及如何正确处理它,您既不想也不需要启用它(例如,冒着风险使用它进行图形登录)。
最好先学会如何安全地做事,然后再走更难更危险的道路,而不是直接从困难的道路开始,然后损坏您的安装/工作站,感到沮丧,甚至可能无法恢复完全正常工作的系统。
一般来说,预防比治疗要好得多。

相关内容