Allow raw and script to support su
This commit is contained in:
parent
ae1b183855
commit
7e3dd1066c
2 changed files with 7 additions and 5 deletions
|
@ -43,11 +43,12 @@ class ActionModule(object):
|
|||
executable = v
|
||||
module_args = r.sub("", module_args)
|
||||
|
||||
result = self.runner._low_level_exec_command(conn, module_args, tmp, sudoable=True, executable=executable)
|
||||
result = self.runner._low_level_exec_command(conn, module_args, tmp, sudoable=True, executable=executable,
|
||||
su=self.runner.su)
|
||||
# for some modules (script, raw), the sudo success key
|
||||
# may leak into the stdout due to the way the sudo/su
|
||||
# command is constructed, so we filter that out here
|
||||
if result.get('stdout','').startswith('SUDO-SUCCESS-'):
|
||||
result['stdout'] = re.sub(r'^SUDO-SUCCESS.*(\r)?\n', '', result['stdout'])
|
||||
if result.get('stdout','').strip().startswith('SUDO-SUCCESS-'):
|
||||
result['stdout'] = re.sub(r'^(\r)?\nSUDO-SUCCESS.*(\r)?\n', '', result['stdout'])
|
||||
|
||||
return ReturnData(conn=conn, result=result)
|
||||
|
|
|
@ -113,12 +113,13 @@ class ActionModule(object):
|
|||
|
||||
sudoable = True
|
||||
# set file permissions, more permisive when the copy is done as a different user
|
||||
if self.runner.sudo and self.runner.sudo_user != 'root':
|
||||
if ((self.runner.sudo and self.runner.sudo_user != 'root') or
|
||||
(self.runner.su and self.runner.su_user != 'root')):
|
||||
cmd_args_chmod = "chmod a+rx %s" % tmp_src
|
||||
sudoable = False
|
||||
else:
|
||||
cmd_args_chmod = "chmod +rx %s" % tmp_src
|
||||
self.runner._low_level_exec_command(conn, cmd_args_chmod, tmp, sudoable=sudoable)
|
||||
self.runner._low_level_exec_command(conn, cmd_args_chmod, tmp, sudoable=sudoable, su=self.runner.su)
|
||||
|
||||
# add preparation steps to one ssh roundtrip executing the script
|
||||
env_string = self.runner._compute_environment_string(inject)
|
||||
|
|
Loading…
Reference in a new issue