SystemdDoctor
ReadWritePaths= [Service]

ReadWritePaths= и ReadOnlyPaths=: точечные исключения изоляции

Перечисляет пути, доступные службе для записи (ReadWritePaths=) или только для чтения (ReadOnlyPaths=), поверх общих правил изоляции. InaccessiblePaths= скрывает путь полностью.

Что делает

Это правильный способ жить с ProtectSystem=strict: изоляция остаётся жёсткой, а нужные каталоги открываются по одному. Так видно, куда служба вообще пишет — это само по себе полезно знать.

Путь должен существовать на момент запуска, иначе служба падает с кодом 226/NAMESPACE. Если путь может отсутствовать, перед ним ставят дефис: тогда его отсутствие не считается ошибкой.

Где ставится. В секции [Service]. Пути перечисляются через пробел, допустимо несколько строк.

Значения

ЗначениеЧто происходит
ReadWritePaths=/var/lib/sharedразрешить запись в путь.
ReadWritePaths=-/var/lib/optionalпуть необязателен: отсутствие не ошибка.
ReadOnlyPaths=/etc/myappтолько чтение, даже если остальное доступно для записи.
InaccessiblePaths=/etc/shadowпуть полностью скрыт от службы.

Пример

Жёсткая изоляция с одним разрешённым каталогом.

[Service]
ProtectSystem=strict
ReadWritePaths=/var/lib/shared-uploads
ReadOnlyPaths=/etc/myapp
InaccessiblePaths=/home

Порядок значения не имеет: systemd собирает представление файловой системы из всех правил сразу.

Типичные ошибки

Несуществующий путь даёт код 226/NAMESPACE при запуске — самая частая ошибка с этими параметрами.

Разрешение пути не отменяет обычные права: пользователю службы всё равно нужен доступ.

В переопределении через drop-in списки дополняются, а не заменяются: чтобы заменить, сначала сбросьте значение пустой строкой.

Связанные ошибки

  • status=226/NAMESPACE в systemdКод 226/NAMESPACE: не удалось настроить пространства имён монтирования, UTS или IPC. Частая причина — путь в ReadOnlyPaths= или ProtectHome=.
  • Read-only file system в журнале службыСлужба не может писать: файловая система только для чтения. Разбор: параметры изоляции unit, монтирование ro, ошибки файловой системы.
  • Permission denied в журнале службыОтказ в доступе у службы systemd: права на файл, каталоги по пути, пользователь службы, параметры изоляции, SELinux и AppArmor.

Рядом стоящие параметры

Источники

  • systemd.exec(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026