[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