সীমাবদ্ধতা মানগুলি কি প্রতি-প্রক্রিয়া ভিত্তিতে প্রয়োগ করা হয়?


25

আমি আমার ওরাকল ব্যবহারকারীর জন্য nofileমানটি টিউন করছি /etc/security/limits.confএবং এর আচরণ সম্পর্কে আমার একটি প্রশ্ন রয়েছে: nofileব্যবহারকারী তার সমস্ত প্রক্রিয়াগুলির জন্য মোট কতগুলি ফাইল খুলতে পারে তা সীমাবদ্ধ করে দেয় বা এটি ব্যবহারকারীর কাছে থাকা ফাইলের মোট সংখ্যা সীমাবদ্ধ করে? এর প্রতিটি প্রক্রিয়ার জন্য উন্মুক্ত ?

বিশেষত, নিম্নলিখিত ব্যবহারের জন্য:

oracle                  hard    nofile                  65536

উত্তর:


23

বেশিরভাগ মানগুলি হ'ল limits.confসীমা যা ulimitশেল কমান্ড বা setrlimitসিস্টেম কল দিয়ে সেট করা যায় । তারা একটি প্রক্রিয়া বৈশিষ্ট্য। সীমাবদ্ধতা প্রতিটি প্রক্রিয়া জন্য স্বাধীনভাবে প্রয়োগ। বিশেষত, প্রতিটি প্রক্রিয়াতে nofileফাইল খুলতে পারে । কোনও ব্যবহারকারীর প্রক্রিয়া দ্বারা খোলা ফাইলগুলির সংখ্যার কোনও সীমা নেই।

nprocমধ্যে যে এটি একটি ব্যবহারকারীর সকল প্রক্রিয়ার উপর যোগফল নেই সীমা, একটি বিশেষ মামলার একটি বিট। তবুও, এটি এখনও প্রতি-প্রক্রিয়া প্রয়োগ করে: যখন কোনও প্রক্রিয়া forkএকটি নতুন প্রক্রিয়া তৈরি করতে কল করে, কলটি অস্বীকার করা হয় যদি প্রক্রিয়াটির ইউইডির সাথে সম্পর্কিত প্রক্রিয়াগুলির সংখ্যা প্রক্রিয়াটির RLIMIT_NPROCমানের চেয়ে বেশি হয়।

limits.confMan পৃষ্ঠা ব্যাখ্যা করেছেন যে সীমা সত্রে প্রয়োগ। এর অর্থ এই যে কোনও সেশনের সমস্ত প্রক্রিয়াগুলির এই একই সীমা থাকবে (যদি না এই প্রক্রিয়াগুলির কোনওটির দ্বারা পরিবর্তিত হয়)। এর অর্থ এই নয় যে কোনও সেশনে প্রক্রিয়াগুলি জুড়ে কোনও যোগফল সম্পন্ন হয় (এটি অপারেটিং সিস্টেমটি ট্র্যাক করে এমন কিছুও করে না - সেশনের ধারণা রয়েছে, তবে এটি এর চেয়ে সূক্ষ্ম-বর্ণযুক্ত, উদাহরণস্বরূপ প্রতিটি এক্স 11 অ্যাপ্লিকেশন শেষ হতে থাকে) আপ তার নিজস্ব অধিবেশন)। এটি যেভাবে কাজ করে তা হ'ল লগইন প্রক্রিয়াটি নিজেকে কিছু সীমাবদ্ধ করে এবং সেগুলি সমস্ত শিশু প্রক্রিয়া দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়।

¹ ব্যতিক্রম আছে maxlogins, maxsysloginsএবং chroot, যা লগ-ইন প্রক্রিয়ার অংশ অস্বীকার করা বা প্রভাব হিসাবে লগ ইন করুন প্রযুক্ত হয়।


বিপরীতে, এর অর্থ কি বিভিন্ন সেশনের বিভিন্ন সীমাবদ্ধতা থাকতে পারে?
সিএমসিডিগ্রাগনকাই

1
@ সিএমসিডিগ্রাগনকাই হ্যাঁ, উদাহরণস্বরূপ, যদি limit.confসেশনগুলি খোলা থাকার সময়গুলির মধ্যে পরিবর্তিত হয়, বা যদি বিভিন্ন সীমা (রুট ব্যতীত তাদের আরও ছোট হতে হয়) সেট করা থাকে .profile
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
@ ল্যালিমিসন যদি আপনি সমস্ত চলমান প্রক্রিয়াগুলি পুনরুক্তি করে এবং prlimit --pid $pidপ্রতিটি চালনা করেন তবে আপনি কার্যকরভাবে সক্রিয় সেশনের সীমা পরিবর্তন করতে পারেন। মনে রাখবেন যে আপনি পুনরাবৃত্তি করার সময় কিছু প্রক্রিয়া কাঁটাচামচ পড়ে গেলে আপনাকে কয়েকবার এটি করতে হতে পারে।
গিলস'স 'খারাপ হওয়া বন্ধ করুন'

1
@ ল্য্যামিসন ন। ধরুন যে কোনও ব্যবহারকারীর কেবল দুটি এবং A তে দুটি প্রক্রিয়া রয়েছে, RLIMIT_NPROCএ এ 2 তে এবং বি তে 3 সেট রয়েছে , তবে বি আরও একটি প্রক্রিয়া কাঁটাতে পারে, তবে এ পারে না।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

1
@ লাইমিসন যদি আপনি বি এর পিতামাতার মধ্যে 2 এর সীমা নির্ধারণ করেন এবং কাঁটাচামচ করার পরে এটিকে বি তে পরিবর্তন করেন না, তবে খ এর সীমা 2 হবে you আপনি যদি বি এর পিতামাতার 2 এ সীমা নির্ধারণ করেন তবে আপনি বিতে সীমাটি বাড়িয়ে দেন, বা যদি বি কে কাঁপানোর আগে আপনি বি এর পিতামাত্রে 3 টি সীমা নির্ধারণ করেছেন এবং বি কে কাঁটা দেওয়ার পরে এটি 2 তে নির্ধারণ করেছেন, বি এর সীমাটি 3 নির্ধারিত হবে matters একমাত্র সীমা যে প্রক্রিয়াটিতে কাঁটাচামচ কল করে () সীমা নয় প্রক্রিয়াটির পিতামাতায় বা অন্য কোনও প্রক্রিয়াতে।
গিলস 'অশুভ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.