你可以创建另一个群组,并将 www-data
(如果您的 Web 服务器在 www-data
用户下运行)添加到此群组中,然后将此群组分配给您希望可以访问的所有那些文件。
或者如果您只需要读取权限,并且其他系统用户可以读取您的文件不是问题,则只需更改文件(在其他位置)的权限以使other
获得读取权限。例如,对于您的目录,使用775
,对于您的文件,则使用644
。
请记住,即使您的Web服务器用户具有访问这些文件的权限,您也不能在文档根目录之外的位置(例如/var/www)提供网页。
但是如果您为您的Web服务器配置“别名”或“虚拟主机”,您可以使其他地方可通过HTTP请求访问而不是您的默认文档根目录。
但是,如果PHP文件位于文档根目录下并由Web服务器执行,则如果Web服务器用户具有足够的权限,则可以阅读文档根目录外部文件的内容。
// 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!;
?>