NetworkManager/src/libnm-core-impl
Christian Krause 0d0b03e7d3 libnm: use correct directory permissions in nm_utils_copy_cert_as_user
This patch fixes https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/work_items/1957.

At the moment, libnm creates the temporary certificate directory
with permission 0600.

Some NM plugins drop most of their capabilities (including CAP_DAC_OVERRIDE)
on startup and so, even when running as root, they can't create files
in that directory (since the execute permission is missing).

This patch sets the permission to 0700 to fix the problem.

Fixes: 1a52bbe7c9 ('libnm: add function to copy a certificate or key as user')
2026-06-09 15:41:48 +00:00
..
tests libnm/tests: fix dead code in WireGuard roundtrip test 2026-04-14 12:54:12 +02:00
gen-metadata-nm-settings-libnm-core.c libnm/trivial: fix style 2022-11-10 14:41:38 +01:00
gen-metadata-nm-settings-libnm-core.xml.in geneve: add connection profile settings 2026-02-17 15:21:03 -05:00
meson.build geneve: add connection profile settings 2026-02-17 15:21:03 -05:00
nm-connection-private.h connection: Support connection.ip-ping-addresses 2024-11-05 14:04:26 -05:00
nm-connection.c geneve: added GENEVE device support 2026-02-17 15:21:03 -05:00
nm-default-libnm-core.h libnm: move nm-errors.h include away from nm-connection.h 2022-11-13 23:36:37 +01:00
nm-errors.c libnm: don't depend nm-crypto on "nm-error.h" 2022-03-29 11:56:03 +02:00
nm-keyfile-utils.c libnm-glib-aux: move nm_keyfile_add_group() 2025-02-04 10:44:48 +01:00
nm-keyfile.c dns: don't break existing configs with wrong separators in dns-search 2025-08-26 08:59:37 +00:00
nm-meta-setting-base-impl.c geneve: add connection profile settings 2026-02-17 15:21:03 -05:00
nm-setting-6lowpan.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-8021x.c core,libnm-core: introduce property flag for certificate and keys 2025-12-12 12:38:50 +01:00
nm-setting-adsl.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-bluetooth.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-bond-port.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-bond.c The valid range of arp_missed_max according to the kernel is 1-255, 2026-04-14 10:20:27 +05:30
nm-setting-bridge-port.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-bridge.c core, impl: drop const qualifier from split outputs 2025-12-04 11:51:28 +00:00
nm-setting-cdma.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-connection.c man: wifi: Document connection.auth-retry for WPA connections 2026-01-28 15:46:32 +01:00
nm-setting-dcb.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-dummy.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-ethtool.c ethtool: support Forward Error Correction(fec) 2024-11-07 17:38:04 +08:00
nm-setting-generic.c libnm: add generic.device-handler property 2024-02-21 11:16:01 +01:00
nm-setting-geneve.c geneve: add connection profile settings 2026-02-17 15:21:03 -05:00
nm-setting-gsm.c add gsm device-uid setting to restrict the devices the connection applies to 2025-10-03 11:02:21 +00:00
nm-setting-hostname.c libnm: actually export a lot of routines that were supposed to be public 2022-11-08 11:43:00 +01:00
nm-setting-hsr.c libnm: introduce hsr.interlink property 2025-10-08 22:52:03 +02:00
nm-setting-infiniband.c libnm-core: fix p-key validation for Infiniband connections 2025-07-10 09:12:04 +02:00
nm-setting-ip-config.c libnm: fix wrong variable in route attribute validation error message 2026-04-14 12:54:12 +02:00
nm-setting-ip-tunnel.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-ip4-config.c libnm/docs: fix typo in man nm-settings-nmcli 2026-04-08 10:19:23 +00:00
nm-setting-ip6-config.c ip: configurable address pool and lease time of DHCP server in shared mode 2024-12-11 09:20:15 +01:00
nm-setting-ipvlan.c libnm-core: validate the ipvlan mode 2025-07-10 09:12:05 +02:00
nm-setting-link.c all: add "link" setting 2023-03-02 16:51:16 +01:00
nm-setting-loopback.c libnm: use nm_setting_connection_get_controller() where possible 2024-03-12 09:54:31 +01:00
nm-setting-macsec.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-macvlan.c libnm: macvlan: specify that promiscuous affects to the parent 2025-03-24 15:16:04 +01:00
nm-setting-match.c libnm-core: fix documentation for NMSettingMatch functions 2025-07-10 09:12:04 +02:00
nm-setting-olpc-mesh.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-ovs-bridge.c src: drop most master references from the code 2024-08-09 15:47:32 +02:00
nm-setting-ovs-dpdk.c ovs: introduce new "ovs-dpdk.lsc-interrupt" property 2025-04-02 11:13:31 +02:00
nm-setting-ovs-external-ids.c typo fix: allow to -> allow one to 2025-03-26 19:22:56 +01:00
nm-setting-ovs-interface.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-ovs-other-config.c Rephrase certain expressions to avoid the usage of the term "allows to" 2025-03-27 09:44:07 +01:00
nm-setting-ovs-patch.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-ovs-port.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-ppp.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-pppoe.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-prefix-delegation.c libnm, nmcli: introduce new "prefix-delegation" setting 2025-04-02 11:21:59 +02:00
nm-setting-private.h core,libnm-core: introduce property flag for certificate and keys 2025-12-12 12:38:50 +01:00
nm-setting-proxy.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-serial.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-setting-sriov.c libnm: change "sriov.preserve-on-down" symbols version to 1.54 2025-06-27 14:11:47 +02:00
nm-setting-tc-config.c libnm: add "description:" for overrides with doctext 2023-05-19 12:51:59 +02:00
nm-setting-team-port.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-team.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nm-setting-tun.c libnm-core,core: accept uid/gid up to (2^32 - 2) for tun devices 2025-07-10 09:12:00 +02:00
nm-setting-user.c typo fix: allow to -> allow one to 2025-03-26 19:22:56 +01:00
nm-setting-veth.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-vlan.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-setting-vpn.c vpn: handle hint tags in the daemon 2024-06-18 14:00:38 +00:00
nm-setting-vrf.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-setting-vxlan.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-wifi-p2p.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-wimax.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-wired.c typo fix: allows to -> allows one to 2025-03-26 19:22:01 +01:00
nm-setting-wireguard.c libnm-core: honor secrets flags when serializing WireGuard peers to D-Bus 2025-09-09 16:56:26 +02:00
nm-setting-wireless-security.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting-wireless.c wifi: add support for new "6GHz" band 2026-01-15 17:38:40 +01:00
nm-setting-wpan.c libnm: add direct_string_allow_empty meta data for NMSetting property 2024-01-23 09:43:26 +01:00
nm-setting.c core,libnm-core: introduce property flag for certificate and keys 2025-12-12 12:38:50 +01:00
nm-simple-connection.c libnm: embed private structure in NMSetting and avoid g_type_class_add_private() 2023-10-31 11:29:37 +01:00
nm-team-utils.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-team-utils.h src: drop most master references from the code 2024-08-09 15:47:32 +02:00
nm-utils-private.h format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-utils.c libnm: use correct directory permissions in nm_utils_copy_cert_as_user 2026-06-09 15:41:48 +00:00
nm-vpn-editor-plugin.c libnm/vpn-editor-plugin: add a comment on a design blunder 2024-10-05 23:06:58 +02:00
nm-vpn-plugin-info.c vpn: add nm_vpn_plugin_info_supports_safe_private_file_access() 2025-12-12 12:41:28 +01:00
README.md build: move "libnm-core/" to "src/" and split it 2021-02-18 19:46:51 +01:00

libnm-core-impl

NetworkManager provides a client library libnm. NetworkManager core does not (dynamically) link against all of libnm. Instead, it statically links against a part of it. That part is the static helper library libnm-core-impl.

libnm-core-impl implements (and provides) the API from libnm-core-public, which is part of the public API of libnm. In this form, libnm-core-impl is part of the implementation of libnm. It also implements (and provides) an internal API libnm-core-intern which can only be used by those who link statically against libnm-core-impl.

Only NetworkManager core and libnm are allowed to statically link with libnm-core-impl. Consequently, only those are allowed to include libnm-core-intern.

This directory should not be added to the include search path of other components as they are only allowed to include libnm-core-public and libnm-core-intern.