diff options
author | Jelle Licht <jlicht@fsfe.org> | 2020-09-29 23:25:13 +0200 |
---|---|---|
committer | Jelle Licht <jlicht@fsfe.org> | 2020-10-01 12:51:13 +0200 |
commit | e74818353882f187e5971b5a3a481f17df883dbe (patch) | |
tree | e6d808c3662488a0f9e80eb9b9361324b8bf9f10 | |
parent | 7dc19c33fc71e17a1d7ddd4563aa6ffd73d1a2cf (diff) | |
download | guix-e74818353882f187e5971b5a3a481f17df883dbe.tar guix-e74818353882f187e5971b5a3a481f17df883dbe.tar.gz |
linux-container: Reset jailed root permissions.
* gnu/build/linux-container.scm (mount-file-systems): Add 'chmod' call.
* tests/containers.scm
("call-with-container, mnt namespace, root permissions"): New test.
-rw-r--r-- | gnu/build/linux-container.scm | 3 | ||||
-rw-r--r-- | tests/containers.scm | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index 2d4de788df..4a8bed5a9a 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -170,7 +170,8 @@ for the process." (pivot-root root put-old) (chdir "/") (umount "real-root" MNT_DETACH) - (rmdir "real-root"))) + (rmdir "real-root") + (chmod "/" #o755))) (define* (initialize-user-namespace pid host-uids #:key (guest-uid 0) (guest-gid 0)) diff --git a/tests/containers.scm b/tests/containers.scm index 7b63e5c108..608902c41a 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -134,6 +134,14 @@ (primitive-exit 0))))) (skip-if-unsupported) +(test-assert "call-with-container, mnt namespace, root permissions" + (zero? + (call-with-container '() + (lambda () + (assert-exit (= #o755 (stat:perms (lstat "/"))))) + #:namespaces '(user mnt)))) + +(skip-if-unsupported) (test-assert "container-excursion" (call-with-temporary-directory (lambda (root) |