Make ChangePassword task always respect USERS var
authorNikos Skalkotos <skalkoto@grnet.gr>
Mon, 21 Nov 2011 14:55:48 +0000 (16:55 +0200)
committerNikos Skalkotos <skalkoto@grnet.gr>
Mon, 21 Nov 2011 14:55:48 +0000 (16:55 +0200)
Only the users defined by SNF_IMAGE_PROPERTY_USERS var will have their
passwords changed by ChangePassword task.

snf-image-helper/tasks/50ChangePassword.in

index 220b33c..d6f3771 100644 (file)
@@ -31,12 +31,18 @@ windows_password() {
     local target="$1"
     local password="$2"
 
-    echo -n "Installing new admin password..."
-
     echo "@echo off" > "$target/Windows/SnfScripts/ChangeAdminPassword.cmd"
-    echo "net user Administrator $password" >> \
-        "$target/Windows/SnfScripts/ChangeAdminPassword.cmd"
-    echo done
+
+    if [ -z "$SNF_IMAGE_PROPERTY_USERS" ]; then
+        SNF_IMAGE_PROPERTY_USERS="Administrator"
+    fi
+
+    for usr in $SNF_IMAGE_PROPERTY_USERS; do
+        echo -n "Installing new password for user \`$usr'..."
+        echo "net user $usr $password" >> \
+            "$target/Windows/SnfScripts/ChangeAdminPassword.cmd"
+        echo done
+    done
 }
 
 linux_password() {
@@ -86,6 +92,9 @@ if [ -z "$SNF_IMAGE_PASSWORD" ]; then
     log_error "Password is missing"
 fi
 
+#trim users var
+SNF_IMAGE_PROPERTY_USERS=$(echo $SNF_IMAGE_PROPERTY_USERS)
+
 if [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "windows" ]; then
     windows_password "$SNF_IMAGE_TARGET" "$SNF_IMAGE_PASSWORD"
 elif [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "linux" ]; then