Www-data用户访问/ var / www /

好的,有没有办法让PHP用户(www-data)访问服务器的其他部分,例如/ home / username / another_folder /? 提前致谢。

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

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

或者,如果您只需要读取权限,而不是系统上的其他用户对您的文件具有读取访问权限的问题,则只需更改您的文件(在其他位置)的权限以获得对other的读取权限。 例如, 775为您的目录和644为您的文件。

请记住,即使您的网络服务器用户有权访问这些文件,您也无法在文档根目录(例如/ var / www)以外的地方提供网页。

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

但是,在您的文档根目录下并由Web服务器执行的PHP文件,如果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!; ?> 

您可以将您的文件夹的组所有权( chgrp )更改为www-data(如果www-data是它自己的组)。

您可以更改该文件夹( chown )的用户所有权并chmod它,以便多个用户可以访问它。 (就像farzad说的)

您可以创建一个组(“me_and_web”),其唯一成员是“用户名”和“www-data”,而chgrp -R me_and_web /home/username/another_folder