Subject: bug#32273: home-directory produces wrong /etc/passwd

From: Oleg Pykhalov <[email-masked]>
Date: Wed, 25 Jul 2018 23:09:00 +0300

Hello Guix,

I've added a guix-offload user to my system, because I've found that
‘~/.guile’ with following content break ‘guix offload’.
--8<---------------cut here---------------start------------->8---
(use-modules (ice-9 readline))

;; Enable completion at the REPL.
(activate-readline)

;; Colorize
(use-modules (ice-9 colorized))
(activate-colorized)

(define-macro (try function)
  `(catch 'quit (lambda () ,function) (const #f)))
--8<---------------cut here---------------end--------------->8---

I choose a ‘/var/run/guix-offload’ for guix-offload's home directory:
--8<---------------cut here---------------start------------->8---
(operating-system
  (groups (cons* …
                 (user-group (name "guix-offload"))
                 %base-groups))

  (users (cons* …
                (user-account
                 (name "guix-offload")
                 (uid 1982)
                 (group "guix-offload")
                 (home-directory "/var/run/guix-offload"))
                %base-user-accounts))
  …
)
--8<---------------cut here---------------end--------------->8---

but I cannot login to ‘guix-offload’ user with ‘sudo -u guix-offload -i’:
--8<---------------cut here---------------start------------->8---
sudo: unable to change directory to /home/guix-offload: No such file or directory
sudo: unable to execute /gnu/store/q4b3s9y4i0da36drp7zfq9yqcf43s47v-bash-4.4.19/bin/bash: No such file or directory
--8<---------------cut here---------------end--------------->8---

and a ‘getent’ program confirms home directory is wrong:
--8<---------------cut here---------------start------------->8---
natsu@magnolia ~$ getent passwd guix-offload
guix-offload:x:1982:30002::/home/guix-offload:/gnu/store/q4b3s9y4i0da36drp7zfq9yqcf43s47v-bash-4.4.19/bin/bash
--8<---------------cut here---------------end--------------->8---

Choosing ‘(home-directory "/home/guix-offload")’ is a workaround.

Oleg.