umask क्या है?

umask (user file-creation mode mask) एक Linux और Unix सेटिंग है जो नई बनाई गई फ़ाइलों और निर्देशिकाओं को दिए जाने वाले डिफ़ॉल्ट अनुमतियों को नियंत्रित करती है। अनुमतियों को सीधे सेट करने के बजाय, umask परिभाषित करता है कि नई फ़ाइल या निर्देशिका बनाते समय सिस्टम डिफ़ॉल्ट से कौन सी अनुमति बिट्स हटाई जानी चाहिए

सिस्टम फ़ाइलों के लिए 666 (सभी के लिए पढ़ने और लिखने की अनुमति) और निर्देशिकाओं के लिए 777 (सभी के लिए पढ़ने, लिखने और निष्पादित करने की अनुमति) की आधार अनुमति के साथ शुरू होता है। फिर umask को एक तार्किक AND-NOT ऑपरेशन का उपयोग करके इन डिफ़ॉल्ट से बिटवाइज घटाया जाता है, जिससे अंतिम अनुमतियां प्राप्त होती हैं। उदाहरण के लिए, 022 के umask के साथ, नई फ़ाइलें 644 और नई निर्देशिकाएं 755 के साथ समाप्त होती हैं।

प्रत्येक umask अंक एक अनुमति वर्ग के अनुरूप है: पहला अंक मालिक को प्रभावित करता है, दूसरा समूह को, और तीसरा अन्य को। 0 का अंक मतलब है कि कोई अनुमति मास्क नहीं की गई है, जबकि 7 उस वर्ग के लिए सभी अनुमतियों को हटा देता है।

टूल विवरण

Linux umask कैलकुलेटर एक umask मान और आधार अनुमति को अष्टक और प्रतीकात्मक दोनों नोटेशन में परिणामी प्रभावी अनुमतियों में परिवर्तित करता है। यह सटीक umask शेल कमांड भी उत्पन्न करता है, जो सिस्टम प्रशासकों, डेवलपर्स और DevOps इंजीनियरों को शेल, स्क्रिप्ट या सिस्टम कॉन्फ़िगरेशन पर लागू करने से पहले किसी भी umask के परिणाम का पूर्वावलोकन करने में मदद करता है।

उदाहरण

Umask आधार परिणामी अष्टक प्रतीकात्मक
022 666 644 rw-r--r--
022 777 755 rwxr-xr-x
077 666 600 rw-------
027 777 750 rwxr-x---
002 666 664 rw-rw-r--

विशेषताएं

  • किसी भी umask से परिणामी अष्टक और प्रतीकात्मक अनुमतियों की गणना करता है
  • 3-अंकीय और 4-अंकीय (अग्रणी sticky/setuid बिट के साथ) दोनों umask मानों का समर्थन करता है
  • सामान्य umask प्रीसेट (022, 027, 077, 002, 007, 000)
  • फ़ाइलों (666) और निर्देशिकाओं (777) के लिए आधार अनुमति प्रीसेट
  • उपयोग के लिए तैयार umask शेल कमांड उत्पन्न करता है

उपयोग के मामले

  • सर्वर सुदृढ़ीकरण: /etc/profile या उपयोगकर्ता के शेल कॉन्फ़िगरेशन में जोड़ने से पहले 077 जैसे कठोर umask का पूर्वावलोकन करें ताकि नई फ़ाइलें निजी हों।
  • साझा विकास वातावरण: सत्यापित करें कि 002 या 007 सहयोगी परियोजना निर्देशिकाओं के लिए समूह-लिखने योग्य फ़ाइलें बनाता है।
  • तैनाती स्क्रिप्ट: CI/CD पाइपलाइन या कंटेनर एंट्रीपॉइंट में उपयोग किए जाने वाले umask की पुष्टि करें ताकि एप्लिकेशन लॉग और अपलोड की गई संपत्तियों के लिए अपेक्षित फ़ाइल अनुमतियां बनेंगी।

यह कैसे काम करता है

अंतिम अनुमति प्रत्येक वर्ग (मालिक, समूह, अन्य) के लिए सूत्र का उपयोग करके गणना की जाती है:

final = base AND (NOT umask)

प्रत्येक अष्टक अंक को स्वतंत्र रूप से संसाधित किया जाता है। 2 के umask अंक (बाइनरी 010) और 6 के आधार अंक (बाइनरी 110) के लिए, परिणाम 110 AND NOT 010 = 100 है, जो 4 (केवल पढ़ने के लिए) के बराबर है। 4-अंकीय umask का अग्रणी अंक विशेष बिट्स (setuid, setgid, sticky) को नियंत्रित करता है और मानक अनुमति गणना में अनदेखा किया जाता है।

सुझाव

  • नई फ़ाइलों के लिए अनुमतियां देखने के लिए 666 को आधार के रूप में उपयोग करें, और नई निर्देशिकाओं के लिए 777 का उपयोग करें।
  • 000 का umask मतलब है कि कोई अनुमति नहीं हटाई गई है — केवल कसकर नियंत्रित, अलग-थलग वातावरण में उपयोगी।
  • umask को स्थायी बनाने के लिए, उत्पन्न कमांड को ~/.bashrc, ~/.profile, या /etc/profile में जोड़ें, यह इस बात पर निर्भर करता है कि आप किस स्कोप को चाहते हैं।