/Etc/init.d में गैर-रूट स्वामित्व वाली स्क्रिप्ट को कैसे सुरक्षित रखा जा रहा है?


15

मेरे पास एक एप्लिकेशन है जो डेमन के रूप में चलता है और /etc/init.d में एक स्क्रिप्ट द्वारा नियंत्रित किया जाता है।
कभी-कभी हमें इन स्क्रिप्ट्स के स्टार्टअप / नियंत्रण के कुछ मापदंडों को बदलने और फिर डेमॉन को पुनरारंभ करने की आवश्यकता होती है। इन लिपियों में केवल रूट उपयोगकर्ता की अनुमति है, इसलिए इन लिपियों को संपादित करते समय मुझे रूट विशेषाधिकारों की आवश्यकता होती है।

जो मैं सोच रहा था कि क्या मुझे एक गैर-रूट उपयोगकर्ता को उन लिपियों का स्वामी बनाना चाहिए। इस तरह से केवल रूट और एक विशेष उपयोगकर्ता इन लिपियों को संपादित कर सकते हैं।

क्या /etc/init.d निर्देशिका के अंतर्गत कुछ गैर-रूट स्वामित्व वाली फ़ाइलों को रखना स्वीकार्य है?
या यह बेतुका है, सिस्टम के प्राकृतिक आदेश को परेशान कर रहा है?


1
बुरा विचार, नहीं।

जवाबों:


17

तुरंत जो बात दिमाग में आती है वह है एक अल्पविकसित उपयोगकर्ता जो बूट पर चीजों को रूट के रूप में चलाने में सक्षम है , जो पटाखे के लिए वांछनीय है:

  • अन्य खातों के विशेषाधिकारों को बढ़ाना चाहते हैं
  • दुष्ट सेवा होस्ट करने के लिए अपने सर्वर का उपयोग करना चाहते हैं
  • यदि सर्वर रिबूट करता है तो आईआरसी / स्पैम बॉट शुरू करना चाहते हैं
  • एक माँ जहाज को "मैं फिर से उठ रहा हूँ" कहने के लिए और शायद एक नया पेलोड डाउनलोड करना चाहता हूँ
  • उनकी पटरियों को साफ करना चाहते हैं
  • ... अन्य बदनामी।

यह संभव है यदि आपका कम-उपयोगकर्ता किसी तरह समझौता किया हुआ है, शायद किसी अन्य सेवा (http / etc) के माध्यम से। अधिकांश हमलावरों जल्दी से एक चलेंगे lsया findमें सब कुछ की / पर /etcदेखने के लिए सिर्फ अगर इस तरह संभावनाएं मौजूद हैं, वहाँ विभिन्न भाषाओं में लिखे गए गोले वे कहते हैं कि यह सरल बना देता है का उपयोग करें।

यदि आप सर्वर को दूरस्थ रूप से प्रबंधित करते हैं, तो ज्यादातर SSH के माध्यम से, एक बहुत अच्छा मौका है कि आप इसे तब तक नहीं देखेंगे जब तक आप init स्क्रिप्ट का निरीक्षण नहीं करते हैं, क्योंकि आप बूट पर आउटपुट नहीं देखेंगे (हालांकि, आपको कुछ का उपयोग करना चाहिए चेक के पास उन लिपियों को ज्ञात हैश के खिलाफ है, यह देखने के लिए कि क्या कुछ बदल गया है, या संस्करण नियंत्रण सॉफ्टवेयर, आदि)

आप निश्चित रूप से ऐसा नहीं करना चाहते हैं, रूट को वास्तव में उस init स्क्रिप्ट का मालिक होना चाहिए। आप विकास उपयोगकर्ता को sudoers की सूची में जोड़ सकते हैं ताकि यह स्क्रिप्ट को अपडेट करने के लिए पर्याप्त सुविधाजनक हो, लेकिन मैं यह सलाह दूंगा कि init.d में किसी भी तरह से वंचितों को लिखने की अनुमति न दें


5
tl; dr : यदि आप ऐसा करते हैं, तो गैर-रूट उपयोक्ता अगले बूट पर रूट के रूप में अच्छा है। तुम भीख माँग रहे हो।
वारेन यंग

9

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

यदि आप उदाहरण के लिए कठपुतली, या रसोइया, या cfengine का उपयोग करते हैं, तो आप प्रासंगिक उपयोगकर्ताओं को स्थानीय रूप से फ़ाइलों को संपादित कर सकते हैं और फिर कॉन्फ़िगरेशन प्रबंधन के साथ परिवर्तनों को बाहर धकेल सकते हैं। निश्चित रूप से यह सेट अप करने के लिए कि आप किस सिस्टम का उपयोग कर रहे हैं, उसके आधार पर अलग-अलग हो सकता है, लेकिन ठीक से सेट-अप करने में यह शामिल होगा सॉफ्टवेयर संस्करण को कॉन्फ़िगर करना आसान होगा, जो कि एक कॉन्फ़िगरेशन फ़ाइल के पुराने संस्करण में वापस आ सकता है जब (नोट: कब , नहीं तो !) किसी की गलती है। यह आपके लिए कॉन्फ़िगरेशन को एक अलग परीक्षण प्रणाली आदि की प्रतिलिपि बनाना भी आसान बना देगा।


आपकी स्क्रिप्ट और यहां तक ​​कि आपकी कॉन्फ़िगरेशन डेटा फ़ाइलों को एक कॉन्फ़िगरेशन / संस्करण प्रबंधन प्रणाली में रखा जाना एक उत्कृष्ट विचार है, भले ही इस बात पर विचार किए बिना कि क्या सिस्टम से समझौता किया जा सकता है।
19 दिसंबर को चककोट्रिल

वास्तव में - मैंने इसे एक-दो परिमाणों के बारे में गलतियों को ठीक करने के लिए उपयोग किया है जो मैंने इसे एक समझौता प्रणाली को ठीक करने के लिए उपयोग किया है।
जेनी डी

आपका बहुत बहुत धन्यवाद । क्योंकि यहां ज्यादातर समर्पित उपयोगकर्ता इस एप्लिकेशन का उपयोग करते हैं, इसलिए सूडो शालीनता से काम कर रहे हैं और यह मैं लंबे समय से कर रहा था। लेकिन मैं वास्तव में विन्यास के लिए बहुत रुचि संस्करण प्रबंधन प्रणाली हूँ। प्रिय जेनी आप ऐसा करने के लिए कोई भी प्रतिक्रिया प्रदान कर सकते हैं या कोई उदाहरण !! :)।
अक्क्स

1
यदि आप पूर्ण कठपुतली / रसोइया / कोफ़्फ़िन आदि मार्ग से नहीं जाना चाहते हैं, तो मैं व्यक्तिगत रूप से www.perforce.com का उपयोग करूंगा। हमने उस समय के लिए ~ 100 सर्वरों का उपयोग किया था, जब कठपुतली अस्तित्व में थी और एक सर्वर के लिए उनका निष्कासन लाइसेंस पर्याप्त था। मुख्य लाभ यह है कि आप वीसीपीएल फाइल को एक सबपथ तक सीमित रखने के बजाय फाइल सिस्टम में किसी भी जगह पर जांच कर सकते हैं। अन्य विकल्प joeyh.name/code/etckeeper हैं , या फ़ाइलों को उचित निर्देशिका में ले जाने के लिए स्क्रिप्ट के साथ संयुक्त किसी भी VC का उपयोग कर रहे हैं ।
जेनी डी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.