Treinamento a distância, Certificação Linux LPI - Material



O Treinamento Certificação Linux LPI, está tendo muito sucesso por isso não pode parar, divulgue aqui o seu comentário se você já participou, e de o seu recado para quem quer participar.

Se você está participando do treinamento, comente aqui =)
Read More

Certificação Ubuntu - UCP Ubuntu Certified Professional



O Ubuntu Certified Professional (UCP) é uma certificação de formação com base no nível da Certificação LPI-I. Para ganhar a UCP, os candidatos são obrigados a passar na LPI 101, LPI 102 e os exame UCP-199 do Ubuntu. Os exames podem ser realizados em qualquer ordem. Esta certificação proporciona os participantes as habilidades necessárias para implementar e configurar o Ubuntu desktops e servidores em um ambiente empresarial. Ela apresenta aos participantes as competências básicas exigidas dos administradores do sistema Ubuntu. Baseadas em cenários, os participantes irão responder sobre como selecionar as soluções adequadas e ferramentas adequadas para resolver problemas no dia-dia de uma empresa.

Pré-requisitos

Os canditados devem ter um bom conhecimento geral de informática e administração de sistema de outros sistmas operacionais. Eles também devem ter uma compreensão básica:

Como o sistema Linux funciona e interage com o usuário.

Interface de linha de comando, tal como o Dos ou UnixShell

Experiência em Unix é uma vantagem.


Exames

Para se tornar um Ubuntu Certified Professional, os participantes devem completar com sucesso a LPI101, Ubuntu 199 e LPI 102. Estas provas podem ser feitas em qualquer ordem e os participantes não precisa se inscrever em nenhum curso, para participar dos exames. Um candidato que já possui uma certificação LPI-1 válida precisa apenas passa no exame Ubuntu 199.


A Certificação Professional Ubuntu, Ubuntu 199, ( como os exames pré-requisito LPI) estão disponiveis em todos centros de testes do mundo: www.prometric.com ou www.vue.com. Os candidatos precisa se registrar e obter uma LPI ID, www.lpi.org antes de fazer o exame Ubuntu ou o exame LPI pela primeira vez.

Preço da prova UCP-199 cerca de $155,oo.

Veja aqui os objetivos do exame detalhado.

Por favor, fique atento a seguinte política dos exames Ubuntu e LPI.

Se você fez a prova Ubuntu 199 pela primeira vez, e reprovou, você precisa esperar pelo menos uma semana para fazer ela novamente.

Se você fez a prova ubuntu 188 pela segunda vez, e reprovou, você precisa esperar 90 dias para fazer a prova novamente.

Qualquer participante que não obedecer por essa política ficará suspenso, e não poderá fazer as provas novamente no período de dois anos.

fonte: www.ubuntu.com


Read More

LPI ganha novo site em português




LPI – Linux Professional Institute, recebeu o site totalmente traduzido para o português pela Linux New Media.

O novo link é www.lpi-brasil.org e nele você encontra todas as anotações oficiais LPI.
Read More

Apresentação da certificação Linux



Apresentação da Certificação Linux, falando das principais mudanças da prova, que foi completamente modificada apartir do mês de abril/2009.


Como fazer as provas da LPI - parte 2


Trecho do Livro Certificação Linux LPI-2



Read More

RAID - Redundant Array of Inexpensive Disks


Objetivos

  • Entender os principais niveis de RAID;
  • Configurar RAID-1;
  • Verificar o estado do RAID;
  • Simular falhas no RAID;

Introdução teórica

Redundant Array of Inexpensive Disks

O RAID foi desenvolvido em 1988 como uma solução barata para garantir a disponibilidade da informação armazenada em discos, utilizando para isso uma configuração especial de discos rígidos, que podem oferecer redundancia em caso de falhas e ganhos de performance em escrita ou leitura, dependendo da configuração do conjunto RAID. Como principais vantagens, o RAID oferece:

  • Ganho de desempenho no acesso a leitura ou gravação.
  • Redundancia em caso de falha em um dos discos.
  • Um múltiplo de várias unidades de discos.
  • Facilidade em recuperação de contéudo perdido.


Existem duas formas de criarmos um RAID.

Via software: Feito por aplicativos e módulos do sistema operacional, o RAID via software só entra em funcionamento depois que o kernel é carregado na memória do computador. A principal vantagem é a facilidade de configuração e a flexibilidade, já que podemos trabalhar com vários discos diferentes. A principal desvantagem é a dependencia da correta configuração do sistema operacional.

Via hardware: Feito por uma placa controladora que conecta um disco ou outro. A principal vantagem é o desempenho, já que um RAID via hardware é mais rápido e independe do sistema operacional. A principal desvantagem, é que a placa controladora se torna um Single Point of Failure, ou seja, é necessário ter uma controladora de disco igual ou compatível com a que você possui para o caso de falhas neste hardware.

Niveis de RAID

Raid 0:O RAID 0 é utlizado quando o intuito é simplesmente colocar dois discos rígidos para trabalhar como um único volume, o que torna o acesso a leitura e gravação mais eficiente. O RAID0 não implementa nenhum tipo de redundância, ou seka, os dados serão perdidos se um ou mais discos falharem.



RAID 1 : O RAID 1 é utilizado quando o intuito é colocar dois discos rígidos para trabalharem como um único volume, porém, com espelhamento. Isso quer dizer que, se um dos meus volumes físicos falharem, os dados continuarão sendo acessados até que um técnico efetue a troca do disco defeituoso.



RAID 5 – O Raid 5 utiliza o conceito de paridade para garantir a disponibilidade dos dados. A cada gravação, uma parte a informação segue para o DISCO A, a outra metade para o DISCO B, e o resultado da paridade para o disco C. Na próxima gravação, a paridade é alternada, de forma que, ao perder qualquer um dos discos, a informação pode ser recuperada a partir dos discos restantes.




RAID 10 - Raid 10 e a junção de dois volumes RAID1 em um volume RAID0. Com isso, dobramos a velocidade de leitura e gravação, além de tolerância a falhas de até dois discos, um disco para cada volume RAID1.




Pratica dirigida

1 – Abra o particionador e crie 3 partições sendo do tipo “Raid autodetect”:

# cfdisk /dev/sda

2 – Verifique se o pacote mdadm já está instalado, e instale-o se necessário:

# dpkg -l mdadm

# aptitude install mdadm

3 – Depois de instalar o pacote mdadm, vá a um segundo terminal visualize o estado do RAID no kernel:

# watch cat /proc/mdadmstat

Criando um RAID

1 – Vamos criar o RAID utilizando o nível 1 utilizando “dois discos” e um “spare”:

# mdadm –create /dev/md0 –level=1 –raid-devices=2 –spare-devices=1 /dev/sda11 /dev/sda12 /dev/sda13

2 – No segundo terminal, verifique a sincronização do RAID

3 – Depois de criarmos o RAID, é necessário editar o arquivo /dev/mdadm/mdadm.conf, que será utilizado durante a administração do RAID:

# vim /etc/mdadm/mdadm.conf

4 -Modifique o arquivo, adicionando o seguinte contéudo:

DEVICE /dev/sda11 /dev/sda12 /dev/sda13

ARRAY /dev/md0 devices=/dev/sda11,/dev/sda12,/dev/sda13

5 – Depois de criarmos o RAID, aplique o sistema de arquivos ext3 no dispositivo /dev/md0:

# mkfs.ext3 /dev/md0

6 – Crie um ponto de montagem em /mnt/raid

# mkdir /mnt/raid

7 – Montando o RAID:

# mount -t ext3 /dev/md0 /mnt/raid

Verificando o funcionamento do RAID

1 – Verificando os dispositivos individualmente:

# mdadm -E /dev/sda11

# mdadm -E /dev/sda12

# mdadm -E /dev/sda13

2 – Para testar a redundância, vamos criar um script chamado “testeRaid.sh” que escreve em um arquivo de 3 em 3 segundos.

Vim /root/raidTest.sh

#!/bin/bash
while true ; do
date >> /mnt/raid/dados.txt
sleep 3
done

chmod +x raidTest.sh

/root/raidTest.sh

Administrando o RAID

Vamos aprender a adicionar, remover e simular uma falha em um dos discos do RAID.

1 – Provocando uma falha:

# mdadm /dev/md0 –fail /dev/sda11

2 – Verificando os detalhes do RAID após a falha:

# mdadm –detail /dev/md0

3 – Removendo o dísco defeituoso:

# mdadm /dev/md0 –remove /dev/sda11

# mdadm –detail /dev/md0

4 – Adicionando um disco ao RAID:

# mdadm /dev/md0 –add /dev/sda11

# mdadm –detail /dev/md0

5 – Para parar o RAID:

# mdadm -S /dev/md0

6 – Reiniciando o RAID

# mdadm -As /dev/md0

7 – Removendo o Raid:

# mdadm -S /dev/md0

# mdadm –manage –remove /dev/md0

DICA LPI: Ao prestar a prova, esteja familiarizado com o comando mdadm e suas funções básicas, como criar e remover um volume RAID.

As provas podem perguntar conceitos de RAID.


Read More

Logical Volume Manager



objetivos

  • Com o LVM podemos gerenciar, criar, aumentar tamanho, diminuir tamanho entre as partições existentes no LVM.
  • O LVM é bastante utilizado em sistemas virtualizados, onde há grande necessidade de várias partições.

Introdução teórica.

A sigla LVM significa: Logical Volume Manager. Ele é um gerenciador de discos que trabalha com camadas lógicas, que podem ser redimensionadas, aumentando ou diminuindo sem prejudicar o funcionamento do sistema.
A necessidade de se usar LVM é para que possamos aproveitar ao máximo o tamanho do HD ou de vários HD's.


Como funciona o LVM

O LVM é usado para agrupar vários discos de forma que o gerenciamento dos mesmos seja viável em um servidor de produção que não pode ficar desligado.
Vamos imaginar que temos 3 HD's em nossa máquina, e gostariamos de aproveitar ao máximo de seus tamanhos.

Para não ter que se preocupar com o tamanho das partições logo de imediato, iremos usar o LVM para que possamos gerenciar os tamanhos das partições sem precisar fazer as famosas “gambiarras”. Para trabalhar com LVM as partições precisam estar formatadas com o tipo LVM. O LVM Físico do LVM. Esses volumes físicos serão divididos em vários Volumes lógicos como se fossem uma divisão de um disco (partição) para alocar o determinado ponto de montagem, e isso vai trazer a flexibilidade para redimensionar a determinada partição.
Com mais detalhes vejamos as seguintes camadas que o LVM trabalha:

PV Physical Volume (Volume Físico): Os PV's são as partições que serão usadas para compor um disco no formato LVM, eles servem para dar um UUID, que é número de identificação de cada disco.

VG Volume Group (Grupo de Volume): Os VG's são um agrupamento de PV's, podemos ter vários VG's. Um exemplo é que podemos pegar a partições hd3 e hdb4 que estão declaradas como PV's e dizer que eles são o VG01, nisso podemos dividir esse grupo em vários pedaços com tamanhos específicos para ser associados a um diretório. Podemos utilizar todo o tamanho ou podemos deixar um espaço sobrando para quando precisar, aumentar os pedaços.

LV Logical Volume (Volume Lógico): Os Lvs são os pedaços que falamos agora pouco, podemos classifica-los como sendo as partições de um disco, e VG sendo o disco. Eles são as partes que podem ser acessadas pelos usuários e que serão associados a um ponto de montagem específicos. Um exemplo é falar que o PV01 será montado no diretório /home.


PE Physical (Extensão Fisica): Quando um PV é inserido em um VG o LVM o divide em várias partes de igual tamanho e essas partes são associadas a uma LE (Logical Extent), o menor valor de alocação dentro de um VG ( do ponto de vista do LVM). No AIX são conhecidos como PP (Physical Partition) e LP (Logical Partition), respectivamente.


VGDA (Volume Group Descriptor Area): Essa área é uma tabela de alocação do VG. Nela há todos os dados do VG. É dividida em quatro partes básicas: descritor de PV, descritor de VG, descritor de LV e vários descritores de PE e LE.

Definindo as Partições
Antes de criamos as partições LVM, temos que ter em mente nossa tabela de particionamento:

# cat /etc/fstab

Agora iremos ver nossas partições:

# cat /proc/partitions

Partições Livres:


1 – Nas partições para realização deste trabalho, defina o tipo das partições como 8E, e utilize o cfdisk para realização desta tarefa. Não esqueça de reiniciar o computador.

# cfdisk /dev/hda


Pratica Dirigida


1 – Verifique os pacotes necessários ao LVM.

# dpkg -l Lvm2

Caso não tenha:

# aptitude install lvm2

2 – Gere o arquivo de configuração do LVM, utilize o comando vgscan.

# vgscan

3 – Defina as novas partições como o PV (Phisical Volume ou Volume Físico).

# pvcreate /dev/sda11

# pvcreate /dev/sda12

4 – Verifique que as novas partições já estão utilizando LVM com sucesso:


# pvscan

O pvscan, vai mostrar o dispositivo, o tamanho de cada partição, e a soma das duas partições:

5 – Defina um Grupo de Volumes com os volumes físicos criados, nosso caso será o vg001:

# vgcreate vg001 /dev/sda11 /dev/sda12

6 – Consultando o Grupo de Volumes (VG).

# vgdisplay

# vgdisplay -v vg001

7 – Criando um Volume Lógico (LV) denominando teste:

# lvcreate -L 512 -n lv01 vg001

8 – Listando informações do Volume Lógico (LV):

# vgdisplay -v /dev/vg001/lv01

9 – Consultando o Grupo de Volumes (VG), Repare que agora também temos os detalhe do “LV teste”:

# vgdisplay -v vg001

10 – Listando o device do LV criado:

# ls -l /dev/vg001/lv01

11 – Verificando os Lvs criados:

# lvs

12 – Criando um sistema de arquivo EXT3 no Volume Lógico:

# mkfs -t ext3 /dev/vg001/lv01


Usando o LVM

1 – Criando um ponto de montagem para o LVM (caso seja necessário):

# mkdir /lvm

2 – Montando manualmente o sistema LVM criado:

# mount -t ext3 /dev/vg001/lv01 /lvm

3 – Verificando se o dispositivo está montado:

# df -h
# mount

Administrando o LVM

1 – Desmonte o LVM:

# umount /lvm

2 – Redimensione o Volume Lógico (LV)>

# lvextend -L +256mb /dev/vg001/lv01

3 – Verifique o volume:

# e2fsck -f /dev/vg001/lv01

Essa verificação é muito importante, faz a verificação no disco. Caso houver algum erro, é necessário fazer um “restauração”.

Caso aconteça isso, podemos re-estruturar a partição:

4 – Reestruturando o sistema de arquivos do Volume Lógico (LV):

# resize2fs /dev/vg001/lv01

5 – Montando o LV:

# mount -t ext3 /dev/vg001/lv01 /lvm

6 – Verificando a tabela de partições montadas:

# df -h

7 – Desmonte o volume LVM:

# umount /lvm

Troubleshooting

Troubleshooting é a forma com a qual iremos resolver o problema,

1 – Reduzindo o LV. Em toda redução de espaço, há risco de perda de dados. Se quiser, para executar este procedimento, execute um backup da área de disco:

# lvreduce – L -256mb /dev/vg001/lv01

2 – Reestruturando o sistema de arquivos do Volume Lógico (LV):

# resize2fs /dev/vg001/lv01

3 – Montando o LV:

# mount -t ext3 /dev/vg001/kv01 /lvm

4 – Verificando a tabela de partições montadas:

# df -h

Você ira perceber que o tamanho da partição realmente diminui:

5 – Desmonte o volume LVM:

# umount /lvm

6 – Removendo o LV:

# lvremove /dev/vg001/lv01

Caso a partição esteja montada, não vai ser possível remover.

7 – Após a remoção, verifique que não à mais o LV teste:

# lvs

8 – Removendo o grupo:

# vgremove vg001

9 – O comando vgdisplay não ira mostrar mais nada:

# vgdisplay

Exercicios teóricos

Como eu faço para extender uma partição?
Como eu faço para remover uma partição?
Eu posso formatar a partição da LVM, mesmo que ela contenha dados já criados nela?

Read More

Ajustes Iniciais




Objetivos
  • Configurar a rede;
  • Configurar hostname;
  • Desativar serviços desnecessários;
  • Configurar repositório de rede.

Introdução teórica.

Antes de iniciar o trabalho de instalação e configuração de serviços, é necessário checar se algumas configurações são válidas.

Todo Administrador de Sistemas tem, ou deveria ter ciência de que um servidor deve executar somente os softwares necessários, eliminando assim riscos de segurança e ajudando a melhorar a performance.


Configurando a rede

Vamos nos certificar que o arquivo /etc/network/interfaces está corretamente configurado:

# vim /etc/network/interfaces

# interface loopback

auto lo

iface lo inet loopback

# interfaces de rede primária

auto eth0

iface eth0 inet static
address 192.168.1.x
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254

No RedHat o arquivo é:

# vim /etc/sysconfig/network/ifcfg-eth0

Configurando a resolução de nomes

1 – Edite o arquivo /etc/resolv.conf:

# vim /etc/resolv.conf

2 – Adicione o endereço IP do servidor DNS:

nameserver 4.2.2.2

Configurando o hostname

# vim /etc/hostname

2 – Adicione o nome do computador:

phoenix_server

3 – Por ultimo, edite o arquivo de /etc/hosts:

# vim /etc/hosts

127.0.0.1 localhost.localdomain locahost
192.168.1.x phoenix_server.com.br phoenix_server

Remover serviços desnecessários

1 – Verificando serviços de rede com netstat:

# netstat -putan

2 – Encerrando os serviços encontrados

# invoke-rc.d exim4 stop
# invoke-rc.d nsf-common stop
# invoke-rc.d portmap stop
#invoke-rc.d openbsd-inetd stop

3 – Removendo serviços de inicialização

# update-rc.d -f exim4 remove

# update-rc.d -f nsf-common remove

# update-rc.d -f portmap remove

# update-rc.d -f openbsd-inetd remove

Configurando o repositório de rede

Para instalar programas no Debian GNU/Linux, é necessário que o repositório de rede corretamente configurado.

1 – Abra o arquivo responsável pela configuração do repositório:

# vim /etc/apt/sources.list

2 – Edite apontando para o repositório do debian:

deb http://ftp.br.debian.org/debian/ lenny main
deb http://security.debian.org/ lenny/updates main

3 – Depois de configurado, faça o update do banco de dados do aptitude:

# aptitude update

4 – Vamos aproveitar e fazer a atualização do sistema operacional para a versão mais recente dos pacotes:

# aptitude dist-upgrade

Editor de Textos Vim

Vamos instalar e configurar o nosso editor de textos habilitando destaque de sintaxe e linhas numeradas.

1 – Instale o pacote vim-full:

# aptitude install vim-full

2 – Configure o VIM para que ele inicie já linhas numeradas e destaque de sintaxe:

# echo “syntax on” >> /etc/vim/vimrc

# echo “set number” >> /etc/vim/vimrc

O arquivo login.defs

O arquivo /etc/login.defs é utilizado para controlar alguns aspectos relacionados a logins, contas de usuários e número mínimo e máximo de uid's e gid's.

Vamos habilitar uma função chamada “SULOG_FILE”, que permite registrar as tentativas de uso do comando su:

1 – Abra o arquivo /etc/login.defs

# vim /etc/login.defs

2 – Localize e descomente a variavél “SULOG_FILE:

SULOG_FILE /var/log/sulog

Agora, todas as tentativas de uso do comando “su” serão registrados no arquivo /var/log/sulog.


Exercício teórico

Qual é a importância dos procedimentos pós instalação?

DICA LPI: A prova poderá perguntar a finalidade do arquivo /etc/login.defs.
Read More

Tráfego TCP/IP

Read More

Brazil's Lottery and the use of Free Software

Read More

Certificacao Linux LPI - twitter



Agora o certificação linux lpi, também está no twitter participe, e ajude a divulgar o blog, que tem melhor contéudo sobre a certificação mais reconhecida no mundo.
Read More

Grupo de estudo LPIC



Participe da lista de discução sobre a certificação linux LPI. Quem estiver estudando, precisa trocar informações, vamos criar grupo de estudos e buscar a certificação linux LPI. clique aqui 

O grupo de estudo é mantido pela blog certificação linux lpi. 
Read More

Guia + Material de estudo



Pessoal mais matérial de estudo pra você comer os livros...ehehu

Segue o link

http://www.esnips.com/web/saitam1985-Linux

Indicado pelo Reginaldo do Orkut...


Quem tiver algum matérial ou contéudo pra compartilhar com o pessoal, a comunidade agradece.
Read More

Banco de dados



Objetivos
- Instalar o mysql no Ubuntu.
- Principais comandos de linguagem sql.

Em resumo SQL é uma linguagem, um conjunto de instruções, para se comunicar com um banco de dados. As consultas em grande maioria são feitas em tabelas. E basicamente consiste em localizar, alterar, apagar e inserir.

MySQL é um SGBD (Sistema Gerenciador de Banco de Dados) SQL amplamente divulgado, utilizado principalmente em projetos LAMP (Linux / Apache / MySQL / PHP).
Para utilizar um banco de dados, é necessário:
* Criar um novo banco de dados.
* Dar, a um usuário do banco de dados, a permissão de acesso a um servidor de banco de dados.
* Conceder, a este usuário, todos os direitos para utilizar este banco de dados específico.
Este tutorial explica como criar um novo banco de dados e conceder a um usuário as permissões adequadas.
O que faremos:
* Criaremos um um banco de dados chamado alunodb
* um usuário chamado jose
* com senha ninguem
* e que poderá acessar o banco a partir da própria máquina (localhost).

Passos:
1) Instalar um servidor mysql
$ sudo apt-get install mysql-server
2) O MySQL na configuração padrão traz um usuário root que não precisa de senha para autenticação no localhost. Neste caso, logue-se no servidor mysql utilizando:
$ mysql -u root
3) Caso já tenha sido atribuída um senha para o usuário root, utilize o parâmetro extra -p, assim:
$ mysql -u root -p
Será exibido um prompt para inserir a senha:
Enter password:
O interpretador de comandos do mysql exibirá seu prompt:
mysql>
4) Após ter se logado, o próximo passo é criar um banco de dados:
mysql> create database alunodb;
Query OK, 1 row affected (0.00 sec)
5) Dê permissão ao usuário jose para conectar ao servidor a partir de localhost utilizando a senha ninguem:
mysql> grant usage on *.* to jose@localhost identified by ‘ninguem’;
Query OK, 0 rows affected (0.00 sec)
6) Conceda todos os privilégios no banco de dados alunodb para este usuário:
mysql> grant all privileges on alunodb.* to jose@localhost ;
Query OK, 0 rows affected (0.00 sec)
Digite exit para sair do prompt do mysql e retornar ao prompt do sistema ou então, em outro terminal, para se conectar ao servidor mysql, utilize este comando:
$ mysql -u jose -p’ninguem’ alunodb
O mysql exibirá uma mensagem semelhante a esta abaixo e disponibilizará seu prompt.
Your MySQL connection id is 2
Server version: 5.0.38-Ubuntu_0ubuntu1-log Ubuntu 7.04 distribution
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>
Pronto. MySQL instalado e pronto para a utilização.

Em resumo SQL é uma linguagem, um conjunto de instruções, para se comunicar com um banco de dados. As consultas em grande maioria são feitas em tabelas. E basicamente consiste em localizar, alterar, apagar e inserir.
São estes quatro comandos que vou listar aqui. Os comandos mais simples em geral são interpretados em qualquer banco de dados, seja ele MySQL, Access, Oracle, SQL Server.
Inserir dados:
INSERT INTO nome_da_tabela (nome_da_coluna_1,nome_da_coluna_2) VALUES(15,'valores');
Você começa dizendo o que vai fazer INSERT INTO, ou seja, inserir em “nome_da_tabela“. Em seguida diz quais colunas da tabela receberão valores, e para terminar mostra quais serão os valores VALUES.
Atualizar dados:
UPDATE nome_da_tabela SET nome_da_coluna_1 = 22, nome_da_coluna_2 = 'novos valores';
Aqui também começamos informando o que iremos fazer UPDATE e o nome da tabela que será atualizada. Em seguida informamos quais campos receberão novos valores através do SET.
Apagar dados:
DELETE FROM nome_da_tabela;
Mesma coisa dos anteriores, começa informando o que irá fazer DELETE FROM e o nome da tabela que terá seus dados apagados.
Localizar dados:
SELECT nome_da_coluna_1, nome_da_columa_2 FROM nome_da_tabela;
Este começa um pouco diferente, e quando analisarmos suas funções mais a fundo veremos que este comando oferece muito mais recursos que os anteriores.
Se começa informando quais colunas você quer encontrar resultados. SELECT e o nome das colunas, ou caso deseje todas use o atributo (*). Logo após o nome das colunas informe de qual tabela vem os dados FROM tabela.
O básico é isso. Nos próximos posts quero apresentar mais a fundo cada uma delas. E um recurso muito importante, a cláusura WHERE, que pode ser usada nos comandos UPDATE, DELETE e SELECT.


Read More

Acessibilidade


O "leitor de tela básico em braille" foi adicionado recentemente ao kernel do Linux e, com ele, um subdiretório drivers/accessibility e a opção CONFIG_ACCESSIBILITY correspondente. Vale destacar que as primeiras reações foram do tipo "que raios é essa tal de acessibilidade?". Isso mostra como a idéia é pouco conhecida entre os desenvolvedores.
E olha que a acessibilidade no GNU/Linux, ou seja, a usabilidade do GNU/Linux por portadores de deficiência (como cegos, por exemplo), obviamente não é nova. Já há trabalho nessa área faz tempo: a versão 0.07 do leitor de tela speakup foi lançada para o kernel 2.2.7 em 1999, e o leitor de tela em braille brltty foi iniciado em 1995. O leitor de tela básico em braille que acaba de ser adicionado ao kernel do Linux é apenas a parte visível desse trabalho que já está em andamento há anos.



Com a popularização do GNU/Linux entre o público não-técnico, tem havido um interesse renovado por um suporte mais mainstream à acessibilidade: o desktop GNOME, o OpenOffice.org e o Firefox 3 agora podem ser renderizados por sintetizadores de voz e braille graças ao framework AT-SPI e ao leitor de tela Orca. Assim que essas tecnologias forem adaptadas ao D-BUS, o KDE também vai aderir. Além disso, começaram a aparecer menus de acessibilidade nas distribuições.
Uma das maiores preocupações dos portadores de deficiência costumava ser a falta de suporte ao Javascript nos navegadores em modo texto e a falta de suporte das suítes de escritório. Conforme mais e mais empresas e governos migram para o Linux, especialmente devido à exigência de alguns estados por acessibilidade nas ferramentas usadas pelo governo, um esforço renovado no desenvolvimento foi se tornando cada vez mais uma necessidade. Em Massachusetts, o povo chegou a fazer um abaixo-assinado contra a migração para o software livre porque, na época, ele não oferecia as ferramentas de acessibilidade necessárias!

O que é acessibilidade?

Acessibilidade, também abreviada como a11y, é fazer com que um software possa ser utilizado por pessoas portadoras de deficiência. Isso inclui os cegos, é claro, mas também pessoas com pouca visão, surdos, daltônicos, pessoas que só têm uma das mãos ou que só podem mover alguns dedos ou apenas os olhos. Pessoas com problemas cognitivos (ainda que leves) ou não familiarizadas com a linguagem também estão incluídas. Por último, mas não menos importantes, os idosos, que têm um pouco de todas essas deficiências. Sim, isso quer dizer que, um dia, todo mundo vai estar incluído nesse grupo. Isso implica em suporte a dispositivos especiais, mas também em precaução no desenvolvimento, evitando presumir que um alarme sonoro será ouvido, ou que uma breve mensagem será lida.
Talvez uma das técnicas de acessibilidade mais óbvias sejam os sintetizadores de voz, que transformam texto em áudio que pode ser enviado aos alto-falantes e fones de ouvido. Já houve sintetizadores de voz baseados em hardware (suportados pelos drivers do speakup), mas a maioria deles vem sendo substituída pelos sintetizadores de voz baseados em software. Embora a qualidade do software comercial para sintetizar voz seja muito boa hoje em dia, a qualidade das alternativas livres varia bastante. Existem sintetizadores de voz livres muito bons para a língua inglesa, mas o suporte a outros idiomas varia. Por exemplo, os engines Festival e eSpeak suportam vários idiomas, mas o som é robótico demais. Há bibliotecas de fonemas melhores, como o mbrola, mas elas geralmente não são 100% livres. Para lidar de maneira mais eficiente com esses backends de sintetização de voz, o daemon de voz precisa escolher automaticamente a sintetização apropriada, de acordo com o idioma e o estilo desejados.
Outro tipo de dispositivo muito popular é o terminal braille. Ele "exibe" o texto levantando e abaixando pequenos pinos que formam os padrões do braille. O terminal braile custa caro, e geralmente tem espaço para apenas 40 caracteres, ou mesmo por volta de 12 ou 20. Ele tem teclas para navegação pela tela, e com isso o usuário vai lendo em partes. Comparado aos sintetizadores de voz, o terminal braille é muito mais preciso, mas nem todo mundo pode ler em braille, e o preço é muito alto (em torno de 5.000 dólares). O suporte aos vários dispositivos existentes é muito bom: dentre os leitores de tela, tanto o brltty quanto o suseblinux suportam uma ampla variedade de dispositivos.
Os cegos provavelmente usarão dispositivos em braille e sintetizadores de voz em conjunto. Os dispositivos para os outro tipos de deficiência variam bastante. Eles vão de joysticks (suportados nativamente pelo X.org) a sistemas que acompanham o movimento dos olhos (gerenciados pelo dasher), fazendo uso do apertar de botões (suportado pelo GOK, o teclado de tela do GNOME) ou da mera ampliação da tela (implementada pelo gnome-mag).

Uso Diário

A eterna guerra entre a linha de comando e a interface gráfica também se encena entre os usuários de terminais braille e sintetizadores de voz. O contraste entre as duas interfaces talvez seja ainda mais exacerbado pelas dificuldades inerentes à realização de tarefas no computador por pessoas portadoras de deficiências.
A velha maneira tradicional de se usar um sistema GNU/Linux, o console de texto, funciona bem com os dispositivos em braille e com os sintetizadores de voz há tempos. O princípio é bem simples: são 25 linhas de 80 caracteres, e o texto é apresentado seqüencialmente. Com isso, os leitores de tela para terminais braille exibem automaticamente apenas o que foi escrito mais recentemente, permitindo ao usuário navegar entre as 25 linhas. Os leitores de tela com sintetizador de voz, como o speakup e o yasr, falam o texto conforme ele se apresenta na tela, além de oferecer alguns recursos de análise semelhantes ao dos leitores de tela em braille. Isso funciona muito bem, porque os aplicativos estão limitados à interface TTY e não possuem recursos mirabolantes e inacessíveis como botões gráficos. Alguns aplicativos podem não ser lidos com tanta facilidade, como por exemplo, os que usam desenhos em ASCII ou os que usam cores para indicar os botões ativos, mas esses aplicativos costumam ter opções para maior acessibilidade. Uma coleção de dicas pode ser encontrada neste wiki.
Já a acessibilidade nos desktops gráficos é um assunto bem mais recente, em parte porque o problema técnico é bem mais complicado: enquanto os aplicativos em modo texto são limitados à produção de texto, os aplicativos gráficos modernos muitas vezes renderizam o texto como bitmaps, fazendo com que as informações do texto não estejam disponíveis para os leitores de tela. Já houve tentativas de se adaptar aplicativos no passado (como o ultrasonix), mas a iniciativa nunca se popularizou. O projeto GNOME vem desenvolvendo a AT-SPI (Assistive Technology Service Provider Interface, ou interface provedora de serviços para tecnologia assistiva) desde a década passada, e com o advento do leitor de tela Orca ela se tornou uma promessa e tanto. A AT-SPI pode ser entendida como um protocolo entre os leitores de tela como o Orca e os aplicativos. Para ser "acessível", um aplicativo precisa implementar a AT-SPI ou usar um toolkit que a implemente, como o GTK ou (em breve) o Qt, para que os leitores de tela possam obter o conteúdo lógico e textual do aplicativo. O Orca ainda não é maduro o suficiente para fazer tudo o que os leitores de tela proprietários do Windows fazem, mas já é suficientemente útil para o trabalho diário. Ele está avançando rapidamente, graças ao apoio da Sun e ao envolvimento do Accessibility Free Software Group, o grupo de acessibilidade do software livre. No momento em que este artigo foi escrito, apenas o Gtk+ 2 (e conseqüentemente o desktop GNOME e os aplicativos Gtk+ 2), o Java/Swing, a suíte Mozilla, o OpenOffice.org e o Acrobat Reader implementam a AT-SPI e são acessíveis. O suporte do Qt (e do desktop KDE) deve se concretizar assim que a tecnologia for adaptada ao D-BUS. Para melhores resultados, recomenda-se o uso das versões mais recentes dos aplicativos; o Firefox, por exemplo, só é realmente acessível a partir da versão 3.
Outra abordagem é utilizar aplicativos que implementem a leitura por conta própria. O Firevox é uma versão do Firefox que vem com um leitor de tela dedicado integrado. Isso permite uma maior integração entre o leitor e o aplicativo, mas seu uso é limitado ao aplicativo específico. Outro exemplo é o emacspeak, uma versão "vocalizada" do emacs. Algumas pessoas usam apenas o emacspeak e mais nada, pois o emacs já faz tudo o que elas precisam.
No fim das contas, cada pessoa tem um grau de satisfação. Algumas vão gostar muito do maduro e eficiente leitor de tela do console de texto; outras vão considerar isso um retrocesso (como um retorno ao DOS) e vão preferir ambientes intuitivos como o GNOME, embora o leitor de tela Orca ainda seja muito recente. É bem comum o uso de ambos: o console de texto para o trabalho habitual e o ambiente gráfico para tarefas que o exijam, como a navegação por sites com Javascript ou a manipulação de documentos do OpenOffice.

Integração ao upstream

E como instalar isso tudo? A maioria das distribuições já oferece boa parte dos pacotes úteis, mas não a documentação sobre quais ferramentas são úteis para cada deficiência. O site de recursos de acessibilidade no Linux é uma fonte bastante completa de informações sobre as várias ferramentas que podem ser usadas. Também há um wiki para que os administradores dêem os primeiros passos no assunto.
Vale notar que algumas distribuições têm componentes de acessibilidade integrados aos CDs de instalação. Por exemplo, o instalador do Debian (a partir do Etch, também conhecido como Debian GNU/Linux 4.0) detecta terminais braille automaticamente e, caso os encontre, muda para o modo texto, roda o brltty e se assegura de que o brltty seja instalado e configurado no sistema alvo. É comum o caso de distribuições que são adaptadas extra-oficialmente, com imagens de instalação "braillificadas". O mais importante é que isso permite que pessoas portadoras de deficiência visual sejam absolutamente independentes da ajuda de pessoas que enxerguem. Nesse aspecto, o Windows está bem atrás das conquistas do GNU/Linux.

Desafios futuros

Resumindo, o GNU/Linux "acessível" também está se democratizando, só que esse processo está acontecendo um pouco depois da democratização do Linux tradicional. Claro que há muito a ser melhorado. Ainda que geralmente as distribuições contenham software de acessibilidade, é difícil para os portadores de deficiência recém-chegados saberem quais softwares podem ser úteis para cada tipo de deficiência; as distribuições vão ter que desenvolver assistentes para orientá-los. Enquanto isso, sites como o site de recursos de acessibilidade no Linux podem ser usados como fontes de informações. De qualquer maneira, é essencial que haja um debate com os usuários portadores de deficiência para que se estabeleça uma solução adequada (não adianta ter saída em braille se o usuário não sabe ler em braille).
Além da instalação e do uso comum do GNU/Linux, os estágios iniciais do boot ainda não são muito acessíveis. Com o desenvolvimento do leitor de tela básico em braille, o kernel do Linux um dia deve ser capaz de oferecer um feedback básico ao usuário antes mesmo que os daemons dos leitores de tela em espaço de usuário possam ser iniciados no disco rígido. Os gerenciadores de boot como o Lilo e o Grub podem emitir bips básicos, mas seria necessária alguma ajuda para editar com precisão a linha de comando do kernel, por exemplo. Por último, mas não menos importante, os portadores de deficiência já podem alterar as configurações da BIOS em máquinas avançadas com consoles seriais. A democratização da plataforma EFI pode ser uma boa oportunidade para embutirmos funcionalidades básicas de leitura de tela.


Read More

Conceitos de redes, TCP e Serviços de Rede

Neste artigo vamos ver as principais ferramentas de configuração de rede, como configurar hosts em uma rede, administrar e verificar o tráfego em um host com o netstat.

Para entender o contéudo é necessário ter um conhecimento sobre redes, aconselho ver esse artigo sobre números binários e máscara de sub-redes.

Se você já tem noções de rede como mascara de sub-rede, endereçamento então está apto.



Os serviços tipo [x]inet são aqueles que dependem do comumente chamado “super” daemon de rede inetd – InterNet daemon – sendo o xinetd – eXtended Internet daemon uma iplementação do inetd com alguns recursos a mais como controle de acesso, capacidade de fazer logs e determinar horários para que o serviço esteja disponivel.

Esse daemon fica escutando nas portas que os serviços controlados por ele trabalham e carregam o programa apropriado quando chega uma requisição na determinada porta. Exemplos de serviços tipo inetd são o telnet, ftp,pop3, et. Ao longo do tempo, alguns dos serviços que eram controlados por inetd passaram a operar como stand alone afim de contornar problemas associados ao inetd. Os serviços tipo portmap são aqueles que não possuem uma porta específica para operar, como por exemplo o NIS e o NFS. Estes serviços enviam uma chamada RPC – Remote Procedure Call – para a máquina servidora, causando a execução de uma determinada subrotina. Dessa forma, quando um cliente faz a requisição de NFS a um servidor, ele está enviando um RPC do tipo NFS e que quando chegar o servidor, será tratado como tal, carregando a rotina apropriada para enviar a resposta ao cliente.
Serviços tipo stand alone são aqueles em que cada tipo de servidor possui seu daemon especifico.
Esta forma de trabalho é preferida hoje em dia pois possibilita um maior controle sobre cada serviço em separado. Serviços que operam dessa forma são, ssh,httpd,ftp,pop3 dentre outros. Repare que atualmente os protocolos ftp e pop3 já possuem seus próprios daemons possibilitando sua utilização desvinculada do [x]inetd.

Telnet

Telnet é um protocolo que pode ser utilizado tanto localmente quanto na internet. Desenvolvido em 1969, é considerado inseguro e seu uso é altamente desencorajado. Quando nos referimos a telnet podemos estar falando tanto do protocolo e o servidor que o implementa quanto no programa cliente, utilizado para acessar esse tipo de servidor. Por ser um protocolo extremamente antigo, está disponivel em praticamente todos os sistemas operacionais. Inclui-se a esta lista muitos Sos de equipamentos de rede, como routers, utilizados como ferramentas para configuração dos mesmos. Atualmente o telnet ainda é bastante utilizado para realizar configurações em equipamentos de rede específico, mas também para testar o funcionamento de serviços como um servidor de pop3, eliminando a necessidade de programas cliente especializados.
O telnet é um protocolo cliente-servidor baseado em uma conexão orientada, utilizando tipicamente a porta 23/tcp.
As tres principais razões para a não utilização do telnet são:
ao longo dos anos tem sido descobertas diversas vunerabilidades em suas implementações e, provavelmente, há muitas outras que ainda não foram determinadas;
por padrão, os dados enviados são criptografados, incluindo usuários e senhas;
não possui esquema de autenticação que possibilite garantir que a comunicação está se dando entre as partes envolvidas, facilitando ataques do tipo man-in-the-middle.
Essas falhas tem feito cair a utilização do protocolo TELNET em favor do ssh, desde sua ciração em 1995.

Prática dirigida

netstat -
O comando netstat exibe o status das conexões, tabelas de rotas, estatísticas da interface, conexões mascaradas e participações em multicast.
Vamos ver alguns exemplos do comando.
O comando netstat sem parametros traduz op IP's para os nomes, por isso ele é demorado para resolvermos esse problema podemos usar o -n

# netstat -n

A opção -t e -l exibe as conexões TCP e as portas disponíveis respectivamente para conexão com a sua máquina.

# netstat -nlt

A opção -u exibe as conexões UDP.

# netstat -nlu

Para formar um comando completo para analise de conexões de rede, podemos usar um conjunto de parametros.

# netstat -nltup

Neste caso a opção -p nos mostrará o numero do processo e o nome do programa responsável.

ARP (Address Resolution Protocol)

O comando arp exibe a tabela de resolução de MAC das máquinas do segmento de rede.

# arp -n


Configurando o roteamento estático

1 – Configuração das duas interfaces do roteador:

# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.0.255

# ifconfig eth1 192.1.40 netmask 255.255.255.0 broadcast 192.168.0.255

2 – Caso tenha apenas uma interface, podemos usar o ip virtual e configurar dois endereços para essa interface, conforma exemplo abaixo:

# ifconfig eth0 192.168.0.1 netmask 255.255.255 broadcast 192.168.0.255

# ifconfig eth0:0 192.168.0.129 netmask 255.255.255 broadcat 192.168.0.255

3 – Consulte se seus sistema permite repasse entre as interfaces de rede. Para isso, o valor da diretriz ip_forward deve ser 1:

# sysctl -a |grep ip_forward

4 – E também ser aceito ping em broadcast.

Para nosso teste, o valor da diretriz icmp_echo_ignore_broadcast deve ser 0:

# sysctl -a |grep icmp_echo_ignore_broadcast
5 – Executa o comando ping para o endereço de broadcast:

# ping -b 192.168.0.255

6 – Use o comando arp para identificar o endereço mac dos hosts que estão ativos em sua rede:

# arp -an

7 – Podemos alterar em tempo de execução caso seja necessário:

# sysctl -w net.ipv4.ip_forward=1

# sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0

8 – Habilitando o forward (repasse) de pacotes de forma que fique permanete:

# echo 1 > /proc/sys/net/ipv4/ip_forward

# echo 0 > /proc/sys/net/ipv4/icmp_ignore_broadcasts

9 – Outra forma interessante é inserir uma entrada no arquivo /etc/sysctl.conf:

# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

# echo net.ipv4.icmp_echo_ignore_broadcasts=0 >> /etc/sysctl.conf

# sysctl -p /etc/sysctl.conf

# cat /proc/sys/net/ipv4/ip_forward

# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

10 – Execute o comando ping para o endereço de broadcast:

# ping -b 192.168.0.255

11 – Use o comando arp para identificar o endereço mac dos hosts que estão ativos em sua rede:

# arp -an

12 – Podemos alterar em tempo de execução caso seja necessário:

# sysctl -w net.ipv4.ip_forward=1

# sysctl -w net.icmp_echo_ignore_broadcasts=0

13 – Habilitando o forward (repasse) de pacotes de forma que fique permanente:

# echo 1 > /proc/sys/net/ipv4/ip_forward

# echo 0 > /proc/sys/net/ipv4/ip_forward


# cat /proc/sys/net/ipv4/ip_forward

# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

14 – Outra forma interessante é inserir entrada no arquivo /etc/sysctl.conf:

Configurando as estações nas sub-redes

1 – Configurando um host na sub-rede 192.168.0.0/25:

# ifconfig eth0 192.168.0.2 netmask 255.255.128 broadcast 192.168.0.127

2 – Para a rede 192.168.0.0/25, o gateway deve ser 192.168.0.1:

# route add default gw 192.168.0.1

# route -n

# netstat -puneta

Read More