जो अधिक व्यापक रूप से उपयोग किया जाता है: chmod 777 या chmod a + rwx [बंद]


20

अनुमतियाँ बदलने के लिए दो विकल्पों में से:

  • chmod 777 file.txt
  • chmod a+rwx file.txt

मैं एक दस्तावेज लिख रहा हूं जो यह बताता है कि उपयोगकर्ताओं को एक निश्चित फ़ाइल की फ़ाइल अनुमतियों को बदलने की आवश्यकता है। मैं इसे फ़ाइल अनुमतियों को बदलने के सबसे सामान्य तरीके के रूप में विस्तृत करना चाहता हूं।

वर्तमान में कहते हैं:

- Set permissions on file.txt as per the example below:
    - chmod 777 /tmp/file.txt

यह सिर्फ एक उदाहरण है, और सभी के लिए पूर्ण अनुमति के लिए फ़ाइलों को नहीं बदलेगा।


6
पहला समाधान छोटा और अधिक व्यापक रूप से उपयोग किया जाता है, मैंने कभी दूसरा नहीं देखा।
आर्चर

2
सभी के लिए अनुमतियाँ पढ़ना, लिखना और निष्पादित करना सुरक्षा के संदर्भ में वास्तव में अच्छा विचार नहीं है। आपको इसके बजाय chmod 773 का उपयोग करना चाहिए।
मार्टिन एरहार्ट

1
@MartinErhardt मैं सामान्य रूप से बस का प्रयोग करेंगे 775या 755केवल निष्पादन योग्य फ़ाइलों के लिए।
Kevdog777

3
chmod 777पसंद है chmod a=rwx, नहीं chmod a+rwx
स्टीफन चेजलस

1
777या 666सरल और बहुत अधिक से अधिक यादगार है ugo+rwx, a+rwxया ugo+rwजो बहुत भ्रामक है जैसा oकि अस्पष्ट है और आपके लिए मालिक या अन्य, आप चुन सकते हैं। इसलिए बड़ी गलती करने के बजाय, आप manयह सत्यापित करने के लिए जाँच करते रहें कि कौन सा एक है, या केवल संख्याओं का उपयोग करें।
kenorb

जवाबों:


29

Google देता है:

chmod 777 के बारे में 3 गुना अधिक लोकप्रिय है।

उस ने कहा, मैं प्रलेखन और लिपियों में लंबे विकल्पों का उपयोग करना पसंद करता हूं, क्योंकि वे स्व-दस्तावेजीकरण हैं। यदि आप "रन ls -l | grep file.txtऔर सत्यापन की अनुमति" के साथ अपने निर्देशों का पालन कर रहे हैं , तो आप उपयोग करना चाह सकते हैं, chmod a+rwxक्योंकि एलएस अनुमतियों को प्रदर्शित करेगा।


इसके लिए धन्यवाद। मुझे लगता है कि इसे पूर्ण रूप से लिखने से (अल्फ़ान्यूमेरिक) लोगों को यह पूछने से रोक देगा कि क्या 7मतलब है, आदि
Kevdog777

1
मुझे लगता है कि कारण chmod 777और अधिक लोकप्रिय (के रूप में अपने नंबर को देखने से पहले conjetured) आप 2 वर्ण कम टाइप :) बस है
एंजेल

यदि आप अपने दस्तावेज़ में युक्तियाँ जोड़ रहे हैं, तो आप एक टिप जोड़ सकते हैं chmod 777जो समान प्रभाव को प्राप्त करने के लिए एक आसान शॉर्टकट है। आपके पाठक आपके दस्तावेज़ में शैक्षिक तत्व की सराहना करेंगे। 777 अधिक लोकप्रिय है क्योंकि यह 7 तीन बार हिट करने के लिए बहुत आसान और तेज़ है, लेकिन जब कोई नया उपयोगकर्ता पहली बार 777 देखता है, तो वे नहीं जानते कि इसका वास्तव में क्या मतलब है। इसलिए यह प्राथमिक प्रलेखन के रूप में एक बुरा विकल्प है। लेकिन यह निश्चित रूप से एक टिप के रूप में ध्यान देने योग्य है।
ADTC

एक स्पर्शरेखा के रूप में, मेरे भाई और उनके दोस्त स्क्रैबल शब्दों की अनुमति के लिए इस तकनीक का उपयोग करेंगे। किसी शब्द को 'वास्तविक' मानने से पहले उनके पास Google हिट की संख्या के लिए कुछ सीमा थी
वेन वर्नर

मुझे लगता है कि यह लोकप्रिय है क्योंकि यह पुराना है (प्रतीकात्मक संकेतन बाद में जोड़ा गया था), इसलिए जब कोई भी चुनता है, तो वे Google पर खोज करते हैं या कभी भी समय के बराबर होता है और भीड़ के साथ जाता है। मुझे लगता है कि प्रतीकात्मक का उपयोग करना आसान है, क्योंकि जब तक मैंने उन संख्याओं पर काम किया है, जो मैं प्रतीकों को टाइप कर सकता था, मैं भी इसे पहली बार सही करने के लिए तैयार हूं।
ctrl-alt-delor-

26

[मैं अपने जवाब में डोटानचेन सुझाव के बाद, सबसे अच्छा अभ्यास जोड़ने के लिए संपादित करता हूं। मुझे आशा है कि यह कम स्पष्ट नहीं करता है, और यह अच्छी आदत है]

महत्वपूर्ण अतिरिक्त जानकारी: वे समकक्ष नहीं हैं ।

chmod a+rwx: अंतिम 3 ऑक्टल्स को 777 पर सेट करें, ताकि यह सुनिश्चित हो सके कि मालिक, समूह और उपयोगकर्ताओं के पास "आरडब्ल्यूएक्स" सेट है। यदि पहले अष्टक (सेतु, सेटगिड, और / या स्टिकी बिट) में अतिरिक्त बिट्स हैं तो यह उन्हें अछूता छोड़ देता है। इसके बारे में एक द्विआधारी "या 00777" के रूप में सोचें।

chmod 777 : 00777 पर अधिकार सेट करें, इसलिए यह सुनिश्चित करें कि मालिक, समूह और उपयोगकर्ताओं के पास "rwx" सेट है, और कुछ भी नहीं। यह भी सुनिश्चित करता है कि अतिरिक्त बिट्स (सेटुइड, सेटगिड, और / या स्टिकी बिट) 0 पर सेट हैं।

तो पहले फॉर्म का उपयोग करें, अगर आप बस सभी को पहुंच प्रदान करना सुनिश्चित करना चाहते हैं (और कृपया दोगुना, ट्रिपल सुनिश्चित करें कि यह आवश्यक है ... यह सभी प्रकार की सुरक्षा समस्याओं के लिए द्वार खोलता है, कुछ अप्रत्याशित रूप से व्यापक रूप से व्यापक है वे दुर्भावनापूर्ण उपयोगकर्ता को अनुमति देते हैं)

777 फॉर्म का उपयोग करें यदि आप भी किसी भी सेतु / सेटगिड / चिपचिपा बिट को रीसेट करना चाहते हैं, अर्थात यदि फ़ाइलों को "00777" होना चाहिए, जो संभवतः आपके मामले में अधिक संभावना है (फ़ाइल का अधिकार ज्ञात है, और होना चाहिए : 00777)। यहाँ भी, ट्रिपल सुनिश्चित करें कि यह वास्तव में जरूरत है ...

आमतौर पर स्वामी (और कभी-कभी समूह) तक पहुंच रखना सबसे अच्छा होता है: फिर कुछ विशिष्ट उपयोगकर्ताओं को फ़ाइल / निर्देशिका तक पहुंच प्रदान करने के लिए समूहों का उपयोग करें। A + rwx आसान और आमतौर पर एक्सेस देने का गलत तरीका है (निश्चित रूप से बहुत दुर्लभ मामले हैं जब यह एकमात्र तरीका है ...)

http://en.wikipedia.org/wiki/Chmod एक अच्छी रीड है क्योंकि यह बताती है कि प्रत्येक नंबर या अक्षर क्या दर्शाता है (सेतु / सेटगिड / स्टिकी सहित)


1
इसके अलावा, suid फ़ाइल पर chmod a + w (जिसमें a + rwx शामिल है) बहुत खतरनाक है। क्या मुझे chmod a + w * पर विस्तार से बताने की आवश्यकता है?
यहोशू

othersअनुमति सेट करने का क्या मतलब है ? यदि आप उपयोगकर्ता के रूप में मशीन में लॉग इन हैं, तो निश्चित रूप से आप केवल usersअनुमति का उपयोग कर सकते हैं ?
केवदोग K K

@ Kevdog777: अन्य लोगों के लिए नहीं है और न ही समूह में, उर्फ ​​हर कोई सिस्टम पर है
ओलिवियर दुलैक

1
@ Kevdog777: यदि केवल रूट और उपयोगकर्ता को एक्सेस की आवश्यकता है: chmod 00600 (यदि फ़ाइल को निष्पादित करने की कोई आवश्यकता नहीं है) या chmod 00700 (यदि फ़ाइल को निष्पादित करने की आवश्यकता है -या- यह एक निर्देशिका है)। या chmod 00400 फ़ाइल (एक निर्देशिका के लिए 00500) को संशोधित / लिखने के खिलाफ (छोटे, आसानी से ओवरराइड) सुरक्षा को जोड़ने के लिए। तब अन्य (और समूह में लोग लेकिन उपयोगकर्ता नहीं) फ़ाइल / डीआईआर तक नहीं पहुंच सकते। (निम्नलिखित मेन्डकॉन्च नोट के बाद, मैं इससे पहले + ० "४" में ४ ऑक्टल जोड़ता हूं: शेल के लिए कोई अंतर नहीं पड़ता है, लेकिन अगर आप पर्ल / सी / आदि के माध्यम से सेट करते हैं तो मदद करता है और ४ ऑक्टल एक तरह का अनुस्मारक है जो यह मौजूद है , और यह भी सेट है)
ओलिवियर दुलक

4
chmod 777की तरह है chmod a=rwx
स्टीफन चेजलस

1

मैं आमतौर पर इस अंतर के बारे में सोचता हूं कि अनुमतियों को 0777 पर सेट करना स्पष्ट रूप से उन्हें 0777 पर सेट करता है। जैसा कि पहले उल्लेख किया गया है, यदि आप केवल 777 टाइप करते हैं, तो प्रमुख 0 का अनुमान लगाया जाएगा। जबकि a + rwx सेट्यूड / स्टिकी को छोड़कर पढ़ने / लिखने / निष्पादित करता है। थोड़ा अछूता।

मान लें कि आप केवल यह सुनिश्चित करना चाहते हैं कि एक फ़ाइल निष्पादन योग्य है, तो आप एक + x का उपयोग कर सकते हैं ताकि आप अन्य अनुमतियों के बारे में चिंता किए या संशोधित किए बिना निष्पादन विशेषाधिकार को संशोधित कर सकें। यदि आपने ऑक्टल प्रतिनिधित्व का उपयोग किया है, तो आपको यह जानना होगा कि वर्तमान में अनुमतियाँ क्या हैं, यह सुनिश्चित करने के लिए कि आप किसी अन्य तरीके से अनुमतियों को संशोधित नहीं करते हैं।


0

मैं कहूंगा कि "साधारण लोगों के मार्गदर्शकों" में संख्यात्मक मान देना कहीं अधिक आम है, जैसे कि बजट वेब होस्टिंग के उपयोगकर्ताओं के लिए उत्पादित। हालांकि, उन्हें अष्टक के रूप में निर्दिष्ट करने का ध्यान रखें , दशमलव नहीं, मान:

$ chmod 0777 some_dir

प्रमुख नोट 0में 0777। हालांकि बैश और अन्य सीएलआई वातावरण अप्रयुक्त का उपयोग करने के साथ सही काम करते हैं 777, कई प्रोग्रामिंग भाषाओं जैसे कि PHP और पर्ल के समान कार्य हैं जिन्हें अग्रणी की आवश्यकता होती है 0। इसलिए मैं बैश में भी इसके उपयोग की सलाह देता हूं, यह याद रखने के लिए कि यह होना चाहिए।

डाउनवोटर्स पर ध्यान दें: जैसा कि टिप्पणियों में स्पष्ट किया गया है, chmodकमांड वास्तव में निर्देश को पास करने के लिए जानता है, भले ही दशमलव संकेतन निर्दिष्ट हो। हालांकि, सभी वातावरण इसका समर्थन नहीं करते हैं, इस प्रकार यह स्पष्ट रूप से निर्दिष्ट करने के लिए उपयोग किए जाने के लिए सबसे अच्छा अभ्यास है।


10
chmodकभी भी संख्या को दशमलव के रूप में नहीं मानते हैं। chmod 777 fileऔर chmod 0777 fileपूरी तरह से बराबर हैं।
celtschk 14

3
@ केवडोग777: "ऑक्टल" का मतलब बस आधार -8 है। लेकिन आपको इसके बारे में परवाह करने की आवश्यकता नहीं है, जहां तक chmodशेल कमांड के उपयोग का संबंध है; आप बस तीन अंकों को एक-दूसरे से स्वतंत्र मान सकते हैं, हर एक आपको अनुमतियों का एक सेट बता रहा है।
celtschk 14

3
कोमोड करने के लिए, 0777 में 0 का वास्तव में अर्थ है "स्पष्ट, स्पष्ट, और चिपचिपा बिट्स"। यह 777 के बराबर है, क्योंकि तर्क हमेशा अग्रणी शून्य से चार अंकों के साथ गद्देदार होता है। उसी कारण से, chmod 77के बराबर है chmod 077
एमिल जेकाबेक

1
chmodआदेश अष्टाधारी में अपनी मोड तर्क व्याख्या करता है। यदि आप अधिकांश प्रोग्रामिंग भाषाओं (C, पर्ल,…) का उपयोग कर रहे हैं, तो आपको ध्यान देने की आवश्यकता है, लेकिन इसके लिए एक शेल स्क्रिप्ट में chmod
गिल्स एसओ- बुराई को रोकें '

1
आपके नोट के लिए +1, जैसा कि वास्तव में एक 0 को पूर्वनिर्मित करना अच्छा है (भले ही सभी 4 ऑक्टल्स: 01777 उदाहरण के लिए सेट करें) क्योंकि इससे शेल पर कोई फर्क नहीं पड़ता है, लेकिन यह सुनिश्चित करें कि सी, पर्ल और अन्य इसे ऑक्टल के रूप में व्याख्या करते हैं
ओलियोनियर दुलक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.