Rsnapshot

rsnapshot 遠端伺服器 - 權限的最佳實踐

  • July 20, 2017

我正在嘗試為遠端伺服器設置基於 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

引用自:https://unix.stackexchange.com/questions/379752