কিছুই আমি দেখতে পাচ্ছি না।
লিনাক্স man পৃষ্ঠা UNIX (7) বলছেন যে একটি সকেট ধারণকারী ডিরেক্টরি অনুমতি স্বাভাবিকভাবে প্রযোজ্য (যেমন আপনার যা দরকার +x
উপর /foo
সাথে সংযোগ স্থাপনের জন্য /foo/sock
এবং, +w
উপর /foo
তৈরি করতে /foo/sock
) আর যে লেখ অনুমতি সকেট নিজেই সংযোগ নিয়ন্ত্রণ:
লিনাক্সে, একটি স্রোত সকেট অবজেক্টের সাথে সংযোগ স্থাপনের জন্য সেই সকেটে লেখার অনুমতি প্রয়োজন; একটি ডেটাগ্রাম সকেটে একটি ডেটাগ্রাম প্রেরণের জন্য সেই সকেটে লেখার অনুমতি প্রয়োজন।
স্পষ্টতই কিছু অন্যান্য সিস্টেম আলাদা আচরণ করে:
পসিক্স সকেট ফাইলে অনুমতিগুলির প্রভাব সম্পর্কে কোনও বক্তব্য দেয় না এবং কিছু সিস্টেমে (যেমন, পুরানো বিএসডি) সকেটের অনুমতিগুলি উপেক্ষা করা হয়। সুরক্ষার জন্য পোর্টেবল প্রোগ্রামগুলি এই বৈশিষ্ট্যটির উপর নির্ভর করা উচিত নয়।
unix(4)
অন ফ্রিবিএসডি অনুরূপ প্রয়োজনীয়তার বর্ণনা দেয়। লিনাক্স ম্যান পৃষ্ঠাটি কোনও সিস্টেমে সকেট অ্যাক্সেসের জন্য ডিরেক্টরি অনুমতিগুলি উপেক্ষা করে কিনা তা বলেনি ।
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
দেবিয়ান লিনাক্স ৪.৯.০ এ সকেট অ্যাক্সেস করার জন্য কেবল কিছুটা গুরুত্বপূর্ণ মনে হয়েছে।)
সম্ভবত আপনি যে সকেটগুলি বোঝাতে চেয়েছিলেন তা ব্যবহারকারীর কাছ থেকে সমস্ত অনুমতি বিট সরানো হয়েছে, বা আপনি x
ডিরেক্টরিটিতে বিটটি বোঝাতে চেয়েছিলেন ?