From b5a0ffe8c1773c15e8a0e4f4d26e45cdf45eb5bd Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 5 Nov 2015 22:47:56 -0600 Subject: [PATCH] Checks for root/non-root/sudo Checks if script is running as root, non-root, or sudo. For root, it sets SUDO variable to nothing and the script runs. If it's not root, then it checks to see if sudo is installed. If it is installed, then it sets SUDO variable to 'sudo' and the script runs. If it is not root and sudo is not installed, then the user does not have sufficient privileges to run the script and it exits. --- gravity.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gravity.sh b/gravity.sh index 82e87ae5..6b4a4b74 100755 --- a/gravity.sh +++ b/gravity.sh @@ -6,8 +6,13 @@ piholeIP=$(hostname -I) #Checks if the script is being run as root and sets sudo accordingly -SUDO='' -if (( $EUID !=0 )); then SUDO='sudo' +echo "Checking if running as root..." +if (( $EUID==0 )); then SUDO='' +echo "WE ARE ROOT!" +elif [ $(dpkg-query -s -f='${Status}' sudo 2>/dev/null | grep -c "ok installed") -eq 1 ]; then SUDO='sudo' +echo "sudo IS installed... setting SUDO to sudo!" +else echo "Sudo NOT found AND not ROOT! Must run script as root!" +exit 1 fi # Ad-list sources--one per line in single quotes