mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-15 05:35:53 +02:00
services: guix: Make /etc/guix/acl really declarative by default.
Fixes <https://bugs.gnu.org/39819>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * gnu/services/base.scm (substitute-key-authorization): Symlink DEFAULT-ACL to /etc/guix/acl unconditionally. Add code to optionally back up /etc/guix/acl if it was possibly modified by hand. * doc/guix.texi (Base Services): Clarify the effect of setting 'authorize-keys?' to true. Mention the backup. Give an example showing how to authorize substitutes from another server.
This commit is contained in:
+12
-4
@@ -1476,10 +1476,18 @@ archive' public keys, with GUIX."
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(unless (file-exists? "/etc/guix/acl")
|
||||
(mkdir-p "/etc/guix")
|
||||
(copy-file #+default-acl "/etc/guix/acl")
|
||||
(chmod "/etc/guix/acl" #o600)))))
|
||||
;; If the ACL already exists, move it out of the way. Create a backup
|
||||
;; if it's a regular file: it's likely that the user manually updated
|
||||
;; it with 'guix archive --authorize'.
|
||||
(if (file-exists? "/etc/guix/acl")
|
||||
(if (and (symbolic-link? "/etc/guix/acl")
|
||||
(store-file-name? (readlink "/etc/guix/acl")))
|
||||
(delete-file "/etc/guix/acl")
|
||||
(rename-file "/etc/guix/acl" "/etc/guix/acl.bak"))
|
||||
(mkdir-p "/etc/guix"))
|
||||
|
||||
;; Installed the declared ACL.
|
||||
(symlink #+default-acl "/etc/guix/acl"))))
|
||||
|
||||
(define %default-authorized-guix-keys
|
||||
;; List of authorized substitute keys.
|
||||
|
||||
@@ -875,7 +875,16 @@ that will be listening to receive secret keys on port 1004, TCP."
|
||||
(permit-root-login #t)
|
||||
(allow-empty-passwords? #t)
|
||||
(password-authentication? #t)))
|
||||
%base-services/hurd))))
|
||||
|
||||
;; By default, the secret service introduces a pre-initialized
|
||||
;; /etc/guix/acl file in the childhurd. Thus, clear
|
||||
;; 'authorize-key?' so that it's not overridden at activation
|
||||
;; time.
|
||||
(modify-services %base-services/hurd
|
||||
(guix-service-type config =>
|
||||
(guix-configuration
|
||||
(inherit config)
|
||||
(authorize-key? #f))))))))
|
||||
|
||||
(define-record-type* <hurd-vm-configuration>
|
||||
hurd-vm-configuration make-hurd-vm-configuration
|
||||
|
||||
Reference in New Issue
Block a user