Fuse,如何设置拥有目录的用户?

Fuse,如何设置拥有目录的用户?

我在 Fuse 挂载目录上遇到了一些权限问题,我对如何设置所有者有点困惑。我在服务器上有一个媒体目录,apache 使用它来创建和提供一些用户生成的文件(这是一个 Django 用户媒体目录)。在此服务器上,从目录到文件的所有内容都归 www-data 所有,这是正确的。在第二个服务器上(它是第一个服务器的克隆),我使用 Fuse 通过 autofs 挂载目录,但所有内容都归该服务器的用户所有,而不是 www-data 所有,这是有问题的,因为 apache 无法在那里写入。在我的 auto.sshfs 中,我使用这个:

mountpoint   -fstype=fuse,rw,nodev,nonempty,allow_other,reconnect,uid=1000,gid=1000,max_read=65536,compression=yes,auto_cache,no_check_root,kernel_cache :sshfs\#server1@server1:/home/server1/user_media

我使用远程用户的 uid 和 gid。我读到过 idmap 允许双方读写,但也许我应该使用 www-data 的 uid。无论如何,在第二台服务器上,文件应该像在第一台服务器上一样属于 www-data,但我不知道如何做到这一点,而且我真的不能摆弄生产服务器。欢迎任何建议!

编辑:我将用户 uid 和 gid 更改为 apache,现在确实由该用户创建了新文件/目录,但更奇怪的是,如果我以 apache 身份登录并转到目录并尝试创建文件/目录,则会被拒绝权限。有人知道发生了什么吗?

答案1

我遇到了同样的问题。在我的例子中,/home/.mysql 中的加密数据容器归 root:root 所有。它是使用 mysql uid 和 gid 挂载的,因此从技术上讲,挂载目录的所有者是 mysql 用户,但其背后是 root 拥有的加密容器。这就是 encfs 抱怨权限被拒绝的原因。

相关内容