Fix many warnings and save-clean

master
Dmitry Razumov 1 year ago
parent 48556822d0
commit 511256ba17
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -427,7 +427,7 @@ user_add(){
sed "/^${SELECT_USERNAME}:/d" -i "${FILE_SHADOW}" sed "/^${SELECT_USERNAME}:/d" -i "${FILE_SHADOW}"
printf "%s:%s:%d:%s:%s:%s:%s:%s:%s\n" "${SELECT_USERNAME}" "${SELECT_PASSWORD}" "${SELECT_LASTCHANGED}" "${SELECT_MINDAY}" "${SELECT_MAXDAY}" "${SELECT_WARN}" "${SELECT_INACTIVE}" "${SELECT_EXPIRE}" "${SELECT_NOUSE}" >> "${FILE_SHADOW}" printf "%s:%s:%d:%s:%s:%s:%s:%s:%s\n" "${SELECT_USERNAME}" "${SELECT_PASSWORD}" "${SELECT_LASTCHANGED}" "${SELECT_MINDAY}" "${SELECT_MAXDAY}" "${SELECT_WARN}" "${SELECT_INACTIVE}" "${SELECT_EXPIRE}" "${SELECT_NOUSE}" >> "${FILE_SHADOW}"
fi fi
[[ -n ${VERBOSE} ]] && printf "%s:%s:%d:%d:%s:%s:%s:%d:%s:%s:%s:%s:%s\n" "${SELECT_USERNAME}" "${SELECT_GECOS}" "${SELECT_UID}" "${SELECT_GID}" "${SELECT_PASSWORD}" "${SELECT_HOME}" "${SELECT_SHELL}" "${SELECT_LASTCHANGED}" "${SELECT_MINDAY}" "${SELECT_MAXDAY}" "${SELECT_WARN}" "${SELECT_INACTIVE}" "${SELECT_EXPIRE}" [[ -z ${VERBOSE} ]] || printf "%s:%s:%d:%d:%s:%s:%s:%d:%s:%s:%s:%s:%s\n" "${SELECT_USERNAME}" "${SELECT_GECOS}" "${SELECT_UID}" "${SELECT_GID}" "${SELECT_PASSWORD}" "${SELECT_HOME}" "${SELECT_SHELL}" "${SELECT_LASTCHANGED}" "${SELECT_MINDAY}" "${SELECT_MAXDAY}" "${SELECT_WARN}" "${SELECT_INACTIVE}" "${SELECT_EXPIRE}"
} }
# Удалить пользователя из /etc/passwd /etc/shadow # Удалить пользователя из /etc/passwd /etc/shadow
@ -612,7 +612,7 @@ group_add(){
printf "%s:%s:%s:%s\n" "${SELECT_GROUPNAME}" "${SELECT_PASSWORD}" "${SELECT_ADMINISTRATORS}" "${SELECT_MEMBERS}" >> "${FILE_GSHADOW}" printf "%s:%s:%s:%s\n" "${SELECT_GROUPNAME}" "${SELECT_PASSWORD}" "${SELECT_ADMINISTRATORS}" "${SELECT_MEMBERS}" >> "${FILE_GSHADOW}"
#printf "%s:%s:%s:%s\n" "${SELECT_GROUPNAME}" "${SELECT_PASSWORD}" "${SELECT_ADMINISTRATORS}" "${SELECT_MEMBERS}" #printf "%s:%s:%s:%s\n" "${SELECT_GROUPNAME}" "${SELECT_PASSWORD}" "${SELECT_ADMINISTRATORS}" "${SELECT_MEMBERS}"
fi fi
[[ -n ${VERBOSE} ]] && printf "%s:%d:%s:%s:%s\n" "${SELECT_GROUPNAME}" "${SELECT_GID}" "${SELECT_MEMBERS}" "${SELECT_PASSWORD}" "${SELECT_ADMINISTRATORS}" [[ -z ${VERBOSE} ]] || printf "%s:%d:%s:%s:%s\n" "${SELECT_GROUPNAME}" "${SELECT_GID}" "${SELECT_MEMBERS}" "${SELECT_PASSWORD}" "${SELECT_ADMINISTRATORS}"
} }
# Удалить группу из /etc/group /etc/gshadow # Удалить группу из /etc/group /etc/gshadow

@ -52,12 +52,13 @@ exec_save_sssd_rootcopy(){
[[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" [[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)"
[[ -n ${PATH_ROOTCOPY} ]] && PATH_ROOTCOPY="${PATH_ROOTCOPY%/*}/${NAME_ROOTCOPY}" || exit 0 [[ -n ${PATH_ROOTCOPY} ]] && PATH_ROOTCOPY="${PATH_ROOTCOPY%/*}/${NAME_ROOTCOPY}" || exit 0
find ${PATH_ROOTCOPY}/etc/ -maxdepth 1 -type f -name "krb5.conf" -delete
find ${PATH_ROOTCOPY}/etc/ -maxdepth 1 -type f -name "krb5.keytab" -delete
find ${PATH_ROOTCOPY}/etc/ -maxdepth 1 -type f -name "realmd.conf" -delete
find ${PATH_ROOTCOPY}/etc/sssd/ -type f -name "*.conf" -delete
# Save DOMAIN settings # Save DOMAIN settings
if [[ -n ${DOMAIN} && -w ${PATH_ROOTCOPY} ]]; then if [[ -n ${DOMAIN} && -w ${PATH_ROOTCOPY} ]]; then
[[ -f ${PATH_ROOTCOPY}/etc/krb5.conf ]] && rm -f ${PATH_ROOTCOPY}/etc/krb5.conf
[[ -f ${PATH_ROOTCOPY}/etc/krb5.keytab ]] && rm -f ${PATH_ROOTCOPY}/etc/krb5.keytab
[[ -f ${PATH_ROOTCOPY}/etc/realmd.conf ]] && rm -f ${PATH_ROOTCOPY}/etc/realmd.conf
find ${PATH_ROOTCOPY}/etc/sssd/ -type f -name "*.conf" -delete
cd ${PATH_CHANGES} cd ${PATH_CHANGES}
find etc/ -type f -name "krb5.conf" -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; find etc/ -type f -name "krb5.conf" -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \;
find etc/ -type f -name "krb5.keytab" -exec install -CDm600 {} ${PATH_ROOTCOPY}/{} \; find etc/ -type f -name "krb5.keytab" -exec install -CDm600 {} ${PATH_ROOTCOPY}/{} \;
@ -70,6 +71,10 @@ exec_save_sssd_rootcopy(){
##### MAIN ##### ##### MAIN #####
################ ################
[[ ${SYSTEMBOOT_STATEMODE} == "changes" ]] && exit 0 # Если файл подключен как ресурс с функциями, то выйти
return 0 2>/dev/null && return 0
#[[ ${SYSTEMBOOT_STATEMODE} == "changes" ]]
# т.к. rootcopy не работает в полном сохранении
exec_save_rootcopy $@ exec_save_rootcopy $@
exec_save_sssd_rootcopy $@ exec_save_sssd_rootcopy $@

@ -16,4 +16,5 @@ SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>
debug_mode "$0" "$@" debug_mode "$0" "$@"
# Filter not variable sell symbols from param kernel # Filter not variable sell symbols from param kernel
grep -Eiv ".*-.*=.*|.*\..*=.*" ${ROOTFS}/etc/initvars > ${ROOTFS}/etc/initvars INITVARS_DATA=$(grep -Eiv ".*-.*=.*|.*\..*=.*" ${ROOTFS}/etc/initvars)
echo "${INITVARS_DATA}" > ${ROOTFS}/etc/initvars

@ -36,51 +36,44 @@ exec_save_clean(){
[[ -n ${PATH_HOMES} ]] || PATH_HOMES="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" [[ -n ${PATH_HOMES} ]] || PATH_HOMES="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)"
[[ -n ${PATH_HOMES} ]] && PATH_HOMES="${PATH_HOMES%/*}/${NAME_HOMES}" || return 1 [[ -n ${PATH_HOMES} ]] && PATH_HOMES="${PATH_HOMES%/*}/${NAME_HOMES}" || return 1
} }
check_clean_changes(){
[[ -n $(ls -A ${PATH_CHANGES} 2>/dev/null) ]] && NEED_REBOOT=yes || return 1
}
check_clean_rootcopy(){
[[ -n $(ls -A ${PATH_ROOTCOPY} 2>/dev/null) ]] && NEED_REBOOT=yes || return 1
}
check_clean_homes(){
local STATUS=
find ${PATH_HOMES} -maxdepth 2 -type d -name ".config" | while read -r PATH_USER_HOME; do
[[ -n $(ls -A ${PATH_USER_HOME%/*} 2>/dev/null) ]] && NEED_REBOOT=yes && STATUS=1
done
[[ -z ${STATUS} ]] || return 1
}
clean_changes(){ clean_changes(){
find ${PATH_CHANGES}/{..?*,.[!.]*,*} -delete 2>/dev/null find ${PATH_CHANGES}/{..?*,.[!.]*,*} -delete 2>/dev/null
NEED_REBOOT=yes
} }
clean_rootcopy(){ clean_rootcopy(){
find ${PATH_ROOTCOPY}/{..?*,.[!.]*,*} -delete 2>/dev/null find ${PATH_ROOTCOPY}/{..?*,.[!.]*,*} -delete 2>/dev/null
NEED_REBOOT=yes
} }
clean_homes(){ clean_homes(){
find ${PATH_HOMES} -maxdepth 2 -type d -name ".config" | while read -r PATH_USER_HOME; do find ${PATH_HOMES} -maxdepth 2 -type d -name ".config" | while read -r PATH_USER_HOME; do
find ${PATH_USER_HOME%/*} -delete 2>/dev/null find ${PATH_USER_HOME%/*} -delete 2>/dev/null
done done
} }
clean_home_root(){
find ${PATH_CHANGES} -maxdepth 1 -type d -name "root" | while read -r PATH_USER_HOME; do
find ${PATH_USER_HOME} -delete 2>/dev/null
done
}
# Если задан парметр, то использовать как значение # Если задан парметр, то использовать как значение
[[ -n $@ ]] && SAVE_CLEAN=$@ CMDLINE_SAVE_CLEAN=$(cmdline_value save_clean)
[[ -z ${CMDLINE_SAVE_CLEAN} ]] || SAVE_CLEAN=${CMDLINE_SAVE_CLEAN}
local NEED_REBOOT=
if [[ -n ${SAVE_CLEAN} ]]; then if [[ -n ${SAVE_CLEAN} ]]; then
local NAME_CHANGES="changes" local NAME_CHANGES="changes"
local NAME_ROOTCOPY="rootcopy" local NAME_ROOTCOPY="rootcopy"
local NAME_HOMES="homes" local NAME_HOMES="homes"
local NEED_REBOOT= #local PATH+=":${ROOTFS}/usr/bin"
if [[ ${SAVE_CLEAN} =~ 'all' ]]; then PATH_DATA="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)"
find_path_changes && check_clean_changes && clean_changes [[ -e ${PATH_DATA%/*}/ublinux.ini ]] && ${ROOTFS}/usr/bin/ubconfig --quiet --target ${PATH_DATA%/*}/ublinux.ini remove [save] SAVE_CLEAN
find_path_rootcopy && check_clean_rootcopy && clean_rootcopy [[ -e ${SYSCONF}/save ]] && ${ROOTFS}/usr/bin/ubconfig --quiet --target ${SYSCONF}/save remove / SAVE_CLEAN
find_path_homes && check_clean_homes && clean_homes [[ ${SAVE_CLEAN} =~ .*(all|changes).* ]] && find_path_changes && clean_changes
else [[ ${SAVE_CLEAN} =~ .*(all|rootcopy).* ]] && find_path_rootcopy && clean_rootcopy
[[ ${SAVE_CLEAN} =~ 'changes' ]] && find_path_changes && check_clean_changes && clean_changes [[ ${SAVE_CLEAN} =~ .*(all|homes).* ]] && find_path_homes && clean_homes
[[ ${SAVE_CLEAN} =~ 'rootcopy' ]] && find_path_rootcopy && check_clean_rootcopy && clean_rootcopy [[ ${SAVE_CLEAN} =~ .*(all|homes).* ]] && find_path_changes && clean_home_root
[[ ${SAVE_CLEAN} =~ 'homes' ]] && find_path_homes && check_clean_homes && clean_homes
fi
${CMD_CHROOT} /usr/bin/ubconfig --quiet --target global remove [save] SAVE_CLEAN
sync; sync; sync; echo 3 > /proc/sys/vm/drop_caches sync; sync; sync; echo 3 > /proc/sys/vm/drop_caches
[[ -n ${NEED_REBOOT} ]] || return 1
fi fi
[[ -z ${NEED_REBOOT} ]] || poweroff --force --reboot
} }
################ ################

@ -99,7 +99,7 @@ create_home(){
${CMD_CHROOT} /usr/bin/chmod -f u+rw,g-rwx,o-rwx "${SELECT_HOME}" ${CMD_CHROOT} /usr/bin/chmod -f u+rw,g-rwx,o-rwx "${SELECT_HOME}"
if [[ -n ${SELECT_FORCESKEL} ]]; then if [[ -n ${SELECT_FORCESKEL} ]]; then
cp -Taf ${ROOTFS}/etc/skel "${ROOTFS}${SELECT_HOME}" cp -Taf ${ROOTFS}/etc/skel "${ROOTFS}${SELECT_HOME}"
${CMD_CHROOT} cd /etc/skel && find . -exec chown -f ${SELECT_USERNAME}:${SELECT_GROUP} ${SELECT_HOME}/{} \; ${CMD_CHROOT} bash -c "cd /etc/skel && find . -exec chown -f ${SELECT_USERNAME}:${SELECT_GROUP} ${SELECT_HOME}/{} \;"
fi fi
else else
${CMD_CHROOT} install -dm700 -o ${SELECT_USERNAME} -g ${SELECT_GROUP} "${SELECT_HOME}" ${CMD_CHROOT} install -dm700 -o ${SELECT_USERNAME} -g ${SELECT_GROUP} "${SELECT_HOME}"
@ -571,7 +571,6 @@ exec_06_useradd(){
if [[ ${UPDATEHOME,,} == @(yes|y|enable) || ${UPDATEHOME[${SELECT_USERNAME}],,} == @(yes|y|enable) ]]; then if [[ ${UPDATEHOME,,} == @(yes|y|enable) || ${UPDATEHOME[${SELECT_USERNAME}],,} == @(yes|y|enable) ]]; then
create_home "${SELECT_USERNAME}" force create_home "${SELECT_USERNAME}" force
fi fi
} }
# Обработать всех пользователей у которых указан UID в первую очередь # Обработать всех пользователей у которых указан UID в первую очередь
local LIST_USERADD_UID= LIST_USERADD_NOUID= local LIST_USERADD_UID= LIST_USERADD_NOUID=

@ -1,31 +0,0 @@
#!/usr/bin/env bash
ENABLED=yes
[[ ${ENABLED} == "yes" ]] || exit 0
DEBUGMODE=no
[[ -d /usr/lib/ublinux ]] && { ROOTFS= ; CMD_CHROOT= ; } || { [[ -d /sysroot ]] && ROOTFS="/sysroot" || ROOTFS="."; CMD_CHROOT="chroot ${ROOTFS}"; }
SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
debug_mode "$0" "$@"
SYSCONF="${ROOTFS}${SYSCONF}"
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/save; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
## Удалить указанные изменения, после очистки параметр удаляется SAVE_CLEAN=
## Основная очиста выполняется при завершении работы /rc.halt.pre/*-save-clean, но если парметр не удалился или была задана опция в GRUB, то повторно выполнить очистку
exec_save_clean(){
CMDLINE_SAVE_CLEAN=$(cmdline_value save_clean)
[[ -n ${CMDLINE_SAVE_CLEAN} ]] && SAVE_CLEAN=${CMDLINE_SAVE_CLEAN}
if [[ -n ${SAVE_CLEAN} ]]; then
FILE_EXEC=$(find ${ROOTFS}/usr/lib/ublinux/rc.halt.pre -iname "*-save-clean")
[[ -n ${FILE_EXEC} ]] && ${FILE_EXEC} ${SAVE_CLEAN} && poweroff --force --reboot
fi
}
################
##### MAIN #####
################
exec_save_clean
Loading…
Cancel
Save