上传文件需要什么权限/所有权?

上传文件需要什么权限/所有权?

我试图通过我的 Web 应用程序将图片上传到服务器。我发现在我的本地机器上,父目录的 771 权限是可以接受的。然而,在 Web 服务器上,即使是 777 目录也不允许我上传图片。

假设代码本身没有缺陷,那么这里可能发生了什么?我注意到的一个区别是,即使一路追溯到目录层次结构,这些文件在我的本地机器上归“daniel”所有(也是组的一部分),而在 Web 服务器上则归“root”所有。除此之外,我看不出有什么区别。

如果需要,我可以填写任何其他详细信息。

答案1

这些 find 命令应该可以解决问题:

  1. 假设您的 apache 以 www-data 用户身份运行。也可能是 nobody。这将修复所有权:

    找到 /path/to/your/docroot !-user www-data -exec chown www-data:www-data {} \;

  2. 修复目录的权限:

    查找 /path/to/your/docroot -type d !-perm 755 -exec chmod 755 {} \;

  3. 修复文件权限

    查找 /path/to/your/docroot -type f !-perm 644 -exec chmod 644 {} \;

答案2

Apache 或 httpd 也必须是 UID 或 GID。并且具有读、写和执行权限。

答案3

在 ubuntu 上,apache 使用 www-data 用户/组运行

所以如果你 chown -R www-data pic/dir或者chgrp -R www-data pic/dir它应该工作。

如果您使用 chgrp,请确保至少775在目录上使用,而使用 chown,您可以755在目录上使用权限。

相关内容