190
Curso Certificação Linux LPI Apostila Criada por:Marcos da Boa Morte HTTP://AMIGOSDOPINGUIM.BLOGSPOT.COM.BR/ Baseada nas aulas do Uirá Ribeiro [+] Curso Certificação Linux LPI-1: Instalando o GNU/Linux Debian [+] Curso Certificação Linux LPI-102: Gerenciamento de dados SQL (Tabela de alguns comando MySQL) [+] Curso Certificação Linux LPI-1: Comandos do editor de texto Vim (Vi) [+] Curso Certificação Linux LPI-1: Documentação e Notificação de Usuários [+] Curso Certificação Linux LPI-1: Shell Script Noções Fundamentais. [+] Curso Certificação Linux LPI-1: Arquitetura de Hardware. [+] Curso Certificação Linux LPI-1: Filtros de Texto [+] Curso Certificação Linux LPI-1: Hierarquia do Sistema [+] Curso Certificação Linux LPI-1: Sistemas de Arquivos e Dispositivos [+] Curso Certificação Linux LPI-1: Montagem e Desmontagem de Sistema de Arquivos (SLIDE) [+] Curso Certificação Linux LPI-1: Executando, Gerenciando e Terminando Processos [+] Curso Certificação Linux LPI-1: Sistema de Boot, Shutdown e Runlevels [+] Curso Certificação Linux LPI-1: Trabalhando com Permissões [+] Curso Certificação Linux LPI-1: Instalando e Compilando Programas a partir do código fonte [+] Curso Certificação Linux LPI-1: Gerenciamento de pacotes no Debian [+] Curso Certificação Linux LPI-1: Quotas de Disco [+] Curso Certificação Linux LPI-1: grep e sed [+] Amostras (PDF em Slide) dos Cursos: Certificação Linux LPI-1 e LPI-102 [+] Curso Certificação Linux LPI-102: Administração do Sistema [+] Curso Certificação Linux LPI-102: Backup, compactação e descompactação [+] Curso Certificação Linux LPI-102: Kernel do Linux [+] Curso Certificação Linux LPI-102: Fundamentos e Serviços de Rede - TCP-IPv4 [+] Curso Certificação Linux LPI-102: Utilitários e Ferramentas do TCP/IP [+] Curso Certificação Linux LPI-102: Configurando a Rede [+] Curso Certificação Linux LPI-102: Configurando o DHCP [+] Curso Certificação Linux LPI-102: Serviços de Rede no Linux [+] Curso Certificação Linux LPI-102: Arquivos de LOG [+] Curso Certificação Linux LPI-102: X Window System [+] Curso Certificação Linux LPI-102: Impressão no Linux [+] Curso Certificação Linux LPI-102: Hora e Internacionalização do Sistema [+] Curso Certificação Linux LPI-102: Servidor Postfix [+] Curso Certificação Linux LPI-102: Compartilhamento via Samba http://debian.linux/ 1 de 190 22-07-2013 21:21

Cur So Certifica o Linux Lp i

Embed Size (px)

DESCRIPTION

Cur So Certifica o Linux Lp i

Citation preview

Page 1: Cur So Certifica o Linux Lp i

CursoCertificaçãoLinux LPIApostila Criada por:Marcos da Boa Morte

HTTP://AMIGOSDOPINGUIM.BLOGSPOT.COM.BR/Baseada nas aulas do Uirá Ribeiro

[+] Curso Certificação Linux LPI-1: Instalando o GNU/Linux Debian[+] Curso Certificação Linux LPI-102: Gerenciamento de dados SQL (Tabela de alguns comandoMySQL)[+] Curso Certificação Linux LPI-1: Comandos do editor de texto Vim (Vi)[+] Curso Certificação Linux LPI-1: Documentação e Notificação de Usuários[+] Curso Certificação Linux LPI-1: Shell Script Noções Fundamentais.[+] Curso Certificação Linux LPI-1: Arquitetura de Hardware.[+] Curso Certificação Linux LPI-1: Filtros de Texto[+] Curso Certificação Linux LPI-1: Hierarquia do Sistema[+] Curso Certificação Linux LPI-1: Sistemas de Arquivos e Dispositivos[+] Curso Certificação Linux LPI-1: Montagem e Desmontagem de Sistema de Arquivos (SLIDE)[+] Curso Certificação Linux LPI-1: Executando, Gerenciando e Terminando Processos[+] Curso Certificação Linux LPI-1: Sistema de Boot, Shutdown e Runlevels[+] Curso Certificação Linux LPI-1: Trabalhando com Permissões[+] Curso Certificação Linux LPI-1: Instalando e Compilando Programas a partir do código fonte[+] Curso Certificação Linux LPI-1: Gerenciamento de pacotes no Debian[+] Curso Certificação Linux LPI-1: Quotas de Disco[+] Curso Certificação Linux LPI-1: grep e sed[+] Amostras (PDF em Slide) dos Cursos: Certificação Linux LPI-1 e LPI-102[+] Curso Certificação Linux LPI-102: Administração do Sistema[+] Curso Certificação Linux LPI-102: Backup, compactação e descompactação[+] Curso Certificação Linux LPI-102: Kernel do Linux[+] Curso Certificação Linux LPI-102: Fundamentos e Serviços de Rede - TCP-IPv4[+] Curso Certificação Linux LPI-102: Utilitários e Ferramentas do TCP/IP[+] Curso Certificação Linux LPI-102: Configurando a Rede[+] Curso Certificação Linux LPI-102: Configurando o DHCP[+] Curso Certificação Linux LPI-102: Serviços de Rede no Linux[+] Curso Certificação Linux LPI-102: Arquivos de LOG[+] Curso Certificação Linux LPI-102: X Window System[+] Curso Certificação Linux LPI-102: Impressão no Linux[+] Curso Certificação Linux LPI-102: Hora e Internacionalização do Sistema[+] Curso Certificação Linux LPI-102: Servidor Postfix[+] Curso Certificação Linux LPI-102: Compartilhamento via Samba

http://debian.linux/

1 de 190 22-07-2013 21:21

Page 2: Cur So Certifica o Linux Lp i

[+] Curso Certificação Linux LPI-102: Configurando o DNS[+] Curso Certificação Linux LPI-102: Compartilhamento via NFS[+] Curso Certificação Linux LPI-102: Configurando o Shell Seguro OpenSSH[+] Curso Certificação Linux LPI-102: Configurando o Apache[+] Curso Certificação Linux LPI-102: Segurança[+] Curso Certificação Linux LPI-102: Criptografia de Dados[+] Curso Certificação Linux LPI-102: Acessibilidade no Linux[+] Curso Certificação Linux LPI-102: Configurando Conexões PPPoE no Linux[+] Curso Certificação Linux LPI-102: Gerenciador de Pacotes YUM e pacotes RPM[+] Curso Certificação Linux LPI-102: A Certificação LPI

Curso Certificação Linux LPI-1: Instalando o GNU/Linux Debian

Instalando o GNU/Linux Debian from marcosoliveira on Vimeo.

Curso Certificação Linux LPI-102: Gerenciamento de dados SQL(Tabela de alguns comando MySQL)

MySQL

é um sistema de gerenciamento de banco de dados (SGBD), que utiliza alinguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured QueryLanguage) como interface. É atualmente um dos bancos de dados mais populares,com mais de 10 milhões de instalações pelo mundo.

Instalação 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;

http://debian.linux/

2 de 190 22-07-2013 21:21

Page 3: Cur So Certifica o Linux Lp i

Saindo do MySQLObs.:pode usar quit; também

exit;

Logar no MySQLdireto no Banco-D escolhe o banco

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

Criando Banco CREATE DATABASE banco;

Criando uma tabelaExemplo:ordem de tipo,

unsigned...

CREATE TABLE tabela(id INT UNSIGNED NOT NULLAUTO_INCREMENT PRIMARY KEY, campo2 TEXT NOT NULL,campo3 CHAR(10) NOT NULL);

Inserindo dadosnuma tabela

INSERT INTO tabela VALUES (NULL, 'Livre Xpert','MySQL');

Apagando uma tabelaDeletando uma tabela

DROP TABLE tabela;

Apagando um bancodeletando um banco de dados

DROP DATABASE banco;

Selecionando o banco USE banco;

Descrevendo uma tabela DESCRIBE tabela;

Selecionando tudode uma tabela

SELECT * FROM tabela;

Criando usuarios comtodos os privilegiostem de selecionar o banco de

dados antes

è preciso usar o comando FLUSH

PRIVILEGES

depois para as alterações terem

efeitos

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

Criando usuariossem privilegiostem de selecionar o banco de

dados antes

è preciso usar o comando FLUSH

PRIVILEGES

depois para as alterações terem

efeitos

GRANT USAGE PRIVILEGES ON *.* TO usuario@hostIDENTIFIED BY 'senha' WITH GRANT OPTION;

Deletando um usuario domysql

DROP USER usuario;

Deletando uma linhade uma tabela

DELETE FROM tabela WHERE id = '1';

Alterando um campode uma tabelaExemplo caso seja um campo

numérico:

update dados set idade=idade+1

where dadosid=6;

UPDATE tabela SET campo_que será_alterado = novo_dadoWHERE campo = referencia

http://debian.linux/

3 de 190 22-07-2013 21:21

Page 4: Cur So Certifica o Linux Lp i

Deletando uma colunade uma tabela

ALTER TABLE tabela DROP COLUMN nome_da_coluna;

Inserindo uma colunanuma tabelaColuna qualquer

ALTER TABLE tabela ADD nova_coluna VARCHAR(20) NOTNULL AFTER coluna_existente

Inserindo uma colunanuma tabelaPrimary Keys

ALTER TABLE tabela ADD nova_coluna INT UNSIGNED NOTNULL AUTO_INCREMENT PRIMARY KEY FIRST

Left Join

SELECT tabela1.id, tabela1.coluna1, tabela2.coluna2FROM tabela1 LEFT JOIN tabela2ON tabela1.id = tabela2.id;Exemplo:SELECT form.id, form.nome, dados.id FROM form LEFTJOIN dados ON form.id = dados.id;

Listar todos osusuarios do MySQL

SELECT * FROM mysql.user;SELECT host, user, password, select_priv FROMmysql.user;

Revogando todos osprivilégios

REVOKE ALL ON banco_de_dados.* FROM usuario;

Criando usuariocom alguns privilegios

GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER,CREATE, DROP ON tabela.* TO usuario;

Revogando algunsprivilégos

REVOKE UPDATE, DELETE, INDEX, ALTER, CREATE, DROP ONbanco_de_dados.* FROM usuario;

Concedendo todosos privilegios paratodas as tabelas

GRANT ALL PRIVILEGES ON *.* TO usuario;

Alterando o nomede uma coluna

ALTER TABLE tabela CHANGE coluna_que_será_modificadanovo_nome_da coluna TEXT NOT NULL;

Utilizando AliasesCláusula de apelido

SELECT t1.campo1 FROM tabela1 AS t2, tabela2 AS t1WHERE t2.campo1 = t1.campo1 AND t1.campo2 LIKE'%termo%';

Exibindo a consultapor ordem alfabéticautilizar a cláusula 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;

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

Média ponderada SELECT AVG(campo) FROM tabela;

Agrupando a consulta SELECT AVG(campo) FROM tabela GROUP BY campo;

http://debian.linux/

4 de 190 22-07-2013 21:21

Page 5: Cur So Certifica o Linux Lp i

Especificando ConsultasSELECT AVG(campo) FROM tabela GROUP BY campo HAVINGAVG(campo) > 50;

Limitando os ResultadosPode-se usar também de forma

simplificada,Exemplo:

SELECT campo FROM tabela

LIMIT 3;

SELECT campo FROM tabela LIMIT 3, 4;

Fazendo SubConsultasOs Operadores de SubConsulta

são:

IN, SOME, ALL, ANY, EXISTS e

NOT EXISTS.

SELECT campo1, campo2 FROM formtabela1 WHERE campo2 =(SELECT MAX(campo2) FROM tabela2);

Modificando otipo de dadosmudou de char(10) para char(15)

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

Excluindo registrosdo banco de dadoscom cuidados necessárioAnalise as cláusulas do protótipo

DELETE LOW_PRIORITY QUICK IGNORE FROM tabelaWHERE ORDER BY LIMIT;

alterando a senha rootParar o serviço do MySQL (service

mysqld stop,

/etc/init.d/mysqld stop, matando o

processo

– conforme sua distribuição);

mysqladmin -u root password 'nova_senha'mysqladmin flush-privilegesOUUPDATE user SET Password=PASSWORD('nova_senha') WHEREUser='root';

FLUSH PRIVILEGES;

Exibindo colunas SHOW COLUMNS FROM tabela;

Exibindo privilégiosSHOW GRANTS FOR usuario;para root basta:SHOW GRANTS;

Otimizando uma tabela OPTIMIZE TABLE tabela

Exportando um banco dedadosALgumas distro Linux só permite

se for o usuario ROOT

o arquivo irá pro diretório 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 dedadosse vc salvar o arquivo .sql na pasta

/home, vc tem de

conectar pelo shell locallizado

nesta página.

Ex.:livrexpert@debian:/home$

mysql -D livrexpert -u root -p <

mysql -D BANCO_DE_DADOS -u root -p < dampe.sql

http://debian.linux/

5 de 190 22-07-2013 21:21

Page 6: Cur So Certifica o Linux Lp i

dampe.sql

Adicionando dados deum arquivo para uma tabela

LOAD DATA INFILE "arquivo.txt" INTO TABLE BOOKS;

Tipos de tabelasMyISAM, ISAM, MEMORY,

MERGE, BDB e InnoDB

CREATE TABLE tabela TYPE=tipo;ouALTER TABLE tabela TYPE=tipo;

Criando Chaves Primáriaspara strings

CREATE TABLE tabela (campo1 VARCHAR(20), campo2VARCHAR(40), PRIMARY KEY (campo1));

Inserindo dados no MySQLcom Encriptação SHA1Secure Hash Algorithm 1(SHA1)

Message Digest 5(MD5)

Unix Crypt(crypt()).

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

alterando o tipo de campo ALTER TABLE tabela MODIFY campo CHAR(13) NOT NULL;

Criando ou alterandocampos com valor padrão

ALTER TABLE tabela MODIFY campo INT DEFAULT '0';

Renomeando tabelas RENAME TABLE tabela TO novo_nome;

Agrupando por categoria,nao exibe resultadosrepetidos

SELECT DISTINCT campo FROM tabela

Referir a qualquer colunaou alias definido naexpressão_selectSELECT id FROM lx_dados

HAVING id > 1;

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

Verificar onde campos sãonulosselect 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 Expressão INselect lx_data from lx_tickets

where lx_remetente IN ('2');

SELECT 'wefwf' IN (0,3,5,'wefwf'); -> 1

Verificando a Versão doMySQL

SELECT VERSION(), CURRENT_DATE;

Efetuando cálculo noMySQL

SELECT (4+4)*4;

Comandos múltiplos de umasó vezo \c cancela um comando

SELECT NOW(), USER();

Inserindo arquivo quecontem dadosseparados portabulações(tab) para umatabela

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

http://debian.linux/

6 de 190 22-07-2013 21:21

Page 7: Cur So Certifica o Linux Lp i

Deletando: DELETE FROM pet;

LOAD DATA LOCAL INFILE

"pet.txt" INTO TABLE pet;

Inserindo data e horaautomaticamente

CURDATE(); -- CURTIME(); -- NOW();

Fazendo consultascomplexas

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

selecionando o nome e adiferençados 5 caracteres a esquerdadata atual peloaniversario e exibindo umcampo apelido(idade)para exibir o resultado

SELECT nome, LEFT(CURDATE(),5)-LEFT(aniversario,5) ASidade FROM estudos;

Selecionado somentecampos não nulosisso é diferente de usar != NULL

SELECT * FROM tabela WHERE campo IS NOT NULL;

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

SELECT MONTH(campo) FROM tabela;

Expressões Regulares

numeros de 3 a 8

palavra que começam com a letra

'b'

SELECT * FROM tabela WHERE

campo REGEXP "^b";

Palavras que terminam com fp

SELECT * FROM tabela WHERE

campo REGEXP "fy$";

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

Contando Registros(quantidade de rows/linhasde uma tabela)

SELECT COUNT(*) FROM tabela;

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

Selecionando campos deduas tabelas diferentes

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

Consulta Avançadaexemplo:

SELECT t1.nome, t2.nome

FROM lx_dados AS t1, lx_info AS

t2

SELECT t1.campoX, t2.campoYFROM tabela1 AS t1, tabela2 AS t2WHERE t1.campoX = t2.campoY;

http://debian.linux/

7 de 190 22-07-2013 21:21

Page 8: Cur So Certifica o Linux Lp i

WHERE t1.nome = t2.nome;

Descobrindo o Banco deDadoscaso esqueça o nome domesmo

SELECT DATABASE();

O Valor Máximo para umaColuna

SELECT MAX(campo) AS campo FROM tabela;

Criando tabelas temporariasCREATE TEMPORARY TABLE tabela (campo INT(4) UNSIGNEDZEROFILL DEFAULT '0000' NOT NULL, campo DOUBLE(16,2)DEFAULT '0.00' NOT NULL);

Bloqueando uma tabela LOCK TABLES tabela READ;

Desbloqueando uma tabela UNLOCK TABLES;

Inserindo dados numatabela a partirde um SELECT de outratabela

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

Consulta Avançada(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 campo2FROM tabela GROUP BY campo;

Pesquisando em DuasChaves

SELECT campoX FROM tabela1 UNION SELECT campo2 FROMtabela2;

UNSIGNED E ZEROFILL

UNSIGNED - Todos os tipos inteiros no MySQL podem tero atributo opcional UNSIGNED.Esse atributo é usadopara permitir somente valores não negativos em umacoluna, gerando uma faixa numérica maior de numerospositivos nessa coluna.Faixa UNSIGNED: de 0 a4294967295.ZEROFILL - O atributo opcional ZEROFILL, preencheespaços em uma coluna, substituindo por zeros. Porexemplo, uma coluna declarada como INT(4) ZEROFILL, ovalor 5 é recuperado como 0005.Se você especificar para uma coluna numéricaZEROFILL, automaticamente o MySQL adiciona o atributoUNSIGNED a coluna.

Verificando o Password dousuário mysql

SELECT PASSWORD('minha_senha');

verificar se um servidormysqld em execuçãosuporta OpenSSLse retornar YES está ativado, ao

contrário retorna DISABLE

SHOW VARIABLES LIKE 'have_openssl';

Criando um usuario comtodos os privilegios e comsuporte a SSLa biblioteca OPENSSL tem que

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

http://debian.linux/

8 de 190 22-07-2013 21:21

Page 9: Cur So Certifica o Linux Lp i

estar instalada

Checando e RecuperandotabelasREPAIR só funciona em tabelas

MyISAM, o myisamchk é

executado no Shell(myisamchk

--help)

CHECK TABLE tabela;REPAIR TABLE tabela;

Optimizando e Analisandotabelassó funciona em tabelas MyISAM

OPTIMIZE TABLE tabelaANALYZE TABLE tabela

Reiniciando, parando einiciando o Servidor

/etc/init.d/mysql start/etc/init.d/mysql stop/etc/init.d/mysql restart

Comando úteis (ver os logs,processos, privilegios,erros, avisos, tipos...)SELECT CURRENT_USER()

(mostra o usuario em uso)

SHOW BDB LOGSSHOW PROCESSLISTSHOW GRANTS FOR usuario@localhost;SHOW WARNINGS LIMIT 10SHOW ERRORS LIMIT 10SHOW TABLE TYPES;SHOW PRIVILEGES

+Comandos úteisSELECT LAST_INSERT_ID();(retorna o último ID inseridocom auto_increment)SELECT FORMAT(12332.4,1);(formata as casas da saida)

Curso Certificação Linux LPI-1: Comandos do editor de textoVim (Vi)

Introdução

"vi" é a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi

criado (começo da década de 80), não era comum existirem editores de textos como nos dias de hoje.

Naquela época, você digitava um texto mas não podia vê-lo! Isso mesmo! Em 1992, foi criado o vim

(Vi IMitator), um clone fiel ao vi, porém 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

simbólico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi é o executável, só que executa

diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles têm algumas

diferenças. O que você verá abaixo fala sobre o vim.

O vim é um editor de textos muito poderoso, ele pode: abrir vários arquivos ao mesmo tempo, possui

sistema de autocorreção, auto-identação, seleção visual, macros, seleção vertical de texto, uso de

expressões regulares, sintaxe colorida, e muito mais. Ele não é exclusivo do Unix, ou seja, pode ser

executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras.

http://debian.linux/

9 de 190 22-07-2013 21:21

Page 10: Cur So Certifica o Linux Lp i

Existe também o gvim, que é o vim em modo gráfico, com todas as funcionalidades do vim em pleno

funcionamento, o que muda é apenas o modo gráfico mesmo.

O vim possui vários modos, ou seja, estados em que ele se encontra. São eles: modo de inserção,

comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais:

Modo de inserção e de comandos

Para identificar o modo (estado) do vim, basta visualizar o rodapé da tela.

Agora, vamos à prática. Para executar o vim, utilize:

$ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação.

$ vi arquivo => Abre o arquivo de nome "arquivo".

$ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final 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 ocorrência da palavra

"Copag".

Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, é só olhar na última

linha (rodapé) e não vai haver nada lá. Isso quer dizer que você não conseguirá escrever nada, pode

digitar a vontade que só vai ouvir beeps. Para começar a escrever, pressione "i" em seu teclado. O vim

entra em modo de inserção, que você comprova (como falado anteriormente) pelo rodapé da tela,

onde fica a seguinte marcação:

- - -- INSERT --

Suponha que você já digitou o bastante, e quer salvar, por segurança. 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 forçado.

:q! => Sai forçado.

:wq! => Salva e sai forçado.

Então, 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 inserção, a mesma se inicia inserindo texto antes do cursor. Veja

agora outros subcomandos de inserção de texto:

A => Insere o texto no fim 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 movimentação 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.

http://debian.linux/

10 de 190 22-07-2013 21:21

Page 11: Cur So Certifica o Linux Lp i

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 início da próxima palavra (não ignorando a pontuação).

W => Move o cursor para o início da próxima palavra (ignorando a pontuação).

b => Move o cursor para o início da palavra anterior (não ignorando a pontuação).

B => Move o cursor para o início da palavra anterior (ignorando a pontuação).

0 (zero) => Move o cursor para o início da linha corrente.

^ => Move o cursor para o primeiro caracter não branco da linha.

$ => Move o cursor para o fim da linha corrente.

nG => Move o cursor para a linha de número "n"

(susbstitua n pelo número da linha)..

G => Move o cursor para a última linha do arquivo.

Copiando e colando textos no vim (utilizando o mouse)

Selecione o texto necessário com o botão 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 não, quando você está digitando). Para colar, depois de ter selecionado o texto, você pode

utilizar uma dessas opções:

1) Pressionando o botão direito do mouse;

2) Pressionando o botão direito + botão esquerdo juntos;

3) Pressionando o botão do meio do mouse (mouse de 3 botões);

Observação: Lembre-se que o vim deve estar no modo de inserção.

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 final de uma palavra, utilizando: dw

Pode também remover até o final de uma frase: d$

http://debian.linux/

11 de 190 22-07-2013 21:21

Page 12: Cur So Certifica o Linux Lp i

Desfazendo uma ação

É claro que você pode desfazer uma ação 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 localização de texto

/palavra => Procura pela palavra ou caracter acima ou abaixo do texto.

?palavra => Move para a ocorrência anterior da palavra (para repetir a busca use "n").

n => Repete o último comando utilizando / ou ?.

N => Repete o último comando / ou ? ao contrário (baixo para cima).

Ctrl+g => Mostra o nome do arquivo, o número da linha corrente e o total de linhas.

Mais opções para remoção 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 posição do cursor até o fim.

J => Une a linha corrente à próxima.

:5dd => Removeas próximas 7 linhas a partir da posição do atual do cursor (qualquer número).

Mais para copiar e colar

:yy => Copia a linha onde o cursor se encontra.

:5yy => Copia as próximas 5 linhas a partir da posição atual do cursor.

:p => Cola o que foi copiado na linha abaixo do cursor atual.

Opções para substituição de textos

rCARACTER => Substitui o caracter onde o cursor se encontra pelo caracter especificado em

CARACTER.

RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepõe).

cw => Remove a palavra corrente para substituição.

cc => Remove a linha corrente para substituição.

C => Substitui o restante da linha corrente, esperando o texto logo após o comando.

J => Une a linha corrente à próxima.

:s/velho/novo => Substitui a primeira ocorrência de "velho" por "novo" na linha corrente.

:% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrência de "velho" por "novo" em

cada linha.

:% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrências de "velho" por "novo".

http://debian.linux/

12 de 190 22-07-2013 21:21

Page 13: Cur So Certifica o Linux Lp i

:% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmação para cada substituição.

:% s/^String[0-9]//gc => Expressões regulares também funcionam, como no sed.

:% s/./\u&/gc => Converte para maiúsculas (\u) o primeiro caracter (.) de cada linha.

Abreviações

:ab => Mostra todas as abbr.

:abc[lear] => Remove todos.

:iab => Apenas para modo de inserção.

:iabc[lear] => Tira todos de inserção.

:cab => Apenas p/modo de comando ( : ).

:cabc[lear] => Tira todos os modos de comando.

:una vc => Tira ab para vc.

Observação: Pontuação, espaço ou o ENTER, disparam a expansão de uma abreviação. Porém, Ctrl+]

também pode ser usado, para expandir sem adicionar caracteres.

Opções para o comando SET

:set

autowrite aw => Salva a cada alteração.

backspace bs => Comportamento backspace (1 ou 2).

errorbell eb => Campainha de erro.

expandtab et => Troca tab por espacos.

fileformat=dos ff => Converte o arquivo para DOS.

hidden hid => Preserva o buffer.

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 => Não redesenha em macros.

lines=N => Múmero de linhas na tela.

magic => Usar mágicas na procura de padrões.

number nu => Mostra núm 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 maiúsculas.

textwidth=N => Quebra de linha do texto.

undolevels ul=N => Guarde os N últimos comandos para desfazer (padrão=1000).

vb t_vb= => Retira o "beep" de erro.

http://debian.linux/

13 de 190 22-07-2013 21:21

Page 14: Cur So Certifica o Linux Lp i

Agora invertendo maiúsculas/minúsculas

5~ => Inverte os 5 próximos caracteres.

g~$ => Inverte todos os caracteres até o fim da linha.

seleciona, u => Converte para minúsculas.

seleciona, U => Converte para maiúsculas.

seleciona, ~ => Inverte.

Observação: Onde está escrito "seleciona", é para fazer utilizando o modo visual (v).

Agora veja como definir 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 número 5 aqui são as colunas que serão "cortadas".

gqG => Até o final do arquivo.

Vamos ver agora o que podemos fazer pressionando a tecla "Ctrl":

É claro que é segurando Ctrl + .

No modo de COMANDO:

A => Incrementa um número (Add)

X => Decrementa um número

S => ScrollLock

L => Redesenha tela

V => Modo visual (Visual Vertical)

G => Status do arquivo

M => Início da próxima linha

E => Linha abaixo sem mover cursor

Y => Linha acima sem mover cursor

N => Próxima linha (Next)

P => Linha anterior (Previous)

F => PageDown (Forward)

B => PageUp (Backyard)

U => PageUp / 2 (Up)

D => PageDown / 2 (Down)

Agora, no modo de INSERÇÃO:

A => Insere o último texto inserido

I => TAB

S => ScrollLock

H => BackSpace

T => 2 tab's no início da linha (Two Tabs)

V => Anula expansão do próximo caractere

J => Enter - quebra de linha

M => Enter - quebra de linha

L => Redesenha tela

R => Insere conteúdo do registrador [a-z] (Veja abaixo)

K => Insere um dígrafo (Veja abaixo)

N => Procura palavra no texto atual (Next)

http://debian.linux/

14 de 190 22-07-2013 21:21

Page 15: Cur So Certifica o Linux Lp i

P => Procura palavra no texto atual (Previous)

Y => Copia caractere que está acima (Yank)

Veja os caracteres especiais:

ga => Mostra o código da letra sobre o cursor.

:dig => Mostra todos os dígrafos disponíveis (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 múltiplas

Você pode abrir múltiplos arquivos, por exemplo:

$ vim arquivo1 arquivo2

E pode alternar entre as janelas. Veja:

:wn => Grava o atual e vai ao próximo.

: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 próximo delete, cópia ou cola.

:reg => Mostra o conteúdo de todos os registradores.

:reg [a-z] => Mostra o conteúdo do registradores [a-z].

Observação: O [a-z] pode ser: 0-9a-z%#:.-="

Marcas:

m[a-z] => Marca em [a-z] a posição corrente do cursor.

`[a-z] => Vai até a marca [a-z].

`` => Vai até a posição anterior ao último pulo (alterna).

:marks => Mostra as marcas ativas.

Fazendo gravação de seqüência de comandos

q[a-z] => Inicia a gravação de uma seqüência no registrador [a-z].

q[A-Z] => Inicia a gravação, adicionando no registrador [a-z].

q => Pára a gravação.

@[a-z] => Executa a seqüência do registrador [a-z] (5 vezes? 5@a)

Dica: Pode-se colocar o @[a-z] dentro da própria gravação do q[a-z]! Assim ele é executado

recursivamente. Muito útil quando há uma procura de padrões na gravação. faz para todas as

ocorrências.

http://debian.linux/

15 de 190 22-07-2013 21:21

Page 16: Cur So Certifica o Linux Lp i

Mapeamentos

:map :r!date => Mapeamento em modo de comando.

:imap :r!date => Mapeamento em modo de inserção.

: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 espaços em branco no fim das linhas

:map / *$^M

Através dos mapeamentos é possível "encurtar" comandos, ou seja, abreviá-los. Conheça as sintaxes:

Comment => Ciano

Constant => Roxo

Identifier => 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 espaços. Podemos ativar dentro do próprio vim,

utilizando o comando:

:set expandtab

Para desabilitar:

:set noexpandtab

Podemos colocar também no arquivo ~/.vimrc a seguinte linha:

set expandtab

O arquivo ~/.vimrc pode ser usado para muitas configurações, e essa é uma delas. Existe ainda o

arquivo ~/.exrc, mas não entraremos em detalhes.

Podemos incluir a saída 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 máquina):

kernel-2.4.18-3

http://debian.linux/

16 de 190 22-07-2013 21:21

Page 17: Cur So Certifica o Linux Lp i

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 próprio 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 opções, comandos, strings... Enão 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 Certificação Linux LPI-1: Documentação e Notificação deUsuários

-->

O Linux já representa, hoje, um mercado anual de mais de 18 bilhões dedólares e, de acordo com especialistas, deve atingir um patamar superior a50 bilhões em menos de três anos. Além disso, cerca de 50% dosdepartamentos de TI das empresas já usam Linux e Open Source em suasáreas mais importantes.

O LPI certifica profissionais de Linux em 3 níveis: LPIC-1, LPIC-2 eLPIC-3, cada uma com duas provas. No momento do lançamento destelivro, o LPI conta cerca de 40.000 profissionais certificados no mundo

http://debian.linux/

17 de 190 22-07-2013 21:21

Page 18: Cur So Certifica o Linux Lp i

todo, e o Brasil participa com cerca de 5 a 6% deste total. Em nossopaís, a certificação profissional está crescendo e ganhando corpo àmedida que as empresas estão percebendo tal importância nosprocessos de recrutamento, seleção e promoção. Os empregados jásentem que a certificação profissional aumenta a empregabilidade e,consequentemente, o reconhecimento profissional.

Documentação

Se há algo de que os entusiastas e profissionais envolvidos com Linux nãopodem reclamar é a oferta de documentação oferecida pela maioria dosprogramas desenvolvidos para o sistema. São milhares de páginasexplicando minuciosamente cada aspecto da configuração do sistema,englobando desde um simples comando para lidar com arquivos de textoaté um complexo servidor de email.

Algumas definições sobre termos usados para documentação sãonecessárias:

-HOWTOs (Documentos complementares)-Man (Manuais)-Info (Documentação pela Free Software Foundation para o GNU)-FAQ (Frequently Asked Questions - Perguntas Mais Frequentes)-Mailing Lists (Listas de discussão)-LDP (Linux Documentation Project)

O diretório/usr/share/doc

possui grande parte da documentação de uma distribuição Linux ediversosaplicativos na forma de HOWTOs, FAQs, arquivos README, HELP, guias deinstalação e manuais de usuários.

Exemplos:

# info test# man passwd# man 5 passwd (exibe o manual do arquivo /etc/passwd)# ls --help

Os comandosapropos

(procura oir programas e comandos através da descrição) ewhatis

(procura pelo comando no manual e retorna sua breve descrição).

Podemos também procurar por ajuda na Internet, nos links:

http://debian.linux/

18 de 190 22-07-2013 21:21

Page 19: Cur So Certifica o Linux Lp i

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

Notificação de Usuários

Serve para notificar os usuários sobre alguma situação especial dosistema, para esta tarefa são utilizados três arquivos:° motd/etc/motd

(utilizado para exibir mensagens para usuários após o login, seu conteúdoé texto e pode ser alterado com o vim).° issue/etc/issue

(utilizado para exibir mensagens para usuários antes de efetuarem o login,também pode ser alterado com o vim)° issue.net/etc/issue.net

(mesmo que o issue, porém para acessos remotos).

Curso Certificação Linux LPI-1: Shell Script NoçõesFundamentais.

-->

http://debian.linux/

19 de 190 22-07-2013 21:21

Page 20: Cur So Certifica o Linux Lp i

Vamos inciar um curso de Shell Script aqui e pra começar do início devemosaprender alguns comandos Linux, não todos, porque são tantos queparecem infinitos(risos), mas vou citar os principais e os que eu mais uso.

Shell script é uma linguagem de script usada em vários sistemasoperativos (operacionais), com diferentes dialetos, dependendo dointerpretador de comandos utilizado. Um exemplo de interpretador decomandos é o bash, usado na grande maioria das distribuiçõesGNU/Linux.Linux possui o Case Sensitive, ou seja, diferencia Maiúsculasde minúsculas.

Essa linguagem foi a primeira Linguagem de Programação que eu aprendi,ela é bme simples e útil para agilizar sua tarefas, então, vamos aoscomandos, pra iniciar é necessário que pelo próprio Bash podemosaprender os comandos, utilizando: man COMANDO ou COMANDO --help.

# ls - mostra arquivos e diretórios de um determinado Diretório (ls -a, também mostraarquivos ocultos), (ls -l, mostra as permissões)...# mkdir - cria um diretório, ex.: mkdir teste esse comando cria o diretório, 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 diretórios e seus sub-diretórios (-R = recursivamente)...# mv - move ou renomeia um arquivo# rm - deleta arquivos, ex.: rm /home/meusuario/arquivo.x (rm -rf, deletarecursivamente de maneira forçada, serve para diretórios)# rmdir - remove diretórios (uso pouco esse, prefiro usar: rm -rf)# clear - limpa a tela (uso pouco também)# exit - sai do usuario logado, se não for root, sai do terminal.# df - mostra o espaço usado na partição (df -H, mostra o espaço em GB, uso maisesse)# vim - abre o vim (breve falaremos mais sobre esse editor, talvez a próxima partedeste curso)# find - procura arquivos ou diretório, ex.: (find /home -name arquivo.x 2 >/dev/null) a opção 2 /dev/null, vc joga para o vazio as mensagens de falta depermissão # para entrar naquele determinado diretório, ou seja, em /dev ficam osdispositivos do sistema o stdin é a entrada o stout é a saída (name - busca por nome,type - # # busca por tipo, size - busca pelo tamanho do arquivo, mtime - busca pordata de modificação)...# last - mostra os logs no sistema (last -a, uso muito, utilize o man ou --help paramais informações)...# last – Mostra todas informações referente as entradas (login) e saídas (logout) deusuários do sistema.# last -a para exibir estas informações mostrando o nome da maquina de onde foiefetuado os logins.# last -d - para exibir estas informações mostrando o endereço IP da maquina de ondefoi efetuado os logins.# last reboot - para exibir um registro de todas as reinicializações efetuadas nosistema.# lastlog – Exibe informações referente ao último login de cada usuário cadastrado no

http://debian.linux/

20 de 190 22-07-2013 21:21

Page 21: Cur So Certifica o Linux Lp i

sistema. Caso nenhum argumento seja passado, o comando lastlog exibe todas as #informações armazenadas no arquivo “/var/log/lastlog” de todos os usuários dosistema.# lastlog -u fulano para exibir informações referentes apenas ao último login dousuário fulano.# lastlog -t 5 - para exibir a lista dos usuários que logaram no sistema nos últimos5 dias informando o dia e a hora do último acesso de cada um desses usuários.# pwd - mostra o diretório em que estamos.

# chmod - altera as permissões do arquivo , ex: chmod u+r, g+r, o+r arquivo, ex.:chmod 775 [arquivo ou diretório]permissão de arquivos -> r (read) ; w (write) ; x (executa).u -> donog -> grupoa -> todossinais -> + (acrescenta permissões) ; - (retira permissões) ; = (iguala permissões).ele lista as permissões do arquivo : 0(nenhuma permissão=-);1(execução=x);2(gravação=w);3(execução e gravação=xw);4(leitura=r);5(leitura e execução=rx);6(gravação e leitura=wr);7(execução gravação 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 naprimeira linha, se não existir o arquivo ele tb cria o arquivo.# cat - mostra o conteúdo do arquivo (utilize tb os comandos: more e less), se vocêusar: cat teste.txt >> teste2.txt (isso adicionará o conteúdo do teste.txt dentro doteste2.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 , (dividio arquivo teste2.txt em diversos arquivos de 1 byte, se tiver 10bytes serão 10arquivo: novoa, novob, novoc...)# fdisk -l - lista as partições do HD# mount - monta um dispositivo ou partição, ex.: mount /dev/sda3 /mnt/pasta (monta apartição sda3 dentro da pasta /mnt/pasta)# umount - desmonta um dispositivo ou partição, ex.: umount /mnt/pasta# head - visualiza as 10 primeiras linhas de um arquivo o (-n é usado para informarqnts linhas vc deseja ler, ex.: -n 20).# tail arquivo.txt - inverso do head,lê um arquivo começando da ultima as 10 ultimaslinhas(muito usado pra verificar logs).# ps - lista os processo, ex.: ps -U marcos (lista os processos para o usuáriomarcos).# kill - mata um processo

+ comandos

# killall - mata todos os processos de tal aplicativo, ex.: killall firefox (mata ofirefox, firefox-bin...)# pidof - numero de processo de um PID ,exemplo: pidof httpd , retornará os PID doApache# who - mostra quem está logado na máquina(whoami , mostra quem eu sou).# free - mostra a utilização da memória, a opção -m mostra a quantidade em Mb.

# su - troca ed usuário no terminal sem fazer logoff , ex: $ su root -> deve-secolocar a senha(password) do usuario root.

# pwd - mostra em que diretório estamos

http://debian.linux/

21 de 190 22-07-2013 21:21

Page 22: Cur So Certifica o Linux Lp i

# time - mostra quanto tempo gasto para execução 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=mês em dois dígitos;DD=dia em dois dígitos;hh=hora em dois digitos;mm=minutos emdois digitos;AAAA=ano em 4 dígitos.

# cal - para exibir o calendário (para exibir do ano inteiro deve-se colocar o anosna 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 desenha(criptografada geralmente em /etc/shadow):userid:groupid:nomeverdadeiro:diretorio e se é usuario do shell) caso retire a entrada, o usuario naopoderá logar, útil para criação de email.userid deve-se usar acima de 500 para naoconfudir 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 dedesligar.

# ln - cria links, ex.: ln -s /home/usuario/Documentos/ link (cria o link para apasta Documentos, ln -s [diretório 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 -cfarquivo_a_ser_criado.tar [arquivo ou diretório][/nome_do_usuario_a_ser_criado]

E por fim...

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

Bom existem inúmeros outros comandos, se quiser saber mais, consulteesse Livro On Line do Google Livros CLASSIC SHELL SCRIPT, foi o mais completoque eu vi até hoje, até a próxima parte do Curso, onde aprederemos osmódulos básicos do Shell.

Para iniciarmos um script em Shell devemos ter a "Linha Mágica", assimchamada, é o identificadordo Interpretador, o Bash.#!/bin/bash

http://debian.linux/

22 de 190 22-07-2013 21:21

Page 23: Cur So Certifica o Linux Lp i

Ao salvar o arquivo em shell(arquivo ou arquivo.sh) devemos dar apermissãod e execução:# chmod +x arquivo.sh

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

Criando variáveis:nome_da_variavel="valor da variável"

Variáveis de Ambiente:As variáveis de ambiente são aquelas conhecidas pelos demais processos(programas em execução). Exemplos destas variáveis são: TERM,HOME,PATH, EDITOR, etc.Para verificar todas as variáveis de ambiente basta digitarmos no terminalo comando:export -p

Qualquer variável pode se tornar uma variável de ambiente. Para isto, eladeve ser "exportada", com o comando export:# export [variável]# export [svariável]=[valor]

Para visualizar todas as variáveis basta digitar no terminal:# setou# env

Uma importante variável de ambiente é PATH que ajuda o shell aencontrar os comandos que o usuário executa. Todo comando executado é,na realidade, um arquivo. Estes arquivos são chamados executáveis e estãoarmazenados em vários diretórios como /bin ou /usr/bin. O valor davariável PATH é uma lista de diretórios em que o shell procura toda vezque executamos um comando cujo arquivo não é encontrado no diretóriocorrente. Assim, não precisamos alterar o diretório de trabalho todas vezque necessitamos executar um comando que se encontra em outrodiretório. Basta acrescentar o diretório que contém tal comando à variávelPATH. Os nomes dos diretórios na variável são separados pelo caractere

http://debian.linux/

23 de 190 22-07-2013 21:21

Page 24: Cur So Certifica o Linux Lp i

dois-pontos (:).

Caso o usuário marcos queira adicionar um outro diretório, digamos/home/marcos/bin à variável PATH, deve proceder como mostrado a seguir:$ export PATH=$PATH:/home/marcos/bin # adiciona o diretório$ echo $PATH # verifica/bin:/usr/bin:/usr/local/bin:/home/marcos/bin

Existem também as variáveis especiais que são nativas do sistema:

Variável Descrição

$0 Parâmetro número 0 (nome do comando ou função)

$1 Parâmetro número 1 (da linha de comando ou função)

… Parâmetro número N …

$9 Parâmetro número 9 (da linha de comando ou função)

${10} Parâmetro número 10 (da linha de comando ou função)

$# Número total de parâmetros da linha de comando ou função

$* Todos os parâmetros, como uma string única

$@ Todos os parâmetros, como várias strings protegidas

$$ Número PID do processo atual (do próprio script)

$! Número PID do último processo em segundo plano

$_ Último argumento do último comando executado

$? Valor de retorno do último comando executado

O if, ao contrário do que ocorre em muitas outras linguagens, testa oretorno de um comando, não uma expressão.

Por exemplo:

if test 5 -lt 7thenecho '5 é menor que 7'fi

Porém, é possível posicionar a expressão entre colchetes, de forma atornar o if mais parecido com o que acontece em outras linguagens:

if [ 5 -lt 7 ]thenecho '5 é menor que 7'fi

http://debian.linux/

24 de 190 22-07-2013 21:21

Page 25: Cur So Certifica o Linux Lp i

O “-lt” significa “less than“, ou seja, “menor que“, equivalendo ao operador"<".

Outros possíveis operadores são:

Comparação Numérica-lt: É menor que (LessThan)-gt: É maior que (GreaterThan)-le: É menor igual (LessEqual)-ge: É maior igual (GreaterEqual)-eq: É igual (EQual)-ne: É diferente (NotEqual)

Comparação de Strings=: É igual!=: É diferente-n: É não nula (não vazia)-z: É nula (vazia)

Operadores Lógicos!: NÃO lógico (NOT)-a: E lógico (AND)-o: OU lógico (OR)

Testes em arquivos-b: É um dispositivo de bloco-c: É um dispositivo de caractere-d: É um diretório-e: O arquivo existe-f: É um arquivo normal-g: O bit SGID está ativado-G: O grupo do arquivo é o do usuário atual-k: O sticky-bit está ativado-L: O arquivo é um link simbólico-O: O dono do arquivo é o usuário atual-p: O arquivo é um named pipe-r: O arquivo tem permissão 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 permissão de escrita-x: O arquivo tem permissão de execução-nt: O arquivo é mais recente (NewerThan)

http://debian.linux/

25 de 190 22-07-2013 21:21

Page 26: Cur So Certifica o Linux Lp i

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

Utilizando o CASE:echo "Digite um número"read x

case "$x" in1)echo "Você digitou o número 1";;2)echo "Você digitou o número 2";;*)echo "Você digitou outro número"esac

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

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

O BREAK:i=0while truedoif [ $i -ge 10 ]thenbreakfii=$((i+1))done

O comando continue para a execução da iteração corrente e vai para apróxima iteração, mesmo que haja mais comandos no bloco de repetição.

Entrada/Saída:

http://debian.linux/

26 de 190 22-07-2013 21:21

Page 27: Cur So Certifica o Linux Lp i

Existem três dispositivos principais, que sempre estão abertos, quemerecem destaque:

stdin (standard input): entrada padrão. Corresponde, em geral, ao teclado;stdout (standard output): saída padrão. Corresponde, em geral, à tela doterminal;stderr (standard error): saída padrão de erros. Corresponde, em geral, àtela do terminal, também.

Esses três dispositivos estão em /dev e estão sempre disponíveis. Quemprograma em C, sabe muito bem disso, pois já deve ter usado stdin, stdoute stderr junto com fprintf, fread, fwrite e semelhantes; esses trêsdispositivos comportam-se como arquivos comuns, sempre abertos e quenão devem ser fechados.Experimentem dar um cat em /dev/stdin para ver o que o que você digitarserá repetido, entrada + saida.

Utilizando Pipelines:Pipeline ou Pipe é um recurso do shell que nos permite conectar várioscomandos usando um pipe, onde a saída do primeiro comando é enviadadiretamente à entrada do segundo e assim por diante no caso de havermais de dois comandos conectados por pipes.

No nosso caso, queremos enviar a saída do comando ls para a entrada docomando sort. O símbolo "|" (barra vertical) é usado para criar um pipe,ex.:# ls | sort -r

É importante observar que o redirecionamento e o uso de pipes sãocaracterísticas do shell e não dos comandos em si. É o shell quem provê asintaxe dos símbolos "<", ">" e "|". Logo, se você criar um programa queutilize entrada de dados via stdin, poderá usar redirecionamento paraespecificar uma entrada para o seu programa.

Expansões:

Expansões são caracteres, ou uma sequência deles, que expressa outrosignificado. O intuito disso é facilitar e padronizar comandos.

~: path à home do usuário corrente

http://debian.linux/

27 de 190 22-07-2013 21:21

Page 28: Cur So Certifica o Linux Lp i

~user: path à home do usuário “user”

Definindo Funções

Sintaxe:function nome_da_funcao(){[comandos]}

Para chamar a função:nome_da_funcao

# caso haja parâmetrosnome_da_funcao param1 param2 ...

Para retornar valor (status) numa função, usa-se o comando return.

Exemplo:

#!/bin/bash

function retorna(){echo "sou um valor"return 42}

valor=$(retorna)echo $?echo $valor

Expressões Regulares em Bash

Expressões regulares em shell podem ser usadas em comparações (if’s),por exemplo. Em if’s, usa-se o operador “=~” para realizar comparaçõesusando ER’s:

s="bash"if [[ "$s" =~ ^b ]]thenecho 'começa com b'fi

http://debian.linux/

28 de 190 22-07-2013 21:21

Page 29: Cur So Certifica o Linux Lp i

Expressões Matemáticas

O bash não trabalha com expressões matemáticas tão facilmente. Existe ocomando “let”, que permite realizar expressões matemáticas, mas é maiscomum se usar a sintaxe semelhante ao C, utilizando dois parênteses:

$ a=$((1 + 1))$ ((i++))$ x=$((x*2))...

O Arquivo .bashrc

Na home dos usuários (~), é comum haver o arquivo .bashrc (o ponto noinício indica que o arquivo é oculto). Esse arquivo é sempre executadoquando se abre um shell. Nele, constam diversas configurações, comodefinição de variáveis de ambientes, definição de aliases etc. Você podeeditar esse arquivo (ou criá-lo, caso não exista):

# vim ~/.bashrc

É possível usar outros editores, não apenas o vim.

Aliases (Apelidos)

Algumas vezes usamos comandos que necessitam de várias opções eargumentos. Para amenizar o trabalho de digitarmos repetidamente estescomandos o bash oferece um recurso chamado alias com o qual podemosdefinir sinônimos ou “apelidos” para um comando. Um alias pode serdefinido na linha de comando da seguinte forma:

alias nome=comando

Observe que não pode haver espaços em branco antes ou depois do “=”.

Esta sintaxe indica que nome é um “alias” (apelido) para comando. Todavez que digitarmos o comando “nome”, o bash o substituirá por“comando”.

Exemplo:

# alias lf='ls -F'

http://debian.linux/

29 de 190 22-07-2013 21:21

Page 30: Cur So Certifica o Linux Lp i

Isso fará o shell executar “ls -F” toda vez que usarmos “lf” na linha decomando. Ou seja, o que o alias faz na verdade é substituir a palavra “lf”por “ls -F”. Observe neste exemplo, existe um espaço em branco entre ls e-F. Sempre que houver espaços em branco na definição de um campo, todoo campo deve ser digitado entre aspas simples (‘) ou duplas (“).É possíveldefinir aliases em seu .bashrc, para que eles estejam sempre disponíveisna sua sessão.

Fonte: O Gordo e rberaldo

Atalhos da linha de comando

Atalho Descrição Tecla Similar

Ctrl+A Move o cursor para o início da linha Home

Ctrl+B Move o cursor uma posição à esquerda ←

Ctrl+C Envia sinal EOF() para o sistema

Ctrl+D Apaga um caractere à direita Delete

Ctrl+E Move o cursor para o fim da linha End

Ctrl+F Move o cursor uma posição à direita →

Ctrl+H Apaga um caractere à esquerda Backspace

Ctrl+I Completa arquivos e comandos Tab

Ctrl+J Quebra a linha Enter

Ctrl+K Recorta do cursor até o fim da linha

Ctrl+L Limpa a tela (igual ao comando clear)

Ctrl+N Próximo comando

Ctrl+P Comando anterior

Ctrl+Q Destrava a shell (veja Ctrl+S)

Ctrl+R Procura no histórico 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 início/fim da linha (2x) Home/End

Ctrl+Y Cola o trecho recortado

Fonte: Aurelio.net Canivete Suíço do Shell

Pra quem já conhece o blog, percebeu que foi reunido 3 posts nesse aqui,mas essa é a idéia, reforçar o aprendizado, segue os links:

http://debian.linux/

30 de 190 22-07-2013 21:21

Page 31: Cur So Certifica o Linux Lp i

Curso de Shell Script parte 1

Curso de Shell Script parte 2

Atalhos da linha de comando

Curso Certificação Linux LPI-1: Arquitetura de Hardware.

Entrada/saída (em inglês: Input/output, sigla I/O) é um termo utilizadoquase que exclusivamente no ramo da computação (ou informática),indicando entrada (inserção) de dados por meio de algum código ouprograma, para algum outro programa ou hardware, bem como a suasaída (obtenção de dados) ou retorno de dados, como resultado dealguma operação de algum programa, consequentemente resultado dealguma entrada.

São exemplos de unidades de entrada de um computador: disco rígido,microfone, teclado, mouse, tela sensível ao toque, Scanner, Leitor decódigo de barras, Celular, Pendrive, Máquina fotográfica digital, Webcam,joystick e outros acessórios de jogos.

São exemplos de unidades de saída de um computador: monitor, caixas desom, impressora, disco rígido. Um placa de sompadrão, por exemplo,utiliza as portas: 0x220, 0x330 e 0x338. Cada dispositivo utiliza umendereço de porta única que não pode ser compartilhado por outrosdispositivos. Os endereços de E/S podem ser visualizados com o comando:# cat /proc/ioports

http://debian.linux/

31 de 190 22-07-2013 21:21

Page 32: Cur So Certifica o Linux Lp i

O termo DMA é um acrónimo para a expressão em inglês Direct memoryaccess. O DMA permite que certos dispositivos de hardware numcomputador acessem a memória do sistema para leitura e escritaindependentemente da CPU.

Muitos sistemas utilizam DMA, incluindo controladores de disco, placasgráficas, de rede ou de som. Os canais de DMA no sistema podem servisualizados através do comando:# cat /proc/dma

Um pedido de interrupção (abreviação IRQ (em inglês)) é a forma pelaqual componentes de hardware requisitam tempo computacional da CPU.Um IRQ é a sinalização de um pedido de interrupção de hardware.Asinterrupções do sistema podem ser visualizadas com o comando:# cat /proc/interrupts

Recursos já reservados:

SCSI (pronuncia-se "scãzi"), sigla de Small Computer System Interface, éuma tecnologia que permite ao usuário conectar uma larga gama deperiféricos, tais como discos rígidos, unidades CD-ROM, impressoras escanners.

Características físicas e elétricas de uma interface de entrada e saída (E/S)projetadas para se conectarem e se comunicarem com dispositivosperiféricos são definidas pelo SCSI.Existe uma grande variedade depadrões de dispositivos SCSI, sendo que estes inicialmente usavaminterfaces paralelas. Alguns exemplos: SCSI-1 (barramento de 8 bits, clockde 5 MHz e taxa de transferência de 5 MB/s), Fast SCSI (barramento de 8

http://debian.linux/

32 de 190 22-07-2013 21:21

Page 33: Cur So Certifica o Linux Lp i

bits, clock de 10 MHz e taxa de transferência de 10 MB/s), Ultra SCSI(barramento de 8 bits, clock de 20 MHz e taxa de transferência de 20MB/s), Ultra2 Wide SCSI (barramento de 16 bits, clock de 40 MHz e taxade transferência de 80 MB/s) e Ultra-320 SCSI (barramento de 16 bits,clock de 80 MHz DDR e taxa de transferência de 320 MB/s).

SCSI é mais comumente usado em discos rígidos e unidades de fita, mastambém pode ser conectado em uma grande gama de dispositivos,incluindo scanners e drivers de CD.

Configurando Dispositivos de Rede: Com o comando abaixo nós podemosidentificar o fabricando e o modelo de uma placa PCI.# lspci

a saída será mais ou menos, de vermelho está a placa de rede:

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

http://debian.linux/

33 de 190 22-07-2013 21:21

Page 34: Cur So Certifica o Linux Lp i

Carregando módulos Depois de identificarmos a placa, o endereçamentode entrada e saída e o IRQ, será preciso carregar o módulo do Kernelcorrespodente ou compilar o suporte ao dispositivo.Para carregar osuporte ao dispositivo através de um módulo do Kernel, devemos utilizar ocomando:# modprobe 8139too

O Linux suporta que os módulos sejam carregados automaticamentedurante a carga do sistema(boot).As configurações dos parâmetros devemser feitas no arquivo:# cat /etc/modules.conf

Configurando a Placa de Som O Linux suporta dois padrões de Sistemas deSom: -OSS (Open Sound Sistem) e -ALSA(Advanced Linux SoundArchitecture) Para utilizar o dispositivo de som, carregue o módulo daplaca com o comando:# modprobe NOME_DO_MODULO

Algumas placas requerem que seja especificado o recurso de hardwareutilizado com parâmetro:# modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x388

Depois de instanciado no Kernel o módulo do dispositivo, os recursos:# /dev/audio

# /dev/dsp

# /dev/mixer

, estarão disponíveis. Configurando Dispositivos USB Universal Serial Bus(USB) é um tipo de conexão "ligar e usar" que permite a conexão deperiféricos sem a necessidade de desligar o computador. O primeiro passoé deteminar qual xHCI(Host Controller Interface) sua placa mãe possui, ecarregar o módulo correspodente ao chip. O comando para determinarqual o chip utilizado em sua placa-mãe é:# lspci -vt

O Linux tem suporte a diversos dispositivos USB através dos módulos doKernel.Você poderá consultar os chipsets suportados no diretório:# /lib/modules/versao_do_kernel/kernel/drivers/usb

Até o momento é só, até o próximo tópico.

Curso Certificação Linux LPI-1: Filtros de Texto

http://debian.linux/

34 de 190 22-07-2013 21:21

Page 35: Cur So Certifica o Linux Lp i

Filtragem de textos

A filtragem de textos é o processo de executar algumas conversões no texto deum fluxo de entrada de texto antes de enviá-lo para um fluxo de saída. Emboratanto a entrada como a saída possam vir de um arquivo, nos ambientes UNIX®e Linux, a filtragem é, na maioria das vezes, feita através da criação de umapipeline de comandos, na qual a saída de um comando é canalizada ouredirecionada para ser usada como a entrada para o próximo. Canais eredirecionadores são abordados mais detalhadamente no artigo sobre fluxos,canais e redirecionadores. Porém, por enquanto, vamos dar uma olhada noscanais e redirecionamentos de saída básicos usando os operadores | e >.

FluxosUm fluxo é nada mais que uma sequência de bytes que pode ser lida ou escritaatravés do uso de funções da biblioteca, as quais escondem os detalhes de umdispositivo subjacente do aplicativo. O mesmo programa pode ler ou escrever emum terminal, arquivo ou soquete de rede em uma direção independente dedispositivo através do uso de fluxos. Ambientes modernos de programação e shellsusam três fluxos padrão de E/S:

stdin é o fluxo de entrada padrão, que fornece a entrada para os comandos.stdout é o fluxo de saída padrão, que exibe a saída dos comandos.stderr é o fluxo de erro padrão, que exibe a saída de erros dos comandos.

Canalizando com |A entrada pode vir de parâmetros que você fornece aos comandos e a saída podeser exibida em seu terminal. Muitos comandos de processamento de texto (filtros)podem receber entradas tanto de um fluxo de entrada padrão quanto de umarquivo. Para usar a saída de um comando, command1, como entrada para umfiltro, command2, você deve conectar os comandos usando o operador de canal (I).A 1 mostra como canalizar a saída deecho

http://debian.linux/

35 de 190 22-07-2013 21:21

Page 36: Cur So Certifica o Linux Lp i

para classificar uma pequena lista de palavras.

1. Canalizando saídas de echo para entradas de classificação$ echo -e "apple\npear\nbanana"|sortapple banana pear

Qualquer comando pode ter opções e argumentos. Também é possível usar | pararedirecionar a saída do segundo comando na pipeline para um terceiro comando, eassim por diante. Construir longas pipelines de comandos, em que cada uma tenhauma capacidade limitada, é um modo comum de executar tarefas no Linux e noUNIX. Às vezes, você verá um hífen (-) no lugar do nome do arquivo como umargumento para um comando, indicando que a entrada deve vir do stdin e não deum arquivo.Redirecionamento de saída com >Embora você possa criar uma pipeline com muitos comandos e visualizar a saídano seu terminal, às vezes, você desejará salvar a saída em um arquivo. Isso é feitocom o operador de redirecionamento de saída (>).Durante o resto desta seção, usaremos pequenos arquivos, assim, vamos entãocriar um diretório chamado lpi103-2 e fazer cd nesse diretório. Usaremos então o> para redirecionar a saída do comandoecho

para um arquivo chamado text1. Tudo isso é exibido na 2. Observe que a saída nãoé exibida no terminal, pois foi redirecionada para um arquivo.

2. Redirecionando a saída 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 básicas para canalizar e redirecionar,vamos dar uma olhada em alguns comandos e filtros de processamento de textocomuns do Linux e do UNIX. Esta seção apresenta alguns dos recursos básicos;consulte a man page apropriada para mais informações sobre estes comandos.Cat, od e splitAgora que você já criou o arquivo text1, você pode querer verificar o que há nele.Use o comandocat

(abreviação de concatenate) para exibir o conteúdo de um arquivo no stdout. A 3verifica o conteúdo do arquivo criado acima.

3. Exibindo conteúdos de arquivos com o comando cat$ cat text11 apple 2 pear 3 banana

O comandocat

recebe a entrada a partir do stdin, caso você não especifique um nome de arquivo(ou se você especifica - como o nome do arquivo). Vamos usar isso junto com oredirecionamento de saída para criar outro arquivo de texto, como exibido na 4.

http://debian.linux/

36 de 190 22-07-2013 21:21

Page 37: Cur So Certifica o Linux Lp i

4. Criando um arquivo de texto com o comando cat$ cat >text29 plum 3 banana 10 apple

Muitos filtros pequenosOutro exemplo de um filtro pequeno é o comandotac

. O nome é o contrário decat

, assim como a função, que também é oposta a do comandocat

, exibindo o arquivo na ordem inversa. Tente você mesmo executartac text2 text1

.Na 4,cat

continua lendo a partir do stdin até o fim do arquivo. Usa a combinação Ctrl-d(segure Ctrl e pressione d) parar indicar o fim do arquivo. Esta é a mesmacombinação de teclas para sair do bash shell. Use a tecla tab para alinhar osnomes das frutas em uma coluna.Você lembra que cat é uma abreviação de concatenate? É possível usar o comandocat

para concatenar vários arquivos para exibição. A 5 exibe os dois arquivos queacabamos 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 comandocat

, você irá notar diferenças de alinhamento. Para descobrir o motivo dessadiferença, é necessário verificar os caracteres de controle do arquivo. Estes sãocolocados em prática na saída de exibição de texto, em vez de terem algumarepresentação do próprio caractere de controle exibida, assim, é necessário fazerdump no arquivo em um formato que permita localizar e interpretar essescaracteres especiais. As utilidades de texto GNU incluem um comando voltadopara esse propósito, o comandood

(ou Octal Dump).Há muitas opções para o comandood

, como, por exemplo, a opção-A

, que controla a base dos deslocamentos de arquivo, e a opção-t

http://debian.linux/

37 de 190 22-07-2013 21:21

Page 38: Cur So Certifica o Linux Lp i

, que controla a forma dos conteúdos do arquivo exibidos. A base pode serespecificada como o, (octal, que é o padrão), d (decimal), x (hexadecimal) ou n(sem deslocamentos exibidos). É possível exibir a saída como octal, hex, decimal,ponto flutuante, ASCII com escapes de barra invertida ou caracteres nomeados (nlfor nova linha, ht para tabulação horizontal, etc.). A 6 exibe alguns dos formatosdisponíveis 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 0000020030061 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 htp l u m nl 3 ht b a n a n a nl 1 0 ht a p p l e nl

Observações:A opção-A

do comandocat

fornece uma maneira alternativa para ver onde estão os seus finais de linhas e assuas tabulações. Consulte a man page para obter mais informações.

1.

Caso você use espaços ao invés de tabulações em seu arquivo text2, consulteExpand, unexpand, e tr, mais adiante neste artigo, para ver como alternar entretabulações e espaços em um arquivo.

2.

Caso tiver um plano de fundo como mainframe, você pode ter interesse nautilidade hexdump, que faz parte de um conjunto de utilidades diferente. Comoisso não é abordado aqui, consulte as man pages.

3.

Os nossos arquivos de exemplo são muito pequenos, porém, às vezes, vocêtrabalhará com arquivos grandes, os quais deverão ser divididos em partesmenores. Por exemplo, você pode querer dividir um arquivo grande em partes dotamanho de CDs, de modo que seja possível gravar os arquivos em CDs paraenviar os mesmos pelo correio para alguém que possa criar um DVD para você. Ocomandosplit

fará isso de modo que o comandocat

possa ser usado para recriar o arquivo facilmente. Como padrão, os arquivosresultantes do comandosplit

têm um prefixo 'x' em seus nomes, seguido de um sufixo 'aa', 'ab', 'ac', ..., 'ba', 'bb',etc. Há opções que permitem alterar esse padrão. Também é possível controlar otamanho dos arquivos de saída e se o arquivo resultante contém linhas inteiras ousomente contagens de bytes.A 7 ilustra a divisão dos nossos dois arquivos de texto com prefixos diferentes paraos arquivos de saída. Nós dividimos o arquivo text1 em arquivos contendo nomáximo duas linhas, e o text2 em arquivos contendo no máximo 18 bytes. Usamosentão o comandocat

http://debian.linux/

38 de 190 22-07-2013 21:21

Page 39: Cur So Certifica o Linux Lp i

para exibir individualmente algumas das partes, assim como para exibir umarquivo completo usando globbing, abordado no artigo gerenciamento básico dearquivos

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 não acabou com um caracterede linha nova, assim, o nosso prompt foi deslocado após usarmos o comandocat

para exibi-lo.Wc, head e tailO comandoCat

exibe todo o arquivo. Isso funciona bem com arquivos pequenos, porém, vamossupor que estamos trabalhando com um arquivo grande. Primeiramente, vocêpode usar o comandowc

(Word Count) para ver o quão grande é o arquivo. O comandowc

exibe o número de linhas, palavras e bytes em um arquivo. Também é possíveldescobrir o número de bytes usandols -l

. A 8 exibe a de diretório de formato longo para os nossos dois arquivos de texto,assim como a saída do comandowc

.

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--. 1marcos marcos 25 2009-08-11 14:27 text2 $ wc text* 3 6 24 text1 3 6 25 text2 6 12 49total

Há opções que permitem controlar a saída dewc

ou exibir outras informações, como, por exemplo, o comprimento máximo daslinhas. Consulte a man page para obter mais detalhes.Dois comandos permitem exibir a primeira (head) ou última (tail) parte de umarquivo. Esses comandos sãohead

etail

. Eles podem ser usados como filtros, ou podem tomar um nome de arquivo comoum argumento. Como padrão, eles exibem as primeiras (ou últimas) 10 linhas do

http://debian.linux/

39 de 190 22-07-2013 21:21

Page 40: Cur So Certifica o Linux Lp i

arquivo ou fluxo. A 9 usa o comandodmesg

para exibir mensagens de inicialização, em conjunto com os comandoswc

,tail

ehead

, para descobrir que há 791 mensagens, exibir as últimas 10 linhas destas mesmase, finalmente, exibir as seis mensagens começando 15 a partir do final. Algumaslinhas foram truncadas nesta saída (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-usb0003:04B3:310B.0009: input,hidraw1: USB HID v1.00 Mouse [HID 04b3:310b] on usb-0000:00:1a.0-2.4/input0 usb 3-2.4: USB disconnect, address 11 usb 3-2.4: new lowspeed 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:310bas /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.4/3-2.4:1.0/input/i nput13generic-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 USBdevice 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=0usb 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 detail

é seguir um arquivo usando a opção-f

, normalmente com uma contagem de linha de 1. Você pode usar essa opçãoquando um processo de segundo plano está gerando saída em um arquivo e vocêdeseja verificar como está o andamento. Neste modo, o comandotail

será executado até que você o cancele (usando Ctrl-c), exibindo as linhasconforme elas são escritas no arquivo.Expand, unexpand e trQuando criamos os nossos arquivos text1 e text2, criamos o text2 com tabulações.Às vezes, você desejará trocar as tabulações por espaços, e vice-versa. Isso é feitocom os comandosexpand

eunexpand

. Em ambos os comandos, a opção-t

http://debian.linux/

40 de 190 22-07-2013 21:21

Page 41: Cur So Certifica o Linux Lp i

permite que você defina as tabulações. Um valor único define tabulações repetidasneste intervalo. A 10 exibe como expandir as tabulações no arquivo text2 paraespaços simples, assim como outra cuidadosa sequência deexpand

eunexpand

, 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, não é possível usarunexpand

para substituir os espaços em text1 por tabulações, poisunexpand

necessita de pelo menos dois espaços para converter em tabulações. No entanto, épossível usar o comandotr

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

para converter espaços em tabulações. Uma vez quetr

é meramente um filtro, gera-se entrada a partir do mesmo usando o comandocat

. Este exemplo também ilustra o uso de - para representar a entrada padrão para ocomandocat

, assim, podemos concatenar a saída detr

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ê não tenha certeza do que está acontecendo nos dois últimos exemplos,tente usar o comandood

para terminar cada estágio da pipeline de uma vez, por exemplo,cat text1 |tr ' ' '\t' | od -tc

http://debian.linux/

41 de 190 22-07-2013 21:21

Page 42: Cur So Certifica o Linux Lp i

Pr, nl e fmtO comandopr

é usado para formatar arquivos para impressão. O cabeçalho padrão inclui o nomedo arquivo, data e hora de criação do arquivo, junto com um número de página eduas linhas de rodapé em branco. Quando a saída é criada a partir de múltiplosarquivos ou do fluxo de entrada padrão, a data e a hora atuais são usadas no lugardo nome do arquivo e sua data de criação. É possível imprimir arquivos lado a ladoem colunas e controlar muitos aspectos da formatação através das opções. Comode costume, consulte a man page para obter mais detalhes.O comandonl

numera as linhas, o que pode ser conveniente ao imprimir os arquivos. Também épossível numerar as linhas com a opção-n

do comandocat

. A 12 mostra como imprimir um arquivo de texto e, em seguida, como numerar oarquivo text2 e imprimi-lo lado a lado com o text1.

12. Numerando e formatando para impressão.$ 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 10apple 3 banana

Outro comando útil para formatar o texto éfmt

, que formata o texto de modo que o mesmo fique dentro das margens. É possíveltanto juntar várias linhas curtas como dividir longas. Na 13, nós criamos o arquivotext3 com uma única e longa linha de texto, usando variantes do recurso histórico!#:*

para não termos que digitar nossa sentença quatro vezes. Também criamos umarquivo text4 com uma palavra por linha. A seguir, usamos o comandocat

para exibi-los de modo não formatado, incluindo um caractere '$' para sinalizar osfinais de linha. Finalmente, usamos o comandofmt

para formatá-los com uma largura máxima de 60 caracteres. Mais uma vez,consulta a man page para mais detalhes sobre opções adicionais.

13. Formatando com um comprimento máximo de linha$ echo "This is a sentence. " !#:* !#:1->text3echo "This is a sentence. " "This is asentence. " "This is a sentence. ">text3 $ echo -e "This\nis\nanother\nsentence.">text4$ cat -et text3 text4This is a sentence. This is a sentence. Thisis a sentence. $ This$ is$ another$ sentence.$ $ fmt -w 60 text3 text4This is asentence. This is a sentence. This is a sentence. This is another sentence.

http://debian.linux/

42 de 190 22-07-2013 21:21

Page 43: Cur So Certifica o Linux Lp i

Sort e uniqO comandosort

classifica a entrada usando a sequência de intercalação do código do idioma(LC_COLLATE) do sistema. O comandosort

também pode mesclar arquivos já classificados e verificar se um arquivo está ounão classificado.A 14 ilustra o uso do comandosort

para classificar os nossos dois arquivos de texto após a conversão dos espaços embranco para tabulações no arquivo text1. Uma vez que a ordem de classificação épor caractere, você poderá se surpreender com os resultados. Felizmente, ocomandosort

pode classificar tanto de acordo com valores numéricos quanto de acordo comvalores de caractere. É possível definir essa escolha para todo o registro ou paracada campo. A menos que você especifique um separador de campo diferente, oscampos são delimitados por espaços em branco ou tabulações. O segundo exemploda 14 exibe a classificação numérica do primeiro arquivo e a classificação porseqüência de intercalação (alfabética) do segundo. O uso da opção-u

para eliminar linhas duplicadas e manter somente as linhas únicas também éilustrado.

14. Classificação numérica e por caractere.$ cat text1 | tr ' ' '\t' | sort - text210 apple 1 apple 2 pear 3 banana 3 banana 9plum $ cat text1|tr ' ' '\t'|sort -u -k1n -k2 - text21 apple 2 pear 3 banana 9 plum10 apple

Observe que ainda há duas linhas contendo a fruta "apple", pois o teste desingularidade é feito em todas as duas chaves de classificação, k1n e k2 em nossocaso. Pense em como alterar ou adicionar etapas à pipeline acima para eliminar asegunda ocorrência de 'apple'.Outro comando, chamadouniq

, fornece outro modo de controlar a eliminação das linhas duplicadas. O comandouniq

normalmente opera em arquivos classificados. Ele remove as linhas idênticas econsecutivas de qualquer arquivo, classificado ou não. O comandouniq

também pode ignorar alguns campos. A 15 classifica os nossos dois arquivos de

http://debian.linux/

43 de 190 22-07-2013 21:21

Page 44: Cur So Certifica o Linux Lp i

texto usando o segundo campo (fruit name) e, a seguir, elimina as linhas idênticas,começando no segundo campo (ou seja, nós ignoramos o primeiro campo ao fazeros testes com o comandouniq

).

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

Nossa classificação foi por sequência de intercalação, assim, o comandouniq

nos fornece a linha "10 apple", em vez de "1 apple". Para ver como alterar isso,tente adicionar uma classificação numérica no campo-chave 1.

Cut, paste e joinAgora, vamos dar uma olhada em mais três comandos para lidar com campos emdados textuais. Estes comandos são especialmente úteis para lidar com dadostabulares. O primeiro é o comandocut

, que extrai campos de arquivos de texto. O delimitador de campo padrão é ocaractere de tabulação. A 16 usa o comandocut

para separar duas colunas do arquivo text2 e, a seguir, usa um espaço comodelimitador de saída, que é uma maneira incomum de converter a tabulação decada linha em um espaço.

16. Usando o comando cut$ cut -f1-2 --output-delimiter=' ' text29 plum 3 banana 10 apple

O comandopaste

cola linhas de dois ou mais arquivos lado a lado, semelhante ao modo que ocomandopr

mescla arquivos usando sua opção-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, porém o comandopaste

http://debian.linux/

44 de 190 22-07-2013 21:21

Page 45: Cur So Certifica o Linux Lp i

pode colar dados a partir de um ou mais arquivos de várias outras maneiras.Consulte a man page para obter mais detalhes.Nosso último comando para a manipulação de campos é ojoin

, que junta arquivos com base em um campo correspondente. Os arquivos devemestar classificados no campo de junção. Uma vez que o arquivo text2 não estáclassificado em ordem numérica, podemos classificá-lo e, então, o comando join irájuntar as duas linhas com um campo de junção correspondente (o campo comvalor 3, neste caso).

18. Juntando arquivos com campos de junção.$ 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 classificação numérica epor caractere na seção Sort e uniq. A junção é executada com base em caracterescorrespondentes de acordo com a sequência de intercalação do código do idioma.Ela não funciona em campos numéricos, a não ser que os campos tenham todos omesmo comprimento.Usamos a opção-j 1

para juntar com base no campo 1 de cada arquivo. O campo a ser usado para ajunção pode ser especificado separadamente para cada arquivo. É possível, porexemplo, fazer a junção com base no campo 3 de um arquivo e no campo 10 deoutro arquivo.Vamos criar um novo arquivo, chamado text5, classificando o arquivo text1 combase no segundo campo (fruit name) e substituindo os espaços por tabulações. Emseguida, se classificarmos o arquivo text2 no segundo campo e fizermos a junçãocom o text5 usando o segundo campo de cada arquivo como campo de junção,deveremos ter duas correspondências (apple e banana). Essa junção é ilustrada na19.

19. Juntando arquivos com campos de junção.$ sort -k2 text1|tr ' ' '\t'>text5$ sort -k2 text2 | join -1 2 -2 2 text5 -apple 1 10banana 3 3

SedSed é o stream editor. Há muitos artigos do developerWorks, assim como muitoslivros e capítulos de livros, sobre o sed . O Sed é muito poderoso e as tarefas queele pode realizar são limitadas somente pela sua imaginação. Esta pequenaintrodução deve abrir o seu apetite para com o sed, porém sem intenções de sercompleta ou extensiva.Tal como acontece com muitos dos comandos de texto que aprendemos até agora,o sed pode funcionar como um filtro e receber a sua entrada a partir de umarquivo. A saída é para o fluxo de saída padrão. O sed carrega linhas da entrada noespaço padrão, aplica os comandos de edição do sed aos conteúdos do espaçopadrão e, em seguida, escreve o espaço padrão para a saída padrão. O sed podecombinar muitas linhas no espaço padrão, e isso pode escrever para um arquivo,

http://debian.linux/

45 de 190 22-07-2013 21:21

Page 46: Cur So Certifica o Linux Lp i

escrever somente a saída selecionada ou não escrever.

O sed usa a sintaxe de expressão regular para procurar e substituir o textoseletivamente no espaço padrão, assim com controlar quais linhas de textodevem ser operadas por conjuntos de comandos de edição. Expressõesregulares são abordadas com mais detalhes no artigo sobre procurandoarquivos de texto em expressões regulares (que você encontra na . Um bufferde espera fornece armazenamento temporário para o texto. O buffer de esperapode substituir o espaço padrão, ser adicionado ao espaço padrão, ou seralternado com o espaço padrão. O sed tem um conjunto de comandos limitados,mas que, quando combinados com sintaxe de expressões regulares e o buffer deespera, resultam em incríveis capacidades. Um conjunto de comandos do sed é,normalmente, chamado sed script.

A 20 exibe três sed scripts simples. No primeiro, usamos o comandos

(substitute) para substituir uma maiúscula por uma minúscula '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 asocorrências. No terceiro script, introduzimos o comandod

(delete) para deletar uma linha. No nosso exemplo, usamos um endereço de 2 paraindicar que somente a linha 2 deve ser deletada. Separamos os comandos usandoum ponto-e-vírgula (;) e usamos a mesma substituição global que usamos nosegundo 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 3bAnAnA $ sed '2d;$s/a/A/g' text11 apple 3 bAnAnA

Além de operar em linhas individuais, o sed pode operar em um intervalo delinhas. O começo e o fim do intervalo são separados por uma vírgula (,) e podemser especificados como um número de linha, uma expressão regular ou um sinal dedólar ($) para o final do arquivo. Dado um endereço ou vários endereços, épossível agrupar vários comandos entre chaves, { e }, para que estes operemsomente nas linhas selecionadas pelo intervalo. A 21 ilustra duas maneiras de ter anossa substituição global aplicada somente às duas últimas linhas do nossoarquivo. Também ilustra o uso da opção-e

para adicionar múltiplos comandos ao script.

21. Endereços 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 também podem ser armazenados em arquivos. De fato, vocêprovavelmente vai querer fazer isso com scripts frequentemente usados.Lembre-se que usamos o comandotr

http://debian.linux/

46 de 190 22-07-2013 21:21

Page 47: Cur So Certifica o Linux Lp i

para substituir espaços em branco por tabulações no arquivo text1. Agora, vamosfazer isso com um sed script armazenado em um arquivo. Vamos usar o comandoecho

para criar o arquivo. Os resultados são 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 3banana

Nosso último exemplo de sed usa o comando=

para imprimir números de linha e então filtrar a saída resultante, novamenteatravés do sed, imitando o efeito do comandonl

para numerar linhas. A 23 usa o comando=

para imprimir números de linha, a seguir, usa o comandoN

para ler uma segunda linha de entrada no espaço padrão e, finalmente, remove ocaractere de nova linha (\n) entre as duas linhas no espaço padrão.

23. Numerando linhas com sed$ sed '=' text21 9 plum 2 3 banana 3 10 apple $ sed '=' text2|sed 'N;s/\n//'19 plum23 banana 310 apple

Não é bem o que queríamos! O que realmente gostaríamos é de ter os nossosnúmeros alinhados em uma coluna com algum espaço antes das linhas do arquivo.Na 24, inserimos várias linhas de comando (observe o prompt secundário >).Estude os exemplos e consulte a explicação 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 10apple 7 1 apple 8 2 pear 9 3 banana 10 9 plum 11 3 banana 12 10 apple

Aqui vão os passos que seguimos:Primeiro, usamos o comandocat

para criar um arquivo de doze linhas a partir de duas cópias dos nossos arquivostext1 e text2. Não há nada de divertido em formatar números em colunas se nãotemos números de dígitos diferentes.

1.

O bash shell usa a tecla tab para a conclusão de comandos, assim, é útil ter umcaractere de tabulação cativo que você possa utilizar quando necessitar de umatabulação real. Usamos o comandoecho

para fazer isso e salvar o caractere na variável shell 'ht'.

2.

Criamos um fluxo contendo números de linha seguidos de linhas de dados, como3.

http://debian.linux/

47 de 190 22-07-2013 21:21

Page 48: Cur So Certifica o Linux Lp i

fizemos anteriormente, e o filtramos através de uma segunda cópia do sed.Lemos uma segunda linha no espaço padrão.4.Prefixamos nosso número de linha no começo do espaço padrão (marcado por ^)com seis espaços em branco.

5.

A seguir, substituímos toda a linha para a nova linha com os últimos seiscaracteres antes da nova linha mais um caractere de tabulação. Isso alinha osnossos números de linha nas primeiras seis colunas da linha de saída. Observe quea parte esquerda do comando 's' usa '\(' e '\)' para marcar os caracteres quequeremos usar na parte direita. Na parte direita, referimos o primeiro conjuntomarcado (e somente tal conjunto neste exemplo) como \1. Observe que nossocomando está entre aspas duplas ("), de modo que a substituição vai ocorrer para$ht.

6.

A Versão 4 do sed contém documentação em formatoinfo

e inclui excelentes exemplos. Estes não estão inclusos na antiga versão 3.02. OGNU sed aceita o comandosed --version

para exibir a versão.

Extraído com adaptação do original:

https://www.ibm.com/developerworks/br/linux/

Curso Certificação Linux LPI-1: Hierarquia do Sistema

Sistema de arquivos é a forma de organização de dados em algum meio dearmazenamento de dados em massa frequentemente feito em discosmagnéticos.[1] Sabendo interpretar o sistema de arquivos de umdeterminado disco, o sistema operacional pode decodificar os dadosarmazenados e lê-los ou gravá-los.

Fazendo analogias, tal organização assemelha-se a uma biblioteca escolar.O bibliotecário organiza os livros conforme um padrão, cuja busca,

http://debian.linux/

48 de 190 22-07-2013 21:21

Page 49: Cur So Certifica o Linux Lp i

convenientemente, procura deixar mais fácil, sem ocupar muitasprateleiras e assegurando a integridade deste.Inode

Cada diretório e arquivo do Linux é identificado para o kernel como umnúmero de nó i (inode).

Inode

Um inode é, na realidade, uma estrutura de dados que possuiinformações sobre um determinado arquivo ou diretório como, porexemplo, dono, grupo, tipo e permissões de acesso.

O inode é exclusivo somente para o dispositivo (partição) dentro do qualele está contido. Portanto, para identificar unicamente um arquivo, okernel deve ter o número de dispositivo e o inode do arquivo.

Um arquivo possui um único inode, não importa por quantos nomes estearquivo é identificado no sistema. Logo, é o conjunto de inodes que indicao número de arquivos/diretórios que o sistema possui.Inodes

Diretório

Diretório é o local utilizado para armazenar conjuntos de arquivos paramelhor organização e localização. O diretório, como o arquivo, também é"Case Sensitive" (diretório /teste é completamente diferente do diretório/Teste).

Não podem existir dois arquivos com o mesmo nome em um diretório, ouum sub-diretório com um mesmo nome de um arquivo em um mesmodiretório.

Um diretório, nos sistemas Linux/UNIX, é especificado por uma "/" e nãouma "\" como é feito no DOS. Para detalhes sobre como criar um diretório,veja o comando mkdir.

http://debian.linux/

49 de 190 22-07-2013 21:21

Page 50: Cur So Certifica o Linux Lp i

Diretório Raiz

Este é o diretório principal do sistema. Dentro dele estão todos osdiretórios do sistema. O diretório Raiz é representado por uma "/", assimse você digitar o comando cd / você estará acessando este diretório.

Nele estão localizados outros diretórios como o /bin, /sbin, /usr, /usr/local,/mnt, /tmp, /var, /home, etc. Estes são chamados de sub-diretórios poisestão dentro do diretório "/". A estrutura de diretórios e sub-diretóriospode ser identificada da seguinte maneira:

A estrutura de diretórios também é chamada de Árvore de Diretóriosporque é parecida com uma árvore de cabeça para baixo. Cada diretório dosistema tem seus respectivos arquivos que são armazenados conformeregras definidas pela FHS (FileSystem Hierarchy Standard - HierarquiaPadrão do Sistema de Arquivos) versão 2.0, definindo que tipo de arquivodeve ser armazenado em cada diretório.

O sistema GNU/Linux possui a seguinte estrutura básica de diretórios,organizados segundo o FHS (Filesystem Hierarchy Standard):

/raíz do sistema

/binContém arquivos programas do sistema que são usados com frequênciapelos usuários.

/bootContém arquivos necessários para a inicialização do sistema.

http://debian.linux/

50 de 190 22-07-2013 21:21

Page 51: Cur So Certifica o Linux Lp i

/cdromPonto de montagem da unidade de CD-ROM.

/mediaPonto de montagem de dispositivos diversos do sistema (rede,pen-drives, CD-ROM em distribuições mais novas).

/devContém arquivos usados para acessar dispositivos (periféricos)existentes no computador.

/etcArquivos de configuração de seu computador local.

/floppyPonto de montagem de unidade de disquetes

/homeDiretórios contendo os arquivos dos usuários.

/libBibliotecas compartilhadas pelos programas do sistema e módulos dokernel.

/lost+foundLocal para a gravação de arquivos/diretórios recuperados pelo utilitáriofsck.ext2. Cada partição possui seu próprio diretório lost+found.

/mntPonto de montagem temporário.

/procSistema de arquivos do kernel. Este diretório não existe em seu discorígido, ele é colocado lá pelo kernel e usado por diversos programas quefazem sua leitura, verificam configurações do sistema ou modificam ofuncionamento de dispositivos do sistema através da alteração em seusarquivos.

/rootDiretório do usuário root.

/sbinDiretório de programas usados pelo superusuário (root) paraadministração e controle do funcionamento do sistema.

/tmpDiretório para armazenamento de arquivos temporários criados porprogramas.

http://debian.linux/

51 de 190 22-07-2013 21:21

Page 52: Cur So Certifica o Linux Lp i

/usrContém maior parte de seus programas. Normalmente acessívelsomente como leitura.

/varContém maior parte dos arquivos que são gravados com frequênciapelos programas do sistema, e-mails, spool de impressora, cache, etc.

Fontes:

http://www.uniriotec.br/

http://pt.wikibooks.org/wiki/Guia_do_Linux/

Curso Certificação Linux LPI-1: Sistemas de Arquivos eDispositivos

Por padrão, os discos são nomeados da seguinte forma no linux:

/dev/hda - Disco IDE conectado na interface primária mestre./dev/hdb - Disco IDE conectado na interface primária escravo./dev/hdc - Disco IDE conectado na interface secundária mestre./dev/hdd - Disco IDE conectado na interface secundário escravo.

http://debian.linux/

52 de 190 22-07-2013 21:21

Page 53: Cur So Certifica o Linux Lp i

/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 partições.As partições funcionam com umcontêiner para os sistemas de arquivosNo Linux cada partição é representada por um número inteiro.

Partições Primárias

Cada disco pode conter no máximo 4 partições primárias.Estas partições contêm necessariamente um sistema de arquivos e pelomenos uma deve ser criada.As partições primárias podem ser nomeadas como: /dev/hda1, /dev/hda2,/dev/hda3 /dev/hda4.Uma destas partições primárias deve ser marcadacomo ativa para que a carga do sistema operacional(boot) seja possível.

Partições Estendidas

Elas são uma variação das partições primárias, mas não podem conter umsistema de arquivos.Funcionam como um contêiner para as partiçõeslógicas.

Partições Lógicas

Essas existem em conjunto com uma partição estendida e podemos ter deuma a 12 partições desse tipo.São nomeadas do n° 5 até 16.

Exemplo:

/dev/hda1 (partição primária)/dev/hda2 (partição estendida)/dev/hda5 (partição lógica)/dev/hda6 (partição lógica)(...)/dev/hda16 (partição lógica)

Partição de Swap (arquivo de troca)

Existem ainda um outro tipo especial de partição no Linux chamado departição de swap.Esta possibilita que o Linux tenha uma memória virtualem disco.Este tipo de memória é usado como arquivo de troca de dadosentre a memória física e o disco.Seu objetivo é aumentar a performance dosistema.

fdisk (e cfdisk) são responsáveis por criar, listar, alterar e apagar aspartições de disco.mkfs formata a partição criada pelo fdisk.mkswap prepara o dispositivo para ser usado como área de memóriavirtual(swap), antes de formatar uma partição para swap, é necessáriaque ela seja do tipo 82 (Linux Swap).

http://debian.linux/

53 de 190 22-07-2013 21:21

Page 54: Cur So Certifica o Linux Lp i

swapon ativa a partição após formatada (necessário).df mostra a capacidade utilizada em termos de espaço e inodes.du (Disk Usage) fornece uma lista detalhada sobre a utilização do discoem termos de diretórios.fsck checa e corrige a existência de erros no sistema de arquivos.Porpadrão ele assume o sistema de arquivos ext2./etc/fstab mantém informações de quais sistemas de arquivos serãomontados no processo de carga do sistema operacional.which procura um comando no disco

Find

O comando find localiza a partir de um caminho ou diretóriorecursivamente uma expressão diretamente no sistema de arquivos.

uso: find caminho expressão

exemplo, encontra o arquivo marcospinguim.php no disco:$ find /home/marcos -name marcospinguim.php

para as pastas que você não tem permissão de visualização, pode jogar asegunda etapa para o vazio, assim:$ find /home/marcos -name marcospinguim.php 2>/dev/null

Para localizar arquivos ou diretórios que foram alterados nos últimos 30dias, utilizamos a expressão -ctime 30:$ find | home -ctime 30

Para localizar arquivos que foram acessados nos últimos 10 dias,utilizamos a expressão -used 10:$ find | -used 10

Para localizar arquivos com pelo menos 30k, utilizamos a expressão -sizenk:$ find | -size 30k

locate 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 descrições curtas doscomandos do sistema e utilitários.

http://debian.linux/

54 de 190 22-07-2013 21:21

Page 55: Cur So Certifica o Linux Lp i

Por enquanto é só, até o próximo tópico ou a próxima postagem sobreoutro assunto.

Curso Certificação Linux LPI-1: Montagem e Desmontagem deSistema de Arquivos (SLIDE)

Desta vez vou postar somente imagens das Aulas do Professor UiráRibeiro do Curso Certificação Linux LPI-1: Montagem e Desmontagemde Sistema de Arquivos, para facilitar o aprendizado, lembrando queeste "Slide" está resumido do original, analise a imagem para acesso asinformações.

http://debian.linux/

55 de 190 22-07-2013 21:21

Page 56: Cur So Certifica o Linux Lp i

http://debian.linux/

56 de 190 22-07-2013 21:21

Page 57: Cur So Certifica o Linux Lp i

http://debian.linux/

57 de 190 22-07-2013 21:21

Page 58: Cur So Certifica o Linux Lp i

Curso Certificação Linux LPI-1: Executando, Gerenciando eTerminando Processos

http://debian.linux/

58 de 190 22-07-2013 21:21

Page 59: Cur So Certifica o Linux Lp i

Escalonador:

O escalonamento de processos ou agendador de tarefas (em inglêsscheduling) é uma atividade organizacional feita pelo escalonador(scheduler) da CPU ou de um sistema distribuído, possibilitando executaros processos mais viáveis e concorrentes, priorizando determinados tiposde processos, como os de I/O Bound e os computacionalmente intensivos.

O escalonador de processos de 2 níveis escolhe o processo que tem maisprioridade e menos tempo e coloca-o na memória principal, ficando osoutros alocados em disco; com essa execução o processador evita ficarocioso.

O Processo init:

O init é o primeiro processo iniciado no Linux, logo após a carga do kerneldo sistema. Quando é disparado, o init continua a carga do sistema,geralmente executando vários scripts que irão verificar e montar sistemasde arquivos, configurar teclado e iniciar servidores, entre outras tarefas.

O init utilizado no Linux permite que existam diversos níveis de execuçãono sistema. Um nível de execução é uma configuração de software dosistema que define quais processos devem ser inicializados e quais nãodevem, e também de que modo são inicializados.

Atributo de Processos(Sinais):

Um processo tem vários atributos que controlam sua execução.O PID identifica únicamente este processo (nenhum PID pode ser repetidoaté novo boot do sistema). O PPID indica qual "processo-pai" o criou. Onice number controla a prioridade desse processo. Processos de maiorprioridade têm a preferência na utilização da CPU. O UID e GID indicam o

http://debian.linux/

59 de 190 22-07-2013 21:21

Page 60: Cur So Certifica o Linux Lp i

usuário e grupo que criou esse processo. Somente o root (superusuário)pode destruir processos criados por outros usuários. O EUID e o EGID sãoformas de se rodar um processo, criado por um usuário não-privilegiado deforma que ele se comporte como privilegiado, com acesso a outrosrecursos que normalmente o usuário não o teria. O comando chmod +spode ser usado para fazer um programa modificar esse valor na execução.Um programa setuid (com o flag s ligado) no instante de execução trocaseu UID/GID pelos seus próprios (user/group do arquivo) e efetivamenterodam como se fosse este outro usuário, pois o kernel testa o EUID e EGIDpara testar privilégios de acesso. Daí, devmos ter o máximo cuidadoquando ligarmos este flag em algum executável.

Prioridades de Processos:

Muita gente não sabe, mas nos sistemas Linux mais modernos, podemoster um controle de prioridade de processos utilizando a CPU. Estasprioridades funcionam para favorecer melhor um comando à outro. Porexemplo:

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: compactação de arquivos em bzip2), os programas queestão em prioridade alta não serão completamente afetados.

Se o Programa 1 estivesse em prioridade “normal”, ele teria que dividir oprocessamento com o Programa 2, mesmo que ele usasse pouquinho. Mascomo ele está em “alta” prioridade, ele sempre vai ter a preferência nosistema, ao invés do Programa 2.

A faixa de prioridades é:

-20 (Prioridade Máxima) -19 … -1 0 (Prioridade Padrão) 1 … 18 19 (Prioridade Mínima)

Sendo assim, por padrão, todo comando executado “normalmente” recebea prioridade 0 (Zero). E quanto menor for esse número, maior a prioridadedo processo na CPU (Sim, é o contrário! Quanto menor, maior; quanto

http://debian.linux/

60 de 190 22-07-2013 21:21

Page 61: Cur So Certifica o Linux Lp i

maior, menor! :).

Por padrão, os comandos ligados ao kernel e o sistema operacional em sitêm prioridade inferior a 0 (aqui no meu sistema, vejo vários processoscom prioridade -5). Isso nos faz lembrar que você precisa ser root paraconfigurar um processo com prioridade menor que 0. Isso faz sentido, jáque em um sistema multi-usuário, os usuários normais compartilham opadrão 0, e podem escolher apenas se o processo pode ter uma prioridademais baixa, assim não interferindo com os processos do sistema, queteoricamente são mais importantes.

Executando aplicações em segundo plano:

Quando estamos num terminal, queremos utilizar algumcomando/aplicação e necessitamos ainda do terminal livre, podemosexecutar o que queremos em segundo plano. É muito simples, veja:

$ comando &

Simplesmente adicione o caracter & ao final do comando/aplicativo quevocê quer executar. Acho interessante quando estamos no X e queremosabrir uma aplicação diretamente do terminal.

Comandos para gerenciamento:

ps:$ ps [options]

- exibe informações sobre uma seleção dos processos ativos.Se você queruma atualização repetitiva da seleção e as informações apresentadas, usartop (1) em seu lugar.>pstree:$ pstree

- mostra a árvore de processostop:$ top

- exibe as tarefas do linux.kill:$ kill

- O sinal padrão para matar é TERM. Utilização de L-ou L-a lista de sinaisdisponíveis. Sinais particularmente úteis incluem HUP, INT, MATAR, STOP,CONT, e 0.Sinais de suplentes poderão ser especificada de três formas:-9-SIGKILL-matar. PID valores negativos podem ser usados para escolhergrupos de processos inteiros; ver a coluna PGID na saída do comando ps. APID de -1 é especial, que indica todos os processos exceto o processo de sematar e init.killall:$ killall

http://debian.linux/

61 de 190 22-07-2013 21:21

Page 62: Cur So Certifica o Linux Lp i

- mata um proceso pelo nome.

Obs.:Coletado de diversos lugares e resumido.

http://debian.linux/

62 de 190 22-07-2013 21:21

Page 63: Cur So Certifica o Linux Lp i

Curso Certificação Linux LPI-1: Sistema de Boot, Shutdown eRunlevels

Em informática, boot é o termo em inglês para o processo de iniciação docomputador que carrega o sistema operacional quando a máquina éligada.A solução para o paradoxo está na utilização de um pequeno eespecial programa, chamado sistema de iniciação, boot loader oubootstrap.O pequeno programa normalmente não é o sistema operacional,mas apenas um segundo estágio do sistema de inicialização, assim como oLilo ou o Grub. Ele será então capaz de carregar o sistema operacionalapropriado, e finalmente transferir a execução para ele.

Quando um sistema efetua boot pela primeira vez, o processadorexecuta um código em um local conhecido. Em um Computador Pessoal(PC), esse local é o Sistema Básico de Entrada/Saída (BIOS), que estáarmazenado na memória flash, na placa-mãe.O estágio de inicializaçãodo sistema depende do hardware no qual o Linux está efetuando boot.Em uma plataforma integrada, um ambiente de autoinicialização éutilizado quando o sistema é ligado ou reconfigurado.O loader de bootprimário, que reside no MBR, é uma imagem de 512 bytes contendo ocódigo do programa e uma pequena tabela de partição.

http://debian.linux/

63 de 190 22-07-2013 21:21

Page 64: Cur So Certifica o Linux Lp i

O loader de boot secundário, ou de segundo estágio, pode ser chamado deloader de kernel. Neste estágio, sua tarefa é carregar o kernel Linux e odisco RAM inicial opcional.Com a imagem de kernel na memória e ocontrole fornecido no loader de boot de estágio 2, o estágio do kernelcomeça. A imagem do kernel não é bem um kernel executável, mas umaimagem de kernel compactada. Em geral é uma zImage (imagemcompactada, com menos de 512KB) ou uma bzImage (imagem compactadagrande, com mais de 512KB), previamente compactada com zlib.

Após executar boot e inicializado, o kernel inicia o aplicativo do primeiroespaço do usuário. Ele é o primeiro programa chamado, compilado com abiblioteca C padrão. Até este momento no processo, nenhum aplicativo Cpadrão foi executado.

Runlevels (Níveis de Execução)

Níveis de execução definem quais tarefas podem ser realizadas no estado(ou nível de execução) atual de um sistema Linux. .Além do básico, o usode níveis de execução pode ser diferentes nas distribuições.

Tablela 1. Níveis de execução básicos do Linux

Nível Propósito

http://debian.linux/

64 de 190 22-07-2013 21:21

Page 65: Cur So Certifica o Linux Lp i

0 Encerrar (ou parar) o sistema1 Modo de usuário único; geralmente com os alias s ou S2 Modo de multiusuário sem rede3 Modo de multiusuário com rede4 Não Utilizado5 Modo de multiusuário com rede e com o X Window System6 Reinicializar o sistema

A distribuição Slackware usa o nível de execução 4 em vez do 5 para umsistema completo executando X Window system. Debian e derivados, comoUbuntu, usam um único nível de execução para o modo de multiusuário,geralmente o nível 2. Consulte a documentação para sua distribuição.

Para alterar o Runlevel de inicialização do seu Linux, vc pode alterar oarquivo /etc/inittab:# vi /etc/inittab

Exemplo abaixo, corresponde a linha em vermelho, o número 2 é odefinido:

# /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 halt.# Runlevel 1 is single-user.# Runlevels 2-5 are multi-user.# Runlevel 6 is reboot.

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

Ou usando um dos comando abaixo(lembrando que para todos essesprocedimentos deverá ser o super-usuário):

# init 5

http://debian.linux/

65 de 190 22-07-2013 21:21

Page 66: Cur So Certifica o Linux Lp i

Ou

# telinit 5

Personalizando o processo de inicialização

O Debian não utiliza o diretório rc.local no estilo BSD para personalizar oprocesso de inicialização; ao invés disso ele fornece o seguinte mecanismode personalização.

Suponha que um sistema precisa executar o script foo na inicialização damáquina ou ao entrar em um nível de execução (System V) em especifíco.O administrador do sistema deverá então :

Colocar o script foo dentro do diretório /etc/init.d/.

Executar o comando Debian update-rc.d com os argumentos apropriadospara criar as ligações entre os diretórios (especificados na linha decomando) rc?.d e /etc/init.d/foo. Aqui, ? é um número de 0 a 6 quecorresponde a um dos níveis de execução System V.

Reiniciar o sistema.

O comando update-rc.d criará as ligações entre os arquivos nos diretóriosrc?.d e o script em /etc/init.d/. Cada ligação iniciará com um `S' ou um `K',seguido por um número, seguido pelo nome do script. Quando o sistemaentra em um nível de execução N, scripts que iniciam com `K' em/etc/rcN.d/ são executados com stop como seu argumento, seguido poraqueles começando com `S' em /etc/rcN.d com start como seu argumento.

Alguém poderia, por exemplo, fazer com que o script foo seja executado nainicialização do sistema colocando-o em /etc/init.d/ e instalando asligações com o comando update-rc.d foo defaults 19. O argumento defaultsse refere aos níveis de execução padrões, que são do nível 2 até o nível 5. Oargumento 19 assegura que foo seja chamado antes de quaisquer scriptscontendo números 20 ou superiores.

O Comando Shutdown

Desliga/reinicia o computador imediatamente ou após determinado tempo(programável) de forma segura. Todos os usuários do sistema são avisadosque o computador será desligado . Este comando somente pode serexecutado pelo usuário root ou quando é usada a opção -a pelos usuárioscadastrados no arquivo /etc/shutdown.allow que estejam logados noconsole virtual do sistema.

http://debian.linux/

66 de 190 22-07-2013 21:21

Page 67: Cur So Certifica o Linux Lp i

shutdown [opções] [hora] [mensagem]

hora Momento que o computador será desligado. Você pode usar HH:MMpara definir a hora e minuto, MM para definir minutos, SS para definirapós quantos segundos, ou now para imediatamente (equivalente a 0).

O shutdown criará o arquivo /etc/nologin para não permitir que novosusuários façam login no sistema (com excessão do root). Este arquivo éremovido caso a execução do shutdown seja cancelada (opção -c) ou após osistema ser reiniciado.

mensagem Mensagem que será mostrada a todos os usuários alertando sobre oreinicio/desligamento do sistema. opções

-h Inicia o processo para desligamento do computador.-r Reinicia o sistema-c Cancela a execução do shutdown. Você pode acrescentar umamensagem avisando aos usuários sobre o fato.-a Permite que os nomes de usuários contidos no arquivo/etc/shutdown.allow possam utilizar o shutdown parareinicializar/desligar o sistema. Deve ser colocado um nome de usuáriopor linha. O limite máximo de usuários neste arquivo é de 32.

Este arquivo é útil quando o shutdown é usado para controlar opressionamento das teclas CTRL ALT DEL no /etc/inittab.

-k Simula o desligamento/reinicio do sistema, enviando mensagem aosusuários.-f Não executa a checagem do sistema de arquivos durante ainicialização do sistema. Este processo é feito gravando-se um arquivo/fastboot que é interpretado pelos scripts responsáveis pela execução dofsck durante a inicialização do sistema.-F

http://debian.linux/

67 de 190 22-07-2013 21:21

Page 68: Cur So Certifica o Linux Lp i

Curso Certificação Linux LPI-1: Trabalhando com Permissões

Cada arquivo no Linux tem o definido controle de acesso.Este controle édefinidopor três classes:

-Permissões de usuário: Dono do arquivo(quem o criou).-Permissões de grupo: grupo que ao qual ele pertence.-Permissões de outros usuários: outros(não dono e outro grupo).

E para cada classe há 3 tipos de acesso:

-leitura(r)-escrita(w)-execução(x)

http://debian.linux/

68 de 190 22-07-2013 21:21

Page 69: Cur So Certifica o Linux Lp i

Bits especiais.

Os 3 primeiros bits da esquerda para direita são bits de atributosespeciais:-SUID (Set User ID) - afeta somente arquivos executáveis-SGID (Set Group ID) - afeta execução de programas do grupo do dono.-Sticky (Stick Bit) - permance na memória mesmo depois determinado(Colado na memória).

http://debian.linux/

69 de 190 22-07-2013 21:21

Page 70: Cur So Certifica o Linux Lp i

Como os bits de permissão especiais são utilizados com pouca frequência,e sob condições especiais, eles são representados pela letra (s) no lugar de(x) de execução para os bits SUID e SGID nas classes de Dono do arquivo eGrupo, e (t) no lugar de (x) para bit sticky na classe de Outros.

Quando novos arquivos são criados no sistema, eles são criados compermissões definidas gravadas no perfil de cada usuário e configuradaspelo comando umask.O comando umask mostra a máscara das permissões quando os arquivossão criados e aceira como argumento um número de 3 dígitos paraconfigurar as permissões.No Linux, as permissões padrão para criação de:

-arquivos = 666 (rw-rw-rw).-diretórios = 777 (drwxrwxrwx).

http://debian.linux/

70 de 190 22-07-2013 21:21

Page 71: Cur So Certifica o Linux Lp i

Depois de definida a máscara de criação dos arquivos, ela deverá sersubtraída das permissões padrão, exemplo:

$ umask 27

O número 27 deverá ser lido como 027, e define od bits da máscara como:

-000 para Dono do arquivo.-010 para Grupo-111 para Outros.

O comando chmod

chmod (abreviação de change mode, em português: alterar modo) é umcomando do Unix usado para alterar permissões de arquivos e diretórios(pastas). Sua sintaxe é a seguinte:

$ chmod [opções] modo[,modo] arquivo1 [arquivo2 ...]

Para a representação das permissões através de letras, você poderáutilizar:

Exemplo:

http://debian.linux/

71 de 190 22-07-2013 21:21

Page 72: Cur So Certifica o Linux Lp i

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 determinadoarquivo.Uso:

chown [opções] usuário arquivo

Exemplos:

# chown root /var/run/httpd.pid# chown marcos:linux strace.log# chown nobody:nogroup /tmp /var/tmp# chown :512 /home# chown -R usuario:grupo

Os comandos chattr, lsattr e ln

chattr

Esse comando modifica os atributos de arquivos/diretórios:

chattr [opção] [atributo] [arquivo/diretório]

lsattr

Comando que lista os atributos atribuídos a um arquivo/diretório:

lsattr [opção] [arquivo/diretório]

O comando ln

O comando ln permite criar links. Existem dois tipos de links suportadospelo Linux, os hard links(links físicos) e os links simbólicos. Os linkssimbólicos têm uma função parecida com os atalhos do Windows, elesapontam para um arquivo, mas se o arquivo é movido para outro diretórioo link fica quebrado. Os hard links(links físicos) são semelhantes aos

http://debian.linux/

72 de 190 22-07-2013 21:21

Page 73: Cur So Certifica o Linux Lp i

atalhos do OS/2 da IBM, eles são mais intimamente ligados ao arquivo esão 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 diretório corrente, queapontará para o arquivo.txt dentro do diretório /home/marcos

Para criar um link simbólico, basta acrescentar o argumento "-s", comoem:

$ ln -s /home/marcos/arquivo.txt arquivo

-s : Cria um link simbólico. O padrão do comando ln são links físicos. -f : Força a criação de um link mesmo que este já exista. -i : Exibe número de identificação.

Curso Certificação Linux LPI-1: Instalando e CompilandoProgramas a partir do código fonte

http://debian.linux/

73 de 190 22-07-2013 21:21

Page 74: Cur So Certifica o Linux Lp i

A Free Software Foundation (FSF, Fundação para o Software Livre) é umaorganização sem fins lucrativos, fundada em 04 de Outubro de 1985 porRichard Stallman e que se dedica a eliminação de restrições sobre a cópia,redistribuição, estudo e modificação de programas de computadores –bandeiras do movimento do software livre, em essência. Faz issopromovendo o desenvolvimento e o uso de software livre em todas as áreasda computação mas, particularmente, ajudando a desenvolver o sistemaoperacional GNU e suas ferramentas.

Os pacotes com código fonte, distribuídos na forma dos famosos pacotes.tar.gz ou .tar.bz2, são o formato mais universal, porém ao mesmo tempo omais complicado de instalar, que você deixa como um último recurso alançar mão quando não encontrar um pacote atualizado do programadesejado.

Para instalá-los, é necessário, em primeiro lugar, ter instalado umconjunto de compiladores, incluindo o gcc e g++, ferramentas como omake, autoconf, diff e patch, e bibliotecas, como o binutils-dev, libc6-dev.Este "kit básico" é instalado ao marcar a categoria "desenvolvimento" (oudevelopment) durante a instalação de várias distribuições. No caso doKurumin, você tem pré-instalados os compiladores mais usados e vocêpode instalar outros necessários através do Synaptic, ou manualmenteatravés do apt-get.

Uma dica é que todos os pacotes cujo nome termina com "-dev" sãojustamente bibliotecas de desenvolvimento, que podem ser necessárias aocompilar determinados programas. Quando o instalador reclama da faltade bibliotecas ou arquivos do X, provavelmente ele está dando falta dopacote "xlibs-dev", quando reclamar da falta de arquivos do KDE,provavelmente está pedindo o pacote "libqt3-dev" e assim por diante. Amaior dificuldade em compilar programas complexos está justamente emlocalizar e instalar o conjunto de bibliotecas de que ele precisa.

http://debian.linux/

74 de 190 22-07-2013 21:21

Page 75: Cur So Certifica o Linux Lp i

Se os pré-requisitos estiverem em ordem, a compilação em si é feitadescompactado o arquivo (usando o comando "tar -zxvf pacote.tar.gz" ou"tar -jxvf pacote.tar.bz2" ou descompactando pelo próprio Konqueror),acessando a pasta que será criada e rodando três comandos básicos:

$ ./configure

$ make

# make install

O "./configure" executa um script (dentro da pasta do programa), queverifica o sistema, em busca dos componentes de que precisa. Ele avisacaso algo esteja faltando, como neste erro que apareceu ao tentarcompilar o Qemu:

ERROR: QEMU requires SDL or Cocoa for graphical outputTo build QEMU with graphical output configure with --disable-gfx-checkNote 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 contêm bibliotecas começam com "lib" e ospacotes de desenvolvimento terminam com "-dev". Procurando nohttp://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 asolução parecer mais difícil, a melhor opção é fazer uma busca no Google,usando parte da mensagem de erro.

O "make" cuida do trabalho pesado, fazendo a compilação propriamentedita. Ele se baseia nas informações deixadas pelo "./configure" paraencontrar os componentes de que precisa.

Finalmente, temos o "make install", que finalmente instala o programa,copiando os arquivos gerados pelo make para as pastas corretas dosistema. Ao contrário dos dois primeiros comandos, ele precisa serexecutado como root, já que envolve fazer alterações no sistema.

Apesar destes três comandos serem um padrão adotado na maioria dospacotes, eles não são necessariamente uma regra. Muitos programas usamsistemas simplificados de instalação ou mesmo scripts próprios, por isso ésempre bom dar uma olhada no arquivo "INSTALL" ou "README" dentro

http://debian.linux/

75 de 190 22-07-2013 21:21

Page 76: Cur So Certifica o Linux Lp i

da pasta, que explica os passos necessários. Em geral, os programasinstalados a partir dos fontes não criam os ícones no menu. Você precisachamar o programa via linha de comando ou criar os ícones manualmente.

Nas distribuições derivadas do Debian, uma dica com relação àsdependências e bibliotecas é usar o auto-apt, um programa que verifica asmensagens de erro geradas durante a compilação e procura instalar viaapt-get os componentes necessários para concluir a compilação. Ele não éperfeito: muitas vezes se perde ou tenta instalar pacotes desnecessários,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-aptupdate", "auto-apt updatedb" e "auto-apt update-local", que geram a basede dados que ele usa para fazer seu trabalho. Depois de tudo pronto, vocêpassa a executar os comandos de compilação dos pacotes através dele,usando o comando "auto-apt run" seguido pelo comando, como em:

# auto-apt run ./configure

# auto-apt run make

O comando ldconfig

Cria, atualiza e remove as ligações necessárias e cache (para uso pelolinker de tempo de execução, ld.so) à mais recente partilhada bibliotecasencontrado nos diretórios especificados na linha de comando, em oarquivo / etc / ld.so.conf, e nos diretórios confiáveis (/usr/lib e /lib).ldconfig verifica os nomes de cabeçalho e arquivo das bibliotecas queencontra ao determinar quais versões devem ter suas ligações atualizado.ldconfig ignora links simbólicos ao procurar por bibliotecas.

ldconfig [OPTION...]

O comando ldd

Imprime as bibliotecas compartilhadas necessárias por cada programa oucompartilhado biblioteca especificada na linha de comando.

Extraído de:http://www.fsf.org/http://www.hardware.com.brhttp://www.linuxmanpages.com/

http://debian.linux/

76 de 190 22-07-2013 21:21

Page 77: Cur So Certifica o Linux Lp i

Veja o Manual do Linux em uma página de Carlos Morimoto:

Manual linux de_uma_pagina from Marcos da Boa Morte

Curso Certificação Linux LPI-1: Gerenciamento de pacotes noDebian

E ae galera, dessa vez vou mostrar umas imagens, um frame e link dadocumentação original e um slide para facilitar o entendimento, poisesse assunto "bomba" na internet, segue:

http://debian.linux/

77 de 190 22-07-2013 21:21

Page 78: Cur So Certifica o Linux Lp i

Gerenciamento de pacotes no Debian from Marcos da Boa Morte

aptana aptitudeapt-cache aptitude-create-state-bundleapt-cdrom aptitude-curses

http://debian.linux/

78 de 190 22-07-2013 21:21

Page 79: Cur So Certifica o Linux Lp i

apt-config aptitude-run-state-bundleaptdcon apt-keyapt-extracttemplates apt-listchangesapt-ftparchive apt-markapt-get apt-sortpkgs

Documentação original:

Link: Debian

Curso Certificação Linux LPI-1: Quotas de Disco

No Linux existe a possibilidade de habilitarmos quotas de disco paragerenciarmos melhor o uso do espaço disponível em disco.Este recursoé especialmente importante em ambientes multi-usuários, servidores deWeb, servidores de arquivos, servidores de e-mail, etc.

No gerenciamento de cotas é possível definirmos a quantidade deespaço em disco para cada usuário ou grupo de usuários.É precisohabilitar o gerenciamento de quotas antes de utilizarmos esterecurso.Também é preciso que o suporte a quotas esteja compilado noKernel.

http://debian.linux/

79 de 190 22-07-2013 21:21

Page 80: Cur So Certifica o Linux Lp i

1-Edite o arquivo /etc/fstab e adicione o gerenciamento de cota parausuário (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 diretório /home e configureas permissões de leitura e escrita para o root.Estes dois arquivos serão osbancos de dados para quotas de usuário e grupo respectivamente.

Cria os arquivos de quota:

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

Altera as permissões:

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

3-Execute o comando quota-check para iniciar o banco de dados recémcriado, e verifique se o banco de dados foi iniciado.Os arquivos quota.usere quota.group não devem ter tamanho zero.

# ls -lga /home

4-Habilite o serviço de quotas:

# quotaon -a

http://debian.linux/

80 de 190 22-07-2013 21:21

Page 81: Cur So Certifica o Linux Lp i

5-Tenha certeza de que o serviço de quotas é habilitado no boot.Se nãoexistir o arquivo /etc/rc.d/quotas, crie um arquivo de script:

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

Altere as permissões para 755:

# chmod 755 /etc/rc.d/quotas

6-Crie o link simbólico para o arquivo de quotas para o runlevel 3 erunlevel 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-Faça checagem do sistema de quotas uma vez por semana colocando ocomando 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 físico), é a quantidade total de espaço emdisco que um usuário pode ter.

- user soft limits (limite leve), funciona como uma área de aviso,quando o usuário alcança este limite o sistema avisa ao usuário que oespaço físico está acabando.

- group hard limit (limite físico por grupo)

http://debian.linux/

81 de 190 22-07-2013 21:21

Page 82: Cur So Certifica o Linux Lp i

- group soft limit , também área de aviso.

- grace período (Período de Graça), pode-se configurar um períodopara que o usuário ou grupo que tenha atingido o limite leve possaapagar alguns arquivos e ficar dentro do estabelecido.Este limite podeser em minutos, horas, dias, semanas e até meses.

Comandos:

quota:

# quota [opções] usuário/grupo

Ex.:

# quota -v marcos

O usuário marcos está usando 18320 blocos.O limite leve são 19000blocos e o físico 20000 blocos.

quotaon:

# quotaon [opções] [dispositivos]

Ex.(habilita quotas de usuários e grupos para todos os dispositivos):

# quotaon -avug

quotaoff:

# quotaoff [opções] [dispositivo]

http://debian.linux/

82 de 190 22-07-2013 21:21

Page 83: Cur So Certifica o Linux Lp i

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

quotaon:

# quotaoff -gu /dev/hda6

quotacheck(faz uma varredura em determinado dispositivo e constrói osarquivos de banco de dados de quotas):

# quotacheck [opções] [dispositivo]

edquota(Este comando edita quotas para usuários e grupos):

# edquota [opções] usuário/grupo

repquota(cria um relatório das quotas e utilização do disco dos usuários):

# repquota [opções] [dispositivo]

Curso Certificação Linux LPI-1: grep e sed

O comando grep

http://debian.linux/

83 de 190 22-07-2013 21:21

Page 84: Cur So Certifica o Linux Lp i

grep é um utilitário de linha de comando para procurar conjuntos dedados de texto simples para as linhas que correspondem a umaexpressão regular.

grep [OPÇÕES] expressão_regular arquivo

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

2-Procura todas as linhas começadas 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 começadas pelas vogais no arquivo /etc/passwd:$ grep '^[aeiou]' /et/passwd

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

6-Procura todas as linhas que contenham uma sequência de 4 númerosconsecutivos:$ grep '[0-9][0-9][0-9][0-9]' /et/passwd

O comando sed

sed é um editor de textos simples utilizado para fazer pequenastransformações no conteúdo dos arquivos.

$ sed [opções] {script} [arquivo]

http://debian.linux/

84 de 190 22-07-2013 21:21

Page 85: Cur So Certifica o Linux Lp i

Exs.:

1-Troca todas ocorrências da palavra marcos pela palavra pinguim:$ sed 's/marcos/pinguim/' arquivo.txt

2-Troca todas ocorrências da palavra marcos pela palavra pinguim e enviaas mudanças para um novo arquivo:$ sed 's/marcos/pinguim/' arquivo.txt > novoarquivo.txt

Sugestões para estudos avançados:Regex(grep, egrep...)

Sed

Amostras (PDF em Slide) dos Cursos: Certificação Linux LPI-1 eLPI-102

Certificação LPI-1 Amostra from Marcos da Boa Morte

Certificação LPI-2 amostra from Marcos da Boa Morte

http://debian.linux/

85 de 190 22-07-2013 21:21

Page 86: Cur So Certifica o Linux Lp i

Curso Certificação Linux LPI-102: Administração do Sistema

Em um sistema multi-usuário, é necessário existir mecanismos paraproteger os usuários, de forma que seus arquivos privativos fiquemseguros, inacessíveis aos outros. Outro aspecto é em relação aosrecursos do sistema reservados: não deve ser possível a um usuário criararquivos que ocupem todo o espaço do disco, por exemplo, e assim,indiretamente, proibir todos os outros usuários de salvarem seuspróprios arquivos. Atingimos esse objetivo criando contas, querepresentam todos os recursos e informações pertencentes a umdeterminado usuário. A origem do nome conta, depende muito dahistória da computação, quando o espaço em disco e tempo de uso damáquina tinha que ser cobrado de acordo com o seu uso, de formasemelhante a uma conta telefõnica.

A cada usuário é destinado um nome de login e senha, como já vimosanteriormente, bem como um UID, GID, nome do diretório home e shellinicial (veja imagem do arquivo /etc/passwd). Maiores informações podemser obtidas com o comando man 5 passwd.

http://debian.linux/

86 de 190 22-07-2013 21:21

Page 87: Cur So Certifica o Linux Lp i

Adicionar usuários:# useradd nome_do_usuario

Modificar dados de um usuário:# usermod [opções] nome_do_usuario

Deletar usuários(a opção -r remove também a pasta do usuário):# userdel -r nome_do_usuario

O comando chage:

Lida com a data de expiração das contas de usuário.Essa data é gravadano arquivo /etc/shadow.

Uso:# chage [opções] nome_do_usuario

Ex.:(deve-se escrever em formato de data americano mês/dia/ano [mm/dd/aaaa])# chage -E 12/31/2012 nome_do_usuario

Mais sobre Admnistração do Sistema (Contas de Usuários)

+ O diretório'/etc/skel é utilizado para fornecer a estrutura básica dodiretório home do usuário.Nele contém os arquivos:

/etc/skel$ ls -a

http://debian.linux/

87 de 190 22-07-2013 21:21

Page 88: Cur So Certifica o Linux Lp i

. .. .bash_logout .bashrc .profile

+ Durante o processo de logon de um usuário, quando o shel inicia, eleexecuta o script /etc/profile.

+ O bash também procura pelo arquivo /etc/bashrc que também tem umafunção parecida com o profile, mas o bashrc é executado todas as vezesque o bash é executado.

+ Existem agendadores de tarefas um dele é o cron(imagem)

Mais informações sobre o cron acesse esse link aqui: Como utilizar oCrontab

Curso Certificação Linux LPI-102: Backup, compactação edescompactação

A compressão de dados é o ato de reduzir o espaço ocupado por dadosnum determinado dispositivo. Essa operação é realizada através dediversos algoritmos de compressão, reduzindo a quantidade de Bytespara representar um dado, sendo esse dado uma imagem, um texto, ou

http://debian.linux/

88 de 190 22-07-2013 21:21

Page 89: Cur So Certifica o Linux Lp i

um arquivo (ficheiro) qualquer.

Comprimir dados destina-se também a retirar a redundância,baseando-se que muitos dados contêm informações redundantes quepodem ou precisam ser eliminadas de alguma forma. Essa forma éatravés de uma regra, chamada de código ou protocolo, que, quandoseguida, elimina os bits redundantes de informações, de modo adiminuir seu tamanho nos ficheiros. Por exemplo, a sequência "AAAAAA"que ocupa 6 bytes, poderia ser representada pela sequência "6A", queocupa 2 bytes, economizando 67% de espaço.

Alguns compactadores de arquivos:

TAR

MIME: application/x-tar

TAR ou tar (abreviatura de Tape ARchive), é um formato dearquivamento de arquivos (ficheiros). Apesar do nome "tar" ser derivadode "tape archive", o seu uso não se restringe a fitas magnéticas. Ele setornou largamente usado para armazenar vários arquivos em um único,preservando informações como datas e permissões. Normalmente éproduzido pelo comando "tar".

http://debian.linux/

89 de 190 22-07-2013 21:21

Page 90: Cur So Certifica o Linux Lp i

Algumas das opções mais frequentes:

-c - cria um novo arquivo tar; -M - cria, lista ou extrai um arquivo multivolume; -p - mantém as permissões originais do(s) arquivo(s); -r - acrescenta arquivos a um arquivo tar; -t - exibe o conteúdo de um arquivo tar; -v - exibe detalhes da operação; -w - pede confirmação antes de cada ação; -x - extrai arquivos de um arquivo tar; -z - comprime ou extrai arquivos tar resultante com o gzip; -j - comprime ou extrai arquivos tar resultante com o bz2; -f - especifica o arquivo tar a ser usado; -C - especifica o diretório dos arquivos a serem armazenados.

GZIP

Gzip é a abreviação de GNU zip, um Software Livre de compressão semperda de dados, criado por Jean-loup Gailly e Mark Adler. O programa ébaseado no algoritmo DEFLATE. A extensão gerada pelo gzip é o .gz, eseu formato contém apenas um arquivo comprimido. Em sistemas UNIXé comum gerar um arquivo contendo diversos outros arquivos com oprograma tar, e depois comprimi-lo com o gzip, gerando um arquivo.tar.gz.

Não confundir com o formato ZIP.

TAR.BZ2

Formato de compactação de arquivos, muito utilizado em sistemasUnix-Like.

COMPACTAÇÃO

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]

http://debian.linux/

90 de 190 22-07-2013 21:21

Page 91: Cur So Certifica o Linux Lp i

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 afins):

Instale o suporte:

# apt-get install rar unrar p7zip

$ rar a arquivo.rar [arquivo ou pasta]

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

DESCOMPACTAÇÃO

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]

http://debian.linux/

91 de 190 22-07-2013 21:21

Page 92: Cur So Certifica o Linux Lp i

Descompactando outros formatos(rar, zip e afins):

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 clássico dos ambientes Unix-Like, com ele vocêpode fazer uma cópia exata de um arquivo, ou seja uma cópia bit a bit.Sintaxe básica:

dd if=origem of=destino

Exemplos:

Cópia do HD para um arquivo:

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

Será feita uma cópia exata do HD dentro do diretório 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 não os resultados poderão ser desastrosos):

# dd if=backup_hd.img of=/dev/sda2

Cópia de partição para o partição:

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

http://debian.linux/

92 de 190 22-07-2013 21:21

Page 93: Cur So Certifica o Linux Lp i

Será feita cópia da partição /dev/sda9 para a /dev/sda11.

Fazendo uma cópia 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 HDem /dev/sda2.

Criar uma imagem ISO:

# dd if=diretorio of=iso_do_diretorio.iso

Para visualizar progresso de cópia de arquivos, vá em outro terminal eexecute:

$ watch df -h

Para converter todos as letras maiúsculas de um documento para letrasminúsculas:

$ dd if=ficheiro1 of=ficheiro2 conv=lcase

Se quisermos converter todas as letras do ficheiro2 para maiúsculas:

$ 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) aleatória:

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

http://debian.linux/

93 de 190 22-07-2013 21:21

Page 94: Cur So Certifica o Linux Lp i

6+0 registros de saída12 bytes (12 B) copiados, 0,000100641 s, 119 kB/s

Para automatizar tarefas, você pode utilizar o Cron e Crontab, veja essepost para mais informações:Como utilizar o Crontab

Curso Certificação Linux LPI-102: Kernel do Linux

O núcleo do Linux (Linux Kernel) forma a estrutura base do sistemaoperacional GNU/Linux, que é um sistema operacional tipo unix. O núcleodo Linux é um dos exemplos mais proeminentes de software livre, poispode prover alicerce para o desenvolvimento e execução de outrossoftwares livres.

O núcleo Linux é distribuído sob a licença GNU General Public Licenseversão 2 (GPLv2), sendo desenvolvido por colaboradores em todo o mundo.O desenvolvimento ocorre a partir da lista de e-mail do núcleo Linux(Linux kernel mailing list).

O Linux foi concebido pelo estudante do Departamento de Ciência daComputação da Universidade de Helsinki na Finlândia, Linus Torvalds comajuda de vários programadores voluntários por meio da Usenet(antecessora da Internet) em 1991.

http://debian.linux/

94 de 190 22-07-2013 21:21

Page 95: Cur So Certifica o Linux Lp i

Mais informações em: Wikipédia

Suporte aos dispositivos de hardware:

-Códigos dos drivers dos dispositivos podem ser carregados no própriocoração do núcleo(monolítico, rápido e flexível)-Códigos dos drivers dos dispositivos podem ser carregadosseparadamente(os Módulos)("modulo.o", depende da versão do Kernel)-O número de versão menor (o segundo componente) par indicavam umasérie estável: 1.0.x, 1.2.x, 2.0.x, 2.2.x e 2.4.x;

Os módulos são dispnibilizados em /lib/modules/versao-do-kernel

Para visualizar a versão no Kernel, alguns comandos:

Padrão:# uname -r

Visualiza com distro:# uname -a

Visualização mais completa:# cat /proc/version

Outar forma no Debian, por exemplo:# cat /etc/issue

Para listar os módulos disponíveis e utilizados:# lsmod

Ou# cat cat /proc/modules

Para carregar um módulo para dentro do Kernel, se não for informado ocaminho, o mesmo será procurado no arquivo /etc/modules.conf# insmod [opções] [módulo]

Para remover ou descarregar um módulo do Kernel(quando não estiver emuso):# rmmod [opções] [módulo]

http://debian.linux/

95 de 190 22-07-2013 21:21

Page 96: Cur So Certifica o Linux Lp i

Para obter informações sobre determinado módulo:# modinfo [opções] [módulo]

O MAIS USADO DE TODOS, usado para carregar e descarregar os módulosde forma inteligente do Kernel:# modprobe [opções] [módulo] [parâmetros do módulo]

Cria uma lista de dependências entre módulos# depmode [opções]

Para Instalar um novo Kernel, consulte esse link:Clique aqui - Como Compilar o Kernel

Curso Certificação Linux LPI-102: Fundamentos e Serviços deRede - TCP-IPv4

O TCP/IP é um conjunto de protocolos de comunicação entrecomputadores em rede (também chamado de pilha de protocolosTCP/IP). Seu nome vem de dois protocolos: o TCP (Transmission ControlProtocol - Protocolo de Controle de Transmissão) e o IP (InternetProtocol - Protocolo de Interconexão). O endereço IP é escrito na notação decimal com 4 posiçõe de 8bitscada, totalizando 32 bits.Cada parte do endereço pode ir de 0 a 255na notação decimal.

x.y.z.k192.168.1.1

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

http://debian.linux/

96 de 190 22-07-2013 21:21

Page 97: Cur So Certifica o Linux Lp i

indicam onde começa e termina uma rede e precisam de dois IPs paramarcar o seu início e final.Essa divisão é feita utilizando a máscara derede.

IP: 192.168.1.1Subrede: 255.255.255.0

Os bits de valor 1 na máscara iddicam quais bits do endereço serãousados como endereçamento de rede.O valor 0 indica os bits que serãousados como endereçamento de máquinas.Veja o exemploabaixo(192.168.1.1):

O modelo TCP/IP tem 5 classes de endereços definidas pelas letras: A, B, C,D e E.

Classe A:

Classe B:

http://debian.linux/

97 de 190 22-07-2013 21:21

Page 98: Cur So Certifica o Linux Lp i

Classe C:

Classe D e Classe E:

Existem alguns endereços IP especiais que são reservados para funçõesespecíficas que não podem ser utilizados como endereços de uma máquinada rede.A classe A 127.0.0.1 é utilizada como referência a própria

http://debian.linux/

98 de 190 22-07-2013 21:21

Page 99: Cur So Certifica o Linux Lp i

máquina.Normalmente o endereço 127.0.0.1 é associado ao nomelocalhost.

O modelo inicial do TCP/IP é baseado em 4 níveis: Host/rede; Inter-rede;Transporte; e Aplicação. Surgiu, então, um modelo híbrido, com 5camadas, que retira o excesso do modelo OSI e melhora o modelo TCP/IP:Física; Enlace; Rede; Transporte; e Aplicação.

http://debian.linux/

99 de 190 22-07-2013 21:21

Page 100: Cur So Certifica o Linux Lp i

As aplicações fazem acesso à camada de transporte através deportas.Elas podem ser vistas como canais de comunicações.Cada porta éreferênciada como número inteiro, que a identifica e a aplicação que eladá suporte.Este número é um valo de 16-bit, que vai do 1 ao 65535 emdecimal. Os pacotes TCP e UDP contêm em seu cabeçalho informações comoendereço IP do remetente, porta de origem, endereço IP e porta dedestino.Cada serviço utiliaz uma única porta. O snúmeros de 1 a 1024 sõ chamados de portas privilegiadas porque osserviços oferecidos através delas executam com autoridade de super-usuário. O arquivo SERVICES definem os serviços e as portas conhecidas pelosistema Linux: # cat /etc/services

Curso Certificação Linux LPI-102: Utilitários e Ferramentas doTCP/IP

http://debian.linux/

100 de 190 22-07-2013 21:21

Page 101: Cur So Certifica o Linux Lp i

Principais ferramentas do TCP/IP no Linux:

digpingtraceroutewhoistelnetftphost

Dig:

O comando dig tem como função primária retornar o dns da rede, mastambém pode ser usado para pegar o ip de um host ou retornar o nome dohost de um ip dado.

# dig [endereço]

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 A

;; ANSWER SECTION:www.marcospinguim.blogspot.com. 595 IN CNAME blogspot.l.googleusercontent.com.blogspot.l.googleusercontent.com. 205 IN A 74.125.234.107blogspot.l.googleusercontent.com. 205 IN A 74.125.234.108blogspot.l.googleusercontent.com. 205 IN A 74.125.234.106

;; 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

Ping:

http://debian.linux/

101 de 190 22-07-2013 21:21

Page 102: Cur So Certifica o Linux Lp i

Ele usa o protocolo ICMP obrigatório ECHO_REQUEST datagrama deobter uma ECHO_RESPONSE ICMP de um host ou gateway.ECHO_REQUEST datagramas (pings ``'') tem um cabeçalho de IP e ICMP,seguido por um struct timeval e, em seguida, um número arbitrário dealmofada ``'' bytes usados para preencher o pacote.

# ping [opções] [endereço(HOST ou IP)]

exemplo(a opção -c testa o número 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=407ms^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 999msrtt min/avg/max/mdev = 407.638/605.599/803.561/197.963 msmarcos@debian:~$ ping -c4 www.marcospinguim.blogspot.comPING 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=655ms64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=2 ttl=57 time=271ms64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=3 ttl=57 time=19.1ms64 bytes from gru03s08-in-f11.1e100.net (74.125.234.107): icmp_req=4 ttl=57 time=117ms

--- blogspot.l.googleusercontent.com ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3052msrtt 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 seucaminho para um determinado host. Ele utiliza o protocolo IP tempo devida (TTL) de campo e as tentativas de obter uma resposta ICMPTIME_EXCEEDED de cada gateway ao longo do caminho para o host.

# traceroute [opções] [endereço]

exemplo:

http://debian.linux/

102 de 190 22-07-2013 21:21

Page 103: Cur So Certifica o Linux Lp i

#traceroute www.marcospinguim.blogspot.com

traceroute to www.marcospinguim.blogspot.com (74.125.234.204), 30 hops max, 60 bytepackets 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 serviço para consultar a informação sobre umdomínio de Internet, quem é o dono do domínio, quando expira o domínio,quem é o registrador do domínio, seus DNS-s. Através desta web ou dequalquer web que ofereça a busca de domínios, ou serviço whois se podever via web.

# whois objeto[@servidor]

exemplo(nesse caso não 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 oprotocolo TELNET. Se o telnet é invocado sem o argumento host, ele entraem modo de comando, indicado por seu prompt (telnet>) Neste modo, eleaceita e executa os comandos listados abaixo. Se ele é chamado comargumentos, ele executa um comando de abertura com esses argumentos.

# telnet [endereço] [porta]

exemplo(nesse caso não retornou dados):

$ telnet www.marcospinguim.blogspot.com

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

http://debian.linux/

103 de 190 22-07-2013 21:21

Page 104: Cur So Certifica o Linux Lp i

known

FTP:

Clique aqui para mais informações sobre FTP

Host:

É um utilitário simples para a realização de pesquisas de DNS. Énormalmente usado para converter nomes em endereços IP e vice-versa.Quando não há argumentos ou opções são dadas, anfitrião imprime umbreve resumo de seus argumentos de linha de comando e opções.

# host [opções] [endereço] [servidor]

exemplo:

$ host www.marcospinguim.blogspot.com

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

Até a próxima!

Curso Certificação Linux LPI-102: Configurando a Rede

http://debian.linux/

104 de 190 22-07-2013 21:21

Page 105: Cur So Certifica o Linux Lp i

Várias distribuições oferecem ferramentas próprias para a configuraçãoe carga dos recursos de rede.Entretanto alguns comandos, arquivos econceitos são aplicáveis a todas elas.Neste tópico será abordado aconfiguração de uma rede TCP/IP em dispositivos ethernet.

O primeiro passo é conhecer os arquivos de configuração de rede comuns atodas as distribuições.Segue:

1-Ver o nome do sistema:

# cat /etc/hostname

2-Este arquivo faz o mapeamento entre endereços IP e nomes de máquinasde rede e é utilizado para resolução de nomes durante o processo de bootenquanto nenhum servidor de DNS entrou em ação.

# cat /etc/hosts

3-Este arquivo especifica o endereço IP de um ou mais servidores de DNSpara resolução de nomes.

# cat /etc/resolv.conf

4-Este arquivo especifica a ordem de procura para a resolução de nomes.Osistema pode procurar os endereços IPs no arquivo /etc/hosts (hosts) epelo serviço de DNS (bind).A opção multi on habilita mais de um IP paradeterminada máquina.

# cat /etc/host.conf

5-Este arquivo é a evolução do /etc/host.conf e possibilita que a ordem deprocura para resolução de nomes seja customizada para cada serviço.Ele éutilizado nas últimas distribuições por diversas bibliotecas ao invés do/etc/host.conf.

# cat /etc/nsswitch.conf

http://debian.linux/

105 de 190 22-07-2013 21:21

Page 106: Cur So Certifica o Linux Lp i

6-Descrever endereçamentos de rede, e portanto os endereços deveterminar com .0.

# cat /etc/networks

7- Este comando mostra o nome local da máquina.Também pode serutilizado para trocar o nome da máquina se um novo nome for fornecidocomo argumento.Ele suporta a opção --fdqn (Fully Qualified Domain Name), que retorna onome do sistema mais o domínio:

# hostname --fqdn

8-Retorna ou configura o domínio Internet da máquina.

# dnsdomainname

9- ifconfig cria e/ou configura as interfaces de rede e seus parâmetros.Estaoperação é geralmente feita durante o processo de carga do sistema. Se não for passado nenhum parâmetro, ele exibe as configurações dasinterfaces ativas. Os parâmetros podem ser:

Como configurar o IP, máscara 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

http://debian.linux/

106 de 190 22-07-2013 21:21

Page 107: Cur So Certifica o Linux Lp i

10- O comando netstat exibe as conexões de rede, tabela de rotas,estatíticas das interfaces, etc.

# netstat [opções]

11-O comando route manipula a tabela de rotas do Kernel.Seu usoprimário é para adicionar ou apagar rotas estáticas para máquinas ouredes específicas. Se o route for utilizado sem nenhuma opção, exibe a tabela de rotas.Paraadicionar uma nova rota utilizamos o parâmetro add.O parâmetro delapaga uma rota. As opções para os parâmetros add e del são: -netmask máscara >> especifica a máscara de subrede para umdeterminado destino. -gw endereço >> especifica o gateway que será utilizado para alcançaruma determinada máquina ou rede.

# route

12-tcpdump é uma ferramenta utilizada para monitorar os pacotestrafegados numa rede de computadores. Ela mostra os cabeçalhos dospacotes que passam pela interface de rede.

Exemplo de comando tcpdump para mostrar quais as ligações de umdeterminado endereço tcp-ip à porta 80 do seu servidor: tcpdump -ni eth0src "numero ip" and dst port 80

# tcpdump -i eth0

Conexões de origem podem ser monitoradas utilizando o parâmetro srchost, um exemplo simples seria monitorarmos o tráfego que vem de192.168.0.9 para nosso computador, com o ip 192.168.0.2. A linha decomando ficaria da seguinte forma:

# tcpdump -i eth0 src host 192.168.0.9

Se quisermos monitorar as conexões especificando um host de destino,poderíamos fazê-lo com o parâmetro dst host, o exemplo abaixo mostra

http://debian.linux/

107 de 190 22-07-2013 21:21

Page 108: Cur So Certifica o Linux Lp i

todo o tráfego 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 também podemos especificar exceções com o parâmetro nothost, por exemplo, em nosso servidor queremos ver todo o tráfego que sepassa em sua interface, exceto o de 192.168.0.8, faríamos da seguinteforma:

# tcpdump -i eth0 not host 192.168.0.9

No tcpdump podemos também especificar portas de origem e destino comos comandos src port e dst port, um exemplo seria monitorarmos o tráfegodestinado à porta 80 (http), para isso utilizaríamos a linha de comandosabaixo e navegaríamos em um site qualquer:

# tcpdump -i eth0 dst port 80

Para verificarmos o tráfego da porta de origem 32881 por exemplo,faríamos da seguinte forma:

# tcpdump -i eth0 src port 32881

Muitas opções avançadas podem ser obtidas com o tcpdump, essas sãoalgumas opções básicas, porém fundamentais para quem quer aprendersobre sniffers.

Curso Certificação Linux LPI-102: Configurando o DHCP

http://debian.linux/

108 de 190 22-07-2013 21:21

Page 109: Cur So Certifica o Linux Lp i

Hoje em dia, quase todas as redes utilizam algum tipo de servidorDHCP. Em geral, eles são ativados automaticamente ao compartilhar aconexão ou junto com algum outro serviço, de forma que você acaba nãoaprendendo muita coisa sobre a sua configuração.

De um modo geral, o trabalho de um servidor DHCP é bastante simples.Ele responde aos pacotes de broadcast das estações, enviando um pacotecom um dos endereços IP disponíveis e os demais dados da rede. Ospacotes de broadcast são endereçados ao endereço "255.255.255.255" esão retransmitidos pelo switch da rede para todas as portas, diferente dospacotes endereçados a um endereço específico, que são transmitidosapenas na porta relacionada a ele.

Periodicamente o servidor DHCP verifica se as estações ainda estão lá,exigindo uma renovação do "aluguel" do endereço IP (opção "lease time").Isso permite que os endereços IP sejam gastos apenas com quemrealmente estiver online, evitando que os endereços disponíveis seesgotem.

O servidor DHCP mais usado no Linux é o ISC DHCP, desenvolvido pelaInternet Systems Consortium, uma organização sem fins lucrativosdedicada a desenvolver serviços de infra-estrutura usados na Internet,incluindo o Bind e o NTPD. Caso esteja curioso, a página com o códigofonte é a: http://www.isc.org/sw/dhcp/.

Nas distribuições derivadas do Debian, o pacote correspondente aoservidor DHCP se chama "dhcp3-server" e pode ser instalado via apt-get:

# apt-get install dhcp3-server

http://debian.linux/

109 de 190 22-07-2013 21:21

Page 110: Cur So Certifica o Linux Lp i

Com o pacote instalado, você pode ativar e desativar o serviço usando oscomandos:

# /etc/init.d/dhcp3-server start

# /etc/init.d/dhcp3-server stop

Como você pode imaginar, o "3" corresponde à versão do software.Eventualmente ele será substituído pelo "dhcp4-server", o que resultarátambém na mudança do nome da pasta onde fica o arquivo e do script deinicialização referente ao serviço.

No Fedora e no CentOS, o pacote se chama simplesmente "dhcp" e podeser instalado usando o yum:

# yum install dhcp

Embora o pacote se chame apenas "dhcp", o script referente ao serviço sechama "dhcpd", de forma que os comandos para iniciar e parar o serviçosão:

# service dhcpd start

# service dhcpd stop

Diferente do Debian, o serviço não será configurado para ser inicializadodurante o boot depois de instalado. Você precisa ativá-lo manualmenteusando o comando "chkconfig":

# chkconfig dhcpd on

O arquivo de configuração é o "dhcpd.conf". Nas distribuições derivadas doDebian, o caminho completo para ele é "/etc/dhcp3/dhcpd.conf", enquantono Fedora e no CentOS é apenas "/etc/dhcpd.conf", ou seja, um diretórioacima.

Apesar dessas diferenças estéticas, o que interessa mesmo é aconfiguração do arquivo e esta sim é igual, independentemente dadistribuição. Este é um exemplo de arquivo de configuração básico:

# /etc/dhcp3/dhcpd.conf

ddns-update-style none;default-lease-time 600;

http://debian.linux/

110 de 190 22-07-2013 21:21

Page 111: Cur So Certifica o Linux Lp i

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 opção " default-lease-time" controla o tempo de renovação dosendereços IP. O "600" indica que o servidor verifica a cada dez minutos seas estações ainda estão ativas. Se você tiver mais endereços IP do quemáquinas, os endereços IP das estações raramente vão precisar mudar.Mas, no caso de uma rede congestionada, o "max-lease-time" determina otempo máximo que uma estação pode usar um determinado endereço IP.Isso foi planejado para ambientes onde haja escassez de endereços IP,como, por exemplo, em um provedor de acesso, onde sempre existem maisclientes do que endereços IP disponíveis e se trabalha contando que nemtodos vão ficar conectados simultaneamente. Em condições normais, essasduas opções não são muito importantes. O que interessa mesmo é o blocoque vai logo abaixo, onde ficam as configurações da rede.

A opção "range" determina a faixa de endereços IP que será usada peloservidor. Se você utiliza a faixa de endereços 192.168.1.1 até192.168.1.254, por exemplo, pode reservar os endereços de 192.168.1.1 a192.168.1.100 para estações configuradas com IP fixo e usar os demaispara o DHCP, ou então reservar uma faixa específica para ele, de192.168.1.101 a 192.168.1.201, por exemplo. O importante é usar faixasseparadas para o DHCP e os micros configurados com IP fixo.

Na "option routers" vai o endereço do default gateway da rede, ou seja, oendereço do servidor que está compartilhando a conexão. Não é necessárioque o mesmo micro que está compartilhando a conexão rode também oservidor DHCP. Pode ser, por exemplo, que na sua rede o gateway seja opróprio modem ADSL que está compartilhando a conexão e o DHCP sejaum dos PCs.

A opção "option domain-name-servers" contém os servidores DNS queserão usados pelas estações. Ao usar dois ou mais endereços, eles devemser separados por vírgula, sem espaços. Em geral, você vai usar os própriosendereços DNS do provedor, a menos que você configure um servidor DNSinterno na sua rede (que pode ser instalado no próprio micro que estácompartilhando a conexão e rodando o DHCP). Estes serviços consomempoucos recursos da máquina.

O servidor DNS mais usado no Linux é o Bind. Nas distribuições derivadasdo Debian você pode instalá-lo com um "apt-get install bind". O servidor

http://debian.linux/

111 de 190 22-07-2013 21:21

Page 112: Cur So Certifica o Linux Lp i

DNS pode ser configurado para implementar um sistema de domínios esubdomínios na sua rede, mas o uso mais comum é simplesmente fazer um"cache", onde o servidor DNS simplesmente repassa as requisições paraum dos 13 root servers da internet e vai armazenando os endereços que jáforam acessados. Mais adiante teremos um capítulo inteiro dedicado a ele.

Você pode substituir o arquivo de configuração padrão por este modelo, oueditá-lo conforme a necessidade. Ao fazer qualquer alteração 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 configurado, você pode testar a configuração em umdos clientes Linux, configurando a rede usando o "dhclient", seguido dainterface a ser configurada. Ele mostra toda a negociação entre o servidore o cliente, o que permite que você verifique se o servidor está usando aconfiguração definida por você:

# dhclient eth0

Internet Systems Consortium DHCP Client V3.0.4Copyright 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:dbSending on LPF/eth1/00:15:00:4b:68:dbSending on Socket/fallbackDHCPREQUEST on eth1 to 255.255.255.255 port 67DHCPACK from 192.168.1.1bound to 192.168.1.199 -- renewal in 245 seconds.

Como você pode ver, o cliente deve receber a resposta a partir do endereçoIP do servidor rodando o servidor DHCP e ser configurado com umendereço dentro da faixa definida por você.

Uma observação importante é que sempre que configurar um servidor comduas placas de rede, você deve configurar o servidor DHCP para escutarapenas na placa da rede local. No Debian, esta configuração vai no arquivo"/etc/default/dhcp3-server". Procure pela linha:

INTERFACES=""

... e adicione a placa que o servidor DHCP deve escutar, como em:

http://debian.linux/

112 de 190 22-07-2013 21:21

Page 113: Cur So Certifica o Linux Lp i

INTERFACES="eth0"

Para que a configuração entre em vigor, basta reiniciar o serviçonovamente

Fonte: www.hardware.com.br

Curso Certificação Linux LPI-102: Serviços de Rede no Linux

Serviços de rede é o que está disponível para ser acessado pelousuário. No TCP/IP, cada serviço é associado a um número chamadoporta que é onde o servidor espera pelas conexões dos computadoresclientes. Uma porta de rede pode ser referenciada tanto pelo númerocomo pelo nome do serviço.

Abaixo, alguns exemplos de portas padrões usadas em serviços TCP/IP:

21 - FTP (transferência de arquivos) 23 - Telnet (terminal virtual remoto) 25 - Smtp (envio de e-mails) 53 - DNS (resolvedor de nomes) 79 - Finger (detalhes sobre usuários do sistema) 80 - http (protocolo www - transferência de páginas Internet) 110 - Pop-3 (recebimento de mensagens) 119 - NNTP (usado por programas de noticias)

http://debian.linux/

113 de 190 22-07-2013 21:21

Page 114: Cur So Certifica o Linux Lp i

O arquivo padrão responsável pelo mapeamento do nome dos serviços edas portas mais utilizadas é o /etc/services (para detalhes sobre o seuformato, veja a [#s-rede-outros-services /etc/services.

Para instalá-lo, basta:

apt-get install openbsd-inetd

Serviços iniciados como Daemons de rede

Serviços de rede iniciados como daemons ficam residente o tempo todo namemória esperando que alguém se conecte (também chamado de modostandalone). Um exemplo de daemon é o servidor proxy squid e o servidorweb Apache operando no modo daemon.

Alguns programas servidores oferecem a opção de serem executados comodaemons ou através do inetd. É recomendável escolher daemon se oserviço for solicitado frequentemente (como é o caso dos servidores webou proxy).

Para verificar se um programa está rodando como daemon, basta digitar psax e procurar o nome do programa, em caso positivo ele é um daemon.

Normalmente os programas que são iniciados como daemons possuemseus próprios recursos de segurança/autenticação para decidir quem temou não permissão de se conectar.

Serviços iniciados através do inetd

Serviços iniciados pelo inetd são carregados para a memória somentequando são solicitados. O controle de quais serviços podem ser carregadose seus parâmetros, são feitos através do arquivo

/etc/inetd.conf.

Um daemon chamado inetd lê as configurações deste arquivo e permaneceresidente na memória, esperando pela conexão dos clientes. Quando umaconexão é solicitada, o daemon inetd verifica as permissões de acesso nosarquivos /etc/hosts.allow e /etc/hosts.deny e carrega o programa servidorcorrespondente no arquivo /etc/inetd.conf. Um arquivo também importanteneste processo é o /etc/services que faz o mapeamento das portas e nomesdos serviços.

Alguns programas servidores oferecem a opção de serem executados comodaemons ou através do inetd. É recomendável escolher inetd se o serviçonão for solicitado frequentemente (como é o caso de servidores ftp, telnet,talk, etc).

http://debian.linux/

114 de 190 22-07-2013 21:21

Page 115: Cur So Certifica o Linux Lp i

/etc/inetd.conf

O arquivo /etc/inetd.conf é um arquivo de configuração para o daemonservidor inetd. Sua função é dizer ao inetd o que fazer quando receberuma requisição de conexão para um serviço em particular. Para cadaserviço que deseja aceitar conexões, você precisa dizer ao inetd qualdaemon servidor executar e como executa-lo.

Seu formato é também muito simples. É um arquivo texto com cada linhadescrevendo um serviço que deseja oferecer. Qualquer texto em uma linhaseguindo uma "#" é ignorada e considerada um comentário. Cada linhacontém sete campos separados por qualquer número de espaços embranco (tab ou espaços). O formato geral é o seguinte:

serviço tipo_soquete proto opções.num usuário caminho_serv. opções_serv.

serviço

É o serviço relevante a este arquivo de configuração pego do arquivo/etc/services.tipo_soquete

Este campo descreve o tipo do soquete que este item utilizará, valorespermitidos são: stream, dgram, raw, rdm, ou seqpacket. Isto é um poucotécnico de natureza, mas como uma regra geral, todos os serviçosbaseados em tcp usam stream e todos os protocolos baseados em udpusam dgram. Somente alguns tipos de daemons especiais de servidoresusam os outros valores.protocolo

O protocolo é considerado válido para esta item. Isto deve bater com umitem apropriado no arquivo /etc/services e tipicamente será tcp ou udp.Servidores baseados no Sun RPC (Remote Procedure Call), utilizam rpc/tcpou rpc/udp.opções

Existem somente duas configurações para este campo. A configuraçãodeste campo diz ao inetd se o programa servidor de rede libera o soqueteapós ele ser iniciado e então se inetd pode iniciar outra cópia na próximarequisição de conexão, ou se o inetd deve aguardar e assumir que qualquerservidor já em execução pegará a nova requisição de conexão.

Este é um pequeno truque de trabalho, mas como uma regra, todos osservidores tcp devem ter este parâmetro ajustado para nowait e a maiorparte dos servidores udp deve tê-lo ajustado para wait. Foi alertado queexistem algumas excessões a isto, assim deixo isto como exemplo se nãoestiver seguro. O número especificado após o "." é opcional e define aquantidade máxima de vezes que o serviço poderá ser executado durante 1minuto. Se o serviço for executado mais vezes do que este valor, ele seráautomaticamente desativado pelo inetd e uma mensagem será mostrada

http://debian.linux/

115 de 190 22-07-2013 21:21

Page 116: Cur So Certifica o Linux Lp i

no log do sistema avisando sobre o fato. Para reativar o serviçointerrompido, reinicie o inetd com: killall -HUP inetd. O valor padrão é 40.

usuário

Este campo descreve que conta de usuário usuário no arquivo/etc/passwd será escolhida como dono do daemon de rede quando este foriniciado. Isto é muito útil se você deseja diminuir os riscos de segurança.Você pode ajustar o usuário de qualquer item para o usuário nobody, assimse a segurança do servidor de redes é quebrada, a possibilidade deproblemas é minimizada. Normalmente este campo é ajustado para root,porque muitos servidores requerem privilégios de usuário root parafuncionarem 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 nestecampo qualquer argumento da linha de comando que deseje passar para odaemon servidor quando for iniciado.

Uma dica que pode aumentar significativamente a segurança de seusistema é comentar (colocar uma #no inicio da linha) os serviços que nãoserão utilizados.

Abaixo um modelo de arquivo /etc/inetd.conf usado em sistemas Debian:

# /etc/inetd.conf: veja inetd(8) para mais detalhes. # # Banco de Dados de configurações do servidor Internet # # # Linhas iniciando com "#:LABEL:" ou "#<off>#" não devem # ser alteradas a não ser que saiba o que está fazendo! # # # Os pacotes devem modificar este arquivo usando update-inetd(8) # # <nome_serviço> <tipo_soquete> <proto> <opções> <usuário> <caminho_servidor><args>

# #:INTERNO: Serviços internos #echo stream tcp nowait root internal #echo dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal #discard stream tcp nowait root internal #discard dgram udp wait root internal #daytime stream tcp nowait root internal #daytime dgram udp wait root internal time stream tcp nowait root internal #time dgram udp wait root internal

http://debian.linux/

116 de 190 22-07-2013 21:21

Page 117: Cur So Certifica o Linux Lp i

#:PADRÕES: Estes são serviços padrões.

#:BSD: Shell, login, exec e talk são protocolos BSD. #shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd #login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd talk dgram udp wait.10 nobody.tty /usr/sbin/tcpd /usr/sbin/in.talkd ntalk dgram udp wait.10 nobody.tty /usr/sbin/tcpd /usr/sbin/in.ntalkd

#:MAIL: Mail, news e serviços uucp. smtp stream tcp nowait.60 mail /usr/sbin/exim exim-bs

#:INFO: Serviços informativos

#:BOOT: O serviço Tftp é oferecido primariamente para a inicialização. Algunssites # o executam somente em máquinas atuando como "servidores de inicialização".

#:RPC: Serviços baseados em RPC

#:HAM-RADIO: serviços de rádio amador

#:OTHER: Outros serviços

Para saber como configurar o inetd.conf para habilitar uma porta, acesseesse LINK(Como configurar o inetd.conf para habilitar uma porta).

Utilizando TCPWRAPPERS para segurança do inetd

O tcpwrapper regula o acesso aos serviços oferecidos pelo inetd.Oprocesso utilizado é o /usr/sbin/tcpd.Ele consulta dois arquivos quedefinem o acesso:

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

As regras contidas no primeiro arquivo liberam o acesso aos serviços.Osegundo arquivo proíbe o acesso. Basicamente as regras destes arquivos seguem o padrão. nome_do_serviço : endereços

http://debian.linux/

117 de 190 22-07-2013 21:21

Page 118: Cur So Certifica o Linux Lp i

As palavras LOCAL e ALL podem ser utilizadas para identificar todos osclientes que são do mesmo domínio que o servidor e todas as máquinas. Veja o exemplo de /etc/hosts.allow:

# cat /etc/hosts.allowin.telnetd : LOCALrsyncd : 172.20.0.0/255.255.255.0in.ftpd : ALL

Se neste arquivos de controle não existir uma regra para umdeterminado serviço habilitado no inetd, o acesso será liberado. Serviços de rede com xinetd

Uma rede de computadores serve basicamente, para possibilitar ocompartilhamento de recursos, como arquivos e impressoras. É possíveldizer que o compartilhamento de arquivos e impressoras é um Serviçode Rede.

Outros serviços de rede tornaram-se muito populares com a expansão daInternet nos últimos anos. Tais serviços, como o WWW e FTP, requeremque um computador execute algum processo que atenda pelas requisiçõesdos clientes que desejam acessá-los. Isto implica em um modelo cliente-servidor, onde normalmente a máquina do usuário solicita alguma coisa,através de um programa cliente como o browser, por exemplo, e o processoservidor (que implementa o serviço da rede) responde.

O sistema operacional UNIX, e, portanto o Linux, sempre foi muitoconhecido por oferecer diversos serviços de rede tradicionais. Tais serviçosvão desde a possibilidade de saber quem está usando uma máquina, até opróprio serviço de transferência de arquivos.

Muitos serviços de rede são implementados através de processosdedicados que esperam por requisições que chegam da rede. Mas dada arazoável quantidade de serviços, um esquema interessante foiimplantado. Neste esquema, um único processo, chamado xinetd(Extend Internet Super Server), rodando na máquina que estáoferecendo os serviços de rede, é responsável por escutar as requisiçõesque chegam, e conforme a porta por onde chega à requisição, disparar eexecutar o processo correspondente àquele serviço.

http://debian.linux/

118 de 190 22-07-2013 21:21

Page 119: Cur So Certifica o Linux Lp i

Assim, da mesma forma que um endereço IP identifica uma máquina emuma rede, uma porta identifica um serviço de rede rodando dentro dedeterminada máquina. Alguns serviços funcionam sobre o protocolo detransporte TCP, outros sobre o protocolo UDP, e ainda outros funcionamsobre os dois.

O xinetd é responsável por vários serviços básicos de um sistemadisponibilizados em uma rede. Entre os serviços que ele gerencia estão osserviços Telnet e POP.

Esses serviços são executados por programas denominados servidores,que nada mais são do que programas que abrem uma determinada portae ficam aguardando por solicitações de conexão.

Na maioria dos casos, quando uma solicitação é recebida o servidor criaum processo filho para tratar dessa conexão específica, enquanto oprocesso pai continua a escutar na porta aguardando novas solicitações.Desta forma existirão vários processos alocados na memória.

O xinetd carrega seu arquivo de configuração e passa a “ouvir” porconexões em portas específicas. Quando uma conexão é solicitada, o xinetdexecuta o programa servidor correspondente para manipular o serviçosolicitado. Então, desta forma, existirá apenas um servidor em memóriaesperando por uma solicitação.

O superservidor ou xinetd é configurado para iniciar a sua execuçãoquando o sistema é inicializado, recebendo a lista de serviços a seremmonitorados a partir de um arquivo denominado /etc/xinetd.conf.

Curso Certificação Linux LPI-102: Arquivos de LOG

http://debian.linux/

119 de 190 22-07-2013 21:21

Page 120: Cur So Certifica o Linux Lp i

O Linux possui um serviço especial chamado syslog que faz todo otrabalho sujo de filtrar e gravar mensagens importantes não só dosistema local, mas de outros sistemas que suportam o syslog. Além de gravar em arquivos, as mensagens podem ser enviadas para atela de console e telas de terminal. O arquivo de configuração /etc/syslog.conf controla "o que" vai sergravado é chamado de facilidade.As facilidades são na verdade a origemdas mensagens.Cada facilidade possui nívei de severidade.

Verificar o logs no syslog: tail /var/log/syslog

Facilidade do Syslog

° auth - Mensagens de segurança/autorização (privativas). ° authpriv - Mensagens de segurança/autorização (privativas). ° cron - Daemons de agendamento de tarefas (cron e at). ° daemon - Outros daemons do sistema que não possuem facilidadesespecíficas. ° kern - Mensagens do Kernel ° lpr - Subsistema de impressão ° mail - Subsistema de e-mail ° news Subsistema de notícias da USENET ° syslog - Mensagens internas geradas pelo syslogd ° user - Mensagens genéricas de nível do usuário ° local0 até local7 - Reservados para uso local por outros programas quedesejem escrever seus logs no syslog. Níveis de Severidade

° debug (7) - Informações de debug (depuração) ° info (6) - Mensagens apenas para informação ° notice (5)- Condições normais, mas significativas ° warning (4)-Condições de alerta ° err (3) - Condições de erro ° crit (2) - Condições críticas ° alert (1) - Ações imediatas são requeridas ° emerg (0) - Sistema indisponível Para cada facilidade podemos especificar um nível de severidade, quevai definir o grau de importância da mensagem. O arquivo [/etc/syslog.conf] possui o seguinte formato:

http://debian.linux/

120 de 190 22-07-2013 21:21

Page 121: Cur So Certifica o Linux Lp i

faciliade.nivel ação

Ações do Syslog

A ação específica o que deverá ser feito com a mensagem.Pode ser umarquivo de LOG, um PIPE (direcionado para um utilitário ou aplicativo) umoutro sistema remoto, determinados usuários ou todos os usuários. ° Arquivo - As mensagens são gravadas em arquivos no sistema. ° PIPE - As mensagens são enviadas para um arquivo especialchamado file descriptor. ° Terminal e Console - Podemos especificar uma tela local docomputador (console) através do caminho /dev/console ou um terminalremoto tty para onde as mensagens serão enviadas. ° Computador Remoto - Podemos enviar as mensagens do syslog parauma máquina remota precedendo a ação com o símbolo "@" seguido donome do host.Em questões de segurança, enviar a mensagens para outramáquina pode ser especialmente importante. ° Usuários - Podemos especificar um determinado usuário ou uma listade usuários (separados por vírgula) para onde as mensagens serãoenviadas no terminal quando estes estiverem logados no sistema. Caracteres especiais

° Sempre use TBS ao invés de espaços. ° Os caracteres ("*", "=", "!" e "-") têm funções especiais. Para visualizar o syslog: # /etc/syslog.conf

A rotação dos arquivos de LOG é feita no seu arquivo principal: # cat /etc/logrotate.conf

Curso Certificação Linux LPI-102: X Window System

http://debian.linux/

121 de 190 22-07-2013 21:21

Page 122: Cur So Certifica o Linux Lp i

X Window System, X-Window, X11 ou simplesmente X é um softwarede sistema e um protocolo que fornece uma base para interfacesgráficas de usuário (com o conceito de janelas) e funcionalidade rica dedispositivos de entrada para redes de computadores. Ele cria umacamada de abstração de hardware onde o software é escrito para usarum conjunto generalizado de comandos, permitindo a independência dedispositivo e reutilização programas em qualquer computador queimplemente o X.

Originalmente chamado simplesmente de X, foi desenvolvido no MIT em1984. Atualmente está na versão 11, publicada em setembro de 1987, e porisso carrega no nome este número.

X-Window é o toolkit e protocolo padrão para GUI nos sistemas Unix eassemelhados, como o Linux, mas existem versões para outros sistemasoperacionais, como o Microsoft Windows e o Mac OS, por exemplo. Configurando o X no Debian

# dpkg-reconfigure xserver-xorg

Iniciar o X (caso a inicialização seja em modo texto):

$ startx

O script de arranque para os daemons de gestão de ecrã verifica oconteúdo do ficheiro

/etc/X11/default-display-manager

http://debian.linux/

122 de 190 22-07-2013 21:21

Page 123: Cur So Certifica o Linux Lp i

mesmo antes de executar os próprios. Isto assegura que se tem apenasum programa daemon de gestor de ecrã X activado. Essencialmente, todos estes programas executam o script/etc/X11/Xsession

. Então o script "/etc/X11/Xsession" executa run-parts(8) como acção paraexecutar os scripts no directório "/etc/X11/Xsession.d/". Isto éessencialmente uma execução de um primeiro programa o qual éencontrado na seguinte ordem com o comando embutido exec.

O script especificado como o argumento de /etc/X11/Xsession" pelogestor de display X, se estiver definido.

O script "~/.xsession" ou "~/.Xsession", se estiver definido.

O comando/usr/bin/x-session-manager

, se estiver definido.

O comando/usr/bin/x-window-manager

. se estiver definido.

O comando/usr/bin/x-terminal-emulator

, se estiver definido.

Para mais informações sobre o X no Debian, consultehttp://www.debian.org/doc/manuals/debian-reference/ch07.pt.html

Curso Certificação Linux LPI-102: Impressão no Linux

http://debian.linux/

123 de 190 22-07-2013 21:21

Page 124: Cur So Certifica o Linux Lp i

Curso Certificação Linux LPI-102: Impressão no Linux

lp - envia requisições à impressora

Sintaxe: lp [-mw] [-ddest] [-n#] filename...

Opções:

-w: escreve mensagem no terminal do usuário -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: fila (queue) de impressão$ lpq

Gerenciar: cancelando impressões/jobs$ lprm

http://debian.linux/

124 de 190 22-07-2013 21:21

Page 125: Cur So Certifica o Linux Lp i

(cancela a última impressão/job do usuário corrente)

Gerenciar: controlando o lpd com o lpc$ lpc

Arquivo de configuração - 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 osenderecos dos hosts remotos que podem imprimir)

Arquivo de configuração - geral# vi /etc/printcap

Compartilhando impressoras

O Cups, o servidor de impressão padrão no Linux, possui um recursonativo de compartilhamento de impressoras. Ele permite não apenascompartilhar impressoras com outras máquinas Linux, mas também commáquinas Windows da rede, através de um servidor unificado. Parahabilitar o compartilhamento, edite o arquivo "/etc/cups/cupsd.conf",deixando-o com o seguinte conteúdo:

Port 631Listen 631Browsing OnBrowseAllow AllBrowseInterval 30BrowseAddress @LOCALBrowseInterval 30

Order allow,denyAllow all

Order allow,denyAllow all

Encryption RequiredOrder allow,denyAllow localhost

AuthType Basic

http://debian.linux/

125 de 190 22-07-2013 21:21

Page 126: Cur So Certifica o Linux Lp i

Require user @SYSTEMOrder allow,denyAllow localhost

Veja que a seção "/printers", que contém as impressoras, fica compermissão de acesso para todo mundo, enquanto o utilitário deadministração do Cups (seção /admin) continua acessível apenaslocalmente, através do endereço http://127.0.0.1:631.

Até aqui, não estamos impondo nenhum tipo de restrição, por issocontamos com o firewall para bloquear qualquer tentativa de impressãoproveniente de micros da Internet. Você pode também fazer ocompartilhamento de uma forma mais segura, especificando manualmentea faixa de endereços da rede local, ou mesmo especificandoindividualmente os endereços IP que poderão imprimir. Neste caso, asseções (onde vai a configuração que permite aos clientes verem asimpressoras disponíveis) e ficaria:

Order Deny,AllowDeny From AllAllow From 127.0.0.1Allow From 192.168.0.*

Order Deny,AllowDeny From AllAllow From 127.0.0.1Allow From 192.168.0.*

Não se esqueça de incluir o endereço "127.0.0.1" na lista. Caso contrário,todo mundo vai imprimir na impressora, menos você mesmo :).

Depois de alterar o arquivo, reinicie o servidor de impressão para que asalterações entrem em vigor:

# /etc/init.d/cups restart

Compartilhar impressoras através do Cups é mais simples do que fazê-loatravés do Samba e oferece a vantagem adicional de permitir o uso dorecurso de autodiscover do Cups nos clientes Linux. O autodiscoverpermite que os clientes Linux da rede reconheçam automaticamente aimpressora compartilhada e a configurem automaticamente durante oboot, sem necessidade de nenhuma intervenção manual.

http://debian.linux/

126 de 190 22-07-2013 21:21

Page 127: Cur So Certifica o Linux Lp i

Fontes:

www.hardware.com.br

www.hugoazevedo.eti.br

www.openit.com.br

Curso Certificação Linux LPI-102: Hora e Internacionalização doSistema

O diretório abaixo contém as informações de configuração das zonas defuso horário:/usr/share/zoneinfo

A zona local do sitema é determinada por um link simbólico de algumarquivo deste diretório para o arquivo:

/etc/localtime

Copia a hora corrente no relógio da máquina para o relógio da sistema,durante a carga do sistema.Este comando irá assumir que a hora nohardware é a hora local, a menos que a opção --utc seja utilizada

/sbin/hwclock

O comando date também pode ser utilizado para configurar a data e

http://debian.linux/

127 de 190 22-07-2013 21:21

Page 128: Cur So Certifica o Linux Lp i

hora do sistema. O formato que a data e hora precisam ser informadossegue a notação MMDDhhmmAAAA, segue:

° MM - mês ° DD - dia ° hh - hora ° mm - minuto ° AAAA - ano

Os dias e meses menores que 10 devem ser escritos com zero na frente eas horas no padrão 24h. Exemplo:

Configura a hora e data para Sex 29 Mar 2013 21:34 hs # date 032921342013

Curso Certificação Linux LPI-102: Servidor Postfix

O Postfix é um agente de transferência de emails (MTA), um software livrepara envio e entrega de emails. Rápido e fácil de administrar, é umaalternativa segura ao Sendmail, muito utilizado em servidores UNIX.

Ele é uma espécie de meio termo entre a simplicidade do Qmail e a farturade recursos do Exim. Entre os três, ele é o mais rápido e o mais simples deconfigurar, o que faz com que ele seja atualmente o mais popular e o quepossui mais documentação disponível. O Postfix também possui umexcelente histórico de segurança, sendo considerado por muitos tãoseguro quanto o Qmail.

Existem fortes motivos para não usar o Sendmail ou o Qmail em novasinstalações, mas temos uma boa briga entre o Postfix e o Exim. Escolhiabordar o Postfix aqui simplesmente por que, entre os dois, ele é maispopular, o que torna mais simples encontrar documentação e conseguir

http://debian.linux/

128 de 190 22-07-2013 21:21

Page 129: Cur So Certifica o Linux Lp i

ajuda quando tiver dúvidas.

Instalando o Postfix$ su# apt-get install postfix

, durante a Instalação ele deverá perguntar: Qual o tipo geral deconfiguração, marque o item Internet Site

e o nome/endereço do Servidor, digite o nome que você deseja:

, para as demais perguntas, deixe as opções defaults como já vêmpré-marcadas.

Obs.:Na pergunta: força atualizações síncronas na fila de email ? Marquecomo não:

http://debian.linux/

129 de 190 22-07-2013 21:21

Page 130: Cur So Certifica o Linux Lp i

Configuração Inicial

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

e inclua as configurações abaixo:mydomain = marcospinguim.com.brmyhostname = host.$mydomainmyorigin = $mydomainmydestination = $myhostname, $mydomainmynetworks = 127.0.0.0/8 192.168.1.1/24home_mailbox = Maildir/

mydomain: O nome do domínio do servidor de e-mail.myhostname: O nome da máquina do servidor de e-mail.myorigin: Especifica como ficará a terminação do e-mail após o @.mydestination: Os nomes dos domínios que o servidor de e-mail éresponsável.mynetworks: Especifica a qual rede que o servidor de e-mail irátrabalhar.home_mailbox: Especifica o diretório onde ficará as mensagens dee-mail.

Após isso recarregue as informações no Postfix:# /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 máquina, se não houver crie-os comuseradd, neste exemplo abaixo o usuário [marcos] enviou um e-mail para ousuário [eric], lógico que estou logado como root, mas usei o comando[MAIL from:] e especifiquei o usuário que envia o e-mail, para critério deteste.

http://debian.linux/

130 de 190 22-07-2013 21:21

Page 131: Cur So Certifica o Linux Lp i

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

# telnet localhost 25Trying ::1...Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.220 host.marcospinguim.com.br ESMTP Postfix (Ubuntu)HELO smtp.marcospinguim.com.br250 host.marcospinguim.com.brMAIL from: marcos250 2.1.0 OkRCPT to: eric250 2.1.5 OkDATA354 End data with .Este post sobre Postfix no blog é loucooooo!.250 2.0.0 Ok: queued as A8F958F5DEQUIT221 2.0.0 ByeConnection closed by foreign host.

Instalar o pacote SASL

Este recurso é importante hoje em dia, pois sem encriptação, seus e-mails(incluindo o login e senha) são transmitidos em texto plano pela rede epodem ser Sniffados. Uma vez ativo o recurso no servidor, basta marcar aopção 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 = yesbroken_sasl_auth_clients = yessmtpd_sasl_authenticated_header = yessmtpd_helo_required = yessmtpd_recipient_restrictions =permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

Depois ative ele abrindo o arquivo de configuração:# vi /etc/default/saslauthd

http://debian.linux/

131 de 190 22-07-2013 21:21

Page 132: Cur So Certifica o Linux Lp i

e inclua o código abaixo no arquivo, na verdade essa linhas já existirão,mas você deve alterá-las para ficar assim:Obs.:As linhas não estão uma abaixo da outra, procure-as e altere:START=yesOPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

, salve e feche o arquivo. Agora rode esse comando no terminal paraverificar se o usuário postfix existe:# groups postfix

, se retornar postfix : postfix , rode esse comando:# usermod -G sasl postfix

, se verificar novamente com o comando groups postfix, agora retornarápostfix : postfix sasl , caso não ocorra, dê um reload no postfix (/etc/init.d/postfix reload).

Crie o arquivo smtpd.conf no diretório "/etc/postfix/sasl" e adicione asseguintes linhas abaixo:pwcheck_method: saslauthdmech_list: plain login

Terminado as configurações, reinicie o Postfix e o serviço de autenticação:

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

Você pode ainda implementar uma criptogrfia TLS e criar o certificado, dáuma pesquisada na Internet.

Lendo os e-mails

Para poder ler as mensagens de e-mail recebidas, será usado o ServidorPOP3:

# apt-get install courier-pop-ssl

Testando o Servidor POP3

http://debian.linux/

132 de 190 22-07-2013 21:21

Page 133: Cur So Certifica o Linux Lp i

Para verificar se o Servidor POP3 está funcionando, use o Telnet para leras mensagens de e-mail recebidas:lembra que o [marcos] envioumensagem para o usuário [eric] ? Agora o [eric] irá ler. Verifique ostrechos em VERMELHO que são comandos para verificar os emails

# telnet localhost 110Trying ::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: ericDelivered-To: [email protected]: from smtp.marcospinguim.com.br (localhost [127.0.0.1])by host.marcospinguim.com.br (Postfix) with SMTP id A8F958F5DEfor ; Wed, 4 Jan 2012 12:01:31 -0200 (BRST)Message-Id: <[email protected]>Date: Wed, 4 Jan 2012 12:01:31 -0200 (BRST)From: [email protected]: undisclosed-recipients:;

Este post sobre Postfix no blog é loucooooo!.QUIT+OK Bye-bye.Connection closed by foreign host.

Obs.: Percebam que as mensagem são arquivos e ficam nas pastaMaildir/cur dos usuários (/home/usuario/Maildir/cur).

Pronto, espero que gostem e comentem!

Curso Certificação Linux LPI-102: Compartilhamento via Samba

http://debian.linux/

133 de 190 22-07-2013 21:21

Page 134: Cur So Certifica o Linux Lp i

Instale o protocolo samba:# apt-get install samba

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

Será listados os itens compartilhados, então você acessá-los com ocomando simples:# mount -t smbfs //servidor/arquivos /mnt/smb

Caso haja algum problema rode o comando# testparm

, ele exibirá um dump das configurações após lhe solicitar um[enter].Nesse caso você deverá configurar um Samba com PDC (PrimaryDomain Controller, Controlador de Domínio Primário) , se tudo tiver certoexibirá um "ROLE_DOMAIN_PDC".Caso contrário configure o samba noarquivo# /etc/samba/smb.conf

com as configurações tipo do exemplo abaixo:[global]netbios name = SERVIDORworkgroup = DOMINIOserver string = Samba %vdns proxy = nolog file = /var/log/samba/log.%mmax log size = 1000syslog = 0panic action = /usr/share/samba/panic-action %ddomain master = yesdomain logons = yespreferred master = yeslogon path =os level = 33wins support = yes

http://debian.linux/

134 de 190 22-07-2013 21:21

Page 135: Cur So Certifica o Linux Lp i

Por modo gráfico, abra o Nautilus (uma pasta qualquer no seu Linux) eaperte Ctrl+L e digite:smb://192.168.1.107

e navegue nos itens compartilhados.

Os acessos as pastas e arquivos do Windows vão depender dasconfigurações efetuadas no Windows:-se as pastas estão compartilhadas-se está para solicitar senha-...

Além desse pacote, voçê pode, se quiser, instalar outros que te ajudemcaso precise de acessos e configurações do Samba em modo gráfico, dessaforma voçê pode instalar esse conjunto abaixo:# apt-get install samba smbclient swat samba-doc

O script de instalação faz duas perguntas. A primeira é se o servidor deverodar em modo daemon ou sob o inetd. Responda "daemons" para que oservidor rode diretamente. Isso garante um melhor desempenho, melhorsegurança e evita problemas diversos de configuração relacionados ao usodo inetd, serviço 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 crieo arquivo onde serão armazenadas as senhas de acesso. Como explica oscript, "Caso você não o crie, você terá que reconfigurar o samba (eprovavelmente suas máquinas clientes) para utilização de senhas em textopuro", o que é um procedimento trabalhoso, que consiste em modificarchaves de registro em todas as máquinas Windows da rede e modificar aconfiguração de outros servidores Linux. Muito mais fácil responder "Sim"e deixar que ele utilize senhas encriptadas, que é o padrão. :)

Com os pacotes instalados, use os comandos:# /etc/init.d/samba start# /etc/init.d/samba stop

... para iniciar e parar o serviço. Por padrão, ao instalar o pacote é criadoum link na pasta "/etc/rc5.d", que ativa o servidor automaticamentedurante o boot. Para desativar a inicialização automática, use o comando:# update-rc.d -f samba remove

http://debian.linux/

135 de 190 22-07-2013 21:21

Page 136: Cur So Certifica o Linux Lp i

Para reativá-lo mais tarde, use:# update-rc.d -f samba defaults

Você pode verificar qual é a versão do Samba instalada usando o comando"smbd -V", como em:# smbd -V

Para compartilhar pastas do Linux na rede, você pode utilizar o Swat, paraisso voçê deve criar um usuário samba antes e liberar a porta do serviçopara acesso pelo browser, para criar um usuario samba, ativar a porta 901do localhost , segue respectivamente os comandos abaixo, maisinformações dos comandos use o "man comando", aqui é só uma luz paravocê poder utilizar:

Logar no swat:# smbpasswd -a marcoshttp://127.0.0.1:901/(No seu navegador, será solicitada a senha do samba, se nãohouver use do seu usuário para acesso ao seu Linux)

Para que a alteração efetuada no Swat entre em vigor, reinicie o inetd como comando:# /etc/init.d/inetd restart

Obs.:O Swat não usa encriptação de senha, ou seja, se alguém sniffar suaconexão, verá sua senha nos pacotes do TCP/IP, para que isso não ocorravoçê pode acessá-lo pelo túnel 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 próxima!

Curso Certificação Linux LPI-102: Configurando o DNS

http://debian.linux/

136 de 190 22-07-2013 21:21

Page 137: Cur So Certifica o Linux Lp i

Introdução

BIND (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley

Internet Name Daemon) é o servidor para o protocolo DNS mais utilizado naInternet.Foi criado por quatro estudantes de graduação, membros de umgrupo de pesquisas em ciência da computação da Universidade deBerkeley.Para a versão 9, o BIND foi praticamente reescrito. Ele passou asuportar, dentre outras funcionalidades, a extensão DNSSEC e os protocolosTSIG e IPv6.

1-Instalação

Para Debian e Debians-Like (Ubuntu, Linux Mint...) dnsutils será instaladojuntamente com o pacote, ou seja, não precisa especificá-lo na instalação.

# apt-get install bind9

2- Configuração Inicial

abra o arquivo named.conf.options informado e escreva o código abaixo, deacordo 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; };

http://debian.linux/

137 de 190 22-07-2013 21:21

Page 138: Cur So Certifica o Linux Lp i

3- Configurar a Zona e a Zona Reversa

Depois edite o arquivo named.conf.local e escreva o código abaixo, deacordo com seus IPs e o nome do host que deseja, nesse exemplo vouutilizar "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-Verificar se há erros nas alterações efetuadas

# named-checkconf

se não 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. (

http://debian.linux/

138 de 190 22-07-2013 21:21

Page 139: Cur So Certifica o Linux Lp i

2012010100 ; serial7200 ; refresh1800 ; retry1209600 ; expire300 ) ; minimum

NS ns1NS ns2MX 5 mailTXT "v=spf1 mx -all"HINFO PC-Intel-2.4GHz "Linux 2.6"A 192.168.1.100

ns1 A 192.168.1.100ns2 A 192.168.1.100mail A 192.168.1.100www CNAME @ftp CNAME wwwpop3 CNAME mailsmtp CNAME mail

6-Verificar 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 2012010100OK

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 ; serial7200 ; refresh1800 ; retry1209600 ; expire300 ) ; minimum

http://debian.linux/

139 de 190 22-07-2013 21:21

Page 140: Cur So Certifica o Linux Lp i

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-verificar 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 2012010100OK

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.

http://debian.linux/

140 de 190 22-07-2013 21:21

Page 141: Cur So Certifica o Linux Lp i

;; ADDITIONAL SECTION:ns1.marcospinguim.com.br. 86400 IN A 192.168.1.100ns2.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/configurando-rede-linux/pagina7.htmlhttp://www.hardware.com.br/tutoriais/servidores-dns/pagina4.htmlhttp://blog.cesar.augustus.nom.br/instalando-o-servidor-bind-no-linux.htmlhttp://www.hardware.com.br/tutoriais/opendns/http://www.hardware.com.br/livros/linux-redes/configurando-bind.htmlhttp://goo.gl/GEYz9http://pt.wikipedia.org/wiki/BIND

Curso Certificação Linux LPI-102: Compartilhamento via NFS

Nesse post vou mostrar como compartilhar uma pasta no Linux para acessovia rede por comando, o processo é bem simples.Esse acesso será baseadoem NFS, não tem nada a ver com o Samba, isso é pra compartilhamentoentre duas ou mais máquinas Linux(de Linux pra Linux), mais pra frentevou explicar via samba, mas por enquanto isso aqui é mais importante.

NFS é um protocolo de sistema de arquivos para compartilhamentoentre arquivos e diretórios entre computadores conectados em rede.ècom NFS que é feito o acesso, existem outras formas, mas certifique-seque essa é a mais simples e a melhor.

http://debian.linux/

141 de 190 22-07-2013 21:21

Page 142: Cur So Certifica o Linux Lp i

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

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

Convém também instalar o portmap, caso não esteja instalado:# apt-get install portmap

2- nfs-common ---- que deve ser instalado no Client(máquina que acessará atal 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 aspermissões, para isso edite o arquivo:# vim /etc/exports

Após as linhas iniciais e comentado com #(tralha), crie uma nova linhasem #(tralha) e informe o endereço da pasta no PC e as permissões domesmo, exemplo:/home/usuario/pasta_a_ser_compartilhada 192.168.1.102(rw,async)

, ou seja, o caminho da pasta;"rw" permissão de leitura(r) e escrita(w); oitem async permite que o NFS transfira arquivos de forma "assíncrona",sem precisar esperar pela resposta do cliente; e o IP que pode acessar apasta 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 poderão acessar, ouaté mesmo utilizar nome da Estação.

Para aplicar as alterações no arquivo exports para que o mesmo possa serlido pelo Kernel, é necessario, exportar e reiniciar o serviço, reinicietambém o Portmaps, com os comando:# exportfs -ra# /etc/init.d/nfs-kernel-server restart# /etc/init.d/portmap restart

Agora vamos no cliente(máquina que acessará a pasta).Para isso iremosprecisar montar a pasta compartilhada da rede, então nada melhor do quevocê criar uma pasta para receber a montagem, então crie no local ondevocê deseja essa pasta, exemplo:# mkdir /home/usuario/nome_da_pasta

http://debian.linux/

142 de 190 22-07-2013 21:21

Page 143: Cur So Certifica o Linux Lp i

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

, ou seja, a opção (-t) do mount informa o tipo, e eespecificamos o tipo como nome do tipo que é "nfs", depois informamos o IP que está a pastacompartilhada(o Server) e o local onde montaremos essa pasta, endeço nocliente.

Caso não consiga o acesso, lembre-se de dar permissões locais com o"chmod".Se seu PC pegou um IP via DHCP diferente do que você permitiuno "exports", você pode alterálo com o seguinte comando:# ifconfig eth0 192.168.1.102/16 dev eth0

(note que o ip fica a seu critério e o /16 é a mascara 255.255.0.0 natabela), se desejar especificar um gateway, utilize:# route add default gw 192.168.1.1 netmask 255.255.0.0 dev eth0

, mas isso é outro assunto...

Para mais informações sobre o NFS, Clique Aqui

Pronto, parece ser complicado, mas é muito simples, é só pôr a mão namassa e pronto!Espero que gostem e comentem.

Curso Certificação Linux LPI-102: Configurando o Shell SeguroOpenSSH

Em informática o Secure Shell ou SSH é, simultaneamente, um programade computador e um protocolo de rede que permite a conexão com outrocomputador na rede, de forma a executar comandos de uma unidaderemota. Possui as mesmas funcionalidades do TELNET, com a vantagem daconexão entre o cliente e o servidor ser criptografada.Uma de suas mais

http://debian.linux/

143 de 190 22-07-2013 21:21

Page 144: Cur So Certifica o Linux Lp i

utilizadas aplicações é o chamado Tunnelling, que oferece a capacidade deredirecionar pacotes de dados.

Instalação

Para instalar o cliente e os server, apesar do cliente já vir instalado pordefault no Debian e em outras distribuições:# apt-get install openssh-client openssh-server

Usuários e Conexão

Para conectar via IP ou por nome, levará em conta o nome do usuario quevocê está logado no local de conexão, exemplo se você está como "root",ele solicitará a senha de "root" do computador que você deseja, se tiverlogado como "marcos" se no computador que você está tentando logarcomo "marcos" não houver este usuário, você receberá a "ConectionRefused", e se tiver, deverá colocar a senha, ou usar o nome do usuario nafrente e depois por o "@" e logo após o IP ou o nome do computador,depois é só pôr a senha do usuario ex.:# ssh 192.168.1.107# ssh algumsite.com# ssh [email protected]# ssh [email protected]

, DEBUG - LOG - faça a conexão com -vv para exibir as mensagens, ajudana localização de problemas, tente também iniciar o iniciar o servidor emmodo debug (ssh -d) e conectar com o cliente, provavelmente o servidorvai exibir as mensagens de erros, tais como permissões e etc..., exemplos:# ssh -vv marcos@localhost# ssh -v marcos@localhost

, para restringir acesso, deve editar o arquivo # /etc/ssh/sshd_config, noarquivo que se abrirá, procure a linha que contém a palavra "Subsystem",estará assim:Subsystem sftp /usr/lib/openssh/sftp-server

, bastar adicionar o "AllowUsers", ficará assim, ex.:Subsystem sftp /usr/lib/openssh/sftp-serverAllowUsers marcos eric camila

,Enquanto não utilizada a diretiva "AllowUsers" qualquer usuário damaquina pode conectar via ssh. Quando acrescenta-la, passa a permitirapenas os usuários listados e válidos na maquina, esta diretiva prevalecesobre a regra "default" que permite login de todos.

http://debian.linux/

144 de 190 22-07-2013 21:21

Page 145: Cur So Certifica o Linux Lp i

Alterando a Porta

A porta padrão do ssh é 22, por isto tem muitos scripts que ficam tentandoconexão nesta porta, por este e outros motivos, pode se alterar a porta dossh, por exemplo, alterar de 22 para porta 2222, use seu editor preferidopara editar o arquivo /etc/ssh/sshd_config e procure pela linha; #Port 22altere para Port 2222, depois de efetuar a alteração, precisa reiniciar oserviço, veja no tópico sobre instalação, para testar na própria maquina,em um konsole execute a linha de comando neste formato:# ssh -p 2222 [email protected]# /etc/init.d/ssh restart

Copiar arquivos remotamente com SSH

Nesse exemplo abaixo vou copiar o arquivo "teste.txt" para o a máquinaremota, isso será copiado para o diretório /home/marcos/, lógico, irá pedirsenha antes de executar a cópia:# scp teste.txt [email protected]:~/[email protected]'s password:

ou# scp teste.txt [email protected]:/home/marcos/[email protected]'s password:

, para copiar todos os arquivos e sub-diretórios a partir do Shell local parao home do usuário marcos no destino.scp -r * [email protected]:~/

, para copiar para um sub-diretorio especifico no micro de destino, não use(~) e informe o caminho:scp -r * [email protected]:/home/marcos/pasta_server/

, para copiar da máquina remota para máquina local, usa-se o ponto nofinal e o formato assim:scp [email protected]:/home/eric/arquivo_remoto.txt .

, o ponto no final da linha indica para salvar no diretório atual.Salvar emoutro local, substitua o ponto "." pelo caminho na maquina local, exemplopara salvar na maquina local em /home/marcos/tmp:scp [email protected]:~/teste.txt /home/marcos/tmpscp -r [email protected]:~/isos /home/marcos/tmp

Tem diversas outras coisa que você pode fazer com o SSH, caso desejemais informações, consulte:

http://debian.linux/

145 de 190 22-07-2013 21:21

Page 146: Cur So Certifica o Linux Lp i

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

Espero que gostem e comentem!

Curso Certificação Linux LPI-102: Configurando o Apache

O servidor Apache (ou Servidor HTTP Apache, em inglês: ApacheHTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidorweb livre. Foi criado em 1995 por Rob McCool, então funcionário doNCSA (National Center for Supercomputing Applications). Numapesquisa realizada em dezembro de 2007, foi constatado que autilização do Apache representa cerca de 47.20% dos servidores ativosno mundo. Em maio de 2010, o Apache serviu aproximadamente 54,68%de todos os sites e mais de 66% dos milhões de sites maismovimentados. É a principal tecnologia da Apache Software Foundation,responsável por mais de uma dezena de projetos envolvendo tecnologiasde transmissão via web, processamento de dados e execução deaplicativos distribuídos.

O servidor é compatível com o protocolo HTTP versão 1.1. Suasfuncionalidades são mantidas através de uma estrutura de módulos,permitindo inclusive que o usuário escreva seus próprios módulos —utilizando a API do software.

É disponibilizado em versões para os sistemas Windows, Novell Netware,OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc.). Etimologia

A razão para o nome "Apache" dada pela Apache Software

http://debian.linux/

146 de 190 22-07-2013 21:21

Page 147: Cur So Certifica o Linux Lp i

Foundation, é que faz referência à nação Apache, tribo de nativosamericanos que tinha, em combate, grande resistência e estratégiassuperiores. Isso seria uma alusão à resistência da comunidade dosoftware livre aos ataques de interesses privados . O nome refere-setambém à estabilidade do servidor Apache e a sua variedade deferramentas capazes de lidar com qualquer tipo de solicitação na web.Uma terceira razão, que é aceita popularmente, reconhecida porémrefutada pela Fundação, é que o nome viria de "a patchy server", que eminglês significa algo como um servidor remendado, ou melhoria nosoftware, dada a origem do programa, criado sobre o código do servidorda NCSA já existente, no qual foram adicionados diversos patches.

Surge uma quarta explicação para o nome com o lançamento do Tomcat(um sistema auxiliar ao Apache que cuida basicamente de processamentode aplicativos em Java), já que "Tomcat" nome de uma aeronaveestadunidense, o F-14 Tomcat e "Apache" é o nome de um helicóptero deataque, o AH-64 Apache).

Segurança

Para garantir segurança nas transações HTTP, o servidor dispõe de ummódulo chamado mod_ssl, o qual adiciona a capacidade do servidoratender requisições utilizando o protocolo HTTPS. Este protocolo utilizauma camada SSL para criptografar todos os dados transferidos entre ocliente e o servidor, provendo maior grau de segurança, confidencialidadee confiabilidade dos dados. A camada SSL é compatível com certificadosX.509, que são os certificados digitais fornecidos e assinados por grandesentidades certificadoras no mundo.

Configuração

O servidor é configurado por um arquivo mestre nomeado httpd.confe opcionalmente pode haver configurações para cada diretórioutilizando arquivos com o nome .htaccess, onde é possível utilizarautenticação de usuário pelo próprio protocolo HTTP utilizando umacombinação de arquivo .htaccess com um arquivo .htpasswd, queguardará os usuários e senhas (criptografadas).

Autenticação no Apache2

Vou explicar aqui como você disponibilizar o acesso a uma pasta doApache(www) exigindo usuario e senha.

01. Primeiramente devemos criar o diretório onde desejamos restringir oacesso caso o mesmo não exista.

# mkdir /var/www/teste

http://debian.linux/

147 de 190 22-07-2013 21:21

Page 148: Cur So Certifica o Linux Lp i

02. Criaremos agora um arquivo somente para testes com o nome"index.html" no diretório "/var/www/teste".

# echo Testando autenticação no Apache > /var/www/teste/index.html

03. Criar os arquivos .htaccess e passwd no diretório onde se desejarestringir o acesso.

# touch passwd .htaccess

04. Conteúdo do arquivo .htaccess

AuthName "Nome que aparecerá no título da janela"AuthType BasicAuthUserFile /var/www/teste/passwdrequire valid-user

05) Criação dos usuários que terão permissão para acessar o diretório:

# htpasswd -c passwd usuário

Será pedida a senha do novo usuário e em seguida sua confirmação.

New password:Re-type new password:Adding password for user usuário

Ao abrir o arquivo de senhas (passwd), serão vistos os nomes de usuário esenhas criptografadas.

# more passwdusuário:ZzbJ.YtR6TyyU

06) Edite o arquivo"/etc/apache2/sites-available/default"

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

, substituindo todas as diretivas conforme suas necessidades, umaobservação importante é para a tag

AllowOverride

, a mesma deve conter

"AuthConfig"

http://debian.linux/

148 de 190 22-07-2013 21:21

Page 149: Cur So Certifica o Linux Lp i

para que a autenticação seja bem sucedida.

Alias /teste/ "/var/www/teste/"

Options Indexes MultiViews FollowSymLinksAllowOverride AuthConfigOrder deny,allowDeny from allAllow from 172.16.0.0/255.0.0.0 ::1/128

07) Reinicie o serviço do Apache para atualizar as configurações.

# /etc/init.d/apache2 restart

08) Teste agora suas configurações acessando http://localhost/teste,fornecendo o nome de usuário senha.

Observações:as linhas abaixo se referem à restrição por IP, não são necessárias àautenticação.

Deny from allAllow from 172.16.0.0/255.0.0.0 ::1/128

e todo esse tramite desse ser feito pelo usuário 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) precisahabilitar o mod_rewrite no Apache pra que funcione, segue os passospra fazer isso:

1-Logue como root:$ su

2-Abra o arquivo default do Apache:# vi /etc/apache2/sites-available/default

http://debian.linux/

149 de 190 22-07-2013 21:21

Page 150: Cur So Certifica o Linux Lp i

3-Edite o arquivo da seguinte forma: Altere a linha onde tem "AllowOverride None"

dentro de substituindo por "AllowOverride AuthConfig" e altere a linha "AllowOverride

None" dentro de substituindo por "AllowOverride All".

Ex.:

DocumentRoot /var/www/ Options FollowSymLinks Indexes AllowOverride AuthConfigOptions Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allowfrom all

4- Não esqueça 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 diretório /var/www/:vi /var/www/.htaccess

7-Escreva isso dentro do Arquivo, salve e feche-o(em outro post explicareiisso):RewriteEngine OnRewriteCond %{SCRIPT_FILENAME} !-fRewriteCond %{SCRIPT_FILENAME} !-dRewriteRule ^(.*)$ index.php?chave=$1

8-Agora crie um arquivo index.php e cole o conteúdo logo abaixo:vi /var/www/index.php

Conteúdo:

9-Acesse o endereço 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!

http://debian.linux/

150 de 190 22-07-2013 21:21

Page 151: Cur So Certifica o Linux Lp i

Curso Certificação Linux LPI-102: Segurança

Existem várias ferramentas de segurança que podem auxiliar a vida deum administrador de redes/sistemas no Linux. Aqui abordarei duasfundamentais para obter tal segurança:

° IPTABLES ° TCPWRAPPER

Vale ressaltar que segurança vai mais além, mas esses dois já estarãode bom tamanho para o entendimento de segurança, em diversos outrosaplicativos.

IPTABLES

E aê galera!?Eu estava configurando meu Firewall hoje e decidi escrever umPost sobre Iptables pra documentar algumas informações.

Iptables é o nome da ferramenta do espaço do usuário que permite acriação de regras de firewall e NATs. Apesar de, tecnicamente, o iptablesser apenas uma ferramenta que controla o módulo netfilter(O netfilter éum módulo que fornece ao sistema operacional Linux as funções defirewall, NAT e log dos dados que trafegam por rede de computadores.),o nome "iptables" é frequentemente utilizado como referência aoconjunto completo de funcionalidades do netfilter. O iptables é parte detodas as distribuições modernas do Linux.

Ao reiniciar o computador as Regras de Firewall são perdidas, para isso épreciso criar um script para executar sempre que o computador foriniciado.

Para verificar quais regras estão criadas, se existir, o comando é:# iptables -L

http://debian.linux/

151 de 190 22-07-2013 21:21

Page 152: Cur So Certifica o Linux Lp i

, se não retornar nada é porque o pacote não está instalado, então 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, porém voçê conecta a internetnormalmente, mas aplicativos como Apache por exemplo não funcionaráno localhost.iptables -A INPUT -p tcp --syn -j DROP

, aqui abaixo a mesma regra, porém para o protocolo UDP.# iptables -A INPUT -i ppp0 -p udp --dport 0:30000 -j DROP

Lembrando que as tabelas do IPTABLES são lidas de cima pra baixo, ouseja, se você quiser fechar todas as portas e liberar somente o apache aporta 80, você precisa primeiro criar a regra que libera a porta 80 (ou asportas 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 umadeterminada rede, você usar os comandos abaixo:# iptables -A INPUT -p tcp --syn -s 192.168.1.107/255.255.255.0 -j ACCEPTiptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT

http://debian.linux/

152 de 190 22-07-2013 21:21

Page 153: Cur So Certifica o Linux Lp i

, aceitar as requisições do IP 192.168..107 e no comando seguinte,aceitará todas as requisições da rede interna, se logo depois vc fechar tudopra internet, a regra de aceitar será válida, o inverso não.

Para configurações de compartilhamento, seria regras de NAT,assim:

Para compartilhar a conexão do modem com a rede local:# modprobe iptable_natiptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADEecho 1 > /proc/sys/net/ipv4/ip_forward

Para compartilhar uma conexão via ADSL ou cabo instalada na eth0:# modprobe iptable_natiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEecho 1 > /proc/sys/net/ipv4/ip_forward

Para desativar o compartilhamento, você deve usar o comando :# iptables -t nat -F.

Uma observação é que estas regras não incluem um servidor DHCP, vocêdeve configurar os clientes com endereço IP fixo ou então ativar o serviçoDHCPD na sua distribuição.Será necessário também configurar os DNS, senão souber os endereços do seu provedor, você pode usar os DNS públicosdo Google 8.8.8.8 e 8.8.4.4, mais informações sobre esses DNS Clique Aqui.

Mais uma linha interessante de se adicionar, que protege contra pacotesdanificados (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 gravarna pasta /usr/bin/ com o nome que você deseja e poderá executar essenome no terminal que automaticamente, será criadas as regras, lembrandoque para isso tem de estar com permissão de execução e deve ser o usuárioroot.Você também pode torná-lo inicializável, em Debian e Debian-Likes(Ubuntu, Linux Mint,...) com o comando:update-rc.d nome_do_script defaults

, para excluir basta trocar o defaults por remove.

http://debian.linux/

153 de 190 22-07-2013 21:21

Page 154: Cur So Certifica o Linux Lp i

Para fazer um forward(Redirecionamento, exemplo: uma solicitação dejogo na porta 27020, você quer que seja direcionada ao PC 192.168.1.107da sua rede)com Iptables.# modprobe iptable_natiptables -t nat -A PREROUTING -i etho -p tcp --dport 22 -j DNAT --to-dest192.168.1.107iptables -A FORWARD -p tcp -i eth0 --dport 22 -d 192.168.1.107 -j ACCEPT

Você pode repetir o comando várias vezes para direcionar varias portasdiferentes para várias máquinas. Naturalmente uma mesma porta nãopode ser fowardada duas vezes.Para um range de portas, o Counter Strikepode usar mesmo da 27015 até 27030, se você não qual porta dessa rangedo seu colega está aberta, então você pode abrir esta faixa de portasassim:# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 27015:27030 -j DNAT --to-dest192.168.1.107iptables -A FORWARD -p tcp -i eth0 --dport 27015:27030 -d 192.168.1.107 -j ACCEPT

Eu crie um script em PHP para verificar quais portas estão abertas daporta 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 verificar quais portas estão abertas noseu micro, para instalá-lo no Debian e Debian-Likes, basta:# apt-get install nmap

, para analisar em rede interna use o IP interno, para análise à internetuse seu IP externo, para loopback use:# nmap 127.0.0.1

Há também um serviço online que tem como você efetuar testes de portase de invasões, eu uso muito ele, é o http://www.grc.com/

-clique em Services-depois clique em ShieldsUP

http://debian.linux/

154 de 190 22-07-2013 21:21

Page 155: Cur So Certifica o Linux Lp i

-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 são usados para aplicar regras de acesso aos servidoresutilizados em sistema, podendo permitir ou negar as conexões a eles. Elessão controlados por dois arquivos: /etc/hosts.allow (configuração deacessos permitidos para determinados IPs) e /etc/hosts.deny (configuraçãode acesso negados para determinados IPs) TCP. Sigla para “TransmissionControl Protocol”.

/etc/hosts.allow

– Se uma regra deste arquivo for atendida, o acesso ao serviço pepermitido

/etc/hosts.deny

- Se uma regra deste arquivo for atendida, o acesso ao serviço é negado

As regras destes arquivos podem ser contruída de forma a corresponder atodos os serviços ou, alternativamente, a determinados serviçosespecíficos. Se não houver nenhuma correspondência nos dois arquivos, oacesso ao serviço é permitido. É comum se especificar regras particularesno arquivo hosts.allow e específicar uma negativa geral no arquivohosts.deny, limitando assim o acesso aos clientes que você especificamentepermitir. A linguagem dos arquivos de controle consiste de uma lista deserviços, seguida por dois-pontos, seguida por uma lista de hosts. Os hostspodem ser específicados por nome ou por endereço IP.

Por exemplo: Para negar acesso a todos os serviços, exceto ao ftp nodomínio local, poderiam ser usados estes dois arquivos simples:

hosts.allow

– Esta entrada permite acesso ao ftp aos clientes do domínio local

ftp: LOCAL

hosts.deny – Esta entrada nega o acesso a todos os serviços a todos osclientes

ALL: ALL

Entendendo um pouco mais…

http://debian.linux/

155 de 190 22-07-2013 21:21

Page 156: Cur So Certifica o Linux Lp i

Existem dezenas de possibilidades de configuração para o tcp_wrappers e é possível estudá-las em extensão através das páginas de manualhosts_access e hosts_options. Portanto, serão ilustrados apenas algunscasos interessantes do uso desta ferramenta. As regras de controle deacesso, existentes nestes dois arquivos, têm o seguinte formato:

lista_de_daemons : lista_de_clientes [: comando]

lista_de_daemons: Lista de um ou mais nomes de daemons (comoespecificados no /etc/inetd.conf), ou curingas. lista_de_clientes: Lista de um ou mais endereços ou nomes de máquinas, padrões ou curingasutilizados para especificar quais clientes podem e quais não podem acessaro serviço.

comando (opcional): É possível executar um comando sempre que umaregra casa com um padrão e é utilizada. Veja exemplos a seguir. Comocitado anteriormente, curingas podem ser utilizados tanto na lista dedaemons quanto na lista de clientes. Entre os existentes, pode-se destacaros seguintes:

ALLSignifica todos os serviços ou todos os clientes, dependendo apenas docampo em que se encontra.LOCALEste curinga casa com qualquer nome de máquina que não contenha umcaractere ponto “.”, isto é, uma máquina local.PARANOIDCasa com qualquer nome de máquina que não case com seu endereço. Istogeralmente ocorre quando algum servidor DNS está mal configurado ouquando alguma máquina está tentando se passar por outra.

/etc/hosts.allow

O arquivo /etc/hosts.allow é um arquivo de configuração do programa/usr/sbin/tcpd. O arquivo hosts.allow contém regras descrevendo que hoststem permissão de acessar um serviço em sua máquina.

O formato do arquivo é muito simples:

# /etc/hosts.allow## lista de serviços: lista de hosts : comando

lista de serviços

É uma lista de nomes de serviços separados por vírgula que esta regra se

http://debian.linux/

156 de 190 22-07-2013 21:21

Page 157: Cur So Certifica o Linux Lp i

aplica. Exemplos de nomes de serviços são: ftpd, telnetd e fingerd.

lista de hosts

É uma lista de nomes de hosts separada por vírgula. Você também podeusar endereços IP’s aqui. Adicionalmente, você pode especificar nomes decomputadores ou endereço IP usando caracteres coringas para atingirgrupos de hosts.

Exemplos incluem: gw.vk2ktj.ampr.org para conferir com um endereço decomputador específico, .uts.edu.au para atingir qualquer endereço decomputador finalizando com aquele string. Use 200.200.200. para conferircom qualquer endereço IP iniciando com estes dígitos. Existem algunsparâmetros especiais para simplificar a configuração, alguns destes são:ALL atinge todos endereços, LOCAL atinge qualquer computador que nãocontém um “.” (ie. está no mesmo domínio de sua máquina) e PARANOIDatinge qualquer computador que o nome não confere com seu endereço(falsificação de nome). Existe também um último parâmetro que é tambémútil: o parâmetro EXCEPT lhe permite fazer uma lista de exceções. Istoserá coberto em um exemplo adiante.

comando

É um parâmetro opcional. Este parâmetro é o caminho completo de umcomando que deverá ser executado toda a vez que esta regra conferir. Elepode executar um comando para tentar identificar quem esta conectadopelo host remoto, ou gerar uma mensagem via E-Mail ou algum outroalerta para um administrador de rede que alguém está tentando seconectar.

Existem um número de expansões que podem ser incluídas, algunsexemplos comuns são: %h expande o endereço do computador que estáconectado ou endereço se ele não possuir um nome, %d o nome do daemonsendo chamado.

Se o computador tiver permissão de acessar um serviço através do/etc/hosts.allow, então o /etc/hosts.deny não será consultado e o acessoserá permitido.

Como exemplo:

# /etc/hosts.allow## Permite que qualquer um envie e-mailsin.smtpd: ALL# Permitir telnet e ftp somente para hosts locais e myhost.gnulinuxbr.comin.telnetd, in.ftpd: LOCAL, myhost.gnulinuxbr.com

Qualquer modificação no arquivo /etc/hosts.allow entrará em ação após

http://debian.linux/

157 de 190 22-07-2013 21:21

Page 158: Cur So Certifica o Linux Lp i

reiniciar o daemon inetd. Isto pode ser feito com o comando kill -HUP [piddo 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 configuração das regrasdescrevendo quais computadores não tem a permissão de acessar umserviço em sua máquina.

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 padrão ALL: ALL no arquivo /etc/hosts.deny e então ativandoespecificamente os serviços e permitindo computadores que você deseja noarquivo /etc/hosts.allow é a configuração mais segura.

Qualquer modificação no arquivo /etc/hosts.deny entrará em ação apósreiniciar o daemon inetd. Isto pode ser feito com o comando kill -HUP [piddo 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 aoadministrador definir regras específicas de permissão, que serão aplicadasantes das regras de proibição ou de uma negativa geral. Exemplo deConfiguração do tcp_wrappers

Exemplos dos arquivos /etc/hosts.allow e /etc/hosts.deny

Arquivo /etc/hosts.denyALL:ALLArquivo /etc/hosts.allowALL: localhostin.ftpd: .minhaorganizacaoipop3d: ALL

Configuração do tcp_wrappers menos restritiva, considere o mesmoarquivo /etc/hosts.deny do exemplo anterior:

Configuração do tcp_wrappers menos restritivaArquivo /etc/hosts.allowALL: localhost

http://debian.linux/

158 de 190 22-07-2013 21:21

Page 159: Cur So Certifica o Linux Lp i

in.ftpd: .minhaorganizacao 10.0.0.0/255.255.255.0 192.168ipop3d: ALL EXCEPT gnulinuxbr.com

Neste último caso, máquinas da rede “10.0.0.0/255.255.255.0” e máquinasem que o endereço IP inicie por “192.168.” também podem acessar oserviço FTP. Note que foi utilizado um operador novo para o serviçoipop3d: EXCEPT. Isto permitiu que o acesso a este serviço fosse liberadopara todos, exceto para máquinas da rede “gnulinuxbr.com”. O operadorEXCEPT pode ser utilizado tanto na lista de clientes quanto na lista deserviços. Por exemplo, a linha:ALL EXCEPT in.ftpd: ALLno arquivo /etc/hosts.allow permite o acesso a todos os serviços, exceto oFTP, para qualquer máquina.

Todos os acessos, bem-sucedidos ou não, são registrados através do syslog,em /var/log/secure. É recomendado que este arquivo seja periodicamenteanalisado à procura de tentativas de invasão. Testando a ConfiguraçãoNegue certos serviços para uma máquina de sua rede (como por exemplo oserviço telnet) e após reinicializar o xinetd, procure fazer acessos damáquina onde o serviço foi negado.

Curso Certificação Linux LPI-102: Criptografia de Dados

Usando pgp (gpg)para criptografia de arquivos

O gpg (GNU pgp, versão livre da ferramenta pgp) permite encriptar dados,assim somente o destinatário terá acesso aos dados, adicionalmentepoderá verificar se a origem dos dados é confiável (através da assinaturade arquivos). O sistema PGP se baseia no conceito de chave pública eprivada: Sua chave pública é distribuída para as pessoas que deseja trocardados/mensagens e a chave privada fica em sua máquina (ela não pode serdistribuída). As chaves públicas e privadas são armazenadas nos arquivospubring.gpg e secring.gpg respectivamente, dentro do subdiretório~/.gnupg. Veja [#s-d-cripto-gpg-criando Criando um par de chavespública/privada, Seção 20.5.2] para criar este par de chaves. Os dados querecebe de outra pessoa são criptografados usando sua chave pública esomente você (de posse da chave privada) poderá desencriptar os dados.

http://debian.linux/

159 de 190 22-07-2013 21:21

Page 160: Cur So Certifica o Linux Lp i

Quando assina um arquivo usando o pgp, ele faz isto usando sua chaveprivada, o destinatário de posse da chave pública poderá então confirmarque a origem dos dados é confiável. O gpg vem largamente sendo usadopara transmissão segura de dados via internet. Muitos programas dee-mails como o mutt e sylpheed incluem o suporte a pgp embutido paraenvio de mensagens assinadas/encriptadas (MIME não tem umacodificação segura e não garante que a mensagem vem de quem realmentediz ser). Um servidor de e-mail no Linux configurado como as mesmasconfigurações/endereços do provedor da vítima pode enganar com sucessoum usuário passando-se por outro.

Instalando o PGP

# apt-get install gnupg

Após instalar o gnupg, execute o comando gpg para criar o diretório~/.gnupg que armazenará as chaves pública e privada.

Criando um par de chaves pública/privada

Para gerar um par de chaves pessoais use o comando gpg --gen-key. Eleexecutará os seguintes passos:

Chave criptográfica - Selecione DSA e ELGamal a não ser que tenhanecessidades específicas. Tamanho da chave - 1024 bits traz uma boa combinação deproteção/velocidade. Validade da chave - 0 a chave não expira. Um número positivo tem ovalor de dias, que pode ser seguido das letras w (semanas), m (meses) ou y(anos). Por exemplo, "7m", "2y", "60".

Após a validade, a chave será considerada inválida.

Nome de usuário - Nome para identificar a chave E-mail - E-mail do dono da chave comentário - Uma descrição sobre a chave do usuário. Confirmação - Tecle "O" para confirmar os dados ou uma das outrasletras para modificar os dados de sua chave. Digite a FraseSenha - Senha que irá identificá-lo(a) como proprietárioda chave privada. É chamada de FraseSenha pois pode conter espaços enão há limite de caracteres.Confirme e aguarde a geração da chavepública/privada.

Encriptando dados

Use o comando gpg -e arquivo faz a encriptação de dados:

gpg -e arquivo.txt

http://debian.linux/

160 de 190 22-07-2013 21:21

Page 161: Cur So Certifica o Linux Lp i

Será pedida a identificação de usuário, digite o nome que usou para criar achave. O arquivo criado será encriptado usando a chave pública do usuário(~/.gnupg/pubring.gpg) e terá a extensão .gpg adicionada(arquivo.txt.gpg). Além de criptografado, este arquivo é compactado(recomendável para grande quantidade de textos). A opção -a é usada paracriar um arquivo criptografado com saída ASCII 7 bits:

gpg -e -a arquivo.txt

O arquivo gerado terá a extensão .asc acrescentada (arquivo.txt.asc) e nãoserá compactado. A opção -a é muito usada para o envio de e-mails. Paracriptografar o arquivo para ser enviado a outro usuário, você deverá ter achave pública do usuário cadastrado no seu chaveiro e especificar a opção-r seguida do nome/e-mail/ID da chave pública:

gpg -r kov -e arquivo.txt

O exemplo acima utiliza a chave pública de kov para encriptar o arquivoarquivo.txt (somente ele poderá decriptar a mensagem usando sua chaveprivada). OBS: É recomendável especificar o nome de arquivo sempre comoúltimo argumento.

Decriptando dados com o gpg

Agora vamos fazer a operação reversa da acima, a opção -d é usada paradecriptar 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 recuperandoseu conteúdo original. A sua "FraseSenha" será pedida paradescriptografar os dados usando a chave privada (~/.gnupg/secring.gpg).

Assinando arquivos

Assinar um arquivo é garantir que você é a pessoa que realmente enviouaquele arquivo. Use a opção -s para assinar arquivos usando sua chaveprivada:

http://debian.linux/

161 de 190 22-07-2013 21:21

Page 162: Cur So Certifica o Linux Lp i

gpg -s arquivo.txt

A "FraseSenha" será pedida para assinar os dados usando sua chaveprivada. Será gerado um arquivo arquivo.txt.gpg (assinado e compactado).Adicionalmente a opção --clearsign poderá ser usada para fazer umaassinatura em um texto plano, este é um recurso muito usado porprogramas de e-mails com suporte ao gpg:

gpg -s --clearsign arquivo.txt

Será criado um arquivo chamado arquivo.txt.asc contendo o arquivoassinado e sem compactação.

Checando assinaturas

A checagem de assinatura consiste em verificar que quem nos enviou oarquivo é realmente quem diz ser e se os dados foram de alguma formaalterados. Você deverá ter a chave pública do usuário no seu chaveiro parafazer esta checagem . Para verificar os dados assinados acima usamos aopção --verify:

gpg --verify arquivo.txt.asc

Se a saída for "Assinatura Correta", significa que a origem do arquivo ésegura e que ele não foi de qualquer forma modificado.

gpg --verify arquivo.txt.gpg

Se a saída for "Assinatura INCORRETA" significa que ou o usuário queenviou o arquivo não confere ou o arquivo enviado foi de alguma formamodificado.

Extraindo sua chave pública do chaveiro

Sua chave pública deve ser distribuída a outros usuários para que possamenviar dados criptografados ou checar a autenticidade de seus arquivos.Para exportar sua chave pública em um arquivo que será distribuído aoutras pessoas ou servidores de chaves na Internet, use a opção --export:

http://debian.linux/

162 de 190 22-07-2013 21:21

Page 163: Cur So Certifica o Linux Lp i

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

Ao invés do nome do usuário, poderá ser usado seu e-mail, ID da chave,etc. A opção -a permite que os dados sejam gerados usando bits ASCII 7.

Adicionando chaves públicas ao seu chaveiro pessoal

Isto é necessário para o envio de dados criptografados e checagem deassinatura do usuário, use a opção --import:

gpg --import chave-pub-usuario.txt

Assumindo que o arquivo chave-pub-usuario.txt contém a chave pública dousuário criada em [#s-d-cripto-gpg-c-e Extraindo sua chave pública dochaveiro, Seção 20.5.7]. O gpg detecta chaves públicas dentro de textos efaz a extração corretamente. Minha chave pública pode ser encontrada em[ch-apend.html#s-apend-pgp Chave Pública PGP, Seção 21.8] ouhttp://pgp.ai.mit.edu.

Listando chaves de seu chaveiro

Use o comandogpg --list-keys

para listar as chaves pública do seu chaveiro. O comando gpg --list-secret-keys lista suas chaves privadas.

Apagando chaves de seu chaveiro

Quando uma chave pública é modificada ou por qualquer outro motivodeseja retira-la do seu chaveiro público, utilize a opção --delete-key:

gpg --delete-key usuario

Pode ser especificado o nome de usuário, e-mail IDchave ou qualqueroutro detalhe que confira com a chave pública do usuário. Será pedida aconfirmação para excluir a chave pública. OBS: A chave privada pode serexcluída com a opção --delete-secret-key. Utilize-a com o máximo deatenção para excluir chaves secretas que não utiliza (caso use mais deuma), a exclusão acidental de sua chave secreta significa é como perder achave de um cofre de banco: você não poderá descriptografar os arquivos

http://debian.linux/

163 de 190 22-07-2013 21:21

Page 164: Cur So Certifica o Linux Lp i

enviados a você e não poderá enviar arquivos assinados. Mesmo assim seisto acontecer acidentalmente, você poderá recuperar o último backup dachave privada em ~/.gnupg/secring.gpg~.

Mudando sua FraseSenha

Execute o comando gpg --edit-key usuário, quando o programa entrar emmodo de comandos, digite passwd. Será lhe pedida a "Frase Senha" atual ea nova "Frase Senha". Digite "save" para sair e salvar as alterações ou"quit" para sair e abandonar o que foi feito. O gpg --edit-key permitegerenciar diversos aspectos de suas chaves é interessante explora-lodigitando "?" para exibir todas as opções disponíveis.

Assinando uma chave digital

A assinatura de chaves é um meio de criar laços de confiança entreusuários PGP. Assinar uma chave de alguém é algo sério, você deve ternoção do que isto significa e das consequências que isto pode trazer antesde sair assinando chaves de qualquer um. O próprio teste paradesenvolvedor da distribuição Debian requer como primeiro passo aidentificação do candidato, caso sua chave pgp seja assinada por algumdesenvolvedor desta distribuição, imediatamente o teste de identificação écompletado. A partir disso você deve ter uma noção básica do que istosignifica. Para assinar uma chave siga os seguintes passos:

Importe a chave pública do usuário (veja [#s-d-cripto-gpg-c-aAdicionando chaves públicas ao seu chaveiro pessoal, Seção 20.5.8]). Execute o comando gpg --edit-key usuario (onde usuario é o nome dousuário/e-mail/IDchave da chave pública importada). Digite list, e selecione a chave pública (pub) do usuário com o comandouid [numero_chave]. Para assinar todas as chaves públicas do usuário, nãoselecione qualquer chave com o comando uid. Para assinar a chave pública do usuário digite sign, será perguntado sedeseja realmente assinar a chave do usuário e então pedida a"FraseSenha" de sua chave privada. Digite "list", repare que existe um campo chamado trust: n/q no ladodireito. O primeiro parâmetro do "trust" indica o valor de confiança dodono e o segundo (após a /) o valor de confiança calculadoautomaticamente na chave. As seguintes possuem o seguinte significado: - - Nenhum dono encontrado/confiança não calculada. e - Chave expirada/falha na checagem de confiança. q - Quando não conhece o usuário. n - Quando não confia no usuário (é o padrão). m - Pouca confiança no usuário. f - Totalmente confiável. u - Indiscutivelmente confiável. Somente usado para especificar achave pública do próprio usuário.

http://debian.linux/

164 de 190 22-07-2013 21:21

Page 165: Cur So Certifica o Linux Lp i

O valor de confiança da chave pode ser modificado com o comando trust eselecionando uma das opções de confiança. Os valores de confiança para achave pública pessoal é -/u (não é necessário calcular aconfiança/indiscutivelmente confiável).

Listando assinaturas digitais

Execute o comando gpg --list-sigs para listas todas as assinaturasexistentes no seu chaveiro. Opcionalmente pode ser especificado umparâmetro para fazer referência a assinatura de um usuário:gpg --list-sigsusuario. O comando gpg --check-sigs adicionalmente faz a checagem deassinaturas.

Recomendações para a assinatura de chaves gpg

Este texto foi divulgado por uma pessoa que pediu para permaneceranônima na lista [email protected] explicando osprocedimentos de segurança para a troca de chaves públicas individuais eem grupo de usuários. Ele é um pouco longo mas a pessoa é especializadano assunto, e seu foco é a segurança na troca de chaves e o que istosignifica. Após consulta ao autor do texto, o texto foi reproduzido naíntegra, mantendo os padrões de formatação da mensagem.

Trocando assinaturas de chaves digitais

Direitos de republicação cedidos ao domínio público, contanto que o texto seja reproduzido em sua íntegra, sem modificações de quaisquer espécie, e incluindo o título e nome do autor.

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

1. Assinaturas digitais

Uma assinatura digital é um número de tamanho razoável (costuma ter de 128 a 160 bits) que representa um bloco bem maior de informação, como um e-mail.

Pense numa assinatura como se ela fosse uma versão super-comprimida de um texto. Se você muda alguma coisa (por menor que seja) no texto que uma assinatura "assina", essa assinatura se torna inválida: ela não mais representa aquele texto.

Existe uma relação direta entre uma assinatura e informação que ela assina. Se uma das duas for modificada, elas passam a não mais "combinar" uma com a a outra. Um programa de computador pode detectar isso, e avisar que a assinatura é "inválida".

Os algoritmos mais usados para criar e verificar assinaturas digitais são o SHA-1, RIPEM160 e MD5. O MD5 não é considerado tão bom quanto os outros dois.

http://debian.linux/

165 de 190 22-07-2013 21:21

Page 166: Cur So Certifica o Linux Lp i

Assinaturas digitais também funcionam com arquivos "binários", ou seja: imagens, som, planilhas de cálculo... e chaves digitais.

2. Chaves digitais e a teia de confiança

Chaves digitais são fáceis de falsificar, você só precisa criar uma chave nova no nome de sicrano, por um endereço 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 vão usá-la pensando que é de sicrano.

A menos que os "bestas" não sejam tão bestas assim, tenham lido o manual do seu software de criptografia, e saibam usar assinaturas e a teia de confiança 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 usuário é 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 endereço de e-mail daquela chave é da pessoa (o "nome") que também está na chave.

Se todo mundo fizer isso direitinho (ou seja, não 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 confiança.

Numa teia de confiança, você confia na palavra de honra dos outros para tentar verificar se uma chave digital é legítima, ou se é uma "pega-bobo".

Suponha que Marcelo tenha assinado a chave de Cláudia, e que Roberto, que conhece Marcelo pessoalmente e assinou a chave de Marcelo, queira falar com Cláudia.

Roberto sabe que Marcelo leu o manual do programa de criptografia, e que ele não é irresponsável. Assim, ele pode confiar na palavra de honra de Marcelo que aquela chave digital da Cláudia é da Cláudia mesmo, e usar a chave pra combinar um encontro com Cláudia.

Por outro lado, Roberto não conhece Cláudia (ainda), e não sabe que tipo de pessoa ela é. Assim, rapaz prevenido, ele não confia que Cláudia seja uma pessoa responsável 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 Cláudia.

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 alguém cuja chave você assinou, para validar a chave digital de um terceiro, é um exemplo de uma pequena teia de confiança.

http://debian.linux/

166 de 190 22-07-2013 21:21

Page 167: Cur So Certifica o Linux Lp i

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 informação 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 reputação profissional e pessoal, que o nome e endereços de e-mail nessa chave são realmente verdadeiros até onde posso verificar, e que fiz uma tentativa real e razoável de verificar essa informação."

Sim, é sério desse jeito mesmo. Você pode ficar muito "queimado" em certos círculos 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 é sério, como juntar um grupo de pessoas numa sala, e trocar assinaturas de chaves entre si? Particularmente se são pessoas que você nunca viu antes? Siga o protocolo abaixo, passo a passo, e sem pular ou violar nenhum dos passos.

1 - Reúna todos em uma sala, ou outro local não tumultuado, pressa e bagunça são inimigas da segurança.

2 - Cada um dos presentes deve, então, ir de um em um e:

2.1 - Apresentar-se, mostrando _calmamente_ documentação original (nada de fotocópia) comprovando sua identidade. RG, CPF, passaporte, certidão de nascimento ou casamento, carteira de motorista, cartão de crédito são todos bons exemplos. Só o RG sozinho não é -- tem muito RG falsificado por aí -- mas o RG junto com o cartão de banco já seria suficiente. Se nenhum documento tiver foto, também não é o bastante.

* Se alguém pedir o documento na mão, para verificar direitinho, não leve pro lado pessoal. Deixe a pessoa verificar até estar satisfeita (mas não descuide do documento). Isso só significa que ela leva muito a sério a responsabilidade de assinar chaves.

2.2 - Entregar um papel com as informações da chave: Nome (QUE OBRIGATORIAMENTE PRECISA SER O MESMO NOME CONSTANTE NOS DOCUMENTOS APRESENTADOS EM 2.1), e-mail, número da chave (keyID), e fingerprint da chave (assinatura digital da chave)

RECIPIENTE DO PAPEL: Se você achar que os documentos que te apresentaram não são prova suficiente, talvez porque o nome não bate com o da chave, ou porque uma foto nos documentos não está parecida com quem mostrou os documentos, marque discretamente no papel, porque você NÃO deve assinar essa chave. Se achar que o outro vai engrossar, não diga para ele que não vai assinar a chave dele.

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

http://debian.linux/

167 de 190 22-07-2013 21:21

Page 168: Cur So Certifica o Linux Lp i

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 - Peça 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). ENTÃO: Vá para o passo 4.3.

4.2 - As informações não bateram, por isso você não deve assinar a chave. Se quiser, envie um e-mail avisando que não poderá assinar a chave. Não aceite tentativas de retificação 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.

4.3 - As informações bateram, o que garante que o *nome* está correto. Agora é preciso ter certeza do endereço de e-mail. Para isso, envie uma e-mail *CIFRADA* pela chave que você está testando, para o endereço de e-mail constante na chave. Nessa e-mail, coloque uma palavra secreta qualquer e peça para o destinatário 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.

4.4 - Se você receber a resposta contendo a palavra secreta correta, você pode assinar a chave. Caso contrário, não assine a chave -- o endereço de e-mail pode ser falso.

Comandos do gpg (GNUpg) correspondentes a cada passo: 2.2 - gpg --fingerprint (retorna as informações 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 não saiba, ainda não é hora de querer sair assinando chaves.

Criando arquivos .tar.gz com senha

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

http://debian.linux/

168 de 190 22-07-2013 21:21

Page 169: Cur So Certifica o Linux Lp i

Para compactar:

Cria o tar(-cf, C de Create) e (f de Files), logo (-cf Create Files, serve pramemorizar)

$ 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 pôr senha:

$ gpg -c arquivo.tar.gz

Descompactando, é preciso pôr 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/Avançado

Curso Certificação Linux LPI-102: Acessibilidade no Linux

O "leitor de tela básico em braille" foi adicionado recentemente ao

http://debian.linux/

169 de 190 22-07-2013 21:21

Page 170: Cur So Certifica o Linux Lp i

kernel do Linux e, com ele, um subdiretório drivers/accessibility e aopção CONFIG_ACCESSIBILITY correspondente. Vale destacar que asprimeiras reações foram do tipo "que raios é essa tal deacessibilidade?". Isso mostra como a idéia é pouco conhecida entre osdesenvolvedores.

E olha que a acessibilidade no GNU/Linux, ou seja, a usabilidade doGNU/Linux por portadores de deficiência (como cegos, por exemplo),obviamente não é nova. Já há trabalho nessa área faz tempo: a versão 0.07do leitor de tela speakup foi lançada para o kernel 2.2.7 em 1999, e oleitor de tela em braille brltty foi iniciado em 1995. O leitor de tela básicoem braille que acaba de ser adicionado ao kernel do Linux é apenas a partevisível desse trabalho que já está em andamento há anos.

Com a popularização do GNU/Linux entre o público não-técnico, temhavido um interesse renovado por um suporte mais mainstream àacessibilidade: o desktop GNOME, o OpenOffice.org e o Firefox 3 agorapodem ser renderizados por sintetizadores de voz e braille graças aoframework AT-SPI e ao leitor de tela Orca. Assim que essas tecnologiasforem adaptadas ao D-BUS, o KDE também vai aderir. Além disso,começaram a aparecer menus de acessibilidade nas distribuições.

Uma das maiores preocupações dos portadores de deficiênciacostumava ser a falta de suporte ao Javascript nos navegadores emmodo texto e a falta de suporte das suítes de escritório. Conforme maise mais empresas e governos migram para o Linux, especialmente devidoà exigência de alguns estados por acessibilidade nas ferramentas usadaspelo governo, um esforço renovado no desenvolvimento foi se tornandocada vez mais uma necessidade. Em Massachusetts, o povo chegou afazer um abaixo-assinado contra a migração para o software livreporque, na época, ele não oferecia as ferramentas de acessibilidadenecessárias!

O que é acessibilidade?

Acessibilidade, também abreviada como a11y, é fazer com que umsoftware possa ser utilizado por pessoas portadoras de deficiência. Issoinclui os cegos, é claro, mas também pessoas com pouca visão, surdos,daltônicos, pessoas que só têm uma das mãos ou que só podem moveralguns dedos ou apenas os olhos. Pessoas com problemas cognitivos(ainda que leves) ou não familiarizadas com a linguagem também estãoincluídas. Por último, mas não menos importantes, os idosos, que têmum pouco de todas essas deficiências. Sim, isso quer dizer que, um dia,todo mundo vai estar incluído nesse grupo. Isso implica em suporte adispositivos especiais, mas também em precaução no desenvolvimento,evitando presumir que um alarme sonoro será ouvido, ou que uma brevemensagem será lida.

http://debian.linux/

170 de 190 22-07-2013 21:21

Page 171: Cur So Certifica o Linux Lp i

Talvez uma das técnicas de acessibilidade mais óbvias sejam ossintetizadores de voz, que transformam texto em áudio que pode serenviado aos alto-falantes e fones de ouvido. Já houve sintetizadores de vozbaseados em hardware (suportados pelos drivers do speakup), mas amaioria deles vem sendo substituída pelos sintetizadores de voz baseadosem software. Embora a qualidade do software comercial para sintetizar vozseja muito boa hoje em dia, a qualidade das alternativas livres variabastante. Existem sintetizadores de voz livres muito bons para a línguainglesa, mas o suporte a outros idiomas varia. Por exemplo, os enginesFestival e eSpeak suportam vários idiomas, mas o som é robótico demais.Há bibliotecas de fonemas melhores, como o mbrola, mas elas geralmentenão são 100% livres. Para lidar de maneira mais eficiente com essesbackends de sintetização de voz, o daemon de voz precisa escolherautomaticamente a sintetização apropriada, de acordo com o idioma e oestilo desejados.

Outro tipo de dispositivo muito popular é o terminal braille. Ele "exibe"o texto levantando e abaixando pequenos pinos que formam os padrões dobraille. O terminal braile custa caro, e geralmente tem espaço para apenas40 caracteres, ou mesmo por volta de 12 ou 20. Ele tem teclas paranavegação pela tela, e com isso o usuário vai lendo em partes. Comparadoaos sintetizadores de voz, o terminal braille é muito mais preciso, mas nemtodo mundo pode ler em braille, e o preço é muito alto (em torno de 5.000dólares). O suporte aos vários dispositivos existentes é muito bom: dentreos leitores de tela, tanto o brltty quanto o suseblinux suportam uma amplavariedade de dispositivos.

Os cegos provavelmente usarão dispositivos em braille esintetizadores de voz em conjunto. Os dispositivos para os outro tipos dedeficiência variam bastante. Eles vão de joysticks (suportadosnativamente pelo X.org) a sistemas que acompanham o movimento dosolhos (gerenciados pelo dasher), fazendo uso do apertar de botões(suportado pelo GOK, o teclado de tela do GNOME) ou da meraampliação da tela (implementada pelo gnome-mag).

Fonte: www.hardware.com.br

Links:

http://www.acessibilidadelegal.com/33-manual-orca.phphttp://softwarelivre.org/acessibilidade-em-software-livre/acessibilidade-no-orca-e-gnulinux

Curso Certificação Linux LPI-102: Configurando ConexõesPPPoE no Linux

http://debian.linux/

171 de 190 22-07-2013 21:21

Page 172: Cur So Certifica o Linux Lp i

PPPoE (sigla em inglês para Point-to-Point Protocol over Ethernet) éum protocolo de rede para conexão de usuários em uma rede Ethernetpara alcançar a Internet. Seu uso é típico nas conexões de um oumúltiplos usuários em uma rede LAN à Internet através de uma linhaDSL, de um dispositivo wireless (sem fio) ou de um modem de cabobroadband comum. O protocolo PPPoE deriva do protocolo PPP. OPPPoE estabelece a sessão e realiza a autenticação com o provedor deacesso a Internet.

A maioria dos modems ADSL vendidos no Brasil são roteadores, noentanto existem alguns modelos que só funcionam no modo Bridge, ouseja, no Windows® por exemplo, você usaria um discador para conectar-se.Você precisará de um provedor, usuário e senha para autenticação, etambém, naturalmente, uma placa de rede para ligar ao modem. Comando para configurar o pppoe

# pppoeconf

Atenção: O pacote pppoe e pppoeconf já vem instalados por padrão, mas senão estiver, instale-o com:

# apt-get install pppoe pppoeconf

http://debian.linux/

172 de 190 22-07-2013 21:21

Page 173: Cur So Certifica o Linux Lp i

Um programa com uma interface semi-gráfica baseada em texto lhe guiaráatravés dos passos para a configuração, que são elas: Confirmar se sua placa de rede foi detectada.1. Digitar seu nome de usuário (fornecido pelo provedor).2. Digitar sua senha (fornecida pelo provedor).3. Se você já possui uma conexão PPPoE configurada, ele perguntará sevocê deseja modificar sua configuração atual.

4.

Responda o padrão em todas as perguntas (basta digitar enter), oumude, caso saiba o que está fazendo.

5.

Limited MSS problem - choose "Yes".6.

O programa perguntará se você deseja ativar a conexão durante o boot,provavelmente você vai querer responder Sim. Finalmente, perguntará se você deseja estabilizar a conexãoimediatamente.

Pronto isto, provavelmente você sua conexão com a internet já estaráfuncionando.

Controle manual da conexão

Para iniciar sua conexão (se já não estiver ativa), digite num terminal:

# pon dsl-provider

Icones/parar.png Para parar a conexão (se estiver ativa), digite noterminal:

# poff dsl-provider

Problemas

Se sua conexão parecer não funcionar, tente ver o log. Para isto, digitenum terminal:

# plog

Problemas com o boot

Se você tiver que rodar o pppoeconf a cada boot por que a conexão nãoestá sendo ativada, você pode tentar:

# /etc/network/interfaces

http://debian.linux/

173 de 190 22-07-2013 21:21

Page 174: Cur So Certifica o Linux Lp i

Edite o arquivo como abaixo:

# added by pppoeconfauto eth0iface eth0 inet manualpre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf

auto dsl-provideriface dsl-provider inet pppprovider dsl-provider

Para configurações com autenticação no modem ou roteador, o certo é:

auto loiface lo inet loopback

iface eth0 inet staticaddress 10.1.1.2netmask 255.0.0.0gateway 10.1.1.1

auto eth0

ou, manualmente com um pequeno script:

#!/bin/bashecho vamos reconfigurar sua rede, pressione ENTER para iniciar a configuração, ouCtrl+c para desistirread respostasudo ifconfigsudo ifconfig eth0 downsudo ifconfig eth0 10.1.1.2 netmask 255.0.0.0 upecho nameserver 10.1.1.1sudo route add default gw 10.1.1.1 dev eth0sudo ifconfigping -c4 www.google.com

Se isto não funcionar, edite o arquivo /etc/rc.local, e antes da ultimalinha ("exit 0"), adicione:

ifconfig eth0 uppon dsl-provider

Logs de erro

você tiver problemas com sua conexão, talvez encontre algumas

http://debian.linux/

174 de 190 22-07-2013 21:21

Page 175: Cur So Certifica o Linux Lp i

informações úteis nos logs do sistema

# dmesg

Fonte: wiki.ubuntu-br.org

Curso Certificação Linux LPI-102: Gerenciador de Pacotes YUMe pacotes RPM

1.0 - Gerenciador de Pacotes YUM

O gerenciador de pacotes YUM é o gerenciador de pacote padrão do RedHat, Fedora, CentOS e derivados.Antes criado e utilizado no Yellow DogLinux que é uma distribuicao baseada em Red Hat e que so funciona emmaquinas com o processador PowerPC ou derivados como o Cell.

Os arquivos de configuracao do YUM se encontram no diretorio /etc/yum/ eos repositorios se encontram no diretorio /etc/yum.repos.d que é muitosimilar ao /etc/apt/sources.list.d do Debian. Pois seria possivel acentralizacao de tudo tb no /etc/yum/yum.conf.

As instruções aqui são baseadas na distribuição Fedora.

O arquivo de configuração do yum é o /etc/yum.conf. Além disso, osrepositórios (sites que contém os pacotes dos programas) sãoconfigurados através de cada arquivo de extensão .repo, localizados nodiretório /etc/yum.repos.d.

http://debian.linux/

175 de 190 22-07-2013 21:21

Page 176: Cur So Certifica o Linux Lp i

A configuração padrão do yum contida no /etc/yum.conf é suficientepara o bom funcionamento do programa. Você só precisará de algunsrepositórios já configurados. Por exemplo, o padrão para o repositóriodo Fedora é o arquivo /etc/yum.repos.d/fedora.repo:

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

As linhas acima significam que o repositório denominado fedora terá:

name: Nome descritivo, no exemplo: Fedora (versão da distribuição) – (arquitetura da

distribuição, ex. i386);

1.

baseurl: O endereço que contém a lista dos programas e os pacotes;2.

enabled: Se o repositório está habilitado ou não (1 significa sim, 0 significa não);3.

gpgcheck: Se todos os pacotes devem ter sua autenticidade verificada

(extremamente recomendado, 1 significa sim, 0 significa não);

4.

gpgkey: Qual chave criptográfica utilizar para a verificação dos pacotes.5.

Com este repositório configurado, pode-se instalar e remover todos os pacotes básicos da distribuição. No caso das atualizações de pacotes, o repositório é outro e pode ser configurado no arquivo/etc/yum.repos.d/fedora-updates.repo:

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

Há varios outros repositórios de terceiros disponíveis (como o livna, dag, freshrpms, atrpms) que contém outros programas que podem nãoestar na lista principal por diversos motivos. Cada um desses repositóriostêm configurações próprias e por isso criam arquivos .repo dentro dodiretório /etc/yum.repos.d. Aqui não iremos listar todos os repositórios

http://debian.linux/

176 de 190 22-07-2013 21:21

Page 177: Cur So Certifica o Linux Lp i

e sim apenas os oficiais.

Uma vez configurados os repositórios desejados, é hora de utilizar o yum.

Para procurar por um pacote usando alguma palavra relacionada,utilizamos o parâmetro search. Por exemplo, procurar todos os pacotesrelacionados com a palavra ‘DVD’:

# yum search DVD

Para instalar um pacote:

# yum install pacote

Para desinstalar o pacote:

# yum remove pacote

Atualizando um pacote específico, caso exista uma atualização para omesmo:

# yum update pacote

Ou se precisarmos atualizar todo o sistema, instalando todos os pacotesnovos que tenham atualizações disponíveis:

# yum update

Para verificar quais os pacotes que precisam de atualização:

# yum check-update

Listando todos os pacotes disponíveis, tanto no repositório quanto os jáinstalados:

# yum list

Listando todos os pacotes disponíveis para a instalação:

http://debian.linux/

177 de 190 22-07-2013 21:21

Page 178: Cur So Certifica o Linux Lp i

# yum list available

Existem também os grupos de pacotes. Um grupo de pacotes é umconjunto de pacotes necessários para se instalar alguma funcionalidadeno sistema e são definidos pelos desenvolvedores da distribuição. Paralistar 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 disponíveis para a instalação (AvailableGroups). 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 necessários para o XFCE.Para remover todos os pacotes do grupo:

# yum groupremove "XFCE"

Todas estas ações do yum necessitam de uma conexão de Internet, pois a lista de pacotes é sempre requisitada no repositório para consulta.Mesmo para consultar um simples nome de pacote, precisa-se de conexãocom a Internet.

Caso já tenha se utilizado o yum para fazer alguma ação (e porconsequência, ele já tenha baixado a lista de pacotes para o seusistema), podemos optar por não precisar nos conectar ao servidor na

http://debian.linux/

178 de 190 22-07-2013 21:21

Page 179: Cur So Certifica o Linux Lp i

Internet toda vez que usarmos o yum utilizando o parâmetro -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 vctb 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 depacotes desenvolvido pela Red Hat para ser utilizado em sua própriadistro. Posteriormente outras distros Linux, e mesmo alguns outrossistemas operacionais, também adotaram o formato RPM paragerenciamento de seus pacotes. A LSB (Linux Standard Base) indicou oformato RPM como o padrão para distros Linux.

Outro utilitário para gerenciamento de pacotes RPM em modo texto é oYum (Yellow Dog Updater, Modified), disponível nas distros Red HatEnterprise Linux, CentOS, Oracle Entreprise Linux e Fedora.

Com o Yum, é possível realizar instalações e atualizações de pacoteslocalmente ou a partir de repositórios de pacotes localizados na internet.Sua grande vantagem em relação ao utilitário RPM é tentar resolverautomaticamente todas as dependências requeridas por pacotes queestiverem sendo instalados ou atualizados e também por proporcionar umaforma fácil de atualizar todo o sistema pela Internet.

Os três principais formatos de pacotes utilizados em sistemas Linux são:

RPM: utilizado pela distro Red Hat Enterprise Linux (RHEL) e pordistros derivadas como CentOS, Oracle Enterprise Linux, Fedora e SuSE. DEB: utilizado pela distro Debian e por distros derivadas comoUbuntu. TGZ: utilizado pela distro Slackware e por distros derivadas comoVector Linux.

Além destes formatos, há também outros. No entanto, não vou meprolongar a respeito deles para não perder o foco do artigo e também paranão deixá-lo extenso.

O rótulo (nomenclatura) típico de um pacote RPM é nome-versao-release.arquitetura.rpm, onde: Nome: é o nome do software que está sendo distribuído. Versão: é a versão do software. Release: é o versão de construção do pacote para a mesma versão dosoftware.

http://debian.linux/

179 de 190 22-07-2013 21:21

Page 180: Cur So Certifica o Linux Lp i

Arquitetura: é a plataforma para a qual o software foi desenvolvido.Noarch significa que o software não foi desenvolvido para uma plataformaespecífica, podendo ser utilizado em qualquer uma. Src significa que opacote contém os arquivos-fonte do software. .rpm: é a extensão do nome do arquivo de pacote RPM.

Exemplo: oracle-xe-univ-10.2.0.1-1.0.i386.rpm, sqldeveloper-3.0.04.34-1.noarch.rpmInstalação

Para instalar pacotes RPM em sistemas Linux, é necessário estar logadocomo root (su). Note que o sistema de gerenciamento de pacotes RPM nãoresolve as dependências automaticamente para você.

Portanto, as dependências necessárias deverão ser instaladas antes dainstalação do pacote que as requer. Uma outra forma de resolver isso éexecutar a instalação utilizando o utilitário Yum em distros RHEL ederivadas ou o equivalente em outras distros.

Instalações locais:

Para instalar um pacote localizado localmente, execute o comando# rpm -ivh

, onde:

-i: é o modo de instalação. -v: (opcional) apresenta mensagens detalhadas de saída para oprocesso de instalação. -h: (opcional) exibe cerquilhas (#) à medida em que o processo deinstalação avança. : é o nome do arquivo do pacote RPM a ser instalado no sistema; podeser mais de um ao mesmo tempo, neste caso, separe-os com espaços.

Exemplo: # rpm -ivh AdobeReader_ptb-8.1.7-1.i486.rpm

É possível testar a instalação de um pacote antes de instalá-lo no sistema# rpm -ivh –test , onde:

–test: esta opção testa o processo de instalação do pacote e, caso hajaalgum problema, notifica a respeito.

Exemplo:# rpm -ivh –test AdobeReader_ptb-8.1.7-1.i486.rpm

Instalações com o utilitário Yum:

A forma típica do comando Yum para instalações é# yum -y install –nogpgcheck

http://debian.linux/

180 de 190 22-07-2013 21:21

Page 181: Cur So Certifica o Linux Lp i

, onde:

-y: (opcional) resposta automática positiva para a confirmação doprocesso de instalação. install: é a opção de instalação do Yum. –nogpgcheck: (opcional) instrui o Yum a não verificar a assinatura dopacote. : é o nome do pacote RPM disponível localmente ou na Internet emrepositórios do Yum.

Exemplo:

# yum -y install –nogpgcheck AdobeReader_ptb-8.1.7-1.i486.rpm # yum -y install gparted

Observação: No exemplo 1, acima, o pacote está disponível localmente. Em2, o pacote está localizado em um repositório utilizado pelo Yum, isto é, naInternet. Em ambos os casos, o Yum tenta resolver quaisquerdependências, baixando-as e instalando-as automaticamente.Atualização

Para atualizar pacotes RPM instalados em sistemas Linux, é necessárioestar logado como root (su). Lembre-se de que o sistema de gerenciamentode pacotes RPM não resolve quaisquer dependências requeridasautomaticamente.

Caso haja dependências requeridas pelo pacote a ser atualizado que nãoestejam instaladas no sistema, será necessário baixá-las e instalá-las antesde atualizar o pacote.

Outra forma de resolver isso é executar a atualização utilizando o utilitárioYum em distros RHEL e derivadas ou o equivalente em outras distros.

Atualizações locais:

Para atualizar um pacote localizado localmente, execute o comando# rpm -Uvh

, onde:

-U: é o modo de atualização. -v: (opcional) apresenta mensagens detalhadas de saída para oprocesso de atualização. -h: (opcional) apresenta cerquilhas (#) à medida em que o processode atualização avança. : é o nome do arquivo do pacote RPM a ser atualizado no sistema.Pode ser mais de um ao mesmo tempo, neste caso, separe-os comespaços.

http://debian.linux/

181 de 190 22-07-2013 21:21

Page 182: Cur So Certifica o Linux Lp i

Exemplo:# rpm -Uvh flash-plugin-10.2.153.1-release.i386.rpm

Observação: Caso o pacote em atualização não estiver instalado nosistema, ele será automaticamente instalado com este comando.

Também é possível testar a atualização de um pacote antes de atualizá-lono sistema# rpm -Uvh –test

, onde:

–test: esta opção testa o processo de atualização do pacote e, caso hajaalgum problema, notifica a respeito.

Exemplo:# rpm -Uvh –test flash-plugin-10.2.153.1-release.i386.rpm

Atualizações com o utilitário Yum:

O processo de atualização com o Yum é muito útil, pois, com ele, é possívelatualizar até mesmo todo o sistema de uma só vez. Neste caso, o processopoderá ser um pouco demorado, dependendo da quantidade de pacotes aserem atualizados e da velocidade de sua conexão à Internet.

Para atualizar pacotes, a forma típica do comando Yum é# yum -y update [pacote]

Exemplo:# yum -y update flash-plugin-10.2.153.1-release.i386.rpm

Para verificar se há atualizações disponíveis# 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

http://debian.linux/

182 de 190 22-07-2013 21:21

Page 183: Cur So Certifica o Linux Lp i

Nas formas do comando Yum apresentadas acima, o nome do pacote a seratualizado é opcional. É possível informar vários nomes de pacotes a serematualizados em em único comando, basta separá-los com espaços.

Quando não for informado nenhum nome de pacote, o Yum processarátodos os pacotes instalados em seu sistema Linux. O -y é opcional e servecomo resposta positiva automática para as questões formuladas pelo Yum.Downgrade

Downgrade significa baixar a versão de um dado pacote instalado em umsistema Linux, isto é, atualizar para uma versão mais antiga do pacote. Aprincipal razão para que isso seja feito é quando um determinadoaplicativo ou sistema funcionava adequadamente com uma versão “X” deum determinado pacote e, após este pacote ter sido atualizado para umaversão “Y” superior, o mesmo aplicativo ou sistema passa a não funcionarbem com esta nova versão “Y” do pacote considerado.

Neste caso, o administrador do sistema deverá fazer o downgrade destepacote para a versão “X”. Para fazer donwgrade de um pacote instalado emum sistema Linux, é necessário estar logado como root (su).

Downgrades locais:

Para fazer o downgrade de um pacote localizado localmente, execute ocomando # rpm -Uvh –oldpackage , onde:

-U: é o modo de atualização. -v: (opcional) apresenta mensagens detalhadas de saída para oprocesso de downdrade. -h: (opcional) exibe cerquilhas (#) à medida em que o processo dedowngrade avança. –oldpackage: força o downgrade de pacotes. : é o nome do pacote RPM da versão anterior, isto é, para o qual vocêestá fazendo downgrade.

Exemplo:# rpm -Uvh –oldpackage flash-plugin-10.2.153.1-release.i386.rpm

É possível testar o downgrade de um pacote antes de atualizá-lo nosistema# rpm -Uvh –oldpackage –test

, onde:

–test: esta opção testa o processo de downgrade do pacote e, caso hajaalgum problema, notifica a respeito.

http://debian.linux/

183 de 190 22-07-2013 21:21

Page 184: Cur So Certifica o Linux Lp i

Downgrades com o utilitário Yum:

Com o Yum você poderá fazer downgrade de pacotes a partir derepositórios 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 automática ao Yum paraconformar a execução do processo.

Observação: Seja criterioso ao fazer downgrade de pacotes em seu sistema,pois o mesmo poderá apresentar comportamentos indesejados como, porexemplo, instabilidade e/ou vulnerabilidades.Consultas

Com o sistema de gerenciamento de pacotes RPM, é possível realizardiversas formas de consultas de informações sobre pacotes instalados ounão no sistema. Note que para consultas de pacotes, não é necessário estarlogado como root (su). A seguir, as formas mais usuais de consultas.

Consultas de informações de pacotes instalados no sistema:

Para listar todos os pacotes instalados no sistema:

$ rpm -qa

Para listar, em ordem alfabética ascendente, todos os pacotes instaladosno sistema:

$ rpm -qa | sort

Para obter a contagem dos pacotes instalados no sistema, sem listá-los:

$ rpm -qa | wc -l

Para verificar se um pacote está instalado no sistema, informando umaparte do nome do pacote:

$ rpm -qa | grep -i

Onde é uma parte do nome do pacote que você está consultando. Nestaforma de consulta, será ignorada a diferença entre maiúsculas e

http://debian.linux/

184 de 190 22-07-2013 21:21

Page 185: Cur So Certifica o Linux Lp i

minúsculas.

Exemplo:$ rpm -qa | grep -i java

Para gerar um arquivo texto contendo a listagem, em ordem alfabéticaascendente, de todos os pacotes instalados no sistema:

$ rpm -qa | sort >

Exemplo:$ rpm -qa | sort > ListPctsInstalados.txt

Para consultar informações sobre um pacote específico instalado nosistema:

$ rpm -qi

Exemplo:$ rpm -qi java-1.6.0-openjdk-1.6.0.0-1.20.b17.el5

Observação: Note que o nome do pacote deverá ser digitado exatamentepor completo, da mesma forma em que estiver registrado no banco dedados do RPM, levando-se em consideração maiúsculas e minúsculas.

Para listar todos os arquivos de um pacote específico instalado nosistema:

$ rpm -ql

Exemplo:$ rpm -ql java-1.6.0-openjdk-1.6.0.0-1.20.b17.el5

Consultas de informações de pacotes não instados no sistema:

Para consultar informações sobre um pacote específico não instalado nosistema:

$ rpm -qpi

Exemplo:$ rpm -qpi AdobeReader_ptb-8.1.7-1.i486.rpm

http://debian.linux/

185 de 190 22-07-2013 21:21

Page 186: Cur So Certifica o Linux Lp i

Para listar todos os arquivos de um pacote específico não instalado nosistema:

$ rpm -qpl

Exemplo:$ rpm -qpl AdobeReader_ptb-8.1.7-1.i486.rpm

Para obter a contagem dos arquivos de um pacote específico nãoinstalado 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 alfabéticaascendente, dos arquivos de um pacote específico não instalados nosistema:

$ rpm -qpl | sort >

Exemplo:$ rpm -qpl AdobeReader_ptb-8.1.7-1.i486.rpm | sort > ListArqsPct.txt

Desinstalação

Para executar a desinstalação de pacotes RPM em sistemas Linux, vocêdeverá estar logado como usuário root (su) e executar o comando a seguir:

# rpm -e

Exemplo:# rpm -e AdobeReader_ptb-8.1.7-1

Observação: Note que o nome do pacote a ser desinstalado deve serexatamente igual ao nome registrado no banco de dados do RPM. Vocêpode descobrir o nome exato do pacote instalado no sistema, utilizando asopções de consulta apresentadas na seção Consultas deste artigo.

Outra forma de executar a desinstalação de pacotes RPM é combinar

http://debian.linux/

186 de 190 22-07-2013 21:21

Page 187: Cur So Certifica o Linux Lp i

recursos de consulta de nomes de pacotes e pesquisa de substrings emsubshell do Linux, em uma única linha de comando.

A forma típica do comando, neste caso, é # rpm -e $(rpm -qa | grep -i )

, onde:

$(…): é o subshell. Os comandos internos à este subshell sãoprocessados antes do comando externo. rpm -qa: é o comando de consulta de todos os pacotes RPM instaladosno sistema. grep -i substring: este comando procura ocorrências do textofornecido em substring na lista de pacotes RPM instalados no sistema,obtida pelo comando rpm -qa anterior e ignorando maiúsculas eminúsculas. : é um texto representando parte do nome do pacote RPM a serdesinstalado do sistema.

Exemplo:# rpm -e $(rpm -qa | grep -i adobe

Neste exemplo, serão desinstalados do sistema todos os pacotes RPM quecontiverem adobe como parte de seu nome, desconsiderando-semaiúsculas e minúsculas.

Observação: Tenha muito cuidado ao executar desinstalações desta forma,pois qualquer erro poderá ser fatal. Podem ser desinstalados outrospacotes que não os desejados e/ou que sejam importantes a seu sistema oua seu trabalho!

Reconstrução do banco de dados do RPM

O sistema RPM utiliza um banco de dados Berkeley DB, localizado nodiretório /var/lib/rpm/, para armazenar metadados dos pacotes instaladosem um sistema Linux.

Embora sistemas Linux sejam bastante seguros e confiáveis, o banco dedados do RPM pode, eventualmente, sofrer quebras (corrupções). Casoisso ocorra, você não conseguirá gerenciar seus pacotes RPM. Porexemplo, você não conseguirá instalar novos pacotes no sistema.

Para tentar corrigir este problema, estando logado como usuário root (su),execute o seguinte comando de reconstrução do banco de dados do RPM:

# rpm --rebuilddb

http://debian.linux/

187 de 190 22-07-2013 21:21

Page 188: Cur So Certifica o Linux Lp i

Embora este comando seja utilizado em casos de corrupção do banco dedados do RPM, você poderá utilizá-lo periodicamente, de forma preventiva,mesmo que o banco de dados do RPM não apresente problemas aparentes.Solução de problemas de transações não concluídas com o Yum

Outro problema que também pode ocorrer, sobretudo quando ocorreinstalação ou atualização de pacotes RPM, é a interrupção, por diversosmotivos, do processo antes de sua conclusão, gerando transações nãoconcluídas.

Quando isso ocorrer, sempre que você for instalar ou atualizar pacotescom o Yum, receberá uma mensagem como a seguinte: There areunfinished transactions remaining. You might consider runningyum-complete-transaction first to finish them.

Para sanar este problema, será necessário estar logado como root (su) eexecutar o utilitário yum-complete-transaction, o qual está contido nopacote yum-utils:

# /usr/sbin/yum-complete-transaction

Caso o pacote yum-utils não esteja instalado no sistema, instale-o com ocomando a seguir:

# yum -y install yum-utils

Fontes:

http://www.devin.com.br/

http://www.aprigiosimoes.com.br

http://imasters.com.br

Curso Certificação Linux LPI-102: A Certificação LPI

http://debian.linux/

188 de 190 22-07-2013 21:21

Page 189: Cur So Certifica o Linux Lp i

O Linux Professional Institute - LPI - é uma organização sem finslucrativos, sediada na California - USA e constituída em 1999 pelacomunidade Linux e desenvolve de forma acessível um programa decertificação em sistemas GNU/Linux reconhecido internacionalmentepor empresas, empregadores e profissionais de TI.

Certificar-se é uma forma de atestar conhecimentos profissionais, ou seja,validar a eficiência de alguém em determinado assunto.

A principal vantagem da LPI sobre outras certificações Linux é aneutralidade de distribuição, pois as provas do LPI são baseadas no LinuxStandard Base, um conjunto de normas que mantém a compatibilidadeentre as diferentes versões e distribuições do sistema operacional. Acertificação LPI é, portanto, independente de distribuição.

O LPI é reconhecido como a primeira organização do mundo a defendere ajudar o uso profissional do Linux, Open Source e Free Softwareatravés de certificação profissional. Os exames de certificação do LPI sãoaplicados em milhares de lugares no mundo, em vários idiomas e com oapoio de empresários, fabricantes e instrutores.

Lista de Assuntos com os Links para cada um(se você clicar em um link,abrirá em nova aba):

01- A Certificação LPI02- Noções Fundamentais03- Documentação04- Arquitetura de Hardware05- Instalação do Linux06- Filtros de Texto

http://debian.linux/

189 de 190 22-07-2013 21:21

Page 190: Cur So Certifica o Linux Lp i

07- Gerenciamento básico de arquivos08- Hierarquia do sistema de arquivos09- Sistemas de arquivos e dispositivos10- Montando e Desmontando Sistemas de Arquivos11- Executando, Gerenciando e Terminando Processos12- Sistema de Boot, Shutdown e Runlevels13- Trabalhando com Permissões14- Trabalhando com vi15- Instalando e Compilando Programas a partir do código fonte16- Gerenciamento de Pacotes Debian e Redhat (rpm, dpkg, apt-get, dselect)

17- Gerenciador de Pacotes YUM18- Utilizando Expressões Regulares19- Quotas de Disco20- Administração do Sistema21- Automatizando Tarefas Administrativas e Estratégias de Backup22- X Window23- Programando em Shell Script24- Arquivos de LOG25- Impressão no Linux26- Hora do Sistema27- Internacionalização do Sistema28- Kernel do Linux29- Fundamentos e Serviços de Rede – TCP/IPv430- Utilitários e Ferramentas do TCP/IP31- Configurando a Rede32- Configurando o DHCP33- Configurando Conexões PPPoE no Linux34- Serviços de Rede no Linux35- O Servidor PostFix36- Configurando o Apache37- Compartilhamento via NFS38- Compartilhamento via Samba39- Configurando o DNS40- Configurando o Shell Seguro OpenSSH41- Segurança42- Criptografia de Dados43- Acessibilidade no Linux44- Gerenciamento de dados SQL

Visite o site do LPI Mundial e saiba mais.

http://debian.linux/

190 de 190 22-07-2013 21:21