Bug 484702

Summary: /usr/bin/rhn-generate-pem.pl not needed in /etc/sudoers
Product: Red Hat Satellite 5 Reporter: Jan Pazdziora <jpazdziora>
Component: ServerAssignee: Jan Pazdziora <jpazdziora>
Status: CLOSED CURRENTRELEASE QA Contact: wes hayutin <whayutin>
Severity: medium Docs Contact:
Priority: low    
Version: 530CC: msuchy
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: sat530 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-09-10 19:11:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 457079    

Description Jan Pazdziora 2009-02-09 16:14:57 UTC
Description of problem:

The default installation of Satellite 5.3.0 adds /usr/bin/rhn-generate-pem.pl to alias INSTALL_RHN in /etc/sudoers.

I've grepped Spacewalk source and rhn-generate-pem.pl appears to be called in two places -- in spacewalk/setup/bin/spacewalk-setup, and in web/modules/rhn/RHN/SatInstall.pm. That spacewalk-setup is being used by root, so no sudo is needed (and called) there. That RHN::SatInstall calls

sub generate_server_pem {
  my $class = shift;
  my %params = validate(@_, { ssl_dir => 1,
                              system => 1,
                              out_file => 0 });

  my @opts;

  push @opts, '--ssl-dir=' . File::Spec->catfile($params{ssl_dir}, $params{system});

  if ($params{out_file}) {
    push @opts, '--out-file=' . $params{out_file};
  }
  my $opts = join(' ', @opts);

  my $content;

  open(FH, "/usr/bin/sudo /usr/bin/rhn-generate-pem.pl $opts |")
    or throw "(satinstall:generate_pem_error) Could not generate server.pem file: $OS_ERROR";

  my @content = <FH>;

  close(FH);

  if (not $params{out_file}) {
    $content = join('', @content);
  }

  return $content;
}

But the function generate_server_pem is not used in the whole Spacewalk codebase except that bin/spacewalk-setup, and that script defines its own function. Therefore I assume it is dead code which can be removed, and so can /usr/bin/rhn-generate-pem.pl from /etc/sudoers.

Note: I did this scan through our code to figure out if there are some commands that need additional SELinux treatment.

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

Satellite-5.3.0-RHEL5-re20090206.1

How reproducible:

Deterministic.

Steps to Reproduce:
1. Install Satellite 5.3.0.
2. Look into /etc/sudoers.
  
Actual results:

/usr/bin/rhn-generate-pem.pl is there.

Expected results:

/usr/bin/rhn-generate-pem.pl is not there and Satellite continues to work OK.

Additional info:

This bug was modeled based on bug 484701.

Comment 1 Jan Pazdziora 2009-02-10 12:25:24 UTC
The proposed change is to remove the INSTALL_RHN section and merge whatever needs to be there to CONFIG_RHN. The proposed sudoers.rhn is below. I've tested that with this, the Satellite/Spacewalk works and runs external commands fine.

## RHN specifics ##
Cmnd_Alias CONFIG_RHN = /usr/sbin/rhn-sat-restart-silent,\
                        /usr/bin/rhn-config-satellite.pl,\
                        /usr/bin/rhn-satellite-activate,\
                        /usr/bin/rhn-bootstrap,\
                        /usr/bin/rhn-ssl-tool,\
                        /usr/bin/rhn-ssl-dbstore,\
                        /usr/bin/rhn-load-ssl-cert.pl,\
                        /etc/rc.d/np.d/step Monitoring install,\
                        /etc/rc.d/np.d/step MonitoringScout install,\
                        /etc/rc.d/np.d/step Monitoring uninstall,\
                        /etc/rc.d/np.d/step MonitoringScout uninstall,\
                        /sbin/service Monitoring restart,\
                        /sbin/service MonitoringScout restart,\
                        /sbin/service taskomatic restart

# The CONFIG_RHN commands are required for reconfiguration of a
# running RHN Satellite.  They should be enabled for proper operation
# of the RHN Satellite.
apache  ALL=(root)      NOPASSWD: CONFIG_RHN
tomcat  ALL=(root)      NOPASSWD: CONFIG_RHN

# These two directives allow tomcat and apache to invoke CONFIG_RHN
# commands via sudo even without a real tty
Defaults:tomcat !requiretty
Defaults:apache !requiretty

Comment 2 Clifford Perry 2009-02-10 16:59:55 UTC
This is a throw back from the old Installer - where we had command line install laid down packages. The WebUI then went through configuration/installation of Satellite to get it running, with many many steps, unlike the new WebUI portion that just asks for Username/password to be created for Sat Admin account. 

Cliff.

Comment 3 Jan Pazdziora 2009-02-11 07:26:00 UTC
Reassigning to myself as the bugzillas are not tracked against the SELinux feature.

Comment 4 Jan Pazdziora 2009-02-11 07:28:06 UTC
The previous comment should have been "are *now*".

Comment 5 Jan Pazdziora 2009-02-17 10:21:09 UTC
Committed to Spacewalk repo, 3ed68b51f71e63769c60bb5d0094da595303fcd3 and 128f4ee11c4bbd18690b4974f51e97db07849c32.

Comment 6 Jan Pazdziora 2009-02-24 12:30:53 UTC
With compose Satellite-5.3.0-RHEL5-re20090220.1 available, moving ON_QA.

Comment 7 wes hayutin 2009-02-25 19:08:38 UTC
ISO: Satellite-5.3.0-RHEL5-re20090220.1-i386-embedded-oracle.iso
[root@grandprix ~]# cat /etc/sudoers | grep /usr/bin/rhn-generate-pem.pl
[root@grandprix ~]# 

verified

Comment 8 Miroslav Suchý 2009-08-26 09:24:15 UTC
[root@xen5 ~]# grep rhn-generate-pem.pl /etc/sudoers
[root@xen5 ~]#
satellite works fine

verified in stage on xen5

Comment 9 Brandon Perkins 2009-09-10 19:11:41 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2009-1434.html