मैंने इसमें 2 फाइलों के साथ डायरेक्टरी परीक्षा दी है। मुझे फ़ाइलों को हटाने की आवश्यकता है लेकिन अनुमति से इनकार कर दिया गया है। यहां तक कि rm -rf
कमांड इन फ़ाइलों को हटा नहीं सकता है। मैंने रूट यूजर के रूप में लॉग इन किया।
मैंने इसमें 2 फाइलों के साथ डायरेक्टरी परीक्षा दी है। मुझे फ़ाइलों को हटाने की आवश्यकता है लेकिन अनुमति से इनकार कर दिया गया है। यहां तक कि rm -rf
कमांड इन फ़ाइलों को हटा नहीं सकता है। मैंने रूट यूजर के रूप में लॉग इन किया।
जवाबों:
रूट उपयोगकर्ता से फाइलों की विशेषताओं की जांच करें
# lsattr
यदि आप नोटिस करते हैं i
(अपरिवर्तनीय) या a
(केवल परिशिष्ट), तो उन विशेषताओं को हटा दें:
# man chattr
# chattr -i [filename]
# chattr -a [filename]
rm
शिकायत करने का सबसे आम कारण है कि आपके पास फ़ाइल हटाने की अनुमति नहीं है, यह है कि निर्देशिका पर अनुमतियाँ आपको फ़ाइल हटाने से मना करती हैं। किसी फ़ाइल को हटाने के लिए, आपको निर्देशिका पर लिखने की अनुमति चाहिए। फ़ाइल पर अनुमतियाँ अप्रासंगिक हैं ( केवल पढ़ने के लिए फ़ाइल हटाने से पहले पुष्टि के लिए संकेत के rm
बिना -f
, लेकिन यह सिर्फ एक पुष्टि है, सीमा नहीं)। कुछ यूनिक्स वेरिएंट जैसे कि OSX (लेकिन लिनक्स नहीं), एक फ़ाइल पर एसीएल इसके विलोपन को रोक सकता है; यदि फ़ाइल पर ACL प्रविष्टि थी, तो अनुमति फ़ील्ड के अंत में ls -l
दिखाई देगी @
।
रूट के रूप में पहुंच अनुमतियों को दरकिनार कर देता है, इसलिए रूट केवल-पढ़ने वाली निर्देशिका में भी फ़ाइलों को हटा सकता है।
अनुमति कॉलम के अंत में ls -l
शो से आउटपुट .
। यह इंगित करता है कि फ़ाइल में SELinux सुरक्षा प्रसंग है। बुनियादी अनुमतियों और एसीएल के विपरीत, एक फाइल पर SELinux सुरक्षा संदर्भ नियंत्रित कर सकता है कि इसे हटाने की अनुमति किसको है। इसके अलावा SELinux को हमेशा रूट द्वारा बाईपास नहीं किया जा सकता है (उपयोगकर्ता ID 0 के रूप में चलने की प्रक्रिया संभव है लेकिन SELinux नीति डिजाइनर के रूप में कुछ अधिकारों के साथ)। यह देखने के लिए कि SELinux संदर्भ आपको क्या करने, चलाने की अनुमति देता है ls -lZ . exam_a
।
एक और चीज़ जो किसी फ़ाइल को डिलीट होने से रोक सकती है, वह है यदि वह या जिसमें वह निर्देशिका है जिसमें केवल-अप या अपरिवर्तनीय लिनक्स विशेषता है । lsattr -d . exam_a
लिनक्स विशेषताओं को देखने के लिए चलाएँ । यदि a
या i
विशेषता चालू है, तो आपको chattr -a -i . exam_a
फ़ाइल को हटाने के लिए इसे ( ) हटाने की आवश्यकता होगी ; केवल जड़ ही ऐसा कर सकता है। किसी फ़ाइल को हटाने के लिए रूट इन विशेषताओं को दरकिनार नहीं कर सकता है, विशेषताओं को पहले बंद करना होगा।
फिर भी एक और चीज़ जो किसी फ़ाइल को डिलीट होने से रोकती है वह है यदि फाइलसिस्टम को केवल पढ़ने के लिए रखा गया है, लेकिन आपको उस मामले में एक अलग त्रुटि संदेश मिलेगा।
ls -la
, इसलिए हम अनुमतियों को.
(निर्देशिका) देख सकते हैं ।