из кладовки: 
Программка мониторинга full_audit лога самбы. 
$PATH_SHARE="home/samba/shares";
$TMP_FILE="/tmp/acl_rename.tmp";
$TMP_FILE2="/tmp/acl_rename2.tmp";
while ($str=)
{
if (index($str,"|rename|ok|")!=-1)
{
  @ar = split(/\|/,$str);
  $share=$ar[2];
  $action=$ar[3];
  $ok=$ar[4];
  $src=$ar[5];
  $dst=$ar[6];
  chomp($dst);
  $psrc=reverse(substr(reverse($src),index(reverse($src),"/")+1,1000));
  $pdst=reverse(substr(reverse($dst),index(reverse($dst),"/")+1,1000));
  if ($psrc ne $pdst)
  {
   qx "find '/$PATH_SHARE/$share/$dst' > $TMP_FILE2";
   open(F2, $TMP_FILE2) or die "Ошибка открытия файла в acl_rename";
   @f2 = ;
   close(F2) or die "Ошибка закрытия файла в acl_rename";
   foreach $j (@f2)
   {
    chomp($j);
    $pj=reverse(substr(reverse($j),index(reverse($j),"/")+1,1000));
    qx "getfacl '$pj' > $TMP_FILE 2>/dev/null";
    open(F1, $TMP_FILE) or die "Ошибка открытия файла в acl_rename";
    @f1 = ;
    close(F1) or die "Ошибка закрытия файла в acl_rename";
    open(F1, ">$TMP_FILE") or die "Ошибка открытия файла в acl_rename";
    $f1[0] = "# file: $j\n";
    if (-d "$j")
     {
      print F1 @f1,"\n";
     }
    else
     {
      foreach $i (@f1)
      {
       if (index($i,"default:")==-1)
        {
         print F1 $i;
        }
      }
     }
     close(F1) or die "Ошибка закрытия файла в acl_rename";
     qx "cd / && setfacl --restore=$TMP_FILE";
   }
  }
}
}
Запуск tail -n 0 -F /var/log/samba/full_audit.log | acl_rename.pl &
Теперь при перемещении файла или папки внутри шары, пермишены и acl не сохраняются, а назначаются равными той папке куда переместили.