我正在使用 Yocto 为主板构建图像。我已禁用该root
用户。我正在添加一个新用户,比如说adminuser1
。在我看来,作为管理员有两种选择adminuser1
。
- 添加
adminuser1
到 /etc/sudoers 中的 sudoers - 创建一个新文件
/etc/sudoers.d/0001_admin1
并添加一行adminuser1 ALL=(ALL) ALL
默认/etc/sudoers
有该sudo
组评论# %sudo ALL=(ALL) ALL
我试图了解哪种方法在安全性方面更好:
- 我应该添加
adminuser1
到sudo
组并取消注释# %sudo ALL=(ALL) ALL
吗/etc/sudoers
- 添加
/etc/sudoers.d/0001_admin1
和仅adminuser1 ALL=(ALL) ALL
在文件中添加。
答案1
sudoers
和之间的选择sudoers.d
与安全性无关,而与可维护性有关。
- 通过取消注释
sudo
中的组行/etc/sudoers
,您可以添加需要对sudo
组具有 sudo 访问权限的所有用户。这可能比在 中添加新文件更容易sudoers.d
,也可能不那么容易,具体取决于您的设置。但是,更改附带的配置文件可能会使事情变得更加困难(例如,如果您的发行版有更新会覆盖 sudoers 文件,您必须确保保留您的更改)。 - 通过将文件添加到
/etc/sudoers.d
,您不会遇到我上面暗示的更新问题,但是如果您显式添加配置adminuser1
而不是sudo
组,则添加更多用户以拥有 sudo 权限将需要添加更多文件/etc/sudoers.d
;这可能会或可能不会比仅仅将它们添加到正确的组更复杂。
没有一种方法是“最好的”;并且肯定不存在基于“我在哪个文件中配置 sudo 权限”的安全问题。只需考虑这两种方法的优点和/或缺点,并使用最适合您的用例的方法。
答案2
来自维基百科:
最小特权原则(也称为最小特权原则或最小权限原则)要求在计算环境的特定抽象层中,每个模块(例如进程、用户或程序,取决于主体)必须能够仅访问其合法目的所需的信息和资源。
这意味着选项 2 是最好的,因为您可以定制 adminuser1 的权限。使用选项 1,当将来您将 adminuser2 添加到 sudo 组时,他们将具有相同的权限,但不允许您定制这两个用户的权限。
此外,始终使用维苏多编辑 sudoers 文件。
华泰