我使用ansible与vagrant和ansible试图sudo作为postgres用户运行一些postgres命令。
作为stream浪用户运行的Ansible似乎运行sudo -u postgres psql
这将失败,并显示错误消息Missing sudo password
我使用相同的stream浪使用者ssh进入虚拟机,并尝试使用sudo -u postgres psql并确定它提示input密码。 有趣的是, sudo su postgres切换到postgres用户没有密码。
为什么sudo -u不需要密码呢?
/etc/sudoers.d/中有一个叫做vagrant的条目,其内容如下:
%vagrant ALL=NOPASSWD:ALL
因为当你的sudoers文件允许你从系统组vagrant中模拟用户root的时候,你试图模拟用户postgres。 当你使用sudo su你也模仿root。
添加这个: %vagrant ALL = (postgres) NOPASSWD: ALL