sudo chown ऑपरेशन के साथ फेल है जिसकी अनुमति नहीं है


8

मुझे यहां ऐसे ही सवाल मिले हैं, लेकिन उन सवालों के जवाब मेरी समस्या का समाधान नहीं करते हैं।

यदि मैं करता हूँ:

sudo chown <username> main.m

मुझे एक ऑपरेशन की अनुमति है जिसमें त्रुटि की अनुमति नहीं है।

पूर्व त्रुटियों का सामान्य समाधान था:

sudo chflags nouchg main.m

ताला झंडा साफ करने के लिए। हालाँकि, ऐसा करने के बाद, मैं अभी भी फ़ाइल को चॉइस नहीं कर सकता। मैंने भी कोशिश की है:

chflags noschg main.m

किसी भी भाग्य के बिना एकल उपयोगकर्ता मोड में - मुझे एक ऑपरेशन की अनुमति है त्रुटि की अनुमति नहीं है।

अगर किसी के पास कोई विचार है, तो मुझे दिलचस्पी होगी।


अंतर्निहित चीज़ क्या है जिसे आप करने की कोशिश कर रहे हैं? शायद उस फ़ाइल में ताला होने का एक कारण है।
तमारा विज्समैन

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

1
फाइल सिस्टम किस प्रकार की फाइल है? आप chownNTFS / FAT फाइल सिस्टम पर उपयोग करने की कोशिश नहीं कर रहे हैं?
Zoredache

@ericgorr: उस के अधिकांश मेरे सिर के शीर्ष पर है; मैं इस बात से अनभिज्ञ हूँ कि वास्तव में एक सुरक्षित सहायक उपकरण क्या है। लेकिन जैसा कि आप कहते हैं, यह केवल परीक्षण डेटा है जो बनाया गया था; क्या आपने अपने कोड में परीक्षण फ़ाइल को ठीक से बंद कर दिया है?
तमारा विज्समैन

@Tom एक हेल्पर टूल, विशेषाधिकारों को बनाए रखते हुए एक एप्लीकेशन एलिवेटेड विशेषाधिकार देने का OS X का तरीका है - इसलिए यदि कोई ऐप किसी सुरक्षित फ़ाइल को संशोधित करना चाहता है, उदाहरण के लिए, यह उसके लिए फ़ाइल को संशोधित करने के लिए अधिकृत (अधिकृत) सहायक उपकरण को बताता है। मैं अनुमान लगा रहा हूं कि एरिकोगोर अपने आवेदन को बढ़ाने से बचना चाहता है या इसके साथ आने वाले कठोर डिबगिंग से बचने के लिए कुछ करना चाहता है।
वृहस्पति

जवाबों:


8

मैक फ़ाइलों को चार तीन अलग-अलग तरीकों से संरक्षित किया जा सकता है जिनके बारे में मुझे पता है:

  1. उपयोगकर्ता / समूह / अन्य के लिए r / w / x जैसी मानक यूनिक्स स्वामित्व और अनुमतियां ls -lऔर जिनके साथ आप ठीक करते हैं chown(1)और chmod(1)
  2. फ़ाइल झंडे को पसंद करें uchgऔर schgजिसे आप के साथ देखें ls -lOऔर ठीक करें chflags(1)
  3. पुराने खोजक मेटाडेटा "लॉक बिट" जिसे आप देखते हैं GetFileInfo filename। आप फाइंडर मेटाडेटा की उपस्थिति भी देख सकते हैं, लेकिन इसके अर्थ के साथ नहीं ls -l@। आप इसे ठीक कर सकते हैं SetFile(1) कोई बात नहीं, यह uchgअब ध्वज को मैप किया गया है ।
  4. एक्सेस कंट्रोल लिस्ट (ACL) जिसे आप ls -leACL से संबंधित तर्कों के साथ देखते और ठीक करते हैं chmod(1)

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

ls -lO@e main.m

ऐसा लगता है कि आप पहले से ही जानते हैं कि # 1 और # 2 से कैसे निपटना है।

यदि आप एक एसीएल (# 4) देखते हैं, तो आप इसे एसीएल से संबंधित तर्कों के साथ ठीक कर सकते हैं chmod(1)

यदि आप अभी भी स्टम्प्ड हैं, तो अपने lsसुझाव को उस संयुक्त कमांड से आउटपुट के साथ अपडेट करें, जो मैंने ऊपर सुझाया है, इसलिए हम देख सकते हैं कि क्या चल रहा है।


समस्या ACL के साथ दिखाई देती है। मुझे यह दिलचस्प लगता है कि सुडोकू ऐसे तालों के आसपास नहीं मिलता है। इसके अलावा, chmod -R -a # 0 * ने पदानुक्रम की अधिकांश फ़ाइलों में से ACL को हटा दिया, लेकिन उन्हें कुछ से निकालने में विफल रहा - chmod के साथ sudo का उपयोग करने से मदद नहीं मिली।
ericg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.