Bug 1391521 - MySQL context for /var/lib/mysql-files
Summary: MySQL context for /var/lib/mysql-files
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: selinux-policy
Version: 7.4
Hardware: All
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Lukas Vrabec
QA Contact: Milos Malik
URL:
Whiteboard:
: 1391947 (view as bug list)
Depends On:
Blocks: 1346768 1391525 1391947
TreeView+ depends on / blocked
 
Reported: 2016-11-03 13:26 UTC by Honza Horak
Modified: 2017-08-01 15:17 UTC (History)
6 users (show)

Fixed In Version: selinux-policy-3.13.1-124.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1391525 1391947 (view as bug list)
Environment:
Last Closed: 2017-08-01 15:17:42 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:1861 0 normal SHIPPED_LIVE selinux-policy bug fix update 2017-08-01 17:50:24 UTC

Description Honza Horak 2016-11-03 13:26:59 UTC
Description of problem:

In Fedora we have this rule for mysql directories:
  /var/lib/mysql(-files|-keyring)?(/.*)?    mysqld_db_t

In RHEL we only have:
  /var/lib/mysql(/.*)?                      mysqld_db_t

For RHSCL packages (rh-mysql56 specifically) we now started to use /var/opt/rh/rh-mysql56/lib/mysql-files (because of bz #1384962) and we also define this rule:
  /var/opt/rh/rh-mysql56 = /var (using semanage fcontext -a -e ...)

Since selinux's "equality" cannot be defined twice for given directory, we cannot define something like the following in mysql packge:
  /var/lib/mysql = /var/lib/mysql-files
or something like
  /var/opt/rh/rh-mysql56/lib/mysql-files = /var/lib/mysql

So I think we should change the definition in selinux-policy to be the same as in Fedora:
  /var/lib/mysql(-files|-keyring)?(/.*)?    mysqld_db_t

This would help in all packages we ship, so it wouldn't require us to fix particular packages.

Version-Release number of selected component (if applicable):
selinux-policy-3.13.1-102.el7.noarch

Steps to Reproduce:
1. ls -lZd /var/opt/rh/rh-mysql56/lib/mysql-files

Actual results:
drwxr-x---. mysql mysql system_u:object_r:var_lib_t:s0   /var/opt/rh/rh-mysql56/lib/mysql-files/

Expected results:
drwxr-x---. mysql mysql system_u:object_r:mysqld_db_t:s0   /var/opt/rh/rh-mysql56/lib/mysql-files/

Comment 1 Honza Horak 2016-11-03 14:08:03 UTC
To correspond the conflict, this is what I see when trying to define it specifically for one directory:

#> semanage fcontext -a -e /var/lib/mysql /var/opt/rh/rh-mysql56/lib/mysql-files

ValueError: File spec /var/opt/rh/rh-mysql56/lib/mysql-files conflicts with equivalency rule '/var/opt/rh/rh-mysql56 /var'; Try adding '/var/lib/mysql-files' instead

Comment 4 Milos Malik 2017-03-02 21:24:40 UTC
Based on the results of our automated TC, this bug is fixed in 3.13.1-124.el7. Not switching to VERIFIED right now, because the bug needs to be added to the selinux-policy errata first.

Comment 7 Michal Schorm 2017-05-10 11:13:05 UTC
*** Bug 1391947 has been marked as a duplicate of this bug. ***

Comment 8 errata-xmlrpc 2017-08-01 15:17:42 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/RHBA-2017:1861


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