मैं केवीएम अतिथि के लिए 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% लेखन एक्सेस है जहां रूट के स्वामित्व वाली फाइलें हैं, यह सिर्फ गैर-रूट उपयोगकर्ता फाइलें हैं जो मैं अतिथि पर भी रूट नहीं लिख सकता हूं।