Rsnapshot
rsnapshot 遠端伺服器 - 權限的最佳實踐
我正在嘗試為遠端伺服器設置基於 ssh-key 的登錄,以每天進行 rsnapshot。我使用的密鑰是普通使用者密鑰,但它顯然沒有 root 訪問權限,因此當 rsnapshot 使用使用者密鑰連接到伺服器時,例如 /root 將不會被備份。以最簡單的方式設置 rsnapshot 的最佳方法是什麼?我應該只創建一個普通的備份使用者,並將其添加到輪組並完成它嗎?
一種可能不那麼簡單的方法是連接,
root
但將用於連接的密鑰限制為僅執行 ; 的特定呼叫rsync
。這需要一個/root/.ssh/authorized_keys
條目from="192.0.2.*",command="/root/limit-rsnap" ssh-rsa AAAAB3N...
這限制了備份的預期來源(這可能不是所有設置的理想選擇),更重要的是
/root/limit-rsnap
在系統上的腳本中只允許特定呼叫rsync
:#!/bin/bash shopt -s extglob test -n "$SSH_ORIGINAL_COMMAND" || exit 1 case "$SSH_ORIGINAL_COMMAND" in 'rsync --server --sender -'+([vnlHogDtprRxe.isfLS])' --numeric-ids . '*) RSYNCPATH="${SSH_ORIGINAL_COMMAND#rsync --server --sender -+([vnlHogDtprRxe.isfLS]) --numeric-ids . }" test -e "$RSYNCPATH" && exec $SSH_ORIGINAL_COMMAND || exit 1 ;; *) exit 1 ;; esac