私が見ることができるように、何もありません。
、LinuxのmanページUNIX(7)は、ソケットを含むディレクトリのパーミッションが(つまりは、あなたが必要と正常に適用されることを述べている+x
上/foo
に接続する/foo/sock
と、+w
上/foo
作成する/foo/sock
)と、その書き込みソケット自体に接続するアクセス許可のコントロール:
Linuxでは、ストリームソケットオブジェクトに接続するには、そのソケットに対する書き込み権限が必要です。同様に、データグラムをデータグラムソケットに送信するには、そのソケットに対する書き込み許可が必要です。
どうやら他のいくつかのシステムは異なる動作をします:
POSIXは、ソケットファイルに対するアクセス許可の影響については何も述べていません。一部のシステム(たとえば、古いBSD)では、ソケットのアクセス許可は無視されます。ポータブルプログラムは、セキュリティのためにこの機能に依存すべきではありません。
unix(4)
FreeBSDでは、同様の要件について説明しています。Linuxのmanページには、一部のシステムでのソケットアクセスがディレクトリのアクセス権も無視するかどうかが記載されていませんでした。
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
、DebianのLinux 4.9.0でソケットにアクセスするために実際問題となるのはほんの少しだけであることをテストしました。)
おそらく、あなたが意図したソケットは、すべての許可ビットがユーザーから削除されているのx
でしょうか、それともディレクトリのビットを意味しているのでしょうか?