forked from ungleich-public/cdist
Prefer su over sudo.
This commit is contained in:
parent
856678b09c
commit
5c33d22925
1 changed files with 30 additions and 10 deletions
|
@ -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
|
||||
sudo_func() {
|
||||
which sudo > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
func='f() { sudo -H -u $1 $2; }'
|
||||
else
|
||||
# if no sudo then check su
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue