aboutsummaryrefslogtreecommitdiff
path: root/gnu/system.scm
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2024-01-22 20:50:24 +0100
committerW. Kosior <koszko@koszko.org>2024-12-24 09:35:58 +0100
commitbefd383d5678b7b00453838c60a580e39d464dc0 (patch)
tree22dc1ad79a29fb1b2a8c8ac12e3ed1f64a0ed67f /gnu/system.scm
parenta84ff817b61278b328a3cc3eea71fc0797cb6c12 (diff)
downloadguix-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.scm9
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 '())