From b2db6adaab4c0151aa9a27e43021e858a08f4867 Mon Sep 17 00:00:00 2001 From: asmeron Date: Wed, 16 Oct 2024 22:42:56 +0600 Subject: [PATCH] Add [config] DM_HINT_PASSWORD= --- ublinux/default | 3 +-- ublinux/functions | 4 +++- ublinux/rc.desktop/all/ldconfig | 4 ++-- ublinux/rc.local.d/43-repository | 6 +++--- ublinux/rc.post.d/10-brand-backgrounds | 2 +- ublinux/rc.preinit.d/51-autologin | 4 ++-- ublinux/rc.preinit/10-accounts | 29 +++++++++++++------------- ublinux/rc.xorg/01-de-background | 2 +- ublinux/templates/ublinux-data.ini | 6 +++--- 9 files changed, 31 insertions(+), 29 deletions(-) diff --git a/ublinux/default b/ublinux/default index ca6b65e..e0987a0 100644 --- a/ublinux/default +++ b/ublinux/default @@ -147,9 +147,8 @@ NOSECUREROOTPASSWD=${DEFAULTROOTPASSWD} ADMGROUPS=wheel,vboxsf,disk ADMUID=1000 ADDADM=yes - -#/rc.preinit/10-accounts HASHPASSWD=yescrypt +DM_HINT_PASSWORD= #/rc.preinit/50-xorg #NVIDIATEST="nvidia-current nvidia340 nvidia304 nvidia" diff --git a/ublinux/functions b/ublinux/functions index 05d6c96..ccaa2ee 100755 --- a/ublinux/functions +++ b/ublinux/functions @@ -1388,13 +1388,15 @@ ubconfig_exec_system(){ case "[${SECTION_NAME}]" in "[${SYSCONF}/config]"|"[config]") case "${NAME_VAR}" in + # --> OLD config HOSTNAME) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/30-network-hostname ;; SERVICESSTART|SERVICESNOSTART|SERVICESMASK|SERVICESUNMASK|\ SERVICES_ENABLE|SERVICES_DISABLE|SERVICES_MASK|SERVICES_UNMASK) ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/20-services exec_services_enabledisable "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ${ROOTFS}/usr/lib/ublinux/rc.preinit.d/20-services exec_services_startstop_live "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" + # <-- OLD config ;; - FIRSTSTART) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_99_firststart "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; + DM_HINT_PASSWORD) ${ROOTFS}/usr/lib/ublinux/rc.preinit/10-accounts exec_99_dm_hint_password "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;; *) NO_FIND_EXCUTE=1 ;; esac ;; diff --git a/ublinux/rc.desktop/all/ldconfig b/ublinux/rc.desktop/all/ldconfig index 321134a..6916be1 100755 --- a/ublinux/rc.desktop/all/ldconfig +++ b/ublinux/rc.desktop/all/ldconfig @@ -4,5 +4,5 @@ ENABLED=no [[ ${ENABLED} == "yes" ]] || exit 0 . /usr/lib/ublinux/default -SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null -[ "$RUNLDCONFIG" != "yes" -a "$RUNLDCONFIG" != "no" ] && bash -c "sleep 30 && sudo /sbin/ldconfig" & +SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null +[[ ${RUNLDCONFIG} != "yes" && ${RUNLDCONFIG} != "no" ]] && bash -c "sleep 30 && sudo /sbin/ldconfig" & diff --git a/ublinux/rc.local.d/43-repository b/ublinux/rc.local.d/43-repository index 82b59d7..db73d77 100755 --- a/ublinux/rc.local.d/43-repository +++ b/ublinux/rc.local.d/43-repository @@ -452,9 +452,9 @@ exec_04_repopublic_cache(){ ## 12h # Каждые 12 часов, возможно указать любую цифру ## *7d # Каждые 7 дней, возможно указать любую цифру ## 1M # Один раз в месяц, возможно указать любую цифру -## Настройка репозиториев обновления -## AUTOUPDATE[repos]= -## # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию системные +## TODO: Настройка репозиториев обновления +## AUTOUPDATE[repos]=,, +## # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию все системные ## AUTOUPDATE=enable exec_autoupdate(){ enable_autoupdate(){ diff --git a/ublinux/rc.post.d/10-brand-backgrounds b/ublinux/rc.post.d/10-brand-backgrounds index 8148c3d..4854e18 100755 --- a/ublinux/rc.post.d/10-brand-backgrounds +++ b/ublinux/rc.post.d/10-brand-backgrounds @@ -453,7 +453,7 @@ insert_background_icon(){ [[ -z ${BUILD_MANUAL} ]] && cp -pf "${wallpapers_dst}/${edition_os}_boot_${fname_ratio}_${RESOLUTION}.jpg" "${default_dm_img}" # Если пароли по умолчанию ublinux, то вывести подсказку пароля - [[ -z ${BUILD_MANUAL} && -n ${FIRSTSTART} ]] && insert_background_dm_txtpass + [[ -z ${BUILD_MANUAL} && -n ${DM_HINT_PASSWORD} ]] && insert_background_dm_txtpass if [[ -z ${BUILD_MANUAL} ]] && [[ ${GRAFFITI} != @(none|no|disable) ]]; then [[ -z $3 ]] && state_mode="$(cmdline_value ub.mode)" || state_mode=$3 diff --git a/ublinux/rc.preinit.d/51-autologin b/ublinux/rc.preinit.d/51-autologin index 4024a88..5251062 100755 --- a/ublinux/rc.preinit.d/51-autologin +++ b/ublinux/rc.preinit.d/51-autologin @@ -62,8 +62,8 @@ EOF #PASS_ADMUID=$(grep "^$(grep ":${ADMUID}:${ADMUID}:" ${ROOTFS}/etc/passwd | cut -d: -f1):" ${ROOTFS}/etc/shadow | cut -d: -f2) #" [[ $(cat "${ROOTFS}/etc/login.defs") =~ ($'\n'|^)+UID_MIN[[:blank:]]+([[:digit:]]+)($'\n'|$)+ ]] && UID_MIN=${BASH_REMATCH[2]:-1000} MORE_ONE_USER=$(awk -F':' -v USER_MIN=${UID_MIN} '$3 > USER_MIN && $1 != "nobody" {print $1}' ${ROOTFS}/etc/passwd) - # Если в системе всего один пользователь и FIRSTSATART, то автологин - [[ -z ${MORE_ONE_USER} && -n ${FIRSTSTART} ]] && AUTOLOGINUSER=yes + # Если в системе всего один пользователь и DM_HINT_PASSWORD, то автологин + [[ -z ${MORE_ONE_USER} && -n ${DM_HINT_PASSWORD} ]] && AUTOLOGINUSER=yes fi if [[ ${AUTOLOGINUSER} == @("yes"|"enable") && -n ${DISPLAYMANAGER_DEFAULTUSER} ]]; then diff --git a/ublinux/rc.preinit/10-accounts b/ublinux/rc.preinit/10-accounts index 2eba6fd..004d3c1 100755 --- a/ublinux/rc.preinit/10-accounts +++ b/ublinux/rc.preinit/10-accounts @@ -551,10 +551,10 @@ exec_06_useradd(){ # ----------- # Вызов как исполнителя после ubconfig if [[ -n ${PARAM} && -z ${ROOTFS} ]]; then -# # Добавим пользователя в дополнительные группы -# exec_08_user_members "USERADD[${SELECT_USERNAME}]=${USERADD[${SELECT_USERNAME}]}" -# # Задаём параметры пароля пользователю /etc/shadow из USERSHADOW[user] -# [[ -n ${USERSHADOW[${SELECT_USERNAME}]} ]] && exec_07_usershadow "USERSHADOW[${SELECT_USERNAME}]=${USERSHADOW[${SELECT_USERNAME}]}" + # Добавим пользователя в дополнительные группы + exec_08_user_members "USERADD[${SELECT_USERNAME}]=${USERADD[${SELECT_USERNAME}]}" + # Задаём параметры пароля пользователю /etc/shadow из USERSHADOW[user] + [[ -n ${USERSHADOW[${SELECT_USERNAME}]} ]] && exec_07_usershadow "USERSHADOW[${SELECT_USERNAME}]=${USERSHADOW[${SELECT_USERNAME}]}" # Добавить параметр в ${FILE_ROOT_USERS}=.users_credential и удалить хеш пароля параметра USERADD[.*] в /etc/ublinux/users if [[ -f ${FILE_ROOT_USERS} ]]; then sed "/USERADD\[${SELECT_USERNAME}\]=/d" -i "${FILE_ROOT_USERS}" @@ -757,30 +757,31 @@ exec_08_user_members(){ fi } -# Autodetect firststart -# Если пароли по умолчанию, то firststart -exec_99_firststart(){ -#echo "exec_99_firststart" +# Autodetect DM_HINT_PASSWORD +# Если пароли по умолчанию, то DM_HINT_PASSWORD=yes +exec_99_dm_hint_password(){ +#echo "exec_99_dm_hint_password" [[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && local COMMAND=$1 && shift [[ -n ${COMMAND} ]] || local COMMAND="set=" local PARAM="$@" if [[ -n ${PARAM} ]]; then - local FIRSTSTART= + local DM_HINT_PASSWORD= [[ ${PARAM%%=*} =~ [!\$%\&()*+,/\;\<\=\>?\^\{|\}~] ]] || eval "${PARAM%%=*}=\${PARAM#*=}" fi if [[ -n ${ROOTFS} ]]; then if grep -q "^root:${DEFAULTROOTPASSWD}:" ${ROOTFS}/etc/shadow \ && grep -q "^$(grep ".*:x:${ADMUID}:" ${ROOTFS}/etc/passwd | cut -d: -f1):${DEFAULTPASSWD}:" ${ROOTFS}/etc/shadow; then - grep -q "^FIRSTSTART$" ${SYSCONF}/config 2>/dev/null || echo "FIRSTSTART=yes" >> ${SYSCONF}/config + [[ $(cat ${SYSCONF}/config 2>/dev/null) =~ ($'\n'|^)+'DM_HINT_PASSWORD=' ]] || echo "DM_HINT_PASSWORD=yes" >> ${SYSCONF}/config + else + sed "/DM_HINT_PASSWORD=/d" -i ${SYSCONF}/config fi - elif [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ -n ${FIRSTSTART} ]]; then - [[ $(cat ${SYSCONF}/config 2>/dev/null) =~ ($'\n'|^)+'FIRSTSTART=' ]] || echo "FIRSTSTART=yes" >> ${SYSCONF}/config + elif [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ -n ${DM_HINT_PASSWORD} ]]; then + true elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then - sed "/FIRSTSTART=/d" -i ${SYSCONF}/config + true fi } - ################ ##### MAIN ##### ################ diff --git a/ublinux/rc.xorg/01-de-background b/ublinux/rc.xorg/01-de-background index 08b9fe7..fb791ee 100755 --- a/ublinux/rc.xorg/01-de-background +++ b/ublinux/rc.xorg/01-de-background @@ -145,7 +145,7 @@ if [ -x /usr/bin/convert ] ;then if [ "$GRAFFITI" != "no" -a -x /usr/bin/composite ] ;then . /usr/lib/ublinux/default A=0 - [[ -n ${FIRSTSTART} ]] && A=1 + [[ -n ${DM_HINT_PASSWORD} ]] && A=1 [ "$A" = "1" ] && composite -gravity NorthWest /usr/share/ublinux/graffiti/warning.png /tmp/background.jpg /tmp/background2.jpg [ -f /tmp/background2.jpg ] && mv -f /tmp/background2.jpg /tmp/background.jpg fi diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 551e42c..cdc4e70 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -459,9 +459,9 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,swapspace,systemd-timesyncd,cups ## 12h # Каждые 12 часов, возможно указать любую цифру ## *7d # Каждые 7 дней, возможно указать любую цифру ## 1M # Один раз в месяц, возможно указать любую цифру -## Настройка репозиториев обновления -## AUTOUPDATE[repos]= -## # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию системные +## TODO: Настройка репозиториев обновления +## AUTOUPDATE[repos]=,, +## # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию все системные ## AUTOUPDATE=enable ## ## Врямя проведения последнего обновления