SystemdDoctor
ProtectHome= [Service]

ProtectHome= в systemd: закрыть домашние каталоги от службы

Делает домашние каталоги недоступными для службы: пустыми или доступными только для чтения. Служба видит их не так, как остальная система.

Что делает

Серверной службе домашние каталоги обычно не нужны, а доступ к ним — лишний риск. Параметр закрывает /home, /root и /run/user одним движением.

Ловушка возникает, когда сайт или данные лежат в домашнем каталоге пользователя — так часто делают на небольших серверах. Тогда параметр ломает работу службы, и в журнале появляются сообщения об отсутствующих файлах: каталог для службы пуст.

Где ставится. В секции [Service].

Значения

ЗначениеЧто происходит
noпо умолчанию: доступ обычный.
yesкаталоги недоступны.
read-onlyдоступны только для чтения.
tmpfsподменяются пустой временной файловой системой.

По умолчанию: no

Пример

Служба, которой домашние каталоги не нужны.

[Service]
ProtectHome=yes
ProtectSystem=strict
StateDirectory=myapp

Если данные службы лежат в /home, этот параметр их скроет. Данные стоит перенести в /var/lib через StateDirectory=.

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

Сайт или данные в домашнем каталоге становятся недоступны: служба сообщает, что файлов нет.

WorkingDirectory= в домашнем каталоге вместе с этим параметром даёт код 200/CHDIR.

Значение read-only не мешает чтению, но ломает запись — ошибка проявится позже, при первой попытке записи.

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

  • status=226/NAMESPACE в systemdКод 226/NAMESPACE: не удалось настроить пространства имён монтирования, UTS или IPC. Частая причина — путь в ReadOnlyPaths= или ProtectHome=.
  • No such file or directory в журнале службыСлужба не находит файл или каталог. Разбор: путь, момент запуска, изоляция unit-файла, символические ссылки, приватный /tmp.
  • nginx 403 Forbidden и Permission denied на файлы сайтаnginx отдаёт 403: нет прав на файлы сайта, закрыт каталог по пути, мешает SELinux или AppArmor, нет индексного файла.

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

Где важен на практике

Источники

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