aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/shadow.scm
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2024-01-22 20:50:24 +0100
committerW. Kosior <koszko@koszko.org>2024-05-03 14:46:53 +0200
commit8018438b714e7dbc2504d1e00aa4e295649b4001 (patch)
tree94b10a19c455a2f43b2ac3fe5e60577948e6bd2a /gnu/system/shadow.scm
parent22c3292865eea276546f46dee8c9bb2e07f30980 (diff)
downloadguix-8018438b714e7dbc2504d1e00aa4e295649b4001.tar.gz
guix-8018438b714e7dbc2504d1e00aa4e295649b4001.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/shadow.scm')
-rw-r--r--gnu/system/shadow.scm13
1 files changed, 9 insertions, 4 deletions
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index d9f13271d8..699331e911 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -61,7 +61,12 @@
user-group-name
user-group-password
user-group-id
- user-group-system?)
+ user-group-system?
+
+ user-extra-groups
+ user-extra-groups?
+ user-extra-groups-user
+ user-extra-groups-groups)
#:export (%default-bashrc
%default-bash-profile
@@ -493,10 +498,10 @@ the /etc/skel directory for those."
(define account-service-type
(service-type (name 'account)
- ;; Concatenate <user-account>, <user-group>, and skeleton
- ;; lists.
+ ;; Concatenate <user-account>, <user-group>,
+ ;; <user-extra-groups> and skeleton lists.
+ (extend (compose merge-extra-groups-data append))
(compose concatenate)
- (extend append)
(extensions
(list (service-extension activation-service-type