Compare commits

..

12 Commits
sme9 ... master

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

@ -23,4 +23,4 @@ event_link("adjust-dovecot", "bootstrap-console-save", "02");
event_link("dovecot-acl", "email-update", "85"); event_link("dovecot-acl", "email-update", "85");
event_link("dovecot-acl", "user-create", "85"); event_link("dovecot-acl", "user-create", "85");
safe_touch("root/home/e-smith/db/dovecot/sharedmailbox.db"); safe_touch("root/etc/dovecot/sharedmailbox/dict.db");

@ -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
\} \}

@ -50,7 +50,7 @@ namespace {
} }
plugin { plugin {
acl_shared_dict = file:/home/e-smith/db/dovecot/sharedmailbox.db acl_shared_dict = file:/etc/dovecot/sharedmailbox/dict.db
} }
plugin { plugin {

@ -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.1 %define version 0.1.6
%define release 1.beta0 %define release 1.beta0
%define name smeserver-dovecot %define name smeserver-dovecot
@ -16,8 +16,9 @@ BuildArchitectures: noarch
BuildRequires: e-smith-devtools BuildRequires: e-smith-devtools
Requires: e-smith-base >= 5.2.0 Requires: e-smith-base >= 5.2.0
Requires: dovecot >= 2.0.9 Requires: dovecot >= 2.0.15
Requires: dovecot-pigeonhole >= 2.0.9 Requires: dovecot-pigeonhole >= 0.2.4
Requires: dovecot-managesieve >= 0.2.4
Requires: acl Requires: acl
Provides: e-smith-imap Provides: e-smith-imap
@ -28,8 +29,24 @@ Configure the dovecot IMAP server with sieve scripts support,
quota, ACL, extended logging, master user quota, ACL, extended logging, master user
%changelog %changelog
* Tue Feb 26 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.1-1 * Wed Jan 7 2015 Daniel Berteaud <daniel@firewall-services.com> - 0.1.6-1
- store sharedmailbox dict file in /home/e-smith/db/dovecot - 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
@ -54,8 +71,8 @@ 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 /home/e-smith/db/dovecot 'attr(2770,root,sharedmailbox)' \ --dir /etc/dovecot/sharedmailbox 'attr(2770,root,sharedmailbox)' \
--file /home/e-smith/db/dovecot/sharedmailbox.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