From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: Re: permission denied: /gnu/store/...guile... Date: Sat, 23 May 2015 12:26:58 -0400 Message-ID: <878ucfmf8t.fsf@netris.org> References: <14d70199695.1243810498111.5252599218489536710@elephly.net> <87617knzbm.fsf@netris.org> <87mw0ve5ln.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YwCGV-0003bn-Fr for guix-devel@gnu.org; Sat, 23 May 2015 12:27:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YwCGQ-0008IT-GP for guix-devel@gnu.org; Sat, 23 May 2015 12:27:11 -0400 In-Reply-To: <87mw0ve5ln.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 23 May 2015 16:22:28 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Mark H Weaver skribis: > >> The problem turned out to be that on rekado's system, / was owned by >> user "rekado" with mode 700. > > Oh, I see. I would never have thought of this! > >> Perhaps 'guix system init' should explicitly set the ownership and >> permissions on the target root directory? > > Here=E2=80=99s a tentative patch. [...] > diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm > index 8d5fbe5..2cf6a43 100644 > --- a/guix/scripts/system.scm > +++ b/guix/scripts/system.scm > @@ -145,6 +145,14 @@ When GRUB? is true, install GRUB on DEVICE, using GR= UB.CFG." > ;; Copy items to the new store. > (copy-closure to-copy target #:log-port log-port))))) >=20=20 > + ;; Make sure TARGET is root-owned when running as root, but still allow > + ;; non-root uses (useful for testing.) > + (if (zero? (getuid)) > + (chown target 0 0) I would suggest using (geteuid) instead. Also, we should set the mode. In this particular case, if we had changed the owner without also changing the mode, rekado's system still would have been quite broken. > I wonder if the activation code shouldn=E2=80=99t systematically do > (chown "/" 0 0) as well. > > Thoughts? I'm not sure. Trying to fix individual things during activation that might have been broken is a slippery slope. We cannot hope to fix everything that might have been broken using this approach, and on the other hand we might undo some change that the user made intentionally. For now, I would probably do this only from 'guix system init', but I don't feel strongly either way. Thanks! Mark