लिनक्स में HFS + वॉल्यूम बढ़ते समय डिफ़ॉल्ट अनुमतियों को पारित करना


8

मेरे पास स्नो लेपर्ड और कुबंटू 11.10 के साथ एक दोहरी बूटिंग मैकबुक प्रो है, और जब मैं कुबंटू चला रहा हूं, तो अपने घर मैक होम निर्देशिका को पढ़ना (लिखना न भूलें)।

मैं इसे किसी भी समस्या के बिना माउंट कर सकता हूं, लेकिन कुबंटू पर मेरा उपयोगकर्ता एचएफएस + पर फ़ाइलों को मैक उपयोगकर्ता के स्वामित्व में नहीं देख सकता है, क्योंकि अलग-अलग यूआईडी (मैक पर 502, कुबंटु पर 1000)।

HFS + के बारे में कर्नेल डॉक्स को देखते हुए मैंने पढ़ा कि:

When mounting an HFSPlus filesystem, the following options are accepted:
[CUT]
    uid=n, gid=n
        Specifies the user/group that owns all files on the filesystem
        that have uninitialized permissions structures.
        Default:  user/group id of the mounting process.

इसलिए मैंने इन विकल्पों का उपयोग करने की कोशिश की:

$ sudo mount -t hfsplus -o uid=1000,gid=1000 /dev/sda2 /mnt/Mac

लेकिन वे कुछ भी नहीं कर रहे हैं: मैं अभी भी वही अनुमतियाँ देखता हूँ जब मैं ls -l का उपयोग करता हूँ। मुझे कुछ याद आ रहा है, कोई सुराग?

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

जवाबों:


9

bindfsजवाब है। यह पहले से ही माउंटेड फाइल सिस्टम लेगा और आप इसे चाहे जिस पर चाहे:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

संपादित करें:

इसके अलावा, डॉक्टर को पढ़ते हुए मैंने महसूस किया कि mapविकल्प (1.10 और बाद में) बेहतर हो सकते हैं:

sudo bindfs --map=502/1000 /media/diskFoo ~/myUIDdiskFoo

बहुत अच्छा समाधान। यह ओएस के डिफ़ॉल्ट व्यवहार को बदलने के बिना समस्या को हल करता है, और बहुत अधिक विकल्पों को संभव बनाता है। यदि सिस्टम अन्य उपयोगकर्ताओं के साथ साझा किया जाता है, तो सावधान रहें, इससे अनपेक्षित दर्शकों के लिए निजी फाइलें उजागर हो सकती हैं।
gerlos

1
हाँ। मुझे आश्चर्य था कि सिस्टम माउंट उपयोगिता इस क्षमता की पेशकश नहीं करती है। वैकल्पिक रूप से आप mapकेवल 502 से 1000 उपयोगकर्ता को मैप करने के लिए bindfs की कार्यक्षमता का उपयोग कर सकते हैं जो आपके लिए सुरक्षित और आपके द्वारा इच्छित उद्देश्य से अधिक हो सकता है।
कैटस्कूल

जैसा कि मुझे टिप्पणी करने की प्रतिष्ठा नहीं है, मैं सिर्फ यह नोट करने जा रहा हूं कि कैटस्कुल के उत्तर में एक छोटी सी गलती है, एक = लापता, होना चाहिए: सुडो बिंडफ्स --मैप = 502/1000 / मीडिया / डिस्कफू ~ myUIDdiskFoo
J. Simon van der Walt

1

अंत में, मैंने अपने मैक ओएस एक्स उपयोगकर्ता के समान यूआईडी के साथ एक लिनक्स उपयोगकर्ता बनाया, लेकिन यह मैक hfs + वॉल्यूम पर मेरे घर में हर निर्देशिका को ब्राउज़ नहीं कर सकता है क्योंकि बहुत सारी फाइलें मैक उपयोगकर्ता "अज्ञात", यूआईडी के स्वामित्व में थीं। 99 ( http://googlemac.blogspot.com/2007/03/user-99-unknown.html देखें )।

ऐसा लगता है कि उन्होंने ऐसा तब किया था जब आप इसे एक अलग कंप्यूटर से कनेक्ट करने पर अपने वॉल्यूम को माउंट करने और पढ़ने के लिए करते थे। जब एक नियमित उपयोगकर्ता UID 99 के स्वामित्व वाली उन फाइलों को देखता है, तो वह उन्हें देखता है जैसे वह उनका मालिक है। बोहुत अजीब। केवल जड़ उन्हें देखते हैं जैसे वे हैं।

इसलिए मैंने मैक ओएस एक्स में रिबूट किया, प्रशासनिक विशेषाधिकारों के साथ एक अलग उपयोगकर्ता के साथ लॉग इन किया और मेरे घर की प्रत्येक फ़ाइल के मालिक को बदलने के लिए chown -R 502: 20 / Users / gerlos / * का उपयोग किया। अब मैं बिना किसी समस्या के सब कुछ पढ़ सकता हूं।

टिप्पणियों:

  • Kubuntu 11.10 पर नए उपयोगकर्ता बनाने के लिए डिफ़ॉल्ट kubuntu gui टूल 1000 से कम यूआईडी वाले उपयोगकर्ताओं को नहीं बना सकता। इसके बजाय टर्मिनल पर एड्यूसर का उपयोग करें।
  • आप टर्मिनल पर "आईडी" कमांड का उपयोग करके अपने उपयोगकर्ता यूआईडी को जान सकते हैं।
  • मैक ओएस एक्स पर, आपको फ़ाइलों के असली मालिक को देखने के लिए रूट होने की आवश्यकता है। इसलिए यदि आप "ls -n / Users / gerlos" और "sudo ls -n / Users / gerlos" टाइप करते हैं तो विभिन्न परिणामों की अपेक्षा करें।

"वास्तविक" यूनिक्स उपयोगकर्ता और फ़ाइंडर द्वारा मान्यता प्राप्त उपयोगकर्ता के बीच OSX में उस अंतर ने मुझे बहुत सिरदर्द दिया ... यह OSX पर कुछ एप्लिकेशन को अजीब तरीके से व्यवहार भी कर सकता है (जैसे। ड्रॉपबॉक्स आपकी फ़ाइलों को सिंक नहीं करेगा)। किसी भी समस्या से बचने के लिए, अपने OSX सिस्टम में लॉग इन करें, एक टर्मिनल खोलें और सुनिश्चित करें कि आपका यूनिक्स उपयोगकर्ता आपके ओएस एक्स उपयोगकर्ता के पास पहले से मौजूद सब कुछ का मालिक है। शायद मुझे कुछ समझ में न आए, लेकिन GUI का उपयोग करने का मेरा अनुभव पर्याप्त नहीं है।
gerlos

1

वास्तव में मैं कुछ ऐसा ही करना चाह रहा हूँ जब मैं इस प्रश्न के पार आया हूँ। क्या मेरी समझ, आपकी पहली पोस्ट देख रही है, कि आपके द्वारा अनुरोधित माउंट विकल्प यह पूछ रहा है कि आपके लिनक्स सिस्टम (यानी यूआईडी 1000) के डिफॉल्ट के बजाय यूजर यूआईडी का क्या उपयोग किया जाना चाहिए। तो इसके बजाय आपको 502 का उपयोग करना चाहिए जो कि आपके द्वारा माउंट किए जा रहे फ़ाइल सिस्टम के मालिक की अपेक्षा है।

मैंने अपनी स्थिति में इसका परीक्षण किया है, और इसने मेरे सिस्टम के बीच साझा करने के लिए फाइल सिस्टम के लिए यूआईडी 99 के साथ बहुत अच्छा काम किया है। इसके साथ मुझे बदलते हुए यूआईडी में जाने की आवश्यकता नहीं होगी। तो साझा करने के लिए धन्यवाद। यह आपके लिए ज्यादा नहीं हो सकता है लेकिन किसी और की मदद कर सकता है। चियर्स


1
सही। सबसे अच्छा समाधान अकेले यूआईडी और अनुमतियां छोड़ना है, अपने HFS + फ़ाइल सिस्टम को माउंट करें जैसा कि आप सामान्य रूप से करते हैं, और फिर अपने घर को HFS + फ़ाइल सिस्टम के तहत bindfs का उपयोग करके माउंट करते हैं, इसलिए सब कुछ आपके लिनक्स उपयोगकर्ता के स्वामित्व में दिखाई देता है। इस तरह आपको कभी भी कस्टम UID का उपयोग करने की आवश्यकता नहीं होगी, न ही HFS + फ़ाइल सिस्टम में अनुमतियों को बदलने की, इसलिए आप दोनों सिस्टम में डिफ़ॉल्ट व्यवहार को संरक्षित करते हैं। चूँकि आप प्रत्येक उपयोगकर्ता के घर में बाइंडफॉउट के साथ रीमाउंट कर सकते हैं, आप साझा सिस्टम में भी निजी फ़ाइलों को संरक्षित कर सकते हैं, फिर भी उन्हें उपयोगकर्ताओं के लिए सुलभ बना सकते हैं।
जिरलोस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.