Ssh

RSync over SSH - 即使使用者在根組中,權限也被拒絕

  • June 23, 2011

我需要通過網路在伺服器之間複製文件。我正在通過 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

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