Linux用户权限运行Web应用程序的最佳做法?

我在网上看到很多不同的建议,从哪里为您的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工作者具有相同的权限。 我从/家服务,但想移动。


对于位置,选择对你来说最好的。 以下是一些帮助的注意事项:

  • /var下的位置是用于大小变化的文件,或者通常是“可变的”。
  • /srv通常表示与机器上运行的某些服务相关的文件。
  • /home通常应该保留给交互式用户。 不过,您可以将系统用户的主目录设置为任何内容。
  • 为了安全起见,你应该尽可能地分段。 该应用程序不应该与网络服务器运行相同的用户,因此它不会被滥用来读取与服务器本身相关的敏感文件( .htaccess或其他)。 应用程序的二进制文件(或Django,python源代码)应该由root用户拥有,而无需对应用程序用户进行写入访问。

    这是我的2美分如何设置它:

  • Django应用程序: /usr/lib/appname//usr/lib/python/site-packages/appname/如果已安装。 由root拥有,chmod 644。
  • 应用程序的文件(例如sqlite数据库文件,用于FastCGI的Unix套接字,上传的文件存储等): /var/lib/appname/ 。 由应用程序用户chmod 600拥有。
  • app-user的shell是/bin/nologin ,home是/var/lib/appname/ 。 用户没有配置密码。
  • 链接地址: http://www.djcxy.com/p/11299.html

    上一篇: Best practices for linux user permissions to run web application as?

    下一篇: Unminimized source for JavaFX dtjava.js?