Tidak ada, seperti yang saya lihat.
Linux Pria halaman unix (7) mengatakan bahwa hak akses dari direktori yang berisi socket berlaku normal (yaitu Anda perlu +x
di /foo
terhubung ke /foo/sock
, dan +w
pada /foo
menciptakan /foo/sock
) dan write kontrol izin menghubungkan ke soket sendiri:
Di Linux, menghubungkan ke objek stream socket memerlukan izin tertulis pada socket itu; mengirim datagram ke soket datagram juga memerlukan izin tertulis pada soket itu.
Tampaknya beberapa sistem lain berperilaku berbeda:
POSIX tidak membuat pernyataan apa pun tentang efek izin pada file soket, dan pada beberapa sistem (misalnya, BSD yang lebih tua), izin soket diabaikan. Program portabel tidak boleh mengandalkan fitur ini untuk keamanan.
unix(4)
pada FreeBSD menjelaskan persyaratan serupa. Halaman manual Linux tidak mengatakan jika akses soket pada beberapa sistem mengabaikan izin direktori juga.
Menghapus x
bit dari soket tampaknya memiliki efek memberikan kesalahan yang berbeda untuk mencoba mengeksekusi soket, tapi itu tidak banyak perbedaan praktis:
$ 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
(Saya juga menguji bahwa hanya w
sedikit yang penting untuk mengakses socket pada Debian's Linux 4.9.0.)
Mungkin soket yang Anda maksudkan telah menghapus semua bit izin dari pengguna, atau maksud Anda x
bit pada direktori?