Sabia que...
------------------

Area destinada a pequenas curiosidades que por vezes nos passam despercebidas, mas que se acham de grande utilidade...

SABIA QUE:

...(Esta ja' e' velhinha, mas que por vezes nos esquecemos...) Para descobrir quais as directorias a que temos permissoes de leitura, ou melhor, quais as directorias a que o user que esta ligado tem permissoes de leitura, pode-se utilizar a opcao recursiva do comando 'ls'!
Se, escrevermos na linha de comandos "$ls -Ral", o processo entra num processo recursivo, e "vai entrando" nas directorias, a que o user que executou o programa, possui permissoes de leitura!
Por exemplo, se fizermos "ls -Ral", na raiz, ficaremos a saber quais as directorias de todo sistema a que possuimos permissoes de leitura. Ou melhor, para poupar tempo, o melhor e' verificar apenas quais as directorias de outros users, a que temos permissoes de leitura, visto que as subdirectorias directas da raiz possuem um sistema de permissoes standartizado, porem as directorias dos outros utilizadores estao sujeitas a "esquecimentos"!!:)) "ls -Ral /home"....As flags 'al' dao-nos in- formacao relativa as permissoes dos ficheiros listados. Claro de o melhor e' redireccionar o output do comando para um ficheiro para posterior apreciacao:))))))


....Para "hackar" o totoloto (era bom nao era?!??:))))))), EXISTE UMA MANEIRA??!! Pois e',...basta que se preencham boletins com todas as combinacoes possiveis de chaves de seis algarismos!
Ou seja, isto e':

- Todas as combinacoes de 49 seis a seis (uma notacao: 49 C 6), o que mais ou menos...e n C x e' igual a n!/(x!*(n-x)!) (n! == n factorial) o que para o caso concreto do totoloto, significa 49!/(6!*(49-6)!), o que significa que existem 13.983.816 (quase 14 milhoes) de combinacoes possiveis.
- E' necessario correr um programa que nos diga quais as combinacoes possiveis, visto que e' impossivel a mente humana resolver este problema, corra este pequeno programa e vera' comb.c.
Num Pentium a 166 MMX, a correr em sistema Linux, com apenas os processos do sistema a correr, eis o output do programa:

Gerador iniciado em: Thu Feb 12 14:43:11 1998
Terminado em : Thu Feb 12 15:40:16 1998
Combinacoes geradas: 13983816

Como podem, numa maquina com um poder de computacao razoavel, o programa demorou cerca de uma hora a gerar todas as combinacoes possiveis !!!

- Depois, como cada boletim permite por 10 chaves diferentes, sao necessarios 13.983.816/10 boletins, que da' aproximadamente 1.398.382 boletins.
- Com uma media de 2 minutos para preencher cada boletim, ja com o desconto de tempo previsto pelo cansaco de tal tarefa sao necessarios 2*1.368.382 minutos que feitos os calculos demoraria cerca de 1.942 dias a completar, cerca de 5 anos e tres meses!!!!!!!!!!!!!
- Se se demorar 20 segundos a registar cada boletim num estabeleci- mento comercial comum, o total de tempo gasto seria de cerca de 135 dias.
- Agora em termos de custos, a' data da escrita deste artigo, o custo do registo de um boletim e' de 400$00, logo seriam necessarios 400*1.398.382 escudos, o que da' mais uns trocos menos qualquer coisa: 559.352 contos (aprox. 3.729.013 dolares)!!!!!!!!!

Mesmo que o trabalho seja dividido por um grande numero de pessoas tal tarefa e' quase sempre impossivel de realizar!!Pena, nao e'?????? Mas como podem ver e' teoricamente possivel, portanto um dia que tenham um esgotamento nervoso e a vossa capacidade de raciocinio fique afectada ja' tem como passar o tempo!


...Que se se criar um ficheiro cujo primeiro caracter e' '-' (o hifen, ou o menos aritmetico), e' uma carga de trabalho para o manipular na linha de comandos? E so' atraves de interfaces graficos, em que nao seja necessario analisar a matriz de strings de uma linha de comandos, e' se torna possivel fazer operacoes basicas, como por exemplo remover esse ficheiro! (isto numa shell Unix).
Por exemplo, vamos criar um ficheiro com estas caracteristicas,

$echo "isto e um teste" > -lixo

e criamos o ficheiro -lixo, agora tente fazer na linha de comandos 'rm -lixo'!! A resposta e':

rm: illegal option -- l
Try `rm --help' for more information.

Isto deve-se a maneira como os programas analisam os parametros que lhes sao dados na linha de comandos. O codigo que faz esta analise, assemelha-se mais ou menos a isto:

        for(i=0; i<argc; i++){
           if(argv[i][0]=='-'){
                         switch(argv[i][1]){
                        
                         case 'x':{
			           ...
				   }
				em que aqui se analisa os parametros dados a
                                seguir ao '-', eg. -a
				etc...
				
                          }
                       }
                    } 
Ora se o nome do ficheiro tiver como primeiro caracter o '-', a string sera' interpretada como uma flag, e no exemplo dado, como a flag 'l', que no caso do comando 'rm', nao existe e da' esta mensagem de erro!!
Coisas mais maleficas podem ser feitas, se por exemplo um comando tiver como flag qualquer coisa como por exemplo, dados inseridos a seguir a flag de opcao do genero '-lXXXXX', entao neste caso num comando que aceitasse a flag '-l', XXXXX seria aceite como uma introducao de dados e sabe-se la o que aconteceria!!!

Geralmente este tipo de ficheiros apenas se consegue manipular usando interfaces graficas como o File Manager, cuja analise de argumentos nao se faz da maneira descrita.


...Que 99% dos akarus que se dizem anti-Microsoft, ou anti-Microshit, como e c00l dizer, nao sabem porque o sao? E que 98% dos anti-Microsoft, tem conhecimentos nulos de programacao e desenvolvimento de software? E que 97% dos anti-Microsoft tem pelo menos uma aplicacao da Microsoft instalada no sis- tema para uso frequente? E que 96% dos anti-Microsoft nao sabem nomear tres vantagem do Linux sobre o Windows 95? E que 95% dos anti-Microsoft que usam o Linux nao tiram um terco das potencialidades deste? E que a resposta mais fre- quente dos akarus anti-Microsoft, quando lhes perguntam em que e' que o Linux, e' melhor que o Windows, e' que o Linux e mais "potente" (seja la' o que enten- deram por potencia de um sistema operativo)?

Conclusao: realmente o Linux tem muitas vantagens sobre o Windows, mas quase ninguem as sabe em termos practicos!