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美分如何设置它:
/usr/lib/appname/
或/usr/lib/python/site-packages/appname/
如果已安装。 由root拥有,chmod 644。 /var/lib/appname/
。 由应用程序用户chmod 600拥有。 /bin/nologin
,home是/var/lib/appname/
。 用户没有配置密码。 上一篇: Best practices for linux user permissions to run web application as?