質問
ゲスト内で書き込み権限を持つ共有フォルダを構成する際に問題があります。私の特別なケースは、共有フォルダがホストシステムにマウントされているCIFSネットワーク共有を参照していることです。
ホスト構成
ネットワーク共有(および共有フォルダ)は次のように/media/nas/temp
インストールされます。
sudo mount -t cifs -o username=dave,vers=3.0,uid=dave,gid=libvirt-qemu //nas/temp /media/nas/temp
仮想管理者の構成:
ホスト視点の権限:
dave@host:~$ ll /media/nas/
drwxr-xr-x 2 dave libvirt-qemu 0 Dez 6 15:36 temp/
ゲスト構成
/temp
以下を介して(/media/nas/temp
ホストシステムに)インストール:
sudo mount -t 9p -o trans=virtio,version=9p2000.L /temp /media/temp
libvirt-qemu
ゲスト視点の権限(64055はホストグループのuid):
dave@guest:~$ ll /media
drwxr-xr-x 2 dave 64055 0 dec 6 15:36 temp/
質問
新しいファイル生成などの書き込み操作は、次のエラーをトリガします。
dave@guest:~$ touch /media/temp/myfile.log
touch: cannot touch '/media/temp/myfile.log': Permission denied
また、ホストオプションfile_mode
からインストールを試みました。dir_mode
sudo mount -t cifs -o username=dave,vers=3.0,uid=dave,gid=libvirt-qemu,\
file_mode=0777,dir_mode=0777 //nas/temp /media/nas/temp
ホスト視点の新しい権限:
dave@host:~$ ll /media/nas
drwxrwxrwx 2 dave libvirt-qemu 0 Dez 6 15:36 temp/
奇妙なことに、別のエラーが発生します。
dave@guest:~$ touch /media/temp/myfile.log
touch: cannot touch '/media/temp/myfile.log': Operation not supported
何が起こるのか
ホストは
/media/nas/temp
userを使用して書き込むことができますdave
。ゲスト内からCIFS(同じ資格情報)を介して直接マウントできますが、現在の環境ではこれは不可能です。
また、localhostフォルダをマウントして(
/home/dave/Downloads/qemu-test
同じ権限で)、ここに書き込むこともできます。この場合、権限は次のとおりです。
dave@host:~$ ll ~/Downloads/
drwxrwx---+ 2 dave libvirt-qemu 4096 Dez 6 17:25 qemu-test/
質問
ネットワークまたはローカルフォルダを共有したい場合はなぜ違いますかmount -t 9p
?示されているように、権限は同じでなければならず、ゲスト(?)に対してどのマウントポイントを共有するかは重要ではありません。
ホストシステムでネットワーク共有としてマウントされた共有フォルダをプログラムした人はいますか(もしそうなら)。
関連
ローカルフォルダ共有に関する同様の投稿:
答え1
もっと調査した後、これが私に役立ちました。重要事項:
- インストールモードをスカッシュ(通過またはマップされていない)に設定します。
- マウントポイントの所有者をlibvirt-qemuに設定し、グループをdave(ゲストで使用されるユーザー/ uid)に設定します。
- マウントCIFSオプションで設定します
file_mode=0755
。dir_mode=0755
マウント例(ホスト):
sudo mount -t cifs -o username=dave,vers=3.11,uid=libvirt-qemu,gid=dave,file_mode=0775,dir_mode=0775 //nas/temp /media/nas/temp
広告1:他のモードでも同様のエラーが発生しました。
touch: xxx 設定時間: 対応するファイルやディレクトリなし
タッチ: '/media/temp/myfile.log'をタッチできません:操作はサポートされていません。
広告2:libvirt-qemuを不十分なグループに設定すると、「許可拒否」エラーが発生します。この質問ではその逆です。ゲストに正しい UID が選択されていることを確認してください。たとえば、ホストとゲストの dave に同じ UID を設定します。注:QEMU / KVM仮想マシンはlibvirt-qemuユーザーとして実行されます。
広告3:このオプションは、グループが属するグループに設定されているユーザーdaveがマウントポイントを書き込むことを可能にします(標準は読み取り専用)。