Bug 48715 - myconnector: Не происходит автоматической блокировки экрана при нахождении курсора мыши на окне rdp сеанса
Summary: myconnector: Не происходит автоматической блокировки экрана при нахождении ку...
Status: ASSIGNED
Alias: None
Product: Sisyphus
Classification: Development
Component: myconnector (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: ekorneechev@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-07 10:42 MSK by Шевченко Денис
Modified: 2024-03-15 09:40 MSK (History)
4 users (show)

See Also:


Attachments
Тест запуска xfreerdp в окне (637 bytes, text/x-python)
2024-02-13 14:15 MSK, Evgeniy Korneechev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Шевченко Денис 2023-12-07 10:42:10 MSK
Не происходит блокировки экрана, по истечению заданного в настройках времени блокировки, при нахождении курсора мыши на окне rdp сеанса. При нахождении курсора мыши вне экрана с rdp сеансом блокировка экрана успешно выполняется. 
Данное поведение не является корректным с точки зрения соблюдения безопасности.
В виду того, что в KRDC и Remmina, которые также используют freerdp, данное поведение не воспроизводится, есть надежда, что MyConnector также может быть исправлен.

Версия:
myconnector-2.4.4-alt2 (P10)
myconnector-2.5.1-alt1 (Sisyphus)


Системы:
Клиент: ALT Workstation K 10.2 или ALT Workstation K Sisyphus
Сервер: Windows Server 2012 или ALT Server 10.1
Клиент работает в сессии: X11


Шаги воспроизведения:

1. При необходимости установить/активировать rdp сервер.
Если rdp сервер находится на ALT Linux Server, установить xrdp:
# apt-get install xrdp
# systemctl enable --now xrdp xrdp-sesman
# gpasswd -a user tsusers

Если rdp сервер находится на Windows Server:
Активировать галочку "Разрешить удаленные подключения к этому компьютеру"

2. Установить MyConnector на клиенте:
# apt-get install myconnector

3. На клиенте выставить период блокировки экрана:
Параметры системы > Управление питанием > Энергосбережение > Приостановка сеанса > Заблокировать экран > через 1 мин

4. Открыть MyConnector

5. Убедиться, что выбрана установка "Удалённый рабочий стол Windows (freerdp)"

6. Настроить параметры подключения и подключиться к серверу:
- нажать кнопку "Дополнительные параметры" 
- ввести IP адрес сервера
- ввести имя пользователя и пароль
- выставить "Размер окна" -> "Вручную" -> "800x600"
- нажать кнопку "Подключение"

7. Оставить курсор мыши без движения на окне с сеансом rdp и подождать 1 минуту 


Ожидаемый результат:
По прошествии 1 минуты бездействия ПК, происходит блокировка экрана.

Реальный результат:
Экран не блокируется по прошествии 1 минуты бездействия ПК при нахождении курсора мыши на окне сеанса rdp. 


Дополнительная информация:
1. Если курсор мыши находится вне экрана с rdp сеансом, то блокировка экрана успешно выполняется.

2. Поведение, описанное выше было проверено с несколькими rdp клиентами:
- MyConnector (использует freerdp) - воспроизводится
- freerdp - воспроизводится
- Remmina (использует freerdp) - НЕ воспроизводится
- KRDC (использует freerdp) - НЕ воспроизводится

3. При использовании сессии Wayland вышеописанное поведение не воспроизводится. Блокировка экрана производится корректно, согласно заданного в настройках времени блокировки, независимо от места нахождения курсора мыши.
Comment 1 Evgeniy Korneechev 2023-12-07 12:09:29 MSK
На p9 на версии
$ rpm -q xfreerdp 
xfreerdp-2.2.0-alt1.x86_64
проблемы нет как в полноэкранном режиме, так и в оконном режиме.

От MyConnector поведение никак не зависит, так как он передает в xfreerdp параметры запуска через CLI. Remmina скорее всего использует API freerdp, поэтому там проблемы нет.
Comment 2 Шевченко Денис 2023-12-07 14:00:24 MSK
(Ответ для Evgeniy Korneechev на комментарий #1)

> От MyConnector поведение никак не зависит, так как он передает в xfreerdp
> параметры запуска через CLI. Remmina скорее всего использует API freerdp,
> поэтому там проблемы нет.
Если правильно понял, KRDC запускает xfreerdp (при запуске сеанса rdp, xfreerdp висит в процессах), и там тоже нет проблемы.
Comment 3 Evgeniy Korneechev 2023-12-07 14:27:48 MSK
(Ответ для Шевченко Денис на комментарий #2)
> Если правильно понял, KRDC запускает xfreerdp (при запуске сеанса rdp,
> xfreerdp висит в процессах), и там тоже нет проблемы.

С какими параметрами запускается xfreerdp?
Comment 4 Evgeniy Korneechev 2023-12-07 15:35:57 MSK
Отвечу сам:
/usr/bin/xfreerdp -decorations /w:1920 /h:988 /kbd:0x00000409 /u:administrator /parent-window:65011831 /bpp:24 /audio-mode:0 /sound:sys:alsa /drive:media,/media /network:lan /rfx /cert-ignore +clipboard /port:3389 /v:ts

вот как раз /parent-window:65011831 и не дает уйти в "блокировку", так как фокус постоянно на окне родительском. Если запускать голый xfreerdp - фокус "внутри" окна, а не "на окне" - если мы держим курсор на верхней панели окна (xfreerdp в оконном режиме) - то блокировка работает. Если чуть ниже в RDP - уже не сработает.

Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф приедет скоро).
Comment 5 Шевченко Денис 2023-12-07 22:07:45 MSK
(Ответ для Evgeniy Korneechev на комментарий #4)
> Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем
> запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp
> 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф
> приедет скоро).

Спасибо за разъяснение причины.

Попробовал библиотеки и бинарник из ночной сборки пакета для fedora.
Версия xfreerdp: 3.0.0-dev6 (dd56308bd)
Брал тут: https://pub.freerdp.com/repositories/rpm/fedora/fedora-39/freerdp-nightly/x86_64/

Проблема, к сожалению не ушла.
Comment 6 Шевченко Денис 2023-12-12 12:09:02 MSK
(Ответ для Evgeniy Korneechev на комментарий #4)
> Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем
> запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp
> 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф
> приедет скоро).

Пробовали xfreerdp 3.0.0-rc0?
Comment 7 Шевченко Денис 2023-12-18 16:36:39 MSK
(Ответ для Evgeniy Korneechev на комментарий #4)
> Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем
> запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp
> 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф
> приедет скоро).

Имеются проблемы со сборкой xfreerdp 3.0.0 в сизифе.
В виду неготовности ряда апстримов к сборке, задание отложено.

Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)?
Comment 8 Evgeniy Korneechev 2023-12-18 16:39:22 MSK
(Ответ для Шевченко Денис на комментарий #7)
> Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в
> котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)?

Можно, но сроков пока не обозначу.
Comment 9 Шевченко Денис 2024-02-05 16:06:39 MSK
(Ответ для Evgeniy Korneechev на комментарий #8)
> (Ответ для Шевченко Денис на комментарий #7)
> > Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в
> > котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)?
> 
> Можно, но сроков пока не обозначу.

Добрый день. Подскажите, пожалуйста, исправляется ли ошибка?
Comment 10 Evgeniy Korneechev 2024-02-06 09:05:21 MSK
На Linux Mint 21 не вопроизводится:
$  mate-screensaver --version
mate-screensaver 1.26.1
$  xfreerdp --version
This is FreeRDP version 2.6.1 (2.6.1)

Аналогичная версия mate-screensaver в c10f1 - проверьте на этой ветке.
Comment 11 Шевченко Денис 2024-02-06 09:18:59 MSK
(Ответ для Evgeniy Korneechev на комментарий #10)
> На Linux Mint 21 не вопроизводится:
> $  mate-screensaver --version
> mate-screensaver 1.26.1
> $  xfreerdp --version
> This is FreeRDP version 2.6.1 (2.6.1)
> 
> Аналогичная версия mate-screensaver в c10f1 - проверьте на этой ветке.
Речь шла о проблеме в KDE (ALT Workstation K), а не Mate. И только в X11 (в Wayland не воспроизводится проблема).
Comment 12 Evgeniy Korneechev 2024-02-06 09:42:02 MSK
Видимо из-за #48647 решил, что в МАТЕ тоже... Но мне кажется вопросы к скринсейверу все таки. Реализовать работу xfreerdp в окне - пока нет времени.
Comment 13 Evgeniy Korneechev 2024-02-13 14:15:21 MSK
Created attachment 15549 [details]
Тест запуска xfreerdp в окне

В окне запустить таким образом удается (это просто пример реализации - можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). Однако у меня не работает клавиатура в RDP-сеансе при этом...
Comment 14 Шевченко Денис 2024-02-13 23:40:08 MSK
(Ответ для Evgeniy Korneechev на комментарий #13)
> Создано вложение 15549 [details] [подробности]
> Тест запуска xfreerdp в окне
> 
> В окне запустить таким образом удается (это просто пример реализации -
> можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте).
> Однако у меня не работает клавиатура в RDP-сеансе при этом...

Проверил тестовый скрипт запуска xfreerdp в окне, в среде KDE (ALT Workstation K Sisyphus).
Блокировка экрана клиентской машины теперь срабатывает независимо от нахождения курсора мыши (на окне RDP сеанса или вне его). Клавиатура в RDP-сеансе тоже не работает.
Comment 15 Шевченко Денис 2024-03-12 12:20:16 MSK
(Ответ для Evgeniy Korneechev на комментарий #13)
> Создано вложение 15549 [details] [подробности]
> Тест запуска xfreerdp в окне
> 
> В окне запустить таким образом удается (это просто пример реализации -
> можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте).
> Однако у меня не работает клавиатура в RDP-сеансе при этом...

Добрый день.
Есть ли новости по исправлению ошибки?
Comment 16 Evgeniy Korneechev 2024-03-15 09:40:35 MSK
(Ответ для Шевченко Денис на комментарий #15)
> Есть ли новости по исправлению ошибки?

У меня нет идей.