내 웹사이트 데이터를 새 서버로 이전하려고 하는데 이 오류가 계속 발생합니다. 공개 키 액세스를 설정하고 .txt 파일을 사용하여 rsync를 완료할 수 있었습니다. 그런 다음 디렉터리를 시도하고 싶었지만 작동하지 않았습니다. rsync를 처음 사용하므로 더 많은 정보가 필요하면 알려주시기 바랍니다.
편집하다: 둘 다 원격 서버이며 이전 것은 Ubuntu 14.04.4이고 새 것은 Ubuntu 18.04.3입니다.
각 디렉터리에 대해 sudo 권한이 있지만 이동하려는 디렉터리를 소유하지 않을 수도 있습니다. 어떻게 답을 찾는지 모르겠습니다.
$ rsync -rt /var/www [email protected]:/home
rsync: recv_generator: mkdir "/home/www" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-config.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-mail.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wordpress") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-signup.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-trackback.php") failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
답변1
이 부분은 다음과 같습니다.
rsync: recv_generator: mkdir "/home/www" failed: Permission denied (13)
사용자에게 kiana
충분한 권한이 없다고 말하는 것 같습니다 /home
.쓰다그것에.
폴더 권한을 확인하는 방법
ls -l | grep home
원격 서버에서 이를 실행하면 /
폴더 소유자가 누구인지, 폴더에 어떤 액세스 권한이 있는지 알려줍니다. -폴더에 대한 기준은 해당 폴더 권한을 갖는 것 home
입니다 (자세한 내용은root:root
755
여기에 폴더 및 파일 권한이 있습니다.)
$ ls -l | grep home
drwxr-xr-x 3 root root 4096 21 mar 14.24 home
root
이 출력은 그룹이 있는 사용자가 root
폴더를 소유하고(d) home
모든 권한(rwx)을 갖고 있는 반면, 그룹의 다른 사용자 root
및 다른 사용자는 읽기/실행 권한(rx)은 있지만 읽기/실행 권한(rx)은 없음을 보여줍니다.쓰다허용하다.
-권한이 있는 사용자 sudo
는 인증 후 일시적으로 루트 권한을 가질 수 있음을 의미하며 이는 에 유용합니다 rsync
.
결론적으로
root
귀하는 작업을 수행하는 실제 사용자가 아니기 때문에 (보안상의 이유로 그렇게 해서는 안 됨) 폴더에 대한 쓰기 권한이 rsync
없습니다 . 사용자가 쓸 수 있는 다른 위치(예: 등 ) /home
에 웹서버 데이터를 저장해 보는 것이 좋습니다 .kiana
/tmp/
/opt/
답변2
또 다른 해결책은 rsync 명령을 추가하는 것입니다 --rsync-path="sudo rsync"
. 그렇다면 다음 문제는 원격 서버에서 입력할 수 없다는 것입니다(tty도 없고 대화형 프롬프트도 없습니다). 적어도 하나의 해결 방법은 다음과 같습니다.일시적으로사용자의 sudoers 줄에 설정하세요 NOPASSWD:
(안전하지 않음: sudo 비밀번호가 없습니다!). rsync 명령이 실행된 후 안전하지 않은 구성을 삭제할 수 있습니다.
중간 정도의 보안 수준이라도 남용하려면 먼저 누군가가 서버에 로그인해야 합니다 sudo
. 하지만 장점과 단점을 비교해 보세요.
답변3
/home 디렉토리 권한은 일반적으로 루트만 쓸 수 있습니다.
예를 들어 내 컴퓨터에서 ls를 실행하면 루트/루트가 표시됩니다.
$ ls -laF /home
total 12
drwxr-xr-x 3 root root 4096 Aug 20 2018 ./
drwxr-xr-x 24 root root 4096 Sep 3 09:00 ../
가장 좋은 방법은 실행 중인 시스템에 SSH를 통해 접속하고 /home에 디렉터리를 만드는 것입니다.
#Note the sudo, or you'd have to su to root
sudo mkdir /home/www
#Then change the ownership so the user kiana can write to it:
sudo chown kiana:kiana /home/www