Bug 1000301

Summary: SELinux is preventing /usr/bin/python2.7 from 'write' accesses on the file /etc/yum.repos.d/redhat.repo.
Product: Red Hat Enterprise Linux 7 Reporter: Gerd Hoffmann <kraxel>
Component: subscription-managerAssignee: candlepin-bugs
Status: CLOSED DUPLICATE QA Contact: John Sefler <jsefler>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: bkearney, ckozak, dgoodwin, mgrepl, mmalik, spandey
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: abrt_hash:f0142a708f65c1b182171fc5762cfd63df582e32adcf11dc6d8f772364e6eed2
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-05 20:44:27 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: 863175    

Description Gerd Hoffmann 2013-08-23 06:54:46 UTC
Description of problem:
SELinux is preventing /usr/bin/python2.7 from 'write' accesses on the file /etc/yum.repos.d/redhat.repo.

*****  Plugin catchall_labels (83.8 confidence) suggests   *******************

If you want to allow python2.7 to have write access on the redhat.repo file
Then you need to change the label on /etc/yum.repos.d/redhat.repo
Do
# semanage fcontext -a -t FILE_TYPE '/etc/yum.repos.d/redhat.repo'
where FILE_TYPE is one of the following: afs_cache_t, initrc_tmp_t, puppet_tmp_t, rhsmcertd_lock_t, rhsmcertd_var_lib_t, rhsmcertd_var_run_t, user_cron_spool_t, var_lock_t. 
Then execute: 
restorecon -v '/etc/yum.repos.d/redhat.repo'


*****  Plugin catchall (17.1 confidence) suggests   **************************

If you believe that python2.7 should be allowed write access on the redhat.repo file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep rhsmcertd-worke /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp

Additional Information:
Source Context                system_u:system_r:rhsmcertd_t:s0
Target Context                system_u:object_r:etc_t:s0
Target Objects                /etc/yum.repos.d/redhat.repo [ file ]
Source                        rhsmcertd-worke
Source Path                   /usr/bin/python2.7
Port                          <Unknown>
Host                          (removed)
Source RPM Packages           python-2.7.5-5.el7.x86_64
Target RPM Packages           subscription-manager-1.8.13-1.el7.x86_64
Policy RPM                    selinux-policy-3.12.1-70.el7.noarch
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Host Name                     (removed)
Platform                      Linux (removed) 3.10.0-10.el7.x86_64 #1 SMP Tue
                              Aug 20 16:54:38 EDT 2013 x86_64 x86_64
Alert Count                   10
First Seen                    2013-08-21 22:12:56 CEST
Last Seen                     2013-08-23 08:47:58 CEST
Local ID                      fb1d576d-97f5-429b-86cc-26ce47c1f959

Raw Audit Messages
type=AVC msg=audit(1377240478.712:706): avc:  denied  { write } for  pid=3047 comm="rhsmcertd-worke" name="redhat.repo" dev="dm-0" ino=1706189 scontext=system_u:system_r:rhsmcertd_t:s0 tcontext=system_u:object_r:etc_t:s0 tclass=file


type=SYSCALL msg=audit(1377240478.712:706): arch=x86_64 syscall=open success=no exit=EACCES a0=de46c0 a1=241 a2=1b6 a3=0 items=0 ppid=787 pid=3047 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm=rhsmcertd-worke exe=/usr/bin/python2.7 subj=system_u:system_r:rhsmcertd_t:s0 key=(null)

Hash: rhsmcertd-worke,rhsmcertd_t,etc_t,file,write

Additional info:
reporter:       libreport-2.1.6
hashmarkername: setroubleshoot
kernel:         3.10.0-10.el7.x86_64
type:           libreport

Comment 2 Miroslav Grepl 2013-10-16 22:09:03 UTC
So rhsmcertd-worker can write anything in /etc/yum.repos.d/ dir, right?

Comment 3 Devan Goodwin 2013-10-30 14:49:25 UTC
(In reply to Miroslav Grepl from comment #2)
> So rhsmcertd-worker can write anything in /etc/yum.repos.d/ dir, right?

No we just write to the one specific redhat.repo file, but it would seem acceptable to be able to write anything there if that helps things along.

Comment 4 Carter Kozak 2013-10-30 14:55:00 UTC
It also needs access to some directories in /etc/pki, which appears to be missing in rhel7



We need access to /etc/pki/consumer and /etc/pki/entitlement, as well as redhat.repo

Here are my 2 denials.

type=AVC msg=audit(1383144333.585:538): avc:  denied  { write } for  pid=2692 comm="rhsmcertd-worke" name="redhat.repo" dev="dm-0" ino=37559621 scontext=system_u:system_r:rhsmcertd_t:s0 tcontext=unconfined_u:object_r:etc_t:s0 tclass=file
type=SYSCALL msg=audit(1383144333.585:538): arch=c000003e syscall=2 success=no exit=-13 a0=2726d50 a1=241 a2=1b6 a3=fffffff0 items=0 ppid=1333 pid=2692 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="rhsmcertd-worke" exe="/usr/bin/python2.7" subj=system_u:system_r:rhsmcertd_t:s0 key=(null)
type=AVC msg=audit(1383144334.075:539): avc:  denied  { write } for  pid=2713 comm="rhsmcertd-worke" name="entitlement" dev="dm-0" ino=1422984 scontext=system_u:system_r:rhsmcertd_t:s0 tcontext=unconfined_u:object_r:cert_t:s0 tclass=dir
type=SYSCALL msg=audit(1383144334.075:539): arch=c000003e syscall=2 success=no exit=-13 a0=20801f0 a1=241 a2=1b6 a3=0 items=0 ppid=1333 pid=2713 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="rhsmcertd-worke" exe="/usr/bin/python2.7" subj=system_u:system_r:rhsmcertd_t:s0 key=(null)

Comment 5 Carter Kozak 2013-10-30 14:59:49 UTC
*** Bug 1017010 has been marked as a duplicate of this bug. ***

Comment 6 Miroslav Grepl 2013-11-05 20:44:27 UTC

*** This bug has been marked as a duplicate of bug 822402 ***