linux 用户file_put_contens可写权限,php - file_put_contents权限被拒绝

我知道这是一个非常古老的问题,但我想通过一些深入的解释添加好的解决方案。 您将不得不在Ubuntu类似系统上执行两个语句,然后它就像一个魅力。

Linux中的权限可以用三位数表示。 第一个数字定义文件所有者的权限。 第二个数字是特定用户组的权限。 第三个数字定义了非所有者或组成员的所有用户的权限。

Web服务器应该使用作为组成员的id执行。 Web服务器永远不应该使用与文件和目录所有者相同的ID运行。 在Ubuntu中运行id为www-data的apache。 该id应该是为其指定权限的组的成员。

要为要在其中更改文件内容的目录提供适当的权限,请执行以下语句:

find %DIR% -type d -exec chmod 770 {} \;

在OP的问题中,这意味着应该相应地更改目录%ROOT%/ database的权限。 因此,重要的是不要让该目录中的文件永远不会被更改或删除。 因此,最佳做法是为必须更改其内容的文件创建单独的目录。

读取目录的权限(4)意味着能够在目录中收集其元数据的所有文件和目录。 写权限(2)授予更改目录内容的权限。 暗示添加和删除文件,更改权限等。执行权限(1)表示您有权进入该目录。 如果没有后者,就无法深入到目录中。 当应该更改文件的内容时,Web服务器需要读取,写入和执行权限。 因此需要组7。

第二个声明是关于OP的问题:

find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;

能够读取和写入文档是必需的,但不需要执行该文件。 7是给文件的所有者,6给组。 Web服务器无需具有执行文件的权限即可更改其内容。 这些写权限应仅授予该目录中的文件。

不应向所有其他用户授予任何权限。

对于不需要更改其文件的目录,组的权限为5就足够了。有关权限的文档和一些示例:

[https://wiki.debian.org/Permissions]

[https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions]

[http://www.linux.org/threads/file-permissions-chmod.4094/]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值