Linux

IBM

IBM WebSphere eXtreme Scale Image via Wikipedia

IBM

Once upon a time, the computer company most hackers loved to hate; today, the one they are most puzzled to find themselves liking.
From hackerdom's beginnings in the mid-1960s to the early 1990s, IBM was regarded with active loathing. Common expansions of the corporate name included: Inferior But Marketable; It's Better Manually; Insidious Black Magic; It's Been Malfunctioning; Incontinent Bowel Movement; and a near-{infinite} number of even less complimentary expansions (see also {fear and loathing}). What galled hackers about most IBM machines above the PC level wasn't so much that they were underpowered and overpriced (though that counted against them), but that the designs were incredibly archaic, {crufty}, and {elephantine} ... and you couldn't fix them -- source code was locked up tight, and programming tools were expensive, hard to find, and bletcherous to use once you had found them.
We didn't know how good we had it back then. In the 1980s IBM had its own troubles with Microsoft and lost its strategic way, receding from the hacker community's view. Then, in the 1990s, Microsoft became more noxious and omnipresent than IBM had ever been.
In the late 1990s IBM re-invented itself as a services company, began to release open-source software through its AlphaWorks group, and began shipping {Linux} systems and building ties to the Linux community. To the astonishment of all parties, IBM emerged as a staunch friend of the hacker community and {open source} development, with ironic consequences noted in the {FUD} entry.
This lexicon includes a number of entries attributed to `IBM'; these derive from some rampantly unofficial jargon lists circulated within IBM's formerly beleaguered hacker underground.

Related articles by Zemanta
Reblog this post [with Zemanta]

Marcadores: , , , , , , , ,



# 5/31/2009 01:31:00 AM, Comentários, Links para esta postagem,

userland

A diagram showing the key Unix and Unix-like o... Image via Wikipedia

userland:

Anywhere outside the kernel. "That code belongs in userland." This term has been in common use among Unix kernel hackers since at least 1985, and may have have originated in that community. The earliest sighting was reported from the usenet group net.unix-wizards.

Related articles by Zemanta
Reblog this post [with Zemanta]

Marcadores: , , , , , , , ,



# 5/16/2009 01:31:00 PM, Comentários, Links para esta postagem,

Lintel

Lintel:

The emerging {Linux}/Intel alliance. This term began to be used in early 1999 after it became clear that the {Wintel} alliance was under increasing strain and Intel started taking stakes in Linux companies.

Related articles by Zemanta
Reblog this post [with Zemanta]

Marcadores: , , , ,



# 5/15/2009 07:31:00 PM, Comentários, Links para esta postagem,

Tux

Tux

Tux the Penguin is the official emblem of {Linux}, This eventuated after a logo contest in 1996, during which Linus Torvalds endorsed the idea of a penguin logo in a couple of famously funny postings. Linus explained that he was once bitten by a killer penguin in Australia and has felt a special affinity for the species ever since. (Linus has since admitted that he was also thinking of Feathers McGraw, the evil-genius penguin jewel thief who appeared in a Wallace & Grommit feature cartoon, The Wrong Trousers.)

Larry Ewing designed the official Tux logo. It has proved a wise choice, amenable to hundreds of recognizable variations used as emblems of Linux-related projects, products, and user groups. In fact, Tux has spawned an entire mythology, of which the Gospel According to Tux and the mock-epic poem Tuxowolf are among the best-known examples.

There is a `real' Tux -- a black-footed penguin resident at the Bristol Zoo. Several friends of Linux bought a zoo sponsorship for Linus as a birthday present in 1996.


Marcadores: ,



# 5/15/2009 12:31:00 PM, Comentários, Links para esta postagem,

seggie

seggie

[Unix] Shorthand for segmentation fault reported from Britain.


Related articles by Zemanta
Reblog this post [with Zemanta]

Marcadores: , , , , , ,



# 5/12/2009 10:31:00 PM, Comentários, Links para esta postagem,

Segurança: os 25 erros de programação mais perigosos

Os 25 erros de programação mais perigosos segundo a SANS

Saiu no site da SANS a lista criada com o consenso entre varios profissionais e empresas do ramo de segurança e desenvolvimento descrevendo os 25 erros de programação mais perigosos para o desenvolvimento seguro. Eu vou traduzir os nomes e informação básicos mas o melhor é ler o artigo na íntegra, em inglês.

Os erros estão separados em três categorias: Interação insegura entre componentes, Gerenciamento arriscado de recursos, Defensas porosas.

Categoria: Interação insegura entre componentes

  1. Validação Imprópria de Entradas: Entradas que recebem dados e os aceitam mesmo sem certificar que eles são do tipo/formato esperado.
  2. Codificação ou Escape Impróprios de Saída: Saídas que não são codificadas ou escapadas corretamente são a maior fonte de ataques de injeção de código.
  3. Falha ao Preservar a Estrutura da Busca, SQL (conhecido como Injeção de SQL): Se os atacantes podem influenciar as procuras SQL do seu programa, então eles podem controlar o seu banco de dados.
  4. Falha ao Preservar a Estrutura do Código da Página (conhecido como "Cross-site Scripting"): Assim como o anterior, se os atacantes podem injetar código ou scripts em sua página, eles podem controlar a página.
  5. Falha ao Preservar a Estrutura de Comandos do Sistema Operacional: Se você permitir que entradas ilegais sejam passadas para aplicativos do sistema operacional, o atacante pode controlar o servidor.
  6. Transmissão de Dados Sensíveis em Texto Puro: Senhas, dados de cartão e qualquer informação considerada sensível deve ser criptografada.
  7. Falsificação de Requisição Entre Sites: Um atacante pode criar uma requisição que é enviada a outro site forjando a origem e fazendo o mesmo partir de um usuário inocente, aproveitando credenciais de autenticação e acessos.
  8. Condição de Corrida: Atacantes vão sempre procurar por condições de corrida no software para conferir se alguma informação importante não é obtida no processo.
  9. Vazamento de Informações em Mensagens de Erro: Atacantes vão procurar por mensagens de erro que descrevam mais que o necessário, como nomes de campos SQL, objetos e bibliotecas sendo utilizadas.

Categoria: Gerenciamento arriscado de recursos:

  1. Falha ao Limitar Operações aos Limites de um Buffer de Memória: O conhecido buffer overflow.
  2. Controle Externo de Dados Sensíveis: Informações críticas que são mantidas fora de um banco de dados por questões de performance não deviam ser facilmente acessíveis por atacantes.
  3. Controle Externo de de Caminho ou Nome de Arquivo: Quando você usa dados externos para montar um nome de arquivo ou caminho de gravação, você está se arriscando a ser atacado.
  4. Caminho de Procura Inseguro: Se o caminho de procura de recursos estiver em algum lugar sob controle de um atacante, bibliotecas ou código pode ser inserido a revelia.
  5. Falha ao Controlar a Geração de Código: Caso o atacante consiga influenciar a geração de código dinâmico (se geração de código dinâmico for utilizada no programa) ele poderá controlar todo seu código.
  6. Download de Código sem Verificação de Integridade: Se você executa código obtido por download, você confia na fonte. Atacantes podem aproveitar esta confiança.
  7. Desligamento ou Liberação Impróprias de Recursos: Arquivos, conexões e classes precisam ser corretamente encerradas.
  8. Inicialização Imprópria: Dados, bibliotecas e sistemas inicializados incorretamente podem abrir margens para problemas.
  9. Cálculos Incorretos: Quando o atacante tem algum controle sobre as entradas usadas em operações matemáticas, isso pode gerar vulnerabilidades.

Categoria: Defensas porosas:

  1. Controle de Acesso Impróprio: Se você não garante que seus usuários estão fazendo apenas o que deviam, os atacantes irão se aproveitar de sua autenticação.
  2. Uso de um Algoritmo Criptográfico Quebrado ou Vulnerável: Utilização de algoritmos fracos ou comprometidos levam a falhas de criptografia e vulnerabilidades.
  3. Senha no Código: deixar um usuário e uma senha no próprio código traz inúmeros problemas.
  4. Permissão de Acesso Insegura para Recurso Crítico: Configurações, arquivos de dados e bancos de dados devem ter suas permissões de acesso protegidas.
  5. Uso de Valores Insuficientemente Aleatórios: Se você usa tipos de segurança que dependem de aleatoriedade, usar um gerador aleatório insuficiente só vai causar problemas.
  6. Execução com Privilégios Desnecessários: Se seu programa precisa de privilégios elevados para executar suas funções, ele deve abrir mão destes direitos assim que ele termina de executar as ações que precisavam dos privilégios.
  7. Aplicação de Segurança do Lado do Servidor pelo Cliente: Atacantes podem usar engenharia reversa em um cliente de software e escrever seus próprios clientes removendo testes e aplicações de segurança.
Related articles by Zemanta

Marcadores: , , , , , ,



# 3/12/2009 04:21:00 PM, Comentários, Links para esta postagem,

download free games

Related articles by Zemanta

Marcadores: , , , ,



# 3/02/2009 11:12:00 PM, Comentários, Links para esta postagem,

Linux: comandos básicos

Tar (file format) Image via Wikipedia
Linux: comandos básicos


Básicos
ls [-al]: listagem do diretório.
cp [-ir]: copiar arquivos.
mv [-i]: mover ou renomear arquivos.
rm [--]: remover arquivos.
mkdir/rmdir: cria/remove diretórios.
ln -s path link: cria links simbólicos (symlinks) para arquivos ou diretórios.

Outros comandos

file: determina o tipo do arquivo (/etc/magic).
cat: mostra o conteúdo do arquivo na tela.
head / tail: mostra linhas no inicio / fim do arquivo.
less / more: lista o conteúdo do arquivo.
man filename: manual online do programa.
ctrl+alt+del/reboot: reinicia o sistema.
shutdown -h now/halt: desliga o computador.

Combinações

CTRL+C: sai (kill) do programa.
CTRL+ALT+BackSpace: sai (kill) do servidor X.
CTRL+L: limpa a tela.
CTRL+A / E: move o cursor para o início / fim da linha.
CTRL+U / K: remove da posição do cursor até o início / fim da linha.
CTRL+H: remove palavra anterior ao cursor.
CTRL+R: busca comando digitado no history do bash.
CTRL+D: logout (para isto altere ou unset a var. $IGNOREEOF).

Processos

CTRL+Z: suspende o processo temporariamente.
top: os processos que consomem mais recursos do sistema.
jobs: lista as tarefas rodando em fore/background.
bg/fg: manda processo para o back/foreground.
nice/renice: altera prioridades.
ps -auxw: lista todos os processos do sistema:
PID (process id), TTY (terminal ou ? caso seja um daemon), STAT (estado do processo), TIME (tempo de CPU consumido), COMMAND (o comando executado).
pstree -p: idem.
time: calcula o tempo decorrente do início ao término de um processo. # time updatedb real 1m42.233s user 0m0.490s sys 0m10.290s

Matando processos

kill: as opções mais comuns são (onde id é o mesmo que PID):
kill -HUP id-do-processo: reinicia processo.
kill -9 id-do-processo: mata processo.
killall processo: mata processo pelo nome.
killall -HUP processo: reinicia processo pelo nome.

Permissões

As permissões dos arquivos são definidas através dos comandos chmod, chown e chgrp.
Estrutura do comando:
chmod
Ao listar as informações de um arquivo ou diretório, o formato é o seguinte: drwxrwxrwx.
Respectivamente: diretório (d), permissão do dono (read/write/execute), do grupo (read/write/execute) e de outros (read/write/execute).
Por exemplo, para transformar um arquivo em executável:
• chmod +x nome_do_arquivo (executável para todos)
• chmod g+x nome_do_arquivo (executável para o grupo)
Para alterar o usuário e o grupo de um arquivo ou diretório:
• chown root.root /sbin/firewall.sh (-R: recursivamente)
Outros exemplos:
• chmod 755 (executável): -rwxr-xr-x
• chmod 4700 (suid) set user id para programas que precisam rodar com permissão de root: -rws------
Para calcular o valor numérico das permissões, basta considerar o valor do executavel como 1, de escrita como 2 e de leitura como 4, que seria o equivalente decimal aos bits:
rwx = 111 (todos bits ligados) = 2**2 + 2**1 + 2**0 = 7
Dessa forma, uma permissao de leitura e escrita (4+2) para o owner, e de leitura apenas para os outros teria o valor 644. Para calcular a umask, que seria a máscara de permissão aplicada na criação de um novo arquivo, basta então subtrair 666 (ou 777 para diretórios) resultando em umask 022.
Como se encontrar no sistema

Localizar arquivo por nome:

find [path...] -name [nome_do_arquivo]
find . -name slackware.png
find / -name "*.png" -print (arquivos png do dir. atual)
find /home -size +5000k -print (arquivos com mais de 5Mb)

Local de um binário:

whereis (ou which) [nome_do_arquivo]
which gcc
gcc: /usr/bin/gcc

Outros:

cd - : alternar entre diretórios
pwd: listar caminho atual

Criando arquivos compactados

>> tar.gz
É possível criar tarfile (tarball) da seguinte forma:
tar -c file1 file2 > foo.tar
Para 'zipar' o tar a mesma coisa:
gzip -c file1 file2 > foo.tar.gz
Ou então:
tar -cvzf diretorio.tar.gz diretorio/
tar.bz2
Troque o 'z' pelo 'j' para criar arquivos bzip2.
tar -jxvf arquivo.tar.bz2 (descompactanto bz2)

>> zip
zip -r filename.zip files

O editor vi(m)

a / i: adiciona texto (append/insert).
y / p: copiar e colar (copy/paste).
x: remover letra.
/: buscar palavra (n: next N: prev).
u: desfazer (undo).
v: selecionar texto (visual).
:edit file: cria novo buffer.
:ls: lista buffers.
:buffer N: edita buffer N.
:bdelete: remove buffer.
:so \$VIMRUNTIME/syntax/2html.vim: converte source em html.
:ab SW slackware: cria abreviação (abclear: remove abs.)
map :qa! : mapeia tecla (adicione em .vimrc)
Para gravar digite ESC seguido por :wq (write and quit), :q! (sair sem gravar) ou :qa! (fechar todos).






Related articles by Zemanta

Marcadores: , , , , , , , ,



# 10/17/2008 05:15:00 AM, Comentários, Links para esta postagem,

Can't connect to [local] MySQL server

Flickr MySQL error Image by Gea-Suan Lin via Flickr
Um cliente MySQL em Unix pode conectar ao servidor mysqld de dois modos diferentes: sockets Unix, que conectam através de um arquivo no sistema de arquivos (padrão /tmp/mysqld.sock) ou TCP/IP, que conecta através um número de porta. Sockets Unix são mais rápidos que TCP/IP mas só podem ser usados quando conectados ao servidor no mesmo computador. Sockets Unix são usados se você não especificar um nome de máquina ou se você especificar o nome de máquina especial localhost.

No Windows, se o servidor mysqld está rodando no 9x/Me, você só pode conectar via TCP/IP. Se o servidor estiver rodando no NT/2000/XP e o mysqld é iniciado com --enable-named-pipe, você também pode conectar com named pipes. O nome do named pipes é MySQL. Se você não der um nome de máquina quando conectar ao mysqld, um cliente MySQL tentará conectar primeiro ao named pipe, e se isto não funcionar ele irá conectar a porta TCP/IP. Você pode forçar o uso de named pipes no Windows usando . como nome de máquina.

O erro (2002) Can't connect to ... normalmente significa que não há um servidor MySQL rodando no sistema ou que você está usando um arquivo socket ou porta TCP/IP errado ao tentar conectar so servidor mysqld.

Inicie verificando (usando ps ou gerenciador de tarefas do Windows) que há um processo chamado mysqld executando em seu sistema! Se não houver nenhum processo mysqld, você deve iniciar um. Veja Secção 2.4.2, "Problemas Inicializando o Servidor MySQL".

Se um processo mysqld estiver em execução, você pode verificar o servidor tentando estas diferentes conexões (o número da porta e o caminho do socket devem ser diferente em sua consiguração, é claro):

shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h 'ip for your host' version
shell> mysqladmin --protocol=socket --socket=/tmp/mysql.sock version

Note o uso de aspas para traz em vez de aspas para frente com o comando hostname; isto provoca a saída de hostname (que é, o nome de máquina atual) para ser substituído no comando mysqladmin.

Aqui estão algumas razões pela quais o erro Can't connect to local MySQL server pode ocorrer:




Se você obter a mensagem de erro Can't connect to MySQL server on alguma_maquina, você pode tentar o seguinte para descobrir qual é o problema:

Related articles by Zemanta

Marcadores: , , , , , , , , , ,



# 7/27/2007 07:27:00 AM, Comentários, Links para esta postagem,

chmod: permissões para gravar, ler e executar arquivos e pastas

Resolvi montar essa pequena dica, sei que já existem várias, porém vou colocar algumas dicas do chmod, porque onde trabalho fizeram o favor de setar um chmod -R 777 na pasta /, aí o servidor ficou com permissão errada para todos os arquivos, tive que setar as permissões arquivo por arquivo comparando com outra máquina com mesmo sistema Slackware, pois não podíamoss desligar o servidor.

Exemplos de permissões nos arquivos:
drwxr-xr-x 19 root root 4096 Jan 5 16:56 ../
-rwxr-xr-x 1 root root 38812 Mar 9 2003 MAKEDEV*
-rw-r--r-- 1 root root 1162 Mar 9 2003 README.MAKEDEV
lrwxrwxrwx 1 root root 4 Oct 15 2003 X0R -> null
crw-rw---- 1 root root 10, 175 Mar 25 2001 agpgart
crw-rw---- 1 root root 1, 10 Mar 25 2001 aio
drwxr-xr-x 2 root root 4096 Jun 11 2002 amiraid/
crw-r--r-- 1 root root 10, 134 Jun 7 1996 apm_bios
crw-rw---- 1 root root 36, 8 Mar 25 2001 arpd
drwxr-xr-x 2 root root 4096 May 19 2002 ataraid/
crw-rw---- 1 root sys 10, 3 Jul 17 1994 atibm
crw-rw---- 1 root root 10, 186 Mar 25 2001 atomicps
crw-rw--w- 1 root sys 14, 4 Jul 18 1994 audio
crw-rw--w- 1 root sys 14, 20 Jul 18 1994 audio1
brw-r----- 1 root disk 29, 0 Feb 15 1995 aztcd
crw-r--r-- 1 root root 10, 128 May 24 1996 beep
drwxr-xr-x 2 root root 36864 Jun 3 2002 cciss/
lrwxrwxrwx 1 root root 8 Oct 15 2003 cdrom -> /dev/hdd
brw-r----- 1 root disk 24, 0 Jul 18 1994 cdu535
crw-rw---- 1 root root 67, 0 Mar 25 2001 cfs0

O primeiro caractere da string indica o tipo de arquivo. Se for "d" representa um diretório, se for "-" equivale a um arquivo.
É necessário ter um certo cuidado com as permissões. Por exemplo, do que adianta o usuário ter permissão de gravação se ele não tem permissão de leitura habilitada? Ele poderá ler o arquivo para poder modificá-lo? Não! De certo, isso tem utilidade em arquivos de log.

Fazendo associação com as letras r, w, x e o caractere -, vamos entender cada uma:
Atenção:
Vamos supor que o arquivo estava assim:
crwxrwxrwx 1 root disk 37, 128 Dec 11 1995 nht0


Dessa forma ele está errado. Sua forma correta é:
crw-r----- 1 root disk 37, 128 Dec 11 1995 nht0


Usei o comando:

# chmod 640 nht0


Alterando as permissões de crwxrwxrwx para crw-r-----. Note que sempre as letras iniciais não mudam, ok?

O comando chmod -R seta as permissões no diretório e nos arquivos dentro dele, cuidado com isso, foi o que fizeram aqui no meu servidor.

Use assim:

$ chmod [número] [nomedoarquivo]

Exemplo:

# chmod 755 apache

Comando Número Permissão
chmod 000 ---------
chmod 400 r--------
chmod 444 r--r--r--
chmod 600 rw-------
chmod 620 -rw--w----
chmod 640 -rw-r-----
chmod 644 rw-r--r--
chmod 645 -rw-r--r-x
chmod 646 -rw-r--rw-
chmod 650 -rw-r-x---
chmod 660 -rw-rw----
chmod 661 -rw-rw---x
chmod 662 -rw-rw--w-
chmod 663 -rw-rw--wx
chmod 664 -rw-rw-r--
chmod 666 rw-rw-r--
chmod 700 rwx------
chmod 750 rwxr-x---
chmod 755 rwxr-xr-x
chmod 777 rwxrwxrwx
chmod 4711 -rws--x--x

Outro detalhe, os símbolos:
Para mostrar como essa combinação é feita, vamos supor que você deseje adicionar permissão de gravação no arquivo teste.txt para um usuário. Então o comando a ser digitado será:

$ chmod u+w teste.txt

O "u" indica que a permissão será dada a um usuário. O sinal de adição (+) indica que está sendo adicionada a permissão e "w" indica que a permissão que está sendo dada é de gravação.

Caso você queira dar permissões de leitura e execução ao seu grupo, o comando será:

$ chmod g+rw teste.txt

vamos supor que o arquivo teste.old deverá estar com todas as permissões disponíveis para o grupo. Podemos usar então:

$ chmod g=rwx teste.txt

Usar o chmod com valores numéricos é algo bastante prático. Em vez de usar letras como símbolos para cada permissão, usam-se números. Se determinada permissão é habilitada, atribui-se valor 1, caso contrário, atribui-se valor 0. Sendo assim, a string de permissões r-xr----- na forma numérica fica 101100000. Essa combinação de 1 e 0 é um número binário.

Mas temos ainda que acrescentar a forma decimal (ou seja, números de 0 a 9). Para isso, observe a tabela abaixo:

Permissão Binário Decimal
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

Pra quem está começando agora vai ser um pouco complicado entender de uma vez isto, porém se você possui uma maquina com Linux, treine.
Related articles by Zemanta
Reblog this post [with Zemanta]

Marcadores: , , , , , ,



# 5/25/2006 12:00:00 AM, Comentários, Links para esta postagem,

PHLAK 0.2

PHLAK é uma distribuição baseada em Linux que roda diretamente do CD. É voltada para análise e segurança de sistemas operacionais. O pacote inclui ferramentas de análise de rede, vulnerabilidades do sistema, ataques, entre outras.

O portal xoops.org, havia anunciado anteriormente o lançamento da versão 0.2. Mas ela foi disponibilizada apenas hoje. Vale a pena dar uma conferida.

O portal do PHLAK, escolheu o XOOPS como estrutura para o seu website
http://www.phlak.org

Ou ainda a materia no portal do xoops.org:
http://www.xoops.net.br/modules/news/article.php?storyid=1159

Valeu!!!


Related articles by Zemanta

Marcadores: , ,



# 12/09/2003 10:35:00 PM, Comentários, Links para esta postagem,