如果我以 root 身份挂载 sshfs 点并使用该选项,allow_other
则在原始服务器 (SERVERA) 上,文件由 SSH 用户拥有,并且在目标服务器 (SERVERB) 上每个人都可以访问(可写)。
是否可以在 SERVERB 上以可以保留所有权和权限元数据的方式进行挂载?
例如,假设我有一个用户 bob,我创建(作为 root)一个文件夹,将其 chown 给 bob,然后 bob 可以管理他自己的文件,就像它们在本地磁盘上一样。
我对新的空共享感兴趣,因此保留旧数据以匹配服务器上的用户对我来说并不重要。
(PS:unix.stackexchange.com 和 serverfault.com 有什么区别?)
答案1
我想到的第一个解决方案是使用波西绍夫尔。它是一个 FUSE 模块(就像 SSHFS 一样),在另一个文件系统之上提供符合 POSIX 的 VFS 层。它的工作原理是将有关所有权和权限(以及其他此类内容)的信息存储在底层文件系统的文件中。虽然它最初的设计目的是提供一种在 FAT 文件系统上获取 POSIX 语义的方法,但它也应该可以很好地实现这一点(防止因将 FUSE 模块堆叠在一起而出现任何可能的问题)。
或者,如果您的存储提供商提供 SMB/CIFS 访问,请查看他们是否支持 CIFS UNIX 扩展(尽管仅当您通过安全网络进行通信并信任两个端点时才执行此操作,CIFS 是 SMB 1.0 的变体,它包括所有由此带来的潜在安全问题)。