লিনাক্সে একটি খুব দরকারী বৈশিষ্ট্য হল "অ্যাক্সেস কন্ট্রোল লিস্ট" যা ফাইল এবং ডিরেক্টরিগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করে। লিনাক্সে ফাইলের অনুমতিগুলি নিয়ন্ত্রণ করতে অ্যাক্সেস নিয়ন্ত্রণ তালিকাগুলি কীভাবে কাজ করে তা এখানে রয়েছে৷
দ্রষ্টব্য: অ্যাক্সেস কন্ট্রোল তালিকাগুলি কীভাবে কাজ করে তা পুঙ্খানুপুঙ্খভাবে উপলব্ধি করার জন্য, আমরা প্রথমে একটি কার্যকরী Linux সিস্টেমে কিছু ব্যবহারকারী এবং গোষ্ঠী সেট আপ করছি। নিম্নলিখিত অনুশীলনটি কালী অপারেটিং সিস্টেম চালিত একটি ভার্চুয়াল মেশিনে করা হয়। রুট ব্যবহারকারী সিস্টেমে নতুন ব্যবহারকারীদের যোগ করার এবং তাদের গ্রুপে বরাদ্দ করার ক্ষমতা রাখে।
ব্যবহারকারী এবং গ্রুপ তৈরি করা
প্রথমত, আমরা রুট হিসাবে লগ ইন করব, ব্যবহারকারী তৈরি করব এবং নীচের সারণীতে দেখানো হিসাবে তাদের সংশ্লিষ্ট গ্রুপে রাখব। ধারণাটি আরও ভালভাবে বোঝার জন্য ব্যবহারকারীদের সহজ নাম দেওয়া হয়েছে৷
ব্যবহারকারী | গ্রুপ |
---|---|
john1 john2 john3 | জনস |
jane1 jane2 | জেনস |
আমরা adduser
ব্যবহার করব সিস্টেমে নতুন ব্যবহারকারী যোগ করার জন্য কমান্ড।
id
কমান্ড নতুন তৈরি ব্যবহারকারীর বিবরণ প্রদর্শন করবে। এটি ব্যবহারকারী আইডি (uid), গ্রুপ আইডি (জিআইডি) এবং গ্রুপের নাম (গ্রুপ) দেখাবে। ব্যবহারকারী, তৈরি করার পরে, ব্যবহারকারীর নামের মতো একই নামের একটি গ্রুপে স্বয়ংক্রিয়ভাবে যুক্ত হয়। সেই ব্যবহারকারীই হবেন গ্রুপের একমাত্র সদস্য।
একইভাবে, "john2" এবং "john3" ব্যবহারকারীরাও তৈরি করা হয়েছে৷
৷adduser john2 adduser john3
একবার তিনজন ব্যবহারকারী তৈরি হয়ে গেলে, id
ব্যবহার করুন সংশ্লিষ্ট ব্যবহারকারী এবং গ্রুপ আইডি দেখার জন্য কমান্ড।
আমরা দেখতে পাচ্ছি যে তিনজন ব্যবহারকারী তাদের নিজস্ব গ্রুপে রয়েছে - 1000, 1001 এবং 1002। পূর্বে দেখানো সারণী অনুসারে, আমরা চাই যে তিনজন ব্যবহারকারী একই গ্রুপে থাকুক: johns
. যেহেতু এই ধরনের একটি গ্রুপ বর্তমানে সিস্টেমে বিদ্যমান নেই, তাই আমরা এটি groupadd
দিয়ে তৈরি করব কমান্ড:
groupadd -g <new_group_ID> <group_name>
নতুন গ্রুপ আইডি 5000 হিসাবে নির্দিষ্ট করা হয়েছে। যদি -g
হয় সুইচ উপেক্ষা করা হয়, তারপর সিস্টেম স্বয়ংক্রিয়ভাবে একটি গ্রুপ আইডি বাছাই করবে। নতুন গ্রুপের নাম "জনস"। এখন তিনজন ব্যবহারকারী - "john1", "john2" এবং "john3" -কে এই গ্রুপের সদস্য হিসেবে যুক্ত করতে হবে। আমরা usermod
ব্যবহার করব এই কাজের জন্য কমান্ড।
usermod -g <group_name> <user_name>
usermod
"গ্রুপ_নাম" গোষ্ঠীতে ব্যবহারকারী "user_name" যোগ করে। গ্রুপ পরিবর্তনের আগে নিম্নলিখিত চিত্রটি প্রথমে "john1" এর জন্য uid এবং gid প্রদর্শন করে। usermod
এর পরে কমান্ড সফলভাবে চলে, "john1" যোগ করা হয়েছে "johns" গ্রুপে gid 5000 সহ।
একই প্রক্রিয়া ব্যবহারকারীদের জন্য করা হয় "john2" এবং "john3।"
usermod -g johns john2 usermod -g johns john3
অবশেষে, "জনস" গ্রুপের তিনজন ব্যবহারকারীর বিবরণ id
ব্যবহার করে দেখা যেতে পারে আদেশ।
আমরা সফলভাবে তিনজন ব্যবহারকারী তৈরি করেছি এবং তাদের একই গ্রুপে যুক্ত করেছি।
একইভাবে, ব্যবহারকারীরা “জেন1” এবং “জেন2” তৈরি করা হয় এবং জিআইডি 6000 সহ “জেনস” গ্রুপে যোগ করা হয়। তাদের বিশদ বিবরণ id
ব্যবহার করে দেখা যেতে পারে। নীচে দেখানো হিসাবে কমান্ড.
অ্যাক্সেস কন্ট্রোল লিস্টের প্রয়োজন কি?
ধরা যাক ব্যবহারকারী "john1" লগ ইন করে,
হোম ডিরেক্টরিতে একটি নতুন ফাইল তৈরি করে,
এবং এতে কিছু বিষয়বস্তু যোগ করে।
ls
ব্যবহার করে কমান্ড দিলে আমরা ফাইলের মেটাডেটা দেখি।
আউটপুটে প্রথম কয়েকটি অক্ষর, - rw - r - - r - -
অনুমতি স্ট্রিং জন্য অ্যাকাউন্ট. আসুন এটিকে ব্যবচ্ছেদ করি।
– | rw – | r – – | r – – |
---|---|---|---|
ফাইলের ধরন | অনুমতি জন1 ফাইলে আছে | জনস গ্রুপের সদস্যদের ফাইলে অনুমতি আছে | অন্যদের দেওয়া অনুমতি জনস গ্রুপে নেই |
এই নিবন্ধটি ফাইল অনুমতির জন্য একটি ভাল প্রাইমার।
যদি "john1", ফাইলের মালিক হয়ে, অতিরিক্তভাবে শুধুমাত্র "john2" এবং "jane1"-কে লেখার অনুমতি দিতে চায় কিন্তু "john3" এবং "jane2?"-এর জন্য পড়ার অনুমতি নিয়ে টিকে থাকে?
rw – | r – – |
---|---|
john1 john2 jane1 | john3 jane2 |
একটি বিকল্প হল "john1", "john2" এবং "jane1" এর জন্য পঠন, লেখার অনুমতি সহ একটি নতুন গ্রুপ তৈরি করা এবং "john3" এবং "jane2" এর জন্য শুধুমাত্র পড়ার অনুমতি সহ আরেকটি গ্রুপ তৈরি করা। যদি john1 গ্রুপের যেকোন সদস্যের জন্য অনুমতি পরিবর্তন করতে চায়, তাহলে আরও গোষ্ঠী তৈরি করতে হবে। একাধিক গ্রুপ তৈরি করা এবং পরিচালনা করা সিস্টেম অ্যাডমিনিস্ট্রেটরের জন্য একটি বোঝা৷
পরিবর্তে, একটি ফাইলের জন্য একটি "অ্যাক্সেস কন্ট্রোল লিস্ট" তৈরি করা যেতে পারে যা স্পষ্টভাবে বর্ণনা করবে যে কোনো ব্যবহারকারী সেই ফাইলটিতে কী কাজগুলি সম্পাদন করতে পারে৷
কিভাবে একটি ফাইলের জন্য একটি অ্যাক্সেস কন্ট্রোল লিস্ট (ACL) তৈরি করবেন?
তৈরির পর প্রতিটি ফাইলের জন্য একটি ACL বরাদ্দ থাকে। দক্ষতার সাথে এটি ব্যবহার করা কেবল এটি পরিবর্তন করার একটি বিষয়। শুধুমাত্র ফাইলের মালিক এবং রুট ব্যবহারকারী একটি ফাইলের ACL পরিবর্তন করতে পারেন।
আমরা getfacl
ব্যবহার করতে পারি বিদ্যমান ACL দেখার জন্য কমান্ড:
getfacl <file_name>
#
দিয়ে শুরু হওয়া লাইন মন্তব্য লাইন হয়. প্রকৃত তথ্য আউটপুটের শেষ তিনটি লাইনে রয়েছে, যা পূর্বে প্রাপ্ত অনুমতি স্ট্রিংয়ের অনুরূপ। "ব্যবহারকারী" লাইনটি ফাইলের মালিক "john1" কে বরাদ্দকৃত অনুমতিগুলিকে বোঝায়। "গ্রুপ" লাইনটি "জনস" গ্রুপের অন্যান্য সদস্যদের জন্য নির্ধারিত অনুমতিগুলিকে বোঝায়। আপনি যেমন অনুমান করেছেন, "অন্য" লাইনটি গোষ্ঠীর বাইরের অন্য কাউকে বোঝায়৷
আসুন setfacl
ব্যবহার করি ফাইলে বিদ্যমান ACL পরিবর্তন করার জন্য কমান্ড।
setfacl -m entity:name:permissions <file_name>
সত্তা | নাম | অনুমতি |
---|---|---|
এখানে মানটি বোঝায় যে ACL এন্ট্রি কার জন্য: ব্যবহারকারী (u) বা গোষ্ঠী(g) বা অন্য(o) | ব্যবহারকারী বা গোষ্ঠীর নাম, যার জন্য ACL এন্ট্রি প্রাসঙ্গিক | রিড, রাইট, এক্সিকিউট পারমিশনগুলিকে r,w,x অক্ষর দ্বারা চিহ্নিত করা হয় |
“john2” প্রথমে ফাইলটিতে রিড, রাইট অ্যাক্সেস দেওয়া হয়,
তারপরে "জেন১।"
আসুন "সিক্রেটফাইল"
-এর জন্য আপডেট করা ACL দেখি
আমরা দেখতে পাচ্ছি যে পড়া এবং লেখার অনুমতি "john2" এবং "jane1" কে বরাদ্দ করা হয়েছে৷
ACL-এর সত্যতা যাচাই করা হচ্ছে
আমরা দেখতে পাচ্ছি যে "john2" ফাইলটি পড়তে এবং এটিতে লিখতে সক্ষম৷
৷
"john2" দ্বারা প্রবেশ করা নতুন তথ্য ফাইলটিতে যুক্ত করা হয়েছে৷
৷
একইভাবে, "জেন1" একই সুবিধা পায় - পড়ার অ্যাক্সেস এবং লেখার অ্যাক্সেস৷
৷
কিন্তু একই গ্রুপের “john3” ফাইলটিতে লিখতে অক্ষম।
"jane2," যিনি অন্য বিভাগের অন্তর্গত, তিনি ফাইলটিতে লিখতেও অক্ষম৷
৷
উপসংহার
একই প্রক্রিয়া ডিরেক্টরিতেও প্রসারিত করা যেতে পারে। অ্যাক্সেস কন্ট্রোল লিস্টগুলি একটি সিস্টেম অ্যাডমিনিস্ট্রেটরকে ফাইল এবং ডিরেক্টরি অ্যাক্সেস একটি দক্ষ পদ্ধতিতে পরিচালনা করতে সক্ষম করে৷