我想与许多用户一起使用 sshfs。
sshfs [email protected]:/ root/
通过此命令,我可以在目录 root/ 中获取整个文件系统。
当某个文件的用户刚好存在于远程机器上时,是否有可能更改该文件的用户?
我试过:
chown myuser myfile
当我ls -lah
在遥控器上制作时,我得到:
-rw-r--r-- 1 otheruser root 0 Jan 11 11:03 myfile
答案1
问题在于,chown
将文件提供给本地 UID属于myuser
。
举个例子,在本地机器上,你有myuser
一个 UID 1001,但是 UID 1001 属于otheruser
远程机器。
如果您想要将其提供给myuser
远程系统,则必须执行以下操作之一:
- 在两台机器上同步账户/UID(使用集中配置管理器可以有所帮助);
- 知道远程UID
myuser
(使用例如ssh root@distant id -u myuser
)并使用chown
该UID。
使用第二个选项,您可以执行以下操作(使用 bash):
uid=$(ssh root@distant id -u myuser)
[[ -n $uid ]] && chown $uid. myfile || echo "No uid found. Not chowning"
答案2
查找 posixovl 文件系统。
假设 ~/REMOTESITE 是远程系统的 sshfs 挂载:
/usr/local/sbin/mount.posixovl -F -S ~/REMOTESITE/user-backups /REMOTESITE -- -o allow_other
(我不确定是否严格需要“allow_other”,但它没有什么坏处。)
远程文件仍然归登录到远程帐户的任何人所有,但对于本地系统来说,它们似乎归本地用户所有。
(您可能还希望在此基础上分层 encfs,这样您就不需要信任远程站点)
格雷厄姆
答案3
不,您不能这样做。远程系统上的所有文件都以挂载时使用的“用户”身份访问。在您的情况下,该用户是 root 。