जवाबों:
नहीं, बहुत साधारण कारण से कि PID में अधिकतम संख्यात्मक मूल्य हो सकते हैं। यदि किसी प्रक्रिया में सबसे अधिक पीआईडी है, तो कोई भी बच्चा नहीं चाहता है कि उसके पास अधिक पीआईडी हो। बच्चे को कम पीआईडी देने का विकल्प fork()
पूरी तरह से विफल होगा, जो बहुत उत्पादक नहीं होगा।
PID को क्रम में आवंटित किया जाता है, और उच्चतम एक का उपयोग करने के बाद, सिस्टम निम्न (फ्री) निचले लोगों को पुन: उपयोग करने के लिए चारों ओर लपेटता है, इसलिए आप अन्य मामलों में भी एक बच्चे के लिए कम PID प्राप्त कर सकते हैं।
मेरे सिस्टम पर डिफ़ॉल्ट अधिकतम पीआईडी ( /proc/sys/kernel/pid_max
322) सिर्फ 32768 है, इसलिए यह उस स्थिति तक पहुंचना मुश्किल नहीं है जहां रैपराउंड होता है।
$ echo $$
27468
$ bash -c 'echo $$'
1296
$ bash -c 'echo $$'
1297
यदि आपका सिस्टम PID को रैंडम तरीके से आवंटित करना था ( जैसे OpenBSD प्रतीत होता है ) लगातार (लिनक्स की तरह) के बजाय, दो विकल्प होंगे। या तो यादृच्छिक विकल्प संभव पीआईडी के पूरे स्थान पर बनाया गया था, जिस स्थिति में यह स्पष्ट होगा कि एक बच्चे की पीआईडी माता-पिता की तुलना में कम हो सकती है। या, बच्चे के पीआईडी को माता-पिता की पीआईडी से अधिक मूल्यों से यादृच्छिक रूप से चुना जाएगा, जो औसतन इसे माता-पिता की पीआईडी और अधिकतम के बीच आधे रास्ते में डाल देगा। पुनरावर्ती रूप से फोर्क करने की प्रक्रियाएं फिर जल्दी से अधिकतम तक पहुंच जाएंगी और हम ऊपर बताए गए बिंदुओं पर एक ही बिंदु पर होंगे: एक नए कांटे को सफल होने के लिए कम पीआईडी का उपयोग करने की आवश्यकता होगी।
इसके अलावा कर्नेल सूचनाओं का उपयोग करके सुरक्षा कमजोरियों के लिए संभावित मौजूद है और प्रक्रिया तालिका स्कैन द्वारा पता लगाने से बचने के लिए अपने आप को धन्यवाद; यदि आपकी प्रक्रिया में कम पीआईडी और प्रक्रिया उपकरण के प्रश्न में प्रक्रिया को न देखकर सही परिणाम आए।
http://cve.circl.lu/cve/CVE-2018-1121
proc-ng, procps दौड़ की स्थिति के माध्यम से छिपाने की प्रक्रिया के लिए असुरक्षित है। चूंकि कर्नेल का proc_pid_readdir () पीआईडी प्रविष्टियाँ आरोही संख्यात्मक क्रम में देता है, एक उच्च पीआईडी पर कब्जा करने वाली प्रक्रिया प्रक्रिया सूची को स्कैन किया जा रहा है, और निम्न पीआईडी प्राप्त करने के लिए कांटा / निष्पादित करने के लिए घटनाओं को रोकने के लिए, इस प्रकार एन्यूमरेशन से बचने के लिए घटनाओं का उपयोग कर सकती है। पढ़ने / खरीद / पीआईडी प्रविष्टियों में एक दौड़ की स्थिति का फायदा उठाकर एक अप्रकाशित हमलावर procps-ng की उपयोगिताओं से एक प्रक्रिया को छिपा सकता है। यह भेद्यता संस्करण 3.3.15 तक खरीद और खरीद-एनजी को प्रभावित करती है, नए संस्करण भी प्रभावित हो सकते हैं।