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:
Lars Kellogg-Stedman 2015-10-16 11:15:51 -04:00
parent 4b4168bc92
commit aa0b7536c9

View file

@ -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