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:

    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 ).

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.