सूडो के रूप में भी / usr / बिन के अंदर एक सिमलिंक नहीं बना सकते


101

जब मैं अपने / usr / बिन फ़ोल्डर में एक बाइनरी को सहानुभूति देने की कोशिश करता हूं, तो मुझे एक ऑपरेशन की अनुमति नहीं मिलती है: त्रुटि

 sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ln: /usr/bin/python2: Operation not permitted

सूडो के रूप में भी, मुझे यह त्रुटि मिलती है।


क्या है आपका 1.ओएस 2.डिस्ट्रेशन 3. फाइल सिस्टम कृपया?
रानी अलबेग वेन

Mac OSX El Capitan 10.11.4
egidra

1
क्या आपने निम्नलिखित प्रयास किया है: stackoverflow.com/questions/32659348/… ?
रानी एल्बेग वेन

जवाबों:


156

मैं क्यों सहानुभूति नहीं रख सकता /usr/bin?

El Capitan का नया सिस्टम इंटीग्रिटी प्रोटेक्शन फ़ीचर OS X के कई मुख्य हिस्सों में बदलाव को रोकता है, जिनमें से अधिकांश /usr/रूट भी शामिल हैं।

मैं अभी भी अपने पथ में निष्पादन योग्य फ़ाइलों को कैसे जोड़ सकता हूं?

स्थानीय अनुकूलन, जैसे आप क्या कर रहे हैं, /usr/localइसके बजाय संबंधित हैं । यह पथ /usr/local/binडिफ़ॉल्ट रूप से मौजूद नहीं है, लेकिन आप इसे बना सकते हैं और इसमें कस्टम बायनेरिज़ (और सिमिलिंक) डाल सकते हैं:

sudo mkdir -p /usr/local/bin
sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2

ध्यान दें कि जब /usr/local/binडिफ़ॉल्ट रूप से मौजूद नहीं है, यह है डिफ़ॉल्ट पथ में, इसलिए जितनी जल्दी आप इसे बनाने के रूप में, यह आदेश के लिए खोज हो जाएगा।

एसआईपी को निष्क्रिय करना

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


16

मैंने Mac OS High Sierra में Sublime Text 3 के लिए प्रतीकात्मक लिंक बनाया

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/

मैं "/ usr / bin" में प्रतीकात्मक लिंक बनाने का भी प्रयास कर रहा था और ऑपरेशन नॉट परमिशन प्राप्त कर रहा था।

फिर मैंने "/ usr / स्थानीय / बिन" में प्रतीकात्मक लिंक बनाया और त्रुटि नहीं थी। प्रतीकात्मक लिंक ठीक काम करता है। बस सुनिश्चित करें कि "/ usr / स्थानीय / बिन" मार्ग में है।

तो, ऐसा लगता है कि "/ usr / bin" तक पहुंच प्रतिबंधित है।


7

सिस्टम को पुनः आरंभ -> लंबे प्रेस cmd + आर । उपयोगिताओं के मेनू से एक टर्मिनल का चयन करें निम्न कमांड टाइप करें csrutil अक्षम करें टर्मिनल और पुनरारंभ सिस्टम।


9
यह सिस्टम इंटीग्रिटी प्रोटेक्शन को निष्क्रिय करता है। इसके बजाय एक और, अधिक सुरक्षित समाधान खोजने के लिए संभवतः सबसे अच्छा है।
मैटसिडर

9
व्यक्तिगत रूप से, मुझे लगता है कि यह सही समाधान है। मुझे इस निर्देशिका या किसी भी निर्देशिका में चीजों को सहानुभूति से ब्लॉक करने के लिए ओएस का कोई कारण नहीं दिखता है sudo
rjhilgefort

0
  1. Create a symbolic link to psql in usr/bin (for mac only)
         command: sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/psql /usr/bin/psql 

यदि आप अनुमति जारी करने के कारण सहानुभूति लिंक नहीं बना पा रहे हैं, तो यह "csrutil" के कारण होगा। csrutil को अक्षम करने के बाद आप सिम्बॉलिक लिंक बना सकते हैं। CSRUtill को अक्षम करने के लिए इन चरणों का पालन करें:

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


-3

sudo suपहले चलाने की कोशिश करें फिर कमांड w / रूट स्तर पर चल रहा है।


2
इससे ओपी समस्या का समाधान नहीं होगा। समस्या को आधुनिक मैकओएस सिस्टम पर सिस्टम अखंडता संरक्षण के साथ करना है।
cgseller
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.