setguid
यहां 2 सेनाएं काम करती हैं। पहले setgid बिट उस फ़ोल्डर पर सक्षम है folder
।
drwxr-s---. user group folder
यह s
इस पंक्ति की शुरुआत में वर्णों के पैक में है। वे इस प्रकार समूहीकृत हैं:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
इसका r-s
मतलब है कि इस फ़ोल्डर के अंदर बनाई गई किसी भी फ़ाइल या निर्देशिका में समूह को समूह में स्वचालित रूप से सेट किया जाएगा group
।
यही कारण है कि फ़ाइलों foo.txt
और bar.txt
ऐसा बनाया जा करने के लिए:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
अनुमतियाँ और umask
आपके द्वारा देखी जा रही अनुमतियां एक और मामला है। ये आपके लिए सेटिंग्स द्वारा नियंत्रित होते हैं umask
। आप देख सकते हैं कि आपका umask
कमांड के साथ क्या सेट है umask
:
$ umask
0002
नोट: इन बिट्स को "मोड" बिट्स भी कहा जाता है।
यह एक मुखौटा है इसलिए यह अनुमतियों से संबंधित किसी भी बिट को अक्षम कर देगा जो सक्षम हैं। इस उदाहरण में केवल एक बिट मैं चाहता हूं कि अन्य के लिए लिखने की अनुमति है।
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
इस कमांड में "बिट्स" का प्रतिनिधित्व दशमलव रूप में है। तो एक 2 बाइनरी फॉर्म में 010 के बराबर है, जो राइट बिट है। 4 (100) का मतलब होगा कि आप विकलांग पढ़ना चाहते हैं। 7 (111) का अर्थ है कि आप सभी विकलांगों को पढ़ना / लिखना / निष्पादित करना चाहते हैं। इसे यहाँ से बनाना:
$ umask 007
अन्य उपयोगकर्ताओं के लिए बिट्स को पढ़ने / लिखने / निष्पादित करने को अक्षम करेगा।
तो फिर आपकी फाइलों का क्या?
खैर umask
नई फाइल बनने पर सेट की जाने वाली अनुमतियों को नियंत्रित करता है। तो अगर हम निम्नलिखित umask
सेट था:
$ umask 007
और नई फ़ाइलों को छूना शुरू किया, हम उन्हें इस तरह बनाया हुआ देखेंगे:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
अगर हमने इसे किसी और चीज़ में बदल दिया, तो यह कहें:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
इसका उन फ़ाइलों पर कोई प्रभाव नहीं पड़ेगा जो हमने पहले ही बनाई हैं। यहाँ देखें:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
तो फिर फ़ाइल ब्राउज़र के साथ क्या हो रहा है?
वह umask
है जिसे मैंने "सॉफ्ट" सेटिंग कहा है। यह किसी भी तरह से निरपेक्ष नहीं है और कई तरीकों से यूनिक्स में आसानी से पारित किया जा सकता है। कई उपकरण स्विच लेते हैं जो आपको उनके संचालन के भाग के रूप में अनुमतियाँ निर्दिष्ट करने की अनुमति देते हैं।
mkdir
उदाहरण के लिए लें :
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
-m
स्विच के साथ हम ओवरराइड कर सकते हैं umask
। touch
ताकि आप रचनात्मक प्राप्त करने के लिए आदेश इस सुविधा नहीं है। यह देखें U & L Q & A शीर्षक: क्या कमांड लाइन पर सेट की गई अनुमतियों के साथ फाइलें बनाई जा सकती हैं? सिर्फ ऐसे तरीकों के लिए।
दूसरा तरीका? बस ओवरराइड करें umask
। फ़ाइल ब्राउज़र सबसे अधिक संभावना है कि यह या तो पूरी तरह से अनदेखा कर रहा है umask
और फ़ाइल को पूरी तरह से अनदेखा कर रहा है और जो कुछ भी इसे करने के लिए कॉन्फ़िगर किया गया है उसका उपयोग करके।