Bug 812854 - package-cleanup fails to remove kernels when called from cron
Summary: package-cleanup fails to remove kernels when called from cron
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: selinux-policy
Version: 6.2
Hardware: All
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Miroslav Grepl
QA Contact: Michal Trunecka
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-04-16 12:48 UTC by Rik Theys
Modified: 2014-09-30 23:33 UTC (History)
4 users (show)

Fixed In Version: selinux-policy-3.7.19-146.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-06-20 12:33:32 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2012:0780 0 normal SHIPPED_LIVE selinux-policy bug fix and enhancement update 2012-06-19 20:34:59 UTC

Description Rik Theys 2012-04-16 12:48:36 UTC
Description of problem:

When called from a cron job, package-cleanup fails to remove kernels packages with the following error:

Error in PREUN scriptlet in rpm package kernel
kernel-2.6.32-220.4.2.el6.x86_64 was supposed to be removed but is not!

I believe this bug is the same as 750892 which was filed against Fedora 16?

Changing the selinux context of /usr/bin/package-cleanup to system_u:object_r:rpm_exec_t:s0 seems to fix this issue.

Would it be possible to include this policy update in a next update of the selinux-policy package?

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


How reproducible:

always


Steps to Reproduce:
1. create a cron job that calls package-cleanup --oldkernels --count=1 -y
2. wait for the job to run
3.
  
Actual results:

package-cleanup fails to remove older kernels with the preun scriptlet error mentioned above.

Expected results:

Older kernels removed without errors.

Additional info:

When the package-cleanup command is called from a shell (unconfined), there is not error message and the packages are removed as expected.

Regards,

Rik

Comment 2 Milos Malik 2012-04-16 21:24:00 UTC
Following your instructions I believe I reproduced the problem:
----
time->Mon Apr 16 23:18:17 2012
type=SYSCALL msg=audit(1334611097.009:40968): arch=40000003 syscall=11 success=no exit=-13 a0=d489360 a1=d430180 a2=bfd06ccc a3=0 items=0 ppid=13147 pid=13150 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=13 comm="package-cleanup" exe="/usr/bin/python" subj=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 key=(null)
type=AVC msg=audit(1334611097.009:40968): avc:  denied  { transition } for  pid=13150 comm="package-cleanup" path="/bin/bash" dev=sda3 ino=219786 scontext=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 tcontext=system_u:system_r:rpm_script_t:s0-s0:c0.c1023 tclass=process
----

# ls -Z /etc/cron.d/package-cleanup 
-rw-r--r--. root root system_u:object_r:system_cron_spool_t:s0 /etc/cron.d/package-cleanup
# cat /etc/cron.d/package-cleanup 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
18 * * * * root package-cleanup --oldkernels --count=1 -y
#

Comment 4 Daniel Walsh 2012-04-17 13:49:13 UTC
And if you label /usr/bin/package-cleanup as rpm_exec_t, does it work?

Comment 5 Rik Theys 2012-04-17 13:54:39 UTC
Hi Daniel,

Yes, changing the label makes it work.

Regards,

Rik

Comment 6 Milos Malik 2012-04-17 14:05:20 UTC
If /usr/bin/package-cleanup is labelled rpm_exec_t then the scenario works without AVCs.

Comment 9 errata-xmlrpc 2012-06-20 12:33:32 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.

http://rhn.redhat.com/errata/RHBA-2012-0780.html


Note You need to log in before you can comment on or make changes to this bug.