Ssh

即使對於 root 使用者,sshfs 權限也被拒絕

  • September 7, 2021

我使用sshfs將遠端文件夾從另一台伺服器掛載到本地伺服器。使用以下命令安裝遠端文件夾沒有問題:

sshfs -o allow_other someServerFromSSHConfig:/home/data/somefolder/ /some/local/folder

問題是我無法使用 chown 更改文件的所有者(無論 root 權限如何)我總是得到:

chown: changing ownership of ‘/somefolder/file.img’: Permission denied

訪問該文件夾的使用者是 fuse 組的成員。即使我在 sshfs 中添加額外的掛載選項來設置所有者,因為userx:groupx我無法使用userx和使用更改權限chown -R userx:groupx [...]

我希望能夠為已安裝文件夾中的文件設置使用者權限,但事實並非如此。

正如您在評論中所說,您連接為 data@remote_server 這意味著您根本不能chown。sshfs 只是一個粗略的抽象,您只被允許執行您可以在其中執行的操作sftp data@remote_server 所有抽像都是洩漏的,這個也是。

只有 root@remote_server 可以chown在 remote_server 上。您在 local_server 上是什麼使用者並不重要。

請注意,sftp root@remote_server您通常需要PermitRoot yesPermitRoot without-password在遠端的/etc/ssh/sshd_config這是有風險的。

PS。預設情況下,sshd 根本不允許 root 登錄,因為PermitRoot no選項。所以通常你不能 sshfs root@remote_host。如果您想通過 root 測試 chown 行為,我建議您設置PermitRoot without-password. 這意味著當公鑰添加到/root/.ssh/authorized_keys. 使用此設置,root 無法僅通過提供 root 密碼登錄,因此它有點安全。

PS2。如果您需要更高的安全性,您可以為這個文件共享設置另一個 sshd 實例;withForceCommand internal-sftp和 withchroot它會大大提高根安全性,但它需要使用新的 TCP 埠和新的防火牆例外。

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