|
|
@ -56,6 +56,7 @@ sub set_acl { |
|
|
|
my $user = shift; |
|
|
|
my $user = shift; |
|
|
|
die "Missing username\n" unless ($user); |
|
|
|
die "Missing username\n" unless ($user); |
|
|
|
die "Couldn't find $user"."'s home dir\n" unless (-e "/home/e-smith/files/users/$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 ( |
|
|
|
die "Error applying permissions to $user 's Maildir\n" unless ( |
|
|
|
# sharedmailbox group needs read / write access on Maildir |
|
|
|
# sharedmailbox group needs read / write access on Maildir |
|
|
|
system('/usr/bin/setfacl', |
|
|
|
system('/usr/bin/setfacl', |
|
|
@ -71,7 +72,6 @@ sub set_acl { |
|
|
|
'g:sharedmailbox:x', |
|
|
|
'g:sharedmailbox:x', |
|
|
|
"/home/e-smith/files/users/$user") == 0 |
|
|
|
"/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 |
|
|
|
# The kernel will handle group perms when a user |
|
|
@ -79,9 +79,9 @@ sub set_acl { |
|
|
|
# This will prevent dovecot errors, see |
|
|
|
# This will prevent dovecot errors, see |
|
|
|
# http://wiki2.dovecot.org/SharedMailboxes/Permissions and |
|
|
|
# http://wiki2.dovecot.org/SharedMailboxes/Permissions and |
|
|
|
# http://wiki2.dovecot.org/Errors/ChgrpNoPerm |
|
|
|
# http://wiki2.dovecot.org/Errors/ChgrpNoPerm |
|
|
|
sub sgid { |
|
|
|
sub dirperm { |
|
|
|
system('/bin/chmod', |
|
|
|
system('/bin/chmod', |
|
|
|
'g+s', |
|
|
|
'g+ws', |
|
|
|
"$_") if (-d); |
|
|
|
"$_") if (-d); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|