environment: Do not attempt to map GID 0 when invoked as root. * guix/scripts/environment.scm (launch-environment/container): Set ‘gid’ to 1000 when ‘getgid’ returns zero. Fixes: guix/guix#4234 Reported-by: Maxim Cournoyer <maxim@guixotic.coop> Change-Id: I781f2939dfd3cda23373d2fa03e288995bce9eb9
1 files changed, 7 insertions(+), 1 deletions(-) M guix/scripts/environment.scm
M guix/scripts/environment.scm => guix/scripts/environment.scm +7 -1
@@ 828,7 828,13 @@ WHILE-LIST." (let* ((cwd (getcwd)) (home (getenv "HOME")) (uid (if user 1000 (getuid))) (gid (if user 1000 (getgid))) (gid (if user 1000 ;; When running as root, always map a non-zero GID ;; or writing to 'gid_map' would fail with EPERM. (match (getgid) (0 1000) (gid gid)))) ;; On a foreign distro, the name service switch might be ;; dysfunctional and 'getpwuid' throws. Don't let that hamper