我正在使用 sshfs 远程安装我的 /home 目录。由于服务器和客户端上的 UID 和 GID 不同,因此我使用idmap=file
. 此外,由于应用程序要求,我必须安装所有 /home 而不是单个用户目录。
sshfs_uids:
user1:1001
user2:1000
Run Code Online (Sandbox Code Playgroud)
sshfs_gids:
user1:1001
user2:1000
Run Code Online (Sandbox Code Playgroud)
挂载命令:
sudo sshfs -o nonempty -o transform_symlinks -o hard_remove -o allow_other -o nomap=ignore -o idmap=file -o uidfile=/root/sshfs_uids -o gidfile=/root/sshfs_gids root@myserver:/home /home
Run Code Online (Sandbox Code Playgroud)
读取文件时,一切都按预期工作(应该由 user1:user1 拥有的文件确实如此)。但是,当我以 user1 身份写入时,会发生这种情况:
user1@myclient:~$ touch foo
user1@myclient:~$ ls -l foo
-rw-r--r--. 1 root root 0 Jun 13 13:54 foo
Run Code Online (Sandbox Code Playgroud)
我的用户以 root 身份写入文件!即使执行ls -l
from myserver 也会出现相同的 root 所有权。不过我可以手动修复它:
user1@myclient:~$ chown user1:user1 foo
user1@myclient:~$ ls -l foo …
Run Code Online (Sandbox Code Playgroud)