সিগ্রুপগুলি পরিচালনা করার জন্য কি রুট অ্যাক্সেসের প্রয়োজন?


12

আমি দুটি ভিন্ন অপারেটিং সিস্টেমে (উবুন্টু এবং সেন্টোস) কন্ট্রোল গ্রুপগুলির সাথে কাজ করার চেষ্টা করছি। আমি জিজ্ঞাসা করতে চান যে কয়েকটি উদ্বেগ আছে।

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

মূল ব্যবহারকারী হওয়া কি আসলেই দরকার? শেষ লক্ষ্যটি হল একটি সি ++ অ্যাপ্লিকেশন লিখুন যা libcgrou API ব্যবহার করে সংস্থান নিয়ন্ত্রণ করতে নিয়ন্ত্রণ গ্রুপ তৈরি করে এবং পরিচালনা করে। তবে সি ++ অ্যাপ্লিকেশনটি কোনও রুট ব্যবহারকারী দ্বারা চালিত হচ্ছে না। এটি যে কোনও সাধারণ ব্যবহারকারী হতে পারে।


1
wiki.archlinux.org/index.php/Cgroups এর কিছু তথ্য রয়েছে, আপনার অবশ্যই রুট দ্বারা কিছু সেটআপ লাগবে ( আপাতত cgroups এ নিজেকে বিশদভাবে দেখেনি )।
মাদুর

সেই ওয়েবসাইটটি যদিও বিশদগুলির সাথে সহায়তা করে না। এটি কেবলমাত্র একটি উচ্চ পর্যায়ের পর্যালোচনা।
র‌্যাম্বো

1
ঠিক আছে, এটি আপনাকে বলে যে রুটগুলি এমন গোষ্ঠীগুলি সেটআপ করতে পারে যা অ-রুট ব্যবহারকারীদের দ্বারা পরিচালিত হয়।
মাদুর

আমি কিছুক্ষণ আগে ব্যাপকভাবে সিগ্রুপগুলিতে দেখেছি ; তথ্যটি আপনার কাজে আসতে পারে। তবে আমি এটি রুট হিসাবে সব করছি, তাই এই বিশেষ প্রশ্নের উত্তর আমার কাছে নেই।
ওয়াইল্ডকার্ড

আপনি একটি 'এডিটগ্রুপ' গ্রুপ তৈরি করতে পারেন, তারপরে সেই গোষ্ঠীর প্রত্যেককেই 'সুডো সিজিক্রিয়েট' এবং 'সুডো সিজিডিলেট' করার অনুমতি দিন
জন মিলিটার

উত্তর:


4

স্বাভাবিক দৃশ্যকল্প আপনাকে সেট করে cgcreate, cgset, cgdelete, cggetযেমন, ইত্যাদি আপ রুট । অবশেষে প্রোগ্রাম / স্ক্রিপ্ট বলতে বোঝা যায় যে অনেকগুলি সংস্থান থেকে সফল হওয়া থেকে বিরত রাখা সাধারণ ব্যবহারকারী হিসাবে কার্যকর করা হবে। সুতরাং, রুট হিসাবে সেটআপ, ব্যবহারকারীর হিসাবে ব্যবহার এবং সম্পাদন।

এই সঙ্গে কাজ করা হচ্ছে না -aএবং -tএর পরামিতি cgcreateকমান্ড (root পরিচয়ে মৃত্যুদন্ড কার্যকর)। সুতরাং ইতিমধ্যে আপনি যখন একটি গ্রুপ সেট আপ। আমার ক্ষেত্রে:

সিজিক্রিয়েট-ট মণিরো: মনিরো -এ মনিরো: মনিরো-জি মেমরি, সিপিইউ: মোনারোগ্রুপ

যেখানে মনিরো হ'ল ভবিষ্যতের ব্যবহারকারীর ব্যবহারকারীর নাম যা সিগ্রুপ নিষেধাজ্ঞাগুলি দিয়ে প্রোগ্রামটি চালাবে এবং পরিচালনা করবেন। -aএবং -tসাবপ্যারামিটারগুলির মধ্যে সূক্ষ্ম পার্থক্যের জন্য ম্যান পেজগুলি দেখুন cgcreate

man cgcreate

বেশিরভাগ ক্ষেত্রেই উভয় একই ব্যবহারকারী।

তারপরে, বিধিনিষেধগুলি সেট করুন (এখনও মূল হিসাবে):

cgset -r memory.limit_in_bytes = $ ((4 * 1024 * 1024 * 1024)) মনেরোগ্রুপ

cgset -r cpu.shares = 128 monerogroup

আপনি চাইলে আপনার এন্ট্রিগুলি পরীক্ষা করুন:

cgget -g মেমোরি: / monerogroup | গ্রেপ বাইট

এবং তারপরে অবশেষে ব্যবহারকারীর পরিবর্তন করুন, আমার ক্ষেত্রে ব্যবহারকারী মনিরো এবং ডান ফোল্ডার থেকে:

cgexec -g মেমরি, সিপিইউ: মনারোগ্রুপ। / মোনারড

অনুমতিগুলির ক্ষেত্রে ব্যবহারকারীর কোনও অসুবিধা হবে না বা যেমন আপনি তাঁর জন্য এটি নির্দিষ্ট করে রেখেছেন।


2

এটির সুরক্ষা সম্পর্কিত বিষয়গুলি বাদ দিয়ে আপনি setuidকিছুটা সেট করতে পারেন

chmod +s /bin/cgcreate
chmod +s /bin/cgdelete

নন রুট ব্যবহারকারীদের যে সেই প্রোগ্রামটির মূল শক্তি চালায় give

পুনঃসংশোধনটি তখন সাধারণ ব্যবহারকারীর অ্যাক্সেস অপসারণ করে

chmod 550 /bin/cgcreate
chmod 550 /bin/cgdelete

এবং একটি বিশেষ গোষ্ঠী তৈরি করুন যা আপনি সিজিক্রিয়েট আইই ব্যবহার করার অনুমতি দিতে চান cgusers,

groupadd cgusers

এবং সেই ফাইলগুলিতে গ্রুপের সদস্যপদটিকে সেই গোষ্ঠীতে পরিবর্তন করুন:

chgrp cgusers /bin/cgcreate
chgrp cgusers /bin/cgdelete

এর সবগুলি রুট দ্বারা চালিত হবে, তার পরে এই cgusersগোষ্ঠীর সমস্ত ব্যবহারকারী তাদের নিজের পরিবর্তে চালাবে cgcreateএবং cgdeleteরুট হিসাবে চালাবে । আপনার কেবলমাত্র সদস্যদের দরকার আপনার সঠিক গ্রুপের অধীনে এই ক্ষমতা থাকতে চান।


1

সিগ্রুপগুলি শেষ পর্যন্ত সিগ্রুপ ফাইল সিস্টেমের মাধ্যমে পরিচালিত হয়। সিগ্রুপ তৈরির সক্ষমতা কেবল তাদের / তাদের অধীনে ডিরেক্টরি তৈরি এবং ফাইলগুলিতে লেখার দক্ষতা হওয়া উচিত। আপনি যদি আরও বিস্তৃত অনুমতি সহ সিগ্রুপ এফএসগুলি মাউন্ট করেন বা আপনি যদি উড়ে যাওয়ার অনুমতিগুলি পরিবর্তন করেন তবে নির্দিষ্ট ব্যবহারকারীদের স্টাফ করতে সক্ষম হতে হবে। স্পষ্টতই আপনি টাস্ক ফাইলটিতে অন্য ব্যবহারকারীর প্রক্রিয়া আইডি যুক্ত করতে সক্ষম হবেন না। আপনি কেবল আপনার ব্যবহারকারীর যুক্ত করতে সক্ষম হবেন।

এটি বলার পরে, আমি নিশ্চিত না যে উপরেরটি বিশ্বব্যাপী। অর্থাৎ এমন একটি সুযোগ রয়েছে যে নির্দিষ্ট সিগ্রুপগুলি এটি সমর্থন করে না।

সামগ্রিকভাবে, সেরা পন্থাটি হ'ল সিগ্রুপ ব্যবস্থাপককে ব্যবহার করা যা পরে কর্মগুলিকে সিগ্রুপের সাথে সংযুক্ত করার জন্য নির্দেশ দেওয়া যেতে পারে। আমি বিশ্বাস করি যে সিজিম্যানার এইরকম কিছু করে।


1

সংক্ষিপ্ত উত্তর না হয়।

একটি ক্রগোষ্ঠ তৈরি এবং মালিকানা নির্ধারণের জন্য, আপনি মূল সুবিধার উপর নির্ভরশীল। এটির আশেপাশের কোনও নির্ভরযোগ্য উপায় নেই।

তবে আপনি একটি গ্রুপ তৈরি করতে এবং নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীকে মালিকানা নির্ধারণ করতে পারেন।

ব্যবহারকারী

$ u=$(whoami)
$ sudo mkdir /sys/fs/cgroup/cpuset/${u}
$ sudo chown -R ${u}: /sys/fs/cgroup/cpuset/${u}

গ্রুপ

$ g=MYGROUP && grep ^${g}: /etc/group || echo "Your group doesn't exist. Run \"mkgroup $g\" and repeat this command before you continue." 
$ sudo mkdir /sys/fs/cgroup/cpuset/${g}
$ sudo chgrp -R ${g} /sys/fs/cgroup/cpuset/${g}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.