diff --git a/root/etc/e-smith/events/actions/dovecot-acl b/root/etc/e-smith/events/actions/dovecot-acl index 27010cc..b7ab93f 100644 --- a/root/etc/e-smith/events/actions/dovecot-acl +++ b/root/etc/e-smith/events/actions/dovecot-acl @@ -56,22 +56,22 @@ sub set_acl { my $user = shift; die "Missing username\n" unless ($user); die "Couldn't find $user"."'s home dir\n" unless (-e "/home/e-smith/files/users/$user"); + find(\&dirperm, "/home/e-smith/files/users/$user/Maildir"); die "Error applying permissions to $user 's Maildir\n" unless ( # sharedmailbox group needs read / write access on Maildir system('/usr/bin/setfacl', '-R', '-m', - 'g:sharedmailbox:rwX,d:g:sharedmailbox:rwX', + 'u::rwX,g::rwX,g:sharedmailbox:rwX,d,u::rwX,d:g::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 let it read - # anything else + # the home dir so it can access the Maildir, but don't let it read + # anything (except the Maildir) system('/usr/bin/setfacl', '-m', 'g:sharedmailbox:x', "/home/e-smith/files/users/$user") == 0 ); - find(\&sgid, "/home/e-smith/files/users/$user/Maildir"); } # The kernel will handle group perms when a user @@ -79,7 +79,7 @@ sub set_acl { # This will prevent dovecot errors, see # http://wiki2.dovecot.org/SharedMailboxes/Permissions and # http://wiki2.dovecot.org/Errors/ChgrpNoPerm -sub sgid { +sub dirperm { system('/bin/chmod', 'g+s', "$_") if (-d); diff --git a/smeserver-dovecot.spec b/smeserver-dovecot.spec index 1fb3b4d..ab6d00e 100644 --- a/smeserver-dovecot.spec +++ b/smeserver-dovecot.spec @@ -1,5 +1,5 @@ %define version 0.1 -%define release 0.beta26 +%define release 0.beta28 %define name smeserver-dovecot