यूनिक्स फ़ाइल अनुमतियों में "@" क्या दर्शाता है?


49

मेरे पास अपने मैकबुक प्रो पर निम्नलिखित अनुमतियों के साथ एक फाइल है:

-rwxr-xr-x@ 1 root wheel 101K Feb 29 17:09 apachectl

किसलिए @खड़ा है? मैं फ़ाइल को निष्पादित नहीं कर सकता और यह केवल एक चीज है जो मेरे लिए खड़ी है। मुझे इससे कैसे छुटकारा मिल सकता है?

कुछ पृष्ठभूमि के रूप में, मैंने इसे टाइम मशीन बैकअप से कॉपी किया।

जवाबों:


35

यदि फ़ाइल या निर्देशिका में विशेषताओं को बढ़ाया गया है, तो आपको अनुमतियाँ फ़ील्ड में एक @ दिखाई देगा। विस्तारित सुरक्षा जानकारी (ACL) के लिए, आपको एक + दिखाई देगा।

से man lsओएस एक्स पर:

-@      Display extended attribute keys and sizes in long (-l) output.

xattrकार्यक्रम प्रदर्शित करने और विस्तारित विशेषताओं में हेरफेर करने के लिए इस्तेमाल किया जा सकता है। उन विशेषताओं को हटाते समय जाने का निर्णय लेने से पहले क्या है, इस पर एक नज़र डालें। निश्चित रूप से xattr के लिए मैन पेज पर एक त्वरित नज़र डालें।

कुछ उदाहरण PHP समझौता कोड मैं संदर्भ के लिए चारों ओर से एक त्वरित उदाहरण:

$ ls -@l php-compromise.php 
-rw-r--r--@ 1 user  group  502620 Jul  5  2011 php-compromise.php
    com.apple.FinderInfo        32 
    com.apple.TextEncoding      15 

22

सुधार के लिए @Jeff को धन्यवाद। मुझे याद आ गया था।

  • @एक विस्तारित विशेषता सेट किया गया है के साथ प्रदर्शित किया जाता है
  • +एक एसीएल के लिए प्रदर्शित किया जाता है।
  • यदि आपके पास एक विशेषता और एक ACL है तो आप देखते हैं @

ls -le filenameयह देखने के लिए कमांड चलाएँ कि क्या उसके पास कोई एसीएल सेट है या नहीं।

चूंकि आपकी समस्या फ़ाइल तक पहुँचने में है, इसलिए मुझे यकीन है कि आपके पास एक विस्तारित विशेषता के अलावा एक एसीएल सेट है।

echo | sudo chmod -E filenameएक फ़ाइल के लिए या echo | sudo chmod -R -E directory nameएक निर्देशिका के लिए एसीएल चलाने से छुटकारा पाने के लिए ।

चामोद मैन पेज देखें ।


जवाब के लिए धन्यवाद। मुझे इससे कैसे छुटकारा मिल सकता है?
विन्नीड

एक उत्तर के साथ अद्यतन किया गया है जो मुझे लगता है कि काम करना चाहिए।
ज़ॉर्दाचे

@Zoredache ACL अनुमतियां प्लस चिह्न के साथ आती हैं। @ @ "विस्तारित विशेषताएँ हैं।"

हाँ, मैं देख रहा हूँ कि जैसे मैं दोहराता हूँ। मुझे याद होगा पीछे की तरफ। और क्या होता है जब किसी फ़ाइल में दोनों होते हैं?
Zoredache

कोई बात नहीं, मुझे एक मैक मिला। यदि आपके पास एक @विस्तारित विशेषता और +acl सेट है, तो ऐसा प्रतीत होता है कि ls एक दिखाएगा @। चूँकि उन्हें किसी फ़ाइल तक पहुँचने में समस्याएँ हो रही हैं, इसलिए मुझे यह प्रतीत होता है कि समस्या अधिक होने की संभावना है कि उसे एसीएल के साथ कोई समस्या है।
ज़ोराडैच

8

सेब संगरोध विशेषता के साथ, इसे हटाने के लिए चामोड पर्याप्त नहीं है।

आपको विशेषता को स्पष्ट रूप से हटाने की आवश्यकता है:

sudo xattr -d com.apple.quarantine my_file

ओपी ने यह भी पूछा कि "स्टैंड फॉर
कामाफेदर

3

@विस्तारित गुण के लिए खड़ा है, मानक यूनिक्स फाइल अनुमति के अलावा।

विस्तारित विशेषताओं की जाँच करें:

ls -l@

एकल फ़ाइल के लिए सभी विस्तारित विशेषताओं को रीसेट करें:

sudo xattr -c <filepath>

सभी विस्तारित विशेषताओं को पुनरावर्ती रूप से रीसेट करें:

sudo xattr -rc <directory>
sudo chmod -R -N <directory>

MacOS हाई सिएरा (10.13) और macOS Mojave (10.14.6) पर जांच की गई।


0

मैंने पाया है कि -Eया -Nवास्तव में अदृश्य भी जब का उपयोग कर रहे हैं sudo। जिस तरह से मैं इसे ठीक कर सकता था वह रूट के रूप में लॉग इन करके था


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