aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2024-09-25 16:30:09 +0200
committerLudovic Courtès <ludo@gnu.org>2024-09-25 17:53:53 +0200
commitf92151133da4b98f98e755ce0996e8be59acac72 (patch)
treef278ff6a4cf4c749b8a9d2aa01131d5d2e42af43 /gnu
parenta1dc5ac832a106d46450961e78e7db3f83bf2bff (diff)
downloadguix-f92151133da4b98f98e755ce0996e8be59acac72.tar
guix-f92151133da4b98f98e755ce0996e8be59acac72.tar.gz
services: cleanup: Reintroduce explicit ‘chmod’ calls.
This reverts commit e74d05db53fdf02956ccee0950896c6ca9f10573. * gnu/services.scm (cleanup-gexp): Introduce explicit ‘chmod’ calls after ‘mkdir’ calls. * gnu/tests/base.scm (run-basic-test)[test]("permissions on /tmp"): New test. Reported-by: Hilton Chain <hako@ultrarare.space> Change-Id: I1e14dbe52eac526d2ed4ec1dd9c6fd9036f96a63
Diffstat (limited to 'gnu')
-rw-r--r--gnu/services.scm7
-rw-r--r--gnu/tests/base.scm4
2 files changed, 10 insertions, 1 deletions
diff --git a/gnu/services.scm b/gnu/services.scm
index 9b7f2641b7..8a4002e072 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -665,9 +665,14 @@ information is missing, return the empty list (for channels) and possibly
(delete-file-recursively "/var/run")
(delete-file-recursively "/run")
+ ;; Note: The second argument to 'mkdir' is and'ed with umask,
+ ;; hence the 'chmod' calls.
(mkdir "/tmp" #o1777)
+ (chmod "/tmp" #o1777)
(mkdir "/var/run" #o755)
- (mkdir "/run" #o755))))))
+ (chmod "/var/run" #o755)
+ (mkdir "/run" #o755)
+ (chmod "/var/run" #o755))))))
(define cleanup-service-type
;; Service that cleans things up in /tmp and similar.
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 715b9036f9..e1a676ecd4 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -296,6 +296,10 @@ info --version")
(operating-system-user-accounts os))))
(stat:perms (marionette-eval `(stat ,root-home) marionette))))
+ (test-equal "permissions on /tmp"
+ #o1777
+ (stat:perms (marionette-eval '(lstat "/tmp") marionette)))
+
(test-equal "ownership and permissions of /var/empty"
'(0 0 #o555)
(let ((st (marionette-eval `(stat "/var/empty") marionette)))