A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
John Ericson a47e055e09 Move trustedUsers and allowedUsers to separate config struct
These settings are not needed for libstore at all, they are just used by
the nix daemon *command* for authorization on unix domain sockets. My
moving them to a new configuration struct just in that file, we avoid
them leaking anywhere else.

Also, it is good to break up the mammoth `Settings` struct in general.
Issue #5638 tracks this.

The message is not changed because I do not want to regress in
convenience to the user. Just saying "this connection is not trusted"
doesn't tell them out to fix the issue. The ideal thing to do would be
to somehow parameterize `processCommand` on how the error should be
displayed, so different sorts of connections can display different
information to the user based on how authentication is performed for the
connection in question. This, however, is a good bit more work, so it is
left for the future.

This came up with me thinking about the tcp:// store (#5265). The larger
project is not TCP *per se*, but the idea that it should be possible for
something else to manage access control to services like the Nix Daemon,
and those services simply trust or trust the incoming connection as they
are told. This is a more capability-oriented way of thinking about trust
than "every server implements its own auth separately" as we are used to today.

Its very great that libstore itself already implements just this model,
and so via this refactor I basically want to "enshrine" that so it
continues to be the case.
2023-02-02 14:17:24 -05:00
.github Merge pull request #7648 from hercules-ci/move-nixos-tests 2023-01-27 15:11:48 +01:00
config Run autoupdate 2021-06-01 11:42:38 +02:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
doc/manual Merge pull request #7607 from Hoverbear/installation-expand 2023-02-02 17:05:54 +01:00
m4 autoconf: Fix C++17 detection not working on Ubuntu 16.04. 2019-07-03 04:32:25 +02:00
maintainers state priorities in triaging and discussion process 2023-01-12 19:33:41 +01:00
misc Merge pull request #6645 from Artturin/limitinfinity 2022-12-09 13:36:13 +01:00
mk Allow programs to have custom names 2023-01-29 13:52:57 -05:00
perl Build with C++20 2022-10-22 14:24:25 +01:00
scripts Add escape for systemd service in installer script 2023-01-14 03:46:11 +08:00
src Move trustedUsers and allowedUsers to separate config struct 2023-02-02 14:17:24 -05:00
tests Merge pull request #7723 from yorickvP/nix-store-ping-json 2023-02-01 17:11:34 +01:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig Add .editorconfig 2017-06-05 22:57:28 +01:00
.gitignore Allow unit test infra to be reused across libs' tests 2023-01-29 13:52:57 -05:00
.version Bump version 2023-01-17 22:08:36 +01:00
boehmgc-coroutine-sp-fallback.diff Update boehmgc-coroutine-sp-fallback.diff 2023-01-24 15:11:55 +01:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac Fix configure.ac rapidcheck tests 2023-01-30 12:08:57 -05:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
default.nix Remove url literals 2022-01-24 13:28:21 +01:00
docker.nix Add nobody user/group to Nix docker image 2022-11-29 10:01:46 +00:00
flake.lock flake.lock: Update 2022-12-08 17:09:50 +01:00
flake.nix Merge pull request #7648 from hercules-ci/move-nixos-tests 2023-01-27 15:11:48 +01:00
local.mk Remove 'dist' target 2020-12-03 16:17:58 +01:00
Makefile Build with C++20 2022-10-22 14:24:25 +01:00
Makefile.config.in Embed the sandbox shell into the statically linked 'nix' binary 2022-06-23 04:08:28 +02:00
precompiled-headers.h Config: Use nlohmann/json 2020-08-20 11:02:16 +02:00
README.md Fix link to hacking doc 2022-07-30 09:12:50 -07:00
shell.nix Remove url literals 2022-01-24 13:28:21 +01:00

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation

On Linux and macOS the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

See our Hacking guide in our manual for instruction on how to build nix from source with nix-build or how to get a development environment.

Additional Resources

License

Nix is released under the LGPL v2.1.