chroot 到 sshfs 文件夹

Lor*_*one 6 chroot permissions fuse sshfs files

我正在尝试 chroot 到 sshfs 挂载的目录:

mkdir remoteroot
sshfs remote:/ remoteroot/
sudo chroot remoteroot/
Run Code Online (Sandbox Code Playgroud)

但我明白了chroot: cannot change root directory to remoteroot/: Permission denied。我做错了什么还是根本不支持?如果是这样,是否有其他选择?

Lor*_*one 3

我发现问题是 sshfs 试图阻止其他用户(甚至 root)访问我的远程文件系统。此外,访问字符设备(例如/dev/null)是有问题的,并且可能不是您想要的,因为我猜想例如管道 to/dev/null将有效地通过网络发送字节。

这就是我现在使用的:

mkdir remoteroot
sshfs remote:/ remoteroot -o allow_other -o kernel_cache   #you need to enable user_allow_other in /etc/fuse.conf
sudo mount --bind /tmp/ remoteroot/tmp/
sudo mount --bind /dev remoteroot/dev
sudo mount --bind /sys remoteroot/sys
sudo mount --bind /run remoteroot/run
sudo mount --bind /var/tmp remoteroot/var/tmp
sudo chroot remoteroot
Run Code Online (Sandbox Code Playgroud)

考虑到可能存在文件所有权问题,因为如果您su切换到另一个用户,远程端将不会切换到新用户。