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

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

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

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

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

решение1

Если сеть, соединяющая оба сервера, защищена (например, локальная сеть в вашем офисе), то вы можете использовать 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 запросит у вас секретный пароль.

Связанный контент