Sudo El Capitan में / usr / bin में फ़ाइल नहीं बना सकता है


14

मैंने कल El Capitan में अपग्रेड किया था और हाल ही में जब तक मैंने देखा कि मैं phpbrew स्थापित करने की कोशिश के रूप में मैंने / usr / बिन पर कुछ भी नहीं लिख सकता था, जब तक मैंने देखा कि सब कुछ अच्छा था।

यह क्या कारण हो सकता है और इसका कैसे निवारण किया जा सकता है?

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


OS X El Capitan जड़ रहित है। रिकवरी पार्टीशन से फीचर को डिसेबल किया जा सकता है।
fd0

जवाबों:


17

OSX 10.11 के बाद से, Apple ने सुरक्षा प्रणाली को मजबूत किया। जिसे सिस्टम इंटिग्रिटी प्रोटेक्शन कहा जाता है , Apple बंद हो गया:

/System
/sbin
/usr (with the exception of /usr/local subdirectory)

इस सुरक्षा सुविधा को अक्षम करने के लिए आपको अपने कंप्यूटर को रिबूट करना होगा और CMD+Rप्रारंभ में OS X रिकवरी मोड में बूट करना होगा।

फिर OS X Utilities > Terminal

कमांड टाइप करें csrutil disable; reboot

आपका कंप्यूटर पुनरारंभ हो जाएगा। आप desactivation के बारे में एक पुष्टिकरण संदेश देखेंगे।

सीआरएस प्रकार की स्थिति सत्यापित करने के लिए csrutil status


1
मैं अक्षम हो गया और यह अभी भी मुझे कुछ भी करने की अनुमति नहीं देता है:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
रॉबर्टो

के साथ प्रयास करें sudo
राग्नार

ज्यादातर मामलों में, स्थानीय अनुकूलन को / usr / स्थानीय (जैसे / usr / स्थानीय / बिन में / बिन या usr / बिन के बजाय) में स्थापित करना बेहतर होता है। यह वही है, और यह लंबे समय से मामला है। यदि संभव हो तो, मैं SIP को अक्षम करने के बजाय इस सर्वोत्तम अभ्यास का पालन करने की सलाह दूंगा। यदि आपको वास्तव में प्रतिबंधित स्थान में परिवर्तन करने की आवश्यकता है, तो SIP को अक्षम करना, परिवर्तन करना और उसके बाद तुरंत csrutil enable(पुनर्प्राप्ति मोड में) SIP को फिर से सक्षम करना सबसे अच्छा है ।
गॉर्डन डेविसन

3

जैसा कि राग्नर द्वारा उल्लेख किया गया है , /usrनिर्देशिका को अपवाद के साथ सिस्टम द्वारा बंद कर दिया गया है /usr/local। फिर, यदि आपका परिदृश्य अनुमति देता है, तो मैं प्रतीकात्मक लिंक को जोड़ने की सलाह दूंगा /usr/local/bin। यदि आपको उपयोग करने की सख्त आवश्यकता नहीं है, तो /usr/binयह "ऑपरेशन की अनुमति नहीं" त्रुटि के आसपास काम करने का एक तरीका है।


2

यह सत्यापित कर सकता है कि OSX के सिस्टम इंटीग्रिटी प्रोटेक्शन (SIP) / रूटलेस द्वारा किसी विशेष फ़ाइल या निर्देशिका को प्रतिबंधित किया गया है, फ़ाइल के झंडे का उपयोग करके -Ols के विकल्प को सूचीबद्ध करके (उदाहरण के लिए कौन सी निर्देशिका प्रतिबंधित है) यह देखने के लिए:

ls -Ol /

एसआईपी द्वारा नियंत्रित की जाने वाली निर्देशिका या फाइलें 'प्रतिबंधित' के रूप में दिखाई देती हैं।

एसआईपी / रूटलेस के बारे में इस सवाल के जवाब में पूरी जानकारी है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.