php - Ubuntu Web 服务器上 CodeIgniter 的文件权限

标签 php linux apache ubuntu file-permissions

我有一个 CodeIgniter 应用程序在 Apache 2.2 上运行,在 Ubuntu 11.10 上运行 PHP 5.3。如果重要的话,我也在运行 PHP5-APC。因此,根据默认的 Apache2 安装,该应用程序作为 www-data:www-data 运行。

我想弄清楚要将我的文件权限设置为什么。 SO 上的许多线程似乎更喜欢 755 目录和 644 文件。有一个目录必须允许上传文件。

目前我的部署脚本做这样的事情:

  • 删除旧网站
  • 复制新网站
  • chmod -R 000 在新站点上
  • chmod 所有目录到 500
  • chmod 所有文件到 400
  • chmod 700 上传目录

似乎一切正常。我可以上传文件等等。所以,我不明白为什么人们建议对文件使用 644 - 我有一个包含密码和 API key 的配置文件 - 为什么我要“其他人”有读取权限吗?

我误会了什么?

最佳答案

嗯,主要是 644 权限适用于当您有 /var/www/site1.com 时设置了不同的用户和组,然后是 www-data ,因为 644 将允许其他组和用户从该文件读取,但将允许读取写入文件的所有者。

因为默认情况下上传文件和运行 apache 进程的用户是 www-data 那么我真的认为如果它适合你并且你没有问题,那就太好了,因为意味着更多的安全性.

更新

只是一个小的安全问题,www-data 已成为 http 服务运行其进程的非常常见的用户和组。我强烈建议每个站点/应用程序都有自己的用户和组。

关于php - Ubuntu Web 服务器上 CodeIgniter 的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11932138/

相关文章:

javascript - 防止鼠标中键在 anchor 标签中打开新标签

c++ - opengl 库在哪里存储在 ubuntu : i need this to mention in my make file 上

html - 如何在 html 中嵌入 wave 文件(跨平台)

apache httpd LogFormat 不支持 strftime 格式

apache - 更改 apache2 服务器的 ssl 端口。 (ERR_SSL_PROTOCOL_ERROR)

php - 查找并替换数据库修改脚本中的所有内容以返回受影响的行

php - Laravel 5.1 无法在集合上使用 @foreach

php - 在wordpress中按名称获取图像

javascript - 在 Mac 中学习 javascript 的简单环境设置是什么

linux - https 子域未使用 htaccess 正确重定向