我已经设置了一个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组具有读写权限。
答案 0 :(得分:1)
实际上,目录的“ X”访问权限意味着可以访问目录的内容。 检查此链接:https://askubuntu.com/questions/862289/difference-between-executable-directory-vs-executable-files 因此,您必须将访问权限更改为770。 或将其设置为700,将apache用户保留为所有者,而当您需要访问内容时,请切换到apache用户-这应该是安全的解决方案。