aboutsummaryrefslogtreecommitdiff
path: root/gnu/build
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-12-31 17:45:12 +0100
committerLudovic Courtès <ludo@gnu.org>2022-01-01 15:10:12 +0100
commit671e6a81804f264ddcdd6fe7579644404da079b8 (patch)
tree883a743fd1f9a261562fda1b5d5ae626feef25a8 /gnu/build
parent806a4e986d95a31cf09588cf10d1b9dae28a3d5e (diff)
downloadguix-671e6a81804f264ddcdd6fe7579644404da079b8.tar
guix-671e6a81804f264ddcdd6fe7579644404da079b8.tar.gz
system: Allow 'chfn' to change the user's full name.
Fixes <https://issues.guix.gnu.org/52539>. Reported by Jacob First <jacob.first@member.fsf.org>. * gnu/build/accounts.scm (allocate-passwd): Add comment as to why 'real-name' is taken from PREVIOUS. Add (not system?) to the condition. * gnu/system.scm (operating-system-etc-service) <login.defs>: Add "CHFN_RESTRICT". * gnu/system.scm (%setuid-programs): Add "chfn". * gnu/system/pam.scm (base-pam-services): Add "chfn". * doc/guix.texi (User Accounts): Document it.
Diffstat (limited to 'gnu/build')
-rw-r--r--gnu/build/accounts.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/gnu/build/accounts.scm b/gnu/build/accounts.scm
index f60d68d9b3..1247fc640c 100644
--- a/gnu/build/accounts.scm
+++ b/gnu/build/accounts.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -490,7 +490,11 @@ new UIDs."
(uid id)
(directory directory)
(gid (if (number? group) group (group-id group)))
- (real-name (if previous
+
+ ;; Users might change their name to something
+ ;; other than what the sysadmin chose, with
+ ;; 'chfn'. Thus consider it "stateful".
+ (real-name (if (and previous (not system?))
(password-entry-real-name previous)
real-name))