쓰는 동안 sshfs 작업이 허용되지 않습니다

쓰는 동안 sshfs 작업이 허용되지 않습니다

Rpi를 백업하기 위해 이미지 백업을 사용합니다. FTP 서버와 sshfs를 통해 직접 백업합니다.

/etc/fstab에 연결하는 방법은 다음과 같습니다.

MYUSERNAME@MYSERVER:/home/myuser/rpi_backup /mnt/MYSERVER fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/pi/.ssh/id_rsa,allow_other,default_permissions 0 0

이것은 내 /etc/fuse.conf입니다.

user_allow_other

권한이 없다는 오류가 발생합니다.

rsync: [generator] symlink "/tmp/img-backup-mnt/boot/cmdline.txt" -> "firmware/cmdline.txt" failed: Operation not permitted (1)

또한 다음 명령을 시도했지만 해결되지 않았습니다.

sudo groupadd fuse
sudo usermod -a -G fuse pi

이 문제를 해결하기 위해 내가 시도할 수 있는 다른 방법을 아는 사람이 있습니까?

매우 감사합니다!

편집하다:

따라서 궁극적으로 SSHFS가 전혀 아닙니다.

대상 /mnt/test.img를 사용하고 입력할 때 sudo image-backup동일한 오류가 발생합니다 .

사용자 정의 프로그램이 문제를 해결하고 찾는 것이 어렵다는 것을 알고 있지만 오류를 재현하거나 범위를 좁히기 위해 어떤 rsync 명령을 테스트할 수 있습니까? 감사해요.

답변1

질문에서 sudo echo 부분을 제거했습니다. 어떤 이유로 지금은 작동합니다.

@waltinator는 이미 그의 의견에서 이에 대해 설명했습니다. 여기에 긴 버전이 있습니다.

쉘은 여러 단계를 통해 명령줄을 해석합니다. 단계 중 하나(상당히 초기 단계)는 리디렉션을 처리하는 것입니다. 그렇기 때문에 다음과 같은 명령이 사용됩니다.

sudo -s /some/command > /some/where

아니요"로 해석됩니다.패스/some/command > /some/wheresudo -s” 그러나 리디렉션이 먼저 처리되고 출력이 sudo -s /some/command로 리디렉션됩니다 /some/where. 그런 다음에만 sudo호출되어 옵션 -s과 명령줄 인수를 전달합니다 /some/command.

이는 프로세스가 실행 중임을 의미합니다.당신의사용자 ID 및당신의리디렉션 대상에 쓸 수 있는 권한이 있으며 해당 권한에는 쓰기가 포함되지 않을 수 있습니다.

해결책은 실제로 거기에 쓸 수 있는 프로세스를 만드는 것입니다.

sudo -s /some/command | sudo -s tee [-a] /some/where > /dev/null

"/some/command"와 "tee" 모두 높은 권한으로 쓰기 작업을 실행하고 있는 것을 볼 수 있습니다.

파일을 추가하려면 "-a" 플래그를 사용해야 합니다. 그렇지 않으면 파일을 덮어쓰게 됩니다. 또한 파일에 기록되는 내용이 화면을 복잡하게 만드는 것을 원하지 않으면 출력을 tee./dev/null

관련 정보