考虑 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
)。