Em ambientes compartilhados via Samba, a exclusão acidental de arquivos pode ser um problema sério. Felizmente, o Samba oferece o módulo vfs_recycle, que implementa uma lixeira funcional dentro de cada compartilhamento. Este post mostra como ativar esse recurso no Samba 4 rodando em Debian 12, com explicações técnicas, exemplos e boas práticas.
Pré-requisitos
- Debian 12
- Samba 4 instalado
- Compartilhamento já configurado
O módulo vfs_recycle já vem incluído no pacote principal do Samba. Nenhum pacote extra é necessário.
Verificando o módulo vfs_recycle
Para confirmar que o módulo está disponível:
smbd -b | grep VFS
A saída deve incluir:
VFS modules: recycle, ...
Ou para ver os objetos VFS habilitados:
testparm -v | grep vfs
Exemplo prático: Ativando a lixeira no compartilhamento
Suponha um compartilhamento já existente como este:
[documentos]
path = /srv/samba/documentos
read only = no
browsable = yes
Adicione abaixo dele as seguintes linhas:
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
Essas configurações criam uma pasta .lixeira oculta no diretório compartilhado, onde arquivos deletados são movidos automaticamente.
Explicação dos parâmetros
| Parâmetro | Descrição |
|---|---|
vfs objects | Ativa o módulo recycle |
recycle:repository | Nome da pasta onde os arquivos excluídos serão salvos |
recycle:keeptree | Mantém a estrutura de diretórios original |
recycle:versions | Evita sobrescrever arquivos repetidos |
recycle:touch | Atualiza a data de acesso e modificação |
recycle:directory_mode | Permissão da pasta .lixeira |
recycle:subdir_mode | Permissão dos subdiretórios dentro da lixeira |
recycle:maxsize | Tamanho máximo do arquivo para ir à lixeira (0 = sem limite) |
recycle:exclude | Tipos de arquivos que não devem ir para a lixeira |
recycle:exclude_dir | Diretórios dentro do compartilhamento que ignoram a lixeira |
Criando a pasta .lixeira manualmente (opcional)
O Samba cria automaticamente a pasta .lixeira no primeiro uso, mas se preferir definir permissões antes:
mkdir -p /srv/samba/documentos/.lixeira
chmod -R 777 /srv/samba/documentos/.lixeira
chown -R nobody:nogroup /srv/samba/documentos/.lixeira
Ajuste nobody:nogroup de acordo com o usuário e grupo utilizados no seu compartilhamento.
Reinicie o Samba
Depois de editar o smb.conf, reinicie o serviço:
sudo systemctl restart smbd
Testando
- Acesse o compartilhamento via Windows ou Linux.
- Exclua um arquivo.
- Verifique se o arquivo aparece em
.lixeira.
Considerações
- A lixeira é local a cada compartilhamento, ou seja, cada
[share]terá sua própria pasta.lixeira. - Esse método funciona tanto para compartilhamentos simples como para servidores Samba integrados ao Active Directory.
- Caso esteja usando ACLs avançadas, POSIX ou integração com Winbind, o uso de
recycle:directory_modeesubdir_modepode ser omitido, desde que os ACLs estejam corretamente definidos.
