crosvm/src
Chirantan Ekbote d994e51b28 devices: fs: Add option to rewrite security xattrs
Writing xattrs in the security namespace requires CAP_SYS_ADMIN in the
namespace that mounted the file system.  The fs device doesn't have this
capability when run in a sandbox (and in the case of the /home directory
on chrome os, will never be able to gain it).

We've been able to set selinux xattrs so far because the selinux module
relaxes the capability check in favor of an selinux-based MAC check.
However, android also wants to be able to set the "security.sehash"
xattr, which is described in the manpage as a "performance optimization"
when recursively relabeling files.

Unfortunately since the android team nacked the kernel patch[1] that
would have relaxed the requirements for just the "security.sehash"
xattr, the only option for us is to rewrite the xattr name and prefix it
with "user.virtiofs" so that it ends up in the "user." xattr namespace.
The server should always have permission to create xattrs there.

BUG=b:155443663
TEST=start a vm and successfully set the security.sehash xattr then
     check on the host side that it is actually stored as
     user.virtiofs.security.sehash

[1]: https://www.spinics.net/lists/selinux/msg32330.html

Change-Id: Icd17b76c946c92d92009f0cc2b8b50c92ac580c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2243111
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Tested-by: Chirantan Ekbote <chirantan@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Chirantan Ekbote <chirantan@chromium.org>
2020-06-17 15:19:40 +00:00
..
plugin kvm: use MappedRegion trait 2020-06-12 05:00:37 +00:00
argument.rs crosvm: Apply cargo fix for some clippy errors 2020-04-15 18:01:32 +00:00
crosvm.rs acpi: support user provided ACPI SDTs. 2020-06-01 23:25:39 +00:00
linux.rs kvm: use MappedRegion trait 2020-06-12 05:00:37 +00:00
main.rs devices: fs: Add option to rewrite security xattrs 2020-06-17 15:19:40 +00:00
panic_hook.rs