Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Linux 为什么/var/www/需要755个权限?为什么不在周之后700?_Linux_Apache_Web_Permissions - Fatal编程技术网

Linux 为什么/var/www/需要755个权限?为什么不在周之后700?

Linux 为什么/var/www/需要755个权限?为什么不在周之后700?,linux,apache,web,permissions,Linux,Apache,Web,Permissions,我存储文件的Apache目录是/var/www 如果我跑 sudo chown -R www-data:www-data /var/www 这使www数据成为www文件夹的所有者。既然所有静态/动态文件都将由Apache用户提供,为什么我现在需要授予此文件夹755权限?它应该只提供700个权限,对吗?由于拥有700个权限,因此所有者(www数据)对该文件夹拥有完全权限 因此,我的问题是,我为什么需要跑步: sudo chmod -R 755 /var/www 而不是 sudo chmod -

我存储文件的Apache目录是/var/www

如果我跑

sudo chown -R www-data:www-data /var/www
这使www数据成为www文件夹的所有者。既然所有静态/动态文件都将由Apache用户提供,为什么我现在需要授予此文件夹755权限?它应该只提供700个权限,对吗?由于拥有700个权限,因此所有者(www数据)对该文件夹拥有完全权限

因此,我的问题是,我为什么需要跑步:

sudo chmod -R 755 /var/www
而不是

sudo chmod -R 700 /var/www

编辑:我没有遇到任何错误。我问这个问题只是为了获取知识。很多人建议我在/var/www/文件夹上设置755权限。我只是想知道为什么我不能使用700。

最佳布局取决于几个因素。这主要是一个安全问题。以下是一些需要考虑的事项:

1) 是否希望web服务器能够将文件写入DocumentRoot?大多数时候答案是否定的。。。例外情况是上传目录之类的东西。在本例中,您需要类似于755的内容,其中所有者/组不是运行Apache的用户

2) 您是否有本地用户帐户(如开发人员)可以访问内容?如果是,您可能需要755,root:developers之类的权限,Apache以“www-data”或“Apache”的形式运行,而不在组中(根据上面的#1)

3) 这些开发人员是否需要能够编辑内容(执行代码推送)?在这种情况下,也许775root:developers更好

700的主要问题是,它要求所有者是Apache运行时的用户,并授予其修改DocumentRoot中任何文件的完全权限。这通常被认为是一个安全弱点,因为一般来说,web服务器不应该修改DocumentRoot中的文件,除了非常特定的异常


一种常见的攻击是,攻击者诱使您的web应用程序将恶意PHP脚本之类的内容上载到DocumentRoot中,然后访问该页面。对策之一是禁止Apache通过这种文件系统权限写入DocumentRoot。

首先检查“www数据”是否确实是您的Apache用户。运行这个命令:echo$(ps axho user,comm | grep-E“httpd | apache”| uniq | grep-v“root”| awk'END{if($1)print$1}')是的,这个输出“www-data”这很奇怪。请将“700”值放回文件夹中,当您试图查看您的问题时,是否可以使用错误日志文件中的确切错误输出更新您的问题website@JohnCrawford例如我没有错。我只是问了这个问题以获取知识。很多人建议我在var/www/文件夹上设置755个权限。我只是想知道为什么700不起作用。对不起,我刚才说的有点模棱两可。我的意思是,如果你遵循链接中使用的设置,你应该只有755个。在您的设置中,700将起作用。然而,正如您所知,您的设置并不安全。例如,因为整个文件夹是读/写/执行的,所以我可以在您的服务器上上载恶意脚本,然后执行它。谢谢您的回答。尽管我有点怀疑。“在本例中,您需要类似于755的内容,其中所有者/组不是Apache运行时的用户。”。在文件上传的情况下,哪个用户将尝试进行文件上传?不应该是www数据吗?正确-在这种情况下,Apache确实需要拥有该目录。我意识到我的措辞很糟糕。“在这种情况下”指的是上述情况,其中不涉及上传。上传是个例外,需要一些其他的东西。感谢您的澄清。:)