diff --git a/changelogs/fragments/66929-pmrun-quote-entire-success-command-string.yml b/changelogs/fragments/66929-pmrun-quote-entire-success-command-string.yml new file mode 100644 index 00000000000..769a5d1b51c --- /dev/null +++ b/changelogs/fragments/66929-pmrun-quote-entire-success-command-string.yml @@ -0,0 +1,2 @@ +bugfixes: + - pmrun plugin - The success_command string was no longer quoted. This caused unusual use-cases like ``become_flags=su - root -c`` to fail. diff --git a/lib/ansible/plugins/become/pmrun.py b/lib/ansible/plugins/become/pmrun.py index 023cf408ba3..070352493d6 100644 --- a/lib/ansible/plugins/become/pmrun.py +++ b/lib/ansible/plugins/become/pmrun.py @@ -57,6 +57,7 @@ DOCUMENTATION = """ """ from ansible.plugins.become import BecomeBase +from ansible.module_utils.six.moves import shlex_quote class BecomeModule(BecomeBase): @@ -72,4 +73,4 @@ class BecomeModule(BecomeBase): become = self.get_option('become_exe') or self.name flags = self.get_option('become_flags') or '' - return '%s %s %s' % (become, flags, self._build_success_command(cmd, shell)) + return '%s %s %s' % (become, flags, shlex_quote(self._build_success_command(cmd, shell)))