diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2012-12-14 18:15:37 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2012-12-14 18:15:37 +0100 |
| commit | e1b7096acdd3dedbdca92a6d20ade94b21d8561d (patch) | |
| tree | fb72d4fb70e265033bd66793446c1af9f0cd969d /README | |
| parent | b3a53fb3610ff23b75f11d58325110d29451a726 (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-- | README | 27 |
1 files changed, 23 insertions, 4 deletions
| @@ -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 | ||
| 62 | Guix does remote procedure calls (RPCs) to the Nix daemon (the | 62 | Guix 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 |
| 64 | accesses to the Nix store on its behalf. The RPCs are implemented in | 64 | and accesses to the Nix store on its behalf. The RPCs are implemented |
| 65 | the (guix store) module. | 65 | in the (guix store) module. |
| 66 | |||
| 67 | * Installing Guix as non-root | ||
| 68 | |||
| 69 | The Guix daemon allows software builds to be performed under alternate | ||
| 70 | user accounts, which are normally created specifically for this | ||
| 71 | purpose. For instance, you may have a pool of accounts in the | ||
| 72 | =guixbuild= group, and then you can instruct =guix-daemon= to use them | ||
| 73 | like this: | ||
| 74 | |||
| 75 | $ guix-daemon --build-users-group=guixbuild | ||
| 76 | |||
| 77 | However, unless it is run as root, =guix-daemon= cannot switch users. | ||
| 78 | In 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 | ||
| 80 | you 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 | ||
