summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-12-14 18:15:37 +0100
committerLudovic Courtès <ludo@gnu.org>2012-12-14 18:15:37 +0100
commite1b7096acdd3dedbdca92a6d20ade94b21d8561d (patch)
treefb72d4fb70e265033bd66793446c1af9f0cd969d /README
parentb3a53fb3610ff23b75f11d58325110d29451a726 (diff)
daemon: Build `nix-setuid-helper'.
* daemon.am (libexec_PROGRAMS, nix_setuid_helper_SOURCES, nix_setuid_helper_CPPFLAGS, nix_setuid_helper_LDADD): New variables. * test-env.in: Set and export `NIX_SETUID_HELPER'. * README (Installing Guix as non-root): New section.
Diffstat (limited to 'README')
-rw-r--r--README27
1 files changed, 23 insertions, 4 deletions
diff --git a/README b/README
index d2bbfacd5ae..09433586bec 100644
--- a/README
+++ b/README
@@ -59,10 +59,29 @@ the promise of a build; it is stored as a text file under
59`derivation' primitive, as well as higher-level wrappers such as 59`derivation' primitive, as well as higher-level wrappers such as
60`build-expression->derivation'. 60`build-expression->derivation'.
61 61
62Guix does remote procedure calls (RPCs) to the Nix daemon (the 62Guix does remote procedure calls (RPCs) to the Guix or Nix daemon (the
63=nix-worker --daemon= command), which in turn performs builds and 63=guix-daemon= or =nix-daemon= command), which in turn performs builds
64accesses to the Nix store on its behalf. The RPCs are implemented in 64and accesses to the Nix store on its behalf. The RPCs are implemented
65the (guix store) module. 65in the (guix store) module.
66
67* Installing Guix as non-root
68
69The Guix daemon allows software builds to be performed under alternate
70user accounts, which are normally created specifically for this
71purpose. For instance, you may have a pool of accounts in the
72=guixbuild= group, and then you can instruct =guix-daemon= to use them
73like this:
74
75 $ guix-daemon --build-users-group=guixbuild
76
77However, unless it is run as root, =guix-daemon= cannot switch users.
78In that case, it falls back to using a setuid-root helper program call
79=nix-setuid-helper=. That program is not setuid-root by default when
80you install it; instead you should run a command along these lines
81(assuming Guix is installed under /usr/local):
82
83 # chown root.root /usr/local/libexec/nix-setuid-helper
84 # chmod 4755 /usr/local/libexec/nix-setuid-helper
66 85
67* Contact 86* Contact
68 87