Bug 2231257

Summary: MLS: logrotate.service fails to start because it cannot map its configuration file in memory
Product: Red Hat Enterprise Linux 9 Reporter: Renaud Métrich <rmetrich>
Component: selinux-policyAssignee: Nobody <nobody>
Status: CLOSED ERRATA QA Contact: Milos Malik <mmalik>
Severity: medium Docs Contact:
Priority: medium    
Version: 9.2CC: lvrabec, mmalik, zpytela
Target Milestone: rcKeywords: Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: selinux-policy-38.1.21-1.el9 Doc Type: Bug Fix
Doc Text:
Cause: SELinux prevents logrotate to map its configuration file Consequence: logrotate.service fails to start because it cannot map its configuration file in memory Fix: Allow logrotate_t to map generic files in /etc Result: logrotate.service is working
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-07 08:52:41 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 Renaud Métrich 2023-08-11 06:32:13 UTC
Description of problem:

On a freshly installed MLS system, we can see logrotate.service unit failing:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
[root@vm-mls9 ~]# journalctl -b -u logrotate.service 
Aug 11 08:12:14 vm-mls9 systemd[1]: Starting Rotate log files...
Aug 11 08:12:14 vm-mls9 logrotate[707]: error: Error mapping config file /etc/logrotate.conf: Permission denied
Aug 11 08:12:14 vm-mls9 systemd[1]: logrotate.service: Main process exited, code=exited, status=1/FAILURE
Aug 11 08:12:14 vm-mls9 systemd[1]: logrotate.service: Failed with result 'exit-code'.
Aug 11 08:12:14 vm-mls9 systemd[1]: Failed to start Rotate log files.
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

This happens because it's not able to map its configuration file:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
type=PROCTITLE msg=audit(08/11/2023 08:12:14.244:13990) : proctitle=/usr/sbin/logrotate /etc/logrotate.conf 
type=SYSCALL msg=audit(08/11/2023 08:12:14.244:13990) : arch=x86_64 syscall=mmap success=no exit=EACCES(Permission denied) a0=0x0 a1=0x1f0 a2=PROT_READ a3=MAP_PRIVATE|MAP_POPULATE items=0 ppid=1 pid=707 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=unset comm=logrotate exe=/usr/sbin/logrotate subj=system_u:system_r:logrotate_t:s0-s15:c0.c1023 key=(null) 
type=AVC msg=audit(08/11/2023 08:12:14.244:13990) : avc:  denied  { map } for  pid=707 comm=logrotate path=/etc/logrotate.conf dev="dm-0" ino=33858546 scontext=system_u:system_r:logrotate_t:s0-s15:c0.c1023 tcontext=system_u:object_r:etc_t:s0 tclass=file permissive=0 
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------


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

selinux-policy-mls-38.1.11-2.el9_2.3.noarch

How reproducible:

Always

Steps to Reproduce:
1. Start logrotate.service unit

Actual results:

Failure

Expected results:

No failure

Comment 1 Zdenek Pytela 2023-08-15 08:33:33 UTC
Commit to backport:
ec1ac0ac4 Allow logrotate_t to map generic files in /etc

Comment 10 errata-xmlrpc 2023-11-07 08:52:41 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 (selinux-policy bug fix and enhancement update), 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/RHBA-2023:6617