Servidor Samba: Lixeira

Enviado por Giovanni No dia 20 de abril de 2008 às 7:04 Linux
Enviar por E-Mail Enviar por E-Mail Imprimir Imprimir

Lançamentos Submarino

Box Coleção The L Word - A Série Completa (6 Temporadas)- 23 DVDs
Box Coleção The L Word - A Série Completa (6 Temporadas)- 23 DVDs
 R$ 199,90 
Veja mais
[ Compare Preços ]
DVD Todo Poderoso: O Filme - 100 Anos do Timão
DVD Todo Poderoso: O Filme - 100 Anos do Timão
 R$ 29,90 
Veja mais
[ Compare Preços ]
Edição Lata: DVD A Saga Crepúsculo - Lua Nova + Ingresso
Edição Lata: DVD A Saga Crepúsculo - Lua Nova + Ingresso
 R$ 59,90 
Veja mais
[ Compare Preços ]

Vitrine Submarino 3.4.1

Um recurso que muitos administradores de sistemas sonham em implementar em seus servidores, é uma lixeira de rede. O funcionamento básico dela seria armazenar arquivos que usuários apaguem via rede, evitando com isso que o administrador tenha que ficar rodando rollbacks sempre que alguém comete um erro e toca fogo em um arquivo "importante".

Afinal, para todos os usuários, todos os arquivos deletados são "importantes". Ele nunca deleta algo de que não preciso. Incrível.

Mas, para que o administrador possa dormir tranqüilo, há um meio simples de se fazer esta implementação.


Eu subentendo que você já está com o Samba instalado e rodando perfeitamente e que quer habilitar a lixeira nele. Para tal, antes de qualquer coisa, veja se os arquivo "recycle.so" está no diretório /usr/lib/samba/vfs, pois sem este arquivo este tutorial não servirá para nada.

Implementando a lixeira na rede

Crie um diretório que será a lixeira para sua rede Samba:

PERL:
  1. mkdir -p /var/spool/samba/lixeira

O nome do diretório é você que irá definir. Caso você queira que os seus usuários tenham acesso à lixeira (não recomendo por questões de segurança), basta dar permissão global neste diretório e criar links simbólicos diretamente para o diretório escolhido.

Agora que você já criou o local em que será a sua lixeira, está na hora de sujar as mãos com um pouquinho de código.

Edite o arquivo /etc/samba/smb.conf e acrescente as linhas abaixo na sessão [Global] se a lixeira for ser utilizada para todos os volumes compartilhados ou, então, apenas em um dos seus [compartilhamentos]:

PERL:
  1. vfs objects = recycle
  2. recycle:facility = LOCAL1
  3. recycle:priority = NOTICE
  4. recycle:maxsize = 0
  5. recycle:repository = /var/spool/samba/lixeira/%U
  6. recycle:directory_mode = 0777
  7. recycle:subdir_mode = 0777
  8. recycle:keeptree = Yes
  9. recycle:touch = True
  10. recycle:exclude = *.tmp, *.temp, *.log, *.ldb, *.o, *.obj, ~*.*, *.bak
  11. recycle:exclude_dir = tmp, temp, cache
  12. recycle:versions = Yes
  13. recycle:noversions = .doc|.xls|.ppt|*.dcl

Algumas explicações sobre o que foi feito acima:

PERL:
  1. recycle:facility = LOCAL1
  2. recycle:priority = NOTICE

Isso significa que um arquivo de log será usado para registrar a movimentação da sua lixeira.

Esse log gravado por meio do syslogd do seu sistema e você vai ter que configurá-lo manualmente.

Quando tentei fazer isso pela última vez eu não consegui. Os logs não eram criados. Acredito eu que o módulo "recycle", apesar de ter a opção, não gere os logs.

PERL:
  1. recycle:maxsize = 0

Nesta linha de código voce limita o tamanho de cada arquivo que poderá ser armazenado na lixeira. O número zero, como no exemplo, significa que não tem limite.

PERL:
  1. recycle:repository = /var/spool/samba/lixeira/%U

Neste código, você informa ao Samba em qual endereço está a sua lixeira. A tag %U é o nome do seu usuário. Com isso, você garante que todos os arquivos deletados pelo usuário A só estarão acessíveis a ele mesmo.

PERL:
  1. recycle:directory_mode = 0777
  2. recycle:subdir_mode = 0777
  3. recycle:keeptree = Yes
  4. recycle:touch = True

Aqui você determina as permissões dos diretórios. Além disso, aqui você define também se o Samba deverá guardar o nome do diretório de onde o arquivo fora excluído (keeptree) e se a data do arquivo deletado vai ser alterada para a data da exclusão (touch).

PERL:
  1. recycle:exclude = *.tmp, *.temp, *.log, *.ldb, *.o, *.obj, ~*.*, *.bak, *.iso
  2. recycle:exclude_dir = tmp, temp, cache

Aqui é algo que é necessária uma dose de atenção e cautela. Você está definindo aquilo que não será armazenado na lixeira em hipótese alguma. Significa dizer que o que estiver ali nestas regras, será deletado de vez sem passar pela lixeira. Use este recurso com cautela para não ter dores de cabeça no futuro.

PERL:
  1. recycle:versions = Yes
  2. recycle:noversions = .doc|.xls|.ppt

Aqui este código faz o seguinte:

versions: verifica a existência do arquivo na lixeira, e caso exista um arquivo com o mesmo nome, ele cria uma cópia dele e armazena ambos. Assim sucessivamente, enquanto o seu usuário não parar de deletar arquivos de mesmo nome.

noversion: este é exatamente o contrário do anterior. Tudo o que estiver neste parâmetro irá sobrescrever o anterior. Significa dizer que se o usuário excluir mais de um arquivo com o mesmo nome, somente o último estará lá, guardadinho para ele. E baubau para o primeiro.

That's All Folks

Bem, espero que este artigo tenha alguma serventia. Eu senti muita falta de algo assim quando precisei fazer uma implementação desta em um cliente, e não encontrei nada muito simples pela Internet. Este script já tenho aqui guardadinho há algum tempo, e resolvi postá-lo, pois, com certeza, existem outras pessoas com esse mesmo problema, visto que há pouquíssima informação sobre o assunto.

Nota: Não me responsabilizo por nenhuma alteração indevida no seu sistema. Faça-o por sua conta e risco. Faça sempre backups antes de quaisquer alterações.

Popularidade: 11%


Comentários

Só 1 comentário ainda ... sobre o artigo “Servidor Samba: Lixeira”

  1. Ricardo, no dia 20 de maio de 2010 às 13:24, disse:
    Parabéns pelo simples e direto tutorial sobre a lixeira.

    O seu tuto, até agora, é o mais completo que encontrei. Estava procurando há muito tempo algum artigo que me explicasse com algum detalhe cada opção da Lixeira.

    Parabéns, sei que já se fazem dois anos que ele fora escrito, mas é ótimo.
    Parabéns de novo

    Responder


Nota: O Buteco de Bits não é democrático. Aqui eu escolho se um comentário ficará ou não. Caso eu julgue que um comentário é inapropriado, ele será apagado e/ou nem será aprovado.

Quer a sua foto aparecendo aqui? Cadastre-se no Gravatar para que ela apareça aqui e nos outros blogs que utilizem esta tecnologia. É GRÁTIS.


Trackbacks

Endereço para trackbacks:
http://www.butecodebits.com.br/2008/04/20/servidor-samba-lixeira/trackback

Deixe o seu comentário







 
       
Copyright 2008 - 2009 © Buteco de Bits
Todos os Direitos Reservados.