php - 403 更改文件和文件夹权限后禁止
问题描述
Magento 官方建议将所有文件夹的权限设置为 700,文件的权限设置为 600。(来源)
他们指示我们执行这些命令来设置权限:
find . -type d -exec chmod 700 {} \;
find . -type f -exec chmod 600 {} \;
但是,现在当我尝试访问该站点时,我得到了 403 禁止。
我应该将其更改为 766(文件夹)和 666(文件)吗?
解决方案
这在很大程度上取决于您的系统配置。
当您使用问题的命令设置所有权限时,以 root 身份执行,您只允许 root 用户访问这些文件。
权限掩码如下:
000
^^^
|||
||+--- Other
|+---- Group
+----- Owner
因此,具有 root 所有权的权限掩码600
不会让网络服务器的用户(或 php 进程的用户)读取或访问这些文件。
第一步是找出正在运行您的网络服务器(Apache、Nginx 或您正在使用的任何东西)的用户,以及分配给您的 php 进程的用户(如果您使用的是 php-fpm 之类的东西)。
如果您使用的是 Ubuntu 系统,那么该用户很可能是www-data
. 但是您应该确保,因为详细信息取决于配置。
假设您获得的用户是www-data
,您转到运行的目录chmod
并更改所有文件,使其归该用户所有:
chown -R www-data: {.??,}*
稍后您应用问题中的权限,它应该可以工作。
注意:从安全角度来看,这可能不是我设置安装的方式,但这超出了问题的范围。
推荐阅读
- javascript - 会话数据有时会在断开连接事件中丢失
- angularjs - 测试组件时,角度模拟给了我一个模块错误
- sybase - Sybase IQ - 浮点数到数字/十进制的转换会改变输出的比例
- docker - Docker -error initializing graphdriver:devmapper:无法获得已经使用过数据块的瘦池(rootvg-docker--pool)的所有权
- php - 更新方法在 Codeigniter 4 中不起作用
- android - SurfaceView上绘制矩形(H264解码)
- azure - 使用您的本地开发环境编辑此函数应用程序
- python - 从 tkinter 中的另一个窗口获取输入
- azure-devops - 如何在 Azure Devops Pipelines 中使用本地计算机对代码进行 .pfx 签名?
- javascript - Azure 服务器未能对请求进行身份验证。确保授权标头的值格式正确,包括签名