Não se desespere mais quando arquivos forem apagados do Samba
Autor: Marcos Carvalho 9 de fevereiro de 2018
Olá amigos e usuários de Linux. Este artigo é para você, administrador de redes que trabalha com Samba nos servidores Linux e estações Windows.
Para quem não conhece a fundo, o Samba é um servidor para fazer a integração entre o Servidor Linux e Estações Windows, tornando esta comunicação transparente e compatível.
Com o Samba, seu servidor começa a “servir” arquivos para uma rede com clientes Windows e mantém a segurança do Linux.
Na seção [global] colocamos as seguintes linhas:
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:repository = /home/servidor/lixeira
recycle:exclude = *.~*, ~*.*, *.bak, *.old, *.iso, *.tmp
recycle:exclude_dir = temp, cache, tmp
Explicando linha a linha
A primeira linha refere-se a ativar a lixeira global, vfs objects = recycle
recycle:keeptree = yes // (yes/no) Mantém a estrutura de arquivos quando forem apagados, exemplo se vc apagou de um /compartilhamento/dir1/dir2, ficará salvo em /lixeira/dir1/dir2.
recycle:versions = yes // (yes/no) Mantém versões diferentes de arquivos apagados.
recycle:repository = dir // Pasta local que serão armazenados os arquivos apagados
recycle:exclude = masc1, masc2, masc3… // Máscara de arquivos que serão ignorados da lixeira, ou seja, quando estes arquivos forem apagados eles NÃO irão para a lixeira
recycle:exclude_dir = dir1, dir2… // Pastas que serão excluídas diretamente, sem passar pela lixeira
Para que o conteúdo da Lixeira fique disponível, temos que criar um compartilhamento que será responsável para armazenar estes arquivos
Dentro do smb.conf, lá no final colocamos
[lixeira]
path = /home/servidor/lixeira
writeable = yes
browseable = no
Desta forma, compartilhamos a pasta /home/servidor/lixeira, deixando ela com permissões de gravação (writeable) para todos, mas sem ficar à vista de todos (browseable).
Para você acessar a lixeira de outro computador voce digita no Explorer o seguinte \\nome_do_servidor_samba\lixeira
Explico: Se o compartilhamento de lixeira ficar disponível para todos, um usuário ao apagar seu arquivo, poderá um segundo usuário acessar a lixeira e pegar suas informações, mesmo sem ter as permissões necessárias.
LEIA Comandos de rede obsoletos no Linux e seus sucessores
Aqui é um problema da lixeira, mas podemos corrigir da seguinte forma:
Na seção Global colocamos assim:
recycle:repository = /home/servidor/lixeira/%U
Desta forma, cada usuário que apagar seu arquivo, irá para a pasta /home/servidor/lixeira/nome_do_usuario
Assim fica mais fácil de cada um controlar o seu, e você como administrador, pode logar como root e controlar tudo.
Mas temos que mudar no compartilhamento da lixeira também:
path = /home/servidor/lixeira/%U
Desta forma, cada usuário terá acesso somente aos arquivos apagados por ele mesmo.
Tem outra opção também, depois de tudo configurado, imagine que você tem um compartilhamento e quer a Lixeira em outra pasta
Então na configuração do [compartilhamento] edite:
recycle:repository = lixeira
Desta forma, os arquivos ficarão dentro do path/lixeira do compartilhamento específico. Você também pode usar o “.” antes do “lixeira”, ficando “.lixeira”, isto significa que a pasta lixeira ficará oculta.
Bom, depois de habilitar a lixeira, seria interessante também termos um log descente do nosso servidor.
Para isso, editamos novamente na seção [Global] e colocamos o log e a lixeira juntos
vfs objects = recycle, full_audit # Esta linha habilita o log e a lixeira
# Aqui a configuração do log
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown
log file = /home/servidor/logs/%U.log
max log size = 100
vfs objects = full_audit
full_audit:prefix = %u|%I|%S|%
Com este log, você pode verificar tudo que está acontecendo no seu samba. Para ficar mais simples, criamos um compartilhamento para ele e somente com acesso para quem precisa mesmo.
[Logs]
path=/home/servidor/logs
browseable = true
valid users = marcos
admin users = marcos
E pronto, do seu computador, poderá estar vendo o que acontece no Samba da sua rede toda.