सूत्र क्या कहते हैं
हर किसी की तरह, मेरी /System/Library/Sandbox/rootless.conf
फ़ाइल में निम्न प्रविष्टियाँ हैं:
$ cat /System/Library/Sandbox/rootless.conf
[…]
/System
[…]
* /System/Library/Extensions
/System/Library/Extensions/*
[…]
मेरे द्वारा पाए गए विषय के सभी स्रोत (उदाहरण 1 2 3 ) से प्रतीत होता है कि नियमों के अनुसार rootless.conf
, उन प्रविष्टियों को बूट समय पर लागू किया जाएगा, और मोटे तौर पर निम्नानुसार व्याख्या की जा सकती है:
/System
पदानुक्रम के अंदर , किसी भी फ़ाइल या फ़ोल्डर को लिखने के लिए किसी भी प्रक्रिया को लिखने की अनुमति नहीं है, सिवाय इसके कि जब कोई अधिक विशिष्ट नियम इस तरह की पहुंच प्रदान करता है;अंदर
/System/Library/Extensions
, किसी भी प्रक्रिया जिसमें रूट विशेषाधिकार हैं उन्हें नई फाइलें और सबफ़ोल्डर बनाने की अनुमति है;हालांकि, कोई प्रक्रिया किसी भी संशोधित करने या नष्ट करने के लिए अनुमति दी है मौजूदा फ़ाइलों या उप-फ़ोल्डरों के अंदर
/System/Library/Extensions
।
मैं वास्तव में क्या निरीक्षण करता हूं
हालाँकि, जब मैंने इसकी वास्तविक सामग्री को देखा, तो मैंने /System/Library/Extensions
अपने आश्चर्य की कई फाइलों और फ़ोल्डरों की खोज की , जो एसआईपी के सक्रिय होने के बावजूद पूरी तरह से लिखने योग्य और हटाने योग्य हैं:
$ csrutil status
System Integrity Protection status: enabled.
$ ls -lAO /System/Library/Extensions | tail -16
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 corecrypto.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 exfat.kext
drwxr-xr-x 3 root wheel - 102 19 Aug 2013 hp_Inkjet9_io_enabler.kext
drwxr-xr-x 3 root wheel - 102 27 Apr 2013 hp_fax_io.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 iPodDriver.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 mcxalr.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 msdosfs.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 ntfs.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 pmtelemetry.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 pthread.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 smbfs.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 triggers.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 udf.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 vecLib.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 webcontentfilter.kext
drwxr-xr-x@ 3 root wheel restricted 102 20 Apr 2016 webdav_fs.kext
ध्यान दें कि hp_Inkjet9_io_enabler.kext
और hp_fax_io.kext
तृतीय-पक्ष कर्नेल एक्सटेंशन हैं जो उस समय पहले से मौजूद थे जो मैंने एल कैपिटान को अपडेट किया था (जो मैंने मई 2016 में किया था)।
जब मैं SIP अपवादों की सूची खोजता /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
हूं, तो मैं उन 3-पार्टी एक्सटेंशनों को वहां सूचीबद्ध नहीं देखता:
$ defaults read /System/Library/Sandbox/Compatibility.bundle/Contents/Info.plist CFBundleVersion
12.0
$ grep Extensions /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleRTL815XComposite109.kext
/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleRTL815XEthernet109.kext
मुझे एक दर्जन से अधिक कर्नेल एक्सटेंशन मिले जिनमें restricted
ध्वज और com.apple.rootless
विशेषता का भी अभाव था ; सभी प्रभावित कर्नेल एक्सटेंशन 3-पार्टी एक्सटेंशन हैं जो मैंने पिछले दशक के दौरान स्थापित किए थे, और स्पष्ट रूप से एल कैपिटन के अपडेट से बच गए हैं।
जो मुझे निम्नलिखित conundrums के बारे में सोच कर छोड़ देता है:
मुझे क्या पता अच्छा लगेगा
Q1। गुम झंडे
यह कैसे आया कि कोई 3-पार्टी कर्नेल एक्सटेंशन नहीं है - और वास्तव में कोई भी फ़ाइल जो मैं मैन्युअल रूप से नहीं बनाता हूं /System/Library/Extensions
- कभी भी एक restricted
झंडा या एक com.apple.rootless
विशेषता प्राप्त करता है , भले ही rootless.conf
नियम इसके विपरीत लगता हो?
उदाहरण के लिए, प्रकट ls -dlO
की पथ श्रृंखला के साथ hp_fax_io.kext
:
$ ruby -rpathname -e 'puts Pathname.new("/System/Library/Extensions/hp_fax_io.kext").enum_for(:ascend).to_a' | xargs ls -dlO
drwxr-xr-x 39 root wheel - 1394 19 Jan 11:36 /
drwxr-xr-x@ 4 root wheel restricted 136 19 Jan 11:29 /System
drwxr-xr-x 80 root wheel restricted 2720 10 Jan 19:19 /System/Library
drwxr-xr-x 297 root wheel sunlnk 10098 22 Jan 00:57 /System/Library/Extensions
drwxr-xr-x 3 root wheel - 102 27 Apr 2013 /System/Library/Extensions/hp_fax_io.kext
मुझे यह भी याद है कि उस समय जब मैंने योसेमाइट से अपग्रेड किया था, एल कैपिटन इंस्टॉलर ने मूल रूप से सब कुछ और उनकी दादी को कई उदाहरणों में एसआईपी संगरोध में स्थानांतरित करना चुना।
Q2। प्रवर्तन का समय
अगर मैं:
एक रिकवरी वॉल्यूम में बूट करें,
फिर
rootless.conf
एक पंक्ति में (मूल मात्रा पर) जोड़ें :/usr/local/*
और फिर मूल मात्रा में फिर से रिबूट करें,
macOS तो अगले रिबूट पर झंडे के /usr/local/
साथ सभी फाइलों को डुबो देगा restricted
?
यदि नहीं, तो यह मुझे मेरे अंतिम प्रश्न पर लाता है:
Q3। वास्तविक उद्देश्य
rootless.conf
वास्तव में क्या उद्देश्य है ?