consider the ssh command:
sudo ssh -L /my/local/sock:/var/remote_socket me@remote
This runs as root, so the created local unix domain socket has ownership root and 0600 permissions.
How do I tell ssh to create the socket with wider permissions?
Use the StreamLocalBindMask
option:
StreamLocalBindMask Sets the octal file creation mode mask (umask) used when creating a Unix-domain socket file for local or remote port forwarding. This option is only used for port forwarding to a Unix-domain socket file. The default value is 0177, which creates a Unix-domain socket file that is readable and writable only by the owner. Note that not all operating systems honor the file mode on Unix-domain socket files.
For a socket open to any user:
sudo ssh -o StreamLocalBindMask=0111 -L /my/local/sock:/var/remote_socket me@remote
(or just =0
).