我有一个名为“app”的特定操作系统用户,它运行 Dropbox。该应用程序部署(在同一台服务器中)用于多个站点。但“app”用户的 Dropbox 拥有有关所有站点的信息。
dropobox/home/app/Dropbox/Sites/siteXXX/folder
为每个站点都设置了一个目录。所有 Dropbox 文件夹都由操作系统用户“app”自动创建。
但是,应用程序的每次安装都会使用 Dropbox 的内部文件夹。例如: /app/sites/siteXXX/siteData/shared/folder
。应用程序的每个实例都由特定的操作系统用户运行,例如“siteXXX”。问题是我希望所有实例/app/sites/siteXXX/siteData/shared/folder
都拥有700
所有权siteXXX
。该应用程序可以创建或编辑新文件。此外,Dropbox 用户“应用程序”应该能够继续同步....
所以...为了解决这个问题,我安装了 bindfs 并将其添加到 fstab:
/home/app/Dropbox/Sites/siteXXX/folder /app/sites/siteXXX/siteData/shared/folder fuse.bindfs force-user=siteXXX,force-group=siteXXX,perms=0700 0 0
这给了我想要的东西/app/sites/siteXXX/siteData/shared/folder
:700 和 的所有权siteXXX
。
现在的问题是,如果我从应用程序创建一个文件,它将使用用户“siteXXX”创建。 Dropbox 很可能能够读取它(因为大多数文件默认被其他文件读取)。但如果有较新的版本,它不太可能更新它,因为该文件可能是用 644 创建的,而 Dropbox 正在使用“app”操作系统用户运行。
抱歉,解释得有点混乱。有没有什么解决方法?有没有办法,/home/app/Dropbox/Sites/siteXXX/folder
无论如何我都可以将原件保留在“应用程序”用户手中?
提前致谢,
答案1
如果我理解正确的话,你应该看看--create-for-user 和 --create-with-perms 选项。