Я использую ansible с vagrant, а ansible пытается sudo в качестве пользователя postgres для запуска некоторых команд postgres.
Ansible, работающий как бродячий пользователь, похоже, запускает что-то вроде sudo -u postgres psql
Это не срабатывает с сообщением об ошибке Missing sudo password
Я ssh на виртуальную машину, используя того же пользователя-бродягу, и пробую sudo -u postgres psql
и, конечно же, он запрашивает пароль. Что интересно, sudo su postgres
переключается на пользователя postgres без пароля.
Почему бы sudo -u
требовать пароль, когда sudo su
нет?
В /etc/sudoers.d/ есть запись vagrant со следующим содержанием:
%vagrant ALL=NOPASSWD:ALL
Потому что вы пытаетесь выдать себя за пользователя postgres, в то время как ваш файл sudoers позволяет вам выдавать себя за пользователя root из системной группы vagrant. Когда вы используете sudo su
вы также выдаете себя за root.
Добавь это : %vagrant ALL = (postgres) NOPASSWD: ALL