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