Ничего, как я вижу.
Linux человек страница UNIX (7) говорит о том , что права доступа к директории , содержащие сокет обычно применяются (т.е. вам нужно +x
на /foo
подключение к /foo/sock
, и +w
на /foo
создание /foo/sock
) , и что записи управления разрешения при подключении к самой розетке:
В Linux для подключения к объекту сокета потока требуется разрешение на запись в этот сокет; отправка дейтаграммы в сокет дейтаграммы также требует разрешения на запись в этот сокет.
Видимо, некоторые другие системы ведут себя по-другому:
POSIX не делает никаких заявлений о влиянии разрешений на файл сокета, а в некоторых системах (например, старых BSD) разрешения сокета игнорируются. Переносимые программы не должны полагаться на эту функцию в целях безопасности.
unix(4)
на FreeBSD описаны аналогичные требования. В справочной странице Linux не сказано, игнорирует ли доступ к сокетам в некоторых системах права доступа к каталогу .
Удаление x
бита из сокета, по-видимому, приводит к другой ошибке при попытке выполнить сокет, но это не так много практического различия:
$ 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
(Я также проверил, что действительно только w
бит имеет значение для доступа к сокету в Linux 4.9.0 Debian.)
Возможно, у сокетов, которые вы имели в виду, были удалены все биты прав доступа пользователя, или вы имели в виду x
бит в каталоге?