目前我设置0777
为所有目录和文件。
但是,我害怕被别人访问。
日志文件和所有控制器、模型、视图和 config 中的文件都设置为0777
一般来说,它们应该如何设置?
- 日志文件目录及其文件
- 控制器文件
- 模型文件
- 查看文件
- config目录下的文件
目前我设置0777
为所有目录和文件。
但是,我害怕被别人访问。
日志文件和所有控制器、模型、视图和 config 中的文件都设置为0777
一般来说,它们应该如何设置?
你绝对不应该使用0777
你的文件权限。这更容易使您暴露于漏洞中。
一般来说,遵循这个原则:
对于文件夹,使用0755
,相当于rwxr-xr-x
. 执行权限允许查看文件夹内容。
查找 /your/rails/dir -type d -exec chmod 755 {} +
对于执行的脚本,也使用0755
. 这允许任何人执行脚本,但不能对它们进行更改(写入)。
对于所有其他文件,使用0644
相当于rw-r--r--
. 这使得每个人都可以读取文件,所有者可以写入文件,而没有人可以执行文件。这可以防止恶意脚本被上传和执行。
查找 /your/rails/dir -type f -exec chmod 644 {} +
或者,您可以考虑对config/database.yml
包含密码的文件进行更多限制性权限,尤其是包含邮件服务(mandrill、sendgrid、邮戳)、Amazon S3 存储桶或 Redis 连接等密码的任何文件。对于这些文件,您可以使用0600
.
在生产环境中,您的 rails 应用程序应该以拥有所有这些文件的同一用户(而不是 root)身份运行。这很容易通过使用乘客、独角兽或运行 Web 服务器(如 mongrel 或 webrick)作为本地用户监听端口localhost:3000
,并使用 Apache 或 Nginx 反向代理localhost:3000
。