SystemdDoctor
мешает работе конфигурация права

Configuration file is marked world-inaccessible

systemd предупреждает, когда unit-файл или файл настроек закрыт от чтения. Сам запуск при этом проходит, но такие права обычно выставлены случайно и мешают: другие администраторы не видят описание службы, а средства проверки не могут его прочитать.

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

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

  1. Права выставлены слишком узко при создании файла

    Файл, созданный с закрытыми правами, порождает предупреждение при каждой перезагрузке описаний.

  2. В файле пытаются спрятать секреты

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

  3. Предупреждение мешает читать журнал загрузки

    Повторяющееся предупреждение при каждой перезагрузке описаний засоряет журнал и отвлекает от настоящих ошибок.

Диагностика

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

Права на ваши unit-файлы.

sudo ls -l /etc/systemd/system/*.service | head -20

Какие файлы вызывают предупреждение.

journalctl -b --no-pager | grep -i world-inaccessible | tail

Общая оценка настроек безопасности службы.

systemd-analyze security myapp.service --no-pager 2>/dev/null | head -10

Решение

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

1. Права выставлены слишком узко при создании файла
Почему происходит
Файл, созданный с закрытыми правами, порождает предупреждение при каждой перезагрузке описаний.
Как проверить
Посмотрите права на файл и сообщение.
sudo ls -l /etc/systemd/system/myapp.service
journalctl -b --no-pager | grep -i world-inaccessible | tail -5
Как исправить
Установите обычные права чтения для всех и владельца root. Секреты в unit-файле хранить нельзя — для них есть отдельный механизм учётных данных.
sudo chmod 644 /etc/systemd/system/myapp.service
2. В файле пытаются спрятать секреты
Почему происходит
Закрытые права ставят, чтобы скрыть пароль в переменной окружения. Это не работает: окружение процесса видно и другими путями.
Как проверить
Посмотрите, нет ли секретов в описании.
sudo grep -iE "password|token|secret|key" /etc/systemd/system/myapp.service 2>/dev/null | sed "s/=.*/=(скрыто)/"
Как исправить
Перенесите секреты в файл окружения с узкими правами или подавайте их через механизм учётных данных: они выдаются только процессам этой службы.
[Service]
LoadCredential=api.key:/etc/myapp/api.key
3. Предупреждение мешает читать журнал загрузки
Почему происходит
Повторяющееся предупреждение при каждой перезагрузке описаний засоряет журнал и отвлекает от настоящих ошибок.
Как проверить
Посмотрите, сколько раз оно повторяется.
journalctl -b --no-pager | grep -ci world-inaccessible
Как исправить
Исправьте права на всех своих unit-файлах разом: предупреждение исчезнет и журнал станет читаемым.

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

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

systemd[1]: /etc/systemd/system/myapp.service:1: Configuration file /etc/systemd/system/myapp.service is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway.

$ sudo ls -l /etc/systemd/system/myapp.service
-rw------- 1 root root 412 Sep 15 18:58 /etc/systemd/system/myapp.service

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

Источники

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