आप उपयोग कर रहे हैं -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
-
सामने ६४४ क्यों हैं ? कोशिश करोsudo chmod 644 my_file
।-644
अधिकारों को हटा देगा।