우분투 서버 간에 rsync:// 프로토콜을 사용할 때 rsync 권한이 거부되었습니다.

우분투 서버 간에 rsync:// 프로토콜을 사용할 때 rsync 권한이 거부되었습니다.

비밀번호를 입력하지 않고 이 프로토콜을 사용하여 호스트 2에서 호스트 1(둘 다 Ubuntu Server 20.04 실행)로 파일을 동기화하려고 합니다 rsync://.

호스트 2에서:

$ cat /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock

[folder]
    path = /home/username
    comment = rsync folder
    read only = false
    list = yes

그럼 난 달려sudo systemctl start rsync

$ cat /var/log/rsyncd.log 
2021/03/25 01:07:51 [8035] rsyncd version 3.1.3 starting, listening on port 873

호스트 1에서:

$ rsync /home/username/test.txt rsync://host2:/folder
rsync: mkstemp "/.test.txt.UHerWZ" (in folder) failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]

호스트 2에서:

$ tail -F /var/log/rsyncd.log
2021/03/25 03:13:00 [9212] name lookup failed for host1: Name or service not known
2021/03/25 03:13:00 [9212] connect from UNKNOWN (host1)
2021/03/25 03:13:00 [9212] rsync to folder/ from UNKNOWN (host1)
2021/03/25 03:13:00 [9212] receiving file list
2021/03/25 03:13:00 [9212] rsync: mkstemp "/.test.txt.KRLgUO" (in folder) failed: Permission denied (13)
2021/03/25 03:13:00 [9212] sent 122 bytes  received 95 bytes  total size 5

라이센스가 거부되는 이유는 무엇입니까? 에서 사용자 이름과 비밀번호를 정의해야 합니까 /etc/rsyncd.conf?

답변1

nobody기본적으로 rsyncd가 루트로 실행되면 전송하기 전에 사용자로 변경됩니다. 경로가 /home/username이 ID 등에 속하지 않으면 오류가 발생합니다. 일반적으로 다음과 같이 섹션에서 실행할 ID를 추가해야 합니다(일반적으로 그룹 ID를 해당 사용자의 기본값으로 설정하기도 함).

[folder]
    path = /home/username
    uid = username
    gid = *
    ...

관련 정보