簡體   English   中英

Linux用戶權限運行Web應用程序的最佳做法是什么?

[英]Best practices for linux user permissions to run web application as?

我在網上看到了許多不同的建議,關於在哪里為你的web應用程序提供服務,用什么用戶來運行它等等。

例如,我見過它來自:/ var / www / site,/ srv / www / site,/ home / $ USER / site。

我已經看到用戶是www-data,$ USER(即我的用戶帳戶),或者是專門為此目的創建的自定義用戶(例如用戶uwsgi)。

在安全性方面,我可以選擇的最佳方案是什么?

作為參考,我正在嘗試使用Nginx和uwsgi部署Django站點。

現在,uwsgi在emperor模式下以root身份運行,uid / gid設置為www-data,因此vassals以與Nginx worker相同的權限生成。 我在家里服務,但想着搬家。

對於位置,選擇最適合您的位置。 以下是一些需要幫助的注意事項:

  • /var下的位置適用於大小變化的文件,或者通常是“變量”的文件。
  • /srv通常表示與計算機上運行的某些服務相關的文件。
  • /home通常應保留給交互式用戶。 但是,您可以將系統用戶的主目錄設置為任何內容。

為了安全起見,您應該盡可能地進行細分。 應用程序不應該與Web服務器作為同一用戶運行,因此不能濫用它來讀取與服務器本身相關的敏感文件( .htaccess或其他)。 應用程序的二進制文件(或Django,python源)應由root擁有,而無需對應用程序用戶的寫訪問權。

這是關於如何設置它的2美分:

  • Django應用程序: /usr/lib/appname//usr/lib/python/site-packages/appname/如果已安裝。 由root擁有,chmod 644。
  • App的文件(例如sqlite db文件,FastCGI的Unix套接字,上傳的文件存儲等): /var/lib/appname/ 由app-user擁有,chmod 600。
  • app-user的shell是/bin/nologin ,home是/var/lib/appname/ 用戶沒有配置密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM