【发布时间】:2018-11-10 22:28:03
【问题描述】:
情况
我的/var/www/ 目录中有多个文件夹。
创建的用户可以控制特定目录.../var/www/app1 属于 app1:app1(www-data 是 app1 组的成员)。
这对我想要的效果很好。
问题
如果 app1 用户上传了一个 PHP 脚本,该脚本更改了 app2s 目录结构中某些内容的文件/文件夹权限,Apache 进程(因为服务器上只安装了一个)将非常乐意运行它,因为它具有访问/var/www/app1 和 /var/www/app2 文件夹和文件的必要权限。
编辑:
据我所知,/var/www/app1/includes/hack.php:
<?php
chmod("/var/www/app2", 777);
?>
Apache 进程(由www-data 拥有)将运行它,因为它有权更改/var/www/app1 和/var/www/app2 目录。用户app1之后就可以cd /var/www/app2、rm -rf /var/www/app2等,这显然不好。
问题
如何避免 Apache 进程的这种交叉污染?我可以指示 Apache 仅运行影响驻留在相关 vHost 根目录及以下目录中的文件/文件夹的 PHP 脚本吗?
【问题讨论】:
-
我已更新问题以澄清我试图描述的问题。根据:php.net/manual/en/function.chmod.php - 似乎在安全模式下编译 php 会做我所追求的,但我正在寻找一个简单的实现来不断滚动我自己的 php。
-
@Nic3500 - 这不是重复的。那是指文件/文件夹权限,这个问题是关于跨目录 apache/php 脚本的。如果有的话,它是以下内容的副本:PHP - a different open_basedir per each virtual host
标签: php apache permissions vhosts