কোনও শিশু প্রক্রিয়ার পিআইডি কি সর্বদা লিনাক্সে থাকা তার পিতামাতার পিআইডি-র চেয়ে বেশি হয়?


22

যাক, কার্নেল ২.6 থেকে

আমি সিস্টেমে চলমান সমস্ত প্রক্রিয়া দেখি।

বাচ্চাদের পিআইডি কি সবসময় তাদের বাবা-মার পিআইডি-র চেয়ে বেশি হয়?

"বিপর্যয়" এর বিশেষ মামলাগুলি পাওয়া কি সম্ভব?

উত্তর:


47

না, খুব সাধারণ কারণে যে পিআইডি সর্বাধিক সংখ্যাসূচক মান থাকতে পারে for যদি কোনও প্রক্রিয়াতে সর্বোচ্চ পিআইডি থাকে, তবে কাঁটাচাটি করা কোনও সন্তানের বেশি পিআইডি থাকতে পারে না। বাচ্চাকে কম পিআইডি দেওয়ার বিকল্প হ'ল fork()সম্পূর্ণ ব্যর্থতা , যা খুব ফলদায়ক হবে না।

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

আমার সিস্টেমে ডিফল্ট সর্বাধিক পিআইডি ( /proc/sys/kernel/pid_max) কেবল 32768, সুতরাং যেখানে মোড়ানো অংশটি ঘটে সেখানে পৌঁছানো কঠিন নয়।

$ echo $$
27468
$ bash -c 'echo $$'
1296
$ bash -c 'echo $$'
1297

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


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

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


2
@ মাসিমো, সুরক্ষার বিষয়ে এই প্রশ্নে সুরক্ষা দিকটি আলোচনা করা হয়েছে se সে: এলোমেলো পিআইডি গুলো কি আরও সুরক্ষা নিয়ে আসে?
ilkkachu

1
@ রোন জন, আচ্ছা, অন্য লিনাক্সগুলি সেখানে যে মূল্য দেয় তা আমি মানি না, তবে এটি পরিবর্তনযোগ্য, আপনি 64-বিট সিস্টেমে এটি প্রায় 4 মিলিয়ন (4194304 বা 2 ^ 22) সেট করতে পারেন। (এটি একটি সংখ্যা, বাইটের পরিমাণ নয়)
ইলকচু

8

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

http://cve.circl.lu/cve/CVE-2018-1121

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.