correct value of remote_user for local connections
When using 'local' connections, privilege escalation would fail if ansible_ssh_user was in the current context to the same value as become_user. This commit ensures that for 'local' connections we reset remote_user to the local username. This fixes #12782.
This commit is contained in:
parent
4b4168bc92
commit
aa0b7536c9
1 changed files with 6 additions and 0 deletions
|
@ -24,6 +24,7 @@ import shutil
|
|||
import subprocess
|
||||
import select
|
||||
import fcntl
|
||||
import getpass
|
||||
|
||||
import ansible.constants as C
|
||||
|
||||
|
@ -41,6 +42,11 @@ class Connection(ConnectionBase):
|
|||
def _connect(self, port=None):
|
||||
''' connect to the local host; nothing to do here '''
|
||||
|
||||
# Because we haven't made any remote connection we're running as
|
||||
# the local user, rather than as whatever is configured in
|
||||
# remote_user.
|
||||
self._play_context.remote_user = getpass.getuser()
|
||||
|
||||
if not self._connected:
|
||||
self._display.vvv("ESTABLISH LOCAL CONNECTION FOR USER: {0}".format(self._play_context.remote_user, host=self._play_context.remote_addr))
|
||||
self._connected = True
|
||||
|
|
Loading…
Reference in a new issue