/ मीडिया / उपयोगकर्ता फ़ोल्डर पर अनुमति की समस्या मुझे बाहरी मीडिया तक पहुँचने से रोकती है


11

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

फाइलसिस्टम ठीक माउंट। जब मैं रूट के माध्यम से लॉग इन करता sudo suहूं, तो मैं /media/casper/externaldriveपूरी तरह से ठीक की सामग्री देख सकता हूं । हालांकि, मेरा उपयोगकर्ता casperनहीं कर सकता। उबंटू हर कार्रवाई का जवाब देता है जिसमें स्थान शामिल है Permission denied:

casper@casper-desktop:/media$ ll /media/casper/externaldrive
ls: cannot access '/media/casper/externaldrive': Permission denied

मैंने /mediaफ़ोल्डर की अनुमति (समस्याओं) में कुछ खुदाई करने का फैसला किया । जैसा कि casper, मैं निम्नलिखित देखता हूं:

casper@casper-desktop:/media$ ls -alF
total 16
drwxr-xr-x  4 root root 4096 apr 21 17:47 ./
drwxr-xr-x 25 root root 4096 jul 29 15:43 ../
drwxr-x---  3 root root 4096 aug  3 21:02 casper/
lrwxrwxrwx  1 root root   45 apr 21 17:47 .directory -> /etc/kubuntu-default-settings/directory-media
lrwxrwxrwx  1 root root   42 apr 21 17:47 .hidden -> /etc/kubuntu-default-settings/hidden-media
drwxr-xr-x  2 root root 4096 feb 29 23:56 home/

जो बात मुझे अखरती थी, वह थी total 16, जबकि ज्यादातर 6 लिस्टिंग में ही होती हैं। इसलिए मैंने कमान फिर से चलाई, लेकिन जैसा कि root। नतीजा वही, अजीब था। (क्या कोई मुझे इस पर प्रकाश डाल सकता है?)

वैसे भी, जो मुझे और भी अधिक प्रभावित करता था कि /media/casperनिर्देशिका मेरी नहीं है और मेरे द्वारा भी एक्सेस नहीं की जा सकती। मैं chown -Rइसे से बाहर सिर्फ bazinkas के लिए परीक्षा है , लेकिन मैं अपने आप को पकड़ के बाद मैं "मीडिया उपयोगकर्ता फ़ोल्डर मेरी मदद नहीं मेरी तरह कुछ googled"।

इसमें थोड़ा समय लगा लेकिन आखिरकार मैंने इस धागे पर ठोकर खाई , जहाँ उपयोगकर्ता 750 root:root /media/userफ़ोल्डर्स के उद्देश्य को समझाते हैं। यह सुनिश्चित करता है कि केवल रूट फाइल सिस्टम को माउंट, देख और प्रबंधित कर सकता है, जिनमें से व्यक्तिगत अनुमतियों को वास्तविक उपयोगकर्ता में बदल दिया जाता है।

इसलिए यदि मेरी जानकारी सही थी, तो /media/casper/externaldriveअनुमतियाँ मेरे अनुकूल होनी चाहिए। मैंने जाँचा,

root@casper-desktop:/media/casper# ll
total 12
drwxr-x--- 3 root   root   4096 aug  3 21:02 ./
drwxr-xr-x 4 root   root   4096 apr 21 17:47 ../
drwxrwxrwx 1 casper casper 4096 aug  3 20:20 externaldrive/

और ऐसा ही प्रतीत होता है।

तो यह वह जगह है जहां मैं फंस गया हूं। फाइलसिस्टम के पास डायरेक्टरी ट्री के माध्यम से मेरे लिए सभी तरह की अनुमति है, फिर भी मैं एक भी फाइल एक्सेस नहीं कर सकता। यह CD और USB ड्राइव के लिए समान है।

कौन मेरी कीमती तक पहुँचने में मेरी मदद कर सकता है?

ओह, और ऐसा है कि। इन /media/userफ़ोल्डरों पर ACL के पूर्वोक्त थ्रेड बोलते हैं +, जैसे कि नियमित अनुमतियों के बाद इंगित किया जाता है drwxr-x---+ 3 root root। मेरा सिस्टम यह नहीं दिखाता है। क्या उबंटू के लिए इन फ़ोल्डरों के मानक पर एसीएल है या क्या उपयोगकर्ता के पास विशेष चीजें हैं, और क्या मुझे चिंतित होना चाहिए कि यह मेरी समस्या कहां से है?

पढ़ने के लिए धन्यवाद।


1
मैं एक दोहरे बूट सेटअप (16.04 और Win7) का उपयोग करता हूं और मुझे फ़ोल्डर / मीडिया / उपयोगकर्ता की अनुमति के अंत में एक + दिखाई देता है। इसलिए मुझे लगता है कि आपकी समस्या कहां से है। मैंने ये ( 1 , 2 ) googleing के माध्यम से पाया , लेकिन मैंने यह जानने के लिए पहले acl का उपयोग नहीं किया है कि क्या वे आपकी समस्या को हल करने के लिए पर्याप्त हैं।
कार्सस

2
lsगैर-पुनरावर्ती रूप से निर्देशिका में फ़ाइलों द्वारा उपयोग की जाने वाली कुल गणना 1kB ब्लॉक। Unix.stackexchange.com/a/4110/44281 देखें ।
21

@ कर्कस धन्यवाद, मुझे लगता है कि आपको मेरी समस्या मिल गई है। मैं नीचे Zanna का उत्तर देने की कोशिश करने जा रहा हूं और आपको अपडेट करता रहूंगा। @ amotzg अहा, जो चीजों को साफ करता है। धन्यवाद :)
MicroParsec

जिज्ञासा से बाहर, "3" का drwxr-x--- 3*मतलब क्या है?
thephoenix01

जवाबों:


15

चूंकि अनुमतियाँ और स्वामित्व /media/casperहैं

drwxr-x---  root root 

कोई साथ +एसीएल (के लिए एक्सेस नियंत्रण सूचियों को ) यह स्पष्ट है कि केवल रूट, खोलने दर्ज करते हैं, इस निर्देशिका में पढ़ सकते हैं या लिख सकते हैं। हम जैसे विनम्र उपयोगकर्ताओं को स्ट्रिंग के अंत में अनुमति मिलती है ---:(

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

  • aclपैकेज की आवश्यकता है (जांच apt-cache policy acl)
  • फाइलसिस्टम को aclविकल्प के साथ रखा जाना चाहिए

उत्तरार्द्ध की जांच करने के लिए ( sdxYअपने रूट विभाजन के लिए उचित रूप से बदलें ):

sudo tune2fs -l /dev/sdxY | grep "Default mount options:"

लौटना चाहिए:

Default mount options:    user_xattr acl

डिफ़ॉल्ट माउंट विकल्प में सेट किए गए हैं /etc/mke2fs.conf

उन्हें ओवरराइड किया जा सकता है, इसलिए जाँच करें:

cat /proc/mounts | grep sdxY

कुछ इस तरह दिखता है:

/dev/sdxY / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

उपरोक्त ठीक है, ( aclइसका उल्लेख करने की आवश्यकता नहीं है) लेकिन अगर यह कहता है कि noaclआपको इसे बदलने की आवश्यकता है।

आप इस तरह से डिफ़ॉल्ट माउंट विकल्पों में विकल्प जोड़ सकते हैं:

sudo tune2fs -o acl /dev/sdxY

या आप उदाहरण के लिए aclरूट विभाजन लाइन के विकल्पों में जोड़ सकते हैं /etc/fstab:

UUID=whatever /     ext4    errors=remount-ro,acl    0       1

ACL सक्षम होने के साथ, setfaclअपने लिए अनुमतियां जोड़ने के लिए उपयोग करें। देने के लिए usernameपढ़ सकते हैं और (यदि आप एक निर्देशिका में प्रवेश या इसकी सामग्री खोज करने के लिए अनुमति निष्पादित की जरूरत) पर / मीडिया / कैस्पर अनुमतियाँ निष्पादित करें:

sudo setfacl -m u:username:rx /media/casper

आप usernameयूआईडी से बदल सकते हैं (शायद आप हैं 1000- idकमांड से जांच करें )

sudo setfacl -m u:1000:rx /media/casper

getfaclओली की तरह आपके द्वारा उपयोग किए गए एसीएल अनुमतियों को देखने के लिए उसके जवाब में

getfacl /media/casper

उपयोगकर्ता से ACL अनुमतियाँ निकालने के लिए

sudo setfacl -x u:username /media/casper

सभी ACL अनुमतियाँ साफ़ करने के लिए

sudo setfacl -b /media/casper

नोट: मैंने धोखा दिया और खुद से एक सवाल पूछा कि इसमें इतनी सारी प्रविष्टियाँ क्यों हैं /media। जवाब यहाँ है


1
धन्यवाद @Zanna: apt-cache policy aclरिटर्न ACL स्थापित और नवीनतम है। Default mount optionsउल्लेख है aclcat /proc/mountउल्लेख नहीं है noacl। इसलिए मुझे लगता है कि मुझे मैन्युअल रूप से अब ACL अनुमतियों को जोड़ने की आवश्यकता है, क्योंकि किसी कारण से वे अनमैंड हैं। मैंने /media/casperनिर्देशिका के लिए खुद को आरएक्स की अनुमति देने के लिए आपके द्वारा वर्णित आदेशों का उपयोग किया और मुझे यह कहते हुए खुशी हो रही है कि मैं अपने बाहरी मीडिया को फिर से एक्सेस कर सकता हूं। शुक्रिया ज़न्ना!
MicroParsec

हाँ, आप इसे ठीक कर खुश: डी
Zanna

2

जब आप उबंटू से विंडोज ड्राइव की एक्सेस अनुमति देना चाहते हैं

सामान्य chmodआदेश काम नहीं करेगा यदि यह एक Windows NTFS ड्राइव है।

निम्नलिखित मेरे लिए काम करता है।

फ़ाइल खोलें /etc/mtab:

gedit /etc/mtab

इस फ़ाइल में ड्राइव का नाम ढूंढें (केवल उस ड्राइव पर माउस जिसके लिए आप समाधान की तलाश कर रहे हैं, मेरे मामले में GUI अलग-अलग नाम दिखा रहा है और माउस पर दिखाता है /media/user-name/drive-name)

अब इसमें /etc/mtab:

फ़ाइल में ड्राइव-नाम खोजें, और जाँच करें कि आपकी घुड़सवार ड्राइव किस ड्राइव को सौंपी गई है (मेरे मामले में - /dev/sda4)

अब इस ड्राइव को माउंट करें:

sudo ntfs-3g /dev/sda4 /media/"$USER"

अब मैं अपने निष्पादनयोग्य को निष्पादित करने में सक्षम हूं, लेकिन मैं ड्राइव-नाम की सामग्री को नहीं देख पाऊंगा, इसलिए मैंने ड्राइव को अनमाउंट किया और इसे फिर से माउंट किया।

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