diff -Nur -x '*.orig' -x '*.rej' smeserver-shared-folders-0.1/root/etc/e-smith/events/actions/share-modify mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/events/actions/share-modify --- smeserver-shared-folders-0.1/root/etc/e-smith/events/actions/share-modify 2010-11-26 10:38:39.000000000 +0100 +++ mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/events/actions/share-modify 2010-11-26 10:38:09.000000000 +0100 @@ -57,6 +57,16 @@ } +#------------------------------------------------------------ +# Create the recylce bin directory if needed +#------------------------------------------------------------ +if (($share->prop('RecycleBin') || 'disabled' eq 'enabled') || + ($share->prop('RecycleBin') || 'disabled' eq 'keep-versions')){ + my $recycle = $share->prop('RecycleBinDir') || "Recycle Bin"; + system("/bin/mkdir", "-p", + "/home/e-smith/files/shares/$shareName/files/$recycle") == 0 + or die "Error creating recycle bin directory"; +} #------------------------------------------------------------ # Fix permissions on share files. @@ -106,10 +116,17 @@ foreach my $group (@read){ $acl .= 'g:'.$group.':rx,'; } + # Set the effective ACLs system($setfacl, '-m', $acl, $_); + # Set the defaults ACLs + system($setfacl, + '-d', + '-m', + $acl, + $_); } elsif (-f) { diff -Nur -x '*.orig' -x '*.rej' smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/smb.conf/shares/10recyclebin mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/smb.conf/shares/10recyclebin --- smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/smb.conf/shares/10recyclebin 2010-11-26 10:38:39.000000000 +0100 +++ mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/smb.conf/shares/10recyclebin 2010-11-26 10:37:00.000000000 +0100 @@ -3,7 +3,7 @@ return if (($share->prop('RecycleBin') || 'disabled') eq 'disabled'); $share_vfs->{recycle}->{versions} = ($share->prop('RecycleBin') || 'disabled') eq 'keep-versions' ? "True" : "False"; - $share_vfs->{recycle}->{repository} = "Recycle Bin"; + $share_vfs->{recycle}->{repository} = ($share->prop('RecycleBinDir') || "Recycle Bin"); $share_vfs->{recycle}->{keeptree} = "True"; $share_vfs->{recycle}->{touch} = "True"; $share_vfs->{recycle}->{exclude} = "*.tmp,*.temp,*.o,*.obj,~\$*,.~lock.*";