SystemdDoctor
служба не работает изоляция возможности редкое

status=227/NO_NEW_PRIVILEGES в systemd

Код 227 относится к параметру NoNewPrivileges=yes, который запрещает процессу получать новые привилегии — в том числе через setuid-программы. Сам вызов почти никогда не отказывает, поэтому код редкий и указывает на необычное окружение.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Окружение запрещает установку флага

    Во вложенных контейнерах и при внешней фильтрации системных вызовов вызов prctl с этим флагом может быть заблокирован.

  2. Противоречие с постоянными возможностями

    Запрет новых привилегий и выдача постоянных возможностей несовместимы: одно закрывает механизм, который нужен другому.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Показывает шаг NO_NEW_PRIVILEGES и причину.

journalctl -xeu myapp.service --no-pager -n 20

Параметры, которые влияют на этот шаг.

systemctl show myapp.service -p NoNewPrivileges -p AmbientCapabilities -p SystemCallFilter

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Окружение запрещает установку флага
Почему происходит
Во вложенных контейнерах и при внешней фильтрации системных вызовов вызов prctl с этим флагом может быть заблокирован.
Как проверить
Определите окружение и посмотрите сообщение в журнале.
systemd-detect-virt
journalctl -xeu myapp.service -n 20 --no-pager
Как исправить
Уберите NoNewPrivileges=yes в таком окружении: изоляцию всё равно обеспечивает контейнер.
2. Противоречие с постоянными возможностями
Почему происходит
Запрет новых привилегий и выдача постоянных возможностей несовместимы: одно закрывает механизм, который нужен другому.
Как проверить
Проверьте оба параметра.
systemctl show myapp.service -p NoNewPrivileges -p AmbientCapabilities
Как исправить
Оставьте либо запрет привилегий, либо постоянные возможности.

Пример вывода

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

× myapp.service - My application
     Active: failed (Result: exit-code) since Mon 2026-09-14 22:15:22 MSK; 1s ago
    Process: 22400 ExecStart=/usr/local/bin/myapp (code=exited, status=227/NO_NEW_PRIVILEGES)

systemd[22400]: myapp.service: Failed at step NO_NEW_PRIVILEGES spawning /usr/local/bin/myapp: Operation not permitted

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

  • status=218/CAPABILITIES в systemd Код 218/CAPABILITIES: не удалось применить набор возможностей процесса из CapabilityBoundingSet= или AmbientCapabilities=.
  • status=213/SECUREBITS в systemd Код 213/SECUREBITS: не удалось выставить биты безопасности процесса из SecureBits=. Редкий параметр, требующий прав.
  • status=228/SECCOMP в systemd Код 228/SECCOMP: не удалось применить фильтр системных вызовов из SystemCallFilter=. Причины: неизвестное имя вызова, отсутствие поддержки в ядре.
  • status=236/SMACK_PROCESS_LABEL в systemd Код 236/SMACK_PROCESS_LABEL: не удалось выставить метку SMACK процессу службы. Встречается на системах со SMACK.
  • No such file or directory в журнале службы Служба не находит файл или каталог. Разбор: путь, момент запуска, изоляция unit-файла, символические ссылки, приватный /tmp.
  • Operation not permitted в журнале службы Операция запрещена: не хватает возможностей процесса, мешает seccomp или модуль безопасности. Отличие от Permission denied.
  • Permission denied в журнале службы Отказ в доступе у службы systemd: права на файл, каталоги по пути, пользователь службы, параметры изоляции, SELinux и AppArmor.
  • Protocol not supported при создании сокета Ошибка 93: семейство или протокол не поддержаны. Разбор для IPv6, ограничений изоляции и контейнеров.

Источники

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