diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2017-05-18 10:08:55 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2017-05-20 10:17:10 +0200 |
| commit | 51fe9cd38d4d64b5fade8a899d5323da0e217d5c (patch) | |
| tree | 27dd58ab42b8517bb2a0805dff813bec40b9a060 /gnu/tests/base.scm | |
| parent | f3f8938fe0c07d221ebccdf5a9a0029fda01f036 (diff) | |
services: user-homes: Do not create home directories marked as no-create.
Fixes a bug whereby GuixSD would create the /nonexistent directory, from
user 'nobody', even though it has 'create-home-directory?' set to #f.
* gnu/build/activation.scm (activate-users+groups): Add comment for
\#:create-home?.
(activate-user-home)[ensure-user-home]: Skip when CREATE-HOME? is #f or
SYSTEM? is #t.
* gnu/tests/base.scm (run-basic-test)["no extra home directories"]: New
tests.
Diffstat (limited to 'gnu/tests/base.scm')
| -rw-r--r-- | gnu/tests/base.scm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 37aab8ef674..e5ac320b740 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm | |||
| @@ -199,6 +199,28 @@ info --version") | |||
| 199 | ',users+homes)) | 199 | ',users+homes)) |
| 200 | marionette))) | 200 | marionette))) |
| 201 | 201 | ||
| 202 | (test-equal "no extra home directories" | ||
| 203 | '() | ||
| 204 | |||
| 205 | ;; Make sure the home directories that are not supposed to be | ||
| 206 | ;; created are indeed not created. | ||
| 207 | (let ((nonexistent | ||
| 208 | '#$(filter-map (lambda (user) | ||
| 209 | (and (not | ||
| 210 | (user-account-create-home-directory? | ||
| 211 | user)) | ||
| 212 | (user-account-home-directory user))) | ||
| 213 | (operating-system-user-accounts os)))) | ||
| 214 | (marionette-eval | ||
| 215 | `(begin | ||
| 216 | (use-modules (srfi srfi-1)) | ||
| 217 | |||
| 218 | ;; Note: Do not flag "/var/empty". | ||
| 219 | (filter file-exists? | ||
| 220 | ',(remove (cut string-prefix? "/var/" <>) | ||
| 221 | nonexistent))) | ||
| 222 | marionette))) | ||
| 223 | |||
| 202 | (test-equal "login on tty1" | 224 | (test-equal "login on tty1" |
| 203 | "root\n" | 225 | "root\n" |
| 204 | (begin | 226 | (begin |
