SElinux не принимает соединение с закрытым ключом

Лично я предпочитаю избегать запоминания X в пользу знания , где искать X, когда мне это нужно. Я также являюсь поклонником позиции «лучше перестраховаться, чем сожалеть», поэтому мне всегда нравится тщательно проверять то, что я пишу, особенно под root.

В этом случае ответ находится буквально в первых строках справочной страницы:

   ln [OPTION]... [-T] TARGET LINK_NAME
   (...)
   In the 1st form, create a link to TARGET with the name LINK_NAME.

Я бы не предложил это, если бы для этого требовалось углубиться в справочную страницу, но, поскольку она находится в самом начале, ИМХО стоит трех секунд, необходимых для ввода man lnи выхода.

2
28.11.2020, 14:44
1 ответ

Вот первое сообщение журнала аудита, разбитое на несколько строк для удобства чтения:

type=USER_AVC msg=audit(1606521919.331:151): pid=1 uid=0 auid=4294967295 ses=4294967295 \
subj=system_u:system_r:kernel_t:s0 \
msg='avc:  denied  { start } for auid=n/a uid=0 gid=0 \
path="/run/systemd/transient/session-8.scope" \
cmdline="/lib/systemd/systemd-logind" \
scontext=system_u:system_r:kernel_t:s0 \
tcontext=system_u:object_r:systemd_unit_t:s0 \
tclass=service permissive=0  \
exe="/lib/systemd/systemd" \
sauid=0 hostname=? addr=? terminal=?'

Тип — USER_AVC, так что эта проверка SELinux была сделана специально, потому что код пробела пользователя -запросил ее. Таким образом, пользовательская космическая программа -, вызвавшая его, явно поддерживает SELinux.

pid=1указывает, что эта проверка была сделана для основного initпроцесса системы, который, по-видимому, systemdв данном случае.

Файл subj=— это system_u:system_r:kernel_t, поэтому рассматриваемый процесс systemd, по-видимому, был запущен в контексте ядра SELinux по умолчанию.

Поля path=и cmdline=указывают на то, что systemdявно находится в процессе запуска области пользовательского сеанса, в которой будут размещаться службы для -пользователя systemdдля этого пользователя, а также все обычные процессов этого пользователя.

Для этого потребовалось бы пересечение линии между исходным контекстом SELinux(scontext=system_u:system_r:kernel_t:s0)и целевым контекстом (tcontext=system_u:object_r:systemd_unit_t:s0), чтобы запустить исполняемый файл /lib/systemd/systemdв целевом контексте. Но по полю msg=было отказано.

Это довольно фундаментальная операция в системе, использующей systemd, поэтому хорошо -разработанная политика по умолчанию, скорее всего, покроет ее как само собой разумеющееся. Я ожидаю, что производственная -система оценок не будет приводить к подобным сбоям. Это заставляет меня думать, что ваша текущая политика SELinux может быть не полностью обновлена ​​для использования с systemd.

Поскольку ваша конфигурация SELinux включает ubuntu_user_u, это говорит о том, что вы используете Ubuntu или ее производную.

Вы уверены, что используемая вами политика SELinux актуальна для основного выпуска используемого вами дистрибутива? Если система была обновлена ​​с одной основной версии до другой, например. apt full-upgradeили аналогичный, вам могут потребоваться дополнительные шаги для повторного создания активной политики SELinux из обновленных файлов модуля политики.

0
18.03.2021, 22:47

Теги

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