यहां समस्या की संभावना म्यूजिक फोल्डर के एक्सेस कंट्रोल लिस्ट (ACL) से है। ACL नियमित रूप से POSIX वालों के लिए एक अलग अनुमति प्रणाली है जो सामान्य रूप से सूचीबद्ध होती है ls -l। होम फोल्डर और कुछ अन्य निर्देशिकाओं में ACL भी है।
घर निर्देशिका के भीतर ACLs देखने के लिए, उपयोग करें:
/bin/ls -le ~
आपको संभवतः 0: group:everyone deny deleteसंगीत निर्देशिका के लिए एक नियम दिखाई देगा । जैसा कि आपने उल्लेख किया है कि आप समस्या को ओवरराइड कर सकते हैं sudo। यदि आप ऐसा नहीं करना चाहते (या नहीं कर सकते), तो आपके पास अन्य विकल्प हैं, यह देखते हुए कि आप फ़ाइल के मालिक हैं। आप संगीत निर्देशिका के एसीएल से इसके प्रवेश पर आधारित अनुक्रमणिका को हटा सकते हैं (उदाहरण में मैंने ऊपर दिया है):
/bin/chmod -a# 0 Music
या आप ACL में सभी प्रविष्टियों को हटा सकते हैं:
/bin/chmod -N Music
अब आप निर्देशिका को चारों ओर ले जा सकते हैं (नियमित POSIX अनुमतियों के अधीन)। यदि आप इस कदम के बाद ACL वापस लाना चाहते हैं, तो आप उपयोग कर सकते हैं:
/bin/chmod +a "group:everyone deny delete" Music_tmp
और /bin/ls -leएसीएल की पुष्टि के लिए फिर से उपयोग करें जैसा आप चाहते हैं। man chmodअधिक जानकारी के लिए ACL उदाहरण देखें । विशेष रूप से, यह परिचय सहायक है:
प्रत्येक फ़ाइल में एक एसीएल है, जिसमें प्रविष्टियों की एक आदेशित सूची है। प्रत्येक प्रविष्टि एक उपयोगकर्ता या समूह को संदर्भित करता है, और अनुमतियों के एक सेट को अनुदान या इनकार करता है। ऐसे मामलों में जहां एक उपयोगकर्ता और एक समूह एक ही नाम के साथ मौजूद हैं, उपयोगकर्ता / समूह का नाम "उपयोगकर्ता:" या "समूह:" के साथ उपसर्ग किया जा सकता है ताकि नाम का प्रकार निर्दिष्ट किया जा सके।
एसीएल आदेश
मुझे नहीं लगता कि मैन पेज ऑर्डर करने के आसपास के नियमों की व्याख्या करता है, लेकिन यह पेज एसीएल के लिए स्पष्ट रूप से आदेश नियमों को स्पष्ट करता है। विशेष रूप से, एक स्पष्ट denyनियम से पहले एक स्पष्ट allowनियम लागू किया जाएगा । इसलिए, जब तक group:everyone deny deleteप्रविष्टि जगह में है, तब तक अपने उपयोगकर्ता को allowनियम से हटाने की अनुमति देना संभव नहीं है । ऐसा इसलिए है क्योंकि अनुमति everyoneसमूह से इनकार की जाती है , जिसमें आप शामिल हैं, और उस नियम को पहले लागू किया जाएगा।