mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
fix: sudosu not working on some BSD machines (#8214)
* fix: sudosu not working on some BSD machines * fix: sudosu: added a flag (`alt_method`) to enhance compatibility with more versions of `su` * Update changelogs/fragments/8214-sudosu-not-working-on-some-BSD-machines.yml Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/become/sudosu.py Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/become/sudosu.py Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/become/sudosu.py Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/become/sudosu.py Co-authored-by: Felix Fontein <felix@fontein.de> * fix: sudosu: lint --------- Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
9dd2b71d04
commit
83318c36aa
2 changed files with 21 additions and 1 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- sudosu become plugin - added an option (``alt_method``) to enhance compatibility with more versions of ``su`` (https://github.com/ansible-collections/community.general/pull/8214).
|
|
@ -55,6 +55,21 @@ DOCUMENTATION = """
|
||||||
ini:
|
ini:
|
||||||
- section: sudo_become_plugin
|
- section: sudo_become_plugin
|
||||||
key: password
|
key: password
|
||||||
|
alt_method:
|
||||||
|
description:
|
||||||
|
- Whether to use an alternative method to call C(su). Instead of running C(su -l user /path/to/shell -c command),
|
||||||
|
it runs C(su -l user -c command).
|
||||||
|
- Use this when the default one is not working on your system.
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
ini:
|
||||||
|
- section: community.general.sudosu
|
||||||
|
key: alternative_method
|
||||||
|
vars:
|
||||||
|
- name: ansible_sudosu_alt_method
|
||||||
|
env:
|
||||||
|
- name: ANSIBLE_SUDOSU_ALT_METHOD
|
||||||
|
version_added: 9.2.0
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,4 +104,7 @@ class BecomeModule(BecomeBase):
|
||||||
if user:
|
if user:
|
||||||
user = '%s' % (user)
|
user = '%s' % (user)
|
||||||
|
|
||||||
return ' '.join([becomecmd, flags, prompt, 'su -l', user, self._build_success_command(cmd, shell)])
|
if self.get_option('alt_method'):
|
||||||
|
return ' '.join([becomecmd, flags, prompt, "su -l", user, "-c", self._build_success_command(cmd, shell, True)])
|
||||||
|
else:
|
||||||
|
return ' '.join([becomecmd, flags, prompt, 'su -l', user, self._build_success_command(cmd, shell)])
|
||||||
|
|
Loading…
Reference in a new issue