Skip to content
Snippets Groups Projects
Commit 80d647a9 authored by Bob Lantz's avatar Bob Lantz
Browse files

add findUser() to clean up user identification

parent 3df36101
No related branches found
No related tags found
No related merge requests found
......@@ -125,12 +125,8 @@ def __init__( self, name, server=None, user=None, serverIP=None,
if server == 'localhost':
server = None
self.server = server
if not serverIP:
serverIP = self.findServerIP( server )
self.serverIP = serverIP
if not user:
user = quietRun( 'echo $SUDO_USER' )
self.user = user
self.serverIP = serverIP if serverIP else self.findServerIP( server )
self.user = user if user else self.findUser()
if self.user and self.server:
self.dest = '%s@%s' % ( self.user, self.serverIP )
else:
......@@ -146,6 +142,20 @@ def __init__( self, name, server=None, user=None, serverIP=None,
self.splitInit = splitInit
super( RemoteMixin, self ).__init__( name, **kwargs )
@staticmethod
def findUser():
"Try to return logged-in (usually non-root) user"
try:
# If we're running sudo
return os.environ[ 'SUDO_USER' ]
except:
try:
# Logged-in user (if we have a tty)
return quietRun( 'who am i' ).split()[ 0 ]
except:
# Give up and return effective user
return quietRun( 'whoami' )
# Determine IP address of local host
_ipMatchRegex = re.compile( r'\d+\.\d+\.\d+\.\d+' )
......@@ -593,9 +603,7 @@ def __init__( self, *args, **kwargs ):
if not self.serverIP:
self.serverIP = { server: RemoteMixin.findServerIP( server )
for server in self.servers }
self.user = params.pop( 'user', None )
if self.servers and not self.user:
self.user = quietRun( 'echo $SUDO_USER' )
self.user = params.pop( 'user', RemoteMixin.findUser() )
if params.pop( 'precheck' ):
self.precheck()
self.connections = {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment