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_ENABLERSYNC_ENABLE=trueand 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 會要求您提供秘密密碼。

相關內容