প্রদত্ত ব্যবহারকারীর সমস্ত প্রক্রিয়া যে কোনও ব্যক্তির দ্বারা কিলযোগ্য make


15

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

এরকম কিছু করার অনুমতি দেওয়া কি সম্ভব?


1
কোনও গ্রুপে সম্ভবত প্রয়োজনীয় সমস্ত ব্যবহারকারীকে সুডো-ইউ ব্যবহারকারী হত্যার অধিকার দিন
কিউই

4
আমি সত্যিই আশা করি এই নিম্ন অগ্রাধিকার ব্যবহারকারীরা প্রকৃত মানব ব্যবহারকারী এবং আপনি এবং আপনার বন্ধুরা খাঁটি বংশবৃদ্ধি BOFH গুলি OF এটি প্রশ্নটিকে আরও উদ্বেগজনক করে তোলে।
পাইপ

@DavidFoerster, এক সমস্যাটি হল এই যে, এমনকি যখন CPU- র 100% হয় না কম অগ্রাধিকার প্রক্রিয়া প্রসেসর ভরাট করতে পারেন ক্যাশে ইত্যাদি ডিস্ক এক্সেস ইত্যাদি অনুরূপভাবে
ইয়ান Ringrose

উত্তর:


24

অন্যান্য ব্যবহারকারীদের মাধ্যমে নিম্ন অগ্রাধিকারের ব্যবহারকারী হিসাবে প্রক্রিয়াগুলি মেরে ফেলার অনুমতি দিন

sudo -u lowpriouser /bin/kill PID

কোনও ব্যবহারকারী কেবল তাদের নিজস্ব প্রক্রিয়াগুলি সিগন্যাল করতে পারে, যদি না তাদের কাছে রুট সুবিধা থাকে। ফাইলটিতে sudo -uসঠিক সেট আপ সহ কোনও ব্যবহারকারীকে ব্যবহার করার sudoersফলে নিম্ন অগ্রাধিকার ব্যবহারকারীর পরিচয় ধরে নেওয়া এবং প্রক্রিয়াটি হ্রাস করা যেতে পারে।

উদাহরণ স্বরূপ:

%killers ALL = (lowpriouser) /bin/kill

এই গ্রুপ সকল ব্যবহারকারীর সম্ভব হবে killersচালানোর জন্য /bin/killযেমন lowpriouser

sudoersআপনার সিস্টেমে ম্যানুয়ালটিও দেখুন ।


একটি ওপেনবিএসডি সিস্টেমে এটির doasমতো একটি কনফিগারেশন সহ স্থানীয় ইউটিলিটির মাধ্যমেও কাজ করা যেতে পারে

permit :killers as lowpriouser cmd /bin/kill

তারপর

doas -u lowpriouser /bin/kill PID

doasএবং এর জন্য ম্যানুয়ালগুলি দেখুন doas.conf


যদি আপনি কোনও কিল কমান্ডের অনুমতি দেন তবে আপনি এটিকে অপব্যবহার করতে পারেন নির্বিচারে প্রক্রিয়াগুলিতে সমাপ্তির সাথে সম্পর্কিত নয় এমন সংকেত প্রেরণে যা কোনও সুরক্ষা উদ্বেগ হতে পারে।
বন

@ ফরোস্ট এ কারণেই আমি প্রত্যেককে রুট অ্যাকাউন্ট ব্যবহার করার ক্ষমতা দেওয়ার পরামর্শ দিচ্ছি না kill। এটিও নোট করুন যে আমি ব্যবহারকারীর গোষ্ঠী ( killers) ব্যবহার করার পরামর্শ দিচ্ছি , সমস্ত ব্যবহারকারী নয়।
কুসালানন্দ

কিন্তু আমি বলতে চাচ্ছি যে যে গ্রুপ পাঠাতে অনুমতি দেয় হবে, হয় kill -HUP, শুধু kill -TERM
বন

হ্যাঁ এটি মালিকানাধীন প্রক্রিয়াগুলিতে সংকেত প্রেরণের অনুমতি দেয় lowpriouser। আপনি যদি সংকেতগুলিকে সীমাবদ্ধ রাখতে চান TERMতবে চারদিকে একটি মোড়কের শেল স্ক্রিপ্ট লিখুন /bin/killএবং লোকেরা এটির পরিবর্তে এটি ব্যবহার করার অনুমতি দিন /bin/kill
কুসালানন্দ

1
%killers ALL = (lowpriouser) /bin/kill -(9, 15) [0-9 ]*
বন

5

আপনার প্রক্রিয়াগুলি মেরে ফেলা উচিত নয়, যদি তারা নিম্ন অগ্রাধিকার হয় তবে তারা কয়েকটি সংস্থান গ্রহণ করবে।

তাদের নিম্ন অগ্রাধিকার দেওয়ার জন্য, হয় তাদের অগ্রাধিকারটি ম্যানুয়ালি পরিবর্তন করুন, বা autoniceআমি অনেক বছর আগে ডিসি ওএসএফ / 1 এর জন্য লিখেছিলাম এমন একটি ডেমন ব্যবহার করুন (দীর্ঘকাল 1994) যা দীর্ঘকালীন চাকরির সন্ধান করে এবং ক্রমবর্ধমানভাবে তাদের অগ্রাধিকার হ্রাস করে যা তারা চালায় ।

সম্পাদনা করুন এমন একটি প্যাকেজ রয়েছে যা andআধুনিক ইউনিটগুলির জন্য এই কার্যকারিতাটি সরবরাহ করে।


একটি বিষয় হ'ল সিপিইউ যদি 100% নিম্ন অগ্রাধিকার প্রক্রিয়াতে না হয় তবে প্রসেসরের ক্যাশে পূরণ করতে পারে ইত্যাদি disk একইভাবে ডিস্ক অ্যাক্সেস ইত্যাদির সাহায্যে
ইয়ান রিংরোজ

@ আইয়ানআরংরোজ কেবল চালানোর জন্য নির্ধারিত কাজগুলি ক্যাশে দখল করতে বা ডিস্ক অ্যাক্সেসগুলি সম্পাদন করতে পারে।
Alnitak

4

আমি মনে করি আপনি এই সমস্যাটি ভুল কোণ থেকে দেখছেন: যদি কোনও প্রসেস নিম্ন অগ্রাধিকার সেটিংসে (সিপিইউ, আই / ও) চালিত হয় তবে এটি অন্যান্য প্রক্রিয়াগুলিকে বেশি প্রভাবিত করবে না কারণ এটি চালানোর সময় নির্ধারিত হবে না। মেমোরি ব্যবহারের ক্ষেত্রে, যদি প্রধান স্মৃতি শক্ত হয় এবং প্রক্রিয়াটি দীর্ঘ সময় চলার সময় নির্ধারণ করা হয় না (যেমন সিপিইউ এবং আই / ও বাধার কারণে), এর "পরিষ্কার" পৃষ্ঠা বাদ দেওয়া হয় এবং এর "নোংরা" পৃষ্ঠাগুলি প্রতিশ্রুতিবদ্ধ হয় বা অদলবদল হয় এবং অন্য প্রক্রিয়াগুলির কার্যকারিতা আর প্রভাবিত করে না।

উপসংহার: সঠিক অগ্রাধিকারের সেটিং এবং পর্যাপ্ত স্বাপের জায়গার সাথে আরও গুরুত্বপূর্ণ কাজের জন্য "ঘর" তৈরি করার জন্য নিম্ন অগ্রাধিকারের চাকরিগুলি হ্রাস করা অপ্রয়োজনীয় হওয়া উচিত; পরিবর্তে কার্নেল পূর্বের ব্যক্তির পক্ষে ঘুমানোর পক্ষে যত্ন নেবে।


1
"নিম্ন অগ্রাধিকার" এর অর্থ "গুরুত্বপূর্ণ নয়" অর্থহীন অর্থ "হ্রাস সিপিইউ অগ্রাধিকারের ভিত্তিতে চালানো" ব্যতীত "গুরুত্বপূর্ণ নয়" হতে পারে। যদিও এটি প্রশ্নে স্পষ্ট করে দেওয়া হয়নি।
কুসালানন্দ

@ কুসালানন্দ: আমি সম্মত হই যে এটি প্রশ্নের মধ্যে সুস্পষ্ট নয়, তবে আমার উত্তর জানিয়েছে যে এটি বাস্তবে হওয়া উচিত।
ডেভিড ফোস্টার 18

1
যদিও এটি এত সহজ নয়। এমনকি একটি নিম্ন-অগ্রাধিকার প্রক্রিয়া সিস্টেমটিকে স্টল করতে পারে, বিশেষত যদি এতে স্মৃতিতে বাধা থাকে: সেগুলি কীভাবে সেট আপ করা হয় তার উপর নির্ভর করে এটি প্রক্রিয়াটিকে অদলবদল করবে। অদলবদলের ফলে I / O (যা প্রক্রিয়াটির I / O কোটায় অন্তর্ভুক্ত নাও হতে পারে) এবং এটি প্রস্থের আদেশ দ্বারা সিস্টেমকে কম প্রতিক্রিয়াশীল করে তুলবে। তারপরে আপনি সম্ভবত এটিও চাইতেন (অন্যদের যখন সংস্থানগুলির প্রয়োজন হয় না), স্বল্প-অগ্রাধিকার প্রক্রিয়াটি আসলে তার প্রয়োজনীয় সমস্ত সংস্থান পেতে পারে (যা সাধারণ স্মৃতি সীমাটিকে অযোগ্য করে তোলে)। সিপিইউ শেয়ার এখানে সহায়তা।
জোনাস শোফার 9

@ জোনাস উইলিকি, সম্পূর্ণ প্রক্রিয়াটি অদলবদলের পুরানো "ইউনিক্স ওয়ে" এর সুবিধা ছিল। আমি যদি সঠিকভাবে স্মরণ করি তবে 1990 এর দশকে এইচপিউএক্স কিছু সমস্যা সমাধান করতে পারে।
আয়ান রিংরোজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.