目標是讓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