[FUG-BR] [OFF-TOPIC] Prevenção contra arquivos apagados

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quinta Agosto 2 20:18:32 BRT 2007


Mario Augusto Mania wrote:
> Bem, vamos lah :)
> 
> Basicamente, voce precisaria saber como os arquivos estao sendo
> apagados. Por exemplo:
> 
> Digamos que seu cliente usou rm atraves do ssh para apagar. Uma
> solucao seria vc renomear o rm para rm.bsd, e "criar" um rm novo
> (shell scrip, perl, python, etc... etc..) que, ao inves de apagar o
> arquivo, ele "moveria" o arquivo para um diretorio secreto, por
> exemplo /home/usuario/.Lixeira/, e criaria um arquivo texto com o nome
> igual ao do arquivo acrescido de .path_original, onde dentro deste
> arquivo ele gravaria o path de onde o arquivo estava. A partir dae eh
> soh criar uma interface para ele acessar a lixeira e restaurar os
> arquivos caso ele precise, e ainda definir no cron a execucao
> periodica de um script que "apaga de verdade" os arquivos da lixeira
> mais velhos que N dias.
> 
> bem... lah vem eu novamente com minhas gambiarras hehehehe

HAHAHA eu ja tive que fazer essa gambiarra na epoca de faculdade, quando 
morava em republica; receita da gambi:

mkdir ~/.lixeira
echo 'alias rm "mv \!* ~/.lixeira/"' >> /etc/csh.cshrc

Ai beleza, os individuos iam apagar os arquivos sem pensar duas vezes:

# : > arq1
# rm arq1

E la estava ele:

# ls ~/.lixeira/
arq1

Iam apagar varios:

# : > arq2
# : > arq3
# rm arq*
# ls ~/.lixeira/
arq1    arq2    arq3

Apagar com force e/ou verbose:

# : > arq4
# rm -fv arq4
arq4 -> /usr/home/eksffa/.lixeira/arq4

Apagar a lixeira. E agora? como apagar a lixeira? hehehe

# \rm -rf ~/.lixeira/*
# ls ~/.lixeira/

E beleza, ate que alguem decidiu apagar recursivamente:

# mkdir dir1
# :> dir1/arq1
# rm -rf dir1
mv: illegal option -- r
usage: mv [-f | -i | -n] [-v] source target
        mv [-f | -i | -n] [-v] source ... directory

hahahahha, e ai o que fazer? Simples, instaurar uma regra a mais na 
republica (toda republica tem centenas de regras mesmo, uma a mais ou a 
menos): "Regra 479 - Nunca remover arquivos recursivamente do servidor"

Obviamente, essa regra nao agradou, entao nao funcionou por muito tempo, 
ai a gambiarra piorou:

mv.c.super.gambi.patch:
--- /usr/src/bin/mv/mv.c.orig
+++ /usr/src/bin/mv/mv.c
@@ -82,7 +82,7 @@
         int ch;
         char path[PATH_MAX];

-       while ((ch = getopt(argc, argv, "finv")) != -1)
+       while ((ch = getopt(argc, argv, "finvr")) != -1)
                 switch (ch) {
                 case 'i':
                         iflg = 1;
@@ -98,6 +98,8 @@
                         break;
                 case 'v':
                         vflg = 1;
+                       break;
+               case 'r':       /* super gambi de compatibilidade */
                         break;
                 default:
                         usage();

# cd /usr/src/bin/mv
# patch -p0 < mv.c.super.gambi.patch
# make clean && make && make install

E ai:

# rm -rf dir1
# ls ~/.lixeira/
arq1    arq2    arq3    arq4    dir1
# ls ~/.lixeira/dir1/
arq1

HAHAHAHA acho que foi a coisa mais gambiarrenta que eu lembro de ter 
feito...

Pior que tem gente nessa lista que mora na mesma republica que eu, 
espero que nao lembrem de alguma gambiarra pior pra entregar hahaah.

Alias lembro de uma certa pessoa, (presente nessa lista), que estudou 
tecnicas de "obfuscacao de codigo em C" pra escrever um tal de 
"super_winsmasher.c" pra enviar pra um "amigo hacker" Linuxer... e que 
no final adicionava um usuario com uid 0 no /etc/shadow (hehe, passa o 
tempo e esses sistemas continuam aceitando ssh de root, autenticando 
usuario em arquivo de texto... cada coisa...).

Provavelmente foi a segunda coisa mais horrivel que aconteceu na 
republica hehe. Porque eram coisas bobas, e tinha realmente que ter 
tempo sobrando pra fazer coisas tao inuteis. Chacotagem =P

Ok, passei dos limites de "off topic". Essa merecia ir pra 
chat em fug.com.br =P

-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd