Можно ли объединить два устройства xinput указателя в одно устройство?

Команда getsebool -a | grep sshв моем CentOS 7 показывает

fenced_can_ssh --> off 
selinuxuser_use_ssh_chroot --> off
ssh_chroot_rw_homedirs --> off
ssh_keysign --> off
ssh_sysadm_login --> off

поэтому, исходя из вашего вопроса, команда

setsebool -P fenced_can_ssh on

должен это исправить.

Но вы также можете пойти «сложным» путем и установить пакеты setroubleshoot-serverи policycoreutils-pythonс:

yum -y install setroubleshoot-server policycoreutils-python

, а затем временно установите режим SELinux на permissiveс помощью

setenforce Permissive

После этого попробуйте все, что раньше не работало. Теперь это должно работать.

Теперь взгляните на следующий файл /var/log/audit/audit.log. Обычно он показывает обнаруженные SELinux проблемы.

grep -i "denied" /var/log/audit/audit.log

Если в журнале нет сообщений об отказе, возможно, SELinux считает, что событие создаст слишком много журнала, поэтому не записывает его. В этом случае вы можете включить регистрацию всех событий с помощью

semodule -DB

Но убедитесь, что вы вернули его в нормальное состояние с помощью semodule -Bв конце устранения неполадок.

Если вы обнаружили проблемы, теперь вы можете использовать инструмент audit2allowдля создания модуля политики для ваших нужд. audit2allowимеет много опций, поэтому вам следует сначала прочитать РАЗРЕШЕНИЕ ДОСТУПА :AUDIT2ALLOW , чтобы привыкнуть к audit2allow.

Не забудьте снова включить SELinux и (, если изменено, )включить сокращенное ведение журнала!

setenforce permissive
semodule -B

1
09.09.2021, 13:32
1 ответ

Это не полный ответ, так как потребуется кодирование с помощью libevdev , но должна быть возможность «захватить» для монопольного чтения каждое из двух устройств ввода и создать новое виртуальное устройство Uinput. объединение событий от них в единый поток. Доступны отдельные примеры C событий чтения и записи событий, но эта отдельная -страница учебник на Python содержит много интересных частей примера сборки -блока (тот же URL, разные точки на странице):

  1. Чтение событий с нескольких устройств здесь

  2. Получение монопольного доступа к устройству здесь

  3. Создайте устройство uinput с возможностями другого устройства здесь

  4. Ввод ввода здесь

Существует программа на Rust evsieve , которая может объединять и отображать устройства evdev. Вы должны проверить, можно ли настроить его так, чтобы он делал то, что вам нужно.

0
26.09.2021, 15:01

Теги

Похожие вопросы