कई लिनक्स इंस्टाल के साथ बाहरी EXT4 हार्ड डिस्क का उपयोग करते समय अनुमति की समस्याओं को हल करना


18

मेरे पास एक बाहरी हार्ड ड्राइव है और चूंकि मैं केवल उबंटू और फेडोरा का उपयोग करता हूं इसलिए मैं अपनी हार्ड ड्राइव को एक्स 4 में सब कुछ ठीक करने के लिए प्रारूपित करने का निर्णय लेता हूं।

समस्या यह है कि जब मैं ड्राइव को माउंट करता हूं तो मुझे अनुमति बदलने की आवश्यकता होती है ताकि मैं पढ़ और लिख सकूं।

मुझे किस तरह की अनुमति का उपयोग करना चाहिए? मेरे उपयोगकर्ता नाम की प्रशंसा?

जवाबों:


5

लंगड़ा हालांकि यह मेरे लिए हो सकता है, मुझे इस सवाल का जवाब एक और सवाल के साथ देना होगा। अगर हम सभी के बारे में बात कर रहे हैं एक ओएस के लिए है, तो यह या तो होगा

sudo chown -R (user name) /dev/(device name)

( ubuntu )

या केवल

chown -R (user name) /dev/(device name)

फेडोरा - नहींsudo, बस रूट से कमांड चलाएं।

नूडल स्क्रैचर भाग, और जिस हिस्से के लिए मेरे पास कोई अच्छा जवाब नहीं है, वह यह है कि इसे कैसे बनाया जाए ताकि आपको डिस्ट्रोस के बीच में आगे और पीछे जाने पर मैन्युअल रूप से पीछे न हटना पड़े। मुझे अपनी लाइन जोड़ने के लिए लगभग लुभाया जाएगा ~/.bashrc, लेकिन शायद एक बेहतर तरीका है जो मुझे नहीं पता है या अभी तक नहीं सोचा है।


कि जब भी मैं डिस्ट्रो को बदलने की अनुमति देता हूं, मुझे उसे बदलने की आवश्यकता होती है
जेवियर गोंजालेज

1
बस अपनी स्वयं की बौद्धिक जिज्ञासा को सुनिश्चित करने और संतुष्ट करने के लिए, मैं एक USB EXT4 ड्राइव के साथ वापस गया और डबल चेक किया। मुझे नहीं पता था कि डिवाइस का स्वामित्व लेना फ़ाइल सिस्टम के स्वामित्व लेने के समान है, और यह है। sudo chown -R (यूजर नेम) / dev / (डिवाइस का नाम) आपको ड्राइव पर मौजूद सभी फाइलों का स्वामित्व देता है, भले ही आपने उन्हें क्यों न बनाया हो।
user2367

हाँ, बस लाइन जोड़ने के लिए ~ / .bashrc से कम है तो यह स्वचालित रूप से हर बार जब आप टर्मिनल चलाते हैं, तो मेरे पास इसका जवाब नहीं है। शायद इसे क्रोन में जोड़ सकते हैं? लेकिन ऐसा लगता है जैसे डिस्ट्रो बूट होने पर इसे चलाने की व्यवस्था करने का एक तरीका होना चाहिए।
user2367

मैं वास्तव में ext4 प्यार करता हूँ, लेकिन एक बकवास की अनुमति को बदल रहा है haha
जेवियर गोंजालेज

10

सबसे सरल उपाय यह सुनिश्चित करना है कि आपके उबंटू और फेडोरा उपयोगकर्ता खातों में एक ही उपयोगकर्ता आईडी (यूआईडी) हो।

मुझे लगता है कि फेडोरा डिफ़ॉल्ट रूप से 500 पर उपयोगकर्ता खाते शुरू करता है, जबकि डेबियन और उबंटू उन्हें 1000 पर शुरू करते हैं, इसलिए यह बहुत संभावना है कि एक ओएस में आप उपयोगकर्ता संख्या 500 हैं और दूसरे में आप उपयोगकर्ता संख्या 1000 हैं। फ़ाइल सिस्टम इस यूआईडी नंबर का उपयोग करता है अनुमतियों पर नज़र रखने के लिए, इसलिए यदि आप सुनिश्चित करते हैं कि उनके पास समान यूआईडी है, तो उन्हें एक ही उपयोगकर्ता माना जाएगा, और कोई भी अनुमति समस्या नहीं होगी।

मुझे लगता है कि आप जो सबसे अच्छा कर सकते हैं, वे दोनों को यूआईडी = 1000 बना सकते हैं, इसलिए फेडोरा सिस्टम में यूआईडी को बदलें, फिर सुनिश्चित करें कि बाहरी डिस्क पर सभी फाइलें और फेडोरा इंस्टॉल में उपयोगकर्ता के $ HOME में यूआईडी 1000 का स्वामित्व है। कि अब आपको कोई अनुमति की समस्या नहीं होनी चाहिए।


हाँ, मैं आपको उस समय के लिए धन्यवाद देने जा रहा हूँ :)
जेवियर गोंजालेज

1
कृपया मेरा जोड़ भी पढ़ें या फेडोरा उपयोगकर्ता लॉग इन नहीं कर पाएगा!
1

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

3

/ Etc / fstab में आप अपने उपयोगकर्ता के स्वामित्व वाली ड्राइव के लिए uid = 1000 (उबंटू में - यह 500 में फेडोरा है) डाल सकते हैं (यह मानते हुए कि आप पहले उपयोगकर्ता हैं, याडा यादा ... यदि आपके उपयोगकर्ता नहीं हैं, तो) यूआईडी से id) और umask = 000 यदि आप चाहते थे कि सभी उपयोगकर्ता एक्सेस (या 077 के लिए यूआईडी = द्वारा निर्दिष्ट केवल एक के लिए - यह एक मुखौटा है, तो आप जो चाहते हैं उसके विपरीत डाल देंगे)

/ Etc / fstab का उपयोग करने के बारे में अधिक जानकारी के लिए: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html


1
अगर मैंने ० re re की अनुमति दी है तो मुझे ubuntu से फेडोरा में बदलने की अनुमति को बदलने की आवश्यकता नहीं है?
जेवियर गोंजालेज

@Dracirate: मुझे लगता है कि आपको 077 के बजाय 000 की आवश्यकता हो सकती है। यदि आप प्रत्येक सिस्टम (उबंटू और फेडोरा दोनों) में ड्राइव के लिए एक fstab प्रविष्टि डालते हैं, तो वे स्वचालित रूप से इसे माउंट करेंगे ताकि यह प्रयोग करने योग्य हो।
मैको

3

दुर्भाग्य से लिनक्स कर्नेल ext2 / ext3 / ext4 FS पर POSIX अनुमति को लागू करता है।

आप साझा समूह के साथ POSIX अनुमति को हल कर सकते हैं। मैं संबंधित प्रश्न पूछता हूं: /unix/273144/predefined-group-ids-across-linux-distros/ लेकिन आखिरकार मैंने खुद का शोध किया।

मुझे पता है कि डेबियन, उबंटू, रेडहैट, फेडोरा, सेंटोस, सुज़, फ्रीबीएसडी, ओपनबीएसडी, नेटबीएसडी, मैकओएसएक्स, सोलारिस पर एसआईएस समूह शेयर आईडी 3।

मन में इस तरह की खोज के साथ एक समाधान की तरह लग सकता है:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

और इसका स्वाद (जब भी आप लिनक्स / FreeBSD / MacOSX / Solaris पर):

$ sudo adduser user sys

यह सभी देखें:


उस विधि का प्रयोग, को क्रियान्वित करने cd /mnt/data/dir; touch example.txt; ls example.txt ... शो ... -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt। बाद में निष्पादित करना mv example.txt ~; ll ~/example.txt... दिखाता है ... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txt, +अनुमतियों के अंत में। इसलिए बहुत सारे स्थान बहुत सारे +दिखाई देने वाले हैं, लोगों को आश्चर्य होता है कि वे फाइलें विशेष क्यों हैं (सिर्फ इसलिए कि उन्हें कॉपी किया गया था / किसी विशेष फ़ोल्डर से स्थानांतरित किया गया था)। क्या +स्वचालित रूप से उत्पादन बंद करने का कोई तरीका है ?
Ganton

2

तुम बस exfat या ntfs का उपयोग करने की कोशिश कर सकते हैं। मेरे लिए यह इस तरह से काम करता है। लेकिन मैं अब नहीं है अगर यह हर फ़ाइल की अनुमति के साथ काम करता है। मुझे नहीं लगता।


2

यह साझा समूहों का उपयोग करने के @ गवेंको के दृष्टिकोण का एक मामूली बदलाव है, और इसमें माउंटेड ड्राइव का संशोधन शामिल नहीं है।

माउंट ड्राइव में किस ग्रुप आईडी (GID) का उपयोग किया जाता है, इसकी जांच करें।

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

हम कहते हैं कि आप निम्नलिखित के समान कुछ देखते हैं:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

इसका मतलब 12000है कि ड्राइव में डेटा का वर्तमान जीआईडी ​​है, और डेटा को पढ़ा जा सकता है, और समूह के किसी अन्य उपयोगकर्ता द्वारा निष्पादित (लिखा नहीं जा सकता है, हालांकि)। एक नया समूह बनाएं (उदाहरण के लिए। driveusers) और नए समूह में अपना वर्तमान उपयोगकर्ता जोड़ें:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive

1

मुझे यह अन्य उपाय मिले:

/unix/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

/unix//a/273705

इसके साथ:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

और इसका स्वाद:

sudo adduser user sys  

आपका उपयोगकर्ता किसी भी फ़ाइल को पढ़ने / लिखने में सक्षम हो सकता है /dir

@jadelord @ gavenkoa क्या आपको लगता है कि उबंटू (या फेडोरा) उपयोगकर्ताओं के लिए आपके सुझाए गए समाधानों पर आजकल कोई सुधार हो सकता है? धन्यवाद

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