root 登录 - user@user:/home$ sudo -i root@r00t:~# 瞧,我是 root 而我没有 root 密码,对吧?

0 permissions root sudo password login

我想知道在 Ubuntu 中禁用了 root 帐户以及它是否对安全性有任何影响。如果有人入侵您的 PC,他们可以输入:

user@user:/home$ sudo -i
root@r00t:~# Voila, i am root and I don't have root password, right?
Run Code Online (Sandbox Code Playgroud)

这是我的 PC 上的一个例子, up ,那么为什么要禁用它呢?多年来,我对禁用 root 毫无疑问,但现在我越来越想到这一点......

如果有人已经通过 IP 入侵了您的帐户/PC,或者如果他们只需要输入sudo -i以获得 root权限,则禁用/启用 root 权限有什么区别?

这是这里的一个帖子的引用:

在 Linux 中有一个名为 root 的特殊帐户。默认情况下,它在 Ubuntu 中被锁定,但您可以启用 root 帐户。

然而,这通常不是一个好主意,您应该在启用 root 登录之前非常仔细地考虑。

有几个很好的理由不以 root 身份登录,而是使用,sudo 包括

  • 用户不必记住他们可能会忘记的额外密码(即 root 密码)(或记下以便任何人都可以轻松破解他们的帐户)。
  • 默认情况下,它避免了“我可以做任何事情”的交互式登录(例如,用户倾向于在 Microsoft Windows 系统中以“管理员”用户身份登录),在发生重大更改之前会提示您输入密码,这应该会让您想想你正在做的事情的后果。
  • sudo添加命令运行的日志条目(在/var/log/auth.log)。如果您搞砸了,您可以随时返回并查看运行了哪些命令。它也很适合审计。
  • 每个试图强行进入您的盒子的破解者都会知道它有一个名为 Root 的帐户,并会首先尝试。他们不知道您其他用户的用户名是什么。由于 Root 帐户密码被锁定,因此这种攻击在本质上变得毫无意义,因为首先没有密码可以破解或猜测。
  • 通过在组中添加和删除用户,在不损害 Root 帐户的情况下,允许在短期或长期内轻松转移管理员权限。sudo 可以使用更细粒度的安全策略进行设置。

这在 RootSudo 社区文档中有更详细的讨论

如果您有许多通常需要 sudo 的命令,您可以sudo -i在第一个命令之前键入,然后在最后一个命令之后退出,以避免重复键入 sudo。要运行具有 root 权限的 GUI 应用程序,请按 ALT+F2 并输入 gksu 或 gksudo 后跟您的程序名称(除非您使用的是 KDE 桌面,在这种情况下命令是 kdesu)

例如 gksu nautilus 以 root 权限运行文件管理器。

如您所见,几乎不需要启用 root 登录。据说要启用 root 登录,只需要设置一个 root 密码

 sudo passwd root
Run Code Online (Sandbox Code Playgroud)

并设置密码。然后您将能够以 root 身份登录,但由于我上面给出的所有原因,我不建议您这样做。

Zan*_*nna 8

首先,来自您 PC 的示例是一个假示例,因为sudo -i很明显,当您这样做时主机名不会更改。这是一个真实的例子:

zanna@monster:~$ sudo -i
[sudo] password for zanna:
root@monster:~#
Run Code Online (Sandbox Code Playgroud)

(我输入了我自己的用户密码)。现在因为我实际上不需要这个 root shell 来做任何事情,所以我要做的第一件事就是exit它。

禁用 root 登录的主要目的是防止用户的鲁莽行为。除非您确实需要,否则没有理由使用 root 权限:始终以 root 身份登录会将系统的安全性降低到易感染病毒和恶意软件的 Windows 系统的安全性。

如果有恶意的人设法获得了具有sudo特权的用户的密码,那么您遇到的麻烦与他们拥有 root 密码时一样多。Ubuntu 在禁用 root 登录方面的设计决定对此没有影响。