~ruther/guix-local

bf87f38ace7f0cbad5558c1ef027b9f02988e393 — Ludovic Courtès 10 years ago 0899144
system: Define '%base-user-accounts'.

* gnu/system/shadow.scm (%base-user-accounts): New variable.
* gnu/system.scm (<operating-system>)[users]: Use it as the default value.
* gnu/system/examples/bare-bones.tmpl (users): Use it.
* gnu/system/examples/desktop.tmpl (users): Likewise.
* doc/guix.texi (operating-system Reference, User Accounts): Adjust
  accordingly.
M doc/guix.texi => doc/guix.texi +9 -1
@@ 4453,7 4453,7 @@ A list of strings identifying devices to be used for ``swap space''
(@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}).
For example, @code{'("/dev/sda3")}.

@item @code{users} (default: @code{'()})
@item @code{users} (default: @code{%base-user-accounts})
@itemx @code{groups} (default: @var{%base-groups})
List of user accounts and groups.  @xref{User Accounts}.



@@ 4832,6 4832,14 @@ to be present on the system.  This includes groups such as ``root'',
specific devices such as ``audio'', ``disk'', and ``cdrom''.
@end defvr

@defvr {Scheme Variable} %base-user-accounts
This is the list of basic system accounts that programs may expect to
find on a GNU/Linux system, such as the ``nobody'' account.

Note that the ``root'' account is not included here.  It is a
special-case and is automatically added whether or not it is specified.
@end defvr

@node Locales
@subsection Locales


M gnu/system.scm => gnu/system.scm +1 -1
@@ 119,7 119,7 @@
                (default '()))

  (users operating-system-users                   ; list of user accounts
         (default '()))
         (default %base-user-accounts))
  (groups operating-system-groups                 ; list of user groups
          (default %base-groups))


M gnu/system/examples/bare-bones.tmpl => gnu/system/examples/bare-bones.tmpl +3 -2
@@ 23,7 23,7 @@
  ;; This is where user accounts are specified.  The "root"
  ;; account is implicit, and is initially created with the
  ;; empty password.
  (users (list (user-account
  (users (cons (user-account
                (name "alice")
                (comment "Bob's sister")
                (group "users")


@@ 34,7 34,8 @@
                ;; and access the webcam.
                (supplementary-groups '("wheel"
                                        "audio" "video"))
                (home-directory "/home/alice"))))
                (home-directory "/home/alice"))
               %base-user-accounts))

  ;; Globally-installed packages.
  (packages (cons tcpdump %base-packages))

M gnu/system/examples/desktop.tmpl => gnu/system/examples/desktop.tmpl +3 -2
@@ 20,13 20,14 @@
                        (type "ext4"))
                      %base-file-systems))

  (users (list (user-account
  (users (cons (user-account
                (name "bob")
                (comment "Alice's brother")
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video"))
                (home-directory "/home/bob"))))
                (home-directory "/home/bob"))
               %base-user-accounts))

  ;; Add Xfce and Ratpoison; that allows us to choose
  ;; sessions using either of these at the log-in screen.

M gnu/system/shadow.scm => gnu/system/shadow.scm +11 -0
@@ 54,6 54,7 @@
            default-skeletons
            skeleton-directory
            %base-groups
            %base-user-accounts
            assert-valid-users/groups))

;;; Commentary:


@@ 113,6 114,16 @@
          (system-group (name "tape"))
          (system-group (name "kvm")))))             ; for /dev/kvm

(define %base-user-accounts
  ;; List of standard user accounts.  Note that "root" is a special case, so
  ;; it's not listed here.
  (list (user-account
         (name "nobody")
         (uid 65534)
         (group "nogroup")
         (home-directory "/var/empty")
         (system? #t))))

(define (default-skeletons)
  "Return the default skeleton files for /etc/skel.  These files are copied by
'useradd' in the home directory of newly created user accounts."