Menurut pengalaman saya, pengguna yang tidak memiliki hak tidak dapat mengakses soket unix yang tidak dimilikinya tanpa set bit x. Apa tepatnya yang dilakukan bit ini? Terima kasih
linux
permissions
unix-sockets
Владимир Тюхтин
sumber
sumber
0644
berarti cukup baca izin untuk anggota grup dan "yang lain", jadi hanya pemilik yang dapat mengakses soket (karena izin tulis mengontrolnya).0666
, atau sama0222
seperti izin baca tidak diperlukan, akan cukup untuk memberikan akses kepada semua orang. Tapi, daripada memberikan izin kepada semua orang, saya akan mencari menggunakan kelompok untuk memungkinkan akses.Jawaban:
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:Tampaknya beberapa sistem lain berperilaku berbeda:
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:(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?sumber