'chmod -644' फ़ाइल अनुमति को 000 पर सेट करेगा


12

मेरे पास 644 ( -rw-r--r--) के साथ एक फ़ाइल थी और इसे -rw-rw-r--चलाने के बाद इसे 664 ( ) में बदलना चाहते थे :

sudo chmod -664 my_file

फ़ाइल अनुमतियाँ 000 पर सेट की गई थीं ( ----------)।

000 से अधिक कुछ भी अनुमतियों को बदलने की कोशिश करने से काम नहीं लगता है। मुझे यहां क्या समझ नहीं आ रहा है?


11
आपके -सामने ६४४ क्यों हैं ? कोशिश करो sudo chmod 644 my_file-644अधिकारों को हटा देगा।
सोरेन एक

जवाबों:


34

आप उपयोग कर रहे हैं -664, बस 664इसके बजाय उपयोग करें । और जब आप की जरूरत नहीं है का उपयोग कभी नहींsudo । यदि यह आपकी फ़ाइल है, तो आपको इसकी आवश्यकता नहीं है sudo:

chmod 644 my_file

जब आप मोड से पहले के chmodसाथ चलते हैं -, तो आप उस मोड को हटा देंगे। देखें man chmod(जोर मेरा):

ऑपरेटर + चयनित फ़ाइल मोड बिट्स को प्रत्येक फ़ाइल के मौजूदा फ़ाइल मोड बिट्स में जोड़ने का कारण बनता है; - उन्हें हटाने का कारण बनता है ; और = उन्हें जोड़ने का कारण बनता है और एक निर्देशिका के असंबद्ध सेट उपयोगकर्ता और समूह आईडी बिट्स प्रभावित नहीं होते हैं, सिवाय इसके कि बिना हटाए गए बिट्स का कारण बनता है।

नंबर हैं:

  • 1: निष्पादित करें
  • 2: लिखो
  • 4: पढ़ा

तो 777अनुमतियों के साथ एक फ़ाइल का अर्थ है कि सभी को तीनों करने का अधिकार है, क्योंकि 1 + 2 + 4 = 7, और इसलिए 7 अनुमतियों को सेट करने का मतलब है पढ़ना, लिखना और निष्पादित करना।

यदि आप ऐसी फ़ाइल से शुरू करते हैं जिसका मोड है 777:

$ ls -l my_file 
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file

और अब चलाएं chmod -644, आप बिट्स को हटा देंगे 644, और एक फाइल के साथ समाप्त करेंगे जिसका मोड है 133:

$ chmod -644 my_file; ls -l my_file 
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file

ऐसा इसलिए है क्योंकि आपने स्वामी की अनुमतियों में से 6 (रीड (4) + राइट (2)) हटा दिए हैं, केवल 1 (एग्जीक्यूट) सेट, और 4 (रीड) को ग्रुप और अन्य परमिशन से छोड़ रहे हैं। परिणाम स्वामी के लिए केवल निष्पादन (1) अनुमतियों के साथ एक फ़ाइल है, और बाकी के लिए लिखने और निष्पादित (आप 4 को परेशान करते हैं, 1 और 3 को छोड़कर)।

क्योंकि आपकी फ़ाइल में नई फ़ाइलों के लिए डिफ़ॉल्ट अनुमतियाँ थीं, इसलिए 644, जब आप दौड़ते थे chmod -644 my_file, तो आपने सभी सेट अनुमति बिट्स को हटा दिया था और किसी के लिए कोई अनुमतियों वाली फ़ाइल नहीं मिली थी।

$ ls -l my_file 
-rw-r--r-- 1 terdon terdon 0 May 28 13:45 my_file
$ chmod -644 my_file
$ ls -l my_file 
---------- 1 terdon terdon 0 May 28 13:45 my_file
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.