SystemdDoctor
ProtectProc= [Service]

ProtectProc= и ProcSubset=: ограничение доступа к /proc

Ограничивает, что служба видит в /proc: ProtectProc=invisible скрывает процессы других пользователей, ProcSubset=pid скрывает большинство системных файлов /proc.

Что делает

Защита разумная: прикладной службе не нужно видеть чужие процессы и командные строки, в которых иногда оказываются пароли. Но она же ломает всё, что собирает данные о системе: мониторинг, экспортёры метрик, средства диагностики.

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

Значения

ЗначениеЧто происходит
ProtectProc=defaultбез ограничений (по умолчанию).
ProtectProc=invisibleпроцессы других пользователей не видны.
ProcSubset=pidв /proc видны только каталоги процессов, системные файлы скрыты.

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

Пример

Прикладная служба без доступа к чужим процессам.

[Service]
ProtectProc=invisible
ProcSubset=pid
PrivateTmp=yes

Для служб мониторинга эти параметры задавать нельзя: они по назначению читают данные всей системы.

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

Мониторинг и экспортёры метрик перестают видеть систему.

ProcSubset=pid скрывает /proc/meminfo и подобные файлы: программы, читающие их, получают ошибку.

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

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

Источники

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