From 27427423a377005bdcd1ea3e1b33d7e7d6e84fda Mon Sep 17 00:00:00 2001 From: root Date: Wed, 9 Nov 2022 12:03:47 -0500 Subject: [PATCH] init commit --- pubnixvm | 1 + tilserv/accept | 14 ++++++++++++++ tilserv/allowssl | 11 +++++++++++ tilserv/countvotes | 8 ++++++++ tilserv/delete | 24 ++++++++++++++++++++++++ tilserv/deltuser | 4 ++++ tilserv/deny | 14 ++++++++++++++ tilserv/inspect | 13 +++++++++++++ tilserv/mkfuser | 8 ++++++++ tilserv/mkgemuser | 10 ++++++++++ tilserv/mkguser | 8 ++++++++ tilserv/mkmauser | 9 +++++++++ tilserv/mkmuser | 8 ++++++++ tilserv/mknuser | 7 +++++++ tilserv/mkpuser | 9 +++++++++ tilserv/mktuser | 12 ++++++++++++ tilserv/mkxuser | 8 ++++++++ tilserv/peertube-authcode-gen | 6 ++++++ tilserv/reboot | 30 ++++++++++++++++++++++++++++++ tilserv/remind | 17 +++++++++++++++++ tilserv/remindall | 3 +++ tilserv/ssh-socks | 10 ++++++++++ 22 files changed, 234 insertions(+) create mode 120000 pubnixvm create mode 100755 tilserv/accept create mode 100755 tilserv/allowssl create mode 100755 tilserv/countvotes create mode 100755 tilserv/delete create mode 100755 tilserv/deltuser create mode 100755 tilserv/deny create mode 100755 tilserv/inspect create mode 100755 tilserv/mkfuser create mode 100755 tilserv/mkgemuser create mode 100755 tilserv/mkguser create mode 100755 tilserv/mkmauser create mode 100755 tilserv/mkmuser create mode 100755 tilserv/mknuser create mode 100755 tilserv/mkpuser create mode 100755 tilserv/mktuser create mode 100755 tilserv/mkxuser create mode 100755 tilserv/peertube-authcode-gen create mode 100755 tilserv/reboot create mode 100755 tilserv/remind create mode 100755 tilserv/remindall create mode 100755 tilserv/ssh-socks diff --git a/pubnixvm b/pubnixvm new file mode 120000 index 0000000..6019709 --- /dev/null +++ b/pubnixvm @@ -0,0 +1 @@ +/sshfs/root/bin/ \ No newline at end of file diff --git a/tilserv/accept b/tilserv/accept new file mode 100755 index 0000000..5394bbd --- /dev/null +++ b/tilserv/accept @@ -0,0 +1,14 @@ +#!/usr/bin/env -S bash -e + +[[ -z "$1" ]] && { + printf 'Usage: %s username\n' "$0" + exit 1 +} + +[[ -f "/var/tmp/register/$1" ]] || { + printf "Application from %s does not exist\n" "$1" + exit 2 +} + +read -rp "Accept $1's application? [y/N] " +[[ $REPLY =~ [Yy] ]] && bash -e "/var/tmp/register/$1" || exit 3 diff --git a/tilserv/allowssl b/tilserv/allowssl new file mode 100755 index 0000000..6f27597 --- /dev/null +++ b/tilserv/allowssl @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +setfacl -R -m u:"${1}":rx /etc/letsencrypt +setfacl -R -m g:"${1}":rx /etc/letsencrypt +setfacl -R -m u:"${1}":rx /etc/letsencrypt/live +setfacl -R -m g:"${1}":rx /etc/letsencrypt/live +setfacl -R -m u:"${1}":rx /etc/letsencrypt/live/vern.cc +setfacl -R -m g:"${1}":rx /etc/letsencrypt/live/vern.cc +setfacl -R -m u:"${1}":rx /etc/letsencrypt/archive +setfacl -R -m g:"${1}":rx /etc/letsencrypt/archive +setfacl -R -m u:"${1}":rx /etc/letsencrypt/archive/vern.cc-0001 +setfacl -R -m g:"${1}":rx /etc/letsencrypt/archive/vern.cc-0001 diff --git a/tilserv/countvotes b/tilserv/countvotes new file mode 100755 index 0000000..f4b5679 --- /dev/null +++ b/tilserv/countvotes @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +if [ $# -eq 0 ]; then + printf 'Usage: %s text\n' "$0" + exit 1 +fi + +for i in /vm/*; do head -n 1 "$i"/.vote 2>/dev/null; done | grep -ci "^\s*$*\s*$" diff --git a/tilserv/delete b/tilserv/delete new file mode 100755 index 0000000..bf7e412 --- /dev/null +++ b/tilserv/delete @@ -0,0 +1,24 @@ +#!/usr/bin/env -S bash + +[[ -z "$1" ]] && { + printf 'Usage: %s username\n' "$0" + exit 1 +} + +#[[ -d "/sshfs/home/$1" ]] || { +# printf "User %s does not exist\n" "$1" +# exit 2 +#} + +read -rp "Delete user $1? [y/N] " +[[ $REPLY =~ [Yy] ]] && { + ssh 192.168.122.30 "tar -zcpvf - /home/${1}" > ~/"${1}"-data.tar.gz + ssh 192.168.122.30 "userdel -r '$1'; groupdel '$1'" + curl -XPOST -H "Authorization: Bearer $(&2 + exit 1 +} + +[[ "$1" -ge 0 ]] 2> /dev/null || { + printf 'Expected non-negative integer, got `%s'\''\n' "$1" >&2 + exit 2 +} + +print_to_ttys() { + who | while read -r _ TTY _; do + printf "Printing to %s\n" "$TTY" + printf "$@" > /dev/$TTY + done +} + +print_to_ttys "\nRebooting in %d seconds, please save your work\n" "$1" + +if [[ "$1" -gt 5 ]]; then + read -t "$(($1-5))" <><(:)||: + print_to_ttys "\nRebooting in %d seconds\n" 5 + read -t 5 <><(:)||: +else + read -t $1 <><(:)||: +fi + +systemctl reboot diff --git a/tilserv/remind b/tilserv/remind new file mode 100755 index 0000000..1ca5c0a --- /dev/null +++ b/tilserv/remind @@ -0,0 +1,17 @@ +#!/usr/bin/env -S bash -e + +[[ -z "$@" ]] && set -- $(tty) + +TMP=$(ls /var/tmp/register | wc -l) +FILE_DATE=$(stat -c %Y /sshfs/var/tmp/poll) +WEEK_DATE=$(date -d '7 days ago' +%s) + +[[ $TMP > 0 ]] && + for FILE in "$@"; do + [[ "$FILE" != *ptmx ]] && printf '\nTHERE ARE %d UNCHECKED MEMBERSHIP REQUESTS.\n' "$TMP" > $FILE + done ||: + +[ $FILE_DATE -lt $WEEK_DATE ] && + for FILE in "$@"; do + [[ "$FILE" != *ptmx ]] && printf '\nTHE POLL IS OVER' > $FILE + done ||: diff --git a/tilserv/remindall b/tilserv/remindall new file mode 100755 index 0000000..ad2d15a --- /dev/null +++ b/tilserv/remindall @@ -0,0 +1,3 @@ +#!/usr/bin/env -S bash -e + +w | while read -r U P _; do [[ $U == root ]] && /root/bin/remind /dev/$P; done diff --git a/tilserv/ssh-socks b/tilserv/ssh-socks new file mode 100755 index 0000000..3880bf9 --- /dev/null +++ b/tilserv/ssh-socks @@ -0,0 +1,10 @@ +#!/bin/bash +shopt -s extglob + +CMD=$(printf "ssh -nNT "; for i in /vm/*; do user="${i##/vm/}"; printf -- "-L /var/socks/%s.sock:/home/%s/.webserver.sock " "$user" "$user"; done; printf 192.168.122.30) + +rm /var/socks/* 2>/dev/null || echo No sockets +$CMD & +echo $! > /var/run/ssh-socks.pid +sleep 2 +chown -R www-data:www-data /var/socks/