为了使我的网络服务器的工作更加简单,我建议做如下的事情:
sudo chown www-data:www-data /var/www -R
cd /var/www
sudo find . -type f -exec chmod 664 {} \;
sudo find . -type d -exec chmod 775 {} \;
我也将我的日常用户添加到了 www-data 组。
我的问题是:这是一个愚蠢/危险的权限设置吗?授予 www-data 组这些权限是否会打开我的服务器?
谢谢亚历克斯
答案1
通常,您只希望让用户能够写入上传文件夹或自动生成的文件www-data
。
无论如何,您在这里面临的风险是,如果您的 Web 应用程序存在任何错误/漏洞,可能允许攻击者在您的服务器上执行代码,则该代码将以www-data
(运行 apache 进程的用户)的身份执行,并且可能彻底删除您的所有网站。
答案2
这听起来确实很危险,假设 www-data 是暴露给 Web 服务器的用户 - 您实际上失去了 ACL 提供的写保护。第二个选项 (775) 还会增加攻击者能够在您的计算机上远程运行代码的风险。
答案3
就其本身而言,如果您的 Web 服务器未配置为接受 POST 请求和类似内容,则不会。但是,如果 Web 服务器或其客户端脚本中出现任何允许写入文件系统的错误(并且,考虑到 PHP 脚本的数量,发生这种情况的概率为 1),您的整个内容都将变为可写入。因此:这是有风险的,您应该考虑其他替代方案。
答案4
对整个文件夹拥有写权限并不是一个好主意,大多数网站(例如:wordpress、joomla 和 magento)需要对特定文件夹拥有写权限(图片上传、文件上传)。更好的方法是授予文件夹的写权限,并且不允许脚本(PHP、python)执行,始终检查用户是否上传了正确的内容,例如,如果您的网站允许用户上传图片作为头像,请检查它是图片还是带有 PHP 脚本的假图片。对网站根目录拥有写权限的问题是,如果有人发现漏洞,他可以利用它编写新的 index.php 文件并“入侵”您的网站。