1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-01-05 09:17:44 +03:00
Commit Graph

55942 Commits

Author SHA1 Message Date
lastkrick
c93fb9a57e man: fix typo in systemd.network documentation in IPv6RoutePrefix section (#24030)
(cherry picked from commit 69a7d10832)
(cherry picked from commit 7632ff4ccc)
2022-11-04 13:02:19 +01:00
Łukasz Stelmach
217b3e012b core: drop ambient capabilities in user manager
Ambient capabilities should not be passed implicitly to user
services. Dropping them does not affect the permitted and effective sets
which are important for the manager itself to operate.

(cherry picked from commit 963b6b906e)
(cherry picked from commit c88309d5cd)
2022-11-04 13:02:19 +01:00
Lennart Poettering
d8464304f0 cgroups-agent: connect stdin/stdout/stderr to /dev/null
Inspired by https://github.com/systemd/systemd/pull/24024 this is
another user mode helper, where this might be an issue. hence let's
rather be safe than sorry, and also connect stdin/stdout/stderr
explicitly with /dev/null.

(cherry picked from commit 50492ce815)
(cherry picked from commit 689487785f)
2022-11-04 13:02:19 +01:00
Daan De Meyer
3e1224d4ac coredump: Connect stdout/stderr to /dev/null before doing anything
When invoked as the coredump handler by the kernel, systemd-coredump's
stdout and stderr streams are closed. This is dangerous as this means
the fd's can get reallocated, leading to hard to debug errors such as
log messages ending up being appended to a compressed coredump file.

To avoid such issues in the future, let's bind stdout/stderr to
/dev/null so the file descriptors can't get used for anything else.

(cherry picked from commit 1f9d2a8199)
(cherry picked from commit fba50bc0fc)
2022-11-04 13:02:19 +01:00
Lennart Poettering
7e7a6d60f4 man: explain why various resource limits don't make sense and should not be used.
(cherry picked from commit 8c88895772)
(cherry picked from commit 724d52146a)
2022-11-04 13:02:19 +01:00
Lennart Poettering
e655a7ac7b man: drop misplaced ','
(cherry picked from commit 3840b14781)
(cherry picked from commit 83203873ee)
2022-11-04 13:02:19 +01:00
Andre Kalb
a791dc67f8 man/network: ServerAddress= drop "literal" from IP address ranges
(cherry picked from commit 1df6201882)
(cherry picked from commit 098d70f438)
2022-11-04 13:02:18 +01:00
Lennart Poettering
296bd564cc base-filesystem: pick more conservative access mode for /root/
Let's not allow anyone to look into /root/ if we create it via the
base-filesystem logic. i.e. change 0755 → 0750 as default access mode
for /root/, in case we create it if it happens to be missing.

(cherry picked from commit 93cbc9ca12)
(cherry picked from commit 64be8d8a34)
2022-11-04 13:02:18 +01:00
Lennart Poettering
8b674cf43f tmpfiles: check the directory we were supposed to create, not its parent
This current code checks the wrong directory. This was broken in
4c39d899ff which converted the previous
code incorrectly.

(cherry picked from commit 92631578ff)
(cherry picked from commit 625472b219)
2022-11-04 13:02:18 +01:00
Lennart Poettering
a77b81f124 stat-util: replace is_dir() + is_dir_fd() by single is_dir_full() call
This new call can execute both of the old operations, but also do
generic fstatat() like behaviour.

(cherry picked from commit a586dc791c)
(cherry picked from commit 9255fa3a15)
2022-11-04 13:02:18 +01:00
undef
71e8f6de62 growfs: Expand FS even if underlying block expansion fails
This allows growfs to expand the filesystem even when the underlying
block device cannot be expanded. This has been useful for example on
LUKS devices that have already been expanded using systemd-repart.

This works around the following error:
```
root@mobian:/home/mobian# /usr/lib/systemd/systemd-growfs /
crypt_resize() of /dev/block/179:2 failed: Operation not permitted
```

(cherry picked from commit e9a28b8ccd)
(cherry picked from commit 378e187ed4)
2022-11-04 13:02:18 +01:00
undef
e39019fd10 growfs: don't actually resize on dry-run
This causes systemd-growfs to exit before resizing the partition when
`--dry-run` is passed. Resizing during a dry run of a change breaks the
users expectations.

(cherry picked from commit d26c0f7243)
(cherry picked from commit 00c6c62845)
2022-11-04 13:02:18 +01:00
Yu Watanabe
a6aa5b2f72 sd-bus: do not pass NULL when received message with invalid type
Fixes #24003.

(cherry picked from commit 3f0dbb0f0c)
(cherry picked from commit e56bfc8a41)
2022-11-04 13:02:18 +01:00
Zbigniew Jędrzejewski-Szmek
ca6ee4241a man: lift pam_systemd_homed description to Summary
Also change the title to describe the module more comprehensively.
Follow-up for 90bc309aa2. Suggested
in https://bugzilla.redhat.com/show_bug.cgi?id=2085485#c5.

(cherry picked from commit 9e6df03412)
(cherry picked from commit a4af8592c6)
2022-11-04 13:02:18 +01:00
Yu Watanabe
bbcc9f2e5b sd-device: send udev database version
Otherwise, sd-device object received through sd-device-monitor does not
show current tags.

Fixes #23799.

(cherry picked from commit 4bc4040bc0)
(cherry picked from commit 7f80102343)
2022-11-04 13:02:18 +01:00
Yu Watanabe
665c2f340c sd-device: make device_get_properties_{nulstr,strv}() take NULL for result value
In most cases, it is not necessary to call them without retrieving
result. But, most of other getter functions for sd-device can take NULL.
Let's follow the way for consistency.

(cherry picked from commit 793ab3e9dd)
(cherry picked from commit 925cff4a15)
2022-11-04 13:02:18 +01:00
Yu Watanabe
05763bb446 sd-device: change type of properties nulstr from uint8_t* to char*
(cherry picked from commit cff31876da)
(cherry picked from commit 0ecda6fdf0)
2022-11-04 13:02:18 +01:00
Lennart Poettering
922e717ee9 man: explain why pam_systemd_home wants to be in all four stacks
Suggested here:

https://bugzilla.redhat.com/show_bug.cgi?id=2085485#c5
(cherry picked from commit 90bc309aa2)
(cherry picked from commit 69de3e810a)
2022-11-04 13:02:18 +01:00
Michael Biebl
885e4e531b Do not fail EFI build with newer binutils
Newer binutils versions currently trigger the following warnings due to
a bug in gnu-efi

on arm64:
/usr/bin/ld.bfd: warning: src/boot/efi/systemd-bootaa64.elf has a LOAD segment with RWX permissions

on amd64:
/usr/bin/ld.bfd: warning: /usr/lib/crt0-efi-x86_64.o: missing .note.GNU-stack section implies executable stack

This results in a build failure due to --fatal-warnings.
Work around this issue by suppressing those warnings until gnu-efi has
been fixed.

See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1013341

(cherry picked from commit b0e5bf0451)
(cherry picked from commit 8a6f966be4)
2022-11-04 13:02:18 +01:00
Martin Wilck
a96ef943b4 core/device: device_coldplug(): don't set DEVICE_DEAD
dm-crypt device units generated by systemd-cryptsetup-generator
habe BindsTo= dependencies on their backend devices. The dm-crypt
devices have the db_persist flag set, and thus survive the udev db
cleanup while switching root. But backend devices usually don't survive.
These devices are neither mounted nor used for swap, thus they will
seen as DEVICE_NOT_FOUND after switching root.

The BindsTo dependency will cause systemd to schedule a stop
job for the dm-crypt device, breaking boot:

[   68.929457] krypton systemd[1]: systemd-cryptsetup@cr_root.service: Unit is stopped because bound to inactive unit dev-disk-by\x2duuid-3bf91f73\x2d1ee8\x2d4cfc\x2d9048\x2d93ba349b786d.device.
[   68.945660] krypton systemd[1]: systemd-cryptsetup@cr_root.service: Trying to enqueue job systemd-cryptsetup@cr_root.service/stop/replace
[   69.473459] krypton systemd[1]: systemd-cryptsetup@cr_root.service: Installed new job systemd-cryptsetup@cr_root.service/stop as 343

Avoid this by not setting the state of the backend devices to
DEVICE_DEAD.

Fixes the LUKS setup issue reported in #23429.

(cherry picked from commit cf1ac0cfe4)
(cherry picked from commit 4f86dd2849)
2022-11-04 13:02:18 +01:00
Nick Rosbrook
608264bb63 pstore: do not try to load all known pstore modules
Commit 70e74a5997 ("pstore: Run after modules are loaded") added After=
and Wants= entries for all known kernel modules providing a pstore.

While adding these dependencies on systems where one of the modules is
not present, or not configured, should not have a real affect on the
system, it can produce annoying error messages in the kernel log. E.g.
"mtd device must be supplied (device name is empty)" when the mtdpstore
module is not configured correctly.

Since dependencies cannot be removed with drop-ins, if a distro wants to
remove some of these modules from systemd-pstore.service, they need to
patch units/systemd-pstore.service.in. On the other hand, if they want
to append to the dependencies this can be done by shipping a drop-in.

Since the original intent of the previous commit was to fix [1], which
only requires the efi_pstore module, remove all other kernel module
dependencies from systemd-pstore.service, and let distros ship drop-ins
to add dependencies if needed.

[1] https://github.com/systemd/systemd/issues/18540

(cherry picked from commit 8b8bd621e1)
2022-11-03 16:38:28 +01:00
Alexander Graf
60a239c54e pstore: Run after modules are loaded
The systemd-pstore service takes pstore files on boot and transfers them
to disk. It only does it once on boot and only if it finds any. The typical
location of the pstore on modern systems is the UEFI variable store.

Most distributions ship with CONFIG_EFI_VARS_PSTORE=m. That means, the
UEFI variable store is only available on boot after the respective module
is loaded.

In most situations, the pstore service gets loaded before the UEFI pstore,
so we don't get to transfer logs. Instead, they accumulate, filling up the
pstore over time, potentially breaking the UEFI variable store.

Let's add a service dependency on any kernel module that can provide a
pstore to ensure we only scan for pstate after we can actually see pstate.

I have seen live occurences of systems breaking because we did not erase
the pstates and ran out of UEFI nvram space.

Fixes https://github.com/systemd/systemd/issues/18540

(cherry picked from commit 70e74a5997)
2022-11-03 16:38:28 +01:00
Yu Watanabe
b927b303c1 core/device: do not downgrade device state if it is already enumerated
On switching root, a device may have a persistent databse. In that case,
Device.enumerated_found may have DEVICE_FOUND_UDEV flag, and it is not
necessary to downgrade the Device.deserialized_found and
Device.deserialized_state. Otherwise, the state of the device unit may
be changed plugged -> dead -> plugged, if the device has not been mounted.

Fixes #23429.

[mwilck: cherry-picked from #23437]

(cherry picked from commit 4fc69e8a09)
(cherry picked from commit 131206de78)
2022-09-30 16:56:18 +02:00
Yu Watanabe
c2939963fe core/device: ignore DEVICE_FOUND_UDEV bit on switching root
The issue #12953 is caused by the following:
On switching root,
- deserialized_found == DEVICE_FOUND_UDEV | DEVICE_FOUND_MOUNT,
- deserialized_state == DEVICE_PLUGGED,
- enumerated_found == DEVICE_FOUND_MOUNT,
On switching root, most devices are not found by the enumeration process.
Hence, the device state is set to plugged by device_coldplug(), and then
changed to the dead state in device_catchup(). So the corresponding
mount point is unmounted. Later when the device is processed by udevd, it
will be changed to plugged state again.

The issue #23208 is caused by the fact that generated udev database in
initramfs and the main system are often different.

So, the two issues have the same root; we should not honor
DEVICE_FOUND_UDEV bit in the deserialized_found on switching root.

This partially reverts c6e892bc0e.

Fixes #12953 and #23208.
Replaces #23215.

Co-authored-by: Martin Wilck <mwilck@suse.com>
(cherry picked from commit 75d7b5989f)
2022-09-30 16:56:18 +02:00
Yu Watanabe
b16a4d45eb sd-device: make sd_device_get_is_initialized() not return -ENOENT
(cherry picked from commit 591c186f2f)
(cherry picked from commit d36b2af987)
2022-07-13 13:30:45 +02:00
Yu Watanabe
b791f05992 resolve: introduce FORMAT_DNS_RCODE() macro
Fixes #23958.

(cherry picked from commit 0d609349ba)
(cherry picked from commit a03ea9798a)
2022-07-13 13:30:45 +02:00
Yu Watanabe
3f909ca95a sd-dhcp-client: fix log message
(cherry picked from commit 3857d367f0)
(cherry picked from commit d56649142b)
2022-07-13 13:30:45 +02:00
Yu Watanabe
45944e44a7 network: drop redundant warning
If file is world readable, then `read_full_file_full()` will warn
about that.

(cherry picked from commit d5ad2ec1d4)
(cherry picked from commit c87c7e7231)
2022-07-13 13:30:45 +02:00
Yu Watanabe
e2335238d9 core/load-fragment: fix error value in log_syntax()
`extract_first_word()` may return positive value on success.

(cherry picked from commit 6a35d52d78)
(cherry picked from commit 900af21558)
2022-07-13 13:30:45 +02:00
Yu Watanabe
79d9afd3d6 resolve: fix possible integer overflow
(cherry picked from commit 370999c05b)
(cherry picked from commit b7fc4ffe97)
2022-07-13 13:30:45 +02:00
Yu Watanabe
63c0ce2346 resolve: fix heap-buffer-overflow reported by ASAN with strict_string_checks=1
Fixes #23942.

(cherry picked from commit beeab352de)
(cherry picked from commit feb244676b)
2022-07-13 13:30:45 +02:00
Yu Watanabe
c32530f5bd time-util: fix buffer-over-run
Fixes #23928.

(cherry picked from commit 9102c625a6)
(cherry picked from commit 72d4c15a94)
2022-07-13 13:30:45 +02:00
Lennart Poettering
9e9d8b8ef7 tmpfiles: correct error variable to use
(cherry picked from commit 149e0ca6c7)
(cherry picked from commit 9e73f919ab)
2022-07-13 13:30:45 +02:00
Lennart Poettering
859f107020 namespace: fix propagated error number
(cherry picked from commit 1ce268c789)
(cherry picked from commit c377dc4832)
2022-07-13 13:30:45 +02:00
Lennart Poettering
2317d49cfb man: "enabled commands are started at boot" is rubbish
it's enabled units, and they might be started by various forms of
activation, not just "at boot".

Fix that.

(cherry picked from commit 0c772b1cc1)
(cherry picked from commit 81d33ab7f6)
2022-07-13 13:30:44 +02:00
Lennart Poettering
84715375d5 json: actually use numeric C locale we just allocated
This fixes formatting of JSON real values, and uses C locale for them.
It's kinda interesting that this wasn't noticed before: the C locale
object we allocated was not used, hence doing the dance had zero effect.

This makes "test-varlink" pass again on systems with non-C locale.

(My guess: noone noticed this because "long double" was used before by
the JSON code and that had no locale supporting printer or so?)

(cherry picked from commit 93258c7d72)
(cherry picked from commit 2e6e30a92f)
2022-07-13 13:30:44 +02:00
Lennart Poettering
aa65f1f24f sd-id128: don't allow chars > f in valid id128 values
(cherry picked from commit 82c3a0b74c)
(cherry picked from commit 6e6da09bd0)
2022-07-13 13:30:44 +02:00
Yu Watanabe
256ce35963 nspawn: support PrivateUsers=identity
Follow-up for 33eac552ab.

Fixes #23825.

(cherry picked from commit 5ad08191d8)
(cherry picked from commit 5478878067)
2022-07-13 13:30:44 +02:00
Yu Watanabe
c094ef34a6 journalctl: fix to show user slice
Fixes #23867.

(cherry picked from commit 3daf1f913c)
(cherry picked from commit 9d86a5ac92)
2022-07-13 13:30:44 +02:00
Daan De Meyer
001d00ac69 journal: Fix missing parenthesis
(cherry picked from commit f63d1b0efa)
(cherry picked from commit 437978fe51)
2022-07-13 13:30:44 +02:00
Yu Watanabe
a53e5e0e2f virt: fix detection of Parallels virtualization
If Parallels virtualization is detected from DMI, then trust that over CPUID.

Fixes issue caused by 28b1a3eac2.

Fixes #23856.

(cherry picked from commit 840a49f3dc)
(cherry picked from commit 0c36233a84)
2022-07-13 13:30:44 +02:00
Yu Watanabe
2e54ed4043 sd-event: make sd_event_prepare() return positive when buffered inotify data exists
Previously, even if there is buffered inotify data, sd_event_prepare()
did not process the data when there is no pending event source.

Fixes #23826.

(cherry picked from commit 067fc91702)
(cherry picked from commit 632ba5b2f0)
2022-07-13 13:30:44 +02:00
Zbigniew Jędrzejewski-Szmek
29e3dc0dfd test-sd-hwdb: adjust the test to actually do anything
Without the terminating colon we wouldn't match anything, so the loop over
properties was skipped.

(cherry picked from commit 6b0485c29a)
(cherry picked from commit 09e0ccf293)
2022-07-13 13:30:44 +02:00
Jacek Migacz
2772e75771 emacs: ignore .dir-locals-2.el (personal customization) versioning
(cherry picked from commit 25e17bddec)
(cherry picked from commit 596dc75d18)
2022-07-13 13:30:44 +02:00
Yu Watanabe
a87e130a45 udev: allow to execute longer command line
Fixes #23607.

(cherry picked from commit c3613ee51e)
(cherry picked from commit 0c5b7ee318)
2022-07-13 13:30:44 +02:00
Alban Bedel
639423416c units: remove the restart limit on the modprobe@.service
They are various cases where the same module might be repeatedly
loaded in a short time frame, for example if a service depending on a
module keep restarting, or if many instances of such service get
started at the same time. If this happend the modprobe@.service
instance will be marked as failed because it hit the restart limit.

Overall it doesn't seems to make much sense to have a restart limit on
the modprobe service so just disable it.

Fixes: #23742
(cherry picked from commit 9625350e53)
(cherry picked from commit 8539a62207)
2022-07-13 13:18:28 +02:00
Pavel Zhukov
6785d1aa74 Add sys/file.h for LOCK_
Fixes build with musl:
| ../git/src/shared/dissect-image.c: In function 'mount_image_privately_interactively':
| ../git/src/shared/dissect-image.c:2986:34: error: 'LOCK_SH' undeclared (first use in this function)
|  2986 |         r = loop_device_flock(d, LOCK_SH);
|       |                                  ^~~~~~~

(cherry picked from commit 19df770fe1)
(cherry picked from commit b777390814)
2022-07-13 13:18:23 +02:00
Zbigniew Jędrzejewski-Szmek
ee2ecdff71 pkgconfig,rpm: expose vars for user-tmpfiles.d location
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2098553.

(cherry picked from commit 107795a759)
(cherry picked from commit a82d8d1916)
2022-07-13 13:18:20 +02:00
Frantisek Sumsal
dcd77da1f4 test: use saved process PID instead of %%
As the `%%` specifier might fail if the current job (i.e. the last
background job) already finished:

```
[   61.692196] testsuite-04.sh[656]: ++ systemd-id128 new
[   61.705407] testsuite-04.sh[263]: + ID=912cb8f8ef304153a123f772bb0fe9e0
[   61.706318] testsuite-04.sh[657]: + systemd-cat -t 912cb8f8ef304153a123f772bb0fe9e0 bash -c 'echo parent; (echo child) & wait'
[   61.720940] testsuite-04.sh[263]: + PID=657
[   61.721126] testsuite-04.sh[263]: + wait %%
[   61.723014] testsuite-04.sh[263]: /usr/lib/systemd/tests/testdata/units/testsuite-04.sh: line 96: wait: %%: no such job
```

(cherry picked from commit 0897048500)
(cherry picked from commit 9facc51e2f)
2022-07-13 13:18:16 +02:00
Marc Kleine-Budde
39a47af2e5 networkctl: fix output of "status": replace "Queue Length" by "Number of Queues"
Commit 0307afc681 ("networkctl: add support to display Transmit/Recieve queue
length (#12633)") added the display of the number of RX and TX Queues to the
output of `networkctl status $DEV`. However the row description says "Queue
Length".

This patch fixes the output by replacing "Queue Length" by "Number of Queues".

Fixes: 0307afc681 ("networkctl: add support to display Transmit/Recieve queue length (#12633)")
(cherry picked from commit 25ed7633b1)
(cherry picked from commit 16b8ae51b0)
2022-07-13 13:18:13 +02:00