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

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

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

user@user:/home$ sudo -i
root@r00t:~# Voila, i am root and I don't have root password, right?

这是我的 PC 上的一个例子,那么为什么要禁用它呢?多年来,我对禁用 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

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

答案1

首先,您 PC 上的示例是假的,因为当您执行此操作时主机名显然不会改变sudo -i。这是一个真实的例子:

zanna@monster:~$ sudo -i
[sudo] password for zanna:
root@monster:~#

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

禁用 root 登录的主要目的是防止用户的鲁莽行为。除非真的需要,否则没有必要使用 root 权限:一直以 root 身份登录会降低系统的安全性,使其与容易受到病毒和恶意软件攻击的 Windows 系统一样。

如果有人心怀恶意,设法获取具有特权的用户的密码sudo,那么您的麻烦就和他们拥有 root 密码时一样大。Ubuntu 禁用 root 登录的设计决定对此没有影响。

相关内容