向/etc/sudoers
和添加用户有什么区别usermod -a -G sudo
?授予sudo应该使用哪种方法?
向/etc/sudoers
和添加用户有什么区别usermod -a -G sudo
?授予sudo应该使用哪种方法?
Answers:
如果可以避免,请不要向单个用户授予sudo特权。始终将特权授予一个组,然后将用户添加到该组。
对于基于ubuntu的服务器,无需在其中添加行,而是/etc/sudoers
将配置文件片段添加到中/etc/sudoers.d
。这在升级时更加灵活,更易于理解,更具弹性,并且可以更好地与由配置管理系统管理的系统配合使用。
注意:切勿/etc/sudoers
直接编辑。而是使用visudo
,它将对您的编辑执行语法检查,以防止您使用无效的语法破坏sudo配置。
/etc/sudoers
?
usermod -a -G sudo
visudo
。某些人没有意识到/etc/sudoers
标记为只读的原因。
我只是在那里发现了这个小窍门...似乎您在使用-G
Ubuntu中的选项(尤其是组合-g
选项)时需要格外小心。所以:
usermod -aG
用户(一个或多个)添加到组。 $ sudo
visudo
命令将该组添加到/ etc / sudoers文件中(通过语法检查自动调用特权编辑器)。这是-aG
有关Ubuntu上的选项的信息,取自此处http://ubuntuforums.org/showthread.php?t=1240477:
'我正在阅读Wiley的“ Linux命令行和脚本圣经” -他们说usermod -G将一个组“追加”到您要修改的任何用户帐户。我发现这在Ubuntu中是错误的,不知道它是否与其他发行版有所不同,或者书中是否有错字。它会将您从您所属的每个其他组中删除,默认用户组除外(由-g选项修改)。我设法将自己从管理组中删除,无法再进行任何操作。谢天谢地,恢复模式...”
正确的选项是usermod -aG。学过的知识...
您没有告诉我们您的环境有多大,但是如果环境不止一台机器,您可能还需要考虑使用LDAP进行配置,sudo
这是在本地编辑sudoer的替代方法(通过visudo
或使用/etc/sudoers.d
fragments方法)。
LDAP配置是一种经过测试的方法,可确保多台计算机具有相同的sudo
配置,并提供一个不错的统一环境(具有重要授权机制的集中管理)。作为奖励,如果您已经在环境中使用LDAP(或AD)进行身份验证/授权,则可以利用现有的基础结构(如果您不这样做,则应认真考虑它-集中化有很多好处)。
人们在其他关于创建授权组的其他答案中已经说过的一切仍然存在-扩大规模以授予组特权和管理组成员资格要比处理单个用户的权限管理容易。
/etc/sudoers
在任何情况下进行编辑。而是将配置片段添加到/etc/sudoers.d
目录中。由于您修改了conffile,因此使用fragments文件夹使升级更加容易。