In / etc / group दूसरे क्षेत्र का अर्थ क्या है?


18

एक नमूना /etc/groupफ़ाइल में निम्नलिखित प्रविष्टियाँ हैं:

root:*:0:
adm:!:4:logcheck
antoine:x:1000:

मैन पेज मैंने पढ़ा है (डेबियन और OSX) का कहना है कि दूसरा क्षेत्र एक समूह पासवर्ड स्टोर करना है। जैसा कि वे शायद ही कभी इस्तेमाल किया जाता है, एक तारांकन *या xआमतौर पर इसे खाली छोड़ने के बजाय इसमें रखा जाता है।

shadowआदमी पेज भी कहता है कि इस दूसरे क्षेत्र का परिणाम संग्रहीत करना चाहिए cryptकार्य करते हैं। और यदि कोई अमान्य परिणाम संग्रहीत है (जैसे कि *या तो !) इसका मतलब है कि पासवर्ड को प्रमाणीकरण विधि के रूप में उपयोग नहीं किया जा सकता है।

क्या यह groupफ़ाइल के लिए भी सही है ? मैं अपनी groupफ़ाइल में 3 अलग-अलग वर्णों को एक ही अर्थ में क्यों रखता हूं ? क्या मैं सुरक्षित रूप से सभी को बदल सकता हूं *?


आप उन सभी को बदलकर क्या हासिल करेंगे *?
जोर्डनम

मैं केवल !10+ में से एक एकल सर्वर पर एकल समूह के लिए उपयोग किए जा रहे हैं, जिसे मैं वर्तमान में प्रबंधित करता हूं। कुछ जाँच स्क्रिप्ट की सादगी के लिए, हमेशा एक ही चार होने से चीजें साफ हो जाएंगी। ठीक है, अगर यह वास्तव में एक ही है, निश्चित रूप से।
टोनिन

जवाबों:


28

आप सोच रहे हैं कि !, *या xयहाँ एक विशेष अर्थ है, और इसलिए चिंता कर रहे हैं कि उनके बीच कुछ अंतर हो सकता है।

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

इसका कारण यह है कि जिस तरह से यूनिक्स प्रकार के सिस्टम पर पासवर्ड संभाले जाते हैं। जब सिस्टम एक पासवर्ड प्रविष्टि प्राप्त करता है, तो यह इसे हैश करता है और इसे संग्रहीत हैश से तुलना करता है। इसलिए, यहां जो कुछ भी मायने रखता है वह यह है कि आप कुछ वर्णों या वर्णों के अनुक्रम का उपयोग करते हैं जो संभवतः एक वैध पासवर्ड हैश नहीं हो सकता है। (इसमें स्पष्ट कारणों से एक बृहदान्त्र भी शामिल नहीं होना चाहिए।)

हालांकि कोर ओएस के दृष्टिकोण से इन पात्रों के बीच कोई अंतर नहीं है, कुछ सम्मेलन हैं:

  • जब लिनक्स pwconv(8)प्रोग्राम देखता है x, तो इसका मतलब है कि "मैं पहले से ही इस सार्वजनिक पासवर्ड हैश को छाया पासवर्ड फ़ाइल में स्थानांतरित कर चुका हूं।"

    यही कारण है कि व्यवहार में एक महत्वपूर्ण मामला नहीं है, क्योंकि में कनवर्ट करने (या, स्वर्ग की सहायता से आप, के दिनों से ) छाया पासवर्ड हमारे पीछे अब कर रहे हैं।

  • यदि आप किसी उपयोगकर्ता का उपयोग करते हैं usermod -Lया passwd -lउसे लॉक करते हैं, तो !इसका विशेष अर्थ है /etc/shadowक्योंकि यह कन्वेंशन "इस हैश को तोड़ने के लिए है इसलिए यह किसी भी अधिक मेल नहीं खाता है।"

    संग्रहीत हैश में किसी भी अन्य वर्ण को जोड़ने से यह भी टूट जाएगा। इस सम्मेलन का उल्लंघन केवल रोकता है usermod -Uया passwd -uसे अनलॉक उपयोगकर्ता का प्रवेश। बस के रूप में समान रूप से सच है, के बाद से आप इसे एक फर्जी चरित्र जोड़कर हाथ से बंद कर दिया, आप इसे हटाकर हाथ से अनलॉक कर सकते हैं।

    हालांकि, इस सवाल के संबंध में सभी सामान्य ज्ञान हैं। इसमें कोई सम्मलेन नहीं है groupmod -Lया gpasswd -lइसलिए नहीं !है /etc/group

    अधिक सामान्य ज्ञान: यदि आप उपयोगकर्ता खातों को हाथ से बंद करने जा रहे हैं , तो आपको [A-Za-z0-9/\]सेट से दूर रहना चाहिए , क्योंकि वे हैश के लिए कानूनी वर्ण हैं। यही कारण है कि एक कारण usermodका उपयोग करता है !यहाँ के बजाय x

मुझे आपके सभी /etc/groupपासवर्ड फ़ील्ड को सामान्य करने में कुछ भी गलत नहीं दिख रहा है , अगर इससे आपको बेहतर महसूस होता है। ऐसा करके, आप पहले से ही कह रहे हैं कि आप इन फ़ाइलों को हाथ से हैक करके खुश हैं, इसलिए आप संभवतः उन उपकरणों का उपयोग करने के लिए नहीं हैं जो वैसे भी अंतर के बारे में परवाह करते हैं। भले ही, परिवर्तन का दिन-प्रतिदिन के ऑपरेशन पर कोई प्रभाव नहीं पड़ने वाला है।


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

1
स्क्रिप्टिंग के लिए, आपको संभवतः कॉलिंग getpwent(3)और मित्र होना चाहिए । पर्ल अपने मानक पुस्तकालय में इन के लिए रैपर हैं, जैसा कि किसी अन्य यूनिक्स सिसडमिन केंद्रित स्क्रिप्टिंग भाषा में होना चाहिए। यदि आप इस तरह के रैपर के बिना भाषा का उपयोग कर रहे हैं, तो यह व्यापार करने का एक अच्छा बहाना होगा। :)
वॉरेन यंग

यदि आप अभी भी लगभग छह साल पुरानी चीजें पढ़ रहे हैं ... उत्तर के लिए धन्यवाद, मैं कुछ ऐतिहासिक कारणों से लोगों को चीजों का उपयोग करने xऔर *"अप्रयुक्त" पासवर्ड फ़ील्ड को चिह्नित करने के लिए देखता हूं । हालांकि जिज्ञासु ... मैन पेज कहता है कि फ़ील्ड को बहुत अच्छी तरह से खाली छोड़ा जा सकता है (डेटाबेस क्षेत्र में इसे NULL कहा जा सकता है - विशेष रूप से Oracle में जो NULL को खाली करता है और रिक्त स्ट्रिंग को समान करने के लिए)। तो, वापस करने के लिए / etc / समूह: क्यों उपयोग xया !या *, बजाय सिर्फ क्षेत्र को खाली छोड़ने का? लगातार दो कॉलोन बस के रूप में अच्छी तरह से इनमें से किसी भी चरित्र के बाहर खड़े हैं। महत्वपूर्ण नहीं है - सिर्फ उत्सुक
मैथ्यू

1
@ मैथगुगी: एक खाली पासवर्ड फ़ील्ड का अर्थ है "कोई पासवर्ड नहीं", एक पासवर्ड फ़ील्ड के समान चरित्र नहीं जिसमें एक वास्तविक पासवर्ड से मेल नहीं खा सकता है। चूंकि अधिकांश यूनिक्स सिस्टम समूह पासवर्ड का उपयोग नहीं करते हैं, इसलिए यह एक अंतर के बिना एक अंतर है, लेकिन आप एक ऐसी आदत विकसित नहीं करना चाहेंगे जो आपको मुसीबत में डाल दे, जैसे कि अधिकांश लिनक्स सिस्टम /etc/shadow। इसके अलावा, मैं इस धारणा को खारिज करता हूं कि एक डबल कोलन बस के रूप में स्पष्ट है। त्वरित, यहाँ कितने खाली क्षेत्र हैं :::::::? अब कितने :x:*:!:x:*::? कॉलन की एक ही संख्या, लेकिन अलग-अलग उत्तर, मुझे भरोसा है।
वॉरेन यंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.