~ruther/guix-local

9cd3b961e4e530b4361ef25132fc8ee9756aab4b — Ludovic Courtès 1 year, 3 months ago 38e82ca
daemon: Consider the current user as trusted.

This allows use of ‘guix gc --verify=repair’ when running guix-daemon as
an unprivileged user.

* nix/nix-daemon/nix-daemon.cc (acceptConnection): Consider the current
user as trusted.

Reported-by: David Elsing <david.elsing@posteo.net>
Change-Id: I559e56cf0640e8dc9bbc510317aa2bdc024ff681
1 files changed, 4 insertions(+), 1 deletions(-)

M nix/nix-daemon/nix-daemon.cc
M nix/nix-daemon/nix-daemon.cc => nix/nix-daemon/nix-daemon.cc +4 -1
@@ 963,7 963,10 @@ static void acceptConnection(int fdSocket)
	    clientPid = cred.pid;
	    clientUid = cred.uid;
	    clientGid = cred.gid;
	    trusted = clientUid == 0;

	    /* The root user is always trusted; additionally, when running as
	       an unprivileged user, that user is also trusted.  */
	    trusted = (clientUid == 0) || (clientUid == getuid());

            struct passwd * pw = getpwuid(cred.uid);
            string user = pw ? pw->pw_name : std::to_string(cred.uid);