PHP touch()不受文件权限的影响?

时间:2018-03-07 17:54:40

标签: php permissions filemtime php-7.2

我已经设置了一个演示“admin”网站,其中所有文件权限设置为555用于目录,444用于文件,以便禁用任何“保存”功能。到目前为止一切都很好。

但是,我注意到PHP touch()功能不受文件权限的影响?我在没有WRITE权限的目录上成功运行PHP touch()(555)。似乎有点奇怪。这是预期的行为(PHP 7.2)吗?

我试图阻止touch()执行(通过文件权限),但目前无法看到这是如何实现的。

感谢。

1 个答案:

答案 0 :(得分:0)

来自utimes(3)文档:

  

进程的有效用户ID应与文件的所有者匹配,或者具有对文件的写访问权或以此方式使用此调用的适当权限。

因此即使没有写访问权限,所有者也可以更新时间戳。您需要更改文件的所有权,以使它们与运行PHP脚本的用户不同。

如果这是一个问题,也许您应该使用其他方法来跟踪文件修改时间的变化。