Das Ziel besteht darin, dem www-data
Benutzer die Ausführung zu ermöglichen sudo -u postgres -H osm2pgsql [some options here]
, ohne dass er nach einem Kennwort gefragt wird (da dies Teil eines Skripts ist, das automatisch ausgeführt wird).
sudoers
Ich dachte, ich könnte es mit der folgenden Zeile in der Datei tun
www-data ALL=NOPASSWD: /usr/bin/sudo -u postgres -H osm2pgsql *
Aber das scheint nicht zu funktionieren. Was mache ich falsch?
Antwort1
Die Syntax, die Sie benötigen, ist
Defaults:www-data !requiretty
www-data ALL=(postgres) NOPASSWD: /usr/bin/osm2pgsql
wobei /usr/bin/osm2pgsql
durch den tatsächlichen Pfad ersetzt werden sollte osm2pgsql
. Die !requiretty
Zeile ermöglicht das sudo von einem Skript ohne Terminal. Dadurch kann der Befehl sudo -u postgres -H osm2pgsql
mit beliebigen Optionen ausgeführt werden.
Antwort2
Versuchen:
www-data ALL=NOPASSWD: /path/to/osm2pgsql