यूनिक्स: मैं केवल एक व्यक्ति को एक ही fs में अपने फ़ोल्डर को देखने की अनुमति कैसे दे सकता हूं?


9

मैं एक दोस्त के लिए एक पहुँच देना चाहता हूँ। उसके पास फ़ाइल सिस्टम तक पहुंच है, जहां dir स्थित है। मैं सभी उपयोगकर्ताओं के लिए अनुमतियाँ सेट नहीं करना चाहता। मैं केवल एक व्यक्ति को डायर को देखने की अनुमति कैसे दे सकता हूं? हममें से कोई भी सुपरसुसर नहीं है।

[उछाल चुनौती] उबंटू का उपयोग करते हुए, कोई भी जवाब नहीं है:

1. जमुरा का एप्रोच काम नहीं कर रहा है

$ setfacl -m user:friend:rwx classroom.xml 
setfacl: classroom.xml: Operation not supported

2. नीक का दृष्टिकोण काम नहीं कर रहा है: गैर-मौजूद फ़ाइल तक नहीं पहुँच सकता

3. बीए का दृष्टिकोण काम नहीं कर रहा है: मैं समूह नहीं बना सकता, न कि रूट।

4. केके का दृष्टिकोण काम नहीं कर रहा है, उपयोगकर्ता दो समूहों में हैं: "उपयोगकर्ता" और "फ़ील्ड"

chown -R myFriend:users ~/TEST
chown: changing ownership of `/u/myFriend/TEST/you_see_it': Operation not permitted
chown: changing ownership of `/u/myFriend/TEST': Operation not permitted

1
यह उपयोगी होगा यदि आप एक-लाइनर देते हैं कि ये उत्तर आपके लिए समस्या कैसे बनाते हैं - इन विकल्पों को बनाने के लिए बेहतर समस्या की परिभाषा देंगे।
nik

nik: त्रुटि प्रोफाइल जोड़ा गया।

जवाबों:


12

केवल सामान्य UNIX अनुमतियों (उपयोगकर्ता, समूह, सभी) के साथ, आप यह आसानी से नहीं कर सकते। यदि आपको अब निर्देशिका तक पहुंचने की आवश्यकता नहीं है, तो आप संभवतः निर्देशिका के स्वामी को अपने मित्र को बदल सकते हैं, जो कुछ यूनियनों पर मान्य है, लेकिन उनमें से अधिकांश यह नहीं है।

हालाँकि - यदि आपके पास लिनक्स पर एसीएल सक्षम है, तो आप यह कर सकते हैं यदि आप फ़ाइल के मालिक हैं। बस कमांड चलाएं setfacl -m user:friend:rwx filenameजहां दोस्त आपके दोस्त का खाता नाम है और फ़ाइल नाम फ़ाइल है। आप जाँच कर सकते हैं कि यह चल रहा है getfacl filename, आपको user:friend:rwxसूची में त्रय को देखना चाहिए । मैंने बहुत सारे लिनक्स सिस्टम नहीं देखे हैं, जो हालांकि एसीएल सक्षम हैं।


ACL इस समस्या का मानक समाधान है, यह मानते हुए कि आपका फ़ाइल सिस्टम उन्हें सक्षम करता है।
रयान सी। थॉम्पसन

HHH लगता है कि यह काम नहीं करेगा। मुझे लगता है कि यह तब तक होगा, जब तक कि किसी विषम कारण के कारण एसीएल सक्षम न हों। HHH, क्या देता है?
pboin

pboin: यह विधि इतनी स्पष्ट रूप से काम नहीं करती है इसका कारण यह हो सकता है कि ACL सक्षम या अन्य चीज़ नहीं हैं, सुनिश्चित नहीं हैं।

11

यह कुछ ऐसा है जिसकी हमने स्कूल में चर्चा की थी।
इस तरह मोटे तौर पर जाता है,

  1. एक निर्देशिका बनाएँ (नाम data, संदर्भ के लिए यहाँ)
    • " chmod 711 data" के रूप में अनुमतियाँ बदलें
    • समूह और अन्य के पास केवल x- निर्देशिका में प्रवेश करने की पहुंच है
    • वे निर्देशिका को सूचीबद्ध नहीं कर सकते
    • अब, एक निर्देशिका बनाएं difficult-name-here(यह एक हैशेड-स्ट्रिंग हो सकता है)
    • " chmod a+rx difficult-name-here" के रूप में अनुमतियाँ बदलें
    • इस निर्देशिका की सामग्री सुरक्षित है जबकि बाहरी निर्देशिका को सूचीबद्ध नहीं किया जा सकता है
    • जो लोग "कठिन नाम" जानते हैं वे इस दूसरी निर्देशिका में कूद सकते हैं
      • " cd path/to/data/difficult-name-here"
      • अन्य लोग नाम नहीं देख सकते हैं और निर्देशिका सामग्री तक नहीं पहुंच सकते हैं
      • हालांकि, rootहमेशा सब कुछ एक्सेस कर सकता है (जो यहां समस्या नहीं है)
    • difficult-name-hereउन लोगों के साथ साझा करें जिन्हें आप यह डेटा देना चाहते हैं
    • इस दूसरी निर्देशिका में साझा फ़ाइलें रखें

काफी कच्चा है, लेकिन अगर यह यूनिक्स एक्सेस कंट्रोल ब्रेक के बिना तोड़ा जा सकता है, तो मैं जानना चाहता हूं।


टिप्पणी से अपडेट करें dmckee,
यह वास्तव में हम तक पहुंच गया है!
"सुरक्षा द्वारा अस्पष्टता" में सीमित सुरक्षा है

यह कहते हुए कि, डेटा के लिए सुरक्षा डिजाइन करते समय,
इसके मूल्य की पहचान करना महत्वपूर्ण है।

आपको इसके लिए लक्ष्य बनाना चाहिए,

  • ब्रेकिंग-द-सिक्योरिटी की लागत जो इससे अधिक है,
  • सुरक्षित सामग्री की लागत,
  • आपके व्यामोह के समानुपाती कारक द्वारा

इस मामले में, अगर rootसार्वजनिक पहुंच में कहीं निर्देशिका पेड़ की गणना करने का निर्णय लिया जाता है, तो
आपका रहस्य समाप्त हो जाता है! लेकिन, क्या आप रूट या उनकी संभावित गैरजिम्मेदारी से बचा रहे हैं?
यदि ऐसा है, तो आपके पास साझा फ़ाइलों के बारे में चिंता करने के लिए बहुत कुछ है।


प्रश्न में काम नहीं कर रहे नोट के बारे में अपडेट करें
मैंने यह जानने के लिए कि यह काम करता है के शुरुआती दिनों में linux का उपयोग किया है।
यदि आपको ' cannot access non-existant fileके बजाय ' ' मिलता है तो आपने 'permissions deniedअनुक्रम में गलती की है। आप जो चाहते हैं वह इस तरह दिखना चाहिए,

 755 711 755 जो भी - === एक्सेस अनुमतियां

 BasePath / CoverDir / अस्पष्ट / protectedFile.txt
          | | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ \ _ ^ ^ ^ ^ ^ ^ ^ \ _ \ _ \ _ \ _ \ _ \ _ \ _ \ _ \ _ \ _ \ _ & # 39;
          | ^ ^ ^ ^ ^ ^ ^ ^ ^ निर्देशिका नाम का उपयोग पढ़ने के लिए
          ^ ^ ^ ^ ^ ^ ^ ^ दोस्तों के साथ साझा सार्वजनिक। अस्पष्ट निर्देशिका।
                सुलभ 
                निर्देशिका।
  1. यदि आप ' CoverDir' पहुंच ' ' सेट करते हैं 'rwx--x--x, तो
    समूह और अन्य केवल निर्देशिका में प्रवेश कर सकते हैं लेकिन इसकी सामग्री को नहीं पढ़ सकते हैं।
  2. अब, यदि आप इसके अंदर एक अस्पष्ट निर्देशिका नाम,
    ' Obscure' का उपयोग करते हैं, और ' rwxr-xr-x' के साथ पूर्ण रीड एक्सेस देते हैं , तो
    इस नाम को जानने वाला कोई भी व्यक्ति इसकी सामग्री को सूचीबद्ध कर सकता है।
  3. यह पहुँच बाहर से ' ls BasePath/CoverDir/Obscure' के साथ करनी पड़ेगी
    क्योंकि आपके समूह के लोग और अन्य लोग ' ' नहीं कर पाएंगे ls BasePath/CoverDir

7
"अगर यह तोड़ा जा सकता है [...] , यह जानना पसंद है" ठीक है, यह अस्पष्टता से सुरक्षा का बहुत अनुकरणीय है, और इस प्रकार नाजुक है। लंबे समय तक उस पर भरोसा मत करो। हालांकि, नीट।
dmckee --- पूर्व-संचालक बिल्ली का बच्चा

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

5

रयान वास्तव में 100% सही था, सिर्फ पिछड़ा हुआ। चूँकि आपके मित्र (संभावना) के पास अपने उपयोगकर्ता नाम से जुड़ा एक अनूठा समूह है, जो उस समूह के लिए निर्देशिका के समूह के स्वामित्व को परिवर्तित करता है, सबसे अधिक संभावना है कि मित्र का उपयोगकर्ता नाम। आप में से दो के बीच सामग्री साझा करने में सक्षम होने के लिए आपको उपयोगकर्ता के रूप में स्वामित्व बनाए रखना चाहिए:

chown -R youruser:friendgroup ~/foo/bar

फिर निर्देशिका के लिए उपयुक्त अनुमतियाँ असाइन करें, इस पर निर्भर करते हुए कि आप अन्य उपयोगकर्ता के लिए कौन-सी पहुँच चाहते हैं:

chmod -R 770 ~/foo/bar

निर्देशिका और इसकी संपूर्ण सामग्री तक आप दोनों को पूर्ण rwx पहुंच प्रदान करेगा।

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


4

मैं आपके और आपके मित्र के लिए एक नया समूह बनाऊंगा और निर्देशिका के लिए सेटगिड बिट के साथ मालिक और समूह के लिए पूर्ण करने के लिए फ़ोल्डर अनुमतियाँ सेट करूँगा।

लेकिन आपकी ज़रूरतों के आधार पर आपको आपको और आपके दोस्तों को umask बदलने पर भी ध्यान देना पड़ सकता है इसलिए यह स्वचालित रूप से समूह को नई फ़ाइलों को बदलने में सक्षम बनाता है।

# groupadd bestfriends
# chmod 2770 dir
# chgrp bestfriends dir
# usermod -G bestfriends FRIENDLOGIN

3
इसके लिए सुपरसुसर प्राइवेटबिल्ड की आवश्यकता हो सकती है जो उसके पास नहीं है।
उबकना

1
ओह, मैंने उस लाइन को पूरी तरह से याद किया: x फिर मैं नुकसान में हूं। मुझे लगता है कि मैं इसे स्थानीय रूप से मेल पर भेजने के साथ जाऊंगा - सबसे अच्छा समाधान नहीं, लेकिन कम से कम फ़ाइल दूसरे आदमी को मिलती है।
गाजीजी 14

2

एक्सेस कंट्रोल लिस्ट ऐसा करने का सही तरीका है।

हालांकि (अगर मैं सही ढंग से याद है), फाइल सिस्टम की जरूरत है एसीएल के साथ प्रारंभ करने के लिए (उदाहरण के लिए "/ dev / sda6 / घर ext3 चूक, एसीएल "), के माध्यम से / etc / fstab, और यह कुछ ऐसा है जो केवल सुपर उपयोगकर्ता कर सकते हैं। ..


2

RBACS जैसे grsec / selinux की आवश्यकता होती है।


निश्चित नहीं है कि क्या यह समस्या है, क्या आप कुछ उद्धरण जोड़ सकते हैं?

2

डिफ़ॉल्ट रूप से, उबंटू प्रणाली पर प्रत्येक उपयोगकर्ता के पास उसी नाम का एक संबद्ध समूह भी होता है। इसलिए यदि आप अपने मित्र को अपने समूह में जोड़ सकते हैं और फिर प्रश्न के रूप में फ़ोल्डर को चिह्नित कर सकते हैं g+rwx, तो आप सेट हो जाएंगे। मुझे यह याद है कि इस उपयोग के मामले को प्रत्येक उपयोगकर्ता के लिए एक समूह बनाने के कारण के रूप में उद्धृत किया गया है।


उपयोगकर्ताओं को समूहों में जोड़ने के लिए रूट एक्सेस की आवश्यकता होती है, जो ओपी ने कहा कि उसके पास नहीं है।
डेव शेरोहमान

2

ड्रॉपबॉक्स के बारे में कैसे? आप इसे व्यवस्थापक विशेषाधिकार के बिना और दोनों एक ही खाते से लिंक कर सकते हैं।

की जाँच करें स्थापित करने के लिए कैसे ड्रॉपबॉक्स में एक पूरी तरह से टेक्स्ट आधारित लिनक्स पर्यावरण


1
क्षमा करें, लेकिन कुछ और 'बुनियादी' लग रहा है, mhambra के दृष्टिकोण में अधिक दिलचस्पी है

2

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


2

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

/ foo वह फ़ोल्डर है जिसे आप साझा करना चाहते हैं। एक समूह FooGroup बनाएँ जिसमें फ़ोल्डर की वांछित पहुंच हो। इस समूह में उन समूहों और उपयोगकर्ताओं को जोड़ें जिन्हें आप इस फ़ोल्डर तक पहुँच के लिए कहना चाहते हैं।

प्रत्येक फ़ोल्डर या फ़ाइल के लिए एक समूह होना एक बड़ा दर्द है लेकिन यह विंडोज के समान स्तर पर पहुंच को प्रतिबंधित करने का सबसे अच्छा तरीका है।


1

आप निर्देशिका को एन्क्रिप्ट कर सकते हैं gpg। और फिर उस स्थान को बाधित करने का प्रयास करें जैसे कि नीक ने कैसे सुझाव दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.