Ubuntu

哪個使用者應該執行 gunicorn 程序?

  • January 26, 2016

在 Debian 伺服器上執行 Django 應用程序時,您應該創建某種應用程序使用者(例如“myappuser”)並以該使用者身份執行 gunicorn 程序,還是可以/應該以 root 身份執行 gunicorn?以 root 身份執行它會產生安全風險嗎?我已經使用 APT 安裝了 gunicorn,而不是在虛擬環境中安裝它。以應用程序使用者身份執行它似乎使配置更加困難,因為您必須授予該使用者寫入日誌文件、PID 文件等的權限。以 root 身份執行它似乎更容易。

exec gunicorn $DJANGO_WSGI_MODULE:application \
 --name myapp \
 --user=$USER \     # <- who should this be?
 --group=$GROUP \

作為一般規則,在單獨的使用者下執行工作人員和那種東西總是一個好主意,該使用者專門只授予執行所需的權限。以 root 身份執行通常更容易,因為您很少需要擔心權限問題,但它總是不太安全,因為任何可以成功利用您的應用程序的東西都可以立即對您的系統進行 root 訪問,而不必找到某種方法來進一步升級。即使沒有故意利用,如果應用程序以某種方式出現災難性錯誤,它也可能最終破壞文件系統的重要部分。咬緊牙關,現在處理權限的輕微複雜性,而不是接受以 root 身份執行的安全風險。

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