From 7cae12b32eee083127d83e6ddc785403c5988858 Mon Sep 17 00:00:00 2001 From: Spitap Date: Mon, 23 Jan 2023 19:24:28 +0100 Subject: [PATCH] Fix multiple hard-coded vmail --- modoboa_installer/config_dict_template.py | 2 +- modoboa_installer/scripts/dovecot.py | 6 ++---- .../scripts/files/dovecot/conf.d/10-mail.conf | 4 ++-- .../scripts/files/dovecot/conf.d/10-master.conf.tpl | 12 ++++++------ .../scripts/files/postfix/master.cf.tpl | 2 +- 5 files changed, 12 insertions(+), 14 deletions(-) diff --git a/modoboa_installer/config_dict_template.py b/modoboa_installer/config_dict_template.py index fea3b94..a18437d 100644 --- a/modoboa_installer/config_dict_template.py +++ b/modoboa_installer/config_dict_template.py @@ -256,7 +256,7 @@ ConfigDictTemplate = [ }, { "option": "user", - "default": "vmail", + "default": "dovecot", }, { "option": "home_dir", diff --git a/modoboa_installer/scripts/dovecot.py b/modoboa_installer/scripts/dovecot.py index dfac55a..954e391 100644 --- a/modoboa_installer/scripts/dovecot.py +++ b/modoboa_installer/scripts/dovecot.py @@ -91,6 +91,7 @@ class Dovecot(base.Installer): "db_driver": self.db_driver, "mailboxes_owner_uid": pw_mailbox[2], "mailboxes_owner_gid": pw_mailbox[3], + "mailbox_owner": self.mailboxes_owner, "modoboa_user": self.config.get("modoboa", "user"), "modoboa_dbname": self.config.get("modoboa", "dbname"), "modoboa_dbuser": self.config.get("modoboa", "dbuser"), @@ -125,10 +126,7 @@ class Dovecot(base.Installer): utils.exec_cmd("chmod +x /usr/local/bin/postlogin.sh") # Add mailboxes user to dovecot group for modoboa mailbox commands. # See https://github.com/modoboa/modoboa/issues/2157. - system.add_user_to_group( - self.config.get("dovecot", "mailboxes_owner"), - 'dovecot' - ) + system.add_user_to_group(self.mailboxes_owner, 'dovecot') def restart_daemon(self): """Restart daemon process. diff --git a/modoboa_installer/scripts/files/dovecot/conf.d/10-mail.conf b/modoboa_installer/scripts/files/dovecot/conf.d/10-mail.conf index 8e555ea..0512161 100644 --- a/modoboa_installer/scripts/files/dovecot/conf.d/10-mail.conf +++ b/modoboa_installer/scripts/files/dovecot/conf.d/10-mail.conf @@ -104,8 +104,8 @@ namespace inbox { # System user and group used to access mails. If you use multiple, userdb # can override these by returning uid or gid fields. You can use either numbers # or names. -#mail_uid = -#mail_gid = +mail_uid = %{mailboxes_owner_uid} +mail_gid = %{mailboxes_owner_gid} # Group to enable temporarily for privileged operations. Currently this is # used only with INBOX when either its initial creation or dotlocking fails. diff --git a/modoboa_installer/scripts/files/dovecot/conf.d/10-master.conf.tpl b/modoboa_installer/scripts/files/dovecot/conf.d/10-master.conf.tpl index 5552396..604b5d7 100644 --- a/modoboa_installer/scripts/files/dovecot/conf.d/10-master.conf.tpl +++ b/modoboa_installer/scripts/files/dovecot/conf.d/10-master.conf.tpl @@ -92,14 +92,14 @@ service postlogin { service stats { # To allow modoboa to access available cipher list. unix_listener stats-reader { - user = vmail - group = vmail + user = %{mailboxes_owner} + group = %{mailboxes_owner} mode = 0660 } unix_listener stats-writer { - user = vmail - group = vmail + user = %{mailboxes_owner} + group = %{mailboxes_owner} mode = 0660 } } @@ -120,7 +120,7 @@ service auth { # permissions (e.g. 0777 allows everyone full permissions). unix_listener auth-userdb { #mode = 0666 - user = vmail + user = %{mailboxes_owner} #group = } @@ -154,7 +154,7 @@ service dict { # For example: mode=0660, group=vmail and global mail_access_groups=vmail unix_listener dict { mode = 0600 - user = vmail + user = %{mailboxes_owner} #group = } } diff --git a/modoboa_installer/scripts/files/postfix/master.cf.tpl b/modoboa_installer/scripts/files/postfix/master.cf.tpl index b48a5be..af790c1 100644 --- a/modoboa_installer/scripts/files/postfix/master.cf.tpl +++ b/modoboa_installer/scripts/files/postfix/master.cf.tpl @@ -78,7 +78,7 @@ scache unix - - - - 1 scache # Also specify in main.cf: maildrop_destination_recipient_limit=1 # maildrop unix - n n - - pipe - flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} + flags=DRhu user=%{dovecot_mailboxes_owner} argv=/usr/bin/maildrop -d ${recipient} # # ==================================================================== #