Commit Graph
28337 Commits
Author SHA1 Message Date
Lennart Poettering b9418b053a path-lookup: drop redundant strv_isempty() check
If the strv is empty, then strv_extend_strv_concat() is a NOP anyway,
and hence there is no reason to guard for this explicitly.
2017-02-10 15:17:18 +01:00
Lennart Poettering c49970743e path-lookup: try harder acquiring them $HOME of a user
Let's use get_home_dir() for figuring out the home directory, so that
there's a good chance we succeed figuring out unit locations even if
$HOME isn't set.

Fixes: #5260
2017-02-10 15:16:11 +01:00
Lennart Poettering d0fd66a379 install: never hit assert() when we can't figure out where to write configuration symlinks
Under specific circumstances it might happen that we can't figure out
where to place our symlinks, for example because we are supposed to
create them in the runtime directory but $XDG_RUNTIME_DIR is not set. In
this case, return -ENXIO instead of hitting an assert().

(Yeah, the error isn't very descriptive, but for now this should at
least be good enough to remove the assert() being hit.)
2017-02-10 15:14:18 +01:00
Lennart Poettering 637d6e5b9c install: when disabling units, do so even if the unit is missing
In some cases there might be unit symlinks in .wants/ or .requires/
directories even though the unit is otherwise fully removed. In this
case, don't fail removal, but still remove the symlinks.

This reworks the symlink marking logic to always add unit files that we
are missing to the changes list, but proceed with any symlink removal
for them. This way we'll still generate useful hints that a unit is
missing if you invoke "systemctl disable idontexist.service", but also
still remove any link to it.

Fixes: #4995
2017-02-10 14:36:17 +01:00
Lennart Poettering 807fa5d9a0 dbus: check selinux privilege before returning process list
We protect less interetsing stuff with selinux "status", let's do that
here too.
2017-02-10 11:54:18 +01:00
Lennart Poettering 8367fea557 core: make sure to destroy all name watching bus slots when we are kicked off the bus (#5294)
Fixes: #4528
2017-02-09 21:54:48 -05:00
Martin Pitt d26fdaa236 tests: show journal on systemd-resolved.service failures (#5297)
In networkd-test.py, show resolved's journal on failure, to debug issues
like https://github.com/systemd/systemd/pull/5283.
2017-02-09 21:30:44 -05:00
Lennart Poettering 7961116e2c seccomp: add forgotten munmap() syscall to @file-system (#5291)
We added mmap() and mmap2(), but forgot munmap(). Fix that.

Pointed out by @lucaswerkmeister:

https://github.com/systemd/systemd/pull/4537#issuecomment-273275298
2017-02-09 21:29:33 -05:00
Zbigniew Jędrzejewski-Szmek 1c37a73210 Merge pull request #5293 from poettering/seccomp-docs
Two doc fixes
2017-02-09 21:28:12 -05:00
Evgeny Vereshchagin aac9c8871e Merge pull request #5295 from poettering/shutup-canonicalize
Shut up canonicalize debug log messages
2017-02-10 04:03:59 +03:00
Lennart Poettering fa07c85956 dbus: permit seeing process list of units whose unit files are missing
Previously, we'd refuse the GetUnitProcesses() bus call if the unit file
couldn't be loaded. Which is wrong, as admins should be able to inspect
services whose unit files was deleted. Change this logic, so that we
permit introspecting the processes of any unit that is loaded,
regardless if it has a unit file or not.

(Note that we won't load unit files in GetUnitProcess(), but only
operate on already loaded ones. That's because only loaded units can
have processes — as that's how our GC logic works — and hence loading
the unit just for the process tree is pointless, as it would be empty).

See: #4995
2017-02-09 21:04:22 +01:00
Lennart Poettering 058db92528 dropin: always initialize return parameters on success
Just as a matter of coding style: whenever we return successfully, let's
make sure all our return parameters are properly initialized to
something.
2017-02-09 20:10:03 +01:00
Lennart Poettering a09d3eafac dropin: let's reduce duplicate a bit
After generating the template name we can shortcut things and just call
unit_file_find_dirs() from inside itself, just with the new name and
save a good number of duplicate lines.
2017-02-09 20:08:58 +01:00
Lennart Poettering 96bb2fd8bd dropin: let's prefer strjoina() over strjoin() 2017-02-09 20:08:44 +01:00
Lennart Poettering 09c624878a dropin: downgrade logging about paths we cannot canonicalize
After all, most units won't have drop-in dirs, hence there's no point in
logging about that.

Fixes: #5252
2017-02-09 20:08:24 +01:00
Lennart Poettering 66a5b902ff man: update pam_systemd and systemd-logind man pages a bit
This builds on @utezduyar's #4640, but extends on it.

Fixes: #4550
Replaces: #4640
2017-02-09 18:44:34 +01:00
Lennart Poettering 0b8fab97cf man: improve documentation on seccomp regarding alternative ABIs
Let's clarify that RestrictAddressFamilies= and MemoryDenyWriteExecute=
are only fully effective if non-native system call architectures are
disabled, since they otherwise may be used to circumvent the filters, as
the filters aren't equally effective on all ABIs.

Fixes: #5277
2017-02-09 18:42:17 +01:00
Zbigniew Jędrzejewski-Szmek 9c0f732c62 Introduce '## ' as internal comment prefix in .in files and filter out a comment (#5289)
Sometimes we have comments which don't make sense outside of the systemd
codebase, so let's filter them out from the user-visible files.

Fixes #5286.
2017-02-09 16:28:37 +01:00
Lennart Poettering 12bf233175 resolved: if strict DNSSEC mode is selected never downgrade below DNSSEC server feature level due to packet loss
Fixes: #4315
2017-02-09 16:13:07 +01:00
Lennart Poettering e96de0ce47 resolved: also synthesize records for the full local hostname
Previously, we'd only synthesize RRs for the LLMNR and mDNS versions of
the hostnames (i.e. the first label of the kernel hostname, as well as
the first label of the kernel hostname suffixed with .local). With this
change, we also synthesize an RR for the full hostname, which is
relevant in case it has more than one label.

Fixes: #5041
2017-02-09 16:13:07 +01:00
Lennart Poettering a1077c8447 nss-myhostname: don't fill scopeid for non-link-local addresses
Inspired by #4465, we shouldn't do this for nss-myhostname either.
2017-02-09 16:13:07 +01:00
Lennart Poettering eb08640a44 resolved: when a server response with REFUSED, try a different one
Fixes: #4264
2017-02-09 16:13:07 +01:00
Lennart Poettering 27007efff6 nss-resolve: don't set scopeindex for non-link-local addresses
Apparently some apps don't like that. And given that this isn't
necessary for link-local addresses, let's suppress this information.

Fixes: #4465
2017-02-09 16:13:07 +01:00
Lennart Poettering 28830a6410 resolved: when following a CNAME initialize authenticated bit by the weakest answer
When following a CNAME chain, don't set the authenticated bit, unless
all lookups in the chain could be authenticated.
2017-02-09 16:13:07 +01:00
Lennart Poettering e8d23f92b5 resolved: follow CNAMES for DNS stub replies
Clients expect us to follow CNAMEs for them, hence do so. On the first
iteration start putting together a packet, and then keep adding data we
acquire through CNAMEs to it, until we finally send it off.

Fixes: #3826
2017-02-09 16:13:07 +01:00
Lennart Poettering f9e0eefc7c tree-wide: make bus_map_all_properties return a proper sd_bus_error
And then show it, to make things a bit friendlier to the user if we fail
acquiring some props.

In fact, this fixes a number of actual bugs, where we used an error
structure for output that we actually never got an error in.
2017-02-09 16:13:07 +01:00
Lennart Poettering 4dae8ae6df core: fix minor memory leak 2017-02-09 16:13:07 +01:00
Zbigniew Jędrzejewski-Szmek 1d450bda70 Merge pull request #5287 from poettering/exit-codes
rework WorkingDirectory= and RootDirectory= management for services
2017-02-09 09:42:43 -05:00
Zbigniew Jędrzejewski-Szmek bc7e815445 Merge pull request #5255 from poettering/percent-escape
fstab-generator: Options= applies specifier expansion
2017-02-09 09:18:41 -05:00
Lennart Poettering 376fecf670 execute: set the right exit status for CHDIR vs. CHROOT
Fixes: #5125
2017-02-09 13:18:35 +01:00
Lennart Poettering 3b0e5bb524 execute: use prefix_roota() where appropriate 2017-02-09 13:18:35 +01:00
Lennart Poettering 6732edab4e execute: set working directory to /root if User= is not set, but WorkingDirectory=~ is
Or actually, try to to do the right thing depending on what is
available:

- If we know $HOME from User=, then use that.
- If the UID for the service is 0, hardcode that WorkingDirectory=~ means WorkingDirectory=/root
- In any other case (which will be the unprivileged --user case), use
  get_home_dir() to find the $HOME of the user we are running as.
- Otherwise fail.

Fixes: #5246 #5124
2017-02-09 13:17:58 +01:00
Lennart Poettering 23deef88b9 Revert "core/execute: set HOME, USER also for root users"
This reverts commit 8b89628a10.

This broke #5246
2017-02-09 11:43:44 +01:00
27o 6f844e3a3f networkd: add multicast membership to lldp socket (#5282) 2017-02-09 10:36:13 +01:00
27o 28c78e07aa dhcp-server: always save the ACKed lease address (#5281) 2017-02-09 10:15:21 +01:00
Martin Pitt 4997dd91fb Merge pull request #5279 from keszybz/man-reverts
A revert and some other tweaks for the man pages
2017-02-09 08:35:28 +01:00
Zbigniew Jędrzejewski-Szmek fc6149a6ce Merge pull request #4962 from poettering/root-directory-2
Add new MountAPIVFS= boolean unit file setting + RootImage=
2017-02-08 23:05:05 -05:00
Zbigniew Jędrzejewski-Szmek ef3116b5d4 man: add more commas for clarify and reword a few sentences 2017-02-08 22:53:16 -05:00
Zbigniew Jędrzejewski-Szmek 88e328fd33 man: revert documentation about RequiresMountsFor= honoring noauto
This effectively reverts commit 5d2abc04fc:
Author: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Date:   Wed Apr 16 22:15:42 2014 -0400

    man: document relationship between RequiresMountsFor and noauto

    https://bugzilla.redhat.com/show_bug.cgi?id=1088057

Fixes #5249.
2017-02-08 20:23:12 -05:00
Zbigniew Jędrzejewski-Szmek 3797fd0a22 man: break long lines and update Fedora versions
We should try to keep the unbreakable lines below 80 columns.
It's not always possible of course.

Also, use the dl.fp.o alias instead of a specific mirror.
2017-02-08 20:22:50 -05:00
Evgeny Vereshchagin 52a4aafb4d Merge pull request #5270 from poettering/seccomp-namespace-fix
swap seccomp filter params on s390
2017-02-09 03:31:22 +03:00
David Glasser 2026e39b2d man: fix docs for swap's DefaultDependencies= (#5278)
There was a missing dependency and one with the wrong type. Additionally, refer
to DefaultDependencies= once instead of twice, without a vague reference in the
first one that doesn't mention that the value matters.

Fixes #5226.
2017-02-09 00:12:36 +01:00
Lennart Poettering b8076e3d06 update TODO 2017-02-08 22:21:27 +01:00
Lennart Poettering ae9d60ce4e seccomp: on s390 the clone() parameters are reversed
Add a bit of code that tries to get the right parameter order in place
for some of the better known architectures, and skips
restrict_namespaces for other archs.

This also bypasses the test on archs where we don't know the right
order.

In this case I didn't bother with testing the case where no filter is
applied, since that is hopefully just an issue for now, as there's
nothing stopping us from supporting more archs, we just need to know
which order is right.

Fixes: #5241
2017-02-08 22:21:27 +01:00
Jan Synacek 6bc30691b1 systemctl: make sure that --now is carried out (#5209)
When services are already enabled/disabled/masked, make sure
that --now still enforces start/stop.
2017-02-08 20:57:08 +01:00
Franck Bui 4470860388 sd-event: "when exiting no signal event are pending" is a wrong assertion (#5271)
The code make the following assertion: when freeing a event loop object
(usually it's done after exiting from the main event loop), no signal events
are still queued and are pending.

This assertion can be found in event_unmask_signal_data() with
"assert(!d->current);" assertion.

It appears that this assertion can be wrong at least in a specific case
described below.

Consider the following example which is inspired from udev: a process defines 3
source events: 2 are created by sd_event_add_signal() and 1 is created by
sd_event_add_post().

 1. the process receives the 2 signals consecutively so that signal 'A' source
     event is queued and pending. Consequently the post source event is also
     queued and pending. This is done by sd_event_wait().

 2. The callback for signal 'A' is called by sd_event_dispatch().

 3. The next call to sd_event_wait() will queue signal 'B' source event.

 4. The callback for the post source event is called and calls sd_event_exit().

 5. the event loop is exited.

 6. freeing the event loop object will lead to the assertion failure in
     event_unmask_signal_data().

This patch simply removes this assertion as it doesn't seem to be a
bug if the signal data still reference a signal source at this point.
2017-02-08 20:56:22 +01:00
Peter Körner bd9bb4ca61 sysctl.d: replace URL of SysRq key documentation (#5274)
The kernel documentation page is not distribution specific and also more
likely to be up to date than the Fedora wiki page referenced previously.
2017-02-08 19:42:43 +01:00
Lennart Poettering 19d0833bea fstab-generator: also convert % → %% for What=
Same reasons as the previous patch.
2017-02-08 17:20:35 +01:00
Lennart Poettering d5cc4be28f fstab-generator: Options= applies specifier expansion
Let's document that this is the case, and properly escape % when we
generate Options= in the generator.

Fixes: #5086
2017-02-08 17:20:35 +01:00
Philip Withnall b53ede699c nspawn: Add support for sysroot pivoting (#5258)
Add a new --pivot-root argument to systemd-nspawn, which specifies a
directory to pivot to / inside the container; while the original / is
pivoted to another specified directory (if provided). This adds
support for booting container images which may contain several bootable
sysroots, as is common with OSTree disk images. When these disk images
are booted on real hardware, ostree-prepare-root is run in conjunction
with sysroot.mount in the initramfs to achieve the same results.
2017-02-08 16:54:31 +01:00