Como Ativar a Lixeira no Samba 4 (Debian 12)

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âmetroDescrição
vfs objectsAtiva o módulo recycle
recycle:repositoryNome da pasta onde os arquivos excluídos serão salvos
recycle:keeptreeMantém a estrutura de diretórios original
recycle:versionsEvita sobrescrever arquivos repetidos
recycle:touchAtualiza a data de acesso e modificação
recycle:directory_modePermissão da pasta .lixeira
recycle:subdir_modePermissão dos subdiretórios dentro da lixeira
recycle:maxsizeTamanho máximo do arquivo para ir à lixeira (0 = sem limite)
recycle:excludeTipos de arquivos que não devem ir para a lixeira
recycle:exclude_dirDiretó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

  1. Acesse o compartilhamento via Windows ou Linux.
  2. Exclua um arquivo.
  3. 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_mode e subdir_mode pode ser omitido, desde que os ACLs estejam corretamente definidos.
Rolar para cima