为 sudo 设置 root 密码是最佳实践还是相反?

为 sudo 设置 root 密码是最佳实践还是相反?

我已将其设置sudoers为每次使用时都会询问 root 密码而不是用户密码sudo。主要是因为我认为如果你想执行root命令,你应该知道root密码是有道理的。

但是,这可以被视为安全风险吗?

如果不是,为什么这不是大多数发行版中的默认配置?

编辑:我正在运行一台个人 Linux 机器,我是唯一的用户。在这种情况下,这个理由是否更有意义?我确实认为这可能不适用于多用户系统。

背景:我的经验sudo是在系统上,它sudo只是 的“同义词” su。只需输入用户密码就可以运行任何 root 命令,我认为这从一开始就违背了 root 的目的。因此我的理由是让它询问你 root 密码。话虽如此,我并不知道 的强大功能sudoers,但一些用户提到您可以指定可以运行哪些命令sudo(同时省略一些仅限 root 用户使用的命令)。我认为这是一个很好的中间立场

答案1

sudo有些人会认为这是一个安全风险,因为它破坏了使用而不是的两个主要目的su,它们是:

  1. sudo可以轻松地允许用户以 root 身份运行某些(但不是全部)命令,并且

  2. 您不必给出 root 密码。拥有 root 密码可能比仅仅允许以 root 身份运行某些命令危险得多。

一旦某人拥有 root 密码,他们就可以以 root 身份登录或使用su.撤销一个人的 root 访问权限也更加困难 - 您必须更改 root 密码并让每个人都知道新密码是什么。使用sudo的默认配置,您只需更改 sudoers 文件和/或从 sudo 组中删除用户。

这就是为什么它不是 的默认配置sudo

我强烈建议您恢复到默认行为,因为几乎可以肯定,它比您认为您应该知道 root 密码“有意义”的想法更经过深思熟虑。 “常识”通常既不“普遍”也不“明智”。

sudo编写该文件(至少部分是为了避免当每个需要一定能力来执行某些根级系统管理任务的人都必须知道根密码时所造成的问题)。在实践中,这被证明是非常有问题的,尤其是在大学或公司这样的大型环境中,人们的角色经常发生变化。

多年来,我在多种环境中工作过,人们在同一组织中担任其他角色之前(甚至完全离开组织),但仍然拥有机器上的 root 访问权限,而他们甚至不应该拥有有效的登录权限。还有一个问题是,当您做了实际上正确的事情并在不再需要这些事情时删除 root 访问权限和/或禁用帐户时,人们常常会感到不安。

答案2

考虑一个假设的(但非常合理的)场景:拥有 root 密码的用户错误地更改了 root 的密码,并且没有记录它。

您现在遇到的情况是没有人拥有 root 密码,因此没有人可以提升到root。这有效地破坏了sudo每个人的 root 密码,需要采取补救措施(需要停机)来重置密码。

答案3

与给出 root 密码相比,sudoers 机制有很多优点:

  • 允许以管理员身份运行一组受限制的命令

  • 问责制,因为可以记录通过运行的命令sudo以便了解WHO什么

  • 只需在管理员组中添加和删除用户,即可轻松转移管理员权限

为所有用户提供 root 密码完全无法使用 sudoers,因为用户不需要使用sudo:他们只需以 root 身份登录即可。


添加OP后编辑:

编辑:我正在运行一台个人 Linux 机器,我是唯一的用户。在这种情况下理性更有意义吗?我确实认为这可能不适用于多用户系统。

实际上,如果您是系统上的唯一用户,则上述内容不适用,并且您可以以 root 身份登录,而不是在sudo需要以管理员身份操作时随时运行。但要小心,你的行为会产生更大的影响,并且更容易损坏系统。引用一位古代 UNIX 禅师的话:

“只有通过根源,才能实现真正的痛苦,从而获得启蒙。”

答案4

您的问题表明您是该系统上的唯一用户(我有设置我的sudoers … 每次使用 sudo),而给出的答案主要是从多用户的角度来看的。

默认配置的原因是最初的想法sudo:为某些用户提供受限制的超级用户访问权限。

在今天的 Linux 发行版中,这个想法可能更像您的想法:通过一个小的“请注意”提醒轻松访问系统的受限区域。

在这种情况下使用 root 密码有一个主要优点(如果设置了 root 密码):

如果sudo权限配置正确,知道你的密码只会损害你的帐户,而不是整个系统(可能包括你的备份)。你需要第二把钥匙才能进入机房。

相关内容