Bug 1421181

Summary: ProtectHome option doesn't work when service runs in chroot
Product: Red Hat Enterprise Linux 7 Reporter: Michal Sekletar <msekleta>
Component: systemdAssignee: systemd-maint
Status: CLOSED ERRATA QA Contact: Radka Brychtova <rskvaril>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.3CC: bblaskov, rskvaril, systemd-maint-list
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: systemd-219-32.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 09:14:52 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:
Bug Depends On:    
Bug Blocks: 1339989, 1383699    

Description Michal Sekletar 2017-02-10 14:47:21 UTC
Description of problem:
Consider the following unit file,

[Service]
User=tester
ExecStart=/bin/bash -c "touch /home/tester/foo"
RootDirectory=/opt/chroot/
ProtectHome=true

It declares ProtectHome=true and that should make /home read-only for the service. However if we run the service on current RHEL-7.3, it exists successfully and is able to create empty file foo. This is a bug, since /home shouldn't be writable. 

Version-Release number of selected component (if applicable):
systemd-219-30.el7_3.6.x86_64

How reproducible:
always

Steps to Reproduce:
1. write above unit file to /etc/systemd/system/test.service
2. create user named tester - useradd tester
3. reload systemd - systemctl daemon-reload
4. bind mount / to /opt/chroot - mkdir -p /opt/chroot && mount --bind / /opt/chroot
5. start the service - systemctl start test.service
6. get status of the service

Actual results:
Service exists successfully, file /opt/chroot/home/tester/foo exists

Expected results:
Service fails, file is not present

Additional info:
upstream fix,

https://github.com/systemd/systemd/commit/ee818b89f4890b3a00e93772249fce810f60811e

Comment 1 Michal Sekletar 2017-02-13 16:29:57 UTC
https://github.com/lnykryn/systemd-rhel/pull/94

Comment 3 Lukáš Nykrýn 2017-02-20 10:46:12 UTC
fix merged to upstream staging branch ->
-> post

Comment 7 errata-xmlrpc 2017-08-01 09:14:52 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:2297