Commit Graph
34349 Commits
Author SHA1 Message Date
Lennart Poettering 0bb4308014 userdb: add "description" field to group records
User records have the realname/gecos fields, groups never had that, but
it would really be useful to have it, hence let's add it with similar
semantics.

We enforce the same syntax as for GECOS, since it's better to start with
strict rules and losen them later instead of the opposite.
2020-08-07 08:39:18 +02:00
Zbigniew Jędrzejewski-Szmek f1cc283a5a Merge pull request #16321 from bluca/mount_images
core: new feature MountImages
2020-08-06 18:23:03 +02:00
Kamil Dudka 4191b3282a _sd-common.h: avoid parsing errors with Coverity
The commit 1070d271fa which was supposed
too fix this does not seem to take effect any more.  We get again 34%
compilation success rate while scanning systemd itself.  Moreover, the
installed header file breaks compilation of programs that include it:

"/usr/include/systemd/_sd-common.h", line 23: error #35: #error directive: "Do
          not include _sd-common.h directly; it is a private header."
  #  error "Do not include _sd-common.h directly; it is a private header."
     ^
2020-08-06 16:26:57 +02:00
Luca Boccassi b3d133148e core: new feature MountImages
Follows the same pattern and features as RootImage, but allows an
arbitrary mount point under / to be specified by the user, and
multiple values - like BindPaths.

Original implementation by @topimiettinen at:
https://github.com/systemd/systemd/pull/14451
Reworked to use dissect's logic instead of bare libmount() calls
and other review comments.
Thanks Topi for the initial work to come up with and implement
this useful feature.
2020-08-05 21:34:55 +01:00
Luca Boccassi a082edd53a strv: add strv_split_colon_pairs function
Given a string in the format 'one:two three four:five', returns a string
vector with each word. If the second element of the tuple is not
present, an empty string is returned in its place, so that the vector
can be processed in pairs.

[zjs: use EXTRACT_UNESCAPE_SEPARATORS instead of EXTRACT_CUNESCAPE_RELAX.
This way we do escaping exactly once and in normal strict mode.]
2020-08-05 21:29:13 +01:00
Zbigniew Jędrzejewski-Szmek 1e198efcdb basic/extract-word: add EXTRACT_UNESCAPE_SEPARATORS mode
This allows separators to be escaped, for example to allow
"a\:b:c", to be treated as "a:b", "c" with ":" as the separator.
2020-08-05 21:29:13 +01:00
Lennart Poettering cc171228d4 journalctl: add --image= switch 2020-08-05 20:34:58 +02:00
Lennart Poettering 0c3ee12737 sysusers: add support for a --image= switch 2020-08-05 20:34:58 +02:00
Lennart Poettering 63d3d0a50b tmpfiles: support --image= similar to --root= 2020-08-05 20:34:58 +02:00
Lennart Poettering 6aa05ebdd8 firstboot: move --image= logic into common code
That way we can reuse it in tmpfiles/sysusers/journalctl and so on.
2020-08-05 20:34:58 +02:00
Luca Boccassi 866fdcceb4 test: add another test case for extract_many_words
Covers some functionality that we want to use for config tuples
2020-08-05 19:28:55 +01:00
Lennart Poettering b8e35011f7 tmpfiles: properly prefix paths in debug outputs
This is otherwise very confusing...
2020-08-05 20:26:25 +02:00
Lennart Poettering b63aacaa1a tmpfiles: we don't support the combination of --root and --user, hence refuse it
--user only really works with certain env vars such as XDG_RUNTIME_DIR
set, but that's just weird if --root= is used.
2020-08-05 20:26:25 +02:00
Lennart Poettering dd04fb3268 tmpfiles: add new switch -E for quickly excluding /proc, /dev, /sys and /run 2020-08-05 20:26:25 +02:00
Zbigniew Jędrzejewski-Szmek 28365e88d0 analyze: fix 'cat-config systemd/zram-generator.conf'
Also makes this work for various systemd config files that support .d.
2020-08-05 20:23:52 +02:00
Axel Rasmussen a119185c02 selinux: improve comment about getcon_raw semantics
This code was changed in this pull request:
https://github.com/systemd/systemd/pull/16571

After some discussion and more investigation, we better understand
what's going on. So, update the comment, so things are more clear
to future readers.
2020-08-05 20:20:45 +02:00
Zbigniew Jędrzejewski-Szmek ddd8e23dc9 bless-boot: add missing verb to --help
There is also "help" verb which duplicates the --help option. I don't
think we should advertise it.
2020-08-05 12:16:03 +02:00
Zbigniew Jędrzejewski-Szmek 08554d4725 test-nss: do not assume all symbols are defined
It is OK for some symbols to be missing. With this change, "test-nss sss" can
be used to test nss-sss without crashing.

$ build-rawhide/test-nss sss fedoraproject.org
======== sss ========
_nss_sss_gethostbyname4_r not defined

_nss_sss_gethostbyname3_r not defined

_nss_sss_gethostbyname3_r not defined

_nss_sss_gethostbyname3_r not defined

_nss_sss_gethostbyname3_r not defined

_nss_sss_gethostbyname2_r("fedoraproject.org", AF_INET) → status=NSS_STATUS_NOTFOUND
                   errno=0/--- h_errno=-1/Resolver internal error

_nss_sss_gethostbyname2_r("fedoraproject.org", AF_INET6) → status=NSS_STATUS_NOTFOUND
                   errno=0/--- h_errno=-1/Resolver internal error

_nss_sss_gethostbyname2_r("fedoraproject.org", *) → status=NSS_STATUS_UNAVAIL
                   errno=97/EAFNOSUPPORT h_errno=-1/Resolver internal error

_nss_sss_gethostbyname2_r("fedoraproject.org", AF_UNIX) → status=NSS_STATUS_UNAVAIL
                   errno=97/EAFNOSUPPORT h_errno=-1/Resolver internal error

_nss_sss_gethostbyname_r("fedoraproject.org") → status=NSS_STATUS_NOTFOUND
                   errno=0/--- h_errno=-1/Resolver internal error
2020-08-05 10:49:46 +02:00
Zbigniew Jędrzejewski-Szmek 604b163a31 test-seccomp: minor simpification 2020-08-05 10:49:46 +02:00
Zbigniew Jędrzejewski-Szmek 890e5a4d29 test-nss: modernize a bit and print path to the loaded so file
This makes it easier to figure out if we're looking at the right
module.
2020-08-05 10:49:46 +02:00
Zbigniew Jędrzejewski-Szmek da012db02d journalctl: reshuffle console message about fss keys
We talked about the verification key, then about sealing keys, and then
about the verification key again. Let's shorten things a bit, and divide
the output in three paragraphs: one about the machine, one about the sealing
keys, and one about verification keys and the qr code with them.
2020-08-05 10:49:46 +02:00
Lennart Poettering 1efe30ded3 Merge pull request #16556 from keszybz/test-terminal-colors
Test terminal colors
2020-08-05 09:35:16 +02:00
Zbigniew Jędrzejewski-Szmek d06bd2e785 Merge pull request #16596 from poettering/event-time-rel
Conflict in src/libsystemd-network/test-ndisc-rs.c fixed manually.
2020-08-04 16:07:03 +02:00
Zbigniew Jędrzejewski-Szmek 1472b58835 Merge pull request #16260 from poettering/pcre2-dlopen
turn pcre2 dependency into dlopen() dependency
2020-08-04 15:37:48 +02:00
Zbigniew Jędrzejewski-Szmek 3a4378cb9e Merge pull request #16145 from poettering/qrcode-dlopen
journalctl: make libqrencode a weak (dlopen() style) dependency
2020-08-04 15:25:50 +02:00
Lennart Poettering 11579a956d home: use ID128_UUID_STRING_MAX where appropriate 2020-08-04 12:40:34 +02:00
Zbigniew Jędrzejewski-Szmek 94efaa3181 core: reset bus error before reuse
From a report in https://bugzilla.redhat.com/show_bug.cgi?id=1861463:
usb-gadget.target: Failed to load configuration: No such file or directory
usb-gadget.target: Failed to load configuration: No such file or directory
usb-gadget.target: Trying to enqueue job usb-gadget.target/start/fail
usb-gadget.target: Failed to load configuration: No such file or directory
Assertion '!bus_error_is_dirty(e)' failed at src/libsystemd/sd-bus/bus-error.c:239, function bus_error_setfv(). Ignoring.
sys-devices-platform-soc-2100000.bus-2184000.usb-ci_hdrc.0-udc-ci_hdrc.0.device: Failed to enqueue SYSTEMD_WANTS= job, ignoring: Unit usb-gadget.target not found.

I *think* this is the place where the reuse occurs: we call
bus_unit_validate_load_state(unit, e) twice in a row.
2020-08-03 17:54:32 +02:00
Zbigniew Jędrzejewski-Szmek c9fecf18b9 Merge pull request #16595 from bengal/bg/dhcpv6-fqdn
dhcp6: parse the FQDN option
2020-08-03 15:17:00 +02:00
Zbigniew Jędrzejewski-Szmek 18dbc899ff Merge pull request #16258 from hunger/master
systemd-repart: Add an option to generate a JSON report
2020-08-03 10:05:32 +02:00
Zbigniew Jędrzejewski-Szmek 7e62257219 Merge pull request #16308 from bluca/root_image_options
service: add new RootImageOptions feature
2020-08-03 10:04:36 +02:00
Marti Raudsepp 09364a8043 machine: Pass machine, user, program values to polkit on OpenMachineShell
This allows more granular access control in PolicyKit rules, similar to
/etc/sudoers, for polkit actions:
* org.freedesktop.machine1.host-shell
* org.freedesktop.machine1.shell

Example configuration, place in /etc/polkit-1/rules.d/

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.machine1.host-shell"
        && subject.user == "my-user"
        && action.lookup("user") == "target-user") {
            return polkit.Result.YES;
    }
});
2020-08-03 10:03:13 +02:00
Kir Kolyshkin 1cdbff1c84 kernel-install/90-loaderentry: fix when /boot is not mountpoint
I happen to have a machine where /boot is not a separate mountpoint,
but rather just a directory under /. After upgrade to recent Fedora,
I found out that grub2 can't find any new kernels.

This happens because loadentry script generates kernel and initrd file
paths relative to /boot, while grub2 expects path to be relative to the
root of filesystem on which they are residing.

This commit fixes this issue by using stat's %m to find the mount point
of a partition holding the images, and using it as a prefix to be
removed from ENTRY_DIR_ABS.

Note that %m for stat requires coreutils 8.6, released in Oct 2010.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-08-03 10:01:03 +02:00
Daan De Meyer 6f646e0175 nspawn: Fix incorrect usage of putenv
strv_env_get only returns the environment variable value. putenv expects
KEY=VALUE format strings. Use setenv instead to fix the use.
2020-08-03 09:58:05 +02:00
Beniamino Galvani c43eea9f2e dhcp6: parse the FQDN option
Parse option 39 (Client Fully Qualified Domain Name, RFC 4704) from the DHCP
reply, which specifies the FQDN assigned by the server to the client.
2020-08-03 09:36:18 +02:00
Zbigniew Jędrzejewski-Szmek 01ecb3674a analyze-security: do not assign badness to filtered-out syscalls
Fixes #16451, https://bugzilla.redhat.com/show_bug.cgi?id=1856273.
2020-08-01 11:54:26 +02:00
Lennart Poettering cae1e8fb88 loop-device: implicitly sync device on detach
Apparently, if IO is still in flight at the moment we invoke LOOP_CLR_FD
it is likely simply dropped (probably because yanking physical storage,
such as a USB stick would drop it too). Let's protect ourselves against
that and always sync explicitly before we invoke it.
2020-07-30 20:56:13 +02:00
Zbigniew Jędrzejewski-Szmek 3660da17b0 Merge pull request #16624 from keszybz/timesync-retry-interval
Make timesyncd retry interval grow more slowly
2020-07-30 20:47:41 +02:00
Amitanand.Chikorde e7e954243a udev: fix codesonar warnings
Fixed below systemd codesonar warning.
isprint() is invoked here with an argument of signed
type char, but only has defined behavior for int arguments that are
either representable as unsigned char or equal to the value
of macro EOF(-1).

As per codesonar report, in a number of libc implementations, isprint()
function implemented using lookup tables (arrays): passing in a
negative value can result in a read underrun.
2020-07-30 18:55:50 +02:00
Zbigniew Jędrzejewski-Szmek b67ec8e5b2 pid1: stop limiting size of /dev/shm
The explicit limit is dropped, which means that we return to the kernel default
of 50% of RAM. See 362a55fc14 for a discussion why that is not as much as it
seems. It turns out various applications need more space in /dev/shm and we
would break them by imposing a low limit.

While at it, rename the define and use a single macro for various tmpfs mounts.
We don't really care what the purpose of the given tmpfs is, so it seems
reasonable to use a single macro.

This effectively reverts part of 7d85383edb. Fixes #16617.
2020-07-30 18:48:35 +02:00
Lennart Poettering 2f2c60d7fe path-util: make use of TAKE_PTR() where we can 2020-07-30 16:42:58 +02:00
Zbigniew Jędrzejewski-Szmek e4ec8b1f51 test-repart: also print json output
This doesn't really "test" anything, but a human can look at it.
2020-07-30 16:03:53 +02:00
Zbigniew Jędrzejewski-Szmek 2d2d0a57e7 repart: adjust --help and test output width 2020-07-30 16:02:45 +02:00
Lennart Poettering c8f3d7672c repart: log fixes 2020-07-30 15:17:08 +02:00
Zbigniew Jędrzejewski-Szmek 5919bd3df3 timesync: increase retry interval more slowly
The new retry intervals are [15, 20, 26, 34, 45, 60, 80, 106, 141, 188, 250,
333, 360, ...]. This should allow graceful response if a transient network
failure is encountered. Growth is exponential, but with a small power and
capped to a non-too-large value so that we resynchronize within a few minutes
after network is restored. I made the minimum 15 s to make sure that we never
send packets more often than that.

Fixes #16492.
2020-07-30 15:15:11 +02:00
Zbigniew Jędrzejewski-Szmek 5ee27251cd basic/terminal-util: rename our replacement highlight-yellow and test both the original and replacement
The fact that we cannot use the "real" yellow color and need to use some other
color is essentially a bug. In this particular case the issue is in urxvt, see
a9009769de. While we work around this by using a
different color, let's not forget that this is just a (hopefullly temporary)
workaround.

https://bugzilla.redhat.com/show_bug.cgi?id=1859886
https://bugzilla.redhat.com/show_bug.cgi?id=1859889
https://bugzilla.redhat.com/show_bug.cgi?id=1859894
2020-07-30 14:43:02 +02:00
Zbigniew Jędrzejewski-Szmek 37873ebfbc test-terminal-util: print paragraphs of text in different colors 2020-07-30 14:41:15 +02:00
Tobias Hunger a015fbe7ef Repart: Add support for machine readably report
Add --json command line argument that prints all relevant information
in a machine-readable format.
2020-07-30 12:26:15 +02:00
Yu Watanabe 2ac7eec3b5 network: fix use of uninitialized value
Follow-up for 6e537f62d7.
2020-07-30 07:38:18 +02:00
Michael Marley b209cff2ad network: Fix "Unknown section 'DHCPv6PrefixDelegation'." message
Follow-up for https://github.com/systemd/systemd/commit/99e015e28c8322bf714f45cd1defcf20ac2103c5
2020-07-30 10:34:47 +09:00
Luca Boccassi 18d7370587 service: add new RootImageOptions feature
Allows to specify mount options for RootImage.
In case of multi-partition images, the partition number can be prefixed
followed by colon. Eg:

RootImageOptions=1:ro,dev 2:nosuid nodev

In absence of a partition number, 0 is assumed.
2020-07-29 17:17:32 +01:00