diff --git a/gnu/system.scm b/gnu/system.scm index c2be74b6d5e63af2fc9a373c2ae6b483ca416be8..41ea59b69bce21e6bfeb879ecd155689002e1908 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -92,9 +92,7 @@ (define-record-type* <operating-system> operating-system (users operating-system-users ; list of user accounts (default '())) (groups operating-system-groups ; list of user groups - (default (list (user-group - (name "root") - (id 0))))) + (default %base-groups)) (skeletons operating-system-skeletons ; list of name/monadic value (default (default-skeletons))) diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 471390da615037977db8dbdfd8fc700a4da74e77..fc19068ab6489397c8df7e7c355e3cb87f53d73b 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -42,7 +42,8 @@ (define-module (gnu system shadow) user-group-id default-skeletons - skeleton-directory)) + skeleton-directory + %base-groups)) ;;; Commentary: ;;; @@ -71,6 +72,26 @@ (define-record-type* <user-group> (password user-group-password (default #f)) (id user-group-id (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. + + ;; The following groups are conventionally used by things like udev to + ;; control access to hardware devices. + (user-group (name "tty")) + (user-group (name "dialout")) + (user-group (name "kmem")) + (user-group (name "video")) + (user-group (name "audio")) + (user-group (name "lp")) + (user-group (name "disk")) + (user-group (name "floppy")) + (user-group (name "cdrom")) + (user-group (name "tape")))) + (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."