#!/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 id -u "$user" || echo "User $user does not exist" && exit 1 password="${password:$user}" # For samba ask_ok "Change user $user's password to $password?" 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 $?