将用户添加到“sudoers”与“root”组有什么区别?

Mic*_*ael 6 linux debian sudo permissions

我做了一些研究,为了允许用户使用 sudo 命令,您必须将它们添加到“sudoers”组。只要他们输入 root 的密码,这就会为他们提供 root 权限。但我也遇到过将用户添加到“root”组而不是“sudoers”组的例子。我的问题是这两组之间是否有不同的特权,如果有,它们是什么以及这两种技术的好处是什么?

我正在使用 Debian Linux 服务器。

谢谢

TOO*_*GAM 8

尽管该问题提到了“Debian Linux 服务器”,但目前它同时标记了 Debian 和 Ubuntu。由于有关多个操作系统的信息似乎有些令人感兴趣,因此我将完全忽略对特定操作系统的引用,而仅描述最普遍的标准。

组列在 /etc/group 中,并且经常有一个名为“root”的组。该文件列出了组的名称及其对应的“组 ID”(“GID”)数值。

名为“root”的组中的任何人都可以读取、写入或执行“组所有者”设置为与名为 root 的组相同的“组 ID”(“GID”)的文件。因此,如果一个文件归“bin:root”所有,并且具有“rwxrwx---”权限,那么“root”组中的用户将能够运行该文件,因为中间有一组权限。

相比之下,“sudo”软件设置的标准是基于 /etc/sudoers 文件中存储的配置。在 /etc/sudoers 文件中,Unix 样式的组名显示在百分号之后,如sudoers 手册页(HTML 格式):“sudoers”文件格式部分所述。因此,/etc/sudoers 文件中对 %sudoers 的引用指的是 /etc/groups 文件中名为“sudoers”的组。

默认的 /etc/sudoers 文件不包含对名为“sudoers”的组的引用。请注意,我指的是真正的默认 /etc/sudoers 文件,您可以通过查看sudo 存储库,单击左侧框架中的“浏览”,然后单击“示例”,然后单击“sudoers”来查看该文件。

但是,许多操作系统默认安装了自定义的 /etc/sudoers 文件。因此,您的操作系统很可能特别支持名为 sudoers 的组。要了解确切的影响,请查看 /etc/sudoers 文件。

据推测,如果您的操作系统有一个名为 sudoers 的组,那么该组中的一个人将能够使用 sudo 命令提升权限。(确认这一点的推荐方法是检查 /etc/sudoers 文件。)

当一个人提升他们的权限时,这个人可能需要输入可接受的身份验证(密码),也可能不需要。即使他们这样做了,在通过身份验证后,他们可能会在一段时间内拥有一个“令牌”,这将允许他们再次提升而无需再次进行身份验证(直到该时间段结束)。这段时间为 5 分钟,除非 /etc/sudoers 使用名为“超时”的选项指定不同的内容。

相比之下,“root”组中的人无需输入密码即可访问“root”组拥有的文件。

请注意,“sudoers”组可能是优先的。通过提升,一个人可能能够获得完全的超级用户访问权限。(这是典型的。/etc/sudoers 文件可以允许一个人切换到不同的用户,或者提升但对最初运行的命令有限制。通常,使用默认/简单的配置,提升的人只会变得完整提升。)当作为完全超级用户进行身份验证时,用户通常不受基于典型 Unix 文件系统所有权(“所有者”和“组所有者”设置)的权限的约束。用户可能仍会受到其他基于权限的限制,例如通过挂载分区的方式强制执行的权限(这就是软件不允许用户写入只读 CD-ROM 的原因),或文件可能不提供权限的其他其他原因(例如,如果文件被锁定,表明该文件已被使用)。如果文件由以下人所有:

根:根

并拥有以下权限:

rwx------

然后,用户不会因为该用户在名为“root”的组中而获得对该文件的权限。因此,“root”组可以更方便(不需要密码),尽管它可能受到更多限制。(或者,根据 /etc/sudoers 的配置方式,/etc/sudoers 中的组可能会受到更多限制。)


小智 5

您将在 /etc/group 中指定的“根组”与 unix 权限有关。每个文件都有用户、组和“其他”权限。如果文件设置为 root 组中的用户可以读取它,那么您可以通过将用户置于 root 组中来授予用户读取该文件的能力。当然,该用户可以读取为组 root 设置了读取位的每个文件。

sudoers 文件是关于使用其他用户的有效 ID 运行命令。您可以更精细地控制每个用户可以运行哪些命令,以及作为谁运行。因此,如果您希望用户只能以 root 身份运行一个特定命令,那么您可以在 sudoers 文件中进行设置。