ユーザーが他のユーザーとしてコマンドを実行できるようにする

ユーザーが他のユーザーとしてコマンドを実行できるようにする

目標は、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機能します。

おすすめ記事