|
|
|
|
@ -48,34 +48,43 @@ exec_useradd_sync(){
|
|
|
|
|
# Все пользователи кроме системных
|
|
|
|
|
local UID_MIN=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*UID_MIN[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
|
|
|
|
|
local UID_MAX=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*UID_MAX[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
|
|
|
|
|
local STR_REMOVE_USERS=()
|
|
|
|
|
[[ -n ${!USERADD[@]} ]] && while IFS= read -u3 SELECT_USER; do
|
|
|
|
|
IFS=':' read -u4 SELECT_GECOS SELECT_UID NULL 4<<< ${USERADD[${SELECT_USER}]}
|
|
|
|
|
if [[ ${SELECT_UID} == @(""|"x"|"X") ]] || [[ ${SELECT_UID} -ge ${UID_MIN} && ${SELECT_UID} -le ${UID_MAX} ]]; then
|
|
|
|
|
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${SELECT_USER}] USERSHADOW[${SELECT_USER}]
|
|
|
|
|
STR_REMOVE_USERS+=("USERADD[${SELECT_USER}]")
|
|
|
|
|
STR_REMOVE_USERS+=("USERSHADOW[${SELECT_USER}]")
|
|
|
|
|
fi
|
|
|
|
|
done 3< <(printf "%s\n" "${!USERADD[@]}")
|
|
|
|
|
[[ ${#STR_REMOVE_USERS[@]} -ge 0 ]] && ${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] "${STR_REMOVE_USERS[@]}"
|
|
|
|
|
elif [[ ${PARAM} == '@systems' ]]; then
|
|
|
|
|
# Удалить пользователей 500<=UID<=999 из глобальной конфигурации
|
|
|
|
|
# Пользователи системные
|
|
|
|
|
local UID_MIN_SYS=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*SYS_UID_MIN[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
|
|
|
|
|
local UID_MAX_SYS=$([[ $(< "${FILE_LOGINDEFS}") =~ [^#[^:blank:]]*SYS_UID_MAX[[:blank:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
|
|
|
|
|
local STR_REMOVE_USERS=()
|
|
|
|
|
[[ -n ${!USERADD[@]} ]] && while IFS= read -u3 SELECT_USER; do
|
|
|
|
|
IFS=':' read -u4 SELECT_GECOS SELECT_UID NULL 4<<< ${USERADD[${SELECT_USER}]}
|
|
|
|
|
if [[ ${SELECT_UID} != @(""|"x"|"X") && ${SELECT_UID} -ge ${UID_MIN_SYS} && ${SELECT_UID} -le ${UID_MAX_SYS} ]]; then
|
|
|
|
|
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${SELECT_USER}] USERSHADOW[${SELECT_USER}]
|
|
|
|
|
STR_REMOVE_USERS+=("USERADD[${SELECT_USER}]")
|
|
|
|
|
STR_REMOVE_USERS+=("USERSHADOW[${SELECT_USER}]")
|
|
|
|
|
fi
|
|
|
|
|
done 3< <(printf "%s\n" "${!USERADD[@]}")
|
|
|
|
|
[[ ${#STR_REMOVE_USERS[@]} -ge 0 ]] && ${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] "${STR_REMOVE_USERS[@]}"
|
|
|
|
|
elif [[ ${PARAM} =~ ^([[:digit:]]+)'-'*([[:digit:]]*)$ ]]; then
|
|
|
|
|
# Удалить пользователей X<=UID<=Y из глобальной конфигурации
|
|
|
|
|
local UID_MIN=${BASH_REMATCH[1]}
|
|
|
|
|
local UID_MAX=${BASH_REMATCH[2]}
|
|
|
|
|
local STR_REMOVE_USERS=()
|
|
|
|
|
[[ -n ${UID_MAX} ]] || UID_MAX=${UID_MIN}
|
|
|
|
|
[[ -n ${!USERADD[@]} ]] && while IFS= read -u3 SELECT_USER; do
|
|
|
|
|
IFS=':' read -u4 SELECT_GECOS SELECT_UID NULL 4<<< ${USERADD[${SELECT_USER}]}
|
|
|
|
|
if [[ ${SELECT_UID} != @(""|"x"|"X") && ${SELECT_UID} -ge ${UID_MIN} && ${SELECT_UID} -le ${UID_MAX} ]]; then
|
|
|
|
|
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${SELECT_USER}] USERSHADOW[${SELECT_USER}]
|
|
|
|
|
STR_REMOVE_USERS+=("USERADD[${SELECT_USER}]")
|
|
|
|
|
STR_REMOVE_USERS+=("USERSHADOW[${SELECT_USER}]")
|
|
|
|
|
fi
|
|
|
|
|
done 3< <(printf "%s\n" "${!USERADD[@]}")
|
|
|
|
|
[[ ${#STR_REMOVE_USERS[@]} -ge 0 ]] && ${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] "${STR_REMOVE_USERS[@]}"
|
|
|
|
|
else
|
|
|
|
|
# Входящий параметр - имя пользователя
|
|
|
|
|
${ROOTFS}/usr/bin/ubconfig --quiet --target global remove [users] USERADD[${PARAM}] USERSHADOW[${PARAM}]
|
|
|
|
|
|