update envs_user_manage

This commit is contained in:
creme 2020-01-16 22:08:27 +01:00
parent 44b67fdb2f
commit 8657f2bd6a
Signed by: creme
GPG Key ID: C147C3B7FBDF08D0
3 changed files with 78 additions and 17 deletions

View File

@ -0,0 +1,13 @@
hi ~_username_,
your _sql_ database has been provisioned. information below should
be used to connect to it:
database name: _username_
database user: _username_
password: _password_
of course you can also use sqlite(preferred) databases.
please check out our help page
at https://help.envs.net/database/ for more informations.

View File

@ -26,18 +26,9 @@ https://envs.net/~_username_ , https://envs.net/u/_username_
https://_username_.envs.net and https://_username_.envs.sh/. https://_username_.envs.net and https://_username_.envs.sh/.
your mysql database is also has been provisioned. information below should
be used to connect to it:
database name: _username_
database user: _username_
password: (see your password above)
of course you can also use sqlite databases.
please check out our help page at https://help.envs.net/ for more informations. please check out our help page at https://help.envs.net/ for more informations.
we seeing you! :) we seeing you! :)
best regards,
envs.net ~creme envs.net ~creme

View File

@ -22,12 +22,24 @@ head_def="$head_mime\r\n$head_type"
### ###
send_db_mail() {
db_type="$1"
db_sub="Subject: database on envs created"
db_mail="$head_def\r\nTo: $user@$domain\r\nFrom: sudoers@$domain\r\n$db_sub"
echo -e "$db_mail\r\n$(sed -e s/_username_/"$user"/g -e s/_password_/"$newpw"/g -e s/_sql_/"$db_type"/g /usr/local/bin/envs.net/database-email.tmpl)" \
| sendmail "$user"@"$domain"
}
add_user_mysql_db() { add_user_mysql_db() {
mysql -u root << EOM mysql -u root << EOM
CREATE DATABASE $user ; CREATE DATABASE $user ;
GRANT ALL PRIVILEGES ON $user.* TO '$user'@'localhost' IDENTIFIED BY '$newpw' ; GRANT ALL PRIVILEGES ON $user.* TO '$user'@'localhost' IDENTIFIED BY '$newpw' ;
FLUSH PRIVILEGES ; FLUSH PRIVILEGES ;
EOM EOM
send_db_mail mysql
} }
del_user_mysql_db() { del_user_mysql_db() {
@ -41,10 +53,13 @@ EOM
add_user_pgsql_db() { add_user_pgsql_db() {
sudo -u postgres psql <<EOM sudo -u postgres psql <<EOM
CREATE USER $user WITH PASSWORD '$newpw' ; CREATE USER $user ;
ALTER USER $user WITH PASSWORD '$newpw';
CREATE DATABASE $user ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $user ; CREATE DATABASE $user ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $user ;
GRANT ALL PRIVILEGES ON DATABASE $user to $user ; GRANT ALL PRIVILEGES ON DATABASE $user TO $user ;
EOM EOM
send_db_mail pgsql
} }
del_user_pgsql_db() { del_user_pgsql_db() {
@ -55,6 +70,7 @@ DROP USER $user ;
EOM EOM
} }
###
add_user() { add_user() {
useradd -m -g 9999 -s /bin/bash -p "$pwcrypt" "$user" useradd -m -g 9999 -s /bin/bash -p "$pwcrypt" "$user"
@ -81,7 +97,7 @@ add_user() {
chown -R "$user":"$short_dom" /home/"$user"/.ssh chown -R "$user":"$short_dom" /home/"$user"/.ssh
# setup database # setup database
add_user_mysql_db #add_user_mysql_db
#add_user_pgsql_db #add_user_pgsql_db
# setup email mailbox # setup email mailbox
@ -95,7 +111,7 @@ add_user() {
readme_sub="Subject: Welcome ~$user | please readme!" readme_sub="Subject: Welcome ~$user | please readme!"
readme_mail="$head_def\r\nTo: $mailTo\r\nCC: $user@$domain\r\nFrom: sudoers@$domain\r\n$readme_sub" readme_mail="$head_def\r\nTo: $mailTo\r\nCC: $user@$domain\r\nFrom: sudoers@$domain\r\n$readme_sub"
echo -e "$readme_mail\r\n$(cat /usr/local/bin/envs.net/welcome-readme.tmpl)" | sendmail "$user"@"$domain" echo -e "$readme_mail\r\n$(cat /usr/local/bin/envs.net/welcome-readme.tmpl)" | sendmail "$user"@"$domain" "$mailTo"
sleep 1 sleep 1
@ -133,28 +149,43 @@ add_user() {
# announcing new user on mastodon # announcing new user on mastodon
sudo -u services toot post "welcome new user ~$user" sudo -u services toot post "welcome new user ~$user"
# cleanup current signup
sed -i /"$user"/d /var/signups_current
} }
del_user() { del_user() {
# unsubscribe mailing list # unsubscribe mailing list
# ?? # ??
echo -e "$head_def\r\nTo: team-leave@$domain\r\nFrom: $user@$domain\r\nSubject: leave\r\n" | sudo -u "$user" sendmail team-leave@"$domain" echo -e "$head_def\r\nTo: team-leave@$domain\r\nFrom: $user@$domain\r\nSubject: leave\r\n" | sudo -u "$user" sendmail team-leave@"$domain"
# stop user stuff
pgrep -u "$user"
ps -fp "$(pgrep -u $user)"
killall -KILL -u "$user"
# remove user # remove user
deluser --remove-home "$user" userdel -rf "$user"
# unset user quota # unset user quota
rm /etc/security/limits.d/"$user" rm /etc/security/limits.d/"$user"
# unset mail aliases # unset mail aliases
sed -i /"$user"/d /etc/aliases sed -i /"$user"/d /etc/aliases
sed -i /"$user"/d /etc/email-addresses sed -i /"$user"/d /etc/email-addresses
# remove email mailbox # remove email mailbox
# get userid from lxc-attach # get userid from lxc-attach
mail_userid=$(lxc-attach -n mail -- bash -c "/usr/local/bin/coreapi action accounts list -p search=$user@$domain | jq '.[] | .pk'") mail_userid=$(lxc-attach -n mail -- bash -c "/usr/local/bin/coreapi action accounts list -p search=$user@$domain | jq '.[] | .pk'")
lxc-attach -n mail -- bash -c "/usr/local/bin/coreapi action accounts delete -p id=$mail_userid" lxc-attach -n mail -- bash -c "/usr/local/bin/coreapi action accounts delete -p id=$mail_userid"
# remove database # remove database
del_user_mysql_db del_user_mysql_db
#del_user_pgsql_db del_user_pgsql_db
# unlink gemini # unlink gemini
[ -L /var/gemini/\~"$user" ] && unlink /var/gemini/\~"$user" [ -L /var/gemini/\~"$user" ] && unlink /var/gemini/\~"$user"
# remove znc account # remove znc account
printf '\n!!! ADMIN: please remove %s also from lists.%s and znc.%s !!!\n\n' "$user" "$domain" "$domain" printf '\n!!! ADMIN: please remove %s also from lists.%s and znc.%s !!!\n\n' "$user" "$domain" "$domain"
} }
@ -186,11 +217,37 @@ case "$cmd" in
fi fi
;; ;;
add_mysql) [ $# -lt 2 ] && printf 'not enough args\n' && exit 1
add_user_mysql_db
;;
del_mysql) [ $# -lt 2 ] && printf 'not enough args\n' && exit 1
del_user_mysql_db
;;
# add_pqsql) [ $# -lt 2 ] && printf 'not enough args\n' && exit 1
# add_user_pgsql_db
# ;;
# del_pqsql) [ $# -lt 2 ] && printf 'not enough args\n' && exit 1
# del_user_pgsql_db
# ;;
*) printf '%s | User Account Setup\n\n' "$domain" *) printf '%s | User Account Setup\n\n' "$domain"
printf 'Usage: %s\n Add a User:\n' "$(basename "$0")" printf 'Usage: %s\n Add a User:\n' "$(basename "$0")"
printf '\t%s add "username" "email" "ssh-pubkey"\n' "$(basename "$0")" printf '\t%s add "username" "email" "ssh-pubkey"\n' "$(basename "$0")"
printf ' Delete a User:\n' printf ' Delete a User:\n'
printf '\t%s del "username"\n' "$(basename "$0")" printf '\t%s del "username"\n\n' "$(basename "$0")"
printf ' create mysql db for User:\n'
printf '\t%s add_mysql "username"\n' "$(basename "$0")"
printf ' delete mysql db for User:\n'
printf '\t%s del_mysql "username"\n\n' "$(basename "$0")"
printf ' create pgsql db for User:\n'
printf '\t%s add_pgsql "username"\n' "$(basename "$0")"
printf ' delete pgsql db for User:\n'
printf '\t%s del_pgsql "username"\n' "$(basename "$0")"
;; ;;
esac esac