
我將在兩個網頁伺服器之間設定 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
and run /etc/init.d/rsync start
(如果正在運行 systemd,則運行systemctl enable rsync; systemctl start rsync
)。
現在,您可以在主要主機上執行 rsync 並將需要複製的任何內容傳送到輔助主機,例如:
# rsync -ai /var/www/ backupuser@secondary-host::all/var/www/
在這種情況下,Rsync 會要求您提供秘密密碼。