Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
Daniel Berteaud | 4be615ba2c |
|
@ -23,4 +23,4 @@ event_link("adjust-dovecot", "bootstrap-console-save", "02");
|
|||
event_link("dovecot-acl", "email-update", "85");
|
||||
event_link("dovecot-acl", "user-create", "85");
|
||||
|
||||
safe_touch("root/etc/dovecot/sharedmailbox/dict.db");
|
||||
safe_touch("root/var/lib/dovecot/sharedmailbox/dict.db");
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
|
||||
# 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);
|
||||
}
|
||||
|
||||
}
|
|
@ -16,21 +16,19 @@ my $event = $ARGV[0];
|
|||
|
||||
# SharedMailboxes disabled ?
|
||||
if (($dovecot->prop('SharedMailbox') || 'disabled') eq 'disabled'){
|
||||
if (($dovecot->prop('SharedMailboxAcl') || 'yes') ne 'no'){
|
||||
foreach my $user ($a->users){
|
||||
my $name = $user->key;
|
||||
die "Error removing SharedMailbox ACLs ($name"."'s Maildir)\n" unless (
|
||||
system('/usr/bin/setfacl',
|
||||
'-R',
|
||||
'-x',
|
||||
'g:sharedmailbox',
|
||||
"/home/e-smith/files/users/$name") == 0 &&
|
||||
system('/bin/chmod',
|
||||
'-R',
|
||||
'g-s',
|
||||
"/home/e-smith/files/users/$name/Maildir") == 0
|
||||
);
|
||||
}
|
||||
foreach my $user ($a->users){
|
||||
my $name = $user->key;
|
||||
die "Error removing SharedMailbox ACLs ($name"."'s Maildir)\n" unless (
|
||||
system('/usr/bin/setfacl',
|
||||
'-R',
|
||||
'-x',
|
||||
'g:sharedmailbox',
|
||||
"/home/e-smith/files/users/$name") == 0 &&
|
||||
system('/bin/chmod',
|
||||
'-R',
|
||||
'g-s',
|
||||
"/home/e-smith/files/users/$name/Maildir") == 0
|
||||
);
|
||||
}
|
||||
$dovecot->set_prop('SharedMailboxAcl','no');
|
||||
exit(0);
|
||||
|
@ -64,11 +62,11 @@ sub set_acl {
|
|||
system('/usr/bin/setfacl',
|
||||
'-R',
|
||||
'-m',
|
||||
'u::rwX,g::rwX,o::rX,g:sharedmailbox:rwX,d:u::rwX,d:g::rwX,d:g:sharedmailbox:rwX,d:o::rX',
|
||||
'g:sharedmailbox:rwX,d:g:sharedmailbox:rwX',
|
||||
"/home/e-smith/files/users/$user/Maildir") == 0 &&
|
||||
# Grant sharedmailbox group permission to go through
|
||||
# the home dir so it can access the Maildir, but don't let it read
|
||||
# anything (except the Maildir)
|
||||
# the home dir so it can access the Maildir, but let it read
|
||||
# anything else
|
||||
system('/usr/bin/setfacl',
|
||||
'-m',
|
||||
'g:sharedmailbox:x',
|
||||
|
@ -83,7 +81,7 @@ sub set_acl {
|
|||
# http://wiki2.dovecot.org/Errors/ChgrpNoPerm
|
||||
sub dirperm {
|
||||
system('/bin/chmod',
|
||||
'g+s',
|
||||
'g+ws',
|
||||
"$_") if (-d);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
$OUT .= "# No local delivery (Dovecot LDA)\n";
|
||||
}
|
||||
else{
|
||||
$OUT .= '| /var/qmail/bin/preline -f /usr/libexec/dovecot/dovecot-lda -a "$RECIPIENT"; if [ $? -ne 0 ] ; then exit -1; else exit 99; fi;';
|
||||
$OUT .= '| /var/qmail/bin/preline -f /usr/libexec/dovecot/dovecot-lda; if [ $? -ne 0 ] ; then exit -1; else exit 99; fi;';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
{
|
||||
my $greeting = $dovecot{'Greeting'} || 'SME Server IMAP service powered by doveot';
|
||||
$OUT .= "login_greeting = \"$greeting\"\n";
|
||||
our $args = $dovecot{PassDBArgs} || '';
|
||||
}
|
||||
passdb \{
|
||||
driver = pam
|
||||
{ $OUT .= ($args ne '') ? "args = $args\n" : ''; }
|
||||
\}
|
||||
{
|
||||
if (($dovecot{'AdminIsMaster'} || 'disabled') eq 'enabled'){
|
||||
|
@ -13,7 +11,7 @@ if (($dovecot{'AdminIsMaster'} || 'disabled') eq 'enabled'){
|
|||
|
||||
passdb {
|
||||
driver = pam
|
||||
args = $args dovecotadmin
|
||||
args = dovecotadmin
|
||||
master = yes
|
||||
}
|
||||
auth_master_user_separator = *
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
|
||||
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,6 +15,5 @@ if ($subject ne ''){
|
|||
|
||||
protocol lda \{
|
||||
mail_plugins = $mail_plugins {$OUT .= (($sieve{'status'} || 'disabled') eq 'enabled') ? 'sieve':''}
|
||||
submission_host = 127.0.0.1
|
||||
\}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace {
|
|||
}
|
||||
|
||||
plugin {
|
||||
acl_shared_dict = file:/etc/dovecot/sharedmailbox/dict.db
|
||||
acl_shared_dict = file:/var/lib/dovecot/sharedmailbox/dict.db
|
||||
}
|
||||
|
||||
plugin {
|
||||
|
|
|
@ -33,8 +33,8 @@ my $pem = "./ssl/imapd.pem";
|
|||
# Now copy system pem file into jail used by ldap
|
||||
copy("/home/e-smith/ssl.pem/$s.$d.pem", "$pem.$$")
|
||||
or die "failed to copy SSL PEM: $!";
|
||||
chmod 0440, "$pem.$$";
|
||||
esmith::util::chownFile("root", "stunnel", "$pem.$$");
|
||||
chmod 0400, "$pem.$$";
|
||||
esmith::util::chownFile("root", "root", "$pem.$$");
|
||||
rename("$pem.$$", "$pem")
|
||||
or die "failed to rename $pem.$$ to $pem: $!";
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
%define version 0.1.6
|
||||
%define release 1.beta0
|
||||
%define version 0.1
|
||||
%define release 0.beta27
|
||||
%define name smeserver-dovecot
|
||||
|
||||
|
||||
|
@ -29,28 +29,6 @@ Configure the dovecot IMAP server with sieve scripts support,
|
|||
quota, ACL, extended logging, master user
|
||||
|
||||
%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
|
||||
- Pass the recipient variable to dovcot-lda
|
||||
|
||||
* Tue Nov 29 2011 Daniel Berteaud <daniel@firewall-services.com> - 0.1
|
||||
- initial release
|
||||
|
||||
|
@ -71,8 +49,8 @@ perl createlinks
|
|||
--file /var/service/dovecot/log/run 'attr(0755,root,root)' \
|
||||
--file /var/service/dovecot/control/1 'attr(0755,root,root)' \
|
||||
--dir /var/log/dovecot 'attr(0750,smelog,smelog)' \
|
||||
--dir /etc/dovecot/sharedmailbox 'attr(2770,root,sharedmailbox)' \
|
||||
--file /etc/dovecot/sharedmailbox/dict.db 'attr(0660,root,sharedmailbox) %config(noreplace)' \
|
||||
--dir /var/lib/dovecot/sharedmailbox 'attr(2770,root,sharedmailbox)' \
|
||||
--file /var/lib/dovecot/sharedmailbox/dict.db 'attr(0660,root,sharedmailbox) %config(noreplace)' \
|
||||
--file /usr/bin/imap-postlogin 'attr(0755,root,root)' \
|
||||
> %{name}-%{version}-filelist
|
||||
|
||||
|
|
Loading…
Reference in New Issue