nspawn: don't muck with caps if no network setting is used in settings file

Our goal here (as in the previous commits) is to ensure that a settings
file loaded in --settings=override mode is truly a NOP. Previously this
was not the case as we'd drop CAP_NET_ADMIN from the caps if the
settings file didn't enable networking.

With this change we'll drop it only if explicitly turned off in the
settings file, and otherwise let the built-in defaults and cmdline
params reign supreme as documented.

Fixes: #20055
This commit is contained in:
Lennart Poettering
2021-11-09 18:32:30 +01:00
parent 2d09ea44fc
commit 9baa294c12
+2 -1
View File
@@ -4337,7 +4337,8 @@ static int merge_settings(Settings *settings, const char *path) {
plus = settings->capability;
minus = settings->drop_capability;
if ((arg_settings_mask & SETTING_NETWORK) == 0) {
if ((arg_settings_mask & SETTING_NETWORK) == 0 &&
settings_network_configured(settings)) {
if (settings_private_network(settings))
plus |= UINT64_C(1) << CAP_NET_ADMIN;
else