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

告诉我为什么

Ubuntu出于“安全原因”禁用root登录。但是,在我看来,这根本对安全性无济于事。

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

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

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

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

林兹风

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用户...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Java的拥有与精密秒时区偏移的支持?

为什么StringBuffer的拥有,而StringBuilder的不是toStringCache?

Linux,即使拥有组权限也为什么不能写?

为什么在Cassandra中拥有大分区如此糟糕?

在AWS Organization中拥有会员帐户有什么意义?

如果程序设置了setuid位,为什么/ proc / self中的文件最终被root拥有?

为什么PlayerController“拥有”偏航俯仰和摇摆,而角色“拥有”其位置?

为什么我可以返回对函数拥有值的引用?

为什么拥有窗口显示在拥有窗口上方?

为什么拥有root特权的用户不再使用〜?

为什么我在Ubuntu 12.04中拥有3.8.0-32内核而不是3.2.0-55?

为什么“ Ubuntu应用”具有对我的Google帐户的完全访问权限?

由于Ubuntu默认情况下会禁用root帐户,为什么不同时禁用root shell访问呢?

为什么SELinux文件系统拥有自己的空设备?

/ var / www为什么不拥有chmod 777

为什么/ usr / local /由root拥有?

重新禁用root帐户

拥有WebView时为什么要使用ImageView?

文件系统已作为root挂载但由用户拥有。为什么?

禁用Ubuntu Guest帐户

禁用Ubuntu中的root帐户?

如果Ubuntu拥有自己的Web浏览器,为什么默认情况下会使用Firefox?

为什么在Ubuntu 16.04中的“锁定/切换”帐户选项中有一个“ libvirt qemu”帐户?

为什么有一个用于MySQL和MariaDB的ROOT(而不是root)帐户?

为什么我同时拥有 root 和 mongodb 权限?

为什么 root 拥有点点“..”目录?

为什么 AWS 的 Ubuntu AMI 带有“ubuntu”用户而不是只允许 root 登录?

无法运行 byobu,因为 [root] 不拥有 [/home/ubuntu]

为什么 IntoIter 不拥有这些值?