From d574b51a60a075baefe863670466ee24e6c4256e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 2 Feb 2018 10:24:20 +0000 Subject: [PATCH] dtoverlay: Use SUDO_USER in -pre and -post scripts This patch replaces the hardcoded "pi" user in the dtoverlay-pre and dtoverlay-post scripts with $SUDO_USER, which is set by the sudo command to the ID of the user calling it. In the event that SUDO_USER isn't set, $LOGNAME is used (set by login shells), with an ultime fallback to "pi". This change is necessary for users who have changed the login ID, perhaps as a security measure. --- host_applications/linux/apps/dtoverlay/dtoverlay-post | 11 +++++++++-- host_applications/linux/apps/dtoverlay/dtoverlay-pre | 9 ++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/host_applications/linux/apps/dtoverlay/dtoverlay-post b/host_applications/linux/apps/dtoverlay/dtoverlay-post index 6d8c66d..bce6721 100755 --- a/host_applications/linux/apps/dtoverlay/dtoverlay-post +++ b/host_applications/linux/apps/dtoverlay/dtoverlay-post @@ -4,7 +4,14 @@ if [ "$DISPLAY" == "" ]; then fi CMD="which lxpanelctl >/dev/null 2>&1 && lxpanelctl alsastart >/dev/null" if [ $EUID -eq 0 ]; then - exec su pi -c "$CMD" + if [ "$SUDO_USER" != "" ]; then + user=$SUDO_USER + elif [ "$LOGNAME" != "" ]; then + user=$LOGNAME + else + user=pi + fi + exec su $user -c "$CMD" else - exec $CMD + exec $CMD fi diff --git a/host_applications/linux/apps/dtoverlay/dtoverlay-pre b/host_applications/linux/apps/dtoverlay/dtoverlay-pre index 5065fc5..4de822f 100755 --- a/host_applications/linux/apps/dtoverlay/dtoverlay-pre +++ b/host_applications/linux/apps/dtoverlay/dtoverlay-pre @@ -4,7 +4,14 @@ if [ "$DISPLAY" == "" ]; then fi CMD="which lxpanelctl >/dev/null 2>&1 && lxpanelctl alsastop >/dev/null" if [ $EUID -eq 0 ]; then - exec su pi -c "$CMD" + if [ "$SUDO_USER" != "" ]; then + user=$SUDO_USER + elif [ "$LOGNAME" != "" ]; then + user=$LOGNAME + else + user=pi + fi + exec su $user -c "$CMD" else exec $CMD fi