Назад | Перейти на главную страницу

Rsync - Настройка пользователя rsync и его разрешений

Я буду устанавливать rsync между двумя веб-серверами. Я стремлюсь иметь резервную копию данных с моего основного сервера на вторичном сервере на случай, если основной сервер выйдет из строя. Мой вопрос касается настройки на основном сервере учетной записи пользователя для целей rsync.

По очевидным причинам я не хочу использовать здесь свою учетную запись «root». Поэтому я стремлюсь создать другую учетную запись, которая будет использоваться только для целей rsync. Насколько я понимаю, этому пользователю потребуются разрешения на чтение всех файлов, которые мне нужно будет передать (конфигурация apache, пользовательские файлы linux, www-данные).

Как лучше всего настроить такие разрешения? Должен ли я предоставить пользователю root-права rsync или есть более безопасный способ создать пользователя для такой резервной копии?

Если сеть, соединяющая оба сервера, безопасна (например, локальная сеть в вашем офисе), вы можете использовать rsync в режиме демона для подключения как root. Таким образом, вы не используете ssh для установления соединения.

Во вторичной системе создайте файл /etc/rsyncd.conf со следующим содержанием:

[all]
  path = /
  read only = no
  uid = 0
  gid = 0
  hosts allow = primary-host
  auth users = backupuser
  secrets files = /etc/rsyncd.secrets
  exclude = /tmp/ /var/tmp/ /var/cache/ /proc/ /sys/ /dev/ /run/ /boot/

Теперь создайте файл /etc/rsyncd.secrets например:

backupuser:thisisasecretpassword

Сделайте файл доступным для чтения только root:

# chown root /etc/rsyncd.secrets; chmod 400 /etc/rsyncd.secrets

Теперь вам нужно убедиться, что rsync запущен как демон; это зависит от вашего дистрибутива, в Debian вы редактируете /etc/default/rsync и изменить RSYNC_ENABLE линия к RSYNC_ENABLE=true и беги /etc/init.d/rsync start (если вы используете systemd, запустите systemctl enable rsync; systemctl start rsync).

Теперь вы можете запустить rsync на первичном хосте и отправить все, что вам нужно для репликации, на вторичный, например:

# rsync -ai /var/www/ backupuser@secondary-host::all/var/www/

В этом случае Rsync запросит секретный пароль.