প্রতিষ্ঠার পর থেকে, লিনাক্স একটি বহু-ব্যবহারকারী পরিবেশকে সমর্থন করার জন্য তৈরি করা হয়েছিল। একটি ওয়ার্কিং সিস্টেমে অনেক ব্যবহারকারী এবং গোষ্ঠীর সাথে, একই গ্রুপের ব্যবহারকারীদের মধ্যে ভাগ করা ডিরেক্টরিগুলির মুখোমুখি হওয়া খুবই সাধারণ, এবং ডিরেক্টরিগুলিতে ফাইলগুলি ভাগ করে নেওয়ার কারণে সমস্যা দেখা দেয়। এই নিবন্ধে, আমরা আলোচনা করব কিভাবে আপনি শেয়ার করা ডিরেক্টরিগুলিতে ফাইল অ্যাক্সেসের অনুমতি ঠিক করতে স্টিকি বিটগুলি ব্যবহার করতে পারেন৷
দৃষ্টান্তের উদ্দেশ্যে, আমাদের কাছে তিনটি ব্যবহারকারীর একটি সিস্টেম আছে - john1, john2 এবং john3, সবাই সাধারণ গ্রুপ "জনস" এর সদস্য।
ধরা যাক "john1" একটি নতুন ডিরেক্টরি তৈরি করে যার নাম "shared-dir" যার অর্থ "johns" গ্রুপের সকল ব্যবহারকারীদের মধ্যে শেয়ার করা।
ls
দিয়ে কমান্ড, আমরা "শেয়ার-ডির" এর অনুমতি দেখতে পারি, যা নিম্নলিখিত টেবিলে ব্যাখ্যা করা যেতে পারে:
শুধুমাত্র "john1" ডিরেক্টরির বিষয়বস্তু পড়তে পারে এবং ডিরেক্টরিতে লিখতে পারে। যেহেতু আমরা একটি শেয়ার্ড ডিরেক্টরী নিয়ে কাজ করছি, তাই আমরা চাই যে গ্রুপের সকল ব্যবহারকারীরা "শেয়ারড-ডির"-এ লিখতে সক্ষম হোক।
এর জন্য, আমরা chmod
ব্যবহার করে অনুমতিগুলি পরিবর্তন করব আদেশ আমরা নীচে দেখানো হিসাবে "জনস" গ্রুপের সমস্ত ব্যবহারকারীদের জন্য "লেখার" অনুমতি যোগ করব৷
আমরা নীচে দেখানো হিসাবে "শেয়ার-ডির" এর জন্য আপডেট করা অনুমতি দেখতে পারি। হলুদে আন্ডারলাইন করা অংশটি দেখায় যে "জনস" গ্রুপকে "লেখার" অনুমতি দেওয়া হয়েছে৷
শেয়ার করা ডিরেক্টরিতে ফাইল যোগ করা হচ্ছে
এখন "john1" দুটি ফাইল (j1_file1.txt এবং j1_file2.txt) যোগ করে "shared-dir"
সহজে বোঝার জন্য, ফাইল নামের প্রথম দুটি অক্ষর ব্যবহারকারী নামের সমার্থক।
একইভাবে, "john2"ও "shared-dir" ডিরেক্টরিতে "লিখতে" সক্ষম হয়
এখন "শেয়ারড-ডির" এ চারটি ফাইল আছে।
বর্তমান সেটআপে কি কোনো সমস্যা আছে?
"j1_file1.txt" ফাইলটি "john1" দ্বারা "john1" ফাইলের মালিক তৈরি করা হয়েছে। এখন "john2" লগ ইন করে এবং এই ফাইলটি মুছে ফেলার চেষ্টা করে, এবং সে তা করতে সক্ষম হবে৷
"john1" ফাইলের মালিক ছিল, কিন্তু "john2" এটি মুছে ফেলতে সক্ষম হয়েছিল কারণ "লেখার" অনুমতি "জনস" গ্রুপের সকল সদস্যকে দেওয়া হয়েছিল।
এই দৃশ্যকল্প আদর্শ নয়. আমরা চাই যে সমস্ত ব্যবহারকারীরা ডিরেক্টরিতে লিখতে সক্ষম হন, তবে শুধুমাত্র ফাইলের মালিক অবশ্যই একটি ফাইল মুছতে সক্ষম হবেন। কিভাবে এটি অর্জন করা যেতে পারে?
স্টিকি বিট চালু করা হচ্ছে
স্টিকি বিট হল একটি বিশেষ অনুমতি যা একটি ডিরেক্টরিতে সেট করা যেতে পারে যার অ্যাক্সেস সহ গ্রুপের জন্য "লিখন" অনুমতি সেট করা আছে। এই বিটটি নিশ্চিত করে যে গোষ্ঠীর সমস্ত সদস্য ডিরেক্টরিতে লিখতে পারে, তবে শুধুমাত্র সেই ব্যক্তি যিনি একটি ফাইল তৈরি করেছেন, যিনি ফাইলটির মালিক, ফাইলটি মুছতে পারবেন৷
chmod
+t
সহ কমান্ড পতাকা একটি ডিরেক্টরিতে স্টিকি বিট সেট করতে ব্যবহার করা যেতে পারে।
আপডেট করা অনুমতি নীচে দেখা যেতে পারে।
এখন যদি "john2" "j1_file2.txt" ফাইলটি মুছে ফেলার চেষ্টা করে যা "john1" দ্বারা তৈরি করা হয়েছিল, সেই অপারেশনটির অনুমতি নেই৷
আপনি যদি "অন্যদের" জন্য "চালনা" করার অনুমতি সরিয়ে দেন, যেমনটি নীচে দেখানো হয়েছে:
ডিরেক্টরীতে স্টিকি বিটের অস্তিত্ব অনুমতি স্ট্রিং এর "অন্যান্য" অংশে একটি বড় হাতের "T" দ্বারা উপস্থাপিত হয়। ডিরেক্টরিতে স্টিকি বিট আচরণ একই থাকে।
"chmod" কমান্ডের রূপ
chmod
-এর সংখ্যাসূচক রূপ কমান্ড একটি ডিরেক্টরিতে স্টিকি বিট সেট করতেও ব্যবহার করা যেতে পারে।
chmod nxyz <file_name>
যেখানে,
- n =1, স্টিকি বিট উল্লেখ করে। "n" এর অন্যান্য মানগুলি অন্যান্য বিশেষ অনুমতিগুলিকে নির্দেশ করে৷
- x :ফাইলের মালিককে অনুমতি দেওয়া হয়েছে
- y :ফাইলে অ্যাক্সেস সহ গ্রুপকে অনুমতি দেওয়া হয়েছে
- z :অন্যদের অনুমতি দেওয়া হয়েছে
"shared-dir"-এ স্টিকি বিট সেট করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
chmod 1755 shared-dir
যা +t
ব্যবহার করে একই ফলাফল দেয় বিদ্যমান ডিফল্ট অনুমতিতে।
স্টিকি বিটের ব্যবহার শুধুমাত্র ডিরেক্টরির জন্যই ভালো, এটি ফাইলের জন্য ব্যবহার করার কোনো মানে হয় না।