gpt4 book ai didi

django - linux用户权限的最佳实践以如下方式运行Web应用程序?

转载 作者:行者123 更新时间:2023-12-04 08:12:06 26 4
gpt4 key购买 nike

我在网上看到许多不同的建议,涉及从何处服务Web应用程序,以什么用户身份运行它等。

例如,我已经看到它从以下位置提供服务:/var/www/site,/srv/www/site,/home/$ USER/site。

我已经看到该用户是www-data,$ USER(即我的用户帐户)或为此目的专门创建的自定义用户(例如,用户uwsgi)。

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

作为引用,我正在尝试使用Nginx和uwsgi部署Django站点。

现在,uwsgi在皇帝模式下以root身份运行,uid/gid设置为www-data,因此生成的vassals具有与Nginx worker相同的权限。我正在/home任职,但想搬家。

最佳答案

对于位置,请选择最适合您的位置。以下是一些可以帮助您的注意事项:

  • /var下的位置用于change in size或通常是“变量”的文件。
  • /srv通常指示与机器上运行的某些服务相关的文件。
  • /home通常应保留给交互式用户。但是,您可以将系统用户的主目录设置为任何内容。

  • 为了安全起见,您应尽可能分割。该应用程序不应以与Web服务器相同的用户身份运行,这样就不会滥用该应用程序来读取与服务器本身有关的敏感文件( .htaccess或其他内容)。该应用程序的二进制文件(对于Django,则为python源)应归root用户所有,而不能对应用程序用户进行写访问。

    这是我的2美分设置方法:
  • Django应用:/usr/lib/appname//usr/lib/python/site-packages/appname/(如果已安装)。由root拥有,chmod644。
  • 应用程序的文件(例如sqlite db文件,用于FastCGI的Unix套接字,上传的文件存储等):/var/lib/appname/。由应用程序用户chmod 600拥有。
  • 应用程序用户的 shell 程序为/bin/nologin,home为/var/lib/appname/。用户没有配置的密码。
  • 关于django - linux用户权限的最佳实践以如下方式运行Web应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12943633/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com