В классическом терминале xterm имеется специальная опция -into. Она позволяет "вставить" терминал в окно, идентификатор которого известен. Это свойство XTerm используется для быстрого добавления терминала в ПО, например если программа написана на Python с использованием библиотеки Tkinter.
Итак, интеграция окна происходит через давно существующую опцию -into терминала xterm. Программа на Tkinter создает окно, выясняет X-идентификатор этого окна, и вставляет в него терминал xterm путем запуска команды:
xterm -into <id_окна> ... прочие опции ...
Однако, в обновлениях Astra Linux 1.6 старше 12 Update перестал работать текстовый ввод в xterm. То есть, отключилась возможность писать команды в интегрированном xterm, ввод просто не работает.
В файле /var/log/fly-dm/Xorg.0.log обнаруживаются следующие ошибки:
[ 28822.592] XPARSEC: keyloger /usr/bin/xterm(pid=23872) detected by receive event from other owned and-or mac level window (/usr/bin/python3.5,pid=23863)
[ 28822.593] XPARSEC: keyloger /usr/bin/xterm(pid=23872) detected by receive event from other owned and-or mac level window (/usr/bin/python3.5,pid=23863)
То есть, ввод блокирует обновленная подсистема безопасности PARSEC. Она думает, что клавиатурный ввод утекает в другое окно. Техподдержка говорит так: "Логика работы функции блокировки следующая: приложение получает клавиатурные нажатия, выполненные оператором в окнах, созданных не этим приложением, поэтому ввод запрещен".
Решение данной проблемы достаточно простое. Необходимо в файл /etc/X11/trusted добавить строку:
/usr/bin/xterm(KBD_R)
Чтобы это сделать, можно от суперпользователя выполнить команду:
echo "/usr/bin/xterm(KBD_R)" >> /etc/X11/trusted
После выполнения данной команды ввод в GUI интерфейсе заработает. Перегружать компьютер или рабочий стол нет необходимости. Достаточно просто перезапустить само GUI-приложение, в котором используется XTerm-терминал.
Значения ролей, устанавливаемых в файле настройки доверенных программ /etc/X11/trusted, следующие:
| Роль | Значение | 
| PROP_R | Работать со свойствами других окон | 
| CLIPB_R | Работать с буфером обмена (для менеджеров буфера обмена) | 
| MAC_R | Подключаться с иной меткой (выше), чем метка сессии | 
| HOST_R | Управлять механизмом Host Access Control | 
| KBD_R | Оперировать с некоторыми событиями ввода (для виртуальных клавиатур) | 
| SNAP_R | Делать скриншоты (в т. ч. VNC-серверу, композитным менеджерам и т. п.) | 
| NESTED_R | Для пометки вложенных Х-серверов (Xephyr, Xnest и т. п.) | 
| REPARENT_R | Менять окна родительских окон (для менеджеров окон) | 
| WM_R | Для менеджеров окон, комбинация PROP_R, SNAP_R, REPARENT_R, KBD_R | 
| ALL_R | Комбинация всех ролей |