diff options
author | Wojtek Kosior <koszko@koszko.org> | 2024-01-22 20:50:24 +0100 |
---|---|---|
committer | W. Kosior <koszko@koszko.org> | 2024-12-24 09:35:58 +0100 |
commit | befd383d5678b7b00453838c60a580e39d464dc0 (patch) | |
tree | 22dc1ad79a29fb1b2a8c8ac12e3ed1f64a0ed67f /gnu/system.scm | |
parent | a84ff817b61278b328a3cc3eea71fc0797cb6c12 (diff) | |
download | guix-befd383d5678b7b00453838c60a580e39d464dc0.tar.gz guix-befd383d5678b7b00453838c60a580e39d464dc0.zip |
system: Allow adding elsewhere-defined system users to extra groups.
* gnu/system.scm (define-module): Export `operating-system-extra-groups`.
(<operating-system>)[extra-groups]: New field.
(operating-system-default-essential-services): Also pass extra groups to
account-service.
(hurd-default-essential-services): Same here.
* gnu/system/accounts.scm (define-module): Use (ice-9 vlist), (srfi srfi-8)
and (srfi srfi-26). Export `user-extra-groups`* and `merge-extra-groups-data`.
(<user-extra-groups>): New record type.
(user-account-extend): New procedure.
(merge-extra-groups-data): New procedure.
* gnu/system/shadow.scm (define-module): Re-export `user-extra-groups`*.
(account-service-type)[extend]: Handle <user-extra-groups> records, move field
intializer upward to be able to use `compose`.
Change-Id: I3f489ac794d342267b7627db1d28315ea4b69db2
Diffstat (limited to 'gnu/system.scm')
-rw-r--r-- | gnu/system.scm | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gnu/system.scm b/gnu/system.scm index dfcb8fb279..c8d44c9771 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -112,6 +112,7 @@ operating-system-initrd operating-system-users operating-system-groups + operating-system-extra-groups operating-system-issue operating-system-timezone operating-system-locale @@ -273,6 +274,8 @@ VERSION is the target version of the boot-parameters record." (default %base-user-accounts)) (groups operating-system-groups ; list of user groups (default %base-groups)) + (extra-groups operating-system-extra-groups ; list of extra membership + (default '())) (skeletons operating-system-skeletons ; list of name/file-like value (default (default-skeletons))) @@ -815,7 +818,8 @@ bookkeeping." (append (operating-system-privileged-programs os) (operating-system-setuid-programs os))) (account-service (append (operating-system-accounts os) - (operating-system-groups os)) + (operating-system-groups os) + (operating-system-extra-groups os)) (operating-system-skeletons os)) (operating-system-etc-service os) ;; XXX: hosts-file is deprecated @@ -858,7 +862,8 @@ bookkeeping." (append (operating-system-privileged-programs os) (operating-system-setuid-programs os))) (account-service (append (operating-system-accounts os) - (operating-system-groups os)) + (operating-system-groups os) + (operating-system-extra-groups os)) (operating-system-skeletons os)) (root-file-system-service) (service file-system-service-type '()) |