LINUX.ORG.RU
решено ФорумAdmin

systemd user unit fencing

 ,


0

1

Привет!

Как можно научить systemd в пользовательском режиме использовать опции огораживания, вроде InaccessibleDirectories?

Есть такой юнит:

[Unit]
Description=Isolated service
After=graphical.target

[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/bash -c 'env > /tmp/123'
InaccessibleDirectories = /boot

От root работает нормально, а если запускать от пользователя(systemctl --user start test), то падает с таким логом:

ноя 26 23:40:43 desktop systemd[19519]: Failed at step NAMESPACE spawning /usr/bin/bash: Operation not permitted
ноя 26 23:40:43 desktop systemd[430]: test.service: main process exited, code=exited, status=226/NAMESPACE
ноя 26 23:40:43 desktop systemd[430]: Unit test.service entered failed state.

Без InaccessibleDirectories всё работает от пользователя. /var/tmp не симлинк /tmp (читал, что у некоторых вызывает аналогичную ошибку)

★★★

Скорее всего, никак, поскольку создание неймспейсов (через которые реализовано ограничение доступа) требует CAP_SYS_ADMIN, а у пользовательской инстанции systemd этих прав не будет.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Печально, придётся запускать от системного инстанса. Спасибо

disarmer ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.