implement bootparameter rootpw=<pw> to set root password rootpw
authorMichael Gebetsroither <michael@mgeb.org>
Wed, 24 Mar 2010 18:59:07 +0000 (19:59 +0100)
committerMichael Gebetsroither <michael@mgeb.org>
Wed, 24 Mar 2010 18:59:07 +0000 (19:59 +0100)
autoconfig
autoconfig.functions
grml-autoconfig

index 229a7c5..56c8fbc 100644 (file)
@@ -113,6 +113,7 @@ CONFIG_SERVICES='yes'         # check for services to run, provided via bootpara
 CONFIG_SETKEYCODES='yes'      # run setkeycodes when bootoption setkeycodes found
 CONFIG_SMALL='yes'            # use a less "bloat" /etc/inittab for small computer with less RAM
 CONFIG_SSH='yes'              # check for bootparam ssh
+CONFIG_ROOTPW='yes'           # check for bootparam rootpw
 CONFIG_SWRAID='yes'           # check for software raid devices [only in live-mode]
 CONFIG_SWSPEAK='yes'          # run software synthesizer via speakup
 CONFIG_TESTCD='yes'           # CD checker
index c0c1111..1571255 100755 (executable)
@@ -1444,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=<pw>" ; 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(){
 
index c50062a..3c533e6 100755 (executable)
@@ -196,6 +196,8 @@ checkvalue $CONFIG_CPU && config_cpu
 
 checkvalue $CONFIG_SSH && config_ssh
 
+checkvalue $CONFIG_ROOTPW && config_rootpw
+
 checkvalue $CONFIG_VNC && config_vnc
 
 checkvalue $CONFIG_PASSWD && config_passwd