如何更改 ssh 转发的 unix 域套接字的权限

如何更改 ssh 转发的 unix 域套接字的权限

考虑 ssh 命令:

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

它以 root 身份运行,因此创建的本地 unix 域套接字具有所有权 root 和 0600 权限。

我如何告诉 ssh 创建具有更广泛权限的套接字?

答案1

使用StreamLocalBindMask选项:

StreamLocalBindMask
    设置创建时使用的八进制文件创建模式掩码(umask)
用于本地或远程端口转发的 Unix 域套接字文件。
此选项仅用于端口转发到 Unix 域套接字文件。  
    默认值为 0177,创建 Unix 域套接字
该文件仅可由所有者读取和写入。请注意
并非所有操作系统都遵守 Unix 域上的文件模式
套接字文件。

对于向任何用户打开的套接字:

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

(要不就=0)。

相关内容