2010-12-23 11 views
6

क्या लिनक्स में एक प्रक्रिया शुरू करना संभव है, और कुछ फ़ाइलों/निर्देशिकाओं तक इसकी पहुंच प्रतिबंधित है? उदाहरण के लिए:क्या मैं किसी निश्चित प्रक्रिया के लिए कुछ फ़ाइलों तक पहुंच प्रतिबंधित कर सकता हूं?

$ start-process --enable-dir=./sandbox --exec="some-script.sh" 

some-script.sh./sandbox के बाहर कुछ भी ऐसा करने में सक्षम नहीं होगा।

+0

क्यों इसे चिल्लाओ नहीं? – oshirowanen

उत्तर

4

आप अपने प्रक्रिया पेड़ की मूल निर्देशिका सेट करने के लिए chroot का उपयोग कर सकते हैं। इसका मतलब है कि, उस प्रक्रिया की सभी निर्भरताओं को इसकी नई जड़ में उपलब्ध होना चाहिए।

ऐसे कई पैकेज हैं जो आपकी आवश्यकताओं के लिए क्रोट-वातावरण स्थापित करने में आपकी सहायता कर सकते हैं। गूगल अपने दोस्त है,)


जब कुछ प्रोग्राम या डेमॉन के लिए एक chroot builing एक chroot वातावरण

निर्माण आप इस कार्यक्रम आप करना चाहते हैं के लिए एक पूर्ण वातावरण के लिए है पर कुछ संकेत chroot। इसका मतलब है कि आपको निर्देशिका में न्यूनतम सिस्टम प्रदान करना होगा। इसमें हो सकता है:

  • एक खोल और कुछ खोल उपयोगिताओं, या व्यस्त बॉक्स का एक संस्करण। (यदि आप एक एकल स्थिर निष्पादन योग्य को तैनात करने की योजना नहीं बना रहे हैं, तो यह अगले चरण भी शामिल है)।
  • लीब और अन्य आश्रित साझा पुस्तकालय।
    • आपको ldd या objdump का उपयोग करके साझा लाइब्रेरी निर्भरताओं की जांच करने की आवश्यकता है। दिखाई देने वाली प्रत्येक लाइब्रेरी को आपके निजी रूट निर्देशिका में होना चाहिए। आपको आवश्यक प्रत्येक निष्पादन योग्य और लाइब्रेरी के लिए यह चरण कई बार दोहराया जा सकता है। ध्यान दें कि dlopen का उपयोग कर रनटाइम पर स्पष्ट रूप से जुड़े कुछ पुस्तकालयों को अलग से चेक करने की आवश्यकता है।
  • क्या आप chroot एक न्यूनतम /dev पेड़ की योजना पर निर्भर करता है
    • यदि आप एक डेमॉन प्रक्रिया को हल करने की योजना बना रहे हैं तो इसे /dev जैसे random या zero में कुछ न्यूनतम फ़ाइलों की आवश्यकता हो सकती है। आप उन्हें mknod कमांड के साथ बना सकते हैं। कृपया mknoddocumentation, साथ ही साथ लिनक्स दस्तावेज देखें, जिस पर प्रमुख/मामूली संख्याएं डिवाइस को have होना चाहिए।
  • इसके अलावा क्या आप chroot करने की योजना के आधार पर एक न्यूनतम /etc है। इसमें आवश्यक फाइलें हैं:
    • एक न्यूनतम पासवाड और छाया ( आपके सिस्टम पास/छाया)।
    • एक न्यूनतम mtab जिसमें / शामिल है।
    • एक न्यूनतम group (फिर से, आपकी सिस्टम समूह फ़ाइल नहीं)।

आप कहीं शुरू कर दिया है, तो यह आप इस कार्यक्रम के लिए आवश्यक शर्तें के साथ शुरू करने के लिए सबसे अच्छा है। विशिष्टताओं के लिए अपने दस्तावेज़ीकरण का संदर्भ लें।

1

आमतौर पर आप chroot प्रक्रिया चाहते हैं, ताकि यह केवल निर्देशिका और इसकी उप-निर्देशिकाओं तक पहुंच सके, और केवल कुछ परिभाषित आदेश निष्पादित कर सके।

How to chroot देखें।

संबंधित मुद्दे

 संबंधित मुद्दे