目標は、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
ここで、/usr/bin/osm2pgsql
は の実際のパスに置き換える必要がありますosm2pgsql
。 この!requiretty
行により、ターミナルなしでスクリプトから sudo を実行できるようになります。 これにより、sudo -u postgres -H osm2pgsql
任意のオプションを持つコマンドが機能するようになります。
答え2
試す:
www-data ALL=NOPASSWD: /path/to/osm2pgsql