Fix AUTOLOGIN

master
Dmitry Razumov 3 years ago
parent 8f743867f5
commit d021f907cd

@ -1 +1 @@
VERSION 2.19 VERSION 2.20

@ -6,17 +6,19 @@
# All system path must be relative, except initrd dirs # All system path must be relative, except initrd dirs
ENABLED=yes ENABLED=yes
[ "$ENABLED" != "yes" ] && exit 0 [[ ${ENABLED} != "yes" ]] && exit 0
DEBUGMODE=no
PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin
DEBUGMODE=no
. usr/lib/ublinux/functions unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=.
. usr/lib/ublinux/os-config SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
debug_mode "$0" "$@" debug_mode "$0" "$@"
echo $SYSCONF | grep -q ^/ && SYSCONF=.$SYSCONF SYSCONF="${ROOTFS}/${SYSCONF}"
SOURCE=${SYSCONF}/config; [ -f "${SOURCE}" ] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
[ $(cmdline_parameter depmod) ] && DEPMOD="yes" [[ $(cmdline_parameter depmod) ]] && DEPMOD="yes"
[ "$DEPMOD" = "yes" ] && chroot . usr/bin/depmod -a [[ ${DEPMOD} = "yes" ]] && chroot . usr/bin/depmod -a

@ -20,16 +20,17 @@ SYSCONF="${ROOTFS}/${SYSCONF}"
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/desktop; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/desktop; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
PASS_ADMUID=$(grep "^$(grep ":${ADMUID}:${ADMUID}:" ${ROOTFS}/etc/passwd | cut -d: -f1):" ${ROOTFS}/etc/shadow | cut -d: -f2) #"
#UID_MIN=$(grep "^UID_MIN" ${ROOTFS}/etc/login.defs | cut -d' ' -f2)
UID_MIN=$(read -d '' < "${ROOTFS}/etc/login.defs"; [[ "${REPLY}" =~ [^#[^:space:]]*UID_MIN[[:space:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
ONLY_ONE_USER=$(awk -F':' -v USER_MIN=${UID_MIN} '$3 > USER_MIN && $1 != "nobody" { print $1}' ${ROOTFS}/etc/passwd)
if [[ -z ${AUTOLOGINUSER} && -z ${ONLY_ONE_USER} && ${PASS_ADMUID} == ${NOSECUREROOTPASSWD} && ${PASS_ADMUID} == ${DEFAULTPASSWD} ]]; then
echo "AUTOLOGINUSER=yes" >> ${SYSCONF}/desktop
AUTOLOGINUSER=yes
fi
AUTOLOGINUSER_CMDLINE=$(cmdline_value autologin) && [[ -n ${AUTOLOGINUSER_CMDLINE} ]] && AUTOLOGINUSER=${AUTOLOGINUSER_CMDLINE} AUTOLOGINUSER_CMDLINE=$(cmdline_value autologin) && [[ -n ${AUTOLOGINUSER_CMDLINE} ]] && AUTOLOGINUSER=${AUTOLOGINUSER_CMDLINE}
if [[ -z ${AUTOLOGINUSER} ]]; then
PASS_ADMUID=$(grep "^$(grep ":${ADMUID}:${ADMUID}:" ${ROOTFS}/etc/passwd | cut -d: -f1):" ${ROOTFS}/etc/shadow | cut -d: -f2) #"
#UID_MIN=$(grep "^UID_MIN" ${ROOTFS}/etc/login.defs | cut -d' ' -f2)
UID_MIN=$(read -d '' < "${ROOTFS}/etc/login.defs"; [[ "${REPLY}" =~ [^#[^:space:]]*UID_MIN[[:space:]]+([[:digit:]]+) ]]; echo -n "${BASH_REMATCH[1]}")
ONLY_ONE_USER=$(awk -F':' -v USER_MIN=${UID_MIN} '$3 > USER_MIN && $1 != "nobody" { print $1}' ${ROOTFS}/etc/passwd)
# Если в системе всего один пользователь и пароль пользователя = паролю по умолчанию = паролю по умолчанию рута ublinux, то автологин
[[ -z ${ONLY_ONE_USER} && ${PASS_ADMUID} == ${NOSECUREROOTPASSWD} && ${PASS_ADMUID} == ${DEFAULTPASSWD} ]] && AUTOLOGINUSER=yes
fi
if [[ -z "${AUTOLOGINUSER}" ]]; then if [[ -z "${AUTOLOGINUSER}" ]]; then
unset AUTOLOGINUSER unset AUTOLOGINUSER
[[ -f ${ROOTFS}/etc/X11/gdm/custom.conf ]] && sed -i "s/^AutomaticLogin=.*//g" ${ROOTFS}/etc/X11/gdm/custom.conf [[ -f ${ROOTFS}/etc/X11/gdm/custom.conf ]] && sed -i "s/^AutomaticLogin=.*//g" ${ROOTFS}/etc/X11/gdm/custom.conf

@ -6,7 +6,7 @@
# All system path must be relative, except initrd dirs # All system path must be relative, except initrd dirs
ENABLED=yes ENABLED=yes
[ "$ENABLED" != "yes" ] && exit 0 [[ ${ENABLED} != "yes" ]] && exit 0
DEBUGMODE=no DEBUGMODE=no
PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin

Loading…
Cancel
Save