安全性最佳文件权限django + apache + mod_wsgi

时间:2014-04-04 20:58:40

标签: python django apache security permissions

我刚刚开始部署我的第一个实时Django网站,我想知道如何以最佳安全方式设置Ubuntu服务器文件权限,同时仍然授予所需的权限。 / p>

首先是目录问题:我目前正在~/www/mysite.com/{Django apps}存储该网站,但经常看到有人使用/var/www/.../srv/www;有没有理由选择其中一个目录比另一个好?或者为什么将网站保留在我的家庭目录中是一个坏主意?

其次,dir和文件本身的权限。我使用带有mod_wsgi的apache提供服务,并拥有文件WSGIScriptAlias / ~/www/mysite.com/mainapp/wsgi.py文件。 Apache以www-data用户身份运行。为了获得最佳安全性,谁应该拥有wsgi.py文件,以及我应该授予哪些权限及其包含的目录?

同样,对于wwwwww/mysite.comwww/mysite.com/someapp目录?目录和文件需要的最小权限是什么?

目前我正在使用755644用于dir和文件,它们运行良好,允许网站运行,但我想知道它是否是最优/过于自由。我的Ubuntu用户是大多数文件的所有者,www-data拥有sqlite dbs。

1 个答案:

答案 0 :(得分:1)

关于从主目录提供应用程序,这主要是基于偏好的。但是,可以根据情况做出部署决定。例如,如果您有多个用户使用此服务器来托管其网站,那么您可能会从其主目录中提供文件。从系统管理员的角度来看,正在部署应用程序;您可能希望它们都可以从/ var / www中访问...因此它们更容易找到。

您为服务文件设置的权限似乎很好,但是它们可能需要作为不同的用户运行...取决于使用此计算机的人数。例如,假设您在服务器上运行了另一个应用程序,并且这两个应用程序都以www-data运行。如果www-data用户具有Django配置文件的读权限,则其他用户可以部署可以读取数据库凭据的脚本。