लिनक्स में अन्य उपयोगकर्ताओं से अपनी प्रक्रिया छुपाएं
लिनक्स समेत सभी आधुनिक मल्टी-टास्किंग ऑपरेटिंग सिस्टम, प्रत्येक कार्य को निष्पादित करने के लिए प्रक्रियाओं की एक श्रृंखला चलाते हैं। एक नोटपैड एप्लिकेशन एक प्रक्रिया है, टर्मिनल विंडो एक प्रक्रिया है, एसएसएच सर्वर एक प्रक्रिया है, प्रत्येक एसएसएच कनेक्शन एक प्रक्रिया है और इसी तरह। लिनक्स विभिन्न सिस्टम संसाधनों (सीपीयू समय, मेमोरी, आई / ओ) को शेड्यूल करता है ताकि प्रत्येक प्रक्रिया को चलाने का मौका मिले।
चल रही मौजूदा प्रक्रियाओं की सूची देखने के लिए, आप ps
कमांड का उपयोग कर सकते हैं। इसे टर्मिनल में आज़माएं:
पीएस ऑक्स
aux
पैरामीटर ps
को सभी सिस्टम प्रक्रियाओं को सूचीबद्ध करने के बारे में बताते हैं कि प्रक्रियाओं का मालिक कौन है और कॉलिंग पैरामीटर का उपयोग किस प्रकार किया जाता है।
जैसा कि आप देख सकते हैं, सूची "पीआई" (रास्पबेरी पीआई पर डिफ़ॉल्ट रास्पियन उपयोगकर्ता), "रूट" और "www-data" सहित विभिन्न उपयोगकर्ताओं के स्वामित्व वाली प्रक्रियाओं को दिखाती है। यहां एक छोटा संशोधित स्क्रीनशॉट है जो प्रक्रियाओं और उनके पैरामीटर के बारे में पूर्ण विवरण के साथ प्रक्रियाओं को दिखाता है।
यदि आप सूची को देखते हैं, तो आपको कमांड nano MYBANKACCOUNTNUMBER.TXT
दिखाई nano MYBANKACCOUNTNUMBER.TXT
जिसका उपयोगकर्ता "जॉन" के स्वामित्व में है। कल्पना कीजिए कि फ़ाइल का नाम उदाहरण से थोड़ा अधिक खुलासा था; इस तरह के डेटा सिस्टम पर सभी उपयोगकर्ताओं के संपर्क में है और दुर्भावनापूर्ण प्रयोजनों के लिए इस्तेमाल किया जा सकता है।
चूंकि लिनक्स कर्नेल 3.2 के बाद से उपयोगकर्ताओं को उन प्रक्रियाओं के बारे में जानकारी तक पहुंचने का एक तरीका है, जिनके पास उनके स्वामित्व नहीं हैं। ps
कमांड / proc फाइल सिस्टम से प्रक्रिया की जानकारी प्राप्त करता है (जहां "proc" प्रक्रिया के लिए छोटा है)। "Hidepid" नामक एक नया पैरामीटर है जिसका प्रयोग तब किया जाता है जब / proc फाइल सिस्टम को आरोहित किया जाता है। यह उन प्रक्रियाओं और नियंत्रणों को छुपा सकता है जिनके पास / proc के अंतर्गत जानकारी तक पहुंच है।
- hidepid = 0 - डिफ़ॉल्ट व्यवहार जहां कोई भी उपयोगकर्ता / proc / pID /
- hidepid = 1 - इसका मतलब है कि उपयोगकर्ता अपने आप को छोड़कर किसी भी / proc / pID / उप-निर्देशिका तक नहीं पहुंच सकते हैं। इसके अलावा cmdline, io, शेड *, स्थिति, wchan जैसी फ़ाइलें अन्य उपयोगकर्ताओं के लिए पहुंच योग्य नहीं हैं।
- hidepid = 2 - hidepid = 1 से सब कुछ, साथ ही सभी / proc / pID / उप-निर्देशिका अन्य उपयोगकर्ताओं के लिए छिपी जाएगी।
mount
कमांड के रिमाउंट विकल्प का उपयोग करके / proc फाइल सिस्टम को फ्लाई पर रीमाउंट किया जा सकता है। Hidepid का परीक्षण करने के लिए, आप इस तरह / proc फाइल सिस्टम को पुनर्स्थापित कर सकते हैं:
सूडो माउंट -ओ रिमाउंट, आरडब्ल्यू, hidepid = 2 / proc
अब आप फिर से ps
कमांड आज़मा सकते हैं:
पीएस ऑक्स
अब आउटपुट केवल उन प्रक्रियाओं को दिखाता है जो उपयोगकर्ता "पीआई" के स्वामित्व में हैं।
इस परिवर्तन को स्थायी बनाने के लिए, आपको अपनी पीआई की "/ etc / fstab" फ़ाइल को संपादित करने की आवश्यकता है। "Fstab" फ़ाइल नियंत्रित करता है कि कौन से फाइल सिस्टम स्टार्ट अप पर आरोहित हैं।
सुडो नैनो / आदि / fstab
और जो रेखा पढ़ती है उसे ढूंढें:
proc / proc proc defaults 0 0
और इसे यहां बदलें:
proc / proc proc defaults, hidepid = 2 0 0
"Ctrl + X." का उपयोग कर संपादक से बाहर निकलें अब अपने रास्पबेरी पीआई को रीबूट करें। जब यह रीबूट हो जाता है, तो जांचें कि / proc फाइल सिस्टम को सही विकल्पों के साथ रखा गया है। वर्तमान विकल्पों को देखने के लिए सबसे पहले mount
और grep
का उपयोग करें:
माउंट | grep hidepid
अब ps
कमांड का परीक्षण करें, जैसा हमने ऊपर किया है:
पीएस ऑक्स
अब ध्यान दें कि केवल "पीआई" के स्वामित्व वाली प्रक्रियाएं दिखाई दे रही हैं, लेकिन जब हमने / proc फ़ाइल सिस्टम को रिमाउंट किया था, तो इससे पहले, यह अब स्थायी सेटिंग है। हालांकि चेतावनी का एक शब्द, भले ही hidepid का उपयोग किया जाता है, "रूट" अभी भी सभी प्रक्रियाओं और कॉलिंग पैरामीटर देख सकता है।
ऊपर दी गई तकनीक अन्य लिनक्स मशीनों और वितरणों पर काम करेगी, न केवल रास्पबेरी के साथ रास्पबेरी पाई। यदि आपके पास / proc फ़ाइल सिस्टम पर "hidepid" विकल्प का उपयोग करने के बारे में कोई प्रश्न हैं, तो कृपया नीचे टिप्पणी अनुभाग का उपयोग करने के लिए स्वतंत्र महसूस करें, और हम देखेंगे कि हम सहायता कर सकते हैं या नहीं।