Ssh
RSync over SSH - 即使使用者在根組中,權限也被拒絕
我需要通過網路在伺服器之間複製文件。我正在通過 ssh 使用 RSYNC 來執行此操作。問題是,無論文件在哪裡,我都需要能夠傳輸文件。
我創建了一個使用者 rsync 和:usermod -G root -a rsync讓他有權在兩台伺服器上的任何地方讀/寫。
在傳輸過程中,我看到此錯誤:
rsync: mkstemp "/root/.myFile.RDr2HY" failed: Permission denied (13)
我不明白髮生了什麼。
編輯:我剛剛發現目標文件夾沒有根組的寫訪問權限。我如何給這個 rsync 使用者 100% 的訪問權限?如果我將其 uid 更改為 0,則 rsync 停止工作。
您所做
usermod -G root -a rsync
的是將rsync
使用者添加到根組。這對大多數係統沒有任何影響,因為根組並不特殊。有些系統需要在 root 組中將權限提升到 root 使用者,但這永遠不夠(root 組是可以使用的使用者組sudo
,或一些等效設置)。在安全性方面,授予使用者在任何地方寫入文件的權限完全等同於授予該使用者 root 權限。(使用者可以覆蓋
/bin/su
,或/etc/passwd
,或/usr/sbin/sshd
,或任何數量的其他程序和數據庫,讓她為自己設置後門。)如果您需要通過 ssh 訪問任意文件,請允許 ssh 以 root 身份登錄。不是使用密碼(或者是一個長的、隨機生成的密碼),而是使用密鑰(當然,您需要小心保護)。,
/etc/sshd_config
放PermitRootLogin yes