क्या मैं एक्स 4 एक्सटर्नल हार्ड ड्राइव के लिए कंप्यूटर पर उपयोगकर्ता की अनुमति को पोर्ट कर सकता हूँ?


16

मेरे पास एक बाहरी USB 3 डिस्क ड्राइव (2TB क्षमता) है जो मशीन से मशीन में स्थानांतरित होने की सबसे अधिक संभावना है। डिस्क में एक GUID विभाजन तालिका और एक ext4 विभाजन है। जब तक मैं प्रक्रिया को उन्नत नहीं करता ( sudo) डिस्क पर लिखने में असमर्थ हूं ।

अब तक मैं निम्नलिखित में से एक या दोनों की कोशिश करने के बारे में सोच रहा हूं और प्रत्येक की सहमति जानना चाहूंगा -

  1. chmod 777 /mnt/externalDrive
  2. chown nobody:nogroup /mnt/externalDrive

अगर मैं 777 अनुमति देता हूं और user1 (UID: 1005) इसे लिखता हूं और मैं बाद में डिस्क को किसी अन्य कंप्यूटर पर ले जाता हूं जहां user7 UID: 1005 है, तब क्या होता है? क्या उपयोगकर्ता 7 उस कंप्यूटर पर फ़ाइल का मालिक बन जाता है? यह मुझे लगता है कि मुझे समय-समय chown -R nobody:nogroup /mnt/externalDriveपर डिस्क पर चलना होगा ।

क्या कोई भी मैं एक स्पष्ट बुरे अभ्यास पर विचार कर रहा हूं? डिस्क में सबसे अधिक वीडियो, संगीत और चित्र होंगे, इनमें से किसी को भी कुछ वित्तीय डेटा की तरह संरक्षित करने की आवश्यकता नहीं है।


मुझे यकीन नहीं है कि मैं आपका अनुसरण करता हूं। क्या आपने बाहरी ड्राइव में अनुमतियों को सेट करने का प्रयास किया था?
रमेश

1
हाँ। क्या वह अच्छी चीज़ है?
भगवान लोह।

जवाबों:


19

बहु-उपयोगकर्ता प्रणालियों के साथ यही समस्या है, खासकर यदि आपके पास उनमें से एक से अधिक है। ;) आप क्या चाहते हैं करने के लिए वास्तव में कोई अच्छा तरीका नहीं है । दिमाग में आने वाले दृष्टिकोण होंगे

  • आपके द्वारा अपने बाह्य ड्राइव (वास्तव में संभव नहीं होने पर, संभवत: सभी मशीनों के आपके नियंत्रण में नहीं हैं) का उपयोग करके प्रत्येक मशीन पर आपके खाते के लिए समान यूआईडी होना
  • मालिक / समूह से अनभिज्ञ फ़ाइल सिस्टम का उपयोग करना (FAT या NTFS के दिमाग में आना, लेकिन ... आआह, नहीं)

सबसे प्रभावी दृष्टिकोण आम प्रथाओं पर वापस आ जाएगा। अधिकांश (कम से कम) लिनक्स सिस्टम पर, कुछ समूह मौजूद होते हैं जिनमें आमतौर पर सामान्य GID होते हैं। उदाहरण के लिए users, जो 100अधिकांश लिनक्स डिस्ट्रोस पर GID होता है। यदि आप इस समूह में अपने संबंधित उपयोगकर्ता खाते का प्रबंधन कर सकते हैं, तो आप कर सकते हैं

  1. इस समूह के स्वामित्व वाली आपकी ड्राइव पर सभी फाइलें और निर्देशिकाएं बनाएं
  2. किसी तरह उन फ़ाइलों और निर्देशिकाओं पर उपयुक्त समूह-अनुमतियाँ प्रबंधित करें
  3. किसी तरह उचित समूह-स्वामित्व सम्मान के साथ बनाई गई नई फ़ाइलों का प्रबंधन करें। अनुमतियाँ।

पहले और दूसरे बिंदु को पूरा करना आसान है ( chown, chmod)। थर्ड पॉइंट थोड़ा पेचीदा हो जाता है।

"समूह-स्वामित्व" भाग अपेक्षाकृत आसान है: आप ड्राइव पर सभी निर्देशिकाओं में SGID बिट सेट कर सकते हैं। निर्देशिकाओं पर लागू SGID बिट, BSDish तरीके से व्यवहार करने के लिए कर्नेल को बताता है: BSD एक विशिष्ट निर्देशिका समूह के स्वामित्व में बनाई गई हर फ़ाइल / निर्देशिका को फ़ाइल / निर्देशिका बनाने की प्रक्रिया के प्राथमिक समूह के स्वामित्व में बनाता है (जैसा कि लिनक्स करता है), लेकिन मूल-निर्देशिका के स्वामी द्वारा।

अनुमति बिट थोड़ा कठिन है। फ़ाइलें / निर्देशिका नव निर्मित की अनुमतियां हैं (अन्य लोगों) से प्रभावित umask, थोड़ा-मुखौटा कह जो बिट्स नहीं सेट करने के लिए करता है, तो स्पष्ट रूप से कहा नहीं। umaskउदाहरण के लिए एक सामान्य मूल्य है 022, जिसका अर्थ है कि »समूह« और »दूसरों के लिए राइट-बिट्स आमतौर पर सेट नहीं होना चाहिए। आप अपने umaskको बदल सकते हैं 002, यह बताकर कि आप लिखना-अनुमतियाँ समूह के लिए साफ़ नहीं करना चाहते हैं, लेकिन नकारात्मक पक्ष यह है कि आप यह मान निर्देशिका-आधारित नहीं सेट कर सकते हैं और आप आमतौर पर लेखन-अनुमति नहीं लेना चाहते हैं आपके द्वारा बनाई गई प्रत्येक फ़ाइल के लिए आपका प्राथमिक समूह सेट है।

यह ACL का उपयोग करके हल किया जा सकता है: एक ACL में आप एक maskऔर एक सेट सेट कर सकते हैं default, जो इस ACL सेट के साथ एक निर्देशिका के अंदर बनाई गई सभी फ़ाइलों और निर्देशिकाओं पर लागू होता है। तो आपकी समस्या का एक संभावित समाधान होगा

  • सुनिश्चित करें कि आप उन सभी प्रणालियों पर एक सामान्य समूह के सदस्य हैं जिन पर आप अपनी बाहरी ड्राइव का उपयोग करना चाहते हैं
  • इस समूह के स्वामित्व वाली आपकी ड्राइव पर सभी फाइलें और निर्देशिकाएं बनाएं और सभी निर्देशिकाओं पर SGID बिट सेट करें
  • मास्क और डिफ़ॉल्ट अनुमतियों को शामिल करने के लिए सभी निर्देशिकाओं के एसीएल को बदलें जो समूह के लिए सेट-राइट-अनुमतियों के साथ हर नई फ़ाइल / निर्देशिका बनाने के लिए कर्नेल को बताता है।

अधिक विवरण के लिए देखें setfacl(1), और acl(5)


1
उसके चारों ओर एक पैच तैर रहा था और ext4, spinics.net/lists/lux/fsdevel/msg57240.html में gid मैपिंग कर रहा था, लेकिन मुझे नहीं लगता कि यह माध्यम से आया है ...
Rmano

11

वहाँ एक और इसी तरह का सवाल है और bindfs का सुझाव दिया गया है:

mkdir /home/$user/sda1
bindfs -u $user -g $group /mnt/sda1 /home/$user/sda1

OSX उपयोगकर्ता noownersइस तरह वर्णित माउंट विकल्प का सुझाव देते हैं :

संपूर्ण वॉल्यूम के लिए स्वामित्व फ़ील्ड पर ध्यान न दें। इसके कारण सभी ऑब्जेक्ट उपयोगकर्ता ID 99 और समूह ID 99 के स्वामित्व के रूप में प्रकट होते हैं। उपयोगकर्ता ID 99 को वर्तमान प्रभावी उपयोगकर्ता ID के रूप में व्याख्या की जाती है, जबकि समूह ID 99 का उपयोग सीधे किया जाता है और इसका अनुवाद `` अज्ञात '' तक होता है।


bindfs बहुत धीमा है। शायद क्योंकि यह एक FUSE फाइल सिस्टम है।
नवीन

4

किसी फ़ाइल के स्वामी और समूह को संख्याओं के रूप में संग्रहीत किया जाता है। तो फ़ाइल का स्वामित्व uid = 1005 के पास होगा, भले ही वह उपयोगकर्ता हो (या कोई भी नहीं) जो उसके कनेक्टेड सिस्टम पर है।

उपयोगकर्ता / समूह को किसी में बदलने से आपकी समस्या ठीक नहीं होगी। तब केवल किसी भी उपयोगकर्ता (या किसी समूह के सदस्य) को फ़ाइलों तक पहुंचने की अनुमति नहीं होगी।

दुर्भाग्य से, मुझे नहीं लगता कि ext4 पर अनुमति जांच को अक्षम करने का एक तरीका है। उदाहरण के लिए, क्या किसी ext3 या ext4 फ़ाइल-सिस्टम पर फ़ाइल अनुमतियों को अक्षम करना संभव है?


2

एंड्रियास विसे का कहना है कि यदि आपके पास सभी होस्ट में सामान्य समूह आईडी है तो आप setgidबिट और एसीएल के साथ अपने मुद्दे को हल कर सकते हैं

मैं लिनक्स डिस्ट्रोस पर पूर्वनिर्धारित समूह आईडी पूछता हूं ?

खुद के शोध के बाद पाया गया कि इस तरह के समूह में सभी स्पर्श किए गए डिस्ट्रोस मौजूद हैं: sysसमूह 3डेबियन, उबंटू, रेडहैट, फेडोरा, सेंटोस, सुसे, फ्रीबीएसडी, ओपनबीएसडी, नेटबीएसडी, मैकओएसएक्स, सोलारिस पर साझा करता है।

इसके साथ:

$ 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

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

अधिकांश काम setgidथोड़ा कर सकते हैं लेकिन दुर्भाग्य से आपका आमतौर पर थोड़ा नियंत्रण होता है umask। तो ACL का उपयोग पूर्ण समाधान प्रदान करने के लिए किया जाता है।

यह सभी देखें:

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