guix/gnu/build
Giacomo Leidi 337037d22c
accounts: Add /etc/subid and /etc/subgid allocation logic.
This commit adds allocation logic for subid ranges. Subid ranges are
ranges of contiguous subids that are mapped to a user in the host
system. This patch implements a flexible allocation algorithm allowing
users that do not want (or need) to specify details of the subid ranges
that they are requesting to avoid doing so, while upholding requests of
users that need to have specific ranges.

* gnu/build/accounts.scm (%subordinate-id-min): New variable;
(%subordinate-id-max): new variable;
(%subordinate-id-count): new variable;
(subordinate-id?): new variable;
(&subordinate-id-error): new variable;
(&subordinate-id-overflow-error): new variable;
(&illegal-subid-range-error): new variable;
(&specific-subid-range-expected-error): new variable;
(&generic-subid-range-expected-error): new variable;
(within-interval?): new variable;
(allocate-unused-range): new variable;
(allocate-generic-range): new variable;
(allocate-specific-range): new variable;
(reserve-subids): new variable;
(range->entry): new variable;
(entry->range): new variable;
(allocate-subids): new variable;
(subuid+subgid-databases): new variable.

* gnu/system/accounts.scm (subid-range-end): New variable;
(subid-range-has-start?): new variable;
(subid-range-less): new variable.

* test/accounts.scm: Test them.

Change-Id: I8de1fd7cfe508b9c76408064d6f498471da0752d
Co-Authored-By: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Giacomo Leidi <goodoldpaul@autistici.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-18 18:32:40 +01:00
..
accounts.scm accounts: Add /etc/subid and /etc/subgid allocation logic. 2024-12-18 18:32:40 +01:00
activation.scm activation: Create directory with specified perms in ‘mkdir-p/perms’. 2024-11-03 23:10:44 +01:00
bootloader.scm
chromium-extension.scm chromium-extension: Compute json at argument evaluation time. 2023-12-27 17:18:52 +01:00
cross-toolchain.scm gnu: cross-toolchain: Add set-cross-path for AVR. 2023-12-11 13:36:51 +02:00
dbus-service.scm
file-systems.scm bootloader: grub: Remove hardcoded partition number for the Hurd. 2024-11-11 07:28:33 +01:00
hurd-boot.scm hurd-boot: Support second boot. 2024-11-11 07:28:33 +01:00
icecat-extension.scm gnu: ‘make-icecat-extension’ inherits package location. 2023-12-10 21:46:52 +01:00
image.scm image: Add support for btrfs. 2024-10-14 14:08:43 +02:00
install.scm services: activation: Ensure /run existence. 2024-02-19 18:42:12 +01:00
jami-service.scm
linux-boot.scm linux-boot: Don't create /root before it's used. 2023-11-19 01:00:00 +01:00
linux-container.scm
linux-initrd.scm
linux-modules.scm gnu: linux-libre: Enable Zstd compression of kernel modules. 2024-05-29 22:01:23 -04:00
locale.scm
marionette.scm marionette: Add #:peek? to ‘wait-for-tcp-port?’. 2024-02-10 22:59:56 +01:00
secret-service.scm services: secret-service: Make the endpoint configurable. 2024-02-10 22:59:43 +01:00
shepherd.scm shepherd: Remove ‘make-forkexec-constructor/container’. 2023-12-22 00:31:42 +01:00
svg.scm