将一个目录挂载到另一个目录,同时将原始目录的 UID 映射到另一个目录

将一个目录挂载到另一个目录,同时将原始目录的 UID 映射到另一个目录

我想将目录挂载/var/www/mysite到目录/home/daniel/mysite,但同时将挂载文件的用户从原始用户(www-data)映射到我自己的用户(daniel)。

这样,文件/var/www/mysite/index.php的用户www-data将出现在已安装的目录中,/home/daniel/mysite/index.php并归其所有daniel- 或者,如果我/home/daniel/mysite/test.php用自己的用户创建文件,它将在用户下的原始目录中创建www-data

有可能吗?如果不可能,我有什么其他选择,以便我可以使用 IDE 并确保所有文件都属于 HTTP 服务器的用户?

答案1

最简单的解决方案是授予自己对 mysite 文件夹下所有内容的写权限后,使用 ln -s 创建指向主驱动器下的 mysite 文件夹的符号链接。

答案2

我最终使用 NFS 来解决我的难题。我使用了本教程作为基础,最终得到以下内容/etc/exports

/var/www/mysite localhost(rw,sync,no_subtree_check,all_squash,anonuid=33,anongid=33)

(所有内容都在一行中;其中 33 是www-data​​ 的 UID 和 GID)

以及以下内容/etc/fstab

localhost:/var/www/mysite /home/daniel/mysite nfs4 defaults 0 0

当我浏览目录时,它说每个文件都属于www-data:www-data,但我可以创建和编辑文件,就好像它们属于我自己的用户一样。

相关内容