diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-05-23 16:52:17 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-05-24 00:26:12 +0200 |
commit | 4a35a866be51361b80a5618e422d135959960c3d (patch) | |
tree | 44edcd494a9749a1082d0af12254ec6fd5a50331 | |
parent | 40245ef316d0a37721b2c79620e83e750368eef5 (diff) | |
download | guix-4a35a866be51361b80a5618e422d135959960c3d.tar.gz |
guix system: init: Make sure the target is root-owned.
Suggested by Mark H Weaver <mhw@netris.org>. * guix/scripts/system.scm (install): Add 'chown' and 'chmod' calls for TARGET when running as root, and warn otherwise.
-rw-r--r-- | guix/scripts/system.scm | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 8d5fbe5a78..1feb821389 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -145,6 +145,16 @@ 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.) See + ;; <http://lists.gnu.org/archive/html/guix-devel/2015-05/msg00452.html>. + (if (zero? (geteuid)) + (chown target 0 0) + (warning (_ "not running as 'root', so \ +the ownership of '~a' may be incorrect!~%") + target)) + + (chmod target #o755) (let ((os-dir (derivation->output-path os-drv)) (format (lift format %store-monad)) (populate (lift2 populate-root-file-system %store-monad))) |