Ssh
如何更改 ssh 轉發的 unix 域套接字的權限
考慮 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
)。