Пояснение: Хост это просто наш рабочий компьютер на котором я славно поставил Debian 13 (testing). Из ВМ (виртуальной машины) на KVM надо получить доступ к этим файлам. Как установить и оптимально настроить ВМ на KVM это отдельная тема. Пусть это уже есть. И так, имеем ВМ на KVM, где установлено всё нужное для доступа к государственным сайтам, шифрование Криптофит, электронный документооборот и отчётность Saby, «православный браузер Chromium-GOST», необходимые плагины и драйвера и электронные подписи.
Внутри ВМ всё готово, всё работает и подписывает документы. Надо получать доступ к документам на хосте, чтобы их отправлять по каналам ЭДО (электронного документо-оборота).
Правим права, если директория на хосте с документами в домашнем каталоге пользователя:
# 1. Установите утилиту ACL (если ещё нет)
sudo apt install acl
# 2. Дайте право на "проход" (x) через вашу домашнюю папку
# Без этого QEMU не сможет добраться до вложенных папок
sudo setfacl -m u:libvirt-qemu:rx /home/username
# 3. Дайте права на папку Sync
sudo setfacl -m u:libvirt-qemu:rwx /home/username/Sync
# 4. Дайте права на ВСЁ содержимое папки Sync (рекурсивно)
# тут флаг -R даёт рекурсию
sudo setfacl -R -m u:libvirt-qemu:rwx /home/username/Sync/
# а теперь применим флаг -d и это правило по дефолту применяется к новым объектам.
sudo setfacl -R -d -m u:libvirt-qemu:rwx /home/username/Sync/
Вместо ACL можно добавить пользователя libvirt-qemu в группу username, но это менее безопасно, так как откроет доступ ко всем вашим файлам. ACL — точечное и правильное решение. Или как говориться — вам решать. Или выполните две команды с -R и -d, и проблема с правами будет решена навсегда — и для текущих, и для будущих файлов!
Перед запуском ВМ создайте точку монтирования ресурса. Дам пояснения к форме ниже на скриншоте:
- Путь на хосте: это путь к директории, которую предоставляете для доступа из ВМ, выше мы давали на неё права для KVM.
- Путь в гостевой ОС: это совсем не путь, а название этой шары, и поэтому названию будем монтировать, просто придумайте лаконичное имя латинскими буквами.
- Режим чтения не даст изменять, что либо на хосте, только читать.

Внутри виртуальной машины монтируем ресурс:
# Создайте точку монтирования (именно сюда и примонтируем директорию из хоста)
mkdir -p /home/username/Sync
# Смонтируйте (используя метку, которую вы задали в настройках, например 'sync_share')
sudo mount -t 9p -o trans=virtio,version=9p2000.L,uid=1000,gid=1000 sync_share /home/username/Sync
Это монтирование будет действовать на текущий сеанс работы ВМ. Но порой надо всегда иметь доступ к хосту. Это делается внутри ВМ через fstab, что будет монтировать при каждом старте ВМ.
# Отредактируем fstab:
sudo nano /etc/fstab
# В конец файла добавим строку:
sync_share /home/username/Sync 9p trans=virtio,version=9p2000.L,uid=1000,gid=1000,nofail 0 0
# Напомню: Сохраните: Ctrl+O → Enter → Ctrl+X
пояснение:
- sync_share — так называли эту шару в настройках ВМ
- username — имя пользователя на хосте, где ваши директории, к которым предоставляет доступ
Проверьте синтаксис путём монтирования (ошибок быть не должно):
sudo mount -a
Если команда выполнилась молча и без вывода — всё готово. Теперь при каждом запуске ВМ папка будет подключаться сама.
Пожалуй всё.
Для заметки на память мне тут достаточно.
Если кому надо уточнения — спросите в комментариях.
Бай!