summaryrefslogtreecommitdiff
path: root/gnu/system/linux-container.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-03-13 22:09:26 +0100
committerLudovic Courtès <ludo@gnu.org>2022-03-19 18:26:00 +0100
commitcff9fee82a06f58b10a5b3a7743295c53f7988b8 (patch)
treecd2728607015997185efd82f55785ee1dd3633e3 /gnu/system/linux-container.scm
parentc77544b387882450599b5f7e2712abdadaa074e9 (diff)
linux-container: Add #:guest-uid and #:guest-gid to 'eval/container'.
* gnu/system/linux-container.scm (eval/container): Add #:guest-uid and #:guest-gid and honor them.
Diffstat (limited to 'gnu/system/linux-container.scm')
-rw-r--r--gnu/system/linux-container.scm14
1 files changed, 9 insertions, 5 deletions
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 415d6b9775..eeb0f68c02 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2017, 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Google LLC
@@ -248,11 +248,13 @@ that will be shared with the host system."
(define* (eval/container exp
#:key
(mappings '())
- (namespaces %namespaces))
+ (namespaces %namespaces)
+ (guest-uid 0) (guest-gid 0))
"Evaluate EXP, a gexp, in a new process executing in separate namespaces as
listed in NAMESPACES. Add MAPPINGS, a list of <file-system-mapping>, to the
-set of directories visible in the process's mount namespace. Return the
-process' exit status as a monadic value.
+set of directories visible in the process's mount namespace. Inside the
+namespaces, run code as GUEST-UID and GUEST-GID. Return the process' exit
+status as a monadic value.
This is useful to implement processes that, unlike derivations, are not
entirely pure and need to access the outside world or to perform side
@@ -292,4 +294,6 @@ effects."
(list "-c"
(object->string
(lowered-gexp-sexp lowered))))))
- #:namespaces namespaces))))))
+ #:namespaces namespaces
+ #:guest-uid guest-uid
+ #:guest-gid guest-gid))))))