Назад | Перейти на главную страницу

Как сделать так, чтобы 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

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

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