|
|
@ -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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|