Nichts, wie ich sehen kann.
Der Linux - man - Seite Unix (7) sagt , dass die Berechtigungen des Verzeichnisses eine Buchse enthält , gelten in der Regel (dh Sie müssen +xauf /fooeine Verbindung herstellen /foo/sock, und +wauf /fooerstellen /foo/sock) , und dass Schreibberechtigung Kontrollen an die Steckdose anschließen selbst:
Unter Linux erfordert die Verbindung zu einem Stream-Socket-Objekt eine Schreibberechtigung für diesen Socket. Das Senden eines Datagramms an einen Datagramm-Socket erfordert ebenfalls eine Schreibberechtigung für diesen Socket.
Anscheinend verhalten sich einige andere Systeme anders:
POSIX gibt keine Aussage über die Auswirkung der Berechtigungen auf eine Socket-Datei ab, und auf einigen Systemen (z. B. älteren BSDs) werden die Socket-Berechtigungen ignoriert. Tragbare Programme sollten sich aus Sicherheitsgründen nicht auf diese Funktion verlassen.
unix(4)on FreeBSD beschreibt ähnliche Anforderungen. In der Linux-Manpage wurde nicht angegeben, ob der Socket-Zugriff auf einigen Systemen auch die Verzeichnisberechtigungen ignoriert .
Das Entfernen des xBits aus dem Socket scheint einen anderen Fehler beim Ausführen des Sockets zu verursachen, aber das ist kein großer praktischer Unterschied:
$ 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
(Ich habe auch getestet, dass tatsächlich nur das wBit für den Zugriff auf den Socket unter Debians Linux 4.9.0 von Bedeutung zu sein scheint.)
Vielleicht hatten die Sockets, die Sie meinten, alle Berechtigungsbits vom Benutzer entfernt, oder Sie meinten das xBit im Verzeichnis?