-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for confined users #18439
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: rhatdan The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
8176030
to
74cad1e
Compare
@cevich AFAICT, container-selinux still gets fetched from the default fedora repos? We should probably switch to fetching all dependencies from |
@cevich i guess for now, I could rerun CI job with terminal and manually install the copr repo with latest container-selinux. If all goes well, that's good enough for now. That way your |
As discussed on chat: Let's add a |
Opened #18545 |
LGTM |
Just tagged |
@cevich does |
If this PR is using If you want it to update at runtime from podman-next COPR, edit the PR description and add [*]: Under the "reviewers" section at the top is a link "Still in progress? Convert to draft". Click that. |
The logs says |
Podman v4.5.1 fedora gating tests are failing and will continue to fail until this patch is included in a release AFAICT. @rhatdan are we ok to waive gating tests on fedora. See: https://artifacts.dev.testing-farm.io/fcd0eecd-53a9-44a1-aa9b-a492e3a00411/work-tests.ymlcm3acqme/tests-x65lqvzh/test.podman-rootless-cgroupsv2.bats.log for example. |
Yes I would waive the SELinux issues for now. |
@cevich Can we create a new VM image to contain the latest container-selinux package? |
I'll change this to draft and use [CI:NEXT]. Let's see how that goes. |
@rhatdan please repush to this PR. Hopefully it will pick the latest. The latest container-selinux build is ready on podman-next so repushing should just work. |
Newer images: #18612 (I'm guessing that fails CI b/c we need this PR?) |
FYI - I'm pretty sure the magic string has to be in the PR title, not the description. I may be wrong though - there are several CI env. vars. on this topic and I can't remember which is which off-hand. |
(I hit re-run on |
FYI: Opened containers/automation_images#282 |
5005751
to
3bec150
Compare
Uh-oh, that sounds like a "me" problem...Yeah, you're missing this yaml line:
|
bef4561
to
cde03c5
Compare
Signed-off-by: Daniel J Walsh <[email protected]>
The original SELinux support in Docker and Podman does not follow the default SELinux rules for how label transitions are supposed to be handled. Containers always switch their user and role to system_u:system_r, rather then maintain the collers user and role. For example unconfined_u:unconfined_r:container_t:s0:c1,c2 Advanced SELinux administrators want to confine users but still allow them to create containers from their role, but not allow them to launch a privileged container like spc_t. This means if a user running as container_user_u:container_user_r:container_user_t:s0 Ran a container they would get container_user_u:container_user_r:container_t:s0:c1,c2 If they run a privileged container they would run it with: container_user_u:container_user_r:container_user_t:s0 If they want to force the label they would get an error podman run --security-opt label=type:spc_t ... Should fail. Because the container_user_r can not run with the spc_t. SELinux rules would also prevent the user from forcing system_u user and the sytem_r role. Signed-off-by: Daniel J Walsh <[email protected]>
The original SELinux support in Docker and Podman does not follow the default SELinux rules for how label transitions are supposed to be handled. Containers always switch their user and role to system_u:system_r, rather then maintain the collers user and role. For example
unconfined_u:unconfined_r:container_t:s0:c1,c2
Advanced SELinux administrators want to confine users but still allow them to create containers from their role, but not allow them to launch a privileged container like spc_t.
This means if a user running as
container_user_u:container_user_r:container_user_t:s0
Ran a container they would get
container_user_u:container_user_r:container_t:s0:c1,c2
If they run a privileged container they would run it with:
container_user_u:container_user_r:container_user_t:s0
If they want to force the label they would get an error
podman run --security-opt label=type:spc_t ...
Should fail. Because the container_user_r can not run with the spc_t.
SELinux rules would also prevent the user from forcing system_u user and the sytem_r role.
Does this PR introduce a user-facing change?