2010-11-09 21 views
5

बस सोच रहा है कि * * निक्स सिस्टम में पर्यावरण चर को सुरक्षित करने का कोई तरीका है या नहीं, ताकि उन्हें किसी भी सादे पाठ फ़ाइल से पढ़ा जा सके, लेकिन पर्यावरण में उपलब्ध हो।लिनक्स - पर्यावरण चर सुरक्षित करना

मुझे पता है कि हम हमेशा .bashrc/.bash_profile के लिए फाइल सिस्टम स्तर अनुमतियों का उपयोग कर सकते हैं, लेकिन क्या होगा यदि कुछ चर (जैसे डीबी पासवर्ड) पूरी तरह छुपाए जाएं? एक सादा पाठ फ़ाइल से

  1. लें इनपुट और एन्क्रिप्ट/हैश सामग्री (और फिर सादा पाठ फ़ाइल से छुटकारा पाने:

    एक तरह से करने के लिए करने के लिए कार्यक्रम/पर्ल स्क्रिप्ट के कुछ प्रकार लिखने के लिए होगा)

  2. उपयोग फ़ाइल क्रम डिक्रिप्ट और decrypted उत्पादन (मैं इस कार्यक्रम कहीं decrypted मूल्यों डंप करने के लिए इस्तेमाल किया जा सकता है, लेकिन मैं अभी उस के बारे में चिंतित नहीं हूँ)
से मूल्यों को निर्यात करने के लिए एक ही

क्या कोई अन्य बी है इसे प्राप्त करने के लिए ईटर और अधिक स्पष्ट तरीका?

धन्यवाद!

-Gaurav

+3

शायद आप सर्वर गलती पूछने से बेहतर होंगे। – rook

उत्तर

2

कौन आप उन लोगों से सुरक्षित कर रहे हैं?

संक्षिप्त उत्तर "नहीं" है। उपयोगकर्ता अपने पर्यावरण चर को तब तक देख सकते हैं जब तक कि आप उन्हें इतनी अच्छी तरह से बोतल न लें कि वे कभी भी खोल तक नहीं पहुंच सकते हैं। लेकिन आप किस संपादक का उपयोग करते हैं? क्या आपने 'विम' कहा था? ओह, वे सब के बाद, खोल के लिए पहुंच है।

5

कोई रास्ता नहीं। भले ही आप इसे टेक्स्ट फ़ाइल से छुपाएं, फिर भी यह /proc/<pid>/environ (लिनक्स) या ps e (अन्य यूनिक्स) से उपलब्ध है।

+1

यह सख्ती से सच नहीं है - 'पर्यावरण' फ़ाइल आधुनिक कर्नेल रिलीज़ पर अन्य गैर रूट उपयोगकर्ताओं के लिए दृश्यमान नहीं है। –

+0

मुद्दा यह है कि यह उपयोगकर्ता के लिए सुरक्षित है जो पर्यावरण चर परिभाषित करता है। केवल रूट, और पर्यावरण चर के परिभाषित प्रक्रिया के मालिक के पास '/ proc/$ pid/वातावरण 'तक पहुंच है। हालांकि, ऐसे मामले भी हो सकते हैं जहां आप इसे उपयोगकर्ता से ही चाहते हैं - एक कुंजी-स्टोर पर्यावरण चर पर किसी अन्य एप्लिकेशन में पासवर्ड/लॉगिन संचारित करना चुन सकता है। उपयोगकर्ता इस विधि के माध्यम से पासवर्ड पता लगाने में सक्षम हो सकता है। मेरे यहां एक समान प्रश्न था: http://unix.stackexchange.com/a/206219/117221 – YoYo

+0

क्या आप इसका उपयोग करने के बाद चर को अनसेट कर सकते हैं? क्या यह अभी भी '/ proc//वातावरण 'में दिखाई देगा? – richizy

0

यह संभव है, लेकिन बहुत अप्रत्यक्ष है। आपको संवेदनशील डेटा को केवल उस प्रक्रिया द्वारा पठनीय फ़ाइल में सहेजने की आवश्यकता होगी जो उस प्रक्रिया को शुरू करता है जिसे पर्यावरण चर में इसकी आवश्यकता होती है। /proc/###/environ केवल उपयोगकर्ता द्वारा पढ़ा जा सकता है जिसके रूप में कोई प्रक्रिया चल रही है, इसलिए डेटा सुरक्षित है।

लेकिन, अधिक सीधे, डेटाबेस पासवर्ड जैसे सामान छिपाने के लिए उचित विधि उन्हें केवल उपयोगकर्ता और/या समूह द्वारा पठनीय फ़ाइल में सहेजने के लिए है, जो प्रोग्राम उन्हें पढ़ता है। उन्हें पर्यावरण चर में गुजरने से परेशान न करें (जब तक कि आपको वास्तव में किसी कारण से आवश्यकता न हो), बस प्रक्रिया को उन्हें फ़ाइल से पढ़ें।

उदाहरण के लिए, यदि आप एक वेब साइट और CGI स्क्रिप्ट चला रहे हैं/बाइनरी अपाचे, जो उपयोगकर्ता के रूप में चलाता है के द्वारा शुरू किया गया है: समूह apache:apache, डेटाबेस पासवर्ड कि सीजीआई की तरह अनुमतियों के साथ apache:apache के स्वामित्व में एक फ़ाइल में की जरूरत को बचाने के rw-r----- (640)। इस तरह, किसी को फ़ाइल को पढ़ने के लिए, उसे root, apache समूह का सदस्य होना चाहिए, या apache के प्रभावी उपयोगकर्ता या समूह के साथ पढ़ा प्रोग्राम चलाएं।

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

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