Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Configuration file /etc/systemd/system/app.service is not executable Linux / DevOps

Configuration file is not executable — Ошибка прав доступа к unit-файлу

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Предупреждение «Configuration file /etc/systemd/system/app.service is not executable (or has executable bit set)» (сопровождающееся «Configuration file has wrong permissions») регистрируется парсером systemd Unit Parser. Ошибка возникает, когда unit-файл конфигурации службы ошибочно имеет установленный бит исполнения (executable bit: chmod +x / 0755) либо файл принадлежит не root, а другому пользователю. С точки зрения безопасности systemd требует, чтобы декларативные конфигурации имели права строго 0644.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
Unit File PermissionsRequired: 0644 (-rw-r--r--)Конфигурационные файлы systemd являются декларативным текстом (INI), а не скриптами.
Executable Bit FlagInvalid: +x (0755 / 0777)Установка исполняемого бита воспринимается парсером как потенциальная уязвимость безопасности.
Owner / Grouproot:rootФайлы в /etc/systemd/system/ должны контролироваться строго суперпользователем.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Проверка текущих прав доступа к unit-файлам

# Просмотр прав на unit-файлы в каталоге /etc/systemd/system/:
ls -la /etc/systemd/system/*.service

Если вы видите права -rwxr-xr-x (0755) или -rwxrwxrwx (0777), их необходимо немедленно исправить.

Сценарий 2: Приведение прав доступа к эталонным значениям systemd (0644)

# Установка корректного владельца root:root:
sudo chown root:root /etc/systemd/system/app.service

# Снятие исполняемого бита и установка прав 644:
sudo chmod 644 /etc/systemd/system/app.service

# Массовое исправление всех кастомных юнитов:
sudo find /etc/systemd/system/ -name "*.service" -exec chmod 644 {} \;
sudo find /etc/systemd/system/ -name "*.service" -exec chown root:root {} \;

Сценарий 3: Перезагрузка конфигураций менеджера systemd

# Применение исправленных прав парсером:
sudo systemctl daemon-reload

# Проверка статуса службы без предупреждений:
sudo systemctl status app.service
CI/CD пайплайны развертывают unit-файлы с некорректными правами доступа?
ITSTM проведет аудит Ansible-плейбуков и настроит безопасные политики деплоя systemd-инфраструктуры.
Практический опыт инженера: При использовании Ansible для доставки сервисов всегда явно указывайте параметры задачи 'copy' или 'template': owner: root, group: root, mode: '0644', чтобы исключить возникновение предупреждений парсера.

Частые вопросы (FAQ)

Почему unit-файл не должен быть исполняемым (executable)?

Unit-файлы — это статические конфигурационные файлы формата INI. Исполняемым должен быть только бинарный файл или скрипт, указанный внутри директивы ExecStart=, а не сам .service файл.

Может ли systemd полностью отказаться запускать сервис с правами 0777?

В новых версиях systemd (v245+) менеджер может блокировать загрузку юнитов с небезопасными правами (World-Writable) для предотвращения локального повышения привилегий.

Где должны располагаться системные и пользовательские unit-файлы?

Системные файлы администратора располагаются в /etc/systemd/system/, пакетные файлы дистрибутива — в /lib/systemd/system/, а файлы пользовательских сессий — в ~/.config/systemd/user/.

Какая команда безопасно создает новый unit-файл?

Используйте команду sudo systemctl edit --force --full my_app.service, которая автоматически создаст файл с правильными правами 0644.