Commit graph

41325 commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek ae480f0b09 shared/user-util: allow usernames with dots in specific fields
People do have usernames with dots, and it makes them very unhappy that systemd
doesn't like their that. It seems that there is no actual problem with allowing
dots in the username. In particular chown declares ":" as the official
separator, and internally in systemd we never rely on "." as the seperator
between user and group (nor do we call chown directly). Using dots in the name
is probably not a very good idea, but we don't need to care. Debian tools
(adduser) do not allow users with dots to be created.

This patch allows *existing* names with dots to be used in User, Group,
SupplementaryGroups, SocketUser, SocketGroup fields, both in unit files and on
the command line. DynamicUsers and sysusers still follow the strict policy.
user@.service and tmpfiles already allowed arbitrary user names, and this
remains unchanged.

Fixes #12754.
2019-08-19 21:19:13 +02:00
Zbigniew Jędrzejewski-Szmek 1a29610f5f shared/user-util: add compat forms of user name checking functions
New functions are called valid_user_group_name_compat() and
valid_user_group_name_or_id_compat() and accept dots in the user
or group name. No functional change except the tests.
2019-08-19 21:04:57 +02:00
Zbigniew Jędrzejewski-Szmek d2a236929b core: remove one {} 2019-08-19 21:04:57 +02:00
Frantisek Sumsal cd826afaf3
Merge pull request #13225 from mrc0mmand/networkd-test-replace-adduser-with-useradd
test: use `useradd` instead of `adduser`
2019-07-31 18:59:03 +00:00
Frantisek Sumsal 345997f393 test: print an error when networkctl returns an unexpected EC
If networkctl crashes, like recently with SIGABRT, it returns absolutely
no output, which may be confusing during debugging. Help it a little
with a short informative message.
2019-07-31 16:33:12 +02:00
Jan Synacek 28a06f5abe analyze-security: move assert above first use of the variable (#13238) 2019-07-31 16:13:35 +02:00
Zbigniew Jędrzejewski-Szmek 1be8044b5b
Merge pull request #13239 from poettering/coverity-fixes
four coverity fixes
2019-07-31 16:08:52 +02:00
Lennart Poettering 3ff668cb9a man: reword DeviceAllow= documentation
Don't claim we'd use cgroup.deny much. It's just a way to remove stuff
from device lists, which is nothing we allow users to explicitly
configure.

Also, extend documentation when wildcards may be used, and when not.
2019-07-31 16:06:15 +02:00
Lennart Poettering 735a8b6d38 job: fix coverity issue
Fixes coverity issue 1403550
2019-07-31 09:45:03 +02:00
Lennart Poettering 38c569bbb8 test-chase-symlinks: fix coverity issue
Fixes coverity issue 1403708
2019-07-31 09:45:03 +02:00
Lennart Poettering 771f8aef57 unit-file: fix coverity issue
Fixes coverity issue 1403820
2019-07-31 09:39:12 +02:00
Lennart Poettering f4ea8432e6 cryptsetup-generator: fix coverity issue
Fixes coverity issue 1403772
2019-07-31 09:38:59 +02:00
Chris Down 5c76ca6093 NEWS: Remove DisableControllers from v243
We already released this in v240 and had a NEWS entry then.
2019-07-31 12:12:46 +09:00
Frantisek Sumsal 4967da2dbc test-execute: skip test_exec_systemcallfilter_system under ASan
This particular test case keeps intermittently failing due to crashing
LSan  when running under clang+ASan. Generally, sanitizers don't
like seccomp filters, so the best option here is to just switch this
test off for this scenario.
2019-07-31 09:45:26 +09:00
Mike Gilbert 417b82e1c3 analyze: declare dump_exit_status outside of HAVE_SECCOMP block
Fixes: 76ed04d936
Closes: https://github.com/systemd/systemd/issues/13230
2019-07-31 09:43:03 +09:00
Piotr Drąg 8c62066cd6 po: update Polish translation 2019-07-30 21:39:43 +02:00
Frantisek Sumsal 2de705cd1c test: use useradd instead of adduser
`adduser` is in certain cases a standalone package which provides a
better user experience. In other cases it's just a symlink to `useradd`.
And some distributions don't have `adduser` at all, like Arch Linux.
Let's use the `useradd` binary instead, which should provide the same
functionality everywhere.
2019-07-30 20:26:25 +02:00
Yu Watanabe 4c858c6fd5 boot: fix build with gnu-efi older than 3.0.5 2019-07-30 18:58:15 +02:00
Lennart Poettering 5756bff6f1
Merge pull request #13119 from keszybz/unit-loading-2
Rework unit loading to take into account all aliases
2019-07-30 17:55:37 +02:00
Zbigniew Jędrzejewski-Szmek 4860f5c2ae NEWS: more entries and some rewordings 2019-07-30 16:50:40 +02:00
Yu Watanabe 7c6de13f1b bash-completion: support "systemd-analyze exit-status" 2019-07-30 16:45:21 +02:00
Zbigniew Jędrzejewski-Szmek 9f4afc0154
Merge pull request #13189 from yuwata/network-initrd-generator-unit
unit: update initrd-network-generator.service
2019-07-30 16:38:59 +02:00
Yu Watanabe 45160216b7 networkctl: TABLE_BPS requires uint64_t 2019-07-30 15:09:16 +02:00
Zbigniew Jędrzejewski-Szmek 802765438f test-unit-file: allow printing of information about specific units
Useful for manual debugging.
2019-07-30 14:01:46 +02:00
Zbigniew Jędrzejewski-Szmek 91e0ee5f16 pid1: drop unit caches only based on mtime
v2:
- do not watch mtime of transient and generated dirs

  We'd reload the map after every transient unit we created, which we don't
  need to do, since we create those units ourselves and know their fragment
  path.
2019-07-30 14:01:46 +02:00
Zbigniew Jędrzejewski-Szmek e67cd21d7d analyze: add "unit-files" to dump the unit fragment map
I'm not convinced that this is useful enough to be included... But it is
certainly nice when debugging.
2019-07-30 14:01:46 +02:00
Zbigniew Jędrzejewski-Szmek e8630e6952 pid1: use a cache for all unit aliases
This reworks how we load units from disk. Instead of chasing symlinks every
time we are asked to load a unit by name, we slurp all symlinks from disk
and build two hashmaps:
1. from unit name to either alias target, or fragment on disk
   (if an alias, we put just the target name in the hashmap, if a fragment
    we put an absolute path, so we can distinguish both).
2. from a unit name to all aliases

Reading all this data can be pretty costly (40 ms) on my machine, so we keep it
around for reuse.

The advantage is that we can reliably know what all the aliases of a given unit
are. This means we can reliably load dropins under all names. This fixes #11972.
2019-07-30 14:01:46 +02:00
Zbigniew Jędrzejewski-Szmek 7d1e91d1a9 shared/unit-file: add a function to validate unit alias symlinks
It turns out most possible symlinks are invalid, because the type has to match,
and template units can only be linked to template units.

I'm not sure if the existing code made the same checks consistently. At least
I don't see the same rules expressed in a single place.
2019-07-30 13:51:21 +02:00
Zbigniew Jędrzejewski-Szmek 54f4403485 TEST-15-DROPIN: add test for details of unit aliasing
I adjusted the tests to pass. I don't think the behaviour makes much sense,
even if we ignore the issue with "lazy loading" of aliases. E.g. in the
last section, the fact that dropins for yup@.service and yup@3.service are
not loaded seems to be a plain old bug.
2019-07-30 13:51:18 +02:00
Zbigniew Jędrzejewski-Szmek 976ed3b621 test: use "ln -fs"
Without this, repeated runs of "make -C TEST/... setup" fail when trying
to create the symlink.
2019-07-30 13:27:06 +02:00
Simon Schricker 2d1b928109 docs: fix typo 2019-07-30 08:44:05 +02:00
Zbigniew Jędrzejewski-Szmek e397eb50da
Merge pull request #13219 from poettering/named-exit-codes-tweaks
quick follow-up for the symbolic exit status PR #13207
2019-07-30 08:27:20 +02:00
Lennart Poettering 48fd50f749 update TODO 2019-07-30 08:23:18 +02:00
Lennart Poettering cd2d52d34f
Merge pull request #13216 from poettering/busctl-format-table
port "busctl list" to format-table.h
2019-07-29 20:44:54 +02:00
Lennart Poettering b8011ae2f8
Merge pull request #13217 from poettering/TODO-updates
udev: warn if rules files are executable
2019-07-29 20:44:39 +02:00
Zbigniew Jędrzejewski-Szmek e5369d1a8f shared/install: typo 2019-07-29 20:28:49 +02:00
Lennart Poettering 73697a31d5
Merge pull request #13004 from shinygold/master
cryptsetup: Improve support for keyfiles on removable storage
2019-07-29 19:48:13 +02:00
Lennart Poettering d68d0366dc analyze: clarify that 'exit-status' optionally takes arguments 2019-07-29 19:44:24 +02:00
Lennart Poettering 0f7dfea171
Merge pull request #13201 from yuwata/networkctl-merge-table_add_cell
networkctl cleanups and improvements
2019-07-29 19:32:14 +02:00
Yu Watanabe e2e05a0e4a unit: rename initrd-network-generator.service -> systemd-network-generator.service 2019-07-30 02:30:09 +09:00
Yu Watanabe e8d456fba8 network-generator: rename generated unit files
The tool may be used in the initrd-less systems.
2019-07-30 02:30:09 +09:00
Thiebaud Weksteen 5afb1f275e logind: notify dbus of changes to session State
This adds the option to monitor transitions between the state Opening ->
Active.
2019-07-29 19:28:17 +02:00
Lennart Poettering 29a3d5caea man: remove trailing space in link in HTML output 2019-07-29 19:25:49 +02:00
Lennart Poettering d8e17e7356 analyze: right-align exit status column 2019-07-29 19:22:34 +02:00
Lennart Poettering 5238d9a83a analyze: rename "exit-codes" to "exit-status"
waitid(2) and the libc function signature calls this "exit status", and
uses "exit code" for something different. Let's stick to the same
nomenclature hence.
2019-07-29 19:22:22 +02:00
Lennart Poettering 563067ad26 analyze: always use "int" to display exit status values
That's what it actually is, hence let's use that and cast when the type
is bigger.
2019-07-29 19:14:09 +02:00
Lennart Poettering e04ed6db6b exit-status: rename EXIT_STATUS_GLIBC → EXIT_STATUS_LIBC
After all these two exit codes are defined by ISO C as part of the C
library, and it's not the GNU implementation defines them.
2019-07-29 19:05:25 +02:00
Lennart Poettering 1d7458fbb1
Merge pull request #13207 from keszybz/symbolic-exit-code-names
Symbolic exit code names
2019-07-29 18:58:06 +02:00
Lennart Poettering 9aac172f70 update TODO 2019-07-29 18:51:44 +02:00
Lennart Poettering b7dcc0efdf TODO: drop udev access mode item we just implemented 2019-07-29 18:51:41 +02:00