将用户添加到 sudoer 组的最佳方法是什么?

将用户添加到 sudoer 组的最佳方法是什么?

到目前为止,我已经找到了四种将用户添加到 sudoers 组的不同方法,但并非所有方法都适用于所有系统。为什么有这么多不同的实现?哪个最好?标准是什么(即在大多数系统中工作)?

不同的实现:

  1. 将用户添加到“wheel”组。
  2. 将用户添加到“sudo”组。
  3. 编辑文件 /etc/sudoers
  4. 使用 visudo 编辑文件 /etc/sudoers

答案1

有两种(主要)方法可以授权用户通过 sudo 以 root 身份运行命令:

  • 声明“Alice 可以以 root 身份运行命令”;
  • 声明“Alice 是系统管理员”并且“系统管理员可以以 root 身份运行命令”。

声明“Alice 是系统管理员”的方法是使她成为 sysadmins 组的成员,但 sysadmins 组没有标准名称(也没有任何必须存在 sysadmins 组的义务)。一些传统的 Unix 系统有一个名为wheel,但往往处于wheel组只是成为root的先决条件,用户还必须知道root密码并运行su(特别是BSD就是这样使用的)。某些发行版(例如 Ubuntu 和 Debian)在其默认配置中包含一个名为“该组的成员可以以 root 身份运行命令”的组sudo和规则。sudo

如果/etc/sudoers(或 中的文件/etc/sudoers.d)包含类似 的行,那么您可以通过将用户添加到组 ( )%sudo ALL=(ALL:ALL) ALL来使用户成为 sudoer 。这个名字并不神奇,你只需要匹配 中的条目即可。sudoadduser alice sudosudo/etc/sudoers

切勿直接编辑/etc/sudoers(或 下的文件/etc/sudoers.d):如果出现语法错误,您将无法获得 root 访问权限。始终用于visudo编辑该文件。要选择运行的编辑器visudo,请设置VISUAL环境变量(或EDITOR,只要VISUAL未设置)。在多用户计算机上,使用visudo具有额外的优点,即它可以在两个管理员同时编辑文件的情况下进行锁定。

答案2

adduser username sudo对我有用——但是,我使用 Debian,它有一个sudoers默认授予sudo组中每个人 sudo 访问权限的文件。

答案3

因为Ubuntu我添加了<somefile>以下/etc/sudoers.d/行:

<user> ALL=(ALL:ALL) ALL

使用命令:

visudo -f /etc/sudoers.d/<somefile>

建议这样做,因为它使/etc/suoders文件保持不变,从而避免升级之间的冲突(以及所需的后续手动解决方案)。看:为什么是/etc/sodoers.d/

答案4

方法 2 和 4 几乎适用于所有 Linux。甚至不要尝试在工作系统上使用 3!它可能会损坏系统。方法 1 可以,但不是必须的。

为什么应该使用 visudo 而不是手动编辑 /etc/sudoers?

一旦我获得 root 访问权限,我就使用 visudo 来修复 sudoers 文件。为什么是维苏多?因为那是您应该使用的程序。是的,我有点生气,因为破坏这个服务器的人应该更清楚。 Visudo 是一个可爱的小程序,它在保存 sudoers 文件之前检查它的语法,这样,如果您做了一些极其愚蠢的事情,您就会在它成为问题之前就知道它,并阻止您以 root 身份重新进入系统。

http://lickthesalt.com/2009/07/06/fail-why-you-should-always-use-visudo/

相关内容