Ssh

如何更改 ssh 轉發的 unix 域套接字的權限

  • January 10, 2019

考慮 ssh 命令:

sudo ssh -L /my/local/sock:/var/remote_socket me@remote

這以 root 身份執行,因此創建的本地 unix 域套接字具有所有權 root 和 0600 權限。

如何告訴 ssh 創建具有更廣泛權限的套接字?

使用StreamLocalBindMask選項:

StreamLocalBindMask
 設置創建時使用的八進製文件創建模式遮罩(umask)
用於本地或遠端埠轉發的 Unix 域套接字文件。
此選項僅用於將埠轉發到 Unix 域套接字文件。 
 預設值為 0177,它創建一個 Unix 域套接字
只有所有者可讀和可寫的文件。注意
並非所有作業系統都支持 Unix 域上的文件模式
套接字文件。

對於對任何使用者開放的套接字:

sudo ssh -o StreamLocalBindMask=0111 -L /my/local/sock:/var/remote_socket me@remote

(或只是=0)。

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