1
0
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:
Ludovic Courtès
2020-10-21 16:17:26 +02:00
parent e220b77828
commit 3b6e4e5fd0
3 changed files with 58 additions and 5 deletions
+12 -4
View File
@@ -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.
+10 -1
View File
@@ -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