From e21cb71b6c71acb8b7e449c9ea783f3e094a0fe7 Mon Sep 17 00:00:00 2001 From: madduck Date: Thu, 24 May 2007 12:19:43 +0000 Subject: [PATCH] * Now should also work in su/sudo sessions because it now checks whether the creator of the current tty/pts is sshd, rather than the brittle check for the environment. Thanks to Craig Small and Don Armstrong for their sparks of brilliance (closes: #425831). --- shutdown | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shutdown b/shutdown index 8beaa50..db836ef 100755 --- a/shutdown +++ b/shutdown @@ -44,10 +44,14 @@ do_real_cmd() esac } -# require $SSH_CONNECTION to be set, indicates an SSH session -[ -n "${SSH_CONNECTION:-}" ] || do_real_cmd # require an interactive terminal connected to stdin test -t 0 || do_real_cmd + +# only run if we are being called over SSH, that is if the current terminal +# was created by sshd. +PTS=$(readlink /proc/$$/fd/0) +pgrep -f "^sshd.+${PTS#/dev/}$" >/dev/null || do_real_cmd + # pass through help commands case "$CMD $ARGS" in (shutdown\ *-c*) do_real_cmd;; -- 2.39.2