[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
24/52: vm: Preserve file permissions on /dev.
From: |
guix-commits |
Subject: |
24/52: vm: Preserve file permissions on /dev. |
Date: |
Thu, 9 Apr 2020 13:29:07 -0400 (EDT) |
janneke pushed a commit to branch wip-hurd-vm
in repository guix.
commit 23e24d20c91dd5dc449964ad9e428478f3153ce4
Author: Ludovic Courtès <address@hidden>
AuthorDate: Mon Apr 6 15:16:09 2020 +0200
vm: Preserve file permissions on /dev.
Previously, when REGISTER-CLOSURES? was false, we'd set all the files
under /dev to #o644, including /dev/null, /dev/zero, etc.
* gnu/build/vm.scm (root-partition-initializer): Call 'reset-timestamps'
separately for /dev, with #:preserve-permissions? #t.
---
gnu/build/vm.scm | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index c53dacf..d4ded62 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -32,6 +32,7 @@
#:use-module (guix records)
#:use-module ((guix combinators) #:select (fold2))
#:use-module (ice-9 format)
+ #:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (ice-9 popen)
@@ -418,7 +419,16 @@ system that is passed to 'populate-root-file-system'."
;; 'register-closure' resets timestamps and everything, so no need to do it
;; once more in that case.
(unless register-closures?
- (reset-timestamps target))))
+ ;; 'reset-timestamps' also resets file permissions; do that everywhere
+ ;; except on /dev so that /dev/null remains writable, etc.
+ (for-each (lambda (directory)
+ (reset-timestamps (string-append target "/" directory)))
+ (scandir target
+ (match-lambda
+ ((or "." ".." "dev") #f)
+ (_ #t))))
+ (reset-timestamps (string-append target "/dev")
+ #:preserve-permissions? #t))))
(define (register-bootcfg-root target bootcfg)
"On file system TARGET, register BOOTCFG as a GC root."
- 14/52: system: hurd: Add "/etc/fstab"., (continued)
- 14/52: system: hurd: Add "/etc/fstab"., guix-commits, 2020/04/09
- 08/52: DRAFT: Add (gnu system hurd)., guix-commits, 2020/04/09
- 03/52: vm: 'qemu-image' can pass options to the 'mkfs' command., guix-commits, 2020/04/09
- 13/52: gnu: hurd: Add util-linux to startup scripts., guix-commits, 2020/04/09
- 10/52: gnu: hurd: Ensure startup scripts refer to the right programs., guix-commits, 2020/04/09
- 11/52: gnu: guile@3: Disable JIT on GNU/Hurd., guix-commits, 2020/04/09
- 17/52: system: hurd: Add "/etc/passwd"., guix-commits, 2020/04/09
- 15/52: gnu: hurd: Add "hurd/sbin" to PATH., guix-commits, 2020/04/09
- 18/52: gnu: cross-libc: Add patch to allow 'gettyent' reading store file names., guix-commits, 2020/04/09
- 20/52: system: hurd: Add "/etc/shadow"., guix-commits, 2020/04/09
- 24/52: vm: Preserve file permissions on /dev.,
guix-commits <=
- 25/52: linux-boot: 'make-essential-device-nodes' root parameter is optional., guix-commits, 2020/04/09
- 19/52: system: hurd: Add "/bin/sh" symlink., guix-commits, 2020/04/09
- 16/52: system: hurd: Add ttys symlink in "/etc/ttys"., guix-commits, 2020/04/09
- 30/52: vm: Make the device node procedure a parameter., guix-commits, 2020/04/09
- 26/52: gnu: libgcrypt: Fix cross-compilation., guix-commits, 2020/04/09
- 23/52: database: 'reset-timestamps' can optionally preserve permissions., guix-commits, 2020/04/09
- 22/52: system: hurd: Create /etc/{hostname,motd,login} and /root., guix-commits, 2020/04/09
- 29/52: linux-boot: Add 'make-hurd-device-nodes'., guix-commits, 2020/04/09
- 28/52: gnu: guix: Apply courage for the Hurd., guix-commits, 2020/04/09
- 34/52: gnu: hurd: Add dependency on libgcrypt., guix-commits, 2020/04/09