Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

thers a similar question out there How can I determine whether a shell-script runs as root or not?

I have the same doubt with different result

Is it possible to, within the BASH script prior to everything being run, check if the script is being run as superuser, and if not, print a message saying You must be superuser to use this script, then subsequently

get pass from the user using askpass or something like that then execute the same script as superuser?

share|improve this question
Potential duplicate of my question, no? –  Thomas W. Mar 14 '11 at 6:48
@EvilPhoenix: the question is not "how to detect that I am root" but "how can I make a script root through a mechanism like sudo". –  Lekensteyn Mar 15 '11 at 8:45

1 Answer 1

up vote 10 down vote accepted

I just call sudo if the program needs root permissions, but doesn't have:

if [ $(id -u) != 0 ]; then
   echo "This script requires root permissions"
   sudo "$0" "$@"

"$0" contains the name of the script, "$@" optional arguments. It may be omitted if your program does not accept arguments.

Note: this shellscript is expected to be run in a shell, if this script should run as GUI, use something like gksu or kdesudo instead of sudo.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.