Add partial support for NetBSD and OpenBSD
[snf-image] / snf-image-helper / tasks / 50ChangePassword.in
index 39f4961..935b410 100644 (file)
@@ -56,6 +56,14 @@ freebsd_change_shadow_entry() {
     echo "${entry[0]}:$encrypted:${entry[2]}:${entry[3]}:${entry[4]}:${entry[5]}:0:${entry[7]}:${entry[8]}:${entry[9]}"
 }
 
+openbsd_change_shadow_entry() {
+    freebsd_change_shadow_entry "$@"
+}
+
+netbsd_change_shadow_entry() {
+    freebsd_change_shadow_entry "$@"
+}
+
 windows_password() {
     local target password
     target="$1"
@@ -149,11 +157,12 @@ 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
-    unix_password linux "$SNF_IMAGE_TARGET" "$SNF_IMAGE_PASSWORD"
-elif [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "freebsd" ]; then
-    unix_password freebsd "$SNF_IMAGE_TARGET" "$SNF_IMAGE_PASSWORD"
+else
+    unix_password "$SNF_IMAGE_PROPERTY_OSFAMILY" "$SNF_IMAGE_TARGET" "$SNF_IMAGE_PASSWORD"
+fi
 
+# For FreeBSD, OpenBSD and NetBSD we need to recreate the password database too
+if [[ "$SNF_IMAGE_PROPERTY_OSFAMILY" == *bsd ]]; then
     rm -f "$SNF_IMAGE_TARGET/etc/spwd.db"
 
     # Make sure /etc/spwd.db is recreated on first boot