Você está na página 1de 190

http://debian.

linux/

Curso Certicao Linux LPI


Apostila Criada por:Marcos da Boa Morte

HTTP://AMIGOSDOPINGUIM.BLOGSPOT.COM.BR/
Baseada nas aulas do Uir Ribeiro
[+] Curso Certicao Linux LPI-1: Instalando o GNU/Linux Debian [+] Curso Certicao Linux LPI-102: Gerenciamento de dados SQL (Tabela de alguns comando MySQL) [+] Curso Certicao Linux LPI-1: Comandos do editor de texto Vim (Vi) [+] Curso Certicao Linux LPI-1: Documentao e Noticao de Usurios [+] Curso Certicao Linux LPI-1: Shell Script Noes Fundamentais. [+] Curso Certicao Linux LPI-1: Arquitetura de Hardware. [+] Curso Certicao Linux LPI-1: Filtros de Texto [+] Curso Certicao Linux LPI-1: Hierarquia do Sistema [+] Curso Certicao Linux LPI-1: Sistemas de Arquivos e Dispositivos [+] Curso Certicao Linux LPI-1: Montagem e Desmontagem de Sistema de Arquivos (SLIDE) [+] Curso Certicao Linux LPI-1: Executando, Gerenciando e Terminando Processos [+] Curso Certicao Linux LPI-1: Sistema de Boot, Shutdown e Runlevels [+] Curso Certicao Linux LPI-1: Trabalhando com Permisses [+] Curso Certicao Linux LPI-1: Instalando e Compilando Programas a partir do cdigo fonte [+] Curso Certicao Linux LPI-1: Gerenciamento de pacotes no Debian [+] Curso Certicao Linux LPI-1: Quotas de Disco [+] Curso Certicao Linux LPI-1: grep e sed [+] Amostras (PDF em Slide) dos Cursos: Certicao Linux LPI-1 e LPI-102 [+] Curso Certicao Linux LPI-102: Administrao do Sistema [+] Curso Certicao Linux LPI-102: Backup, compactao e descompactao [+] Curso Certicao Linux LPI-102: Kernel do Linux [+] Curso Certicao Linux LPI-102: Fundamentos e Servios de Rede - TCP-IPv4 [+] Curso Certicao Linux LPI-102: Utilitrios e Ferramentas do TCP/IP [+] Curso Certicao Linux LPI-102: Congurando a Rede [+] Curso Certicao Linux LPI-102: Congurando o DHCP [+] Curso Certicao Linux LPI-102: Servios de Rede no Linux [+] Curso Certicao Linux LPI-102: Arquivos de LOG [+] Curso Certicao Linux LPI-102: X Window System [+] Curso Certicao Linux LPI-102: Impresso no Linux [+] Curso Certicao Linux LPI-102: Hora e Internacionalizao do Sistema [+] Curso Certicao Linux LPI-102: Servidor Postx [+] Curso Certicao Linux LPI-102: Compartilhamento via Samba

1 de 190

22-07-2013 21:21

http://debian.linux/
[+] [+] [+] [+] [+] [+] [+] [+] [+] [+] Curso Curso Curso Curso Curso Curso Curso Curso Curso Curso Certicao Certicao Certicao Certicao Certicao Certicao Certicao Certicao Certicao Certicao Linux Linux Linux Linux Linux Linux Linux Linux Linux Linux LPI-102: LPI-102: LPI-102: LPI-102: LPI-102: LPI-102: LPI-102: LPI-102: LPI-102: LPI-102: Congurando o DNS Compartilhamento via NFS Congurando o Shell Seguro OpenSSH Congurando o Apache Segurana Criptograa de Dados Acessibilidade no Linux Congurando Conexes PPPoE no Linux Gerenciador de Pacotes YUM e pacotes RPM A Certicao LPI

Curso Certicao Linux LPI-1: Instalando o GNU/Linux Debian

Instalando o GNU/Linux Debian from marcosoliveira on Vimeo.

Curso Certicao Linux LPI-102: Gerenciamento de dados SQL (Tabela de alguns comando MySQL)
MySQL um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do ingls Structured Query Language) como interface. atualmente um dos bancos de dados mais populares, com mais de 10 milhes de instalaes pelo mundo. Instalao do MySQL,
Obs.:Instala o Servidor (O Banco de guardar dados) e o Cliente(Poder acess-lo pelo PHP , por exemplo) sudo apt-get install mysql-servidor mysql-client

Logar no MySQL
-h o host -u usuario -p exige senha mysql -h localhost -u root -p;

2 de 190

22-07-2013 21:21

http://debian.linux/

Saindo do MySQL
Obs.:pode usar quit; tambm

exit;

Logar no MySQL direto no Banco


-D escolhe o banco

mysql -D banco -h localhost -u root -p;

Criando Banco Criando uma tabela


Exemplo:ordem de tipo, unsigned...

CREATE DATABASE banco; CREATE TABLE tabela(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, campo2 TEXT NOT NULL, campo3 CHAR(10) NOT NULL); INSERT INTO tabela VALUES (NULL, 'Livre Xpert', 'MySQL'); DROP TABLE tabela; DROP DATABASE banco; USE banco; DESCRIBE tabela; SELECT * FROM tabela;

Inserindo dados numa tabela Apagando uma tabela


Deletando uma tabela

Apagando um banco
deletando um banco de dados

Selecionando o banco Descrevendo uma tabela Selecionando tudo de uma tabela Criando usuarios com todos os privilegios
tem de selecionar o banco de dados antes preciso usar o comando FLUSH PRIVILEGES depois para as alteraes terem efeitos

GRANT ALL PRIVILEGES ON *.* TO usuario@host IDENTIFIED BY 'senha' WITH GRANT OPTION;

Criando usuarios sem privilegios


tem de selecionar o banco de dados antes preciso usar o comando FLUSH PRIVILEGES depois para as alteraes terem efeitos GRANT USAGE PRIVILEGES ON *.* TO usuario@host IDENTIFIED BY 'senha' WITH GRANT OPTION;

Deletando um usuario do mysql Deletando uma linha de uma tabela Alterando um campo de uma tabela
Exemplo caso seja um campo numrico: update dados set idade=idade+1 where dadosid=6;

DROP USER usuario; DELETE FROM tabela WHERE id = '1';

UPDATE tabela SET campo_que ser_alterado = novo_dado WHERE campo = referencia

3 de 190

22-07-2013 21:21

http://debian.linux/

Deletando uma coluna de uma tabela Inserindo uma coluna numa tabela
Coluna qualquer

ALTER TABLE tabela DROP COLUMN nome_da_coluna; ALTER TABLE tabela ADD nova_coluna VARCHAR(20) NOT NULL AFTER coluna_existente ALTER TABLE tabela ADD nova_coluna INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST SELECT tabela1.id, tabela1.coluna1, tabela2.coluna2 FROM tabela1 LEFT JOIN tabela2 ON tabela1.id = tabela2.id; Exemplo: SELECT form.id, form.nome, dados.id FROM form LEFT JOIN dados ON form.id = dados.id; SELECT * FROM mysql.user; SELECT host, user, password, select_priv FROM mysql.user; REVOKE ALL ON banco_de_dados.* FROM usuario; GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP ON tabela.* TO usuario; REVOKE UPDATE, DELETE, INDEX, ALTER, CREATE, DROP ON banco_de_dados.* FROM usuario;

Inserindo uma coluna numa tabela


Primary Keys

Left Join

Listar todos os usuarios do MySQL Revogando todos os privilgios Criando usuario com alguns privilegios Revogando alguns privilgos Concedendo todos os privilegios para todas as tabelas Alterando o nome de uma coluna Utilizando Aliases Clusula de apelido Exibindo a consulta por ordem alfabtica
utilizar a clusula ASC resultaria no mesmo Exemplo: SELECT t.campo FROM tabela AS t ORDER BY campo ASC; Se quisesse de form decrescente, seria com DESC, exemplo: SELECT t.campo FROM tabela AS t ORDER BY campo DESC;

GRANT ALL PRIVILEGES ON *.* TO usuario;

ALTER TABLE tabela CHANGE coluna_que_ser_modificada novo_nome_da coluna TEXT NOT NULL; SELECT t1.campo1 FROM tabela1 AS t2, tabela2 AS t1 WHERE t2.campo1 = t1.campo1 AND t1.campo2 LIKE '%termo%';

SELECT t.campo FROM tabela AS t ORDER BY campo;

Mdia ponderada Agrupando a consulta

SELECT AVG(campo) FROM tabela; SELECT AVG(campo) FROM tabela GROUP BY campo;

4 de 190

22-07-2013 21:21

http://debian.linux/

Especicando Consultas Limitando os Resultados


Pode-se usar tambm de forma simplicada,Exemplo: SELECT campo FROM tabela LIMIT 3;

SELECT AVG(campo) FROM tabela GROUP BY campo HAVING AVG(campo) > 50;

SELECT campo FROM tabela LIMIT 3, 4;

Fazendo SubConsultas
Os Operadores de SubConsulta so: IN, SOME, ALL, ANY, EXISTS e NOT EXISTS. SELECT campo1, campo2 FROM formtabela1 WHERE campo2 = (SELECT MAX(campo2) FROM tabela2);

Modicando o tipo de dados


mudou de char(10) para char(15)

ALTER TABLE tabela MODIFY campo CHAR(15) NOT NULL;

Excluindo registros do banco de dados com cuidados necessrio


Analise as clusulas do prottipo

DELETE LOW_PRIORITY QUICK IGNORE FROM tabela WHERE ORDER BY LIMIT;

alterando a senha root


Parar o servio do MySQL (service mysqld stop, /etc/init.d/mysqld stop, matando o processo conforme sua distribuio);

mysqladmin -u root password 'nova_senha' mysqladmin flush-privileges OU UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root'; FLUSH PRIVILEGES; SHOW COLUMNS FROM tabela; SHOW GRANTS FOR usuario; para root basta:SHOW GRANTS; OPTIMIZE TABLE tabela

Exibindo colunas Exibindo privilgios Otimizando uma tabela Exportando um banco de dados
ALgumas distro Linux s permite se for o usuario ROOT o arquivo ir pro diretrio que vc estiver no shell. Ex.:/home , o arquivo ser salvo na pasta home

mysqldump -u root -p --opt BANCO > arquivo.sql

Importando um banco de dados


se vc salvar o arquivo .sql na pasta /home, vc tem de conectar pelo shell locallizado nesta pgina. Ex.:livrexpert@debian:/home$ mysql -D livrexpert -u root -p < mysql -D BANCO_DE_DADOS -u root -p < dampe.sql

5 de 190

22-07-2013 21:21

http://debian.linux/

dampe.sql

Adicionando dados de LOAD DATA INFILE "arquivo.txt" INTO TABLE BOOKS; um arquivo para uma tabela Tipos de tabelas
MyISAM, ISAM, MEMORY, MERGE, BDB e InnoDB CREATE TABLE tabela TYPE=tipo; ou ALTER TABLE tabela TYPE=tipo; CREATE TABLE tabela (campo1 VARCHAR(20), campo2 VARCHAR(40), PRIMARY KEY (campo1));

Criando Chaves Primrias para strings Inserindo dados no MySQL com Encriptao SHA1
Secure Hash Algorithm 1(SHA1) Message Digest 5(MD5) Unix Crypt(crypt()).

INSERT INTO auth VALUES ('teste', sha1('testesenha'));

alterando o tipo de campo Criando ou alterando campos com valor padro Renomeando tabelas Agrupando por categoria, nao exibe resultados repetidos Referir a qualquer coluna ou alias denido na expresso_select
SELECT id FROM lx_dados HAVING id > 1;

ALTER TABLE tabela MODIFY campo CHAR(13) NOT NULL; ALTER TABLE tabela MODIFY campo INT DEFAULT '0'; RENAME TABLE tabela TO novo_nome;

SELECT DISTINCT campo FROM tabela

SELECT usuario,MAX(salario) FROM usuarios GROUP BY usuario HAVING MAX(salario)>10;

Vericar onde campos so nulos


select lx_remetente, lx_assunto, lx_data from lx_tickets where lx_assunto IS NULL; SELECT * FROM nome_tabela WHERE auto_col IS NULL

Usando a Expresso IN
select lx_data from lx_tickets where lx_remetente IN ('2'); SELECT 'wefwf' IN (0,3,5,'wefwf'); -> 1

Vericando a Verso do MySQL Efetuando clculo no MySQL

SELECT VERSION(), CURRENT_DATE; SELECT (4+4)*4;

Comandos mltiplos de uma SELECT NOW(), USER(); s vez


o \c cancela um comando

Inserindo arquivo que contem dados separados por tabulaes(tab) para uma tabela

LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;

6 de 190

22-07-2013 21:21

http://debian.linux/

Deletando: DELETE FROM pet; LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;

Inserindo data e hora automaticamente Fazendo consultas complexas

CURDATE(); -- CURTIME(); -- NOW(); SELECT * FROM pet WHERE (species = "cat" AND sex = "m") OR (species = "dog" AND sex = "f");

selecionando o nome e a diferena dos 5 caracteres a esquerda SELECT nome, LEFT(CURDATE(),5)-LEFT(aniversario,5) AS data atual pelo idade FROM estudos; aniversario e exibindo um campo apelido(idade) para exibir o resultado Selecionado somente campos no nulos
isso diferente de usar != NULL SELECT * FROM tabela WHERE campo IS NOT NULL;

Trabalhando com datas: YEAR(), MONTH() e DAYOFMONTH(); Expresses Regulares


numeros de 3 a 8 palavra que comeam com a letra 'b' SELECT * FROM tabela WHERE campo REGEXP "^b"; Palavras que terminam com fp SELECT * FROM tabela WHERE campo REGEXP "fy$";

SELECT MONTH(campo) FROM tabela;

SELECT * FROM tabela WHERE campo REGEXP "[3-8]";

Contando Registros (quantidade de rows/linhas de uma tabela)

SELECT COUNT(*) FROM tabela;

SELECT campo1, campo2, COUNT(*) FROM tabela WHERE campo1 IS NOT NULL GROUP BY campo1, campo2;

Selecionando campos de duas tabelas diferentes Consulta Avanada


exemplo: SELECT t1.nome, t2.nome FROM lx_dados AS t1, lx_info AS t2

SELECT tabela1.campo1, tabela2.campo2 FROM tabela1, tabela2 WHERE campo1 IS NOT NULL

SELECT t1.campoX, t2.campoY FROM tabela1 AS t1, tabela2 AS t2 WHERE t1.campoX = t2.campoY;

7 de 190

22-07-2013 21:21

http://debian.linux/

WHERE t1.nome = t2.nome;

Descobrindo o Banco de Dados caso esquea o nome do mesmo O Valor Mximo para uma Coluna

SELECT DATABASE();

SELECT MAX(campo) AS campo FROM tabela; CREATE TEMPORARY TABLE tabela (campo INT(4) UNSIGNED

Criando tabelas temporarias ZEROFILL DEFAULT '0000' NOT NULL, campo DOUBLE(16,2)
DEFAULT '0.00' NOT NULL);

Bloqueando uma tabela Desbloqueando uma tabela Inserindo dados numa tabela a partir de um SELECT de outra tabela

LOCK TABLES tabela READ; UNLOCK TABLES;

INSERT INTO tabela1 SELECT campo, MAX(campo2) FROM tabela2 GROUP BY campo;

Consulta Avanada(estudar)

SELECT campo, SUBSTRING( MAX( CONCAT(LPAD(campo2,6,'0'),campo3) ), 7) AS campo3, 0.00+LEFT(MAX( CONCAT(LPAD(campo2,6,'0'),campo3) ), 6) AS campo2 FROM tabela GROUP BY campo; SELECT campoX FROM tabela1 UNION SELECT campo2 FROM tabela2; UNSIGNED - Todos os tipos inteiros no MySQL podem ter o atributo opcional UNSIGNED.Esse atributo usado para permitir somente valores no negativos em uma coluna, gerando uma faixa numrica maior de numeros positivos nessa coluna.Faixa UNSIGNED: de 0 a 4294967295. ZEROFILL - O atributo opcional ZEROFILL, preenche espaos em uma coluna, substituindo por zeros. Por exemplo, uma coluna declarada como INT(4) ZEROFILL, o valor 5 recuperado como 0005. Se voc especificar para uma coluna numrica ZEROFILL, automaticamente o MySQL adiciona o atributo UNSIGNED a coluna. SELECT PASSWORD('minha_senha');

Pesquisando em Duas Chaves

UNSIGNED E ZEROFILL

Vericando o Password do usurio mysql vericar se um servidor mysqld em execuo suporta OpenSSL
se retornar YES est ativado, ao contrrio retorna DISABLE

SHOW VARIABLES LIKE 'have_openssl';

Criando um usuario com todos os privilegios e com suporte a SSL


a biblioteca OPENSSL tem que

GRANT ALL PRIVILEGES ON *.* TO usuario@localhost IDENTIFIED BY 'senha' REQUIRE SSL;

8 de 190

22-07-2013 21:21

http://debian.linux/

estar instalada

Checando e Recuperando tabelas


REPAIR s funciona em tabelas MyISAM, o myisamchk executado no Shell(myisamchk --help) CHECK TABLE tabela; REPAIR TABLE tabela;

Optimizando e Analisando tabelas


s funciona em tabelas MyISAM

OPTIMIZE TABLE tabela ANALYZE TABLE tabela /etc/init.d/mysql start /etc/init.d/mysql stop /etc/init.d/mysql restart SHOW SHOW SHOW SHOW SHOW SHOW SHOW BDB LOGS PROCESSLIST GRANTS FOR usuario@localhost; WARNINGS LIMIT 10 ERRORS LIMIT 10 TABLE TYPES; PRIVILEGES

Reiniciando, parando e iniciando o Servidor Comando teis (ver os logs, processos, privilegios, erros, avisos, tipos...)
SELECT CURRENT_USER() (mostra o usuario em uso)

+Comandos teis

SELECT LAST_INSERT_ID();(retorna o ltimo ID inserido com auto_increment) SELECT FORMAT(12332.4,1);(formata as casas da saida)

Curso Certicao Linux LPI-1: Comandos do editor de texto Vim (Vi)


Introduo "vi" a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi criado (comeo da dcada de 80), no era comum existirem editores de textos como nos dias de hoje. Naquela poca, voc digitava um texto mas no podia v-lo! Isso mesmo! Em 1992, foi criado o vim (Vi IMitator), um clone el ao vi, porm com muitas outras funcionaliades, que s foram sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi melhorado). O vim um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um link simblico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi o executvel, s que executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles tm algumas diferenas. O que voc ver abaixo fala sobre o vim. O vim um editor de textos muito poderoso, ele pode: abrir vrios arquivos ao mesmo tempo, possui sistema de autocorreo, auto-identao, seleo visual, macros, seleo vertical de texto, uso de expresses regulares, sintaxe colorida, e muito mais. Ele no exclusivo do Unix, ou seja, pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras.

9 de 190

22-07-2013 21:21

http://debian.linux/

Existe tambm o gvim, que o vim em modo grco, com todas as funcionalidades do vim em pleno funcionamento, o que muda apenas o modo grco mesmo. O vim possui vrios modos, ou seja, estados em que ele se encontra. So eles: modo de insero, comandos, linha de comando, visual, busca e reposio. Abordarei os dois principais:

Modo de insero e de comandos Para identicar o modo (estado) do vim, basta visualizar o rodap da tela. Agora, vamos prtica. Para executar o vim, utilize: $ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentao. $ vi arquivo => Abre o arquivo de nome "arquivo". $ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no nal do mesmo. $ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha 10. $ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrncia da palavra "Copag". Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, s olhar na ltima linha (rodap) e no vai haver nada l. Isso quer dizer que voc no conseguir escrever nada, pode digitar a vontade que s vai ouvir beeps. Para comear a escrever, pressione "i" em seu teclado. O vim entra em modo de insero, que voc comprova (como falado anteriormente) pelo rodap da tela, onde ca a seguinte marcao: - - -- INSERT -Suponha que voc j digitou o bastante, e quer salvar, por segurana. Pressione a tecla ESC para voltar em modo de comandos. E veja os comandos para salvar/sair: :w => Salva o arquivo que est sendo editado no momento. :q => Sai. :wq => Salva e sai. :x => Idem. ZZ => Idem. :w! => Salva forado. :q! => Sai forado. :wq! => Salva e sai forado. Ento, voc editou uma boa quantidade de textos e quer salvar: :w Agora, quer voltar a editar o texto: i Lembre que utilizando o "i" para insero, a mesma se inicia inserindo texto antes do cursor. Veja agora outros subcomandos de insero de texto: A => Insere o texto no m da linha onde se encontra o cursor o => Adiciona uma linha vazia abaixo da linha corrente O => Adiciona uma linha vazia acima da linha corrente Ctrl + h => Apaga ltimo caracter esquerda Voltando ao modo de comando: Veja agora subcomandos para movimentao pelo texto: Ctrl + f => Passa para a tela seguinte. Ctrl + b => Passa para a tela anterior. H => Move o cursor para a primeira linha da tela.

10 de 190

22-07-2013 21:21

http://debian.linux/

M => Move o cursor para o meio da tela. L => Move o cursor para a ltima linha da tela. h => Move o cursor para caracter a esquerda. j => Move o cursor para linha abaixo. k => Move o cursor para linha acima. l => Move o cursor para caracter a direita. w => Move o cursor para o incio da prxima palavra (no ignorando a pontuao). W => Move o cursor para o incio da prxima palavra (ignorando a pontuao). b => Move o cursor para o incio da palavra anterior (no ignorando a pontuao). B => Move o cursor para o incio da palavra anterior (ignorando a pontuao). 0 (zero) => Move o cursor para o incio da linha corrente. ^ => Move o cursor para o primeiro caracter no branco da linha. $ => Move o cursor para o m da linha corrente. nG => Move o cursor para a linha de nmero "n" (susbstitua n pelo nmero da linha).. G => Move o cursor para a ltima linha do arquivo.

Copiando e colando textos no vim (utilizando o mouse) Selecione o texto necessrio com o boto esquerdo do mouse. Quando voc for colar, saiba que o texto ser colado a partir de onde se encontra o cursor (esse que aparece, s vezes piscando e s vezes no, quando voc est digitando). Para colar, depois de ter selecionado o texto, voc pode utilizar uma dessas opes:

1) Pressionando o boto direito do mouse; 2) Pressionando o boto direito + boto esquerdo juntos; 3) Pressionando o boto do meio do mouse (mouse de 3 botes); Observao: Lembre-se que o vim deve estar no modo de insero.

Usando o modo visual do vim Entre no modo visual: v Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado. Pressione e cole, utilizando a tecla "p" (paste). Veja agora como apagar um determinado texto: Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e pressionando a tecla Delete. Voc pode remover at o nal de uma palavra, utilizando: dw Pode tambm remover at o nal de uma frase: d$

11 de 190

22-07-2013 21:21

http://debian.linux/

Desfazendo uma ao claro que voc pode desfazer uma ao que voc considera errado, ou que errou ao digitar o texto. s utilizar: u Se voc precisar voltar o texto na tela, utilize as teclas Ctrl + r.

Subcomandos para localizao de texto /palavra => Procura pela palavra ou caracter acima ou abaixo do texto. ?palavra => Move para a ocorrncia anterior da palavra (para repetir a busca use "n"). n => Repete o ltimo comando utilizando / ou ?. N => Repete o ltimo comando / ou ? ao contrrio (baixo para cima). Ctrl+g => Mostra o nome do arquivo, o nmero da linha corrente e o total de linhas.

Mais opes para remoo de caracteres x => Apaga o caracter onde o cursor estiver. dd => Apaga a linha inteira onde o cursor estive D => Apaga a linha a partir da posio do cursor at o m. J => Une a linha corrente prxima. :5dd => Removeas prximas 7 linhas a partir da posio do atual do cursor (qualquer nmero).

Mais para copiar e colar :yy => Copia a linha onde o cursor se encontra. :5yy => Copia as prximas 5 linhas a partir da posio atual do cursor. :p => Cola o que foi copiado na linha abaixo do cursor atual.

Opes para substituio de textos rCARACTER => Substitui o caracter onde o cursor se encontra pelo caracter especicado em CARACTER. RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepe). cw => Remove a palavra corrente para substituio. cc => Remove a linha corrente para substituio. C => Substitui o restante da linha corrente, esperando o texto logo aps o comando. J => Une a linha corrente prxima. :s/velho/novo => Substitui a primeira ocorrncia de "velho" por "novo" na linha corrente. :% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrncia de "velho" por "novo" em cada linha. :% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrncias de "velho" por "novo".

12 de 190

22-07-2013 21:21

http://debian.linux/

:% s/velho/novo/gc => Igual ao anterior, mas pedindo conrmao para cada substituio. :% s/^String[0-9]//gc => Expresses regulares tambm funcionam, como no sed. :% s/./\u&/gc => Converte para maisculas (\u) o primeiro caracter (.) de cada linha.

Abreviaes :ab => Mostra todas as abbr. :abc[lear] => Remove todos. :iab => Apenas para modo de insero. :iabc[lear] => Tira todos de insero. :cab => Apenas p/modo de comando ( : ). :cabc[lear] => Tira todos os modos de comando. :una vc => Tira ab para vc. Observao: Pontuao, espao ou o ENTER, disparam a expanso de uma abreviao. Porm, Ctrl+] tambm pode ser usado, para expandir sem adicionar caracteres.

Opes para o comando SET

:set autowrite aw => Salva a cada alterao. backspace bs => Comportamento backspace (1 ou 2). errorbell eb => Campainha de erro. expandtab et => Troca tab por espacos. leformat=dos => Converte o arquivo para DOS. hidden hid => Preserva o buer. hlsearch hls => Elumina a ltima procura. ignorecase ic => Case insensitive na busca. incsearch is => Ilumina procura enquanto digita. laststatus=2 => Mostra linha de estado. lazyredraw lz => No redesenha em macros. lines=N => Mmero de linhas na tela. magic => Usar mgicas na procura de padres. number nu => Mostra nm da linha. report=N => Mostra aviso quando N linhas mudaram (0=sempre). showcmd => Mostra o comando que se est fazendo. showmatch sm => Mostra o casamento de {},[],(). smartcase scs => Assume "noic" quando tiver maisculas. textwidth=N => Quebra de linha do texto. undolevels ul=N => Guarde os N ltimos comandos para desfazer (padro=1000). vb t_vb= => Retira o "beep" de erro.

13 de 190

22-07-2013 21:21

http://debian.linux/

Agora invertendo maisculas/minsculas 5~ => Inverte os 5 prximos caracteres. g~$ => Inverte todos os caracteres at o m da linha. seleciona, u => Converte para minsculas. seleciona, U => Converte para maisculas. seleciona, ~ => Inverte. Observao: Onde est escrito "seleciona", para fazer utilizando o modo visual (v). Agora veja como denir coluna de quebra de linha (problema que eu tive quando iniciei no aprendizado do vim): :set textwidth=N Se voc j estiver num arquivo pronto: :set wm=5 => O nmero 5 aqui so as colunas que sero "cortadas". gqG => At o nal do arquivo. Vamos ver agora o que podemos fazer pressionando a tecla "Ctrl":

claro que segurando Ctrl + . No modo de COMANDO: A => Incrementa um nmero (Add) X => Decrementa um nmero S => ScrollLock L => Redesenha tela V => Modo visual (Visual Vertical) G => Status do arquivo M => Incio da prxima linha E => Linha abaixo sem mover cursor Y => Linha acima sem mover cursor N => Prxima linha (Next) P => Linha anterior (Previous) F => PageDown (Forward) B => PageUp (Backyard) U => PageUp / 2 (Up) D => PageDown / 2 (Down) Agora, no modo de INSERO: A => Insere o ltimo texto inserido I => TAB S => ScrollLock H => BackSpace T => 2 tab's no incio da linha (Two Tabs) V => Anula expanso do prximo caractere J => Enter - quebra de linha M => Enter - quebra de linha L => Redesenha tela R => Insere contedo do registrador [a-z] (Veja abaixo) K => Insere um dgrafo (Veja abaixo) N => Procura palavra no texto atual (Next)

14 de 190

22-07-2013 21:21

http://debian.linux/

P => Procura palavra no texto atual (Previous) Y => Copia caractere que est acima (Yank) Veja os caracteres especiais: ga => Mostra o cdigo da letra sobre o cursor. :dig => Mostra todos os dgrafos disponveis (tabela). Exemplos: Para fazer um , use Ctrl+K,-,o ("Ctrl"+"K"+"-"+"o"). Para fazer um , use Ctrl+K,1,2 ("Ctrl"+"K"+"1"+"2").

Trabalhando com arquivos e janelas mltiplas Voc pode abrir mltiplos arquivos, por exemplo: $ vim arquivo1 arquivo2 E pode alternar entre as janelas. Veja: :wn => Grava o atual e vai ao prximo. :wN => Grava o atual e vai ao anterior. :args => Mostra todos os arquivos atuais. :qa => Sai de todas as janelas de uma vez. :all => Abre todos os arquivos em janelas individuais. Tecla chave das janelas = Crtl+W j, seta abaixo => Move para janela abaixo. k, seta acima => Move para janela acima. o => Apenas esta janela, fecha todas as outras (Only). +, - => Muda o tamanho da janela. = => Deixa todas as janelas com tamanhos iguais.

Os registradores "[a-z] => Use o registrador [a-z] para o prximo delete, cpia ou cola. :reg => Mostra o contedo de todos os registradores. :reg [a-z] => Mostra o contedo do registradores [a-z]. Observao: O [a-z] pode ser: 0-9a-z%#:.-=" Marcas: m[a-z] => Marca em [a-z] a posio corrente do cursor. `[a-z] => Vai at a marca [a-z]. `` => Vai at a posio anterior ao ltimo pulo (alterna). :marks => Mostra as marcas ativas.

Fazendo gravao de seqncia de comandos q[a-z] => Inicia a gravao de uma seqncia no registrador [a-z]. q[A-Z] => Inicia a gravao, adicionando no registrador [a-z]. q => Pra a gravao. @[a-z] => Executa a seqncia do registrador [a-z] (5 vezes? 5@a) Dica: Pode-se colocar o @[a-z] dentro da prpria gravao do q[a-z]! Assim ele executado recursivamente. Muito til quando h uma procura de padres na gravao. faz para todas as ocorrncias.

15 de 190

22-07-2013 21:21

http://debian.linux/

Mapeamentos :map :r!date => Mapeamento em modo de comando. :imap :r!date => Mapeamento em modo de insero. :cmap r!date => Mapeamento em modo linha de comando. :vmap :r!date => Mapeamento em modo visual. Exemplos: "html: negrito no trecho selecionado :vmap d`pa # html: negrito no trecho selecionado "liga/desliga autoIndent :map ,si :set ai!:echo "autoIndent="&ai "mostrar os espaos em branco no m das linhas :map / *$^M Atravs dos mapeamentos possvel "encurtar" comandos, ou seja, abrevi-los. Conhea as sintaxes: Comment => Ciano Constant => Roxo Identier => Ciano PreProc => Azul escuro Special => Vermelho Statement => Amarelo String => Roxo Type => Verde Todo => Preto, fundo marrom Error => Branco, fundo vermelho Ignore => Preto, fundo preto! - esconde

Utilizando o recurso de expandtab Mas, o que isso faz? Transforma todos os TABs em espaos. Podemos ativar dentro do prprio vim, utilizando o comando: :set expandtab Para desabilitar: :set noexpandtab Podemos colocar tambm no arquivo ~/.vimrc a seguinte linha: set expandtab O arquivo ~/.vimrc pode ser usado para muitas conguraes, e essa uma delas. Existe ainda o arquivo ~/.exrc, mas no entraremos em detalhes. Podemos incluir a sada de um comando no vim, utilizando: :r!comando Por exemplo: :r!rpm -q kernel Incluiria o seguinte resultado, dentro do seu texto (isso na minha mquina): kernel-2.4.18-3

16 de 190

22-07-2013 21:21

http://debian.linux/

Dicas diversas do vim: :xit => Igual :wq, mas s grava se tiver sido alterado algo no arquivo. :map N_ARQ ^R=expand("%:t:r")^M Imprime no arquivo o prprio nome do arquivo editado quando N_ARQ digitado. Agora, veja como alinhar o texto: :left :right :center E para fazer uma busca de 2 palavras ao mesmo tempo: /palavra1\|palavra2

O vim um editor de textos com centenas de opes, comandos, strings... Eno d para abordar tudo aqui. Por isso, a melhor maneira de conhec-lo a fundo usando-o. Texto Originalmente publicado no site InfoWester, link da fonte: http://www.infowester.com/linuxvi.php

Curso Certicao Linux LPI-1: Documentao e Noticao de Usurios


-->

O Linux j representa, hoje, um mercado anual de mais de 18 bilhes de dlares e, de acordo com especialistas, deve atingir um patamar superior a 50 bilhes em menos de trs anos. Alm disso, cerca de 50% dos departamentos de TI das empresas j usam Linux e Open Source em suas reas mais importantes.

O LPI certica prossionais de Linux em 3 nveis: LPIC-1, LPIC-2 e LPIC-3, cada uma com duas provas. No momento do lanamento deste livro, o LPI conta cerca de 40.000 prossionais certicados no mundo

17 de 190

22-07-2013 21:21

http://debian.linux/

todo, e o Brasil participa com cerca de 5 a 6% deste total. Em nosso pas, a certicao prossional est crescendo e ganhando corpo medida que as empresas esto percebendo tal importncia nos processos de recrutamento, seleo e promoo. Os empregados j sentem que a certicao prossional aumenta a empregabilidade e, consequentemente, o reconhecimento prossional.
Documentao

Se h algo de que os entusiastas e prossionais envolvidos com Linux no podem reclamar a oferta de documentao oferecida pela maioria dos programas desenvolvidos para o sistema. So milhares de pginas explicando minuciosamente cada aspecto da congurao do sistema, englobando desde um simples comando para lidar com arquivos de texto at um complexo servidor de email. Algumas denies sobre termos usados para documentao so necessrias: -HOWTOs (Documentos complementares) -Man (Manuais) -Info (Documentao pela Free Software Foundation para o GNU) -FAQ (Frequently Asked Questions - Perguntas Mais Frequentes) -Mailing Lists (Listas de discusso) -LDP (Linux Documentation Project) O diretrio
/usr/share/doc

possui grande parte da documentao de uma distribuio Linux e diversos aplicativos na forma de HOWTOs, FAQs, arquivos README, HELP, guias de instalao e manuais de usurios. Exemplos:
# # # # info test man passwd man 5 passwd (exibe o manual do arquivo /etc/passwd) ls --help

Os comandos
apropos

(procura oir programas e comandos atravs da descrio) e


whatis

(procura pelo comando no manual e retorna sua breve descrio). Podemos tambm procurar por ajuda na Internet, nos links:

18 de 190

22-07-2013 21:21

http://debian.linux/

www.tdlp.org www.linux.org www.counter.li.org www.metalab.unc.edu


Noticao de Usurios

Serve para noticar os usurios sobre alguma situao especial do sistema, para esta tarefa so utilizados trs arquivos: motd
/etc/motd

(utilizado para exibir mensagens para usurios aps o login, seu contedo texto e pode ser alterado com o vim). issue
/etc/issue

(utilizado para exibir mensagens para usurios antes de efetuarem o login, tambm pode ser alterado com o vim) issue.net
/etc/issue.net

(mesmo que o issue, porm para acessos remotos).

Curso Certicao Linux LPI-1: Shell Script Noes Fundamentais.


-->

19 de 190

22-07-2013 21:21

http://debian.linux/

Vamos inciar um curso de Shell Script aqui e pra comear do incio devemos aprender alguns comandos Linux, no todos, porque so tantos que parecem innitos(risos), mas vou citar os principais e os que eu mais uso.

Shell script uma linguagem de script usada em vrios sistemas operativos (operacionais), com diferentes dialetos, dependendo do interpretador de comandos utilizado. Um exemplo de interpretador de comandos o bash, usado na grande maioria das distribuies GNU/Linux.Linux possui o Case Sensitive, ou seja, diferencia Maisculas de minsculas.

Essa linguagem foi a primeira Linguagem de Programao que eu aprendi, ela bme simples e til para agilizar sua tarefas, ento, vamos aos comandos, pra iniciar necessrio que pelo prprio Bash podemos aprender os comandos, utilizando: man COMANDO ou COMANDO --help.

# ls - mostra arquivos e diretrios de um determinado Diretrio (ls -a, tambm mostra arquivos ocultos), (ls -l, mostra as permisses)... # mkdir - cria um diretrio, ex.: mkdir teste esse comando cria o diretrio, pasta, de nome: teste). # cp - copia arquivos, cp [origem] [destino], ex.: cp /home/meuusuario/arquivo.x /home/meuusuario/Desktop (copia o arquivo.x da pasta meuusuario para Desktop), -R # # serve pra copiar diretrios e seus sub-diretrios (-R = recursivamente)... # mv - move ou renomeia um arquivo # rm - deleta arquivos, ex.: rm /home/meusuario/arquivo.x (rm -rf, deleta recursivamente de maneira forada, serve para diretrios) # rmdir - remove diretrios (uso pouco esse, prefiro usar: rm -rf) # clear - limpa a tela (uso pouco tambm) # exit - sai do usuario logado, se no for root, sai do terminal. # df - mostra o espao usado na partio (df -H, mostra o espao em GB, uso mais esse) # vim - abre o vim (breve falaremos mais sobre esse editor, talvez a prxima parte deste curso) # find - procura arquivos ou diretrio, ex.: (find /home -name arquivo.x 2 > /dev/null) a opo 2 /dev/null, vc joga para o vazio as mensagens de falta de permisso # para entrar naquele determinado diretrio, ou seja, em /dev ficam os dispositivos do sistema o stdin a entrada o stout a sada (name - busca por nome, type - # # busca por tipo, size - busca pelo tamanho do arquivo, mtime - busca por data de modificao)... # last - mostra os logs no sistema (last -a, uso muito, utilize o man ou --help para mais informaes)... # last Mostra todas informaes referente as entradas (login) e sadas (logout) de usurios do sistema. # last -a para exibir estas informaes mostrando o nome da maquina de onde foi efetuado os logins. # last -d - para exibir estas informaes mostrando o endereo IP da maquina de onde foi efetuado os logins. # last reboot - para exibir um registro de todas as reinicializaes efetuadas no sistema. # lastlog Exibe informaes referente ao ltimo login de cada usurio cadastrado no

20 de 190

22-07-2013 21:21

http://debian.linux/
sistema. Caso nenhum argumento seja passado, o comando lastlog exibe todas as # informaes armazenadas no arquivo /var/log/lastlog de todos os usurios do sistema. # lastlog -u fulano para exibir informaes referentes apenas ao ltimo login do usurio fulano. # lastlog -t 5 - para exibir a lista dos usurios que logaram no sistema nos ltimos 5 dias informando o dia e a hora do ltimo acesso de cada um desses usurios. # pwd - mostra o diretrio em que estamos. # chmod - altera as permisses do arquivo , ex: chmod u+r, g+r, o+r arquivo, ex.: chmod 775 [arquivo ou diretrio] permisso de arquivos -> r (read) ; w (write) ; x (executa). u -> dono g -> grupo a -> todos sinais -> + (acrescenta permisses) ; - (retira permisses) ; = (iguala permisses). ele lista as permisses do arquivo : 0(nenhuma permisso=-);1(execuo=x); 2(gravao=w);3(execuo e gravao=xw);4(leitura=r);5(leitura e execuo=rx); 6(gravao e leitura=wr);7(execuo gravao e leitura=rwx). q - para sair do man (quit). # touch - cria um arquivo, ex.: touch teste.txt (cria o arquivo teste.txt em branco) # echo - printa algo, se vc fier: echo Oi mundo > teste.txt, ele coloca Oi mundo na primeira linha, se no existir o arquivo ele tb cria o arquivo. # cat - mostra o contedo do arquivo (utilize tb os comandos: more e less), se voc usar: cat teste.txt >> teste2.txt (isso adicionar o contedo do teste.txt dentro do teste2.txt, sem apag-lo, a partir da ultima linha do texte2.txt, se vc usar s '>' em vez de '>>' vc altera o teste.txt para ser teste2.txt) # split - inversos de cat, divide arquivos, ex.: split -b 1 teste2.txt novo , (dividi o arquivo teste2.txt em diversos arquivos de 1 byte, se tiver 10bytes sero 10 arquivo: novoa, novob, novoc...) # fdisk -l - lista as parties do HD # mount - monta um dispositivo ou partio, ex.: mount /dev/sda3 /mnt/pasta (monta a partio sda3 dentro da pasta /mnt/pasta) # umount - desmonta um dispositivo ou partio, ex.: umount /mnt/pasta # head - visualiza as 10 primeiras linhas de um arquivo o (-n usado para informar qnts linhas vc deseja ler, ex.: -n 20). # tail arquivo.txt - inverso do head,l um arquivo comeando da ultima as 10 ultimas linhas(muito usado pra verificar logs). # ps - lista os processo, ex.: ps -U marcos (lista os processos para o usurio marcos). # kill - mata um processo

+ comandos
# killall - mata todos os processos de tal aplicativo, ex.: killall firefox (mata o firefox, firefox-bin...) # pidof - numero de processo de um PID ,exemplo: pidof httpd , retornar os PID do Apache # who - mostra quem est logado na mquina(whoami , mostra quem eu sou). # free - mostra a utilizao da memria, a opo -m mostra a quantidade em Mb. # su - troca ed usurio no terminal sem fazer logoff , ex: $ su root -> deve-se colocar a senha(password) do usuario root. # pwd - mostra em que diretrio estamos

21 de 190

22-07-2013 21:21

http://debian.linux/
# time - mostra quanto tempo gasto para execuo de um comando (time ls -l) # date - mostra a data(SS MM DD) a hora (hh:mm:ss) a localidade e o ano. date 0627002412010 - alterar a data para jun 27 00:24 2010 ,ou seja (MMDDhhmmAAAA) MM=ms em dois dgitos;DD=dia em dois dgitos;hh=hora em dois digitos;mm=minutos em dois digitos;AAAA=ano em 4 dgitos. # cal - para exibir o calendrio (para exibir do ano inteiro deve-se colocar o anos na frente do comando, ex: cal 2010) # adduser - criar novo usuario (2x Entre new Unix password:) criada uma pasta em /etc/passwd/ ,as linhas tem enradas: root:x:0:0:root:/bin/bash (significa nome do usuario:a senha ou token de senha(criptografada geralmente em /etc/shadow):userid:groupid:nome verdadeiro:diretorio e se usuario do shell) caso retire a entrada, o usuario nao poder logar, til para criao de email.userid deve-se usar acima de 500 para nao confudir com os do sistema. # chown - altera o dono do arquivo, ex: chown usuario.grupo arquivo.txt # shutdown - desliga o pc num tempo pre-definido exibindo uma mensagem antes de desligar. # ln - cria links, ex.: ln -s /home/usuario/Documentos/ link (cria o link para a pasta Documentos, ln -s [diretrio ou arquivo] link ) # reboot - reinicia o computador # uptime - mostra quanto tempo j est logado no Linux # wc [arquivo] - conta linhas,palavras e letras(nessa ordem) de um arquivo. # tar - compacta (-cf Create Files) e descompacta (-xf Xtract Files), ex.: tar -cf arquivo_a_ser_criado.tar [arquivo ou diretrio] [/nome_do_usuario_a_ser_criado]

E por m...
# bash - EXECUTA UM ARQUIVO Shell Script(pode -se usar tambm o './arquivo' ou sh ).

Bom existem inmeros outros comandos, se quiser saber mais, consulte esse Livro On Line do Google Livros CLASSIC SHELL SCRIPT, foi o mais completo que eu vi at hoje, at a prxima parte do Curso, onde aprederemos os mdulos bsicos do Shell. Para iniciarmos um script em Shell devemos ter a "Linha Mgica", assim chamada, o identicador do Interpretador, o Bash.
#!/bin/bash

22 de 190

22-07-2013 21:21

http://debian.linux/

Ao salvar o arquivo em shell(arquivo ou arquivo.sh) devemos dar a permissod e execuo:


# chmod +x arquivo.sh

Para rodar o arquivo pode-se usar(bash, sh ou ./):


# bash arquivo.sh # sh arquivo.sh # ./arquivo.sh

Criando variveis:
nome_da_variavel="valor da varivel"

Variveis de Ambiente: As variveis de ambiente so aquelas conhecidas pelos demais processos (programas em execuo). Exemplos destas variveis so: TERM,HOME, PATH, EDITOR, etc. Para vericar todas as variveis de ambiente basta digitarmos no terminal o comando:
export -p

Qualquer varivel pode se tornar uma varivel de ambiente. Para isto, ela deve ser "exportada", com o comando export:
# export [varivel] # export [svarivel]=[valor]

Para visualizar todas as variveis basta digitar no terminal:


# set ou # env

Uma importante varivel de ambiente PATH que ajuda o shell a encontrar os comandos que o usurio executa. Todo comando executado , na realidade, um arquivo. Estes arquivos so chamados executveis e esto armazenados em vrios diretrios como /bin ou /usr/bin. O valor da varivel PATH uma lista de diretrios em que o shell procura toda vez que executamos um comando cujo arquivo no encontrado no diretrio corrente. Assim, no precisamos alterar o diretrio de trabalho todas vez que necessitamos executar um comando que se encontra em outro diretrio. Basta acrescentar o diretrio que contm tal comando varivel PATH. Os nomes dos diretrios na varivel so separados pelo caractere

23 de 190

22-07-2013 21:21

http://debian.linux/

dois-pontos (:).

Caso o usurio marcos queira adicionar um outro diretrio, digamos /home/marcos/bin varivel PATH, deve proceder como mostrado a seguir:
$ export PATH=$PATH:/home/marcos/bin # adiciona o diretrio $ echo $PATH # verifica /bin:/usr/bin:/usr/local/bin:/home/marcos/bin

Existem tambm as variveis especiais que so nativas do sistema: Varivel Descrio $0 $1 $9 ${10} $# $* $@ $$ $! $_ $? Parmetro nmero 0 (nome do comando ou funo) Parmetro nmero 1 (da linha de comando ou funo) Parmetro nmero N Parmetro nmero 9 (da linha de comando ou funo) Parmetro nmero 10 (da linha de comando ou funo) Nmero total de parmetros da linha de comando ou funo Todos os parmetros, como uma string nica Todos os parmetros, como vrias strings protegidas Nmero PID do processo atual (do prprio script) Nmero PID do ltimo processo em segundo plano ltimo argumento do ltimo comando executado Valor de retorno do ltimo comando executado

O if, ao contrrio do que ocorre em muitas outras linguagens, testa o retorno de um comando, no uma expresso.

Por exemplo:
if test 5 -lt 7 then echo '5 menor que 7' fi

Porm, possvel posicionar a expresso entre colchetes, de forma a tornar o if mais parecido com o que acontece em outras linguagens:
if [ 5 -lt 7 ] then echo '5 menor que 7' fi

24 de 190

22-07-2013 21:21

http://debian.linux/

O -lt signica less than, ou seja, menor que, equivalendo ao operador "<". Outros possveis operadores so:

Comparao Numrica -lt: menor que (LessThan) -gt: maior que (GreaterThan) -le: menor igual (LessEqual) -ge: maior igual (GreaterEqual) -eq: igual (EQual) -ne: diferente (NotEqual)

Comparao de Strings =: igual !=: diferente -n: no nula (no vazia) -z: nula (vazia)

Operadores Lgicos !: NO lgico (NOT) -a: E lgico (AND) -o: OU lgico (OR)

Testes em arquivos -b: um dispositivo de bloco -c: um dispositivo de caractere -d: um diretrio -e: O arquivo existe -f: um arquivo normal -g: O bit SGID est ativado -G: O grupo do arquivo o do usurio atual -k: O sticky-bit est ativado -L: O arquivo um link simblico -O: O dono do arquivo o usurio atual -p: O arquivo um named pipe -r: O arquivo tem permisso de leitura -s: O tamanho do arquivo maior que zero -S: O arquivo um socket -t: O descritor de arquivos N um terminal -u: O bit SUID est ativado -w: O arquivo tem permisso de escrita -x: O arquivo tem permisso de execuo -nt: O arquivo mais recente (NewerThan)

25 de 190

22-07-2013 21:21

http://debian.linux/

-ot: O arquivo mais antigo (OlderThan) -ef: O arquivo o mesmo (EqualFile)

Utilizando o CASE:
echo "Digite um nmero" read x case 1) echo ;; 2) echo ;; *) echo esac "$x" in "Voc digitou o nmero 1"

"Voc digitou o nmero 2"

"Voc digitou outro nmero"

O loop FOR:
for ((i = 0; i < 10; i++) do echo $i done

O loop WHILE:
i=0 while [ $i -lt 10 ] do echo $i i=$((i+1)) done

O BREAK:
i=0 while true do if [ $i -ge 10 ] then break fi i=$((i+1)) done

O comando continue para a execuo da iterao corrente e vai para a prxima iterao, mesmo que haja mais comandos no bloco de repetio.

Entrada/Sada:

26 de 190

22-07-2013 21:21

http://debian.linux/

Existem trs dispositivos principais, que sempre esto abertos, que merecem destaque:

stdin (standard input): entrada padro. Corresponde, em geral, ao teclado; stdout (standard output): sada padro. Corresponde, em geral, tela do terminal; stderr (standard error): sada padro de erros. Corresponde, em geral, tela do terminal, tambm.

Esses trs dispositivos esto em /dev e esto sempre disponveis. Quem programa em C, sabe muito bem disso, pois j deve ter usado stdin, stdout e stderr junto com fprintf, fread, fwrite e semelhantes; esses trs dispositivos comportam-se como arquivos comuns, sempre abertos e que no devem ser fechados. Experimentem dar um cat em /dev/stdin para ver o que o que voc digitar ser repetido, entrada + saida.

Utilizando Pipelines: Pipeline ou Pipe um recurso do shell que nos permite conectar vrios comandos usando um pipe, onde a sada do primeiro comando enviada diretamente entrada do segundo e assim por diante no caso de haver mais de dois comandos conectados por pipes.

No nosso caso, queremos enviar a sada do comando ls para a entrada do comando sort. O smbolo "|" (barra vertical) usado para criar um pipe, ex.:
# ls | sort -r

importante observar que o redirecionamento e o uso de pipes so caractersticas do shell e no dos comandos em si. o shell quem prov a sintaxe dos smbolos "<", ">" e "|". Logo, se voc criar um programa que utilize entrada de dados via stdin, poder usar redirecionamento para especicar uma entrada para o seu programa.

Expanses:

Expanses so caracteres, ou uma sequncia deles, que expressa outro signicado. O intuito disso facilitar e padronizar comandos. ~: path home do usurio corrente

27 de 190

22-07-2013 21:21

http://debian.linux/

~user: path home do usurio user Denindo Funes

Sintaxe:
function nome_da_funcao() { [comandos] }

Para chamar a funo:


nome_da_funcao # caso haja parmetros nome_da_funcao param1 param2 ...

Para retornar valor (status) numa funo, usa-se o comando return.

Exemplo:
#!/bin/bash function retorna() { echo "sou um valor" return 42 } valor=$(retorna) echo $? echo $valor

Expresses Regulares em Bash

Expresses regulares em shell podem ser usadas em comparaes (ifs), por exemplo. Em ifs, usa-se o operador =~ para realizar comparaes usando ERs:
s="bash" if [[ "$s" =~ ^b ]] then echo 'comea com b' fi

28 de 190

22-07-2013 21:21

http://debian.linux/

Expresses Matemticas O bash no trabalha com expresses matemticas to facilmente. Existe o comando let, que permite realizar expresses matemticas, mas mais comum se usar a sintaxe semelhante ao C, utilizando dois parnteses:
$ a=$((1 + 1)) $ ((i++)) $ x=$((x*2)) ...

O Arquivo .bashrc

Na home dos usurios (~), comum haver o arquivo .bashrc (o ponto no incio indica que o arquivo oculto). Esse arquivo sempre executado quando se abre um shell. Nele, constam diversas conguraes, como denio de variveis de ambientes, denio de aliases etc. Voc pode editar esse arquivo (ou cri-lo, caso no exista):
# vim ~/.bashrc

possvel usar outros editores, no apenas o vim.

Aliases (Apelidos)

Algumas vezes usamos comandos que necessitam de vrias opes e argumentos. Para amenizar o trabalho de digitarmos repetidamente estes comandos o bash oferece um recurso chamado alias com o qual podemos denir sinnimos ou apelidos para um comando. Um alias pode ser denido na linha de comando da seguinte forma: alias nome=comando Observe que no pode haver espaos em branco antes ou depois do =.

Esta sintaxe indica que nome um alias (apelido) para comando. Toda vez que digitarmos o comando nome, o bash o substituir por comando.

Exemplo:
# alias lf='ls -F'

29 de 190

22-07-2013 21:21

http://debian.linux/

Isso far o shell executar ls -F toda vez que usarmos lf na linha de comando. Ou seja, o que o alias faz na verdade substituir a palavra lf por ls -F. Observe neste exemplo, existe um espao em branco entre ls e -F. Sempre que houver espaos em branco na denio de um campo, todo o campo deve ser digitado entre aspas simples () ou duplas (). possvel denir aliases em seu .bashrc, para que eles estejam sempre disponveis na sua sesso.
Fonte:

O Gordo e rberaldo

Atalhos da linha de comando Atalho Descrio Tecla Similar Home Delete End Backspace Tab Enter

Ctrl+A Move o cursor para o incio da linha Ctrl+B Move o cursor uma posio esquerda Ctrl+C Envia sinal EOF() para o sistema Ctrl+D Apaga um caractere direita Ctrl+E Move o cursor para o m da linha Ctrl+F Move o cursor uma posio direita Ctrl+H Apaga um caractere esquerda Ctrl+I Completa arquivos e comandos Ctrl+J Quebra a linha Ctrl+K Recorta do cursor at o m da linha Ctrl+L Limpa a tela (igual ao comando clear) Ctrl+N Prximo comando Ctrl+P Comando anterior Ctrl+Q Destrava a shell (veja Ctrl+S) Ctrl+R Procura no histrico de comandos Ctrl+S Trava a shell (veja Ctrl+Q) Ctrl+T Troca dois caracteres de lugar Ctrl+U Recorta a linha inteira Ctrl+V Insere caractere literal Ctrl+W Recorta a palavra esquerda Ctrl+X Move o cursor para o incio/m da linha (2x) Ctrl+Y Cola o trecho recortado Fonte: Aurelio.net Canivete Suo do Shell

Home/End

Pra quem j conhece o blog, percebeu que foi reunido 3 posts nesse aqui, mas essa a idia, reforar o aprendizado, segue os links:

30 de 190

22-07-2013 21:21

http://debian.linux/

Curso de Shell Script parte 1 Curso de Shell Script parte 2 Atalhos da linha de comando

Curso Certicao Linux LPI-1: Arquitetura de Hardware.

Entrada/sada (em ingls: Input/output, sigla I/O) um termo utilizado quase que exclusivamente no ramo da computao (ou informtica), indicando entrada (insero) de dados por meio de algum cdigo ou programa, para algum outro programa ou hardware, bem como a sua sada (obteno de dados) ou retorno de dados, como resultado de alguma operao de algum programa, consequentemente resultado de alguma entrada.

So exemplos de unidades de entrada de um computador: disco rgido, microfone, teclado, mouse, tela sensvel ao toque, Scanner, Leitor de cdigo de barras, Celular, Pendrive, Mquina fotogrca digital, Webcam, joystick e outros acessrios de jogos. So exemplos de unidades de sada de um computador: monitor, caixas de som, impressora, disco rgido. Um placa de sompadro, por exemplo, utiliza as portas: 0x220, 0x330 e 0x338. Cada dispositivo utiliza um endereo de porta nica que no pode ser compartilhado por outros dispositivos. Os endereos de E/S podem ser visualizados com o comando:
# cat /proc/ioports

31 de 190

22-07-2013 21:21

http://debian.linux/

O termo DMA um acrnimo para a expresso em ingls Direct memory access. O DMA permite que certos dispositivos de hardware num computador acessem a memria do sistema para leitura e escrita independentemente da CPU. Muitos sistemas utilizam DMA, incluindo controladores de disco, placas grcas, de rede ou de som. Os canais de DMA no sistema podem ser visualizados atravs do comando:
# cat /proc/dma

Um pedido de interrupo (abreviao IRQ (em ingls)) a forma pela qual componentes de hardware requisitam tempo computacional da CPU. Um IRQ a sinalizao de um pedido de interrupo de hardware.As interrupes do sistema podem ser visualizadas com o comando:
# cat /proc/interrupts

Recursos j reservados:

SCSI (pronuncia-se "sczi"), sigla de Small Computer System Interface, uma tecnologia que permite ao usurio conectar uma larga gama de perifricos, tais como discos rgidos, unidades CD-ROM, impressoras e scanners.

Caractersticas fsicas e eltricas de uma interface de entrada e sada (E/S) projetadas para se conectarem e se comunicarem com dispositivos perifricos so denidas pelo SCSI.Existe uma grande variedade de padres de dispositivos SCSI, sendo que estes inicialmente usavam interfaces paralelas. Alguns exemplos: SCSI-1 (barramento de 8 bits, clock de 5 MHz e taxa de transferncia de 5 MB/s), Fast SCSI (barramento de 8

32 de 190

22-07-2013 21:21

http://debian.linux/

bits, clock de 10 MHz e taxa de transferncia de 10 MB/s), Ultra SCSI (barramento de 8 bits, clock de 20 MHz e taxa de transferncia de 20 MB/s), Ultra2 Wide SCSI (barramento de 16 bits, clock de 40 MHz e taxa de transferncia de 80 MB/s) e Ultra-320 SCSI (barramento de 16 bits, clock de 80 MHz DDR e taxa de transferncia de 320 MB/s). SCSI mais comumente usado em discos rgidos e unidades de ta, mas tambm pode ser conectado em uma grande gama de dispositivos, incluindo scanners e drivers de CD.

Congurando Dispositivos de Rede: Com o comando abaixo ns podemos identicar o fabricando e o modelo de uma placa PCI.
# lspci

a sada ser mais ou menos, de vermelho est a placa de rede:

00:00.0 00:02.0 00:1b.0 00:1c.0 00:1d.0 00:1d.1 00:1d.2 00:1d.3 00:1d.7 00:1e.0 00:1f.0 00:1f.1 00:1f.2 00:1f.3 01:00.0 02:01.0

Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 10) VGA compatible controller: Intel Corporation 82G33/G31 Express Integrated Graphics Control Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01) PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01) USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 01) USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01) USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01) USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01) USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01) PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1) ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01) IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01) IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01) SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01) Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Et Modem: Motorola SM56 Data Fax Modem (rev 04)

33 de 190

22-07-2013 21:21

http://debian.linux/

Carregando mdulos Depois de identicarmos a placa, o endereamento de entrada e sada e o IRQ, ser preciso carregar o mdulo do Kernel correspodente ou compilar o suporte ao dispositivo.Para carregar o suporte ao dispositivo atravs de um mdulo do Kernel, devemos utilizar o comando:
# modprobe 8139too

O Linux suporta que os mdulos sejam carregados automaticamente durante a carga do sistema(boot).As conguraes dos parmetros devem ser feitas no arquivo:
# cat /etc/modules.conf

Congurando a Placa de Som O Linux suporta dois padres de Sistemas de Som: -OSS (Open Sound Sistem) e -ALSA(Advanced Linux Sound Architecture) Para utilizar o dispositivo de som, carregue o mdulo da placa com o comando:
# modprobe NOME_DO_MODULO

Algumas placas requerem que seja especicado o recurso de hardware utilizado com parmetro:
# modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x388

Depois de instanciado no Kernel o mdulo do dispositivo, os recursos:


# /dev/audio # /dev/dsp # /dev/mixer

, estaro disponveis. Congurando Dispositivos USB Universal Serial Bus (USB) um tipo de conexo "ligar e usar" que permite a conexo de perifricos sem a necessidade de desligar o computador. O primeiro passo deteminar qual xHCI(Host Controller Interface) sua placa me possui, e carregar o mdulo correspodente ao chip. O comando para determinar qual o chip utilizado em sua placa-me :
# lspci -vt

O Linux tem suporte a diversos dispositivos USB atravs dos mdulos do Kernel.Voc poder consultar os chipsets suportados no diretrio:
# /lib/modules/versao_do_kernel/kernel/drivers/usb

At o momento s, at o prximo tpico.

Curso Certicao Linux LPI-1: Filtros de Texto

34 de 190

22-07-2013 21:21

http://debian.linux/

Filtragem de textos A ltragem de textos o processo de executar algumas converses no texto de um uxo de entrada de texto antes de envi-lo para um uxo de sada. Embora tanto a entrada como a sada possam vir de um arquivo, nos ambientes UNIX e Linux, a ltragem , na maioria das vezes, feita atravs da criao de uma pipeline de comandos, na qual a sada de um comando canalizada ou redirecionada para ser usada como a entrada para o prximo. Canais e redirecionadores so abordados mais detalhadamente no artigo sobre uxos, canais e redirecionadores. Porm, por enquanto, vamos dar uma olhada nos canais e redirecionamentos de sada bsicos usando os operadores | e >. Fluxos Um uxo nada mais que uma sequncia de bytes que pode ser lida ou escrita atravs do uso de funes da biblioteca, as quais escondem os detalhes de um dispositivo subjacente do aplicativo. O mesmo programa pode ler ou escrever em um terminal, arquivo ou soquete de rede em uma direo independente de dispositivo atravs do uso de uxos. Ambientes modernos de programao e shells usam trs uxos padro de E/S: stdin o uxo de entrada padro, que fornece a entrada para os comandos. stdout o uxo de sada padro, que exibe a sada dos comandos. stderr o uxo de erro padro, que exibe a sada de erros dos comandos. Canalizando com | A entrada pode vir de parmetros que voc fornece aos comandos e a sada pode ser exibida em seu terminal. Muitos comandos de processamento de texto (ltros) podem receber entradas tanto de um uxo de entrada padro quanto de um arquivo. Para usar a sada de um comando, command1, como entrada para um ltro, command2, voc deve conectar os comandos usando o operador de canal (I). A 1 mostra como canalizar a sada de
echo

35 de 190

22-07-2013 21:21

http://debian.linux/

para classicar uma pequena lista de palavras. 1. Canalizando sadas de echo para entradas de classicao
$ echo -e "apple\npear\nbanana"|sortapple banana pear

Qualquer comando pode ter opes e argumentos. Tambm possvel usar | para redirecionar a sada do segundo comando na pipeline para um terceiro comando, e assim por diante. Construir longas pipelines de comandos, em que cada uma tenha uma capacidade limitada, um modo comum de executar tarefas no Linux e no UNIX. s vezes, voc ver um hfen (-) no lugar do nome do arquivo como um argumento para um comando, indicando que a entrada deve vir do stdin e no de um arquivo. Redirecionamento de sada com > Embora voc possa criar uma pipeline com muitos comandos e visualizar a sada no seu terminal, s vezes, voc desejar salvar a sada em um arquivo. Isso feito com o operador de redirecionamento de sada (>). Durante o resto desta seo, usaremos pequenos arquivos, assim, vamos ento criar um diretrio chamado lpi103-2 e fazer cd nesse diretrio. Usaremos ento o > para redirecionar a sada do comando
echo

para um arquivo chamado text1. Tudo isso exibido na 2. Observe que a sada no exibida no terminal, pois foi redirecionada para um arquivo. 2. Redirecionando a sada de um comando para um arquivo
$ mkdir lpi103-2$ cd lpi103-2$ echo -e "1 apple\n2 pear\n3 banana" > text1

Agora que j temos algumas ferramentas bsicas para canalizar e redirecionar, vamos dar uma olhada em alguns comandos e ltros de processamento de texto comuns do Linux e do UNIX. Esta seo apresenta alguns dos recursos bsicos; consulte a man page apropriada para mais informaes sobre estes comandos. Cat, od e split Agora que voc j criou o arquivo text1, voc pode querer vericar o que h nele. Use o comando
cat

(abreviao de concatenate) para exibir o contedo de um arquivo no stdout. A 3 verica o contedo do arquivo criado acima. 3. Exibindo contedos de arquivos com o comando cat
$ cat text11 apple 2 pear 3 banana

O comando
cat

recebe a entrada a partir do stdin, caso voc no especique um nome de arquivo (ou se voc especica - como o nome do arquivo). Vamos usar isso junto com o redirecionamento de sada para criar outro arquivo de texto, como exibido na 4.

36 de 190

22-07-2013 21:21

http://debian.linux/

4. Criando um arquivo de texto com o comando cat


$ cat >text29 plum 3 banana 10 apple

Muitos ltros pequenos


Outro exemplo de um ltro pequeno o comando
tac

. O nome o contrrio de
cat

, assim como a funo, que tambm oposta a do comando


cat

, exibindo o arquivo na ordem inversa. Tente voc mesmo executar


tac text2 text1

. Na 4,
cat

continua lendo a partir do stdin at o m do arquivo. Usa a combinao Ctrl-d (segure Ctrl e pressione d) parar indicar o m do arquivo. Esta a mesma combinao de teclas para sair do bash shell. Use a tecla tab para alinhar os nomes das frutas em uma coluna. Voc lembra que cat uma abreviao de concatenate? possvel usar o comando
cat

para concatenar vrios arquivos para exibio. A 5 exibe os dois arquivos que acabamos de criar. 5. Concatenando dois arquivos com o comando cat
$ cat text*1 apple 2 pear 3 banana 9 plum 3 banana 10 apple

Ao exibir esses dois arquivos de texto usando o comando


cat

, voc ir notar diferenas de alinhamento. Para descobrir o motivo dessa diferena, necessrio vericar os caracteres de controle do arquivo. Estes so colocados em prtica na sada de exibio de texto, em vez de terem alguma representao do prprio caractere de controle exibida, assim, necessrio fazer dump no arquivo em um formato que permita localizar e interpretar esses caracteres especiais. As utilidades de texto GNU incluem um comando voltado para esse propsito, o comando
od

(ou Octal Dump). H muitas opes para o comando


od

, como, por exemplo, a opo


-A

, que controla a base dos deslocamentos de arquivo, e a opo


-t

37 de 190

22-07-2013 21:21

http://debian.linux/

, que controla a forma dos contedos do arquivo exibidos. A base pode ser especicada como o, (octal, que o padro), d (decimal), x (hexadecimal) ou n (sem deslocamentos exibidos). possvel exibir a sada como octal, hex, decimal, ponto utuante, ASCII com escapes de barra invertida ou caracteres nomeados (nl for nova linha, ht para tabulao horizontal, etc.). A 6 exibe alguns dos formatos disponveis para fazer dump do arquivo de exemplo text2. 6. Fazendo dump de arquivos com o comando od
$ od text20000000 004471 066160 066565 031412 061011 067141 067141 005141 0000020 030061 060411 070160 062554 000012 0000031 $ od -A d -t c text20000000 9 \t p l u m \n 3 \t b a n a n a \n 0000016 1 0 \t a p p l e \n 0000025 $ od -A n -t a text2 9 ht p l u m nl 3 ht b a n a n a nl 1 0 ht a p p l e nl

Observaes: 1. A opo
-A

do comando
cat

fornece uma maneira alternativa para ver onde esto os seus nais de linhas e as suas tabulaes. Consulte a man page para obter mais informaes. 2. Caso voc use espaos ao invs de tabulaes em seu arquivo text2, consulte Expand, unexpand, e tr, mais adiante neste artigo, para ver como alternar entre tabulaes e espaos em um arquivo. 3. Caso tiver um plano de fundo como mainframe, voc pode ter interesse na utilidade hexdump, que faz parte de um conjunto de utilidades diferente. Como isso no abordado aqui, consulte as man pages. Os nossos arquivos de exemplo so muito pequenos, porm, s vezes, voc trabalhar com arquivos grandes, os quais devero ser divididos em partes menores. Por exemplo, voc pode querer dividir um arquivo grande em partes do tamanho de CDs, de modo que seja possvel gravar os arquivos em CDs para enviar os mesmos pelo correio para algum que possa criar um DVD para voc. O comando
split

far isso de modo que o comando


cat

possa ser usado para recriar o arquivo facilmente. Como padro, os arquivos resultantes do comando
split

tm um prexo 'x' em seus nomes, seguido de um suxo 'aa', 'ab', 'ac', ..., 'ba', 'bb', etc. H opes que permitem alterar esse padro. Tambm possvel controlar o tamanho dos arquivos de sada e se o arquivo resultante contm linhas inteiras ou somente contagens de bytes. A 7 ilustra a diviso dos nossos dois arquivos de texto com prexos diferentes para os arquivos de sada. Ns dividimos o arquivo text1 em arquivos contendo no mximo duas linhas, e o text2 em arquivos contendo no mximo 18 bytes. Usamos ento o comando
cat

38 de 190

22-07-2013 21:21

http://debian.linux/

para exibir individualmente algumas das partes, assim como para exibir um arquivo completo usando globbing, abordado no artigo gerenciamento bsico de arquivos 7. Dividindo e recombinando com os comandos split e cat
$ split -l 2 text1$ split -b 17 text2 y$ cat yaa9 plum 3 banana 1$ cat yab0 apple $ cat y* x*9 plum 3 banana 10 apple 1 apple 2 pear 3 banana

Observe que o arquivo dividido nomeado como yaa no acabou com um caractere de linha nova, assim, o nosso prompt foi deslocado aps usarmos o comando
cat

para exibi-lo. Wc, head e tail O comando


Cat

exibe todo o arquivo. Isso funciona bem com arquivos pequenos, porm, vamos supor que estamos trabalhando com um arquivo grande. Primeiramente, voc pode usar o comando
wc

(Word Count) para ver o quo grande o arquivo. O comando


wc

exibe o nmero de linhas, palavras e bytes em um arquivo. Tambm possvel descobrir o nmero de bytes usando
ls -l

. A 8 exibe a de diretrio de formato longo para os nossos dois arquivos de texto, assim como a sada do comando
wc

. 8. Usando o comando wc com arquivos de texto


$ ls -l text* -rw-rw-r--. 1 marcos marcos 24 2009-08-11 14:02 text1 -rw-rw-r--. 1 marcos marcos 25 2009-08-11 14:27 text2 $ wc text* 3 6 24 text1 3 6 25 text2 6 12 49 total

H opes que permitem controlar a sada de


wc

ou exibir outras informaes, como, por exemplo, o comprimento mximo das linhas. Consulte a man page para obter mais detalhes. Dois comandos permitem exibir a primeira (head) ou ltima (tail) parte de um arquivo. Esses comandos so
head

e
tail

. Eles podem ser usados como ltros, ou podem tomar um nome de arquivo como um argumento. Como padro, eles exibem as primeiras (ou ltimas) 10 linhas do

39 de 190

22-07-2013 21:21

http://debian.linux/

arquivo ou uxo. A 9 usa o comando


dmesg

para exibir mensagens de inicializao, em conjunto com os comandos


wc

,
tail

e
head

, para descobrir que h 791 mensagens, exibir as ltimas 10 linhas destas mesmas e, nalmente, exibir as seis mensagens comeando 15 a partir do nal. Algumas linhas foram truncadas nesta sada (indicadas por ...). 9. Usando wc, head e tail para exibir mensagens de boot
$ dmesg|wc 791 5554 40186 $ dmesg | tailinput: HID 04b3:310b as /devices/pci0000:00 /0000:00:1a.0/usb3/3-2/3-2.4/3-2.4:1.0/input/i nput12 generic-usb 0003:04B3:310B.0009: input,hidraw1: USB HID v1.00 Mouse [HID 04b3:310b] on us b-0000:00:1a.0-2.4/input0 usb 3-2.4: USB disconnect, address 11 usb 3-2.4: new low speed USB device using uhci_hcd and address 12 usb 3-2.4: New USB device found, idVendor=04b3, idProduct=310b usb 3-2.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 usb 3-2.4: configuration #1 chosen from 1 choice input: HID 04b3:310b as /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.4/3-2.4:1.0/input/i nput13 generic-usb 0003:04B3:310B.000A: input,hidraw1: USB HID v1.00 Mouse [HID 04b3:310b] on us b-0000:00:1a.0-2.4/input0 usb 3-2.4: USB disconnect, address 12 $ dmesg | tail -n15 | head -n 6usb 3-2.4: USB disconnect, address 10 usb 3-2.4: new low speed USB device using uhci_hcd and address 11 usb 3-2.4: New USB device found, idVendor=04b3, idProduct=310b usb 3-2.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 usb 3-2.4: configuration #1 chosen from 1 choice input: HID 04b3:310b as /devices /pci0000:00/0000:00:1a.0/usb3/3-2/3-2.4/3-2.4:1.0/input/i nput12

Outro uso comum de


tail

seguir um arquivo usando a opo


-f

, normalmente com uma contagem de linha de 1. Voc pode usar essa opo quando um processo de segundo plano est gerando sada em um arquivo e voc deseja vericar como est o andamento. Neste modo, o comando
tail

ser executado at que voc o cancele (usando Ctrl-c), exibindo as linhas conforme elas so escritas no arquivo. Expand, unexpand e tr Quando criamos os nossos arquivos text1 e text2, criamos o text2 com tabulaes. s vezes, voc desejar trocar as tabulaes por espaos, e vice-versa. Isso feito com os comandos
expand

e
unexpand

. Em ambos os comandos, a opo


-t

40 de 190

22-07-2013 21:21

http://debian.linux/

permite que voc dena as tabulaes. Um valor nico dene tabulaes repetidas neste intervalo. A 10 exibe como expandir as tabulaes no arquivo text2 para espaos simples, assim como outra cuidadosa sequncia de
expand

e
unexpand

, que desalinha o texto em text2. 10. Usando expand e unexpand


$ expand -t 1 text29 plum 3 banana 10 apple $ expand -t8 text2|unexpand -a -t2|expand -t39 plum 3 banana 10 apple

Infelizmente, no possvel usar


unexpand

para substituir os espaos em text1 por tabulaes, pois


unexpand

necessita de pelo menos dois espaos para converter em tabulaes. No entanto, possvel usar o comando
tr

, que converte caracteres em um conjunto (set1) para caracteres correspondentes em outro conjunto (set2). A 11 mostra como usar o comando
tr

para converter espaos em tabulaes. Uma vez que


tr

meramente um ltro, gera-se entrada a partir do mesmo usando o comando


cat

. Este exemplo tambm ilustra o uso de - para representar a entrada padro para o comando
cat

, assim, podemos concatenar a sada de


tr

e o arquivo text2. 11. Usando o comando tr


$ cat text1 |tr ' ' '\t'|cat - text21 apple 2 pear 3 banana 9 plum 3 banana 10 apple

Caso voc no tenha certeza do que est acontecendo nos dois ltimos exemplos, tente usar o comando
od

para terminar cada estgio da pipeline de uma vez, por exemplo,


cat text1 |tr ' ' '\t' | od -tc

41 de 190

22-07-2013 21:21

http://debian.linux/

Pr, nl e fmt O comando


pr

usado para formatar arquivos para impresso. O cabealho padro inclui o nome do arquivo, data e hora de criao do arquivo, junto com um nmero de pgina e duas linhas de rodap em branco. Quando a sada criada a partir de mltiplos arquivos ou do uxo de entrada padro, a data e a hora atuais so usadas no lugar do nome do arquivo e sua data de criao. possvel imprimir arquivos lado a lado em colunas e controlar muitos aspectos da formatao atravs das opes. Como de costume, consulte a man page para obter mais detalhes. O comando
nl

numera as linhas, o que pode ser conveniente ao imprimir os arquivos. Tambm possvel numerar as linhas com a opo
-n

do comando
cat

. A 12 mostra como imprimir um arquivo de texto e, em seguida, como numerar o arquivo text2 e imprimi-lo lado a lado com o text1. 12. Numerando e formatando para impresso.
$ pr text1 | head 2009-08-11 14:02 text1 Page 1 1 apple 2 pear 3 banana $ nl text2 | pr -m - text1 | head 2009-08-11 15:36 Page 1 1 9 plum 1 apple 2 3 banana 2 pear 3 10 apple 3 banana

Outro comando til para formatar o texto


fmt

, que formata o texto de modo que o mesmo que dentro das margens. possvel tanto juntar vrias linhas curtas como dividir longas. Na 13, ns criamos o arquivo text3 com uma nica e longa linha de texto, usando variantes do recurso histrico
!#:*

para no termos que digitar nossa sentena quatro vezes. Tambm criamos um arquivo text4 com uma palavra por linha. A seguir, usamos o comando
cat

para exibi-los de modo no formatado, incluindo um caractere '$' para sinalizar os nais de linha. Finalmente, usamos o comando
fmt

para format-los com uma largura mxima de 60 caracteres. Mais uma vez, consulta a man page para mais detalhes sobre opes adicionais. 13. Formatando com um comprimento mximo de linha
$ echo "This is a sentence. " !#:* !#:1->text3echo "This is a sentence. " "This is a sentence. " "This is a sentence. ">text3 $ echo -e "This\nis\nanother \nsentence.">text4$ cat -et text3 text4This is a sentence. This is a sentence. This is a sentence. $ This$ is$ another$ sentence.$ $ fmt -w 60 text3 text4This is a sentence. This is a sentence. This is a sentence. This is another sentence.

42 de 190

22-07-2013 21:21

http://debian.linux/

Sort e uniq O comando


sort

classica a entrada usando a sequncia de intercalao do cdigo do idioma (LC_COLLATE) do sistema. O comando
sort

tambm pode mesclar arquivos j classicados e vericar se um arquivo est ou no classicado. A 14 ilustra o uso do comando
sort

para classicar os nossos dois arquivos de texto aps a converso dos espaos em branco para tabulaes no arquivo text1. Uma vez que a ordem de classicao por caractere, voc poder se surpreender com os resultados. Felizmente, o comando
sort

pode classicar tanto de acordo com valores numricos quanto de acordo com valores de caractere. possvel denir essa escolha para todo o registro ou para cada campo. A menos que voc especique um separador de campo diferente, os campos so delimitados por espaos em branco ou tabulaes. O segundo exemplo da 14 exibe a classicao numrica do primeiro arquivo e a classicao por seqncia de intercalao (alfabtica) do segundo. O uso da opo
-u

para eliminar linhas duplicadas e manter somente as linhas nicas tambm ilustrado. 14. Classicao numrica e por caractere.
$ cat text1 | tr ' ' '\t' | sort - text210 apple 1 apple 2 pear 3 banana 3 banana 9 plum $ cat text1|tr ' ' '\t'|sort -u -k1n -k2 - text21 apple 2 pear 3 banana 9 plum 10 apple

Observe que ainda h duas linhas contendo a fruta "apple", pois o teste de singularidade feito em todas as duas chaves de classicao, k1n e k2 em nosso caso. Pense em como alterar ou adicionar etapas pipeline acima para eliminar a segunda ocorrncia de 'apple'. Outro comando, chamado
uniq

, fornece outro modo de controlar a eliminao das linhas duplicadas. O comando


uniq

normalmente opera em arquivos classicados. Ele remove as linhas idnticas e consecutivas de qualquer arquivo, classicado ou no. O comando
uniq

tambm pode ignorar alguns campos. A 15 classica os nossos dois arquivos de

43 de 190

22-07-2013 21:21

http://debian.linux/

texto usando o segundo campo (fruit name) e, a seguir, elimina as linhas idnticas, comeando no segundo campo (ou seja, ns ignoramos o primeiro campo ao fazer os testes com o comando
uniq

). 15. Usando o comando uniq


$ cat text1|tr ' ' '\t'|sort -k2 - text2|uniq -f110 apple 3 banana 2 pear 9 plum

Nossa classicao foi por sequncia de intercalao, assim, o comando


uniq

nos fornece a linha "10 apple", em vez de "1 apple". Para ver como alterar isso, tente adicionar uma classicao numrica no campo-chave 1.

Cut, paste e join Agora, vamos dar uma olhada em mais trs comandos para lidar com campos em dados textuais. Estes comandos so especialmente teis para lidar com dados tabulares. O primeiro o comando
cut

, que extrai campos de arquivos de texto. O delimitador de campo padro o caractere de tabulao. A 16 usa o comando
cut

para separar duas colunas do arquivo text2 e, a seguir, usa um espao como delimitador de sada, que uma maneira incomum de converter a tabulao de cada linha em um espao. 16. Usando o comando cut
$ cut -f1-2 --output-delimiter=' ' text29 plum 3 banana 10 apple

O comando
paste

cola linhas de dois ou mais arquivos lado a lado, semelhante ao modo que o comando
pr

mescla arquivos usando sua opo


-m

. A 17 exibe os resultados da colagem de dois ou mais arquivos de texto. 17. Colando arquivos
$ paste text1 text21 apple 9 plum 2 pear 3 banana 3 banana 10 apple

Estes exemplos apresentam colagens simples, porm o comando


paste

44 de 190

22-07-2013 21:21

http://debian.linux/

pode colar dados a partir de um ou mais arquivos de vrias outras maneiras. Consulte a man page para obter mais detalhes. Nosso ltimo comando para a manipulao de campos o
join

, que junta arquivos com base em um campo correspondente. Os arquivos devem estar classicados no campo de juno. Uma vez que o arquivo text2 no est classicado em ordem numrica, podemos classic-lo e, ento, o comando join ir juntar as duas linhas com um campo de juno correspondente (o campo com valor 3, neste caso). 18. Juntando arquivos com campos de juno.
$ sort -n text2|join -j 1 text1 -3 banana banana join: file 2 is not in sorted order

Mas o que deu errado? Lembre-se do que aprendeu sobre classicao numrica e por caractere na seo Sort e uniq. A juno executada com base em caracteres correspondentes de acordo com a sequncia de intercalao do cdigo do idioma. Ela no funciona em campos numricos, a no ser que os campos tenham todos o mesmo comprimento. Usamos a opo
-j 1

para juntar com base no campo 1 de cada arquivo. O campo a ser usado para a juno pode ser especicado separadamente para cada arquivo. possvel, por exemplo, fazer a juno com base no campo 3 de um arquivo e no campo 10 de outro arquivo. Vamos criar um novo arquivo, chamado text5, classicando o arquivo text1 com base no segundo campo (fruit name) e substituindo os espaos por tabulaes. Em seguida, se classicarmos o arquivo text2 no segundo campo e zermos a juno com o text5 usando o segundo campo de cada arquivo como campo de juno, deveremos ter duas correspondncias (apple e banana). Essa juno ilustrada na 19. 19. Juntando arquivos com campos de juno.
$ sort -k2 text1|tr ' ' '\t'>text5$ sort -k2 text2 | join -1 2 -2 2 text5 -apple 1 10 banana 3 3

Sed Sed o stream editor. H muitos artigos do developerWorks, assim como muitos livros e captulos de livros, sobre o sed . O Sed muito poderoso e as tarefas que ele pode realizar so limitadas somente pela sua imaginao. Esta pequena introduo deve abrir o seu apetite para com o sed, porm sem intenes de ser completa ou extensiva. Tal como acontece com muitos dos comandos de texto que aprendemos at agora, o sed pode funcionar como um ltro e receber a sua entrada a partir de um arquivo. A sada para o uxo de sada padro. O sed carrega linhas da entrada no espao padro, aplica os comandos de edio do sed aos contedos do espao padro e, em seguida, escreve o espao padro para a sada padro. O sed pode combinar muitas linhas no espao padro, e isso pode escrever para um arquivo,

45 de 190

22-07-2013 21:21

http://debian.linux/

escrever somente a sada selecionada ou no escrever. O sed usa a sintaxe de expresso regular para procurar e substituir o texto seletivamente no espao padro, assim com controlar quais linhas de texto devem ser operadas por conjuntos de comandos de edio. Expresses regulares so abordadas com mais detalhes no artigo sobre procurando arquivos de texto em expresses regulares (que voc encontra na . Um buer de espera fornece armazenamento temporrio para o texto. O buer de espera pode substituir o espao padro, ser adicionado ao espao padro, ou ser alternado com o espao padro. O sed tem um conjunto de comandos limitados, mas que, quando combinados com sintaxe de expresses regulares e o buer de espera, resultam em incrveis capacidades. Um conjunto de comandos do sed , normalmente, chamado sed script. A 20 exibe trs sed scripts simples. No primeiro, usamos o comando
s

(substitute) para substituir uma maiscula por uma minscula 'a' em cada linha. Este exemplo substitui somente o primeiro 'a', assim, no segundo exemplo, adicionamos o sinalizador 'g' (global), fazendo com que o sed altere todas as ocorrncias. No terceiro script, introduzimos o comando
d

(delete) para deletar uma linha. No nosso exemplo, usamos um endereo de 2 para indicar que somente a linha 2 deve ser deletada. Separamos os comandos usando um ponto-e-vrgula (;) e usamos a mesma substituio global que usamos no segundo script para substituir 'a' por 'A'. 20. Iniciando sed scripts
$ sed 's/a/A/' text11 Apple 2 peAr 3 bAnana $ sed 's/a/A/g' text11 Apple 2 peAr 3 bAnAnA $ sed '2d;$s/a/A/g' text11 apple 3 bAnAnA

Alm de operar em linhas individuais, o sed pode operar em um intervalo de linhas. O comeo e o m do intervalo so separados por uma vrgula (,) e podem ser especicados como um nmero de linha, uma expresso regular ou um sinal de dlar ($) para o nal do arquivo. Dado um endereo ou vrios endereos, possvel agrupar vrios comandos entre chaves, { e }, para que estes operem somente nas linhas selecionadas pelo intervalo. A 21 ilustra duas maneiras de ter a nossa substituio global aplicada somente s duas ltimas linhas do nosso arquivo. Tambm ilustra o uso da opo
-e

para adicionar mltiplos comandos ao script. 21. Endereos sed.


$ sed -e '2,${' -e 's/a/A/g' -e '}' text11 apple 2 peAr 3 bAnAnA $ sed -e '/pear /,/bana/{' -e 's/a/A/g' -e '}' text11 apple 2 peAr 3 bAnAnA

Sed scripts tambm podem ser armazenados em arquivos. De fato, voc provavelmente vai querer fazer isso com scripts frequentemente usados. Lembre-se que usamos o comando
tr

46 de 190

22-07-2013 21:21

http://debian.linux/

para substituir espaos em branco por tabulaes no arquivo text1. Agora, vamos fazer isso com um sed script armazenado em um arquivo. Vamos usar o comando
echo

para criar o arquivo. Os resultados so exibidos na 22. 22. Um sed de uma linha
$ echo -e "s/ /\t/g">sedtab$ cat sedtabs/ / /g $ sed -f sedtab text11 apple 2 pear 3 banana

Nosso ltimo exemplo de sed usa o comando


=

para imprimir nmeros de linha e ento ltrar a sada resultante, novamente atravs do sed, imitando o efeito do comando
nl

para numerar linhas. A 23 usa o comando


=

para imprimir nmeros de linha, a seguir, usa o comando


N

para ler uma segunda linha de entrada no espao padro e, nalmente, remove o caractere de nova linha (\n) entre as duas linhas no espao padro. 23. Numerando linhas com sed
$ sed '=' text21 9 plum 2 3 banana 3 10 apple $ sed '=' text2|sed 'N;s/\n//'19 plum 23 banana 310 apple

No bem o que queramos! O que realmente gostaramos de ter os nossos nmeros alinhados em uma coluna com algum espao antes das linhas do arquivo. Na 24, inserimos vrias linhas de comando (observe o prompt secundrio >). Estude os exemplos e consulte a explicao abaixo. 24. Numerando linhas com sed - segundo round
$ cat text1 text2 text1 text2>text6$ ht=$(echo -en "\t")$ sed '=' text6|sed "N> s/^/ /> s/^.*\(......\)\n/\1$ht/" 1 1 apple 2 2 pear 3 3 banana 4 9 plum 5 3 banana 6 10 apple 7 1 apple 8 2 pear 9 3 banana 10 9 plum 11 3 banana 12 10 apple

Aqui vo os passos que seguimos: 1. Primeiro, usamos o comando


cat

para criar um arquivo de doze linhas a partir de duas cpias dos nossos arquivos text1 e text2. No h nada de divertido em formatar nmeros em colunas se no temos nmeros de dgitos diferentes. 2. O bash shell usa a tecla tab para a concluso de comandos, assim, til ter um caractere de tabulao cativo que voc possa utilizar quando necessitar de uma tabulao real. Usamos o comando
echo

para fazer isso e salvar o caractere na varivel shell 'ht'. 3. Criamos um uxo contendo nmeros de linha seguidos de linhas de dados, como
22-07-2013 21:21

47 de 190

http://debian.linux/

zemos anteriormente, e o ltramos atravs de uma segunda cpia do sed. 4. Lemos uma segunda linha no espao padro. 5. Prexamos nosso nmero de linha no comeo do espao padro (marcado por ^) com seis espaos em branco. 6. A seguir, substitumos toda a linha para a nova linha com os ltimos seis caracteres antes da nova linha mais um caractere de tabulao. Isso alinha os nossos nmeros de linha nas primeiras seis colunas da linha de sada. Observe que a parte esquerda do comando 's' usa '\(' e '\)' para marcar os caracteres que queremos usar na parte direita. Na parte direita, referimos o primeiro conjunto marcado (e somente tal conjunto neste exemplo) como \1. Observe que nosso comando est entre aspas duplas ("), de modo que a substituio vai ocorrer para $ht. A Verso 4 do sed contm documentao em formato
info

e inclui excelentes exemplos. Estes no esto inclusos na antiga verso 3.02. O GNU sed aceita o comando
sed --version

para exibir a verso.


Extrado com adaptao do original: https://www.ibm.com/developerworks/br/linux/

Curso Certicao Linux LPI-1: Hierarquia do Sistema

Sistema de arquivos a forma de organizao de dados em algum meio de armazenamento de dados em massa frequentemente feito em discos magnticos.[1] Sabendo interpretar o sistema de arquivos de um determinado disco, o sistema operacional pode decodicar os dados armazenados e l-los ou grav-los. Fazendo analogias, tal organizao assemelha-se a uma biblioteca escolar. O bibliotecrio organiza os livros conforme um padro, cuja busca,

48 de 190

22-07-2013 21:21

http://debian.linux/

convenientemente, procura deixar mais fcil, sem ocupar muitas prateleiras e assegurando a integridade deste. Inode Cada diretrio e arquivo do Linux identicado para o kernel como um nmero de n i (inode).
Inode

Um inode , na realidade, uma estrutura de dados que possui informaes sobre um determinado arquivo ou diretrio como, por exemplo, dono, grupo, tipo e permisses de acesso. O inode exclusivo somente para o dispositivo (partio) dentro do qual ele est contido. Portanto, para identicar unicamente um arquivo, o kernel deve ter o nmero de dispositivo e o inode do arquivo. Um arquivo possui um nico inode, no importa por quantos nomes este arquivo identicado no sistema. Logo, o conjunto de inodes que indica o nmero de arquivos/diretrios que o sistema possui.Inodes
Diretrio

Diretrio o local utilizado para armazenar conjuntos de arquivos para melhor organizao e localizao. O diretrio, como o arquivo, tambm "Case Sensitive" (diretrio /teste completamente diferente do diretrio /Teste). No podem existir dois arquivos com o mesmo nome em um diretrio, ou um sub-diretrio com um mesmo nome de um arquivo em um mesmo diretrio. Um diretrio, nos sistemas Linux/UNIX, especicado por uma "/" e no uma "\" como feito no DOS. Para detalhes sobre como criar um diretrio, veja o comando mkdir.

49 de 190

22-07-2013 21:21

http://debian.linux/

Diretrio Raiz

Este o diretrio principal do sistema. Dentro dele esto todos os diretrios do sistema. O diretrio Raiz representado por uma "/", assim se voc digitar o comando cd / voc estar acessando este diretrio. Nele esto localizados outros diretrios como o /bin, /sbin, /usr, /usr/local, /mnt, /tmp, /var, /home, etc. Estes so chamados de sub-diretrios pois esto dentro do diretrio "/". A estrutura de diretrios e sub-diretrios pode ser identicada da seguinte maneira:

A estrutura de diretrios tambm chamada de rvore de Diretrios porque parecida com uma rvore de cabea para baixo. Cada diretrio do sistema tem seus respectivos arquivos que so armazenados conforme regras denidas pela FHS (FileSystem Hierarchy Standard - Hierarquia Padro do Sistema de Arquivos) verso 2.0, denindo que tipo de arquivo deve ser armazenado em cada diretrio. O sistema GNU/Linux possui a seguinte estrutura bsica de diretrios, organizados segundo o FHS (Filesystem Hierarchy Standard): / raz do sistema /bin Contm arquivos programas do sistema que so usados com frequncia pelos usurios. /boot Contm arquivos necessrios para a inicializao do sistema.

50 de 190

22-07-2013 21:21

http://debian.linux/

/cdrom Ponto de montagem da unidade de CD-ROM. /media Ponto de montagem de dispositivos diversos do sistema (rede, pen-drives, CD-ROM em distribuies mais novas). /dev Contm arquivos usados para acessar dispositivos (perifricos) existentes no computador. /etc Arquivos de congurao de seu computador local. /oppy Ponto de montagem de unidade de disquetes /home Diretrios contendo os arquivos dos usurios. /lib Bibliotecas compartilhadas pelos programas do sistema e mdulos do kernel. /lost+found Local para a gravao de arquivos/diretrios recuperados pelo utilitrio fsck.ext2. Cada partio possui seu prprio diretrio lost+found. /mnt Ponto de montagem temporrio. /proc Sistema de arquivos do kernel. Este diretrio no existe em seu disco rgido, ele colocado l pelo kernel e usado por diversos programas que fazem sua leitura, vericam conguraes do sistema ou modicam o funcionamento de dispositivos do sistema atravs da alterao em seus arquivos. /root Diretrio do usurio root. /sbin Diretrio de programas usados pelo superusurio (root) para administrao e controle do funcionamento do sistema. /tmp Diretrio para armazenamento de arquivos temporrios criados por programas.

51 de 190

22-07-2013 21:21

http://debian.linux/

/usr Contm maior parte de seus programas. Normalmente acessvel somente como leitura. /var Contm maior parte dos arquivos que so gravados com frequncia pelos programas do sistema, e-mails, spool de impressora, cache, etc.
Fontes: http://www.uniriotec.br/ http://pt.wikibooks.org/wiki/Guia_do_Linux/

Curso Certicao Linux LPI-1: Sistemas de Arquivos e Dispositivos

Por padro, os discos so nomeados da seguinte forma no linux: /dev/hda - Disco IDE conectado na interface primria mestre. /dev/hdb - Disco IDE conectado na interface primria escravo. /dev/hdc - Disco IDE conectado na interface secundria mestre. /dev/hdd - Disco IDE conectado na interface secundrio escravo.

52 de 190

22-07-2013 21:21

http://debian.linux/

/dev/sda - Disco SCSI conectado no primeiro canal. /dev/sdb - Disco SCSI conectado no segundo canal. /dev/sdc - Disco SCSI conectado no terceiro canal. /dev/fd - Drive de disquete. Cada disco pode ter de uma a 16 parties.As parties funcionam com um continer para os sistemas de arquivos No Linux cada partio representada por um nmero inteiro.
Parties Primrias

Cada disco pode conter no mximo 4 parties primrias. Estas parties contm necessariamente um sistema de arquivos e pelo menos uma deve ser criada. As parties primrias podem ser nomeadas como: /dev/hda1, /dev/hda2, /dev/hda3 /dev/hda4.Uma destas parties primrias deve ser marcada como ativa para que a carga do sistema operacional(boot) seja possvel.
Parties Estendidas

Elas so uma variao das parties primrias, mas no podem conter um sistema de arquivos.Funcionam como um continer para as parties lgicas.
Parties Lgicas

Essas existem em conjunto com uma partio estendida e podemos ter de uma a 12 parties desse tipo.So nomeadas do n 5 at 16. Exemplo: /dev/hda1 (partio primria) /dev/hda2 (partio estendida) /dev/hda5 (partio lgica) /dev/hda6 (partio lgica) (...) /dev/hda16 (partio lgica)
Partio de Swap (arquivo de troca)

Existem ainda um outro tipo especial de partio no Linux chamado de partio de swap.Esta possibilita que o Linux tenha uma memria virtual em disco.Este tipo de memria usado como arquivo de troca de dados entre a memria fsica e o disco.Seu objetivo aumentar a performance do sistema. so responsveis por criar, listar, alterar e apagar as parties de disco. mkfs formata a partio criada pelo fdisk. mkswap prepara o dispositivo para ser usado como rea de memria virtual(swap), antes de formatar uma partio para swap, necessria que ela seja do tipo 82 (Linux Swap).
fdisk (e cfdisk)

53 de 190

22-07-2013 21:21

http://debian.linux/

ativa a partio aps formatada (necessrio). df mostra a capacidade utilizada em termos de espao e inodes. du (Disk Usage) fornece uma lista detalhada sobre a utilizao do disco em termos de diretrios. fsck checa e corrige a existncia de erros no sistema de arquivos.Por padro ele assume o sistema de arquivos ext2. /etc/fstab mantm informaes de quais sistemas de arquivos sero montados no processo de carga do sistema operacional. which procura um comando no disco
swapon Find

O comando nd localiza a partir de um caminho ou diretrio recursivamente uma expresso diretamente no sistema de arquivos. uso: nd caminho expresso exemplo, encontra o arquivo marcospinguim.php no disco:
$ find /home/marcos -name marcospinguim.php

para as pastas que voc no tem permisso de visualizao, pode jogar a segunda etapa para o vazio, assim:
$ find /home/marcos -name marcospinguim.php 2>/dev/null

Para localizar arquivos ou diretrios que foram alterados nos ltimos 30 dias, utilizamos a expresso -ctime 30:
$ find | home -ctime 30

Para localizar arquivos que foram acessados nos ltimos 10 dias, utilizamos a expresso -used 10:
$ find | -used 10

Para localizar arquivos com pelo menos 30k, utilizamos a expresso -size nk:
$ find | -size 30k

realiza buscas em um banco de dados criado com updatedb. whatis pesquisa por palavra exata no banco de dados. apropos consulta um banco de dados consistindo de descries curtas dos comandos do sistema e utilitrios.
locate

54 de 190

22-07-2013 21:21

http://debian.linux/

Por enquanto s, at o prximo tpico ou a prxima postagem sobre outro assunto.

Curso Certicao Linux LPI-1: Montagem e Desmontagem de Sistema de Arquivos (SLIDE)

Desta vez vou postar somente imagens das Aulas do Professor Uir Ribeiro do Curso Certicao Linux LPI-1: Montagem e Desmontagem de Sistema de Arquivos, para facilitar o aprendizado, lembrando que este "Slide" est resumido do original, analise a imagem para acesso as informaes.

55 de 190

22-07-2013 21:21

http://debian.linux/

56 de 190

22-07-2013 21:21

http://debian.linux/

57 de 190

22-07-2013 21:21

http://debian.linux/

Curso Certicao Linux LPI-1: Executando, Gerenciando e Terminando Processos

58 de 190

22-07-2013 21:21

http://debian.linux/

Escalonador:

O escalonamento de processos ou agendador de tarefas (em ingls scheduling) uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribudo, possibilitando executar os processos mais viveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os computacionalmente intensivos. O escalonador de processos de 2 nveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memria principal, cando os outros alocados em disco; com essa execuo o processador evita car ocioso.
O Processo init:

O init o primeiro processo iniciado no Linux, logo aps a carga do kernel do sistema. Quando disparado, o init continua a carga do sistema, geralmente executando vrios scripts que iro vericar e montar sistemas de arquivos, congurar teclado e iniciar servidores, entre outras tarefas. O init utilizado no Linux permite que existam diversos nveis de execuo no sistema. Um nvel de execuo uma congurao de software do sistema que dene quais processos devem ser inicializados e quais no devem, e tambm de que modo so inicializados.
Atributo de Processos(Sinais):

Um processo tem vrios atributos que controlam sua execuo. O PID identica nicamente este processo (nenhum PID pode ser repetido at novo boot do sistema). O PPID indica qual "processo-pai" o criou. O nice number controla a prioridade desse processo. Processos de maior prioridade tm a preferncia na utilizao da CPU. O UID e GID indicam o

59 de 190

22-07-2013 21:21

http://debian.linux/

usurio e grupo que criou esse processo. Somente o root (superusurio) pode destruir processos criados por outros usurios. O EUID e o EGID so formas de se rodar um processo, criado por um usurio no-privilegiado de forma que ele se comporte como privilegiado, com acesso a outros recursos que normalmente o usurio no o teria. O comando chmod +s pode ser usado para fazer um programa modicar esse valor na execuo. Um programa setuid (com o ag s ligado) no instante de execuo troca seu UID/GID pelos seus prprios (user/group do arquivo) e efetivamente rodam como se fosse este outro usurio, pois o kernel testa o EUID e EGID para testar privilgios de acesso. Da, devmos ter o mximo cuidado quando ligarmos este ag em algum executvel.
Prioridades de Processos:

Muita gente no sabe, mas nos sistemas Linux mais modernos, podemos ter um controle de prioridade de processos utilizando a CPU. Estas prioridades funcionam para favorecer melhor um comando outro. Por exemplo: Programa 1 tem prioridade alta Programa 2 tem prioridade normal Se o Programa 2 resolve gastar quase todo o processamento no sistema (como por exemplo: compactao de arquivos em bzip2), os programas que esto em prioridade alta no sero completamente afetados. Se o Programa 1 estivesse em prioridade normal, ele teria que dividir o processamento com o Programa 2, mesmo que ele usasse pouquinho. Mas como ele est em alta prioridade, ele sempre vai ter a preferncia no sistema, ao invs do Programa 2. A faixa de prioridades :

-20 (Prioridade Mxima) -19 -1 0 (Prioridade Padro) 1 18 19 (Prioridade Mnima) Sendo assim, por padro, todo comando executado normalmente recebe a prioridade 0 (Zero). E quanto menor for esse nmero, maior a prioridade do processo na CPU (Sim, o contrrio! Quanto menor, maior; quanto

60 de 190

22-07-2013 21:21

http://debian.linux/

maior, menor! :). Por padro, os comandos ligados ao kernel e o sistema operacional em si tm prioridade inferior a 0 (aqui no meu sistema, vejo vrios processos com prioridade -5). Isso nos faz lembrar que voc precisa ser root para congurar um processo com prioridade menor que 0. Isso faz sentido, j que em um sistema multi-usurio, os usurios normais compartilham o padro 0, e podem escolher apenas se o processo pode ter uma prioridade mais baixa, assim no interferindo com os processos do sistema, que teoricamente so mais importantes.
Executando aplicaes em segundo plano:

Quando estamos num terminal, queremos utilizar algum comando/aplicao e necessitamos ainda do terminal livre, podemos executar o que queremos em segundo plano. muito simples, veja:
$ comando &

Simplesmente adicione o caracter & ao nal do comando/aplicativo que voc quer executar. Acho interessante quando estamos no X e queremos abrir uma aplicao diretamente do terminal.
Comandos para gerenciamento:

ps:
$ ps [options]

- exibe informaes sobre uma seleo dos processos ativos.Se voc quer uma atualizao repetitiva da seleo e as informaes apresentadas, usar top (1) em seu lugar. >pstree:
$ pstree

- mostra a rvore de processos top:


$ top

- exibe as tarefas do linux. kill:


$ kill

- O sinal padro para matar TERM. Utilizao de L-ou L-a lista de sinais disponveis. Sinais particularmente teis incluem HUP, INT, MATAR, STOP, CONT, e 0.Sinais de suplentes podero ser especicada de trs formas: -9-SIGKILL-matar. PID valores negativos podem ser usados para escolher grupos de processos inteiros; ver a coluna PGID na sada do comando ps. A PID de -1 especial, que indica todos os processos exceto o processo de se matar e init. killall:
$ killall

61 de 190

22-07-2013 21:21

http://debian.linux/

- mata um proceso pelo nome.

Obs.:Coletado de diversos lugares e resumido.

62 de 190

22-07-2013 21:21

http://debian.linux/

Curso Certicao Linux LPI-1: Sistema de Boot, Shutdown e Runlevels

Em informtica, boot o termo em ingls para o processo de iniciao do computador que carrega o sistema operacional quando a mquina ligada.A soluo para o paradoxo est na utilizao de um pequeno e especial programa, chamado sistema de iniciao, boot loader ou bootstrap.O pequeno programa normalmente no o sistema operacional, mas apenas um segundo estgio do sistema de inicializao, assim como o Lilo ou o Grub. Ele ser ento capaz de carregar o sistema operacional apropriado, e nalmente transferir a execuo para ele. Quando um sistema efetua boot pela primeira vez, o processador executa um cdigo em um local conhecido. Em um Computador Pessoal (PC), esse local o Sistema Bsico de Entrada/Sada (BIOS), que est armazenado na memria ash, na placa-me.O estgio de inicializao do sistema depende do hardware no qual o Linux est efetuando boot. Em uma plataforma integrada, um ambiente de autoinicializao utilizado quando o sistema ligado ou recongurado.O loader de boot primrio, que reside no MBR, uma imagem de 512 bytes contendo o cdigo do programa e uma pequena tabela de partio.

63 de 190

22-07-2013 21:21

http://debian.linux/

O loader de boot secundrio, ou de segundo estgio, pode ser chamado de loader de kernel. Neste estgio, sua tarefa carregar o kernel Linux e o disco RAM inicial opcional.Com a imagem de kernel na memria e o controle fornecido no loader de boot de estgio 2, o estgio do kernel comea. A imagem do kernel no bem um kernel executvel, mas uma imagem de kernel compactada. Em geral uma zImage (imagem compactada, com menos de 512KB) ou uma bzImage (imagem compactada grande, com mais de 512KB), previamente compactada com zlib.

Aps executar boot e inicializado, o kernel inicia o aplicativo do primeiro espao do usurio. Ele o primeiro programa chamado, compilado com a biblioteca C padro. At este momento no processo, nenhum aplicativo C padro foi executado.
Runlevels (Nveis de Execuo)

Nveis de execuo denem quais tarefas podem ser realizadas no estado (ou nvel de execuo) atual de um sistema Linux. .Alm do bsico, o uso de nveis de execuo pode ser diferentes nas distribuies. Tablela 1. Nveis de execuo bsicos do Linux Nvel Propsito

64 de 190

22-07-2013 21:21

http://debian.linux/

0 1 2 3 4 5 6

Encerrar (ou parar) o sistema Modo de usurio nico; geralmente com os alias s ou S Modo de multiusurio sem rede Modo de multiusurio com rede No Utilizado Modo de multiusurio com rede e com o X Window System Reinicializar o sistema

A distribuio Slackware usa o nvel de execuo 4 em vez do 5 para um sistema completo executando X Window system. Debian e derivados, como Ubuntu, usam um nico nvel de execuo para o modo de multiusurio, geralmente o nvel 2. Consulte a documentao para sua distribuio. Para alterar o Runlevel de inicializao do seu Linux, vc pode alterar o arquivo /etc/inittab:
# vi /etc/inittab

Exemplo abaixo, corresponde a linha em vermelho, o nmero 2 o denido:


# /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # # # # # # # /etc/init.d executes the S and K scripts upon change of runlevel. Runlevel 0 is Runlevel 1 is Runlevels 2-5 Runlevel 6 is halt. single-user. are multi-user. reboot.

l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1

Ou usando um dos comando abaixo(lembrando que para todos esses procedimentos dever ser o super-usurio):
# init 5

65 de 190

22-07-2013 21:21

http://debian.linux/

Ou
# telinit 5

Personalizando o processo de inicializao

O Debian no utiliza o diretrio rc.local no estilo BSD para personalizar o processo de inicializao; ao invs disso ele fornece o seguinte mecanismo de personalizao. Suponha que um sistema precisa executar o script foo na inicializao da mquina ou ao entrar em um nvel de execuo (System V) em especifco. O administrador do sistema dever ento : Colocar o script foo dentro do diretrio /etc/init.d/. Executar o comando Debian update-rc.d com os argumentos apropriados para criar as ligaes entre os diretrios (especicados na linha de comando) rc?.d e /etc/init.d/foo. Aqui, ? um nmero de 0 a 6 que corresponde a um dos nveis de execuo System V. Reiniciar o sistema. O comando update-rc.d criar as ligaes entre os arquivos nos diretrios rc?.d e o script em /etc/init.d/. Cada ligao iniciar com um `S' ou um `K', seguido por um nmero, seguido pelo nome do script. Quando o sistema entra em um nvel de execuo N, scripts que iniciam com `K' em /etc/rcN.d/ so executados com stop como seu argumento, seguido por aqueles comeando com `S' em /etc/rcN.d com start como seu argumento. Algum poderia, por exemplo, fazer com que o script foo seja executado na inicializao do sistema colocando-o em /etc/init.d/ e instalando as ligaes com o comando update-rc.d foo defaults 19. O argumento defaults se refere aos nveis de execuo padres, que so do nvel 2 at o nvel 5. O argumento 19 assegura que foo seja chamado antes de quaisquer scripts contendo nmeros 20 ou superiores.
O Comando Shutdown

Desliga/reinicia o computador imediatamente ou aps determinado tempo (programvel) de forma segura. Todos os usurios do sistema so avisados que o computador ser desligado . Este comando somente pode ser executado pelo usurio root ou quando usada a opo -a pelos usurios cadastrados no arquivo /etc/shutdown.allow que estejam logados no console virtual do sistema.

66 de 190

22-07-2013 21:21

http://debian.linux/

shutdown [opes] [hora] [mensagem] hora Momento que o computador ser desligado. Voc pode usar HH:MM para denir a hora e minuto, MM para denir minutos, SS para denir aps quantos segundos, ou now para imediatamente (equivalente a 0). O shutdown criar o arquivo /etc/nologin para no permitir que novos usurios faam login no sistema (com excesso do root). Este arquivo removido caso a execuo do shutdown seja cancelada (opo -c) ou aps o sistema ser reiniciado. mensagem Mensagem que ser mostrada a todos os usurios alertando sobre o reinicio/desligamento do sistema. opes -h Inicia o processo para desligamento do computador. -r Reinicia o sistema -c Cancela a execuo do shutdown. Voc pode acrescentar uma mensagem avisando aos usurios sobre o fato. -a Permite que os nomes de usurios contidos no arquivo /etc/shutdown.allow possam utilizar o shutdown para reinicializar/desligar o sistema. Deve ser colocado um nome de usurio por linha. O limite mximo de usurios neste arquivo de 32. Este arquivo til quando o shutdown usado para controlar o pressionamento das teclas CTRL ALT DEL no /etc/inittab. -k Simula o desligamento/reinicio do sistema, enviando mensagem aos usurios. -f No executa a checagem do sistema de arquivos durante a inicializao do sistema. Este processo feito gravando-se um arquivo /fastboot que interpretado pelos scripts responsveis pela execuo do fsck durante a inicializao do sistema. -F

67 de 190

22-07-2013 21:21

http://debian.linux/

Curso Certicao Linux LPI-1: Trabalhando com Permisses

Cada arquivo no Linux tem o denido controle de acesso.Este controle denidopor trs classes: -Permisses de usurio: Dono do arquivo(quem o criou). -Permisses de grupo: grupo que ao qual ele pertence. -Permisses de outros usurios: outros(no dono e outro grupo). E para cada classe h 3 tipos de acesso: -leitura(r) -escrita(w) -execuo(x)

68 de 190

22-07-2013 21:21

http://debian.linux/

Bits especiais. Os 3 primeiros bits da esquerda para direita so bits de atributos especiais: -SUID (Set User ID) - afeta somente arquivos executveis -SGID (Set Group ID) - afeta execuo de programas do grupo do dono. -Sticky (Stick Bit) - permance na memria mesmo depois de terminado(Colado na memria).

69 de 190

22-07-2013 21:21

http://debian.linux/

Como os bits de permisso especiais so utilizados com pouca frequncia, e sob condies especiais, eles so representados pela letra (s) no lugar de (x) de execuo para os bits SUID e SGID nas classes de Dono do arquivo e Grupo, e (t) no lugar de (x) para bit sticky na classe de Outros.

Quando novos arquivos so criados no sistema, eles so criados com permisses denidas gravadas no perl de cada usurio e conguradas pelo comando umask. O comando umask mostra a mscara das permisses quando os arquivos so criados e aceira como argumento um nmero de 3 dgitos para congurar as permisses. No Linux, as permisses padro para criao de: -arquivos = 666 (rw-rw-rw). -diretrios = 777 (drwxrwxrwx).

70 de 190

22-07-2013 21:21

http://debian.linux/

Depois de denida a mscara de criao dos arquivos, ela dever ser subtrada das permisses padro, exemplo:
$ umask 27

O nmero 27 dever ser lido como 027, e dene od bits da mscara como: -000 para Dono do arquivo. -010 para Grupo -111 para Outros.

O comando chmod chmod (abreviao de change mode, em portugus: alterar modo) um comando do Unix usado para alterar permisses de arquivos e diretrios (pastas). Sua sintaxe a seguinte:
$ chmod [opes] modo[,modo] arquivo1 [arquivo2 ...]

Para a representao das permisses atravs de letras, voc poder utilizar:

Exemplo:

71 de 190

22-07-2013 21:21

http://debian.linux/

O comando chown O comando chown da shell de um sistema operacional do tipo Unix (como o caso o GNU/Linux) usado para alterar o dono de um determinado arquivo.Uso: chown [opes] usurio arquivo Exemplos:
# # # # # chown chown chown chown chown root /var/run/httpd.pid marcos:linux strace.log nobody:nogroup /tmp /var/tmp :512 /home -R usuario:grupo

Os comandos chattr, lsattr e ln chattr Esse comando modica os atributos de arquivos/diretrios: chattr [opo] [atributo] [arquivo/diretrio] lsattr Comando que lista os atributos atribudos a um arquivo/diretrio: lsattr [opo] [arquivo/diretrio] O comando ln O comando ln permite criar links. Existem dois tipos de links suportados pelo Linux, os hard links(links fsicos) e os links simblicos. Os links simblicos tm uma funo parecida com os atalhos do Windows, eles apontam para um arquivo, mas se o arquivo movido para outro diretrio o link ca quebrado. Os hard links(links fsicos) so semelhantes aos

72 de 190

22-07-2013 21:21

http://debian.linux/

atalhos do OS/2 da IBM, eles so mais intimamente ligados ao arquivo e so alterados junto com ele. Se o arquivo muda de lugar, o link automaticamente atualizado. O comando ln dado sem argumentos cria um hard link, como em:
$ ln /home/marcos/arquivo.txt arquivo

Onde ser criado um link chamado "arquivo" no diretrio corrente, que apontar para o arquivo.txt dentro do diretrio /home/marcos Para criar um link simblico, basta acrescentar o argumento "-s", como em:
$ ln -s /home/marcos/arquivo.txt arquivo

-s : Cria um link simblico. O padro do comando ln so links fsicos. -f : Fora a criao de um link mesmo que este j exista. -i : Exibe nmero de identificao.

Curso Certicao Linux LPI-1: Instalando e Compilando Programas a partir do cdigo fonte

73 de 190

22-07-2013 21:21

http://debian.linux/

A Free Software Foundation (FSF, Fundao para o Software Livre) uma organizao sem ns lucrativos, fundada em 04 de Outubro de 1985 por Richard Stallman e que se dedica a eliminao de restries sobre a cpia, redistribuio, estudo e modicao de programas de computadores bandeiras do movimento do software livre, em essncia. Faz isso promovendo o desenvolvimento e o uso de software livre em todas as reas da computao mas, particularmente, ajudando a desenvolver o sistema operacional GNU e suas ferramentas.

Os pacotes com cdigo fonte, distribudos na forma dos famosos pacotes .tar.gz ou .tar.bz2, so o formato mais universal, porm ao mesmo tempo o mais complicado de instalar, que voc deixa como um ltimo recurso a lanar mo quando no encontrar um pacote atualizado do programa desejado. Para instal-los, necessrio, em primeiro lugar, ter instalado um conjunto de compiladores, incluindo o gcc e g++, ferramentas como o make, autoconf, di e patch, e bibliotecas, como o binutils-dev, libc6-dev. Este "kit bsico" instalado ao marcar a categoria "desenvolvimento" (ou development) durante a instalao de vrias distribuies. No caso do Kurumin, voc tem pr-instalados os compiladores mais usados e voc pode instalar outros necessrios atravs do Synaptic, ou manualmente atravs do apt-get. Uma dica que todos os pacotes cujo nome termina com "-dev" so justamente bibliotecas de desenvolvimento, que podem ser necessrias ao compilar determinados programas. Quando o instalador reclama da falta de bibliotecas ou arquivos do X, provavelmente ele est dando falta do pacote "xlibs-dev", quando reclamar da falta de arquivos do KDE, provavelmente est pedindo o pacote "libqt3-dev" e assim por diante. A maior diculdade em compilar programas complexos est justamente em localizar e instalar o conjunto de bibliotecas de que ele precisa.

74 de 190

22-07-2013 21:21

http://debian.linux/

Se os pr-requisitos estiverem em ordem, a compilao em si feita descompactado o arquivo (usando o comando "tar -zxvf pacote.tar.gz" ou "tar -jxvf pacote.tar.bz2" ou descompactando pelo prprio Konqueror), acessando a pasta que ser criada e rodando trs comandos bsicos:
$ ./configure $ make # make install

O "./congure" executa um script (dentro da pasta do programa), que verica o sistema, em busca dos componentes de que precisa. Ele avisa caso algo esteja faltando, como neste erro que apareceu ao tentar compilar o Qemu:

ERROR: QEMU requires SDL or Cocoa for graphical output To build QEMU with graphical output congure with --disable-gfx-check Note that this will disable all output from the virtual graphics card.

Neste exemplo, est faltando a biblioteca de desenvolvimento do SDL. Quase sempre, os pacotes que contm bibliotecas comeam com "lib" e os pacotes de desenvolvimento terminam com "-dev". Procurando no http://www.debian.org por um pacote que comece com "lib", termine com "-dev" e tenha "sdl" no meio, voc chega ao "libsdl1.2-dev", que justamente o pacote que estava faltando neste caso :). Em casos onde a soluo parecer mais difcil, a melhor opo fazer uma busca no Google, usando parte da mensagem de erro. O "make" cuida do trabalho pesado, fazendo a compilao propriamente dita. Ele se baseia nas informaes deixadas pelo "./congure" para encontrar os componentes de que precisa. Finalmente, temos o "make install", que nalmente instala o programa, copiando os arquivos gerados pelo make para as pastas corretas do sistema. Ao contrrio dos dois primeiros comandos, ele precisa ser executado como root, j que envolve fazer alteraes no sistema. Apesar destes trs comandos serem um padro adotado na maioria dos pacotes, eles no so necessariamente uma regra. Muitos programas usam sistemas simplicados de instalao ou mesmo scripts prprios, por isso sempre bom dar uma olhada no arquivo "INSTALL" ou "README" dentro

75 de 190

22-07-2013 21:21

http://debian.linux/

da pasta, que explica os passos necessrios. Em geral, os programas instalados a partir dos fontes no criam os cones no menu. Voc precisa chamar o programa via linha de comando ou criar os cones manualmente. Nas distribuies derivadas do Debian, uma dica com relao s dependncias e bibliotecas usar o auto-apt, um programa que verica as mensagens de erro geradas durante a compilao e procura instalar via apt-get os componentes necessrios para concluir a compilao. Ele no perfeito: muitas vezes se perde ou tenta instalar pacotes desnecessrios, mas realmente ajuda em muitos casos. Voc pode instal-lo via apt-get:
# apt-get install auto-apt

Depois de instalado, execute (nesta ordem) os comandos "auto-apt update", "auto-apt updatedb" e "auto-apt update-local", que geram a base de dados que ele usa para fazer seu trabalho. Depois de tudo pronto, voc passa a executar os comandos de compilao dos pacotes atravs dele, usando o comando "auto-apt run" seguido pelo comando, como em:
# auto-apt run ./configure # auto-apt run make

O comando ldcong

Cria, atualiza e remove as ligaes necessrias e cache (para uso pelo linker de tempo de execuo, ld.so) mais recente partilhada bibliotecas encontrado nos diretrios especicados na linha de comando, em o arquivo / etc / ld.so.conf, e nos diretrios conveis (/usr/lib e /lib). ldcong verica os nomes de cabealho e arquivo das bibliotecas que encontra ao determinar quais verses devem ter suas ligaes atualizado. ldcong ignora links simblicos ao procurar por bibliotecas.
ldconfig [OPTION...]

O comando ldd

Imprime as bibliotecas compartilhadas necessrias por cada programa ou compartilhado biblioteca especicada na linha de comando. Extrado de: http://www.fsf.org/ http://www.hardware.com.br http://www.linuxmanpages.com/

76 de 190

22-07-2013 21:21

http://debian.linux/

Veja o Manual do Linux em uma pgina de Carlos Morimoto: Manual linux de_uma_pagina from Marcos da Boa Morte

Curso Certicao Linux LPI-1: Gerenciamento de pacotes no Debian

E ae galera, dessa vez vou mostrar umas imagens, um frame e link da documentao original e um slide para facilitar o entendimento, pois esse assunto "bomba" na internet, segue:

77 de 190

22-07-2013 21:21

http://debian.linux/

Gerenciamento de pacotes no Debian from Marcos da Boa Morte aptana apt-cache apt-cdrom aptitude aptitude-create-state-bundle aptitude-curses

78 de 190

22-07-2013 21:21

http://debian.linux/

apt-cong aptitude-run-state-bundle aptdcon apt-key apt-extracttemplates apt-listchanges apt-ftparchive apt-mark apt-get apt-sortpkgs
Documentao original:

Link: Debian

Curso Certicao Linux LPI-1: Quotas de Disco

No Linux existe a possibilidade de habilitarmos quotas de disco para gerenciarmos melhor o uso do espao disponvel em disco.Este recurso especialmente importante em ambientes multi-usurios, servidores de Web, servidores de arquivos, servidores de e-mail, etc. No gerenciamento de cotas possvel denirmos a quantidade de espao em disco para cada usurio ou grupo de usurios. preciso habilitar o gerenciamento de quotas antes de utilizarmos este recurso.Tambm preciso que o suporte a quotas esteja compilado no Kernel.

79 de 190

22-07-2013 21:21

http://debian.linux/

1-Edite o arquivo /etc/fstab e adicione o gerenciamento de cota para usurio (usrquota) e para grupo (grpquota) no dispositivo desejado.

# vi /etc/fstab

Acrescentar "usrquota" e "gprquota":

/dev/hda6 /home ext3 defaults,usrquota,grpquota 1 2

2-Crie o arquivo quota.user e quota.group no diretrio /home e congure as permisses de leitura e escrita para o root.Estes dois arquivos sero os bancos de dados para quotas de usurio e grupo respectivamente. Cria os arquivos de quota:

# touch /home/quota.user # touch /home/quota.group

Altera as permisses:

# chmod 600 /home/quota.user # chmod 600 /home/quota.group

3-Execute o comando quota-check para iniciar o banco de dados recm criado, e verique se o banco de dados foi iniciado.Os arquivos quota.user e quota.group no devem ter tamanho zero.

# ls -lga /home

4-Habilite o servio de quotas:

# quotaon -a

80 de 190

22-07-2013 21:21

http://debian.linux/

5-Tenha certeza de que o servio de quotas habilitado no boot.Se no existir o arquivo /etc/rc.d/quotas, crie um arquivo de script:

# vi /etc/rc.d/quotas #!/bin/bash /sbin/quotaon -avug

Altere as permisses para 755:

# chmod 755 /etc/rc.d/quotas

6-Crie o link simblico para o arquivo de quotas para o runlevel 3 e runlevel 5:

# ln -s /etc/rc.d/quotas /etc/rc.d/rc3.d/S20quotas # ln -s /etc/rc.d/quotas /etc/rc.d/rc5.d/S20quotas

7-Faa checagem do sistema de quotas uma vez por semana colocando o comando quotacheck no cron do root:

# crontab -e 0 3 * * 0 /sbin/quotacheck -avug

Uma vez feitos estes passos o sistema de quotas poder ser utilizado. - user hard limit (limite fsico), a quantidade total de espao em disco que um usurio pode ter. - user soft limits (limite leve), funciona como uma rea de aviso, quando o usurio alcana este limite o sistema avisa ao usurio que o espao fsico est acabando. - group hard limit (limite fsico por grupo)

81 de 190

22-07-2013 21:21

http://debian.linux/

- group soft limit , tambm rea de aviso. - grace perodo (Perodo de Graa), pode-se congurar um perodo para que o usurio ou grupo que tenha atingido o limite leve possa apagar alguns arquivos e car dentro do estabelecido.Este limite pode ser em minutos, horas, dias, semanas e at meses.
Comandos:

quota:

# quota [opes] usurio/grupo

Ex.:

# quota -v marcos

O usurio marcos est usando 18320 blocos.O limite leve so 19000 blocos e o fsico 20000 blocos.

quotaon:

# quotaon [opes] [dispositivos]

Ex.(habilita quotas de usurios e grupos para todos os dispositivos):


# quotaon -avug

quotao:

# quotaoff [opes] [dispositivo]

82 de 190

22-07-2013 21:21

http://debian.linux/

Ex.(desabilita o gerenciamento de quotas num determinado dispositivo.): quotaon:


# quotaoff -gu /dev/hda6

quotacheck(faz uma varredura em determinado dispositivo e constri os arquivos de banco de dados de quotas):

# quotacheck [opes] [dispositivo]

edquota(Este comando edita quotas para usurios e grupos):

# edquota [opes] usurio/grupo

repquota(cria um relatrio das quotas e utilizao do disco dos usurios):

# repquota [opes] [dispositivo]

Curso Certicao Linux LPI-1: grep e sed

O comando grep

83 de 190

22-07-2013 21:21

http://debian.linux/

grep um utilitrio de linha de comando para procurar conjuntos de dados de texto simples para as linhas que correspondem a uma expresso regular.
grep [OPES] expresso_regular arquivo

Exs.: 1-Procura a palavra marcos no arquivo /etc/passwd:


$ grep marcos /et/passwd

2-Procura todas as linhas comeadas pela letra u no arquivo /etc/passwd:


$ grep '^u' /et/passwd

3-Procura todas as linhas terminadas pela palavra false no arquivo /etc/passwd:


$ grep 'false$' /et/passwd

4-Procura todas as linhas comeadas pelas vogais no arquivo /etc/passwd:


$ grep '^[aeiou]' /et/passwd

5-Procura todas as linhas comeadas por qualquer caracter e segundo caracter seja qualquer vogal no arquivo /etc/passwd:
$ grep '^.[aeiou]' /et/passwd

6-Procura todas as linhas que contenham uma sequncia de 4 nmeros consecutivos:


$ grep '[0-9][0-9][0-9][0-9]' /et/passwd

O comando sed

sed um editor de textos simples utilizado para fazer pequenas transformaes no contedo dos arquivos.
$ sed [opes] {script} [arquivo]

84 de 190

22-07-2013 21:21

http://debian.linux/

Exs.: 1-Troca todas ocorrncias da palavra marcos pela palavra pinguim:


$ sed 's/marcos/pinguim/' arquivo.txt

2-Troca todas ocorrncias da palavra marcos pela palavra pinguim e envia as mudanas para um novo arquivo:
$ sed 's/marcos/pinguim/' arquivo.txt > novoarquivo.txt

Sugestes para estudos avanados:


Regex(grep, egrep...) Sed

Amostras (PDF em Slide) dos Cursos: Certicao Linux LPI-1 e LPI-102

Certicao LPI-1 Amostra from Marcos da Boa Morte Certicao LPI-2 amostra from Marcos da Boa Morte

85 de 190

22-07-2013 21:21

http://debian.linux/

Curso Certicao Linux LPI-102: Administrao do Sistema

Em um sistema multi-usurio, necessrio existir mecanismos para proteger os usurios, de forma que seus arquivos privativos quem seguros, inacessveis aos outros. Outro aspecto em relao aos recursos do sistema reservados: no deve ser possvel a um usurio criar arquivos que ocupem todo o espao do disco, por exemplo, e assim, indiretamente, proibir todos os outros usurios de salvarem seus prprios arquivos. Atingimos esse objetivo criando contas, que representam todos os recursos e informaes pertencentes a um determinado usurio. A origem do nome conta, depende muito da histria da computao, quando o espao em disco e tempo de uso da mquina tinha que ser cobrado de acordo com o seu uso, de forma semelhante a uma conta telefnica. A cada usurio destinado um nome de login e senha, como j vimos anteriormente, bem como um UID, GID, nome do diretrio home e shell inicial (veja imagem do arquivo /etc/passwd). Maiores informaes podem ser obtidas com o comando man 5 passwd.

86 de 190

22-07-2013 21:21

http://debian.linux/

Adicionar usurios:
# useradd nome_do_usuario

Modicar dados de um usurio:


# usermod [opes] nome_do_usuario

Deletar usurios(a opo -r remove tambm a pasta do usurio):


# userdel -r nome_do_usuario

O comando chage: Lida com a data de expirao das contas de usurio.Essa data gravada no arquivo /etc/shadow. Uso:
# chage [opes] nome_do_usuario

Ex.:(deve-se escrever em formato de data americano ms/dia/ano [mm/dd /aaaa])


# chage -E 12/31/2012 nome_do_usuario

Mais sobre Admnistrao do Sistema (Contas de Usurios) + O diretrio'/etc/skel utilizado para fornecer a estrutura bsica do diretrio home do usurio.Nele contm os arquivos:

/etc/skel$ ls -a

87 de 190

22-07-2013 21:21

http://debian.linux/
. .. .bash_logout .bashrc .profile

+ Durante o processo de logon de um usurio, quando o shel inicia, ele executa o script /etc/prole. + O bash tambm procura pelo arquivo /etc/bashrc que tambm tem uma funo parecida com o prole, mas o bashrc executado todas as vezes que o bash executado. + Existem agendadores de tarefas um dele o cron(imagem)

Mais informaes sobre o cron acesse esse link aqui: Como utilizar o Crontab

Curso Certicao Linux LPI-102: Backup, compactao e descompactao

A compresso de dados o ato de reduzir o espao ocupado por dados num determinado dispositivo. Essa operao realizada atravs de diversos algoritmos de compresso, reduzindo a quantidade de Bytes para representar um dado, sendo esse dado uma imagem, um texto, ou

88 de 190

22-07-2013 21:21

http://debian.linux/

um arquivo (cheiro) qualquer. Comprimir dados destina-se tambm a retirar a redundncia, baseando-se que muitos dados contm informaes redundantes que podem ou precisam ser eliminadas de alguma forma. Essa forma atravs de uma regra, chamada de cdigo ou protocolo, que, quando seguida, elimina os bits redundantes de informaes, de modo a diminuir seu tamanho nos cheiros. Por exemplo, a sequncia "AAAAAA" que ocupa 6 bytes, poderia ser representada pela sequncia "6A", que ocupa 2 bytes, economizando 67% de espao. Alguns compactadores de arquivos:

TAR

MIME:

application/x-tar

TAR ou tar (abreviatura de Tape ARchive), um formato de arquivamento de arquivos (cheiros). Apesar do nome "tar" ser derivado de "tape archive", o seu uso no se restringe a tas magnticas. Ele se tornou largamente usado para armazenar vrios arquivos em um nico, preservando informaes como datas e permisses. Normalmente produzido pelo comando "tar".

89 de 190

22-07-2013 21:21

http://debian.linux/

Algumas das opes mais frequentes:

-c -M -p -r -t -v -w -x -z -j -f -C

cria um novo arquivo tar; cria, lista ou extrai um arquivo multivolume; mantm as permisses originais do(s) arquivo(s); acrescenta arquivos a um arquivo tar; exibe o contedo de um arquivo tar; exibe detalhes da operao; pede confirmao antes de cada ao; extrai arquivos de um arquivo tar; comprime ou extrai arquivos tar resultante com o gzip; comprime ou extrai arquivos tar resultante com o bz2; especifica o arquivo tar a ser usado; especifica o diretrio dos arquivos a serem armazenados.

GZIP

Gzip a abreviao de GNU zip, um Software Livre de compresso sem perda de dados, criado por Jean-loup Gailly e Mark Adler. O programa baseado no algoritmo DEFLATE. A extenso gerada pelo gzip o .gz, e seu formato contm apenas um arquivo comprimido. Em sistemas UNIX comum gerar um arquivo contendo diversos outros arquivos com o programa tar, e depois comprimi-lo com o gzip, gerando um arquivo .tar.gz. No confundir com o formato ZIP.
TAR.BZ2

Formato de compactao de arquivos, muito utilizado em sistemas Unix-Like.

COMPACTAO

Compactando arquivos .tar:


$ tar -cf arquivo.tar [arquivo ou pasta]

Criando arquivos gzip(depois de ter criado o tar primeiro):


$ gzip arquivo.tar

Compactando arquivos tar.gz (TAR com gzip de uma s vez):


$ tar -zcvf arquivos.tar.gz [arquivo ou pasta]

90 de 190

22-07-2013 21:21

http://debian.linux/

Compactando arquivos no formato tar.bz2:


$ tar -jcvf arquivos.tar.bz2 [arquivo ou pasta]

Compactando arquivos tar de uma outra forma:


$ tar -c [arquivo ou pasta] > arquivo.tar

Compactando outros formatos (rar, zip e ans): Instale o suporte:


# apt-get install rar unrar p7zip

$ rar a arquivo.rar [arquivo ou pasta] $ zip -r arquivo.zip [arquivo ou pasta]

DESCOMPACTAO

Descompactando arquivos .tar:


$ tar -xf arquivo.tar [arquivo ou pasta]

Descompactando arquivos gzip(depois de ter criado o tar primeiro):


$ gzip -d arquivo.tar.gz

Descompactando arquivos tar.gz (TAR com gzip de uma s vez):


$ tar -zxvf arquivos.tar.gz

Descompactando arquivos no formato tar.bz2:


$ tar -jxvf arquivos.tar.bz2 [arquivo ou pasta]

91 de 190

22-07-2013 21:21

http://debian.linux/

Descompactando outros formatos(rar, zip e ans): Instale o suporte:


# apt-get install rar unrar p7zip

$ rar -e arquivo.rar

ou
$ unrar x arquivo.rar

$ unzip arquivo.zip

O comando dd (para Backup)

O comando dd um clssico dos ambientes Unix-Like, com ele voc pode fazer uma cpia exata de um arquivo, ou seja uma cpia bit a bit. Sintaxe bsica: dd if=origem of=destino Exemplos:

Cpia do HD para um arquivo:


# dd if=/dev/sda of=~/backup_hd.img

Ser feita uma cpia exata do HD dentro do diretrio do root com o nome "backup_hd.img". Se quiser restaurar o "backp_hd.img" no /dev/sda2 (lembre que o sda2 deve ter pelo menos o mesmo tamanho do arquivo "backup.hd" se no os resultados podero ser desastrosos):
# dd if=backup_hd.img of=/dev/sda2

Cpia de partio para o partio:


# dd if=/dev/sda9 of=/dev/sda11

92 de 190

22-07-2013 21:21

http://debian.linux/

Ser feita cpia da partio /dev/sda9 para a /dev/sda11. Fazendo uma cpia do HD para um arquivo compactado:
# dd if=/dev/sda1 | gzip > backup_hd.img.gz

e para descompactar:
# gzip -d -c backup_hd.img.gz | dd of=/dev/sda2

O comando acima est descompactando o arquivo beckup_hd.img.gz no HD em /dev/sda2. Criar uma imagem ISO:
# dd if=diretorio of=iso_do_diretorio.iso

Para visualizar progresso de cpia de arquivos, v em outro terminal e execute:


$ watch df -h

Para converter todos as letras maisculas de um documento para letras minsculas:


$ dd if=ficheiro1 of=ficheiro2 conv=lcase

Se quisermos converter todas as letras do cheiro2 para maisculas:


$ dd if=ficheiro2 of=ficheiro3 conv=ucase

Para zerar (formatar) o seu HD (use com cuidado!):


# dd if=/dev/zero of=/dev/hda

Gerar senhas de forma (pseudo) aleatria:


$ dd if=/dev/random bs=2 count=6 | base64 r2KWFW83e9nTniVR 6+0 registros de entrada

93 de 190

22-07-2013 21:21

http://debian.linux/
6+0 registros de sada 12 bytes (12 B) copiados, 0,000100641 s, 119 kB/s

Para automatizar tarefas, voc pode utilizar o Cron e Crontab, veja esse post para mais informaes: Como utilizar o Crontab

Curso Certicao Linux LPI-102: Kernel do Linux

O ncleo do Linux (Linux Kernel) forma a estrutura base do sistema operacional GNU/Linux, que um sistema operacional tipo unix. O ncleo do Linux um dos exemplos mais proeminentes de software livre, pois pode prover alicerce para o desenvolvimento e execuo de outros softwares livres. O ncleo Linux distribudo sob a licena GNU General Public License verso 2 (GPLv2), sendo desenvolvido por colaboradores em todo o mundo. O desenvolvimento ocorre a partir da lista de e-mail do ncleo Linux (Linux kernel mailing list). O Linux foi concebido pelo estudante do Departamento de Cincia da Computao da Universidade de Helsinki na Finlndia, Linus Torvalds com ajuda de vrios programadores voluntrios por meio da Usenet (antecessora da Internet) em 1991.

94 de 190

22-07-2013 21:21

http://debian.linux/

Mais informaes em: Wikipdia Suporte aos dispositivos de hardware: -Cdigos dos drivers dos dispositivos podem ser carregados no prprio corao do ncleo(monoltico, rpido e exvel) -Cdigos dos drivers dos dispositivos podem ser carregados separadamente(os Mdulos)("modulo.o", depende da verso do Kernel) -O nmero de verso menor (o segundo componente) par indicavam uma srie estvel: 1.0.x, 1.2.x, 2.0.x, 2.2.x e 2.4.x; Os mdulos so dispnibilizados em /lib/modules/versao-do-kernel Para visualizar a verso no Kernel, alguns comandos: Padro:
# uname -r

Visualiza com distro:


# uname -a

Visualizao mais completa:


# cat /proc/version

Outar forma no Debian, por exemplo:


# cat /etc/issue

Para listar os mdulos disponveis e utilizados:


# lsmod

Ou
# cat cat /proc/modules

Para carregar um mdulo para dentro do Kernel, se no for informado o caminho, o mesmo ser procurado no arquivo /etc/modules.conf
# insmod [opes] [mdulo]

Para remover ou descarregar um mdulo do Kernel(quando no estiver em uso):


# rmmod [opes] [mdulo]

95 de 190

22-07-2013 21:21

http://debian.linux/

Para obter informaes sobre determinado mdulo:


# modinfo [opes] [mdulo]

O MAIS USADO DE TODOS, usado para carregar e descarregar os mdulos de forma inteligente do Kernel:
# modprobe [opes] [mdulo] [parmetros do mdulo]

Cria uma lista de dependncias entre mdulos


# depmode [opes]

Para Instalar um novo Kernel, consulte esse link:


Clique aqui - Como Compilar o Kernel

Curso Certicao Linux LPI-102: Fundamentos e Servios de Rede - TCP-IPv4

O TCP/IP um conjunto de protocolos de comunicao entre computadores em rede (tambm chamado de pilha de protocolos TCP/IP). Seu nome vem de dois protocolos: o TCP (Transmission Control Protocol - Protocolo de Controle de Transmisso) e o IP (Internet Protocol - Protocolo de Interconexo). O endereo IP escrito na notao decimal com 4 posie de 8 bitscada, totalizando 32 bits.Cada parte do endereo pode ir de 0 a 255 na notao decimal.

x.y.z.k 192.168.1.1

O protocolo perimite que uma rede seja dividida em classes e subclasses

96 de 190

22-07-2013 21:21

http://debian.linux/

indicam onde comea e termina uma rede e precisam de dois IPs para marcar o seu incio e nal.Essa diviso feita utilizando a mscara de rede.

IP: Subrede:

192.168.1.1 255.255.255.0

Os bits de valor 1 na mscara iddicam quais bits do endereo sero usados como endereamento de rede.O valor 0 indica os bits que sero usados como endereamento de mquinas.Veja o exemplo abaixo(192.168.1.1):

O modelo TCP/IP tem 5 classes de endereos denidas pelas letras: A, B, C, D e E. Classe A:

Classe B:

97 de 190

22-07-2013 21:21

http://debian.linux/

Classe C:

Classe D e Classe E:

Existem alguns endereos IP especiais que so reservados para funes especcas que no podem ser utilizados como endereos de uma mquina da rede.A classe A 127.0.0.1 utilizada como referncia a prpria

98 de 190

22-07-2013 21:21

http://debian.linux/

mquina.Normalmente o endereo 127.0.0.1 associado ao nome localhost.

O modelo inicial do TCP/IP baseado em 4 nveis: Host/rede; Inter-rede; Transporte; e Aplicao. Surgiu, ento, um modelo hbrido, com 5 camadas, que retira o excesso do modelo OSI e melhora o modelo TCP/IP: Fsica; Enlace; Rede; Transporte; e Aplicao.

99 de 190

22-07-2013 21:21

http://debian.linux/

As aplicaes fazem acesso camada de transporte atravs de portas.Elas podem ser vistas como canais de comunicaes.Cada porta refernciada como nmero inteiro, que a identica e a aplicao que ela d suporte.Este nmero um valo de 16-bit, que vai do 1 ao 65535 em decimal. Os pacotes TCP e UDP contm em seu cabealho informaes como endereo IP do remetente, porta de origem, endereo IP e porta de destino.Cada servio utiliaz uma nica porta. O snmeros de 1 a 1024 s chamados de portas privilegiadas porque os servios oferecidos atravs delas executam com autoridade de superusurio. O arquivo SERVICES denem os servios e as portas conhecidas pelo sistema Linux:
# cat /etc/services

Curso Certicao Linux LPI-102: Utilitrios e Ferramentas do TCP/IP

100 de 190

22-07-2013 21:21

http://debian.linux/

Principais ferramentas do TCP/IP no Linux:

dig ping traceroute whois telnet ftp host


Dig:

O comando dig tem como funo primria retornar o dns da rede, mas tambm pode ser usado para pegar o ip de um host ou retornar o nome do host de um ip dado.
# dig [endereo]

exemplo:

# dig www.marcospinguim.blogspot.com ; <<>> DiG 9.7.3 <<>> www.marcospinguim.blogspot.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43684 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.marcospinguim.blogspot.com.

IN

;; ANSWER SECTION: www.marcospinguim.blogspot.com. 595 IN blogspot.l.googleusercontent.com. blogspot.l.googleusercontent.com. 205 IN A blogspot.l.googleusercontent.com. 205 IN A blogspot.l.googleusercontent.com. 205 IN A ;; ;; ;; ;; Query time: 362 msec SERVER: 10.1.1.1#53(10.1.1.1) WHEN: Sun Mar 17 10:07:12 2013 MSG SIZE rcvd: 139

CNAME 74.125.234.107 74.125.234.108 74.125.234.106

Ping:

101 de 190

22-07-2013 21:21

http://debian.linux/

Ele usa o protocolo ICMP obrigatrio ECHO_REQUEST datagrama de obter uma ECHO_RESPONSE ICMP de um host ou gateway. ECHO_REQUEST datagramas (pings ``'') tem um cabealho de IP e ICMP, seguido por um struct timeval e, em seguida, um nmero arbitrrio de almofada ``'' bytes usados para preencher o pacote.
# ping [opes] [endereo(HOST ou IP)]

exemplo(a opo -c testa o nmero x de vezes):

# ping www.marcospinguim.blogspot.com PING blogspot.l.googleusercontent.com (74.125.234.107) 56(84) bytes of data. 64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=1 ttl=57 time=407 ms ^C^C ^C64 bytes from 74.125.234.107: icmp_req=2 ttl=57 time=803 ms --- blogspot.l.googleusercontent.com ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 407.638/605.599/803.561/197.963 ms marcos@debian:~$ ping -c4 www.marcospinguim.blogspot.com PING blogspot.l.googleusercontent.com (74.125.234.107) 56(84) bytes of data. 64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=1 ttl=57 time=655 ms 64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=2 ttl=57 time=271 ms 64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=3 ttl=57 time=19.1 ms 64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=4 ttl=57 time=117 ms --- blogspot.l.googleusercontent.com ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3052ms rtt min/avg/max/mdev = 19.196/266.186/655.958/242.392 ms

Traceroute:

Rastreia os rotear pacotes tomadas a partir de uma rede IP em seu caminho para um determinado host. Ele utiliza o protocolo IP tempo de vida (TTL) de campo e as tentativas de obter uma resposta ICMP TIME_EXCEEDED de cada gateway ao longo do caminho para o host.
# traceroute [opes] [endereo]

exemplo:

102 de 190

22-07-2013 21:21

http://debian.linux/
#traceroute www.marcospinguim.blogspot.com traceroute to www.marcospinguim.blogspot.com (74.125.234.204), 30 hops max, 60 byte packets 1 10.1.1.1 (10.1.1.1) 2.166 ms 2.645 ms 3.109 ms 2 r1-pw-aguda.ibys.com.br (201.94.192.2) 372.024 ms 372.491 ms 372.796 ms 3 192.168.23.6 (192.168.23.6) 373.232 ms 373.732 ms 375.454 ms 4 192.168.23.114 (192.168.23.114) 374.144 ms 374.629 ms 374.938 ms 5 198.32.122.29 (198.32.122.29) 376.465 ms 376.936 ms 377.643 ms 6 209.85.243.202 (209.85.243.202) 377.300 ms 160.056 ms 94.374 ms 7 72.14.239.184 (72.14.239.184) 25.485 ms 25.838 ms 28.137 ms 8 gru03s15-in-f12.1e100.net (74.125.234.204) 28.621 ms 28.956 ms 30.290 ms

Whois:

Whois se refere a um servio para consultar a informao sobre um domnio de Internet, quem o dono do domnio, quando expira o domnio, quem o registrador do domnio, seus DNS-s. Atravs desta web ou de qualquer web que oferea a busca de domnios, ou servio whois se pode ver via web.
# whois objeto[@servidor]

exemplo(nesse caso no retornou dados):

whois www.marcospinguim.blogspot.com No match for "WWW.MARCOSPINGUIM.BLOGSPOT.COM". >>> Last update of whois database: Sun, 17 Mar 2013 13:17:29 UTC <<<

Telnet:

O comando telnet usado para se comunicar com outro host usando o protocolo TELNET. Se o telnet invocado sem o argumento host, ele entra em modo de comando, indicado por seu prompt (telnet>) Neste modo, ele aceita e executa os comandos listados abaixo. Se ele chamado com argumentos, ele executa um comando de abertura com esses argumentos.
# telnet [endereo] [porta]

exemplo(nesse caso no retornou dados):

$ telnet www.marcospinguim.blogspot.com telnet: could not resolve www.marcospinguim.blogspot.com/telnet: Name or service not

103 de 190

22-07-2013 21:21

http://debian.linux/
known

FTP:

Clique aqui para mais informaes sobre FTP

Host:

um utilitrio simples para a realizao de pesquisas de DNS. normalmente usado para converter nomes em endereos IP e vice-versa. Quando no h argumentos ou opes so dadas, antrio imprime um breve resumo de seus argumentos de linha de comando e opes.
# host [opes] [endereo] [servidor]

exemplo:

$ host www.marcospinguim.blogspot.com www.marcospinguim.blogspot.com is an blogspot.l.googleusercontent.com has blogspot.l.googleusercontent.com has blogspot.l.googleusercontent.com has blogspot.l.googleusercontent.com has alias for blogspot.l.googleusercontent.com. address 74.125.234.107 address 74.125.234.108 address 74.125.234.106 IPv6 address 2800:3f0:4001:803::100c

At a prxima!

Curso Certicao Linux LPI-102: Congurando a Rede

104 de 190

22-07-2013 21:21

http://debian.linux/

Vrias distribuies oferecem ferramentas prprias para a congurao e carga dos recursos de rede.Entretanto alguns comandos, arquivos e conceitos so aplicveis a todas elas.Neste tpico ser abordado a congurao de uma rede TCP/IP em dispositivos ethernet. O primeiro passo conhecer os arquivos de congurao de rede comuns a todas as distribuies.Segue: 1-Ver o nome do sistema:
# cat /etc/hostname

2-Este arquivo faz o mapeamento entre endereos IP e nomes de mquinas de rede e utilizado para resoluo de nomes durante o processo de boot enquanto nenhum servidor de DNS entrou em ao.
# cat /etc/hosts

3-Este arquivo especica o endereo IP de um ou mais servidores de DNS para resoluo de nomes.
# cat /etc/resolv.conf

4-Este arquivo especica a ordem de procura para a resoluo de nomes.O sistema pode procurar os endereos IPs no arquivo /etc/hosts (hosts) e pelo servio de DNS (bind).A opo multi on habilita mais de um IP para determinada mquina.
# cat /etc/host.conf

5-Este arquivo a evoluo do /etc/host.conf e possibilita que a ordem de procura para resoluo de nomes seja customizada para cada servio.Ele utilizado nas ltimas distribuies por diversas bibliotecas ao invs do /etc/host.conf.
# cat /etc/nsswitch.conf

105 de 190

22-07-2013 21:21

http://debian.linux/

6-Descrever endereamentos de rede, e portanto os endereos deve terminar com .0.


# cat /etc/networks

7- Este comando mostra o nome local da mquina.Tambm pode ser utilizado para trocar o nome da mquina se um novo nome for fornecido como argumento. Ele suporta a opo --fdqn (Fully Qualied Domain Name), que retorna o nome do sistema mais o domnio:
# hostname --fqdn

8-Retorna ou congura o domnio Internet da mquina.


# dnsdomainname

9- ifcong cria e/ou congura as interfaces de rede e seus parmetros.Esta operao geralmente feita durante o processo de carga do sistema. Se no for passado nenhum parmetro, ele exibe as conguraes das interfaces ativas. Os parmetros podem ser:

Como congurar o IP, mscara e broadcast dde uma placa de rede:

# ifconfig eth0 10.1.1.2 netmask 255.255.0.0 brocast 10.0.0.255 # ifconfig eth0 up # ifconfig eth0 down

106 de 190

22-07-2013 21:21

http://debian.linux/

10- O comando netstat exibe as conexes de rede, tabela de rotas, estatticas das interfaces, etc.
# netstat [opes]

11-O comando route manipula a tabela de rotas do Kernel.Seu uso primrio para adicionar ou apagar rotas estticas para mquinas ou redes especcas. Se o route for utilizado sem nenhuma opo, exibe a tabela de rotas.Para adicionar uma nova rota utilizamos o parmetro add.O parmetro del apaga uma rota. As opes para os parmetros add e del so: -netmask mscara >> especica a mscara de subrede para um determinado destino. -gw endereo >> especica o gateway que ser utilizado para alcanar uma determinada mquina ou rede.
# route

12-tcpdump uma ferramenta utilizada para monitorar os pacotes trafegados numa rede de computadores. Ela mostra os cabealhos dos pacotes que passam pela interface de rede. Exemplo de comando tcpdump para mostrar quais as ligaes de um determinado endereo tcp-ip porta 80 do seu servidor: tcpdump -ni eth0 src "numero ip" and dst port 80

# tcpdump -i eth0

Conexes de origem podem ser monitoradas utilizando o parmetro src host, um exemplo simples seria monitorarmos o trfego que vem de 192.168.0.9 para nosso computador, com o ip 192.168.0.2. A linha de comando caria da seguinte forma:

# tcpdump -i eth0 src host 192.168.0.9

Se quisermos monitorar as conexes especicando um host de destino, poderamos faz-lo com o parmetro dst host, o exemplo abaixo mostra

107 de 190

22-07-2013 21:21

http://debian.linux/

todo o trfego do host 192.168.0.2 com 192.168.0.1, no caso, 192.168.0.1 nosso gateway.

# tcpdump -i eth0 dst host 192.168.0.1

Com tcpdump tambm podemos especicar excees com o parmetro not host, por exemplo, em nosso servidor queremos ver todo o trfego que se passa em sua interface, exceto o de 192.168.0.8, faramos da seguinte forma:

# tcpdump -i eth0 not host 192.168.0.9

No tcpdump podemos tambm especicar portas de origem e destino com os comandos src port e dst port, um exemplo seria monitorarmos o trfego destinado porta 80 (http), para isso utilizaramos a linha de comandos abaixo e navegaramos em um site qualquer:

# tcpdump -i eth0 dst port 80

Para vericarmos o trfego da porta de origem 32881 por exemplo, faramos da seguinte forma:

# tcpdump -i eth0 src port 32881

Muitas opes avanadas podem ser obtidas com o tcpdump, essas so algumas opes bsicas, porm fundamentais para quem quer aprender sobre sniers.

Curso Certicao Linux LPI-102: Congurando o DHCP

108 de 190

22-07-2013 21:21

http://debian.linux/

Hoje em dia, quase todas as redes utilizam algum tipo de servidor DHCP. Em geral, eles so ativados automaticamente ao compartilhar a conexo ou junto com algum outro servio, de forma que voc acaba no aprendendo muita coisa sobre a sua congurao. De um modo geral, o trabalho de um servidor DHCP bastante simples. Ele responde aos pacotes de broadcast das estaes, enviando um pacote com um dos endereos IP disponveis e os demais dados da rede. Os pacotes de broadcast so endereados ao endereo "255.255.255.255" e so retransmitidos pelo switch da rede para todas as portas, diferente dos pacotes endereados a um endereo especco, que so transmitidos apenas na porta relacionada a ele. Periodicamente o servidor DHCP verica se as estaes ainda esto l, exigindo uma renovao do "aluguel" do endereo IP (opo "lease time"). Isso permite que os endereos IP sejam gastos apenas com quem realmente estiver online, evitando que os endereos disponveis se esgotem. O servidor DHCP mais usado no Linux o ISC DHCP, desenvolvido pela Internet Systems Consortium, uma organizao sem ns lucrativos dedicada a desenvolver servios de infra-estrutura usados na Internet, incluindo o Bind e o NTPD. Caso esteja curioso, a pgina com o cdigo fonte a: http://www.isc.org/sw/dhcp/. Nas distribuies derivadas do Debian, o pacote correspondente ao servidor DHCP se chama "dhcp3-server" e pode ser instalado via apt-get:
# apt-get install dhcp3-server

109 de 190

22-07-2013 21:21

http://debian.linux/

Com o pacote instalado, voc pode ativar e desativar o servio usando os comandos:
# /etc/init.d/dhcp3-server start # /etc/init.d/dhcp3-server stop

Como voc pode imaginar, o "3" corresponde verso do software. Eventualmente ele ser substitudo pelo "dhcp4-server", o que resultar tambm na mudana do nome da pasta onde ca o arquivo e do script de inicializao referente ao servio. No Fedora e no CentOS, o pacote se chama simplesmente "dhcp" e pode ser instalado usando o yum:
# yum install dhcp

Embora o pacote se chame apenas "dhcp", o script referente ao servio se chama "dhcpd", de forma que os comandos para iniciar e parar o servio so:
# service dhcpd start # service dhcpd stop

Diferente do Debian, o servio no ser congurado para ser inicializado durante o boot depois de instalado. Voc precisa ativ-lo manualmente usando o comando "chkcong":
# chkconfig dhcpd on

O arquivo de congurao o "dhcpd.conf". Nas distribuies derivadas do Debian, o caminho completo para ele "/etc/dhcp3/dhcpd.conf", enquanto no Fedora e no CentOS apenas "/etc/dhcpd.conf", ou seja, um diretrio acima. Apesar dessas diferenas estticas, o que interessa mesmo a congurao do arquivo e esta sim igual, independentemente da distribuio. Este um exemplo de arquivo de congurao bsico:
# /etc/dhcp3/dhcpd.conf ddns-update-style none; default-lease-time 600;

110 de 190

22-07-2013 21:21

http://debian.linux/
max-lease-time 7200; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.199; option routers 192.168.1.1; option domain-name-servers 208.67.222.222,208.67.220.220; option broadcast-address 192.168.1.255; }

A opo " default-lease-time" controla o tempo de renovao dos endereos IP. O "600" indica que o servidor verica a cada dez minutos se as estaes ainda esto ativas. Se voc tiver mais endereos IP do que mquinas, os endereos IP das estaes raramente vo precisar mudar. Mas, no caso de uma rede congestionada, o "max-lease-time" determina o tempo mximo que uma estao pode usar um determinado endereo IP. Isso foi planejado para ambientes onde haja escassez de endereos IP, como, por exemplo, em um provedor de acesso, onde sempre existem mais clientes do que endereos IP disponveis e se trabalha contando que nem todos vo car conectados simultaneamente. Em condies normais, essas duas opes no so muito importantes. O que interessa mesmo o bloco que vai logo abaixo, onde cam as conguraes da rede. A opo "range" determina a faixa de endereos IP que ser usada pelo servidor. Se voc utiliza a faixa de endereos 192.168.1.1 at 192.168.1.254, por exemplo, pode reservar os endereos de 192.168.1.1 a 192.168.1.100 para estaes conguradas com IP xo e usar os demais para o DHCP, ou ento reservar uma faixa especca para ele, de 192.168.1.101 a 192.168.1.201, por exemplo. O importante usar faixas separadas para o DHCP e os micros congurados com IP xo. Na "option routers" vai o endereo do default gateway da rede, ou seja, o endereo do servidor que est compartilhando a conexo. No necessrio que o mesmo micro que est compartilhando a conexo rode tambm o servidor DHCP. Pode ser, por exemplo, que na sua rede o gateway seja o prprio modem ADSL que est compartilhando a conexo e o DHCP seja um dos PCs. A opo "option domain-name-servers" contm os servidores DNS que sero usados pelas estaes. Ao usar dois ou mais endereos, eles devem ser separados por vrgula, sem espaos. Em geral, voc vai usar os prprios endereos DNS do provedor, a menos que voc congure um servidor DNS interno na sua rede (que pode ser instalado no prprio micro que est compartilhando a conexo e rodando o DHCP). Estes servios consomem poucos recursos da mquina. O servidor DNS mais usado no Linux o Bind. Nas distribuies derivadas do Debian voc pode instal-lo com um "apt-get install bind". O servidor

111 de 190

22-07-2013 21:21

http://debian.linux/

DNS pode ser congurado para implementar um sistema de domnios e subdomnios na sua rede, mas o uso mais comum simplesmente fazer um "cache", onde o servidor DNS simplesmente repassa as requisies para um dos 13 root servers da internet e vai armazenando os endereos que j foram acessados. Mais adiante teremos um captulo inteiro dedicado a ele. Voc pode substituir o arquivo de congurao padro por este modelo, ou edit-lo conforme a necessidade. Ao fazer qualquer alterao no arquivo, voc deve reiniciar o servidor DHCP usando o comando:
# /etc/init.d/dhcp3-server restart

ou:
# service dhcpd restart

Com o servidor DHCP congurado, voc pode testar a congurao em um dos clientes Linux, congurando a rede usando o "dhclient", seguido da interface a ser congurada. Ele mostra toda a negociao entre o servidor e o cliente, o que permite que voc verique se o servidor est usando a congurao denida por voc:
# dhclient eth0 Internet Systems Consortium DHCP Client V3.0.4 Copyright 2004-2006 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Listening on LPF/eth1/00:15:00:4b:68:db Sending on LPF/eth1/00:15:00:4b:68:db Sending on Socket/fallback DHCPREQUEST on eth1 to 255.255.255.255 port 67 DHCPACK from 192.168.1.1 bound to 192.168.1.199 -- renewal in 245 seconds.

Como voc pode ver, o cliente deve receber a resposta a partir do endereo IP do servidor rodando o servidor DHCP e ser congurado com um endereo dentro da faixa denida por voc. Uma observao importante que sempre que congurar um servidor com duas placas de rede, voc deve congurar o servidor DHCP para escutar apenas na placa da rede local. No Debian, esta congurao vai no arquivo "/etc/default/dhcp3-server". Procure pela linha: INTERFACES="" ... e adicione a placa que o servidor DHCP deve escutar, como em:

112 de 190

22-07-2013 21:21

http://debian.linux/

INTERFACES="eth0" Para que a congurao entre em vigor, basta reiniciar o servio novamente
Fonte: www.hardware.com.br

Curso Certicao Linux LPI-102: Servios de Rede no Linux

Servios de rede o que est disponvel para ser acessado pelo usurio. No TCP/IP, cada servio associado a um nmero chamado porta que onde o servidor espera pelas conexes dos computadores clientes. Uma porta de rede pode ser referenciada tanto pelo nmero como pelo nome do servio. Abaixo, alguns exemplos de portas padres usadas em servios TCP/IP: 21 - FTP (transferncia de arquivos) 23 - Telnet (terminal virtual remoto) 25 - Smtp (envio de e-mails) 53 - DNS (resolvedor de nomes) 79 - Finger (detalhes sobre usurios do sistema) 80 - http (protocolo www - transferncia de pginas Internet) 110 - Pop-3 (recebimento de mensagens) 119 - NNTP (usado por programas de noticias)

113 de 190

22-07-2013 21:21

http://debian.linux/

O arquivo padro responsvel pelo mapeamento do nome dos servios e das portas mais utilizadas o /etc/services (para detalhes sobre o seu formato, veja a [#s-rede-outros-services /etc/services. Para instal-lo, basta:
apt-get install openbsd-inetd

Servios iniciados como Daemons de rede

Servios de rede iniciados como daemons cam residente o tempo todo na memria esperando que algum se conecte (tambm chamado de modo standalone). Um exemplo de daemon o servidor proxy squid e o servidor web Apache operando no modo daemon. Alguns programas servidores oferecem a opo de serem executados como daemons ou atravs do inetd. recomendvel escolher daemon se o servio for solicitado frequentemente (como o caso dos servidores web ou proxy). Para vericar se um programa est rodando como daemon, basta digitar ps ax e procurar o nome do programa, em caso positivo ele um daemon. Normalmente os programas que so iniciados como daemons possuem seus prprios recursos de segurana/autenticao para decidir quem tem ou no permisso de se conectar.
Servios iniciados atravs do inetd

Servios iniciados pelo inetd so carregados para a memria somente quando so solicitados. O controle de quais servios podem ser carregados e seus parmetros, so feitos atravs do arquivo
/etc/inetd.conf.

Um daemon chamado inetd l as conguraes deste arquivo e permanece residente na memria, esperando pela conexo dos clientes. Quando uma conexo solicitada, o daemon inetd verica as permisses de acesso nos arquivos /etc/hosts.allow e /etc/hosts.deny e carrega o programa servidor correspondente no arquivo /etc/inetd.conf. Um arquivo tambm importante neste processo o /etc/services que faz o mapeamento das portas e nomes dos servios. Alguns programas servidores oferecem a opo de serem executados como daemons ou atravs do inetd. recomendvel escolher inetd se o servio no for solicitado frequentemente (como o caso de servidores ftp, telnet, talk, etc).

114 de 190

22-07-2013 21:21

http://debian.linux/

/etc/inetd.conf O arquivo /etc/inetd.conf um arquivo de congurao para o daemon servidor inetd. Sua funo dizer ao inetd o que fazer quando receber uma requisio de conexo para um servio em particular. Para cada servio que deseja aceitar conexes, voc precisa dizer ao inetd qual daemon servidor executar e como executa-lo. Seu formato tambm muito simples. um arquivo texto com cada linha descrevendo um servio que deseja oferecer. Qualquer texto em uma linha seguindo uma "#" ignorada e considerada um comentrio. Cada linha contm sete campos separados por qualquer nmero de espaos em branco (tab ou espaos). O formato geral o seguinte:

servio tipo_soquete proto opes.num usurio caminho_serv. opes_serv.

servio

o servio relevante a este arquivo de congurao pego do arquivo /etc/services.


tipo_soquete

Este campo descreve o tipo do soquete que este item utilizar, valores permitidos so: stream, dgram, raw, rdm, ou seqpacket. Isto um pouco tcnico de natureza, mas como uma regra geral, todos os servios baseados em tcp usam stream e todos os protocolos baseados em udp usam dgram. Somente alguns tipos de daemons especiais de servidores usam os outros valores.
protocolo

O protocolo considerado vlido para esta item. Isto deve bater com um item apropriado no arquivo /etc/services e tipicamente ser tcp ou udp. Servidores baseados no Sun RPC (Remote Procedure Call), utilizam rpc/tcp ou rpc/udp.
opes

Existem somente duas conguraes para este campo. A congurao deste campo diz ao inetd se o programa servidor de rede libera o soquete aps ele ser iniciado e ento se inetd pode iniciar outra cpia na prxima requisio de conexo, ou se o inetd deve aguardar e assumir que qualquer servidor j em execuo pegar a nova requisio de conexo. Este um pequeno truque de trabalho, mas como uma regra, todos os servidores tcp devem ter este parmetro ajustado para nowait e a maior parte dos servidores udp deve t-lo ajustado para wait. Foi alertado que existem algumas excesses a isto, assim deixo isto como exemplo se no estiver seguro. O nmero especicado aps o "." opcional e dene a quantidade mxima de vezes que o servio poder ser executado durante 1 minuto. Se o servio for executado mais vezes do que este valor, ele ser automaticamente desativado pelo inetd e uma mensagem ser mostrada

115 de 190

22-07-2013 21:21

http://debian.linux/

no log do sistema avisando sobre o fato. Para reativar o servio interrompido, reinicie o inetd com: killall -HUP inetd. O valor padro 40.
usurio

Este campo descreve que conta de usurio usurio no arquivo /etc/passwd ser escolhida como dono do daemon de rede quando este for iniciado. Isto muito til se voc deseja diminuir os riscos de segurana. Voc pode ajustar o usurio de qualquer item para o usurio nobody, assim se a segurana do servidor de redes quebrada, a possibilidade de problemas minimizada. Normalmente este campo ajustado para root, porque muitos servidores requerem privilgios de usurio root para funcionarem corretamente.
caminho_servidor

Este campo o caminho para o programa servidor atual que ser executado.
argumentos_servidor

Este campo inclui o resto da linha e opcional. Voc pode colocar neste campo qualquer argumento da linha de comando que deseje passar para o daemon servidor quando for iniciado. Uma dica que pode aumentar signicativamente a segurana de seu sistema comentar (colocar uma #no inicio da linha) os servios que no sero utilizados. Abaixo um modelo de arquivo /etc/inetd.conf usado em sistemas Debian:

# # # # # # # # # # # # <args>

/etc/inetd.conf:

veja inetd(8) para mais detalhes.

Banco de Dados de configuraes do servidor Internet

Linhas iniciando com "#:LABEL:" ou "#<off>#" no devem ser alteradas a no ser que saiba o que est fazendo!

Os pacotes devem modificar este arquivo usando update-inetd(8) <nome_servio> <tipo_soquete> <proto> <opes> <usurio> <caminho_servidor>

# #:INTERNO: Servios internos #echo stream tcp nowait root #echo dgram udp wait root #chargen stream tcp nowait root #chargen dgram udp wait root #discard stream tcp nowait root #discard dgram udp wait root #daytime stream tcp nowait root #daytime dgram udp wait root time stream tcp nowait root #time dgram udp wait root

internal internal internal internal internal internal internal internal internal internal

116 de 190

22-07-2013 21:21

http://debian.linux/

#:PADRES: Estes so servios padres. #:BSD: Shell, login, exec e #shell stream tcp #login stream tcp /in.rlogind #exec stream tcp talk dgram udp /in.talkd ntalk dgram udp /in.ntalkd talk so protocolos BSD. nowait root /usr/sbin/tcpd nowait root /usr/sbin/tcpd

/usr/sbin/in.rshd /usr/sbin

nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd wait.10 nobody.tty /usr/sbin/tcpd /usr/sbin wait.10 nobody.tty /usr/sbin/tcpd /usr/sbin

#:MAIL: Mail, news e servios uucp. smtp stream tcp nowait.60 -bs #:INFO: Servios informativos

mail

/usr/sbin/exim exim

#:BOOT: O servio Tftp oferecido primariamente para a inicializao. Alguns sites # o executam somente em mquinas atuando como "servidores de inicializao". #:RPC: Servios baseados em RPC #:HAM-RADIO: servios de rdio amador #:OTHER: Outros servios

Para saber como congurar o inetd.conf para habilitar uma porta, acesse esse LINK(Como congurar o inetd.conf para habilitar uma porta).

Utilizando TCPWRAPPERS para segurana do inetd

O tcpwrapper regula o acesso aos servios oferecidos pelo inetd.O processo utilizado o /usr/sbin/tcpd.Ele consulta dois arquivos que denem o acesso:

/etc/hosts.allow /etc/hosts.deny

As regras contidas no primeiro arquivo liberam o acesso aos servios.O segundo arquivo probe o acesso. Basicamente as regras destes arquivos seguem o padro.
nome_do_servio : endereos

117 de 190

22-07-2013 21:21

http://debian.linux/

As palavras LOCAL e ALL podem ser utilizadas para identicar todos os clientes que so do mesmo domnio que o servidor e todas as mquinas. Veja o exemplo de /etc/hosts.allow:

# cat /etc/hosts.allow in.telnetd : LOCAL rsyncd : 172.20.0.0/255.255.255.0 in.ftpd : ALL

Se neste arquivos de controle no existir uma regra para um determinado servio habilitado no inetd, o acesso ser liberado.
Servios de rede com xinetd

Uma rede de computadores serve basicamente, para possibilitar o compartilhamento de recursos, como arquivos e impressoras. possvel dizer que o compartilhamento de arquivos e impressoras um Servio de Rede. Outros servios de rede tornaram-se muito populares com a expanso da Internet nos ltimos anos. Tais servios, como o WWW e FTP, requerem que um computador execute algum processo que atenda pelas requisies dos clientes que desejam acess-los. Isto implica em um modelo clienteservidor, onde normalmente a mquina do usurio solicita alguma coisa, atravs de um programa cliente como o browser, por exemplo, e o processo servidor (que implementa o servio da rede) responde. O sistema operacional UNIX, e, portanto o Linux, sempre foi muito conhecido por oferecer diversos servios de rede tradicionais. Tais servios vo desde a possibilidade de saber quem est usando uma mquina, at o prprio servio de transferncia de arquivos. Muitos servios de rede so implementados atravs de processos dedicados que esperam por requisies que chegam da rede. Mas dada a razovel quantidade de servios, um esquema interessante foi implantado. Neste esquema, um nico processo, chamado xinetd (Extend Internet Super Server), rodando na mquina que est oferecendo os servios de rede, responsvel por escutar as requisies que chegam, e conforme a porta por onde chega requisio, disparar e executar o processo correspondente quele servio.

118 de 190

22-07-2013 21:21

http://debian.linux/

Assim, da mesma forma que um endereo IP identica uma mquina em uma rede, uma porta identica um servio de rede rodando dentro de determinada mquina. Alguns servios funcionam sobre o protocolo de transporte TCP, outros sobre o protocolo UDP, e ainda outros funcionam sobre os dois. O xinetd responsvel por vrios servios bsicos de um sistema disponibilizados em uma rede. Entre os servios que ele gerencia esto os servios Telnet e POP. Esses servios so executados por programas denominados servidores, que nada mais so do que programas que abrem uma determinada porta e cam aguardando por solicitaes de conexo. Na maioria dos casos, quando uma solicitao recebida o servidor cria um processo lho para tratar dessa conexo especca, enquanto o processo pai continua a escutar na porta aguardando novas solicitaes. Desta forma existiro vrios processos alocados na memria. O xinetd carrega seu arquivo de congurao e passa a ouvir por conexes em portas especcas. Quando uma conexo solicitada, o xinetd executa o programa servidor correspondente para manipular o servio solicitado. Ento, desta forma, existir apenas um servidor em memria esperando por uma solicitao. O superservidor ou xinetd congurado para iniciar a sua execuo quando o sistema inicializado, recebendo a lista de servios a serem monitorados a partir de um arquivo denominado /etc/xinetd.conf.

Curso Certicao Linux LPI-102: Arquivos de LOG

119 de 190

22-07-2013 21:21

http://debian.linux/

O Linux possui um servio especial chamado syslog que faz todo o trabalho sujo de ltrar e gravar mensagens importantes no s do sistema local, mas de outros sistemas que suportam o syslog. Alm de gravar em arquivos, as mensagens podem ser enviadas para a tela de console e telas de terminal. O arquivo de congurao /etc/syslog.conf controla "o que" vai ser gravado chamado de facilidade.As facilidades so na verdade a origem das mensagens.Cada facilidade possui nvei de severidade. Vericar o logs no syslog:
tail /var/log/syslog

Facilidade do Syslog

auth - Mensagens de segurana/autorizao (privativas). authpriv - Mensagens de segurana/autorizao (privativas). cron - Daemons de agendamento de tarefas (cron e at). daemon - Outros daemons do sistema que no possuem facilidades especcas. kern - Mensagens do Kernel lpr - Subsistema de impresso mail - Subsistema de e-mail news Subsistema de notcias da USENET syslog - Mensagens internas geradas pelo syslogd user - Mensagens genricas de nvel do usurio local0 at local7 - Reservados para uso local por outros programas que desejem escrever seus logs no syslog.
Nveis de Severidade

debug (7) - Informaes de debug (depurao) info (6) - Mensagens apenas para informao notice (5)- Condies normais, mas signicativas warning (4)-Condies de alerta err (3) - Condies de erro crit (2) - Condies crticas alert (1) - Aes imediatas so requeridas emerg (0) - Sistema indisponvel

Para cada facilidade podemos especicar um nvel de severidade, que vai denir o grau de importncia da mensagem. O arquivo [/etc/syslog.conf] possui o seguinte formato:

120 de 190

22-07-2013 21:21

http://debian.linux/

faciliade.nivel ao

Aes do Syslog

A ao especca o que dever ser feito com a mensagem.Pode ser um arquivo de LOG, um PIPE (direcionado para um utilitrio ou aplicativo) um outro sistema remoto, determinados usurios ou todos os usurios. Arquivo - As mensagens so gravadas em arquivos no sistema. PIPE - As mensagens so enviadas para um arquivo especial chamado le descriptor. Terminal e Console - Podemos especicar uma tela local do computador (console) atravs do caminho /dev/console ou um terminal remoto tty para onde as mensagens sero enviadas. Computador Remoto - Podemos enviar as mensagens do syslog para uma mquina remota precedendo a ao com o smbolo "@" seguido do nome do host.Em questes de segurana, enviar a mensagens para outra mquina pode ser especialmente importante. Usurios - Podemos especicar um determinado usurio ou uma lista de usurios (separados por vrgula) para onde as mensagens sero enviadas no terminal quando estes estiverem logados no sistema.
Caracteres especiais

Sempre use TBS ao invs de espaos. Os caracteres ("*", "=", "!" e "-") tm funes especiais. Para visualizar o syslog:
# /etc/syslog.conf

A rotao dos arquivos de LOG feita no seu arquivo principal:


# cat /etc/logrotate.conf

Curso Certicao Linux LPI-102: X Window System

121 de 190

22-07-2013 21:21

http://debian.linux/

X Window System, X-Window, X11 ou simplesmente X um software de sistema e um protocolo que fornece uma base para interfaces grcas de usurio (com o conceito de janelas) e funcionalidade rica de dispositivos de entrada para redes de computadores. Ele cria uma camada de abstrao de hardware onde o software escrito para usar um conjunto generalizado de comandos, permitindo a independncia de dispositivo e reutilizao programas em qualquer computador que implemente o X. Originalmente chamado simplesmente de X, foi desenvolvido no MIT em 1984. Atualmente est na verso 11, publicada em setembro de 1987, e por isso carrega no nome este nmero. X-Window o toolkit e protocolo padro para GUI nos sistemas Unix e assemelhados, como o Linux, mas existem verses para outros sistemas operacionais, como o Microsoft Windows e o Mac OS, por exemplo.
Congurando o X no Debian # dpkg-reconfigure xserver-xorg

Iniciar o X (caso a inicializao seja em modo texto):


$ startx

O script de arranque para os daemons de gesto de ecr verica o contedo do cheiro


/etc/X11/default-display-manager

122 de 190

22-07-2013 21:21

http://debian.linux/

mesmo antes de executar os prprios. Isto assegura que se tem apenas um programa daemon de gestor de ecr X activado. Essencialmente, todos estes programas executam o script
/etc/X11/Xsession

. Ento o script "/etc/X11/Xsession" executa run-parts(8) como aco para executar os scripts no directrio "/etc/X11/Xsession.d/". Isto essencialmente uma execuo de um primeiro programa o qual encontrado na seguinte ordem com o comando embutido exec. O script especicado como o argumento de /etc/X11/Xsession" pelo gestor de display X, se estiver denido. O script "~/.xsession" ou "~/.Xsession", se estiver denido. O comando
/usr/bin/x-session-manager

, se estiver denido. O comando


/usr/bin/x-window-manager

. se estiver denido. O comando


/usr/bin/x-terminal-emulator

, se estiver denido.

Para mais informaes sobre o X no Debian, consulte http://www.debian.org/doc/manuals/debian-reference/ch07.pt.html

Curso Certicao Linux LPI-102: Impresso no Linux

123 de 190

22-07-2013 21:21

http://debian.linux/

Curso Certicao Linux LPI-102: Impresso no Linux lp - envia requisies impressora Sintaxe: lp [-mw] [-ddest] [-n#] lename... Opes: -w: escreve mensagem no terminal do usurio -ddest: impressora destino Exemplo:
lp -m -dlw rel.ps

Imprimindo diretamente
# cat texto.txt > /dev/lp0

Imprimindo indiretamente
$ cat texto.txt | lpr $ lpr texto.txt

Monitorar: la (queue) de impresso


$ lpq

Gerenciar: cancelando impresses/jobs


$ lprm

124 de 190

22-07-2013 21:21

http://debian.linux/

(cancela a ltima impresso/job do usurio corrente) Gerenciar: controlando o lpd com o lpc
$ lpc

Arquivo de congurao - permissao de acesso


# vi /etc/hosts.lpd

(se esse arquivo existir, os usuarios remotos nao conseguirao imprimir. Para imprimir se deve excluir esse arquivo ou inserir dentro dele os enderecos dos hosts remotos que podem imprimir) Arquivo de congurao - geral
# vi /etc/printcap

Compartilhando impressoras O Cups, o servidor de impresso padro no Linux, possui um recurso nativo de compartilhamento de impressoras. Ele permite no apenas compartilhar impressoras com outras mquinas Linux, mas tambm com mquinas Windows da rede, atravs de um servidor unicado. Para habilitar o compartilhamento, edite o arquivo "/etc/cups/cupsd.conf", deixando-o com o seguinte contedo:

Port 631 Listen 631 Browsing On BrowseAllow All BrowseInterval 30 BrowseAddress @LOCAL BrowseInterval 30

Order allow,deny Allow all

Order allow,deny Allow all

Encryption Required Order allow,deny Allow localhost

AuthType Basic

125 de 190

22-07-2013 21:21

http://debian.linux/
Require user @SYSTEM Order allow,deny Allow localhost

Veja que a seo "/printers", que contm as impressoras, ca com permisso de acesso para todo mundo, enquanto o utilitrio de administrao do Cups (seo /admin) continua acessvel apenas localmente, atravs do endereo http://127.0.0.1:631. At aqui, no estamos impondo nenhum tipo de restrio, por isso contamos com o rewall para bloquear qualquer tentativa de impresso proveniente de micros da Internet. Voc pode tambm fazer o compartilhamento de uma forma mais segura, especicando manualmente a faixa de endereos da rede local, ou mesmo especicando individualmente os endereos IP que podero imprimir. Neste caso, as sees (onde vai a congurao que permite aos clientes verem as impressoras disponveis) e caria:

Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.0.*

Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.0.*

No se esquea de incluir o endereo "127.0.0.1" na lista. Caso contrrio, todo mundo vai imprimir na impressora, menos voc mesmo :). Depois de alterar o arquivo, reinicie o servidor de impresso para que as alteraes entrem em vigor:

# /etc/init.d/cups restart

Compartilhar impressoras atravs do Cups mais simples do que faz-lo atravs do Samba e oferece a vantagem adicional de permitir o uso do recurso de autodiscover do Cups nos clientes Linux. O autodiscover permite que os clientes Linux da rede reconheam automaticamente a impressora compartilhada e a congurem automaticamente durante o boot, sem necessidade de nenhuma interveno manual.

126 de 190

22-07-2013 21:21

http://debian.linux/

Fontes: www.hardware.com.br www.hugoazevedo.eti.br www.openit.com.br

Curso Certicao Linux LPI-102: Hora e Internacionalizao do Sistema

O diretrio abaixo contm as informaes de congurao das zonas de fuso horrio:


/usr/share/zoneinfo

A zona local do sitema determinada por um link simblico de algum arquivo deste diretrio para o arquivo:
/etc/localtime

Copia a hora corrente no relgio da mquina para o relgio da sistema, durante a carga do sistema.Este comando ir assumir que a hora no hardware a hora local, a menos que a opo --utc seja utilizada
/sbin/hwclock

O comando date tambm pode ser utilizado para congurar a data e

127 de 190

22-07-2013 21:21

http://debian.linux/

hora do sistema. O formato que a data e hora precisam ser informados segue a notao MMDDhhmmAAAA, segue: MM - ms DD - dia hh - hora mm - minuto AAAA - ano

Os dias e meses menores que 10 devem ser escritos com zero na frente e as horas no padro 24h. Exemplo: Congura a hora e data para Sex 29 Mar 2013 21:34 hs
# date 032921342013

Curso Certicao Linux LPI-102: Servidor Postx

O Postx um agente de transferncia de emails (MTA), um software livre para envio e entrega de emails. Rpido e fcil de administrar, uma alternativa segura ao Sendmail, muito utilizado em servidores UNIX.

Ele uma espcie de meio termo entre a simplicidade do Qmail e a fartura de recursos do Exim. Entre os trs, ele o mais rpido e o mais simples de congurar, o que faz com que ele seja atualmente o mais popular e o que possui mais documentao disponvel. O Postx tambm possui um excelente histrico de segurana, sendo considerado por muitos to seguro quanto o Qmail.

Existem fortes motivos para no usar o Sendmail ou o Qmail em novas instalaes, mas temos uma boa briga entre o Postx e o Exim. Escolhi abordar o Postx aqui simplesmente por que, entre os dois, ele mais popular, o que torna mais simples encontrar documentao e conseguir

128 de 190

22-07-2013 21:21

http://debian.linux/

ajuda quando tiver dvidas.

Instalando o Postx
$ su # apt-get install postfix

, durante a Instalao ele dever perguntar: Qual o tipo geral de congurao, marque o item Internet Site

e o nome/endereo do Servidor, digite o nome que voc deseja:

, para as demais perguntas, deixe as opes defaults como j vm pr-marcadas.

Obs.:Na pergunta: fora atualizaes sncronas na la de email ? Marque como no:

129 de 190

22-07-2013 21:21

http://debian.linux/

Congurao Inicial

Edite o arquivo
# vi /etc/postfix/main.cf

e inclua as conguraes abaixo:


mydomain = marcospinguim.com.br myhostname = host.$mydomain myorigin = $mydomain mydestination = $myhostname, $mydomain mynetworks = 127.0.0.0/8 192.168.1.1/24 home_mailbox = Maildir/

mydomain: O nome do domnio do servidor de e-mail. myhostname: O nome da mquina do servidor de e-mail. myorigin: Especica como car a terminao do e-mail aps o @. mydestination: Os nomes dos domnios que o servidor de e-mail responsvel. mynetworks: Especica a qual rede que o servidor de e-mail ir trabalhar. home_mailbox: Especica o diretrio onde car as mensagens de e-mail.

Aps isso recarregue as informaes no Postx:


# /etc/init.d/postfix reload

Testando o Envio de E-mails:

No meu PC existe um usuario com o nome [marcos] e outro com o nome [eric], teste com os usuarios da sua mquina, se no houver crie-os com useradd, neste exemplo abaixo o usurio [marcos] enviou um e-mail para o usurio [eric], lgico que estou logado como root, mas usei o comando [MAIL from:] e especiquei o usurio que envia o e-mail, para critrio de teste.

130 de 190

22-07-2013 21:21

http://debian.linux/

Destaquei os comandos que vc deve executar para isso em VERMELHO:

# telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 host.marcospinguim.com.br ESMTP Postfix (Ubuntu) HELO smtp.marcospinguim.com.br 250 host.marcospinguim.com.br MAIL from: marcos 250 2.1.0 Ok RCPT to: eric 250 2.1.5 Ok DATA 354 End data with . Este post sobre Postfix no blog loucooooo! . 250 2.0.0 Ok: queued as A8F958F5DE QUIT 221 2.0.0 Bye Connection closed by foreign host.

Instalar o pacote SASL

Este recurso importante hoje em dia, pois sem encriptao, seus e-mails (incluindo o login e senha) so transmitidos em texto plano pela rede e podem ser Sniados. Uma vez ativo o recurso no servidor, basta marcar a opo no cliente de e-mails.

apt-get install sasl2-bin

, agora abra novamente o arquivo main.cf e inclua as linhas abaixo nele:


smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_helo_required = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Depois ative ele abrindo o arquivo de congurao:


# vi /etc/default/saslauthd

131 de 190

22-07-2013 21:21

http://debian.linux/

e inclua o cdigo abaixo no arquivo, na verdade essa linhas j existiro, mas voc deve alter-las para car assim: Obs.:As linhas no esto uma abaixo da outra, procure-as e altere:
START=yes OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

, salve e feche o arquivo. Agora rode esse comando no terminal para vericar se o usurio postx existe:
# groups postfix

, se retornar postx : postx , rode esse comando:


# usermod -G sasl postfix

, se vericar novamente com o comando groups postx, agora retornar postx : postx sasl , caso no ocorra, d um reload no postx (/etc/init.d /postx reload).

Crie o arquivo smtpd.conf no diretrio "/etc/postx/sasl" e adicione as seguintes linhas abaixo:


pwcheck_method: saslauthd mech_list: plain login

Terminado as conguraes, reinicie o Postx e o servio de autenticao:

# /etc/init.d/postfix restart # /etc/init.d/saslauthd restart

Voc pode ainda implementar uma criptogra TLS e criar o certicado, d uma pesquisada na Internet.

Lendo os e-mails

Para poder ler as mensagens de e-mail recebidas, ser usado o Servidor POP3:

# apt-get install courier-pop-ssl

Testando o Servidor POP3

132 de 190

22-07-2013 21:21

http://debian.linux/

Para vericar se o Servidor POP3 est funcionando, use o Telnet para ler as mensagens de e-mail recebidas:lembra que o [marcos] enviou mensagem para o usurio [eric] ? Agora o [eric] ir ler. Verique os trechos em VERMELHO que so comandos para vericar os emails

# telnet localhost 110 Trying ::1... Connected to localhost. Escape character is '^]'. +OK Hello there. USER eric +OK Password required. PASS informe_aqui_a_senha +OK logged in. LIST +OK POP3 clients that break here, they violate STD53. 1 517 . RETR 1 +OK 517 octets follow. Return-Path: X-Original-To: eric Delivered-To: eric@marcospinguim.com.br Received: from smtp.marcospinguim.com.br (localhost [127.0.0.1]) by host.marcospinguim.com.br (Postfix) with SMTP id A8F958F5DE for ; Wed, 4 Jan 2012 12:01:31 -0200 (BRST) Message-Id: <20120104140146.A8F958F5DE@host.marcospinguim.com.br> Date: Wed, 4 Jan 2012 12:01:31 -0200 (BRST) From: marcos@marcospinguim.com.br To: undisclosed-recipients:; Este post sobre Postfix no blog loucooooo! . QUIT +OK Bye-bye. Connection closed by foreign host.

Obs.: Percebam que as mensagem so arquivos e cam nas pasta Maildir/cur dos usurios (/home/usuario/Maildir/cur). Pronto, espero que gostem e comentem!

Curso Certicao Linux LPI-102: Compartilhamento via Samba


22-07-2013 21:21

133 de 190

http://debian.linux/

Instale o protocolo samba:


# apt-get install samba

Por comando vc deve utilizar o comando tipo esse exemplo, supondo que o ip da mquina Windows seja 192.168.1.107:
# smbclient -L 192.168.1.101 -U marcos

Ser listados os itens compartilhados, ento voc acess-los com o comando simples:
# mount -t smbfs //servidor/arquivos /mnt/smb

Caso haja algum problema rode o comando


# testparm

, ele exibir um dump das conguraes aps lhe solicitar um [enter].Nesse caso voc dever congurar um Samba com PDC (Primary Domain Controller, Controlador de Domnio Primrio) , se tudo tiver certo exibir um "ROLE_DOMAIN_PDC".Caso contrrio congure o samba no arquivo
# /etc/samba/smb.conf

com as conguraes tipo do exemplo abaixo:


[global] netbios name = SERVIDOR workgroup = DOMINIO server string = Samba %v dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d domain master = yes domain logons = yes preferred master = yes logon path = os level = 33 wins support = yes

134 de 190

22-07-2013 21:21

http://debian.linux/

Por modo grco, abra o Nautilus (uma pasta qualquer no seu Linux) e aperte Ctrl+L e digite:
smb://192.168.1.107

e navegue nos itens compartilhados. Os acessos as pastas e arquivos do Windows vo depender das conguraes efetuadas no Windows: -se as pastas esto compartilhadas -se est para solicitar senha -... Alm desse pacote, vo pode, se quiser, instalar outros que te ajudem caso precise de acessos e conguraes do Samba em modo grco, dessa forma vo pode instalar esse conjunto abaixo:
# apt-get install samba smbclient swat samba-doc

O script de instalao faz duas perguntas. A primeira se o servidor deve rodar em modo daemon ou sob o inetd. Responda "daemons" para que o servidor rode diretamente. Isso garante um melhor desempenho, melhor segurana e evita problemas diversos de congurao relacionados ao uso do inetd, servio que est entrando em desuso. Em seguida ele pergunta: "Gerar a base de dados para senhas /var/lib /samba/passdb.tdb?". importante responder que "Sim", para que ele crie o arquivo onde sero armazenadas as senhas de acesso. Como explica o script, "Caso voc no o crie, voc ter que recongurar o samba (e provavelmente suas mquinas clientes) para utilizao de senhas em texto puro", o que um procedimento trabalhoso, que consiste em modicar chaves de registro em todas as mquinas Windows da rede e modicar a congurao de outros servidores Linux. Muito mais fcil responder "Sim" e deixar que ele utilize senhas encriptadas, que o padro. :) Com os pacotes instalados, use os comandos:
# /etc/init.d/samba start # /etc/init.d/samba stop

... para iniciar e parar o servio. Por padro, ao instalar o pacote criado um link na pasta "/etc/rc5.d", que ativa o servidor automaticamente durante o boot. Para desativar a inicializao automtica, use o comando:
# update-rc.d -f samba remove

135 de 190

22-07-2013 21:21

http://debian.linux/

Para reativ-lo mais tarde, use:


# update-rc.d -f samba defaults

Voc pode vericar qual a verso do Samba instalada usando o comando "smbd -V", como em:
# smbd -V

Para compartilhar pastas do Linux na rede, voc pode utilizar o Swat, para isso vo deve criar um usurio samba antes e liberar a porta do servio para acesso pelo browser, para criar um usuario samba, ativar a porta 901 do localhost , segue respectivamente os comandos abaixo, mais informaes dos comandos use o "man comando", aqui s uma luz para voc poder utilizar: Logar no swat:
# smbpasswd -a marcos http://127.0.0.1:901/(No seu navegador, ser solicitada a senha do samba, se no houver use do seu usurio para acesso ao seu Linux)

Para que a alterao efetuada no Swat entre em vigor, reinicie o inetd com o comando:
# /etc/init.d/inetd restart

Obs.:O Swat no usa encriptao de senha, ou seja, se algum sniar sua conexo, ver sua senha nos pacotes do TCP/IP, para que isso no ocorra vo pode acess-lo pelo tnel SSH, da seguinte forma:
# ssh -f -N -L901:192.168.1.107:901 -l login 192.168.1.107

Para criar compartilhamento use o shares:


http://127.0.0.1:901/shares

Por enquanto s, at a prxima!

Curso Certicao Linux LPI-102: Congurando o DNS

136 de 190

22-07-2013 21:21

http://debian.linux/

Introduo

(Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon) o servidor para o protocolo DNS mais utilizado na Internet.Foi criado por quatro estudantes de graduao, membros de um grupo de pesquisas em cincia da computao da Universidade de Berkeley.Para a verso 9, o BIND foi praticamente reescrito. Ele passou a suportar, dentre outras funcionalidades, a extenso DNSSEC e os protocolos TSIG e IPv6.
BIND

1-Instalao

Para Debian e Debians-Like (Ubuntu, Linux Mint...) dnsutils ser instalado juntamente com o pacote, ou seja, no precisa especic-lo na instalao.

# apt-get install bind9 2- Congurao Inicial

abra o arquivo named.conf.options informado e escreva o cdigo abaixo, de acordo com seus IPs e antes do fechamento da chave "};" :
# vi /etc/bind/named.conf.options

adicione, depois salve e feche o arquivo:


listen-on { 127.0.0.1; 192.168.1.1/24; }; allow-query { 127.0.0.1; }; recursion yes; allow-recursion { 127.0.0.1; 192.168.1.1/24; };

137 de 190

22-07-2013 21:21

http://debian.linux/

3- Congurar a Zona e a Zona Reversa

Depois edite o arquivo named.conf.local e escreva o cdigo abaixo, de acordo com seus IPs e o nome do host que deseja, nesse exemplo vou utilizar "marcospinguim.com.br":
# vi /etc/bind/named.conf.local

adicione:

zone "marcospinguim.com.br" { type master; file "marcospinguim.com.br.zone"; allow-transfer { 192.168.1.7; }; }; zone "0.168.192.in-addr.arpa" { type master; file "marcospinguim.com.br.rev"; allow-transfer { 192.168.1.7; }; };

4-Vericar se h erros nas alteraes efetuadas # named-checkconf

se no receber nenhuma mensagem porque est tudo correto at aqui.

5-Criar o arquivo de zona

crie o arquivo seuendereco.subdominio.dominio.zone, e abra-o, ex.:


# vi /var/cache/bind/marcospinguim.com.br.zone

adicione de acordo com seus dados:

; ; Zone file for dominio.com.br ; $TTL 86400 @ IN SOA ns1.marcospinguim.com.br. hostmaster.marcospinguim.com.br. (

138 de 190

22-07-2013 21:21

http://debian.linux/
2012010100 ; serial 7200 ; refresh 1800 ; retry 1209600 ; expire 300 ) ; minimum NS ns1 NS ns2 MX 5 mail TXT "v=spf1 mx -all" HINFO PC-Intel-2.4GHz "Linux 2.6" A 192.168.1.100 ns1 A 192.168.1.100 ns2 A 192.168.1.100 mail A 192.168.1.100 www CNAME @ ftp CNAME www pop3 CNAME mail smtp CNAME mail

6-Vericar se h erros nas zonas

Execute o comando de acordo com seus dados:


# named-checkzone marcospinguim.com.br /var/cache/bind/marcospinguim.com.br.zone

se der certo retornar algo tipo isso:

zone marcospinguim.com.br/IN: loaded serial 2012010100 OK

7 - Criar o arquivo de zona reversa # vi /var/cache/bind/marcospinguim.com.br.rev

adicione de acordo com seus dados:


; ; Reverse zone file for dominio.com.br ; $TTL 86400 @ IN SOA ns1.dominio.com.br. hostmaster.marcospinguim.com.br. ( 2012010100 ; serial 7200 ; refresh 1800 ; retry 1209600 ; expire 300 ) ; minimum

139 de 190

22-07-2013 21:21

http://debian.linux/
NS ns1.marcospinguim.com.br. NS ns2.marcospinguim.com.br. 100 PTR marcospinguim.com.br. 10 PTR ns1.marcospinguim.com.br. 11 PTR ns2.marcospinguim.com.br. 57 PTR mail.marcospinguim.com.br.

8-vericar se h erros nas zona reversa # named-checkzone 0.168.192.in-addr.arpa /var/cache/bind/marcospinguim.com.br.rev

se der certo retornar algo tipo isso:


zone 0.168.192.in-addr.arpa/IN: loaded serial 2012010100 OK

9-reiniciar o Bind

# /etc/init.d/bind9 restart se der certo retornar isso:


* Stopping domain name service... bind9 [ OK ] * Starting domain name service... bind9 [ OK ] 10- consultar o servidor DNS para testar as zonas $ dig @127.0.0.1 marcospinguim.com.br SOA

se der certo retornar algo tipo isso:

; <<>> DiG 9.7.0-P1 <<>> @127.0.0.1 marcospinguim.com.br SOA ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64129 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;marcospinguim.com.br. IN SOA ;; ANSWER SECTION: marcospinguim.com.br. 86400 IN SOA ns1.marcospinguim.com.br. hostmaster.marcospinguim.com.br. 2012010100 7200 1800 1209600 300 ;; AUTHORITY SECTION: marcospinguim.com.br. 86400 IN NS ns1.marcospinguim.com.br. marcospinguim.com.br. 86400 IN NS ns2.marcospinguim.com.br.

140 de 190

22-07-2013 21:21

http://debian.linux/
;; ADDITIONAL SECTION: ns1.marcospinguim.com.br. 86400 IN A 192.168.1.100 ns2.marcospinguim.com.br. 86400 IN A 192.168.0.101 ;; ;; ;; ;; Query time: 3 msec SERVER: 127.0.0.1#53(127.0.0.1) WHEN: Thu Jan 5 19:29:53 2012 MSG SIZE rcvd: 153

Pronto, existem outras formas, mas acredito que essa a mais simples! Fontes: http://www.hardware.com.br/tutoriais/instalando-servidor-dns/ http://www.hardware.com.br/tutoriais/congurando-rede-linux /pagina7.html http://www.hardware.com.br/tutoriais/servidores-dns/pagina4.html http://blog.cesar.augustus.nom.br/instalando-o-servidor-bind-no-linux.html http://www.hardware.com.br/tutoriais/opendns/ http://www.hardware.com.br/livros/linux-redes/congurando-bind.html http://goo.gl/GEYz9 http://pt.wikipedia.org/wiki/BIND

Curso Certicao Linux LPI-102: Compartilhamento via NFS

Nesse post vou mostrar como compartilhar uma pasta no Linux para acesso via rede por comando, o processo bem simples.Esse acesso ser baseado em NFS, no tem nada a ver com o Samba, isso pra compartilhamento entre duas ou mais mquinas Linux(de Linux pra Linux), mais pra frente vou explicar via samba, mas por enquanto isso aqui mais importante. NFS um protocolo de sistema de arquivos para compartilhamento entre arquivos e diretrios entre computadores conectados em rede. com NFS que feito o acesso, existem outras formas, mas certique-se que essa a mais simples e a melhor.

141 de 190

22-07-2013 21:21

http://debian.linux/

Primeiramente temos de ter dois pacotes instalados, precisa ser root # su:
1-

nfs-kernel-server ---- que deve ser instalado no Server(a mquina que compartilhar o arquivo ou a pasta). Para instal-lo no Debian e similares:
# apt-get install nfs-kernel-server

Convm tambm instalar o portmap, caso no esteja instalado:


# apt-get install portmap

2- nfs-common ---- que deve ser instalado no Client(mquina que acessar a tal pasta ou arquivo). Para instal-lo no Debian e similares:
# apt-get install nfs-common

No Server, precisamos informar qual a pasta ser compartilhada e quais as permisses, para isso edite o arquivo:
# vim /etc/exports

Aps as linhas iniciais e comentado com #(tralha), crie uma nova linha sem #(tralha) e informe o endereo da pasta no PC e as permisses do mesmo, exemplo:
/home/usuario/pasta_a_ser_compartilhada 192.168.1.102(rw,async)

, ou seja, o caminho da pasta;"rw" permisso de leitura(r) e escrita(w); o item async permite que o NFS transra arquivos de forma "assncrona", sem precisar esperar pela resposta do cliente; e o IP que pode acessar a pasta que foi compartilhada.Depois de adicionar a linha, salve o arquivo, lembrando que caso voc deseje liberar uma faixa de ips, basta usar o *(asterisco), exemplo: 192.168.1.*, todos dessa faixa podero acessar, ou at mesmo utilizar nome da Estao. Para aplicar as alteraes no arquivo exports para que o mesmo possa ser lido pelo Kernel, necessario, exportar e reiniciar o servio, reinicie tambm o Portmaps, com os comando:
# exportfs -ra # /etc/init.d/nfs-kernel-server restart # /etc/init.d/portmap restart

Agora vamos no cliente(mquina que acessar a pasta).Para isso iremos precisar montar a pasta compartilhada da rede, ento nada melhor do que voc criar uma pasta para receber a montagem, ento crie no local onde voc deseja essa pasta, exemplo:
# mkdir /home/usuario/nome_da_pasta

142 de 190

22-07-2013 21:21

http://debian.linux/

, e ento montamos a pasta compartilhada dentro da que criamos com o seguinte comando:
# mount -t nfs 192.168.1.101:/home/server/pasta_compartilhada /home/cliente /pasta_criada

, ou seja, a opo (-t) do mount informa o tipo, e eespecicamos o tipo com o nome do tipo que "nfs", depois informamos o IP que est a pasta compartilhada(o Server) e o local onde montaremos essa pasta, endeo no cliente. Caso no consiga o acesso, lembre-se de dar permisses locais com o "chmod".Se seu PC pegou um IP via DHCP diferente do que voc permitiu no "exports", voc pode alterlo com o seguinte comando:
# ifconfig eth0 192.168.1.102/16 dev eth0

(note que o ip ca a seu critrio e o /16 a mascara 255.255.0.0 na tabela), se desejar especicar um gateway, utilize:
# route add default gw 192.168.1.1 netmask 255.255.0.0 dev eth0

, mas isso outro assunto... Para mais informaes sobre o NFS, Clique Aqui Pronto, parece ser complicado, mas muito simples, s pr a mo na massa e pronto!Espero que gostem e comentem.

Curso Certicao Linux LPI-102: Congurando o Shell Seguro OpenSSH

Em informtica o Secure Shell ou SSH , simultaneamente, um programa de computador e um protocolo de rede que permite a conexo com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da conexo entre o cliente e o servidor ser criptografada.Uma de suas mais

143 de 190

22-07-2013 21:21

http://debian.linux/

utilizadas aplicaes o chamado Tunnelling, que oferece a capacidade de redirecionar pacotes de dados.

Instalao

Para instalar o cliente e os server, apesar do cliente j vir instalado por default no Debian e em outras distribuies:
# apt-get install openssh-client openssh-server

Usurios e Conexo

Para conectar via IP ou por nome, levar em conta o nome do usuario que voc est logado no local de conexo, exemplo se voc est como "root", ele solicitar a senha de "root" do computador que voc deseja, se tiver logado como "marcos" se no computador que voc est tentando logar como "marcos" no houver este usurio, voc receber a "Conection Refused", e se tiver, dever colocar a senha, ou usar o nome do usuario na frente e depois por o "@" e logo aps o IP ou o nome do computador, depois s pr a senha do usuario ex.:
# # # # ssh ssh ssh ssh 192.168.1.107 algumsite.com root@192.168.1.107 marcos@192.168.1.107

, DEBUG - LOG - faa a conexo com -vv para exibir as mensagens, ajuda na localizao de problemas, tente tambm iniciar o iniciar o servidor em modo debug (ssh -d) e conectar com o cliente, provavelmente o servidor vai exibir as mensagens de erros, tais como permisses e etc..., exemplos:
# ssh -vv marcos@localhost # ssh -v marcos@localhost

, para restringir acesso, deve editar o arquivo # /etc/ssh/sshd_cong, no arquivo que se abrir, procure a linha que contm a palavra "Subsystem", estar assim:
Subsystem sftp /usr/lib/openssh/sftp-server

, bastar adicionar o "AllowUsers", car assim, ex.:


Subsystem sftp /usr/lib/openssh/sftp-server AllowUsers marcos eric camila

,Enquanto no utilizada a diretiva "AllowUsers" qualquer usurio da maquina pode conectar via ssh. Quando acrescenta-la, passa a permitir apenas os usurios listados e vlidos na maquina, esta diretiva prevalece sobre a regra "default" que permite login de todos.

144 de 190

22-07-2013 21:21

http://debian.linux/

Alterando a Porta

A porta padro do ssh 22, por isto tem muitos scripts que cam tentando conexo nesta porta, por este e outros motivos, pode se alterar a porta do ssh, por exemplo, alterar de 22 para porta 2222, use seu editor preferido para editar o arquivo /etc/ssh/sshd_cong e procure pela linha; #Port 22 altere para Port 2222, depois de efetuar a alterao, precisa reiniciar o servio, veja no tpico sobre instalao, para testar na prpria maquina, em um konsole execute a linha de comando neste formato:
# ssh -p 2222 marcos@192.168.1.107 # /etc/init.d/ssh restart

Copiar arquivos remotamente com SSH

Nesse exemplo abaixo vou copiar o arquivo "teste.txt" para o a mquina remota, isso ser copiado para o diretrio /home/marcos/, lgico, ir pedir senha antes de executar a cpia:
# scp teste.txt marcos@192.168.1.102:~/ marcos@192.168.1.102's password:

ou
# scp teste.txt marcos@192.168.1.102:/home/marcos/ marcos@192.168.1.102's password:

, para copiar todos os arquivos e sub-diretrios a partir do Shell local para o home do usurio marcos no destino.
scp -r * marcos@192.168.1.107:~/

, para copiar para um sub-diretorio especico no micro de destino, no use (~) e informe o caminho:
scp -r * marcos@192.168.1.107:/home/marcos/pasta_server/

, para copiar da mquina remota para mquina local, usa-se o ponto no nal e o formato assim:
scp marcos@192.168.1.107:/home/eric/arquivo_remoto.txt .

, o ponto no nal da linha indica para salvar no diretrio atual.Salvar em outro local, substitua o ponto "." pelo caminho na maquina local, exemplo para salvar na maquina local em /home/marcos/tmp:
scp marcos@192.168.1.107:~/teste.txt /home/marcos/tmp scp -r marcos@192.168.1.107:~/isos /home/marcos/tmp

Tem diversas outras coisa que voc pode fazer com o SSH, caso deseje mais informaes, consulte:

145 de 190

22-07-2013 21:21

http://debian.linux/

http://zago.eti.br/ssh/ssh.html , e l possui mais fontes.

Espero que gostem e comentem!

Curso Certicao Linux LPI-102: Congurando o Apache

O servidor Apache (ou Servidor HTTP Apache, em ingls: Apache HTTP Server, ou simplesmente: Apache) o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, ento funcionrio do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007, foi constatado que a utilizao do Apache representa cerca de 47.20% dos servidores ativos no mundo. Em maio de 2010, o Apache serviu aproximadamente 54,68% de todos os sites e mais de 66% dos milhes de sites mais movimentados. a principal tecnologia da Apache Software Foundation, responsvel por mais de uma dezena de projetos envolvendo tecnologias de transmisso via web, processamento de dados e execuo de aplicativos distribudos. O servidor compatvel com o protocolo HTTP verso 1.1. Suas funcionalidades so mantidas atravs de uma estrutura de mdulos, permitindo inclusive que o usurio escreva seus prprios mdulos utilizando a API do software. disponibilizado em verses para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padro POSIX (Unix, Linux, FreeBSD, etc.).
Etimologia

A razo para o nome "Apache" dada pela Apache Software

146 de 190

22-07-2013 21:21

http://debian.linux/

Foundation, que faz referncia nao Apache, tribo de nativos americanos que tinha, em combate, grande resistncia e estratgias superiores. Isso seria uma aluso resistncia da comunidade do software livre aos ataques de interesses privados . O nome refere-se tambm estabilidade do servidor Apache e a sua variedade de ferramentas capazes de lidar com qualquer tipo de solicitao na web. Uma terceira razo, que aceita popularmente, reconhecida porm refutada pela Fundao, que o nome viria de "a patchy server", que em ingls signica algo como um servidor remendado, ou melhoria no software, dada a origem do programa, criado sobre o cdigo do servidor da NCSA j existente, no qual foram adicionados diversos patches. Surge uma quarta explicao para o nome com o lanamento do Tomcat (um sistema auxiliar ao Apache que cuida basicamente de processamento de aplicativos em Java), j que "Tomcat" nome de uma aeronave estadunidense, o F-14 Tomcat e "Apache" o nome de um helicptero de ataque, o AH-64 Apache).
Segurana

Para garantir segurana nas transaes HTTP, o servidor dispe de um mdulo chamado mod_ssl, o qual adiciona a capacidade do servidor atender requisies utilizando o protocolo HTTPS. Este protocolo utiliza uma camada SSL para criptografar todos os dados transferidos entre o cliente e o servidor, provendo maior grau de segurana, condencialidade e conabilidade dos dados. A camada SSL compatvel com certicados X.509, que so os certicados digitais fornecidos e assinados por grandes entidades certicadoras no mundo.
Congurao

O servidor congurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver conguraes para cada diretrio utilizando arquivos com o nome .htaccess, onde possvel utilizar autenticao de usurio pelo prprio protocolo HTTP utilizando uma combinao de arquivo .htaccess com um arquivo .htpasswd, que guardar os usurios e senhas (criptografadas).
Autenticao no Apache2

Vou explicar aqui como voc disponibilizar o acesso a uma pasta do Apache(www) exigindo usuario e senha. 01. Primeiramente devemos criar o diretrio onde desejamos restringir o acesso caso o mesmo no exista.
# mkdir /var/www/teste

147 de 190

22-07-2013 21:21

http://debian.linux/

02. Criaremos agora um arquivo somente para testes com o nome "index.html" no diretrio "/var/www/teste".
# echo Testando autenticao no Apache > /var/www/teste/index.html

03. Criar os arquivos .htaccess e passwd no diretrio onde se deseja restringir o acesso.
# touch passwd .htaccess

04. Contedo do arquivo .htaccess

AuthName "Nome que aparecer no ttulo da janela" AuthType Basic AuthUserFile /var/www/teste/passwd require valid-user

05) Criao dos usurios que tero permisso para acessar o diretrio:
# htpasswd -c passwd usurio

Ser pedida a senha do novo usurio e em seguida sua conrmao.


New password: Re-type new password: Adding password for user usurio

Ao abrir o arquivo de senhas (passwd), sero vistos os nomes de usurio e senhas criptografadas.
# more passwd usurio:ZzbJ.YtR6TyyU

06) Edite o arquivo


"/etc/apache2/sites-available/default"

, colocando as seguintes linhas no nal do arquivo antes da tag

, substituindo todas as diretivas conforme suas necessidades, uma observao importante para a tag AllowOverride , a mesma deve conter "AuthCong"

148 de 190

22-07-2013 21:21

http://debian.linux/

para que a autenticao seja bem sucedida.

Alias /teste/ "/var/www/teste/" Options Indexes MultiViews FollowSymLinks AllowOverride AuthConfig Order deny,allow Deny from all Allow from 172.16.0.0/255.0.0.0 ::1/128

07) Reinicie o servio do Apache para atualizar as conguraes.


# /etc/init.d/apache2 restart

08) Teste agora suas conguraes acessando http://localhost/teste, fornecendo o nome de usurio senha. Observaes: as linhas abaixo se referem restrio por IP, no so necessrias autenticao. Deny from all Allow from 172.16.0.0/255.0.0.0 ::1/128 e todo esse tramite desse ser feito pelo usurio root para funcionar. Eu uso aqui e voc, vai deixar de se proteger! Fonte:Viva o Linux
Habilitar o mod_rewite no Apache (.htacces)

Pra quem vai trabalhar com MVC no PHP (por exemplo) precisa habilitar o mod_rewrite no Apache pra que funcione, segue os passos pra fazer isso:

1-Logue como root:


$ su

2-Abra o arquivo default do Apache:


# vi /etc/apache2/sites-available/default

149 de 190

22-07-2013 21:21

http://debian.linux/

3-Edite o arquivo da seguinte forma: Altere a linha onde tem "AllowOverride None"
dentro de substituindo por "AllowOverride AuthCong" e altere a linha "AllowOverride None" dentro de substituindo por "AllowOverride All". Ex.: DocumentRoot /var/www/ Options FollowSymLinks Indexes AllowOverride AuthConfig Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all

4- No esquea de habilitar o mod_rewrite:


# a2enmod rewrite

5-Reinicie o apache:
# /etc/init.d/apache2 restart

Agora vamos testar

6-Crie um arquivo .htacces dentro do diretrio /var/www/:


vi /var/www/.htaccess

7-Escreva isso dentro do Arquivo, salve e feche-o(em outro post explicarei isso):
RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?chave=$1

8-Agora crie um arquivo index.php e cole o contedo logo abaixo:


vi /var/www/index.php

Contedo:

9-Acesse o endereo http://localhost/nomequalquer/outronome/:


Se imprimir na tela: nomequalquer/outronome/ (ou o nome que voc escolheu), est tudo certo.Voc j pode escrever seu Framework!

150 de 190

22-07-2013 21:21

http://debian.linux/

Curso Certicao Linux LPI-102: Segurana

Existem vrias ferramentas de segurana que podem auxiliar a vida de um administrador de redes/sistemas no Linux. Aqui abordarei duas fundamentais para obter tal segurana: IPTABLES TCPWRAPPER Vale ressaltar que segurana vai mais alm, mas esses dois j estaro de bom tamanho para o entendimento de segurana, em diversos outros aplicativos.

IPTABLES

E a galera!?Eu estava congurando meu Firewall hoje e decidi escrever um Post sobre Iptables pra documentar algumas informaes. Iptables o nome da ferramenta do espao do usurio que permite a criao de regras de rewall e NATs. Apesar de, tecnicamente, o iptables ser apenas uma ferramenta que controla o mdulo netlter(O netlter um mdulo que fornece ao sistema operacional Linux as funes de rewall, NAT e log dos dados que trafegam por rede de computadores.), o nome "iptables" frequentemente utilizado como referncia ao conjunto completo de funcionalidades do netlter. O iptables parte de todas as distribuies modernas do Linux.

Ao reiniciar o computador as Regras de Firewall so perdidas, para isso preciso criar um script para executar sempre que o computador for iniciado.

Para vericar quais regras esto criadas, se existir, o comando :


# iptables -L

151 de 190

22-07-2013 21:21

http://debian.linux/

, se no retornar nada porque o pacote no est instalado, ento voc pode instal-lo pelo comando:
# apt-get install iptables

Rejeitar pacotes de uma porta:


# iptables -A INPUT -p tcp --dport 445 -j DROP

Aceitar pacotes de uma porta:


# iptables -A INPUT -p tcp --dport 445 -j ACCEPT

Desativar o iptables, isso libera todas as portas:


# iptables -F

Essa regra abaixo fecha todas as portas, porm vo conecta a internet normalmente, mas aplicativos como Apache por exemplo no funcionar no localhost.
iptables -A INPUT -p tcp --syn -j DROP

, aqui abaixo a mesma regra, porm para o protocolo UDP.


# iptables -A INPUT -i ppp0 -p udp --dport 0:30000 -j DROP

Lembrando que as tabelas do IPTABLES so lidas de cima pra baixo, ou seja, se voc quiser fechar todas as portas e liberar somente o apache a porta 80, voc precisa primeiro criar a regra que libera a porta 80 (ou as portas que voc deseja), pra s depois fechar todas as outras, exemplo:
# iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT

, depois:
iptables -A INPUT -p tcp --syn -j DROP

Para acessar pacotes de determinados IPs de uma rede interna, ou de uma determinada rede, voc usar os comandos abaixo:
# iptables -A INPUT -p tcp --syn -s 192.168.1.107/255.255.255.0 -j ACCEPT iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT

152 de 190

22-07-2013 21:21

http://debian.linux/

, aceitar as requisies do IP 192.168..107 e no comando seguinte, aceitar todas as requisies da rede interna, se logo depois vc fechar tudo pra internet, a regra de aceitar ser vlida, o inverso no.

Para conguraes de compartilhamento, seria regras de NAT,assim:

Para compartilhar a conexo do modem com a rede local:


# modprobe iptable_nat iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward

Para compartilhar uma conexo via ADSL ou cabo instalada na eth0:


# modprobe iptable_nat iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward

Para desativar o compartilhamento, voc deve usar o comando :


# iptables -t nat -F.

Uma observao que estas regras no incluem um servidor DHCP, voc deve congurar os clientes com endereo IP xo ou ento ativar o servio DHCPD na sua distribuio.Ser necessrio tambm congurar os DNS, se no souber os endereos do seu provedor, voc pode usar os DNS pblicos do Google 8.8.8.8 e 8.8.4.4, mais informaes sobre esses DNS Clique Aqui.

Mais uma linha interessante de se adicionar, que protege contra pacotes danicados (usados em ataques DoS por exemplo) :
# iptables -A FORWARD -m unclean -j DROP

, (esta linha deve ser adicionada antes das demais). Depois de todas as regras criadas, vo criar um script em Shell e gravar na pasta /usr/bin/ com o nome que voc deseja e poder executar esse nome no terminal que automaticamente, ser criadas as regras, lembrando que para isso tem de estar com permisso de execuo e deve ser o usurio root.Voc tambm pode torn-lo inicializvel, em Debian e DebianLikes(Ubuntu, Linux Mint,...) com o comando:
update-rc.d nome_do_script defaults

, para excluir basta trocar o defaults por remove.

153 de 190

22-07-2013 21:21

http://debian.linux/

Para fazer um forward(Redirecionamento, exemplo: uma solicitao de jogo na porta 27020, voc quer que seja direcionada ao PC 192.168.1.107 da sua rede)com Iptables.
# modprobe iptable_nat iptables -t nat -A PREROUTING -i etho -p tcp --dport 22 -j DNAT --to-dest 192.168.1.107 iptables -A FORWARD -p tcp -i eth0 --dport 22 -d 192.168.1.107 -j ACCEPT

Voc pode repetir o comando vrias vezes para direcionar varias portas diferentes para vrias mquinas. Naturalmente uma mesma porta no pode ser fowardada duas vezes.Para um range de portas, o Counter Strike pode usar mesmo da 27015 at 27030, se voc no qual porta dessa range do seu colega est aberta, ento voc pode abrir esta faixa de portas assim:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 27015:27030 -j DNAT --to-dest 192.168.1.107 iptables -A FORWARD -p tcp -i eth0 --dport 27015:27030 -d 192.168.1.107 -j ACCEPT

Eu crie um script em PHP para vericar quais portas esto abertas da porta 1 at a 1024, se gue abaixo:
$servidor="127.0.0.1"; for($i=1;$i<1024;$i++){ $con = fsockopen($servidor, $i, $errono, $errostr, 3); if($con){ echo 'A porta '.$i.' est aberta! '; } } fputs($con, "Portas"); fclose($con);

Mas voc pode utilizar o Nmap para vericar quais portas esto abertas no seu micro, para instal-lo no Debian e Debian-Likes, basta:
# apt-get install nmap

, para analisar em rede interna use o IP interno, para anlise internet use seu IP externo, para loopback use:
# nmap 127.0.0.1

H tambm um servio online que tem como voc efetuar testes de portas e de invases, eu uso muito ele, o http://www.grc.com/ -clique em Services -depois clique em ShieldsUP

154 de 190

22-07-2013 21:21

http://debian.linux/

-depois clique em proceed -clique em "Proceed" - e inicie o teste clicando em "All Service Ports".

isso a, espero que gostem e comentem.


Fonte:www.hardware.com.br TCPWRAPPER

O TCP Wrappers so usados para aplicar regras de acesso aos servidores utilizados em sistema, podendo permitir ou negar as conexes a eles. Eles so controlados por dois arquivos: /etc/hosts.allow (congurao de acessos permitidos para determinados IPs) e /etc/hosts.deny (congurao de acesso negados para determinados IPs) TCP. Sigla para Transmission Control Protocol.
/etc/hosts.allow

Se uma regra deste arquivo for atendida, o acesso ao servio pe permitido


/etc/hosts.deny

- Se uma regra deste arquivo for atendida, o acesso ao servio negado As regras destes arquivos podem ser contruda de forma a corresponder a todos os servios ou, alternativamente, a determinados servios especcos. Se no houver nenhuma correspondncia nos dois arquivos, o acesso ao servio permitido. comum se especicar regras particulares no arquivo hosts.allow e especcar uma negativa geral no arquivo hosts.deny, limitando assim o acesso aos clientes que voc especicamente permitir. A linguagem dos arquivos de controle consiste de uma lista de servios, seguida por dois-pontos, seguida por uma lista de hosts. Os hosts podem ser especcados por nome ou por endereo IP. Por exemplo: Para negar acesso a todos os servios, exceto ao ftp no domnio local, poderiam ser usados estes dois arquivos simples:
hosts.allow

Esta entrada permite acesso ao ftp aos clientes do domnio local ftp: LOCAL hosts.deny Esta entrada nega o acesso a todos os servios a todos os clientes ALL: ALL Entendendo um pouco mais

155 de 190

22-07-2013 21:21

http://debian.linux/

Existem dezenas de possibilidades de congurao para o tcp_wrappers e possvel estud-las em extenso atravs das pginas de manual hosts_access e hosts_options. Portanto, sero ilustrados apenas alguns casos interessantes do uso desta ferramenta. As regras de controle de acesso, existentes nestes dois arquivos, tm o seguinte formato: lista_de_daemons : lista_de_clientes [: comando] lista_de_daemons: Lista de um ou mais nomes de daemons (como especicados no /etc/inetd.conf), ou curingas. lista_de_clientes: Lista de um ou mais endereos ou nomes de mquinas, padres ou curingas utilizados para especicar quais clientes podem e quais no podem acessar o servio. comando (opcional): possvel executar um comando sempre que uma regra casa com um padro e utilizada. Veja exemplos a seguir. Como citado anteriormente, curingas podem ser utilizados tanto na lista de daemons quanto na lista de clientes. Entre os existentes, pode-se destacar os seguintes: ALL Signica todos os servios ou todos os clientes, dependendo apenas do campo em que se encontra. LOCAL Este curinga casa com qualquer nome de mquina que no contenha um caractere ponto ., isto , uma mquina local. PARANOID Casa com qualquer nome de mquina que no case com seu endereo. Isto geralmente ocorre quando algum servidor DNS est mal congurado ou quando alguma mquina est tentando se passar por outra.
/etc/hosts.allow

O arquivo /etc/hosts.allow um arquivo de congurao do programa /usr/sbin/tcpd. O arquivo hosts.allow contm regras descrevendo que hosts tem permisso de acessar um servio em sua mquina. O formato do arquivo muito simples:
# /etc/hosts.allow # # lista de servios: lista de hosts : comando

lista de servios uma lista de nomes de servios separados por vrgula que esta regra se

156 de 190

22-07-2013 21:21

http://debian.linux/

aplica. Exemplos de nomes de servios so: ftpd, telnetd e ngerd. lista de hosts uma lista de nomes de hosts separada por vrgula. Voc tambm pode usar endereos IPs aqui. Adicionalmente, voc pode especicar nomes de computadores ou endereo IP usando caracteres coringas para atingir grupos de hosts. Exemplos incluem: gw.vk2ktj.ampr.org para conferir com um endereo de computador especco, .uts.edu.au para atingir qualquer endereo de computador nalizando com aquele string. Use 200.200.200. para conferir com qualquer endereo IP iniciando com estes dgitos. Existem alguns parmetros especiais para simplicar a congurao, alguns destes so: ALL atinge todos endereos, LOCAL atinge qualquer computador que no contm um . (ie. est no mesmo domnio de sua mquina) e PARANOID atinge qualquer computador que o nome no confere com seu endereo (falsicao de nome). Existe tambm um ltimo parmetro que tambm til: o parmetro EXCEPT lhe permite fazer uma lista de excees. Isto ser coberto em um exemplo adiante. comando um parmetro opcional. Este parmetro o caminho completo de um comando que dever ser executado toda a vez que esta regra conferir. Ele pode executar um comando para tentar identicar quem esta conectado pelo host remoto, ou gerar uma mensagem via E-Mail ou algum outro alerta para um administrador de rede que algum est tentando se conectar. Existem um nmero de expanses que podem ser includas, alguns exemplos comuns so: %h expande o endereo do computador que est conectado ou endereo se ele no possuir um nome, %d o nome do daemon sendo chamado. Se o computador tiver permisso de acessar um servio atravs do /etc/hosts.allow, ento o /etc/hosts.deny no ser consultado e o acesso ser permitido. Como exemplo:
# /etc/hosts.allow # # Permite que qualquer um envie e-mails in.smtpd: ALL # Permitir telnet e ftp somente para hosts locais e myhost.gnulinuxbr.com in.telnetd, in.ftpd: LOCAL, myhost.gnulinuxbr.com

Qualquer modicao no arquivo /etc/hosts.allow entrar em ao aps

157 de 190

22-07-2013 21:21

http://debian.linux/

reiniciar o daemon inetd. Isto pode ser feito com o comando kill -HUP [pid do inetd], o pid do inetd pode ser obtido com o comando ps ax|grep inetd.

/etc/hosts.deny

O arquivo /etc/hosts.deny um arquivo de congurao das regras descrevendo quais computadores no tem a permisso de acessar um servio em sua mquina. Um modelo simples deste arquivo se parece com isto:
# /etc/hosts.deny # # Bloquear o acsso SSH para todos, exceto para a rede 10.0.0.0 sshd: ALL EXCEPT 10.0.0.0/24

Tendo um padro ALL: ALL no arquivo /etc/hosts.deny e ento ativando especicamente os servios e permitindo computadores que voc deseja no arquivo /etc/hosts.allow a congurao mais segura. Qualquer modicao no arquivo /etc/hosts.deny entrar em ao aps reiniciar o daemon inetd. Isto pode ser feito com o comando kill -HUP [pid do inetd], o pid do inetd pode ser obtido com o comando ps ax|grep inetd. Importante saber: O arquivo hosts.deny consultado depois de hosts.allow, permitindo ao administrador denir regras especcas de permisso, que sero aplicadas antes das regras de proibio ou de uma negativa geral. Exemplo de Congurao do tcp_wrappers Exemplos dos arquivos /etc/hosts.allow e /etc/hosts.deny
Arquivo /etc/hosts.deny ALL:ALL Arquivo /etc/hosts.allow ALL: localhost in.ftpd: .minhaorganizacao ipop3d: ALL

Congurao do tcp_wrappers menos restritiva, considere o mesmo arquivo /etc/hosts.deny do exemplo anterior: Congurao do tcp_wrappers menos restritiva Arquivo /etc/hosts.allow ALL: localhost

158 de 190

22-07-2013 21:21

http://debian.linux/

in.ftpd: .minhaorganizacao 10.0.0.0/255.255.255.0 192.168 ipop3d: ALL EXCEPT gnulinuxbr.com Neste ltimo caso, mquinas da rede 10.0.0.0/255.255.255.0 e mquinas em que o endereo IP inicie por 192.168. tambm podem acessar o servio FTP. Note que foi utilizado um operador novo para o servio ipop3d: EXCEPT. Isto permitiu que o acesso a este servio fosse liberado para todos, exceto para mquinas da rede gnulinuxbr.com. O operador EXCEPT pode ser utilizado tanto na lista de clientes quanto na lista de servios. Por exemplo, a linha: ALL EXCEPT in.ftpd: ALL no arquivo /etc/hosts.allow permite o acesso a todos os servios, exceto o FTP, para qualquer mquina. Todos os acessos, bem-sucedidos ou no, so registrados atravs do syslog, em /var/log/secure. recomendado que este arquivo seja periodicamente analisado procura de tentativas de invaso. Testando a Congurao Negue certos servios para uma mquina de sua rede (como por exemplo o servio telnet) e aps reinicializar o xinetd, procure fazer acessos da mquina onde o servio foi negado.

Curso Certicao Linux LPI-102: Criptograa de Dados

Usando pgp (gpg)para criptograa de arquivos

O gpg (GNU pgp, verso livre da ferramenta pgp) permite encriptar dados, assim somente o destinatrio ter acesso aos dados, adicionalmente poder vericar se a origem dos dados convel (atravs da assinatura de arquivos). O sistema PGP se baseia no conceito de chave pblica e privada: Sua chave pblica distribuda para as pessoas que deseja trocar dados/mensagens e a chave privada ca em sua mquina (ela no pode ser distribuda). As chaves pblicas e privadas so armazenadas nos arquivos pubring.gpg e secring.gpg respectivamente, dentro do subdiretrio ~/.gnupg. Veja [#s-d-cripto-gpg-criando Criando um par de chaves pblica/privada, Seo 20.5.2] para criar este par de chaves. Os dados que recebe de outra pessoa so criptografados usando sua chave pblica e somente voc (de posse da chave privada) poder desencriptar os dados.

159 de 190

22-07-2013 21:21

http://debian.linux/

Quando assina um arquivo usando o pgp, ele faz isto usando sua chave privada, o destinatrio de posse da chave pblica poder ento conrmar que a origem dos dados convel. O gpg vem largamente sendo usado para transmisso segura de dados via internet. Muitos programas de e-mails como o mutt e sylpheed incluem o suporte a pgp embutido para envio de mensagens assinadas/encriptadas (MIME no tem uma codicao segura e no garante que a mensagem vem de quem realmente diz ser). Um servidor de e-mail no Linux congurado como as mesmas conguraes/endereos do provedor da vtima pode enganar com sucesso um usurio passando-se por outro.
Instalando o PGP # apt-get install gnupg

Aps instalar o gnupg, execute o comando gpg para criar o diretrio ~/.gnupg que armazenar as chaves pblica e privada.
Criando um par de chaves pblica/privada

Para gerar um par de chaves pessoais use o comando gpg --gen-key. Ele executar os seguintes passos: Chave criptogrca - Selecione DSA e ELGamal a no ser que tenha necessidades especcas. Tamanho da chave - 1024 bits traz uma boa combinao de proteo/velocidade. Validade da chave - 0 a chave no expira. Um nmero positivo tem o valor de dias, que pode ser seguido das letras w (semanas), m (meses) ou y (anos). Por exemplo, "7m", "2y", "60". Aps a validade, a chave ser considerada invlida. Nome de usurio - Nome para identicar a chave E-mail - E-mail do dono da chave comentrio - Uma descrio sobre a chave do usurio. Conrmao - Tecle "O" para conrmar os dados ou uma das outras letras para modicar os dados de sua chave. Digite a FraseSenha - Senha que ir identic-lo(a) como proprietrio da chave privada. chamada de FraseSenha pois pode conter espaos e no h limite de caracteres.Conrme e aguarde a gerao da chave pblica/privada.
Encriptando dados

Use o comando gpg -e arquivo faz a encriptao de dados:

gpg -e arquivo.txt

160 de 190

22-07-2013 21:21

http://debian.linux/

Ser pedida a identicao de usurio, digite o nome que usou para criar a chave. O arquivo criado ser encriptado usando a chave pblica do usurio (~/.gnupg/pubring.gpg) e ter a extenso .gpg adicionada (arquivo.txt.gpg). Alm de criptografado, este arquivo compactado (recomendvel para grande quantidade de textos). A opo -a usada para criar um arquivo criptografado com sada ASCII 7 bits:

gpg -e -a arquivo.txt

O arquivo gerado ter a extenso .asc acrescentada (arquivo.txt.asc) e no ser compactado. A opo -a muito usada para o envio de e-mails. Para criptografar o arquivo para ser enviado a outro usurio, voc dever ter a chave pblica do usurio cadastrado no seu chaveiro e especicar a opo -r seguida do nome/e-mail/ID da chave pblica:

gpg -r kov -e arquivo.txt

O exemplo acima utiliza a chave pblica de kov para encriptar o arquivo arquivo.txt (somente ele poder decriptar a mensagem usando sua chave privada). OBS: recomendvel especicar o nome de arquivo sempre como ltimo argumento.
Decriptando dados com o gpg

Agora vamos fazer a operao reversa da acima, a opo -d usada para decriptar os dados usando a chave privada:

gpg -d arquivo.txt.asc >arquivo.txt gpg -d arquivo.txt.gpg >arquivo.txt

Descriptografa os arquivos arquivo.txt.asc e arquivo.txt.gpg recuperando seu contedo original. A sua "FraseSenha" ser pedida para descriptografar os dados usando a chave privada (~/.gnupg/secring.gpg).
Assinando arquivos

Assinar um arquivo garantir que voc a pessoa que realmente enviou aquele arquivo. Use a opo -s para assinar arquivos usando sua chave privada:

161 de 190

22-07-2013 21:21

http://debian.linux/

gpg -s arquivo.txt

A "FraseSenha" ser pedida para assinar os dados usando sua chave privada. Ser gerado um arquivo arquivo.txt.gpg (assinado e compactado). Adicionalmente a opo --clearsign poder ser usada para fazer uma assinatura em um texto plano, este um recurso muito usado por programas de e-mails com suporte ao gpg:

gpg -s --clearsign arquivo.txt

Ser criado um arquivo chamado arquivo.txt.asc contendo o arquivo assinado e sem compactao.
Checando assinaturas

A checagem de assinatura consiste em vericar que quem nos enviou o arquivo realmente quem diz ser e se os dados foram de alguma forma alterados. Voc dever ter a chave pblica do usurio no seu chaveiro para fazer esta checagem . Para vericar os dados assinados acima usamos a opo --verify:

gpg --verify arquivo.txt.asc

Se a sada for "Assinatura Correta", signica que a origem do arquivo segura e que ele no foi de qualquer forma modicado.

gpg --verify arquivo.txt.gpg

Se a sada for "Assinatura INCORRETA" signica que ou o usurio que enviou o arquivo no confere ou o arquivo enviado foi de alguma forma modicado.
Extraindo sua chave pblica do chaveiro

Sua chave pblica deve ser distribuda a outros usurios para que possam enviar dados criptografados ou checar a autenticidade de seus arquivos. Para exportar sua chave pblica em um arquivo que ser distribudo a outras pessoas ou servidores de chaves na Internet, use a opo --export:

162 de 190

22-07-2013 21:21

http://debian.linux/

gpg --export -a usuario >chave-pub.txt

Ao invs do nome do usurio, poder ser usado seu e-mail, ID da chave, etc. A opo -a permite que os dados sejam gerados usando bits ASCII 7.
Adicionando chaves pblicas ao seu chaveiro pessoal

Isto necessrio para o envio de dados criptografados e checagem de assinatura do usurio, use a opo --import:

gpg --import chave-pub-usuario.txt

Assumindo que o arquivo chave-pub-usuario.txt contm a chave pblica do usurio criada em [#s-d-cripto-gpg-c-e Extraindo sua chave pblica do chaveiro, Seo 20.5.7]. O gpg detecta chaves pblicas dentro de textos e faz a extrao corretamente. Minha chave pblica pode ser encontrada em [ch-apend.html#s-apend-pgp Chave Pblica PGP, Seo 21.8] ou http://pgp.ai.mit.edu.
Listando chaves de seu chaveiro

Use o comando
gpg --list-keys

para listar as chaves pblica do seu chaveiro. O comando gpg --listsecret-keys lista suas chaves privadas.
Apagando chaves de seu chaveiro

Quando uma chave pblica modicada ou por qualquer outro motivo deseja retira-la do seu chaveiro pblico, utilize a opo --delete-key:

gpg --delete-key usuario

Pode ser especicado o nome de usurio, e-mail IDchave ou qualquer outro detalhe que conra com a chave pblica do usurio. Ser pedida a conrmao para excluir a chave pblica. OBS: A chave privada pode ser excluda com a opo --delete-secret-key. Utilize-a com o mximo de ateno para excluir chaves secretas que no utiliza (caso use mais de uma), a excluso acidental de sua chave secreta signica como perder a chave de um cofre de banco: voc no poder descriptografar os arquivos

163 de 190

22-07-2013 21:21

http://debian.linux/

enviados a voc e no poder enviar arquivos assinados. Mesmo assim se isto acontecer acidentalmente, voc poder recuperar o ltimo backup da chave privada em ~/.gnupg/secring.gpg~.
Mudando sua FraseSenha

Execute o comando gpg --edit-key usurio, quando o programa entrar em modo de comandos, digite passwd. Ser lhe pedida a "Frase Senha" atual e a nova "Frase Senha". Digite "save" para sair e salvar as alteraes ou "quit" para sair e abandonar o que foi feito. O gpg --edit-key permite gerenciar diversos aspectos de suas chaves interessante explora-lo digitando "?" para exibir todas as opes disponveis.
Assinando uma chave digital

A assinatura de chaves um meio de criar laos de conana entre usurios PGP. Assinar uma chave de algum algo srio, voc deve ter noo do que isto signica e das consequncias que isto pode trazer antes de sair assinando chaves de qualquer um. O prprio teste para desenvolvedor da distribuio Debian requer como primeiro passo a identicao do candidato, caso sua chave pgp seja assinada por algum desenvolvedor desta distribuio, imediatamente o teste de identicao completado. A partir disso voc deve ter uma noo bsica do que isto signica. Para assinar uma chave siga os seguintes passos: Importe a chave pblica do usurio (veja [#s-d-cripto-gpg-c-a Adicionando chaves pblicas ao seu chaveiro pessoal, Seo 20.5.8]). Execute o comando gpg --edit-key usuario (onde usuario o nome do usurio/e-mail/IDchave da chave pblica importada). Digite list, e selecione a chave pblica (pub) do usurio com o comando uid [numero_chave]. Para assinar todas as chaves pblicas do usurio, no selecione qualquer chave com o comando uid. Para assinar a chave pblica do usurio digite sign, ser perguntado se deseja realmente assinar a chave do usurio e ento pedida a "FraseSenha" de sua chave privada. Digite "list", repare que existe um campo chamado trust: n/q no lado direito. O primeiro parmetro do "trust" indica o valor de conana do dono e o segundo (aps a /) o valor de conana calculado automaticamente na chave. As seguintes possuem o seguinte signicado: - - Nenhum dono encontrado/conana no calculada. e - Chave expirada/falha na checagem de conana. q - Quando no conhece o usurio. n - Quando no cona no usurio ( o padro). m - Pouca conana no usurio. f - Totalmente convel. u - Indiscutivelmente convel. Somente usado para especicar a chave pblica do prprio usurio.

164 de 190

22-07-2013 21:21

http://debian.linux/

O valor de conana da chave pode ser modicado com o comando trust e selecionando uma das opes de conana. Os valores de conana para a chave pblica pessoal -/u (no necessrio calcular a conana/indiscutivelmente convel).
Listando assinaturas digitais

Execute o comando gpg --list-sigs para listas todas as assinaturas existentes no seu chaveiro. Opcionalmente pode ser especicado um parmetro para fazer referncia a assinatura de um usurio:gpg --list-sigs usuario. O comando gpg --check-sigs adicionalmente faz a checagem de assinaturas.
Recomendaes para a assinatura de chaves gpg

Este texto foi divulgado por uma pessoa que pediu para permanecer annima na lista debian-user-portuguese@lists.debian.org explicando os procedimentos de segurana para a troca de chaves pblicas individuais e em grupo de usurios. Ele um pouco longo mas a pessoa especializada no assunto, e seu foco a segurana na troca de chaves e o que isto signica. Aps consulta ao autor do texto, o texto foi reproduzido na ntegra, mantendo os padres de formatao da mensagem.
Trocando assinaturas de chaves digitais Direitos de republicao cedidos ao domnio pblico, contanto que o texto seja reproduzido em sua ntegra, sem modificaes de quaisquer espcie, e incluindo o ttulo e nome do autor.

1. Assinaturas digitais 2. Chaves digitais e a teia de confiana 3. Trocando assinaturas de chaves digitais com um grupo de pessoas

1. Assinaturas digitais Uma assinatura digital um nmero de tamanho razovel (costuma ter de 128 a 160 bits) que representa um bloco bem maior de informao, como um e-mail. Pense numa texto. Se assinatura representa assinatura como se ela fosse uma verso super-comprimida de um voc muda alguma coisa (por menor que seja) no texto que uma "assina", essa assinatura se torna invlida: ela no mais aquele texto.

Existe uma relao direta entre uma assinatura e informao que ela assina. Se uma das duas for modificada, elas passam a no mais "combinar" uma com a a outra. Um programa de computador pode detectar isso, e avisar que a assinatura "invlida". Os algoritmos mais usados para criar e verificar assinaturas digitais so o SHA-1, RIPEM160 e MD5. O MD5 no considerado to bom quanto os outros dois.

165 de 190

22-07-2013 21:21

http://debian.linux/
Assinaturas digitais tambm funcionam com arquivos "binrios", ou seja: imagens, som, planilhas de clculo... e chaves digitais.

2. Chaves digitais e a teia de confiana Chaves digitais so fceis de falsificar, voc s precisa criar uma chave nova no nome de sicrano, por um endereo de e-mail novinho em folha daqueles que voc consegue nesses webmail da vida, e pronto. Agora s espalhar essa chave por a que os bestas vo us-la pensando que de sicrano. A menos que os "bestas" no sejam to bestas assim, tenham lido o manual do seu software de criptografia, e saibam usar assinaturas e a teia de confiana para verificar se a tal chave de sicrano mesmo. Programas de criptografia (os bons, tipo PGP e GNUpg) usam um sistema de assinaturas nas chaves digitais para detectar e impedir esse tipo de problema: Ao usurio dado o poder de "assinar" uma chave digital, dizendo "sim, eu tenho certeza que essa chave de fulano, e que o e-mail de fulano esse que est na chave". Note bem as palavras "certeza", e "e-mail". Ao assinar uma chave digital, voc est empenhando sua palavra de honra que o _nome_ do dono de verdade daquela chave o nome _que est na chave_, e que o endereo de e-mail daquela chave da pessoa (o "nome") que tambm est na chave. Se todo mundo fizer isso direitinho (ou seja, no sair assinando a chave de qualquer um, s porque a outra pessoa pediu por e-mail, ou numa sala de chat), cria-se a chamada teia de confiana. Numa teia de confiana, voc confia na palavra de honra dos outros para tentar verificar se uma chave digital legtima, ou se uma "pega-bobo". Suponha que Marcelo tenha assinado a chave de Cludia, e que Roberto, que conhece Marcelo pessoalmente e assinou a chave de Marcelo, queira falar com Cludia. Roberto sabe que Marcelo leu o manual do programa de criptografia, e que ele no irresponsvel. Assim, ele pode confiar na palavra de honra de Marcelo que aquela chave digital da Cludia da Cludia mesmo, e usar a chave pra combinar um encontro com Cludia. Por outro lado, Roberto no conhece Cludia (ainda), e no sabe que tipo de pessoa ela . Assim, rapaz prevenido, ele no confia que Cludia seja uma pessoa responsvel que verifica direitinho antes de assinar chaves. Note que Roberto s confiou na assinatura de Marcelo porque, como ele j tinha assinado a chave de Marcelo, ele sabe que foi Marcelo mesmo quem assinou a chave de Cludia. Enrolado? Sim, um pouco complicado, mas desenhe num papel as flechinhas de quem confia em quem, que voc entende rapidinho como funciona. O uso da assinatura feita por algum cuja chave voc assinou, para validar a chave digital de um terceiro, um exemplo de uma pequena teia de confiana.

166 de 190

22-07-2013 21:21

http://debian.linux/

3. Trocando assinaturas de chaves digitais com um grupo de pessoas Lembre-se: ao assinar uma chave digital, voc est empenhando sua palavra de honra que toda a informao que voc assinou naquela chave verdadeira at onde voc pode verificar, _e_ que voc tentou verificar direitinho. Pense nisso como um juramento: "Eu juro, em nome da minha reputao profissional e pessoal, que o nome e endereos de e-mail nessa chave so realmente verdadeiros at onde posso verificar, e que fiz uma tentativa real e razovel de verificar essa informao." Sim, srio desse jeito mesmo. Voc pode ficar muito "queimado" em certos crculos se voc assinar uma chave falsa, pensando que verdadeira: a sua assinatura mal-verificada pode vir a prejudicar outros que confiaram em voc. Bom, j que o assunto srio, como juntar um grupo de pessoas numa sala, e trocar assinaturas de chaves entre si? Particularmente se so pessoas que voc nunca viu antes? Siga o protocolo abaixo, passo a passo, e sem pular ou violar nenhum dos passos.

1 -

Rena todos em uma sala, ou outro local no tumultuado, pressa e baguna so inimigas da segurana. Cada um dos presentes deve, ento, ir de um em um e: 2.1 Apresentar-se, mostrando _calmamente_ documentao original (nada de fotocpia) comprovando sua identidade. RG, CPF, passaporte, certido de nascimento ou casamento, carteira de motorista, carto de crdito so todos bons exemplos. S o RG sozinho no -- tem muito RG falsificado por a -- mas o RG junto com o carto de banco j seria suficiente. Se nenhum documento tiver foto, tambm no o bastante. * Se algum pedir o documento na mo, para verificar direitinho, no leve pro lado pessoal. Deixe a pessoa verificar at estar satisfeita (mas no descuide do documento). Isso s significa que ela leva muito a srio a responsabilidade de assinar chaves. 2.2 Entregar um papel com as informaes da chave: Nome (QUE OBRIGATORIAMENTE PRECISA SER O MESMO NOME CONSTANTE NOS DOCUMENTOS APRESENTADOS EM 2.1), e-mail, nmero da chave (keyID), e fingerprint da chave (assinatura digital da chave) RECIPIENTE DO PAPEL: Se voc achar que os documentos que te apresentaram no so prova suficiente, talvez porque o nome no bate com o da chave, ou porque uma foto nos documentos no est parecida com quem mostrou os documentos, marque discretamente no papel, porque voc NO deve assinar essa chave. Se achar que o outro vai engrossar, no diga para ele que no vai assinar a chave dele.

2 -

3 -

Pronto. Podem ir embora, porque o resto dos passos deve ser feito com calma, em casa. Lembre-se que voc no vai estar efetuando nenhum

167 de 190

22-07-2013 21:21

http://debian.linux/
julgamento moral a respeito de quem voc assinar a chave. Voc s ir afirmar que a chave de sicrano realmente aquela, e mais nada. 4 Para cada uma das chaves que voc marcou no papel que "posso assinar": 4.1 Pea para o seu programa de criptografia mostrar a chave e sua assinatura (fingerprint). SE: O nome no papel for exatamente igual ao nome na chave (user ID/UID da chave). E: A assinatura no papel for exatamente igual assinatura na chave (fingerprint). ENTO: V para o passo 4.3. 4.2 As informaes no bateram, por isso voc no deve assinar a chave. Se quiser, envie um e-mail avisando que no poder assinar a chave. No aceite tentativas de retificao por e-mail ou telefone. Um outro encontro face- -face, refazendo todos os passos 2.1 e 2.2 o nico jeito de retificar o problema. As informaes bateram, o que garante que o *nome* est correto. Agora preciso ter certeza do endereo de e-mail. Para isso, envie uma e-mail *CIFRADA* pela chave que voc est testando, para o endereo de e-mail constante na chave. Nessa e-mail, coloque uma palavra secreta qualquer e pea para o destinatrio te responder dizendo qual a palavra secreta que voc escreveu. Use uma palavra diferente para cada chave que estiver testando, e anote no papel daquela chave qual palavra voc usou. Se voc receber a resposta contendo a palavra secreta correta, voc pode assinar a chave. Caso contrrio, no assine a chave -o endereo de e-mail pode ser falso.

4.3 -

4.4 -

Comandos do gpg (GNUpg) correspondentes a cada passo: 2.2 gpg --fingerprint (retorna as informaes que devem estar no papel a ser entregue no passo 2.2) 4.1 gpg --receive-key <0xKEYID> (procura a chave especificada nos keyservers) gpg --sign-key <0xKEYID> (assina uma chave) Assume-se que voc sabe cifrar e decifrar mensagens. Caso no saiba, ainda no hora de querer sair assinando chaves.

Criando arquivos .tar.gz com senha

Aqui vai uma dica para deixar seus arquivos compactados em tar.gz com senha, na verdade o arquivo ser transformado num .gpg, segue:

168 de 190

22-07-2013 21:21

http://debian.linux/

Para compactar: Cria o tar(-cf, C de Create) e (f de Files), logo (-cf Create Files, serve pra memorizar)
$ tar -cf nome_que_vc_escolher.tar arquivo_ou_pasta

Agora transforma ele em tar.gz


$gzip -9 arquivo_que_vc_criou.tar

e agora usa-se o gpg pr senha:


$ gpg -c arquivo.tar.gz

Descompactando, preciso pr a senha pr criada, quando ele solicitar


$ gpg arquivo.tar.gz.gpg

Agora extrair(-xf X de eXtract e F de Files, eXtract Files)


$ tar -xf arquivo.tar.gz

Pronto!
Fonte: http://pt.wikibooks.org/wiki/Guia_do_Linux/Avanado

Curso Certicao Linux LPI-102: Acessibilidade no Linux

O "leitor de tela bsico em braille" foi adicionado recentemente ao

169 de 190

22-07-2013 21:21

http://debian.linux/

kernel do Linux e, com ele, um subdiretrio drivers/accessibility e a opo CONFIG_ACCESSIBILITY correspondente. Vale destacar que as primeiras reaes foram do tipo "que raios essa tal de acessibilidade?". Isso mostra como a idia pouco conhecida entre os desenvolvedores. E olha que a acessibilidade no GNU/Linux, ou seja, a usabilidade do GNU/Linux por portadores de decincia (como cegos, por exemplo), obviamente no nova. J h trabalho nessa rea faz tempo: a verso 0.07 do leitor de tela speakup foi lanada para o kernel 2.2.7 em 1999, e o leitor de tela em braille brltty foi iniciado em 1995. O leitor de tela bsico em braille que acaba de ser adicionado ao kernel do Linux apenas a parte visvel desse trabalho que j est em andamento h anos. Com a popularizao do GNU/Linux entre o pblico no-tcnico, tem havido um interesse renovado por um suporte mais mainstream acessibilidade: o desktop GNOME, o OpenOce.org e o Firefox 3 agora podem ser renderizados por sintetizadores de voz e braille graas ao framework AT-SPI e ao leitor de tela Orca. Assim que essas tecnologias forem adaptadas ao D-BUS, o KDE tambm vai aderir. Alm disso, comearam a aparecer menus de acessibilidade nas distribuies. Uma das maiores preocupaes dos portadores de decincia costumava ser a falta de suporte ao Javascript nos navegadores em modo texto e a falta de suporte das sutes de escritrio. Conforme mais e mais empresas e governos migram para o Linux, especialmente devido exigncia de alguns estados por acessibilidade nas ferramentas usadas pelo governo, um esforo renovado no desenvolvimento foi se tornando cada vez mais uma necessidade. Em Massachusetts, o povo chegou a fazer um abaixo-assinado contra a migrao para o software livre porque, na poca, ele no oferecia as ferramentas de acessibilidade necessrias!
O que acessibilidade?

Acessibilidade, tambm abreviada como a11y, fazer com que um software possa ser utilizado por pessoas portadoras de decincia. Isso inclui os cegos, claro, mas tambm pessoas com pouca viso, surdos, daltnicos, pessoas que s tm uma das mos ou que s podem mover alguns dedos ou apenas os olhos. Pessoas com problemas cognitivos (ainda que leves) ou no familiarizadas com a linguagem tambm esto includas. Por ltimo, mas no menos importantes, os idosos, que tm um pouco de todas essas decincias. Sim, isso quer dizer que, um dia, todo mundo vai estar includo nesse grupo. Isso implica em suporte a dispositivos especiais, mas tambm em precauo no desenvolvimento, evitando presumir que um alarme sonoro ser ouvido, ou que uma breve mensagem ser lida.

170 de 190

22-07-2013 21:21

http://debian.linux/

Talvez uma das tcnicas 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 substituda 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 lngua inglesa, mas o suporte a outros idiomas varia. Por exemplo, os engines Festival e eSpeak suportam vrios idiomas, mas o som robtico demais. H bibliotecas de fonemas melhores, como o mbrola, mas elas geralmente no so 100% livres. Para lidar de maneira mais eciente com esses backends de sintetizao de voz, o daemon de voz precisa escolher automaticamente a sintetizao 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 padres do braille. O terminal braile custa caro, e geralmente tem espao para apenas 40 caracteres, ou mesmo por volta de 12 ou 20. Ele tem teclas para navegao pela tela, e com isso o usurio 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 preo muito alto (em torno de 5.000 dlares). O suporte aos vrios dispositivos existentes muito bom: dentre os leitores de tela, tanto o brltty quanto o suseblinux suportam uma ampla variedade de dispositivos. Os cegos provavelmente usaro dispositivos em braille e sintetizadores de voz em conjunto. Os dispositivos para os outro tipos de decincia variam bastante. Eles vo de joysticks (suportados nativamente pelo X.org) a sistemas que acompanham o movimento dos olhos (gerenciados pelo dasher), fazendo uso do apertar de botes (suportado pelo GOK, o teclado de tela do GNOME) ou da mera ampliao da tela (implementada pelo gnome-mag).
Fonte: www.hardware.com.br

Links: http://www.acessibilidadelegal.com/33-manual-orca.php http://softwarelivre.org/acessibilidade-em-software-livre/acessibilidadeno-orca-e-gnulinux

Curso Certicao Linux LPI-102: Congurando Conexes PPPoE no Linux


22-07-2013 21:21

171 de 190

http://debian.linux/

PPPoE (sigla em ingls para Point-to-Point Protocol over Ethernet) um protocolo de rede para conexo de usurios em uma rede Ethernet para alcanar a Internet. Seu uso tpico nas conexes de um ou mltiplos usurios em uma rede LAN Internet atravs de uma linha DSL, de um dispositivo wireless (sem o) ou de um modem de cabo broadband comum. O protocolo PPPoE deriva do protocolo PPP. O PPPoE estabelece a sesso e realiza a autenticao com o provedor de acesso a Internet. A maioria dos modems ADSL vendidos no Brasil so roteadores, no entanto existem alguns modelos que s funcionam no modo Bridge, ou seja, no Windows por exemplo, voc usaria um discador para conectarse.Voc precisar de um provedor, usurio e senha para autenticao, e tambm, naturalmente, uma placa de rede para ligar ao modem. Comando para congurar o pppoe

# pppoeconf

Ateno: O pacote pppoe e pppoeconf j vem instalados por padro, mas se no estiver, instale-o com:

# apt-get install pppoe pppoeconf

172 de 190

22-07-2013 21:21

http://debian.linux/

1. 2. 3. 4. 5. 6.

Um programa com uma interface semi-grca baseada em texto lhe guiar atravs dos passos para a congurao, que so elas: Conrmar se sua placa de rede foi detectada. Digitar seu nome de usurio (fornecido pelo provedor). Digitar sua senha (fornecida pelo provedor). Se voc j possui uma conexo PPPoE congurada, ele perguntar se voc deseja modicar sua congurao atual. Responda o padro em todas as perguntas (basta digitar enter), ou mude, caso saiba o que est fazendo. Limited MSS problem - choose "Yes". O programa perguntar se voc deseja ativar a conexo durante o boot, provavelmente voc vai querer responder Sim. Finalmente, perguntar se voc deseja estabilizar a conexo imediatamente. Pronto isto, provavelmente voc sua conexo com a internet j estar funcionando. Controle manual da conexo Para iniciar sua conexo (se j no estiver ativa), digite num terminal:
# pon dsl-provider

Icones/parar.png Para parar a conexo (se estiver ativa), digite no terminal:


# poff dsl-provider

Problemas Se sua conexo parecer no funcionar, tente ver o log. Para isto, digite num terminal:
# plog

Problemas com o boot Se voc tiver que rodar o pppoeconf a cada boot por que a conexo no est sendo ativada, voc pode tentar:
# /etc/network/interfaces

173 de 190

22-07-2013 21:21

http://debian.linux/

Edite o arquivo como abaixo:

# added by pppoeconf auto eth0 iface eth0 inet manual pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf auto dsl-provider iface dsl-provider inet ppp provider dsl-provider

Para conguraes com autenticao no modem ou roteador, o certo :

auto lo iface lo inet loopback iface eth0 inet static address 10.1.1.2 netmask 255.0.0.0 gateway 10.1.1.1 auto eth0 ou, manualmente com um pequeno script: #!/bin/bash echo vamos reconfigurar sua rede, pressione ENTER para iniciar a configurao, ou Ctrl+c para desistir read resposta sudo ifconfig sudo ifconfig eth0 down sudo ifconfig eth0 10.1.1.2 netmask 255.0.0.0 up echo nameserver 10.1.1.1 sudo route add default gw 10.1.1.1 dev eth0 sudo ifconfig ping -c4 www.google.com

Se isto no funcionar, edite o arquivo /etc/rc.local, e antes da ultima linha ("exit 0"), adicione: ifcong eth0 up pon dsl-provider Logs de erro voc tiver problemas com sua conexo, talvez encontre algumas

174 de 190

22-07-2013 21:21

http://debian.linux/

informaes teis nos logs do sistema


# dmesg

Fonte: wiki.ubuntu-br.org

Curso Certicao Linux LPI-102: Gerenciador de Pacotes YUM e pacotes RPM

1.0 - Gerenciador de Pacotes YUM

O gerenciador de pacotes YUM o gerenciador de pacote padro do Red Hat, Fedora, CentOS e derivados.Antes criado e utilizado no Yellow Dog Linux que uma distribuicao baseada em Red Hat e que so funciona em maquinas com o processador PowerPC ou derivados como o Cell. Os arquivos de conguracao do YUM se encontram no diretorio /etc/yum/ e os repositorios se encontram no diretorio /etc/yum.repos.d que muito similar ao /etc/apt/sources.list.d do Debian. Pois seria possivel a centralizacao de tudo tb no /etc/yum/yum.conf. As instrues aqui so baseadas na distribuio Fedora.

O arquivo de congurao do yum o /etc/yum.conf. Alm disso, os repositrios (sites que contm os pacotes dos programas) so congurados atravs de cada arquivo de extenso .repo, localizados no diretrio /etc/yum.repos.d.

175 de 190

22-07-2013 21:21

http://debian.linux/

A congurao padro do yum contida no /etc/yum.conf suciente para o bom funcionamento do programa. Voc s precisar de alguns repositrios j congurados. Por exemplo, o padro para o repositrio do Fedora o arquivo /etc/yum.repos.d/fedora.repo:

[fedora] name=Fedora $releasever - $basearch baseurl=http://fedora.c3sl.ufpr.br/linux/releases/$releasever/Everything /$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

As linhas acima signicam que o repositrio denominado fedora ter:

1. name: Nome descritivo, no exemplo: Fedora (verso da distribuio) (arquitetura da


distribuio, ex. i386);

2. baseurl: O endereo que contm a lista dos programas e os pacotes; 3. enabled: Se o repositrio est habilitado ou no (1 signica sim, 0 signica no); 4. gpgcheck: Se todos os pacotes devem ter sua autenticidade vericada
(extremamente recomendado, 1 signica sim, 0 signica no);

5. gpgkey: Qual chave criptogrca utilizar para a vericao dos pacotes. Com este repositrio congurado, pode-se instalar e remover todos os pacotes bsicos da distribuio. No caso das atualizaes de pacotes, o repositrio outro e pode ser congurado no arquivo /etc/yum.repos.d/fedora-updates.repo:

[updates] name=Fedora $releasever - $basearch Updates baseurl=http://fedora.c3sl.ufpr.br/linux/updates/$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

H varios outros repositrios de terceiros disponveis (como o livna, dag, freshrpms, atrpms) que contm outros programas que podem no estar na lista principal por diversos motivos. Cada um desses repositrios tm conguraes prprias e por isso criam arquivos .repo dentro do diretrio /etc/yum.repos.d. Aqui no iremos listar todos os repositrios

176 de 190

22-07-2013 21:21

http://debian.linux/

e sim apenas os ociais.

Uma vez congurados os repositrios desejados, hora de utilizar o yum. Para procurar por um pacote usando alguma palavra relacionada, utilizamos o parmetro search. Por exemplo, procurar todos os pacotes relacionados com a palavra DVD:

# yum search DVD

Para instalar um pacote:

# yum install pacote

Para desinstalar o pacote:

# yum remove pacote

Atualizando um pacote especco, caso exista uma atualizao para o mesmo:

# yum update pacote

Ou se precisarmos atualizar todo o sistema, instalando todos os pacotes novos que tenham atualizaes disponveis:

# yum update

Para vericar quais os pacotes que precisam de atualizao:

# yum check-update

Listando todos os pacotes disponveis, tanto no repositrio quanto os j instalados:

# yum list

Listando todos os pacotes disponveis para a instalao:

177 de 190

22-07-2013 21:21

http://debian.linux/

# yum list available

Existem tambm os grupos de pacotes. Um grupo de pacotes um conjunto de pacotes necessrios para se instalar alguma funcionalidade no sistema e so denidos pelos desenvolvedores da distribuio. Para listar todos os grupos de pacotes:

# yum grouplist Installed Groups: Office/Productivity MySQL Database Editors System Tools ...corte... Available Groups: Engineering and Scientific Window Managers GNOME Software Development XFCE Software Development XFCE ...corte...

Como podemos ver, o yum mostra os grupos j instalados no sistema (Installed Groups) e os disponveis para a instalao (Available Groups). Se quisermos, por exemplo, instalar o suporte ao gerenciador de janelas XFCE, instalamos seu grupo:

# yum groupinstall "XFCE"

O yum se encarregar de baixar todos os pacotes necessrios para o XFCE. Para remover todos os pacotes do grupo:

# yum groupremove "XFCE"

Todas estas aes do yum necessitam de uma conexo de Internet, pois a lista de pacotes sempre requisitada no repositrio para consulta. Mesmo para consultar um simples nome de pacote, precisa-se de conexo com a Internet.

Caso j tenha se utilizado o yum para fazer alguma ao (e por consequncia, ele j tenha baixado a lista de pacotes para o seu sistema), podemos optar por no precisar nos conectar ao servidor na

178 de 190

22-07-2013 21:21

http://debian.linux/

Internet toda vez que usarmos o yum utilizando o parmetro -C. Exemplos:

# yum -C search DVD # yum -C check-update # yum -C list | grep kde

Na instalacao do fedora possivel instalar o apt e no Debian e Ubuntu vc tb pode instalar o yum pelo apt-get para estudos.
2.0 - Pacotes RPM e Sistema de Gerenciamento de Pacotes RPM

RPM (Red Hat Package Manager) um sistema de gerenciamento de pacotes desenvolvido pela Red Hat para ser utilizado em sua prpria distro. Posteriormente outras distros Linux, e mesmo alguns outros sistemas operacionais, tambm adotaram o formato RPM para gerenciamento de seus pacotes. A LSB (Linux Standard Base) indicou o formato RPM como o padro para distros Linux. Outro utilitrio para gerenciamento de pacotes RPM em modo texto o Yum (Yellow Dog Updater, Modied), disponvel nas distros Red Hat Enterprise Linux, CentOS, Oracle Entreprise Linux e Fedora. Com o Yum, possvel realizar instalaes e atualizaes de pacotes localmente ou a partir de repositrios de pacotes localizados na internet. Sua grande vantagem em relao ao utilitrio RPM tentar resolver automaticamente todas as dependncias requeridas por pacotes que estiverem sendo instalados ou atualizados e tambm por proporcionar uma forma fcil de atualizar todo o sistema pela Internet. Os trs principais formatos de pacotes utilizados em sistemas Linux so: RPM: utilizado pela distro Red Hat Enterprise Linux (RHEL) e por distros derivadas como CentOS, Oracle Enterprise Linux, Fedora e SuSE. DEB: utilizado pela distro Debian e por distros derivadas como Ubuntu. TGZ: utilizado pela distro Slackware e por distros derivadas como Vector Linux. Alm destes formatos, h tambm outros. No entanto, no vou me prolongar a respeito deles para no perder o foco do artigo e tambm para no deix-lo extenso. O rtulo (nomenclatura) tpico de um pacote RPM nome-versaorelease.arquitetura.rpm, onde: Nome: o nome do software que est sendo distribudo. Verso: a verso do software. Release: o verso de construo do pacote para a mesma verso do software.
22-07-2013 21:21

179 de 190

http://debian.linux/

Arquitetura: a plataforma para a qual o software foi desenvolvido. Noarch signica que o software no foi desenvolvido para uma plataforma especca, podendo ser utilizado em qualquer uma. Src signica que o pacote contm os arquivos-fonte do software. .rpm: a extenso do nome do arquivo de pacote RPM. Exemplo: oracle-xe-univ-10.2.0.1-1.0.i386.rpm, sqldeveloper3.0.04.34-1.noarch.rpm Instalao Para instalar pacotes RPM em sistemas Linux, necessrio estar logado como root (su). Note que o sistema de gerenciamento de pacotes RPM no resolve as dependncias automaticamente para voc. Portanto, as dependncias necessrias devero ser instaladas antes da instalao do pacote que as requer. Uma outra forma de resolver isso executar a instalao utilizando o utilitrio Yum em distros RHEL e derivadas ou o equivalente em outras distros. Instalaes locais: Para instalar um pacote localizado localmente, execute o comando
# rpm -ivh

, onde: -i: o modo de instalao. -v: (opcional) apresenta mensagens detalhadas de sada para o processo de instalao. -h: (opcional) exibe cerquilhas (#) medida em que o processo de instalao avana. : o nome do arquivo do pacote RPM a ser instalado no sistema; pode ser mais de um ao mesmo tempo, neste caso, separe-os com espaos. Exemplo: # rpm -ivh AdobeReader_ptb-8.1.7-1.i486.rpm possvel testar a instalao de um pacote antes de instal-lo no sistema # rpm -ivh test , onde: test: esta opo testa o processo de instalao do pacote e, caso haja algum problema, notica a respeito. Exemplo:
# rpm -ivh test AdobeReader_ptb-8.1.7-1.i486.rpm

Instalaes com o utilitrio Yum: A forma tpica do comando Yum para instalaes
# yum -y install nogpgcheck

180 de 190

22-07-2013 21:21

http://debian.linux/

, onde: -y: (opcional) resposta automtica positiva para a conrmao do processo de instalao. install: a opo de instalao do Yum. nogpgcheck: (opcional) instrui o Yum a no vericar a assinatura do pacote. : o nome do pacote RPM disponvel localmente ou na Internet em repositrios do Yum. Exemplo:
# yum -y install nogpgcheck AdobeReader_ptb-8.1.7-1.i486.rpm # yum -y install gparted

Observao: No exemplo 1, acima, o pacote est disponvel localmente. Em 2, o pacote est localizado em um repositrio utilizado pelo Yum, isto , na Internet. Em ambos os casos, o Yum tenta resolver quaisquer dependncias, baixando-as e instalando-as automaticamente. Atualizao Para atualizar pacotes RPM instalados em sistemas Linux, necessrio estar logado como root (su). Lembre-se de que o sistema de gerenciamento de pacotes RPM no resolve quaisquer dependncias requeridas automaticamente. Caso haja dependncias requeridas pelo pacote a ser atualizado que no estejam instaladas no sistema, ser necessrio baix-las e instal-las antes de atualizar o pacote. Outra forma de resolver isso executar a atualizao utilizando o utilitrio Yum em distros RHEL e derivadas ou o equivalente em outras distros. Atualizaes locais: Para atualizar um pacote localizado localmente, execute o comando
# rpm -Uvh

, onde: -U: o modo de atualizao. -v: (opcional) apresenta mensagens detalhadas de sada para o processo de atualizao. -h: (opcional) apresenta cerquilhas (#) medida em que o processo de atualizao avana. : o nome do arquivo do pacote RPM a ser atualizado no sistema. Pode ser mais de um ao mesmo tempo, neste caso, separe-os com espaos.

181 de 190

22-07-2013 21:21

http://debian.linux/

Exemplo:
# rpm -Uvh flash-plugin-10.2.153.1-release.i386.rpm

Observao: Caso o pacote em atualizao no estiver instalado no sistema, ele ser automaticamente instalado com este comando. Tambm possvel testar a atualizao de um pacote antes de atualiz-lo no sistema
# rpm -Uvh test

, onde: test: esta opo testa o processo de atualizao do pacote e, caso haja algum problema, notica a respeito. Exemplo:
# rpm -Uvh test flash-plugin-10.2.153.1-release.i386.rpm

Atualizaes com o utilitrio Yum: O processo de atualizao com o Yum muito til, pois, com ele, possvel atualizar at mesmo todo o sistema de uma s vez. Neste caso, o processo poder ser um pouco demorado, dependendo da quantidade de pacotes a serem atualizados e da velocidade de sua conexo Internet. Para atualizar pacotes, a forma tpica do comando Yum
# yum -y update [pacote]

Exemplo:
# yum -y update flash-plugin-10.2.153.1-release.i386.rpm

Para vericar se h atualizaes disponveis


# yum check-update [pacote]

Exemplo:
# yum check-update flash-plugin-10.2.153.1-release.i386.rpm # yum check-update

Para atualizar todo o sistema Linux


# yum -y update

182 de 190

22-07-2013 21:21

http://debian.linux/

Nas formas do comando Yum apresentadas acima, o nome do pacote a ser atualizado opcional. possvel informar vrios nomes de pacotes a serem atualizados em em nico comando, basta separ-los com espaos. Quando no for informado nenhum nome de pacote, o Yum processar todos os pacotes instalados em seu sistema Linux. O -y opcional e serve como resposta positiva automtica para as questes formuladas pelo Yum. Downgrade Downgrade signica baixar a verso de um dado pacote instalado em um sistema Linux, isto , atualizar para uma verso mais antiga do pacote. A principal razo para que isso seja feito quando um determinado aplicativo ou sistema funcionava adequadamente com uma verso X de um determinado pacote e, aps este pacote ter sido atualizado para uma verso Y superior, o mesmo aplicativo ou sistema passa a no funcionar bem com esta nova verso Y do pacote considerado. Neste caso, o administrador do sistema dever fazer o downgrade deste pacote para a verso X. Para fazer donwgrade de um pacote instalado em um sistema Linux, necessrio estar logado como root (su). Downgrades locais: Para fazer o downgrade de um pacote localizado localmente, execute o comando # rpm -Uvh oldpackage , onde: -U: o modo de atualizao. -v: (opcional) apresenta mensagens detalhadas de sada para o processo de downdrade. -h: (opcional) exibe cerquilhas (#) medida em que o processo de downgrade avana. oldpackage: fora o downgrade de pacotes. : o nome do pacote RPM da verso anterior, isto , para o qual voc est fazendo downgrade. Exemplo:
# rpm -Uvh oldpackage flash-plugin-10.2.153.1-release.i386.rpm

possvel testar o downgrade de um pacote antes de atualiz-lo no sistema


# rpm -Uvh oldpackage test

, onde: test: esta opo testa o processo de downgrade do pacote e, caso haja algum problema, notica a respeito.

183 de 190

22-07-2013 21:21

http://debian.linux/

Downgrades com o utilitrio Yum: Com o Yum voc poder fazer downgrade de pacotes a partir de repositrios do Yum localizados na Intenet. A forma do comando
# yum -y downgrade

. Exemplo:
# yum -y downgrade flash-plugin-10.2.153.1-release.i386.rpm

O -y opcional e serve como resposta positiva automtica ao Yum para conformar a execuo do processo. Observao: Seja criterioso ao fazer downgrade de pacotes em seu sistema, pois o mesmo poder apresentar comportamentos indesejados como, por exemplo, instabilidade e/ou vulnerabilidades. Consultas Com o sistema de gerenciamento de pacotes RPM, possvel realizar diversas formas de consultas de informaes sobre pacotes instalados ou no no sistema. Note que para consultas de pacotes, no necessrio estar logado como root (su). A seguir, as formas mais usuais de consultas. Consultas de informaes de pacotes instalados no sistema: Para listar todos os pacotes instalados no sistema:
$ rpm -qa

Para listar, em ordem alfabtica ascendente, todos os pacotes instalados no sistema:


$ rpm -qa | sort

Para obter a contagem dos pacotes instalados no sistema, sem list-los:


$ rpm -qa | wc -l

Para vericar se um pacote est instalado no sistema, informando uma parte do nome do pacote:
$ rpm -qa | grep -i

Onde uma parte do nome do pacote que voc est consultando. Nesta forma de consulta, ser ignorada a diferena entre maisculas e

184 de 190

22-07-2013 21:21

http://debian.linux/

minsculas. Exemplo:
$ rpm -qa | grep -i java

Para gerar um arquivo texto contendo a listagem, em ordem alfabtica ascendente, de todos os pacotes instalados no sistema:
$ rpm -qa | sort >

Exemplo:
$ rpm -qa | sort > ListPctsInstalados.txt

Para consultar informaes sobre um pacote especco instalado no sistema:


$ rpm -qi

Exemplo:
$ rpm -qi java-1.6.0-openjdk-1.6.0.0-1.20.b17.el5

Observao: Note que o nome do pacote dever ser digitado exatamente por completo, da mesma forma em que estiver registrado no banco de dados do RPM, levando-se em considerao maisculas e minsculas. Para listar todos os arquivos de um pacote especco instalado no sistema:
$ rpm -ql

Exemplo:
$ rpm -ql java-1.6.0-openjdk-1.6.0.0-1.20.b17.el5

Consultas de informaes de pacotes no instados no sistema: Para consultar informaes sobre um pacote especco no instalado no sistema:
$ rpm -qpi

Exemplo:
$ rpm -qpi AdobeReader_ptb-8.1.7-1.i486.rpm

185 de 190

22-07-2013 21:21

http://debian.linux/

Para listar todos os arquivos de um pacote especco no instalado no sistema:


$ rpm -qpl

Exemplo:
$ rpm -qpl AdobeReader_ptb-8.1.7-1.i486.rpm

Para obter a contagem dos arquivos de um pacote especco no instalado no sistema, sem listar estes arquivos:
$ rpm -qpl | wc -l

Exemplo:
$ rpm -qpl AdobeReader_ptb-8.1.7-1.i486.rpm | wc -l

Para gerar um arquivo texto contendo a listagem, em ordem alfabtica ascendente, dos arquivos de um pacote especco no instalados no sistema:
$ rpm -qpl | sort >

Exemplo:
$ rpm -qpl AdobeReader_ptb-8.1.7-1.i486.rpm | sort > ListArqsPct.txt

Desinstalao Para executar a desinstalao de pacotes RPM em sistemas Linux, voc dever estar logado como usurio root (su) e executar o comando a seguir:
# rpm -e

Exemplo:
# rpm -e AdobeReader_ptb-8.1.7-1

Observao: Note que o nome do pacote a ser desinstalado deve ser exatamente igual ao nome registrado no banco de dados do RPM. Voc pode descobrir o nome exato do pacote instalado no sistema, utilizando as opes de consulta apresentadas na seo Consultas deste artigo. Outra forma de executar a desinstalao de pacotes RPM combinar

186 de 190

22-07-2013 21:21

http://debian.linux/

recursos de consulta de nomes de pacotes e pesquisa de substrings em subshell do Linux, em uma nica linha de comando. A forma tpica do comando, neste caso,
# rpm -e $(rpm -qa | grep -i )

, onde: $(): o subshell. Os comandos internos este subshell so processados antes do comando externo. rpm -qa: o comando de consulta de todos os pacotes RPM instalados no sistema. grep -i substring: este comando procura ocorrncias do texto fornecido em substring na lista de pacotes RPM instalados no sistema, obtida pelo comando rpm -qa anterior e ignorando maisculas e minsculas. : um texto representando parte do nome do pacote RPM a ser desinstalado do sistema. Exemplo:
# rpm -e $(rpm -qa | grep -i adobe

Neste exemplo, sero desinstalados do sistema todos os pacotes RPM que contiverem adobe como parte de seu nome, desconsiderando-se maisculas e minsculas. Observao: Tenha muito cuidado ao executar desinstalaes desta forma, pois qualquer erro poder ser fatal. Podem ser desinstalados outros pacotes que no os desejados e/ou que sejam importantes a seu sistema ou a seu trabalho!

Reconstruo do banco de dados do RPM O sistema RPM utiliza um banco de dados Berkeley DB, localizado no diretrio /var/lib/rpm/, para armazenar metadados dos pacotes instalados em um sistema Linux. Embora sistemas Linux sejam bastante seguros e conveis, o banco de dados do RPM pode, eventualmente, sofrer quebras (corrupes). Caso isso ocorra, voc no conseguir gerenciar seus pacotes RPM. Por exemplo, voc no conseguir instalar novos pacotes no sistema. Para tentar corrigir este problema, estando logado como usurio root (su), execute o seguinte comando de reconstruo do banco de dados do RPM:
# rpm --rebuilddb

187 de 190

22-07-2013 21:21

http://debian.linux/

Embora este comando seja utilizado em casos de corrupo do banco de dados do RPM, voc poder utiliz-lo periodicamente, de forma preventiva, mesmo que o banco de dados do RPM no apresente problemas aparentes. Soluo de problemas de transaes no concludas com o Yum Outro problema que tambm pode ocorrer, sobretudo quando ocorre instalao ou atualizao de pacotes RPM, a interrupo, por diversos motivos, do processo antes de sua concluso, gerando transaes no concludas. Quando isso ocorrer, sempre que voc for instalar ou atualizar pacotes com o Yum, receber uma mensagem como a seguinte: There are unnished transactions remaining. You might consider running yum-complete-transaction rst to nish them. Para sanar este problema, ser necessrio estar logado como root (su) e executar o utilitrio yum-complete-transaction, o qual est contido no pacote yum-utils:
# /usr/sbin/yum-complete-transaction

Caso o pacote yum-utils no esteja instalado no sistema, instale-o com o comando a seguir:
# yum -y install yum-utils

Fontes: http://www.devin.com.br/ http://www.aprigiosimoes.com.br http://imasters.com.br

Curso Certicao Linux LPI-102: A Certicao LPI

188 de 190

22-07-2013 21:21

http://debian.linux/

O Linux Professional Institute - LPI - uma organizao sem ns lucrativos, sediada na California - USA e constituda em 1999 pela comunidade Linux e desenvolve de forma acessvel um programa de certicao em sistemas GNU/Linux reconhecido internacionalmente por empresas, empregadores e prossionais de TI. Certicar-se uma forma de atestar conhecimentos prossionais, ou seja, validar a ecincia de algum em determinado assunto. A principal vantagem da LPI sobre outras certicaes Linux a neutralidade de distribuio, pois as provas do LPI so baseadas no Linux Standard Base, um conjunto de normas que mantm a compatibilidade entre as diferentes verses e distribuies do sistema operacional. A certicao LPI , portanto, independente de distribuio. O LPI reconhecido como a primeira organizao do mundo a defender e ajudar o uso prossional do Linux, Open Source e Free Software atravs de certicao prossional. Os exames de certicao do LPI so aplicados em milhares de lugares no mundo, em vrios idiomas e com o apoio de empresrios, fabricantes e instrutores. Lista de Assuntos com os Links para cada um(se voc clicar em um link, abrir em nova aba):

010203040506-

A Certicao LPI Noes Fundamentais Documentao Arquitetura de Hardware Instalao do Linux Filtros de Texto

189 de 190

22-07-2013 21:21

http://debian.linux/

0708091011121314151617181920212223242526272829303132333435363738394041424344-

Gerenciamento bsico de arquivos Hierarquia do sistema de arquivos Sistemas de arquivos e dispositivos Montando e Desmontando Sistemas de Arquivos Executando, Gerenciando e Terminando Processos Sistema de Boot, Shutdown e Runlevels Trabalhando com Permisses Trabalhando com vi Instalando e Compilando Programas a partir do cdigo fonte Gerenciamento de Pacotes Debian e Redhat (rpm, dpkg, apt-get, dselect) Gerenciador de Pacotes YUM Utilizando Expresses Regulares Quotas de Disco Administrao do Sistema Automatizando Tarefas Administrativas e Estratgias de Backup X Window Programando em Shell Script Arquivos de LOG Impresso no Linux Hora do Sistema Internacionalizao do Sistema Kernel do Linux Fundamentos e Servios de Rede TCP/IPv4 Utilitrios e Ferramentas do TCP/IP Congurando a Rede Congurando o DHCP Congurando Conexes PPPoE no Linux Servios de Rede no Linux O Servidor PostFix Congurando o Apache Compartilhamento via NFS Compartilhamento via Samba Congurando o DNS Congurando o Shell Seguro OpenSSH Segurana Criptograa de Dados Acessibilidade no Linux Gerenciamento de dados SQL

Visite o site do LPI Mundial e saiba mais.

190 de 190

22-07-2013 21:21

Você também pode gostar