PHP chmod()赢得';t将权限更改为0444
我在管理控制面板中使用了一个脚本,允许用户轻松更改某些配置文件的写入权限,但我遇到了一个小问题PHP chmod()赢得';t将权限更改为0444,php,security,permissions,chmod,Php,Security,Permissions,Chmod,我在管理控制面板中使用了一个脚本,允许用户轻松更改某些配置文件的写入权限,但我遇到了一个小问题 有两个主开关,一个允许用户将文件更改为“可写”=>0777,另一个更改为“受保护”=>0444。第一个可以很好地工作,但是第二个可以,当我运行它时,不会显示错误,它的行为就像它成功地更改了权限一样,但是在FTP中查看显示文件实际上是0644,似乎无法成功地更改为0444。有什么想法吗?在修改权限之前,执行PHP的帐户必须拥有该文件。“www数据”或“apache”是常见的用户帐户 同时,让一些有意义的
有两个主开关,一个允许用户将文件更改为“可写”=>0777,另一个更改为“受保护”=>0444。第一个可以很好地工作,但是第二个可以,当我运行它时,不会显示错误,它的行为就像它成功地更改了权限一样,但是在FTP中查看显示文件实际上是0644,似乎无法成功地更改为0444。有什么想法吗?在修改权限之前,执行PHP的帐户必须拥有该文件。“www数据”或“apache”是常见的用户帐户
同时,让一些有意义的东西在全球范围内可读写也是个糟糕的主意。使其可执行也是一个坏主意。您可能想要
400
和chmod500
我认为这种方法是错误的,php将始终需要写入权限才能在将来更改任何内容,因此硬文件只读权限不是可行的方法
解决方案可以是一个数据库表或另一个配置文件,用于跟踪哪些文件被锁定,哪些文件可以更改(以及由谁更改…)。然后,您可以添加php检查,以查看某个用户是否可以更改某个文件。更改为
0444
对切换没有多大意义,因为您再也无法将其切换回,因为您不再具有写入权限。php可能没有权限将其更改为0444
。没有理由删除写信给店主。如果存在,则会出现一些严重的服务器配置问题。