Back to home

SUDO=ALL还是要输入密码?

场景

在运行Fabric任务的时候,发现部分机器需要输入root密码才能执行sudo指令。

原因

按照部署新机流程,一般都会将管理用户设置sudo权限。

$ sudo cat /etc/sudoers | grep ops
%ops            ALL=(ALL)       NOPASSWD: ALL

原来在/etc/sudoers给其他低权限用户禁止了部分指令,操作用户本身也被分配到了这些组中,所以导致权限不够。

%ops    ALL=(ALL)       NOPASSWD: ALL
%eng    ALL=(ALL)       NOPASSWD: ALL,!SHELLS,!SUROOT,!SUDO

$ groups ops
ops : ops eng

解决

调整/etc/sudoers权限赋值顺序,解决问题。

%eng    ALL=(ALL)       NOPASSWD: ALL,!SHELLS,!SUROOT,!SUDO

 %ops ALL=(ALL) NOPASSWD: ALL

相关链接