chmod कैलकुलेटर
चेकबॉक्स, 755 जैसे ऑक्टल नंबर या rwxr-xr-x टेक्स्ट से Unix फ़ाइल परमिशन तय करें और मेल खाते chmod कमांड पाएं।
पूरी तरह आपके ब्राउज़र में चलता है
- संख्यात्मक
- सिम्बॉलिक
यह मोड क्या अनुमति देता है
| कौन | फ़ाइल पर | डायरेक्टरी पर |
|---|
POSIX chmod की तरह नौ परमिशन बिट और setuid, setgid व sticky पर काम करता है। यह असली फ़ाइलें नहीं पढ़ता, मालिकाना हक़ नहीं दिखाता, और ACL, फ़ाइल एट्रिब्यूट या umask को कवर नहीं करता। ऑक्टल मोड में 3 या 4 अंक चाहिए।
chmod मोड कैसे निकालें
- मालिक, ग्रुप और बाकी लोगों के बॉक्स टिक करें, या 644 या 755 जैसा कोई आम प्रीसेट चुनें। आप ऑक्टल नंबर या नौ अक्षरों का टेक्स्ट भी लिख सकते हैं और बॉक्स उसके हिसाब से बदल जाते हैं।
- देखें कि हर वर्ग फ़ाइल और डायरेक्टरी के साथ क्या कर सकता है, इसका सरल भाषा में सार पढ़ें, और कोई चेतावनी दिखे तो उसे पढ़ें।
- संख्यात्मक या सिम्बॉलिक
chmodकमांड कॉपी करें। कमांड सीधे पेस्ट करने लायक चाहिए तो पहले फ़ाइल का नाम बदल लें।
Unix फ़ाइल परमिशन कैसे सेव होते हैं
Unix जैसे सिस्टम पर हर फ़ाइल और डायरेक्टरी के साथ एक छोटा मोड जुड़ा होता है: तीन वर्गों (मालिक यूज़र, मालिक ग्रुप, बाकी सब) में से हर एक के लिए तीन परमिशन बिट (रीड, राइट, एक्ज़ीक्यूट), और तीन विशेष बिट। यानी कुल बारह बिट, और ऑक्टल नंबर बस उन्हीं बिटों को तीन-तीन करके लिखा गया रूप है, इसीलिए अंक 7 तक ही जाते हैं। ls -l वाला नौ अक्षरों का रूप उन्हीं बिटों को अक्षरों में दिखाता है।
रीड, राइट और एक्ज़ीक्यूट के मतलब डायरेक्टरी पर अलग होते हैं। रीड से अंदर के नामों की सूची दिखती है, राइट से एंट्री जोड़ी, उनका नाम बदला और हटाई जा सकती हैं, और एक्ज़ीक्यूट से आप डायरेक्टरी में जा सकते हैं और नाम से चीज़ों तक पहुँच सकते हैं। जिस डायरेक्टरी पर रीड है पर एक्ज़ीक्यूट नहीं, वह नाम तो दिखाती है पर अंदर की किसी भी चीज़ तक पहुँचने नहीं देती, जो उलझाने वाले परमिशन एरर की आम वजह है।
विशेष बिट मोड के व्यवहार को बदल देते हैं। setuid और setgid किसी प्रोग्राम को चलाने वाले के बजाय फ़ाइल के मालिक या ग्रुप के अधिकारों से चलाते हैं, जो शक्तिशाली है, इसलिए ज़्यादातर सिस्टम पर शेल स्क्रिप्ट के लिए अनदेखा किया जाता है। डायरेक्टरी पर setgid से नई फ़ाइलें उसका ग्रुप पा लेती हैं, और डायरेक्टरी पर sticky बिट यूज़र को एक-दूसरे की फ़ाइलें हटाने से रोकता है। अगर पक्का नहीं है कि फ़ाइल को कौन-सा मोड चाहिए, तो सख़्त मोड से शुरू करें और सिर्फ़ वही जोड़ें जो एरर मैसेज माँगे।
सुझाव
- बाइनरी और ऑक्टल वही बिट हैं, बस अलग तरह से लिखे हुए; संख्या पद्धति कन्वर्टर 755 को 111 101 101 के रूप में दिखाता है।
- cron जॉब बना रहे हैं जो अभी एक्ज़ीक्यूट योग्य बनाई स्क्रिप्ट चलाए? शेड्यूल Cron एक्सप्रेशन जनरेटर से बनाएं।
- अगला काम नेटवर्क रेंज निकालना है? सबनेट कैलकुलेटर आज़माएं।
अक्सर पूछे जाने वाले सवाल
ऑक्टल नंबर कैसे काम करता है?
हर अंक एक वर्ग के लिए रीड (4), राइट (2) और एक्ज़ीक्यूट (1) जोड़ता है, क्रम है मालिक, ग्रुप, बाकी लोग। इसलिए 7 का मतलब रीड, राइट और एक्ज़ीक्यूट है, 5 रीड और एक्ज़ीक्यूट, और 4 सिर्फ़ रीड। 755 मालिक को सब कुछ देता है और बाकी सबको रीड और एक्ज़ीक्यूट। आगे लगने वाला वैकल्पिक चौथा अंक setuid (4), setgid (2) और sticky (1) रखता है।
s, S, t और T अक्षरों का क्या मतलब है?
ये मालिक, ग्रुप या बाकी लोगों की जगह पर x की जगह आते हैं। छोटा अक्षर बताता है कि विशेष बिट सेट है और एक्ज़ीक्यूट भी चालू है; बड़ा अक्षर बताता है कि विशेष बिट सेट है पर एक्ज़ीक्यूट बंद है, जो अक्सर गलती होती है। इसलिए 4755 rwsr-xr-x है और 4644 rwSr--r--.
644 और 755 में क्या फ़र्क है?
644 साधारण फ़ाइलों का आम मोड है: मालिक पढ़ और लिख सकता है, बाकी सब सिर्फ़ पढ़ सकते हैं। 755 सबके लिए एक्ज़ीक्यूट जोड़ देता है, जो प्रोग्राम, स्क्रिप्ट और डायरेक्टरी को चाहिए। डायरेक्टरी में कोई भी जा सके, इसके लिए उस पर एक्ज़ीक्यूट बिट चाहिए।
777 को ख़तरनाक क्यों माना जाता है?
इससे मशीन का हर यूज़र, और उसके नाम से चलने वाला हर प्रोग्राम, फ़ाइल को बदल सकता है या उसकी जगह कुछ और रख सकता है। जिस वेब सर्वर को कहीं लिखना है उसे इसकी ज़रूरत नहीं होती: सही यूज़र या ग्रुप को मालिकाना हक़ देकर 775 या 770 इस्तेमाल करने से ज़्यादातर परमिशन एरर फ़ाइल को सबके लिए खोले बिना ठीक हो जाते हैं।
sticky बिट क्या करता है?
डायरेक्टरी पर यह यूज़र को उन फ़ाइलों को हटाने या उनका नाम बदलने से रोकता है जो उनकी नहीं हैं, भले ही वे डायरेक्टरी में लिख सकते हों। इसीलिए /tmp जैसे साझा फ़ोल्डर का मोड 1777 होता है। आधुनिक Linux पर साधारण फ़ाइलों पर इसका कोई असर नहीं होता।
क्या इससे मेरे कंप्यूटर पर कुछ बदलता है?
नहीं। यह सिर्फ़ नंबर और कमांड निकालता है। आप जो भी डालते हैं वह कहीं नहीं भेजा जाता, और कमांड आप ख़ुद टर्मिनल में चलाते हैं।