chmod अनुमति कैलकुलेटर
डेवchmod अष्टक, प्रतीकात्मक और 3×3 अनुमति मैट्रिक्स के बीच रूपांतरण करें — लाइव, तीन-तरफ़ा सिंक.
दूरस्थ URL लाए नहीं जाते; अपना JSON सीधे पेस्ट करें।
| पढ़ना (4) | लिखना (2) | निष्पादन (1) | अंक | |
|---|---|---|---|---|
| स्वामी | | | | 0 |
| समूह | | | | 0 |
| अन्य | | | | 0 |
$ chmod 0000 file a= इस पृष्ठ पर
chmod कैलकुलेटर क्या है?#
chmod वह Unix कमांड है जो किसी फ़ाइल या निर्देशिका पर read, write और execute अनुमतियाँ सेट करता है। इसका अनुमति मॉडल तीन समूह हैं — स्वामी, समूह, अन्य — प्रत्येक में तीन ऑन/ऑफ़ बिट्स: पढ़ना (4), लिखना (2), निष्पादन (1), जो 0 से 7 तक एकल अंक में जोड़ते हैं। तीन अंक ढेर लगाएँ और आपको वह अष्टक मोड मिलता है जो आप कमांड लाइन पर टाइप करते हैं: 755 का अर्थ है “स्वामी read+write+execute (7), समूह read+execute (5), अन्य read+execute (5)”। एक वैकल्पिक चौथा विशेष उपसर्ग अंक भी है setuid, setgid और sticky बिट के लिए।
एक कैलकुलेटर यहाँ वास्तव में उपयोगी होने का कारण अनुमति मैट्रिक्स (चेकबॉक्स जो आप किसी फ़ाइल मैनेजर में चुनते हैं), अष्टक संख्या (755), और प्रतीकात्मक स्ट्रिंग (rwxr-xr-x, जो ls -l छापता है) के बीच तीन-तरफ़ा समतुल्यता है। अधिकांश लोग इनमें से एक निरूपण अच्छी तरह सीखते हैं और बाकी दोनों पर ठोकरें खाते हैं। यह पेज तीनों को सिंक में रखता है: कोई भी एक बदलें और बाकी दो तत्काल अद्यतन होते हैं, और मैचिंग chmod कमांड लाइन आपके लिए जोड़ी जाती है।
यह मायने रखता है क्योंकि एक गलत अनुमति बिट डिप्लॉयमेंट तोड़ने के सबसे सामान्य तरीकों में से एक है — एक निर्देशिका जिसे वेब सर्वर पढ़ नहीं सकता, एक निजी कुंजी जो बहुत खुली है और SSH द्वारा अस्वीकृत हो जाती है, एक executable जिसका x बिट खो गया। 755 पढ़ना और जानना कि इसका अर्थ “विश्व-पठनीय, समूह और अन्य traverse कर सकते हैं किंतु लिख नहीं” है, एक कौशल है जो यह टूल अनुवाद लाइव दिखाकर प्रशिक्षित करता है।
इसका उपयोग कैसे करें#
- जिस निरूपण से आपके पास पहले से है उससे काम करें:
- अनुमति मैट्रिक्स (3 पंक्तियाँ: स्वामी/समूह/अन्य, 3 स्तंभ: पढ़ना/लिखना/निष्पादन) में चेकबॉक्स चुनें। प्रत्येक पंक्ति के दाईं ओर का अंक स्तंभ चुनते ही उस समूह का 0–7 मान दिखाता है।
- या एक अष्टक मान टाइप करें (1–4 अंक,
0oउपसर्ग स्वीकृत, उदा.755,0644,0o600)। - या एक प्रतीकात्मक मान टाइप करें (
rwxr-xr-x, कॉमा रूपrwx,r-x,r-x, या chmod क्लॉज़ जैसेu=rw,go=r)।
- यदि आपको विशेष बिट्स चाहिए, तो विशेष बिट्स fieldset में setuid, setgid, या sticky चुनें। ये प्रतीकात्मक रूप में अपने स्वामी के execute स्लॉट पर कब्ज़ा करते हैं: setuid/setgid के लिए
s/S, sticky के लिएt/T। - परिणाम कार्ड पढ़ें:
- जोड़ी गई कमांड लाइन,
$ chmod <octal> file, कॉपी के लिए तैयार। - प्रतीकात्मक रूप, उदा.
u=rwx,go=rx। - एक प्रति-समूह विश्लेषण जो प्रत्येक who का अंक और उनकी read/write/execute अनुमतियाँ दिखाता है।
- जोड़ी गई कमांड लाइन,
- कमांड लाइन लेने के लिए कॉपी क्लिक करें।
- स्थिति पंक्ति पार्स की पुष्टि करती है या रिपोर्ट करती है कि कोई अष्टक या प्रतीकात्मक इनपुट अमान्य था।
मुख्य विशेषताएँ#
- तीन-तरफ़ा लाइव सिंक। मैट्रिक्स, अष्टक और प्रतीकात्मक सभी एक-दूसरे को अद्यतन करते हैं, इसलिए आप जो जानते हैं दर्ज करें और जो चाहिए पढ़ें।
- विशेष बिट्स सही संभाले।
setuid,setgidऔर sticky बिट losslessly संभाले जाते हैं, जिसमें वह लोअरकेस/अपरकेस execute-स्लॉट संकेतन (sबनामS,tबनामT) शामिल है जोlsउपयोग करता है। - Canonical 4-अंक अष्टक। आउटपुट हमेशा 4 अंक होता है (
0755,4755,0000), जो उसी तरह मेल खाता है जैसेchmodऔरstatमोड प्रदर्शित करते हैं — विशेष बिट्स सेट होने पर कभी अस्पष्ट 3-अंक रूप नहीं। - क्लॉज़-रूप प्रतीकात्मक। shell द्वारा स्वीकार्य absolute-assignment रूप उत्सर्जित करता है (
u=rw,go=rx), संक्षिप्तता के लिए समान आसन्न समूहों को मिलाता है, और विशेष बिट्स कोu+s/g+s/+tके रूप में जोड़ता है। - उदार इनपुट पार्सिंग।
755,0644,0o600, 9-char चित्र, कॉमा-पृथक विविधता, और chmod क्लॉज़ (u=rwx,go=rx,u+rwx,go-w) स्वीकार करता है।
विस्तृत उदाहरण#
डिप्लॉय की गई किसी वेब निर्देशिका पर सबसे सामान्य मोड। अष्टक फ़ील्ड में 755 टाइप करें। मैट्रिक्स स्वामी read+write+execute, समूह read+execute, अन्य read+execute चुनता है; प्रतीकात्मक फ़ील्ड rwxr-xr-x दिखाता है; और परिणाम कार्ड पढ़ता है:
$ chmod 755 file
Symbolic: u=rwx,go=rx
विश्लेषण के साथ स्वामी 7 (पढ़ना, लिखना, निष्पादन), समूह 5 (पढ़ना, निष्पादन), अन्य 5 (पढ़ना, निष्पादन) सूचीबद्ध। वह निर्देशिकाओं और executable स्क्रिप्ट्स के लिए मानक मोड है: स्वामी सब कुछ कर सकता है, बाकी सब पढ़ और traverse कर सकते हैं किंतु संशोधित नहीं।
अब 644 से तुलना करें — किसी सामान्य सेवा की गई फ़ाइल के लिए सुरक्षित मोड। प्रतीकात्मक rw-r--r-- बन जाता है, और कमांड $ chmod 644 file है: स्वामी पढ़ और लिख सकता है, समूह और अन्य केवल पढ़ सकते हैं, और निर्णायक रूप से किसी के पास execute नहीं है (ताकि डाउनलोड की गई फ़ाइल अचानक न चले)। किसी निजी SSH कुंजी के लिए, आप 600 (rw-------) टाइप करें, एकमात्र मोड जो ssh स्वीकार करेगा।
एक विशेष-बिट उदाहरण: एक बाइनरी जो अपने स्वामी के विशेषाधिकारों के साथ चलना चाहिए। 4755 टाइप करें और प्रतीकात्मक स्लॉट rwsr-xr-x बनता है — स्वामी की execute स्थिति में s पर ध्यान दें, जो setuid को चिह्नित करता है। कमांड लाइन $ chmod 4755 file पढ़ती है, और अग्रणी 4 वह विशेष उपसर्ग अंक है (setuid = 4) जिसे 3-अंक रूप व्यक्त नहीं कर सकता — जो कि ठीक वही कारण है कि यह टूल हमेशा चार अंक उत्सर्जित करता है।
अक्सर पूछे जाने वाले प्रश्न#
755 और 0755 में क्या अंतर है?#
कमांड लाइन पर वे समतुल्य हैं — chmod 755 और chmod 0755 एक ही मोड उत्पन्न करते हैं, क्योंकि अग्रणी 0 का सरल अर्थ “कोई विशेष बिट्स नहीं” है। यह टूल हमेशा चार अंक (0755) प्रदर्शित करता है ताकि विशेष-बिट स्थिति दृश्य हो और stat और ls जिस तरह मोड रिपोर्ट करते हैं उसके अनुरूप हो। जब आप कमांड लाइन कॉपी करते हैं, पारंपरिक $ chmod 755 file रूप उपयोग होता है क्योंकि यही लोग टाइप करते हैं।
प्रतीकात्मक आउटपुट में s, S, t, और T का क्या मतलब है?#
ये किसी execute स्लॉट पर कब्ज़ा करने वाले विशेष बिट्स हैं। लोअरकेस s (स्वामी या समूह स्थिति में) का अर्थ setuid/setgid और execute चालू है; अपरकेस S का अर्थ बिट सेट है किंतु execute बंद है। लोअरकेस t (अन्य स्थिति में) का अर्थ sticky और execute चालू; अपरकेस T का अर्थ sticky सेट, execute बंद। यह अपरकेस-का-अर्थ-कोई-execute-नहीं परिपाटी वही है जिससे ls बिना किसी अतिरिक्त स्तंभ के दोनों स्थितियों को अलग करता है।
जब मैं वास्तव में chmod चलाता हूँ तो अष्टक या प्रतीकात्मक उपयोग करूँ?#
दोनों काम करते हैं, किंतु अलग-अलग व्यवहार करते हैं। अष्टक (chmod 755 file) मोड पूर्ण रूप से सेट करता है — हर बिट ठीक वैसे सेट होता है जैसे आपने टाइप किया। प्रतीकात्मक (chmod u+x file) वर्तमान मोड संपादित करता है — यह केवल आपके द्वारा उल्लेखित बिट्स बदलता है और बाकी को अकेला छोड़ता है। ज्ञात अंतिम स्थिति चाहिए तब अष्टक उपयोग करें (डिप्लॉय स्क्रिप्ट्स, Dockerfiles); बाकी को परेशान किए बिना एक अनुमति धकेलनी हो तब प्रतीकात्मक उपयोग करें।
SSH क्यों अस्वीकार करता है मेरी निजी कुंजी को “bad permissions” त्रुटि के साथ?#
क्योंकि ssh को आवश्यकता है कि निजी कुंजियाँ मोड 0600 (केवल स्वामी read/write) हों और कुछ भी अधिक खुला असुरक्षित मानकर अस्वीकार करता है। यदि आपकी कुंजी 0644 है या समूह/अन्य write रखती है, तो ssh इसे छेड़-छाड़योग्य मानकर उपयोग से इंकार करता है। $ chmod 600 id_ed25519 से सेट करें और त्रुटि चली जाती है। आप यहाँ कमांड चलाने से पहले ठीक मोड सत्यापित कर सकते हैं।