Compare commits

...

12 Commits
sme9 ... master

  1. 12
      root/etc/e-smith/db/configuration/migrate/ImapsLimits
  2. 2
      root/etc/e-smith/events/actions/dovecot-acl
  3. 4
      root/etc/e-smith/templates/etc/dovecot/dovecot.conf/15auth
  4. 18
      root/etc/e-smith/templates/etc/dovecot/dovecot.conf/27Limits
  5. 1
      root/etc/e-smith/templates/etc/dovecot/dovecot.conf/40lda
  6. 4
      root/var/service/dovecot/control/1
  7. 23
      smeserver-dovecot.spec

@ -0,0 +1,12 @@
{
# Those limits are now defined on the imap entry
foreach my $prop (qw/ConcurrencyLimit ConcurrencyLimitPerIP ProcessMemoryLimit/){
my $imaps_value = $DB->get_prop_and_delete('imaps', $prop);
next unless ($imaps_value);
my $imap_value = $DB->get_prop('imap', $prop);
next if ($imap_value);
$DB->set_prop('imap', $prop, $imaps_value);
}
}

@ -64,7 +64,7 @@ sub set_acl {
system('/usr/bin/setfacl', system('/usr/bin/setfacl',
'-R', '-R',
'-m', '-m',
'u::rwX,g::rwX,g:sharedmailbox:rwX,d:u::rwX,d:g::rwX,d:g:sharedmailbox:rwX', 'u::rwX,g::rwX,o::rX,g:sharedmailbox:rwX,d:u::rwX,d:g::rwX,d:g:sharedmailbox:rwX,d:o::rX',
"/home/e-smith/files/users/$user/Maildir") == 0 && "/home/e-smith/files/users/$user/Maildir") == 0 &&
# Grant sharedmailbox group permission to go through # Grant sharedmailbox group permission to go through
# the home dir so it can access the Maildir, but don't let it read # the home dir so it can access the Maildir, but don't let it read

@ -1,9 +1,11 @@
{ {
my $greeting = $dovecot{'Greeting'} || 'SME Server IMAP service powered by doveot'; my $greeting = $dovecot{'Greeting'} || 'SME Server IMAP service powered by doveot';
$OUT .= "login_greeting = \"$greeting\"\n"; $OUT .= "login_greeting = \"$greeting\"\n";
our $args = $dovecot{PassDBArgs} || '';
} }
passdb \{ passdb \{
driver = pam driver = pam
{ $OUT .= ($args ne '') ? "args = $args\n" : ''; }
\} \}
{ {
if (($dovecot{'AdminIsMaster'} || 'disabled') eq 'enabled'){ if (($dovecot{'AdminIsMaster'} || 'disabled') eq 'enabled'){
@ -11,7 +13,7 @@ if (($dovecot{'AdminIsMaster'} || 'disabled') eq 'enabled'){
passdb { passdb {
driver = pam driver = pam
args = dovecotadmin args = $args dovecotadmin
master = yes master = yes
} }
auth_master_user_separator = * auth_master_user_separator = *

@ -0,0 +1,18 @@
{
my $ConcurrencyLimit = $imap{ConcurrencyLimit} || '400';
my $ConcurrencyLimitPerIP = $imap{ConcurrencyLimitPerIP} || '12';
my $ProcessMemoryLimit = $imap{ProcessMemoryLimit} || '256000000';
$OUT .=<<"END";
service imap {
process_limit = $ConcurrencyLimit
vsz_limit = $ProcessMemoryLimit
}
protocol imap {
mail_max_userip_connections = $ConcurrencyLimitPerIP
}
END
}

@ -15,5 +15,6 @@ if ($subject ne ''){
protocol lda \{ protocol lda \{
mail_plugins = $mail_plugins {$OUT .= (($sieve{'status'} || 'disabled') eq 'enabled') ? 'sieve':''} mail_plugins = $mail_plugins {$OUT .= (($sieve{'status'} || 'disabled') eq 'enabled') ? 'sieve':''}
submission_host = 127.0.0.1
\} \}

@ -33,8 +33,8 @@ my $pem = "./ssl/imapd.pem";
# Now copy system pem file into jail used by ldap # Now copy system pem file into jail used by ldap
copy("/home/e-smith/ssl.pem/$s.$d.pem", "$pem.$$") copy("/home/e-smith/ssl.pem/$s.$d.pem", "$pem.$$")
or die "failed to copy SSL PEM: $!"; or die "failed to copy SSL PEM: $!";
chmod 0400, "$pem.$$"; chmod 0440, "$pem.$$";
esmith::util::chownFile("root", "root", "$pem.$$"); esmith::util::chownFile("root", "stunnel", "$pem.$$");
rename("$pem.$$", "$pem") rename("$pem.$$", "$pem")
or die "failed to rename $pem.$$ to $pem: $!"; or die "failed to rename $pem.$$ to $pem: $!";

@ -1,4 +1,4 @@
%define version 0.1.0 %define version 0.1.6
%define release 1.beta0 %define release 1.beta0
%define name smeserver-dovecot %define name smeserver-dovecot
@ -29,6 +29,25 @@ Configure the dovecot IMAP server with sieve scripts support,
quota, ACL, extended logging, master user quota, ACL, extended logging, master user
%changelog %changelog
* Wed Jan 7 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.1.6-1
- Allow args in passdb
* Wed Jul 9 2014 Daniel Berteaud <daniel@firewall-services.com> - 0.1.5-1
- Remove trailing / when defining permissions on sharedmailbox dir
* Fri Feb 7 2014 Daniel Berteaud <daniel@firewall-services.com> - 0.1.4-1
- Migrate limits from imaps to imap DB entry
- Fix permissions on imapd.pem (for pop3s)
* Tue Dec 24 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.3-1
- Apply process limits
* Tue Oct 29 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.2-1
- Use SMTP for sending sieve notifications
* Mon Mar 25 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.1-1
- Fix ACL and default ACL to set 755/644 on maildirs
* Tue Feb 12 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.0-1 * Tue Feb 12 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.0-1
- Pass the recipient variable to dovcot-lda - Pass the recipient variable to dovcot-lda
@ -52,7 +71,7 @@ perl createlinks
--file /var/service/dovecot/log/run 'attr(0755,root,root)' \ --file /var/service/dovecot/log/run 'attr(0755,root,root)' \
--file /var/service/dovecot/control/1 'attr(0755,root,root)' \ --file /var/service/dovecot/control/1 'attr(0755,root,root)' \
--dir /var/log/dovecot 'attr(0750,smelog,smelog)' \ --dir /var/log/dovecot 'attr(0750,smelog,smelog)' \
--dir /etc/dovecot/sharedmailbox/ 'attr(2770,root,sharedmailbox)' \ --dir /etc/dovecot/sharedmailbox 'attr(2770,root,sharedmailbox)' \
--file /etc/dovecot/sharedmailbox/dict.db 'attr(0660,root,sharedmailbox) %config(noreplace)' \ --file /etc/dovecot/sharedmailbox/dict.db 'attr(0660,root,sharedmailbox) %config(noreplace)' \
--file /usr/bin/imap-postlogin 'attr(0755,root,root)' \ --file /usr/bin/imap-postlogin 'attr(0755,root,root)' \
> %{name}-%{version}-filelist > %{name}-%{version}-filelist

Loading…
Cancel
Save