X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive-bottom%2F15autologin;h=bee8d7021fbbcb18abff0897b3790be875bfc1d6;hb=f32a0232042e7579d78c1646d93fd68eec62aaa2;hp=4de38f9f55c2822115430136e04ec28d7f58fcd2;hpb=d0fbcc9b3747ab4339f7487e7d845b467962139c;p=live-boot-grml.git diff --git a/scripts/live-bottom/15autologin b/scripts/live-bottom/15autologin index 4de38f9..bee8d70 100755 --- a/scripts/live-bottom/15autologin +++ b/scripts/live-bottom/15autologin @@ -20,61 +20,90 @@ esac # live-initramfs header +. /live.vars + +if [ -n "${NOXAUTOLOGIN}" ] || [ -z "${USERNAME}" ] +then + exit 0 +fi + . /scripts/live-functions -log_begin_msg "Setting up automatic login..." +log_begin_msg "Setting up automatic login" # live-initramfs script -if [ -z "${NOXAUTOLOGIN}" ] -then - # chroot needed to handle symlinks correctly -if chroot /root [ -f /etc/gdm/gdm-cdd.conf ]; then - GDMCONF=/etc/gdm/gdm-cdd.conf +if chroot /root [ -f /etc/gdm/gdm-cdd.conf ] +then + GDMCONF=/etc/gdm/gdm-cdd.conf else - GDMCONF=/etc/gdm/gdm.conf + GDMCONF=/etc/gdm/gdm.conf fi # chroot needed to handle symlinks correctly -if chroot /root [ -f ${GDMCONF} ]; then - if [ "${BUILD_SYSTEM}" = "Debian" ]; then - # true hack ! -- nohar - chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf - fi - - # Configure GDM autologin - chroot /root sed -i \ - -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \ - -e "s/^AutomaticLogin=.*\$/AutomaticLogin=$USERNAME/" \ - -e "s/^TimedLoginEnable=.*\$/TimedLoginEnable=true/" \ - -e "s/^TimedLogin=.*\$/TimedLogin=$USERNAME/" \ - -e "s/^TimedLoginDelay=.*\$/TimedLoginDelay=10/" \ - ${GDMCONF} -fi - -if [ -f /root/etc/kde3/kdm/kdmrc ]; then - # Configure KDM autologin - sed -i -r \ - -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \ - -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=$USERNAME/" \ - -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \ - /root/etc/kde3/kdm/kdmrc +if chroot /root [ -f ${GDMCONF} ] +then + # true hack ! -- nohar + chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf + + # Configure GDM autologin + chroot /root \ + sed -i -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \ + -e "s/^AutomaticLogin=.*\$/AutomaticLogin=${USERNAME}/" \ + -e "s/^TimedLoginEnable=.*\$/TimedLoginEnable=true/" \ + -e "s/^TimedLogin=.*\$/TimedLogin=${USERNAME}/" \ + -e "s/^TimedLoginDelay=.*\$/TimedLoginDelay=10/" \ + ${GDMCONF} +elif [ -d /root/etc/gdm3 ] +then + GDMCustomFile=/root/etc/gdm3/custom.conf + AutologinParameters="AutomaticLoginEnable=true\n\ +AutomaticLogin=$USERNAME\n\ +TimedLoginEnable=true\n\ +TimedLogin=$USERNAME\n\ +TimedLoginDelay=10" + + # Prevent from updating if parameters already present (persistent usb + # key) + if ! $(grep -qs 'AutomaticLoginEnable' $GDMCustomFile) + then + if $(grep -qs '\[daemon\]' $GDMCustomFile) + then + sed -i "s/\[daemon\]/\[daemon\]\n$AutologinParameters/" $GDMCustomFile + else + echo "[daemon]\n$AutologinParameters" >> $GDMCustomFile + fi + fi fi -fi +if [ -d /root/etc/default/kdm.d/ ] +then + if ! grep -qs "^AUTOLOGIN" /root/etc/default/kdm.d/live-autologin + then -if chroot /root /usr/bin/which kpersonalizer >/dev/null; then - # Disable first-login wizard for KDE - if [ ! -f /root/etc/kde3/kpersonalizerrc ]; then - cat > /root/etc/kde3/kpersonalizerrc <> /root/etc/default/kdm.d/live-autologin << EOF +AUTOLOGINUSER=${USERNAME} +AUTOLOGINAGAIN=true +AUTOLOGINDELAY=0 EOF - else - echo "I'm not smart enough to disable kpersonalizer startup" >&2 - echo "Because kpersonalizerrc already exists" >&2 - fi + + fi + +elif [ -f /root/etc/kde3/kdm/kdmrc ] +then + # Configure KDM autologin + sed -i -r -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \ + -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=${USERNAME}/" \ + -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \ + /root/etc/kde3/kdm/kdmrc +elif [ -f /root/etc/kde4/kdm/kdmrc ] +then + # Configure KDM-KDE4 autologin + sed -i -r -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \ + -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=$USERNAME/" \ + -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \ + /root/etc/kde4/kdm/kdmrc fi log_end_msg