项目场景:
基于 Azure 云平台虚拟机所搭建的任何项目。
问题描述:
因为脚本自动化的需要,使用普通用户执行某些命令需要 sudo 免密提权。在环境搭建过程中发现虚拟机存在特定普通用户 sudo 免密设置后仍然提示输入密码的现象,而创建新用户做相同配置没有出现问题。
原因分析:
经排查,sudoer 配置文件中最后一行提示该文件会读取 /etc/sudoers.d 目录。
查看 /etc/sudoers.d 目录下有两个文件,命名为 waagent 的配置文件里已经写好了用户 cnxadmin 在进行 sudo 提权需要密码认证,这就不难解释为什么明明 sudoer 配置文件明明指定用户 sudo 免密提权,但在使用过程中还需要密码。
解决方案:
文件是只读类型,推测应该是在创建虚拟机时使用了该用户,Azure 自动生成了此文件。由于不能修改,只需将目录下该文件移走即可解决问题。