ব্যবহারকারীগণ এবং গোষ্ঠীগুলির জন্য অ্যাক্সেস নিয়ন্ত্রণ তালিকা (এসিএল) এবং ডিস্ক কোটা কীভাবে সেট করবেন


অ্যাক্সেস কন্ট্রোল তালিকাগুলি (এসিএল হিসাবে পরিচিত) লিনাক্স কার্নেলের একটি বৈশিষ্ট্য যা নিয়মিত ugo/rwx অনুমতি দ্বারা উল্লিখিত ফাইলগুলির চেয়ে ফাইল এবং ডিরেক্টরিগুলির জন্য আরও সূক্ষ্ম অ্যাক্সেস অধিকার সংজ্ঞায়িত করতে দেয়।

উদাহরণস্বরূপ, স্ট্যান্ডার্ড ugo/rwx অনুমতিগুলি পৃথক পৃথক ব্যবহারকারী বা গোষ্ঠীগুলির জন্য পৃথক অনুমতি সেট করার অনুমতি দেয় না। এসিএলগুলির সাথে এটি করা অপেক্ষাকৃত সহজ, যেমনটি আমরা এই নিবন্ধে দেখব।

এসিএলগুলির সাথে ফাইল সিস্টেমের সামঞ্জস্যতা পরীক্ষা করা হচ্ছে

আপনার ফাইল সিস্টেমগুলি বর্তমানে এসিএল সমর্থন করছে তা নিশ্চিত করার জন্য, আপনার চেক করা উচিত যে তারা এসিএল বিকল্পটি ব্যবহার করে মাউন্ট করা হয়েছে। এটি করতে, আমরা নীচে উল্লিখিত হিসাবে ext2/3/4 ফাইল সিস্টেমের জন্য টিউন 2fs ব্যবহার করব। আপনি যাচাই করতে চান এমন ডিভাইস বা ফাইল সিস্টেমের সাথে/dev/sda1 প্রতিস্থাপন করুন:

# tune2fs -l /dev/sda1 | grep "Default mount options:"

দ্রষ্টব্য: এক্সএফএসের সাহায্যে অ্যাক্সেস কন্ট্রোল লিস্টগুলি বাক্সের বাইরে সমর্থিত।

নিম্নলিখিত ext4 ফাইল সিস্টেমে আমরা দেখতে পাচ্ছি ACL গুলি/dev/xvda2 এর জন্য সক্ষম করা হয়েছে:

# tune2fs -l /dev/xvda2 | grep "Default mount options:"

যদি উপরের কমান্ডটি ACL গুলি সমর্থন করে ফাইল সিস্টেম মাউন্ট করা হয়েছে তা নির্দেশ না করে তবে সম্ভবত নোকল বিকল্পটি/etc/fstab উপস্থিত থাকার কারণে এটি সম্ভব হয়।

সেক্ষেত্রে এটি মুছে ফেলুন, ফাইল সিস্টেমটি আনমাউন্ট করুন এবং তারপরে আবার মাউন্ট করুন অথবা/etc/fstab এ পরিবর্তনগুলি সংরক্ষণ করার পরে আপনার সিস্টেমটি পুনরায় বুট করুন।

লিনাক্সে এসিএল প্রবর্তন করা হচ্ছে

এসিএলগুলি কীভাবে কাজ করে তা চিত্রিত করার জন্য, আমরা একটি বিকাশকারী নামক গোষ্ঠী ব্যবহার করব এবং এতে ওয়াল্টারওয়াইট এবং সালগুডম্যান (হ্যাঁ, আমি একটি ব্রেকিং খারাপ ফ্যান!) যুক্ত করব:

# groupadd developers
# useradd walterwhite
# useradd saulgoodman
# usermod -a -G developers walterwhite
# usermod -a -G developers saulgoodman

আমরা এগিয়ে যাওয়ার আগে, উভয় ব্যবহারকারী বিকাশকারীদের গোষ্ঠীতে যুক্ত করা হয়েছে তা যাচাই করা যাক:

# id walterwhite
# id saulgoodman

আসুন এখন/mnt পরীক্ষার নামে একটি ডিরেক্টরি তৈরি করুন এবং এর ভিতরে acl.txt নামে একটি ফাইল তৈরি করুন (/mnt/test/acl.txt)।

তারপরে আমরা গ্রুপ মালিককে বিকাশকারীকে সেট করব এবং এর ডিফল্ট ugo/rwx অনুমতিগুলি পুনরাবৃত্তভাবে 770 এ পরিবর্তন করব (এভাবে ফাইলের মালিক এবং গ্রুপের মালিক উভয়কে দেওয়া পড়া, লেখার এবং কার্যকর অনুমতি প্রদান করা):

# mkdir /mnt/test
# touch /mnt/test/acl.txt
# chgrp -R developers /mnt/test
# chmod -R 770 /mnt/test

প্রত্যাশিত হিসাবে, আপনি ওয়ালটার হোয়াইট বা সলগুডম্যান হিসাবে/mnt/test/acl.txt এ লিখতে পারেন:

# su - walterwhite
# echo "My name is Walter White" > /mnt/test/acl.txt
# exit
# su - saulgoodman
# echo "My name is Saul Goodman" >> /mnt/test/acl.txt
# exit

এ পর্যন্ত সব ঠিকই. তবে, আমরা শীঘ্রই একটি সমস্যা দেখতে পাব যখন আমাদের বিকাশকারীদের গোষ্ঠীতে নেই এমন অন্য ব্যবহারকারীর জন্য /mnt/test/acl.txt লেখার অ্যাক্সেসের দরকার হয়।

স্ট্যান্ডার্ড ugo/rwx অনুমতিগুলির জন্য নতুন ব্যবহারকারীকে বিকাশকারীদের গ্রুপে যুক্ত করা প্রয়োজন, তবে এটি তাকে/তাকে গোষ্ঠীর মালিকানাধীন সমস্ত অবজেক্টের জন্য একই অনুমতি প্রদান করবে। এটি হ'ল এসিএলগুলি কাজে আসে।

ACL গুলি লিনাক্সে সেট করা হচ্ছে

দুটি ধরণের এসিএল রয়েছে: অ্যাক্সেস এসিএলগুলি হ'ল (যা কোনও ফাইল বা ডিরেক্টরিতে প্রয়োগ করা হয়) এবং ডিফল্ট (optionচ্ছিক) এসিএল, যা কেবলমাত্র একটি ডিরেক্টরিতে প্রয়োগ করা যেতে পারে।

যে ডিরেক্টরিটিতে একটি ডিফল্ট এসিএল সেট করা থাকে সেখানে যদি তাদের নিজস্ব একটি এসিএল না থাকে, তবে তারা তাদের পিতামাতার ডিরেক্টরিতে ডিফল্ট এসিএল উত্তরাধিকার সূত্রে প্রাপ্ত হয়।

আসুন, ব্যবহারকারীকে গ্যাকানপা /mnt/test/acl.txt এ পড়তে এবং লেখার অ্যাক্সেস দিতে দিন। এটি করার আগে আসুন আমরা সেই ডিরেক্টরিতে এটির বর্তমান এসিএল সেটিংসটি একবার দেখে নিই:

# getfacl /mnt/test/acl.txt

তারপরে ফাইলটিতে এসিএলগুলি পরিবর্তন করুন, পড়ুন/লেখার অনুমতিগুলি চিহ্নিত করতে u: ব্যবহারকারীর নাম এবং : rw ব্যবহার করুন:

# setfacl -m u:gacanepa:rw /mnt/test/acl.txt

এবং তুলনা করতে আবার ফাইলটিতে getfacl চালান। নিম্নলিখিত চিত্রটি "আগে" এবং "পরে" দেখায়:

# getfacl /mnt/test/acl.txt

এরপরে, আমাদের অন্যকে/mnt/পরীক্ষা ডিরেক্টরিতে অনুমতিগুলি কার্যকর করতে দেওয়া দরকার:

# chmod +x /mnt/test

মনে রাখবেন যে কোনও ডিরেক্টরি সামগ্রীতে অ্যাক্সেস পেতে নিয়মিত ব্যবহারকারীর সেই ডিরেক্টরিতে অনুমতি সম্পাদনের প্রয়োজন হয় ute

ব্যবহারকারী গ্যাকানপা এখন ফাইলটিতে লিখতে সক্ষম হবেন। এই অ্যাকাউন্টে স্যুইচ করুন এবং নিশ্চিত করতে নিম্নলিখিত কমান্ডটি কার্যকর করুন:

# echo "My name is Gabriel Cánepa" >> /mnt/test/acl.txt

কোনও ডিরেক্টরিতে ডিফল্ট এসিএল সেট করতে (যা অন্যথায় ওভাররাইট না করা হলে এর সামগ্রীগুলি উত্তরাধিকার সূত্রে প্রাপ্ত হবে), নিয়মের আগে d: যুক্ত করুন এবং একটি ফাইলের নামের পরিবর্তে একটি ডিরেক্টরি উল্লেখ করুন:

# setfacl -m d:o:r /mnt/test
# getfacl /mnt/test/

উপরের এসিএল মালিক গোষ্ঠীতে নেই এমন ব্যবহারকারীদের/mnt/পরীক্ষা ডিরেক্টরিটির ভবিষ্যতের সামগ্রীতে পঠিত অ্যাক্সেসের অনুমতি দেবে। পরিবর্তনের আগে এবং পরে getfacl/mnt/পরীক্ষার আউটপুটটির পার্থক্যটি নোট করুন:

নির্দিষ্ট এসিএল অপসারণ করতে -m কে -x দিয়ে উপরের কমান্ডগুলিতে প্রতিস্থাপন করুন। উদাহরণ স্বরূপ,

# setfacl -x d:o /mnt/test

বিকল্পভাবে, আপনি একটি পদক্ষেপে সমস্ত এসিএল অপসারণ করতে -বি বিকল্পটিও ব্যবহার করতে পারেন:

# setfacl -b /mnt/test

এসিএলগুলির ব্যবহার সম্পর্কে আরও তথ্য এবং উদাহরণগুলির জন্য, দয়া করে ওপেনসুএস সুরক্ষা গাইডের অধ্যায় 10, বিভাগ 2, দেখুন (পিডিএফ ফর্ম্যাটে বিনা ব্যয়ে ডাউনলোডের জন্যও উপলব্ধ)।

ব্যবহারকারী এবং ফাইল সিস্টেমে লিনাক্স ডিস্ক কোটা সেট করুন

স্টোরেজ স্পেস হ'ল আরেকটি উত্স যা অবশ্যই যত্ন সহকারে ব্যবহার এবং পর্যবেক্ষণ করা উচিত। এটি করার জন্য, পৃথক ব্যবহারকারী বা গোষ্ঠীগুলির জন্য কোটা ফাইল সিস্টেমের ভিত্তিতে সেট করা যেতে পারে।

সুতরাং, প্রদত্ত ব্যবহারকারী বা নির্দিষ্ট গোষ্ঠীর জন্য অনুমোদিত ডিস্কের ব্যবহারের উপর একটি সীমা স্থাপন করা হয়েছে এবং আপনি নিশ্চিন্ত থাকতে পারেন যে আপনার ডিস্কগুলি অসাবধান (বা ত্রুটিযুক্ত) ব্যবহারকারীর দ্বারা পূরণ করা হবে না।

কোনও ফাইল সিস্টেমে কোটা সক্ষম করার জন্য আপনাকে প্রথমে যেটি করতে হবে তা হ'ল ইউএসকোটা বা গ্র্পকোটা (যথাক্রমে ব্যবহারকারী এবং গ্রুপ কোটার জন্য)/etc/fstab এর বিকল্পগুলির সাহায্যে এটি মাউন্ট করা।

উদাহরণস্বরূপ, আসুন/dev/vg00/vol_backups এবং/dev/vg00/ভোল_প্রজেক্টে গ্রুপ-ভিত্তিক কোটা ব্যবহারকারী-ভিত্তিক কোটা সক্ষম করি।

নোট করুন যে ইউইউডি প্রতিটি ফাইল সিস্টেম সনাক্ত করতে ব্যবহৃত হয়।

UUID=f6d1eba2-9aed-40ea-99ac-75f4be05c05a /home/projects ext4 defaults,grpquota 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults,usrquota 0 0

উভয় ফাইল সিস্টেম আনমাউন্ট এবং পুনঃনির্মাণ:

# umount /home/projects
# umount /home/backups
# mount -o remount /home/projects
# mount -o remount /home/backups 

তারপরে পরীক্ষা করুন যে মাউন্টের আউটপুটটিতে usrquota এবং grpquota বিকল্প উপস্থিত রয়েছে (নীচে হাইলাইট করা দেখুন):

# mount | grep vg00

অবশেষে, কোটা আরম্ভ এবং সক্ষম করতে নিম্নলিখিত কমান্ডগুলি চালান:

# quotacheck -avugc
# quotaon -vu /home/backups
# quotaon -vg /home/projects

এটি বলেছিল, আসুন এখন আমরা আগে উল্লিখিত ব্যবহারকারীর নাম এবং গোষ্ঠীতে কোটা অর্পণ করি। আপনি পরে কোটাওফায় কোটা অক্ষম করতে পারেন।

লিনাক্স ডিস্ক কোটা সেট করা হচ্ছে

চলুন শুরু করা যাক ব্যবহারকারীর গ্যাকানাপার জন্য/হোম/ব্যাকআপগুলিতে এসিএল সেট করে, যা তাকে সেই ডিরেক্টরিতে পড়তে, লিখতে এবং অনুমতিগুলি সম্পাদন করতে দেয়:

# setfacl -m u:gacanepa:rwx /home/backups/

তারপরে,

# edquota -u gacanepa

আমরা ডিস্ক স্পেস ব্যবহারের নরম সীমাটি = 900 এবং হার্ড সীমাটি = 1000 ব্লক (1024 বাইট/ব্লক * 1000 ব্লক = 1024000 বাইট = 1 এমবি) করব।

এই ব্যবহারকারী যে ফাইল তৈরি করতে পারেন তার সংখ্যায় আমরা নরম ও হার্ড সীমাবদ্ধ হিসাবে 20 এবং 25 এর একটি সীমাও রাখতে পারি।

উপরের কমান্ডটি একটি অস্থায়ী ফাইল সহ পাঠ্য সম্পাদক ($এডিটর) চালু করবে যেখানে আমরা পূর্বে উল্লিখিত সীমাগুলি নির্ধারণ করতে পারি:

যখন সে হয় days দিনের ডিফল্ট অনুগ্রহকালীন সময়ে 900-ব্লক বা 20-ইনোড সীমাতে পৌঁছেছে তখন এই সেটিংস ব্যবহারকারীর গাচানপাতে একটি সতর্কবার্তা দেখা দেবে।

যদি ততক্ষণে ওভার-কোটার পরিস্থিতি না মিটিয়ে দেওয়া হয় (উদাহরণস্বরূপ, ফাইলগুলি সরিয়ে), নরম সীমাটি হার্ড সীমাতে পরিণত হয় এবং এই ব্যবহারকারীর বেশি স্টোরেজ স্পেস ব্যবহার বা আরও ফাইল তৈরি করা থেকে বিরত রাখা হবে।

পরীক্ষা করার জন্য, আসুন এর ব্যবহারকারী গ্যাকানিপা/home/ব্যাকআপগুলির মধ্যে টেস্ট 1 নামে একটি খালি 2 এমবি ফাইল তৈরি করার চেষ্টা করুন:

# dd if=/dev/zero of=/home/backups/test1 bs=2M count=1
# ls -lh /home/backups/test1

আপনি দেখতে পাচ্ছেন, ডিস্কের কোটা অতিক্রম করার কারণে লেখার অপারেশন ফাইল ব্যর্থ হয়। যেহেতু কেবলমাত্র প্রথম 1000 কেবি ডিস্কে লেখা রয়েছে, এই ক্ষেত্রে ফলাফলটি সম্ভবত একটি দুর্নীতিগ্রস্থ ফাইল হবে।

একইভাবে, আপনি সেই গ্রুপের সদস্যদের/হোম/প্রকল্পগুলিতে অ্যাক্সেস দেওয়ার জন্য বিকাশকারীদের গোষ্ঠীগুলির জন্য একটি এসিএল তৈরি করতে পারেন:

# setfacl -m g:developers:rwx /home/projects/

এবং এর সাথে কোটার সীমা নির্ধারণ করুন:

# edquota -g developers

ঠিক যেমনটি আমরা আগে ব্যবহারকারী গ্যাকেনিপা দিয়েছিলাম।

গ্রেস পিরিয়ড নির্বাহের মাধ্যমে যেকোন সেকেন্ড, মিনিট, ঘন্টা, দিন, সপ্তাহ বা মাসের জন্য নির্দিষ্ট করা যেতে পারে।

# edquota -t

এবং ব্লক গ্রেস পিরিয়ড এবং ইনড গ্রেস পিরিয়ডের অধীনে মানগুলি আপডেট করে।

ব্লক বা ইনোড ব্যবহারের বিপরীতে (যা ব্যবহারকারী বা গোষ্ঠী ভিত্তিতে সেট করা আছে), অনুগ্রহকালীন সময়টি সিস্টেম-ভিত্তিক সেট করা থাকে।

কোটার প্রতিবেদন করতে, আপনি একটি দ্রুত তালিকার জন্য -u [ব্যবহারকারী] বা কোটা -g [গোষ্ঠী] বা পুনঃকোটা -v [/ পাথ/টু/ফাইলসিস্টেম] আরও বিশদ (ভার্বোজ) এবং সুন্দর বিন্যাসিত প্রতিবেদনের জন্য

অবশ্যই, আপনি [ব্যবহারকারী] , [গোষ্ঠী] , এবং [/ পাথ/থেকে/ফাইল সিস্টেম]] নির্দিষ্ট ব্যবহারকারী/গ্রুপের নাম এবং ফাইল সিস্টেম যাচাই করতে চান।

সারসংক্ষেপ

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

আপনি যদি কোটার বিষয়ে আরও জানতে চান, তবে আপনি লিনাক্স ডকুমেন্টেশন প্রকল্পের কোটা মিনি-হাওটো দেখতে পারেন।

বলা বাহুল্য, আপনি আমাদের প্রশ্নের উত্তর দিতেও নির্ভর করতে পারেন। কেবল নীচের মন্তব্য ফর্মটি ব্যবহার করে সেগুলি জমা দিন এবং আমরা একবার দেখে আনন্দিত হতে পারি।