Görebildiğim gibi bir şey yok.
Linux ADAM sayfa unix (7) bir soket içeren dizinin izinleri (yani ihtiyacınız normalde geçerli olduğunu söylüyor +x
üzerinde /foo
bağlanmak için /foo/sock
, ve +w
üzerinde /foo
oluşturmak için /foo/sock
) ve bu yazma soketine kendisine bağlayan izin kontrolleri:
Linux'ta, bir akış soketi nesnesine bağlanmak için o sokette yazma izni gerekir; bir datagram soketine bir datagram göndermek aynı şekilde soket üzerinde yazma izni gerektirir.
Görünüşe göre bazı diğer sistemler farklı davranıyor:
POSIX, izinlerin soket dosyası üzerindeki etkisi hakkında herhangi bir açıklama yapmaz ve bazı sistemlerde (örn. Eski BSD'ler) soket izinleri yok sayılır. Taşınabilir programlar güvenlik için bu özelliğe güvenmemelidir.
unix(4)
FreeBSD'de benzer gereklilikler açıklanmaktadır. Linux kılavuz sayfası, bazı sistemlerde soket erişiminin dizin izinlerini de yoksayıp atmadığını söylemedi .
Ucu x
soketten çıkarmak, soketi yürütmeyi denemek için farklı bir hata verme etkisine sahip gibi görünüyor, ancak bu pratik bir fark değil:
$ 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'ın Linux 4.9.0'ındaki sokete erişmek için gerçekten sadece biraz önemli olduğunu test ettim .)
Belki de tüm izin bitlerinin kullanıcıdan kaldırıldığını veya x
dizindeki biti kastettiğiniz soketleri ?