文件夹权限,以便rsync和move_uploaded_file工作

时间:2019-01-22 23:09:23

标签: php permissions

我已经设置了一个php脚本,该脚本接受上载的文件并将其存储在/backend/upload文件夹中。我正在使用move_uploaded_file实现这一目标。

与往常一样,在使用/backend/upload时,move_uploaded_file存在权限问题。为了解决这个问题,我将文件夹的所有者更改为apache。这些是我的/backend/upload权限:

drwxrw----  2 apache myuser 4096 Jan 22 23:35 upload

有了这个权限,我可以成功地将文件上传到上传文件夹,但是用户myuser无法读取它。 myuser组具有读写权限,因此无法读取该文件夹有点奇怪。我在这里想念什么?

现在,这不是最佳选择,但是我可以忍受不通过myuser查看文件的内容。造成更多麻烦的是rsycn现在无法上传文件,因为它没有访问upload文件夹的权限。根ssh访问已禁用。

您建议我做什么?理想情况下,myuser可以访问upload文件夹,move_uploaded_file可以上传并且rsync可以工作。我发现了许多建议使用777权限的答案,并且警告的数量与未使用此权限的警告数量大致相同。

ALSO::我试图将组和所有者更改为此:

drwxrw----  2 myuser apache 4096 Jan 22 23:35 upload

,但这对move_uploaded_file无效,即使apache组具有读写权限。

1 个答案:

答案 0 :(得分:1)

实际上,目录的“ X”访问权限意味着可以访问目录的内容。 检查此链接:https://askubuntu.com/questions/862289/difference-between-executable-directory-vs-executable-files 因此,您必须将访问权限更改为770。 或将其设置为700,将apache用户保留为所有者,而当您需要访问内容时,请切换到apache用户-这应该是安全的解决方案。