Skip to content

Commit

Permalink
tmpfiles: add separate fragment for stuff we copy from .extra/ into /…
Browse files Browse the repository at this point in the history
…run/systemd

Let's move copying out the PCR signature/key into its own tmpfiles
snippet.

And then let's add support for copying out the profile + os-release
information systemd-stub now places in the invoked initrd.

That way these four pieces of information are available even after the
initrd→host transition.
  • Loading branch information
poettering authored and yuwata committed Sep 10, 2024
1 parent 41a9a50 commit 408ab98
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 15 deletions.
19 changes: 19 additions & 0 deletions tmpfiles.d/20-systemd-stub.conf.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.

# See tmpfiles.d(5) for details

# Copy systemd-stub provided metadata such as PCR signature and public key file
# from initrd into /run/, so that it will survive the initrd stage

C /run/systemd/stub/profile 0444 root root - /.extra/profile
C /run/systemd/stub/os-release 0444 root root - /.extra/os-release

{% if ENABLE_TPM %}
C /run/systemd/tpm2-pcr-signature.json 0444 root root - /.extra/tpm2-pcr-signature.json
C /run/systemd/tpm2-pcr-public-key.pem 0444 root root - /.extra/tpm2-pcr-public-key.pem
{% endif %}
20 changes: 11 additions & 9 deletions tmpfiles.d/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,17 @@ foreach pair : files
endif
endforeach

in_files = [['etc.conf', ''],
['legacy.conf', 'HAVE_SYSV_COMPAT'],
['static-nodes-permissions.conf', ''],
['systemd.conf', ''],
['var.conf', ''],
['20-systemd-userdb.conf', 'ENABLE_SSH_USERDB_CONFIG'],
['20-systemd-ssh-generator.conf', 'ENABLE_SSH_PROXY_CONFIG'],
['20-systemd-shell-extra.conf', 'LINK_SHELL_EXTRA_DROPIN'],
]
in_files = [
['20-systemd-shell-extra.conf', 'LINK_SHELL_EXTRA_DROPIN'],
['20-systemd-ssh-generator.conf', 'ENABLE_SSH_PROXY_CONFIG'],
['20-systemd-stub.conf', 'ENABLE_EFI'],
['20-systemd-userdb.conf', 'ENABLE_SSH_USERDB_CONFIG'],
['etc.conf', ''],
['legacy.conf', 'HAVE_SYSV_COMPAT'],
['static-nodes-permissions.conf', ''],
['systemd.conf', ''],
['var.conf', ''],
]

foreach pair : in_files
if not enable_tmpfiles
Expand Down
6 changes: 0 additions & 6 deletions tmpfiles.d/systemd.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,3 @@ d /var/lib/systemd/ephemeral-trees 0755 root root 0
d /var/lib/private 0700 root root -
d /var/log/private 0700 root root -
d /var/cache/private 0700 root root -

{% if ENABLE_EFI %}
# Copy sd-stub provided PCR signature and public key file from initrd into /run/, so that it will survive the initrd stage
C /run/systemd/tpm2-pcr-signature.json 0444 root root - /.extra/tpm2-pcr-signature.json
C /run/systemd/tpm2-pcr-public-key.pem 0444 root root - /.extra/tpm2-pcr-public-key.pem
{% endif %}

0 comments on commit 408ab98

Please sign in to comment.