Debian.pro

Блог для пользователей и администраторов Debian


Настройка rsync-демона в debian/ubuntu. Debian/ubuntu rsync daemon.

Писал я тут когда-то про настройку NFS сервера, про настройку vsftpd. А православный rsync я как-то забыл.
Пополню коллекцию, напишу как настроить rsync сервер.

Начинается всё как обычно:

root@server:~# apt-get install rsync

Таким образом мы ставим и клиент, и сервер. Сервер нужно включить:

root@server:~# sed -i 's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/' /etc/default/rsync

И нужно написать конфиг. Я пишу большой конфиг, но далеко не все опции обязательны. Ещё стоит аккуратно выбирать gid/uid, от которого будет работать rsyncd. Понятно дело, что root/root избавят вас от любых проблем с правами. Но лучше выставлять что-то в духе nobody/nobody, а для нужных файлов вешать chmod 777/755 в зависимости от потребностей в rw/ro.
Собственно:

root@server:~# editor /etc/rsyncd.conf
uid = nobody
gid = nogroup
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid

[somerwdir]
path = /storage/forbackups
comment = For backups from local servers
uid = backupuser
gid = backupgroup
hosts allow = 192.168.0.0/24
hosts deny = *

[logs-rw]
path = /storage/logs
comment = Logs storage, rw local access
uid = logsuser
gid = logsgroup
hosts allow = 192.168.0.0/24
hosts deny = *

[logs-ro]
path = /storage/logs
comment = Logs storage, ro world-wide access.
uid = logsuser
gid = logsgroup
read only = yes
auth users = admin, manager, logparser
secrets file = /etc/rsyncd.pass

В /etc/rsyncd.pass пароли придется хранить в открытом виде, поэтому:

root@server:~# editor /etc/rsyncd.pass && chown root:root /etc/rsyncd.pass && chmod 600 /etc/rsyncd.pass

В сам файл пишем примерно такое:

admin:pass1
manager:pass2
logparser:pass3

Теперь осталось создать всех пользователей и группы (adduser/addgroup), которые мы указывали в конфиге в опциях uid/gid, и запустить сам rsyncd:

root@server:~# /etc/init.d/rsync restart

При изменении конфига рестартить демон не нужно — он читает конфиг при каждом подключении.

Ну и полюбуемся на свои труды:

root@server:~# rsync rsync://localhost/
somerwdir For backups from local servers
logs-rw Logs storage, ro world-wide access.
logs-ro Logs storage, rw local access

root@server:~# rsync rsync://admin@localhost/logs-ro/
Password:

drwxr-xr-x 4096 2012/07/01 20:33:50 .

Комментарии (4):

  1. onotole :

    А как можно со стороны сервера ограничить скорость скачивания с определенных хостов? Дать по шапке скачивающим не вариант.

  2. В rsyncd.conf нельзя, судя по мануалу. По крайней мере, в текущей версии.

  3. Юрий :

    в секциях с ресурсами:
    «auth users» вместе «uid», «gid»

    Для Debian:
    gid = nogroup

  4. Поправил, спасибо.

Написать комментарий