All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Schulze Frielinghaus <ml@stefansf.de>
To: Chris PeBenito <pebenito@ieee.org>
Cc: selinux-refpolicy@vger.kernel.org
Subject: Re: Daemons writing into HOME_DIR
Date: Thu, 5 May 2022 18:44:53 +0200	[thread overview]
Message-ID: <YnP/BYz7ybAAaAUa@fedora> (raw)
In-Reply-To: <804d8b8d-394a-5070-c773-b074fe5b6a5d@ieee.org>

On Tue, May 03, 2022 at 02:19:17PM -0400, Chris PeBenito wrote:
> On 5/3/22 13:01, Stefan Schulze Frielinghaus wrote:
> > Hi all,
> > 
> > In short I'm wondering what the refpolicy way is to let a daemon write into
> > HOME_DIR and how those files---especially the SELinux user part---should be
> > labeled?
> > 
> > Currently I have a daemon (systemd service) running under context
> > 
> >    system_u:system_r:foobar_t:s0
> > 
> > and the policy contains
> > 
> >    init_daemon_domain(foobar_t, foobar_exec_t)
> > 
> > The daemon reads and writes files under HOME_DIR/foobar which are labeled as
> > foobar_rw_t and the policy has the following file context entry:
> > 
> >    HOME_DIR/foobar(/.*)? gen_context(system_u:object_r:foobar_rw_t,s0)
> > 
> > However, newly created files still seem to have a wrong user according to
> > restorecon (the daemon runs under Linux user marge which is assigned to SELinux
> > user user_u):
> > 
> >    $ restorecon -FRvn /home/marge/foobar
> >    Would relabel /home/marge/foobar/baz from system_u:object_r:foobar_rw_t:s0 to user_u:object_r:foobar_rw_t:s0
> > 
> > It looks like as if user_u wins over system_u for files under HOME_DIR.  This
> > does not have any effect on the functionality of the daemon, however, it still
> > feels wrong to me.
> 
> This is genhomedircon setting the seuser of the files to match the seuser
> mapping in `semanage login`.  You want this behavior, especially if you have
> UBAC turned on, otherwise UBAC doesn't provide a benefit, since system_u is
> excluded from UBAC.
> 
> 
> > So I'm wondering how to fix this and thought about:
> > 
> > 1) Can/Should a daemon run under a different SELinux user than system_u?
> 
> If this is a system daemon, e.g. started by systemd (pid 1) then that is not
> expected in refpolicy, not generally suggested.  If this is a daemon running
> out of a user session, such as systemd --user, then yes, it should have the
> user's seuser, e.g. user_u.
> 
> 
> > 2) Another option, which I think is worse, would be to the change the SELinux
> > user from user_u to system_u for Linux user marge under which the daemon runs.
> 
> Running an interactive user as system_u is contrary to system_u's purpose,
> which is for non-interactive system processes only.

Good point.  User marge is actually a non-interactive user and the whole
purpose of it is to run the daemon via systemd (pid 1) only.  I was
afraid to associate system_u to marge due to "Administrators must never
associate this system_u user and the system_r role to a Linux user" [1].
Though, maybe that statement referred to interactive users only, i.e.,
it is acceptable to associate system_u to non-interactive users?

Cheers,
Stefan

> 
> > 3) A third option would be to keep the users as is, i.e., let the daemon run
> > under system_u and let marge be assigned to user_u, but tweak the policy to keep
> > the file context labels under HOME_DIR with system_u.
> 
> See my first comment.
> 
> > Any thoughts?
> 
> You could change the default_user[1] so the seuser comes from the parent
> directory, but that would change it for the entire system which may have
> unintended and worse consequences.
> 
> You're seeing the behavior I expect to see for this type of policy design.
> 
> 
> [1] https://github.com/SELinuxProject/selinux-notebook/blob/main/src/default_rules.md#default_user
> 
> -- 
> Chris PeBenito

[1] https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_selinux/managing-confined-and-unconfined-users_using-selinux

      reply	other threads:[~2022-05-05 16:52 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-03 17:01 Daemons writing into HOME_DIR Stefan Schulze Frielinghaus
2022-05-03 18:19 ` Chris PeBenito
2022-05-05 16:44   ` Stefan Schulze Frielinghaus [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YnP/BYz7ybAAaAUa@fedora \
    --to=ml@stefansf.de \
    --cc=pebenito@ieee.org \
    --cc=selinux-refpolicy@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.