निर्देशिका जो एक उपयोगकर्ता पढ़ सकता है, लेकिन रूट नहीं कर सकता है?


9

मेरे होमडेयर के नीचे एक निर्देशिका है जिसे ".gvfs" कहा जाता है। मेरे नियमित उपयोगकर्ता खाते के रूप में, मैं इसे ठीक-ठीक पढ़ सकता हूँ:

~ $ ls -lart ~raldi/.gvfs
total 4
dr-x------  2 raldi raldi    0 2009-05-25 22:17 .
drwxr-xr-x 60 raldi raldi 4096 2009-05-25 23:08 ..
~ $ ls -d ~raldi/.gvfs
dr-x------ 2 raldi raldi 0 2009-05-25 22:17 /home/raldi/.gvfs

हालाँकि, रूट के रूप में मैं इसे "ls" या "ls -d" नहीं कर सकता:

# ls ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied
# ls -d ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied

और, बस यह सुनिश्चित करने के लिए:

# echo $UID $EUID
0 0

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

किसी भी विचार क्या चल रहा है?


दिलचस्प रूप से, आपको नियमित उपयोगकर्ता के रूप में sshfs का उपयोग करते समय समान लक्षण मिलते हैं, और फिर माउंट बिंदु पर किसी भी प्रकार के ऑपरेशन को रूट के रूप में प्रयास करते हैं। रूट उपयोगकर्ता के पास आरोह बिंदु को देखने की कोई अनुमति नहीं है। आप अनुमतियाँ भी नहीं देख सकते हैं, ls -l सभी अनुमति बिट्स के लिए सभी प्रश्न चिह्न देता है।
गोडैटर

1
"यह उबंटू 8.10 का सिर्फ एक साधारण घरेलू इंस्टॉलेशन है, कोई एनएफएस या ऐसा कुछ भी अजीब नहीं है"। Uhm, फ्यूज है "उस तरह अजीब कुछ"
थॉमस

जवाबों:


21

प्रेषक: http://bugzilla.gnome.org/show_bug.cgi?id=534284

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

इसे भी देखें: https://bugs.launchpad.net/gvfs/+bug/225361

समाधान आपके /etc/fuse.conf को अद्यतन करने और user_allow_other विकल्प को सक्षम करने के लिए लगता है। इसके बाद आपको भत्ते को प्राप्त करने के लिए gvfs प्राप्त करने की आवश्यकता हो सकती है या allow_other, लेकिन मुझे यकीन नहीं है कि यह कैसे करना है।

बेशक यह बहुत आसान हो सकता है बस gvfs जैसे सभी GUI टूल को छोड़ दें और अपने फाइल सिस्टम को कमांड लाइन से माउंट करें जहां आपके पास पूरी तरह से नियंत्रण है कि कुछ कैसे माउंट होता है।


5

.gvfsनिर्देशिका Gnome वीएफएस यूज़रस्पेस फाइल सिस्टम इतना Gnome प्रोग्राम हैं जो वीएफएस अवगत जब दूरस्थ फ़ाइलें पर काम नहीं कर रहे हैं करने के लिए पथ पारित कर सकते हैं कि आभासी फ़ाइल सिस्टम के लिए एक सीधा फाइल सिस्टम पथ (उदाहरण के लिए दूरदराज के साम्बा माउंट, WebDAV माउंट) प्रदान करता है।

चूंकि यह एक FUSE माउंट और एप्लिकेशन है, यह रूट को अनुमतियों से इनकार कर सकता है - इस मामले में एक्सेस चेक करने वाला एजेंट FUSE एप्लिकेशन है, न कि कर्नेल।

डिफ़ॉल्ट रूप से gvfsडेमॉन केवल मालिक को निर्देशिका को पार करने की अनुमति देता है।


0

यह कुछ चीजें हो सकती हैं, संभावना के क्रम में

  • संभावित फाइलसिस्टम भ्रष्टाचार के लिए जाँच / var / log / संदेश (या / var / log / syslog)
  • क्या आप SELinux का उपयोग कर रहे हैं?
  • Google सुझाव देता है कि lsattr ~ raldi / .gvfs उस फ़ाइल पर लागू होने वाली विशेष क्षमताओं का संकेत दे सकता है।

मैं डिस्क पर fsck भागा और इसे कोई समस्या नहीं मिली। मैं SELinux का उपयोग नहीं कर रहा हूँ। यदि मैं अपने उपयोगकर्ता खाते के रूप में lsattr चलाता हूं, तो कोई आउटपुट नहीं है। यदि मैं इसे रूट के रूप में चलाता हूं, तो मुझे "अनुमति अस्वीकृत" त्रुटि मिलती है।
लालड़ी

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