|
@@ -4,27 +4,14 @@
|
|
|
# Licensed under the Apache License, Version 2.0
|
|
|
p="${BASH_SOURCE[0]%/*}"; [[ -r $p/script-functions ]] && . "$p"/script-functions || exit 1
|
|
|
|
|
|
-is_root
|
|
|
+echo "Usage: sudo $0 <username>"
|
|
|
|
|
|
-echo "Usage: $0 [username] [password]"
|
|
|
+is_root
|
|
|
|
|
|
case $# in
|
|
|
- 0)
|
|
|
- prompt user
|
|
|
- prompt password
|
|
|
- ;;
|
|
|
- 1)
|
|
|
- user="$1"
|
|
|
- prompt password
|
|
|
- ;;
|
|
|
- 2)
|
|
|
- user="$1"
|
|
|
- password="$2"
|
|
|
- ;;
|
|
|
- *)
|
|
|
- echo "Too many arguments provided"
|
|
|
- exit 1
|
|
|
- ;;
|
|
|
+ 0) user=$(prompt user) ;;
|
|
|
+ 1) user="$1" ;;
|
|
|
+ *) echo "Too many arguments provided"; exit 1 ;;
|
|
|
esac
|
|
|
|
|
|
if ! id -u "$user" &>/dev/null; then
|
|
@@ -32,13 +19,19 @@ if ! id -u "$user" &>/dev/null; then
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
-if ask_ok "Change user $user's password to $password?"; then
|
|
|
+# Generate random temporary password to provide to user
|
|
|
+password=$(tr -dc 'A-HJ-NP-Za-km-z2-9' </dev/urandom | head -c12)
|
|
|
+
|
|
|
+if ask_ok "Reset $user's password"; then
|
|
|
echo "$user:$password" | chpasswd
|
|
|
(echo "$password"; echo "$password") | smbpasswd -a -s "$user"
|
|
|
fi
|
|
|
|
|
|
ask_ok "Prompt user to reset password on next login?" &&
|
|
|
- passwd --expire "$user" &&
|
|
|
- echo "NOTE: The file sharing (smbpasswd) will not be changed"
|
|
|
+ passwd --expire "$user"
|
|
|
+
|
|
|
+echo "Password successfully reset for user $user, provide them with the following for login"
|
|
|
+echo "Username: $user"
|
|
|
+echo "Password: $password"
|
|
|
|
|
|
exit 0
|