ওলিমিটে শক্ত এবং নরম সীমাগুলির মধ্যে পার্থক্য কী?
খোলা ফাইলগুলির সংখ্যার জন্য আমার কাছে নরম সীমা 1024 এবং একটি হার্ড সীমা 10240 of 1024-এরও বেশি ফাইল খোলার সাথে প্রোগ্রাম চালানো সম্ভব। এর জন্য নরম সীমাটি কী?
ওলিমিটে শক্ত এবং নরম সীমাগুলির মধ্যে পার্থক্য কী?
খোলা ফাইলগুলির সংখ্যার জন্য আমার কাছে নরম সীমা 1024 এবং একটি হার্ড সীমা 10240 of 1024-এরও বেশি ফাইল খোলার সাথে প্রোগ্রাম চালানো সম্ভব। এর জন্য নরম সীমাটি কী?
উত্তর:
একটি হার্ড সীমা কেবল রুট দ্বারা উত্থাপিত হতে পারে (যে কোনও প্রক্রিয়া এটি হ্রাস করতে পারে)। সুতরাং এটি সুরক্ষার জন্য কার্যকর: একটি অ-রুট প্রক্রিয়া কোনও হার্ড সীমা ছাড়িয়ে যেতে পারে না। তবে এটি অসুবিধাজনক যে কোনও নন-রুট প্রক্রিয়াটি তার বাচ্চাদের চেয়ে কম সীমাবদ্ধতা রাখতে পারে না।
একটি নরম সীমা যে কোনও সময় প্রক্রিয়া দ্বারা পরিবর্তন করা যেতে পারে। সুতরাং প্রক্রিয়াগুলি যতক্ষণ সহযোগিতা করবে ততক্ষণ এটি সুবিধাজনক তবে সুরক্ষার পক্ষে কোনও ভাল নয়।
নরম সীমাবদ্ধতার জন্য একটি সাধারণ ব্যবহারের ক্ষেত্রটি হ'ল ulimit -Sc 0
ডিবাগিং করা একটি নির্দিষ্ট প্রক্রিয়ার জন্য এগুলি সক্ষম করার বিকল্প রাখার সময় কোর ডাম্পগুলি ( ) অক্ষম করা (ulimit -Sc unlimited; myprocess)
।
ulimit
শেল কমান্ড কাছাকাছি একটি লেফাফা হয় setrlimit
সিস্টেম কল, যাতে যেখানে আপনি নির্ধারক ডকুমেন্টেশন খুঁজে পাবেন।
মনে রাখবেন যে কিছু সিস্টেম সমস্ত সীমা প্রয়োগ করতে পারে না। বিশেষত, কিছু সিস্টেম ফাইল বর্ণনাকারী (লিনাক্স না) প্রতি প্রক্রিয়া সীমা সমর্থন করে না; যদি আপনার না হয়, শেল কমান্ডটি কোনও অপ-অফ হতে পারে।
ulimit -m
, RLIMIT_RSS
) এমন একটি সীমাবদ্ধতার উদাহরণ যা লিনাক্সে আর কার্যকর হয় না। যদিও ভার্চুয়াল মেমরি সীমা ( ulimit -v
, RLIMIT_AS
) কাজ করে।
setrlimit
করার মাধ্যমে যে কোনও সময় তার নিজস্ব নরম সীমা পরিবর্তন করতে পারে (অবশ্যই অবশ্যই মূল সীমানা হিসাবে চালিত না হলে হার্ড সীমা দ্বারা অনুমোদিত সীমা)। বেশিরভাগ প্রোগ্রামের কোনও কমান্ড নেই যা ব্যবহারকারীকে এটি করতে দেয় তবে আপনি একটি ডিবাগার দিয়ে প্রোগ্রামটি সংযুক্ত করে setrlimit
কল কল দেওয়ার চেষ্টা করতে পারেন , বা লিনাক্সের অধীনে আপনি কল করতে পারেন prlimit
(যার জন্য আমি কোনও শেল জানি না) উপযোগ)।
prlimit
শেল ইউটিলিটিও রয়েছে।
সুরক্ষা উদ্দেশ্যে কঠোর সীমাবদ্ধতা। কোনও রুটহীন ব্যবহারকারীর জন্য তিনি বর্তমানে নির্ধারিত হার্ড সীমাটি থেকে কেবলমাত্র হার্ড সীমাটি হ্রাস করতে পারেন; সে তা বাড়িয়ে দিতে পারে না। হার্ড সীমাটি বাড়ানো কেবল রুট ব্যবহারকারী দ্বারা (বা সম্ভবত সুডো সুবিধা সহ, এটি সম্পর্কে নিশ্চিত নন) done অ-রুট ব্যবহারকারী যা করতে পারে তা হ'ল একটি সীমা (নরম সীমা বলা হয়) চয়ন করে যা এর প্রক্রিয়াগুলির জন্য [0, হার্ড সীমা] এর মধ্যে থাকতে পারে। এটি নরম সীমা যা প্রসেস দ্বারা বিবেচিত এবং বিবেচিত হয়।
ulimit -n
? খুব কম মান (bash -c 'ulimit -n 4; exec 3>a; exec 4>b; exec 5>c'
) দিয়ে শেল চালানোর চেষ্টা করুন । আউটপুট কি?