원격 SSH 서버에 백업하기 위해 rsync를 설정하려고 하는데 다음 오류가 발생합니다.
rsync: opendir "/home/backup/." failed: Permission denied (13)
이것은 rsync 명령입니다:
sudo -u admin rsync -avzh /home/backup/ [email protected]:/home/sam/prodweb
백업 폴더 내의 tar 파일에 대한 권한이 있기 때문에 관리자로 명령을 실행하려고 합니다. 폴더가 있는 설정은 다음과 같습니다.
sudo ls -l /home/
total 4
drwx--x--x. 9 admin admin 172 Mar 19 12:49 admin
drwx--x--x. 3 backup backup 4096 Apr 8 03:10 backup
drwx------. 6 sam sam 228 Apr 3 15:08 sam
sudo ls -l /home/backup/
total 12902820
-rw-r----- 1 admin admin 214722560 Apr 6 03:10 admin.2020-04-06_03-10-12.tar
-rw-r----- 1 admin admin 214702080 Apr 7 03:10 admin.2020-04-07_03-10-13.tar
-rw-r----- 1 admin admin 214732800 Apr 8 03:10 admin.2020-04-08_03-10-13.tar
백업 사용자로 명령을 실행하려고 시도했지만 동일한 오류가 발생하지만 개별 파일을 읽을 때(관리자가 소유하고 있기 때문에) 이것은 누군가가 다른 해결책을 찾은 경우를 대비한 VestaCP 설정입니다. 원격 SFTP 설정을 사용해 보았지만 운이 없었으며 Rsync를 사용하면 SSH 키를 사용할 수 있습니다.
폴더는 백업 사용자가 소유하고 파일은 관리자가 소유하기 때문에 문제가 있다고 생각합니다. 저는 아직 우분투와 센토스의 초보자입니다. 나는 VestaCP 백업 직후 매일 아침 Cron에서 이 명령을 실행하기 때문에 권한을 그대로 유지하려고 합니다.
감사합니다
답변1
관리자에게 디렉터리 내용을 나열할 권한이 없습니다 /home/backup
.
권한을 완화하세요. 예를 들어, 관리자 사용자가 그룹의 구성원인 경우 admin
다음을 고려할 수 있습니다.
chgrp admin /home/backup
chmod g=rx /home/backup