使用哪种方法授予sudo


13

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


6
对于Ubuntu,您应极力避免/etc/sudoers在任何情况下进行编辑。而是将配置片段添加到/etc/sudoers.d目录中。由于您修改了conffile,因此使用fragments文件夹使升级更加容易。
Zoredache 2014年

@Zoredache-非常好。您是否在我将其添加到答案中?我不想为此功不可没,但是这个提示应该放在一个答案中,以防万一评论之神出于某种原因而uke之以鼻。
EEAA 2014年

2
@EEAA,我授予您使用上述内容的权限,以及我发布的其他评论以合并为实际答案。我添加评论是因为我太懒/不忙,无法添加完整的答案,但是我不介意人们是否接受我的评论并将其整合为一个完整的好答案。
Zoredache 2014年

Answers:


19

如果可以避免,请不要向单个用户授予sudo特权。始终将特权授予一个,然后将用户添加到该组。

对于基于ubuntu的服务器,无需在其中添加行,而是/etc/sudoers将配置文件片段添加到中/etc/sudoers.d。这在升级时更加灵活,更易于理解,更具弹性,并且可以更好地与由配置管理系统管理的系统配合使用。

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


为什么不将组添加到/etc/sudoers
Flak DiNenno 2014年

1
@FlakDiNenno-是的,这正是我的建议。
EEAA 2014年

ahhh ...我以为您是指usermod -a -G sudo
Flak DiNenno 2014年

为使用visudo而不是直接编辑的警告+1
Flak DiNenno 2014年

好点的visudo。某些人没有意识到/etc/sudoers标记为只读的原因。
ub3rst4r 2014年

9

我只是在那里发现了这个小窍门...似乎您在使用-GUbuntu中的选项(尤其是组合-g选项)时需要格外小心。所以:

  1. 使用usermod -aG用户(一个或多个)添加到组。
  2. 然后按照@EEAA的建议,使用$ sudovisudo命令将该组添加到/ etc / sudoers文件中(通过语法检查自动调用特权编辑器)。

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

'我正在阅读Wiley的“ Linux命令行和脚本圣经” -他们说usermod -G将一个组“追加”到您要修改的任何用户帐户。我发现这在Ubuntu中是错误的,不知道它是否与其他发行版有所不同,或者书中是否有错字。它会将您从您所属的每个其他组中删除,默认用户组除外(由-g选项修改)。我设法将自己从管理组中删除,无法再进行任何操作。谢天谢地,恢复模式...”

正确的选项是usermod -aG。学过的知识...


2
下降投票者能否在此礼貌地提出一些建设性的批评。tia。
Flak DiNenno 2014年

我没有投票给您,但是您的“答案”并没有真正回答所提出的问题。这是一个非常严格的问答网站,我们通常希望答案能够直接解决所提出的问题。顺便说一句,是的,我知道您在某种程度上解决了这个问题,但是您的“答案”似乎最能说明EEAA的所作所为,但是请注意这一奇怪的怪癖。
Zoredache 2014年

@Zoredache感谢您抽出宝贵的时间。步骤1和步骤2是否明确给出了“授予sudo的首选方法”的说明?OP问的是什么?
Flak DiNenno 2014年

1

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

LDAP配置是一种经过测试的方法,可确保多台计算机具有相同的sudo配置,并提供一个不错的统一环境(具有重要授权机制的集中管理)。作为奖励,如果您已经在环境中使用LDAP(或AD)进行身份验证/授权,则可以利用现有的基础结构(如果您不这样做,则应认真考虑它-集中化有很多好处)。

人们在其他关于创建授权组的其他答案中已经说过的一切仍然存在-扩大规模以授予组特权和管理组成员资格要比处理单个用户的权限管理容易。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.