summary refs log tree commit diff
path: root/nix/nix-daemon/guix-daemon.cc
diff options
context:
space:
mode:
Diffstat (limited to 'nix/nix-daemon/guix-daemon.cc')
-rw-r--r--nix/nix-daemon/guix-daemon.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc
index e2c30e75a8..4f9fa4c525 100644
--- a/nix/nix-daemon/guix-daemon.cc
+++ b/nix/nix-daemon/guix-daemon.cc
@@ -29,6 +29,7 @@
 #include <argp.h>
 #include <unistd.h>
 #include <sys/types.h>
+#include <sys/stat.h>
 #include <exception>
 
 /* Variables used by `nix-daemon.cc'.  */
@@ -194,6 +195,11 @@ main (int argc, char *argv[])
       exit (EXIT_FAILURE);
     }
 
+  /* Set the umask so that the daemon does not end up creating group-writable
+     files, which would lead to "suspicious ownership or permission" errors.
+     See <http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html>.  */
+  umask (S_IWGRP | S_IWOTH);
+
 #ifdef HAVE_CHROOT
   settings.useChroot = true;
 #else