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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/291731/viewspace-676036/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/291731/viewspace-676036/