将用户添加到/etc/sudoers和usermod -a -G sudo什么区别? 应该使用哪种方法来授予sudo?
如果您可以避免这种情况,请不要向个人用户授予sudo权限。 总是授予组的特权,然后将用户添加到该组。
对于基于Ubuntu的服务器,不要将行添加到/etc/sudoers ,而是将configuration文件片段添加到/etc/sudoers.d 。 这更加灵活,易于理解,面对升级时更具弹性,并且与configurationpipe理系统pipe理的系统更好地协作。
注意:不要直接编辑/etc/sudoers 。 相反,使用visudo ,将执行您的编辑语法检查,防止你打破你的sudoconfiguration与无效的语法。
我刚刚发现了这个小东西…似乎你需要特别小心,在Ubuntu中使用-G选项,特别是结合-g选项。 所以:
usermod -aG将用户添加到组中。 $ sudo visudo命令将组添加到/ etc / sudoers文件(自动调用具有语法检查的特权编辑器)。 以下是关于Ubuntu上的-aG选项的信息,取自http://ubuntuforums.org/showthread.php?t=1240477 :
“我正在阅读Wiley的”Linux命令行和脚本圣经“ – 他们说,usermod -G”追加“一个组,用于你正在修改的任何用户帐户。 我发现这在Ubuntu中是错误的,不知道在其他发行版本中是不一样的,还是在书中有一个错字。 它会将您从您所属的其他每个组中除外,您的默认用户组(由-g选项修改)除外。 我设法从pipe理员组中删除自己,不能再做任何事情。 谢天谢地恢复模式…“
正确的选项是usermod -aG 。 学过的知识…
你不要告诉我们你的环境有多大,但是如果它不止一台机器,你也可以考虑使用LDAP来configurationsudo ,而不是在本地编辑/etc/sudoers.d (通过visudo或者使用/etc/sudoers.d方法)。
LDAPconfiguration是确保多台机器具有相同的sudoconfiguration,并提供一个很好的统一环境(集中pipe理一个重要的授权机制)的经过validation的方法。 作为奖励,如果您已经在您的环境中使用LDAP(或AD)进行身份validation/授权,您可以利用现有的基础设施(如果不这样做,您应该认真考虑它 – 集中化有很多好处)。
所有人已经在关于创build授权组的其他答案中已经说过了 – 在扩展授予组的权限和pipe理组成员身份比处理单个用户的权限更容易。