允許使用者以另一用戶身分執行一個命令

允許使用者以另一用戶身分執行一個命令

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

相關內容