accounts: Add default value for the 'home-directory' field of <user-account>.
* gnu/system/accounts.scm (<user-account>)[home-directory]: Mark as thunked and add a default value. (default-home-directory): New procedure. * doc/guix.texi (User Accounts): Remove 'home-directory' from example. * gnu/system/examples/bare-bones.tmpl: Likewise. * gnu/system/examples/beaglebone-black.tmpl: Likewise. * gnu/system/examples/desktop.tmpl: Likewise. * gnu/system/examples/docker-image.tmpl: Likewise. * gnu/system/examples/lightweight-desktop.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda): (%separate-home-os, %encrypted-root-os, %btrfs-root-os): Likewise. * tests/accounts.scm ("allocate-passwd") ("allocate-passwd with previous state"): Likewise.
This commit is contained in:
parent
abd4d6b33d
commit
cf848cc0a1
|
@ -10927,7 +10927,6 @@ this field must contain the encrypted password, as a string. You can use the
|
||||||
@example
|
@example
|
||||||
(user-account
|
(user-account
|
||||||
(name "charlie")
|
(name "charlie")
|
||||||
(home-directory "/home/charlie")
|
|
||||||
(group "users")
|
(group "users")
|
||||||
|
|
||||||
;; Specify a SHA-512-hashed initial password.
|
;; Specify a SHA-512-hashed initial password.
|
||||||
|
|
|
@ -67,7 +67,8 @@
|
||||||
(supplementary-groups user-account-supplementary-groups
|
(supplementary-groups user-account-supplementary-groups
|
||||||
(default '())) ; list of strings
|
(default '())) ; list of strings
|
||||||
(comment user-account-comment (default ""))
|
(comment user-account-comment (default ""))
|
||||||
(home-directory user-account-home-directory)
|
(home-directory user-account-home-directory (thunked)
|
||||||
|
(default (default-home-directory this-record)))
|
||||||
(create-home-directory? user-account-create-home-directory? ;Boolean
|
(create-home-directory? user-account-create-home-directory? ;Boolean
|
||||||
(default #t))
|
(default #t))
|
||||||
(shell user-account-shell ; gexp
|
(shell user-account-shell ; gexp
|
||||||
|
@ -84,6 +85,10 @@
|
||||||
(system? user-group-system? ; Boolean
|
(system? user-group-system? ; Boolean
|
||||||
(default #f)))
|
(default #f)))
|
||||||
|
|
||||||
|
(define (default-home-directory account)
|
||||||
|
"Return the default home directory for ACCOUNT."
|
||||||
|
(string-append "/home/" (user-account-name account)))
|
||||||
|
|
||||||
(define (sexp->user-group sexp)
|
(define (sexp->user-group sexp)
|
||||||
"Take SEXP, a tuple as returned by 'user-group->gexp', and turn it into a
|
"Take SEXP, a tuple as returned by 'user-group->gexp', and turn it into a
|
||||||
user-group record."
|
user-group record."
|
||||||
|
|
|
@ -35,8 +35,7 @@
|
||||||
;; and "video" allows the user to play sound
|
;; and "video" allows the user to play sound
|
||||||
;; and access the webcam.
|
;; and access the webcam.
|
||||||
(supplementary-groups '("wheel"
|
(supplementary-groups '("wheel"
|
||||||
"audio" "video"))
|
"audio" "video")))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
|
|
||||||
;; Globally-installed packages.
|
;; Globally-installed packages.
|
||||||
|
|
|
@ -38,8 +38,7 @@
|
||||||
;; and "video" allows the user to play sound
|
;; and "video" allows the user to play sound
|
||||||
;; and access the webcam.
|
;; and access the webcam.
|
||||||
(supplementary-groups '("wheel"
|
(supplementary-groups '("wheel"
|
||||||
"audio" "video"))
|
"audio" "video")))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
|
|
||||||
;; Globally-installed packages.
|
;; Globally-installed packages.
|
||||||
|
|
|
@ -42,8 +42,7 @@
|
||||||
(comment "Alice's brother")
|
(comment "Alice's brother")
|
||||||
(group "users")
|
(group "users")
|
||||||
(supplementary-groups '("wheel" "netdev"
|
(supplementary-groups '("wheel" "netdev"
|
||||||
"audio" "video"))
|
"audio" "video")))
|
||||||
(home-directory "/home/bob"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
|
|
||||||
;; This is where we specify system-wide packages.
|
;; This is where we specify system-wide packages.
|
||||||
|
|
|
@ -15,8 +15,7 @@
|
||||||
(comment "Bob's sister")
|
(comment "Bob's sister")
|
||||||
(group "users")
|
(group "users")
|
||||||
(supplementary-groups '("wheel"
|
(supplementary-groups '("wheel"
|
||||||
"audio" "video"))
|
"audio" "video")))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
|
|
||||||
;; Globally-installed packages.
|
;; Globally-installed packages.
|
||||||
|
|
|
@ -35,8 +35,7 @@
|
||||||
(comment "Bob's sister")
|
(comment "Bob's sister")
|
||||||
(group "users")
|
(group "users")
|
||||||
(supplementary-groups '("wheel" "netdev"
|
(supplementary-groups '("wheel" "netdev"
|
||||||
"audio" "video"))
|
"audio" "video")))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
|
|
||||||
;; Add a bunch of window managers; we can choose one at
|
;; Add a bunch of window managers; we can choose one at
|
||||||
|
|
|
@ -379,8 +379,7 @@ You have been warned. Thanks for being so brave.\x1b[0m
|
||||||
(group "users")
|
(group "users")
|
||||||
(supplementary-groups '("wheel")) ; allow use of sudo
|
(supplementary-groups '("wheel")) ; allow use of sudo
|
||||||
(password "")
|
(password "")
|
||||||
(comment "Guest of GNU")
|
(comment "Guest of GNU"))))
|
||||||
(home-directory "/home/guest"))))
|
|
||||||
|
|
||||||
(issue %issue)
|
(issue %issue)
|
||||||
(services %installation-services)
|
(services %installation-services)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;;
|
;;;
|
||||||
|
@ -219,8 +219,7 @@ the system under test."
|
||||||
(name "alice")
|
(name "alice")
|
||||||
(comment "Bob's sister")
|
(comment "Bob's sister")
|
||||||
(group "users")
|
(group "users")
|
||||||
(supplementary-groups '("wheel" "audio" "video"))
|
(supplementary-groups '("wheel" "audio" "video")))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
%base-user-accounts))))
|
%base-user-accounts))))
|
||||||
|
|
||||||
(define-syntax-rule (simple-operating-system user-services ...)
|
(define-syntax-rule (simple-operating-system user-services ...)
|
||||||
|
|
|
@ -74,8 +74,7 @@
|
||||||
(name "alice")
|
(name "alice")
|
||||||
(comment "Bob's sister")
|
(comment "Bob's sister")
|
||||||
(group "users")
|
(group "users")
|
||||||
(supplementary-groups '("wheel" "audio" "video"))
|
(supplementary-groups '("wheel" "audio" "video")))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
(services (cons (service marionette-service-type
|
(services (cons (service marionette-service-type
|
||||||
(marionette-configuration
|
(marionette-configuration
|
||||||
|
@ -357,8 +356,7 @@ per %test-installed-os, this test is expensive in terms of CPU and storage.")
|
||||||
(name "alice")
|
(name "alice")
|
||||||
(comment "Bob's sister")
|
(comment "Bob's sister")
|
||||||
(group "users")
|
(group "users")
|
||||||
(supplementary-groups '("wheel" "audio" "video"))
|
(supplementary-groups '("wheel" "audio" "video")))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
(services (cons (service marionette-service-type
|
(services (cons (service marionette-service-type
|
||||||
(marionette-configuration
|
(marionette-configuration
|
||||||
|
@ -435,12 +433,10 @@ reboot\n")
|
||||||
%base-file-systems))
|
%base-file-systems))
|
||||||
(users (cons* (user-account
|
(users (cons* (user-account
|
||||||
(name "alice")
|
(name "alice")
|
||||||
(group "users")
|
(group "users"))
|
||||||
(home-directory "/home/alice"))
|
|
||||||
(user-account
|
(user-account
|
||||||
(name "charlie")
|
(name "charlie")
|
||||||
(group "users")
|
(group "users"))
|
||||||
(home-directory "/home/charlie"))
|
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
(services (cons (service marionette-service-type
|
(services (cons (service marionette-service-type
|
||||||
(marionette-configuration
|
(marionette-configuration
|
||||||
|
@ -655,7 +651,6 @@ by 'mdadm'.")
|
||||||
(users (cons (user-account
|
(users (cons (user-account
|
||||||
(name "charlie")
|
(name "charlie")
|
||||||
(group "users")
|
(group "users")
|
||||||
(home-directory "/home/charlie")
|
|
||||||
(supplementary-groups '("wheel" "audio" "video")))
|
(supplementary-groups '("wheel" "audio" "video")))
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
(services (cons (service marionette-service-type
|
(services (cons (service marionette-service-type
|
||||||
|
@ -776,7 +771,6 @@ build (current-guix) and then store a couple of full system images.")
|
||||||
(users (cons (user-account
|
(users (cons (user-account
|
||||||
(name "charlie")
|
(name "charlie")
|
||||||
(group "users")
|
(group "users")
|
||||||
(home-directory "/home/charlie")
|
|
||||||
(supplementary-groups '("wheel" "audio" "video")))
|
(supplementary-groups '("wheel" "audio" "video")))
|
||||||
%base-user-accounts))
|
%base-user-accounts))
|
||||||
(services (cons (service marionette-service-type
|
(services (cons (service marionette-service-type
|
||||||
|
|
|
@ -199,12 +199,10 @@ nobody:!:0::::::\n"))
|
||||||
(directory "/var/empty")))
|
(directory "/var/empty")))
|
||||||
(allocate-passwd (list (user-account (name "alice")
|
(allocate-passwd (list (user-account (name "alice")
|
||||||
(comment "Alice")
|
(comment "Alice")
|
||||||
(home-directory "/home/alice")
|
|
||||||
(shell "/bin/sh")
|
(shell "/bin/sh")
|
||||||
(group "users"))
|
(group "users"))
|
||||||
(user-account (name "bob")
|
(user-account (name "bob")
|
||||||
(comment "Bob")
|
(comment "Bob")
|
||||||
(home-directory "/home/bob")
|
|
||||||
(shell "/bin/gash")
|
(shell "/bin/gash")
|
||||||
(group "wheel"))
|
(group "wheel"))
|
||||||
(user-account (name "sshd") (system? #t)
|
(user-account (name "sshd") (system? #t)
|
||||||
|
@ -234,12 +232,10 @@ nobody:!:0::::::\n"))
|
||||||
(directory "/home/charlie")))
|
(directory "/home/charlie")))
|
||||||
(allocate-passwd (list (user-account (name "alice")
|
(allocate-passwd (list (user-account (name "alice")
|
||||||
(comment "Alice")
|
(comment "Alice")
|
||||||
(home-directory "/home/alice")
|
|
||||||
(shell "/bin/sh") ;ignored
|
(shell "/bin/sh") ;ignored
|
||||||
(group "users"))
|
(group "users"))
|
||||||
(user-account (name "charlie")
|
(user-account (name "charlie")
|
||||||
(comment "Charlie")
|
(comment "Charlie")
|
||||||
(home-directory "/home/charlie")
|
|
||||||
(shell "/bin/sh")
|
(shell "/bin/sh")
|
||||||
(group "users")))
|
(group "users")))
|
||||||
(list (group-entry (name "users") (gid 1000)))
|
(list (group-entry (name "users") (gid 1000)))
|
||||||
|
|
Loading…
Reference in New Issue