![同步文件并保留权限/所有者](https://linux22.com/image/527769/%E5%90%8C%E6%AD%A5%E6%96%87%E4%BB%B6%E5%B9%B6%E4%BF%9D%E7%95%99%E6%9D%83%E9%99%90%2F%E6%89%80%E6%9C%89%E8%80%85.png)
问候,
我一直在 Ubuntu 10.04 上使用 Dropbox,虽然最初它在将我的网站的本地副本与远程站点同步方面运行良好,但在保存文件所有权和文件权限方面表现不佳(这对于需要 www-data 文件所有权的 shell 脚本和 java 应用程序尤其重要)
我尝试过 Unison,但同样,这似乎只是下载所有文件并赋予它们我的用户名的所有权和 755 权限。
有这些问题经验的人有什么建议吗?
我需要的是分布式文件系统吗?Hadoop 还是其他什么?
另外,每次在任一端更改文件时,是否可以让同步自动运行?
此外,如果能够像 Dropbox 一样“回到过去”,那就太好了。这可能吗?我需要某种版本控制系统/分布式文件系统吗?如果需要,有什么建议吗?
答案1
如果要以其他用户身份创建/更新文件,则写入文件的进程需要以 root 身份运行。禁用通过 ssh 的 root 登录是一种很好的做法 - 这意味着以 root 身份提取文件,而不是将其推送到 root 登录,但是这预先假设复制是单向的,对于跨互联网的双向复制,您可能需要对 ssh 服务器进行更深奥的配置,例如在非标准端口上运行、禁用密码验证并仅允许密钥对验证、使用端口敲击、fail2ban 等。
答案2
解决方案:
在我的笔记本电脑上,我已将用户“www-data”添加到 /etc/init.d/dropbox 并重新启动了 dropbox。
以下是有问题的那一行:
DROPBOX_USERS="joe90 www-data"
现在,我的“joe90”(我的用户名)和“www-data”的文件已同步。我的笔记本电脑上的文件全部归笔记本电脑上的“jo90”所有,无论它们归服务器上的“joe90”还是“www-data”所有。
希望这对某人有帮助。