#!/usr/bin/env bash # This script will reset a user password on the server # Copyright 2021 Bryan C. Roessler parent="${BASH_SOURCE[0]}" parent=${parent%/*} [[ -f "$parent"/functions ]] && . "$parent"/functions || exit 1 is_root [[ $# -lt 1 ]] && echo "Must provide a username" && exit 1 [[ $# -gt 1 ]] && user="$1" [[ $# -eq 2 ]] && password="$2" [[ $# -gt 2 ]] && "Too many arguments" && exit 1 if ! id -u "$user"; then echo "User $user does not exist" exit 1 fi password="${password:$user}" # For samba ask_ok "Change user $user's password to $password?" || exit 1 echo "$user":"$password" | chpasswd echo "Expiring user password" passwd --expire "$user" ask_ok "Change user $user's Samba password to $password?" && (echo "$password"; echo "$password") | smbpasswd -a -s "$user" exit $?