selinux предотвращает выполнение команды pam_exec

Помимо использования xinput, другой вариант — создать свой собственный xorg.confфайл (обычно /etc/X11/xorg.conf, но Mint может предпочесть где-то еще ). Это заставит X-сервер игнорировать его сразу после запуска X-сервера, никаких дополнительных действий не требуется. Это должно выглядеть примерно так:

Section "InputClass"
   Identifier         "disable broken device"
   MatchIsKeyboard    "on"
   MatchProduct       "full product name from 'xinput list'"
   Option             "Ignore" "on"
EndSection

См. также, например,. этот вопрос. Более подробную информацию о доступных опциях можно найти в man xorg.conf.

0
12.11.2019, 12:29
2 ответа

Я вижу, вы уже нашли ответ, но поскольку я работал над этим, я оставлю его здесь для потомков:


Если вы столкнулись с подобным отказом в selinux, вы можете использовать инструмент audit2allowдля создания обновленной политики selinux, которая разрешает это действие. Во-первых, вы, вероятно, захотите перевести selinux в разрешающий режим :

.
setenforce 0

Теперь войдите в систему и убедитесь, что ваша конфигурация PAM работает должным образом. Мы делаем это потому, что существует большая вероятность дополнительных отказов selinux после первого, и работа в разрешительном режиме гарантирует, что все они будут зарегистрированы.

Теперь вы можете снова перевести selinux в принудительный режим:

setenforce 1

Выполнить audit2allow -a. Это создаст что-то вроде следующего:

#============= sshd_t ==============

#!!!! This avc can be allowed using one of the these booleans:
#     authlogin_yubikey, nis_enabled
allow sshd_t http_port_t:tcp_socket name_connect;

Я говорю «что-то вроде», потому что (a )как я уже говорил ранее, могут быть дополнительные отказы, связанные с вашей текущей конфигурацией PAM и (b )эта команда просматривает все записи в журнале аудита., так что вы получите результаты для предыдущих отказов, которые на самом деле не связаны с вашей текущей проблемой.

В этом случаемы видим, что можем разрешить действие, которое было отклонено, установив существующее логическое значение selinux. Это будет выглядеть примерно так:

setsebool nis_enabled=1

Это может быть все, что вам нужно. Кроме того, вы можете сгенерировать обновление для своей политики selinux следующим образом:

audit2allow -a -M local

Будет создан новый файл политики local.pp. Вы можете активировать это, запустив:

semodule -i local.pp

Здесь есть полезная информация о работе с selinux , включая гораздо более подробный обзор использования audit2allow.

1
28.01.2020, 02:38

Хорошо, это заняло некоторое время, но мне удалось это исправить. Моя проблема в том, что я не знал, как проверить правила selinux, после прочтения отличного учебника Gentoo SELinux я узнал, как запрашивать правила, используяsesearch:

# sesearch --allow -s sshd_t -t unreserved_port_t -c tcp_socket -p name_connect

В этом случае я переключил свой сценарий уведомления с известного порта на случайный порт, поэтому я выполняю поиск unresolved_port_tв качестве целевого типа вместо цели http_port_t, о которой я сообщил в журнале аудита.

В списке есть это правило:

allow sshd_t unreserved_port_t:tcp_socket name_connect; [ nis_enabled ]:True

Это разрешено, но с учетом логического значения nis_enabled, которое фактически было отключено в моей системе (, проверено черезgetsebool -a | grep nis_enable).

Я использовал setsebool nis_enabled on, чтобы включить это правило, и теперь оно работает безупречно.

0
28.01.2020, 02:38

Теги

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