एल Capitan में "रूटलेस" सुविधा वास्तव में क्या है?


242

मैंने अभी एल कैपिटान में "रूटलेस" फीचर के बारे में सीखा है, और मैं "कोई रूट उपयोगकर्ता नहीं है", "कुछ भी नहीं संशोधित कर सकता है /System" और "दुनिया खत्म हो जाएगी क्योंकि हम रूट नहीं प्राप्त कर सकते हैं" जैसी चीजें सुन रहे हैं ।

तकनीकी स्तर पर एल कैपिटन की "रूटलेस" सुविधा क्या है? उपयोगकर्ता अनुभव और डेवलपर अनुभव के लिए वास्तव में इसका क्या मतलब है? sudo -sअभी भी काम करेगा , और, यदि हां, तो rootपरिवर्तन के रूप में शेल का उपयोग करने का अनुभव कैसे होगा ?


8
"उपयोगकर्ता अनुभव और डेवलपर अनुभव के लिए वास्तव में इसका क्या मतलब है?" मैं उपलब्ध होने के बाद से बीटा चला रहा हूं, और यह पहली बार है जब मैंने इसके बारे में सुना है। sudoऔर पासवर्ड प्रॉम्प्टिंग ने सामान्य / पहले / अपेक्षित के रूप में काम किया है। तो, शायद जवाब है "ज्यादातर समय आप नोटिस नहीं करेंगे; जब आप करते हैं, तो आप कठिन नोटिस करेंगे।"
OJFord

3
यह सरल है - यह एक बग नकल करने की सुविधा है।
वोल्फगैंग फेहल

अगर कोई कभी गलती से निकालता है /usr/localऔर खुद को इसे फिर से बनाने में असमर्थ पाता है, तो इसका जवाब यहां देखें
ल्लोकेई

जवाबों:


280

पहला: "रूटलेस" नाम भ्रामक है, क्योंकि अभी भी एक रूट खाता है, और आप अभी भी इसे एक्सेस कर सकते हैं (आधिकारिक नाम, "सिस्टम इंटीग्रिटी प्रोटेक्शन", अधिक सटीक है)। यह वास्तव में क्या करता है रूट अकाउंट की शक्ति को सीमित करता है, ताकि यदि आप रूट हो जाएं, तो भी आपके पास सिस्टम पर पूर्ण नियंत्रण न हो। मूल रूप से, यह विचार है कि मैलवेयर के लिए रूट एक्सेस प्राप्त करना बहुत आसान है (जैसे उपयोगकर्ता को एक ऑरिजिनल डायलॉग पेश करके, जिससे उपयोगकर्ता को रिफ्लेक्सिव रूप से एडमिन पासवर्ड दर्ज करना होगा)। एसआईपी सुरक्षा की एक और परत जोड़ता है, जो मैलवेयर रूट होने पर भी प्रवेश नहीं कर सकता है। इसका बुरा हिस्सा, ज़ाहिर है, यह है कि यह उन चीजों पर भी लागू होना चाहिए जो आप जानबूझकर कर रहे हैं। लेकिन जड़ पर लगे प्रतिबंध उस बुरे नहीं हैं; वे सबसे "सामान्य" नहीं रोकते

यहां बताया गया है कि यह रूट से भी प्रतिबंधित है:

  • आप में कुछ भी संशोधित नहीं कर सकते /System, /bin, /sbin, या /usr(सिवाय /usr/local); या किसी भी अंतर्निहित एप्लिकेशन और उपयोगिताओं। केवल इंस्टॉलर और सॉफ़्टवेयर अपडेट इन क्षेत्रों को संशोधित कर सकते हैं, और यहां तक ​​कि वे केवल ऐप्पल-हस्ताक्षरित पैकेजों को स्थापित करते समय ही करते हैं। लेकिन चूंकि सामान्य ओएस एक्स शैली अनुकूलन में जाना /Library(या ~/Library, या /Applications), और यूनिक्स शैली अनुकूलन (जैसे Homebrew) में जाना /usr/local(या कभी कभी /etcया /opt), यह एक बड़ी बात नहीं होना चाहिए। यह स्टार्टअप डिस्क को ब्लॉक-लेवल राइट्स को रोकता है, इसलिए आप इसे इस तरह से बायपास नहीं कर सकते।

    प्रतिबंधित निर्देशिकाओं की पूरी सूची (और अपवाद /usr/localऔर कुछ अन्य) में है /System/Library/Sandbox/rootless.conf। बेशक, यह फ़ाइल स्वयं एक प्रतिबंधित क्षेत्र में है।

    जब आप El Capitan में अपग्रेड करते हैं, तो यह प्रतिबंधित क्षेत्रों से किसी भी "अनधिकृत" फ़ाइलों को स्थानांतरित करता है /Library/SystemMigration/History/Migration-(some UUID)/QuarantineRoot/

  • आप डिबगिंग जैसी चीजों के लिए सिस्टम प्रक्रियाओं (जैसे उन सिस्टम स्थानों से चलने वाले) को संलग्न नहीं कर सकते हैं (या वे जो गतिशील पुस्तकालयों को लोड करते हैं, या कुछ अन्य चीजें बदल रहे हैं)। फिर, बहुत बड़ी बात नहीं; डेवलपर्स अभी भी अपने स्वयं के कार्यक्रमों को डीबग कर सकते हैं।

    यह कुछ महत्वपूर्ण चीजों को ब्लॉक करता है जैसे कि बिल्ट-इन ऐप्पल ऐप (विशेषकर फाइंडर) में कोड इंजेक्ट करना। इसका अर्थ यह भी है कि dtraceसिस्टम मॉनिटरिंग (जैसे opensnoop) के लिए-आधारित उपकरण कई सिस्टम प्रक्रियाओं पर निगरानी और रिपोर्ट करने में सक्षम नहीं होंगे।

  • आप कर्नेल एक्सटेंशन (kexts) को तब तक लोड नहीं कर सकते जब तक कि वे ठीक से हस्ताक्षरित न हों (यानी Apple या Apple द्वारा अनुमोदित डेवलपर)। ध्यान दें कि यह kext हस्ताक्षर (और इसे दरकिनार करने के पुराने तरीकों) को लागू करने के लिए पुरानी प्रणाली को बदल देता है। लेकिन चूंकि v10.10.4 Apple के पास थर्ड-पार्टी SSDs के लिए ट्रिम सपोर्ट को सक्षम करने का एक तरीका है , इसलिए अहस्ताक्षरित केक्स का उपयोग करने का # 1 कारण दूर हो गया है।

  • सिएरा (10.12) में शुरू, कुछ लॉन्च विन्यास सेटिंग्स को नहीं बदला जा सकता है (उदाहरण के लिए, कुछ लॉन्च डेमन को अनलोड नहीं किया जा सकता)।

  • Mojave (10.14) में शुरू, उपयोगकर्ताओं की व्यक्तिगत जानकारी (ईमेल, संपर्क, आदि) तक पहुंच उन ऐप्स तक सीमित है जिन्हें उपयोगकर्ता ने उस जानकारी का उपयोग करने के लिए अनुमोदित किया है। इसे आम तौर पर एक अलग विशेषता (व्यक्तिगत सूचना संरक्षण, या टीसीसी कहा जाता है) माना जाता है, लेकिन यह एसआईपी पर आधारित है और एसआईपी को अक्षम करने के साथ ही इसे अक्षम भी करता है। देखें: "व्यक्तिगत डेटा तक अनुप्रयोगों को प्रतिबंधित करने के लिए macOS Mojave क्या और कैसे लागू करता है?"

यदि आप इन प्रतिबंधों को नहीं चाहते हैं - या तो क्योंकि आप अपने सिस्टम को संशोधित करना चाहते हैं जो यह अनुमति देता है, या क्योंकि आप इन प्रतिबंधों के तहत व्यावहारिक नहीं हैं, तो आप ऐसी कुछ चीज़ों का विकास और डिबगिंग कर रहे हैं, जिन्हें आप बंद कर सकते हैं। वर्तमान में इसके लिए रिकवरी मोड में रीबूट करने और कमांड चलाने की आवश्यकता होती है csrutil disable(और आप इसी तरह इसे फिर से सक्षम कर सकते हैं csrutil enable)।

आप SIP के चुनिंदा हिस्सों को भी निष्क्रिय कर सकते हैं । उदाहरण के लिए, csrutil enable --without kextएसआईपी कर्नेल एक्सटेंशन प्रतिबंध को अक्षम कर देगा, लेकिन इसके अन्य सुरक्षा को छोड़ दें।

लेकिन कृपया अस्थायी रूप से या आंशिक रूप से SIP को अक्षम करने से पहले रुकें और सोचें: क्या आपको वास्तव में इसे अक्षम करने की आवश्यकता है, या क्या आप चाहते हैं कि क्या करने के लिए एक बेहतर (SIP- आज्ञाकारी) तरीका है? क्या आपको वास्तव में /System/Libraryया कुछ में कुछ /binभी संशोधित करने की आवश्यकता है , या यह एक बेहतर जगह में जा सकता है जैसे /Libraryया /usr/local/binआदि? अगर आप इसके लिए अभ्यस्त नहीं हैं, तो SIP "महसूस" कर सकता है, और इसे निष्क्रिय करने के लिए कुछ वैध कारण हैं, लेकिन बहुत से जो भी इसे लागू करते हैं वह वास्तव में वैसे भी सबसे अच्छा अभ्यास है।

जितना संभव हो उतने अधिक समय के लिए एसआईपी सक्षम करने के महत्व को रेखांकित करने के लिए, 23 सितंबर, 2019 की घटनाओं पर विचार करें। Google ने क्रोम को एक अपडेट जारी किया जिसमें प्रतीकात्मक लिंक को बदलने की कोशिश की गई /varथी /private/var। अधिकांश प्रणालियों पर, एसआईपी ने इसे अवरुद्ध कर दिया और कोई बुरा प्रभाव नहीं पड़ा। SIP अक्षम सिस्टम पर, यह macOS टूटा हुआ और unbootable प्रदान करता है। एसआईपी को अक्षम करने का सबसे आम कारण अनियंत्रित (/ अनुचित रूप से हस्ताक्षरित) कर्नेल एक्सटेंशन (विशेष रूप से वीडियो ड्राइवर) को लोड करना था; यदि वे केवल kext प्रतिबंध को निष्क्रिय कर देते, तो वे प्रभावित नहीं होते। देखें आधिकारिक गूगल समर्थन धागा , एक सुपर उपयोगकर्ता क्यू एंड ए उस पर , और एक अर्स टेक्निका लेख

संदर्भ और आगे की जानकारी: "सुरक्षा और आपके ऐप्स" पर डब्ल्यूडब्ल्यूडीसी प्रस्तुति , quora.com पर एल्डैड ईलम द्वारा एक अच्छी व्याख्या , एल कैपिटान की अरस टेक्नीका समीक्षा , और एसआईपी पर एक एप्पल समर्थन लेख , और रिच ट्राउटन के लिए एक गहरा गोता ( जिसने इस प्रश्न का उत्तर भी दिया )।


1
अच्छा धन्यवाद। मैंने यह सवाल इसलिए पूछा क्योंकि मैं एक और स्टैक एक्सचेंज प्रश्न पर उस क्वोरा लेख से लिंक करने वाला था और फिर महसूस किया कि सही कदम नहीं था;;
जोश

15
... इसके अलावा यह पूरी तरह से मुझे एक kextया कुछ लिखने के लिए खुद को एक द्विआधारी बनाने की अनुमति देता है जिसे मैं अप्रतिबंधित एक्सेस पर लौटने के लिए कमांड लाइन में चला सकता हूं!
जोश

1
@Vladimir क्षमा करें, मेरे पास Apple की योजनाओं के बारे में कोई जानकारी नहीं है। मेरा अनुमान है कि यह निकट भविष्य के लिए चिपक जाएगा, हालांकि मुझे आश्चर्य नहीं होगा अगर यह (और एसआईपी खुद) अगले कुछ संस्करणों में काफी बदल गया।
गॉर्डन डेविसन

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

2
कम घुसपैठ वाला तरीका एसआईपी को अक्षम करता है, मास्टर फाइल को केवल द्विपदीय जोड़े पर प्रतिबंध को हटाने के लिए संपादित करें जिसे आप वास्तव में बदलना चाहते हैं, और फिर से एसआईपी को सक्षम करें।
जोशुआ

92

मेरे लिए, इसका मतलब है कि DTrace अब काम नहीं करता है।

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

OSX पर DTrace हालांकि कर्नेल स्तर पर काम करता है, जिससे यह बहुत अधिक परफ़ॉर्मेंट और शक्तिशाली हो जाता है, हालाँकि कर्नेल में इसकी जांच को जोड़ने के लिए इसे रूट एक्सेस की आवश्यकता होती है और इस प्रकार यह कुछ भी करता है। एक उपयोगकर्ता रूट किए बिना अपनी स्वयं की प्रक्रियाओं का पता नहीं लगा सकता है, लेकिन रूट के रूप में वे न केवल अपनी प्रक्रियाओं को देख सकते हैं, बल्कि वास्तव में सिस्टम पर सभी प्रक्रियाएं एक साथ देख सकते हैं। उदाहरण के लिए, आप एक फ़ाइल (iosnoop के साथ) देख सकते हैं और देख सकते हैं कि कौन सी प्रक्रिया इसे पढ़ती है। मैलवेयर का पता लगाने के लिए यह अब तक की सबसे उपयोगी विशेषताओं में से एक है। क्योंकि कर्नेल नेटवर्क IO के साथ भी व्यवहार करता है, वही सच है। Wireshark असामान्य नेटवर्क गतिविधि का पता लगाता है, DTrace आपको डेटा भेजने की प्रक्रिया बताता है, भले ही यह कर्नेल के रूप में सिस्टम में एम्बेडेड हो।

अल कैपिटन के रूप में, हालांकि Apple ने जानबूझकर DTrace को काम करने से रोका है - क्योंकि इसमें विशेष रूप से लक्षित किया गया है और कुछ SIP प्रतिबंधों के रूप में एकल किया गया है। वे ऐसा क्यों करेंगे? खैर, पहले Apple ने अपने कर्नेल और DTrace को संशोधित किया ताकि कुछ प्रक्रियाओं को DTrace (जो उस समय बहुत सारे सुरक्षा शोधकर्ताओं को परेशान कर दें क्योंकि कुछ प्रक्रियाएँ अब भी रूट के रूप में बंद हो गई थीं - मैलवेयर शामिल हैं) से नज़र रखने के लिए अनुमति दे सकती हैं। इसका कारण यह था कि आईट्यून्स जैसे ऐप में DRM की रक्षा करना क्योंकि सैद्धांतिक रूप से कोई व्यक्ति DTrace कर सकता था और प्रक्रियाओं की मेमोरी से un-DRM'd डेटा को पकड़ सकता था।

हालांकि, एक महत्वपूर्ण कार्य था, जिसके आसपास शोधकर्ताओं ने अपने काम को जारी रखने की अनुमति दी, और वह यह ऑप्ट-आउट ध्वज को अनदेखा करने के लिए कर्नेल को संशोधित करना था, इसलिए इन प्रक्रियाओं पर अभी भी DTrace का उपयोग किया जा सकता है। यह वास्तव में वास्तव में बहुत अच्छा था क्योंकि कार्यक्रमों का पता लगाने से बचने की कोशिश की जा रही थी जहां अब इस नो-DTrace ध्वज के साथ जलाया गया था। कुछ भी Apple या बुरे लोगों को छिपाना चाहता था अब सादे दृष्टि में था ...

लेकिन यह अब काम नहीं करता है, तो यह आपको कैसे प्रभावित करता है? ठीक है, यह आपको प्रत्यक्ष और अप्रत्यक्ष रूप से दोनों को प्रभावित करेगा। सीधे तौर पर, यह आपके सिस्टम की निगरानी करने की आपकी क्षमता को सीमित कर देगा। बड़ी संख्या में निम्न-स्तरीय प्रणाली प्रशासन और निगरानी उपकरण (जो उच्च-स्तरीय उपकरण बनाते हैं) अब काम नहीं करेंगे। अप्रत्यक्ष प्रभाव हालांकि बहुत बड़ा होगा - सुरक्षा पेशेवरों ने सबसे खराब प्रकार के खतरों का पता लगाने के लिए गहरी प्रणाली पहुंच पर भरोसा किया। हम बस ऐसा नहीं कर सकते। मैलवेयर का विश्लेषण करते समय यह महत्वपूर्ण है कि यह नहीं जानता कि यह डिबगर या हनीपॉट में चल रहा है। SIP को डिसेबल करना सभी सॉफ्टवेयरों, बुरे लोगों और Apple दोनों से कहता है कि इस सिस्टम को देखा जा रहा है। कोई और देखने वाले नहीं। यदि SIP सुरक्षा के बारे में होता तो वे उपयोगकर्ताओं को रूट के बारे में शिक्षित कर सकते थे - इसके बजाय उन्होंने इसे हटा दिया। अंततः इसका मतलब यह है कि Apple ने रूट पासवर्ड के 'सभी और अंत सभी' सुरक्षा अवरोधक को 'सभी के साथ और सभी' SIP सुरक्षा तंत्र के साथ बदल दिया है। या अगर आपका कोई सोशल इंजीनियरिंग में अच्छा है, तो रिबूट के साथ एक रूट पासवर्ड ...

यह भी है: यहां छवि विवरण दर्ज करें


3
इसके अलावा, मैंने इस उत्तर को भी अस्वीकार कर दिया है क्योंकि यह सवाल का जवाब नहीं देता है, अर्थात्: तकनीकी स्तर पर एल कैपिटन की "रूटलेस" विशेषता क्या है? क्या सूदो-एस अभी भी काम करेगा, और यदि ऐसा है, तो शेल को रूट परिवर्तन के रूप में उपयोग करने का अनुभव कैसे होगा? । यह उत्तर केवल DTrace के बारे में बात करने के लिए लगता है
जोश

24
मुझे लगता है कि उत्तर स्पष्ट रूप से और प्रश्न के एक अच्छे हिस्से के लिए सटीक रूप से बोलता है, जो कि एक शेल को रूट के रूप में उपयोग करने का अनुभव कैसे बदल जाएगा। सूडो अब छद्म सूडो हैं। वास्तव में, वास्तुकला की एक परत को जोड़ा गया है। मेरे लिए प्रासंगिक लगता है। और इस आदमी की जीविका के लिए। क्यों डाउन वोट?
sas08 7

5
@ पेप्टिक्स मैं महामारी भेद को नहीं समझता। क्या चीजें हैं और वे क्या करते हैं, और क्यों वे अस्तित्व से संबंधित हैं। सुनिश्चित करें कि इस पोस्ट शुरू होता है एन medias रेस के बारे में एक सुविधा में बात कर, लेकिन यह अच्छी तरह से बाहर scopes। यह पूछने पर कि "यह डेवलपर अनुभव को कैसे बदलता है?" आदि वास्तव में एक खुला अंत और व्यक्तिपरक निमंत्रण है कि डेवलपर्स अपने अनुभवों के बारे में बात करें। अस्पष्ट और अतिरंजित आपत्ति के लिए इन सवालों के जवाब में "दुनिया खत्म हो जाएगी क्योंकि हम जड़ नहीं कर सकते" नुकसान के विचार को खारिज करने के लिए लगता है; यह देव अनुभव को नुकसान दर्शाता है।
sas08 13

4
मैं जोश के बारे में और जानकारी नहीं जोड़ने जा रहा हूं, क्योंकि मैं सिर्फ इस बात की नकल कर रहा हूं कि अन्य उत्तरों ने क्या कहा है और वास्तव में पृष्ठ में कुछ भी नहीं जोड़ा जा रहा है। यह शायद बेहतर होगा अगर शीर्ष उत्तर में DTrace के बारे में कुछ और जानकारी शामिल नहीं है जो अब काम नहीं कर रही है, और फिर मैं इस उत्तर को निरर्थक के रूप में हटा दूंगा :) अन्य उत्तर सिर्फ arstechnica.com/apple/2015/09/ की कार्बन-कॉपी है। os-x-10-11-el-capitan-the-ars-technica-review / 9 / शीर्ष टिप्पणी में जुड़ा हुआ है, ताकि वह भी जा सके। लेकिन इस जवाब में कुछ चीजें, जैसे कि सुतो के साथ SIP के साथ भी काम नहीं कर रही DTT, नेट पर और कहीं नहीं है, लेकिन यहाँ
JJ

3
अभी तक मुझे केवल यही पता चला है कि यदि आप SIP को DTrace के लिए अक्षम करते हैं, तो आप उन प्रक्रियाओं से जुड़ सकते हैं जो प्रतिबंधात्मक अधिकार के तहत नहीं हैं, जो कि एल कैप सब कुछ है जो सिस्टम के साथ आता है (जैसे सफारी)। एक "गूंगा" तरीका है, जो सभी सिस्टम बायनेरिज़ को नई निर्देशिका जैसे / रूटलेस (समान निर्देशिका संरचना के साथ) की प्रतिलिपि बनाने के लिए है, फिर / रूटलेस के लिए एक क्रोकेट बनाएं। अब सब कुछ रन-वे-फ्री है और इसे अटैच भी किया जा सकता है। होशियार तरीका यह है कि आपके फाइलसिस्टम को फिर से माउंट करें, लेकिन यह कहने में डरें कि कैसे / क्यों क्योंकि Apple को कोई संदेह नहीं है कि नीचे खामियां हैं ...
JJ

49

सिस्टम इंटीग्रिटी प्रोटेक्शन (एसआईपी) एक समग्र सुरक्षा नीति है, जिसके तहत सिस्टम फाइलों और प्रक्रियाओं को तीसरे पक्ष द्वारा संशोधित किए जाने से रोकना है। इसे प्राप्त करने के लिए, इसकी निम्नलिखित अवधारणाएँ हैं:

  • फ़ाइल सिस्टम सुरक्षा
  • कर्नेल विस्तार संरक्षण
  • रनटाइम सुरक्षा

फ़ाइल सिस्टम सुरक्षा

SIP, कुछ निर्देशिकाओं में संग्रहीत निर्देशिकाओं और फ़ाइलों को जोड़ने, हटाने या संशोधित करने से Apple के अलावा अन्य पार्टियों को रोकता है:

/bin
/sbin
/usr
/System

Apple ने संकेत दिया है कि डेवलपर्स के लिए निम्नलिखित निर्देशिका उपलब्ध हैं:

/usr/local
/Applications
/Library
~/Library

/usrसिवाय सभी निर्देशिका /usr/localSIP द्वारा संरक्षित हैं।

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

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

यह निर्धारित करने के लिए कि कौन सी निर्देशिका संरक्षित है, Apple ने वर्तमान में फाइलसिस्टम पर दो विन्यास फाइल को परिभाषित किया है। नीचे दिए गए स्थान पर प्राथमिक एक पाया जाता है:

/System/Library/Sandbox/rootless.conf

जहां rootless.confसभी एप्लिकेशन और निर्देशिकाओं के शीर्ष-स्तर को सूचीबद्ध करता है जिसे SIP संरक्षित कर रहा है।

यहां छवि विवरण दर्ज करें

अनुप्रयोग

SIP उन मुख्य एप्स की सुरक्षा कर रहा है जो OS X एप्लीकेशन और एप्लिकेशन यूटिलिटीज में इंस्टॉल करता है। इसका मतलब यह है कि यह अब उन अनुप्रयोगों को हटाने के लिए संभव नहीं होगा जो ओएस एक्स इंस्टॉल करता है, यहां तक ​​कि रूट विशेषाधिकारों का उपयोग करते समय कमांड लाइन से भी।

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

निर्देशिकाएँ

एसआईपी कई निर्देशिकाओं और सिम्बलिंक की सुरक्षा कर रहा है /Applicationsऔर उन निर्देशिकाओं के शीर्ष स्तर को भी सूचीबद्ध किया गया है rootless.conf

यहां छवि विवरण दर्ज करें

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

यहां छवि विवरण दर्ज करें

उन अपवादों में निम्नलिखित हैं:

  • /System/Library/User Template - जहाँ OS X नए खातों के लिए होम फोल्डर बनाते समय उपयोग की जाने वाली टेम्पलेट निर्देशिकाओं को संग्रहीत करता है।
  • /usr/libexec/cups - जहां OS X प्रिंटर कॉन्फ़िगरेशन जानकारी संग्रहीत करता है

Apple इस फ़ाइल को अपना मानता है और यह कि किसी भी तीसरे पक्ष के परिवर्तन को Apple द्वारा अधिलेखित कर दिया जाएगा।

SIP द्वारा किन फ़ाइलों को संरक्षित किया गया है, यह देखने के लिए टर्मिनल में डैश कैपिटल O के साथ lsकमांड का उपयोग करें :

ls -O

SIP- संरक्षित फ़ाइलों को प्रतिबंधित किया जाएगा

यहां छवि विवरण दर्ज करें

यह जानने के लिए एक महत्वपूर्ण विचार यह है कि भले ही एक सिपलिंक एसआईपी द्वारा संरक्षित है, लेकिन इसका मतलब यह नहीं है कि जिस निर्देशिका को वे लिंक कर रहे हैं वह एसआईपी द्वारा संरक्षित किया जा रहा है। OS X El Capitan बूट ड्राइव के रूट स्तर पर, कई SIP- रक्षित सिमिलिंक हैं जो रूट-लेवल डाइरेक्टरी नाम के अंदर निर्देशिकाओं को इंगित करते हैं private

हालाँकि, जब privateनिर्देशिका की सामग्री की जांच की जाती है, तो जिन निर्देशिकाओं को इंगित किया जाता है, वे SIP द्वारा संरक्षित नहीं होती हैं और वे और उनकी सामग्री दोनों को रूट विशेषाधिकारों का उपयोग करके प्रक्रियाओं को स्थानांतरित, संपादित या परिवर्तित किया जा सकता है।

यहां छवि विवरण दर्ज करें

एसआईपी अपवादों की सूची के अलावा जो ऐप्पल ने निर्धारित किया है rootless.conf, एसआईपी अपवादों की एक दूसरी सूची है। इस सूची में तीसरे पक्ष के उत्पादों के लिए कई निर्देशिका और आवेदन नाम शामिल हैं। इसी तरह rootless.conf, यह बहिष्करण सूची Apple की है और किसी भी तीसरे पक्ष के परिवर्तन इसे Apple द्वारा अधिलेखित कर दिया जाएगा।

/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths

रनटाइम सुरक्षा

एसआईपी की सुरक्षा प्रणाली को फाइलसिस्टम परिवर्तनों से बचाने के लिए सीमित नहीं है। सिस्टम कॉल भी हैं जो अब उनकी कार्यक्षमता में प्रतिबंधित हैं।

  • task_for_pid () / processor_set_tasks () EPERM के साथ विफल
  • मैक विशेष बंदरगाहों निष्पादन पर रीसेट कर रहे हैं (2)
  • डाइल्ड पर्यावरण चर को अनदेखा किया जाता है
  • DTrace जांच अनुपलब्ध है

हालाँकि, SIP अपने स्वयं के अनुप्रयोगों के विकासकर्ता द्वारा निरीक्षण को अवरुद्ध नहीं करते हैं जबकि वे विकसित किए जा रहे हैं। Xcode के उपकरण विकास प्रक्रिया के दौरान ऐप्स का निरीक्षण और डीबग करने की अनुमति देते रहेंगे।

इस बारे में अधिक जानकारी के लिए, मैं SIP के लिए Apple के डेवलपर प्रलेखन पर एक नज़र डालने की सलाह दूंगा

कर्नेल विस्तार संरक्षण

SIP अहस्ताक्षरित कर्नेल एक्सटेंशन की स्थापना को रोकता है। SIP सक्षम के साथ OS X El Capitan पर कर्नेल एक्सटेंशन स्थापित करने के लिए, कर्नेल एक्सटेंशन को होना चाहिए:

  1. साइनिंग केक्सस प्रमाण पत्र के लिए एक डेवलपर आईडी के साथ हस्ताक्षर किए जाएं
  2. / लाइब्रेरी / एक्सटेंशन में स्थापित करें

यदि कोई अहस्ताक्षरित कर्नेल एक्सटेंशन स्थापित कर रहा है, तो SIP को पहले अक्षम करना होगा।

SIP के प्रबंधन के बारे में अधिक जानकारी के लिए, कृपया नीचे दिए गए लिंक पर एक नज़र डालें:

सिस्टम इंटीग्रिटी प्रोटेक्शन - ऐप्पल के सुरक्षा मॉडल में एक और परत जोड़ रहा है


4
यह बहुत अच्छा होगा जब स्क्रीनशॉट को सादे पाठ से बदला जा सकता है, देखें: कोड और / या त्रुटियों के स्क्रीनशॉट को हतोत्साहित करें
केनोरब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.