드라이브의 네트워크 백업을 수행하려고 합니다. 이 프로세스에는 두 대의 기계가 관련됩니다.
컴퓨터 1:
- 원격 시스템에는 2개의 하드 디스크 sda 및 sdb가 있습니다.
- sdb는 백업이 필요한 드라이브입니다.
- 사용자는 2명이며,뿌리그리고사용자
컴퓨터 2:
- 내가 사용하고 있는 기계
- 사용자 Alan으로 작업하고 필요한 경우 루트가 될 수 있습니다.
PC2에서는 다음을 수행합니다.
sshfs root@PC1:/dev ~/Desktop/netdisk/
아주 잘 설치되었습니다. ~/Destkop/netdisk/에 sdb를 사용할 수 있습니다. 다음 단계:
sudo dd if=~/Destkop/netdisk/sdb | gzip -c > ~/Destkop/ddbackup/image.gz
오류가 발생합니다.
dd: opening `netdisk/sdb': Permission denied
sdb의 권한을 확인할 때:
brw-rw---- 1 root disk 0, 0 Jan 3 10:47 sdb
왜냐하면 나는 다음과 같이 PC1에 SSH로 접속했기 때문이다.루트@PC1이는 sshfs로 마운트된 파일에 대한 루트 액세스 권한이 있다는 의미입니까?
이 예에서는 그렇지 않은 것 같습니다. 여기서 누락된 개념이 있습니까?
답변1
sshfs는 블록 장치를 처리할 수 없습니다. 모든 것을 파일로 처리합니다. 다음과 같이 ssh
, dd
및 명령줄 리디렉션을 사용하여 창의력을 발휘해야 합니다 .
PC2 -> PC1:
dd of=/home/Alan/Desktop/image.iso < ssh root@PC1 "dd if=/dev/sdb"
또는 PC1 -> PC2에서:
dd if=/dev/sdb | ssh root@PC2"dd of=/home/Alan/Desktop/image.iso"
답변2
설치 옵션을 사용하면 allow_other
모든 사용자로서 이 장치에 액세스할 수 있습니다. 이 옵션을 사용하는 경우 기억하세요.Linux 커널에는 FUSE에 영향을 미치는 해결되지 않은 보안 버그가 있습니다..
sshfs -o allow_other root@PC1:/dev ~/Desktop/netdisk/
user_allow_other
여러분도 꼭 참여해 보세요 /etc/fuse.conf
.
바라보다이 답변자세한 내용은 serverfault.com을 방문하세요.
답변3
원격 파일은 로그인한 원격 사용자(예: 루트)로 액세스됩니다. 정말 다른 방법이 없습니다.
귀하가 받고 있는 오류는 로컬 권한으로 인해 발생합니다. 이는 SSHFS의 기반이 되는 FUSE에서는 이상한 현상입니다. 기본적으로 마운트 사용자만 FUSE 파일 시스템에 액세스할 수 있습니다. 루트조차도 접근할 수 없습니다. 루트 액세스를 방지하는 것은 보안 제한 사항이 아닙니다. 왜냐하면 루트는 파일 시스템을 마운트한 사용자를 su(1)/setuid(2)할 수 있기 때문입니다. 이는 FUSE 내부 아키텍처의 제한 사항입니다. 루트가 아닌 사용자로 설치했으므로 파일 시스템도 루트가 아닌 사용자로 액세스됩니다. 어쨌든, sudo로 실행하면 dd
아무 것도 얻지 못하므로 그냥 실행하세요.
dd if=~/Destkop/netdisk/sdb | gzip -c > ~/Destkop/ddbackup/image.gz
어느 (쓸모없는 사용dd
)는 다음과 같이 단순화됩니다.
cat ~/Destkop/netdisk/sdb | gzip -c > ~/Destkop/ddbackup/image.gz
어떤 쓸모없는 사용이 cat
감소합니까?
gzip <~/Destkop/netdisk/sdb >~/Destkop/ddbackup/image.gz
원격 측의 일반 파일이 아닌 블록 장치 인 경우 sdb
원격 파일 시스템을 통해 작동하지 않습니다(장치 항목이 장치 항목인 경우 로컬 장치가 되므로 바람직하지 않습니다). SSH를 사용하여 액세스합니다.
ssh root@PC1 cat /dev/sdb | gzip >~/Destkop/ddbackup/image.gz
어쨌든 원격 측에서 압축을 수행하면 대역폭을 절약할 수 있습니다.
ssh root@PC1 'gzip </dev/sdb' >~/Destkop/ddbackup/image.gz