Security

Rsync - 設置 rsync 使用者及其權限

  • August 12, 2019

我將在兩個網路伺服器之間設置 rsync。我的目標是在輔助伺服器上備份我的主伺服器的數據,以防主伺服器崩潰。我的問題與在主伺服器上為 rsync 目的設置使用者帳戶有關。

出於顯而易見的原因,我不想在這裡使用我的“root”使用者帳戶。因此,我的目標是設置另一個僅用於 rsync 目的的帳戶。據我了解,該使用者將需要對我需要傳輸的所有文件(apache 配置、使用者 linux 文件、www-data)的讀取權限。

如何最好地設置此類權限?我應該授予 rsync 使用者 root 權限還是有更安全的方法來為此類備份創建使用者?

如果連接兩台伺服器的網路是安全的(例如您辦公室的本地網路),那麼您可以在守護程序模式下使用 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 會詢問您的密碼。

引用自:https://serverfault.com/questions/724485