解决方法
您绝对不应该使用0777作为您的文件权限.这更容易让您暴露于漏洞.
一般来说,遵循这个原则:
>对于文件夹,使用0755,相当于rwxr-xr-x.执行权限允许查看文件夹内容.
find / your / rails / dir -type d -exec chmod 755 {}
>对于已执行的脚本,也使用0755.这允许任何人执行脚本,但不对它们进行更改(写入).
>对于所有其他文件,使用等于rw-r – r–的0644.这允许每个人读取文件,所有者写入文件,没有人执行该文件.除此之外,这可以防止恶意脚本被上载和执行.
find / your / rails / dir -type f -exec chmod 644 {}
>(可选)包含密码的文件可以考虑更严格的权限,尤其是config / database.yml或包含邮件服务(mandrill,sendgrid,邮戳),Amazon S3存储桶或Redis连接等密码的任何文件.对于这些文件,您可以使用0600.
在生产环境中,rails应用程序应该作为拥有所有这些文件的同一用户(而不是root用户)运行.这可以通过使用passenger,unicorn或运行诸如mongrel或webrick之类的Web服务器作为本地用户监听端口(例如localhost:3000)以及将Apache或Nginx反向代理运行到localhost:3000来实现.