|
|
|
@ -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 |
|
|
|
|