使用哪种方法授予 sudo

使用哪种方法授予 sudo

/etc/sudoers在和添加用户 有什么区别usermod -a -G sudo? 应使用哪种方法授予 sudo?

答案1

如果可以避免,永远不要向个人用户授予 sudo 权限。始终向团体然后将用户添加到该组。

对于基于 ubuntu 的服务器,无需向 中添加行/etc/sudoers,只需将配置文件片段添加到 即可/etc/sudoers.d。这样更灵活、更容易理解、在升级时更具弹性,并且更适合由配置管理系统管理的系统。

注意:切勿/etc/sudoers直接编辑。相反,请使用visudo,它将对您的编辑执行语法检查,防止您使用无效语法破坏 sudo 配置。

答案2

我刚刚发现了这个小秘密……看来你需要特别小心使用-GUbuntu 中的选项,特别是组合-g选项。所以:

  1. 使用usermod -aG将用户添加到组。
  2. 然后正如@EEAA 所建议的那样,使用以下命令将组添加到 /etc/sudoers 文件$ sudovisudo命令(自动调用具有语法检查功能的特权编辑器)。

以下是有关 Ubuntu 上的选项的信息-aG,取自此处http://ubuntuforums.org/showthread.php?t=1240477

“我正在读Wiley《Linux 命令行和脚本圣经》- 他们说 usermod -G 会将一个组“附加”到您正在修改的任何用户帐户。我发现这在 Ubuntu 中是错误的,不知道这是否只是在其他发行版中有所不同,或者是书中的拼写错误。它会将您从您所属的所有其他组中移除,除了您的默认用户组(由 -g 选项修改)。我设法将自己从管理员组中移除,并且无法再使用 sudo 执行任何操作。感谢上帝有恢复模式……'

正确的选项是用户修改-aG。 学过的知识...

答案3

你没有告诉我们你的环境有多大,但如果有多台机器,你可能还需要考虑sudo使用 LDAP 进行配置这是在本地编辑 sudoers 的替代方法(通过visudo或使用/etc/sudoers.dfragments 方法)。

LDAP 配置是一种经过充分测试的方法,可确保多台计算机具有相同的sudo配置,并提供一个良好的统一环境(具有对重要授权机制的集中管理)。如果您已经在环境中使用 LDAP(或 AD)进行身份验证/授权,那么您可以利用现有的基础架构(如果没有,您应该认真考虑一下 - 集中化有很多好处)。

人们在其他答案中已经说过的有关创建授权组的所有内容仍然有效 - 随着规模扩大,向组授予特权并管理组成员资格比管理单个用户的权限更容易。

相关内容