summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorMaya <maya.omase@protonmail.com>2022-07-25 09:02:18 +0000
committerLudovic Courtès <ludo@gnu.org>2022-08-01 14:08:08 +0200
commitdd3cf144028ccd4e12b32133846525e97101d9cd (patch)
treef0163db2b61e33e9cb94df4f325173690f5924a6 /gnu/services
parent432ea6446dd52a5ce04ef9a1c6874656c4c3dc84 (diff)
services: opensmtpd: Make commands setgid to "smtpq" by default.
This is a patch that fixes "<executable name>: this program must be setgid smtpq". * gnu/services/mail.scm (<opensmtpd-configuration>)[setgid-commands?]: New field. (opensmtpd-set-gids): New procedure. (opensmtpd-service-type)[extensions]: Add SETUID-PROGRAM-SERVICE-TYPE extension. * doc/guix.texi (Mail Services): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/mail.scm45
1 files changed, 43 insertions, 2 deletions
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 10e65238618..43f144a42d7 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -30,6 +30,7 @@
30 #:use-module (gnu services shepherd) 30 #:use-module (gnu services shepherd)
31 #:use-module (gnu system pam) 31 #:use-module (gnu system pam)
32 #:use-module (gnu system shadow) 32 #:use-module (gnu system shadow)
33 #:use-module (gnu system setuid)
33 #:use-module (gnu packages mail) 34 #:use-module (gnu packages mail)
34 #:use-module (gnu packages admin) 35 #:use-module (gnu packages admin)
35 #:use-module (gnu packages dav) 36 #:use-module (gnu packages dav)
@@ -1653,7 +1654,8 @@ by @code{dovecot-configuration}. @var{config} may also be created by
1653 (package opensmtpd-configuration-package 1654 (package opensmtpd-configuration-package
1654 (default opensmtpd)) 1655 (default opensmtpd))
1655 (config-file opensmtpd-configuration-config-file 1656 (config-file opensmtpd-configuration-config-file
1656 (default %default-opensmtpd-config-file))) 1657 (default %default-opensmtpd-config-file))
1658 (setgid-commands? opensmtpd-setgid-commands? (default #t)))
1657 1659
1658(define %default-opensmtpd-config-file 1660(define %default-opensmtpd-config-file
1659 (plain-file "smtpd.conf" " 1661 (plain-file "smtpd.conf" "
@@ -1714,6 +1716,43 @@ match from local for any action outbound
1714(define %opensmtpd-pam-services 1716(define %opensmtpd-pam-services
1715 (list (unix-pam-service "smtpd"))) 1717 (list (unix-pam-service "smtpd")))
1716 1718
1719(define opensmtpd-set-gids
1720 (match-lambda
1721 (($ <opensmtpd-configuration> package config-file set-gids?)
1722 (if set-gids?
1723 (list
1724 (setuid-program
1725 (program (file-append package "/sbin/smtpctl"))
1726 (setuid? #false)
1727 (setgid? #true)
1728 (group "smtpq"))
1729 (setuid-program
1730 (program (file-append package "/sbin/sendmail"))
1731 (setuid? #false)
1732 (setgid? #true)
1733 (group "smtpq"))
1734 (setuid-program
1735 (program (file-append package "/sbin/send-mail"))
1736 (setuid? #false)
1737 (setgid? #true)
1738 (group "smtpq"))
1739 (setuid-program
1740 (program (file-append package "/sbin/makemap"))
1741 (setuid? #false)
1742 (setgid? #true)
1743 (group "smtpq"))
1744 (setuid-program
1745 (program (file-append package "/sbin/mailq"))
1746 (setuid? #false)
1747 (setgid? #true)
1748 (group "smtpq"))
1749 (setuid-program
1750 (program (file-append package "/sbin/newaliases"))
1751 (setuid? #false)
1752 (setgid? #true)
1753 (group "smtpq")))
1754 '()))))
1755
1717(define opensmtpd-service-type 1756(define opensmtpd-service-type
1718 (service-type 1757 (service-type
1719 (name 'opensmtpd) 1758 (name 'opensmtpd)
@@ -1727,7 +1766,9 @@ match from local for any action outbound
1727 (service-extension profile-service-type 1766 (service-extension profile-service-type
1728 (compose list opensmtpd-configuration-package)) 1767 (compose list opensmtpd-configuration-package))
1729 (service-extension shepherd-root-service-type 1768 (service-extension shepherd-root-service-type
1730 opensmtpd-shepherd-service))) 1769 opensmtpd-shepherd-service)
1770 (service-extension setuid-program-service-type
1771 opensmtpd-set-gids)))
1731 (description "Run the OpenSMTPD, a lightweight @acronym{SMTP, Simple Mail 1772 (description "Run the OpenSMTPD, a lightweight @acronym{SMTP, Simple Mail
1732Transfer Protocol} server."))) 1773Transfer Protocol} server.")))
1733 1774