Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP chmod()赢得';t将权限更改为0444_Php_Security_Permissions_Chmod - Fatal编程技术网

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
和chmod
500

我认为这种方法是错误的,php将始终需要写入权限才能在将来更改任何内容,因此硬文件只读权限不是可行的方法


解决方案可以是一个数据库表或另一个配置文件,用于跟踪哪些文件被锁定,哪些文件可以更改(以及由谁更改…)。然后,您可以添加php检查,以查看某个用户是否可以更改某个文件。

更改为
0444
对切换没有多大意义,因为您再也无法将其切换回,因为您不再具有写入权限。php可能没有权限将其更改为
0444
。没有理由删除写信给店主。如果存在,则会出现一些严重的服务器配置问题。