guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: permission denied: /gnu/store/...guile...


From: Ludovic Courtès
Subject: Re: permission denied: /gnu/store/...guile...
Date: Sat, 23 May 2015 16:22:28 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Mark H Weaver <address@hidden> skribis:

> The problem turned out to be that on rekado's system, / was owned by
> user "rekado" with mode 700.

Oh, I see.  I would never have thought of this!

> Perhaps 'guix system init' should explicitly set the ownership and
> permissions on the target root directory?

Here’s a tentative patch.

I wonder if the activation code shouldn’t systematically do
(chown "/" 0 0) as well.

Thoughts?

Thank you both for investigating!

Ludo’.

diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 8d5fbe5..2cf6a43 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -145,6 +145,14 @@ When GRUB? is true, install GRUB on DEVICE, using 
GRUB.CFG."
             ;; Copy items to the new store.
             (copy-closure to-copy target #:log-port log-port)))))
 
+  ;; Make sure TARGET is root-owned when running as root, but still allow
+  ;; non-root uses (useful for testing.)
+  (if (zero? (getuid))
+      (chown target 0 0)
+      (warning (_ "not running as 'root', so \
+the ownership of '~a' may be incorrect!~%")
+               target))
+
   (let ((os-dir   (derivation->output-path os-drv))
         (format   (lift format %store-monad))
         (populate (lift2 populate-root-file-system %store-monad)))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]