কম্পিউটার টিউটোরিয়াল

লিনাক্সে শেয়ারড ডিরেক্টরিতে ফাইল ম্যানেজ করার জন্য Sticky Bit ব্যবহার করা

শুরু থেকে, লিনাক্স মাল্টি-ইউজার এনভায়রনমেন্ট সাপোর্ট করার জন্য টেইলর করা হয়েছিল। একসাথে অনেক ইউজার এবং গ্রুপ থাকা একটি ওয়ার্কিং সিস্টেমে, একই গ্রুপের ইউজারদের মধ্যে শেয়ারড ডিরেক্টরি সামনে আসা খুব সাধারণ, এবং ডিরেক্টরিতে ফাইল শেয়ারিংয় থেকে সমস্যা উঠায়। এই আর্টিকেলে, আমরা আলোচনা করব কীভাবে আপনি স্টिकी বিট ব্যবহার করে শেয়ারড ডিরেক্টরিতে ফাইল অ্যাক্সেস পারমিশন ফাইন-টিউন করতে পারেন।

ইলাস্ট্রেশনের জন্য, আমাদের একটি সিস্টেম রয়েছে তিনটি ইউজারের সাথে—john1, john2 এবং john3, সবাই "johns" নামের কমন গ্রুপের মেম্বার।

ধরুন "john1" "shared-dir" নামে একটি নতুন ডিরেক্টরি তৈরি করেন যা "johns" গ্রুপের সব ইউজারের মধ্যে শেয়ার করার জন্য।

ls কমান্ড দিয়ে, আমরা "shared-dir"-এর পারমিশন দেখতে পাই, যেটি নিচের টেবিলে ব্যাখ্যা করা যেতে পারে:

শুধু "john1" ডিরেক্টরির কন্টেন্ট পড়তে পারে এবং ডিরেক্টরিতে লিখতে পারে। যেহেতু আমরা একটি শেয়ারড ডিরেক্টরি নিয়ে কাজ করছি, আমরা গ্রুপের সব ইউজারকে "shared-dir"-এ লিখতে দিতে চাই।

এটি করার জন্য, আমরা chmod কমান্ড ব্যবহার করে পারমিশন মডিফাই করব। আমরা "johns" গ্রুপের সব ইউজারের জন্য "write" পারমিশন যোগ করব নিচের মত:

আমরা "shared-dir"-এর আপডেটেড পারমিশন নিচের মত দেখতে পাই। যেলো আন্ডারলাইন করা অংশটি দেখাচ্ছে যে "johns" গ্রুপকে "write" পারমিশন দেওয়া হয়েছে।

শেয়ারড ডিরেক্টরিতে ফাইল যোগ করা

এখন "john1" "shared-dir"-এ দুটি ফাইল (j1_file1.txt এবং j1_file2.txt) যোগ করেন।

সহজ বোঝার জন্য, ফাইল নামের প্রথম দুটি ক্যারেক্টার ইউজারনেমের সমানার্থী।

এভাবেই, "john2"ও "shared-dir"-এ "write" করতে পারেন।

এখন "shared-dir"-এ চারটি ফাইল রয়েছে।

কারেন্ট সেটআপে কি কোনো সমস্যা রয়েছে?

"j1_file1.txt" ফাইলটি "john1" দ্বারা তৈরি করা হয়েছে, তাই "john1" সেটির ফাইল ওনার। এখন "john2" লগ ইন করে এই ফাইলটি ডিলিট করার চেষ্টা করে, এবং সে সক্ষম হবে।

"john1" ফাইল ওনার হলেও, "john2" এটিকে ডিলিট করতে পারলো কারণ "write" পারমিশন "johns" গ্রুপের সব মেম্বারকে দেওয়া হয়েছিল।

এই সিনেরিওটি আদর্শ নয়। আমরা সব ইউজারকে ডিরেক্টরিতে লিখতে দিতে চাই, কিন্তু শুধু ফাইল ওনার ফাইলটি ডিলিট করতে পারুক। এটিকে কীভাবে অর্জন করা যায়?

Sticky Bit পরিচিতি

স্টিকি বিট হলো একটি স্পেশাল পারমিশন যা একটি ডিরেক্টরিতে সেট করা যেতে পারে যেটিতে গ্রুপের জন্য "write" পারমিশন সেট করা রয়েছে। এই বিট নিশ্চিত করে যে গ্রুপের সব মেম্বার ডিরেক্টরিতে লিখতে পারবে, কিন্তু শুধু যে ব্যক্তি ফাইলটি তৈরি করেছে, অর্থাৎ ফাইল ওনার, সে ফাইলটি ডিলিট করতে পারবে।

chmod কমান্ড +t ফ্ল্যাগ দিয়ে একটি ডিরেক্টরিতে স্টিকি বিট সেট করা যায়।

আপডেটেড পারমিশন নিচে দেখা যাচ্ছে।

এখন যদি "john2" "john1" দ্বারা তৈরি "j1_file2.txt" ফাইলটি ডিলিট করার চেষ্টা করে, তবে সেই অপারেশন পারমিটেড নয়।

আপনি যদি "others"-এর জন্য "execute" পারমিশন রিমুভ করেন, নিচের মত:

তবে ডিরেক্টরিতে স্টিকি বিটের অস্তিত্ব পারমিশন স্ট্রিং-এর "others" পোर्शनে আপারকেস "T" দিয়ে রিপ্রেজেন্ট করা হয়। ডিরেক্টরিতে স্টিকি বিটের বিহেভিয়র একই থাকে।

"chmod" কমান্ডের ভ্যারিয়েন্ট

chmod কমান্ডের নমেরিক্যাল ফর্মও স্টিকি বিট ডিরেক্টরিতে সেট করতে ব্যবহার করা যায়।

chmod nxyz 

যেখানে,

  • n = 1, যেটি স্টিকি বিটকে রেফার করে। "n"-এর অন্যান্য ভ্যালু অন্যান্য স্পেশাল পারমিশনকে রেফার করে।
  • x : ফাইল ওনারকে দেওয়া পারমিশন
  • y : ফাইলে অ্যাক্সেস থাকা গ্রুপকে দেওয়া পারমিশন
  • z : অন্যদের দেওয়া পারমিশন

"shared-dir"-এ স্টিকি বিট সেট করতে, নিচের কমান্ডটি ব্যবহার করুন:

chmod 1755 shared-dir

যে ফলাফল +t ডিফল্ট পারমিশনে ব্যবহার করলে হয়।

স্টিকি বিটের ব্যবহার শুধু ডিরেক্টরির জন্য ভালো, ফাইলগুলোর জন্য এটি অর্থহীন।

  1. লিনাক্সে Foremost ব্যবহার করে ডিলিট করা ফাইল রিকভার করার পদ্ধতি

  2. fd ব্যবহার করে লিনাক্স এবং macOS-এ ফাইল দ্রুত খুঁজুন

  3. লিনাক্সে জিপ ফাইল এক্সট্র্যাক্ট করার পদ্ধতি

  4. লিনাক্সে Zsync ব্যবহার করে ফাইলের অংশ ট্রান্সফার করার পদ্ধতি