web-dev-qa-db-ja.com

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

目標は、www-dataユーザー実行Sudo -u postgres -H osm2pgsql [some options here]パスワードを要求されることなく(これは自動的に実行されるスクリプトの一部になるため)。

sudoersファイルの次の行でそれができると思いました

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

しかし、これはうまくいかないようです。私は何が間違っているのですか?

2
Matthias

必要な構文は次のとおりです。

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

ここで、/usr/bin/osm2pgsqlosm2pgsqlの実際のパスに置き換える必要があります。 !requiretty行を使用すると、端末のないスクリプトからSudoを使用できます。これにより、任意のオプションを指定したコマンドSudo -u postgres -H osm2pgsqlが機能します。

3
meuh

試してみてください:

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

0
RobertL