我想知道 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 登录的设计决定对此没有影响。