X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=035803d7dad9acd8f7b77a2ee384c9ede2b20a0a;hp=b890f4ca21259bbc4ad0d0df3d1e828779a7fd2a;hb=47ab27a118a07d139b2bd379f48e5e066337700b;hpb=8a3d2ff3a55bf5fe28e1bce5c2fcc79d0a54a2b2 diff --git a/autoconfig.functions b/autoconfig.functions index b890f4c..035803d 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -226,10 +226,10 @@ config_language(){ if [ -x /usr/sbin/grml-setlang ] ; then # if bootoption lang is used update /etc/default/locale accordingly if [ -n "$BOOT_LANGUAGE" ] ; then - checkgrmlsmall && /usr/sbin/grml-setlang "POSIX" || /usr/sbin/grml-setlang "$LANGUAGE" + /usr/sbin/grml-setlang "$LANGUAGE" # otherwise default to lang=en else - checkgrmlsmall && /usr/sbin/grml-setlang "POSIX" || /usr/sbin/grml-setlang "en" + /usr/sbin/grml-setlang "en" fi fi @@ -248,12 +248,8 @@ config_language(){ fi # export it now, so error messages get translated, too - if checkgrmlsmall ; then - export LANG='C' # grml-small does not provide any further locales - else - [ -r /etc/default/locale ] && . /etc/default/locale - export LANG LANGUAGE - fi + [ -r /etc/default/locale ] && . /etc/default/locale + export LANG LANGUAGE # configure keyboard layout, read in already set values first: [ -r /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard @@ -376,20 +372,21 @@ config_language(){ # {{{ Set hostname config_hostname(){ - if checkbootparam 'hostname' ; then + if ! checkbootparam 'hostname' ; then + return 0 + fi + HOSTNAME="$(getbootparam 'hostname' 2>>$DEBUG)" if [ -z "$HOSTNAME" ] && [ -x /usr/bin/random-hostname ] ; then - einfo "Generating random hostname as no hostname was specified." - HOSTNAME="$(/usr/bin/random-hostname)" - eend $? + einfo "Generating random hostname as no hostname was specified." + HOSTNAME="$(/usr/bin/random-hostname)" + eend $? fi + einfo "Setting hostname to $HOSTNAME as requested." - grml-hostname $HOSTNAME >>$DEBUG ; RC=$? - [ "$RC" = "0" ] && hostname $HOSTNAME + grml-hostname $HOSTNAME >>$DEBUG ; eend $RC eend $RC - else - hostname --file /etc/hostname - fi +fi } # }}} @@ -1053,7 +1050,7 @@ if checkbootparam 'ssh' ; then SSH_PASSWD='' SSH_PASSWD="$(getbootparam 'ssh' 2>>$DEBUG)" config_userlocal - einfo "Bootoption ssh found, trying to set password for user $localuser" + einfo "Bootoption ssh found, trying to set password for root and user $localuser" [ -z "$localuser" ] && eend 1 eindent if [ -z "$SSH_PASSWD" ] ; then @@ -1082,20 +1079,21 @@ if checkbootparam 'ssh' ; then # finally check if we have a password we can use: if [ -n "$SSH_PASSWD" ] ; then # chpasswd sucks, seriously. + chpass_options="" if chpasswd --help 2>&1 | grep -q -- '-m,' ; then - echo "$localuser:$SSH_PASSWD" | chpasswd -m - else - echo "$localuser:$SSH_PASSWD" | chpasswd + chpass_options="-m" fi + echo "$localuser:$SSH_PASSWD" | chpasswd $chpass_options + echo "root:$SSH_PASSWD" | chpasswd $chpass_options fi - einfo "Starting secure shell server in background for user $localuser" + einfo "Starting secure shell server in background for root and user $localuser" /etc/init.d/rmnologin start >>$DEBUG 2>>$DEBUG /etc/init.d/ssh start >>$DEBUG 2>>$DEBUG & eend $? eindent - ewarn "Warning: please change the password for user $localuser as soon as possible!" + ewarn "Warning: please change the password for root and user $localuser as soon as possible!" eoutdent fi } @@ -1104,6 +1102,7 @@ fi # {{{ autostart of x11vnc config_vnc(){ if checkbootparam 'vnc' ; then + config_userlocal VNC_PASSWD='' VNC_PASSWD="$(getbootparam 'vnc' 2>>$DEBUG)" einfo "Bootoption vnc found, trying to set password for user $localuser." @@ -1118,7 +1117,7 @@ if checkbootparam 'vnc' ; then elif [ -x /usr/bin/hexdump ] ; then VNC_PASSWD="$(dd if=/dev/urandom bs=14 count=1 2>/dev/null | hexdump | awk '{print $3 $4}')" elif [ -n "$RANDOM" ] ; then - VNC_PASSWD="${USER}${RANDOM}" + VNC_PASSWD="${localuser}${RANDOM}" else VNC_PASSWD='' eerror "Empty passphrase and neither pwgen nor hexdump nor \$RANDOM found. Skipping." @@ -1134,7 +1133,7 @@ if checkbootparam 'vnc' ; then # finally check if we have a password we can use: if [ -n "$VNC_PASSWD" ] ; then - VNCDIR="/home/${USER}/.vnc" + VNCDIR="/home/${localuser}/.vnc" [ -d "$VNCDIR" ] || mkdir "$VNCDIR" if [ ! -x /usr/bin/x11vnc ] ; then @@ -1150,7 +1149,7 @@ if checkbootparam 'vnc' ; then VNC_CONNECT="$(getbootparam 'vnc_connect' 2>>$DEBUG)" einfo "Bootoption vnc_connect found, will start vnc with connect to $VNC_CONNECT." #store the options in a file - VNCDIR="/home/${USER}/.vnc" + VNCDIR="/home/${localuser}/.vnc" [ -d "$VNCDIR" ] || mkdir "$VNCDIR" echo " --connect $VNC_CONNECT " >> $VNCDIR/options fi @@ -1475,7 +1474,7 @@ if checkbootparam 'startx' && ! echo "$CMDLINE" | grep -q 'startx.*nostartx' ; t config_userlocal cat>|/etc/init.d/xstartup<