Linux में अनुमतियाँ (chown, chmod, SUID, GUID, स्टिकी बिट, ACL, umask)

नमस्ते। यह RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 और EX300 पुस्तक के एक लेख का अनुवाद है।

खुद से: मुझे आशा है कि लेख न केवल शुरुआती लोगों के लिए उपयोगी होगा, बल्कि अधिक अनुभवी प्रशासकों को अपने ज्ञान को व्यवस्थित करने में भी मदद करेगा।

तो, चलो चलें

Linux में अनुमतियाँ (chown, chmod, SUID, GUID, स्टिकी बिट, ACL, umask)

Linux में फ़ाइलों तक पहुँचने के लिए अनुमतियों का उपयोग किया जाता है। ये अनुमतियाँ तीन ऑब्जेक्ट्स को सौंपी गई हैं: फ़ाइल स्वामी, समूह स्वामी, और अन्य ऑब्जेक्ट (अर्थात, बाकी सभी)। यह आलेख आपको सिखाएगा कि अनुमतियाँ कैसे लागू करें.

लेख बुनियादी अवधारणाओं के अवलोकन के साथ शुरू होता है और फिर विशेष अनुमतियों और एक्सेस कंट्रोल सूचियों (एसीएल) पर चर्चा करता है। इस आलेख के अंत में umask के माध्यम से डिफ़ॉल्ट अनुमतियाँ सेट करने के साथ-साथ विस्तारित उपयोगकर्ता विशेषताओं को प्रबंधित करना शामिल है।

फ़ाइल स्वामित्व प्रबंधन

अनुमतियों पर चर्चा करने से पहले, आपको फ़ाइल और निर्देशिका स्वामी की भूमिका के बारे में पता होना चाहिए। अनुमतियों के साथ काम करने के लिए फ़ाइलों और निर्देशिकाओं का स्वामित्व महत्वपूर्ण है। इस अनुभाग में, आप सबसे पहले सीखेंगे कि आप मालिक को कैसे देख सकते हैं। फिर आप सीखेंगे कि फ़ाइलों और निर्देशिकाओं के लिए समूह स्वामी और उपयोगकर्ता को कैसे बदला जाए।

किसी फ़ाइल या निर्देशिका का स्वामी प्रदर्शित करना

लिनक्स में, प्रत्येक फ़ाइल और प्रत्येक निर्देशिका के दो स्वामी होते हैं: एक उपयोगकर्ता और एक समूह स्वामी।

ये स्वामी तब सेट किए जाते हैं जब फ़ाइल या निर्देशिका बनाई जाती है। फ़ाइल बनाने वाला उपयोगकर्ता इस फ़ाइल का स्वामी बन जाता है, और वही उपयोगकर्ता जिस प्राथमिक समूह से संबंधित है वह भी इस फ़ाइल का स्वामी बन जाता है। यह निर्धारित करने के लिए कि एक उपयोगकर्ता के रूप में आपके पास फ़ाइल या निर्देशिका तक पहुंच अधिकार है या नहीं, शेल स्वामित्व की जांच करता है।

यह निम्नलिखित क्रम में होता है:

  1. शेल यह देखने के लिए जाँच करता है कि क्या आप उस फ़ाइल के स्वामी हैं जिसे आप एक्सेस करना चाहते हैं। यदि आप वह स्वामी हैं, तो आपको अनुमतियाँ दी जाती हैं और शेल जाँच करना बंद कर देता है।
  2. यदि आप फ़ाइल के स्वामी नहीं हैं, तो शेल यह देखने के लिए जाँच करेगा कि क्या आप उस समूह के सदस्य हैं जिसके पास फ़ाइल की अनुमतियाँ हैं। यदि आप इस समूह के सदस्य हैं, तो आप समूह के लिए निर्धारित अनुमतियों के साथ फ़ाइल तक पहुँच प्राप्त करेंगे, और शेल जाँच करना बंद कर देगा।
  3. यदि आप न तो उपयोगकर्ता हैं और न ही समूह स्वामी हैं, तो आपको अन्य उपयोगकर्ता अधिकार प्राप्त होते हैं।

वर्तमान स्वामी के असाइनमेंट देखने के लिए आप कमांड का उपयोग कर सकते हैं ls -l. यह आदेश समूह के उपयोगकर्ता और स्वामी को दिखाता है. नीचे आप /होम निर्देशिका के अंतर्गत निर्देशिकाओं के लिए स्वामी सेटिंग्स देख सकते हैं।

[root@server1 home]# ls -l
total 8
drwx------. 3  bob            bob            74     Feb   6   10:13 bob
drwx------. 3  caroline       caroline       74     Feb   6   10:13 caroline
drwx------. 3  fozia          fozia          74     Feb   6   10:13 fozia
drwx------. 3  lara           lara           74     Feb   6   10:13 lara
drwx------. 5  lisa           lisa           4096   Feb   6   10:12 lisa
drwx------. 14 user           user           4096   Feb   5   10:35 user

आदेश के साथ ls आप किसी दी गई निर्देशिका में फ़ाइलों के स्वामी को प्रदर्शित कर सकते हैं। कभी-कभी सिस्टम पर उन सभी फ़ाइलों की सूची प्राप्त करना उपयोगी हो सकता है जिनके स्वामी के रूप में कोई उपयोगकर्ता या समूह होता है। इसके लिए आप उपयोग कर सकते हैं खोज. तर्क -उपयोगकर्ता ढूंढें इस प्रयोजन के लिए उपयोग किया जा सकता है। उदाहरण के लिए, निम्न आदेश उन सभी फ़ाइलों को दिखाता है जिनके मालिक के रूप में लिंडा है:

find / -user linda

आप भी उपयोग कर सकते हैं खोज उन फ़ाइलों को खोजने के लिए जिनके स्वामी के रूप में एक विशिष्ट समूह है।

उदाहरण के लिए, निम्न आदेश किसी समूह से संबंधित सभी फ़ाइलों की खोज करता है उपयोगकर्ताओं:

find / -group users

मालिक का परिवर्तन

उचित अनुमतियाँ लागू करने के लिए, सबसे पहले विचार करने वाली चीज़ स्वामित्व है। इसके लिए एक आदेश है chown. इस कमांड का सिंटैक्स समझना आसान है:

chown кто что

उदाहरण के लिए, निम्न आदेश /home/account निर्देशिका के स्वामी को उपयोगकर्ता लिंडा में बदल देता है:

chown linda /home/account

टीम chown इसमें कई विकल्प हैं, जिनमें से एक विशेष रूप से उपयोगी है: -R. आप अनुमान लगा सकते हैं कि यह क्या करता है क्योंकि यह विकल्प कई अन्य कमांड के लिए भी उपलब्ध है। यह आपको स्वामी को पुनरावर्ती रूप से सेट करने की अनुमति देता है, जो आपको वर्तमान निर्देशिका के स्वामी और उसके नीचे की सभी चीज़ों को सेट करने की अनुमति देता है। निम्न आदेश /होम निर्देशिका के स्वामी और उसके अंतर्गत आने वाली हर चीज़ को उपयोगकर्ता लिंडा में बदल देता है:

अब मालिक इस तरह दिखते हैं:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa    lisa    62 Sep 25 21:42 lisa

किया जाए:

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

अब उपयोगकर्ता लिसा खाता निर्देशिका का स्वामी है:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa    62 Sep 25 21:42 lisa

समूह स्वामी बदलें

समूह स्वामित्व बदलने के दो तरीके हैं। आप इसका उपयोग करके ऐसा कर सकते हैं chown, लेकिन एक विशेष आदेश कहा जाता है सीएचजीआरपी, जो ये काम करता है. यदि आप कमांड का उपयोग करना चाहते हैं chown, उपयोग . या : समूह के नाम से पहले.

निम्नलिखित आदेश /home/account समूह के किसी भी स्वामी को खाता समूह में बदल देता है:

chown .account /home/account

आप उपयोग कर सकते हैं chown किसी उपयोगकर्ता और/या समूह के स्वामी को कई तरीकों से बदलना। यहां कुछ उदाहरण दिए गए हैं:

  • चाउन लिसा myfile1 उपयोगकर्ता लिसा को फ़ाइल myfile1 के स्वामी के रूप में सेट करता है।
  • चाउन लिसा.सेल्स मायफ़ाइल उपयोगकर्ता लिसा को फ़ाइल myfile के स्वामी के रूप में सेट करता है, और बिक्री समूह को उसी फ़ाइल के स्वामी के रूप में भी सेट करता है।
  • चाउन लिसा: सेल्स माईफाइल पिछली टीम के समान।
  • चाउन .सेल्स मायफ़ाइल उपयोगकर्ता के स्वामी को बदले बिना विक्रय समूह को myfile के स्वामी के रूप में सेट करता है।
  • चाउन :सेल्स मायफ़ाइल पिछली टीम के समान।

आप कमांड का उपयोग कर सकते हैं सीएचजीआरपीसमूह स्वामी को बदलने के लिए. निम्नलिखित उदाहरण पर विचार करें जहां आप इसका उपयोग कर सकते हैं सीएचजीआरपी खाता निर्देशिका के स्वामी को विक्रय समूह में सेट करें:

chgrp .sales /home/account

के मामले में के रूप में chown, आप विकल्प का उपयोग कर सकते हैं -R с सीएचजीआरपी, और समूह के स्वामी को भी पुनरावर्ती रूप से बदलें।

डिफ़ॉल्ट स्वामी की समझ

आपने देखा होगा कि जब कोई उपयोगकर्ता कोई फ़ाइल बनाता है, तो डिफ़ॉल्ट स्वामित्व लागू होता है।
जो उपयोगकर्ता कोई फ़ाइल बनाता है वह स्वचालित रूप से उस फ़ाइल का स्वामी बन जाता है, और उस उपयोगकर्ता का प्राथमिक समूह स्वचालित रूप से उस फ़ाइल का स्वामी बन जाता है। आमतौर पर यह वह समूह है जो /etc/passwd फ़ाइल में उपयोगकर्ता के प्राथमिक समूह के रूप में सूचीबद्ध होता है। हालाँकि, यदि कोई उपयोगकर्ता एकाधिक समूहों का सदस्य है, तो वे प्रभावी प्राथमिक समूह को बदल सकते हैं।

वर्तमान प्रभावी प्राथमिक समूह को दिखाने के लिए, उपयोगकर्ता कमांड का उपयोग कर सकता है समूहों:

[root@server1 ~]# groups lisa
lisa : lisa account sales

यदि वर्तमान उपयोगकर्ता लिंडा प्रभावी प्राथमिक समूह को बदलना चाहता है, तो वह कमांड का उपयोग करेगा Newgrpइसके बाद उस समूह का नाम आता है जिसे वह नए प्रभावी प्राथमिक समूह के रूप में स्थापित करना चाहता है। कमांड का उपयोग करने के बाद Newgrp प्राथमिक समूह तब तक सक्रिय रहेगा जब तक उपयोगकर्ता कमांड दर्ज नहीं करता निकास या सिस्टम से लॉग आउट नहीं होगा.

यहां बताया गया है कि उपयोगकर्ता लिंडा इस कमांड का उपयोग कैसे करती है, प्राथमिक समूह बिक्री है:

lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1

वर्तमान प्राथमिक समूह को बदलने के बाद, उपयोगकर्ता द्वारा बनाई गई सभी नई फ़ाइलों में वह समूह समूह स्वामी के रूप में होगा। मूल प्राथमिक समूह सेटिंग पर वापस जाने के लिए, उपयोग करें निकास.

आदेश का उपयोग करने में सक्षम होने के लिए Newgrp, उपयोगकर्ता को उस समूह का सदस्य होना चाहिए जिसे वह प्राथमिक के रूप में उपयोग करना चाहता है। इसके अतिरिक्त, कमांड का उपयोग करके किसी समूह के लिए समूह पासवर्ड का उपयोग किया जा सकता है Gpasswd. यदि उपयोगकर्ता कमांड का उपयोग करता है Newgrpलेकिन लक्ष्य समूह का सदस्य नहीं है, शेल समूह पासवर्ड के लिए संकेत देता है। एक बार जब आप सही समूह पासवर्ड दर्ज कर देंगे, तो एक नया प्रभावी प्राथमिक समूह सेट हो जाएगा।

मौलिक अधिकार प्रबंधन

लिनक्स अनुमति प्रणाली का आविष्कार 1970 के दशक में हुआ था। चूंकि उन वर्षों में कंप्यूटिंग की आवश्यकताएं सीमित थीं, इसलिए बुनियादी अनुमति प्रणाली काफी सीमित थी। यह अनुमति प्रणाली तीन अनुमतियों का उपयोग करती है जिन्हें फ़ाइलों और निर्देशिकाओं पर लागू किया जा सकता है। इस अनुभाग में, आप सीखेंगे कि इन अनुमतियों का उपयोग कैसे करें और बदलें।

पढ़ने, लिखने और निष्पादित करने की अनुमतियों को समझना

तीन मुख्य अनुमतियाँ आपको फ़ाइलों को पढ़ने, लिखने और निष्पादित करने की अनुमति देती हैं। फ़ाइलों या निर्देशिकाओं पर लागू होने पर इन अनुमतियों का प्रभाव भिन्न होता है। किसी फ़ाइल पर लागू होने पर, पढ़ने की अनुमति आपको पढ़ने के लिए फ़ाइल खोलने का अधिकार देती है। इसलिए, आप इसकी सामग्री पढ़ सकते हैं, लेकिन इसका मतलब यह है कि आपका कंप्यूटर इसके साथ कुछ करने के लिए फ़ाइल खोल सकता है।

एक प्रोग्राम फ़ाइल जिसके लिए किसी लाइब्रेरी तक पहुंच की आवश्यकता होती है, उदाहरण के लिए, उस लाइब्रेरी तक पढ़ने की पहुंच होनी चाहिए। इसका मतलब यह है कि फ़ाइलों के साथ काम करने के लिए पढ़ने की अनुमति सबसे बुनियादी अनुमति है।

जब किसी निर्देशिका पर लागू किया जाता है, तो रीडिंग आपको उस निर्देशिका की सामग्री को प्रदर्शित करने की अनुमति देती है। आपको पता होना चाहिए कि यह अनुमति आपको निर्देशिका में फ़ाइलें पढ़ने की अनुमति नहीं देती है। लिनक्स अनुमतियाँ प्रणाली इनहेरिटेंस को नहीं जानती है, और किसी फ़ाइल को पढ़ने का एकमात्र तरीका उस फ़ाइल पर पढ़ने की अनुमतियों का उपयोग करना है।

जैसा कि आप शायद अनुमान लगा सकते हैं, लिखने की अनुमति, जब किसी फ़ाइल पर लागू होती है, तो फ़ाइल पर लिखने की अनुमति देती है। दूसरे शब्दों में, यह आपको मौजूदा फ़ाइलों की सामग्री को बदलने की अनुमति देता है। हालाँकि, यह आपको नई फ़ाइलें बनाने या हटाने या फ़ाइल अनुमतियाँ बदलने की अनुमति नहीं देता है। ऐसा करने के लिए, आपको उस निर्देशिका को लिखने की अनुमति देनी होगी जहां आप फ़ाइल बनाना चाहते हैं। निर्देशिकाओं में, यह अनुमति आपको नई उपनिर्देशिकाएँ बनाने और हटाने की भी अनुमति देती है।

फ़ाइल को निष्पादित करने के लिए आपको निष्पादन अनुमति की आवश्यकता होती है। इसे कभी भी डिफ़ॉल्ट रूप से इंस्टॉल नहीं किया जाएगा, जो लिनक्स को वायरस से लगभग पूरी तरह से प्रतिरक्षित बनाता है। केवल निर्देशिका तक लिखने की पहुंच वाला कोई व्यक्ति ही निष्पादन अनुमति लागू कर सकता है।

निम्नलिखित बुनियादी अनुमतियों के उपयोग का सारांश देता है:

Linux में अनुमतियाँ (chown, chmod, SUID, GUID, स्टिकी बिट, ACL, umask)

चामोद का उपयोग करना

अधिकारों को प्रबंधित करने के लिए, कमांड का उपयोग करें परिवर्तन विद्या. का उपयोग करते हुए परिवर्तन विद्या आप उपयोगकर्ता, समूह और अन्य के लिए अनुमतियाँ सेट कर सकते हैं। आप इस कमांड का उपयोग दो मोड में कर सकते हैं: रिलेटिव मोड और एब्सोल्यूट मोड। निरपेक्ष मोड में, बुनियादी अनुमतियाँ सेट करने के लिए तीन अंकों का उपयोग किया जाता है।

Linux में अनुमतियाँ (chown, chmod, SUID, GUID, स्टिकी बिट, ACL, umask)

अनुमतियाँ सेट करते समय, आपके लिए आवश्यक मान की गणना करें। यदि आप उपयोगकर्ता के लिए पढ़ना, लिखना और निष्पादित करना चाहते हैं, समूह के लिए पढ़ना और निष्पादित करना चाहते हैं, और /somefile में दूसरों के लिए पढ़ना और निष्पादित करना चाहते हैं तो आप निम्न कमांड का उपयोग करें परिवर्तन विद्या:

chmod 755 /somefile

जब आप उपयोग करते हैं परिवर्तन विद्या इस तरह, सभी मौजूदा अनुमतियाँ आपके द्वारा निर्धारित अनुमतियों से बदल दी जाती हैं।

यदि आप वर्तमान अनुमतियों के सापेक्ष अनुमतियाँ बदलना चाहते हैं, तो आप इसका उपयोग कर सकते हैं परिवर्तन विद्या सापेक्ष मोड में. का उपयोग करते हुए परिवर्तन विद्या सापेक्ष मोड में आप यह बताने के लिए तीन संकेतकों के साथ काम करते हैं कि आप क्या करना चाहते हैं:

  1. सबसे पहले आप निर्दिष्ट करें कि आप किसके लिए अनुमतियाँ बदलना चाहते हैं। ऐसा करने के लिए आप उपयोगकर्ता के बीच चयन कर सकते हैं (u), समूह (g) और दूसरे (o).
  2. फिर आप वर्तमान मोड से अनुमतियाँ जोड़ने या हटाने के लिए कथन का उपयोग करते हैं, या उन्हें बिल्कुल सेट करते हैं।
  3. अंत में आप प्रयोग करें r, w и xयह निर्दिष्ट करने के लिए कि आप कौन सी अनुमतियाँ सेट करना चाहते हैं।

सापेक्ष मोड में अनुमतियाँ बदलते समय, आप सभी ऑब्जेक्ट के लिए अनुमति जोड़ने या हटाने के लिए "टू" भाग को छोड़ सकते हैं। उदाहरण के लिए, यह कमांड सभी उपयोगकर्ताओं के लिए निष्पादन अनुमति जोड़ता है:

chmod +x somefile

सापेक्ष मोड में काम करते समय, आप अधिक जटिल कमांड का भी उपयोग कर सकते हैं। उदाहरण के लिए, यह कमांड किसी समूह में लिखने की अनुमति जोड़ता है और दूसरों के लिए पढ़ने की अनुमति हटा देता है:

chmod g+w,o-r somefile

जब प्रयोग चामोद -आर ओ+आरएक्स /डेटा आप सभी निर्देशिकाओं के लिए, साथ ही /डेटा निर्देशिका में फ़ाइलों के लिए निष्पादन अनुमति सेट करते हैं। केवल निर्देशिकाओं पर निष्पादन अनुमति सेट करने के लिए, फ़ाइलों पर नहीं, उपयोग करें चामोद -आर ओ+ आरएक्स /डेटा.

अपरकेस यह एक्स को निष्पादन अनुमतियों से निपटने का एक बेहतर तरीका बनाता है; इससे उन फ़ाइलों पर यह अनुमति सेट करने से बचा जा सकेगा जहां इसकी आवश्यकता नहीं है।

विस्तारित अधिकार

जिन बुनियादी अनुमतियों के बारे में आपने अभी पढ़ा है, उनके अलावा लिनक्स में उन्नत अनुमतियों का एक सेट भी है। ये आपके द्वारा डिफ़ॉल्ट रूप से सेट की गई अनुमतियाँ नहीं हैं, लेकिन कभी-कभी ये उपयोगी अतिरिक्त प्रदान करती हैं। इस अनुभाग में आप सीखेंगे कि वे क्या हैं और उन्हें कैसे स्थापित करें।

SUID, GUID और स्टिकी बिट विस्तारित अधिकारों को समझना

तीन उन्नत संकल्प हैं. पहला सेट यूजर आईडी (SUID) अनुमति है। कुछ विशेष मामलों में, आप इस अनुमति को निष्पादन योग्य फ़ाइलों पर लागू करना चाह सकते हैं। डिफ़ॉल्ट रूप से, निष्पादन योग्य चलाने वाला उपयोगकर्ता उस फ़ाइल को अपनी अनुमति से चलाता है।

नियमित उपयोगकर्ताओं के लिए, इसका आमतौर पर मतलब है कि प्रोग्राम का उपयोग सीमित है। हालाँकि, कुछ मामलों में, उपयोगकर्ता को केवल एक विशिष्ट कार्य करने के लिए विशेष अनुमति की आवश्यकता होती है।

उदाहरण के लिए, ऐसी स्थिति पर विचार करें जहां उपयोगकर्ता को अपना पासवर्ड बदलने की आवश्यकता हो। ऐसा करने के लिए, उपयोगकर्ता को अपना नया पासवर्ड /etc/shadow फ़ाइल में लिखना होगा। हालाँकि, यह फ़ाइल गैर-रूट उपयोगकर्ताओं द्वारा लिखने योग्य नहीं है:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

SUID अनुमति इस समस्या का समाधान प्रस्तुत करती है। /usr/bin/passwd उपयोगिता में, यह अनुमति डिफ़ॉल्ट रूप से लागू होती है। इसका मतलब यह है कि जब पासवर्ड बदला जाता है, तो उपयोगकर्ता अस्थायी रूप से रूट विशेषाधिकार प्राप्त करता है, जो उन्हें /etc/shadow फ़ाइल में लिखने की अनुमति देता है। आप SUID अनुमति देख सकते हैं ls -l जैसा s ऐसी स्थिति में जहां आप आमतौर पर देखने की उम्मीद करेंगे x कस्टम अनुमतियों के लिए:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

SUID अनुमति उपयोगी लग सकती है (और कुछ मामलों में यह है), लेकिन यह संभावित रूप से खतरनाक भी है। यदि गलत तरीके से उपयोग किया जाता है, तो आप गलती से रूट अनुमतियाँ दे सकते हैं। इसलिए, मैं इसे अत्यधिक सावधानी के साथ ही उपयोग करने की सलाह देता हूं।

अधिकांश प्रशासकों को इसका उपयोग करने की कभी आवश्यकता नहीं पड़ेगी; आप इसे केवल कुछ फ़ाइलों में देखेंगे जहां ऑपरेटिंग सिस्टम को इसे डिफ़ॉल्ट रूप से सेट करना चाहिए।

दूसरी विशेष अनुमति ग्रुप आईडी (एसजीआईडी) है। इस अनुमति के दो प्रभाव हैं. जब इसे एक निष्पादन योग्य फ़ाइल पर लागू किया जाता है, तो यह फ़ाइल को निष्पादित करने वाले उपयोगकर्ता को उस फ़ाइल के समूह स्वामी की अनुमतियाँ देता है। तो SGID कमोबेश SUID जैसा ही काम कर सकता है। हालाँकि, इस उद्देश्य के लिए SGID का उपयोग शायद ही किया जाता है।

SUID अनुमति की तरह, SGID को कुछ सिस्टम फ़ाइलों पर डिफ़ॉल्ट सेटिंग के रूप में लागू किया जाता है।

किसी निर्देशिका पर लागू होने पर, SGID उपयोगी हो सकता है क्योंकि आप इसका उपयोग उस निर्देशिका में बनाई गई फ़ाइलों और उपनिर्देशिकाओं के लिए डिफ़ॉल्ट समूह स्वामी को सेट करने के लिए कर सकते हैं। डिफ़ॉल्ट रूप से, जब कोई उपयोगकर्ता कोई फ़ाइल बनाता है, तो उनका प्रभावी प्राथमिक समूह उस फ़ाइल के लिए समूह स्वामी के रूप में सेट होता है।

यह हमेशा बहुत उपयोगी नहीं होता है, खासकर जब से Red Hat/CentOS उपयोगकर्ताओं का प्राथमिक समूह उपयोगकर्ता के समान नाम वाले समूह में सेट होता है, और जिसका उपयोगकर्ता एकमात्र सदस्य होता है। इस प्रकार, डिफ़ॉल्ट रूप से, उपयोगकर्ता द्वारा बनाई गई फ़ाइलें समूह साझा की जाएंगी।

ऐसी स्थिति की कल्पना करें जहां उपयोगकर्ता लिंडा और लोरी लेखांकन में काम करते हैं और एक समूह के सदस्य हैं खाते. डिफ़ॉल्ट रूप से, ये उपयोगकर्ता एक निजी समूह के सदस्य हैं जिसके वे एकमात्र सदस्य हैं। हालाँकि, दोनों उपयोगकर्ता खाता समूह के सदस्य हैं, लेकिन द्वितीयक समूह पैरामीटर के रूप में भी।

डिफ़ॉल्ट स्थिति यह है कि जब इनमें से कोई भी उपयोगकर्ता फ़ाइल बनाता है, तो प्राथमिक समूह स्वामी बन जाता है। इसलिए, डिफ़ॉल्ट रूप से, लिंडा लोरी द्वारा बनाई गई फ़ाइलों तक नहीं पहुंच सकती है, और इसके विपरीत। हालाँकि, यदि आप एक साझा समूह निर्देशिका (मान लीजिए / समूह / खाता) बनाते हैं और सुनिश्चित करते हैं कि उस निर्देशिका पर SGID अनुमति लागू है और समूह खाता उस निर्देशिका के लिए समूह स्वामी पर सेट है, तो उस निर्देशिका में बनाई गई सभी फ़ाइलें और उसके सभी उपनिर्देशिकाएँ, समूह खाते को डिफ़ॉल्ट समूह स्वामी के रूप में भी प्राप्त करती हैं।

इस कारण से, सार्वजनिक समूह निर्देशिकाओं पर स्थापित करने के लिए SGID अनुमति एक बहुत उपयोगी अनुमति है।

SGID अनुमति आउटपुट में दिखाई गई है ls -l जैसा s उस स्थिति में जहां आपको सामान्यतः समूह निष्पादन अनुमति मिलेगी:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

विशेष अनुमतियों में से तीसरी स्टिकी बिट है। यह अनुमति ऐसे वातावरण में फ़ाइलों को आकस्मिक विलोपन से बचाने के लिए उपयोगी है जहां कई उपयोगकर्ताओं के पास एक ही निर्देशिका तक लिखने की पहुंच होती है। यदि स्टिकी बिट का उपयोग किया जाता है, तो उपयोगकर्ता किसी फ़ाइल को केवल तभी हटा सकता है यदि वे उस फ़ाइल या निर्देशिका के उपयोगकर्ता स्वामी हैं जिसमें फ़ाइल है। इस कारण से, यह /tmp निर्देशिका के लिए डिफ़ॉल्ट अनुमति है और सार्वजनिक समूह निर्देशिकाओं के लिए भी उपयोगी हो सकती है।

स्टिकी बिट के बिना, यदि कोई उपयोगकर्ता किसी निर्देशिका में फ़ाइलें बना सकता है, तो वह उस निर्देशिका से फ़ाइलें हटा भी सकता है। सार्वजनिक समूह परिवेश में यह कष्टप्रद हो सकता है। उपयोगकर्ताओं लिंडा और लोरी की कल्पना करें, जिनके पास /डेटा/खाता निर्देशिका में लिखने की अनुमति है और खाता समूह में सदस्यता के माध्यम से ये अनुमतियां प्राप्त होती हैं। इसलिए, लिंडा लोरी द्वारा बनाई गई फ़ाइलों को हटा सकती है, और इसके विपरीत।

जब आप स्टिकी बिट लागू करते हैं, तो उपयोगकर्ता केवल तभी फ़ाइलें हटा सकता है जब निम्न में से कोई एक स्थिति सत्य हो:

  • उपयोगकर्ता फ़ाइल का स्वामी है;
  • उपयोगकर्ता उस निर्देशिका का स्वामी है जिसमें फ़ाइल स्थित है।

जब प्रयोग ls -l, आप चिपचिपा सा देख सकते हैं t उस स्थिति में जहां आप आमतौर पर दूसरों के लिए निष्पादन अनुमति देखते हैं:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

विस्तारित अधिकार लागू करना

SUID, SGID और स्टिकी बिट लगाने के लिए भी आप इसका उपयोग कर सकते हैं परिवर्तन विद्या. SUID का संख्यात्मक मान 4 है, SGID का संख्यात्मक मान 2 है, और स्टिकी बिट का संख्यात्मक मान 1 है।

यदि आप इन अनुमतियों को लागू करना चाहते हैं तो आपको इसमें चार वर्ण का तर्क जोड़ना होगा परिवर्तन विद्या, जिसका पहला अंक विशेष अनुमतियों को दर्शाता है। उदाहरण के लिए, निम्न पंक्ति निर्देशिका में SGID अनुमति जोड़ेगी और उपयोगकर्ता के लिए rwx तथा समूह और अन्य के लिए rx सेट करेगी:

chmod 2755 /somedir

यदि आपको काम करने से पहले सेट की गई वर्तमान अनुमतियों को देखने की आवश्यकता है तो यह काफी अव्यवहारिक है परिवर्तन विद्या निरपेक्ष मोड में. (यदि आप ऐसा नहीं करते हैं तो आप अनुमतियों को ओवरराइट करने का जोखिम उठाते हैं।) इसलिए यदि आपको किसी विशेष अनुमति को लागू करने की आवश्यकता है तो मैं सापेक्ष मोड में काम करने की सलाह देता हूं:

  1. SUID उपयोग के लिए चामोद यू+एस.
  2. एसजीआईडी ​​उपयोग के लिए चामोद जी+एस.
  3. चिपचिपे बिट उपयोग के लिए चामोद +टीइसके बाद उस फ़ाइल या निर्देशिका का नाम आता है जिसके लिए आप अनुमतियाँ सेट करना चाहते हैं।

तालिका विशेष अनुमतियों को प्रबंधित करने के बारे में आपको जो कुछ जानने की आवश्यकता है उसका सारांश प्रस्तुत करती है।

Linux में अनुमतियाँ (chown, chmod, SUID, GUID, स्टिकी बिट, ACL, umask)

विशेष अधिकारों के साथ काम करने का एक उदाहरण

इस उदाहरण में, आप समूह सदस्यों के लिए साझा समूह निर्देशिका में फ़ाइलें साझा करना आसान बनाने के लिए विशेष अनुमतियों का उपयोग करते हैं। आप सेट समूह आईडी की आईडी बिट के साथ-साथ स्टिकी बिट भी निर्दिष्ट करते हैं, और देखते हैं कि एक बार सेट हो जाने के बाद, समूह के सदस्यों के लिए एक साथ काम करना आसान बनाने के लिए सुविधाएँ जोड़ दी जाती हैं।

  1. एक टर्मिनल खोलें जहां आप उपयोगकर्ता लिंडा हैं। आप कमांड से एक यूजर बना सकते हैं लिंडा, पासवर्ड जोड़ें पासवार्ड लिंडा.
  2. रूट में एक /डेटा निर्देशिका और कमांड के साथ एक /डेटा/सेल्स उपनिर्देशिका बनाएं mkdir -p /डेटा/बिक्री. निष्पादित करना सीडी/डेटा/बिक्रीविक्रय निर्देशिका पर जाने के लिए. निष्पादित करना लिंडा1 को स्पर्श करें и लिंडा2 को स्पर्श करेंलिंडा के स्वामित्व वाली दो खाली फ़ाइलें बनाने के लिए।
  3. निष्पादित करना सु-लिसा वर्तमान उपयोगकर्ता को उपयोगकर्ता लिसा में बदलने के लिए, जो बिक्री समूह का सदस्य भी है।
  4. निष्पादित करना सीडी/डेटा/बिक्री और इस निर्देशिका से चलाएँ ls -l. आप दो फ़ाइलें देखेंगे जो उपयोगकर्ता लिंडा द्वारा बनाई गई थीं और लिंडा समूह से संबंधित हैं। निष्पादित करना आरएम-एफ लिंडा*. इससे दोनों फ़ाइलें हटा दी जाएंगी.
  5. निष्पादित करना लिसा1 को स्पर्श करें и लिसा2 को स्पर्श करेंउपयोगकर्ता लिसा के स्वामित्व वाली दो फ़ाइलें बनाने के लिए।
  6. निष्पादित करना सु - अपने विशेषाधिकारों को जड़ तक बढ़ाने के लिए।
  7. निष्पादित करना चामोद जी+एस,ओ+टी /डेटा/बिक्रीसाझा समूह निर्देशिका में समूह पहचानकर्ता (GUID) बिट के साथ-साथ चिपचिपा बिट सेट करने के लिए।
  8. निष्पादित करना सु-लिंडा. तो करें लिंडा3 को स्पर्श करें и लिंडा4 को स्पर्श करें. अब आपको देखना चाहिए कि आपके द्वारा बनाई गई दो फ़ाइलें बिक्री समूह के स्वामित्व में हैं, जो / डेटा / बिक्री निर्देशिका का समूह स्वामी है।
  9. निष्पादित करना आरएम-आरएफ लिसा*. स्टिकी बिट उपयोगकर्ता लिंडा के रूप में इन फ़ाइलों को हटाने से रोकता है क्योंकि आप इन फ़ाइलों के स्वामी नहीं हैं। ध्यान दें कि यदि उपयोगकर्ता लिंडा /डेटा/बिक्री निर्देशिका का स्वामी है, तो वह इन फ़ाइलों को किसी भी तरह हटा सकता है!

Linux में ACL प्रबंधन (setfacl, getfacl)।

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

अभिगम नियंत्रण सूचियाँ यह कार्यक्षमता प्रदान करती हैं। वे प्रशासकों को जटिल तरीके से डिफ़ॉल्ट अनुमतियाँ सेट करने की भी अनुमति देते हैं जहाँ निर्देशिकाओं के बीच सेट की गई अनुमतियाँ भिन्न हो सकती हैं।

एसीएल को समझना

हालाँकि ACL सबसिस्टम आपके सर्वर में बढ़िया कार्यक्षमता जोड़ता है, लेकिन इसमें एक खामी है: सभी उपयोगिताएँ इसका समर्थन नहीं करती हैं। इसलिए, फ़ाइलों की प्रतिलिपि बनाते या स्थानांतरित करते समय आप ACL सेटिंग्स खो सकते हैं, और बैकअप सॉफ़्टवेयर ACL सेटिंग्स का बैकअप नहीं ले सकता है।

टार उपयोगिता ACLs का समर्थन नहीं करती. यह सुनिश्चित करने के लिए कि बैकअप बनाते समय ACL सेटिंग्स खो न जाएं, इसका उपयोग करें सितारा टार के बजाय. सितारा टार के समान मापदंडों के साथ काम करता है; यह बस ACL सेटिंग्स के लिए समर्थन जोड़ता है।

आप इसका उपयोग करके ACL का बैकअप भी ले सकते हैं भगदड़, जिसे setfacl कमांड का उपयोग करके पुनर्स्थापित किया जा सकता है। बैकअप बनाने के लिए, उपयोग करें getfacl -R /directory > file.acls. बैकअप फ़ाइल से सेटिंग्स पुनर्स्थापित करने के लिए, उपयोग करें setfacl --restore=file.acl.

कुछ उपकरणों के लिए समर्थन की कमी कोई समस्या नहीं होनी चाहिए। एसीएल को अक्सर व्यक्तिगत फ़ाइलों के बजाय संरचनात्मक उपाय के रूप में निर्देशिकाओं पर लागू किया जाता है।
इसलिए, उनमें से बहुत सारे नहीं होंगे, लेकिन केवल कुछ ही फ़ाइल सिस्टम में स्मार्ट स्थानों पर लागू होंगे। इसलिए, आपके द्वारा काम किए गए मूल एसीएल को पुनर्स्थापित करना अपेक्षाकृत आसान है, भले ही आपका बैकअप सॉफ़्टवेयर उनका समर्थन नहीं करता हो।

एसीएल के लिए फाइल सिस्टम तैयार करना

इससे पहले कि आप एसीएल के साथ काम करना शुरू करें, आपको एसीएल का समर्थन करने के लिए अपना फ़ाइल सिस्टम तैयार करने की आवश्यकता हो सकती है। क्योंकि फ़ाइल सिस्टम मेटाडेटा को विस्तारित करने की आवश्यकता है, फ़ाइल सिस्टम पर ACL के लिए हमेशा डिफ़ॉल्ट समर्थन नहीं होता है। यदि फ़ाइल सिस्टम के लिए ACL को कॉन्फ़िगर करते समय आपको "ऑपरेशन समर्थित नहीं है" संदेश प्राप्त होता है, तो आपका फ़ाइल सिस्टम ACL का समर्थन नहीं कर सकता है।

इसे ठीक करने के लिए आपको विकल्प जोड़ना होगा एसीएल माउंट /etc/fstab फ़ाइल में ताकि फ़ाइल सिस्टम डिफ़ॉल्ट रूप से ACL समर्थन के साथ माउंट हो।

setfacl और getfacl का उपयोग करके ACL सेटिंग्स बदलना और देखना

ACL सेट करने के लिए आपको कमांड की आवश्यकता है झगड़ा. वर्तमान ACL सेटिंग्स देखने के लिए आपको इसकी आवश्यकता है भगदड़. टीम ls -l कोई मौजूदा एसीएल नहीं दिखाता; यह केवल अनुमति सूची के बाद + दिखाता है, जो इंगित करता है कि एसीएल फ़ाइल पर भी लागू होता है।

एसीएल को कॉन्फ़िगर करने से पहले, वर्तमान एसीएल सेटिंग्स का उपयोग करके दिखाना हमेशा एक अच्छा विचार है भगदड़. नीचे दिए गए उदाहरण में आप वर्तमान अनुमतियाँ देख सकते हैं जैसा कि दिखाया गया है ls -l, और जैसा कि साथ दिखाया गया है भगदड़. यदि आप ध्यान से देखेंगे तो पाएंगे कि दिखाई गई जानकारी बिल्कुल वैसी ही है।

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

आदेश निष्पादित करने के परिणामस्वरूप भगदड़ नीचे आप देख सकते हैं कि अनुमतियाँ तीन अलग-अलग वस्तुओं के लिए दिखाई गई हैं: उपयोगकर्ता, समूह और अन्य। अब बिक्री समूह को पढ़ने और निष्पादित करने की अनुमति देने के लिए एक ACL जोड़ें। इसके लिए आदेश है सेटफैक्ल -एमजी: बिक्री: आरएक्स / डीआईआर. इस टीम पर -m इंगित करता है कि वर्तमान ACL सेटिंग्स को बदलने की आवश्यकता है। इसके बाद जी: बिक्री: आरएक्स रीड सेट करने और ACL निष्पादित करने के लिए कमांड बताता है (rx) समूह के लिए (g) बिक्री। नीचे आप देख सकते हैं कि कमांड कैसा दिखता है, साथ ही वर्तमान ACL सेटिंग्स को बदलने के बाद getfacl कमांड का आउटपुट भी देख सकते हैं।

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

अब जब आप समझ गए हैं कि समूह एसीएल कैसे सेट करें, तो उपयोगकर्ताओं और अन्य उपयोगकर्ताओं के लिए एसीएल को समझना आसान हो गया है। उदाहरण के लिए, आदेश setfacl -mu:linda:rwx /data उपयोगकर्ता लिंडा को /डेटा निर्देशिका में उसे स्वामी बनाए बिना या वर्तमान स्वामी के असाइनमेंट को बदले बिना अनुमतियाँ देता है।

टीम झगड़ा इसमें कई विशेषताएं और विकल्प हैं। एक विकल्प विशेष रूप से महत्वपूर्ण है, पैरामीटर -R. यदि उपयोग किया जाता है, तो विकल्प उन सभी फ़ाइलों और उपनिर्देशिकाओं के लिए ACL सेटिंग बनाता है जो वर्तमान में उस निर्देशिका में मौजूद हैं जहां आपने ACL सेट किया है। मौजूदा निर्देशिकाओं के लिए एसीएल बदलते समय हमेशा इस विकल्प का उपयोग करने की अनुशंसा की जाती है।

डिफ़ॉल्ट एसीएल के साथ कार्य करना

एसीएल का उपयोग करने का एक लाभ यह है कि आप एक निर्देशिका में एकाधिक उपयोगकर्ताओं या समूहों को अनुमतियाँ प्रदान कर सकते हैं। एक अन्य लाभ यह है कि आप डिफ़ॉल्ट ACL के साथ काम करते हुए इनहेरिटेंस को सक्षम कर सकते हैं।

एक डिफ़ॉल्ट ACL सेट करके, आप उन अनुमतियों को निर्धारित करेंगे जो निर्देशिका में बनाए गए सभी नए आइटमों पर सेट की जाएंगी। ध्यान रखें कि डिफ़ॉल्ट ACL मौजूदा फ़ाइलों और उपनिर्देशिकाओं की अनुमतियों को नहीं बदलता है। उन्हें बदलने के लिए, आपको एक नियमित ACL भी जोड़ना होगा!

ये जानना जरूरी है. यदि आप एक ही निर्देशिका तक पहुँचने के लिए एकाधिक उपयोगकर्ताओं या समूहों को कॉन्फ़िगर करने के लिए ACL का उपयोग करना चाहते हैं, तो आपको ACL को दो बार सेट करना होगा। पहला उपयोग सेटफैक्ल -आर -एमवर्तमान फ़ाइलों के लिए ACL बदलने के लिए। फिर प्रयोग करें सेटफैक्ल -एमडी:सभी नए तत्वों का भी ध्यान रखना जो बनाए जाएंगे।

डिफ़ॉल्ट ACL सेट करने के लिए आपको बस विकल्प जोड़ना होगा d विकल्प के बाद -m (आदेश मायने रखता है!) तो उपयोग करें सेटफैक्ल -एमडी:जी:सेल्स:आरएक्स /डेटायदि आप चाहते हैं कि समूह बिक्री /डेटा निर्देशिका में बनाई गई हर चीज़ को पढ़े और निष्पादित करे।

डिफ़ॉल्ट एसीएल का उपयोग करते समय, दूसरों के लिए एसीएल सेट करना भी उपयोगी हो सकता है। आमतौर पर इसका कोई खास मतलब नहीं है क्योंकि आप इसका उपयोग करने वाले अन्य लोगों के लिए भी अनुमतियाँ बदल सकते हैं परिवर्तन विद्या. हालाँकि, आप क्या नहीं कर सकते परिवर्तन विद्या, उन अधिकारों को निर्दिष्ट करना है जो कभी भी बनाई गई प्रत्येक नई फ़ाइल के लिए अन्य उपयोगकर्ताओं को दिए जाने चाहिए। उदाहरण के लिए, यदि आप दूसरों को /डेटा में बनाई गई किसी भी चीज़ पर कोई अनुमति प्राप्त करने से रोकना चाहते हैं, तो इसका उपयोग करें setfacl -md:o::- /data.

ACL और नियमित अनुमतियाँ हमेशा अच्छी तरह से एकीकृत नहीं होती हैं। यदि आप किसी निर्देशिका में आइटम जोड़ने के बाद उस निर्देशिका में डिफ़ॉल्ट ACL लागू करते हैं और फिर सामान्य अनुमतियाँ बदलने का प्रयास करते हैं तो समस्याएँ उत्पन्न हो सकती हैं। नियमित अनुमतियों पर लागू होने वाले परिवर्तन ACL अवलोकन में अच्छी तरह से प्रतिबिंबित नहीं होंगे। समस्याओं से बचने के लिए, पहले सामान्य अनुमतियाँ सेट करें, फिर डिफ़ॉल्ट ACL सेट करें (और उसके बाद, उन्हें दोबारा न बदलने का प्रयास करें)।

एसीएल का उपयोग करके विस्तारित अधिकारों के प्रबंधन का उदाहरण

इस उदाहरण में, आप पहले बनाई गई /डेटा/खाता और /डेटा/बिक्री निर्देशिकाओं के साथ काम करना जारी रखेंगे। पिछले उदाहरणों में, आपने सुनिश्चित किया था कि बिक्री समूह के पास /डेटा/बिक्री की अनुमति थी और खाता समूह के पास /डेटा/खाते की अनुमति थी।

सबसे पहले, सुनिश्चित करें कि खाता समूह के पास /डेटा/बिक्री निर्देशिका पर पढ़ने की अनुमति है और बिक्री समूह के पास /डेटा/खाता निर्देशिका पर पढ़ने की अनुमति है।

फिर आप यह सुनिश्चित करने के लिए डिफ़ॉल्ट ACL सेट करते हैं कि सभी नई फ़ाइलों में सभी नए आइटमों पर अनुमतियाँ सही ढंग से सेट हैं।

  1. एक टर्मिनल खोलें.
  2. निष्पादित करना सेटफैक्ल -एमजी:खाता:आरएक्स /डेटा/बिक्री и setfacl -mg: बिक्री: rx / डेटा / खाता.
  3. निष्पादित करना भगदड़यह सुनिश्चित करने के लिए कि अनुमतियाँ आपके इच्छित तरीके से सेट की गई थीं।
  4. निष्पादित करना सेटफैक्ल -एमडी:जी:खाता:आरडब्ल्यूएक्स,जी:बिक्री:आरएक्स /डेटा/बिक्रीविक्रय निर्देशिका के लिए डिफ़ॉल्ट ACL सेट करने के लिए।
  5. /डेटा/खाता निर्देशिका का उपयोग करके एक डिफ़ॉल्ट ACL जोड़ें सेटफैक्ल -एमडी:जी:बिक्री:आरडब्ल्यूएक्स,जी:खाता:आरएक्स /डेटा/खाता.
  6. /डेटा/सेल्स में एक नई फ़ाइल जोड़कर सत्यापित करें कि आपकी ACL सेटिंग्स प्रभावी हैं। निष्पादित करना /डेटा/बिक्री/नईफ़ाइल स्पर्श करें और निष्पादित करें getfacl /data/sales/newfile वर्तमान अनुमतियों की जाँच करने के लिए।

umask का उपयोग करके डिफ़ॉल्ट अनुमतियाँ सेट करना

ऊपर आपने सीखा कि डिफ़ॉल्ट एसीएल के साथ कैसे काम किया जाए। यदि आप ACL का उपयोग नहीं करते हैं, तो एक शेल विकल्प है जो आपको प्राप्त होने वाली डिफ़ॉल्ट अनुमतियाँ निर्धारित करता है: umask (रिवर्स मास्क)। इस अनुभाग में, आप सीखेंगे कि डिफ़ॉल्ट अनुमतियों को कैसे बदला जाए umask.

आपने देखा होगा कि जब आप कोई नई फ़ाइल बनाते हैं, तो कुछ डिफ़ॉल्ट अनुमतियाँ सेट होती हैं। ये अनुमतियाँ सेटिंग द्वारा निर्धारित की जाती हैं umask. यह शेल सेटिंग लॉगऑन के सभी उपयोगकर्ताओं पर लागू होती है। पैरामीटर में umask एक संख्यात्मक मान का उपयोग किया जाता है जिसे फ़ाइल के लिए स्वचालित रूप से सेट की जा सकने वाली अधिकतम अनुमतियों से घटाया जाता है; फ़ाइलों के लिए अधिकतम सेटिंग 666 है, और निर्देशिकाओं के लिए 777 है।

हालाँकि, इस नियम पर कुछ अपवाद लागू होते हैं। आप सेटिंग्स का संपूर्ण अवलोकन पा सकते हैं umask नीचे दी गई तालिका में.

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

सभी संख्यात्मक मानों का संपूर्ण अवलोकन umask और उनके परिणाम नीचे दी गई तालिका में हैं।

Linux में अनुमतियाँ (chown, chmod, SUID, GUID, स्टिकी बिट, ACL, umask)

यह देखने का एक सरल तरीका है कि उमास्क सेटिंग कैसे काम करती है: 666 पर सेट डिफ़ॉल्ट फ़ाइल अनुमतियों से शुरू करें और प्रभावी अनुमतियाँ प्राप्त करने के लिए उमास्क को घटाएँ। निर्देशिका और उसकी डिफ़ॉल्ट अनुमतियों 777 के लिए भी ऐसा ही करें।

उमास्क सेटिंग को बदलने के दो तरीके हैं: सभी उपयोगकर्ताओं के लिए और व्यक्तिगत उपयोगकर्ताओं के लिए। यदि आप सभी उपयोगकर्ताओं के लिए umask सेट करना चाहते हैं, तो आपको यह सुनिश्चित करना होगा कि शेल पर्यावरण फ़ाइलें चलाते समय umask सेटिंग का सम्मान किया जाता है, जैसा कि /etc/profile में निर्दिष्ट है। सही तरीका यह है कि /etc/profile.d निर्देशिका में umask.sh नामक एक शेल स्क्रिप्ट बनाएं और उस umask को निर्दिष्ट करें जिसे आप उस शेल स्क्रिप्ट में उपयोग करना चाहते हैं। यदि इस फ़ाइल में umask बदल दिया जाता है, तो यह सर्वर में लॉग इन करने के बाद सभी उपयोगकर्ताओं पर लागू होता है।

/etc/profile और संबंधित फ़ाइलों के माध्यम से umask सेट करने का एक विकल्प, जहां यह लॉग इन करने वाले सभी उपयोगकर्ताओं पर लागू होता है, .profile नामक फ़ाइल में umask सेटिंग्स को बदलना है, जो प्रत्येक उपयोगकर्ता की होम निर्देशिका में बनाई गई है।

इस फ़ाइल में लागू सेटिंग्स केवल व्यक्तिगत उपयोगकर्ता पर लागू होती हैं; इसलिए, यदि आपको अधिक विवरण की आवश्यकता है तो यह एक अच्छी विधि है। मुझे व्यक्तिगत रूप से रूट उपयोगकर्ता के डिफ़ॉल्ट उमास्क को 027 में बदलने की यह सुविधा पसंद है, जबकि सामान्य उपयोगकर्ता 022 के डिफ़ॉल्ट उमास्क के साथ काम करते हैं।

विस्तारित उपयोगकर्ता विशेषताओं के साथ कार्य करना

यह लिनक्स अनुमतियों पर अंतिम खंड है।

अनुमतियों के साथ काम करते समय, उपयोगकर्ता या समूह ऑब्जेक्ट और उन उपयोगकर्ता या समूह ऑब्जेक्ट की फ़ाइल या निर्देशिका पर मौजूद अनुमतियों के बीच हमेशा एक संबंध होता है। लिनक्स सर्वर पर फ़ाइलों की सुरक्षा के लिए एक वैकल्पिक तरीका विशेषताओं के साथ काम करना है।
फ़ाइल तक पहुंचने वाले उपयोगकर्ता की परवाह किए बिना विशेषताएँ अपना काम करती हैं।

एसीएल की तरह, फ़ाइल विशेषताओं को सक्षम करने की आवश्यकता हो सकती है। माउंट.

यह एक विकल्प है उपयोगकर्ता_xattr. यदि आपको विस्तारित उपयोगकर्ता विशेषताओं के साथ काम करते समय "ऑपरेशन समर्थित नहीं है" संदेश प्राप्त होता है, तो इसे सेट करना सुनिश्चित करें माउंट फ़ाइल में /etc/fstab.

कई विशेषताएँ प्रलेखित हैं। कुछ विशेषताएँ उपलब्ध हैं लेकिन अभी तक लागू नहीं की गई हैं। उनका उपयोग न करें; वे तुम्हें कुछ भी नहीं लाएंगे.

नीचे सबसे उपयोगी विशेषताएँ दी गई हैं जिन्हें आप लागू कर सकते हैं:

A यह विशेषता सुनिश्चित करती है कि फ़ाइल का फ़ाइल एक्सेस समय नहीं बदलता है।
आमतौर पर, हर बार जब कोई फ़ाइल खोली जाती है, तो फ़ाइल तक पहुंचने का समय फ़ाइल के मेटाडेटा में दर्ज किया जाना चाहिए। इससे प्रदर्शन पर नकारात्मक प्रभाव पड़ता है; इसलिए, उन फ़ाइलों के लिए जिन्हें नियमित रूप से एक्सेस किया जाता है, विशेषता A इस सुविधा को अक्षम करने के लिए उपयोग किया जा सकता है.

a यह विशेषता आपको फ़ाइल जोड़ने की अनुमति देती है, लेकिन हटाने की नहीं।

c यदि आप एक फ़ाइल सिस्टम का उपयोग कर रहे हैं जो वॉल्यूम-स्तरीय संपीड़न का समर्थन करता है, तो यह फ़ाइल विशेषता यह सुनिश्चित करती है कि संपीड़न इंजन पहली बार सक्षम होने पर फ़ाइल संपीड़ित है।

D यह विशेषता सुनिश्चित करती है कि फ़ाइलों में परिवर्तन पहले कैश किए जाने के बजाय तुरंत डिस्क पर लिखे जाते हैं। यह महत्वपूर्ण डेटाबेस फ़ाइलों पर एक उपयोगी विशेषता है ताकि यह सुनिश्चित किया जा सके कि वे फ़ाइल कैश और हार्ड ड्राइव के बीच खो न जाएं।

d यह विशेषता सुनिश्चित करती है कि फ़ाइल उन बैकअप में सहेजी नहीं गई है जहाँ डंप उपयोगिता का उपयोग किया जाता है।

I यह विशेषता उस निर्देशिका के लिए अनुक्रमण को सक्षम करती है जिसमें यह सक्षम है। यह Ext3 जैसे आदिम फ़ाइल सिस्टम के लिए तेज़ फ़ाइल एक्सेस प्रदान करता है, जो तेज़ फ़ाइल एक्सेस के लिए B-ट्री डेटाबेस का उपयोग नहीं करते हैं।

i यह विशेषता फ़ाइल को अपरिवर्तनीय बनाती है। इसलिए, फ़ाइल में कोई बदलाव नहीं किया जा सकता है, जो उन फ़ाइलों के लिए उपयोगी है जिन्हें अतिरिक्त सुरक्षा की आवश्यकता है।

j यह विशेषता सुनिश्चित करती है कि ext3 फ़ाइल सिस्टम पर, फ़ाइल पहले जर्नल में और फिर हार्ड डिस्क पर डेटा ब्लॉक में लिखी जाती है।

s फ़ाइल हटाए जाने के बाद उन ब्लॉकों को 0 सेकंड के लिए अधिलेखित करें जिनमें फ़ाइल सहेजी गई थी। यह सुनिश्चित करता है कि एक बार डिलीट होने के बाद फ़ाइल को पुनर्प्राप्त नहीं किया जा सकता है।

u यह विशेषता विलोपन के बारे में जानकारी संग्रहीत करती है। यह आपको एक उपयोगिता विकसित करने की अनुमति देता है जो हटाई गई फ़ाइलों को बचाने के लिए इस जानकारी के साथ काम करती है।

यदि आप विशेषताएँ लागू करना चाहते हैं तो आप कमांड का उपयोग कर सकते हैं गप्प मारना. उदाहरण के लिए, उपयोग करें चैटर +एस समफ़ाइलकिसी फ़ाइल में विशेषताएँ लागू करने के लिए। क्या किसी विशेषता को हटाने की आवश्यकता है? फिर प्रयोग करें चैटर -एस समफ़ाइल, और इसे हटा दिया जाएगा. वर्तमान में लागू सभी विशेषताओं का अवलोकन प्राप्त करने के लिए, कमांड का उपयोग करें लसत्र.

सारांश

इस आलेख में, आपने सीखा कि अनुमतियों के साथ कैसे काम करें। आपने तीन बुनियादी अनुमतियों, उन्नत अनुमतियों और फ़ाइल सिस्टम पर एसीएल का उपयोग कैसे करें के बारे में पढ़ा। आपने यह भी सीखा कि डिफ़ॉल्ट अनुमतियाँ लागू करने के लिए umask पैरामीटर का उपयोग कैसे करें। इस आलेख के अंत में, आपने सीखा कि फ़ाइल सिस्टम सुरक्षा की एक अतिरिक्त परत लागू करने के लिए उपयोगकर्ता-विस्तारित विशेषताओं का उपयोग कैसे करें।

यदि आपको यह अनुवाद पसंद आया तो कृपया इसके बारे में टिप्पणियों में लिखें। उपयोगी अनुवाद करने के लिए अधिक प्रेरणा मिलेगी।

मैंने लेख में कुछ टाइपो और व्याकरण संबंधी त्रुटियों को ठीक किया है। पढ़ने में आसानी के लिए कुछ भारी अनुच्छेदों को छोटा करके छोटे अनुच्छेदों में बदला गया।

इसके बजाय "केवल निर्देशिका के प्रशासनिक अधिकार वाला कोई व्यक्ति ही निष्पादन अनुमति लागू कर सकता है।" "केवल निर्देशिका तक लिखने की पहुंच वाला कोई व्यक्ति ही निष्पादन अनुमति लागू कर सकता है।" को सही किया गया है, जो अधिक सही होगा।

टिप्पणियों के लिए धन्यवाद बेरेज़.

जगह ले ली:
यदि आप उपयोगकर्ता के स्वामी नहीं हैं, तो शेल यह जांच करेगा कि क्या आप समूह के सदस्य हैं, जिसे फ़ाइल का समूह भी कहा जाता है।

करने के लिए:
यदि आप फ़ाइल के स्वामी नहीं हैं, तो शेल यह देखने के लिए जाँच करेगा कि क्या आप उस समूह के सदस्य हैं जिसके पास फ़ाइल की अनुमतियाँ हैं। यदि आप इस समूह के सदस्य हैं, तो आप समूह के लिए निर्धारित अनुमतियों के साथ फ़ाइल तक पहुँच प्राप्त करेंगे, और शेल जाँच करना बंद कर देगा।

आपकी टिप्पणी के लिए धन्यवाद क्रिप्टोपाइरेट

स्रोत: www.habr.com

एक टिप्पणी जोड़ें