Commit Graph
41847 Commits
Author SHA1 Message Date
Luca Boccassi 010c73c68e Merge pull request #26307 from yuwata/test-execute-credentials
test-execute: drop capabilities when testing with user manager
2023-02-15 19:59:28 +00:00
Luca Boccassi 6f97aae029 Merge pull request #26213 from poettering/journal-rework-seqnum
journal sequence number rework
2023-02-15 19:58:58 +00:00
Luca Boccassi 8dcfecc833 Merge pull request #26410 from DaanDeMeyer/xattr-symlink
Copy symlink xattrs
2023-02-15 19:55:04 +00:00
Luca Boccassi 504d0acf61 cryptsetup: do not assert when unsealing token without salt
Salt was added in v253. We are not checking whether it was actually found
(non-zero size), so when an old tpm+pin enrollment is opened things go boom.
For good measure, check both the buffer and the size in both places.

Assertion 'saltlen > 0' failed at src/shared/tpm2-util.c:2490, function tpm2_util_pbkdf2_hmac_sha256(). Aborting.
2023-02-15 18:01:28 +00:00
Yu Watanabe c126c8ac81 ukify: fix padding length 2023-02-15 18:01:02 +00:00
Dmitry V. Levin 30fd9a2dab treewide: fix a few typos in NEWS, docs and comments 2023-02-15 10:41:03 +00:00
Dmitry V. Levin 8d3473f01d src: fix several typos in log messages 2023-02-15 10:41:03 +00:00
HATAYAMA Daisuke 2ffbf44344 sulogin: use DEFINE_MAIN_FUNCTION()
Let's use DEFINE_MAIN_FUNCTION() as the other commands for consistency.

This commit should be no functional change.
2023-02-14 22:10:13 -05:00
Mike Gilbert 7cd137e647 bootctl: avoid using __WORDSIZE macro
__WORDSIZE does not seem to be documented anywhere, and is probably
meant to be used internally by glibc headers.

In systemd, it was only being used in warning messages. We can avoid
using it by rewording the messages slightly.

Fixes a build error with musl libc.

Bug: https://bugs.gentoo.org/894430
2023-02-15 10:24:25 +09:00
Yu Watanabe b7cca6cc5a test-execute: add basic tests for LoadCredential= and SetCredential= 2023-02-15 10:10:54 +09:00
Yu Watanabe 4e032f654b test-execute: drop capabilities when testing with user manager
Before this, tests are split into two categories, system and user, but
both are running in fully privileged environment. Hence, unprivileged
user scope was mostly not covered by the test.

Let's run all tests in both system and user scopes, and drop capabilities
when Manager is running in user scope.

This also makes the host environment protected more from the test run.
2023-02-15 10:10:54 +09:00
Yu Watanabe f0353cf2e9 core/execute: fix comment 2023-02-15 10:10:13 +09:00
Yu Watanabe 0b75493da0 tree-wide: fix typo and comment style update 2023-02-15 10:08:16 +09:00
Daan De Meyer d5b3a0497f repart: Remove outdated comment 2023-02-14 15:09:54 +01:00
Daan De Meyer ab3a46f837 mount-setup: Fix typo 2023-02-14 15:09:32 +01:00
Daan De Meyer 3e45146021 repart: Initialize root directory metadata correctly
Let's make sure we copy the root directory metadata from an
appropriate source directory.
2023-02-14 14:30:27 +01:00
Daan De Meyer 1eb86ddde4 repart: Create temporary root directory using var_tmp_dir()
This allows users to override the directory used with environment
variables.
2023-02-14 12:51:40 +01:00
Daan De Meyer da486c30fe copy: Copy symlink xattrs
Symlinks can have xattrs as well, let's make sure we copy those
as well.
2023-02-14 12:51:40 +01:00
Daan De Meyer c17cfe6ef7 copy: Make copy_xattr() more generic
Let's make copy_xattr() a little more generic in preparation for
copying symlink xattrs.
2023-02-14 12:51:40 +01:00
Daan De Meyer a4d2461c46 xattr-util: Add xsetxattr()
Like getxattr_malloc() but for setxattr() and friends.
2023-02-14 12:51:38 +01:00
Daan De Meyer 0da4cc97b4 test-boot-timestamp: Handle ERANGE error
Timestampfs from sysfs files can be zero in which case ERANGE will
be returned so let's make sure we catch that.
2023-02-13 22:00:33 +01:00
Jan Janssen ec96dad2f4 boot: Ensure raise() is not dropped by LTO 2023-02-12 22:23:22 +01:00
ml 7b03b44ed9 nspawn: fix directory in logged error 2023-02-12 00:22:52 +01:00
Lennart Poettering c12a0d6dcf dissect-image: unknown/unsupported diskseq is indicated by 0, not by UINT64_MAX
At almost all places if diskseq is not supported we encode this as
diskseq zero. But in two places we got the check for that wrong,
assuming it was UINT64_MAX.

Fix that.
2023-02-10 18:03:21 +01:00
Lennart Poettering 32d6707dd1 core: when isolating to a unit, also keep units running that are triggered by units we keep running
Inspired by: #26364

(this might even "fix" #26364, but without debug logs it's hard to make
such claims)

Fixes: #23055
2023-02-10 16:09:35 +00:00
Samuel Cabrero edd5ec2373 userdb: Use json_dispatch_user_group_name() to parse GetMembership fields
It allows to relax the checks and allow characters like '\', used by
windows to split the domain name and user name.

For reference, discussion in the systemd-devel mailing list:
https://lists.freedesktop.org/archives/systemd-devel/2023-February/048804.html

Signed-off-by: Samuel Cabrero <scabrero@suse.de>
2023-02-10 15:09:45 +00:00
Yu Watanabe 645063d1bb cryptenroll: drop deadcode
Follow-up for b0fc23fae5.

After the commit, 'signature_path' is now always non-NULL, hence the
condition can be dropped.

Fixes CID#1504492.
2023-02-10 10:45:19 +00:00
Jan Janssen 5983306474 boot: Fix undefined reference to raise() on arm
This is just a workaround. Once we drop gnu-efi, the arm build system
for EFI binaries should be changed to use the arm-none-eabi toolchain,
which should not exhibit this behavior.
2023-02-09 21:55:40 +00:00
Zbigniew Jędrzejewski-Szmek 0c90efc9db various: boldify version output
Follow-up for 4453ebe4db.
With the feature list all dandified, the most important part of the
output, i.e. the project name and version, are less visible.
2023-02-09 15:32:33 +00:00
Daan De Meyer 77db9ef2ab boot: Make sure we take --root into account everywhere. 2023-02-09 14:46:17 +00:00
Daan De Meyer 3b42ffe590 bootctl: Add missing %m 2023-02-09 11:31:57 +00:00
Yu Watanabe 1c3762937e nss-myhostname: do not return empty result with NSS_STATUS_SUCCESS
Fixes a bug introduced by db50d326a4.

Fixes RHBZ#2167468 (https://bugzilla.redhat.com/show_bug.cgi?id=2167468).
2023-02-09 06:07:16 +09:00
Yu Watanabe a3b993ca3f nss-myhostname: fix inverted condition in
Fixes a bug introduced by db50d326a4.
2023-02-09 05:55:51 +09:00
Lennart Poettering ece6fc51e6 process-util: add missing error check 2023-02-08 20:15:57 +00:00
Luca Boccassi 777440f110 Merge pull request #26225 from qdeslandes/fix_delegate_cgroup_logs_filtering
Fix delegate cgroup logs filtering
2023-02-08 19:36:21 +00:00
Zbigniew Jędrzejewski-Szmek 667578bb11 ukify: add explanatory message when import fails 2023-02-08 19:35:42 +00:00
Lennart Poettering 834f759c49 journal: modernize sd_journal_get_realtime_usec() a bit
This does what 404803e6ca did for the
monotonic timestamp getter, but for the realtime timestamp.

It also also makes the return value optional, exactly as for the
monotonic timestamp logic.
2023-02-08 17:33:23 +00:00
Luca Boccassi bccad0584e Merge pull request #26350 from keszybz/reload-messages
Improve messages emitted when Reload or Reexec is requested
2023-02-08 17:05:16 +00:00
Quentin Deslandes 41b7fcc5e8 journald: fix ignored filtering patterns for delegated cgroups
If a service defines Delegate=yes, its subcgroup won't inherit the
LogFilterPatterns= option, because the option is stored on the unit's
cgroup attributes, not on the subcgroup.

Fixed by using the unit's cgroup attributes instead.
2023-02-08 16:52:51 +01:00
Quentin Deslandes ee164216d3 core: add cg_path_get_unit_path()
From a given cgroup path, cg_path_get_unit() allows to retrieve the
unit's name. Although, this removes the path to the unit's cgroup,
preventing the result to be used to fetch xattrs.

Introduce cg_path_get_unit_path() which provides the path to the unit's
cgroup. This function behave similarly to cg_path_get_unit() (checking
the validity and escaping the unit's name).
2023-02-08 16:48:58 +01:00
Zbigniew Jędrzejewski-Szmek f031e8b8dd sd-bus: adjust line breaks 2023-02-08 15:48:43 +01:00
Zbigniew Jędrzejewski-Szmek 1980a25dc0 manager: improve message about Reload/Reexec requests
If we fail to get the necessary information, let's just not print that
part of the message. 'n/a' looks pretty ugly.

I used a bunch of ternary operators instead of seperate log lines because
with two components that might or might not be there, we need four different
combinations.

Also, the unit name doesn't need to be quoted, it's always printable.
2023-02-08 15:48:43 +01:00
Zbigniew Jędrzejewski-Szmek a99bd455b5 manager: "downgrade" message about command vanishing from the unit file
We would print "Current command vanished from the unit file, execution of
the command list won't be resumed." as a warning, but most of the time there
is nothing to resume, because a unit has just one command. So let's detect
the case where the command that was active is the last command in the sequence
and skip the warning.

I was considering how to store the information that the command is last. An
important consideration is not to use a format that would confuse older versions
of systemd. (It wouldn't be a big problem if older systemd just refused the
new serialization, since we require systemd to be newer, but we should avoid
the case where the deserialization is "successful", but actually incorrect.)
Similarly, the deserialization from the old systemd must not confuse new systemd.
For this command, we have a list of arguments at the end, so just adding a
new field either in the middle or at the end is problematic because it's hard
to ensure that we don't mix up the positional and variable arguments.

We actually need to store just one bit of information, so '+' is prefixed on
the index of the last command and used by new systemd to skip the warning.
When deserializing from older systemd, '+' is not present, so we detect all
commands as "not last", and still emit the warning, so we err on the side of
caution. If the user were to deserialize from newer to older systemd, nothing
untoward would happen, because the '+' is ignored. (Users shouldn't do this,
but we know that this occasionally happens with initrds or exitrds and package
downgrades.)
2023-02-08 15:48:43 +01:00
Lennart Poettering e5d60d1b3b journald: maintain entry seqnum counter in mmap()ed file in /run/
Let's ensure that entry seqnums remain stable and monotonic across the
entire runtime of the system, even if local storage is turned off. Let's
do this by maintainer a counter file in /run/ which we mmap() and
wherein we maintain the counter from early-boot on till late shutdown.

This takes inspiration of the kernel-seqnum file we already maintain
like that that tracks which kmsg messages we already processed. In fact,
we reuse the same code for maintaining it.

This should allow the behaviour entry seqnums to be more predictable, in
particular when journal local storage is turned off. Previously, we'd
maintain the seqnum simply by always bumping it to the maximum of the
last written entry seqnum plus one, and the biggest seqnum so far
written to the journal file on disk. If we'd never write a file on disk,
or if no journal file was existing during the initrd→seqnum transition
we'd completely lose the current seqnum position during daemon restarts
(such as the one happening during the switch-root operation).

This also will cause a journal file rotation whenever we try to write to
a journal file with multiple sequence number IDs, so that we know that
from early boot trhough the entire runtime we'll have stable sequence
numbers that do not jump, and thus can be used to determine "lost"
messages.
2023-02-08 13:42:29 +01:00
Lennart Poettering 2bc70e2e9d logs-show: show seqnum info in export+json output mode 2023-02-08 13:42:29 +01:00
Lennart Poettering b1712fabd1 sd-journal: add high-level API for querying seqnum for journal entries, along with seqnum id 2023-02-08 13:42:29 +01:00
Zbigniew Jędrzejewski-Szmek 8eb491f499 test-parse-util: add tests with explicit plus character
I expected this to work, but our tests did not cover this
explicitly.
2023-02-08 12:01:16 +01:00
Zbigniew Jędrzejewski-Szmek 502096b565 core/service: constify ExecCommand* in two functions 2023-02-08 12:01:16 +01:00
Luca Boccassi 398dc7d39b core: imply DeviceAllow=/dev/tpmrm0 with LoadCredentialEncrypted
If the device access policy is restricted, add implicitly access to the TPM
if at least one encrypted credential needs to be loaded.

Fixes https://github.com/systemd/systemd/issues/26042
2023-02-08 10:59:55 +00:00
Luca Boccassi b0fc23fae5 cryptenroll: do not implicitly verify with default tpm policy signature
If it was not requested to use a tpm2 signature file when enrolling, do
not fallback to the default /run/systemd/tpm2-pcr-signature.json as it
likely will be unrelated if it exists.

Fixes https://github.com/systemd/systemd/issues/25435
2023-02-08 10:58:57 +00:00