Subject: bug#29706: GuixSD: Please add the ability to change shells for root

From: Alex Sassmannshausen <[email-masked]>
Date: Tue, 19 Dec 2017 16:34:43 +0100

Hi,

BJH2017 writes:

> (thought I had CC'ed the group with my last comment but unfortunately gmail doesn't do this by default, sorry)
>
> Ya I do have %base-user-accounts in my config file here is what I had for user accounts in full:
>
> (users (cons 
> (user-account
> (name "root")
> (uid 0)
> (group "root")
> (supplementary-groups '("home-directory"))
> (home-directory "/root")
> (shell (file-append zsh "/bin/zsh")))
> (user-account
> (name "fusion809")
> (comment "Brenton Horne")
> (group "users")
> (supplementary-groups '("wheel" "netdev"
> "audio" "video"))
> (home-directory "/home/fusion809")
> (shell "/run/current-system/profile/bin/zsh"))
> %base-user-accounts))
>
> guessing the problem here is that I have two user-account fields?

That's correct.  Either use:

(cons (user-account ...)
      (cons (user-account ...)
            %base-user-accounts))

Or

(cons* (user-account ...) (user-account ...) %base-user-accounts)

HTH,

Alex

> On 20 December 2017 at 00:53, Ludovic Courtès <[email-masked]> wrote:
>
>  Please always keep the list Cc’d.
>
>  BJH2017 <[email-masked]> skribis:
>
>  > No it doesn't, I have this at the moment:
>  >
>  > (name "root")
>  > (uid 0)
>  > (group "root")
>  > (home-directory "/root")
>  > (shell (file-append zsh "/bin/zsh")))
>  >
>  > and I get the error:
>  >
>  > guix system: error: failed to load '/etc/config.scm':
>  > /etc/config.scm:35:9: /etc/config.scm:35:9: Wrong number of arguments to
>  > #<procedure cons (_ _)>
>
>  ‘cons’ adds an element to a list, so it takes two arguments:
>
>  (cons account list)
>
>  as in:
>
>  (cons (user-account …) %base-user-accounts)
>
>  HTH!
>
>  Ludo’.