selinux-refpolicy.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
@ 2017-12-15 21:48 Nicolas Iooss
  2017-12-16 10:00 ` Dominick Grift
  2017-12-17 20:29 ` Chris PeBenito
  0 siblings, 2 replies; 8+ messages in thread
From: Nicolas Iooss @ 2017-12-15 21:48 UTC (permalink / raw)
  To: refpolicy

systemd defines in /usr/lib/systemd several directories which can
contain scripts or executable files:
- system-environment-generators/ and user-environment-generators/
  documented in
  https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
- system-shutdown/ documented in
  https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
- system-sleep/ documented in
  https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html

Currently the content of these directories is labelled lib_t, which
causes the following AVC on Arch Linux:

    avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
    path="/usr/lib/systemd/system-environment-generators/10-arch"
    dev="vda1" ino=543182 scontext=system_u:system_r:init_t
    tcontext=system_u:object_r:lib_t tclass=file permissive=1

For information /usr/lib/systemd/system-environment-generators/10-arch
only defines $PATH and its content is available on
https://git.archlinux.org/svntogit/packages.git/tree/trunk/env-generator?h=packages/filesystem
---
 policy/modules/kernel/corecommands.fc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
index c2b93ecf5039..f2e4f5118d5f 100644
--- a/policy/modules/kernel/corecommands.fc
+++ b/policy/modules/kernel/corecommands.fc
@@ -221,7 +221,11 @@ ifdef(`distro_gentoo',`
 /usr/lib/ssh(/.*)?			gen_context(system_u:object_r:bin_t,s0)
 /usr/lib/sudo/sesh		--	gen_context(system_u:object_r:shell_exec_t,s0)
 /usr/lib/systemd/systemd.*	--	gen_context(system_u:object_r:bin_t,s0)
+/usr/lib/systemd/system-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
 /usr/lib/systemd/system-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
+/usr/lib/systemd/system-shutdown(/.*)?	gen_context(system_u:object_r:bin_t,s0)
+/usr/lib/systemd/system-sleep(/.*)?	gen_context(system_u:object_r:bin_t,s0)
+/usr/lib/systemd/user-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
 /usr/lib/systemd/user-generators(/.*)?	gen_context(system_u:object_r:bin_t,s0)
 /usr/lib/tumbler-1/tumblerd	--	gen_context(system_u:object_r:bin_t,s0)
 /usr/lib/udev/[^/]*			--	gen_context(system_u:object_r:bin_t,s0)
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
  2017-12-15 21:48 [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t Nicolas Iooss
@ 2017-12-16 10:00 ` Dominick Grift
  2017-12-17 20:33   ` Chris PeBenito
  2017-12-17 20:29 ` Chris PeBenito
  1 sibling, 1 reply; 8+ messages in thread
From: Dominick Grift @ 2017-12-16 10:00 UTC (permalink / raw)
  To: refpolicy

On Fri, Dec 15, 2017 at 10:48:23PM +0100, Nicolas Iooss via refpolicy wrote:
> systemd defines in /usr/lib/systemd several directories which can
> contain scripts or executable files:
> - system-environment-generators/ and user-environment-generators/
>   documented in
>   https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
> - system-shutdown/ documented in
>   https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
> - system-sleep/ documented in
>   https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
> 
> Currently the content of these directories is labelled lib_t, which
> causes the following AVC on Arch Linux:
> 
>     avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
>     path="/usr/lib/systemd/system-environment-generators/10-arch"
>     dev="vda1" ino=543182 scontext=system_u:system_r:init_t
>     tcontext=system_u:object_r:lib_t tclass=file permissive=1

Yes, but labeling these bin_t will cause systemd to run these in the initrc_t domain. This might, or might not be what you want.

In my personal policy i created a special type for stuff i want systemd to run in the init_t domain instead of initrc_t: systemd_helper_exec_t.

Then there is basically a rule : allow init_t systemd_helper_exec_t:file execute_no_trans;

Its a matter of taste, subjective.

> 
> For information /usr/lib/systemd/system-environment-generators/10-arch
> only defines $PATH and its content is available on
> https://git.archlinux.org/svntogit/packages.git/tree/trunk/env-generator?h=packages/filesystem
> ---
>  policy/modules/kernel/corecommands.fc | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
> index c2b93ecf5039..f2e4f5118d5f 100644
> --- a/policy/modules/kernel/corecommands.fc
> +++ b/policy/modules/kernel/corecommands.fc
> @@ -221,7 +221,11 @@ ifdef(`distro_gentoo',`
>  /usr/lib/ssh(/.*)?			gen_context(system_u:object_r:bin_t,s0)
>  /usr/lib/sudo/sesh		--	gen_context(system_u:object_r:shell_exec_t,s0)
>  /usr/lib/systemd/systemd.*	--	gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/system-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
>  /usr/lib/systemd/system-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/system-shutdown(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/system-sleep(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/user-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
>  /usr/lib/systemd/user-generators(/.*)?	gen_context(system_u:object_r:bin_t,s0)
>  /usr/lib/tumbler-1/tumblerd	--	gen_context(system_u:object_r:bin_t,s0)
>  /usr/lib/udev/[^/]*			--	gen_context(system_u:object_r:bin_t,s0)
> -- 
> 2.15.0
> 
> _______________________________________________
> refpolicy mailing list
> refpolicy at oss.tresys.com
> http://oss.tresys.com/mailman/listinfo/refpolicy

-- 
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
Url : http://oss.tresys.com/pipermail/refpolicy/attachments/20171216/3a23b676/attachment.bin 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
  2017-12-15 21:48 [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t Nicolas Iooss
  2017-12-16 10:00 ` Dominick Grift
@ 2017-12-17 20:29 ` Chris PeBenito
  1 sibling, 0 replies; 8+ messages in thread
From: Chris PeBenito @ 2017-12-17 20:29 UTC (permalink / raw)
  To: refpolicy

On 12/15/2017 04:48 PM, Nicolas Iooss via refpolicy wrote:
> systemd defines in /usr/lib/systemd several directories which can
> contain scripts or executable files:
> - system-environment-generators/ and user-environment-generators/
>    documented in
>    https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
> - system-shutdown/ documented in
>    https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
> - system-sleep/ documented in
>    https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
> 
> Currently the content of these directories is labelled lib_t, which
> causes the following AVC on Arch Linux:
> 
>      avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
>      path="/usr/lib/systemd/system-environment-generators/10-arch"
>      dev="vda1" ino=543182 scontext=system_u:system_r:init_t
>      tcontext=system_u:object_r:lib_t tclass=file permissive=1
> 
> For information /usr/lib/systemd/system-environment-generators/10-arch
> only defines $PATH and its content is available on
> https://git.archlinux.org/svntogit/packages.git/tree/trunk/env-generator?h=packages/filesystem
> ---
>   policy/modules/kernel/corecommands.fc | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
> index c2b93ecf5039..f2e4f5118d5f 100644
> --- a/policy/modules/kernel/corecommands.fc
> +++ b/policy/modules/kernel/corecommands.fc
> @@ -221,7 +221,11 @@ ifdef(`distro_gentoo',`
>   /usr/lib/ssh(/.*)?			gen_context(system_u:object_r:bin_t,s0)
>   /usr/lib/sudo/sesh		--	gen_context(system_u:object_r:shell_exec_t,s0)
>   /usr/lib/systemd/systemd.*	--	gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/system-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
>   /usr/lib/systemd/system-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/system-shutdown(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/system-sleep(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> +/usr/lib/systemd/user-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
>   /usr/lib/systemd/user-generators(/.*)?	gen_context(system_u:object_r:bin_t,s0)
>   /usr/lib/tumbler-1/tumblerd	--	gen_context(system_u:object_r:bin_t,s0)
>   /usr/lib/udev/[^/]*			--	gen_context(system_u:object_r:bin_t,s0)

Merged.

-- 
Chris PeBenito

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
  2017-12-16 10:00 ` Dominick Grift
@ 2017-12-17 20:33   ` Chris PeBenito
  2017-12-20 16:33     ` Dominick Grift
  0 siblings, 1 reply; 8+ messages in thread
From: Chris PeBenito @ 2017-12-17 20:33 UTC (permalink / raw)
  To: refpolicy

On 12/16/2017 05:00 AM, Dominick Grift via refpolicy wrote:
> On Fri, Dec 15, 2017 at 10:48:23PM +0100, Nicolas Iooss via refpolicy wrote:
>> systemd defines in /usr/lib/systemd several directories which can
>> contain scripts or executable files:
>> - system-environment-generators/ and user-environment-generators/
>>    documented in
>>    https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
>> - system-shutdown/ documented in
>>    https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
>> - system-sleep/ documented in
>>    https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
>>
>> Currently the content of these directories is labelled lib_t, which
>> causes the following AVC on Arch Linux:
>>
>>      avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
>>      path="/usr/lib/systemd/system-environment-generators/10-arch"
>>      dev="vda1" ino=543182 scontext=system_u:system_r:init_t
>>      tcontext=system_u:object_r:lib_t tclass=file permissive=1
> 
> Yes, but labeling these bin_t will cause systemd to run these in the initrc_t domain. This might, or might not be what you want.
> 
> In my personal policy i created a special type for stuff i want systemd to run in the init_t domain instead of initrc_t: systemd_helper_exec_t.
> 
> Then there is basically a rule : allow init_t systemd_helper_exec_t:file execute_no_trans;
> 
> Its a matter of taste, subjective.

I don't think it's as subjective as you think.  It keeps init_t from 
getting extra permissions over time which PID 1 doesn't need.  initrc_t 
gets big, yes, but those are short-running processes, while init_t is 
long-running.


>> For information /usr/lib/systemd/system-environment-generators/10-arch
>> only defines $PATH and its content is available on
>> https://git.archlinux.org/svntogit/packages.git/tree/trunk/env-generator?h=packages/filesystem
>> ---
>>   policy/modules/kernel/corecommands.fc | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
>> index c2b93ecf5039..f2e4f5118d5f 100644
>> --- a/policy/modules/kernel/corecommands.fc
>> +++ b/policy/modules/kernel/corecommands.fc
>> @@ -221,7 +221,11 @@ ifdef(`distro_gentoo',`
>>   /usr/lib/ssh(/.*)?			gen_context(system_u:object_r:bin_t,s0)
>>   /usr/lib/sudo/sesh		--	gen_context(system_u:object_r:shell_exec_t,s0)
>>   /usr/lib/systemd/systemd.*	--	gen_context(system_u:object_r:bin_t,s0)
>> +/usr/lib/systemd/system-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
>>   /usr/lib/systemd/system-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
>> +/usr/lib/systemd/system-shutdown(/.*)?	gen_context(system_u:object_r:bin_t,s0)
>> +/usr/lib/systemd/system-sleep(/.*)?	gen_context(system_u:object_r:bin_t,s0)
>> +/usr/lib/systemd/user-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
>>   /usr/lib/systemd/user-generators(/.*)?	gen_context(system_u:object_r:bin_t,s0)
>>   /usr/lib/tumbler-1/tumblerd	--	gen_context(system_u:object_r:bin_t,s0)
>>   /usr/lib/udev/[^/]*			--	gen_context(system_u:object_r:bin_t,s0)


-- 
Chris PeBenito

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
  2017-12-17 20:33   ` Chris PeBenito
@ 2017-12-20 16:33     ` Dominick Grift
  2017-12-20 16:41       ` Dominick Grift
  2017-12-20 16:44       ` Chris PeBenito
  0 siblings, 2 replies; 8+ messages in thread
From: Dominick Grift @ 2017-12-20 16:33 UTC (permalink / raw)
  To: refpolicy

On Sun, Dec 17, 2017 at 03:33:12PM -0500, Chris PeBenito via refpolicy wrote:
> On 12/16/2017 05:00 AM, Dominick Grift via refpolicy wrote:
> > On Fri, Dec 15, 2017 at 10:48:23PM +0100, Nicolas Iooss via refpolicy wrote:
> >> systemd defines in /usr/lib/systemd several directories which can
> >> contain scripts or executable files:
> >> - system-environment-generators/ and user-environment-generators/
> >>    documented in
> >>    https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
> >> - system-shutdown/ documented in
> >>    https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
> >> - system-sleep/ documented in
> >>    https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
> >>
> >> Currently the content of these directories is labelled lib_t, which
> >> causes the following AVC on Arch Linux:
> >>
> >>      avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
> >>      path="/usr/lib/systemd/system-environment-generators/10-arch"
> >>      dev="vda1" ino=543182 scontext=system_u:system_r:init_t
> >>      tcontext=system_u:object_r:lib_t tclass=file permissive=1
> > 
> > Yes, but labeling these bin_t will cause systemd to run these in the initrc_t domain. This might, or might not be what you want.
> > 
> > In my personal policy i created a special type for stuff i want systemd to run in the init_t domain instead of initrc_t: systemd_helper_exec_t.
> > 
> > Then there is basically a rule : allow init_t systemd_helper_exec_t:file execute_no_trans;
> > 
> > Its a matter of taste, subjective.
> 
> I don't think it's as subjective as you think.  It keeps init_t from 
> getting extra permissions over time which PID 1 doesn't need.  initrc_t 
> gets big, yes, but those are short-running processes, while init_t is 
> long-running.

Yes except in practice it does not:

take:

cat /usr/lib/systemd/system-shutdown/mdadm.shutdown
#!/bin/sh
# We need to ensure all md arrays with external metadata
# (e.g. IMSM, DDF) are clean before completing the shutdown.
/usr/sbin/mdadm --wait-clean --scan

If you run the above in initrc_t then mdadm has free reign, if you run it in init_t then systemd will run mdadm with a domain transition to mdadm_t

> 
> 
> >> For information /usr/lib/systemd/system-environment-generators/10-arch
> >> only defines $PATH and its content is available on
> >> https://git.archlinux.org/svntogit/packages.git/tree/trunk/env-generator?h=packages/filesystem
> >> ---
> >>   policy/modules/kernel/corecommands.fc | 4 ++++
> >>   1 file changed, 4 insertions(+)
> >>
> >> diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
> >> index c2b93ecf5039..f2e4f5118d5f 100644
> >> --- a/policy/modules/kernel/corecommands.fc
> >> +++ b/policy/modules/kernel/corecommands.fc
> >> @@ -221,7 +221,11 @@ ifdef(`distro_gentoo',`
> >>   /usr/lib/ssh(/.*)?			gen_context(system_u:object_r:bin_t,s0)
> >>   /usr/lib/sudo/sesh		--	gen_context(system_u:object_r:shell_exec_t,s0)
> >>   /usr/lib/systemd/systemd.*	--	gen_context(system_u:object_r:bin_t,s0)
> >> +/usr/lib/systemd/system-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> >>   /usr/lib/systemd/system-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> >> +/usr/lib/systemd/system-shutdown(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> >> +/usr/lib/systemd/system-sleep(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> >> +/usr/lib/systemd/user-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> >>   /usr/lib/systemd/user-generators(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> >>   /usr/lib/tumbler-1/tumblerd	--	gen_context(system_u:object_r:bin_t,s0)
> >>   /usr/lib/udev/[^/]*			--	gen_context(system_u:object_r:bin_t,s0)
> 
> 
> -- 
> Chris PeBenito
> _______________________________________________
> refpolicy mailing list
> refpolicy at oss.tresys.com
> http://oss.tresys.com/mailman/listinfo/refpolicy

-- 
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
Url : http://oss.tresys.com/pipermail/refpolicy/attachments/20171220/6e0d044f/attachment.bin 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
  2017-12-20 16:33     ` Dominick Grift
@ 2017-12-20 16:41       ` Dominick Grift
  2017-12-20 16:44       ` Chris PeBenito
  1 sibling, 0 replies; 8+ messages in thread
From: Dominick Grift @ 2017-12-20 16:41 UTC (permalink / raw)
  To: refpolicy

On Wed, Dec 20, 2017 at 05:33:23PM +0100, Dominick Grift wrote:
> On Sun, Dec 17, 2017 at 03:33:12PM -0500, Chris PeBenito via refpolicy wrote:
> > On 12/16/2017 05:00 AM, Dominick Grift via refpolicy wrote:
> > > On Fri, Dec 15, 2017 at 10:48:23PM +0100, Nicolas Iooss via refpolicy wrote:
> > >> systemd defines in /usr/lib/systemd several directories which can
> > >> contain scripts or executable files:
> > >> - system-environment-generators/ and user-environment-generators/
> > >>    documented in
> > >>    https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
> > >> - system-shutdown/ documented in
> > >>    https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
> > >> - system-sleep/ documented in
> > >>    https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
> > >>
> > >> Currently the content of these directories is labelled lib_t, which
> > >> causes the following AVC on Arch Linux:
> > >>
> > >>      avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
> > >>      path="/usr/lib/systemd/system-environment-generators/10-arch"
> > >>      dev="vda1" ino=543182 scontext=system_u:system_r:init_t
> > >>      tcontext=system_u:object_r:lib_t tclass=file permissive=1
> > > 
> > > Yes, but labeling these bin_t will cause systemd to run these in the initrc_t domain. This might, or might not be what you want.
> > > 
> > > In my personal policy i created a special type for stuff i want systemd to run in the init_t domain instead of initrc_t: systemd_helper_exec_t.
> > > 
> > > Then there is basically a rule : allow init_t systemd_helper_exec_t:file execute_no_trans;
> > > 
> > > Its a matter of taste, subjective.
> > 
> > I don't think it's as subjective as you think.  It keeps init_t from 
> > getting extra permissions over time which PID 1 doesn't need.  initrc_t 
> > gets big, yes, but those are short-running processes, while init_t is 
> > long-running.
> 
> Yes except in practice it does not:
> 
> take:
> 
> cat /usr/lib/systemd/system-shutdown/mdadm.shutdown
> #!/bin/sh
> # We need to ensure all md arrays with external metadata
> # (e.g. IMSM, DDF) are clean before completing the shutdown.
> /usr/sbin/mdadm --wait-clean --scan
> 
> If you run the above in initrc_t then mdadm has free reign, if you run it in init_t then systemd will run mdadm with a domain transition to mdadm_t

Actually 's/systemd/systemd-shutdown/' but in refpolicies case it does not matter since systemd-shutdown_t runs in init_t

> 
> > 
> > 
> > >> For information /usr/lib/systemd/system-environment-generators/10-arch
> > >> only defines $PATH and its content is available on
> > >> https://git.archlinux.org/svntogit/packages.git/tree/trunk/env-generator?h=packages/filesystem
> > >> ---
> > >>   policy/modules/kernel/corecommands.fc | 4 ++++
> > >>   1 file changed, 4 insertions(+)
> > >>
> > >> diff --git a/policy/modules/kernel/corecommands.fc b/policy/modules/kernel/corecommands.fc
> > >> index c2b93ecf5039..f2e4f5118d5f 100644
> > >> --- a/policy/modules/kernel/corecommands.fc
> > >> +++ b/policy/modules/kernel/corecommands.fc
> > >> @@ -221,7 +221,11 @@ ifdef(`distro_gentoo',`
> > >>   /usr/lib/ssh(/.*)?			gen_context(system_u:object_r:bin_t,s0)
> > >>   /usr/lib/sudo/sesh		--	gen_context(system_u:object_r:shell_exec_t,s0)
> > >>   /usr/lib/systemd/systemd.*	--	gen_context(system_u:object_r:bin_t,s0)
> > >> +/usr/lib/systemd/system-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> > >>   /usr/lib/systemd/system-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> > >> +/usr/lib/systemd/system-shutdown(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> > >> +/usr/lib/systemd/system-sleep(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> > >> +/usr/lib/systemd/user-environment-generators(/.*)? gen_context(system_u:object_r:bin_t,s0)
> > >>   /usr/lib/systemd/user-generators(/.*)?	gen_context(system_u:object_r:bin_t,s0)
> > >>   /usr/lib/tumbler-1/tumblerd	--	gen_context(system_u:object_r:bin_t,s0)
> > >>   /usr/lib/udev/[^/]*			--	gen_context(system_u:object_r:bin_t,s0)
> > 
> > 
> > -- 
> > Chris PeBenito
> > _______________________________________________
> > refpolicy mailing list
> > refpolicy at oss.tresys.com
> > http://oss.tresys.com/mailman/listinfo/refpolicy
> 
> -- 
> Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
> https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
> Dominick Grift



-- 
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
Url : http://oss.tresys.com/pipermail/refpolicy/attachments/20171220/ef2ddf77/attachment-0001.bin 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
  2017-12-20 16:33     ` Dominick Grift
  2017-12-20 16:41       ` Dominick Grift
@ 2017-12-20 16:44       ` Chris PeBenito
  2017-12-20 16:56         ` Dominick Grift
  1 sibling, 1 reply; 8+ messages in thread
From: Chris PeBenito @ 2017-12-20 16:44 UTC (permalink / raw)
  To: refpolicy

On 12/20/2017 11:33 AM, Dominick Grift via refpolicy wrote:
> On Sun, Dec 17, 2017 at 03:33:12PM -0500, Chris PeBenito via refpolicy wrote:
>> On 12/16/2017 05:00 AM, Dominick Grift via refpolicy wrote:
>>> On Fri, Dec 15, 2017 at 10:48:23PM +0100, Nicolas Iooss via refpolicy wrote:
>>>> systemd defines in /usr/lib/systemd several directories which can
>>>> contain scripts or executable files:
>>>> - system-environment-generators/ and user-environment-generators/
>>>>     documented in
>>>>     https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
>>>> - system-shutdown/ documented in
>>>>     https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
>>>> - system-sleep/ documented in
>>>>     https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
>>>>
>>>> Currently the content of these directories is labelled lib_t, which
>>>> causes the following AVC on Arch Linux:
>>>>
>>>>       avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
>>>>       path="/usr/lib/systemd/system-environment-generators/10-arch"
>>>>       dev="vda1" ino=543182 scontext=system_u:system_r:init_t
>>>>       tcontext=system_u:object_r:lib_t tclass=file permissive=1
>>>
>>> Yes, but labeling these bin_t will cause systemd to run these in the initrc_t domain. This might, or might not be what you want.
>>>
>>> In my personal policy i created a special type for stuff i want systemd to run in the init_t domain instead of initrc_t: systemd_helper_exec_t.
>>>
>>> Then there is basically a rule : allow init_t systemd_helper_exec_t:file execute_no_trans;
>>>
>>> Its a matter of taste, subjective.
>>
>> I don't think it's as subjective as you think.  It keeps init_t from
>> getting extra permissions over time which PID 1 doesn't need.  initrc_t
>> gets big, yes, but those are short-running processes, while init_t is
>> long-running.
> 
> Yes except in practice it does not:
> 
> take:
> 
> cat /usr/lib/systemd/system-shutdown/mdadm.shutdown
> #!/bin/sh
> # We need to ensure all md arrays with external metadata
> # (e.g. IMSM, DDF) are clean before completing the shutdown.
> /usr/sbin/mdadm --wait-clean --scan
> 
> If you run the above in initrc_t then mdadm has free reign, if you run it in init_t then systemd will run mdadm with a domain transition to mdadm_t

No.  The script transitions to initrc_t, and when the script execs 
mdadm, that process transitions to mdadm_t.

-- 
Chris PeBenito

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t
  2017-12-20 16:44       ` Chris PeBenito
@ 2017-12-20 16:56         ` Dominick Grift
  0 siblings, 0 replies; 8+ messages in thread
From: Dominick Grift @ 2017-12-20 16:56 UTC (permalink / raw)
  To: refpolicy

On Wed, Dec 20, 2017 at 11:44:59AM -0500, Chris PeBenito via refpolicy wrote:
> On 12/20/2017 11:33 AM, Dominick Grift via refpolicy wrote:
> > On Sun, Dec 17, 2017 at 03:33:12PM -0500, Chris PeBenito via refpolicy wrote:
> >> On 12/16/2017 05:00 AM, Dominick Grift via refpolicy wrote:
> >>> On Fri, Dec 15, 2017 at 10:48:23PM +0100, Nicolas Iooss via refpolicy wrote:
> >>>> systemd defines in /usr/lib/systemd several directories which can
> >>>> contain scripts or executable files:
> >>>> - system-environment-generators/ and user-environment-generators/
> >>>>     documented in
> >>>>     https://www.freedesktop.org/software/systemd/man/systemd.environment-generator.html
> >>>> - system-shutdown/ documented in
> >>>>     https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html
> >>>> - system-sleep/ documented in

> >>>>     https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
> >>>>
> >>>> Currently the content of these directories is labelled lib_t, which
> >>>> causes the following AVC on Arch Linux:
> >>>>
> >>>>       avc:  denied  { execute_no_trans } for  pid=10308 comm="systemd"
> >>>>       path="/usr/lib/systemd/system-environment-generators/10-arch"
> >>>>       dev="vda1" ino=543182 scontext=system_u:system_r:init_t
> >>>>       tcontext=system_u:object_r:lib_t tclass=file permissive=1
> >>>
> >>> Yes, but labeling these bin_t will cause systemd to run these in the initrc_t domain. This might, or might not be what you want.
> >>>
> >>> In my personal policy i created a special type for stuff i want systemd to run in the init_t domain instead of initrc_t: systemd_helper_exec_t.
> >>>
> >>> Then there is basically a rule : allow init_t systemd_helper_exec_t:file execute_no_trans;
> >>>
> >>> Its a matter of taste, subjective.
> >>
> >> I don't think it's as subjective as you think.  It keeps init_t from
> >> getting extra permissions over time which PID 1 doesn't need.  initrc_t
> >> gets big, yes, but those are short-running processes, while init_t is
> >> long-running.
> > 
> > Yes except in practice it does not:
> > 
> > take:
> > 
> > cat /usr/lib/systemd/system-shutdown/mdadm.shutdown
> > #!/bin/sh
> > # We need to ensure all md arrays with external metadata
> > # (e.g. IMSM, DDF) are clean before completing the shutdown.
> > /usr/sbin/mdadm --wait-clean --scan
> > 
> > If you run the above in initrc_t then mdadm has free reign, if you run it in init_t then systemd will run mdadm with a domain transition to mdadm_t
> 
> No.  The script transitions to initrc_t, and when the script execs 
> mdadm, that process transitions to mdadm_t.

Yes my bad, i overlooked that part.

> 
> -- 
> Chris PeBenito
> _______________________________________________
> refpolicy mailing list
> refpolicy at oss.tresys.com
> http://oss.tresys.com/mailman/listinfo/refpolicy

-- 
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
Url : http://oss.tresys.com/pipermail/refpolicy/attachments/20171220/70c9acf9/attachment.bin 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-12-20 16:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-15 21:48 [refpolicy] [PATCH 1/1] corecommands: label systemd script directories bin_t Nicolas Iooss
2017-12-16 10:00 ` Dominick Grift
2017-12-17 20:33   ` Chris PeBenito
2017-12-20 16:33     ` Dominick Grift
2017-12-20 16:41       ` Dominick Grift
2017-12-20 16:44       ` Chris PeBenito
2017-12-20 16:56         ` Dominick Grift
2017-12-17 20:29 ` Chris PeBenito

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).