Security
Rsync - 設置 rsync 使用者及其權限
我將在兩個網路伺服器之間設置 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 會詢問您的密碼。