KVM अतिथि गैर रूट के स्वामित्व वाले 9p शेयर को नहीं लिख सकता है


14

मैं केवीएम अतिथि के लिए 9p शेयर के लिए पूर्ण लेखन पहुंच स्थापित करने का लक्ष्य रखता हूं। होस्ट और गेस्ट दोनों के पास समान आईडी वाले समान उपयोगकर्ता / समूह हैं। मेजबान और अतिथि दोनों एक ही उपयोगकर्ता नाम का उपयोग करते हुए साझा करने के लिए लिखने में सक्षम होना चाहिए और मैं यह भेद नहीं करना चाहता कि क्या फ़ाइल होस्ट या अतिथि द्वारा लिखी गई थी। मैं सेट - केवीएम प्रक्रिया रूट के रूप में चल रहा है userऔर groupकरने के लिए root/etc/libvirt/qemu.conf में।

मेजबान पर अतिथि परिभाषा में, शेयर निम्नानुसार परिभाषित किया गया है:

<filesystem type='mount' accessmode='passthrough'>
  <source dir='/mnt/storage/data'/>
  <target dir='data'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</filesystem>

अतिथि में, शेयर इस प्रकार है:

mount -t 9p -o rw,trans=virtio,version=9p2000.L,msize=262144 data /mnt/data

समस्या यह है कि अतिथि में रूट उपयोगकर्ता होस्ट पर गैर-रूट उपयोगकर्ता के स्वामित्व वाली फ़ाइलों / फ़ोल्डरों को नहीं लिख सकता है। और भी अजीब तरह से, मेहमान की जड़ ऐसी फ़ाइलों का नाम बदल सकती है और हटा सकती है। यही है, जब मेजबान मशीन पर मैं एक गैर-रूट उपयोगकर्ता के रूप में एक फ़ाइल बनाता हूं, तो मैं बस इसे अतिथि की जड़ के रूप में संपादित नहीं कर सकता, भले ही मैं इसका नाम बदल सकता हूं और हटा सकता हूं!

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

होस्ट और गेस्ट दोनों लिनक्स सर्वर 3.2.0-4-amd64 # 1 एसएमपी डेबियन 3.2.51-1 x86_64 GNU / लिनक्स चला रहे हैं। डेबियन में, SELinux डिफ़ॉल्ट रूप से अक्षम है और मैंने इसे सक्षम नहीं किया है। मैं सभी तीन उपलब्ध 9p पहुँच मोड की कोशिश की ( passthrough, mappedऔर squash) - कोई फर्क नहीं।

बस सोच रहा था कि वहाँ कुछ भी मैं इसे काम करने के लिए tweak कर सकते हैं, या यह सिर्फ एक बग है?

ध्यान दें कि एक समान समस्या यहाँ बताई गई है: पढ़ें या लिखने के लिए passthrough (9p) फाइलसिस्टम को libvirt / qemu के साथ लिखें? लेकिन उस मामले के विपरीत, मेरे पास 100% लेखन एक्सेस है जहां रूट के स्वामित्व वाली फाइलें हैं, यह सिर्फ गैर-रूट उपयोगकर्ता फाइलें हैं जो मैं अतिथि पर भी रूट नहीं लिख सकता हूं।


2
बस जानकारी के लिए, मैंने इसे सही ढंग से काम करने के लिए कभी नहीं प्राप्त किया है, और इन सभी मुद्दों में भाग लिया है। नतीजतन, हाल ही में qemu / libvirt संस्करणों में p9 फाइलसिस्टम पास्च्रर कार्यान्वयन लागू किया गया है।
स्पूलर

2
इसी तरह यहाँ। लाल टोपी से लगता है कि 9 पी प्राइम टाइम के लिए तैयार नहीं है
विकर्ण

जवाबों:


0

क्या आप फ़ाइल की अतिरिक्त विशेषताओं जैसे कि acl के साझा निर्देशिका पर जाँच कर सकते हैं? मुझे अनुमति के मुद्दे पर संदेह है।

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