Go to file
Zbigniew Jędrzejewski-Szmek d16a1c1bb6 sysusers: allow admin/runtime overrides to command-line config
When used in a package installation script, we want to invoke systemd-sysusers
before that package is installed (so it can contain files owned by the newly
created user), so the configuration to use is specified on the command
line. This should be a copy of the configuration that will be installed as
/usr/lib/sysusers.d/package.conf. We still want to obey any overrides in
/etc/sysusers.d or /run/sysusers.d in the usual fashion. Otherwise, we'd get a
different result when systemd-sysusers is run with a copy of the new config on
the command line and when systemd-sysusers is run at boot after package
instalation. In the second case any files in /etc or /run have higher priority,
so the same should happen when the configuration is given on the command line.
More generally, we want the behaviour in this special case to be as close to
the case where the file is finally on disk as possible, so we have to read all
configuration files, since they all might contain overrides and additional
configuration that matters. Even files that have lower priority might specify
additional groups for the user we are creating. Thus, we need to read all
configuration, but insert our new configuration somewhere with the right
priority.

If --target=/path/to/file.conf is given on the command line, we gather the list
of files, and pretend that the command-line config is read from
/path/to/file.conf (doesn't matter if the file on disk actually exists or
not). All package scripts should use this option to obtain consistent and
idempotent behaviour.

The corner case when --target= is specified and there are no positional
arguments is disallowed.

v1:
- version with --config-name=
v2:
- disallow --config-name= and no positional args
v3:
- remove --config-name=
v4:
- add --target= and rework the code completely
v5:
- fix argcounting bug and add example in man page
v6:
- rename --target to --replace
2018-02-02 10:40:22 +01:00
.github Docs: Fix spelling and capitalization (#7408) 2017-11-21 14:37:16 +01:00
.mkosi mkosi: use libidn2 on Arch (#7751) 2017-12-30 12:23:24 +01:00
catalog catalog: update french translation 2017-12-22 15:34:51 +01:00
coccinelle coccinelle: O_NDELAY → O_NONBLOCK 2018-01-24 11:09:29 +01:00
docs Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
factory/etc factory: remove broken pam_limits 2014-07-30 15:21:54 +02:00
hwdb hwdb: Fix bouncing brightness keys on MSI-PR200 2018-01-28 10:46:40 +01:00
man sysusers: allow admin/runtime overrides to command-line config 2018-02-02 10:40:22 +01:00
modprobe.d Add SPDX license headers to various assorted files 2017-11-19 19:08:15 +01:00
network Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
po l10n: update Czech Translation (#8007) 2018-01-26 12:51:21 +09:00
presets Hook up systemd-tmpfiles as user units 2017-12-06 10:19:35 +01:00
rules rules: Mark the kvm device as static_node (for s390x and ppc64) (#7795) 2018-01-08 10:49:15 +01:00
scripts fuzz: add DHCP server fuzzer 2018-01-19 21:48:14 -05:00
shell-completion Slightly improve performance of startable/restartable unit completion (#7839) 2018-01-28 13:29:58 +01:00
src sysusers: allow admin/runtime overrides to command-line config 2018-02-02 10:40:22 +01:00
sysctl.d Do not set net.ipv4.conf.default.* 2017-12-05 16:34:59 +02:00
sysusers.d sysusers: use NOBODY_USER_NAME 2017-12-07 17:12:13 +09:00
test sysusers: allow force reusing existing user/group IDs (#8037) 2018-02-01 13:47:50 +09:00
tmpfiles.d Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
tools [gdb-sd_dump_hashmaps.py] String Formatting Update (#7819) 2018-01-27 14:03:08 +01:00
travis-ci Integration of Travis CI and Coverity Scan Analysis (#7691) 2018-01-11 11:41:35 +01:00
units resolved.service: set DefaultDependencies=no 2018-01-11 12:40:44 +01:00
xorg login: avoid external process call 2018-01-12 18:02:57 +01:00
.dir-locals.el meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
.editorconfig editorconfig: add rule for meson.build files (#6671) 2017-08-28 16:37:23 +02:00
.gitattributes git: indicate that tabs are never OK in the systemd tree 2013-10-30 02:25:38 +01:00
.gitignore Add mkosi.output/ to .gitignore 2017-11-29 14:33:56 +01:00
.mailmap NEWS: start putting together an entry for v237 2018-01-25 13:21:00 +01:00
.travis.yml Integration of Travis CI and Coverity Scan Analysis (#7691) 2018-01-11 11:41:35 +01:00
.vimrc vimrc: fix indentation logic for our docbook xml files 2016-04-29 12:23:34 +02:00
.ycm_extra_conf.py ycm: add doc string for all the functions in configuration file 2017-11-29 13:21:49 -07:00
CODING_STYLE CODING_STYLE: provide better explanation why /* */ over // (#7647) 2017-12-15 10:26:07 +01:00
configure build-sys: add basic support for ./configure && make && make install 2017-07-18 10:05:06 -04:00
DISTRO_PORTING DISTRO_PORTING: document that distros may/should change fallback DNS as well as fallback NTP if they wish 2017-07-24 11:49:16 +02:00
ENVIRONMENT.md systemctl,verbs: Introduce SYSTEMD_OFFLINE environment variable 2017-12-14 16:00:16 -05:00
HACKING Merge pull request #7933 from keszybz/fuzz-regression 2018-01-27 12:56:42 +03:00
LICENSE.GPL2 relicense to LGPLv2.1 (with exceptions) 2012-04-12 00:24:39 +02:00
LICENSE.LGPL2.1 licence: remove references to old FSF address 2012-12-17 11:41:31 +01:00
Makefile build-sys: Fix Makefile wrapper for install target (#6548) 2017-08-07 11:29:20 +02:00
meson_options.txt meson.build: make docdir configurable (#8068) 2018-02-02 06:46:15 +09:00
meson.build meson.build: make docdir configurable (#8068) 2018-02-02 06:46:15 +09:00
mkosi.build separate flags from shebang 2017-12-25 19:48:49 +01:00
mkosi.default mkosi: create .mkosi directory 2016-10-06 11:53:58 -04:00
NEWS NEWS: add missing equal sign 2018-01-28 16:54:18 +01:00
README README: fix context for CONFIG_DEVPTS_MULTIPLE_INSTANCES 2018-01-17 18:04:27 +00:00
README.md README.md: add CII Best Practices badge 2017-11-04 21:15:57 +01:00
TODO update TODO 2018-01-31 19:54:25 +01:00
TRANSIENT-SETTINGS.md doc: update TRANSIENT-SETTINGS.md 2018-01-03 02:32:54 +09:00
UIDS-GIDS.md UIDS-GIDS.md: explicitly mention one more user of the overflowuid 2018-01-23 21:20:09 +01:00

systemd - System and Service Manager

Count of open issues over time Count of open pull requests over time Build Status
Coverity Scan Status
CII Best Practices

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements are provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the HACKING file for information how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.