किसी फ़ाइल को नहीं पढ़ा जा सकता है, हालांकि यह मेरे समूह में है और समूह पढ़ने के लिए अनुमतियां सेट हैं


15

मैं एक यूनिक्स / लिनक्स मशीन पर एक अजीब समस्या का सामना करता हूं:

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

-rw-rw----

इसलिए मुझे उम्मीद है कि मुझे वह फ़ाइल खोलने में सक्षम होना चाहिए, लेकिन मैं नहीं: मुझे फ़ाइल की सामग्री (बिल्ली का उपयोग करके) देखने की कोशिश करने पर "अनुमति अस्वीकृत" त्रुटि संदेश मिलेगा।

चूंकि अनुमतियाँ सही लगती हैं, इसलिए और क्या हो सकता है? क्या जगह में "ओवरराइडिंग" अनुमति प्रतिबंध हैं? यदि हां, तो मुझे कैसे पता चलेगा?


2
निर्देशिका अनुमतियों के बारे में क्या?
कार्लसन

यदि आप कई समूहों में हैं, तो क्या आपका वर्तमान समूह A पर सेट है?
कोड-गुरु

2
@ कार्लसन, यदि निर्देशिका अनुमतियाँ समस्या थी, तो आप पहली बार में फ़ाइल की अनुमति नहीं देख पाएंगे।
cjm

कृपया हमें पूरा रास्ता और फ़ाइल नाम दिखाएँ।
जिप्पी

यह /home/theotheruser/somefolder/bla.txt में है मैं कई समूहों में हूं।
लेगैरबेर

जवाबों:


8

क्या आपने समूह A में जुड़ने के बाद लॉग इन किया है और फिर से लॉग इन किया है?

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

आप इसे फिर से किसी अन्य कंसोल पर या ssh के माध्यम से लॉग इन कर सकते हैं, या ऐसा कुछ कर सकते हैं exec sudo -u $(id -u -n) -i( जैसे कि प्रभावी रूप से एक नए शेल के साथ वर्तमान शेल को मारने और बदलने के लिए - उस शेल से संबंधित कोई भी पृष्ठभूमि प्रक्रिया अनाथ हो जाएगी)


नहीं, यह समस्या नहीं थी; मैंने लॉग आउट किया और इसे वापस हल किया।
लैगबेर

3

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

तो, क्लाइंट कहता है: मैं 1234 का यूडी हूं और जिस तरह से मैं 12, 13, 14 के समूहों का सदस्य हूं ... यदि आप 16 से अधिक समूहों में हैं, तो उस सूची को काट दिया जाएगा और इसके लिए समूह होंगे जो सर्वर को पता नहीं है कि आप इसके सदस्य हैं।

शायद इसके लिए स्पष्टीकरण है। केवल स्थानीय और / या दूरस्थ मशीन के सिस्टम प्रशासक ही इसके बारे में कुछ कर सकते हैं कि या तो सुरक्षा मॉडल को बदलकर या NFS सर्वर की सेटिंग या उन समूहों की संख्या को कम करके, जिनके आप सदस्य हैं।


मेरे पास एक मजबूत भावना है कि यह कारण है, क्योंकि मैं जिस समूह में "समूह" कमांड के आउटपुट में स्थिति 19 पर दिखाई देता हूं। मैं इसका जवाब sys एडमिन को दिखाऊंगा और देखूंगा कि क्या यह मदद करता है। :)
लेगरबेर

इसे हल करने के लिए आप NFS पर "सुरक्षा मॉडल" कैसे बदलेंगे?
डैनी

3

जैसा कि आप टिप्पणी में ध्यान देते हैं, आपके पास पढ़ने की अनुमति नहीं है /home/username। लेकिन पढ़ने के लिए /home/username/path1/path2/file, आपको पूरे रास्ते के लिए निष्पादन की अनुमति चाहिए ।

इसे डीबग करने के लिए, namei -l /home/username/path1/path2/fileफ़ाइल को पढ़ने वाले उपयोगकर्ता के रूप में चलाएं ।


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

1

ACL हो सकता है। देख

getfacl the-file

हो सकता है कि किसी कारण से, आपके द्वारा किए जाने वाले समूह ठीक से सेट न हों। इससे जाँच करें

id -a

व्हाट अबाउट

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

sudo lsattr the-file

यह किस प्रकार के फाइल सिस्टम में रहता है?

सिस्टम में किसी भी एपर्मर, SELinux या किसी अन्य अनिवार्य अभिगम नियंत्रण?

आपको यकीन है कि फ़ाइल में "अनुमति से वंचित" पाठ नहीं है, सही ;-)


नहींं, कोई विशेष ACL नहीं है, यह सिर्फ वही दोहराता है जो मानक झंडे मुझे बताते हैं, और id -a मुझे बताता है कि मैं उस फ़ाइल के समूह में हूँ
Lagerbaer

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

फाइल सिस्टम nfs4 प्रतीत होता है। namei मुझे / और घर को रूट, रूट से संबंधित देता है। / उपयोगकर्ता नाम और उपयोगकर्ता नाम से संबंधित उपयोगकर्ता नाम और समूह X (जिनमें से मैं सदस्य नहीं हूं), तो बाकी है / घर / उपयोगकर्ता नाम / path1 / path2 / फ़ाइल जहां path1 उपयोगकर्ता नाम और समूह X से संबंधित है, और path2 उपयोगकर्ता नाम से संबंधित है, और समूह A, जिसमें से मैं एक सदस्य हूं।
लेगरबेर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.