summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2018-07-28 01:37:56 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2018-08-01 03:24:43 +0300
commitec0f33e29b922da4e21e6516f5af2f2d2896cd26 (patch)
tree7ca9350126add7982c1021e064ef3cec350406d8
parentwigust: services: Update zabbix service. (diff)
downloadguix-wigust-ec0f33e29b922da4e21e6516f5af2f2d2896cd26.tar.gz
wigust: services: Update ddclient service.
* wigust/services/dns.scm: Update ddclient service.
-rw-r--r--wigust/services/dns.scm31
1 files changed, 17 insertions, 14 deletions
diff --git a/wigust/services/dns.scm b/wigust/services/dns.scm
index e2ca17d..18c7614 100644
--- a/wigust/services/dns.scm
+++ b/wigust/services/dns.scm
@@ -106,15 +106,15 @@
"Return the user accounts and user groups for CONFIG."
(let ((ddclient-user "ddclient")
(ddclient-group "ddclient"))
- (list (user-group (name ddclient-group) (system? #t))
+ (list (user-group
+ (name ddclient-group)
+ (system? #t))
(user-account
(name ddclient-user)
(system? #t)
(group ddclient-group)
(comment "ddclientd privilege separation user")
- (home-directory (string-append "/var/run/" ddclient-user))
- ;; (shell #~(string-append #$shadow "/sbin/nologin"))
- ))))
+ (home-directory (string-append "/var/run/" ddclient-user))))))
(define (ddclient-activation config)
"Return the activation GEXP for CONFIG."
@@ -125,19 +125,22 @@
(lambda ()
(serialize-configuration config
ddclient-configuration-fields))))))
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils))
- (let ((dir "/var/cache/ddclient"))
- (mkdir-p dir)
- (chown dir (passwd:uid (getpw "ddclient")) (group:gid (getpw "ddclient"))))
- ;; 'ddclient' complains about ddclient.conf file permissions, which
- ;; rules out /gnu/store. Thus we copy the ddclient.conf to /etc.
- (mkdir-p "/etc/ddclient")
+ #~(begin
+ (use-modules (guix build utils))
+ ;; 'ddclient' complains about ddclient.conf file permissions, which
+ ;; rules out /gnu/store. Thus we copy the ddclient.conf to /etc.
+ (let ((user (getpw "ddclient"))
+ (group (getpw "ddclient")))
+ (for-each (lambda (dir)
+ (mkdir-p dir)
+ (chmod dir #o700)
+ (chown dir (passwd:uid user) (group:gid group)))
+ '("/var/cache/ddclient" "/var/run/ddclient"
+ "/etc/ddclient"))
(let ((file "/etc/ddclient/ddclient.conf"))
(copy-file #$(plain-file "ddclient.conf" config-str) file)
(chmod file #o600)
- (chown file (passwd:uid (getpw "ddclient")) (group:gid (getpw "ddclient"))))))))
+ (chown file (passwd:uid user) (group:gid group)))))))
(define (ddclient-shepherd-service config)
"Return a <shepherd-service> for ddclient with CONFIG."