systemd/network
Lennart Poettering 8aee931e7a nsresourced: add new daemon for granting clients user namespaces and assigning resources to them
This adds a small, socket-activated Varlink daemon that can delegate UID
ranges for user namespaces to clients asking for it.

The primary call is AllocateUserRange() where the user passes in an
uninitialized userns fd, which is then set up.

There are other calls that allow assigning a mount fd to a userns
allocated that way, to set up permissions for a cgroup subtree, and to
allocate a veth for such a user namespace.

Since the UID assignments are supposed to be transitive, i.e. not
permanent, care is taken to ensure that users cannot create inodes owned
by these UIDs, so that persistancy cannot be acquired. This is
implemented via a BPF-LSM module that ensures that any member of a
userns allocated that way cannot create files unless the mount it
operates on is owned by the userns itself, or is explicitly
allowelisted.

BPF LSM program with contributions from Alexei Starovoitov.
2024-04-06 16:08:24 +02:00
..
80-6rd-tunnel.link network: fix 6rd tunnel link section name 2024-01-12 21:42:04 +00:00
80-6rd-tunnel.network network: take explicit ownership of our own interfaces 2024-01-10 19:56:43 +00:00
80-auto-link-local.network.example network: disable IPv6AcceptRA= in several default config 2023-11-03 11:41:52 +09:00
80-container-host0.network network: use Kind= instead of Driver= 2023-11-08 22:59:57 +09:00
80-container-vb.link network: fix Name= -> OriginalName= in the default .link files 2024-01-11 12:20:10 +00:00
80-container-vb.network network: take explicit ownership of our own interfaces 2024-01-10 19:56:43 +00:00
80-container-ve.link network: fix Name= -> OriginalName= in the default .link files 2024-01-11 12:20:10 +00:00
80-container-ve.network network: take explicit ownership of our own interfaces 2024-01-10 19:56:43 +00:00
80-container-vz.link network: fix Name= -> OriginalName= in the default .link files 2024-01-11 12:20:10 +00:00
80-container-vz.network network: use Kind= instead of Driver= 2023-11-08 22:59:57 +09:00
80-namespace-ns.network nsresourced: add new daemon for granting clients user namespaces and assigning resources to them 2024-04-06 16:08:24 +02:00
80-vm-vt.link network: fix Name= -> OriginalName= in the default .link files 2024-01-11 12:20:10 +00:00
80-vm-vt.network network: use Kind= instead of Driver= 2023-11-08 22:59:57 +09:00
80-wifi-adhoc.network network: disable IPv6AcceptRA= in several default config 2023-11-03 11:41:52 +09:00
80-wifi-ap.network.example network: disable IPv6AcceptRA= in several default config 2023-11-03 11:41:52 +09:00
80-wifi-station.network.example network: change license of examples to MIT-0 2022-10-26 08:39:34 +02:00
89-ethernet.network.example network: make 89-ethernet.network match only physical interfaces 2023-11-08 23:11:45 +09:00
99-default.link network: change license of examples to MIT-0 2022-10-26 08:39:34 +02:00
meson.build nsresourced: add new daemon for granting clients user namespaces and assigning resources to them 2024-04-06 16:08:24 +02:00