Many of the Linux security/integrity features are dependent on file
metadata, stored as extended attributes (xattrs), for making decisions.
These features need to be initialized during initcall and enabled as
early as possible for complete security coverage. 

The linux kernel creates the rootfs file system and extracts the contents
of the initramfs, a compressed CPIO archive, onto it. If CONFIG_TMPFS is
enabled (and "root=" is not specified on the boot command line), rootfs
will use tmpfs instead of ramfs by default.  Although the tmpfs filesystem
supports xattrs, the CPIO archive specification does not define a method
for including them in the archive.  Other archive formats have added xattr
support (eg. tar).

There are a couple of ways to include and label the rootfs filesystem:
- include a file manifest containing the xattrs in the initramfs
- extend CPIO to support xattrs
- add tar support

This patch set extends the existing newc CPIO archive format to include
xattrs in the initramfs.  This change affects usr/gen_init_cpio,
scripts/, and init/initramfs.c.  Included in this
patch set are the associated IMA and EVM policy changes.

Changelog v1:
- Patch "init: remove "root=" command line option test for tmpfs decision"
  was previously included for testing without userspace application (eg.
  systemd, dracut) changes.  The associated userspace changes will be
  posted to the relevant mailing lists. Patch dropped.
- replace simple_strtoul with kstrtoul
- add some input data checking
- change size of mtime and file length to 64 bits
- define new "-x" command line option
- define new IMA_APPRAISE_ROOTFS Kconfig option


Mimi Zohar (11):
  initramfs: separate reading cpio method from header
  initramfs: replace simple_strtoul() with kstrtoul()
  initramfs: add extended attribute support
  initramfs: change size of mtime and file length to 64 bits
  gen_init_cpio: replace inline format string with common variable
  gen_init_cpio: define new CPIO format to support xattrs
  gen_init_cpio: include the file extended attributes
  gen_init_cpio: change size of mtime and file length to 64 bits include xattrs
  evm: make rootfs a special case
  ima: include rootfs (tmpfs) in ima_appraise_tcb policy

 init/initramfs.c                    | 130 +++++++++++++++++++++++++----
 scripts/       |   8 +-
 security/integrity/evm/evm_main.c   |  12 ++-
 security/integrity/ima/Kconfig      |  12 +++
 security/integrity/ima/ima_policy.c |   8 ++
 usr/gen_init_cpio.c                 | 159 ++++++++++++++++++++++++++++++------
 6 files changed, 282 insertions(+), 47 deletions(-)


To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to
More majordomo info at

Reply via email to