为什么Ubuntu拥有禁用的root帐户?


57

Ubuntu出于“安全原因”禁用root登录。但是在我看来,这完全没有帮助安全。

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

但是,如果需要root密码,那么仅进行登录就不会对入侵者有太大帮助-是的,不是吗?

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

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


6
看看有助于。
米奇

5
使用sudo的原因与首先创建sudo的原因相同。
托尔比约恩Ravn的安徒生

2
对于没有系统管理背景的Windows和OSX用户,Canonical认为这是可用性和安全性之间的最接近平衡。拥有桌面发行版的全部目的是吸引那些不想自己了解Linux但希望能够找到想要运行的东西,单击它们并让它们运行的​​人。当“普通”用户对不仅仅是做网络/邮件/ pr0n /游戏感到好奇时,Ubuntu可以成为他们所听说过的所有酷Unixy东西的门户(包括“启用”根-它一直都存在) ,请尝试sudo su)。
zxq9

1
如果有人为您的帐户提供密码,那么当您输入帐户密码时,他们可以捕获root密码su。仅当您以root用户身份在单独的控制台上登录,并且永远不要以root用户身份信任普通帐户具有写权限的任何文件时,才可以进行特权升级。正如现有答案所说,其主要原因是劝阻新手不要将root视为应该登录并使用的帐户。
彼得·科德斯

2
另请参阅哪种最安全的方式来获得root特权:sudo,su或login?在Unix / Linux Stack Exchange上。
mattdm 2015年

Answers:


81

Mitch在评论中张贴了一个很好的链接:为什么以root用户身份登录很不好?Debian站点在其Wiki中列出了主要的好处:

为什么sudo

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

  • 没人需要知道root密码(sudo提示输入当前用户的密码)。可以将临时特权授予单个用户,然后无需更改密码即可将其删除。

  • 通过sudo; 只运行需要特殊特权的命令很容易。其余时间,您将以非特权用户身份工作,从而减少了错误可能造成的损害。

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

由于上述原因,通常不建议使用sudo -i(或sudo su)切换到root用户,因为它会取消上述功能。

关于Ubuntu的优缺点在我们的Wiki上列出:

使用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 将无法工作,因为它是尝试写入该文件的外壳程序。您可以ls | sudo tee -a /root/somefile用来追加或ls | sudo tee /root/somefile覆盖内容。您还可以将整个命令传递给在sudo下运行的shell进程,以使用root权限(例如)写入文件sudo sh -c "ls > /root/somefile"

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

而且我们一直都有(从第一版开始)。


我发现的最旧参考文献讲的是4.10,其中包含“ sudo”

SHUTTLEWORTH推出基于DEBIAN的UBUNTU LINUX

...基于Debian的Ubuntu Linux包括Gnome 2.8,内核2.6.8.1,OpenOffice.org 1.1.2,并带有基于文本的安装过程,但操作简单。Ubuntu已禁用像Mac OSX一样更喜欢使用sudo的root用户...


优点缺少几个安全功能:(i。)(对于GUI)如果没有交互式本地访问(在键盘上键入密码),没有人可以获得“提升的特权” ;(ii。)授予的“特权提升”仅适用于sudo'd命令,而不适用于用户(或root)的任何任务/线程。
david6

这似乎忽略了原始问题中提出的观点,并用许多其他信息将其掩盖了,为什么它那么好?
paul23

6

我相信帮助页面上写的内容足够清晰和客观。

Ubuntu是“为每个人准备的”,尽管即使您足够优秀,也不需要root用户访问权限来破坏计算机,但同时几乎不需要它(而且您知道如何轻松启用它)。
因此,问题不在于“足够优秀”的人,而是其他所有人,这可能是来自另一个计算世界的Linux,而第一个影响是Ubuntu(我们很多人)。

如果您不是专家,也不知道确切是什么root以及如何正确处理它,则既不需要也不需要启用它(例如,冒用它进行图形登录的风险)。
学习如何安全地做事,然后走上更艰难,更危险的道路要好得多,而不是直接从艰难的道路开始,然后损坏您的安装/工作站,感到沮丧,甚至无法恢复正常工作。系统。
通常,预防胜于治疗。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.