Tool.Yun
डेवलपर्स के लिए उपयोगी उपकरण
YAML को JSON में परिवर्तित करने वाला कनवर्टर
YAML को सुंदर बनाएं और प्रारूपित करें
YAML फ़्लैटनर/अनफ़्लैटनर
YAML विलय
YAML से TOML में रूपांतरण
HTML को मार्कडाउन में बदलना
Markdown को DOCX में बदलें
tools.markdown-format-converter.name
ईपब से मार्कडाउन
मार्कडाउन अंतर
मार्कडाउन के रूप में पेस्ट करें
मार्कडाउन को एचटीएमएल में बदलें
मार्कडाउन को टेक्स्ट में बदलें
मार्कडाउन टीओसी जनरेटर
मार्कडाउन टेबल जनरेटर
मार्कडाउन टेबल प्रेटिफायर
मार्कडाउन पूर्वावलोकन
मार्कडाउन लोरेम इप्सम
मार्कडाउन संपादक
मार्कडाउन से डेटा
EXIF हटाएं
GIF को MP4 में बदलें
ICO/PNG कनवर्टर
इमेज EXIF/मेटाडेटा/GPS/JPEG क्वालिटी रीडर
एचईआईसी कनवर्टर
एसवीजी पूर्वावलोकनकर्ता
कैमरा रिकॉर्डर
छवि आकार बदलने वाला
छवि और पीडीएफ का OCR परीक्षण करें
छवि की पृष्ठभूमि हटाएं
छवि को SVG में रूपांतरित करें (पोट्रेस)
छवि तुलना
छवि प्रारूप कनवर्टर
छवि रंग इन्वर्टर
छवि सुधारें # क्रॉप इमेज फोटो एडिटर
वाटर-मार्क
ObjGen से HTML
XML लिंटर
XML से JSON में रूपांतरण
XML स्वरूपक
XSLT परीक्षक
एक्सपाथ परीक्षक
Base64 फ़ाइल कनवर्टर
CSV से डेटा
dBm mW कनवर्टर
ईमेल नॉर्मलाइज़र
ऊर्जा खपत और व्यय कंप्यूटर
एक्सेल से डेटा
कई इकाइयों का कनवर्टर
टेक्स्ट को UTF-8 बाइनरी में रूपांतरित करें
टेक्स्ट को यूनिकोड में बदलें
टोरेंट से मैग्नेट तक
डेटा स्टोरेज यूनिट कनवर्टर
पर्यावरण चर प्रारूप कनवर्टर
पूर्णांक आधार कनवर्टर
प्रॉपर्टीज़ कनवर्टर
बेस64 स्ट्रिंग एनकोडर/डिकोडर
बेस64 हेक्स ऐरे एनकोडर/डिकोडर
भौगोलिक निर्देशांक कनवर्टर
यूएलआईडी जनरेटर
यूनिकोड वर्णों को जावा एंटिटी में परिवर्तित करने वाला
रोमन अंक परिवर्तक
Ansible vault crypt decrypt
Bech32 एनकोडर/डिकोडर
ECDSA कुंजी युग्म जनरेटर
Ed25519 कुंजी जोड़ी जनरेटर
RSA एन्क्रिप्शन
RSA कुंजी जोड़ी जनरेटर
RSA/DSA/ECDSA हस्ताक्षरकर्ता और सत्यापनकर्ता
SAML पार्सर
X509 प्रमाणपत्र जनरेटर
आर्गन2 हैशर
एचमैक जनरेटर
एजीई क्रिप्टोग्राफी
एसएसएल प्रमाणपत्र कनवर्टर
जेडब्ल्यूटी जनरेटर
जेडब्ल्यूटी पार्सर
जैसिप्ट स्ट्रिंग एन्क्रिप्शन
टेक्स्ट को एन्क्रिप्ट/डिक्रिप्ट करें
नाइसवेयर बाइट्स से पासफ़्रेज़ तक
पासेटो/पासेर्क लोकल
पासेटो/पासेर्क सार्वजनिक/निजी
पीजीपी एन्क्रिप्शन
पीजीपी कीजेन
पीजीपी फ़ाइल एन्क्रिप्शन
प्रमाणपत्र/कुंजी पार्सर
फ़ाइल हैशर
बीक्रिप्ट
शमीर के गुप्त रहस्यों का साझाकरण
सीआरसी कैलकुलेटर
सीएसआर जनरेटर
हैश टेक्स्ट
गणित ओसीआर
गणित प्रारूप कनवर्टर
गणित मूल्यांकनकर्ता
टिप कैलकुलेटर
त्रिकोणमितीय/समीकरण वक्र दृश्यक
बाइनरी कैलकुलेटर
क्रॉन एक्सप्रेशन बिल्डर
JSONPath सिंटैक्स चीटशीट
K8 चीटशीट
Nginx चीटशीट
Tmux कमांड चीटशीट
VIM चीटशीट
XPath सिंटैक्स चीटशीट
chmod कमांड चीटशीट
गिट चीटशीट
गिट सिमेंटिक कमिट चीटशीट
ज़ेलिज कमांड चीटशीट
जेक्यू चीटशीट
डॉकर कंपोज़ चीटशीट
डॉकर चीटशीट
डॉकर स्वार्म चीटशीट
डॉकरफ़ाइल चीटशीट
नैनो चीटशीट
पॉवरशेल चीटशीट
बैश चीटशीट
मार्कडाउन चीट शीट
रेगुलर एक्सप्रेशन चीटशीट
सामान्य रेगुलर एक्सप्रेशन चीटशीट
सीएसएस सिलेक्टर्स चीटशीट
सेड चीटशीट
स्क्रीन कमांड चीटशीट
कार्ड पिकर
पासा रोलर
भाग्य का पहिया
सिक्का पलटने वाला
CSV से JSON में रूपांतरण
JS से JSON कनवर्टर
JSON to Go
JSON अंतर
JSON आकार विश्लेषक
JSON एस्केपर/अनएस्केपर
JSON को .env फ़ाइल में बदलें
JSON को C# में रूपांतरित करना
JSON को CSV में बदलें
JSON को JS में परिवर्तित करने वाला कनवर्टर
JSON को PHP कोड में परिवर्तित करें
JSON को PHP-Array में बदलना
JSON को Python में परिवर्तित करें
JSON को YAML में परिवर्तित करने वाला कनवर्टर
JSON को ऑब्जेक्ट में परिवर्तित करें
JSON को सुंदर बनाना और प्रारूपित करना
JSON क्वेरी
JSON फ़्लैटनर/अनफ़्लैटनर
JSON मिनिफाई
JSON लिंटर
JSON विलय
JSON संपादक
JSON से MessagePack
JSON से SQL DDL
JSON से TOML
JSON से TS
JSON से XML में रूपांतरण
JSON से जावा एंटिटी
JSON से डेटा
JSON से स्कीमा
JSON सॉर्ट मास्टर
JSON स्ट्रिंग कनवर्टर
Jq/JSONPath परीक्षक
ObjGen को JSON में परिवर्तित करें
PHP-Array को JSON में परिवर्तित करना
tools.json-patch.name
संदेश पैक को JSON में बदलें
BIP39 पासफ़्रेज़ जनरेटर
UUID कनवर्टर
UUID जनरेटर
ओटीपी कोड जनरेटर
टोकन जनरेटर
डाइसवेयर पासवर्ड जनरेटर
नैनोआईडी जनरेटर
पासफ़्रेज़ जनरेटर
पिन कोड जनरेटर
यादृच्छिक संख्या जनरेटर
संख्यावाचक नाम जनरेटर
TOML से JSON में रूपांतरण
TOML से YAML
टीओएमएल लिंटर
Docker Compose को .env फ़ाइल में स्थानांतरित करें
कुबेरनेट्स आरबीएसी जनरेटर
ट्रैफ़िक डॉकर कंपोज़ मेकर
डॉकर इंस्पेक्ट से डॉकर रन तक
डॉकर इमेज डाउनलोडर
डॉकर कंपोज़ को डॉकर रन में परिवर्तित करें
डॉकर कंपोज़ फॉर्मेट कनवर्टर
डॉकर कंपोज़ वैलिडेटर
डॉकर कंपोज़ से कुबेरनेट्स तक
डॉकर कंपोज़ से क्वाडलेट्स तक
डॉकर को कुबेरनेट्स पर चलाएं
डॉकर क्वाडलेट्स पर चलता है
डॉकर पैंगोलिन लेबल
डॉकर रन को डॉकर कंपोज़ में परिवर्तित करें
डॉकरफ़ाइल लेबल जनरेटर
ISBN वैलिडेटर और पार्सर
आईईएस प्रकाश दिशानिर्देश
आईएसओ 3166 देश कोड खोजक
आईएसओ 639 खोजकर्ता
आईबैन वैलिडेटर और पार्सर
आरएमबी अपरकेस कनवर्टर
एसएलए कैलकुलेटर
ऑनलाइन शब्दकोश
कैलेंडर कनवर्टर
क्रेडिट कार्ड चेकर
दौड़ने की गति कैलकुलेटर
फ़ोन पार्सर और फ़ॉर्मेटर
बीएमआई कैलकुलेटर
मुद्रा परिवर्तक
यूनिकोड खोज
लुह्न वैलिडेटर
वैट नंबर सत्यापनकर्ता
शेल कमांड की व्याख्या करें
सॉफ़्टवेयर लाइसेंस संगतता
ETA कैलकुलेटर
अवधि कैलकुलेटर
आईकैल विलय
आईसीएएल जनरेटर
आईसीएएल फ़ाइल पार्सर
उलटी गिनती
क्रॉन/सप्ताह के दिन का अलार्म
जिस दिन?
टाइमज़ोन कनवर्टर
टीटीएल कैलकुलेटर
ठीक घड़ी
दिनांक+अवधि कैलकुलेटर
दिनांक-समय परिवर्तक
दिनों की गणना
सप्ताह संख्या परिवर्तक
समय अलार्म
BIMI DNS जनरेटर
Chmod कैलकुलेटर
DMARC DNS जनरेटर
DNS क्वेरीज़
DNSBL चेकर
Htpasswd/htaccess जनरेटर
IPRange/CIDR/IPMask में IPv4-6/IPRange/CIDR
IPv4 पता कनवर्टर
IPv4 रेंज विस्तारक
IPv4 सबनेट कैलकुलेटर
IPv4/6 रेंज को CIDR में बदलने वाला कैलकुलेटर
IPv6 ULA जनरेटर
MAC एड्रेस लुकअप
RAID कैलकुलेटर
RAID विश्वसनीयता कैलकुलेटर
Rsync जनरेटर
Whois चेकर
X-VR-स्पैमकॉज़ डिकोडर
ZPOOL RAID कैलकुलेटर
ZPool चीटशीट
Zxcvbn पासवर्ड की मजबूती
tools.restic-command-generator.name
tools.url-redirection-checker.name
अपाचे लॉगरोटेट जनरेटर
आईपी जियो लोकेशन
आईपी सबनेट एक्सक्लूड कैलकुलेटर
आईपीटेबल्स जनरेटर
आईपीवी4 सबनेट सूची
आईपीवी4/6 सीआईडीआर से आईपी रेंज कैलकुलेटर
आईपीवी6 एड्रेस कनवर्टर
आईपीवी6 सबनेट कैलकुलेटर
एआरपीए डिकोडर
एचएएस सैनिटाइजर
एचटीएसेस जनरेटर
एचडीडी कैलकुलेटर
एनजिनक्स फॉर्मेटर
एफस्टैब जनरेटर
एसआईपी प्राधिकरण
एसपीएफ डीएनएस जनरेटर
कर्ल कमांड जनरेटर
क्रोनटैब जनरेटर
क्लाउडफ्लेयर DNS/RDAP क्वेरीज़
गुनगुनाहट
टीसीपी/यूडीपी पोर्ट परीक्षक
डब्ल्यूपीए पीएसके जनरेटर
डीकेआईएम डीएनएस जनरेटर
डेटा स्थानांतरण दर कैलकुलेटर
पासवर्ड शक्ति विश्लेषक
पीटीआर डीएनएस जनरेटर
पुनीकोड कनवर्टर
पूर्णांकों को IPv4/IPv6 में परिवर्तित करना
फायरवॉलडी कमांड लाइन जनरेटर
बंदरगाह संख्याएँ
बुनियादी प्रमाणीकरण जनरेटर
मल्टी लिंक डाउनलोडर
माइक्रोफ़ोन परीक्षक
मेरा आईपी पता
मैक एड्रेस कनवर्टर
मैक एड्रेस जनरेटर
यूएफडब्ल्यू कमांड जनरेटर
रैंडम पोर्ट जनरेटर
वायरगार्ड कॉन्फ़िगरेशन जनरेटर
विकल्प 43 जनरेटर
विज़ुअल सबनेट कैलकुलेटर
वेबसॉकेट परीक्षण
शटडाउन कमांड जनरेटर
शेल कमांड फॉर्मेटर
शेल कमांड्स लीनियराइज़र
HTML से PDF में रूपांतरण
पीडीएफ एन्क्रिप्ट
पीडीएफ कंप्रेसर
पीडीएफ को डिक्रिप्ट और अनलॉक करें
पीडीएफ टेक्स्ट एक्सट्रैक्टर
पीडीएफ पेज एक्सट्रैक्टर
पीडीएफ लीनियराइज़/फास्टवेब
पीडीएफ संयोजनकर्ता
पीडीएफ हस्ताक्षर परीक्षक
GZip/डिफ्लेट कनवर्टर
HTTPS परीक्षक
MongoDB ऑब्जेक्ट आईडी कनवर्टर
RJ45 Cat6 वायरिंग चीटशीट
आउटलुक एमएसजी पार्सर
आउटलुक सेफलिंक डिकोडर
ईएमवी टीएलवी डिकोडर
ईटीएच लेनदेन डिकोडर
ईमेल पार्सर
एक्टिवडायरेक्टरी एलडीएपी प्रॉपर्टीज सर्चर
एनमैप कमांड बिल्डर
एमआईएम एन्कोडिंग कनवर्टर
कुंजीकोड जानकारी
कुकी पार्सर
टीसीपीडींप जनरेटर
टेक्स्ट कैरेक्टर सेट डिटेक्टर/डिकोडर
डीएनएस परीक्षक
डीएनएस प्रसार परीक्षक
डीएमएआरसी रिपोर्ट विश्लेषक
डेड पिक्सेल परीक्षक
पार्केट फाइल रीडर
प्रतिरोधक कैलकुलेटर
फ़ाइल प्रकार डिटेक्टर
फ्लोटिंग पॉइंट संख्या कनवर्टर
बाउंस ईमेल पार्सर
मध्य-एंडियन कनवर्टर
यूआरएल पार्सर
यूआरएल बिल्डर
लघु यूआरएल विस्तारक
शेयरपॉइंट शेयर यूआरएल डिकोडर
संवेदनशील डेटा मास्कर
सीरियल पोर्ट कंसोल
स्नोफ्लेक आईडी एक्सट्रैक्टर
स्मार्ट रॉ कनवर्टर
हेक्स एनकोडर/डिकोडर
键盘测试器
GTIN वैलिडेटर
tools.epc-qrcode-generator.name
क्यूआर कोड जनरेटर
क्यूआर कोड डिकोडर
क्यूआर संपर्क जानकारी जनरेटर
बारकोड जनरेटर
बारकोड रीडर
वाईफाई क्यूआर कोड जनरेटर
आयतन प्रवाह दर कनवर्टर
ऊर्जा इकाई परिवर्तक
एसआई उपसर्ग कनवर्टर
कोण इकाई कनवर्टर
क्षेत्रफल इकाई परिवर्तक
खाद्य ऊर्जा परिवर्तक
तापमान परिवर्तक
त्वरण कनवर्टर
दबाव इकाई कनवर्टर
द्रव्यमान इकाई परिवर्तक
पावर कनवर्टर
प्रकाश कनवर्टर
फिटनेस कंप्यूटर
फ्रिक्वेंसी परिवर्तक
बल इकाई परिवर्तक
लंबाई इकाई परिवर्तक
वॉल्यूम यूनिट कनवर्टर
स्पीड कन्वर्टर
आस्पेक्ट रेशियो कैलकुलेटर
प्रतिशत कैलकुलेटर
बेंचमार्क निर्माता
भौगोलिक दूरी कैलकुलेटर
JSON से TOON
TOON से JSON
Tab बटन दबाकर Spaces पर जाएं
आरएसवीपी रीडर
इमोजी चयनकर्ता
उद्धरण जनरेटर
एआई के लिए पैक फ़ाइलें
एआई प्रॉम्प्ट स्प्लिटर
एएससीआईआई आर्ट टेक्स्ट जनरेटर
एचटीएमएल से टेक्स्ट निकालें
कीबोर्ड लेआउट कनवर्टर
केस कनवर्टर
छवि को ASCII आर्ट में रूपांतरित करें
ज़ाल्गो जनरेटर/बैनर
जीपीटी टोकन अनुमानक
जीपीटी टोकन एनकोडर/डिकोडर
टेक्स्ट को यूनिकोड नामों में बदलना
डुप्लिकेट लाइन खोजक
नमस्कार, जनरेटर।
नाटो वर्णमाला में पाठ
पाठ अंतर
पाठ अनुवादक
पाठ सांख्यिकी
फ़ॉन्ट तुलना
फ़ोल्डर संरचना आरेख
मत्स्यांगना निर्यातक
मैं और एल चेकर
मोर्स कोड कनवर्टर
यूनिकोड से जीएसएम-7
यूनिकोड स्वरूपक
रूण कनवर्टर
रेगुलर एक्सप्रेशन टेस्टर
रैंडम लाइन पिकर
लेवेनस्टीन कैलकुलेटर
विशिष्ट शब्द
सूचियों की तुलना करें
सूची कनवर्टर
सेड कमांड जनरेटर
सोशल लिंक शेयरर
स्ट्रिंग ऑबफस्केटर
स्मार्ट टेक्स्ट रिप्लेसर और लाइनब्रेकर
CLI कमांड संपादक
CSS/JS प्रेटिफ़ाई और मिनिमाइज़
Django सीक्रेट जेनरेटर
JSON को TypeScript में परिवर्तित करें
JSON से Protobuf में रूपांतरण
JSON से SQL में डेटा आयात करें
K6 लोड टेस्टिंग स्क्रिप्ट जनरेटर
SQL को सुंदर बनाना और प्रारूपित करना
SQL पैरामीटर जनरेटर
SQL मिनिफायर
उद्धरण कनवर्टर
एएनएसआई एस्केप टेस्टर
एपीआई परीक्षण
ओपन ग्राफ़ मेटा जनरेटर
कर्ल कनवर्टर
कोड/स्क्रिप्ट हाइलाइटर
गिट एट्रिब्यूट्स जेनरेटर
गिटइग्नोर जनरेटर
जावास्क्रिप्ट अनऑबफस्केटर/अनपैकर
जावास्क्रिप्ट ऑबफस्केटर
जावास्क्रिप्ट प्रेटिफायर
डेटा जालसाज़
डेटाबेस कनेक्शन स्ट्रिंग बिल्डर
डेटाबेस टेबल जनरेटर
डेटाबेस निर्माण बिल्डर
पिकोमैच परीक्षक
पोमोडोरो टाइमर
फ़ाइल स्प्लिटर
फेविकॉन जनरेटर
मेलटो जनरेटर
स्टैकट्रेस और भी सुंदर
स्ट्रिंग एस्केपर
स्वैगर यूआई परीक्षक
हेक्स फ़ाइल कनवर्टर
परिशोधन कैलकुलेटर
HTML एंटिटी से बाहर निकलें
HTML क्लीनर
HTML मिनिफायर
HTML से XHTML
HTML से डेटा
HTTP स्थिति कोड
REM पिक्सेल कनवर्टर
SVG प्लेसहोल्डर जनरेटर
उपयोगकर्ता-एजेंट पार्सर
एचटीएमएल डब्ल्यूवाईएसआईडब्ल्यूवाईजी संपादक
एचटीएमएल प्रेटिफायर
एमआईएम प्रकार
छवि को सीएसएस में बदलें
डिवाइस की जानकारी
यूआरएल कैचर
यूआरएल क्लीनर
यूआरएल टेक्स्ट सर्च फ़्रैगमेंट मेकर
यूआरएल स्वरूपित स्ट्रिंग को एन्कोड/डिकोड करें
यूटीएम यूआरएल जनरेटर
रंग कंट्रास्ट चेकर
रंग कनवर्टर
रंग पहिया
सीएसएस एक्सपाथ कनवर्टर
सीएसएस ग्रेडिएंट जनरेटर
सीएसएस प्रेटिफायर
सीएसएस यूनिट्स कन्वर्टर
स्लगिफ़ाई स्ट्रिंग

chmod कमांड चीटशीट

लिनक्स अनुमतियों में बदलाव के लिए चीटशीट

chmod (change mode) sets who may read, write, and execute a file or directory on Unix-like systems. The mode can be written symbolically (u+x) or numerically (755) — both reach the same result.

chmod [options] <mode> <file>...

💡 Inspect before and after with ls -l <file>, or get the octal value directly with stat -c '%a %n' <file>.

🗂 Reading ls -l Output

-  rwx  r-x  r--   →  754
│  │    │    │
│  │    │    └── others : r-- = 4
│  │    └─────── group  : r-x = 5
│  └──────────── user   : rwx = 7
└─────────────── type   : - file · d directory · l symlink · c/b device

🧑 User Classes (who)

SymbolClassApplies to
uUserThe file’s owner
gGroupMembers of the file’s group
oOthersEveryone else
aAllu, g and o at once (implied when omitted)

🔐 Permission Bits (what)

SymbolPermissionOctalOn a fileOn a directory
rRead4Read the contentsList entry names (ls)
wWrite2Modify the contentsCreate, rename and delete entries
xExecute1Run as a programEnter it (cd) and reach entries by name
-None0——

📝 Symbolic Mode

OperatorEffect
+Add the listed permissions, leave the rest untouched
-Remove the listed permissions, leave the rest untouched
=Set exactly these permissions, clearing the others for that class
# add execute for the owner
chmod u+x <file>

# remove write from the group
chmod g-w <file>

# cut off group and others entirely
chmod go-rwx <file>

# everyone gets read only, nothing else
chmod a=r <file>

# several clauses, comma separated
chmod u=rwx,go=rx <file>

# 'a' is implied, then filtered by the umask
chmod +x <file>

# regular and special bits in one call
chmod u+x,g+s <file>

# copy the mode of another file
chmod --reference=<ref> <file>

💡 Use X (capital) instead of x to add execute only to directories and to files that already have an execute bit — the safe way to fix a tree: chmod -R u=rwX,go=rX <dir>.

🔢 Numeric (Octal) Mode

Each digit is the sum of r (4), w (2) and x (1):

OctalSumBits
74+2+1rwx
64+2rw-
54+1r-x
44r--
32+1-wx
22-w-
11--x
00---

Three digits map to user, group, others. An optional fourth leading digit sets the special bits (chmod 4755, see below).

Common modes

ModeSymbolicTypical use
777rwxrwxrwxFull access for everyone — ⚠️ almost never the right answer
755rwxr-xr-xScripts, binaries and directories
750rwxr-x---Executable for the owner and their group only
700rwx------Private directory (~/.ssh, ~/.gnupg)
664rw-rw-r--Files shared read-write inside a group
644rw-r--r--Regular files, web assets, configs
640rw-r-----Config with secrets, readable by a service group
600rw-------Private files (~/.ssh/id_ed25519, .env)
400r--------Read-only key material
chmod 755 script.sh

chmod 644 notes.txt

chmod 600 ~/.ssh/id_ed25519

🧪 Special Permission Bits

These go beyond read/write/execute and control the execution context and deletion rules.

BitOctalSymbolicApplies toEffectShown in ls -l as
setuid4u+sExecutable filesRuns with the file owner’s privilegess in the user field
setgid2g+sExecutables, directoriesRuns as the file’s group / new entries inherit the directory’s groups in the group field
sticky1+tDirectoriesOnly the entry’s owner (or root) may delete or rename itt in the others field
# setuid → -rwsr-xr-x
chmod 4755 /usr/bin/somebinary

# setgid → drwxrwsr-x: one group for the whole tree
chmod 2775 /srv/shared

# sticky → drwxrwxrwt: a shared drop box, like /tmp
chmod 1777 /srv/tmp

# strip every special bit again
chmod u-s,g-s,o-t <file>

⚠️ setuid is a privilege-escalation vector — never set it on scripts or on binaries a user can replace. Linux ignores it on interpreted scripts anyway.

ℹ️ A capital S or T in ls -l (-rwSr--r--) means the special bit is set while the matching x bit is not — usually a mistake.

📂 Directory Access Matrix

x on a directory means traverse, not execute — without it nothing below the directory can be reached, no matter how permissive the files themselves are.

ModeList names (ls)Details (ls -l, stat)Enter (cd)Open a known fileCreate / delete entries
r--✅❌❌❌❌
--x❌✅ (by exact name)✅✅❌
r-x✅✅✅✅❌
rwx✅✅✅✅✅
-w-❌❌❌❌❌ (write needs x)

🔁 Recursive & Selective Changes

# blunt: also marks every file executable
chmod -R 755 <dir>

# preferred: X only touches dirs + real executables
chmod -R u=rwX,go=rX <dir>

# directories only
find <dir> -type d -exec chmod 755 {} +

# files only
find <dir> -type f -exec chmod 644 {} +

# make every shell script executable
find <dir> -type f -name '*.sh' -exec chmod +x {} +

⚙️ Useful Options

OptionDescription
-R, --recursiveApply to directories and everything inside them
-v, --verbosePrint a line for every file processed
-c, --changesPrint a line only when a mode actually changed
-f, --silent, --quietSuppress most error messages
--reference=<file>Reuse the mode of another file instead of spelling it out
--preserve-rootRefuse to run recursively on / — not the default, unlike rm
-h (BSD/macOS)Act on the symlink itself instead of its target

🎭 umask — Default Permissions for New Files

New files start from 666 and new directories from 777; the umask bits are removed from that base.

# show the current mask, e.g. 0022
umask

# show it symbolically, e.g. u=rwx,g=rx,o=rx
umask -S

# stricter default for this shell session
umask 027
umaskNew filesNew directories
022644755
002664775
027640750
077600700

💡 Put umask 027 in ~/.bashrc (or a systemd unit’s UMask=) to make the default stick.

🚑 Common Recipes

GoalCommand
Make a script runnablechmod +x deploy.sh
Lock down an SSH key pairchmod 700 ~/.ssh && chmod 600 ~/.ssh/id_* && chmod 644 ~/.ssh/*.pub
Serve web content read-onlychmod -R u=rwX,go=rX /var/www/site
Shared team directory (one group)chmod 2775 /srv/shared
Public scratch directorychmod 1777 /srv/tmp
Clone the mode of a known-good filechmod --reference=good.conf new.conf
Undo an accidental chmod -R 777 .find . -type d -exec chmod 755 {} + && find . -type f -exec chmod 644 {} +

🧰 Related Commands

CommandPurpose
chown <user>:<group> <file>Change the owner and/or group
chgrp <group> <file>Change the group only
ls -l / ls -ld <dir>Show permissions (-d for the directory itself, not its contents)
stat -c '%a %A %U:%G %n' <file>Octal mode, symbolic mode, owner and group in one line
namei -l <path>Show the permissions of every component of a path
getfacl / setfaclFine-grained ACLs when u/g/o is not expressive enough
id / groupsCheck which groups you actually belong to

⚠️ Gotchas

  • chmod 777 is not a fix. It grants every local user write access; the real problem is almost always ownership (chown) or a missing x on a parent directory.
  • “Permission denied” on a file with rw-? Every directory in the path needs x. Debug the whole chain with namei -l /path/to/file.
  • Interpreted scripts need r too — the kernel hands the file to the interpreter, which has to read it.
  • Group changes need a new login (or newgrp <group>) before the shell picks them up.
  • FAT/NTFS/exFAT mounts ignore chmod — set permissions with the umask=, fmask= and dmask= mount options instead.
  • Removing x from a directory hides everything below it, even world-readable files.

📚 Resources

  • GNU coreutils — chmod invocation
  • GNU coreutils — file permissions
  • Man pages: man 1 chmod · man 1 umask · man 1 chown · man 5 acl