diff options
| author | Maya <maya.omase@protonmail.com> | 2022-07-25 09:02:18 +0000 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2022-08-01 14:08:08 +0200 |
| commit | dd3cf144028ccd4e12b32133846525e97101d9cd (patch) | |
| tree | f0163db2b61e33e9cb94df4f325173690f5924a6 /gnu/services | |
| parent | 432ea6446dd52a5ce04ef9a1c6874656c4c3dc84 (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.scm | 45 |
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 |
| 1732 | Transfer Protocol} server."))) | 1773 | Transfer Protocol} server."))) |
| 1733 | 1774 | ||
