Skip to content

Commit 2bd6b3e

Browse files
committed
[type/__user] Implement changing user passwords on AIX
1 parent 2d61b61 commit 2bd6b3e

File tree

1 file changed

+16
-18
lines changed
  • type/__user/gencode-remote

1 file changed

+16
-18
lines changed

type/__user/gencode-remote/aix.sh

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@
3535
# shellcheck source=SCRIPTDIR/usermod.sh
3636
. "${__type:?}/gencode-remote/usermod.sh"
3737

38+
aix_chpasswd() {
39+
test -n "${2-}" || {
40+
echo 'Setting empty passwords is not supported on AIX.' >&2
41+
exit 1
42+
}
43+
printf "chpasswd -e -c <<'EOF'\\n%s:%s\\nEOF\\n" \
44+
"${1:?}" \
45+
"${2:?}"
46+
}
47+
3848
do_create_user() {
3949
# usage: do_create_user name property[=value]
4050

@@ -51,26 +61,20 @@ do_create_user() {
5161
# special handling required
5262
__do_password=${__do_arg#'password='}
5363
shift
54-
55-
# TODO: remove when implemented
56-
echo 'Setting the password is not yet supported on AIX.' >&2
57-
exit 1
5864
;;
5965
esac
6066
done
6167
unset -v __do_arg
6268

6369
__do_argv=$(properties_to_usermod_argv "$@")
6470

71+
# create user account
6572
printf 'useradd%s %s\n' \
6673
"${__do_argv:+ ${__do_argv}}" \
6774
"$(quote_ifneeded "${__do_user:?}")"
6875

69-
if test -n "${__do_password-}"
70-
then
71-
# set user password
72-
: # TODO
73-
fi
76+
# set user password
77+
${__do_password+aix_chpasswd "${__do_user:?}" "${__do_passwd:?}"}
7478

7579
unset -v __do_user __do_password __do_argv
7680
}
@@ -91,26 +95,20 @@ do_modify_user() {
9195
# special handling required
9296
__do_password=${__do_arg#'password='}
9397
shift
94-
95-
# TODO: remove when implemented
96-
echo 'Setting the password is not yet supported on AIX.' >&2
97-
exit 1
9898
;;
9999
esac
100100
done
101101
unset -v __do_arg
102102

103103
__do_argv=$(properties_to_usermod_argv "$@")
104104

105+
# modify user account
105106
printf 'usermod%s %s\n' \
106107
"${__do_argv:+ ${__do_argv}}" \
107108
"$(quote_ifneeded "${__do_user:?}")"
108109

109-
if test -n "${__do_password-}"
110-
then
111-
# update user password
112-
: # TODO
113-
fi
110+
# update user password
111+
${__do_password+aix_chpasswd "${__do_user:?}" "${__do_passwd:?}"}
114112

115113
unset -v __do_user __do_password __do_argv
116114
}

0 commit comments

Comments
 (0)