हां, मैक के पास फ़ाइलों के क्षेत्र में यूनिक्स के लिए कई संवर्द्धन हैं। पूरे संसाधन कांटे को नजरअंदाज करना जो अब ज्यादा इस्तेमाल नहीं होता है, इस प्रकार हैं:
- मानक यूनिक्स अनुमतियों
ugo
rwx
और इतने पर। सामान्य यूनिक्स उपकरण लागू होते हैं।
- ACL के साथ देखने योग्य
ls -le
और परिवर्तनशील है chmod [ -a | +a | =a ]
।
- फ़ाइल झंडे
ls -lO
(राजधानी ओह, शून्य नहीं) और परिवर्तनशील के साथ देखा जा सकता है chflags
।
- विस्तारित गुण ,
ls -l@
केवल देखने योग्य (विशेषता कुंजियाँ) और साथ देखने योग्य और परिवर्तनशील xattr
। ( xattr -h
यदि man xattr
आप कुछ भी नहीं देते तो मदद के लिए उपयोग करें ।)
- OS X 10.11 "El Capitan" के साथ शुरू, सिस्टम इंटीग्रिटी प्रोटेक्शन (SIP) आगे चलकर उपयोग
sudo
करने पर भी कुछ फाइलों को सामान्य प्रक्रियाओं से होने वाले परिवर्तनों से बचाता है root
। SIP द्वारा संरक्षित फ़ाइलों ls -lO
को restricted
ध्वज के ls -l@
रूप में सूचीबद्ध किया जाएगा और / या com.apple.rootless
विशेषता के रूप में सूचीबद्ध किया जाएगा ।
यूनिक्स की अनुमति, ACL, फ़ाइल फ़्लैग या SIP के कारण आपको किसी फ़ाइल पर कार्रवाई से वंचित किया जा सकता है। किसी फ़ाइल को पूरी तरह से अनलॉक करने के लिए:
sudo chmod -N file # Remove ACLs from file
sudo chmod ugo+rw file # Give everyone read-write permission to file
sudo chflags nouchg file # Clear the user immutable flag from file
sudo chflags norestricted file # Remove the SIP protection from file
sudo xattr -d com.apple.rootless file # Remove SIP protection from file
यदि सिस्टम इंटीग्रिटी प्रोटेक्शन (SIP) सक्षम है, sudo chflags norestricted
और sudo xattr -d com.apple.rootless
"ऑपरेशन अनुमति नहीं" त्रुटि भी लौटाएगा। ध्वज और / या विशेषता को साफ़ करने के लिए आपको macOS पुनर्प्राप्ति में बूट करने की आवश्यकता है और या तो टर्मिनल से कमांड चलाएं (आपको अपने बूट ड्राइव को अनलॉक करने और माउंट करने के लिए डिस्क यूटिलिटी का उपयोग करना पड़ सकता है, फिर याद रखें कि आपकी फाइलें /Volumes/Macintosh HD
या आपके बूट के नीचे होगी ड्राइव का नाम है) या एसआईपी को पूरी तरह से अक्षम करें और फिर रिबूट करें और फिर कमांड को काम करना चाहिए। हालाँकि, इस बात से अवगत रहें कि भविष्य के OS अपडेट से restricted
ध्वज com.apple.rootless
को हटाने और आपके द्वारा इसे हटा दी गई किसी भी फ़ाइल की विशेषता की संभावना होगी ।
एसआईपी को अक्षम करने की अनुशंसा नहीं की जाती है क्योंकि यह मैलवेयर और आकस्मिक क्षति से बहुत सारी सुरक्षा को हटा देता है, साथ ही यह आवश्यक नहीं है जब आप प्रति-फ़ाइल के आधार पर सुरक्षा को हटा सकते हैं। यदि आप SIP को अक्षम करते हैं, तो जब आप परिवर्तन कर रहे हों, तब इसे पुनः सक्षम करें।
ध्यान दें कि यदि ls -lO
शो schg
ध्वज सेट है, तो आप इसे अनसेट करने के लिए एकल उपयोगकर्ता मोड में प्राप्त करने के लिए किया है। मैं इसमें शामिल नहीं होने जा रहा हूं क्योंकि इस बारे में बड़े सवाल हैं कि फ़ाइल में उस ध्वज को क्यों सेट किया गया है और आप इसके साथ गड़बड़ क्यों कर रहे हैं और इसके परिणाम क्या होंगे।
sudo chgrp wheel ./entries
?