编程语言
首页 > 编程语言> > php-Www-data用户访问/ var / www /之外的文件/文件夹

php-Www-data用户访问/ var / www /之外的文件/文件夹

作者:互联网

好的,PHP用户(www-data)是否可以访问服务器的其他部分,例如/ home / username / another_folder /?提前致谢.

编辑:我只是将www数据添加到另一个组吗?或类似的东西,或者还有另一种方法?

解决方法:

您可以创建另一个组,并将www-data(如果您的Web服务器在www-data用户下运行)添加到该组,然后将该组分配给所有您希望访问的文件.

或者,如果您只需要读取权限,而系统上的其他用户对您的文件具有读取权限也不是问题,那么只需更改文件的权限(在其他位置)以拥有对其他文件的读取权限.例如,目录为775,文件为644.

请记住,即使您的Web服务器用户有权访问这些文件,也不能在文档根目录以外的其他位置(例如/ var / www)提供页面.

但是,如果为Web服务器配置“别名”或“虚拟主机”,则可以放置默认文档根目录以外的其他位置,以供HTTP请求访问.

但是,如果Web服务器用户具有足够的权限,则位于文档根目录下并由Web服务器执行的PHP文件可以读取文档根目录之外的文件内容.

// file permissoins
/tmp/shared_by_all.txt -> 644
/home/user1 -> 751 or 755
/home/user1/shared_by_all.txt -> 644
/home/secureuser -> 750
/home/secureuser/myfile.txt -> 640 (or even 644 because of the containing directory permissions, other can not even enter the directory tree. so file is not accessible)


// file: /var/www/read_file.php
<?php
    echo file_get_contents('/tmp/shared_by_all.txt'); // ok!
    echo file_get_contents('/home/user1/shared_by_all.txt'); // ok!;
    echo file_get_contents('/home/secureuser/myfile.txt'); // fail!;
?>

标签:accessibility,linux,php
来源: https://codeday.me/bug/20191024/1918979.html