रूट के रूप में चलने पर भी फ़ाइल को हटाने में असमर्थ


48

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

मैं निम्नलिखित फ़ाइल पर आया हूं, जिसे मुझे नई मशीन से निकालने की आवश्यकता है, लेकिन रूट के रूप में चलने पर भी असमर्थ हूं:

-rw-------  1 2003 2003  219 jan 11 14:22 .bash_history

यह फ़ाइल अंदर / घर / USER / है, जहाँ USER मशीन बनाने वाले व्यक्ति का खाता है। पुरानी मशीन पर उसका कोई खाता नहीं है, इसलिए मैं उसके घर के फोल्डर को हटाने की कोशिश कर रहा हूं ताकि नई मशीन पुरानी वाली के साथ लंबा हो जाए, लेकिन मुझे निम्नलिखित त्रुटि मिलती है:

rm: ne peut enlever `.bash_history': Opération non permise

(फ्रेंच से अनुवादित: XXX को हटा नहीं सकते, ऑपरेशन की अनुमति नहीं है)

मैंने निम्नलिखित कमांड का उपयोग करने की कोशिश की है लेकिन इससे कोई फर्क नहीं पड़ा है:

chattr -i .bash_history

क्या आईडी 2003 के साथ एक उपयोगकर्ता बनाने का एकमात्र विकल्प है, या इसके चारों ओर एक और तरीका है?


संपादित करें

मैंने उपयोग करने की कोशिश की है rm -f, और मुझे वही त्रुटि मिलती है। मुझे chmod 777पहली बार उपयोग करने में उसी तरह की त्रुटि हुई ।

मैं chownउस फ़ोल्डर में सक्षम हूं जिसमें वह फ़ाइल है जिसे मैं हटाने की कोशिश कर रहा हूं, इसलिए यह है:

drwx------ 2 root root 1024 jan 24 15:58 USER

EDIT2

lsattrएंगस द्वारा सुझाए अनुसार कमांड चलाना निम्नलिखित आउटपुट देता है:

-----a------- USER/.bash_history
------------- USER/..
------------- USER/.

फ़ाइल को केवल परिशिष्ट के रूप में चिह्नित किया गया है - इस ध्वज को बदलने पर chattr -a .bash_historyमैं फ़ाइल को हटाने में सक्षम था।

जवाबों:


54

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

chmod ugo+w .

और अपरिवर्तनीय या केवल परिशिष्ट नहीं:

chattr -i -a .

ls -laऔर के साथ की जाँच करें lsattr -a


धन्यवाद .. मुझे यह नाम * फाइलों पर चलाना पड़ा जो कि yum
erase

दुर्भाग्यवश, /vendor/laracasts/generators/.git/objects/pack/जब मैं दौड़ता हूं chattr -i -a ., तो मुझे मिलता है chattr: Inappropriate ioctl for device while reading flags on ., और मैं rmउस pesky .idxफ़ाइल को नहीं छोड़ सकता जो संगीतकार ने पीछे छोड़ दी (क्योंकि "ऑपरेशन की अनुमति नहीं है")।
रयान

आह, मेरे लिए एक कामचोरी मेरे लारावेल होमस्टेड वैग्रांट वर्चुअलबॉक्स से विंडोज 10 (अभी भी गिट बैश का उपयोग करके) और rmवहां से फाइलों से बाहर निकलने की थी । तब composer updateपूरा कर पा रहा था।
रेयान

chattr -i -aकाम किया।
xji

9

मुझे एक समान समस्या थी, लेकिन पहले से ही कोई लाभ नहीं होने के लिए दोनों अनुमतियों और चैटर की कोशिश की थी। टर्मिनल में रूट। सीडी से निर्देशिका।

हालाँकि मेरे लिए जो काम किया गया था वह निर्देशिका की अनुमतियों की जाँच करने के लिए था जहाँ परेशानी वाली फ़ाइल स्थित थी - यदि ठीक है:

chmod ugo+w filename

यह विफल रहा - फिर:

chattr -i -a filename 

जो तब स्वीकार किया गया था - तब

chmod ugo+w 

जिसे स्वीकार कर लिया गया

rm filename

और यह चला गया था।

फेडोरा 25 hp वर्कस्टेशन पर।


'chmod ugo + w filename' ने मेरे लिए पूरी तरह से चाल
चली

1

'sudo' उसी user.group का उपयोग करके 'rm' कमांड चला सकता है

ध्यान दें : सुनिश्चित नहीं है कि यह आपके जैसे आईडी के लिए भी काम करेगा।

उदाहरण:

ls /path/to/dir_being_deleted
  drwxrwxrwx 2 nfsnobody nfsnobody   4096 Mar  8 06:55 .
  drwxrwxrwx 7 nfsnobody nfsnobody   4096 Mar  8 06:57 ..
  -rwxrwxrwx 1 nfsnobody nfsnobody      0 Mar  8 06:55 filename.txt

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