chmod u+x
केवल और केवल के बीच अंतर क्या है chmod +x
? मैंने एक टन ट्यूटोरियल देखा u+x
है जो स्क्रिप्ट को निष्पादन योग्य बनाने के लिए उपयोग करने के लिए कहता है । हालाँकि, छोड़ने से u
कोई प्रभाव नहीं पड़ता है।
chmod u+x
केवल और केवल के बीच अंतर क्या है chmod +x
? मैंने एक टन ट्यूटोरियल देखा u+x
है जो स्क्रिप्ट को निष्पादन योग्य बनाने के लिए उपयोग करने के लिए कहता है । हालाँकि, छोड़ने से u
कोई प्रभाव नहीं पड़ता है।
जवाबों:
chmod
उस कवर का मैन पेज ।
इसका मतलब है कि chmod u+x somefile
केवल उस फ़ाइल निष्पादन अनुमतियों के मालिक को अनुदान देगा जबकि chmod +x somefile
यह उसी तरह है chmod a+x somefile
।
एक प्रतीकात्मक मोड का प्रारूप है
[ugoa...][[+-=][rwxXstugo...]...][,...]
। कई प्रतीकात्मक संचालन दिए जा सकते हैं, जिन्हें अल्पविराम द्वारा अलग किया जाता है।'Ugoa' अक्षरों का एक संयोजन जो उपयोगकर्ताओं की फ़ाइल तक पहुँच को नियंत्रित करता है, उसे बदला जाएगा: वह उपयोगकर्ता जो इसका (u) मालिक है, फ़ाइल के समूह में अन्य उपयोगकर्ता (g), अन्य उपयोगकर्ता फ़ाइल के समूह (o) में नहीं हैं, या सभी उपयोगकर्ता (ए)। यदि इनमें से कोई भी नहीं दिया जाता है, तो प्रभाव ऐसा होता है जैसे 'a' दिया गया था, लेकिन umask में सेट बिट्स प्रभावित नहीं होते हैं।
chmod +x file
अलग है chmod a+x file
- विवरण के लिए रवेक्सिना का उत्तर देखें।
बस करने +x
से यह सभी झंडों पर लागू होगा: [यू] सर्, [जी] रूप, [ओ] थर्स।
man chmod
अधिक जानकारी के लिए टाइप करें।
सबसे पहले मैं आपको इन सवालों और नीचे दिए गए उत्तरों को पढ़ने का सुझाव देता हूं:
यह आपको उन सभी आवश्यक भागों को समझने में मदद करता है जिन्हें आपको जानना आवश्यक है।
chmod +x
के बराबर है chmod ugo+x
( umask
मूल्य के आधार पर )chmod a+x
के बराबर है chmod ugo+x
( umask
मूल्य पर विचार किए बिना )इसका परिणाम सभी के chmod a+x
लिए निष्पादन योग्य बिट (स्वामी, समूह, अन्य) को सेट करना आसान है?
हालांकि chmod +x
, यह थोड़ा मुश्किल है, यह कहता है umask
कि मूल्य का उपयोग करें और उस मूल्य के आधार पर x
इसे सभी को जोड़ें जो अनुमति दी गई है।
तो अगर umask
मेरे पर्यावरण का है 0002
:
$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx
यह x
इस स्थिति में उपयोगकर्ता (स्वामी), समूह और अन्य को जोड़ने जा रहा है , (जो कि अधिकांश प्रणालियों के लिए डिफ़ॉल्ट स्थिति है) यह बिल्कुल वैसा chmod ugo+x
ही है chmod a+x
, जैसा या अधिक क्रिया रूप में है:
chmod u+x,g+x,o+x
क्या आप इसके chmod u+x,g+x,o+x
और आउटपुट के बीच संबंध स्थापित कर सकते हैं umask -S
?
चलिए अब umask
वर्तमान शेल में परिवर्तन करते हैं 0003
:
$ umask 0003
$ umask
0003
$ umask -S
u=rwx,g=rwx,o=r
जैसा कि आप देख सकते हैं कि अब केवल मालिक और समूह ही निष्पादन योग्य होने जा रहे हैं, अन्य नहीं। इसका मतलब chmod +x
अब chmod u+x,g+x
या के बराबर है chmod ug+x
।
अगर मैं जाए तो क्या होता chmod +w
सेट करने के बाद एक फ़ाइल पर umask
करने के लिए 0003
?
पहले की तरह ही, यह केवल प्रभावित करता है user
और group
फ़ाइल का क्योंकि 3 भी लेखन अनुमति (2) को हटा देता है।
जब आप थोड़ा सा हटा रहे हों तो इसका प्रभाव समान होता है chmod -w
:
$ mkdir test
$ stat -c %A test
drwxrwxr-x
$ umask
0002
$ chmod +w test
$ stat -c %A test
drwxrwxr-x
$ chmod a+w test
$ stat -c %A test
drwxrwxrwx
$ chmod -w test
chmod: test/: new permissions are r-xr-xrwx, not r-xr-xr-x
$ stat -c %A test
dr-xr-xrwx
chmod u+x
आपके उपयोगकर्ता के लिए फ़ाइल को निष्पादन योग्य बना देगा (यह केवल आपके उपयोगकर्ता के लिए जोड़ देगा, हालांकि यह समूह के मालिक, या "अन्य" द्वारा पहले से ही निष्पादन योग्य हो सकता है)।
chmod +x
या chmod a+x
('सभी प्लस निष्पादन योग्य बिट') फ़ाइल को सभी के द्वारा निष्पादन योग्य बनाता है।
यदि आप इसे किसी निर्देशिका में करते हैं, तो यह निर्देशिका को खोज करने योग्य बनाता है, बजाय। यानी, आप उस निर्देशिका की सामग्री को सूचीबद्ध कर सकते हैं, जिस पर आपके पास + x अनुमति है।
chmod u+x file
इसका मतलब यह है कि umask
(आपके मॉड सेट किया जाएगा, कोई सवाल नहीं) की अनदेखी करते हुए फ़ाइल के मालिक के लिए निष्पादन योग्य बिट जोड़ें ।
chmod +x file
इसका मतलब है कि मालिक, समूह और अन्य लोगों के लिए निष्पादन योग्य बिट को जोड़ने पर विचार करें umask
(पहले umask
तो मॉड लागू करें, यह umask के मूल्य के आधार पर अलग-अलग प्रभाव हो सकता है)।
चलो दो फाइलें बनाते हैं:
$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file2
अब मैंने umask
निष्पादन योग्य बिट्स को हटाने के लिए "111" पर सेट किया umask 111
:।
$ chmod u+x file1
$ chmod +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file2
जैसा कि आप chmod
नजरअंदाज कर सकते हैं umask
और फ़ाइल 1 को इसके मालिक के लिए निष्पादन योग्य बिट मिल गया, हालांकि दूसरे ने कुछ नहीं किया क्योंकि यह ओम्स्क के मूल्य पर विचार कर रहा है।