Ermöglicht dem Benutzer, einen Befehl als ein anderer Benutzer auszuführen

Ermöglicht dem Benutzer, einen Befehl als ein anderer Benutzer auszuführen

Das Ziel besteht darin, dem www-dataBenutzer 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).

sudoersIch 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/osm2pgsqldurch den tatsächlichen Pfad ersetzt werden sollte osm2pgsql. Die !requirettyZeile ermöglicht das sudo von einem Skript ohne Terminal. Dadurch kann der Befehl sudo -u postgres -H osm2pgsqlmit beliebigen Optionen ausgeführt werden.

Antwort2

Versuchen:

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

verwandte Informationen