X-Git-Url: http://git.grml.org/?a=blobdiff_plain;ds=sidebyside;f=autoconfig.functions;h=15712552313ca93310b0cea3f2314696ab560003;hb=refs%2Fheads%2Frootpw;hp=76581c9cd7f82325912b0f64ce932aeac0e5420c;hpb=9fade3196c65a2a915a8c4447f99730edc5106e4;p=grml-autoconfig.git diff --git a/autoconfig.functions b/autoconfig.functions index 76581c9..1571255 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -302,7 +302,7 @@ config_language(){ if [ -r /etc/default/locale ] ; then if grep -q "LANG=.*UTF" /etc/default/locale ; then einfo "Setting up unicode environment." - unicode_start 2>>$DEBUG ; eend $? + unicode_start >>$DEBUG 2>&1 ; eend $? fi fi @@ -314,13 +314,15 @@ config_language(){ fi # we have to set up all consoles, therefore loop it over all ttys: - NUM_CONSOLES=$(fgconsole --next-available) - [ -n "$NUM_CONSOLES" ] && NUM_CONSOLES=$(expr ${NUM_CONSOLES} - 1) - [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6 - CUR_CONSOLE=$(fgconsole) - + NUM_CONSOLES=$(fgconsole --next-available 2>/dev/null) + if [ -n "$NUM_CONSOLES" ] ; then + NUM_CONSOLES=$(expr ${NUM_CONSOLES} - 1) + [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6 + fi + CUR_CONSOLE=$(fgconsole 2>/dev/null) if [ -n "$CHARMAP" ] ; then einfo "Running consolechars for ${CHARMAP}" + RC=0 for vc in $(seq 0 ${NUM_CONSOLES}) ; do consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$? done @@ -335,6 +337,7 @@ config_language(){ else if [ -n "$CONSOLEFONT" ] ; then einfo "Running consolechars using ${CONSOLEFONT}" + RC=0 for vc in $(seq 0 ${NUM_CONSOLES}) ; do consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT ; RC=$? done @@ -1359,7 +1362,7 @@ else einfo "Loading modules ${MODULE}" modprobe "$MODULE" >>$DEBUG || modprobe "$MODULE_FALLBACK" >>$DEBUG RC=$? - if [[ $RC == 0 ]]; then + if [[ "$RC" == 0 ]]; then eend 0 else SKIP_CPU_GOVERNOR=1 @@ -1373,6 +1376,7 @@ else if [ -z "$SKIP_CPU_GOVERNOR" ] ; then einfo "Loading cpufreq_ondemand, setting ondemand governor" + RC=0 if modprobe cpufreq_ondemand ; RC=$? ; then for file in $(find /sys/devices/system/cpu/ -name scaling_governor 2>/dev/null) ; do echo ondemand > $file @@ -1440,6 +1444,31 @@ fi } # }}} +# {{{ configure root password +config_rootpw(){ +if checkbootparam 'rootpw' ; then + ROOT_PASSWD='' + ROOT_PASSWD="$(getbootparam 'rootpw' 2>>$DEBUG)" + einfo "Bootoption rootpw found, trying to set password for user root." + + if [ -z "$ROOT_PASSWD" ] ; then + ewarn "No password given for user root. Please set one with rootpw=" ; eend 0 + else + # chpasswd sucks, seriously. + if chpasswd --help 2>&1 | grep -q -- '-m,' ; then + echo "root:$ROOT_PASSWD" | chpasswd -m + else + echo "root:$ROOT_PASSWD" | chpasswd + fi + fi + + eindent + ewarn 'Warning: please change the password for user root as soon as possible!' + eoutdent +fi +} +# }}} + # {{{ autostart of x11vnc config_vnc(){ @@ -1832,20 +1861,19 @@ if checkbootparam 'startx' && ! echo "$CMDLINE" | grep -q 'startx.*nostartx' ; t else einfo "Window manager ${WHITE}${WINDOWMANAGER}${NORMAL} found as bootoption." && eend 0 fi - einfo "Changing to runlevel 5 for starting grml-x ${WINDOWMANAGER}. Just exit X windows system to get full featured consoles." + einfo "Setting up and invoking grml-x ${WINDOWMANAGER}. Just exit X windows system to get full featured consoles." config_userfstab || fstabuser='grml' cat>|/etc/init.d/xstartup<>$DEBUG +su $fstabuser -c "/usr/bin/grml-x $WINDOWMANAGER" EOF chmod 755 /etc/init.d/xstartup # adjust inittab for xstartup if grep -q '^6:' /etc/inittab ; then - sed -i 's|^6:.*|6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /bin/zsh"|' /etc/inittab + sed -i 's|^6:.*|6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /usr/bin/zsh-login" >/dev/tty6 2>\&1 > /etc/inittab + echo '6:2345:respawn:/bin/zsh --login -c "/etc/init.d/xstartup ; /usr/bin/zsh-login" >/dev/tty6 2>&1 < /dev/tty6' >> /etc/inittab fi /sbin/telinit q ; eend $?