Description of problem: SELinux enforcing status affects systemd's ability to change the maximum locked memory for a unit. This is not expected or logical behaviour. This breaks elasticsearch with selinux enforcing on Fedora 25. Version-Release number of selected component (if applicable): systemd-231-12.fc25.x86_64 How reproducible: Very. Reproducible on stock minimal Fedora Server install. Steps to Reproduce: 1. Create service file /etc/systemd/system/memlockbug.service, contents: [Unit] Description=Test memlock bug [Service] ExecStart=/bin/sh -c 'cat /proc/self/limits' LimitMEMLOCK=infinity:infinity 2. Run it with selinux enforcing, then look at journal for the unit, output: Jan 11 09:41:25 lf-test sh[16890]: Max processes 7441 7441 processes Jan 11 09:41:25 lf-test sh[16890]: Max open files 1024 4096 files Jan 11 09:41:25 lf-test sh[16890]: Max locked memory 65536 unlimited bytes Jan 11 09:41:25 lf-test sh[16890]: Max address space unlimited unlimited bytes Jan 11 09:41:25 lf-test sh[16890]: Max file locks unlimited unlimited locks Jan 11 09:41:25 lf-test sh[16890]: Max pending signals 7441 7441 signals Jan 11 09:41:25 lf-test sh[16890]: Max msgqueue size 819200 819200 bytes Jan 11 09:41:25 lf-test sh[16890]: Max nice priority 0 0 Jan 11 09:41:25 lf-test sh[16890]: Max realtime priority 0 0 Jan 11 09:41:25 lf-test sh[16890]: Max realtime timeout unlimited unlimited us Expected result (obtained in permissive mode): Jan 11 09:46:26 lf-test sh[16905]: Max processes 7441 7441 processes Jan 11 09:46:26 lf-test sh[16905]: Max open files 1024 4096 files Jan 11 09:46:26 lf-test sh[16905]: Max locked memory unlimited unlimited bytes Jan 11 09:46:26 lf-test sh[16905]: Max address space unlimited unlimited bytes Jan 11 09:46:26 lf-test sh[16905]: Max file locks unlimited unlimited locks Jan 11 09:46:26 lf-test sh[16905]: Max pending signals 7441 7441 signals Jan 11 09:46:26 lf-test sh[16905]: Max msgqueue size 819200 819200 bytes Jan 11 09:46:26 lf-test sh[16905]: Max nice priority 0 0 Jan 11 09:46:26 lf-test sh[16905]: Max realtime priority 0 0 Jan 11 09:46:26 lf-test sh[16905]: Max realtime timeout unlimited unlimited us Summary of logs: Permissive: Jan 11 09:46:26 lf-test sh[16905]: Max locked memory unlimited unlimited bytes Enforcing: Jan 11 09:41:25 lf-test sh[16890]: Max locked memory 65536 unlimited bytes
Sorry, forgot to add: There are no denials whatsoever in the selinux log that are related to this (well there are some old sock_stream listen denials, but none occur on startup of my test unit).
So I debugged this more. It *is* caused by denials which are set to dontaudit. It's not surprising that systemd limits are applied through inheritance and so the denial of that inheritance breaks the limits functionality. type=AVC msg=audit(1491714305.693:226): avc: denied { rlimitinh } for pid=1067 comm="sh" scontext=system_u:system_r:init_t:s0 tcontext=system_u:system_r:initrc_t:s0 tclass=process permissive=0 Generated fix with audit2allow (which is, for what it's worth, a bit overbroad): module memlockbug 1.0; require { type initrc_t; type init_t; class process rlimitinh; } #============= init_t ============== allow init_t initrc_t:process rlimitinh;
This message is a reminder that Fedora 25 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 25. 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 Fedora 'version' of '25'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 25 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, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 25 changed to end-of-life (EOL) status on 2017-12-12. Fedora 25 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.