There is a shell script (/bin/sh, not bash) that requires root permissions for execution.
If it is ran by a normal user it should ask user a password to get root access and re-run itself.
Now it uses the following code:
if [ $(id -u) -ne 0 ]; then su root -- $0 $@ ; ... fi
That works fine, but there are some OS like Ubuntu that has no root password at all. On the other hand, a lot of systems use sudo for root permissions.
The question is: how can the script detect whether to use su
or sudo
without asking the user to enter too much passwords (e.g. enter sudo
password, if it fails - run su
).
It shouldn't. If script requires root privileges, it should be run as root. It's the user's business how he's going to accomplish that -- using su, sudo or some other mechanism.
If you are concerned with security issues and don't want to do everything from root, you can drop root privileges for those parts.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With