Лично я предпочитаю избегать запоминания 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
и выхода.
Вот первое сообщение журнала аудита, разбитое на несколько строк для удобства чтения:
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 из обновленных файлов модуля политики.