Как сделать sudo -u без пароля?

Я использую 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

1 ответ

Решение

Потому что вы пытаетесь выдать себя за пользователя postgres, в то время как ваш файл sudoers позволяет вам олицетворять пользователя root из системной группы vagrant. Когда вы используете sudo su Вы также олицетворяете корень.

Добавь это: %vagrant ALL = (postgres) NOPASSWD: ALL

Другие вопросы по тегам