2017-04-19 54 views
0

我需要從可從php網頁訪問的腳本調用postfix reloadpostfix reload需要超級用戶權限。我可以使用echo "password" | sudo ...但我不想給超級用戶權限給一個可以從apache訪問的腳本,也不用在明文中寫入密碼。你怎麼稱呼這樣的命令而不產生安全問題?像ISPConfig這樣的軟件如何解決這一需求?如何從沒有sudo的腳本調用超級用戶命令

+2

您可以將'sudo'配置爲允許任何用戶'apache'運行,而無需輸入密碼即可運行* specific *命令。如何做到這一點是堆棧溢出有點偏離;嘗試superuser.com。 – chepner

+0

我的建議是將Web服務與服務重新加載任務分離。 1001種不同的方式來做到這一點,同時,我不會對我的生產Web服務器執行特權命令的直接行動/反應。 –

回答

1

運行Apache的用戶(例如.apache)必須被允許在沒有密碼的情況下執行「sudo postfix reload」。要做到這一點,你需要添加 下面一行「的/ etc/sudoers文件」文件:

apache ALL = NOPASSWD: /path/to/postfix reload 

我建議在腳本中使用「須藤/路徑/到/後綴重裝」,因爲後綴的文件可能不在apache用戶的默認路徑中。

關於安全性,您需要確保此命令不會經常啓動,因爲它可能會導致性能問題。 由於命令指定了一個參數,即使您的網站會被攻破,postfix重新加載也只會執行一個特定的操作,而不會改變該行爲(只要sudo和postfix是up2date)。

相關問題