aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)))