Tôi đang hướng tới việc thiết lập quyền truy cập ghi đầy đủ vào chia sẻ 9p cho khách KVM. Cả máy chủ và khách đều có cùng người dùng / nhóm có cùng ID. Cả máy chủ và khách sẽ có thể ghi vào chia sẻ bằng cùng tên người dùng và tôi không muốn phân biệt liệu tệp được ghi bởi máy chủ hay khách. Quá trình KVM đang chạy với quyền root - Tôi thiết lập user
và group
để root
trong /etc/libvirt/qemu.conf.
Trong định nghĩa khách trên máy chủ, chia sẻ được xác định như sau:
<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>
Trong khách, chia sẻ được gắn kết là:
mount -t 9p -o rw,trans=virtio,version=9p2000.L,msize=262144 data /mnt/data
Vấn đề là người dùng root trong máy khách không thể ghi vào tệp / thư mục thuộc sở hữu của người dùng không phải root trên máy chủ. Lạ hơn nữa, root của khách có thể đổi tên và xóa các tệp đó. Đó là, khi trên máy chủ tôi tạo một tệp với tư cách là người dùng không phải root, sau đó tôi chỉ đơn giản là không thể chỉnh sửa nó dưới dạng root của khách, mặc dù tôi có thể đổi tên và xóa nó!
Tôi cũng thấy rằng trong đó một thư mục được tạo trên máy chủ dưới người dùng không phải root có quyền được đặt thành 777, thì root của khách có thể ghi vào nó (tức là tạo tệp trong đó). Tuy nhiên, điều này không áp dụng cho các tệp - chúng vẫn không thể được chỉnh sửa bất kể quyền.
Cả máy chủ và máy khách đều đang chạy máy chủ Linux 3.2.0-4-amd64 # 1 SMP Debian 3.2.51-1 x86_64 GNU / Linux. Trong Debian, SELinux bị tắt theo mặc định và tôi không kích hoạt nó. Tôi đã thử tất cả ba có sẵn chế độ truy cập 9p ( passthrough
, mapped
và squash
) - không có sự khác biệt.
Chỉ cần tự hỏi nếu có bất cứ điều gì tôi có thể điều chỉnh để làm cho nó hoạt động, hoặc nó chỉ là một lỗi?
Lưu ý có một vấn đề tương tự được báo cáo ở đây: Truy cập đọc / ghi đối với hệ thống tập tin passthrough (9p) với libvirt / qemu? nhưng không giống như trường hợp đó, tôi có quyền truy cập ghi 100% trong đó các tệp thuộc sở hữu của root, đó chỉ là các tệp người dùng không phải root mà tôi không thể ghi vào ngay cả khi đã root trên máy khách.