From 6e314c3a60ef35bbe0417b8790fff0eaf46141d7 Mon Sep 17 00:00:00 2001 From: asmeron Date: Sun, 9 Mar 2025 15:22:08 +0600 Subject: [PATCH] Fix NTPSERVERS --- ublinux/rc.preinit.d/21-ntp | 33 +++++++++++++----------- ublinux/templates/ublinux-data.ini | 40 ++++++++++++++---------------- 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/ublinux/rc.preinit.d/21-ntp b/ublinux/rc.preinit.d/21-ntp index 06a55da..ec5f0e7 100755 --- a/ublinux/rc.preinit.d/21-ntp +++ b/ublinux/rc.preinit.d/21-ntp @@ -33,6 +33,8 @@ SOURCE=${SYSCONF}/network; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null multi-user.target.wants/ptp4l.service ptp4l multi-user.target.wants/phc2sys.service phc2sys" + CONFIG_TIMESYNCD="${ROOTFS}/etc/systemd/timesyncd.conf.d/ubconfig.conf" + exec_ntp_servers_set(){ restart_systemd_ntp(){ if [[ -n ${ROOTFS} ]]; then @@ -45,33 +47,32 @@ exec_ntp_servers_set(){ } ISSYSTEMD=$(readlink -fq ${ROOTFS}/usr/bin/init | grep "lib/systemd/systemd$") if [[ ${NTPSERVERS,,} == "dhcp" ]]; then - # Вызывая из NetworkManager скрипта, переменна ${NTPSERVERS} перезаписана на сервера NTP из DHCP + # Вызывая из NetworkManager скрипта, переменную ${NTPSERVERS} перезаписать на сервера NTP из DHCP [[ -n $1 ]] && local NTPSERVERS="$1" fi - if [[ ${NTPSERVERS,,} == @(stop|no|disable) ]]; then + if [[ ${NTPSERVERS,,} == "disable" ]]; then + # Не настраивать сервер времени + true + elif [[ ${NTPSERVERS,,} == "stop" ]]; then + # Остановить и отключить сервисы синхронизации времени exec_ntp_servers_stop elif [[ ${NTPSERVERS,,} == "dhcp" ]]; then - # Активная systemd и выбран сервис NTP_SYSTEMSERVICE=systemd-timesyncd.service - if [[ -n ${ISSYSTEMD} && ${NTP_SYSTEMSERVICE} == "systemd-timesyncd.service" && -f ${ROOTFS}/usr/lib/systemd/system/systemd-timesyncd.service ]]; then - restart_systemd_ntp - fi + [[ -n ${ISSYSTEMD} ]] && restart_systemd_ntp elif [[ -n ${NTPSERVERS} ]]; then [[ ${NTPSERVERS,,} == "default" ]] && NTPSERVERS=${NTPSERVERS_DEFAULT} [[ ${NTPSERVERS,,} == "ntp-ru" ]] && NTPSERVERS=${NTPSERVERS_RU} # Активная systemd и выбран сервис NTP_SYSTEMSERVICE=systemd-timesyncd.service - if [[ -n ${ISSYSTEMD} && ${NTP_SYSTEMSERVICE} == "systemd-timesyncd.service" && -f ${ROOTFS}/usr/lib/systemd/system/systemd-timesyncd.service ]]; then + if [[ -n ${ISSYSTEMD} && ${NTP_SYSTEMSERVICE} == "systemd-timesyncd.service" && -f ${ROOTFS}/usr/lib/systemd/system/${NTP_SYSTEMSERVICE} ]]; then NTPSERVERS=$(tr ',;' ' ' <<< ${NTPSERVERS}) -# CONFIG_TIMESYNCD="${ROOTFS}/etc/systemd/timesyncd.conf.d/ublinux${ETH_INTERFACE}.conf" - CONFIG_TIMESYNCD="${ROOTFS}/etc/systemd/timesyncd.conf.d/ubconfig.conf" [[ -d ${CONFIG_TIMESYNCD%/*} ]] || mkdir -p ${CONFIG_TIMESYNCD%/*} - rm -f ${CONFIG_TIMESYNCD%/*}/ubconfig*.conf + find ${CONFIG_TIMESYNCD%/*}/ -name "ubconfig*.conf" -delete 2>/dev/null cat <<-EOF > "${CONFIG_TIMESYNCD}" [Time] NTP=${NTPSERVERS} FallbackNTP=${NTPSERVERS_FALLBACK} EOF - restart_systemd_ntp fi + [[ -n ${ISSYSTEMD} ]] && restart_systemd_ntp fi } exec_ntp_servers_stop(){ @@ -80,21 +81,25 @@ exec_ntp_servers_stop(){ while IFS=' ' read ITEM_NTP_SERVICE ITEM_NTP_PROCESS; do [[ -z ${ITEM_NTP_SERVICE} || -z ${ITEM_NTP_PROCESS} ]] && continue if [[ -n ${ISSYSTEMD} && -n ${ROOTFS} ]]; then - ${CMD_CHROOT} /usr/bin/systemctl --quiet disable ${ITEM_NTP_SERVICE##*/} &>/dev/null + ${CMD_CHROOT} /usr/bin/systemctl --quiet disable ${ITEM_NTP_SERVICE##*/} &>/dev/null elif [[ -n ${ISSYSTEMD} ]]; then - /usr/bin/systemctl --quiet disable --now ${ITEM_NTP_SERVICE##*/} &>/dev/null || pkill -f ${ITEM_NTP_PROCESS} + /usr/bin/systemctl --quiet is-enabled ${ITEM_NTP_SERVICE##*/} && /usr/bin/systemctl --quiet disable ${ITEM_NTP_SERVICE##*/} &>/dev/null + /usr/bin/systemctl --quiet is-active ${ITEM_NTP_SERVICE##*/} && { /usr/bin/systemctl --quiet stop ${ITEM_NTP_SERVICE##*/} &>/dev/null || pkill -f ${ITEM_NTP_PROCESS}; } + [[ ${NTP_SYSTEMSERVICE} == "systemd-timesyncd.service" ]] && find ${CONFIG_TIMESYNCD%/*}/ -name "ubconfig*.conf" -delete 2>/dev/null fi done < <(tr -d '\t' <<< ${NTP_SERVICES_PROCESS}) + true # Для выполнения из ubconfig со статусом ОК } ################ ##### MAIN ##### ################ - if [[ -z $@ || $1 == @("set="|"set+="|"set++=") ]]; then + if [[ -z $@ || $1 == @("set"|"set="|"set+="|"set++=") ]]; then shift exec_ntp_servers_set $@ elif [[ $1 == @("set-="|"set--="|"remove") ]]; then shift exec_ntp_servers_stop $@ + exec_ntp_servers_set $@ fi diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 36ef84d..bef5192 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -125,9 +125,20 @@ VERSION= #ENVIROMENT[profile:VAR_PROFILE]="my value for all users" #ENVIROMENT[superadmin:VAR_USER]="my value for select user" +## Тип используемого профиля конфигурации PAM авторизации, authselect. Профили /usr/share/authselect/default +## AUTHPAM=|disable|no|off +## # Профиль +## *local # Local users only for local installations, default +## nis # Enable NIS for system authentication +## sssd # Enable SSSD for system authentication (also for local users only) +## winbind # Enable winbind for system authentication +## disable|no|off # Отключить выбор профиля +## AUTHPAM=local +## AUTHPAM=disable +#AUTHPAM=sssd -## Настройки профиля конфигурации PAM авторизации, authselect. Профили /usr/share/authselect/default -## AUTHPAM[]=|disable|no|off +## Функции для профиля конфигурации PAM авторизации, authselect. Профили /usr/share/authselect/default +## AUTHPAM[]= ## # Профиль ## *local # Local users only for local installations, default ## nis # Enable NIS for system authentication @@ -138,23 +149,10 @@ VERSION= ## with-fingerprint with-pam-u2f with-pam-u2f-2fa without-nullokwithout-pam-u2f-nouserok ## with-smartcard with-smartcard-lock-on-removal with-smartcard-required ## with-mdns4 with-mdns6 with-mkhomedir with-mkhomedir-simple with-nispwquality -## disable|no|off # Отключить выбор профиля ## Информация о профиле: authselect show sssd #AUTHPAM[local]=with-faillock,with-time,with-systemd-homed #AUTHPAM[sssd]=with-faillock,with-time,with-systemd-homed,with-mkhomedir-simple -## Тип используемого профиля конфигурации PAM авторизации, authselect. Профили /usr/share/authselect/default -## AUTHPAM=|disable|no|off -## # Профиль -## *local # Local users only for local installations, default -## nis # Enable NIS for system authentication -## sssd # Enable SSSD for system authentication (also for local users only) -## winbind # Enable winbind for system authentication -## AUTHPAM=local -## AUTHPAM=disable -#AUTHPAM=sssd - - ## Алгоритм сжатия модулей по умолчанию #MKSQFS_OPTS="-b 512K -comp xz -Xbcj x86" @@ -410,8 +408,8 @@ VERSION= ## disable|no|none # Выключить публикацию ## listing # Включить WEB обозреватель файлов. Не обязательный ## # Порт по которому доступен репозиторий. По умолчанию: 80. Не обязательный -## # Параметры авторизации, имя пользователя. Не обязательный -## # Параметры авторизации, открытый пароль или тип хеша. Не обязательный +## # Параметры авторизации, имя пользователя. Не обязательный. +## # Параметры авторизации, открытый пароль или тип хеша. Не обязательный. Обязателен, если задан ## # Не зашифрованный пароль ## sha256 # Использовать зашифрованный пароль SHA256, применять только совместно с ## sha512 # Использовать зашифрованный пароль SHA512, применять только совместно с @@ -1055,13 +1053,13 @@ VERSION= #IPV6=no ## Серверы времени -## NTPSERVERS=*dhcp|default|ntp-ru|stop|disable| +## NTPSERVERS=*dhcp|default|ntp-ru||disable|stop ## *dhcp # Выбрать сервер времени предложенный DHCP. По умолчанию ## default # Выбрать сервера времени по умолчанию: 0, 1, 2 и 3.pool.ntp.org указывают на случайно выбранные из пула сервера. Выбираются заново каждый час ## ntp-ru # Выбрать сервера времени: ntp1.vniiftri.ru ntp2.vniiftri.ru ntp3.vniiftri.ru ntp4.vniiftri.ru ntp21.vniiftri.ru ru.pool.ntp.org -## stop|no|disable # Отключить NTP синхронизацию принудительно -## # Список серверов, через ',' или ';', например =ntp1.vniiftri.ru,ru.pool.ntp.org -## не задано # Не настраивать автоматически +## # Список серверов через ',' или ';' Например =ntp1.vniiftri.ru,ru.pool.ntp.org +## disable # Не настраивать автоматически +## stop # Отключить NTP синхронизацию принудительно #NTPSERVERS=dhcp ## Отключено