selinux: allow reading labels before policy is loaded
authorJonathan Lebon <jlebon@redhat.com>
Thu, 28 May 2020 14:39:40 +0000 (10:39 -0400)
committerPaul Moore <paul@paul-moore.com>
Wed, 24 Jun 2020 00:42:38 +0000 (20:42 -0400)
commitc8e222616c7e98305bdc861db3ccac520bc29921
treecbbab81df5052aa571c35e91b493936204e991fe
parentb3a9e3b9622ae10064826dccb4f7a52bd88c7407
selinux: allow reading labels before policy is loaded

This patch does for `getxattr` what commit 3e3e24b42043 ("selinux: allow
labeling before policy is loaded") did for `setxattr`; it allows
querying the current SELinux label on disk before the policy is loaded.

One of the motivations described in that commit message also drives this
patch: for Fedora CoreOS (and eventually RHEL CoreOS), we want to be
able to move the root filesystem for example, from xfs to ext4 on RAID,
on first boot, at initrd time.[1]

Because such an operation works at the filesystem level, we need to be
able to read the SELinux labels first from the original root, and apply
them to the files of the new root. The previous commit enabled the
second part of this process; this commit enables the first part.

[1] https://github.com/coreos/fedora-coreos-tracker/issues/94

Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com>
Signed-off-by: Jonathan Lebon <jlebon@redhat.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/hooks.c