From: ed neville Date: Fri, 17 Dec 2021 14:29:48 +0000 (+0000) Subject: script to kill subjects processes from userdel X-Git-Tag: v4.11~3^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dcca8653a54b5a03b0234238dbc6388f6b59adc3;p=thirdparty%2Fshadow.git script to kill subjects processes from userdel Closes #404 Closes #317 Signed-off-by: ed neville --- diff --git a/etc/shadow-maint/userdel-pre.d/01-kill_user_procs.sh b/etc/shadow-maint/userdel-pre.d/01-kill_user_procs.sh new file mode 100755 index 000000000..ca481b1ba --- /dev/null +++ b/etc/shadow-maint/userdel-pre.d/01-kill_user_procs.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + +# Check user exists, and if so, send sigkill to processes that the user owns + +RUNNING=`ps -eo user | grep -Fx "$SUBJECT" | wc -l` + +# if the user does not exist, RUNNING will be 0 + +if [ "${RUNNING}x" = "0x" ]; then + exit 0 +fi + +ls -1 /proc | while IFS= read -r PROC; do + echo "$PROC" | grep -E '^[0-9]+$' >/dev/null + if [ $? -ne 0 ]; then + continue + fi + if [ -d "/proc/${PROC}" ]; then + USR=`stat -c "%U" /proc/${PROC}` + if [ "${USR}" = "${SUBJECT}" ]; then + echo "Killing ${SUBJECT} owned ${PROC}" + kill -9 "${PROC}" + fi + fi +done +