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

Pet*_*gru 17 root sudo

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

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

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

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

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

cas*_*cas 34

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

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

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

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

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

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

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

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

  • 1. 这就是为什么我说“可能”而不是“肯定”。2. 并不是每个人都将 sudo 配置为开放式。有些人努力根据自己的具体需求定制 sudoers,无论他们可能使用的发行版的默认设置是什么。 (8认同)
  • “拥有 root 密码可能比仅仅允许以 root 身份运行某些命令危险得多。” - 为什么??例如 Ubuntu 中的默认配置是允许通过 `sudo` 运行_anything_,甚至是 `sudo bash`、`sudo -s` 或 `sudo chmod u+s /bin/sh`。这与刚开始设置根密码后登录没有太大区别。 (5认同)
  • 另外,如果用户习惯使用“sudo”执行所有操作(即使它是开放式的),至少他们的命令会被记录下来(直到他们发现“sudo -s”等)。 (5认同)
  • 呃,是的,我问的是这种潜力。是的,当然您可以更改 sudo 配置,或删除它,或将其安装到没有的系统中,或完全使用其他东西。但问题确实询问了“大多数发行版中的默认配置”的基本原理。(无论如何,默认值相当相关,IMO,正是因为它们很普遍。) (2认同)
  • @Philippos 我**不**认为他们在询问多用户环境。他们根本没有描述他们的环境,所以我不做任何假设。顺便说一句,针对单用户桌面的发行版甚至没有 root 密码的情况并不罕见。一些发行版甚至不要求您设置一个,他们只是使用禁用的密码设置 root,如果您想要一个密码,您必须自己设置(就我个人而言,我认为这是不好的做法,但出于某种奇怪的原因,他们没有这样做)请咨询我)。 (2认同)

bxm*_*bxm 25

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

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

  • 反之亦然:每个使用 sudo 的人都知道 root 密码;如果某个用户不再具有访问权限,则需要更改 root 密码,并将更改通知其他人。 (28认同)

dr_*_*dr_ 8

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

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

    \n
  • \n
  • sudo问责制,因为可以记录通过运行的命令,以便知道运行了什么

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

    \n
  • \n
\n

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

\n
\n

添加OP后编辑:

\n
\n

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

\n
\n

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

\n

“只有root,才能真正的痛苦\xe2\x80\x93,从而达到开悟\xe2\x80\x93。”

\n