Nada, como posso ver.
O Linux página homem unix (7) diz que as permissões do diretório contendo uma tomada aplicam normalmente (ou seja, você precisa +x
de /foo
se conectar a /foo/sock
, e +w
em /foo
criar /foo/sock
) e que escreve controles de permissão de conexão ao próprio socket:
No Linux, conectar-se a um objeto de soquete de fluxo requer permissão de gravação nesse soquete; o envio de um datagrama para um soquete de datagrama também requer permissão de gravação nesse soquete.
Aparentemente, alguns outros sistemas se comportam de maneira diferente:
O POSIX não faz nenhuma declaração sobre o efeito das permissões em um arquivo de soquete e, em alguns sistemas (por exemplo, BSDs mais antigos), as permissões de soquete são ignoradas. Programas portáteis não devem contar com esse recurso para segurança.
unix(4)
no FreeBSD descreve requisitos semelhantes. A página de manual do Linux não disse se o acesso ao soquete em alguns sistemas também ignora as permissões do diretório .
Remover o x
bit do soquete parece ter o efeito de gerar um erro diferente ao tentar executar o soquete, mas isso não é uma diferença prática:
$ ls -l test.sock
srwxr-xr-x 1 user user 0 Jun 28 16:24 test.sock=
$ nc -U ./test.sock
Hello
$ ./test.sock
bash: ./test.sock: No such device or address
$ chmod a-x test.sock
$ nc -U ./test.sock
Hello
$ ./test.sock
bash: ./test.sock: Permission denied
(Eu também testei que, de fato, apenas um w
pouco parece importar para acessar o soquete no Linux 4.9.0 da Debian.)
Talvez os soquetes que você quis dizer tenham removido todos os bits de permissão do usuário, ou você quis dizer o x
pouco no diretório?