Prefer su over sudo.

This commit is contained in:
Darko Poljak 2016-04-15 10:50:51 +02:00
parent 856678b09c
commit 5c33d22925
1 changed files with 30 additions and 10 deletions

View File

@ -19,27 +19,47 @@
#
# This explorer returns script code string for running a command with su
# or sudo, whichever it founds. If searches the command in the order of
# first sudo and then su if sudo is not found.
# If no sudo nor su is found then it returns string script code to run
# first su and then sudo if su is not found.
# If no su nor sudo is found then it returns string script code to run
# bare command.
# It uses two arguments, first user and the second command to run.
# If the result string is assigned to foo it is used as:
# $ $foo user command
#
# first check sudo
which sudo > /dev/null 2>&1
if [ $? -eq 0 ]
then
func='f() { sudo -H -u $1 $2; }'
else
# if no sudo then check su
sudo_func() {
which sudo > /dev/null 2>&1
if [ $? -eq 0 ]
then
func='f() { sudo -H -u $1 $2; }'
retval=0
else
func=''
retval=1
fi
return $retval
}
su_func() {
which su > /dev/null 2>&1
if [ $? -eq 0 ]
then
func='f() { su -c "$2" $1 ; }'
retval=0
else
# if no sudo nor su then run bare command
func=''
retval=1
fi
return $retval
}
# first check su
su_func
if [ $? -ne 0 ]
then
# if no su then check sudo
sudo_func
if [ $? -ne 0 ]
then
# if no su nor sudo then run bare command
func='f() { $2 ; }'
fi
fi