mirror of
https://https.git.savannah.gnu.org/git/guix.git/
synced 2025-07-16 12:00:35 +02:00
system: Add the 'system?' field for user groups.
Suggested by Mark H. Weaver. * gnu/system/shadow.scm (<user-group>)[system?]: New field. (%base-groups): Introduce 'system-group' macro, and use it. * gnu/system.scm (user-group->gexp): Pass the 'system?' field. * guix/build/activation.scm (add-group): Add #:system? and honor it. (activate-users+groups): Handle the 'system?' field. * gnu/system/file-systems.scm (%tty-gid): Choose an ID below 1000. * doc/guix.texi (User Accounts): Document the 'system?' field.
This commit is contained in:
parent
931c132a58
commit
c8fa34265d
5 changed files with 37 additions and 23 deletions
|
@ -43,6 +43,7 @@
|
|||
user-group-name
|
||||
user-group-password
|
||||
user-group-id
|
||||
user-group-system?
|
||||
|
||||
default-skeletons
|
||||
skeleton-directory
|
||||
|
@ -75,28 +76,33 @@
|
|||
user-group?
|
||||
(name user-group-name)
|
||||
(password user-group-password (default #f))
|
||||
(id user-group-id (default #f)))
|
||||
(id user-group-id (default #f))
|
||||
(system? user-group-system? ; Boolean
|
||||
(default #f)))
|
||||
|
||||
(define %base-groups
|
||||
;; Default set of groups.
|
||||
(list (user-group (name "root") (id 0))
|
||||
(user-group (name "wheel")) ; root-like users
|
||||
(user-group (name "users")) ; normal users
|
||||
(user-group (name "nogroup")) ; for daemons etc.
|
||||
(let-syntax ((system-group (syntax-rules ()
|
||||
((_ args ...)
|
||||
(user-group (system? #t) args ...)))))
|
||||
(list (system-group (name "root") (id 0))
|
||||
(system-group (name "wheel")) ; root-like users
|
||||
(system-group (name "users")) ; normal users
|
||||
(system-group (name "nogroup")) ; for daemons etc.
|
||||
|
||||
;; The following groups are conventionally used by things like udev to
|
||||
;; control access to hardware devices.
|
||||
(user-group (name "tty") (id %tty-gid))
|
||||
(user-group (name "dialout"))
|
||||
(user-group (name "kmem"))
|
||||
(user-group (name "video"))
|
||||
(user-group (name "audio"))
|
||||
(user-group (name "netdev")) ; used in avahi-dbus.conf
|
||||
(user-group (name "lp"))
|
||||
(user-group (name "disk"))
|
||||
(user-group (name "floppy"))
|
||||
(user-group (name "cdrom"))
|
||||
(user-group (name "tape"))))
|
||||
;; The following groups are conventionally used by things like udev to
|
||||
;; control access to hardware devices.
|
||||
(system-group (name "tty") (id %tty-gid))
|
||||
(system-group (name "dialout"))
|
||||
(system-group (name "kmem"))
|
||||
(system-group (name "video"))
|
||||
(system-group (name "audio"))
|
||||
(system-group (name "netdev")) ; used in avahi-dbus.conf
|
||||
(system-group (name "lp"))
|
||||
(system-group (name "disk"))
|
||||
(system-group (name "floppy"))
|
||||
(system-group (name "cdrom"))
|
||||
(system-group (name "tape")))))
|
||||
|
||||
(define (default-skeletons)
|
||||
"Return the default skeleton files for /etc/skel. These files are copied by
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue