rsync daemon は module 以下の path も受け付けてくれる
まずは man より
Access via rsync daemon: Pull: rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
rsync は –daemon オプション付きで起動することで daemon として listen することができる。そこに直接接続するには src なり dest の URI を rsync:// で書けばよいのだけれど、この
rsync://[USER@]HOST[:PORT]/[SRC|DEST]
の SRC なり DEST の部分は
rsyncd.conf
で
[module]
path = /path/to/module
と指定した path 以下にしかアクセスできないようになっている。つまりここでシステムのパスへの無制限のアクセスはできないように制限されている。
で、今まで実は module でフルパスを指定するだけで事足りていたので気にしたことなかったんだけど、
rsync src rsync://host/module/path/to/dest
みたいにも書けるということを知った。これであるホストのある特定のパス以下の任意のディレクトリについて rsync プロトコルで同期を取ることが可能なわけだ。なるほどなー。