Bug 1515888

Summary: [RFE] Extend Remote Execution SSH provider with the ability to provide password to escalate privileges instead of passwordless sudo
Product: Red Hat Satellite Reporter: Ture Karlsson <tkarlsso>
Component: Remote ExecutionAssignee: Dmitri Dolguikh <ddolguik>
Status: CLOSED ERRATA QA Contact: Ales Dujicek <adujicek>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2.12CC: adujicek, aruzicka, bkearney, gpulido, hajek, inecas, pghadge, tkarlsso
Target Milestone: 6.4.0Keywords: FutureFeature, RFE
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tfm-rubygem-foreman_remote_execution-1.5.2-2 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-16 15:29:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ture Karlsson 2017-11-21 14:46:26 UTC
Description of problem:
To be able to run commands that require escalated privileges (sudo), it is currently required to set sudo rule "NOPASSWD" for the SSH user on the target host. (For Red Hat IdM users, the same thing can be achieved with a sudo rule with the sudo option "!authenticate".)

"NOPASSWD" (i.e. passwordless sudo) is not acceptable in all environments and therefore it would be useful to be able to provide a password used for privilege escalation at the remote host.

As a reference, this would be similar to the "--ask-become-pass" option in Ansible.

Version-Release number of selected component (if applicable): 6.2.12


How reproducible: Always


Steps to Reproduce:
1. Setup REx with a user that is not root, e.g. by following https://access.redhat.com/solutions/2650071 
2. Notice that you have to set "test-user ALL=NOPASSWD: ALL" in your sudoers config

Suggested solution:
In the settings for REx (Administer -> Settings -> RemoteExecution) there are currently 3 settings concerning user and privilege escalation:

remote_execution_ssh_user: testuser
remote_execution_effective_user: root
remote_execution_effective_user_method: sudo

My suggestion is to add another setting, e.g:

remote_execution_sudo_password: ***

That password is then used to escalate privileges at the remote host after authenticating with the user specified in "remote_execution_ssh_user".

Comment 1 Ivan Necas 2017-11-22 08:14:27 UTC
Created redmine issue http://projects.theforeman.org/issues/21731 from this bug

Comment 2 Satellite Program 2018-04-05 00:06:35 UTC
Upstream bug assigned to ddolguik

Comment 3 Satellite Program 2018-04-05 00:06:39 UTC
Upstream bug assigned to ddolguik

Comment 4 Satellite Program 2018-05-04 08:06:53 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/21731 has been resolved.

Comment 10 errata-xmlrpc 2018-10-16 15:29:23 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2018:2927