我正在尝试 chroot 到 sshfs 安装目录:
mkdir remoteroot
sshfs remote:/ remoteroot/
sudo chroot remoteroot/
但我明白了chroot: cannot change root directory to remoteroot/: Permission denied
。我做错了什么还是这根本不支持?如果是这样,还有其他选择吗?
答案1
我发现问题是 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
考虑到可能存在文件所有权问题,因为如果您su
切换到另一个用户,远程端将不会切换到新用户。