sshfs 설치 디렉터리로 루트를 이동하려고 합니다.
mkdir remoteroot
sshfs remote:/ remoteroot/
sudo chroot remoteroot/
그러나 나는 그것을 이해한다 chroot: cannot change root directory to remoteroot/: Permission denied
. 내가 뭔가 잘못하고 있는 걸까요, 아니면 단순히 지원되지 않는 걸까요? 그렇다면 다른 옵션이 있습니까?
답변1
문제는 sshfs가 다른 사용자(심지어 루트)가 내 원격 파일 시스템에 액세스하는 것을 막으려고 한다는 것이었습니다. 또한 문자 장치(예: /dev/null
)에 액세스하는 것은 문제가 있으며 아마도 원하는 것이 아닐 수도 있습니다. 예를 들어 파이핑이 /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
다른 사용자로 전환하면 원격 측에서는 새 사용자로 전환되지 않으므로 파일 소유권 문제가 있을 수 있다는 점을 고려하세요 .