#! /bin/bash DATABASE=${DATABASE:-/tmp/docker-mailserver/postfix-accounts.cf} USER="$1" shift PASSWD="$@" usage() { echo "Usage: updatemailuser [password]" } errex() { echo "$@" 1>&2 exit 1 } escape() { echo "${1//./\\.}" } [ -z "$USER" ] && { usage; errex "no username specified"; } if [ -z "$PASSWD" ]; then read -s -p "Enter Password: " PASSWD echo [ -z "$PASSWD" ] && errex "Password must not be empty" fi HASH="$(doveadm pw -s SHA512-CRYPT -u "$USER" -p "$PASSWD")" grep -qi "^$(escape "$USER")|" $DATABASE 2>/dev/null || errex "User \"$USER\" does not exist" sed -i "s ^"$USER"|.* "$USER"|"$HASH" " $DATABASE