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

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

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

我正在使用 Debian Linux 服务器。

谢谢

答案1

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

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

答案2

尽管问题中提到了“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 文件。)

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

相反,“root”组中的人员不需要输入密码即可访问“root”组拥有的文件。

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

根:根

并具有以下权限:

读写权限------

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

答案3

首先,root用户是组中的第一个用户sudoers,就在机器上安装了 ubuntu 之后。其次,root超级用户(例如 Michael)都具有相同的user id( UID),即超级用户的 ID 0。他们具有相同的权限。第三,唯一的区别是,用户必须在任何需要特殊权限的命令之前super user键入命令,而用户则不必这样做。它们只是名称不同,并且会被识别。sudoroot

相关内容