Bug 50711

Summary: xrdp не работает проброс usb
Product: Sisyphus Reporter: AVG <nikul-sasha>
Component: xrdpAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: cas, lakostis, lav, tatyana
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description AVG 2024-06-22 01:07:21 MSK
С актуальной версией xrdp (0.10.0-alt0.p10.1) не работает проброс usb.
Версия ядра 6.1.90-un-def-alt1.
Важно! Для воспроизведения ошибки в системе (RDP-сервер) не должно быть следов от предыдущих версий пакета xrdp (в идеале свежеустановленная ОС).

На сервере (RDP-сервер):
1. Установил необходимые пакеты с их зависимостями
# apt-get install xrdp xrdp-usb-session
2. Добавил службы в автозапуск:
# systemctl enable xrdp xrdp-sesman usbip-client (последний сервис равнозначен добавлению модуля 'vhci-hcd' в '/etc/modules')
3. Чтобы системе хватало прав для монтирования usb-устройств, изменил политику безопасности службы 'udisks' в файле '/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy'.
В самом низу блока <action id="org.freedesktop.udisks2.filesystem-mount-other-seat"> изменил следующее:
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
на
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
4. Добавил пользователя rdpuser в группы tsusers и fuse:
# usermod -aG fuse,tsusers rdpuser
5. Перезагрузил сервер

На клиенте (машина, подключающаяся к RDP-серверу):

1. Установил необходимые пакеты с их зависимостями
# apt-get install xfreerdp xrdp-usb-terminal freerdp-plugins-standart
2. Добавил пользователя testuser в группу disk:
# gpasswd -a testuser disk
3. Вставил флешку в ПК, узнал её идентификатор (команда lsusb) и добавил этот идентификатор в файл '/etc/xrdp-usb' для его проброса в RDP-сессию.
4. Экспортировал прописанное в файле '/etc/xrdp-usb' usb-устройство для RDP-сессии:
# usbip-export
5. Запустил RDP-сеанс с учетной записи testuser:
$ xfreerdp /v:<IP> /u:rdpuser /p:Qwerty123

Ожидаемый результат:
Проброшен usb-носитель в RDP-сессию

Реальный результат:
usb-носитель не проброшен

Дополнительно:
Если я откатываю пакет xrdp на версию 0.9.25.1-alt1 (вместе с зависимостью xorg-drv-xrdp-0.9.24-alt1), то проброс работает, мало того что работает, так если после установки этой версии xrdp установить актуальную (на текущий момент 0.10.0-alt0.p10.1), то проброс будет работать уже и в актуальной версии.
Comment 1 Tatyana Gagina 2024-07-15 18:11:46 MSK
Ошибка воспроизводится на Sisyphus с версией xrdp-0.10.0-alt4
 uname -a
Linux kworkstation-10-3-x86-64-20240621.localdomain 6.6.38-un-def-alt1 #1 SMP PREEMPT_DYNAMIC Tue Jul  9 12:12:21 UTC 2024 x86_64 GNU/Linux

Проверялось на p10, аналогично.
Версия на p10: xrdp-0.10.0-alt0.p10.1.
 uname -a
Linux workstation-10-2-x86-64-20240709.localdomain 6.1.94-un-def-alt1 #1 SMP PREEMPT_DYNAMIC Mon Jun 24 12:14:35 UTC 2024 x86_64 GNU/Linux