Bug 2132185

Summary: Allow spc_t to transition to install_t
Product: [Fedora] Fedora Reporter: Colin Walters <walters>
Component: selinux-policyAssignee: Zdenek Pytela <zpytela>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 38CC: dwalsh, grepl.miroslav, lvrabec, mmalik, omosnacek, pkoncity, vmojzis, zpytela
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 Colin Walters 2022-10-04 22:14:08 UTC
install_t is the gift that keeps on giving.  Previously e.g. https://bugzilla.redhat.com/show_bug.cgi?id=2110012

(rpm-)ostree needs to be able to write SELinux labels for the *new* OS update, so we run as install_t. 

But for bootstrapping in OpenShift we now want to run rpm-ostree *in a container*, and policy is denying this (when doing a major update of course, minor updates that don't change policies don't hit this, which is why I didn't notice until now)

https://issues.redhat.com/browse/MCO-396

Things work for me with just this:


```
$ cat spc_install.te 

module spc_install 1.0;

require {
	type container_file_t;
	type spc_t;
	type install_t;
	class process transition;
	class file entrypoint;
}

#============= install_t ==============
allow install_t container_file_t:file entrypoint;

#============= spc_t ==============

allow spc_t install_t:process transition;
$
```

Basically we're now doing: podman run --privileged runcon -t install_t ...

Comment 1 Colin Walters 2022-10-04 22:20:59 UTC
(Previously, when we did things like this we had a huge workaround where the code run in the container actually just passed data over to the host process, but that'd be much harder for what we want here)

Short term I may look at just shipping the above in FCOS derivatives and down to RHCOS but it'd be good to just support this out of the box in policy - a privileged container can already do whatever it wants, supporting `runcon -t install_t` just avoids the need to `setenforce 0` etc.

Comment 2 Ben Cotton 2023-02-07 14:56:54 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 38 development cycle.
Changing version to 38.

Comment 3 Aoife Moloney 2024-05-07 15:50:37 UTC
This message is a reminder that Fedora Linux 38 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 38 on 2024-05-21.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '38'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 38 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.