Created
April 16, 2014 07:07
-
-
Save perfectfoolish/10821437 to your computer and use it in GitHub Desktop.
How to: Check the bash shell script is being run by root or not
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
http://www.cyberciti.biz/tips/shell-root-user-check-script.html | |
Sometime it is necessary to find out if a shell script is being run as root user or not. | |
When user account created a user ID is assigned to each user. BASH shell stores the user ID in $UID variable. Your effective user ID is stored in $EUID variable. You can | |
Old way... | |
You can easily add a simple check at the start of a script: | |
Check the script is being run by root user | |
#!/bin/bash | |
# Init | |
FILE="/tmp/out.$$" | |
GREP="/bin/grep" | |
#.... | |
# Make sure only root can run our script | |
if [ "$(id -u)" != "0" ]; then | |
echo "This script must be run as root" 1>&2 | |
exit 1 | |
fi | |
# ... | |
New way: Using EUID | |
#!/bin/bash | |
# Init | |
FILE="/tmp/out.$$" | |
GREP="/bin/grep" | |
#.... | |
# Make sure only root can run our script | |
if [[ $EUID -ne 0 ]]; then | |
echo "This script must be run as root" 1>&2 | |
exit 1 | |
fi | |
# ... | |
Mount /dev/sdb1 only if you are a root | |
#!/bin/bash | |
if [[ $EUID -ne 0 ]]; then | |
echo "You must be a root user" 2>&1 | |
exit 1 | |
else | |
mount /dev/sdb1 /mnt/disk2 | |
fi | |
Updated for accuracy and more examples. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment