这个问题对我有很大帮助:
处理 /var/www 中 Apache 2 用户 www-data 权限的最佳方法是什么?
我想进一步回答上述问题,我希望能够将上传脚本用于一些 Web 应用程序、主机 cms 等。
因此,就目前情况而言,所有文件 /var/www/ 都归 root 所有并属于组 www-pub,所有目录都有 775,文件都有 664。
我编写了一个简单的图片上传脚本,该脚本抓取图片,如果不存在则创建一个名为“pictures”的目录,并保存图片。我在 /var/www/ 内的新目录中创建了文件,用户名为 testuser1,属于 www-pub 组。
到目前为止一切顺利,可以在浏览器中访问它...但是,正如预期的那样,脚本无法创建文件夹“图片”。如果我手动创建文件夹并授予其 777 权限,脚本将按预期执行。
这是正确的处理方式吗?我觉得脚本本身不应该具有公共写入权限。但是,为需要 www-data 写入权限的目录设置单独的权限似乎有点繁琐,尤其是在涉及一些较大的项目时。拥有 777 个权限的目录可以吗?
任何建议都很好,谢谢!
答案1
我假设你正在使用 Apache httpd
确保 httpd 在 www-pub 组中运行。可以在 /etc/httpd/conf/httpd.conf 中检查,查找类似以下内容的部分:
User httpd
Group httpd
并将组更改为 www-pub 然后重新启动服务器。
您可能还需要运行usermod -a -G www-pub httpd
。这会将 apache 在其下运行的系统用户添加到组中。
当然,将 httpd 替换为 apache 正在运行的用户