diff options
Diffstat (limited to 'lcpubsh/bin/nuke.sh')
-rw-r--r-- | lcpubsh/bin/nuke.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lcpubsh/bin/nuke.sh b/lcpubsh/bin/nuke.sh new file mode 100644 index 0000000..33e3aed --- /dev/null +++ b/lcpubsh/bin/nuke.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# georg@lysergic.dev +set -e +OUTPUT="nc -N 127.0.0.2 2424" +echo "Shell removal invoked." | $OUTPUT +if [ ! "$#" -eq 0 ]; then +user="$(echo "$1" |tr '[:upper:]' '[:lower:]')" +if id "$user" &>/dev/null; then + CONTAINER="$(docker ps -qf "name=$user")" + echo "User: $user - Container ID: $CONTAINER" | $OUTPUT + if [ ! -z "$CONTAINER" ]; then + docker stop $CONTAINER + if [ $? -eq "0" ]; then + echo "Running shell found and stopped." + else + echo "Shell could not be stopped. Maybe it's lready down?" + fi + docker rm $CONTAINER + if [ $? -eq "0" ]; then + echo "Shell container found and removed." + else + echo "Shell could not be removed. Maybe it doesn't exist?" + fi + else + echo "ID could not be determined." + fi + sudo /usr/sbin/userdel -f $user | $OUTPUT + sudo /usr/sbin/groupdel -f $user | $OUTPUT + sudo /usr/bin/rm -rf /home/$user + sudo /usr/bin/rm -rf /var/spool/mail/$user + INITEMP=$(mktemp --tmpdir initemp.XXXXX) + trap "rm -f $INITEMP" 0 1 2 3 15 + sed "/$user/d" "/etc/dockersh.ini" > "$INITEMP" + cat "$INITEMP" > /etc/dockersh.ini + echo "Done." | $OUTPUT + echo "OK." +else + echo "Aborted: User not found." +fi +else + echo "No argument supplied." +fi |