diff options
| author | Oleg Pykhalov <go.wigust@gmail.com> | 2018-07-28 01:37:56 +0300 |
|---|---|---|
| committer | Oleg Pykhalov <go.wigust@gmail.com> | 2018-08-01 03:24:43 +0300 |
| commit | ec0f33e29b922da4e21e6516f5af2f2d2896cd26 (patch) | |
| tree | 7ca9350126add7982c1021e064ef3cec350406d8 | |
| parent | wigust: services: Update zabbix service. (diff) | |
| download | guix-wigust-ec0f33e29b922da4e21e6516f5af2f2d2896cd26.tar.gz | |
wigust: services: Update ddclient service.
* wigust/services/dns.scm: Update ddclient service.
| -rw-r--r-- | wigust/services/dns.scm | 31 |
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." |
