OS X पर "ऑपरेशन की अनुमति नहीं" रिपोर्ट क्यों दी गई है?


64

मैं अपने मैक पर निम्नलिखित करने की कोशिश कर रहा हूं (10.6.7):

sudo chown myusername:wheel ./entries

लेकिन यूनिक्स / मैक "ऑपरेशन की अनुमति नहीं है" लौट रहा है। जब मैं ls -lashदोषी फाइल करता हूं , तो यह इस प्रकार है:

8 -rwxrwxrwx   1 myusername  staff   394B Apr 26 23:26 entries

मैंने कोशिश की है sudoऔर sudo su; कुछ भी काम नहीं करता है। किसी भी विचार क्या है?

मैं उन chmodफ़ाइलों की कोशिश कर रहा हूँ जिन्हें मैंने अपने पुराने उबंटू बॉक्स से कॉपी किया है। अधिकांश फ़ाइलों में सफलतापूर्वक chmod'पुनरावर्ती संपादन; बस यह एक अटक गया है और मुझे समझ नहीं आता कि क्यों।


1
क्या आपने कोशिश की है sudo chgrp wheel ./entries?
squircle

1
एक फ़ाइल सिस्टम की जाँच करें। डिस्क उपयोगिता खोलें, अपनी मात्रा चुनें, और सत्यापित करें डिस्क पर क्लिक करें , यदि आवश्यक हो, तो मरम्मत डिस्क
डैनियल बेक

सुनिश्चित करें कि फ़ाइल फाइंडर में लॉक नहीं है (आइकन पर कोई लॉक बैज नहीं है)। इसे बदलने के लिए, गेट इंफो डायलॉग खोलें और लॉक अनचेक करें ।
डैनियल बेक

यदि यह "बाहरी" वॉल्यूम है (अर्थात सिस्टम वॉल्यूम नहीं), तो आपको "इस वॉल्यूम पर स्वामित्व को अनदेखा करें" विकल्प को हटाना पड़ सकता है। (वॉल्यूम के लिए स्वयं जानकारी प्राप्त करें विंडो के नीचे देखें)।
mivk

जवाबों:


84

हां, मैक के पास फ़ाइलों के क्षेत्र में यूनिक्स के लिए कई संवर्द्धन हैं। पूरे संसाधन कांटे को नजरअंदाज करना जो अब ज्यादा इस्तेमाल नहीं होता है, इस प्रकार हैं:

  • मानक यूनिक्स अनुमतियों 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ध्वज सेट है, तो आप इसे अनसेट करने के लिए एकल उपयोगकर्ता मोड में प्राप्त करने के लिए किया है। मैं इसमें शामिल नहीं होने जा रहा हूं क्योंकि इस बारे में बड़े सवाल हैं कि फ़ाइल में उस ध्वज को क्यों सेट किया गया है और आप इसके साथ गड़बड़ क्यों कर रहे हैं और इसके परिणाम क्या होंगे।


7
इसे जोड़कर, अन्य झंडे आपकी फ़ाइलों को बदलने से रोक सकते हैं। मैंने अपनी स्क्रिप्ट मेंsudo chflags -R nouchg,noschg,nouappnd,nosappnd,noopaque,dump .
djjeck

1
नोट: अगर कुछ "अपरिवर्तनीय" ध्वज है, तो गेट इन्फो में बंद चेकबॉक्स को चेक किया जाएगा और धूसर किया जाएगा। "sudo chflags nouchg" इसे ठीक करता है।
फू बार

1
मैं ऐसा नहीं कर सका -Nऔर ugo+rwदोनों एक बार (मैं मिल गया Failed to clear ACL on file ugo+rw: No such file or directory) लेकिन उन्हें व्यक्तिगत रूप से चलाने से ठीक काम हुआ। यदि पुनरावर्ती वांछित है तो -Rपहला arg होना चाहिए।
ओवेनफी

3
ध्यान दें कि सिस्टम इंटीग्रिटी प्रोटेक्शन (रूटलेस) भी एल कैपिटन और बाद में इसका कारण बन सकता है। इसे हल करने के लिए, पुनर्प्राप्ति मोड में बूट करें ( Cmd-R), टर्मिनल खोलें और चलाएं csrutil disable, फिर पुनरारंभ करें (पुनः उपयोग करने योग्य, उपयोग करें csrutil enable)।
इरविन वेसल्स

धन्यवाद ... मुझे फ़ाइल फ्लैग के बारे में कोई जानकारी नहीं थी। अब मुझे समझ में आया कि इसने क्यों कहाoverride rwxrwxrwx huttarl/staff uchg for green.html?
लार्स

18

मुझे भी यही समस्या थी। यह पता चला है कि आपत्तिजनक फ़ाइलों को ओएस द्वारा "लॉक" के रूप में चिह्नित किया गया था। मुझे यह समाधान मिला और इसने सेकंड में समस्याओं को हल किया:

http://explanatorygap.net/2005/07/10/unlocking-files-recursively-from-the-command-line/

ऐसा लगता है rmकि टाइगर में कमांड बदल गई है जैसे कि यदि आप rm -Rfउन्नत विशेषाधिकार के साथ उपयोग करते हैं, तो यह स्वचालित रूप से फाइलों को अनलॉक करेगा।

टाइगर से पहले OS X में: find /Volumes/Transit -flags +uchg -print0 | xargs -0 chflags nouchg

टाइगर के बाद OS X में: sudo rm -Rf foldername/

इसके अलावा, OS X 10.4 के बाद भी, फ़ाइल मेटाडेटा फ़्लैग जैसे uchgऔर हो सकते हैं uappnd, जो फ़ाइल अनुमतियों या स्वामित्व के किसी भी संशोधन को रोकते हैं। chflagsझंडे हटा सकते हैं। कुछ फ़ाइल विशेषताएँ / मेटाडेटा और वे विभिन्न कॉपी टूल द्वारा कैसे संभाले जाते हैं


sudo rm -Rf foldername/पूरी तरह से OSX Mountain Lion
Aryo

5
@ एरियो: rmनिर्देशिका को हटाता है। क्या इसे हटाने के बिना सब कुछ अनलॉक करने का एक तरीका है? जब मैं देखो uchgसेट नहीं होता है, और मैं इसे उम्मीद के साथ (फिर से) के रूप में फिर से चालू और बंद कर सकता हूं chflags [no]uchg, लेकिन इसका फाइंडर में लॉक आइकन पर या मेरी क्षमता पर कोई प्रभाव नहीं पड़ता है chown
ओरोम

12

मुझे Crashplan.app के साथ भी यही समस्या थी।

यहां सूचीबद्ध सभी समाधान मेरी मदद नहीं करेंगे, लेकिन इसने इस चाल को किया: http://forums.macrumors.com/showthread.php?t=1546163

आपको सिस्टम और उपयोगकर्ता अपरिवर्तनीय झंडे को बदलना होगा:

यह देखने के लिए कि आपकी फ़ाइल / फ़ोल्डर में कौन से झंडे सक्रिय हैं:

ls -lhdO MyFile

प्रतिक्रिया इस तरह दिख सकती है:

drwxrwxr-x 3 root admin schg,uchg 102B Apr 8 2013 MyFile

schg , uchg उन अपरिवर्तनीय झंडे हैं। एक सिस्टम के लिए और एक यूजर के लिए। उन्हें हटाने के लिए, निम्नलिखित करें:

chflags noschg CrashPlan.app # this removes system immutable flag
chflags nouchg CrashPlan.app # this removes the user immutable flags

फिर, मेरे लिए कम से कम, फ़ाइल अनलॉक हो गई है और आप इसे हटा सकते हैं!


बहुत बढ़िया, हालांकि chflagsउपयोग करना था sudo, लेकिन यह समझ में आता है
फेलिप

CrashPlan.app (मेरे पास drwxrwxr-x@ 3 _BGMXPCHelper admin schg 96B 9 Jan 2018 CrashPlan.app) के साथ एक ही मुद्दा था , और यह एक ही समाधान था जिसने मुझे इसे हटाने की अनुमति दी, धन्यवाद!
वेबीनो

12

OS X 10.11 (El Capitan) में, यह नए रूटलेस फीचर के कारण भी हो सकता है । स्पष्टीकरण के लिए यह उत्तर देखें ।

संक्षेप में, कुछ महत्वपूर्ण निर्देशिकाओं के लिए, उन्हें संशोधित करने का कोई तरीका नहीं है - चाहे आप उपयोग करें sudo, chownया chmod। यह /usrनिर्देशिका को प्रभावित करता है , (हालांकि आपको संशोधित करने की अनुमति है /usr/local)।

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


1
वाह। कि मुझे पागल कर दिया। किसी तरह मुझे कुछ / usr / lib की प्रतिलिपि बनाने की आवश्यकता थी जो अन्यथा / usr / स्थानीय / lib में नहीं मिली थी (मुझसे पूछें क्यों नहीं)। और यही चाल चली।
qwerty_so

4
वास्तव में, आपको रूटलेस को पूरी तरह से निष्क्रिय करने की आवश्यकता नहीं है, आप केवल रिकवरी मोड में बूट कर सकते हैं (जो रूट रूट को अक्षम करने के लिए आपको वैसे भी करना होगा) और वहां से जो बदलाव आप चाहते हैं, उसे करें।
ओल्ड प्रो

6

बहुत संघर्ष करने के बाद, समस्या को ठीक करने के लिए मुझे यहाँ क्या करना था:

  • फ़ाइल को ले जाया गया ~/Desktop
  • sudo chown myusername:staff ./entries
  • फ़ाइल को मूल स्थान पर वापस ले जाने से काम नहीं हुआ (ऑपरेशन की अनुमति नहीं है, फिर से), इसलिए ...
  • sudo rm ./entries
  • sudo mv ~/Desktop/entries ./entries

4

मुझे भी यही समस्या थी, अपने होम फोल्डर के बारे में। अंत में मैं सिर्फ इस तरह खोजक का इस्तेमाल किया:

गो -> कंप्यूटर -> आपकी डिस्क -> उपयोगकर्ता -> आपका उपयोगकर्ता नाम -> राइट क्लिक -> जानकारी प्राप्त करें

मैंने पाया कि यह बंद था, शायद मैंने इसे अतीत में किया था और भूल गया था। लॉक किए गए चेकबॉक्स को अनचेक किया गया, समस्या को ठीक किया गया।

मैं इस तरह की समस्याओं से निपटने के लिए खोजक से 'गेट इन्फो' का उपयोग करने की सिफारिश कर सकता हूं।

(OS X 10.8.3)


इससे मुझे .isoग्लॉसी वर्चुअल बॉक्स से अनलॉक करने में मदद मिली ।
Nakilon

1

सुनिश्चित करें कि फ़ाइल और उसके मूल फ़ोल्डर दोनों अनलॉक किए गए हैं

मैक मेल ईमेल सिग्नेचर फाइल को डिलीट करने की कोशिश करते समय मैं इसी तरह की समस्या का सामना कर रहा था। जब तक मैंने फ़ाइल के साथ-साथ उसके मूल फ़ोल्डर को अनलॉक नहीं किया था, तब तक मैं इसे हटा नहीं सका।

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