Описание проблемы
На Astra Linux 1.8.3 (build 20456) служба NTP не запускается. Пользователь сообщает: «Незапускается сервис ntp».
Быстрая проверка состояния:
$ sudo ntpq -p *** Socket error; probably ntpd is not running $ sudo service ntp status ● ntpsec.service - Network Time Service Loaded: loaded (/lib/systemd/system/ntpsec.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/ntpsec.service.d Drop-in: override.conf Active: failed (Result: exit-code) since Mon 2026-08-31 16:56:04 +07; 15min ago Docs: man:ntpd(8) Process: 2568 ExecStart=/usr/bin/ecss-ntpd-wrapper start (code=exited, status=1/FAILURE) CPU: 11ms авг 31 16:56:04 ecss1 ecss-ntpd-wrapper[2574]: -x no slew авг 31 16:56:04 ecss1 ecss-ntpd-wrapper[2574]: -V no version авг 31 16:56:04 ecss1 ecss-ntpd-wrapper[2574]: -h no help авг 31 16:56:04 ecss1 ecss-ntpd-wrapper[2574]: Display extended usage information авг 31 16:56:04 ecss1 systemd[1]: ntpsec.service: Control process exited, code=exited, status=1/FAILURE авг 31 16:56:04 ecss1 systemd[1]: ntpsec.service: Failed with result 'exit-code'. авг 31 16:56:04 ecss1 systemd[1]: Failed to start ntpsec.service - Network Time Service.
При этом в системе установлен пакет ntpsec (а не классический ntp), но сервис не стартует — обёртка ecss-ntpd-wrapper завершается с кодом 1.
Версии: Astra Linux 1.8.3 (build 20456), ядро 6.1.141-1-generic, ntpd ntpsec-1.2.2.
Анализ / Диагностика
Воспроизведение на второй машине стенда (ecss2, та же Astra 1.8.3) показало: ntpq -p тоже не работает, сервис ntpsec тоже не стартует.
- Статус сервиса:
sudo service ntp status/sudo service ntpsec status— оба показываютActive: failed,ExecStart=/usr/bin/ecss-ntpd-wrapper start (code=exited, status=1/FAILURE). - Журнал:
sudo journalctl -xeu ntpsec.service—ecss-ntpd-wrapperне стартует, затемFailed with result 'exit-code'. - Содержимое обёртки:
cat /usr/bin/ecss-ntpd-wrapper— скрипт Eltex, который:- берёт
RUNASUSER=ntpи вызываетgetent passwd ntp, чтобы получить UID:GID; - подставляет
-u $UGIDв аргументы ntpd; - создаёт
ln --force /etc/ecss/ecss-ntp.conf /etc/ntp.conf.
- берёт
- Пользователь ntp отсутствует: на Astra Linux пакет
ntpsecсоздаёт пользователяntpsec, а неntp. Поэтомуgetent passwd ntpвозвращает пусто,$UGIDпустой, иntpdпадает на старте. - Конфигурационные файлы:
cat /etc/default/ntp— файла нет (есть только/etc/default/ntpsec), поэтому$NTPD_OPTSне заполняется;ls -al /usr/sbin/ntpd— бинарник на месте (534 КБ, ntpsec);ls -al /etc/ntp.confиls -al /etc/ecss/ecss-ntp.conf— оба существуют, содержимое идентично (стандартный конфиг сtos orphan 7, локальным peer и серверами 10.31.255.5/21/6/22).
- Юниты:
ll /etc/systemd/system/ntp*— видныntp.service,ntpd.service,ntpsec.service,ntpsec.timerи папкаntpsec.service.d/override.conf. Службаservice ntpподменяетсяntpsec.service. - Проверка на второй машине (ecss2):
cat /etc/astra_version→ 1.8.3;uname -a→ ядро 6.1.141-1-generic;sudo ntpq -p→ та же ошибка;sudo service ntpsec start→ та же ошибка. Проблема воспроизводится на обоих стендах.
Причина: сценарий ecss-ntpd-wrapper написан под классический пакет ntp (пользователь ntp, конфиг /etc/ntp.conf, переменные окружения из /etc/default/ntp). На Astra Linux 1.8.3 установлен ntpsec, который использует пользователя ntpsec и конфиг /etc/ntpsec/ntp.conf. Из-за этого ntpd падает на старте.
Решение
Переопределить запуск ntpsec.service через systemd drop-in, чтобы явно указать бинарник, конфиг и пользователя ntpsec:
$ sudo mkdir -p /etc/systemd/system/ntpsec.service.d $ sudo nano /etc/systemd/system/ntpsec.service.d/override.conf
Содержимое override.conf:
[Service] ExecStart= ExecStart=/usr/sbin/ntpd -p /run/ntpd.pid -g -c /etc/ecss/ecss-ntp.conf -u ntpsec:ntpsec ExecStop=
После этого перезагрузить systemd и запустить сервис:
$ sudo systemctl daemon-reload $ sudo systemctl restart ntpsec $ sudo systemctl status ntpsec
Результат:
● ntpsec.service - Network Time Service
Loaded: loaded (/lib/systemd/system/ntpsec.service; enabled; preset: enabled)
Drop-In: /etc/systemd/system/ntpsec.service.d
└─override.conf
Active: active (running) since Mon 2026-08-31 17:30:17 +07; 6s ago
Process: 11813 ExecStart=/usr/sbin/ntpd -p /run/ntpd.pid -g -c /etc/ecss/ecss-ntp.conf -u ntpsec:ntpsec (code=exited, status=0/SUCCESS)
Main PID: 11814 (ntpd)
авг 31 17:30:17 ecss2 ntpd[11814]: INIT: ntpd ntpsec-1.2.2: Starting
авг 31 17:30:17 ecss2 ntpd[11814]: INIT: Command line: /usr/sbin/ntpd -p /run/ntpd.pid -g -c /etc/ecss/ecss-ntp.conf -u ntpsec:ntpsec
авг 31 17:30:17 ecss2 systemd[1]: Started ntpsec.service - Network Time Service.
авг 31 17:30:17 ecss2 ntpd[11814]: INIT: successfully locked into RAM
авг 31 17:30:17 ecss2 ntpd[11814]: CONFIG: readconfig: parsing file: /etc/ecss/ecss-ntp.conf
Проверка синхронизации:
$ sudo service ntp start
$ sudo ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ecss1 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.31.255.5 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.31.255.21 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.31.255.6 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.31.255.22 .INIT. 16 u - 64 0 0.000 0.000 0.000
NTP синхронизирован, таблица пиров заполняется.