Цель состоит в том, чтобы позволить www-data
пользователю выполнять действия sudo -u postgres -H osm2pgsql [some options here]
без запроса пароля (поскольку это будет частью скрипта, который запускается автоматически).
Я думал, что смогу сделать это с помощью следующей строки в sudoers
файле
www-data ALL=NOPASSWD: /usr/bin/sudo -u postgres -H osm2pgsql *
Но это, похоже, не работает. Что я делаю не так?
решение1
Синтаксис, который вам нужен, следующий:
Defaults:www-data !requiretty
www-data ALL=(postgres) NOPASSWD: /usr/bin/osm2pgsql
where /usr/bin/osm2pgsql
следует заменить на фактический путь osm2pgsql
. !requiretty
Строка позволяет sudo из скрипта без терминала. Это позволяет команде sudo -u postgres -H osm2pgsql
с любыми параметрами работать.
решение2
Пытаться:
www-data ALL=NOPASSWD: /path/to/osm2pgsql