パスワードを入力せずにこのプロトコルを使用して、ホスト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がrootとして実行されると、転送前にユーザーに変更されます。パスが/home/username
このIDなどに属していない場合、エラーが発生します。通常、次のようにセクションで実行するIDを追加する必要があります(通常はグループIDをそのユーザーのデフォルトに設定することもできます)。
[folder]
path = /home/username
uid = username
gid = *
...