mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
environment: Create /etc/group in containers.
Reported by Pierre Neidhardt <mail@ambrevar.xyz>. * guix/scripts/environment.scm (launch-environment/container): Create GROUPS and call 'write-group'. * tests/guix-environment-container.sh: Test it.
This commit is contained in:
parent
8a9922bdee
commit
952afb6f8c
2 changed files with 11 additions and 1 deletions
|
@ -469,6 +469,9 @@ (define* (launch-environment/container #:key command bash user user-mappings
|
|||
(directory (if user
|
||||
(string-append "/home/" user)
|
||||
(passwd:dir pwd))))))
|
||||
(groups (list (group-entry (name "users") (gid 0))
|
||||
(group-entry (gid 65534) ;the overflow GID
|
||||
(name "overflow"))))
|
||||
(home-dir (password-entry-directory passwd))
|
||||
;; Bind-mount all requisite store items, user-specified mappings,
|
||||
;; /bin/sh, the current working directory, and possibly networking
|
||||
|
@ -528,6 +531,7 @@ (define* (launch-environment/container #:key command bash user user-mappings
|
|||
;; sharing the host's network namespace.
|
||||
(mkdir-p "/etc")
|
||||
(write-passwd (list passwd))
|
||||
(write-group groups)
|
||||
|
||||
;; For convenience, start in the user's current working
|
||||
;; directory rather than the root directory.
|
||||
|
|
|
@ -46,9 +46,15 @@ fi
|
|||
|
||||
if test "x$USER" = "x"; then USER="`id -un`"; fi
|
||||
|
||||
# Check whether /etc/passwd is valid.
|
||||
# Check whether /etc/passwd and /etc/group are valid.
|
||||
guix environment -C --ad-hoc --bootstrap guile-bootstrap \
|
||||
-- guile -c "(exit (string=? \"$USER\" (passwd:name (getpwuid (getuid)))))"
|
||||
guix environment -C --ad-hoc --bootstrap guile-bootstrap \
|
||||
-- guile -c '(exit (string? (group:name (getgrgid (getgid)))))'
|
||||
guix environment -C --ad-hoc --bootstrap guile-bootstrap \
|
||||
-- guile -c '(use-modules (srfi srfi-1))
|
||||
(exit (every group:name
|
||||
(map getgrgid (vector->list (getgroups)))))'
|
||||
|
||||
# Make sure file-not-found errors in mounts are reported.
|
||||
if guix environment --container --ad-hoc --bootstrap guile-bootstrap \
|
||||
|
|
Loading…
Reference in a new issue