4 # Provides: ChangePassword
5 # RunBefore: UmountImage
6 # RunAfter: InstallUnattend
7 # Short-Description: Changes Password for specified users
11 . "@commondir@/common.sh"
17 echo -n "Installing new admin password..."
19 echo "@echo off" > "$target/Windows/SnfScripts/ChangeAdminPassword.cmd"
20 echo "net user Administrator $password" >> \
21 "$target/Windows/SnfScripts/ChangeAdminPassword.cmd"
29 local hash=$("@scriptsdir@/snf-passtohash.py" "$password")
30 if [ ! -e "$target/etc/shadow" ]; then
31 log_error "No /etc/shadow found!"
36 if [ -n "$SNF_IMAGE_PROPERTY_USERS" ]; then
37 for usr in $SNF_IMAGE_PROPERTY_USERS; do
43 local distro=$(get_distro $target)
45 if [ "x$distro" = "xubuntu" -o \
46 "x$distro" = "xfedora" ] ; then
51 for i in $(seq 0 1 $((${#users[@]}-1))); do
52 local tmp_shadow="$(mktemp)"
53 add_cleanup rm "$tmp_shadow"
55 echo -n "Setting ${users[$i]} password..."
57 echo "${users[$i]}:$hash:15103:0:99999:7:::" > "$tmp_shadow"
58 grep -v "${users[$i]}" "$target/etc/shadow" >> "$tmp_shadow"
59 cat "$tmp_shadow" > "$target/etc/shadow"
64 if [ ! -d "$SNF_IMAGE_TARGET" ]; then
65 log_error "Target dir: \`$SNF_IMAGE_TARGET' is missing"
68 if [ -z "$SNF_IMAGE_PASSWORD" ]; then
69 log_error "Password is missing"
72 if [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "windows" ]; then
73 windows_password "$SNF_IMAGE_TARGET" "$SNF_IMAGE_PASSWORD"
74 elif [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "linux" ]; then
75 linux_password "$SNF_IMAGE_TARGET" "$SNF_IMAGE_PASSWORD"
82 # vim: set sta sts=4 shiftwidth=4 sw=4 et ai :