From: madduck Date: Thu, 24 May 2007 12:19:43 +0000 (+0000) Subject: * Now should also work in su/sudo sessions because it now checks whether the X-Git-Tag: 0.3~2 X-Git-Url: https://git.madduck.net/code/molly-guard.git/commitdiff_plain/e21cb71b6c71acb8b7e449c9ea783f3e094a0fe7?ds=sidebyside * 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). --- 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;;