目標は、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