Python

WSGIDaemonProcess 應該使用哪個使用者帳戶?

  • March 11, 2011

我有一些使用 Apache2 和 mod_wsgi 部署的 Django 站點。在配置 WSGIDaemonProcess 指令時,大多數教程(包括官方文件)建議以程式碼所在主目錄的使用者身份執行 WSGI 程序。例如:

WSGIScriptAlias / /home/joe/sites/example.com/mod_wsgi-handler.wsgi
WSGIDaemonProcess example.com user=joe group=joe processes=2 threads=25

但是,我想知道將 wsgi 守護程序作為開發程式碼的同一使用者(具有其伴隨特權)執行是否真的很明智。我是否應該設置一個服務帳戶,其唯一權限是只讀訪問程式碼以獲得更好的安全性?還是我的擔心被誇大了?

盡可能使用非特權帳戶執行服務是一種很好的一般做法。對於只需要 root 資源(埠 < 1024,訪問某些文件)的程序,該程序應該獲取它們,然後立即刪除權限。

其他一些提示.. 從您的片語“以同一使用者執行…程序…開發程式碼”聽起來有點像開發人員在生產主機上編寫程式碼。您是否使用某種形式的原始碼更改控制系統(例如 git、svn)?開發人員應該在僅用於開發的機器上編碼並送出到共享儲存庫,您可以從中發布穩定的建構。在經過集成測試後從儲存庫中部署程式碼,並最好將其打包以進行安裝(DEB、RPM、EGG 等)。這將減少進入生產的錯誤,使發布可重複,避免主機當機時程式碼失去等。

引用自:https://serverfault.com/questions/246348