aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/services/mail/opensmtpd.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/services/mail/opensmtpd.nix')
-rw-r--r--nixpkgs/nixos/modules/services/mail/opensmtpd.nix23
1 files changed, 15 insertions, 8 deletions
diff --git a/nixpkgs/nixos/modules/services/mail/opensmtpd.nix b/nixpkgs/nixos/modules/services/mail/opensmtpd.nix
index 1fabe2da45c..c838d3b949d 100644
--- a/nixpkgs/nixos/modules/services/mail/opensmtpd.nix
+++ b/nixpkgs/nixos/modules/services/mail/opensmtpd.nix
@@ -17,6 +17,10 @@ in {
###### interface
+ imports = [
+ (mkRenamedOptionModule [ "services" "opensmtpd" "addSendmailToSystemPath" ] [ "services" "opensmtpd" "setSendmail" ])
+ ];
+
options = {
services.opensmtpd = {
@@ -34,13 +38,10 @@ in {
description = "The OpenSMTPD package to use.";
};
- addSendmailToSystemPath = mkOption {
+ setSendmail = mkOption {
type = types.bool;
default = true;
- description = ''
- Whether to add OpenSMTPD's sendmail binary to the
- system path or not.
- '';
+ description = "Whether to set the system sendmail to OpenSMTPD's.";
};
extraServerArgs = mkOption {
@@ -82,7 +83,7 @@ in {
###### implementation
- config = mkIf cfg.enable {
+ config = mkIf cfg.enable rec {
users.groups = {
smtpd.gid = config.ids.gids.smtpd;
smtpq.gid = config.ids.gids.smtpq;
@@ -101,6 +102,14 @@ in {
};
};
+ security.wrappers.smtpctl = {
+ group = "smtpq";
+ setgid = true;
+ source = "${cfg.package}/bin/smtpctl";
+ };
+
+ services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail security.wrappers.smtpctl;
+
systemd.tmpfiles.rules = [
"d /var/spool/smtpd 711 root - - -"
"d /var/spool/smtpd/offline 770 root smtpq - -"
@@ -119,7 +128,5 @@ in {
serviceConfig.ExecStart = "${cfg.package}/sbin/smtpd -d -f ${conf} ${args}";
environment.OPENSMTPD_PROC_PATH = "${procEnv}/libexec/opensmtpd";
};
-
- environment.systemPackages = mkIf cfg.addSendmailToSystemPath [ sendmail ];
};
}