-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathmailuser-setpass.sh
More file actions
39 lines (38 loc) · 1012 Bytes
/
mailuser-setpass.sh
File metadata and controls
39 lines (38 loc) · 1012 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash
pgadmpass="PASSWORD"
echo "Mailbox password update script."
# Read Password
echo -n "Mailbox Username:"
read -r usrname
if [ -z "$usrname" ]; then
echo "Username can not be empty!"
echo "Bye!"
exit
fi
echo -n "Mailbox domain (example.com):"
read -r dmnname
if [ -z "$dmnname" ]; then
echo "Domain name can not be empty!"
echo "Bye!"
exit
fi
echo -n "New password:"
read -s password1
echo
echo -n "Repeat new password:"
read -s password2
echo
if [[ "$password1" == "$password2" ]]; then
if [ -z "$password1" ]; then
echo "Password can not be empty!"
echo "Bye!"
exit
fi
mysalt=$(pwgen 16 1)
hss=$(echo -n $password1 | argon2 $mysalt -id -e)
echo "UPDATE users SET password_hash=:'pass' WHERE local=:'usrname' and domain=:'dmnname'" | PGPASSWORD=$pgadmpass psql -U "postgres" -d "mail_server" -h 127.0.0.1 -v pass="$hss" -v usrname="$usrname" -v dmnname="$dmnname"
echo "Mailbox password updated."
echo "Bye!"
else
echo "ERROR: Wrong password!"
fi