Em muitos ambientes o compartilhamento Samba funciona perfeitamente… até o dia em que alguém pergunta:
“Quem deletou o arquivo?”
Se você usa apenas um compartilhamento simples como este:
[documentos]
path = /srv/samba/documentos
read only = no
browsable = yes
o Samba não registra quem excluiu arquivos.
E mesmo usando o módulo de lixeira (recycle), você só recupera o arquivo — não sabe quem apagou.
A solução correta é combinar lixeira + auditoria.
1. Ativando lixeira no compartilhamento
Adicione ao share:
[documentos]
path = /srv/samba/documentos
read only = no
browsable = yes
vfs objects = recycle
recycle:repository = .lixeira
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:directory_mode = 0777
recycle:subdir_mode = 0777
recycle:maxsize = 0
recycle:exclude = *.tmp,*.temp
recycle:exclude_dir = tmp,temp,cache
Agora, quando um arquivo for apagado, ele irá para:
/srv/samba/documentos/.lixeira
Preservando a estrutura original de diretórios.
2. Registrando quem apagou arquivos
Para logar exclusões usamos o módulo full_audit do Samba. (lembre-se que para este item funcionar, você deve trabalhar com hierarquia de usuários, caso contrário, o testparm aceita as alterações, mas o sistema pode apresentar falhas de acesso quando guest)
Ele registra operações como:
- exclusão
- criação
- renomeação
- escrita
Adicione ao mesmo compartilhamento:
vfs objects = recycle full_audit
full_audit:prefix = %u|%I|%S
full_audit:success = unlink rmdir rename
full_audit:failure = unlink rmdir rename
full_audit:facility = LOCAL7
full_audit:priority = NOTICE
O que cada variável significa
%u → usuário autenticado
%I → IP do cliente
%S → compartilhamento usado
3. Exemplo de log gerado
Quando um usuário excluir um arquivo:
joao|192.168.1.45|documentos|unlink|ok|contrato.pdf
Interpretação:
usuario | IP | share | operação | status | arquivo
Operações comuns:
unlink → exclusão de arquivo
rmdir → exclusão de diretório
rename → renomeação/movimentação
4. Onde os logs aparecem
Normalmente no syslog:
/var/log/syslog
ou
/var/log/messages
5. Separando logs de auditoria
Para criar um log exclusivo do Samba, use rsyslog.
Crie o arquivo:
/etc/rsyslog.d/samba_audit.conf
Conteúdo:
local7.* /var/log/samba_audit.log
Reinicie os serviços:
systemctl restart rsyslog
systemctl restart smbd
Agora os logs estarão em:
/var/log/samba_audit.log
6. Auditoria completa (recomendado)
Se quiser registrar também criação e edição de arquivos:
full_audit:success = mkdir rmdir open write unlink rename
Assim você passa a saber:
- quem criou arquivos
- quem alterou
- quem moveu
- quem apagou
7. Precisa compilar algo?
Não.
Os módulos recycle e full_audit já vêm compilados no Samba padrão das distribuições Linux.
Basta configurar e reiniciar o serviço.
Conclusão
Com duas linhas no vfs objects você ganha:
- lixeira de arquivos
- auditoria completa de exclusões
- registro de usuário e IP
Pequena configuração, enorme ganho de rastreabilidade.
