Permitir que o usuário execute um comando como outro usuário

Permitir que o usuário execute um comando como outro usuário

O objetivo é permitir que o www-datausuário execute sudo -u postgres -H osm2pgsql [some options here]sem que seja solicitada uma senha (pois isso fará parte de um script que será executado automaticamente).

Eu pensei que poderia fazer isso com a seguinte linha no sudoersarquivo

www-data ALL=NOPASSWD: /usr/bin/sudo -u postgres -H osm2pgsql *

Mas isso não parece funcionar. O que estou fazendo de errado?

Responder1

A sintaxe que você precisa é

Defaults:www-data !requiretty
www-data ALL=(postgres) NOPASSWD: /usr/bin/osm2pgsql

onde /usr/bin/osm2pgsqldeve ser substituído pelo caminho real de osm2pgsql. A !requirettylinha permite o sudo a partir de um script sem terminal. Isso permite que o comando sudo -u postgres -H osm2pgsqlcom qualquer opção funcione.

Responder2

Tentar:

www-data ALL=NOPASSWD: /path/to/osm2pgsql

informação relacionada