Я буду устанавливать 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 запросит секретный пароль.