uciano SiqLleira foi editor desenvolvedor na Linux ew Media do Brasil de 006 a 2009, período em ue pubhcou os livros de ertificaçâo LPI- 1 e LPI-2, ibuntu, Máquinas Virtuais oni Virtualbox, Virtual ização ;om Xen, lnfraestrutura de edes, Desenvolvimento Web com Ajax e PHP. autor trabalha com inux há vários anos e Icompanhou de perto i evolução do universo )pen Source. rora da área de tecnologia. ormou-se em psicologia )ela Universidade Estadual aulista. Atualmente, itua como desenvolvedor reelancer e trabalha com jravaçáo e produção nusical, além de 3xcursionar com ;ua banda,
LpI-1
"O LPI certifica profissionais de Linux em 3 liveis: LPIC1. LPIC-2 e LPIC-3, cada unia com duas provas. No momento do lançamento deste livro, o LPI conta com cerca de 40.000 profissionai: certificados no lllLIndo todo, e o Brasil participa com cerca de 5 a 6% deste total. Em nosso pais, a certificação profissional está crescendo e ganhando corpo â medida que as empresas estão percebendo tal i lïiportáncia nos processos de recrutamento, seleção e promoção. Os empregados já sentem rlue a certificação profissional aumenta a empregabilidade e, consequentemente, o reconhecimento profissional.
4' edição -Atualizado para 1 PIC-1 3.5 (2012)
Estão presentes neste livro as mudanças que significaram o salto para a versão 3.5 da certificação LPIC-1.0 carregador Li/olá não é Litilizado pela maioria das disiribuições e foi abandonado, dando lugar ao Grub agora chamado Grub Iegacy - e a sua nova versão, o Grub 2. Ainda no contexto da instalação e iniciahzação. foram incluidos os conceitos básicos de LVM e dos controladores de serviço Upslad e Systemd, bastante conhecidos por sua utilização nas distribuições Ubuntu. Fedora e derivadas. Dentre as alterações menores destacam-se o inclusão das ferramentas de sistema de arquivos ext4, revogação do chave GPG e exclusão do servidor de lontes do X. Todos os objetivos detalhados e em português encontram-se no apêndice presente no final deste livro. Com muito orgulho apresentamos essa 43 edição atualizada. Desde seu lançamento, o livro tem recebido diversas manifestações positivas de seus leitores, seja aqueles estudando de forma independente ou aqueles nas diversas instituições que o adotam como material didático em seus cursos. Realizando seus estudos com este livro você seguramente estará apto a obter sucesso no exame para Certificação LPIC-1
C
LPI1
101 — 102
o treinamento e a certificação profissional em Linux são essenciais para o desenvolvimento de profissionais, assim como para a alimentação do ecossislema Linux, e esta obra, por meio de seu autor e editores, executará um papel-chave neste sentido. De minha parte, fico milito feliz com esta iniciativa o convido a todos para que façam uso e desfrutem destc material extremamente bem escrito, completo e de fácil leitura que o Luciano foi capaz de desenvolver."
Luciano Antonio Siqueira
Curso completo para LPIC-1 41 edição revisada e ampliada. Exercícios em todos os tópicos. Livro preparado para a nova prova válida a partir de 2012.
José Carlos Gouveia
'é
(
Certificaçao
L P I ml
Luciano Antonio Siqueira
Certíf icaçao
LPIml LINUX MW MEDIA
4 edição São Paulo 2012
Ceutificação LPI-1 por
Luciano Antonio Siqueira
Direitos autoraia e marcas roglslmdas C 2004 -2012: Linux N. Media do Brasil Editora Uda. Nenhum material pode ser reproduzido em qualquer moio, em parte ou no todo, sem penflissão expreasa da editora. Assume-se que qualquer corTeapondéncla recebida, tal como cartas, ornaila, tes. fotogratlaa, artigos e desenhos, é fornecIda para publicação ou licenciamento a terceiros do forma mundial não-exclusive pela Unux New Media do Brasil, a menos que explicitamente indicado. Unux é txna mama regiatrada de Linua Tornielda.
Revisão: Aileen Nakamura Proleto gráfico e diagramação: Paola Viveiros Capa: Paola Viveiros
Linux New Media do Brasil Editora Ltda. Rua São Bento, 500 Conj. 802 - Centro CEP: 01010-001 São Paulo - SP - Brasil Tel: +55(0)11 3675-2600 Fax: +55 (0)11 3672-1799
Siqueira, Luciano Antonio Certificação LPI-1 / Luciano Antonio Siqueira. - São Paulo: Linux New Media do Brasil Editora Ltda, 2012. ISBN: 978-85-61024-32-1 1. Linux 2. Informática 3. LPI 4. Certificação 5. Redes 6. Computação
Run, rabbit rim. Dig that hole, forget the sun, and when tu last the work is done. Don't sit dvwn itr time iv dig anorber one.
Brcathe (Waters,
Gilmour, Wright)
Corra, coelho. / Cave um buraco, esqueça o sol, / E quando o trabalho finalmente acabar 1 Não descanse, é hora de cavar outro.
Sumário Prefácio
9
Introdução
11
Tópico 101: Arquitetura de Sistema
17
101.1 Identificar e editar configurações de hardware
18
101.2 Início (boot) do sistema
25
101.3 Alternar runlevels, desligar e reiniciar o sistema
30
Tópico 102: Instalação do Linux e istração de pacotes
37
102.1 Dimensionar partições de disco
38
102.2 Instalar o gerenciador de inicialização
40
102.3 Controle das bibliotecas compartilhadas
43
102.4 Utilização do sistema de pacotes Debian
45
102.5 Utilização do sistema de pacotes RPM eYIJM
47
Tópico 103: Comandos GNU e Unix
57
103.1 Trabalhar na linha de comando
58
103.2 Processar fluxos de texto com o uso de filtros
63
103.3 Gerenciamento básico de arquivos
67
103.4 Puxos, pipes (canalização) e redirecionamentos de saída
73
103.5 Criar, monitorar e finalizar processos
75
103.6 Modificar a prioridade de execução de um processo
77
103.7 Procurar em arquivos de texto usando expressões regulares
78
103.8 Edição básica de arquivos com o vi
80
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS Filesystem Hierarchy Standard -
87
104.1 Criar partições e sistemas de arquivos
88
104.2 Manutenção da integildade de sistemas de arquivos
89
104.3 Controle da montagem e desmontagem dos sistemas de arquivos
91
104.4 istrar cotas de disco
93
104.5 Controlar permissões e propriedades de arquivos
94
104.6 Criar e alterar links simbólicos e hardlinks
98
104.7 Encontrar arquivos de sistema e conhecer sua localização correta
100
Tópico 105: Shelis, scripts e istração de dados
107
105.1 Personalizar e trabalhar no ambiente shell
108
105.2 Editar e escrever scdpts simples
110
105.3 istração de dados SQL
115
Tópico 106: Interfaces de usuário e Desktops 106.1 Instalar e configurar o Xli
123 124
106.2 Configurara gerenciador de gráfico
129
106.3 ibilidade
131
Tópico 107: Tarefas istrativas
139
107.1 istrar contas de usuário, grupos e arquivos de sistema relacionados
140
107.2 Automatizar e agendar tarefas istrativas de sistema
144
107.3 Localização e internacionalização
146
tópico 108: Serviços essenciais do sistema
153
108.1 Manutenção da data e hora do sistema
154
108.2 Configurar e recorrer a arquivos de log
156
108.3 Fundamentos de MTA (MailTransferAgent)
158
108.4 Configurar impressoras e impressão
159
Tópico 109: Fundamentos de rede
169
109.1 Fundamentos dos protocolos de Internet
170
109.2 Configuração básica de rede
176
109.3 Soluções para problemas de rede simples
180
109.4 Configurar DNS cliente
185
Tópico 110: Segurança
ii
110.1Tarefas istrativas de segurança
192
110.2 Segurança do host
200
110.3 Proteção de dados com criptografia
202
Apêndices
217
Respostas dos exercícios
247
Prefácio
O Linux já representa, hoje, um mercado anual de mais de 18 bilhões de dólares e, de acordo com especialistas, deve atingir um patamar superior a 50 bilhóes em menos de três anos. Além disso, cerca de 50% dos departamentos de Ti das empresas já usam Linux e Open Source em suas áreas mais importantes. Como consequência, a demanda por profissionais qualificados e certificados em Linux deve crescer e muito no mercado corporativo. E é focando nessa necessidade que o autor Luciano Siqueira, a Linux New Media e o Senac, na figura do Daniel Guedes, viabilizaram este projeto de produzir uma obra completa, abrangente e, ao mesmo tempo, legível. Este livro oferece todas as condições para que um profissional ou estudante se prepare para as provas de certificação LPI, a qual, além de ser a mais importante certificação profissional em Linux, é neutra e completamente independente de qualquer distribuição Linux. O LPI certifica profissionais de Linux em 3 níveis: LPTC-1, LPIC-2 e LPIC-3, cada uma com duas provas. No momento do lançamento deste livro, o LPI conta com cerca de 40.000 profissionais certificados no mundo todo, e o Brasil participa com cerca de 5 a 6% deste total. Em nosso país, a certificação profissional está crescendo e ganhando corpo à medida que as empresas estão percebendo tal importância nos processos de recrutamento, seleção e promoçáo. Os empregados já sentem que a certificação profissional aumenta a empregabilidade e, consequentemente, o reconhecimento profissional. O treinamento e a certificação profissional em Linux são essenciais para o desenvolvimento de profissionais, assim como para a alimentação do ecossistema Linux, e esta obra, por meio de seu autor e editores, executará um papel-chave neste sentido. De minha parte, fico muito feliz com esta iniciativa e convido a todos para que façam uso e desfrutem deste material extremamente bem escrito, completo e de fácil leitura que o Luciano foi capaz de desenvolver. Parabéns a todos os envolvidos.
José Carlos Gouveia
José Carlos Gouvela é Diretor Geral do Linux Professionai lnstrtute - LPI - da América Latina. Anteriormente, trabalhou por cinco anos para a SGI - Silicon Graphics - como Diretor Geral da América Latina, foi diretor geral da Novell. Platinum Technology, PeopleSolI e JDEdwards, diretor da Anderson Consutting (Accenture) e da Dun&Bradstreet Software e gerente da EDS. Gouveia é formado em Ciência da Computação pela Unicamp, com pás'graduação pela Unicamp e pela PUC-RJ.
Inoduçâo
Introdução à primeira edição
Se há algo de que os entusiastas e profissionais envolvidos com Linux não podem reclamar é a oferta de documentação oferecida pela maioria dos programas desenvolvidos para o sistema. São milhares de páginas explicando minuciosamente cada aspecto da configuração do sistema, englobando desde um simples comando para lidar com arquivos de texto até um complexo servidor de email. Porém, é justamente a quantidade, mesmo que não negligenciando qualidade, que pode tornar-se obstáculo para o aprendizado. Não é raro encontrar, inclusive entre profissionais da área, queixas quanto à falta de objetividade oferecida pelas páginas de manuais, via de regra extensas e deveras tecnicistas. Minha própria experiência mostrou que o caminho mais comum de aprendizado é o que pode ser chamado de um auto-didatismo assistido, ou seja, a pessoa aprende por si só até um determinado ponto, do qual só avança se auxiliada por um usuário ou um grupo de usuários mais experientes. A Internet também é fonte indiscutível de conhecimento sobre Linux. Sites sobre o sistema brotam diariamente, mas, via de regra, contêm material insuficiente para quem quer ir além das simples receitas e dicas. Para aqueles que não dominam o inglês, soma-se a tudo isso a barreira da língua, tornando ainda mais difícil conseguir material específico e de qualidade. A certificação oferecida pelo Linux Professional Institute - www.lpi.org — sempre teve o pressuposto de ser independente quanto a distribuições e preparação do candidato, e talvez seja justamente aí que residam sua força e reconhecimento. Sendo extremamente democrática, porém, o profissional que deseja certificar-se pode se sentir órfáo durante a preparação. Ë para suprir essa demanda que o material aqui apresentado Foi escrito, tendo como objetivo específico a preparação para o exame de certificação LPJ Nível 1. Estruturado exatamente conforme as exigências do próprio Linux Professional Instirute (ver apêndice deste livro), nenhum ponto foi deixado de lado. Mesmo sendo o conteúdo exigido para a prova bastante extenso, cada item é abordado de maneira objetiva, com demonstraçóes práticas de utilização. É correto afirmar que o material é útil, mesmo para aqueles que ainda não têm o exame de certificação em vista mas que desejam aprofi.indar seu conhecimento sobre Linux. A leitura do livro não dispensa a experimentação prática, devendo, assim, ser acompanhado dela. Dado o grande volume de assuntos abordados, a utilização das ferramentas e dos conceitos demonstrados é muito importante para fixação do conteúdo, principalmente para quem o está vendo pela primeira vez. 11
Certificação LPI-1
Certamente, este livro lhe será bastante útil, tanto na preparação para o exame quanto para referência posterior. O conhecimento adquirido no decorrer de sua leitura e sua formalização por meio do certificado terão papel decisivo na sua vida profissional. Bons estudos e boa prova!
12
Introdução
Introdução à terceira edição
(Ø
Muita coisa aconteceu desde a última vez que a Certificação LPI foi alterada. Alguns dos conteúdos que eram abordados encontravam pouca aplicação prática. Além disso, a organização dos tópicos não obedecia a uma ordenação lógica e em alguns pontos não havia distinção entre as provas da certificação nível 1 e as provas da certificação nível 2. A revisão 3.0, além de eliminar alguns conteúdos ultraados e incluir novos conteúdos atualmente mais relevantes, procurou estabelecer focos ainda mais distintos entre a certificação nível 1 e a certificação nível 2. A certificação nível 1 procura abordar todos os aspectos que envolvem a configuração e a manutenção de uma máquina local conectada a rede. Já a certificação nível 2 tem por objetivo geral a configuração e a manutenção de um ambiente de servidor. Apesar das mudanças, prevalece a política do LPI de abordar somente as ferramentas tradicionais de um sistema GNU/Linux, independente de distribuição. A seguir, está a visáo geral das modificações nessa nova revisão da prova, fornecida pelo próprio LPI.
Visão geral das mudanças nos exames LPIC nível 1 A nova revisão dos objetivos para as provas LPIC nível 1, válida a partir de abril de 2009, levou as provas para a versão 3.0. Essa é a segunda revisão completa dos objetivos, que padroniza a versão para o mundo todo. No âmbito geral, o LPI antecipou o cicio de cinco anos para revisões completas. Por volta de cada dois anos e meio, os objetivos serão modificados para refletir as possíveis mudanças do Linux. A próxima versão do LPIC-1 será a 3.5 e refletirá essa revisão parcial. Além dessas revisões principais, haverá adendos incluídos numa média trimestral, com o intuito de esclarecer pontos e detalhes dos exames. Esses adendos não alteram a versão da prova, pois têm apenas o intuito de esclarecer a cobertura da prova para organizadores de cursos e livros.
Os novos pesos O peso total de cada prova foi estabelecido em 60. Isso significa que, salvo em provas com perguntas "beta" para fins de desenvolvimento do exame, cada prova terá exatamente 60 questões. Portanto, a indicação de peso 3 em um determinado objetivo indica que haverá três questões sobre o tema na prova (exceto, novamente, no caso de haver questões beta para fins de desenvolvimento dos exames). 13
Cerifilcação LPI-1
Numeração dos objetivos A numeração dos objetivos era ível de dúvida em função de sua falta de unearidade. Por isso, os prefixos 1. e 2. foram descartados nessa revisáo. Em todos os momentos em que numerações como l.nx.y ou 2.m.y aparecem, o fazem para citar os objetivos antigos.
Redução de conteúdo duplicado Em versões anteriores dos objetivos da certificação LPI, alguns tópicos eram abordados tanto nos exames do nível 1 quanto nos exames do nível 2. Em alguns casos, o mesmo conteúdo aparecia em diferentes provas dentro do mesmo nível dc certificação. A atualização dos objetivos buscou reduzir as ocorrências de conteúdo duplicado em diferentes provas ou objetivos. Contudo, algumas tecnologias - como DNS - são importantes nos dois níveis de certificação e estão distribuídas nos locais apropriados. Por exemplo, na certificação nível 1, a abordagem sobre o DNS está restrita à configuração do cliente do serviço. Na certificação nível 2, a abordagem a para configuração e segurança de servidores DNS.
Versões de programas Quando apropriado, as versões específicas de programas sáo mostradas nos objetivos. Por exemplo, a abordagem do Kernel 2.4 foi descartada para priorizar a versão 2.6. As questões relacionadas ao ReiserES limitam-se à versão 3 do sistema de arquivos, e o servidor Bind 8.x não é mais abordado na prova.
Alterações de conteúdo A maioria dos serviços de rede e demais tarefas istrativas foram movidas para a certificação nível 2. O foco da certificação nível 1 foi mais direcionado para o uso e istração de um sistema Linux local. Por exemplo, para obter a certificação nível 1 ainda é necessário saber lidar com a configuração do NTP e Syslog.
Manuseio de base de dados SQL Dados armazenados em bases SQL tornaram-se muito relevantes na medida em que esses bancos de dados ficaram mais fáceis de istrar e interagir. Para esse novo objetivo, é necessário saber ler, incluir, atualizar e apagar dados a partir do banco. Nenhum banco de dados específico é abordado, apenas o padrão de instruções SQL.
14
Introdução
ibilidade A nova versão da prova de certificação nível 1 introduz a necessidade de preocupação com questões de ibilidade, programas e tecnologias assistivas.
Localização e internacionalização Questões que envolvem outros idiomas além do inglês sáo abordadas. Inclui configuraçáo de fuso honirio, codificações de caracteres e configurações de ambiente relacionadas.
Criptografia de dados A utilização do ssh como ferramenta de segurança para o usuário final ganhou mais relevância. Além disso, também é abordada a utilização do GPG (GnuPG). Os conteúdos incluídos são expressivos e devem receber atenção, mas mesmo os conteúdos abordados nas outras versões da prova sofreram alguma modificação e não devem ser negligenciados. Essa terceira edição do livro Certificação LPI-1, sob chancela da Linux New Media do Brasil - editora da reconhecida revista Linux Magazine - contempla todos os aspectos da certificação. Além disso, foram induídos 100 exercícios do mesmo tipo daqueles que serão encontrados na prova. Tudo para O que o candidato possa sentir ainda mais segurança ao buscar sua certificação.
15
Peso total do tópico a prova: &
r
L
Tópico 101, Arquitetura de Sistema Principais temas abordados: • Aspectos fundamentais de configuração de hardware no Linux; • Iniciaizaçâo (bool) do sistema; • Níveis de execução e desligamento.
1
Certificação tPI-1
101.1 Identificar e editar configurações de hardware Peso 2 A parte mais fundamental de um sistema operacional é a comunicação com o hardware da máquina. Antes mesmo que o sistema operacional seja encarregado, o BIOS (Basic JnputlOurput System, ou Sistema Básico de Entrada/Saída) identifica e realiza testes simples nos itens ftindamentais de hardware, como processador, memória e disco. Ativação de dispositivos O hardware básico do sistema é configurado por meio do utilitário de configuração de BIOS, a tela azul mostrada ao pressionar a tecla [Del] ou lF21 logo após ligar o computador. Por meio desse utilitário, é possível liberar e bloquear periféricos integrados, ativar proteção básica contra erros e configurar endereços I/O, IRQ e DMA. Em geral, as configurações automáticas de fábricas não precisam ser alteradas. Contudo, pode ser necessário ativar ou desativar dispositivos integrados, como teclados, controladora USB, e a múltiplos processadores etc. Inspeção de dispositivos Existem duas maneiras básicas de identificar recursos de hardware dentro de um sistema Linux: utilizando comandos específicos ou lendo arquivos dentro de sistemas de arquivos especiais. Comandos de inspeção São dois os comandos fluidamentais que identificam a presença de dispositivos: 1 spci: Mostra todos os componente conectados ao barramento PCI, como controladoras de disco, placas externas, controladoras USB, placas integradas etc. lsusb: Mostra os dispositivos USB conectados à máquina. Por que desativar o teclado? Teclados são realmente necessários em computadores Desktop, diretamente operados pelo usuário sentado à sua frente. Contudo, no caso de servidores, o teclado é dispensável, pois raramente essas máquinas são operadas "ia/oco". Via de regra servidores são operados remotamente, com ferramentas como o OpenSSH. Retirar o teclado pode causar problemas, pois algumas máquinas interrompem a inicialização ao detectar sua ausência. Por isso é importante desalivar a detecção do teclado no utilitário de configuração do BiOS, para evitar que o servidor não volte ao ar após um reinício de sistema.
18
Tópico 101: Arquitetura e Sistema
Os comandos 1 spci ei susb mostram uma lista de todos os dispositivos no barramento PCI e USB cuja presença foi identificada pelo sistema operacional. Isso não quer dizer que o dispositivo esteja funcional, pois para cada componente de hardware é necessário um componente de software que controla o dispositivo correspondente. Esse cornponente de software é chamado módulo, e na maioria dos casos já está presente no sistema operacional. O comando 1 smod lista todos os módulos atualmente carregados no sistema. O seguinte trecho de saída do comando 1 spci mostra que uma placa de áudio externa foi identificada: 01:01.0 Network controiler: RaLink RT2561/RT61 802.119 PCI 01:02.0 Multimedia audio controller: VIA Technologies Inc. 10E1712 [Envy24] PCI Muiti-Channei I/O Controiler (rev 02) 02:00.0 Ethernet controiler: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI '-. Express Gigabit Ethernet controlier (rev 01)
Podemos obter mais detalhes desse dispositivo com o próprio comando 1 spci, fornecendo o endereço do dispositivo (os números no início da linha) com a opção -s e detalhando a listagem com a opção -v: # ispci -s 01:02.0 -v 01:02.0 Muitinedia audio controiler: VIA Technologies Inc. 10E1712 [Envy24] PCI '-.. Muiti-Channe) 110 Controiler (rev 02) Subsystem: VIA Technoiogies Inc. M-Audio Deita 66 Flags: bus master, nedium devsei, iatency 32, IRQ 22 I/O ports at 1t800 [size=32] I/O ports at b400 [size=16] I/O ports at b000 [size16] I/O ports at aBOO [size-64] Capabilities: [80] Power Management version 1 Kernel driver in use: 10E1712 Kernel modules: snd-ice17l2
Com essa saída podemos identificar o modelo da placa (M-Audio Deita 66) e o módulo correspondente sendo utilizado pelo sistema (snd-icel 712). Uma situação como essa indica que: • o dispositivo foi identificado; • um módulo correspondente foi carregado; • o dispositivo está pronto para uso. 19
Certificação LPI-1
Com o comando lsmod verificamos a presença do módulo snd-1ce1712: $ lsmod Module
Size Used by
w83627ehf
23048
hwtnonvid
6912
1 w83627ehf
hrnon
6300
1 w83627e1h1`
0
ip
13444
O
fuse
53660
1
sndice1712
62756
O
snd_hda_codec_analog
62464
sndice17xxak4xxx
1168
1 1 sndjce1712 2 sndJce1712,snd_ice17xx_ak4xxx
snd_ak4xxx_adda
11904
snd_hda_intel
29000
snd_hda_codec
64128
sndcs8427
11520
1 snd_1ce1712
snd_hwdep
10372
2 snd_usb_audio,snd_hda_codee
snd_ac91_codec
102052 75664
ovSlI
2 snd_hda_codec_analog,snd..hddjntel
1 sndJce1712 0
A saída do comando lsmod é dividida cm três colunas:
• Module. Nome do módulo; • Size Memória ocupada pelo módulo, em bytes;
• Used by
Módulos dependentes.
Módulos x Drivers No sistema operacional Windows, os correspondentes dos módulos são os chamados dri vers. Na maiorias dos casos os drivers para Windows são fornecidos pelos próprios fabricantes do dispositivo. Poucos fabricantes desenvolvem e fornecem os drivers de seus dispositivos para Linux, ficando os próprios desenvolvedores do Linux responsáveis por produzir esses drivers. Por esse motivo, alguns componentes que funcionam no Windows com o driver fornecido pelo fabricante podem não possuir um módulo funcional no Linux. Apesar disso, poucos são os casos de dispositivos que não funcionam no Linux, como alguns modelos dos já ultraados Winmodems. /
20
Tópico 101: Arquitetura e Sistema
É comum que alguns módulos possuam dependências, como é o caso do snd -1 ce1712. Por tratar-se de um módulo de dispositivo de áudio, ele depende de outros componentes do sistema de som do Linux, o sistema Alsa, também carregados como módulos. O comando isusb é semelhante ao lspci e produz uma saída como essa: lsusb Bus 301 Device 031: D 1d6b:0002 Linux Foundat!on 2.3 rout hub Bus 305 Device 021: OlZdi:1003 Huõwei rechno]oges Co., tta. £220 HSDPA Moder / £270 HSDPA/HSUPA Modem Bus 005 Device CC1; ID 1d6b:CCC1 Linux Foundation 1.1 root hub Bus 304 Devce 031: ID ld6b:0001
nux Puundaton 1.1 root hub
Bus 303 Device 002: 10 040:0212 E.an .Microelectronícs Corp. Laser Mouse Bus 003 Device 301: ID ld6b:3301 Linux Fourdation 1.1 root
h:b
Bus 032 Jevice 302: 10 35a9:a511 Omrivision Technologies. Inc. OVSI)+ Webcam Bus 002 flevice 001: 13 116b:C001 Linux Founuation 1.1 root hub
Ele mostra os canais USB disponíveis e os dispositivos conectados. São exibidos mais detalhes sobre os dispositivos com a opção -v. Um dispositivo específico pode ser escolhido ao informar o ID com a opção -ii:
II
lsusb -v -d 12d1:1003
Bus 005 Device 021: ID 12d1:1003 Huawei Techno'.ogies Co.. Ltd. £220 HSDPA odem / '-..
[270 HSDPA/HSUPA Mode
'Jevice 3escrptor: bLength büescriptorType bcdUSB
18 1 1.10
bDevceCIass
O (Defined at Interface leve])
bflevicesubClass
O
bDeviceProtoco]
O
bMaxPacketSizeü
64
idvendor dPrcduct bcdDevice
0x12d1 Huawei Techno)ogies Co., Ltd. 0x1003 [220 HSDPA Modeir / [270 HSDPA/9S9A Moder 0.30
iManufacturer
1 HJAWE] Technologies
iProduct
2 HUAWEI obi]e
iSeria'
0
21
Certificação LPI-1
Arquivos especiais e de dispositivos Tanto o 1 spciquanto o 1 susb e o 1 sinod servem como facilitadores de leitura das informações de hardware armazenadas pelo sistema. Essas informações ficam em arquivos especiais localizados nos diretórios fproc e /sys. O diretório /proc contém arquivos com informações dos processos ativos e de recursos de hardware. Por exemplo, o arquivo /proclscsilscsi contém informações sobre a controladora SCSI identificada no sistema:
II
cat /proc/scsi/scsi
Attached devices: Host: scsi2 Channel: 02 Id: 00 Lun: 00 Vendor: MegaRAID Model: L00 RAID1 70006R Rev: 1137 Type:
Direct-Access
ANSI SCSI revision: 02
Alguns arquivos importantes encontrados no diretório /proc: • /proc/uinfo: Informação sobre o(s) processador(es) encontrado(s) pelo sistema; • /proc/diiia: Informação sobre os canais de o direto à memória; • /proc/ioports: Informação sobre endereços de memória usados pelos dispositivos; • /proc/interrupts: Informação sobre as requisições de interrupção (lROJ nos processadores. Os arquivos em /sys tem flinçáo semelhante aos do /proc. Porém, o /sys tem função específica de armazenar informações de dispositivos, enquanto que o /proc agrega muitas informações de processos também. Tratando-se de dispositivos, outro diretório muito importante é o /dev. Nele encontramos arquivos especiais que representam a maioria dos dispositivos do sistema, particularmente dispositivos de armazenamento. Um disco IDE, por exemplo, quando conectado ao primeiro canal IDE da placa mãe, é representado pelo arquivo fdev/hda. Cada partição nesse disco será identificada como /devlhdal, /dev/hda2 e até a última partição encontrada.
Coldplug e Hotplug São vários os componentes responsáveis por identificar o dispositivo e carregar o módulo correspondente. O sistema trata de maneira semelhante tanto os dispositivos internos fixos quanto os dispositivos removíveis e externos. Conceitualmente, os dispositivos podem ser classificados como Coldpluge Hotplug. Em linhas gerais, Coldplug significa a necessidade de desligar a máquina para conectar um dispositivo. Exemplos de dispositivos coldplug são placas PCI e dis-
Tópico 101:Arquitetura e Sistema
positivos IDE. Na maioria dos computadores, U e módulos de memória são coldplug. Porém, alguns servidores de alta performance am hotplug para esses componentes. Hotplug é o sistema que permite conectar novos dispositivos à máquina em funcionamento e usá-los imediatamente, como no caso de dispositivos USB. O sistema botplug foi incorporado ao Linux a partir do kernel 2.6. Dessa forma, qualquer barramento (PCI, USB etc.) pode disparar eventos hotplug quando um dispositivo é conectado ou desconectado. Assim que um dispositivo é conectado ou dcsconectado, o hotplug dispara um evento correspondente, geralmente trabalhando junto ao subsistema Udev, que atualiza os arquivos de dispositivos em Idev. Mesmo alguns dispositivos coldplug são configurados pelo sistema hotplug. Na hora da inicializaçáo, o script /etc/init.d/hotplug (ou /etc/rc.d/rc.hotplug em alguns sistemas) dispara os scripts agentes em /etc/hotpl ug/ para configurar aqueles dispositivos que já estavam presentes antes de a máquina ser ligada.
Dispositivos de armazenamento No Linux, todo dispositivo de armazenamento encontrado é identificado por um arquivo dentro do diretório /dev. O nome utilizado para o arquivo depende do tipo do dispositivo (IDE, SATA, SCSI etc) e das partições nele contidas. Os nomes são definidos como mostrado na tabela Nomes dos dispositivos de armazenamento no Linux. Em alguns sistemas, se o Kernel Linux for configurado para tal, mesmo os discos IDE podem se identificar como discos SATA. Nesse caso, os nomes serão criados com o prefixo sd, mas ainda será respeitado o esquema de nomes por maiteri nave (no primeiro canal IDE, sda para master e sdb para slavc, por exemplo). Dispositivos de CD/DVD e disquetes também têm aquivos correspondentes em Idev. Um drive de CD/DVD conectado ao segundo canal IDE será identificado como fdev/hdc. Um dispositivo de disquete 3,5" tradicional é identificado pelo arquivo /dev/fdü. Dispositivos SCSI Os dispositivos SCSI possuem algumas particularidades em relação a outros dispositivos de armazenamento. Há basicamente dois tipos de dispositivos SCSI: 8 bit (7 dispositivos, além da controladora) e 16 bit (15 dispositivos além da controladora). Dispositivos SCSI são identificados por meio de um conjunto de três números, chamado SCSI_ID, que especificam: Canal SCSI: cada adaptador SCSI a um canal de dados, no qual sáo anexados os dispositivos SCSI. São numerados a partir de zero (0); 23
Certificação LPI-1
LO Nomes dos dispositivos de armazenamento no Linux IDE
Canal IDE utilizado
fdev/hdal
Master/Siave
(Primeira partição do disco conectado como master no primeiro canal IDE)
Número da partição
/dev/hdb2
(Segunda partição do disco conectado como siave no primeiro canal IDE) /dev/hdc3
(Terceira partição do disco conectado como master no segundo canal DE) a1dejitØodJtojSIQ$
;
ATk
• •.iSte;
'.
.
• _____________________
• ••
Jdev/s,db1 1
•
-
Ordem de identificação do disco pelo
SCSI
Número da partição
(M!ii BIOS
- piçãdflegpnfltmçç) -
/dev/sdal
(Primeira partição do primeiro disco) /dev/sdbl
(Primeira partição do segundo disco)
sÚT (Cárt6e e pendres)
Nerba1
t jrI1fló dd- endrlve, nó caso dejá estarem i.peSptSdois discos SALA ou SCSI)
ID do dispositivo: a cada dispositivo é atribuído um número ID único, alterável por meio de jumpers ou do BIOS da controladora. A faixa de IDs vai de O a 7cm controladores de 8 birs e de O a 15 em controladores de 16 bits. O ID da controladora costuma ser 7; Número lógico da unidade (LUNJ. é usado para determinar diferentes dispositivos dentro de um mesmo canal SCSI. Pode indicar uma partição em um disco ou um dispositivo de fita específico em um dispositivo multi-fita. Atualmente não é muito utilizado, pois adaptadores SCSI estão mais baratos e podem comportar mais alvos por barramento. Todos os dispositivos SCSI encontrados são lisrados em /proc/scsi/scsi. O comando scsi_info usa as informações desse arquivo para mostrar o SCSI_ID e o modelo do dispositivo solicitado. Exemplo de conteúdo do arquivo /proc/scsi/scsi: 24
Tópico 101: Arquitetura e Sistema
est Iproc/scsi/scsi Attached devices: Host: scsi2 Channel: 02 Id: 00 Lun: 00 Vendor: MeyaRATD Model : 100 RAbi 70006R Rev: 1137 Type:
Oirect-Access
ANSI SCSI revision: 02
Por padráo, o dispositivo SCSI de inicialização é o de ID 0, o que pode ser alterado no BIOS da controladora. Se existirem tanto dispositivos SCSI quanto IDE, a O ordem da inicialização precisa ser especificada no BIOS da máquina.
101.2 Início (boot) do sistema Peso 3
LA
É possível ar opçóes para o kernel no momento da inicialização, com propósitos que vão desde especificar o montante de memória até entrar no modo de manutenção do sistema. O processo de inicialização também é importante para identificar se dispositivos e serviços foram identificados e configurados corretamente.
Carregador de boot (Bootloader) Há dois principais programas responsáveis por carregar um sistema Linux: o Grub e • Lilo, ambos denominados bootloader (carregador de boot). O mais popular deles é • Grub, mas o Lilo ainda é utilizado em algumas distribuições. Ambos funcionam de maneira semelhante. Antes de carregar o kernel, o hootloader apresenta um prompt no qual é possível alterar o comportamento padrão de carregamento do sistema. Geralmente é necessário apertar uma tecla como [Ese] ou [Tab] para que o prompt apareça (figura 1). Após entrar no menu do Grub (figura 2), pressione a tecla [e] para entrar no submenu de inicialização (figura 3).
Figura 1. O Grub aguarda alguns segundos para que o usuário aperteatecia [Esc] e acione o prompt de bool. 25
Certificação LPI-1
Para ar argumentos ao kernel, é necessário escolher a linha que inicia pelo termo kernel (figura 3) e apertar novamente a tecla [e]. A linha poderá ser editada com os parâmetros desejados (figura 4). No caso do exemplo, foi adicionado o parâmetro i ni t para definir um controlador de inicializaçáo diferente de /sbi nu i ni t. Feito isso, basta pressionar [Enterj para voltar ao menu anterior e, em seguida, pressionar IbI para iniciar o sistema. Nesse caso, será invocado um shell - o interpretador fbin/bash - e o sistema básico estará disponível para tarefas como recuperação e correçáo de problemas. Outras utilidades para os parâmetros no boot são indicar o kernel a carregar, ar parâmetros de configuração e alterar o runlevel(nfvel de execução) inicial. A maioria dos parâmetros obedece ao formato item=valor. Exemplo de parâmetros mais comuns na tabela Parâmetros de inicialização. Dessa mesma forma, é
ferentes versÕes de kernel.
Figura 3. No submenu de inicialização estão as diferentes linhas usadas para carregar o sistema.
26
Tópico 101: Arquitetura e Sistema
Figura 4. Os parâmetros ados diretamente ao kernel no menu de inicialização do Grub. possível ar parâmetros para os módulos compilados estaticamente no kernel. Para que os parâmetros sejam automaticamente ados em todo boot, eles podem ser induídos na instrução append no arquivo /etc/lilo.conf ou no arquivo /boot/grub/rnenu.lst do Grub. Outra possibilidade de uso do prompt do boorloader é alterar o runlevel inicial do sistema. Os parâmetros aceitos são s, single, £ 1, 2, 3, 4, 5. Se nenhum parâmetro for ado, o ruulevd inicial será aquele especificado no arquivo /etc/inittab.
Parâmetros de irticialização
ai
Liga/desliga o e a AI.
ai=oft
mil
Define um outro programa para executar no lugar de /sbin/init.
init=/bin/bash
mem
Define o quanto de memória RAM estará disponível para o sistema.
mem=512M
maxus
Número máximo de processadores (ou núcleos) visiveis para o sistema (apropriado apenas para máquina com e a multiprocessamento SMP). Valor O desliga o e a SMP - corresponde a utilizar o parâmetro nosmp.
maxus=2
guieI
Não exibe a maioria das mensagens de mnicialização.
quiet
vga
Seleciona um modo de vídeo.
vga=773
root
Define uma partição raiz diferente da prédeterminada pelo carregador de boot.
root/dev/sda3
ro ou rw
Realiza a montagem inicial como somente leitura ou como leitura e escrita.
ro
27
Certificação LJ'l-1
Mensagens de inicialização Em algumas distribuições Linux, como Ubuntu e Fedora, as mensagens de inicialização são suprimidas e em seu lugar é exibida uma tela de abertura. Apesar de mais interessante do ponto de vista estético, a supressáo das mensagens de inicializaçáo pode atrapalhar o diagnóstico de possíveis problemas. Para exibir as mensagens de inicialização nesses casos, basta retirar as opções
quiet e splash do linha de carrega-
mento do Kernel. Dessa forma, serão exibidas mensagens de diagnóstico e possíveis mensagens de erro referentes a hardware e software. Cada etapa da inicialização é demonstrada
Ø
Etapas da inicialização Neste momento o kemel será Iniciado. A partir dessas informações podemos vedficar que o dispositivo raiz indicado para o sistema será a primeira partição no primeiro disco (MOO), o sistema de arquivos identificado (exl2fs), o tipo da partição (0x63- Linux). Também é mostrado qual imagem do kemel será utilizada (/batf vmllnuz2.6.18-4-666)eairnagem (sehouver) ínitrd (/boot/inttrd.Img2.5.1B-4186). Assim que o kernel assume o controle, informações conseguidas lunto ao BIOS e outras Informações de hardware são mostradas na tela. É um processo multo rápido e dificilmente pode ser acompanhado.
O hardware fundamental do sistema. como portas seriais, teclado e mouse, será então iniciado.
28
Tópico 101: Atquitetura e Sistema
no diagrama Etapas da
mi-
2 Lilo e módulos externos
cialização a seguir.
lembre-se de reinstalar o Lilo executando o comando toda vez que sua configuração for alterada. Para os módulos externos, parâmetros são ados diretamente com o comando niodprobeou podem constar em seus arquivos de configuração em Ietc/modprobe.dí -
Para inspecionar o proces-
filo
so de inicia]izaçáo do sistema, é usado o comando dniesg. As mensagens do carregamento são armazenadas em
-
Iva ri
1 ogidniesg, além de outras mensagens do kernel, que podem ser checadas dentro do arquivo ivariloglmessages.
O
Outros itens de hardware sendo identificados e minimamente configurados, como barramentos, discos rigidos e dispositivo de rede
Assim que a identificação inicial do hardware terminar e a partição raiz for montada, o serã disparado e as configurações mais avançadas de hardware e os daemons serão iniciados. Neste estágio, entre outros procedimentos, são montadas as demais partições, inclusive a partição swap, conforme constadas em t-
Continuando a última etapa, demais daemons de serviços sâo disparados e o usuário poderá ingressar no sistema.
-J
Certificação LFt-1
101.3 Alternar runlevels, desligar e reiniciar o sistema Peso 3 O runlevel (nível de execução do sistema) é o grau de interação com o usuário que o sistema opera. O programa /sbin/init, invocado logo no início do processo de boor, identifica o nível de execução informado no carregamento do kernel ou no arquivo de configuração /etciinittab e carrega os programas - scripts e serviços - correspondentes, indicados nesse mesmo arquivo. Na maioria das distribuições Linux os scripts invocados pelo init ficam no diretório /etc/init.d. Em algumas outras distribuições esses scripts ficam em /etc/rc.d.
O níveis de execução (runleveis) Os runlevels são numerados de O a 6 e suas fttnçóes podem variar de uma distribuição para outra. Via de regra, o próprio arquivo /etc/inittab, que define os runleveis, traz também informações a respeito de cada um. O formato das entradas nesse arquivo é Id: runlevels:ação:processo.
O termo idé um nome de até quatro caracteres para identificar a entrada do inittab. O termo runleveis é a lista dos runlevels para os quais a ação da entrada deverá ser executada. O termo ação é o tipo de ação a ser tomada e o termo processo é o comando a ser acionado. Os tipos mais comuns para ações são mostrados na tabela Ações de runleveis.
.Ø Ações de runleveis. sysinÉ
Processo executado durante o boot do sistema.
ctrlaltdel
O processo será executado quando o init receber o sinal 816/NT, o que significa que as teclas [Ctr]J+[Alt]+[DeI] foram pressionas.
Exemplo de trecho do arquivo /etc/inittab: si: :sysinit:/etc/init.d/rcS ---:S:wait:fsbin/su 1:2345:respawn:/sbin/getty 38400 ttyl 2:23:respawn:fsbin/getty 38400 tty2
Na maioria dos casos, a numeração dos runlevels representam: O: desligamento do sistema; 30
Tópico 101:kquitetura e Sistema
• 1: • 2: • 3: • 4: • 5: • 6:
usuário único (modo de manutenção, sem rede ou serviços); multiusuário (estado padrão na maioria dos sistemas); multiusuário (padrão em algumas distribuiçóes); não utilizado na maioria das distribuições; não utilizado na maioria das distribuições; reinicialização do sistema.
Os únicos runleveis comuns a toda distribuição Linux são O, 1 e 6. O runlevel padrão, aquele que será utilizado a menos que outros sejam ados no carregamento do kernel, é definido no próprio arquivo /etc/inittab, na entrada id:x:initdefault. O x é o número do runlevel iniciado por padráo. Esse número jamais pode ser O ou 6, pois causaria o desligamento ou a reinicializaçáo logo durante o boot. Por ser o primeiro programa iniciado logo após a inicialização do kernel, o PJD (número de identificação de processo) do init será sempre 1. Alternando entre runlevels Para alternar entre runlevels após o boot, pode-se usar o próprio comando init ou o comando telinit, fornecendo como argumento o número do runlevel desejado. Para identificar em qual runlevel o sistema está operando, é utilizado o comando cognato chamado run/evel O comando runlevel mostra dois algarismos: o primeiro mostra o runlevel anterior e o segundo, o runlevel atual.
t
Desligamento e reinicialização O principal comando usado para desligar ou reiniciar o sistema é o comando shutdown, pois agrega algumas funcionalidades importantes. Ele automaticamente notifica todos os usuários no sistema com uma mensagem exibida no terminal, e novos s são bloqueados. Após invocar o shutdown, todos os processos recebem o sinal SJGTERLvi, seguido de SJGKILL, antes de o sistema desligar ou alternar o runlevel. O padrão, caso não sejam usadas as opções h ou -r, é que o sistema alterne para o runlevel 1, ou seja, usuário único. O comando shurdown é invocado utilizando a sintaxe shutelown [opção] horário [mensagem] Apenas o argumento horário é obrigatório. Ele indica quando efetuar a ação requisitada, e seu formato pode ser: • hh:rnrn: horário para execução; • +111: minutos até a execuçáo; • now ou +0: execução imediata. 31
Certificação LPI-1
Algumas das opçóes mais usadas do comando shutdown são: • -a: usar o arquivo de permissão /etc/shutdown.allow; • -r: reiniciar a máquina; • -h: desligar a máquina; • -t segundos: define o tempo de espera antes de o comando shutdown executar a ação solicitada. O argumento mensagem será o aviso enviado a todos os usuários que estiverem logados no sistema. Para impedir que qualquer usuário reinicie a máquina pressionando [CtrI]i-[Att]+[Defl, a opção -a deve acompanhar o comando shutdown presente na linha do arquivo /etc/inittab referente à ação ctrlaltdel. Dessa forma, somente os usuários cujos nomes de constarem no arquivo /etc/shutdown.allow poderão reiniciar o sistema usando a combinação de teclas.
Systemd O Systemdé um gerenciador de sistema e serviços para Linux compatível com o padrão SysVe LSB. Ele possui uma forte capacidade de paralelização, utiliza ativação por sockers e D-Bus para iniciar os serviços, disparo sob demanda dos daemons, rnonitoramento dos processos por cgroups, e a snapshots e restauro do estado do sistema, controle dos pontos de montagem e implementa uma lógica elaborada de controle de serviços baseada em dependência de transações. Atualmente, o sistema operacional Linux mais popular a adotar o systemd é o Fedora. O systemd dá início e supervisiona todo o sistema e é baseado no conceito de unidades. Uma unidade é composta por um nome e um tipo e possui um arquivo de configuração correspondente. Portanto, a unidade para um processo servidor ht'd ( como o Apache) será httpd.service e seu arquivo de configuração também se chamará httpd.service. Existem sete tipos diferentes de unidades: • service: o tipo mais comum, onde serviços podem ser iniciados, interrompidos, reiniciados e recarregados. socket: esse tipo de unidade pode ser um socket no sistema de arquivos ou na rede. Cada unidade do tipo socker possui uma unidade do tipo service correspondente, que é iniciada somente quando uma conexão chega à unidade socket. • device: uma unidade para um dispositivo presente na árvore de dispositivos do Linux. Um dispositivo é exposto como unidade do sysremd se houver uma 32
Tópico 101:Arquitetura e Sistema
• •
•
•
regra do udev com essa finalidade. Propriedades definidas na regra udev podem ser utilizadas como configurações para determinar dependências em unidades de dispositivo. mount: um ponto de montagem no sistema de arquivos. automount: um ponto de montagem automática no sistema de arquivos. Cada unidade automount possui uma unidade mount correspondente, que é iniciada quando o ponto de montagem automática é ado. target: agrupamento de unidades, de forma que sejam controladas em conjunto. A unidade mulri-.target, por exemplo, agrega as unidades necessárias ao ambiente multi-usuário. É correspondente ao nível de execução número 5 em um ambiente controlado por SysV snapshot: é semelhante à unidade target. Apenas aponta para outras unidades.
Interagir com unidades do systemd O principal comando para istração das unidades do systemd é o systemctl. Tomando como exemplo a unidade httpd. servi ce, as ações mais comuns na tabela a seguir:
O Parâmetros do Iniciar o serviço
syste:ct start nttpd.servce
interromper o serviço
syt.r: ':t up httr,d.ervve
Reiniciar o serviço
systect] restart httpd.service
Exibir o estado do serviço, incluindo se está ou rio ativo
s1it.
iniciar o serviço no boot
syste"ct' enabe httpd.service.
Retirar o serviço do boot
5 .7 ct
Verificar se o serviço é ativado no boot (0 é ativado, 1 é desativado)
syster.:ct1 ¶s-erat'ed bttpd.ser y ice; echo $1
t•
J'dCe
5tp..serv'.e
Alterando o nível de execução O systemd não trabalha com o conceito de níveis de execução. Sua abordagem é utilizar um target para cada situação como gráfico, multi-usuário etc.
33
Certificação 191-1
O correspondente ao nível de execução 3 (multi-usuário) é o target multi-. O comando systemcti isolate alterna entre os diferentes targets. Portanto, para manualmente alternar para o target multi-, utiliza-se: systemctl isolate ôiulti-.target Para facilitar o entendimento, há targets de correspondência para cada nível de execução tradicional, que vão do runlevelo.target ao runleve16target. Apesar disso, o systemd não utiliza o arquivo /etc/i ni ttab. O target padrão do sistema é aquele apontado pelo link simbólico /etc/systemd/system/defaul t target. Os targets disponíveis encontram-se no diretório /lib/systemd/systen/. O comando systemeti list-units --typetarget exibe todos os targets carregados e ativos.
Upstart O upstarté um gerenciador de serviços utilizado como substituto ao tradicional init. Como o systemd, seu principal objetivo é tornar o boot mais rápido ao carregar os serviços paralelamente. Atualmente, o sistema operacional Linux mais popular a adotar o upstart é o Ubuntu. Os scripts de inicialização utilizados pelo upstart localizam-se no diretório /etc/init. Controle dos serviços com Upstart Os serviços do sistema são listados com o comando i ni tctl li st. Também são exibidos o estado do serviço e o námero do processo (se ativo): # initeti list avahi-daernon start/running, prccess 483 mountall-net stop/waiting rc stop/waiting rsyslog start/running, process 432 tty4 start/running, process 801 udev start/running. process 291 upstart-udev-brídge start/running, process 283 ureadhead-other stoplwaiting whoopsie start/running. process 863 apport start/running console-setup stop/waiting hwclock-save stop/waiting 34
Tópico 101: Arquitetura e Sistema
irqbalance stop/waiting plyrnouth-log stop/waiting ttyb start/running, process 811 failsafe stop/waiting
Cada ação do upstart possui um comando independente. Por exemplo, para iniciar o sexto terminal virtual com o comando start: start tty6
Verificar seu status com o comando status: status tty6 ttyô start/running, process 3282
E interrompê-lo com o comando stop: stop ttyô
O upstarr não utiliza o arquivo /etc/inittab para definir os níveis de execução, mas os comandos tradicionais runlevel e tel init são utilizados para verificar e alternar entre os níveis de execuçáo. •
35
Tópico 101: Arquitetura e Sistema
Questões Tópico 101
Q
1. Qual comando pode ser usado para inspecionar o hardware geral do sistema? a. is b. lspci C. find d. hwlook
2. Como é possível verificar quais módulos estão carregados pelo sistema? a. Com o comando depmod. 13. Lendo o arquivo /ctc/modprobe.conf. c. Com o comando lsmod. ci. Com o comando uname -m.
3. A saída abaixo: Bus 002 Oevice 003: ID 046d:c06 ogtecn. fc. M I;V69aiH M UV96 0ptc8 '-. Wheel Mouse Bus 002 Dev 1 ce 002:
:o
43c:20U5 De'' 2o"jter Carp. RT7D50 Keyboaro
Bus 002 Devce D0: ID d6b:000I Vnx FD.reation 1.1 root hub
corresponde à execução de qual comando? a. lsusb 13. cat /proc/devices C. lspci
ci. car /devlusb
4. Dispositivos hotplug são dispositivos: a. mais caros, de melhor desempenho. 13. que aquecem, prejudicando o funcionamento da máquina. C. que devem ser conecrados com a máquina desligada. ci. que podem ser conecrados com a máquina em funcionamento.
37
Certificação LPI-1
5. Qual o caminho completo para a segunda partição de uni disco IDE conectado ao primeiro canal IDE?
6. Qual opção deve ser ada para o kernel para limitar o total de memória disponível para o sistema? a. mcmlimit 13. mem c. limit d. totalmem
7. Qual nível de execução corresponde ao desligamento do sistema? a. O
13. 1 e. 2 d. 3
8. Qual com*Qdo é usado para verificar o nível de execução atual do sistema? Dê somente o comando, sem argumentos.
9. Quais comandos podem ser utilizados para desligar o computador corretamente? Marque todos as respostas corretas. a. shutdown 13. telinit C. ctrlaltdel d. powerdown
10. Qual linha do arquivo /etcíinirtab define o nível de execução tm4rão do sistema? a. xx:defaulc2 13, xx:initdefaulc3 e. xx:3:initdefault cl. xx:telinic:3
7
Peso total do tópico na prova: II
-f
/
L
Tópico 102: Instalação do Linux e istração de pacotes Principais temas abordados: • Elaboração de esquema de partições para o Linux: • Configuração e instalação de um gerenciador de inicialização; • Controle de bibliotecas compartilhadas por programas: • Utilização dos sistemas de pacotes Debian e RPM.
[.
Certificação LPI-1
102.1 Dimensionar partições de disco Peso 2 No Linux, todos os sistemas de arquivos em partições são ados por um processo chamado montagem. Nele, unia determinada partição de dispositivo de armazenamento é vinculada a um diretório, chamado ponto de montagem.
Sistema de arquivos raiz O principal ponto de montagem é a chamada raiz CLa árvore de diretóriosou simplesmente raiz e é representada por uma barra (1). É necessariamente o primeiro diretório a ter seu dispositivo vinculado. Após a partição ser identificada com o código hexadecimal 83 (representado por 0x83, Linux Native) e formatada é que os arquivos do sistema operadonal poderão ser copiados. Todo esse processo é feito de forma quase transparente pelo utilitário de instalação das distribuições atuais. Depois de montada a raiz, os diretórios comidos nesse dispositivo poderáo ser pontos de montagem para outros dispositivos. Ordem de montagem dos sistemas de arquivo a partir do boot: • O carregador de boot (Grub ou Lilo) carrega o kernel e transmite as informações sobre a localização do dispositivo raiz; • Com a raiz montada, os demais dispositivos são montados conforme as instruções encontradas no arquivo fetc/fstab. É muito importante que o arquivo /etc/fstab esteja no sistema de arquivos do dispositivo raiz. Caso contrário, não será possível montar os demais sistemas de arquivo, dado que as informações de montagem destes não serão encontradas. Em geral, duas parriçócs são o mínimo exigido em sistemas Linux tradicionais. Uma será a raiz e a outra será a partição de swap. Pode ser necessária uma terceira partição pequena, criada no início do disco, apenas para armazenar o kernel e o carregador de micialização secundário. Fora essas, não há regras inflexíveis quanto à criação de partições, devendo ser avaliado o melhor esquema para a hinção que o sistema desempenhará.
Q Swap não é memória RAM O espaço de swap é utilizado somente quando não há mais memória RAM disponível, evitando possíveis talhas e até travamentos de sistema. Quando a memória RAM é insuficiente, o próprio sistema se encarrega de colocar na swap aqueles dados de memória que não estão sendo utilizado no momento. Contudo, muitos dados em swap significam um sistema muito lento, pois o tempo de leitura e escrita em disco é muito maior quando comparado à memória RAM. Portanto, alocar mais espaço de swap num sistema com pouca memória RAM não será solução para melhor desempenho.
40
Tópico 102:
Instalação do Linux e istração de pacotes
A partição swap Todos os programas em execução, bibliotecas e arquivos relacionados são manridos na memória do sistema para tornar o o a eles muito mais rápido. Contudo, se esses dados alcançarem o tamanho máximo de memória disponível, todo o funcionamento ficará demasiado lento e o sistema poderá até travar. Por esse motivo, é possível alocar um espaço em disco que age como uma memória adicional, evitando a ocupação total da memória RAM e possíveis travamentos. No Linux, esse espaço em disco é chamado Swap e deve ser criado numa partiçâo separada das partições de dados convencionais. Uma partiçáo swap é identificada pelo código hexadecimal 82 (0x82), atribuído na sua criação. Geralmente, o tamanho da partição swap corresponde ao dobro da quantidade de memória RAM presente no sistema. Essa regra, apesar de não ser prejudicial, não fará diferença em sistemas com vários gigabytes de memória RAM. Apesar de náo ser comum, é possível utilizar mais de uma partição de swap no mesmo sistema. É recomendável criar partiçóes de swap nos dispositivos mais velozes. Se possível, em dispositivos distintos daqueles cujos dados sejam frequentemente ados pelo sistema. Também é possível criar grandes arquivos como área de swap, o que é geralmente feito em situações emergenciais, quando o sistema ameaça ficar sem memória disponível.
Diretórios em outras Iva r
Itmp
(home
/boot
/usr
Esse diretório contém as filas de email, impressão e bancos de dados, dados que são muito manipulados. Ele abriga também os arquivos de log, cujo conteúdo está em constante alteração e crescimento. Espaço temporário utilizado por programas. Uma partição distinta pan ftmp impedirá que dados temporários ocupem todo o espaço no diretório raiz, o que pode causar travamento do sistema. Contém os diretórios e arquivos pessoais dos usuários. Uma partição distinta ajuda a limitar o espaço disponível para usuários comuns e evita que ocupem todo o espaço disponível no dispositivo. Ponto de montagem para a partição contendo o kernel e arquivos do bootloader Grub. A separação desse diretório é necessária apenas nos casos em que a arquitetura da máquina exila que o kernel esteja antes do cilindro 1024 do disco rígido. Também é necessária quando o booltoader não for capaz de trabalhar com o sistema de arquivos utilizado na partição raiz. Programas, códigos-fonte e documentação. O ciclo de alteração desses arquivos é longo, mas colocá-los em um dispositivo distinto reduz a intensidade de o num mesmo dispositivo e pode aumentar a performance.
Outros pontos de montagem Tudo no sistema pode ficar alojado diretamente na partição raiz. Em certos casos, porém, é interessante criar uma partição distinta para alguns diretórios específicos, principalmente em servidores que sejam muito exigidos. 41
Certificação LPI-1
Sugestões de diretários que podem estar em outros dispositivos/partiçóes são mostrados na tabela Diretórios em outras partiçôes.
Alguns diretório e arquivos não devem estai fora da partição raiz, como é ocaso do fetc,
ibm, isbi n e os diretórios especiais, como idev, iproc, isys. Esses dirct6rios e os arquivos que eles contêm são necessários para que o sistema inicie e possa montar os demais dispositivos.
LVM O LVM
- Logical Volume Management— é um método que permite interagir com os
dispositivos de armazenamento de maneira integrada, sem lidar com peculiaridades inerentes ao hardware, Com o LVM, é possível redimensionar e incluir espaço sem necessidade de reparticionamento ou de mexer nos dados armazenados. Um esquema LVM pode ser dividido em cinco elementos fundamentais:
• VG: Volume Group. Nível mais alto de abstração do LVM. Reúne a coleção de volumes lógicos (LV) e volumes físicos (PV) em uma unidade istrativa.
• PV: Phisical Volume. Tipicamente um disco rígido, uma partição do disco ou qualquer dispositivo de armazenamento de mesma natureza, como um dispositivo RAID. • LV:
Logical Volume, O equivalente a uma partição de disco tradicional. Tal qual
uma partição tradicionaL deve ser formatado com um sistema de arquivos.
• PE: Physical Extent. Cada volume fisico é dividido cm pequenos "pedaços", chamados PE. Possuem o mesmo tamanho do LE (Logicai Exient).
• LE: Logical Extent. Semelhante ao PE, cada volume lógico também é dividido em pequenos "pedaços", chamados LE. Seu tamanho é o mesmo para todos os volumes lógicos.
Criação de um Volume Group O kernel mantém as ínformaçôes de LVM em um cache, gerado pelo comando vys-
can. Este comando deve ser executado mesmo que ainda náo existam parriçóes LVM, circunstância em que será criado um cache vazio. Em seguida, os PVs devem ser iniciados. É muito importante assegurar que as partições utilizadas estão vazias, para evitar qualquer perda acidental de dados. Por exemplo, para criar PV nas partições
/dev/sdbl
e
# pvcreate idevisdbl Physical volume "fdev/sdbl" succesfully created # pvcreate idevisdb2 Physical volume "/devisdb2" succesfuily created 42
IdevIsdb2:
Tópico 102: Instalaçâo do Linux e istração de pacotes
Como os PV iniciados, um novo grupo de volumes pode se criado. Para criar um grupo de volumes chamado meulvm, como o comando vgcreate: vycreate meu] vín /devfsdbl /dev/sdb2 Os PY são indicados em sequência, após o nome do VG. Diversas opçóes, como o tamanho de PE, podem ser indicadas. Na sua ausência, valores padrão são utilizados. Após a criação do VG, sua ativação para uso é feita com o comando vgchange: vgchange -a y meulvm Informações técnicas do VG recém criado - como tamanho e espaço disponível são exibidas com o comando vqdisplay, indicando como parâmetro o nome do VG em questão.
Inclusão de volumes Os LV são criados dentro de um VG ativo que possua espaço livre disponível. O tamanho do LV pode ser especificado em número de extents com a opção - ou em MB com a opção - L. Por exemplo, para criar um LV de 500 MB no VG mculvm: lvcreate - 500 meulvm
0
Como não foi especificado um nome para o LV, um padrão numerado será utilizado. Caso seja o primeiro LV no VG, será nomeado como Iva/O, se for o segundo, será nomeado Ivoli e assim por diante. Sua localização no sistema de arquivos será dentro do diretório doVG em Idev: /dev/meulvrn/lvolO, /dev/meu]vm/lvoll etc. Com os LV prontos, os sistemas de arquivos podem ser criados com os comandos tradicionais como o mkJi. O
102.2 Instalar o gerenciador de inicialização Peso 2 O gerenciador de inicialização - ou simplesmente bootivader - é o componente responsável por localizar e carregar o kernel Linux. Ele desempenha o estágio intermediário entre o fim dos procedimentos do BIOS e o início do sistema operacional. Logo após finalizar os procedimentos básicos de diagnóstico da máquina, o BIOS carrega para a memória os dados presentes na MBR do disco definido como dis43
Certilicação
LPI-1
positivo de boot. Esses dados correspondem a um programa bastante simples - o carregador de boot - que deverá tomar conta da máquina a partir daquele momento. A MBR (MasterBoot Recordou Registro Mestre de Inicialização) ocupa o primeiro setor do disco (512 bytes). Esse primeiro setor contém a tabela de partições e o carregador de inicialização. Assim que é carregado pelo BIOS, o bootloader lê as configuraçóes (que podem estar gravadas no próprio MBR ou dentro de unia partição) e a partir delas localiza e carrega o Kernd. Atualmente, a maioria das distribuições Linux utiliza o Grub como carregador de boot. A versão tradicional do Grub, chamada legaty, está gradualmente sendo substituída por sua implementação mais moderna, chamada Grub2.
GRUB Legacy O GRUB (Grand Unified Bootloader) é hoje o carregador de boor mais utilizado pelas distribuições Linux. Debian, Ubuntu, Fcdora etc o urili2anl como carregador de boor padrão. Ele também é instalado na MBR, com o comando comando fsbinfqrub-install, que obtêm as instruções a partir do arquivo de configuração /boot/grubfrnenu.1 st. O arquivo pode ser dividido em duas partes. Uma trata das configurações gerais do carregador de boot e a outra define cada opção de inicialização e suas configurações. Principais opções globais de fbootfqrub/menu. 1 st: • default: opção padrão a ser inicializada (começando por O); • timeout: tempo de espera para iniciar o boot, em segundos; Opç6es individuais para cada opçáo de boot: • title: nome para o itern; • root: localização do carregador de segundo estágio e do kernel (hdo,O equivale a /dev/hda ou /dev/sda, de acordo com tipo de dispositivo instalado); • kernel: caminho para o kernel (relativo à opção root); • ro: montar inicialmente em modo somente leitura; • initrd: caminho para a imagem initrd. A grande vantagem do GRUB em relação ao Lilo é dispensar a reinstalação na MBR toda vez que a configuração for alterada. Isso só é possível porque o carregador de boot instalado na MBR pelo GRUB é capaz de localizar o arquivo de configuração diretamente na partição de origem.
GRUB2 GRIJB2 é o sucessor do GRUB. Diferentemente de outros saltos de versão, onde atualizações não representam mudanças estruturais drásticas, o GRUB2 está totalmente reescrito. Apesar de manter muitas semelhanças com o GRUB Legacy, praticamente todos os seus aspectos estão modificados. 44
Tópico 102:
Instalação do Linux e istração de pacotes
Dentre as melhorias trazidas pelo GRUB2, destacam-se: • e a scripts com instruçóes condicionais e funções; • Carregamento dinâmico de módulos; • Modo de recuperação; • Menus personalizados e temas; • Carregar LiveCD a partir do disco rígido; • e a plataformas diferentes da x86; • e universal a UUIDs.
Diferenças entre GRUB2 e GRUB Legacy Para o usuário final, não há diferenças entre o GRUB2 e o GRUB Legacy. O menu de boot ainda é muito parecido e as atualizações continuam transparentes. Já o do sistema precisa ficar atento a algumas diferenças importantes: Ausência do arquivo /boot/grub/menu.lst, substituído por fboot/grub/grub.cfg (em alguns casos, pode estar em /etc/qrub2/). Este, por sua vez, é gerado automaticamenre e não deve ser editado diretamente; • O comando do Grub find boot/grub/stagel não existe mais. O estágio 1.5 foi eliminado; • No GRUB2, o principal arquivo de configuração para modificar do menu de bootéo /etc/defaultfgrub; • Configurações avançadas sáo definidas em arquivos separados localizados no diretório /etc/grub.df. • A numeração das partições inicia a partir do 1 e não mais de O; • A inclusão dc diferentes kernels Linux e outros sistemas operacionais - como Windows - é feita automaticamente. A atualização do menu de inicialização do grub - a inclusão de novos kerne!s e alterações feitas em /etc/defaul t/grub - só acontecerá com a execução do comando update-grub. O comando update-grub pode se chamar update-grub2 em algumas distribuições ou até pode estar ausente. Nesses casos, utilize grub-mkconfig -o /boot/grubtgrub.cfg ou grub2-mkconfi g o /boot/grub2/grub . cfg, conforme for apropriado.
Configurações Todas as alterações mais triviais são feitas no arquivo /etc/defu1t/grub. É a partir desse arquivo que será gerado o arquivo /boot/grub/grub.cfg, que em vários aspectos corresponderia ao antigo menu.] st. O propósito do /etc/defaul t/qrub é tornar a edição mais simples e afastar as configurações internas do grub para o arquivo /boot/grub/grub.cfg.
45
Certificação LPI-1
Mesmo após atualizações de kernel, a tendência é que esse arquivo permaneça inalterado. Seu conteúdo não está vinculado a nenhum kernel específico, como no caso do Ubuntu 12.04: GRUB_OEFAULT=O GRUS_NI DDEN_TIMEOUT=O GRUB_U1 DDEN_TIM[OUL..OUI ET=true GRUB_T1 MEOUT=1O GRUB_DlSTRIBUTOR1sb_re1ease -1 -s 2> /dev/null GRUB_CMDL!N[_LINUX_DEFAULT'quiet splash" GRUB_CMDLINE_LINUX="'
11
echo Debian'
Para outras distribuições, como a Fedora 16, poucas diferenças podem ser notadas: GRUBJIM[OUT=6 GRUBOISTRIBUTOR-Fedora' GRUB_DEFAULTsaved GRUB_CMDLINE_LINUX='rd.rnd=O rd.lvm-Q rd.driro LANG=ptjR.UTF-8 quiet
3
'-..SYSFONT=1atarcyrheb-sun15 rhgb rd.luks=O KEYTABL[=br-abnt2'
Traia-se de definições gerais, aplicáveis ao comportamento do menu de boot e aos kerneis em geral. A seguir estão listadas as principais definições do arquivo fetcigrub/dcfault: • GRUB_DEFAULT: o sistema iniciado por padrão. Pode ser a ordem numérica (começando poro), o nome como definido no arquivo grub. cfg, ou saveeh para utilizar sempre a última escolha. • GRUB_SAVEDEFAULT: se definido como frue e a opção GRUB_DEFAULT for saved a último item escolhido será utilizado como padrão. • GRUB_HÍDDEN_TIMEOUT: quantos segundos aguardar sem exibir o menu do grub. Durante esse período, o menu só aparecerá ao pressionar uma tecla. • GRUB_HIDDEN_TJMEOUT_QUIET: se true, não será exibido um contador mostrando o tempo restante para chamar o menu. • GRUB_TIMEOUT: tempo em segundos para exibição do menu do Grub. Se o valor for -1, o menu será exibido até que o usuário faça uma escolha. • GRUB_DISTJUBUTOR: nome descritivo para o irem. • GRUB_CMDLINE_LINUX linha de parâmetros para o kernel (cine/tine). Nessa opção os parâmetros serão utilizados tanto para o modo normal quanto para o modo de recuperação. • GRUB_CMDLINE_LINUX_DEFAULT: linha de parâmetros para o kernel (cmdline). Nessa opção os parâmetros serão utilizados apenas para o modo normal. 46
Tópico 102: Instalação do Linux e istração de pacotes
• GRIJB_DISABLE_LINUX_UUID: se truc não localizar dispositivos por UUID. • GRUB_GFXMODE: resolução da tela para o menu do grub e subsequente inicialização, por exemplo 1024x768. A profundidade de cor também pode ser especificada no formato 1024x768x16, 1024x764x24 etc. Dependendo do tipo de vídeo e monitor, nem todas as resoluções podem ser usadas. Para contornar esse problema, uma lista de resoluções separadas por vírgula pode ser especificada. Caso uma resolução não possa ser utilizada, a seguinte será utilizada até que uma delas funcione corretamente. • GRUBDISABLE_LJNTJX_RIcOVERY; se frue, não exibe a opção para recuperação do sistema. • GRUB_INIT_TUNE: tocar um som no speaker interno antes de exibir o menu do Grub. O formato é tempo hertz duração, onde tempo corresponde às batidas por minuto (60/tempo), hertz à frequéncia do som seguido de sua duração (em unidades de tempo). O tempo é definido apenas uma vez mas podem haver mais de um par de hertz seguidos de duração. • GRUB_DISABLE_OS_PROBER descarta a busca automática por outros sistemas operacionais. Após alterar o arquivo Ietcldefault/grub, o arquivo de configuraçáo principal grub.cfg deve ser gerado novamente. Como já mencionado, se o comando update-qrub não estiver disponível, utilize grub-rnkconfig /boot/grub/grub.cfg ou grub2-rnkconfi g 0 /boot/grub2/grub. cfg, conforme for apropriado. Dispositivos de inicialização alternativos Mesmo que não exista um carregador de boot apropriado instalado no MBR ou exista alguma falha que prejudique seu funcionamento, é possível iniciar o sistema utilizando uma mídia alternativa, como um Live CD de distribuição ou um pendrive preparado para isso. A maioria das distribuições Linux fornece CDs ou DVDs de inicialização para instalação do sistema. Essas mídias podem ser usadas para ar e inicializar um sistema já instalado e que possa estar inível por uma eventual falha do carregador de micialização. Após realizar o boot com uma mídia alternativa, os arquivos de configuração do sistema estarão íveis e poderão ser alterados para corrigir possíveis problemas. Boa prática é fazer uma cópia da MBR, pata restaurá-la no caso de ser sobrescrita por outro sistema operacional. Para fazer um becape da MBR, basta copiar os primeiros 512 bytes do disco, o que pode ser feito com o comando dd: dd ifr/dev/hda of'mbr.backup bs=1 count=512 47
Certificação
LPI-1
Esse becape pode ser guardado e depois restaurado para a MBR: dd ifmbr.backup of=/dev/hda
102.3 Controle das bibliotecas compartilhadas Peso 1 Funções comuns e compartilhadas por diferentes programas são armazenadas em arquivos chamados bibliotecas. Para compilar um programa é necessário que as bibliotecas do sistema possam ser localizadas por cada componente, que cria um vínculo entre suas próprias fiinçóes e as funçóes nas bibliotecas. O vínculo pode ser estático ou dinâmico, ou seja, as funções de uma biblioteca poderão estar embutidas no programa compilado ou apenas mapeadas para a biblioteca externa. Programas estáticos não dependem de arquivos externos, porém são maiores que programas dinâmicos.
Identificar bibliotecas compartilhadas Para conhecer as bibliotecas necessárias a um programa é utilizado o comando ldd: $ ldd /usr/bin!vi
4
linux-gate.so.l => (Oxffffe000) iibterincap.so.2 => /lib/libternicap,so.2 (0x20a1F000) libresolv.so .2 -> /lib/libresolv.so.2 (Oxb809c000) libc.so.6 => /lib/libc.so.6 (Oxb7f50000) /1ibfld-linux,so,2 (ÜxbBOcf000)
O programa vi, um editor de textos simples, requer algumas poucas bibliotecas. Na saída mostrada, todas as bibliotecas foram localizadas com sucesso. Portanto, o programa carregará corretamente. Se copiarmos esse mesmo programa de uma outra distribuição, onde fora compilado com outras bibliotecas, o programa não funcionará corretamente, pois aquelas bibliotecas de que precisa podem não ser encontradas: $ ldd ./vi linux-gate.so .1 => (Oxffffe000) libncurses.so .5 => /lib/libncurses.so.5 (Oxb7fed000) libselinux.so.l -> not found 48
4
Tópica 102: Instalação do Linux e istração de pacotes
libcso.6 => /lib/libc.so.6 (Oxb7eal000) libd1.so.2 -> /libflibd1.so,2 (Oxb7e9d000) flib/ld-linux.so.2 (Oxb8048000)
Podemos identificar que não foi possível localizar uma das bibliotecas - 1 bsel 1 nux. so .1 -, portanto o programa não funcionará corretamente ou simplesmente não poderá ser executado. A melhor solução para esses casos é instalar o programa apropriado para a distribuição utilizada, mas podem haver casos em que a instalação manual de cada biblioteca é necessária.
Localização das bibliotecas O programa responsável por carregar a biblioteca e ligá-la ao programa que dela depende é o ld.so , que é invocado por um programa toda vez que este necessita de uma função localizada numa biblioteca externa. O ld.so consegue localizar a biblioteca em questão com auxílio do mapeamento encontrado no arquivo /etc/]d.so.cache. As localidades-padrão de bibliotecas de sistema são / lI b e /us ri] 1 b. Diretórios contendo bibliotecas adicionais devem ser incluídos no arquivo /etc/ld.so.conf. Há distribuições que possuem o diretório /etc/1 d. so. conf . d/, que pode possuir outros arquivos com localizações de bibliotecas. A execução do comando ldconfig é fundamental para que as alteraçóes em /etc/1 d. so . conf atualizem o /etc/1 d .50. cache, que por sua vez possa ser utilizado pelo ld.so. Outra maneira dc deixar uma localização de biblioteca ao alcance do ld.so é adicionar seu respectivo caminho à variável de ambiente L0J1IBRARY_PÀTH, com o comando export LD_LIBRARY_PATH-cantinho_da_biblioteca. Esse método, porém, garante apenas o o temporário do 1 d .so ao diretório em questão. Não Encionará fora do escopo da variável de ambiente ou quando a variável deixar de existir, mas é um método útil para usuários que náo podem alterar o ietc/1 d.so. conf ou para a execução pontual de programas.
102.4 Utilização do sistema de pacotes Debian Peso 3
O sistema de pacotes Debian - utilizado por diversas distribuiçóes, como Ubuntu - torna possível a instalação de praticamente todos os programas disponíveis para Linux sem que o usuário precise preocupar-se com bibliotecas ou com outros programas necessários. 49
Certificação LPI-1
Cada pacote de programa, com extensão
deb, traz internamente as informações
sobre todos os programas e bibliotecas dos quais depende. As principais ferramentas de istraçáo de pacotes .deb são:
dpkg: Comando para instalação de pacotes individuais; • apt-get: Busca um pacote em repositórios remotos e o instala, assim como as suas dependências;
• aptitude: Alternativa ao apt-get. Agrega algumas outras funções.
Instalação, remoção e atualização de pacotes O grande trunfo de utilizar um sistema de pacotes como esse é a possibilidade de resolver dependências, ou seja, se o pacote a ser instalado necessitar de outros programas ou bibliotecas ausentes no sistema, estas poderão ser automaticamente baixadas e instaladas.
Repositórios Para usufruir da resolução automática de dependências, é necessário discriminar corretamente a origem dos pacotes, que deve ser apropriada para a sua distribuição. Essas origens são determinadas pelo arquivo /etc/apt/sources.list e, em alguns casos, em arquivos adicionais no diretório /etc/apt/sources.list.d/. Cada linha do arquivo /etc/aptfsources li st determina um repositório. Por exem-
plo, a linha deb http:f/ftp.br.debian.org/debian/ lenny main contrib non-free especifica o repositório deb da distribuição Debian em um servidor no Brasil. O termo
lenny identifica a versão da distribuição, e os três últimos termos - main, contrib, non-J*ee— determinam a categoria dos pacotes a serem baixados. Cada distribuição possui repositórios próprios, oficiais e náo-oficiais. Depois de alterar o arquivo /etc!apt/sources.list, é necessário executar o comando apt-get
update ou aptitude update para que as informações dos pacotes e dependências disponibilizados por cada repositório sejam baixados e atualizados localmente.
Instalação Para procurar programas, pode ser utilizado o comando apt-cache search nome_do_progra -
ma ou aptitude search nome_do_programa. Náoé necessário indicar o nome exato do programa, pois qualquer termo que ocorra na descrição do pacote também será consultado. Se nenhum resultado aparecer, á possível que os índices não tenham sido atualizados com apt-get update ou que o programa procurado não exista nos repositórios indicados em /etc/apt/sources.list. A instalação pode ser feita com apt-get instal 1 nome_do_programa ou aptitude i ns-
tail nome_do_programa. Caso haja pendências, o será consultado em
50
Tópico 102:
Instalação do Linux e istração de pacotes
relação à instalação desses programas. As dependências não instaladas serão automaticamente copiadas e instaladas. Para instalar pacotes copiados separadamente, sem recorrer aos repositórios, é usado o programa dpkg: dpkg -j virtuabox2.2_2.2.2-46594_Ubuntu_jaunty_i386.deb
0
Em alguns casos, a instalação de um pacote também apresentará um assistente de configuração. Caso seja necessário reconfigurar o pacote futuramente, utiliza-se o comando dpkg-reconfigure: dpkg-reconfigure virtualbox-2.2
Remoção A remoção de programas é feita pelo próprio apt-get. O comando apt-get remove nome_do_programa desinstala o programa. De forma semelhante, o comando aptitude remove nome_do_programa produz o mesmo resultado. Para remover o pacote e também os arquivos de configuração relacionados, é utilizado o comando apt-get remove - -purge nome_do_pacote.
Atualização de programas Atualizar pacotes é tão ou mais simples que instalá-los. Para atualizar um programa para sua última versão disponível nos repositórios é usado o comando apt-get upgrade nome_do_pacote. Para realizar uma atualização completa de todos os pacotes que possuem novas versões no repositório, basta utilizar o comando apt-get upgrade ou aptitude upgrade.
Inspeção de pacotes Além de proporcionar grande facilidade para instalar, remover e desinstalar programas, o sistema de pacotes do Debian permite fazer diversos tipos de inspeção nos pacotes. Comandos úteis para fins de inspeção de pacotes estão na tabela Comandos
de inspeção. O
102.5 Utilização do sistema de pacotes RPM e YUM Pesa 3 Semelhante ao sistema de pacotes Debian, existe o sistema de pacotes RPM. Originalmente desenvolvido para a distribuição Red Hat, hoje ele também é usado em distribuições como Fedora, CentOS, entre outras.
51
Certificação LI'l-1
O comando RPM O principal comando de istração de pacotes é o rpm. Sua aplicação é semelhante a do dpkg no sistema de pacotes Debian, que é instalar pacotes individualmente. Algumas abreviações de opções do rpm são parecidas, porém realizam diferentes ações, dependendo de sua posição na linha de comando. A distinção é feita a partir da primeira opção da esquerda para a direita. O primeiro argumento ado ao comando rpm é o argumento principal. As demais são as sub-opções do argumento principal. Um pacote . rpm pode ser instalado simplesmente invocando o comando rpm -ivh nome do pacote.rpm. Veja na tabela Principais opções do rpm os argumentos mais utilizados. As sub-opções do comando rpm modificam a maneira como a opção principal atua, principalmente em relação à opção -q (investigação de pacotes). A tabela Principais sub-opções do rpm mostra algumas dessas sub-opções. Outras opções muito importantes do rpm são: • - -nodeps: Instala o pacote sem verificar as dependências; • - -force: Força a instalação/atualização. • - -test: Mostra como seria a instalação, mas não instala; • requi res: Com opção principal "q' mostra as exigências para o pacote especificado; - -whatrequi res: Com opção principal "q' Í mostra quais programas dependem do pacote. Comandos de dpkg
-1
nome do_pacote
dpkg -s nome_do_arquivo dpkq L nome do_pacote dpkg contents pacote. deb apt -cache show nome_do_prog rama -
- -
Mostra estado do pacote, se está instalado e se há algum problema na instalação. Procura qual pacote instalou o arquivo especificado. Lista os arquivos instalados pelo pacote especificado. Lista o conteúdo do pacote especificado. Mostra a descrição e os detalhes sobre o pacote do programa especiticado.
Q Atualização dos repositórios
Para que as informações sobre as novas versões de programas sejam encontradas, é necessário manter a base de informações locais sobre os repositórios remotos atualizada. Isso é feito com o comando apt-get upiate ou aptitude update. É conveniente programar a execução periõdica de um desses comandos para evitar a perda de atualizações importantes.
52
Tópico 102: Instalação do Linux e ishação de pacotes
Conversão e extração Uma das formas de listar o conteúdo de um pacote RPM é utilizando o comando rplfl2i o. Esse comando simplesmente mostra na saída padrão o conteúdo do arquivo RPM no formato io. Dessa forma, podemos listar todo o conteúdo de um arquivo ou mesmo atrair algum arquivo específico. Por exemplo, para listar o conteúdo do pacote VirtualBox-2.2.2_46594Jedora11-1. i586.rpm, usamos:
$ rpm2io VirtualBox-2.2.2_46594_fedora11-I.i586.rpm
1
io -t
,/etcfrc.d/init.d/vboxdrv ./etcfvbox ./Hb/raodules ./lib/niodulesf2.6.29.1-102.fcll.1586 ./lib/modules/2.6.29.1-102.fcll,15B6/misc ./lib/modulesl2.6,29. 1-102.fcIl.iS86fmisc/vboxdrv.ko ./1ib/modues/2.6,29.1102.fcl1.i586/misc/vboxnetfIt.ko
Principais opções do rpm -j
Instala o pacote.
ou - -instafl -
- F ou - fresben Y ou flvKy -q ou - - query e oti efase -
7t-
)JowaJLJ$JøiP Atualiza o pacote apenas se já estiver instalado. Vérjfj Investiga pacotes e arquivos. ,L oesttlt
ei?
-
A
do rpm a e
h
v
Aplica uma variável a todos os pacotes instalados. Com opflo Com opção principal q'Ç lista arquivos de documentação, om ppça rrtcip wiffiPótCisia,oiro tQiIM !Ôt Mostra o progresso do procedimento solicitado. sobrtpm detërm;nadact, Com Com opção principal 'q, lista todos os arquivos e diretórios do pacote. -
Modo mais descritivo.
53
Gerlificação LPI-1
Para extrair um ou mais arquivos específicos de dentro de um pacote RPM, usamos as opções - i e -d. A opção -1 determina a extração, a opção - d obriga a criação da árvore de diretório como comida no pacote RPM, e a opção -v informa o progresso da operação: $ rpm2io Virtualaox2.2.2j6594_fedorall-1.i586.rpm
1
io -ivd *pdf'
Com esse comando, todo arquivo PDF contido no pacote será extraído para dentro da árvore de diretórios correspondente: /usr/share/doc/VirtualBox-2.2.2_46594_fedorall/Manual .pdf
O único arquivo PDF encontrado, Manual .pdf, foi extraído para sua pasta correspondente, mas dentro da pasta em que o comando foi executado.
O gerenciadorvliM O comando yum é semelhante ao comando apt-get do Debian. Ele é capaz de instalar um programa a partir da Internet e automaticamente identificar e instalar as dependências desse programa. Em seu arquivo de configuração, /etc/yum. conf, podemos determinar como serão diversos comportamentos do programa. Algumas opções padrão desse arquivo são: o cachedir: Diretório de armazenamenro dos pacotes e demais arquivos de dados. O padrão é /var/cacheíyum; • keepcache Valor 1 ou O. Determina se o yum deve manter os pacotes e arquivos relacionados após uma instalação bem sucedida. O padrão é 1 (manter arquivos); • reposdir : Lista de diretórios em que o yum irá procurar arquivo . repo, que define os repositórios. Os padrões são Jetcfyum. repos . d e /etc/yuin/repos . d. Cada arquivo dentro desses direrórios deve conter uma seção [repositório] que define o repositório a ser usado. Estes serão unidos àqueles repositórios eventualmente definidos no próprio arquivo /etc/yum.conf; • debuglevel : Nível da mensagens de aviso. Níveis úteis vão de O à 10. O padrão é 2; • errorlevel: Nível das mensagens de erro. Níveis úteis váo de O à 10. O padrão é 2. • logfile: Caminho completo para o arquivo de log do yum; • gpgcheck: Valor 1 ou O. Determina se o yum deve ou não fazer a verificação de GPG dos pacotes. Apesar de ainda funcionar, a opção upgrade rio comando aptitude no é recomendada nas versões mais recentes do programa. Em seu lugar, deve ser usada a opção safe-upgrade.
54
Tópico 102:
Instalação do Linux e istração de pacotes
Os arquivos .repo definem os repositórios e opções específicas a cada um deles. Essencialmente, eles devem conter ao menos uma seção [repositório], com o seguinte formato: [Identificador] nameNome descritivo do repositório baseurl=ur] ://caniinho/para/o/reposiório/
a
w
Esses sáo os elementos essenciais de uma definição de repositório. Cada entrada rrcscnta: • [Identificador]: Termo único que identifica cada repositório; • naine: Texto de descrição do repositório; • baseurl: URL para o diretório onde o diretório "repodata" do yum está. Pode ser uma URL http://,ftp:I/oufile:I/. Pode ser especificada mais de uma URL na mesma entrada baseuri. Algumas opções podem ser aplicadas pata cada repositório individualmente: • enabled : Valor 1 ou a Determina se o repositório deve ser usado; • gpgcheck : Valor ] ou a Determina se deve ser feita a verificação GPG para os pacotes desse repositório. O comando yum agrega as fi.rnçóes de instalação, atualização e remoçáo de pacotes. Os comando mais comuns do yum são: • yum search pacote: Localiza determinado pacote ou pacote contendo o termo procurado; • yum instail pacote: Instala o pacote; • UIP remove pacote ou yum erase pacote: Desinstala o pacote;
Q O comando io
-
O comando io serve para aglutinar e extrair arquivos de dentro de um arquivo aglutinado, mas também pode ser usado simplesmente para copiar arquivos. Sua finalidade é semelhante à do comando tar, podendo inclusive ler e escrever nesse formato. /
Q yumer
Se a intenção é apenas baixara pacote RPM do repositório sem instalá-lo, a melhor opção é o comando yurner. Sua utilização é muito simples, bastando indicar o nome do pacote com argumento. Para copiar o código-fonte do pacote no lugar do programa compilado, basta fornecera opção source. 1
55
Certificação LPI-1
yum provides recurso ou yum whatprovides recurso: Localiza qual pacote, instalado ou náo, que fornece determinado recurso ou arquivo. Aceita caracteres corínga como o asterisco; yum update: Sem nenhum outro argumento, atualiza todos os pacotes desatualizados que estiverem instalados. Com um nome de pacote como argumento, atualiza somente o pacote especificado; yum upgrade: Mesma função da instrução update, mas pode ser utilizado para atualizar a distribuição para a versão mais atual. O comando yuni update com o argumento - -obsoletes atua exatamente como o comando yum upgrade. A diferença á verificar ou não os pacotes obsoletos durante uma atualização. Esse recurso á importante para evitar quebra de dependência e funcionalidade ao atualizar para uma versão mais recente da distribuição.
s de pacotes Para garantir a autenticidade de cada pacote, é possível verificar sua , fornecida pela distribuição responsável pela sua criação e manutenção. Se a distribuição for Fedora, por exemplo, as chaves são incorporadas ao banco de dados do rpm com o comando rpm --import /usr/share/rhn/RPM-GPG-K[Y-FEDORA. Dessa forma, todo pacote copiado do servidor Fedora pode ser verificado com rpm - checksig nome_do_pacote. A integridade do pacote instalado pode ser verificada com a opção -i/. A opção ia verifica todos os pacotes instalados. A análise é feita tendo como referência os arquivos originais do pacote. A saída dessa análise pode ser bastante intensa, na qual cada caractere tem um significado específico. A tabela Caracteres de verificação mostra quais são os significados dos caracteres numa saída de verificação.
LO Caracteres de (ponto) 7 M 5 O L
56
Teste bem sucedido. Õoste nopôdewreallzdc A permissão ou o tipo do arquivo mudou. AsornaMD5ii6áqüivo éíferenté. O dispositivo foi modificado.
li
O.!InKsmb*o.M mndfiçado, O dono do arquivo mudou.
13 T
O gruØo do arhM mudou. A data do arouivo mudou.
O
VI
.2 o o 1 a, LiJ
______
Certificação LPI 1 -
~C_
Questões Tópico 102 1. Quai comando pode ser usado para listar as partições do dispositivo /dev/sda?
a. cat Idev/sda b. Is -1 /devlsda
c. fdisk -p /dcv/sda d. fdisk -1 Idevlsda
2. Qual é código hexadecimal que identifica uma partição Linux Swap? a. SI b. 82 c. 83 d. Se
3. Quais diretórios na partição raiz podem ser pontos de montagem para outras parrições? Marque todos os corretos. a. /sbin b. /etc C. /var cl. /home
4. No Grub2, qual arquivo é alterado para modificar o tempo de exibição do menu de boor? a. /boor/grubfmcnu.Isr b. /ctc/grub2.conf c. /etc/defauk/grub d. Ierclgrublgruh
5. O principal arquivo de configuração do carregador Grub legacy é o a. /boot/grub/menu.lsr b. /etdgrub.conf c. /etc/menu.lst d. /erc/grub/menu.lsr
58
Tópico 102: Instalação do Linux e istração de pacotes
6. Qual o comando usado para identificar as bibliotecas compartilhadas que um programa necessita? Dê somente o comando, sem argumentos.
7. Qual o principal arquivo de configuração que determina a localização das bibliotecas compartilhadas do sistema? Informe o caminho completo.
8. Qual comando deve ser executado após alterar o arquivo /etclapt/sources.list? a. apt-get search b. apt-ger upgrade C. apt-get update d. apt-get safe-upgrade
9. Qual opção do dpkg localiza o pacote que instalou determinado arquivo?
a.-s b. -L --contents d. --file
C.
10. Qual opção do comando rpm mostra os pacotes exigidos por um arquivo .rpm? a. --requires b. --whatrequires e. --depends d. --needed
59
t2 --/
peso total do tópico 1apra:26
Tópico 103. Comandos GNU e Unix Principais temas abordados: • Interação com o bash via linha de comando; • Uso de comandos de filtragem de texto; • Comandos de manipulação de arquivos e diretórios; • Redirecionamentos e pipes; • Monitoramento, manejo e alteração de prioridade de processos; • Expressões regulares; • Edição de textos com o Vi.
Certificação LPI-1
103.1 Trabalhar na tinha de comando Pesa 4
A maneira tradicional de interagir com um computador com Linux - especialmente um servidor - é usando a chamada linha & comando. A linha de comando apresenta o prompt do shell indicando que o sistema está pronto para receber instruções. Normalmente, o prompt terminado com o caractere $ indica que é um usuário comum que está utilizando o sistema. Quando terminado com o caractere aY, indica tratar-se do usuário root.
O shell Bash O shdll é o ambiente que faz a intermediação entre o usuário e os recursos do computador, como se fosse um ambiente de programação em tempo real para executar tarefas. O shell padrão na maioria das distribuições Linux é o bash (Bourne Again Shelô, ao qual os procedimentos aqui apresentados referem-se. Alguns comandos importantes estão mostrados na tabela Comandos embutidos do Bash. O comando alias é útil para facilitar a entrada de comandos recorrentes que levem muitos argumentos. Usar alias sem argumentos mostra quais alias estão configurados: $ alias alias is-is --calor-auto'
O exemplo mostra um alias para o comando Is configurado na sessão atual. Os alias podem ter qualquer nome, desde que não contenham espaços ou caracteres especiais, como pontos de exclamaçáo ou interrogação. O shell interpreta a primeira palavra fornecida como um comando. O caminho completo ou relativo para o comando precisa ser fornecido, a menos que este esteja localizado em um dos diretórios comidos na variável de ambiente PATH. Se o programa encontrar-se no diretório de trabalho atual e fora dos diretórios contidos em PATH, seu nome precisará ser precedido por .1, por exemplo ./scri pt sh.
Variáveis As variáveis usadas no shell são semelhantes às usadas em linguagens de programação. Nomes de variáveis são limitados a caracteres alEnuméricos. Para criar ou modificar uma variável, não devem ser usados espaços: nome_d a_v a 62
vel=va lo rd a_va riáv ei
Túpico 103: Comandos GNU e Unix
Qcomandos embutidos do Bash alias
Cria um alias (nome
alias rei-' rei -1
Obriga a confirmação toda vez
alternativo) para exec
um comanda. Um comando invocado
que o comanda rei for utilizado. nec tal mi t 1
Muda para a nível do execuçáo 1 (single) e em sefluida
com nec substitui a acho
sessão atual do shell. Replica um texto informado
env
ou conteúdo de variável, Sem argumentos, exibe as variáveis de ambiente e seus
export
encerra a sessão do sh&l. echo $PATH Exibe o conteúdo da variável de ambiente $PATH, env DISPLAY-: 1,0 xclock Abre o programa xclock alterando o valor da variável de ambiente
conteúdos. Pode executar
$DISPIAY, O escopo da alteraçáo
um comando com variável
compreendo somente a instância
de ambiente modificada. Define uma variável de ambiente para a sessão
export PÁTH-$PATH: usr/local/Ibin
/
e para todas as sessões iniciadas a partir dela. pwd
Mostra o diretório atual.
do comando executado, Redefine a variável $PÀTH para incluir o caminho /usr/ loca]
/
bi n. Note que o valor é mostrado colocando o sinal $ antes da variável. pwd
A atribuição de valor é feita sem o $. Há duas formas de utilizar o
ou ECHO $PWD
variável. O comando pwd mostra
set NOME-'ronaldo'
está contido na variável $PWD. Atribui á variável $NOME
pwd, como comando ou como o diretório atual, que também
set
Define o valor de uma variável. Sem
o valor ronaldo.
argumentos, mostra as unset
variáveis já definidas. Remove uma variável
unset NOME
Exclui a variável $NOME.
na sessão.
O valor dc uma variável é mostrado colocando o caractere $ no nome: echc $ncme_da_varáve 1
Há dois tipos de variáveis, as locais e as exportadas. • Locais: íveis apenas na sessão atual do shell. • Exportadas: íveis na sessão atual e demais sessões iniciadas a partir dessa.
O comando set mostra todas as variáveis definidas. Para ver apenas aquelas que são exportadas, usa-se o comando env. Se uma variável pode ser ada por qual-
quer processo ou sessão do shell, é chamada de variável globaL 63
Certificação LPI-1
9 Variáveis pré-definidas DISPUY
-
HOME LOmIAME PATH PWO SHELL TERM
Determina em qual display do X o programa deve exibir suas janelas. Caminho para o diretório pessoal do usuário. Ojome dè hsiárIc2SQLí para entrarJw Qsteni Lista de diretórios nos quais programas serão procurados caso tenham sido solicitados sem seu caminho completo ou relativo. Oflir'et6riatuat O shell utilizado (via de regra, fbin/bash). O tipo ije rnMaort1ø tetml+eê ntIKzado Seu tonteódo varia e SESõ ifint terMIal dó X àu um coÃsotty.
Algumas variáveis de ambiente podem ser pré-definidas, sejam variáveis internas do Bash ou definidas nos arquivos de configuração. A tabela Vailáveis pré-definidas mostra algumas delas. Outras variáveis embutidas do Bash atuam quase como comandos, devolvendo valores que são especialmente úteis em scripts. São elas: • $1: PID do último processo executado; • $$: PID do shell atual; • $7: retorna o valor O se o último comando foi bem sucedido, caso contrário retorna o valor 1; • -: corresponde ao diretório pessoal do usuário atual; • -ai aor: corresponde ao diretório pessoal do usuário chamado ahwr.
Comandos sequenciais A grande maioria das tarefas depende da execução de mais de um comando. Para executar três comandos em sequência, independente do resultado de cada uni, utiliza-se o formato: comandol
comando? comando3
$
Executar o comando seguinte apenas se o anterior foi bem sucedido (se retornou O): comandol && comando? && comando3 Executar o comando seguinte apenas se o anterior não foi bem sucedido (se retornou diferente de O): comandol 11 comando2 64
11
comando3
1
Tópico 103: Comandos CMI e Unix
Referência e manuais Em função do grande número de comandos disponíveis no ambiente Linux, um recurso que agiliza a digitação de comando e caminhos existentes é a utilização da tecla [TAB]. Após digitar as primeiras letras dc um comando ou caminho de diretório, a tecla [TABI completa a linha de acordo com os comandos e caminhos encontrados. Praticamente todos os comandos e arquivos de configuração no Linux acompanham um manual. Esse manual está ível por intermédio do comando man, que demonstra em detalhes as Funções do item em questão. Para ver um manual, basta usar o comando man, tendo o comando ou arquivo como argumento.
90_comando info O comando i nfo é urfia espécie de alternativa aos manuais man. No lugar de usar o comando man, essas referências são íveis com o comando info. Em geral, informações disponíveis em páginas mio também estão disponíveis em páginas de manual, porém de forma menos detalhada. Por padrão, os arquivo desse tipo de documentação são armazenadas em /usr/ share/info.
,1
Em sua maioria, os manuais têm a seguinte organização: • Nome: Assunto da página de manual seguido por uma descrição breve; • Sinopse: A sintaxe do comando; • Descrição; Descrição detalhada; • Opções: Revisão de todas as opções e suas Funções; • Arquivos: Arquivos relacionados ao assunto; • Veja também: Outras páginas de manual relacionadas ao tópico.
9 Buscar manual É possível buscar ocorrências de um termo na seção nome dos manuais com o comando apropos. Esse comando retorna a uma descrição breve para cada ocorrência encontrada e o nome do respectivo comando ou arquivo.
Uma maneira de identificar os manuais de referência para um determinado termo é usar o comando whatis. O banco de dados do comando whatis armazena a seção nome dos manuais do sistema. O banco de dados geralmente é atualizado por um agendamento de sistema. Para cada recursos de manual localizado, o whatis mostra uma breve descrição: 65
Certificação LPI-1
whatis nian man man man.conf [wanJ
0 (1) - formaL and display Lhe on-line nianual pages (7) - inacros to formaL man pages (5) - configuratjon data for man
Os números entre parênteses referem-se à seção a qual pertence a página de manual. As seções disponíveis são listadas a seguir: Seção 1: Seção 2: Seção 3: Seção 4: Seção 5: Seçáo 6: Seção 7: Seção 8:
• • • • • • • •
Programas disponíveis ao usuário; Rotinas de Sistema Unix e C; Rotinas de bibliotecas da linguagem C; Arquivos especiais (dispositivos em /dev); Convenções e formatos de arquivos; Jogos; Diversos (macros textuais etc.); Procedimentos istrativos (daemons, etc).
Para ar um icem em uma seção específica, o número da seção precede o nome do item. Por exemplo, ar o manual de man na seçáo número 7: man
7
O
inan
Por padrão, os arquivos dos manuais são armazenadas em /usr/nlan e /usr/share/ man, cm subdirecórios correspondentes à seção. Outros locais podem ser especificados com a variável JVIANPATJ-I. Essa varável é definida no arquivo de configuração /usr/ lib/rnan.conf ou /etc/man.conf.
Imprimindo manuais Páginas de manual podem ser impressas como texto sem formatação, simplesmente direcionando a saída do comando man para um arquivo ou comando de impressão. Para não perder a formataçáo, a página pode ser convertida usando o comando groff: zcat /usr/man/manlffindl.gz
1
groff -tuan -Tps > find.ps
4
Ou, para imprimir diretamente: zcat /usr/man/rnanl/find.1.gz 1 groff -man -Tps 66
1
lpr
4
tópico 103: Comandos GNU e Unix
Outras documentações Projetos GNIJ geralmente incluem documentações como FAQ, Ree, ChangeLog e Guia de usuário/. Podem estar no formato ASCII, HTML, LateX ou postscript. Estes arquivos podem ser encontrados em /usr/share/doc em diretários correspondentes aos programas.
Dessa forma, o material impresso mantém as marcações e grifos presentes no manual original. O
103.2 Processar fluxos de texto com o uso de filtros Peso 3
Q
Durante a atividade de istração de um sistema Linux. em muitos momentos é necessário trabalhar com arquivos de conteúdo de texto, basicamente realizando tarefas de recortar, extrair e filtrat Para essas finalidades existem os comandas fornecidos pelo pacote GNU textutiLç. Os comandos tcxtutils mais comuns são: cat
É usado para mostrar o conteúdo de arquivos. Pode atuar como um redirecionador, tomando todo o conteúdo direcionado para sua entrada padrão e enviando para sua saída padrão. tac
Tëm a mesma função do cat, mas mostra o conteúdo de trás para frente. head
Mostra o começo de arquivos. Por padrão, as primeiras dez linhas são mostradas. A quantidade de linhas a serem mostradas é indicada pela opção -n. A opção -c especifica o número de caracteres (byte;) a serem mostrados. ta ii
Mostra o final de arquivos. Por padráo, as últimas dez linhas são exibidas. A quantidade de linhas a serem mostradas é indicada pela opção -n. A opção -e especifica o número de caracteres (byte;) a serem exibidos. Para que o final do arquivo seja mostrado continuamente, à medida que mais texto é adicionado, usa-se a opção -f (defollow). O sinal + indica que a leitura deve ser feita a partir da linha especificada após o +. 67
Certificação LPI-1
wc Conta linhas, palavras ou caracteres, a partir das opções -1, -w e - c, respectivamente. Quando usado sem argumentos, mostra esses três valores tia mesma sequência.
ni Numera linhas, como o comando cat -b. O argumento -ba faz numerar todas as linhas. O argumento -bt numera apenas as linhas que náo estejam em branco.
expand Substitui espaços de tabulação (TABs) por espaços simples, mantendo a mesma distância aparente.
unexpand Substitui dois ou mais espaços simples, em um texto, por espaços de tabulação (TAB5).
hexdu mp Mostra arquivos binários. A opçáo -c torna a saída mais legível, mostrando a coluna de endereço hexadecimal, seguida pela coluna dos dados do arquivo (valores hexadecimais sequenciais separados a cada dois bytes) e, por último, pela coluna que mostra esses mesmos bytes no formato ASCII.
od Usado para converter entre diferentes formatos de dados, como hexadecimal e binário.
split Divide um arquivo em outros menores, seguindo critérios como tamanho ou mImerode linhas. A opção -1 indica o número de linhas de cada parte do arquivo dividido. A opção -b indica qual o tamanho de cada parte. Um prefixo para as partes pode ser indicado após o nome do arquivo a ser dividido. Por exemplo, dividir um arquivo em partes de 1024 KB usando o prefixo "pa rte_": split -b 1024k arquivo_original parte_
Li
Esse comando criará arquivos chamados parteja, parte_ab, parte_ac etc. Para concatenar novamente o arquivo, pode ser utilizado o comando: cat p ar tek > arquivo_copia 68
*
Tópica 103: Comandos GNU e Unix
Será criado um arquivo de conteúdo idêntico ao do arquivo original. uniq Esse comando mostra o conteúdo de arquivos, suprimindo linhas sequenciais repetidas. Com a opção -u, mostra apenas as linhas que não se repentem. cut Delimita um arquivo em colunas, em determinado número de caracteres ou por p0sição de campo. Para separar por campo, a opção -ti especifica o caractere delimitador e -f informa a posição do campo. Por exemplo, para mostrar os campos da posição 1 e 3 do arquivo /etc/qroup, que estão separados por $ cut -ti
:' -f 1.3 Ietclgroup
3
root :0 bin:1 daemon:2 sys:3 a diii: 4 1...) Para exibir outro delimitador no lugar do delimitador original, usa-se a opção --output-del unulter: 1 cut -ti ' •f 1,3 /etc/group --output-delimiter root - O bin = 1 daeunon 2 sys = 3 aduuu - 4
paste Concatena arquivos lado a lado, na forma de colunas: $ paste texto_simples.txt texto_simples.txt primeira linha primeira linha do texto do texto
0 69
Certiticação
LPl-1
Similar ao paste, mas trabalha especificando campos, no formato -1 CAMPO -2 CAMPO <arquivo um> <arquivo dois>, cm que CAMPO é o número indicando qual campo nos respectivos arquivos (primeiro e segundo) deve ser correlacionado. Por exemplo, relacionar as linhas de arql cujo primeiro campo (coluna 1) seja igual ao primeiro campo de arq2:
arqi: 1 ai xl 2 bi yi 3 cl zi
1
arq2: 1 a? x2 2 b2 y2 3 c2 z2 1 1 2 3
-i 1 -21 arql arq2
ai xi a2 x2 bi yl b2 y2 cl zi c2 z2
A primeira coluna do resultado é o campo que foi relacionado, seguido das linhas correspondentes. É possível delimitar quais campos mostrar, com a opçâo -o. Essa opção deve ser escrita no formato N.M, em que N é o número correspondente ao arquivo e M é o número correspondente ao campo desse arquivo. O campo de relação também pode ser referido por O. Por exemplo, fazer a mesma relação do exemplo anterior, mostrando apenas o primeiro campo de arql e apenas o segundo de arq2: $ -11 -21 -o 1.2 2.3' arqi arq2
1
ai x2 bi y2 cl z2
sort Ordena alfabecicamente. Com a opçáo -n, ordena numericamente. A opção - r inverte o resultado. 70
Tópico 103: Comandos GNU e Unix
fmt Formara um texto para determinado número de caracteres por linha. O padrão é 75. Opções importantes do fmt são: • -w: Indica o número de caracteres por linha; • - 3: Quebra Linhas grandes, mas não as preenche; • -u: Um espaço entre palavras e dois espaços entre sentenças. pr Divide o arquivo para impressão. O padrão é 66 linhas por 72 caracteres de largura, modificados por -1 e -w, respectivamente.
tr Converte caracteres. Diferente dos demais comandos mostrados, em que os dados podem vir pela entrada padrão ou indicando um arquivo, o comando tr usa apenas a entrada padrão. Por exemplo, converter todas as letra minúsculas para maiúsculas:
$ echo abc j tr '[a - z] ABC
'[AZ]
Trocando espaços pelo caractere underscore:
$ echo Frase chea de espaços' f tr Frase_cheid_de_espaços
103.3 Gerenciamento básico de arquivos Peso 4 Praticamente toda operação em linha de comando envolve trabalhar com arquivos e diretórios. Essa manipulação via comandos pode ser muito facilitada quando conhecemos a ferramenta apropriada para cada finalidade.
Diretórios e arquivos Arquivos podem ser ados tanto por seu caminho absoluto ,uanto pelo relativo. Caminhos absolutos são aqueles iniciados pela barra da raiz (1) e caminhos relativos são aqueles que tomam por referência o diretório atual. O Ponto (.) refere-se ao diretório atual, e os dois pontos (..) referem-se ao diretório superior ao diretório atual. 71
Certificação LPI-1
O comando Is é usado para listar arquivos e conteúdo de um diretório. A opção -i exibe detalhes sobre o(s) arquivo(s), -s mostra o tamanho em KB e -d mostra as propriedades de um diretório, não seu conteúdo. Exemplo de saída de is -1: $ is -1 JetcfXll/xinitf total 24 -rw-r--r-- 1 root root 321 2003-03-16 18:35 REAOME.Xmodmap lrwxrwxrwx 1 root root 15 2009-03-21 09:39 xinitrc -) x initrc,fluxbox* -rwxr-xr-x 1 root root 538 2007-05-28 00:57 xinitrc,blackbox* -rwxr-xr-x 1 root root 542 2008-10-05 03:31 xinitrc.fiu x box*
0
-rwxr-xr-x 1 root root 539 2007-02-18 00:19 xinitrc,fvwm2* -rwxr-xr-x 1 root root 733 2007-03-24 00:56 x initrc.twm* -rwxr-xr-x 1 root root 788 2008-07-30 04:03 xinitrc.wmakert Essas informações podem ser divididas em colunas, da esquerda para a direita: • A primeira coluna mostra o tipo e as permissóes do arquivo; • A segunda coluna mostra o número de hardlinks para o arquivo; • A terceira e a quarta mostram o dono e o grupo aos quais o arquivo pertence.; • A quinta mostra o tamanho em bytes; • A sexta e a sétima mostram a data e a hora da última modificação no arquivo; • A oitava coluna mostra o nome do arquivo. Se o arquivo for um link simbólico, uma seta mostra o arquivo para o qual ele aponta. No Linux, nem todos os arquivos possuem sufixos que indicam qual é seu conteúdo. Nesses casos de ausência de sufixo, o comando file é muito útil para identificar o tipo de arquivo, se trata-se de uma imagem ou um texto, por exemplo: $ file face.png face.png: PNG image data, 96 x 96, 8-bit/coior RGB, non-interlaced $ fiie separate.tar.gz separate.targz: gzip compressed data, from Unix, iast modified: Thu Mar 20 '-, 11:41:11 2008 $ fiie hoje_de_manha.txt hoje_de_.rnanha.txt: ASCII text
72
Tópico 103: Comandos GNIJ e Unix
'.4
file 1913\ The\ Debarted.flv 1913 The Üebarted.f]v: Macrojiledia Flash Video
Manipulando arquivo e diretórios O comando é utilizado para copiar arquivos. Suas opções principais são: • -1: Modo interativo. Pergunta antes de sobrescrever um arquivo. • -p: Copia também os atributos do arquivo original. • -r: Copia recursivamente o conteúdo do diretório dc origem. É importante saber que ao copiar um diretório recursivamenre, o uso da barra / no final do diretório de origem fará com que apenas o conteúdo do diretório seja copiado para o destino; não usar a barra fará com que o diretório de origem e seu conteúdo sejam copiados no destino. O comando mv move e renomeia arquivos. Usado com a opção i, ele pede confirmação antes de sobrescrever um arquivo de destino. Para alterar a data de um arquivo, utiliza-se o comando touch. Usado sem argumentos, touch altera a data e a hora de criação e modificação de um arquivo para os valores atuais do sistema. Para alterar apenas a data de modificação, usa-se a opção -m, e para alterar apenas a data de o, usa-se a opção -a. Outros valores de tempo podem ser ados com a opção -t. O comando cd muda para o diretório especificado ou vai para o diretório pessoal, quando nenhum diretório é especificado. O comando mkdi r cria diretórios. Para criar uma árvore de direrórios recursivamente, sem necessidade de criar um a um, usa-se a opção -p: $ mkdir -p caminho/completo/para/dir Para alterar as permissões do diretório no ato da criação, as mesmas sáo transmitidas ao mkdir com a opção -m. Direrórios vazios podem ser apagados pelo comando rmdir. Para apagar um arquivo, o comando é ra. Para apagar roda uma árvore de diretórios vazios, usa-se a opção -p. Para apagar diretórios com conteúdo, usa-se rm -r. Para forçar a remoção, a opção -f é utilizada.
Condensação de arquivos No Linux, existem basicamente dois comandos para aglutinar arquivos e diretórios dentro de um só arquivo: tar e io. Suas finalidades básicas sáo semelhantes, aglutinam arquivos em outros arquivos ou fitas e podem extrair e atualizar estes arquivos. 73
Certificação IPI-1
Para criar um arquivo contendo todo o diretório /etc e seu conteúdo com o tar, podemos usar a forma: # tar cvi etctar /etc
As instruções Fornecidas representam: • c: Criar um arquivo; • v: Mostrar cada arquivo que é incluído; • f: Especifica em seguida o caminho para o arquivo a ser criado. O último argumento é o diretório(s) ou arquivo(s) a ser incluído. Para extrair esse arquivo, a opçáo usada é a x: # tar xvf etc.tar
Os arquivos serão extraídos com a árvore de diretórios completa. Esse mesmo arquivo .tar, apesar dc aglutinado, não está compactado. Os principais comandos de compactação no Linux são o qzip e o bzip2. Para compactar o arquivo .tar usamos: gzipetc.tar ou bzip2 etc.tar
4
Será criado automaticamente o arquivo etc.tar.gz ou etc.tar.bz2. A principal diferença entre as duas modalidades de compactação é o algorítimo utilizado. O gzip é mais rápido, enquanto que o bzip2 costuma oferecer melhores taxa de compressão. A compactação pode ser especificada diretamente com o comando tar. Para realizar a compactação com gzi p, é utilizada a opção z: fitar czvf etc.tar.gz Ietc
4
Para usar bzip2, é utilizada a opção j: fitar cjvf etc.tar.bz2 /etc 74
4
Tópico 103:
Q
Comandos
GNU
e Unix
Cópia exata com dd
O comando dd realiza cópias byte a byte, ou seja, realiza a cópia sequencial de dados de qualquer origem para qualquer destino. Por isso, é especialmente útil para fazer cópias completas de discos ou partições inteiras e imagens de midias como CDs e OVDs.
A dcscompressáo pode ser feita com os comandos gunzi p e bunzi p2, mas também pode ser feita diretamente como comando tar e com as opções z ej, respectivamente. O comando io serve para aglutinar e extrair arquivos de dentro de um arquivo aglutinado, mas também pode ser usado simplesmente para copiar arquivos. Sua finalidade é semelhante à do comando tar, podendo inclusive ler e escrever nesse formato. Uma diferença importante é que o io trabalha apenas com redirecionentos de entrada e saída padráo. Para listar o conteúdo de um arquivo i o, é usada a opção -t. Para extrair um arquivo, a opção -i.
Caracteres curinga (file globbing) As operações com arquivos e diretórios permitem o uso de caracteres curinga, que são padrões de substituição de caracteres. O caractere * substitui qualquer sequência de caracteres: $ 's /etc/host /etc/host .conf /etc/hosts !etc/hosts.allow /etc/hosts.oeny Jetc/hosts.equiv
*
O caractere ? substitui apenas um caractere: $ i s fdev/fd? /dev/fdü Idev/d1
/dev/fd2 /devffU3
O uso de colchetes (E 1) indica uma lista de caracteres: $ is /dev/hd[abc] /dev/hda /devfhdb (dev/hdc Chaves ({ }) indicam uma lista de termos separados por vírgula: 75
Certificação LPI-1
$ is /dev/{hda,fdOl /devlfdo
fdev/hda
O uso dc exclamação antes de um curinga o exclui da operação:
1
lis /dev/1`d[!01] /dev/fd2 /dev/fd3
Curingas precedidos de barra invertida (\) não realizam substituição: lis /dev/fd\[\101\] is: /dev/fd{!01]: Arquivo ou diretório não encontrado
Entre aspas duplas, apenas os caracteres especiais 1, / e $ têm efeito. Entre aspas simples, apenas o caractere especial \ tem efeito.
Encontrando arquivos O principal comando de localização de arquivos no Linux é o find, cuja sintaxe básica é find diretório critério [ - exec comando {) \J. O argumento diretório indica onde o f ind deve iniciar a busca, e o critério pode ser o nome do arquivo ou diretório a ser procurado ou uma regra para a busca. Critérios comuns para o find:
Critérios comuns para o find - type
Define o tipo do arquivo (d para diretório, (para arquivo comum e / para link).
fte42 ° -usar usuário
Dono do arquivo.
-ctiuie -/+n
Arquivo criado antes ou após ix
si '24)f&W
-amin -I+n
ca -i+n -mmi n -/+n nøeer ArquWó -perm modo pen modo pariu +rnodo
76
Arquivo ado antes ou depois de n, ri corresponde à quantidade de minutos.
AÍ6* eD*WPQtMt& Arquivo moditicado antes ou depois de n.
rp&UøJw cr3Mó bu trndkado àp rqoWo O arquivo procurado tem permissão especiticada igual a modo, como as letras r, w ex. OtquMi procfldotm lotJs as pea-rr4ss6es Dstada em modo O arquivo procurado tem q ualquer das permissões hstadas em modo.
b
Tópico 103:
Comandos GNU e Unix
Exemplo de utilização do find: encontrar todos os arquivos do tipo link em /usr/ li b, criados há menos de 24 horas: $ r nd [usr•'' b -type
otire -
(usr/ lib/1 ioss .so
!usr/'b/ 4 bcrypto.so !usrI1iD/liÕss1 .su.3 fusr/'b/' 1bcrypto.so.O
103.4 Fluxos, pipes (canalização) e redirecionamentos de saída Peso 4
Processos Unix (e consequentemente Linux) geralmente abrem três descritores-padrão dc arquivos, que os permitem processar entrada e saída de dados. Esses descritores ser redirecionados de e para outros arquivos ou processos. Por padráo, o descritor de entrada (stdin) é o teclado e os descritores de saída-padrão (stdout) e de saída de erro (stderr) são a tela do computador. Os valores numéricos para esses descritores são O para stdin, 1 para stdout e 2 para stderr. Os descritores também podem ser ados por meio dos dispositivos virtuais Idevi stdin, /dev/stdout e /dev/stderr. O fluxo dos dados para redirecionamentos e canalizações numa linha de comando se inicia da esquerda para a direita.
Redirecionamento Para rcdirecionar a saída-padrão de um comando para um arquivo, utiliza-se o símbolo > após este, que deve indicar o arquivo a ser criado com os dados referidos: 1 cat /etclwd > copia_wd
Se o arquivo existir previamente, será sobrescrito. Para adicionar os valores sem apagar o conteúdo existente, usa-se ». Para redirecionar o conteúdo de um arquivo para a entrada padrão de um comando, usa-se <. Nesse caso, o fluxo dos dados segue da direita para a esquerda. É especialmente útil para utilizar com comandos como o tr, que não lê arquivos diretamente. O conteúdo redirecionado por padrão é ode stdout. Para especificar stderr, usa-se 2>. Para redirecionar ambos simultaneamente, usa-se &>. 77
Certificação
LPI-1
Canalização (pipe) É possível enviar a saída de um comando para a entrada de outro comando utilizando o caractere de canalização 1. Por exemplo, extrair a terceira música de um CD com o comando cdparanoi a, canalizando o áudio para o programa oggenc - para armazenar a música no formato Ogg Vorbis: $ cdparanoia -d /dev/cdrom 3 -
oggenc - -o 03.üqg
4
Por fim, é possível redirecionar simultaneamente a saída, tanto para um arquivo quanto para stdout, por meio do comando tee. Para tal, canaliza-se a saída do comando para o comando tee, fornecendo a este um nome de arquivo para armazenar a saída: 1 cat fetcfwd
1
4
tee eopia_wd
O conteúdo de /etc/wd será mostrado na tela e copiado no arquivo cop a_pa s swd.
Substituição de comandos É possível também usar a saída de um comando como argumento para outro, usando aspas invertidas:
4
$ is -dl 'cal fetc/ld,so.conf' drwxr-xr-x
5 root root 7464 2006-01-14 17:35 /usr/X11R6/lib
drwxr-xr-x
2 rüot root 712 2006-03-17 12:26 /usrIi486-siackware-iinux/iib
drwxr-xr-x
2 root root 688 2005-10-29 22:53 /usr/Hb/qt/lib
drwxr-xr-x 16 root root 7272 2006-03-21 02:49 /usr/local/lib
Resultado idêntico é conseguido com is -dl $(cat Jetc/ld.soconf). Semelhante à substituição de comandos, o comando xargs desempenha função de intermedhirio, ando os dados que recebe via stdin como argumento para um segundo comando. Exemplo do xarqs acompanhando a execução do find: $ find /usrIXl1R61bin/ -name xt*'
1
xargs ls -1
-rwxr-xr-x 1 root bin 268928 2006-03-14 17:35 /usr/X11R61bin/xterm -rwxr-xr-x 1 root bin 13076 2006-01-14 17:35 /usr/X11R61bin/xtrapchar -rwxr-xr-x 1 root bin
78
6536 2006-01-14 17:35 /us0X11R61binfxtrapin
4
Tópico 103: Comandos GNU e Unix
Nesse exemplo, xargs tomou cada caminho ado por find e reou como argumento para o comando is -1. e
103.5 Criar, monitorar e finalizar processos Peso 4
Em linhas gerais, um processo é um programa em execução. Cada processo possui um número único de identificação chamado PID. Esse número pode ser usado para mudar a prioridade de um processo ou para finalizá-lo.
Monitorar processos Diversos comandos podem ser usados para inspecionar processos e são especialmente úteis para localizar e finalizar processos dispensáveis ou suspeitos. São eles: • ps: Mostra os processos ativos de maneira detalhada; • top: Monitora continuamente os processos, mostrando informações como uso de memória e U de cada processo. A tecla [H] fornece ajuda sobre o uso do programa. Pode ser usado para alterar a prioridade de um processo; • pstree: Mostra processos ativos em formato de árvore genealógica (processos filhos ligados aos respectivos processos pais); • pidof: Retorna o PID do programa cujo nome foi solicitado, se o programa
estiver em execução; • ki li: Envia sinais de controle para processos. O sinal padrão, quando nenhum sinal é informado, é SIGTERM, de valor numérico 15, que pede ao programa em questão para finalizar. O processo não necessariamente obedece ao sinal, a menos que o sina! seja SIGKTLL. Em alguns casos, o sinal SJGHUP pode ser interpretado como ordem para que o processo releia seu(s) arquivo(s) de configuração; • Id ii ai i: Tem função igual à de kill, porém usa o nome do processo no lugar do PID. Com a opção -1, lista os sinais possíveis. Por exemplo, para enviar o sinal SIGTERM para o processo de número 4902:
II kiiI -SIGTERM 4902 Alguns dos sinais mais utilizados podem ser encontrados na tabela Sinais de con-
trole comuns. 79
Certificação LPI-1
Sinais de controle comuns SIGHIJP
Termina ou reinicia o processo. Valor numérico 1.
Jilfl SIGOUIT
.
Fecha o processo. Valor numérico 3.
si1Jflj SIGTERM
Solicita ao processo para finalizar. Valor numérico 15.
Tarefas em primeiro e segundo plano Após iniciado um programa no shell, ele normalmente assumirá o controle de stdin e srdour, ou seja, ficará em primeiro plano. Para interromper o programa e voltar ao prompt do shell, usa-se a combinação de teclas [Ctrl]+[Z]. Feito isso, para continuar a execução do programa em segundo plano, ou seja, mantendo o prompt do bash em primeiro plano, usa-se o comando bg (backgroune4. Para continuar a execução do programa em primeiro plano, usa-se o comando fg (foregroune4. Ao interromper uma tarefa, é mostrado um número que a identifica. Este número pode ser ado para fg e bg, para especificar a tarefa desejada. Se houver apenas uma tarefa na sessão atual, fg e bg podem ser usados sem argumentos. Para usar o nome do programa no lugar de seu número de tarefa, basta precedê-lo por U. O comando jobs lista as tarefas existentes na sessão atual do bash. É especialmente útil quando há mais de uma tarefa em andamento. É possível iniciar programas diretamente em segundo plano, adicionando o símbolo & ao seu final. Os números mostrados correspondem ao número da tarefa e ao PID, respectivamente. O número de uma tarefa pode ser usado como argumento do comando ki 11, desde que precedido do símbolo %. Quando um usuário sai do sistema, um sinal SIGHUP é enviado a todos os processos iniciados por ele. Para que esse sinal não interrompa o processo do usuário depois de ele sair do sistema, o comando deve ser invocado por meio do nohup: $ nohup wget ftp:fftransferência/muito/demOrada.tar.bZZ & nohup: appending output to 'nchup.out'
3
As saídas stdout e stderr serão redirecionadas para o arquivo nohup.out, criado no mesmo diretório em que o comando foi executado. Dessa forma a saída do contando poderá ser analisada posteriormente.
Recursos de sistema A istração de processos deve se basear nos recursos de hardware disponíveis. Basicamente, processos que ocupam muita mem6ria ou processamento devem ser finalizados em situações de emergência. 80
Tópico 103:
Comandos ONU e Unix
O comando free mostra o montante total de memória ram, a quantidade de memória livre e o espaço de swap. Numa situação em u=que não há mais memória RAlvI disponível e o espaço de swap já está demasiado ocupado, existe a suspeita de que algum processo está ocupando muita memória indevidamente e deve ser finaiizado. Outro comando útil para identificar o consumo de recursos da máquina é o uptinie: # uptre 20:46:36 up 28 days,
5:52.
1 ,
oad average: 0.52, 3.55, 0.48
Os valores finais, load average, mostram a média de consumo geral de recursos de máquina que o sistema tem ocupado. Valores próximos de 1.00 indicam que o hardO ware está sendo muito exigido e que o sistema não está tendo bom desempenho.
103.6 Modificar a prioridade de execução de um processo Peso 2
~GP
No Linux, como na maioria dos sistemas multitarefa, é possível atribuir prioridades aos processos. As prioridades são definidas com números chamados números nice (NI), usados pan alterar a prioridade de U e balancear seu uso num ambiente multiusuário. Todo processo comum é iniciado com uma prioridade-padrão (0). Números nice vão de 19 (prioridade mais baixa) a -20 (prioridade mais alta). Apenas o usuário root pode reduzir o número nice de um processo para abaixo de zero. É possível iniciar um comando com uma prioridade diferente da padrão por meio do comando nice. Por padrão, nice muda a prioridade para 10, podendo ser especificada como na forma: nice
-n 15 tar czf hor:'e._backup.tar.gz /ho'e
Na qual o comando tar é iniciado com número nice 15. Para alterar a prioridade de um processo em andamento, o comando renice é usado. A opção -p indica o PID do processo em questáo. Exemplo: # renice -13 -p 2997 2997: prioridade antiga
0: prioridade nova = -10
As opções -g e -u permitem alterar todos os processos do grupo ou do usuário, respectivamente. Com renice +5 -g s, todos os processos de usuários do grupo s tiveram suas prioridades (número nice) alteradas para +5. 81
Certificação
LPI-1
Além do comando reni ce, prioridades podem ser modificadas interativamente por meio do programa top. Quando na tela de processos, basta apertar a tecla [R] e indicar o número P11) do processo. O
103.7 Procurar em arquivos de texto usando expressões regulares Peso 2
Expressões regulares são elementos de texto, palavras-chave e modificadores que formam um padrão, usado para encontrar e opcionalmente alterar um padrão correspondente.
O comando grep Muitos programas am o uso desses elementos, e o comando grep á o mais comum para realizar buscas por eles, em textos. Alguns caracteres têm significado especial em expressões regulares, como mostrado na tabela Caracteres espedais em expressões regulares. Um uso comum do grep é mostrar o conteúdo de arquivos de configuração excluindo apenas as linhas que correspondem a comentários, ou seja, as linhas que começam com o caractere 1h Por exemplo, fazê-lo com o arquivo Ietc/lilo.conf:
a
grep Alt' Jetc/lilo.conf
Exemplo de uso dos colchetes - mostrar linhas de /etc/l 110. conf que contenham os termos hda ou hdb: grep 'hd[ab]' /etc/}ilo.conf Opçóes comuns do comando grep: • c: Conta as linhas contendo o padrão; • -1: Ignora a diferença entra maiúsculas e minúsculas.
Q caracteres especiais em expressões regulares ilir. 1115 III: A
Começo de linha.
$
Ft1dëMba
• (ponto) *
Qualquer caractere. Qualu sèUêaçla de zero ou mas caracteres Qualquer caractere que esteja presente nos colchetes.
II 82
Tópica 103: Comandos GNU e Unix
- f: Usa a expressão regular comida no arquivo indicado por essa opçáo; -n: Procura somente na linha indicada por essa opção;
-v: Mostra todas as linhas exceto a que corresponder ao padrão.
Variações do grep Dois comandos complementam as funçáes do grep: egrep e fgrep. O comando egrep é equivalente ao comando grep -E, ele incorpora outras fhncionalidades além das expressões regulares padrão. Por exemplo, com o egrep pode-se usar o operador pipe 11 "1 , que atua como o operador OU: egrep invençãoinvençÔes'
Serão retornadas todas as ocorrências do termo invençáo ou invenções. Já o fyrep age da mesma Forma que o grep -F, ou seja, ele deixa de interpretar expressões regulares. É especialmente útil nos casos mais simples, em que o que se quer é apenas localizar a ocorrência de algum termo simples: grep andaluzia'
0
Dessa forma toda operação de expressão regular será ignorada, tornando o processo de localização muito mais rápido. Mesmo se forem utilizados caracteres especiais, como $ou ponto, estes serão interpretados literalmente, e não pelo que representam numa expressão regular.
Edição de padrões com sed O comando sed é mais utilizado para procurar e substituir padrões em textos, mostrando o resultado em stdout. Sua sintaxe é sed [opções] comando e expressão regular' [arquivo original)
'0
No sed, a expressão regular Hca circunscrita entre barras W. Por exemplo, sed e / A#/d /etcfl i lo .conf mostra o arquivo /etcíl lia. conf sem as linhas começadas por # (linhas de comentário). A ]etra d ao lado da expressão regular é um comando sed, que indica a exclusão de linhas contendo o respectivo padrão. Por exemplo, para substituir o termo hda por sdb, usaríamos sed -e s/hda/sdb/g /etc/Hlo.conf. Opções comuns de sed: • -e: Executa a expressão e comando a seguir; • - f: Lê expressões e comandos do arquivo indicado pela opção; • -n: Não mostra as linhas que não correspondam à expressão.
Certificação LPI-1
Comandos comuns de scd: • s: Substituir; • d: Apaga a linha; • r: Insere o conteúdo do arquivo indicado na ocorrência da expressão; • w: Escreve a saída no arquivo indicado; • g: Substitui todas as ocorrências da expressão na linha atual.
O sed não provoca alteração no arquivo de origem. Para esse propósito, é necessário direcionar a saída padrão do comando para um arquivo temporário, que por sua vez pode substituir o arquivo original.
E
O
103.8 Edição básica de arquivos com o vi Peso 3
Na maioria das distribuições, o vi - Visual Editor— é o editor de textos padrão. Diferente dos editores de texto convencionais, o vi é voltado para operação em termina], possuindo atalhos de teclado para todas as tarefas de edição.
Teclas de
o.
$
1G, O (.
)
{,
}
w, w h, j, k, 1 ?
a, A o, O s, S c
w p, P u zz ZO
84
Inicio e fim de linha. Inicio e fim de documento. Início e fim de sentença. Inícioefim de parágrafo. Pular palavra e pular palavra cont ando com a pontuação. Esquerda, abaixo, acima, direita. Busca para frente e para trás. Entra no modo de inserção na posição atual do cursor. Entra no modo de inserção depois do cursor ou no fim da linha. Adiciona tinha e entra no modo de inserção depois ou antes do cursor. Apaga item ou linha e entra no modo de inserção. Modifica um Item com a inserção de texto. Substitui um único caractere. Apaga um único caractere. Copia um item ou toda linha. Cola o conteúdo, copiado depois ou antes do cursor. Desfazer. Fecha e salva, se necessário. Fecha e não salva.
Tópico 103: Comandos GNU
e Unix
Modos de execução No vi existem os chamados modos de execução, nos quais as ações de teclado se comportam de maneira distinta. Há três modos de execução básicos no vi:
Modo de navegação É o modo inicial do vi. Nele as teclas do teclado atuam basicamente para navegação e edição de blocos de texto. Geralmente, os comandos são letras únicas. Se precedido por número, o comando será repetido correspondentemente ao valor desse número. Algumas teclas comuns usadas no modo de navegação podem ser vistas na tabela Tedas de navegação. Modo de inserção A maneira mais comum de entrar no modo de inserção é apertando a tecla [I] ou [A]. É o modo mais intuitivo, usado para digirar texto no documento. A teda E ESC] sai do modo de inserção e volta para o modo de navegação.
Modo de comando fvel ao apertar a tecla [:] no modo de navegação. Usado para fazer buscas, salvar, sair, executar comandos no shell, alterar configurações do vi etc. Para retornar ao modo de navegação, usa-se a instrução visual ou simplesmente tecla-se [Enter] com a linha vazia. Veja a tabela Comandos do vi para mais detalhes, O
Comandos do vi
:quit ou :q :quit! ou til :wq :exit ou :x ou e
visual
Permtte executar um comando do shell Fecha. Fecha sem gravar. Salva e fecha. Fecha e grava, se necessário. Volta Data o modo de comando.
85
ti)
•oo -
o L. 0)
Li.I
Certificação 111-1
Questões Tópico 103 1. A maneira correta de definir uma variável no BASH é: a. $NOME=manuel braga b. $NOME="manuel braga" C. NOME=manuel braga d. NOME="manuel braga"
2. No Bash, uma variável exportada estará disponível a. em todas as sessões do Bash. b. somente nas sessões criadas a partir da sessão em que a variável foi exportada. C. somente nas sessões anteriores do bash. d. somente nas sessões diferentes da sessão em que a variável de ambiente foi exportada.
3. A linha de comando comando_a II comando_b significa que a. o comando_a será executado em segundo plano. b. o comando_b será executado em segundo plano. c. o comando_a será executado somente se o comando_b falhar. cl. o comando_b será executado somente se o comando_a falhar.
4. Qual comando exibe continuamente os dados do fina] do arquivo à medida que são acrescentados? a. tail -c b. tail .f e. tail -e cl. tail -d
5. O comando paste é utilizado para a. colar o conteúdo da área de transferência b. exibir o histórico de comandos C. enviar um texto pata outro usuário cl. exibir o conteúdo de dois arquivos lado a lado
88
Tópico 103: Comandos GNU e Unix
6. Qual opção do comando tar indica operação com compactação bzip2? a. b b. z C.
d. bz2
7. Qual comando redireciona sua entrada padrão para um arquivo e para a saída padrão ao mesmo tempo? Dê somente o comando, sem argumentos.
S. Quais comandos podem alterar a prioridade de um processo em execução? Marque rodas as respostas corretas. a. nice ti renice C. ps
d. top
9. Numa expressão regular, qual caractere indica o final da linha? a. * ti A C. -
tO. No modo de comando do editor Vi, a letra A (maiúscula) tem finalidade de a. mudar todas as letras da linha para maiúsculas. b. alterar a letra sob o cursor. e. inserir uma nova linha ap6s a linha atual. cl. entrar no modo de inserção no final da linha atual.
89
freso total do tópico lia prova: 15
¶ >
L
Tópico 104, Dispositivos, sistemas de arquivos Linux e padrão FHS — Filesystem Hierarchy Standard Principais temas abordados: • Configuração de partições, cdação de sistemas de arquivos e swap; • Manutenção de sistemas de arquivos; • Configuração de montagem de partições e cotas de disco; • Permissões de o; • Links para arquivos e diretórios; • Como localizar arquivos.
Certificação LPI-1
104.1 Criar partições e sistemas de arquivos Peso 2
Antes de poder armazenar os arquivos, todo disco rígido precisa ser particionado, ou seja, é necessário que sejam dimensionados os limites onde serão criados cada sistema de arquivos dentro do dispositivo. A maioria dos disco rígidos já sai de fábrica com uma partição criada, que ocupa todo o espaço disponível no dispositivo. Como já vimos, nem sempre utilizar uma partição única no dispositivo é a melhor solução, principalmente em ambientes Linux. A modalidade mais comum de partição de disco são as partições primárias, das quais uma pode ser do tipo estendida e, por sua vez, dividida em mais partições lógicas.
fdisk O fdisk é o programa padrão pata manipular parrições no Linux. Com a opção -1, ele lista os dispositivos e as parrições existentes. Para manipular partiçóes, o fdisk deve ser iniciado tendo como argumento o dispositivo cm questáo. Uma vez dentro do fdisk, algumas letras corresponderão a comandos. Alguns comandos bastante utilizados podem ser vistos na tabela Comandos do fdisk. Cada partição possui um número hexadecimal que a identifica como apropriada a um determinado sistema operacional. O fdisk cria novas partições identificadas como nativas de Linux, cujo código hexadecimal é 83 (0x83). O código de identificaçáo de partiçóes do tipo swap é 82 (0x82).
Criação de sistemas de arquivos: Durante muito tempo, o sistema de arquivos mais utilizado no Linux foi o ext2 (second extended). Hoje são mais indicados os sistemas de arquivos com recurso de journailing, como o ext3, o ext4 ou o xh.
(Q Comandos do fdisk L
t d
m 92
Muda o código de identificação da partição. Sfrfl'Wrtfrz Saí do fdisk sem gravar as alterações. Sai doTlàEgr&aS a1teraçes Mostra a ajuda de comandos.
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão RIS
Q ext2 para ext3
Um sistema de arquivos ext2 pode ser convertido para ext3 sem perda de dados, com o comando tune21's - i /devfhdx.
A diferença para um sistema de arquivos com journailing é que esse recurso registra de antemão todas as alteraçóes que realizará no disco. Dessa forma, erros de gravaçáo (normalmente ocasionados por queda de energia ou desligamento incorreto) podem ser mais facilmente diagnosticados e solucionados. O comando mkfs pode criar diversos sistemas de arquivos em partiçóes, em que a opção - t indica o tipo de sistema de arquivos. Para criar uma partição ext3 na partição /dev/hda3, usa-se rnkfs -t ext3 /dev/hda3. Há também comandos específicos para cada sistema de arquivos: mkfs.ext2, mke2fs, rnkfs.ext3, mkfs.xfs, rnkfs.ext4, mkdosfs emkfs.vfat.
Partição swap A partição definida como swap precisa ser formatada com o comando mkswap. Por exemplo, rnkswap /dev/hda2. Depois disso, a partição precisa ser ativada para ser usada como área de troca. O comando swapon -a ativa todas as partições swap que constarem no arquivo Ietc/fstab. As entradas referentes a partiçôes swap em Ietclfstab não têm ponto de montagem. Exemplo de entrada swap em /etclfstab: /dev/bda2
swap
swap
defauts
3O
Normalmente, todas as partições swap contidas em /etc/fstab sáo ativadas pelos scripts de inicialização do sistema. Para ativar ou desativar essa partição manualmente, usa-se swapon fdev/hda2 e swapoff /dev/hda2, respectivamente. Informaçóes sobre O as áreas de swap ativas podem ser encontradas no arquivo /proc/swaps.
104.2 Manutenção da integridade de sistemas de arquivos Peso 2 Ambientes onde há muita atividade de leitura e escrita de dados em disco podem eventualmente apresentar falhas, principalmente no caso de falhas de hardware ou desligamento abrupto. Por isso é recomendável fazer a checagem e eventual correção esporádica das partiçóes. 93
Ceflificação IPI-1
Checando o sistema de arquivos O comando fsck deve ser executado em partições que apresentarem erros ou em dispositivos que foram desligados incorretamente. A partição deverá estar desmontada ou montada como somente-leitura (ro), para a verificação. Como o comando mkfs, o fsck possui a opção -t para especificar o tipo do sistema de arquivos e um comando específico para cada partição: fsck.ext2 ou e2fsck, fsck. ext3, fsck.xfs, reiserfsck e dosfsck.
Examinando e corrigindo o sistema de arquivos Um dos comando mais importantes para a inspeção de sistemas de arquivos é o debugfs, um depurador interativo dc sistemas de arquivos ext2 e ext3. Com ele é possível realizar tarefas de baixo nível como mudar propriedades de diretórios, examinar dados de inodes, apagar arquivos, criar Iinks, mostrar o Iog de journailing etc. É usado em casos extremos, geralmente quando o fsck não foi capaz de solucionar um problema. Outros comandos importantes para inspecionar e alierar sistemas de arquivos são: • dumpe2fs: Mostra informaçóes de grupo de blocos e de superblocos; • tune2fs: Configura parâmetros ajustáveis em sistemas de arquivos ext2, como rótulo e limites de montagem, antes de checar automaticamente esses sistemas. Esses comandos são específicos para os sistemas de arquivos ext2 e ext3*. Para o sistema de arquivos xfs, existem os dois comandos semelhantes xfs_metadurnp e xfs info. O xfs metadump extrai todos os dados referentes ao sisrema de arquivos em si (com exceção dos próprios arquivos e direrórios). Já o xfs i nfo exibe as características e outras informações estarísricas sobre o sisrema de arquivos xfs em questão.
Análise de espaço em disco Dois comandos são essenciais para analisar o espaço em disco ocupado por arquivos em uma partiçáo, o df e o du: df: Mostra o espaço ocupado e disponível cru cada dispositivo. A análise é feita diretamente no dispositivo. Por padráo, mostra o espaço em unidades de 1 KB. A opção - h usa medidas - como megabytes ou gigabytes - apropriadas para tornar a saída mais inteligível. Com a opção -T exibe também o tipo dos sistemas de arquivos de cada dispositivo.
Todos os comandos relacionados ao ext2 e ext3 também são compativeis com a nova versão do sistema de arquivos, o ext4. Contudo, o sistema de arquivos ex14 não é abordado nas provas de cefltlicação.
Tópico 104:
Dispositivos, sistemas de arquivos Unux e padrão
RIS
du: Mostra o espaço ocupado por arquivos e/ou diretórios. Sem argumentos, mostra o uso de cada diretório no sistema. Um diretório específico pode ser indicado pela opção -s. A opção -h usa medidas apropriadas para tornar a saída mais inteligível. O
104.3 Controle da montagem e desmontagem dos sistemas de arquivos Peso 3
k]
Todos os sistemas de arquivos criados durante a instalação do Linux serão montados (disponibilizados para gravação e/ou leitura) automaticamente toda vez que o sistema for iniciado. As informações sobre cada sistema de arquivos e de que forma devem ser montados ficam armazenadas no arquivo /etclfstab.
fstab Para que os sistemas de arquivos sejam montados automaticamente durante o carregamento do sistema é necessário que exista uma entrada para cada um deles no arquivo /etc/fstab. Nesse arquivo são determinados as partições, o tipo de sistema de arquivos, o ponto de montagem e opçóes. Cada linha corresponde a um ponto de montagem e contém os seguintes termos, separados por tabulaçóes ou espaços: Partição do dispositivo; Ponto de montagem (swap se tratar-se de uma área de troca); Tipo de sistema de arquivos; Opçóes, demonstradas na tabela Opçôes de montagem.
Ø Opções de montagem rw ro noauto useis owner usrquota grpquota remount
Dados poderão ser gravados na partição. Dados não poderão ser gravados na partição. Permitida apenas leitura de dados. Não montar automaticamente (opção exclusiva de etr/fstdb). O dispositivo poderá ser montado e desmontado por usuários comuns. Apenas o usuário que montou o sistema de arquivos terá permissão de desmontá-la. As permissões do dispositivo montado se adequarão ao usuário que o montou. Aciona o uso de cotas de disco para usuário. Aciona ouso de cotas de disco para grupo. Remonta um dispositivo montado, podendo utilizar opções adicionais. Util para remontar um dispositivo como somente leitura, por exemplo. Exclusivo para montagem manual. 95
Certificação 191-1
• dump (O ou 1): Determina se o dispositivo deverá ser considerado pelo comando dump. Se ausente, O é considerado; • fsck (1 ou 2): Determina a ordem da checagem feita pelo fsck durante a inicialização. Para a partição raiz, deve ser 1. Se ausente, O é presumido e a checagem não é feita no boot. Para permitir que usuários comuns montem e desmontem dispositivos - geralmente, o caso de dispositivos removíveis como DVDs -, deve-se incluir a opção s para o respectivo dispositivo no /etc/fstab. Via de regra, os dispositivos de armazenamento removíveis devem possuir os respectivos pontos de montagem no diretórios /rnedia. O termo auto na posição referente ao sistema de arquivos indica que o sistema de arquivos deve ser identificado automaticamente. Para mais opções do arquivo Ietc/ fstab veja a tabela Opções de montagem.
Montagem manual de sistemas de arquivos A montagem manual de sistemas de arquivos é importante quando não for configurada uma entrada em /etc/fstab para uma determinada partição ou quando for utilizado um meio de boot alternativo, como um Live CD. O comando universal de montagem de dispositivos é o mount. Quando usado sem argumentos, o mount mostra os dispositivos montados e outros detalhes, como ponto de montagem e tipo do sistema de arquivos:
II inount
0
/dev/sda5 on / type xfs (rw) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,fflodr0755) proc on /proc type proc (rwnoexec,nosuidnodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) procbususb on /proc/bus/usb type usbfs (nt) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shrn type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,node=620) fdev/mapper/lnrii-home on /home type xfs (nt) /dev/mapper/lnm-var on /var type xfs (rw) fdev/sdal on /bcot type ext3 (rw) fusecti on /sys/fs/fuse/connections type fusecti (rw)
Para montas manualrnente um sistema de arquivos que conste em /etc/fstab, basta fornecer para o comando mount a localização da partição/dispositivo ou do
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FF15
ponto de montagem. Para desmontar uni dispositivo, o comando urnount é utilizado, tendo como argumento o dispositivo ou o ponto de montagem a ser desmontado. Usado com a opção -a, mount monta todos os dispositivos em /etc/fstab, exceto os marcados com a opção noauto. A maioria das opções de montagem são as mesmas para /etc/fstab e para mount. Se mais de uma opção for fornecida, estas deverão ser separadas por vírgula. O
104.4 istrar cotas de disco Peso 1
Em certas circunstâncias, principalmente quando muitos usuários am o mesmo sistema, é recomendável ativar o recurso de cotas de disco. Com ele, é possível limitar a quantidade de espaço em disco que um determinado usuário ou grupo de usuários poderá utilizar. Para acionar o controle de cotas de disco, é necessário incluir a opção usrquota ou grpquota no arquivo /etc/fstab e que o kernel tenha e a esse recurso. Para que a opção adicionada tenha efeito, é necessário remontar o sistema de arquivos.
Análise e controle de cotas Para gerar a tabela de estatísticas de uso do sistema de arquivos, deve-se executar o quotacheck a, o que é normalmente feito pelos scripts de inicialização. Para criar as configurações de cota para usuários e grupos, usa-se o comando ed quota. A opção -u altera as configurações de cota para o usuário especificado, da mesma forma que -g altera para o grupo especificado. O editor padrão do sistema (geralmente o editor vi) é usado para editar esses arquivos. Essas configurações são armazenadas no ponto de montagem da partição em questão, nos arquivos aquota - e aquota - group. Nesses arquivos, é possível especificar limites como espaço e inodes para o usuário ou grupo. Para que as cotas em a ser monitoradas e controladas, deve-se executar o comando quota -a. Assim, os limites para cada usuário serão comparados à tabela de estatísticas de cotas, até que um dos limites seja alcançado e o usuário não disponha de mais espaço. É possível, também, estabelecer um período em que o usuário será avisado de que seu limite foi alcançado, com o comando edquota com a opção -ta. Para que o usuário acompanhe o status de sua cota, basta executar o comando quota sem argumentos. O usuário roor pode gerar relatórios de cota dos sistemas de arquivos com o comando repquota -a. O 97
Certificação LPI-1
E
104.5 Controlar permissões e propriedades de arquivos Peso 3 Em sistemas de arquivos do padrão Unix, existe um sistema de permissão que determina a quem pertence um determinado arquivo ou diretório e quais usuários ou grupos podem utilizá-los. Para arquivos e diretórios há três níveis de permissão: usuário dono do arquivo (u), grupo dono do arquivo (g) e outros (o). As permissões são exibidas ao listar os arquivos com o comando is, utilizando a opção -1: # is -i /etc1X11/ total 36 drwxr-xr-x 3 root root 18 Abr 7 12:09 fonts -rw-r--r 1 root root 17394 Out 5 2008 rgb.txt drwxr-xr-x 2 root root 23 Abr 7 08:38 Xresources rwxr-xr-x 1 root root 3517 Mar 8 2008 Xsession drwxr-xr-x 2 root root 4096 Abr 7 12:09 Xsession.d -rw-r--r 1 root root 265 Fev 13 2007 Xsession.options -rw-------1 root root 614 Ábr 708:38 Xwrapper.config
3
A primeira letra representa o tipo do arquivo, podendo ser: • d: Diretório; • 1: Link simbólico; • c: Dispositivo especial de caracteres; • p: Canal fifo; • s: Socket; • -: Arquivo convencional. As demais letras são divididas em grupos de três, determinando as permissóes para o dono do arquivo, o grupo do arquivo e demais usuários, respecrivamente.
Alterando permissões As permissões são alteradas com o comando chrnod e podem ser de leitura (r), escrita (w) e execução (4. Por exemplo, o grupo a que pertence o arquivo texto_sinpies .txt terá apenas o de leitura a ele e para os demais usuários será retirada a permissão de leitura: 1 chmod g—r,o-r texto_simples.txt 98
4
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FF15
Para incluir permissão de escrita para o grupo do arquivo texto_siniples.txt: $ chod qi-w texto S s'pes.txt
Apesar de possuírem o mesmo modelo de permissões, arquivos e díretórios reagem de maneiras diferentes. Em diretórios, a permissão r possibilita ar o conteúdo do diretório, a permissão w permite criar arquivos dentro do diretório e x permite listar o conteúdo do diretório.
Permissões octais Permissóes podem ser manejadas mais eficientemente através de um formato numérico, chamado octal. O número octal consiste em uma sequencia de dígitos, cada um representando as permissóes para o usuário, grupo e outros, nessa ordem. Veja a Permissóes octais. Dessa forma, o comando chmod 0664 texto_simples.txt mudará as permissóes do arquivo textosinples.txt para -rw-rw-r--, ou seja, leitura e escrita para o usuário, leitura e escrita para o grupo e somente leitura para outros. Para mudar recursivamente todos os arquivos dentro de um diretório especificado, utiliza-se o chmod com a opçáo -R.
umask O umask é o filtro de permissões para criação de arquivos. As permissóes para novos arquivos criados são determinadas a partir dele. Toda vez que um novo arquivo é criado por um usuário ou programa, suas permissões serão calculadas subtraindo as permissóes padrão pelo valor de umask. As permissóes padrão do sistema para arquivos é 0666 c para diretórios, 0777. O comando urnask, sem argumentos, mostra a máscara atual de criação de arquivos. Para mudar, basta fornecer a nova máscara como argumento. Em sistemas em
Permissões octais e seus o 1
2 3 4 5 6 7
-
-
-
-
-
Sim
-
Sim Sim
Sim
Sim
-
-
-
Sim
Sim Sim
Sim
-
Sim Sim Sim
-
-
99
Certificação
L.PII-1
que os grupos iniciais dos usuários são particulares, a máscara poderá ser 002, o que subtrairá das permissóes padrão do sistema a permissão 2 (w, escrita), na categoria outros (o). Dessa forma, os arquivos serão criados com as permissões 0664. Em sistemas em que o grupo inicial de todos os usuários é o grupo s, a máscara poderá ser 0022, o que subtrairá das permissóes padrão do sistema a permissão 2 (w, escrita), nas categorias grupo (g) e outros (o). Dessa forma, os arquivos serão criados com as perrnissões 0644, limitando a permissão de escrita apenas ao usuário dono do arquivo.
suid e sgid Todos os processos são vinculados ao usuário que os iniciou. Dessa forma, o programa terá as mesmas permissóes de leitura e escrita do usuário que o executou. Algumas tarefas, no entanto, exigem que um usuário altere ou e arquivos para os quais não tem a permissão necessária. Por exemplo, alterar a própria senha exige que o arquivo /etc/wd seja alterado, mas as permissóes de /etc/wd só permitem escrita ao usuário dono deste arquivo (root):
II is -1 /etc/wd -rw-r--r-- 1 root root 1400 Mal
* 7 16:10 /etc/wd
Para contornar essa condição, existe um tipo de permissão especial, chamado suid. Arquivos executáveis que possuam a permissão suid serão executados com
as mesmas permissões do dono do arquivo e não com as permissões de quem os executou. A permissão suid é representada pela letra s, no campo referente ao dono do arquivo (a): # is -i /usr/bin/wd
0
-rwsr-xr-x 1 root root 31640 Nov 2214:01 /usr/bln/wd
Para incluir o modo suid em um arquivo executável, utiliza-se: $ chmod u+s meu_programa
*
De maneira semelhante, a permissáo sql d atua em diretórios. Ela é uma permissão de grupo, portanto aparece no campo de permissões referente ao grupo. Num diretório com a permissão sgid, todos os arquivos criados pertencerão ao grupo do diretório em questão, o que é especialmente dril em diretórios com o qual trabalham usuários pertencentes ao mesmo grupo. 100
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS
Quando ativadas, as permissões suid e sgid fazem aparecer a letra $ no lugar da letra x nas permissóes de dono do arquivo e grupo do arquivo, respectivamente. Se a permissão de execução também existir, aparecerá a letra s minúscula. Se apenas as permissões suid e sgid existirem, aparecerá a letra S maiúscula.
A permissão sticky O inconveniente em usar diretórios compartilhados é que um usuário poderia apagar algum ou todo o conteúdo inadvertidamente. Para evitar que isso aconteça, existe o modo de permissão sticky, que impede que usuários apaguem arquivos não criados por eles mesmos. É o caso do diretório /trnp: # is ld /tp drwxrwxrwt 8 root rDot
24576 Mal
8 17:58 /tmp
A letra t nas permissões para demais usuários demonstra o uso da permissão sticky. Se apenas a permissão sticky existir, aparecerá a letra T maiúscula. Por exemplo, atribuir a permissão sticky no diretório chamado workgroup: $ cnmod
041
e
workgroup
Permissões especiais em formato octal Como as opções convencionais, as permissões especiais também podem ser manipuladas em formato octal (numérico). A permissão especial é o primeiro dos quatro dígitos da opção no formato octal. A tabela Permissões especiais em formato octal detalha essa correspondência.
Permissões especiais em formato octal
o
-
-
Sim
1
-
-
2
-
Sim
-
Sim
Sim
-
Sim
3 4
Sim
5
Sm
-
6
Sim
Sim
7
Sim
Sim
%
-- Sim
101
Certificação LPI-1
Modificar donos e grupos de arquivos Para alterar dono e grupo dc arquivos e diretórios, utiliza-se os comandos chown e chgrp. O primeiro argumento é um nome válido de usuário ou grupo e o segundo é o arquivo ou diretório a ser alterado. Apenas o root pode usar o comando chown, mas qualquer usuário pode usar chgrp em seus arquivos e diretórios. Mudar dono de arquivo usando o chown: $ chown luciano texto_simplestxt
*
Mudar grupo de arquivo: $ chgrp s texto_sirnples.txt
*
Para alterar usuário e grupo simultaneamente: $ chown luciano.s textosimples.txt
*
ou $ chown luciano:s texto_simples.txt
1
Tanto chown quanto chgrp possuem a opção - R para alterar conteúdos de diretórios recursivamente. !.
104.6 Criar e alterar Iinks simbólicos e hardlinks Peso 2
Links são arquivos especiais que têm finalidade de atalho para outros arquivos, facilitando a maneira como são ados. Existem dois tipos de links: o link simbólico e o hardlink (ou link físico).
Hardlinks (Iinks físicos) Hardlinks são um ou mais nomes que um inode do sistema de arquivos pode ter. Todo arquivo criado é, necessariamente, um hardlink para seu inode correspondente. Novos hardlinks são criados usando o comando in: $ in texto_simples.txt outro_texto_simples.txt 102
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS
.Q Oqueéuminode?
Um iriode é o elemento básico que identifica o arquivo no sistema de arquivos. O primeiro inode de um arquivo carrega suas propriedades e indica em quais outros inodes do sistema de arquivos os dados deste arquivo estão localizados. A opção i do comando is mostra o número dos inodes dos arquivos:
$ is -i texto_simples.txt outro_texto_simples.txt 55412 outro_texto_sirples.txt 55412 texto_simples.txt Ambos texto_simpi es .txt e outro_texto_simples .txt são hardlinks para o mesmo inode 55412. Hardlinks para o mesmo inode possuem mesma permissão, donos, tamanho e data, pois esses atributos são registrados diretamente nos inodes. s texto5impies -rw-r--r-- 2 'uciano s 29 2006-01-01 00:01 texto_simples
$ 7
*
O número 2 na segunda coluna de informações demonstra que há dois hardlinks para o inode correspondente ao arquivo texto_si mpi es .txt. Um arquivo só é de fato apagado do sistema dc arquivos quando o último hardlink remanescente é excluido. Hardlinks só podem ser criados dentro de um mesmo sistema de arquivos. Não é possível criar hardlinks para diretórios. Os arquivos especiais . e .. são hardlinks para diretório criados exclusivamente pelo próprio sistema. Softlinks (tinks simbólicos) Links simbólicos podem apontar para qualquer alvo, inclusive em sistemas de arquivos diferentes. Para criar um link simbólico, usa-se in com a opção -s.
$ lo -s textoj 1 rpes.txt
nk_texto_sinples.txt
S
Detalhes do link: $ is -] ?a1s_texto_sirnpies.txt rwxrwxrwx 1 luciano s 13 2006-03-24 05:11 'ia 1 s_texto_sirpes.txt -> '-.-texto_sin'p es.txt Um link é indicado pela letra 1 no início das permissões que, nesse caso, são sempre rwxrwxrwx. O tamanho do arquivo de link é exatamente a quantidade de bytes 103
Certificação 191-1
(caracteres) do caminho alvo. A seta ao lado do nome do link simbólico indica o caminho até o alvo. Um link simbólico para um caminho relativo será quebrado se o alvo ou o próprio link for movido. Um link simbólico para um caminho absoluto só será quebrado se o alvo for movido ou apagado. Para atualizar a informação de alvo de um link simbólico existente mas "quebrado", recria-se o link com a opção -f. Funções comuns para links simbólicos são indicar caminhos longos frequentemente usados, criar nomes mais simples para arquivos executáveis e nomes adicionais para bibliotecas de sistema. O
16 —
104.7 Encontrar arquivos de sistema e conhecer sua localização correta Peso 2
Todo arquivo tem uma localização adequada, que varia conforme sua finalidade. Em sistemas Linux, o padrão que define a localização dos arquivos e diretórios chama-se Filesystem Hierarchy Standard - FHS. FHS O FHS (do inglês Filesystem Hierarchy Standard ou Hierarquia Padrão de Sistemas de arquivos) é o padrão de localização de arquivos adotado pela maioria da distribuições Linux. Cada um dos diretórios serve a um propósito, sendo divididos entre os que devem existir na partição raiz (tabela Diretórios que residem obrigatoriamente na partição raiz) e os que podem ser pontos de montagem para outras parrições ou dispositivos (veja a tabela Diretórios que podem ser pontos de montagem).
Q Diretórios que residem obrigatoriamente na partição raiz •IJTjil(plj[,
/bi n e /sbl n
1WlITli1i[:
Contêm os programas necessários para carregar o sistema e comandos especiais.
fite 111h
itt dJJdlu fproc e /sys tdr 104
Bibliotecas compartilhadas pelos programas em /bl n e /sbl e módulos do kernel. ppl9e?ijnntgetn$ra otrs patçteu$fipositivo Diretórios especiais com informações de processos e hardware. yqBvQeCeSSp po fl?Qbi/bs especiais
Tópico 104:
Dispositivos, sistemas de anluivos Linux e padrão
FF45
Diretórios que podem ser pontos de montagem /boot /houiie /root /tmp /usrllocal e !opt /var
Kernel e mapas do sistema e os carregadores de boot de segundo estágio. Os diretórios dos usuários. Diretório do usuário root. Arquivos temporários. Programas adicionais. Também podem conteras bibliotecas necessárias para os programas adicionais. Dados de programas e arquivos relacionados, arquivos de Iog, bancos de dados e arquivos de sites. Pode conter diretórios compartilhados.
Localizando arquivos Além do find, que foi visto no objetivo 103.3, outro programa importante para a tarefa de encontrar um arquivo é o comando locate. Sua utilização é simples, todo caminho de arquivo ou diretório contendo a expressão fornecida como argumento será mostrado. A busca com o locate é significativamente mais rápida em relação ao find, pois ele realiza a busca em seu banco de dados e não diretamente no disco. Esse banco de dados precisa ser regularmente atualizado por meio do comando updatedb, o que é geralmente Leito por um agendamento diário, mas que pode ser executado manualmente. O arquivo de configuração do updatedb é o /etc/updatedb.conf. Nele, constam informações como quais diretórios e sistemas de arquivos ignorar na atualização do banco de dados. O comando which é usado para retornar o caminho completo para o programa fornecido. Realiza a busca apenas nos diretórios definidos na variável de ambiente PATH. Por fim, o comando wherei s, que retorna os caminhos para o arquivo executável, o código-fonte e apágina manual referente ao comando solicitado, se houver. O
105
VI)
•o-
(à (à
'4-
1
a) >c
LIJ
Certificação
Ø
LPI-1
Questões Tópico 104 1. Qual comando do fdisk cria uma nova partição no disco atual? a. c b. n C. p
d.w
2. Qual comando converte o sistema de arquivo ext2 em /devlsda3 para ext3 sem perda de dados (comando completo)?
3. Qual comando ativa um espaço de troca Swap. Dê somente o comando, sem argumentos.
4. Qual é o principal comando de verificação da integridade de sistemas de arquivo Linux (somente o comando, sem argumentos)
5. Qual comando mostra o espaço livre em disco? a. fite b. Is -f c. dir d.df
6. O terceiro campo do arquivo /etc/fstab determina a. o ponto de montagem. b. o sistema de arquivos da partição. c. as opções de montagem. o número hexadecimal de identificação da partição.
108
7. O comando chgrp tem a finalidade de a. alterar as propriedades de um grupo de usuários. b. alterar o shell padrão de determinado grupo de usuários. C. alterar o nome de um grupo de usuários. d. alterar o grupo ao qual pertence um arquivo ou diretório.
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão
FF15
8. Num sistema em que o valor de umask é 0002, a permissão padrão de criação de arquivos será: a. rw- r-- r-b. rwrwC. r-- r-- r-d. rw- rw- r--
9. Links simbólicos deixarão de funcionar quando a. o destino estiver num sistema de arquivos diferente. b. o destino for um diretório. C. o destino for movido. d. o conteúdo do destino for alterado.
10. Complete a lacuna: O comando ______ /usr/lib -type [mostrará todas as ocorrências de arquivos comuns sob o diretório /usr/lib.
109
y
peso total do tópico 1aora:lO
L
Tópico 105,9 Shelis, scripts e istração de dados Principais temas abordados: • Configuração e personalização do ambiente shell; • Desenvolvimento e edição de scripts; • ConhecFmento da linguagem SQL.
--
.'..................?.
Certificação LPI-1
105.1 Personalizar e trabalhar no ambiente shell Peso 4 O shell é ao mesmo tempo uma interface de interação com o computador e um ambiente de programação. Há difcrcntes opções de shell, como o bash, csh ou zsh. O mais utilizado pela maioria das distribuições é o bash, que é o shell abordado nos exames LPI. Há quem prefira o csh, que possui sintaxe semelhante à linguagem C.
Variáveis Variáveis são utilizadas para fornecer informações úteis e necessárias a programas e usuários. São definidas na forma nome= valor. Não deve haver espaços na definição. Variáveis podem ser globais ou locais. Variáveis globais são aquelas íveis a todos os processos. Exemplos desse tipo são: • • •
PATH: Define os diretórios de programas; HOME: Define o diretório pessoal do usuário; SHELL: Determina o shell padrão do usuário.
Por conveniência, os nomes de variáveis globais são em maiúsculas. Elas podem ser listadas com o comando env. Todas as variáveis são listadas usando set. As variáveis globais são definidas no , para todo o sistema, por meio do arquivo /etc!profi 1 e, ou para um usuário específico por meio do arquivo-!. bash_profi 1 e. Variáveis locais são íveis apenas à sessão atual do shell e podem ser definidas em scripts ou na própria linha de comando. Para tornar uma variável ível para as sessões criadas a partir da sessão atual, é usada a instrução export:
$ export SASH—'Bourne Again Shell
4
O valor da variável é retornado com uso de $:
$ echo $BASH
4
Bourne Again Sheli Para excluir uma variável, é usada a instrução unset:
$ unset BASH
4
A exdusão de uma variável global só é válida para a sessão atual. Demais sessões continuam a ar a variável. 112
Tópico 105: Shelis, scripts e istração de dados
Funções Para simplificar tarefas recorrentes, é possível escrever funções que aglutinam comandos. Podem ser escritas diretamente pela linha de comando ou serem definidas em scripts ou nos arquivos de configuração do bash. O exemplo abaixo mostra algumas informações sobre o nome de programa fornecido: $ function pinfo O ( > echo 'Localização de $1:" ) which $1 > echo "Processos referentes a $1:"
> ps x 1 grep $1 >1
Para que essa função possa ser utilizada em hituras sessões do bash, basta incluí-la no arquivo —/.bashrc: function pinfo () 1
Ø
echo "localização de $L" which $1 echo "Processos referentes a $1:" p5
x 1 grep $11 Em ambos casos, a função pinfo poderá ser utilizada como um comando.
Arquivos de configuração do bash É possível automatizar a criação de variáveis, aliases, funções e outras personalizaçóes do bash, tanto para a entrada do usuário no sistema quanto para cada nova instância do bash. Para cada propósito específico, existe um arquivo apropriado. Existem duas maneiras básicas de invocar o bash: após um de usuário ou a partir de uma sessão já iniciada, como é o caso dos scripts. Essas duas maneiras também podem ser classificadas como shell interativo e shell não interativo (quando o prompt do shell não espera interação do usuário). Quando o bash é iniciado como um shell interativo (ou como shell não-interativo, mas utilizando a opção --), ele primeiro lê e executa as instruções no arquivo /etcfprofile, se esse arquivo existir. Depois de ler esse arquivo, o bash procura os arquivos -/.bash_profile, -/,bash_ e -/.profile (nessa ordem) e executa as instruções encontradas neles. Quando a sessão do shell termina, o bash executa as instruções do arquivo —/ . bashj ogout, se o arquivo existir. 113
Certificação LPI-1
Quando o bash é invocado como shefl interativo, mas não se trata de uma sessão de (como no caso de terminais numa sessão X), o bash executa as instruções dos arquivos /etc/bash.bashrc e -/.bashrc, se csses arquivos existirem. Em algumas distribuições, o arquivo de definição das variáveis globais é ietcl environrnent. •
16
— 105.2 Editar e escrever scripts simples Peso 4
Scripts são arquivos que atuam como programas, ando instruções a um interpretador para realizar determinada tarefa. Diferente de programas compilados, scripts são arquivos de texto que podem ser manipulados em qualquer editor de texto.
Definição do interpretador A primeira linha do arquivo de script deve especificar o interpretador, que é indicado pelos caracteres #! (termo conhecido como sheban. Para um scripc com instruçóes para o bash, a primeira linha deverá ser #I/binlbash. Assim, o interpretador para todas as interpretações subsequentes será o bash. O script deverá ter permissão de execução para rodar diretamente ou ser invocado como argumento do comando bash ou sh. Para atribuir a permissão de execução a um script, é utilizado o comando chmod: $ chmod +x rneuscript.sh
*
Variáveis especiais Os argumentos ados para um script e ourras informações úteis são retornados pela variável especial $x, em que x determina que valor retornar: • $*: Todos os valores ados como argumentos; • $#: O número de argumentos; • $0: O nome do arquivo de script; • $n: O valor do argumento na posição n; • $I: PID do último programa executado; • $$: PID do shell atual; • $7: Código de saída do último comando.
'O arquivo fetc/envlronment oSo é abordado nos exames LPI. Contudo, é muito importante saber que esse arquivo substitui o arquivo /elclprofile em algumas distribuições.
114
Tõpico 105; Shelis, scripts e istração de dados
Para solicitar valores do usuário durante a execução do script, é usada a instrução read: echo 'Informe valor solicitado:"
0
read RESPOSTA
O valor retornado será armazenado na variável RESPOSTA. Caso uma variável de retorno não seja especificada, o nome padrão da variável de retorno, REPLI' será utilizado.
O
if then else A estrutura lógica if executa um comando ou uma lista de comandos se uma afirmação for verdadeira. A instrução test avalia se a afirmação é verdadeira ou falsa. Seu uso é geralmente associado à instrução condicional if, como no exemplo abaixo, que exibe ok se o arquivo /bin/bash for executável: if test -x /bin/bash
then
O
echo 'ok"
ri O exemplo abaixo mostra outra maneira de realizar a mesma tarefa: if [ -x /bin/bash 3
then
O
echo "ok' fi
A instrução e]se é um apêndice à estrutura if e determina o bloco de instruções a executar, caso a aflrmaçáo avaliada seja falsa. Exemplo: if E -x /bin/bash]
then
echo "ok' ei se echo "não ok' Ti
O final da estrutura i f deve ser sempre sinalizado com fi. Opções de avaliação da instrução test para arquivos e diretórios: • -d caminho: verdadeiro se o caminho existir e for um diretório; • -c caminho: verdadeiro se o caminho existir; 115
Certificação LPI-1
• • • •
-f caminho: verdadeiro se o caminho existir e for um arquivo comum; -
L cami nho: verdadeiro se o caminho existir e for um link simbólico;
-r caminho: verdadeiro se o caminho existir e puder ser lido (ado); s canil nho: verdadeiro se o caminho existir e seu tamanho for maior que zero; -
•
-w caminho: verdadeiro se o caminho existir e puder ser escrito;
•
-x caminho: verdadeiro se o caminho existir e for executável;
•
caminhol -ot caminho?: verdadeiro se caminhol for diferente de caminho2.
Opções de avaliação de test para texto • -n texto: verdadeiro se o tamanho de texto for diferente de zero; • -z texto: verdadeiro se o tamanho de texto for zero; • textol - texto?: verdadeiro se textol for igual a texto?; • textol 1'.' texto?: verdadeiro se textol for diferente de texto2.
Opções de avaliação de test para números • numi -lt num?: verdadeiro se numi for menor que num?; • numi -gt num?: verdadeiro se numi for maior que num?; • numi -le num2: verdadeiro se numi for menor ou igual a num?; • numi -ge num?: verdadeiro se numi for maior ou igual a num?; • numi -eq num?: verdadeiro se numi for igual a num?; • numi -ne nurn2: verdadeiro se numi for diferente de num?. Uma variação da instrução i f é a instrução case. A instrução case prosseguirá se um irem indicado for encontrado em uma lista de irens divididos pelo caractere "1":
case 3 in (1I2131415) echo "Número 3 encontrado na lista;; echo 'portanto case finalizou e: echo "executou esses comandos"; esac O final da estrutura case deve ser sempre sinalizado com esac.
Substituição de comandos Um dos principais propósitos de um script é trabalhar com os dados produzidos por outros comandos, sejam dados binários ou dados de texto. Pan exibir ou armazenar a saída de um comando, o mesmo é colocado entre aspas simples invertidas - ou entre ): 116
Tópico 105: Shelis, scripts e istração de dados
TRESL1HHÂS'cat -n3 /etc/inputrc' echo "As três priffleiras linhas de /etc/inputrc:" echo STRESUNHAS
*
Resultado idêntico será produzido na forma: TRESLTNHAS=$(cat -n3 /etc/inputrc) echo As três primeiras linhas de /etcfinputrc:" echo $TRESIINHAS Operações matemáticas com números inteiros são feitas utilizando a instrução expr: SOMA=expr $VALOR1 + $VALOR2
0
Produz resultado idêntico: 5OMA$U$VALOR1 + $VALOR2))
Instruções de laço Ë bastante comum o desenvolvimento de scripts cuja finalidade é executar determinada tarefa repetidamente, obedecendo a uma condição pré-determinada. Para esse fim existem as chamadas instruções de laço ou ioop. for A instrução for executa urna ou mais ações para cada elemento de uma lista. Neste caso, cada número gerado pelo comando seq: for i in $(seq 5) do echo Baixando foto_Si .jpg": echo wget http://www.soniedoiiiain.com/foto_$i.jpg; done
*
A saída desse script será: Baixando foto_1 wget http://www.somedomain.com/foto_l.jpg Baixando foto_2 wget http:/fwww.somedomain.com/foto2.jpg 117
Ceitificação LP-1
Baixando foto_3 wget http:/fwww.somedomain.com/foto_3.jpg Baixando foto_4 wget http://www.somedomain.com/foto_4.jpg Baixando foto_5 wget http://www.somedoinain.com/foto_S.jpg
until A instrução unti 1 executa um ação em ioop até que uma afirmação seja verdadeira como, por exemplo, adicionar uma linha ao arquivo texto_simples.txt até que este alcance 10 linhas:
LENTEXTO=$(wc -1 texto_siiples) until [ $( IENTEXTO%% *1 -eq 101: do
0
echo "Mais uma linha" » texto_simples.txt
LENTEXTO$(wc -1
texto_simples .txt)
done
whi!e A instrução while é semelhante à instruçáo uniu, mas executa uma ação até que uma afirmação não seja mais verdadeira. Por exemplo, adicionar uma linha ao arquivo texto_sinipl es .txt até que este alcance 20 linhas (ou, em outras palavras, enquanto o documento for inferior a vinte linhas):
LENTEXT0$(wc -1 texto_simples) wIille [ $ ILENTEXTO%% *1 -lt 201; do echo "E dá-lhe linha" » texto_simples.txt LENTEXT0$(wc -1 texto_simples.txt)
O
done
Local, propriedade e permissão Para que um script possa ser usado por todos os usuários, é importante quc ele seja executável e que esteja num diretório incluído na variável PATH. Direito de escrita deve ser retirado para todos, exceto o dono (normalmente o root). Por ser um arquivo mais vulnerável, não é recomendável ativar o bit SUID para arquivos script, pois mesmo se outro usuário o executasse toda instrução comida nele seria executada com permissão de root. 118
O
Tópico 105: Shelis, scripts e istração de dados
105.3 istração de dados SQL Peso 2 A linguagem SQL - Srrucured Query iLanguage, ou Linguagem de Consulta Estruturada - é o padrão para realização de consulta, edição e inclusão de dados nas tecnologias de bancos de dados mais utilizadas do mundo. Como um idioma comum entre as diferentes soluções de armazenamento de dados em larga escala, a linguagem SQL torna possível a um realizar todas as operações fundamentais em um banco de dados mesmo que não tenha conhecimento pleno sobre a tecnologia específica empregada.
Interagindo com os dados A maneira mais básica de comunicação com um banco de dados é feita por meio de linha de comando. Semelhante ao prompt do bash, os bancos de dados mais populares oferecem um prompt no qual é possível interagir com o banco de dados instalado. Cada tecnologia de banco de dados possui sua própria ferramenta de interação manual. Para o banco de dados MySQL, existe o comando mysql. Para o banco de dados Postgrcsql, o comando é o psql. Bancos de dados sáo organizados em tabelas semelhantes às tabelas de uma pIanilha. Cada tabela possui colunas que recebem nomes e definição de tipo de dado. Os dados estão organizados como linhas na tabela, podendo ser incluídos, alterados ou removidos. Na maioria das tabelas, a primeira coluna corresponde a um campo de identificação único, criado automaticamente, usado para identificar uma linha específica da tabela.
Inserção de dados O comando SQL para inserção de dados é o INSERT. Numa tabela chamada cliente onde existem as colunas id (campo de identificação único), nome, email e telefone, a inserção dc uma nova unha com todos os campos pode ser feita da maneira:
o ao banco de dados A instalação e configuração de bancos de dados variam conforme a tecnologia adotada, mas
os aspectos conceituais são muito semelhantes. Quando ativo, um servidor de banco de dados aguarda pela identificação de uni usuário criado anteriormente e libera o o ao banco para que ele possa manipular os dados até onde tiver permissão. Dificilmente um banco de dados está ível pela Internet, pois isso o tornaria muito vulnerável a ataques. Por esse motivo, bancos de dados costumam ser íveis somente a partir da máquina local (onde estão instalados). O o pode ser liberado apenas para usuários e máquinas específicas. Dessa forma, as aplicações que fazem uso do banco - como sites ou pontos de venda - têm o controlado.
119
Certificação
LPI-1
INSERT INTO cliente (nome, email, telefone) VALUES ('Ned Flanders', '-.nedQchurch.com', '1234-5678):
Os primeiros parênteses guardam os nomes das colunas onde se deseja inserir os dados. Os parênteses após o termo VALUES guardam os dados que devem ser inseridos nas respectivas colunas. É importante lembrar que as instruções SQL sempre terminam com ponto-e-vírgula. Novos dados podem ser inseridos da mesma forma, e em alguns casos certas colunas podem ser deixadas em branco: INSERT INTO cliente (nome, email) VALUES ('Montgomery Burns', 'monty@powerplantcoim');
Nesse caso, a coluna telefone foi omitida, tornando esse campo vazio para a nova linha inserida. O campo id é automaticamente criado e identifica a linha única correspondente aos dados inseridos. O campo de identificação costuma ser um número numérico inteiro, que é incrementado a cada nova inserção na tabela.
Consulta de dados Para exibir todas as colunas de todas as linhas de uma tabela, utiliza-se o comando SELECT na sua forma mais simples:
0
SELECT * FROM cliente; Id
nome
1
Ned Flanders
2
Montgomery burns
email
[email protected]
1 telefone 1 1234-5578
1
[email protected] 1
Para limitar a consulta a colunas específica, basta citá-las no lugar do *: SELECT Id, nome FROM cliente; Id
nome
1
Ned Flanders
2
Montgomery Burns
li
Para selecionar apenas uma ou mais linhas que obedeçam a um critério, utiliza-se a instrução WHERE: SELECT nome FROM cliente WHER[ Id = 2; 120
0
Tópico 105: Shelis, scripts e istração de dados
Montgcmery Burns
A ordem com que as linhas são exibidas pode ser alterada utilizando a instrução
ORDER 1W: SELECI Id, nome FROM cliente OROER 8? Id DESC:
$
nome 2
Montgomery Burns
1
Ned Flanders
No exemplo, a coluna id foi utilizada como critério de ordenação. A ordem de exibição foi invertida adicionando a instrução DESC à instrução ORDER BY. Outro recurso interessante de seleção é a possibilidade de agregar resultados mediante um ou mais valores duplicados, com a instrução GROUP BY. Por exemplo, numa tabela de produtos comprados chamada item, é possível somar os valores totais por item: SELECT nome, SUM(preco) FROM iten GROUP 8? nore;
Todas as ocorrências iguais na coluna nome serão exibidas na mesma linha. Além disso, a knçáo interna SUMO somará os valores da coluna preco de todas as linhas que foram agregadas pela instrução GROUP BY.
Alteração e exclusão Os dados já inseridos em uma tabela podcm ser modificados usando a instrução
UPDATE: UPDATE cliente SET telefone = '4321-8765' WHERE Id = 2;
Essa instrução altera a coluna telefone da tabela cliente somente onde o campo Id seja igual a 2 Aqui também é necessário especificar quais linhas devem ser modificadas, usando a instrução WHERE. Caso a instrução WHERE náo seja utilizada, todas as linhas da tabela teráo a coluna especificada alterada. Mais de uma coluna pode ser alterada no mesmo comando, utilizando uma vírgula: PDATE c'iente SET telefone
4321-8765', noce = 'Monty Burns' WHERE d = 2;
A exclusão de uma linha se dá com a instrução DELETE: 121
Certificação LPI-1
DELETE FROM cliente WHERE id
=
2;
Para essa instrução é cssencial o cuidado de utilizar a condição WHERE. Caso uma ou mais linhas não sejam especificadas, todas as linhas da tabela serão excluídas.
Relacionamento de tabelas Uma das principais razões de se utilizar bancos de dados para armazenar informações é a facilidade e a rapidez com que se pode cruzar informações. Os relacionamentos podem ser realizados de diversas maneiras diferentes, mas uma das mais práticas é usar a instrução IMNER. Além da tabela cliente, pode ser criada a tabela chamada endereco com as colunas id, id_cliente, uf, localidade, logradouro, numero. Nesse caso, a coluna id_cliente especifica um campo id da tabela cliente, ou seja, uma linha específica da tabela cliente. Portanto, toda linha da tabela endereco possui uma linha correspondente na tabela cliente. Como a coluna id_cliente não é um campo de identificação único na tabela endereco, o mesmo valor pode ser utilizado em mais de uma linha dessa tabela. Ou seja, a mesma linha na tabela cliente poderá ter mais de um endereço associado na tabela endereco. Assim, podemos utilizar a instrução INNER em uma exibição com SELECT para mostrar linhas da tabela cliente e o(s) endereço(s) correspondentes na tabela endereco: S[LECT cliente.nome. endereco.uf FROM cliente INN[R JOIM endereco OH ~endereco.id_cliente
-
cliente,id;
Quando mais de uma tabela é utilizada, é fundamental especificar a qual tabela cada coluna pertence, como demonstrado nos termos cliente.nome, endereco.uf, endereco.i d_cl i ente e cli ente.i d. No exemplo, o critério de união utilizado pela instrução INNER foi relacionar todas as linhas da tabela endereco cujo valor da coluna id_cliente fosse igual ao valor da coluna id de uma linha da tabela cliente. O
122
VI
o 13 o 1
a, w
Certificação LP-1
~0
Questões Tópico 105 1. O principal arquivo de definição de variáveis globais do Bash é: a. fetcffstab b. /etc/bash c. /etc/g!oba!
d. /etc/pro file
2. O arquivo de definições do Bash para cada usuário é o:
a. -/.init b. .-/.bash
c. -/.shell d. -/.bash_profile
3. O comando alias delete="nn -1" tem a finalidade de a. substituir o comando rm -i pelo comando delete. b. criar o comando delete que invoca o comando rm -i. C. evitar que arquivos essenciais sejam apagados. cl. o comando rm sempre exigirá confirmação de exclusão.
4. Qual entrada no início de um script identifica o programa /bin/bash como interpretador padrão? a. export shell=/bin/bash b. env shell=/hin/bash C. #shell=/bin/bash d. #!/bin/bash
5. A variável $! representa a. o interpretador padrão do script. b. o primeiro argumento do script. c. o número PID do script. cl. o número PID do último programa executado.
124
Tópico 105: Shelis, scripts e istração de dados
6. A instrução que fecha uma estrutura de teste if é a. fi 13. then C. end 0. done
7. A instrução if [ -n "$NOME"]; then ... será verdadeira se a. A variável $NOME contiver um número. 13. A variável $NOME possuir um ou mais caracteres. C. A variável $NOME for nula. 0. Essa instrução nunca será verdadeira.
8. A instrução que fecha uma estrutura case é: a. end 13. done C. then 0. esac
9. O comando seq tem a finalidade de a. segmentar um arquivo. 13. unir vários arquivo em um só. C. exibir uma sequencia ordenada de números. 0. ordenar a entrada padrão numericamente.
10. A instrução SQL responsável por atualizar uma linha numa tabela de banco de dados é: a. INSF,RT b.ADD c. UPDATE cl. WHERE
125
-1
Peso total do tópico -- 1a prova: 5
Tópico 106. Interfaces de usuário e Desktops Principais temas abordados: • Configuração do ambiente gráfico Xli; • Configuração do gerenciador de gráfico; • Opções de ibilidade e tecnologias assistivas,
Certificação LPI-1
106.1 Instalar e configurar o Xli Peso 2 Desde que o Linux começou a ganhar espaço entre usuários inicianres e suas aplicações desktop evoluíram, o ambiente gráfico de janelas - conhecido como Xli ou simplesmente X - ou a ocupar lugar de grande importância entre desenvolvedores e es. Muitos dos usuários de aplicativos não têm nem precisam ter conhecimentos avançados sobre a arquitetura do sistema operacional.. Daí surge a importância de o ambiente gráfico funcionar satisfatoriamente, sem comprometer as tarefs de quem o utiliza. O Xli também pode ser chamado de servidor Xli, pois sua arquitetura foi originalmente pensada para que pudesse ser utilizado num ambiente de rede. Por exemplo, é possível fazer numa sessão do Xli via rede ou exibir a janela de uma programa em outro computador sem a necessidade de programa específico para isso.
Compatibilidade de hardware Na imensa maioria dos casos, roda a configuração do Xli é feita automaticamente, durante a instalação da distribuiçáo. Contudo, em alguns poucos casos, pode ser necessário intervir na instalação ou na configuração do Xli. O primeiro o antes de instalar o Xli é verificar a compatibilidade de hardware. Em http:I/www.x.orglwikilProjects/Drivers pode ser encontrada a lista de dispositivos compatíveis. Ainda que o dispositivo não seja totalmente compatível, é possível utilizá-lo no modo VESA Framebuifer, se o dispositivo o ar (a maior parte dos dispositivos de vídeo aceita esse modo). Instalando o Xli O mais comum é que o Xli seja instalado durante a instalação. Caso isso não tenha sido feito - geralmente quando se instala uma distribuição específica para servidor—, • Xli ainda pode ser instalado usando a ferramenta de pacote da distribuição, como • apt-get ou yum. Configurando o Xli Configurar o Xli manualmente significa editar o arquivo /etc1X111xorq,conf, onde ficam as informações sobre caminhos para arquivos de sistema, mouse, teclado, monitor e dispositivo de vídeo. Para gerar um arquivo básico de configuraçáo, basta invocar o servidor Xii diretamente com a opção -confi gure. O comando do servidor Xl 1 é a letra X maiúscula: 128
Tópico 106: Inter! ates de usuário e Desktops
ofigre
x
O servidor X carrega cada módulo de dispositivo, testa o driver e salva o resultado no arquivo xorg.conf new, no diretório do usuário (provavelmente /root).
Ajustes da configuração Quando muito, apenas alguns poucos ajustes precisam ser feitos no arquivo de configuração do Xli para aprimorar seu funcionamento. Por exemplo, pode ocorrer de a roda do mouse não funcionar. Na seção JnputDevice referente ao mouse em Ietc/ X11/xor9.conf, basta incluir a opção ZAxisMapping, como no exemplo: Sect 4 on "InputDevice" Dr½er
"muse"
Opton
"Protoco 1"' IMPS/2"
Optio
"Device' '/dev(rnouse"
Dptir
'ZAxisMappíng "4 5"
E nd Se o t ior
Seções do xorg.conf O arquivo de configuração xorg.conf é dividido em seções no formato: Section "no"e ca seção" ten_1 "Va'or iter 1" Item 2 "Vaor ter 2" EndSect on
Hoje, a maioria das seções são dispensáveis, pois toda a configuração é feita automaticamente. Contudo, sua edição manual pode ser necessária para resolver problemas específicos. As seções do arquivo de configuração do X estão discriminadas abaixo:
Files Caminhos para alguns arquivos necessários ao servidor X, como FontPath, RGBPath e ModulePath. O irem mais importante é FontPath, que determina as localizações das fontes no sistema.
ServerFlags Opções globais para o servidor X, no formato Option "Nome" "Va1or' 129
Certificaflo LPI-1
Module Carregamento dinâmico de módulos: Load "nome à módu1o' InputDevice Dispositivos de entrada. Deve haver uma seção JnputDevice para cada dispositivo. Os itens obrigatórios nessa seção são Je/entifiere Driver. Identifler é um nome único para identificação do dispositivo. Os vaiores mais comuns para Driver são Keyboarde Morar. Os demais itens são opcionais e definidos com o Option. Option "CorePointer" indica que o dispositivo é o apontador (mouse) primário. Option "CoreKeyboare!" indica que o dispositivo é o teclado primário. O caminho para o dispositivo é indicado como Option «Device""/dev/arquivo_do_disposftivo' Device Dispositivo de vídeo. O arquivo xorg.conf pode ter várias seções Device indicando vários dispositivos de vídeo. Os itens obrigatórios nessa seção são Identrfiere Driver. Identifier é um nome único para identificação do dispositivo. Driver especifica o driver do dispositivo de vídeo, dentre os disponíveis em /usr/1 ib/xorg/modulesfdri versi. Outros itens comuns são BusID - exemplo: Option "BusID" "PCJ:i:o:O" e VideoRam - exemplo: Option "VideoRam" "8192' Monitor O arquivo de configuração também pode ter várias seções Monitor. A única opção obrigatória é Ident?Jler. Screen Agrega o dispositivo e o monitor. Pode haver mais de uma seção Screen. Apenas as opçóes Identifier e Device (indicando um dispositivo de video de uma seção Device existente) são obrigatórias. Display É uma subseção dc Screen, que define, entre outras coisas, qual resolução usar para cada profundidade de cor. ServerLayout Agrega as seçóes Screen e lnputDevice para formar uma configuração completa do servidor X. Quando utilizada, é a entrada mais importante do xarg.eonf, pois é nela que é definido o display.
130
Tópico 106: Intertaces de usuário e Desktops
Fontes Uma das funções do Xli é o fornecimento das fontes utilizadas pelos aplicativos. Há dois sistemas básicos de fontes, Corte X,fL No sistema Core, as fontes são manipuladas no servidor, enquanto no sistema Xft isso ocorre no cliente. O sistema Xft é mais avançado e permite o uso de fontes Typel, OpenType, TrueType, Speedo e C1D, com e a anti-aliasing (cantos arredondados). Instalação de fontes Xft Para instalar fontes no sistema Xft, basta copiá-las para um dos diretórios de fontes padrão - / usr/share/fonts/* - ou para o diretório -/ .fonts/ no diretório pessoal. O cache de fontes precisa ser atualizado para que a nova fonte possa ser usada, o que será feito automaticamente quando o X iniciar uma sessáo. A atualização manual é feira por meio do comando fc'cache. O comportamento das funções do Xft pode ser alterado peio arquivo de configuração global /etc/fonts/fonts.conf ou no arquivo de configurações por usuário fonts.conf, alojado no diretório pessoal.
Variável D!SPLAY O servidor X permite que as janelas de aplicarivos sejam exibidas num servidor X remoto, ou seja, um programa em execução numa máquina remota poderá ser operado localmenre. É a partir da variável de ambiente DISPLAY que o servidor de janelas identifica onde elas devem ser exibidas. A variável DISPLAY é dividida em duas partes. A porção antes do caractere ":" identifica a máquina (nome ou número IP). A porção após o caractere ":" identifica qual o display nessa máquina. O valor display identifica um conjunto de monitor e dispositivo de entrada (teclado/mouse). Um mesmo computador pode possuir mais de um display - como diferentes monitores e teclados - mas o mais comum é que exista apenas um display. A contagem de display é feira a partir do zero, portanto numa máquina com apenas um display o valor da variável de ambiente DISPLAY será :0.0. Isso significa que as janelas serão mostradas na máquina loca] (localhost é assumido quando o valor antes de : é omitido) e no primeiro display (:0.0). O primeiro o para abrir a janela de um programa remoto na máquina local é redefinir a variável DISPLAY na própria máquina remota. Por exemplo: $ export D15PLAY192.168.1.3:0.0
E: 131
Certificação LPI-1
Todo programa executado a partir da sessão onde a variável foi redefinída enviará sua janela para o primeiro display da máquina 192.168.1.3. Porém, a janela não poderá ser exibida até que a máquina 192.168.1.3 permita. A liberação é feita com o comando xhost, na máquina onde as janelas devem ser exibidas: $ xhost +192.158.1.1
$
No exemplo, o endereço IP 192.168.1.1 corresponde à máquina onde o programa está sendo executado. O
Q
106.2 Configurar o gerenciador de gráfico Peso 2 Na maioria das distribuições Linux o ambiente gráfico Xli é iniciado por padrão, logo ao final da inicialização. Nesse caso, é apresentada a tela de de usuário já no próprio ambiente gráfico do Xli. Esse comportamento já caracteriza outro runlevel (os runleveis, ou níveis de execução, foram abordados no objetivo 101.3 Alternar runleveis, desligar e reiniciar o sistema), por isso sua utilização é determinada no arquivo /etc/inittab: id:4:initüefault:
$
O número do runlevel para em modo gráfico varia de acordo com a distribuição, mas a definição de qual será o nível de execução padrão é feita no arquivo /etc/inititab.
Gerenciador de display O programa encarregado por identificar o usuário e iniciar a sessão do XII chama-se display manager ou gerenciador de display. Há três Gerenciadores de Display principais: • xdrn: padrão do X; • gdm: padrão do ambiente desktop Gnomr, • kdm: padrão do ambiente desktop KDE. Os respectivos arquivos de configuração encontram-se em Jetc/XllJxdm/*, /etcl g dm/* e /usr/share/config/kdnh/*.
132
Tópico 106:
Interfaces de usuário e Desktops
xdm O xdm é parte dos programas padrão do XII. Além de permitir o local, também permite que o seja realizado pela rede. Para tanto, é usado o protocolo XDM (desativado por padrão). O xdm precisa estar ativo e configurado adequadamente para responder a pedidos de via rede. A máquina remota, por meio do comando X -query servidor, solicitará o pedido de conexão. A aparência do xdm pode ser modificada editando o arquivo /etc1X111xdm/ Xresources. Fontes, cores e mensagens podem ser incluídas ou alteradas. Exemplo de conteúdo de Xresources:
4
xloqin*borderwidth : 3 x*greeting : "Bem vindo ao grfico" xl ogi n *nameP rornpt: : 040 xl ogi fl*greetCol or: bi ue x*foreground : black x*background : white
Para definir cores ou imagens de Rindo e disparar outras ações - antes mesmo de a tela de ser exibida - pode ser editado o arquivo Xsetup. O arquivo /etc/X11/xdm/Xaccess controla o o remoto via XDM. É possível estabelecer regras para pedidos de conexão remotos. Trecho de exemplo de Xaccess:
*
4
*CHOOSER BROADCAST
Ttcnolog ias .ssistivss
QQ
--
HbiIlter tecnologias assistivas O Janela para senha corno uma Janela normal O
Prtftrincln
5ssibilidade do teclado 1.lndo
ess4bllidade domasse
l$ Figura
1
1 ít
ffftJ
J
-1 1 1 1
dilerentes componentes de tecnologias assistivas podem ser ativados separadamente.
1. OS
133
Certificação 191-1
bcrcogln .nMdn.
C#P
1
V HflIItM ttaioas nshsvi,
-
MohlIld.d.
1
inh'ra 9 r ronwpnipntp inicio da sessão.
níip n Imnr dp.
--
tp.Ia
Ore
p.ja ativado automaticamente nu
Enç atShos da tecleda. urna tede de cadt (rwe,s de ade4nda nrpoinmenta diteurai dupIkad «edesue peitt,&et.
1
Figura 3. Outros recursos de ibilidade ativados pelo icone de tecnologias as-
sistivas da área de notificação. A primeira linha indica que qualquer máquina remota poderá requisitar na máquina local. A segunda linha indica que qualquer máquina (*) pode solicitar à máquina local uma lista de possíveis servidores (que estejam rodando o xdm) para conexão, que será obtida por meio de chamadas broaa'cast na rede. O arquivo de configuração principal é o xdm-config. Ele agrega os demais arquivos de configuração do xdm e libera ou bloqucia o remoto via XDM Para bloquear, basta que exista a linha: OisplayManager.requestPort: 134
O
Tópico 106: Interfaces de usuária e Desktops
Figura 4. O GOK atua como uni teclado virtual na tela. Com ele, todas as ações que envolvem o teclado podem ser substituidas por gestos do mouse.
o
r,.1.riocJ
da. t.c.S.. .n1v54
-
cci •
arda par. .eraa carro aania
py.faat1at
cílqa. .aa.d3d. Mmd.d.
•% Ac054
.? Oi.øatar d.,a Sorardáro
OWtrO PVS9aO
,bcOIa pSnMo
fio., np%woa.s., portada ri.., de,. moro
ia —
AJ
FiguraS. Mesma dificuldades mataras de operação da mouse podem ser contornadas na janela Preferências do mause.
Com essa configuração, o xdm não reponderá a pedidos de conexão diretos ou indiretos. As condições e maneiras de usar o gdm e kdm sáo praticamente iguais às do xdm, salvo alguns detalhes. Os arquivos de configuração principais do gdm são /etc/ gdn/gdn. canf e /etc/gdm/
mi t/Defaul t, que corresponde ao Xresources. Já para o kdm,
praticamente todas as configurações visuais e de comportamento são Leitas no arquivo /usr/share/config/kdrn/kdmrc.
O
* A configuração das recursos de lecnologias assistivas pode variar dependendo da disiribuição. Para fins de padronização, as lerramentas mostrados referem-se à distribuição Ubunlu, nas versão 9.04.
135
Certificação LPI-1
10 -
106.3 ibilidade Peso 1 Tão importante quanto a boa usabilidade do desktop para o usuário comum é oferecer a mesma usabilidade para pessoas com necessidades especiais. Diversos aplicativos para Linux oferecem recursos que facilitam a utilização do computador para quem possui pouca ou nenhuma visão ou alguma dificuldade morora.
Ativar recursos de ibilidade As distribuições Linux atuais já contam com diversos recursos de ibilidade instalados por padrão. Para ativar basta ir até o menu Sistema 1 Preferências 1 7ècnologias assistiva?. A figura 1 mostra a janela geral de ativação dos recursos de ibilidade. Dentre os principais recursos está o leitor de tela Orca. Com ele, uma voz sintetizada diz o texto sob o dique do mouse. Este recurso é especialmente útil para usuários com deficiência visual. Para que o leitor dc tela Orca seja iniciado toda vez que o sistema for iniciado, basta clicar em Ap/icativospreferenciaise, na seção VisuaL marcar a opção Executar ao iniciar (figura 2). Após a ativação das tecnologias assistivas, o ícone correspondente é exibido na área de notificação do (ao lado do relógio). Clicando nele, diversas opções (figura 3) referentes à ibilidade podem ser ativadas: • Realçar contraste em cores; • Tornar o texto maior e fácil de ler; • Pressionar atalhos do teclado, uma tecla de cada vez (teclas de aderência); • Ignorar pressionamento de teclas duplicados (teclas de repercussão); • Pressionar e segurar teclas para aceitá-las (teclas lentas). Tedado e mouse podem ser configurados com mais especificidade para cada necessidade. Por exemplo, é possível evitar que muitas teclas pressionadas simultaneamente sejam escritas, o que pode íàcilitar a digitação para pessoas com dificuldades mororas. Se há a impossibilidade de utilizaçáo do teclado, o programa GOK pode ser usado como interface de entrada (figura 4). Com ele, apenas a movimentação do mouse é necessária para inserção de texto e outras ações que envolvem o uso do teclado. Se mesmo a utilização do mouse encontra alguma dificuldade motora, na janela Preferências do mouse (figura 5) podem ser alterados alguns comportamentos. Por exemplo, é possível simular o dique duplo do mouse apenas ao segurar o botão por alguns instantes.
136
O
11)
.2 o ¼ o 1 0) LiJ
Certificação LPI-1
Questões Tópico 106 1. A seção do arquivo de configuração do XII onde são especificadas as fontes do sistema é a seção: a. Fonts b. Files e. Module ti. Disp!ay
2.A variável de ambiente DISPLAY definida com valor 192.168.1.18:1.0 determina que a. o servidor de jandas X só funcionará na máquina 192.168.1.18. b. a versão do servidor X é 1.0. c. o servidor X funcionará somente na rede local. d. as janelas serão exibidas no segundo display da máquina 192.168.1.18.
3. Um usuário comum poderá instalar novas fontes em: a. -/.fonts b. /etc/fonts e. -/.xorg/fonts ti. /etc/xorg/fonts
4. Após instalar novas fontes em seu diretório pessoal, o usuário deverá a, atualizar o cache de fontes com o comando update-cache. b. atualizar o cache de fontes com o comando update-fonts. e. atualizar o cache de fontes com o comando updne --fonis, ti. atualizar o cache de fontes com o comando fc-cache.
5. O arquivo onde são definidas as opções de aparência do gerenciador xdm é o: a. /etc/X1 1/xdm/Xaccess b. /etc/X1 1/xdm/Xsetup e. /etcIXl 1/xdm/Xresources ti. /etc/X1 lfxdm/xdm.conf
138
Tópico 106: Interlaces de usuário e Desktops
6. A instruçáo DisplayManagcr.requestPort: O, que bloqueia o o via XDM para a máquina local, deve ser informada em qual arquivo de configuração? Dê apenas o nome do arquivo, sem diretório.
7. O principal arquivo de configuração do gerenciador gdm é o: a. /ctclgdm/gdm.conf b. -f.gdm.conf c. /etc/Xl l/gdm.conf d. /ercIXl 1/gdm/gdm.conf
8. Usuários com deficiência visual podem utilizar um programa que lê as informações textuais da tela. Informe qual é o nome do principal leitor de tela para Linux.
9. Marque todas as respostas corretas em relação ao recurso teclas de aderência. a. Atalhos de teclado, como [ctrl]i-[c], não precisam ser pressionados simultaneamente. b. As teclas do teclado são melhor fixadas e não soltam com facilidade. C. Pressionamentos de teclas repetidas são ignorados. d. O layout do teclado é alterado para satisfazer necessidades especiais.
10. Usuários com dificuldade para operar o teclado podem utilizar o mouse para escrever textos e executar açóes. O principal comando que oferece esse recurso é
139
7
\\
e ,1
Peso total do tópico na prova: 12
Tópico 107. Tarefas istrativas Pdncipais temas abordados: • istração de usuários; • Agendamento de tarefas; • Ajustes de Jocal e idioma.
Certificação LPI-1
107.1 istrar contas de usuário, grupos e arquivos de sistema relacionados
/
Peso 5
Em ambientes onde mais de uma pessoa utiliza o computador ou utiliza os recursos fornecidos por ele via rede, é muito importante que cada uma delas possua restrições para que não comprometa dados sensíveis, sejam eles perunentes ao próprio sistema, sejam pertinentes a outros usuários. Para isso, para cada usuário é criada uma conta com a qual ele ará o sistema.
Conta de usuário O comando add é usado pelo usuário root para criar uma nova conta no sistema. Pode ser usado também o comando add, cuja finalidade é iciitar a inclusão de novos usuários, pois definições padrão podem ser armazenadas no arquivo /etc/add. conf. Opções comuns de add: • -c comentário: comentário (geralmente o nome completo do usuário); • -d diretório: caminho para o diretório pessoal do usuário; • -q grupo: grupo inicial (GID). Precisa existir previamente no sistema; • -G grupol,qrupo2: grupos adicionais, separados por vírgula; • -u UID: U1D ( ID) do usuário; • -s shel 1: Shell padrão para o usuário; • - p senha: senha (entre aspas); • -e data: data de validade da conta; • -k /etc/skel: copia o diretório modelo /etc/skel; • -In: cria o diretório pessoal, se não existir. Com a opção -k /etcfskel novos diretórios pessoais podem ser criados a partir de uma árvore modelo situada em /etc/skel - Esse procedimento facilita a criação de várias contas de usuário com o mesmo perfil. Para que o usuário possa ar sua conta, o precisará definir uma senha para ele. Isso pode ser feito por meio do comando wd usuário. Usado sem argumentos, wd altera a senha para o usuário atual. O campo de descrição pode ser alterado com o comando chfn e o shdl inicial pode ser alterado com chsh. Usuários comuns podem usar estes comandos para alterar exclusivamente suas próprias contas. Uma conta de usuário pode ser apagada com o comando del. A opção - r assegura que o diretório pessoal do usuSrio também seja apagado. As informaçóes de conta dos usuários do sistema são armazenadas no arquivo /etc/wd, no formato: 142
Tópico 107: Tarefas istrativas
root:x:0:0::/root:/bin/bash luciano:x:1000:100:Luciano Antonio Siqueira:/home/luciano:/bin/bash
Cada usuário é definido em uma linha, em campos separados por ":", representando, respectivamente: 1. Nome de ; 2. Senha ("x"quando usando o arquivo /etcfshadow); 3. Número de identificação do usuário (UID); 4. Número do grupo principal do usuário (CD); 5. Descrição do usuário (opcional); 6. Diretório pessoal para o usuário; 7. Shell inicial do usuário (se vazio, o arquivo padrão /bin/sh será usado). Para editar diretamente o arquivo /etc/wd, é recomendado usar o comando vi pw, que bloqueia o arquivo /etc/wd contra possíveis alterações concorrentes, evitando corrupção do arquivo. A edição será feita com o editor padrão, via de regra o editor vi. Usado com a opção -s, vipw abrirá para edição o /etc/shadow.
Senhas shadow O arquivo /etc/wd pode ser lido por qualquer usuário (permissão -rw-r--r--), o que pode tornar as senhas criprografadas íveis de decodificação. Para evitar essa possibilidade, é usado um segundo arquivo, ível apenas ao usuário root, o arquivo /etc/shadow (permissão - rw- r----Se o sistema ainda armazena as senhas no arquivo /etc/wd, é possível fazer a conversão automaticamente para as senhas shadow, com o comando pwconv. Caso seja necessário retornar as senhas para o formato antigo, utiliza-se pwunconv. Como no arquivo /etc/wd, os campos no arquivo /etc/shadow são separados por ":", correspondendo a: 1. Nome de usuário, que deve corresponder a um nome vá!ido em /etc/wd; 2. A senha, criptografada numa sequência de 13 caracteres. Em branco permite sem senha. Com um asterisco " indica que a conta está b!oqueada; 3. O número de dias (desde 0110111970) desde que a senha foi alterada; 4. Número mínimo de dias até que uma senha possa ser novamente alterada. O número zero "0" permite a!terar a senha sem tempo de espera; 5. Número de dias depois dos quais a senha deverá ser alterada. Por padrão, 99999, ou 274 anos; 6. Número de dias para informar ao usuário sobre a expiração da senha; 7. Número de dias, depois de a senha expirar, até que a conta seja bloqueada; 143
Certificação LPI-1
S. O número de dias, a partir de 0110111970, desde que a conta foi bloqueada; 9. Campo reservado. As informações referentes à validade da senha também podem ser modificadas por meio do programa chage, com as seguintes opções: • -rn dias: mínimo de dias até que o usuário possa trocar uma senha modificada; • -M dias: número máximo de dias que a senha permanecerá válida; • -d dias: número de dias decorridos em relação a 0110111970. Determina quando a senha foi mudada. Também pode ser expresso no formato de data local (dialmês/ario); • -[dias: número de dias decorridos em relação a 0110111970, a partir dos quais a conta não estará mais disponível. Também pode ser expresso no Formato de data local (dia/mês/ano); • -1 dias: inatividade ou tolerância de dias, após a expiração da senha, para que a conta seja bloqueada; • -W dias: dias anteriores ao fim da validade da senha, quando será emitido um aviso sobre a expiraçâo da validade. Para usuários comuns, chage só pode ser usado com a opção -1 usuário, que mostra as restrições referentes ao usuário em questão. O comando rnod agrega as funções de alteração de conta de usuáriopor meio das opções: • -c descriçio: descrição do usuário; • -d diretório: altera diretório do usuário. Com o argumento -m, move o contetído do diretório atual para o novo; • -e vai or: prazo de validade da conta, especificado no formato dd/mm/aaaa; • -f valor: número de dias, após a senha ter expirado, até que a conta seja bloqueada. Um valor -1 cancela essa função; • -g grupo: grupo efetivo do usuário; • -G grupol ,grupo2: grupos adicionais para o usuário; • -i nome: nome de do usuário; • - p senha: senha; • -u IJJD: número de identificação (IJJD) do usuário; • - s shel 1: shell padrão do usuário; • - L: bloqueia a conta do usuário, colocando um sinal! na frente da senha criptografada. Uma alternativa é substituir o shell padrão do usuário por um script ou programa que informe as razões do bloqueio; • -II: desbloqueia a conta do usuário, retirando o sinal 1 da frente da senha criptografada. 144
Tópico 107: Tarefas istrativas
Grupos de usuários Para criar um grupo de usuários, é usado o comando groupadd: 4 groupadd estudo_c O número de identificação do grupo (GID) pode ser especificado através da opção -g. Para excluir um grupo, é usado o comando groupdel: 4 groupdel estudo_c Um usuário poderá ser induído/excluído de um grupo através do comando gwd, utilizando o argumento adequado. • gwd grupo: cria uma senha para grupo; • gwd -r grupo: apaga a senha para grupo; • gwd -a usuário grupo: associa usuário ao grupo; • gwd -d usuário grupo: exclui usuário de grupo; • gwd -A usuário grupo: torna um usuário de grupo. Um usuário pode pertencer a mais de um grupo, mas apenas um grupo pode ser o principal. Para mostrar os grupos aos quais um usuário pertence, é usado o comando groups usuário. Usado sem argumentos, o comando groups mostra os grupos do usuário atual. O comando Id mostra os grupos para o usuário, mostrando também o número de identificação do usuário e dos grupos. O comando newgrp é usado para alterar o grupo efetivo do usuário para o grupo solicitado em uma nova sessão de . Caso o usuário não pertença ao grupo em questão, será a ele associado. As informações sobre os grupos existentes no sistema são armazenadas em /etc/ group. Neste arquivo, cada grupo é definido em uma linha, em campos separados por representando, respectivamente: 1. Nome do grupo; 2. Senha para o grupo (x se utilizar /etc/gshadow); 3. Número de identificação do grupo (GID); 4. Lista de membros do grupo, separados por vírgula. Para editar diretamente o arquivo /etc/group, é altamente indicado usar o comando vigr, que bloqueia o arquivo /etclgroup contra possíveis alterações externas, evitando corrupção do arquivo. Usado com a opção -s, vigr abrirá para edição o arquivo /etc/gshadow. 145
Certificação LPT-1
Assim como ocorre com /etc/wd, aqui também é possível usar um segundo arquivo para armazenar informações referentes à senha dos grupos, chamado fetcl gshadow. O comando grpconv converte as senhas do formato antigo /etc/group para /etc/gshadow e grpunconv realiza o procedimento inverso. O comando grouprnod agrega algumas funções de alteração de grupos, pelas opções: • - g 010: altera o número (GID) do grupo; • -n fone: altera o nome do grupo. 0
107.2 Automatizar e agendar tarefas istrativas de sistema Peso 4 Existem dois sistemas principais de agendamento de tarcEs no Linux, o at e o cron. O até indicado para execução única de uma tarefa no futuro, enquanto o cron é utilizado para agendar procedimentos que devem ser executados regularmente no sistema. at O comando at programa a execução de um comando num momento futuro. Sua sintaxe básica é:
II at quando comando O termo quando pode significar, por exemplo, now (agora) ou midnight (à meia-noite). Outras opções de datas e formatos podem ser consultadas no arquivo /usr/ share/doc/at/timespec. Usuários comuns poderão usar o comando at se constarem no arquivo /etc/ at.allow. Se /etc/atallow não existir, o arquivo /etc/at.deny seráconsukado eserão bloqueados ao uso do ar os usuários que nele constarem. Se nenhum dos arquivos existir, apenas o usuário root poderá usar o ar. Para verificar os agendamenros vigentes, usa-se at -1 ou atq. Um agendamento pode ser apagado a partir de seu número específico, fornecido para o comando atrm. cro n Como dito anteriormente, a finalidade de um agendamenro cron é executar uma tarefa em intervalos de tempo regulares. A cada minuto, o daemon crond lê as tabelas de agendamento - chamadas crontabs - contendo tarefas a ser executadas em data e hora específicas. 146
Tópico 107: Tareias istrativas
O crontab geral do sistema fica no arquivo /etc/crontab. Esses arquivos não devem ser editados diretamente, mas por meio do próprio comando crontab. Opções do comando crontab: • crontab -1 usuário: mostra as tarefas agendadas pelo usuário; • crontab -e usuário: edita o crontab do usuário no editor padrão do sistema; • crontab -d usuário: apaga o crontab do usuário selecionado. Se o nome de usuário não é fornecido, será assumido o usuário atual. Cada linha no arquivo crontab representa uma tarefa, no formato demonstrado na figura 1.
0-59 0-23 0-31
1-12 0-6 comando 'Dia da Semana Mês Dia
o o Figura
1.
Hora
Minuto
Formato de agendamento do crontab.
O traço "-" delimita um período para execução. O caractere " em um campo determina a execução do comando sempre que o agendamento corresponder a qualquer marcação para o campo em questão. O caractere barra "1" estabelece um o para a execução. O exemplo abaixo executa o script_backup a cada quatro horas, de segunda à sexta, nos meses de maio e junho: * *14 * 5.6 1-5 /usr/local/bin/script_backup
e
Se a tarefa produzir alguma saída, esta será para a enviada para a caixa de entrada do usuário. Para evitar esse comportamento, basta redirecionar a saída da tarefa para /dev/nul 1 ou para um arquivo. Se não é necessário especificar uma hora exata para a execuçáo de uma tarefa, basta incluir o respectivo script em um dos diretórios /etc/cron.hourly/, etc/cron.daily/, /etc/cron.weekly/ e /etc/cron.rnonthly/. Esses diretórios representam, respecrivamente, a execução de hora em hora, diária, semanal e mensal. 147
Certificação LPI-1
É possível controlar o uso do crontab por meio dos arquivos fetcfcron.allow e /etc/cron.deny. Se /etc/cron.allow existir, apenas os usuários que nele constarem poderão agendar tarefas. Se letc/cron.deny existir, os usuários nele existentes serão proibidos dc agendar tarefas. Se nenhum dos arquivos existir, todos os usuários poderão agendar tarefas. O
107.3 Localização e internacionalização Peso 3 O Linux oferece diversas ferramentas de e a idiomas diferentes do inglês e a lugares fora do eixo EUAJEuropa. Além da configuração de fuso horário e da definição de teclados, variáveis de ambiente podem ser definidas para que todos os programas respeitem as mesmas definições de linguagem.
Fuso horário A definiçáo correta do E150 horário implica a indicação da relação do relógio do sistema com o Greenwich Mean Time - GMT +0:00. Contudo, o mero ajuste do relógio causará incorreção do horário durante o horário de verão. Como o Brasil, muitos países reajustam o horário oficial durante um período do ano - período conhecido como DaylightSaving Time— por isso é muito importante definir as configurações de fuso horário para que o sistema reflita a hora certa independente do período do ano. Recomenda-se a utilização do GMT +0:00 para o relógio do BIOS. Logo, o sistema precisará ser informado sobre o fuso horário desejado. Isso é feito utilizando o comando tzselect, que exibirá os fusos horários oficiais e, após a escolha, criará o arquivo /etc/timezone contendo as informações de fuso horário:
O cat /etc/tiniezone Arnehca/Sao_Paulo
O
O arquivo com as informações de horário de verão é o /etc/local time. Todos os arquivos de horário de verão disponíveis no sistema ficam em /usr/share/zoneinfo/.
Idioma e codificação de caracteres • e a caracteres acentuados ou não ocidentais no Linux é bastante avançado. • nome dado à definição sobre qual idioma e conjunto de caracteres usar chama-se loca/e ou simplesmente localização. A configuração básica de localização é feita com 148
rópico 107: Tarefas istrativas
Conversão de codificação Um texto poderá aparecer com caracteres ininteligíveis quando exibido em um sistema com padrão de codificação diferente daquele onde o texto foi criado. Para solucionar esse problema, pode ser utilizado o comando 1 conv. Por exemplo, para converter do padrão 130-8859-1 para UTF-8 pode ser utilizado o comando: iconv -f iso-8859-1 -t utf-8 < texttoriginal.txt > texto convertido.txt.
a variável de ambiente LANG e é a partir dela que a maioria dos programas definem as preferências de idioma. O conteúdo da variável LANG obedece ao formato ab_CD, em que ah é o código do idioma e CD é o código do país*. Exemplo de conteúdo da variável LANG:
0
# echo $LAG pt_BR.UTF-8
Além dos códigos de idioma e país, pode haver a informação especificando a codificação de caracteres a ser utilizada. No caso do exemplo, foi definida a codificação UTF-8. O UTF-8 é um padrão unicode para caracteres ocidentais acentuados. Em alguns sistemas, a codificação padrão é do padrão 1SO, como ISO-8859-1. Apesar disso, a tendência é todos os sistemas adotarem o padrão unicode. Além da variável LANG, outras variáveis de ambiente influenciam as opções de localização dos programas. Essas outras variáveis são utilizadas para definir alguma configuração específica de localização: LC_COLLATE: define a ordenação alfabética. Uma de suas finalidades é definir a ordem de exibição de arquivo e diretórios; • LC_CTYPE: define como o sistema trata certos caracteres. Dessa forma é possível discriminar quais caracteres fazem parte e quais não fazem parte do alfabeto; • LC_MESSAGES: definição de idioma dos avisos emitidos pelos programas (predominantemente os programas GNU); • LC_MONETARY: define a unidade monetária e o formato da moeda; • LC_NLJMERIC: define o formato numérico de valores não monetários. A principal finalidade é determinar o separador de milhar e casas decimais; • LC_TIME: define o formato de data e hora; • LC_PAPER: define tamanho padráo de papel; • LC_ALL: sobrepóe todas as demais variáveis. O código de idioma deve obedecer à especiricação 50-639
e o código de pais deve obedecer à especificação
50-3166.
149
Certificação LPI-1
Opções de idioma em sciipts A maioria das configurações de localização alteram a maneira como programas lidam com ordenação numérica e alfabética, alfabeto aceito e formato de námeros, grande parte dos programas já possui uma maneira de contornar essa situação. No caso de scripts, é importante definir a variável LANG=C para que o script não produza resultados diferentes quando a localização for diferente daquela onde ele O foi escrito.
150
/T
L
Exercicios ,
.
Certificação LPI-1
Questões Tópico 107 1. Qual comando pode ser usado para criar novas contas de usuário? Marque todas as alternativas corretas. a. add b. add C. creatc d. new
2. Qual é a finalidade do diretório /etcfskel? a. Armazenar as tarefas agendadas. b. Manter uma cópia dos diretórios do usuário. C. Servir como modelo para novas contas de usuário. d. Identificar usuários inativos ou bloqueados.
3. Quais comandos podem ser utilizados para alterar configurações de uma conta de usuário (marque todas as alternativas corretas) a. mod b. change e. chage d. wd
4. Senhas armazenadas diretamente no arquivo /etc/wd devem ser convertidas para o arquivo /etc/shadow com o comando _______ (apenas o comando, sem argumentos).
5. O comando específico que um usuário pode utilizar para alterar seu shell padrão é o _______ (somente o comando, sem argumentos).
6. O terceiro campo do arquivo fetc/wd corresponde ao (à) a. o número ID (UID) do usuário b. o número do grupo principal (GID) do usuário e. a senha do usuário cl. o shell padrão do usuário 152
Tópico 107: Taretas istrativas
7. Qual comando tem finalidade de editar o arquivo /etc/group, de forma a evitar a corrupção do arquivo? Dê apenas o comando, sem argumentos.
8. Qual o formato de um agendamento crontab para execução do comando /usr/bin/ backup.sh a cada 30 minutos?
9. O arquivo que define o período de horário de verão no sistema é o: a. /etcflocaltirne b. /etc/summerrime C. tetc/tirnezone d. /etc/locak
10. Em scripts, o valor indicado para a variável LANG é: a. pt_BR
b.UTF-8 c. ISO-8859-1 d. C
153
teso total do tópico 1a prova: 10
L
Tópico 108.
o
Serviços essenciais do sistema Phncipais temas abordados: • Manutenção e atualização automática da data e hora; • istração do serviço de registro de logs; • Fundamentos de servidores de email; • Impressoras e fiías de impressão.
it
-,
Certificação LPI-1
c
108.1 Manutenção da data e hora do sistema Peso 3
Um sistema com data e hora incorretas pode comprometer o funcionamento de alguns serviços, como manutenções programadas e registro de atividades. Além do ajuste direto da data e hora, é possível fizer o acerto automaticamente a partir de um servidor de tempo centralizado.
Relógios O kernel do Linux mantém um relógio separado do relógio do hardware (BIOS), sendo que este é lido pelo relógio do kernel apenas durante o boot, ando logo a seguir a funcionar separadamente. O relógio do hardware pode estar em hora local ou em hora universal (UTC). É preferível que esteja em hora universal, pois não será necessário modificá-lo no período de horário de verão e apenas o relógio de software evenrualmente necessitará ser manipulado para essas e outras atividades. O comando date é usado para mostrar a hora e data no sistema: iGU
$ date Gui Mal 14 14:07:10 BRT 2009
Com a opção -u, date mostra o horário em UTC (GMT 0:00): $date-u
$
Gui Mal 14 17:08:55 UTC 2009
O próprio comando date é usado para alterar o relógio do kernel, como demonstrado na figura 1. A opção - u especifica que a data informada refere-se ao horário UTC. Para mostrar ou alterar o relógio do BIOS, é usado o comando hwcl ock. Com o argumento -w, o comando atualiza o relógio do BIOS tomando como referência a hora do sistema. Com o argumento -s, atualiza a hora do sistema a partir do relógio do BIOS. Como no comando date, o argumento -u indica que será usado o horário UTC.
NTP
-
Network Time Protocol
Um computador em rede pode manter seu relógio atualizado, comparando a hora com um outro computador na rede que tenha um relógio mais preciso. Isso é possível por meio do protocolo NTP. 156
Tópico 108: Serviços essenciais do sistema
# date MMDDhhmmCCYY.ss
[L.
segundos (opcional)
Ano, porção da década (opcional) - Ano, porção do século (opcional) Minutos L_. Horas
L Figura
1. O
Dia
Mês
comando date também pode alterar a data e hora do sistema.
Para um sistema usar o NTP, o arquivo Ietclntp.conf deve estar configurado adequadamente e o serviço ntpd deve estar ativo. O ntpd utiliza o protocolo UDP através da porta de comunicação 123. Abaixo, um exemplo de arquivo /etcfntp. conf simples: server or.pool .ntp.crg server O.pool.ntp.org server I.poohntp.org server 2.pool .ntp.crç driftfile fetc/ntp.drift
c
Neste exemplo, foram definidos apenas os servidores NTP e o arquivo drift. Servidores NTP públicos podem set encontrados no endereço www.pooLntp.org . A indicação do arquivo drift é conveniente, pois é nele que o ntpd armazenará as estatísticas de erro, projetando o intervalo de erro do relógio do sistema e atualizando-o. Sejá estiver ativo, o ntpd deverá ser reiniciado para utilizar as novas configurações. Quando em execuçáo, o ntpd poderá ftincionar como servidor NTP para outras máquinas na rede. Caso os valores locais de hora difiram do servidor, o ntpd aproximará lentamente a hora, até que ambas sejam correspondentes, evitando assim mudanças bruscas que possam causar confusão no sistema. Para forçar o ajuste imediato do relógio, é utilizado o comando ntpdate, fornecendo um servidor NIP como argumento: 157
Certificação LPI-1
II
ntpdate br.pool .ntp.org 14 Mty 14:43:44 ntpdate126751: adjust time server 146.164.53.65 offset -0.010808 sec
O exemplo mostrado atualizou (0,0 10808 segundo) o desvio do relógio local com o relógio do servidor br.pool .ntp.org . O
40
108.2 Configurar e recorrer a arquivos de Iog Peso 2
Arquivos de log guardam registros das operações tio computador. Essas operações estão muitos mais relacionadas aos programas em execução do que às atividades do usuário propriamente dito. Seu uso é especialmente útil em investigações sobre falhas. A maioria dos arquivos de log é armazenada no diretório /var/loq/. Enquanto alguns programas geram os próprios arquivos de log, como o servidores Xe o Samba, a maioria dos logs do sistema são controlados pelo serviço syslog.
Configuração do Syslog O syslog é configurado pelo arquivo /etc/sysloq.conf. Cada regra de configuração é separada em dois campos, seletor e ação, separados por espaço(s) ou tabulaçáo(óes). O campo seletor é dividido em duas partes - facility e priority - separadas por um ponto. Facility identifica a origem da mensagem, ao se tratar de uma mensagem do kernel, erro de autenticação, identificação de hardware etc. Pode ser um dos seguintes termos: auth, authpriv, cron, daemon, ftp, kern, ipr, mali, news, syslog, , uu e localO até loca17. Priority identifica a urgência da mensagem. Quando um programa gera uma mensagem de log, ele próprio atribui uma urgência. O seletor priority identifica qual é essa urgência e encaminha a mensagem para o destino indicado. As mensagens dessa facility mais urgentes também serão encaminhadas para o destino indicado, a menos que seja explicitamente definido o contrário. A prioridade é: da menos urgente para mais urgente: debug, info, notice, warning, err, crit, alert e emerg. O termo none ignora a urgência para a facility em questão. Tanto facility quanto priority podem conter caracteres modificadores. O caractere asterisco * indica que a regra vale, dependendo de que lado do ponto ela está, para qualquer facility ou priority. Mais de uma facility pode ser especificada para a priority na mesma regra, bastando separa-las por vírgula. 158
Tópico 108: Serviços essenciais do sistema
O sinal = confere exclusividade à faciliry/priority que o sucede. Em contrapartida, o sinal ! faz ignorar a facility/priority que sucede. O sinal; pode ser usado para separar mais de um seletor para a mesma ação. O campo action ou ação determina o destino dado à mensagem em questão. Geralmente, as mensagens são enviadas para arquivos em fvar/log/, mas podem ser direcionadas também para pipes, consoles, máquinas remotas, usuários específicos e para todos os usuários no sistema. Exemplo de fetc/sysl oq . conf: Kern.t /var/log/kernel kern.crft kern.cr't
192268..Il fdev/console
kern.irfo;kern.!err !var/logtkernel-irfo
Todas as mensagens da faciliry kerneliráo para o arquivo /var/Ioq/kernel. Mensagens críticas e maiores irão para a máquina 192.168.1.11 e serão exibidas no console. Mensagens info e maiores, à exceção de mensagens de erro e maiores, irão para o arquivo /var/log!kernel-info. Após alteraçóes no arquivo /etc/syslog.conf, é necessário reiniciar o daemon syslogd para utilização das novas configurações.
Registro de log via rede Além de poder enviar mensagens de Iog para um servidor remoto, é possível fazer com que o Syslog receba e registre mensagens de outras máquinas na rede. Para isso, basta iniciar no servidor o programa syslogd - programa responsável pelo serviço com a opção - r. A partir daí as máquinas remotas poderão encaminhar mensagens de log para o servidor. Essa estratégia é útil para evitar eventual perda de arquivos de log gravados localmente numa máquina. Como os arquivos de log são continuamente ampliados, é bastante indicado que as mensagens mais antigas sejam movidas, para evitar que o arquivo de log aumente demais. Essa tarefa é realizada com uso do programa 1 ogrotate. Normalmente, o logrotate é agendado para execução periódica. Seu arquivo de configuração é /etc/logrotate.conf, com o qual regras de corte, compressáo e envio por email, dentre outras, podem ser especificadas para cada arquivo de log.
Entradas manuais de Iog Por meio do comando logger é possível criar mensagens de log manualmente, informadas como argumento ao comando. A opção -p permite determinar o par facility. priority para a mensagem. 159
Cerlllicação LPI-1
108.3 Fundamentos de MTA (Mail Transfer Agent) Peso 3 O programa responsável por controlar o envio e recebimento de mensagens de correio eletrônico, local e remotamente, é chamado MTA - Mail TransportAgent. Há várias opções de MTAs, entre as quais o sendmaiL o postfix, o qmaule o exim. O MTA roda como um serviço do sistema, geralmente utilizando a porta 25, responsável pelo protocolo SMTP. Em ambientes Unix, é possível interagir com o funcionamento do MTA de diversas formas, Dentre as mais comuns, está criar um redirecionamento de email. O redirecionamento pode ser definido no escopo geral do sistema ou pelo próprio usuário. Para definir um redirecionamento geral do sistema, é utilizado /etclal lases. Nele é possível vincular nomes diferentes - conhecidos como aliares - para um ou mais destinatários no sistema. Exemplo de /etc/aliases: ranager:
root
durnper:
root
webnaster:
luciano
abuse:
luciano
*
No exemplo, as mensagens enviadas para os usuários manager e dumper serão encaminhadas para o usuário roote as mensagens enviadas para e abuseserão encaminhadas para o usuário Luciano. Após alterar esse arquivo, é necessário executar o comando newal 1 ases para que as alterações entrem em funcionamenro. Esse tipo de direcionamento é indicado quando se deseja receber as mensagens encaminhadas para outro usuário. Também é possível fazer com que o MTA encaminhe as mensagens recebidas para outro usuário ou endereço de email, editando o arquivo .forward no diretório pessoal. Esse arquivo pode conter um ou mais endereços para os quais os emails recebidos pelo usuário em questão serão direcionados. Como começa por um ponto, o arquivo não é exibido. Portanto, é importante verificar se redirecionamentos antigos não estão ativos sem o conhecimento do usuário. Para exibir a fila de email e o estado das mensagens sendo transferidas, utiliza-se o comando mailq.
160
O
Tópico 108:
Serviços essenciais do sistema
9
108.4 Configurar impressoras e impressão Peso 2
Uma das principais finalidades para um computador, esteja ou não em rede, ainda é a impressão de documentos. Com o Linux náo é diferente, c o programa responsável pelo sistema de impressão chama-se CUPS - Common Unix Printing System. O CUPS fornece controle sobre impressoras, filas de impressão, impressão remota e compatibilidade com as ferramentas do sistema de impressão antigo Ipi
Utilizando o CUPS A configuração do CUPS pode ser feita diretamente em seus arquivos de configuração ou usando a linha de comando, mas a maneira mais recomendável é usar a interface Web, ível por qualquer navegador comum (figura 2). Para fazer a configuração usando a inrerface Web basta ar o endereço htrp:// Iocalhost:6311(localhost refere-se a própria máquina onde se está trabalhando). Para que a interface de configuração Encione é fundamental que o servidor de impressáo
Arq.*, Edt.ç Este
d6øC,
F.oe.I
E.r.m.et.. P41d
P06Sffi.c*oeeaii
4-
C
Common_UNIX Printing System 1.3.9
-
E.r rm Tflfl1I'
SSFtU •,rT
'i'rjcz_ Ia
. r7,r7-
We Icom e! -e--e. -
O
•
•
About
-_-Ià ep
ttr.
E,
.ee.7fl
__________
CUPS
I Ifl
-
•7 p'.... -.
.,ek, wTt.J Paye'
Ap,- mi, pi-,,---
tiNI
e-•
Lfl-e-ts'd p,,stinejje'e,s It
tes 'tan-Seru o;.-!çe, ii or
flo 3. he
e dre.. 4-el ,0, 't,,fltac. d b
etandaro flk'; fl.Rer, &N €eI
;ndss-'s4p.te.1 ,4e-nJ d"JS'.-'e1t •tt!Oecfl•! 1
rO
De..'
,fl'Q
O'
•O',et.o,Wt
For Pririter Drivers and Assistance .-.. ei.-0 tN.:.'!.c.4.
e
.cr • -M
flOO•
l,,e,-s-.d
1
Coeekw.
Figura 2. A inleriace Web de configuração do sistema de impressão
CUPS,
1 Ot.7 t],c2 ,
lMl
ada pelo navegador. 161
Certificação LPI-1
(/usr/sbin/cupsd) esteja ativo. A maioria das distribuições inicia o servidor de impressão no boot do sistema.
istração de impressoras pela linha de comando A configuração de impressoras e filas de impressão pela linha de comando é uma tarefa árdua, mas pode ser necessária quando não é possível utilizar a interface web.
O comando lpinfo é usado para obter uma lista dos dispositivos de impressão e protocolos de impressão disponíveis:
1
# lpinfo -v network socket network http network ipp network lpd
A primeira palavra da lista identifica o tipo do dispositivo. Para impressoras locais, é importante que o módulo do respectivo dispositivo esteja carregado (porta paralela, usb
etc). Pode-se também utilizar a opção -m pra listar os modclos de impressoras disponíveis:
1
ipinfo C/pci-550.ppd.gz HP DeskJet 550C - CUPS+Gimp-Print v42.7 C/pcl-560.ppd.gz HP DeskJet 560C - CUPS+Giínp-Print v4.2.7 foomatic-ppds/HP/HP-DeskJet_600-hpijs.ppd.qz HP DeskJet 600 Foomatic/hpijs (reco mmended)
-
A maior parte das tarefas de istração de impressão pode ser realizada com o comando ip: As opções mais comuns associadas ao comando lp são:
• -c classe: adiciona a impressora indicada a uma classe. Se a classe não existir, será criada;
• -m modelo: especifica qual é o driver padrão da impressora, geralmente um arquivo PPD. A lista de todos modelos disponíveis é mostrada com o comando ipinfo -m;
• -r classe: remove a impressora indicada da classe. A classe será apagada ao se tornar vazia; 162
Tópico 108: Serviços essenciais do sistema
• -v dispositivo: indica o endereço do dispositivo de comunicação da impressora que será utilizada; • -D 1 nfo: descrição textual para a impressora;
• -E: autoriza a impressora a receber trabalhos; • - L local i zação: descrição textual para a localização da impressora; • -P arquivo PPD: especifica um arquivo PPD de driver local para a impressora. O exemplo abaixo adiciona uma impressora local, modelo HP DeskJet 600, ao sistema:
li 'padn -p *_9eskdet_600 -[ -v parallel:/dev/lpO -D "HP DeskJet 600" '-."Irnpressora Local
L
O
-rn f oornatic-ppds/HP/HP-DeskJet_600-hpijs.ppd.gz
A impressora foi adicionada com suas opções padrão (tamanho da folha, qualidade dc impressão etc). Para alterar esses valores, usa-se o comando lpoptions. O exemplo abaixo lista as opções possíveis para a impressora recém instalada: -'
# 1poptons -p HPDeskJet600 PageSize/Page Sire: Custom Letter *A4 Photo PhotoTearüff JxS 5x8 A5 A6 A6tear0ff
0
'-.-B5JIS EnviO EnvC5 EnvC6 EnvDL [nvlSOB5 [nvMonarch Executive ELSA Hagaki Legal '-.-Oufuku w558h774 w612h935 PageRegion/PageRegion: Letter A4 Photo PhotoTearQff 3x5 5x8 AS A6 A6Tearüff B5JS ~EnvlO EnvC5 EnvC6 EnvDL [nvISOB5 EnvMonarch Executive FLSA HagaKi Legal Oufuku '-.w558h774 w612h935 PnintoutMode/Printcut Mode: Draft Draft.Gray tNorra Normal .Gray High.Gray '-.Ouality/Resolution, Ouality, Ink fype. Media Type: *FrompnintoutMode 300CoorCMYK '-,300DraftColorCMYK 300DraftGrayscaleCMYK 3000raysca 1 eCMYK 600x300BestGrayscaleCMYK O exemplo a seguir define a opção PrintourMode como Drafr (Rascunho):
# lpoptions -p HP_DeskJet,JOD -o Pr 1 ntoutModeDraft Para remover a impressora, usa-se o comando abaixo: /I
p -x HLDeskJetjOO O estado das impressoras e filas pode ser verificado com o comando lpstat -a. 163
Certificação 1l'I-1
Arquivos de configuração do CUPS Os arquivos de configuração do CUPS encontram-se em Ietcicupsf. Os principais são. • classes .conf: define as classes para as impressoras locais; • cupsd.conf: configurações do daemon cupsd; • mirwe.convs: define os filtros disponíveis para conversão de formatos de arquivos; • mime.types: define os tipos de arquivos conhecidos; • pri nters conf: define as impressoras locais disponíveis; • ipoptions: configuraçóes específicas para cada impressora.
Filas de impressão Fila de impressão é o diretório temporário onde ficam os trabalhos antes de serem impressos. Por padrão, a fila no sistema de impressão antigo lpd fica em /var/spool / lpd/, ao o que, no CUPS, é localizada em /var/spool/cups/. Para listar os trabalhos numa fila de impressão, é usado o comando lpq.
Imprimindo arquivos O comando lpr envia o documento indicado para a fila de impressão. Opções comuns para esse comando são: • - Pxxx: envia o arquivo para a fila xxx; • -#x: imprime o documento x vezes; • - 5: não copia o documento para a fila de impressão, mas cria um link simbólico nela. O comando lpq pode ser utilizado para inspecionar o andamento das tarefas de impressáo. Usado na forma 1 pq - a mostra os trabalhos em todas as filas do sistema e lpq -p mostra os trabalhos no computador especificado. A cada trabalho de impressão é associado um número. Esse número pode ser usado pelo comando 1 prrn para cancelar um trabalho na fila de impressão. O comando lprm sem argumentos cancelará o último trabalho enviado. Informar o nome dc um usuário como argumento cancelará todos os trabalhos de impressão deste usuário na fila. Para cancelar todos os trabalhos, usa-se 1 prm -a ou 1 prrn -.
Impressão remota Após uma impressora ser instalada na máquina local, ela poderá ser disponibilizada para toda rede a qual está conectada. Essa configuração pode ser feita na interface de configuração Web do CUPS ou na ferramenta de impressão da distribuição. Contudo, também poderá ser feita editando diretamente os arquivos de configuração. 164
Tópico 108: Serviços essenciais do sistema
Supondo ser o servidor de impressão a máquina com endereço 192.168.1.11 - a máquina onde a impressora foi configurada - e a rede onde a impressora será compartilhada 192.168.1.0124, a configuração pode ser feita da forma descrita a seguir, no arquivo /etc/cups/cupsd.conf: Cocaton />\ Order Deny,AHow Deny Fror A]] Aflow Fror 127.3.0.1 Allow From 192.168.1.0/24 # Liberar para a rede 192,168.1.0124 Ë necessário reiniciar o serviço cupsd para utilizar as novas configurações. Nos demais computadores da rede, basta incluir no arquivo /etc/cups/cl 1 ent . conf: Serverware 192,168.1.11 A impressora remota pode ser verificada no terminal com o comando 1 pstat - a: O ]pstat - d HP_3e5kjet_600 aceitando solicitações desde Oua 11 Mar 2009 18:34:54 BRT Para que os documentos sejam automaticamente impressos nessa impressora, basta torná-la a impressora padráo com o comando: lpoptions -d HP_Deskjet_600 Usando o sistema Samba, é possível imprimir com uma impressora instalada em um servidor Microsoft Windows. Para fazê-lo, deve-se escolher o dispositivo "Windows Printer via SA.&tBA" e utilizar a localização URJsmb://servidor/impressora ao instalar uma impressora, substituindo-os pelos valores apropriados. Se o servidor exigir autenticação, a LIRI deverá ser smb:Ilusuário:senha@grupolservidorlimpressora. O
165
VI
.2 'à a 'à
1
a) LIJ
Certificação LPI-1
L
Questões Tópico 108 1. O comando utilizado para definir a data e hora do sistema é o: a. date b. setdate c. clock d. time
2. O relógio do BIOS da máquina pode ser acertado a partir do relógio do sistema com o comando: a. hwclock -w b. hwclock -s e. hwclock -b cl. hwclock -h
3. Os servidores de tempo do protocolo NTP devem ser definidos em qual arquivo? Informar o caminho completo, diretório e arquivo.
4. O comando servidor NTP.
atualiza imediatamente a hora local a partir de um
5. Dentre as listadas, qual é a prioridade mais urgente do serviço syslog? a. crit b. emerg c. debug cl. panic
6. Qual o nome do comando cuja finalidade é gerar entradas de Iog manualmente? Dê somente o nome do comando, sem argumentos.
168
Tópico 108: SeMços essenciais do sistema
7. O arquivo que define aliases de email para todo o sistema é: a. /etc/alias b. /etc/aliases c. Jetclantialias cl. /etc/forward
8. O comando newaliases tem a finalidade de: a. Ativar os novos aliases de email. b. Abrir o assistente de criação de alias de email. e. Apagar a tabela antiga de aliases. cl. Localizar os aliases de email criados recentemente.
9. A porta de rede padrão de comunicação do servidor de impressão CUPS é a: a. 80 b. 143 e. 631 cl. 3389
10. Qual é a forma correta de utilização do comando ipr para imprimir três cópias
do arquivo documento.txt? a. lpr +3 documento.txt li Ipr -3 documento.txt c. lpr -c 3documento.txr cl. lpr 43 documento.txt
169
/
peso total dotôpico 1ia prova: 14
L ,G
Tópico 109. Fundamentos de rede Principais temas abordados: • Protocolos de Internet; • Configuração e resolução de problemas de rede; Serviço de resolução de nomes DNS
Cerlificação LPI-1
109.1 Fundamentos dos protocolos de Internet Peso 4
As máquinas em rede conseguem comunicar-se umas com as outras utilizando um número chamado 1P Ao conectar um computador na rede, seja uma rede interna ou diretamente à Internet, ele necessariamente precisará obter um endereço IP para poder comunicar-se com outras máquinas.
Endereço IP Endereços IP no formato X.XXX— conhecidos pelo termo inglês doned quad— são a expressáo, em números decimais, de um endereço de rede binário. Cada um dos quatro campos separados por pontos corresponde a um byte, algumas vezes chamado octeto. Por exemplo, o número 1P 192.168.1.1 corresponde à forma binária: 11000000.10101000.00000001.00000001
A tabela Conversão de binários para decimais demonstra a correspondência entre números binários e números decimais. Cada interface de rede numa mesma rede deverá ter um endereço IP único, mas cada computador pode possuir mais de uma interface de rede. Nesse caso, o computador pode estar conectado a diversas redes diferentes.
Q Conversão de binários para decimais 0000 0001
20
1
00000010
2
0000 0100
2' 22
00001000
23
8
00010000
24
16
00100000
25
32
01000000
26
64
10000000
27
128
4
Classes de redes Para redes privadas (LANs), existem faixas especí ficas de IPs que podem ser usadas e que não devem ser aplicadas a interfaces ligadas à Internet. Essas faixas são chamadas classes: 172
Tópico 109: Fundamentos de rede
• Classe A. 1.0.0.0 até 127.0.0.0. Endereços de rede de 8 bits e endereços de interEces de 24 bits. O primeiro octeto do número IP representa o endereço da rede. A máscara de rede padrão é 255.0.0.0. Permite aproximadamente 1,6 milhões de IPs de interface para cada rede; • Classe B: 128.0.0.0 até 191.255.0.0. Endereços de rede de 16 bits e endereços de interfaces de 16 bits. Os dois primeiros octetos representam o endereço da rede. A máscara padrão é 255.255.0,0. Permite 16.320 redes, com 65.024 IPs de interface para cada rede; • Classe C: 192.0.0.0 até 223.255.255.0. Endereços de rede de 24 birs e endereços de interfaces de 8 birs. Os três primeiros octetos representam o endereço da rede. A máscara padrão é 255.255.255.0. Permite aproximadamente 2 milhões de redes, com 254 JPs de interface cada uma.
Endereço de rede, máscara de rede e endereço broadcast Para que os dados possam ser encaminhados corretamente pela rede, a interface de rede precisa conhecer seu número 1P, o número IP de destino e a qual rede eles pertencem. Na maioria dos casos, a rede do IP de destino só será conhecida quando esse IP de destino estiver dentro da mesma rede interna do IP de origem. É possível identificar se um IP pertence a uma rede fazendo o cálculo a partir da máscara de rede. O cálculo é feito a partir da forma binária dos números IR
Máscara de 16 bits: 11111111.11111111.00000000.3000000o - 255,255.0.0
0
Máscara de 17 bits: 11111111.11111111.10000000.00000000 = 255.255.128.0 Na primeira máscara (16 bits), pertencerão à mesma rede os IPs cujos dois primeiros octetos do endereço não difiram entre si. Na segunda máscara (17 bits), pertencerão à mesma rede os iPs cujos dois primeiros octetos e o primeiro bit do terceiro octeto do endereço não difiram entre si. Dessa forma, dois endereços de interface 172.16.33.8 e 172.16.170.3 estarão na mesma rede se a máscara for de 16 bits, mas não se a máscara for de 17 bits. As máscaras de rede variam dependendo do contexto da rede. Consequentemente, o endereço da rede corresponde à parte do número IP determinado pelos bits 173
Certificação Liii
marcados da máscara de rede. Para uma máquina 172.16.33.8 com máscara de rede 255.255.0.0,0 endereço da rede será 172.16.0.0. O endereço broadeasi é o número IP que designa todas as inrerfaces numa rede. Para uni endereço de rede 172.16.0.0, o endereço broadcast será 172.16.255.255. Com o uso de operadores matemáticos lógicos - AND, OR e NOT—, os endereços binários são calculados bit a bit. Assim, os IPs da rede e de broadcasr resultam das operações:
IP da Intertace
AND Máscara da rede
=
IP da Rede
IP de Máscara IP da Rede OR NOT da rede = Broadcast Um endereço IP pode demonstrar a informação de endereço da rede, máscara de rede e broadcast numa forma abreviada. Por exemplo, 192.168.1.129125, em que número 25 após a barra indica a quantidade de birs reservados para o endereço de rede. Conclui-se que é uma rede CIDR com máscara de sub-rede 255.255.255.128, de endereço 192.168. i .128 e broadcast 192.168.1.255.
Sub-redes Uma mesma rede pode ser dividida em duas ou mais redes, bastando redefinir a máscara de rede. Dessa forma, uma rede pode ser dividida em redes menores, sem classe, chamadas CIDR - Qassless Inter Domain Rounting. Por exemplo, uma rede cujo endereço é 192.168.1.0 e a máscara de rede é 255.255.255.0 pode ser dividida em duas ao ativar o primeiro bit do quarto ocreto na máscara de rede. Os primeiros 25 birs do IP seriam referentes ao endereço da rede. O diagrama Máscara de 25 bits mostra o que acontece quando é aplicada uma máscara de 25 bits à rede 192.168.1.0. Máscara de 25 bUs A divisão em duas sub-redes acontece devido ao 25 0 bit, que avança sobre o quarto octeto e divide a rede em duas. De maneira semelhante, uma máscara de rede de 26 bits dividiria a rede em quatro, pois as redes resultantes seriam 192.168.1.0,
192168.1.64, 192.168.1.128e 192168.1.192. 174
Tópico 109: Fundamentos de rede
Máscara de 25 bits.
Máscara de rede de 25 bits llllllll.11l11111.111111fl.130130)Ø(Ô0
Decimal 255.255.255.128
RedeA
RedeB
192.168.1.0125
192.168.1.128125
IP da rede
IP da rede
Binário
Binário
1100000e. 10101000.00000001.00000000
11000000. 10101000 . 00000001. 10000000
Decimal 192.168.1.0
Decimal 192.168.1.128
Faixa de IP
Faixa de IP
Binário
Binário
11000000. 10101000.00000001. 60000001 até 11000000 10101000, 00000001 .01111110
11000000 10101000. 00000u01 . 10000001 até
Decimal 192. 168. 1. 1
Decimal 192. 168 . 1. 129
até
11000000. 10101000 .00000001.11111110
até
192.168.1.126
192.168,1.254
IP de Broadcast
IP de Broadcast
Binário
Binário
11000000 .10101000 00000001.01111111
11000000. 10101000. 00000001 .11111111
Decimal 192.168.1.127
Decimal 192.168.1.255
ffs para seus respectivos endereços de rede e broadcast, 111's para as incerfaces das estações será proporcionalmente reduzido.
Cada sub-rede ocupa dois portanto o total de
175
Certificação LJ'I-1
Rota padrão Conhecendo o IP de destino e a qual rede ele pertence, o sistema será capaz de encaminhar os dados pela interface de rede correta. Contudo, principalmente quando o destino é uma máquina na Internet, dificilmente a interface local estará diretamente conectada à rede do IP de destino. Para esses casos, é necessário estabelecer uma rota padrão, ou seja, um endereço IP dentro de uma rede conhecida para onde dados desse tipo serão encaminhados. Mesmo que o IP da rota padrão não esteja diretamente conectado à rede do IP de destino, ele será novamente encaminhado para outra rota padrão e assim sucessivamente, até que encontre a rede a qual os dados se destinam.
IPv4 e IPv6 O padrão tradicional de 32 bus (quatro octetos de bits) dos números IP é conhecido como IPv4. Há outro padrão mais recente, conhecido como IPv6, que consiste de uma sequência de 128 bits. A vantagem óbvia do lPv6 sobre o IPv4 é a disponibilidade de uma quantidade muito maior de números IR Enquanto o IPv4 é capaz de gerar 4.294.967.296 (2 32 ) endereços, o IPv6 disponibiliza 3,4 x 1038 endereços. Um endereço IPv6 normalmente é escrito na forma de oito grupos de quatro números hexadecimais. Exemplo de um endereço IPv6: 2001:Odb8:85a3:08d3:1319:882e:0370:7334
'3
O lPv4 ainda é muito mais difundido e é possível a intercomunicaçáo entre os dois padrões. Porém, à medida que cada vez mais dispositivos demandarem o uso de um endereço IP, o padrão IPv6 tornar-se-á o vigente.
Protocolos de rede Vários protocolos sáo necessários para a transmissão de dados numa rede. Protocolos constituem a "linguagem" usada na comunicação entre duas máquinas, permitindo a transmissão de dados. Os principais protocolos são: •
IP - Internet Protocol: protocolo base utilizado pelos protocolos T, UDP e ICMP para endereçamento;
• T - Trausfer Control Protocol: protocolo de controle da formatação e integridade dos dados transmitidos; • UDP - Datagram Protocol: exerce a mesma função do T, porém os o controle sofre intervenção da aplicação;
176
Tópico 109: Fundamentos de rede
• ICMP - Internet Control Message Protocol: permite a comunicação entre roteadores e hosts, para que identifiquem e relatem o estado de funcionamento da rede.
Portas T e UDP Os protocolos de rede tornam possível a comunicação dos serviços de rede (FTP, HTTP, SMTP etc), assinalando uma porta específica para cada um deles. Ou seja, além de conhecer o endereço de uma máquina na rede, é necessário indicar em qual porta nesse endereço os dados devem ser transmitidos. É muito importante que todos os computadores interligados respeitem os números de porta corretos para cada serviço. A lista oficial de portas e serviços associados é controlada pela lANA - Interna Assigned Numbers Authority - e está disponível em http://www.iana.org/assign-
mentslpon-numbers. No Linux, a lista de serviços conhecidos e de suas portas é armazenada em /etc/ services. As portas são campos de 16 bits, existindo, portanto, um máximo de 65535 portas. A tabela Portas de serviços mostra as principais portas de serviço M. O
Portas de 20
FTP (porta de dados)
21
FTP
22
SSH
23
Telnet
25
SMTP
53
DNS
80
H1TP
110
POP3
119
NNTP (Usenet)
139
Nethios
143
IMAP
161
SNMP
443
HTIPS
465
SMTPS
993
IMAPS
995
POPaS
177
Certificação
li
LPI-1
109.2 Configuração básica de rede Peso 4
Apesar de os protocolos de rede serem os mesmos para qualquer sistema operaciona!, cada um destes possui ferramentas e maneiras diferentes de realizar a configuração e ingresso na rede. No Linux existem muitas maneiras de realizar a configuração, sendo que as mais tradicionais envolvem apenas alguns poucos arquivos e comandos.
Arquivos de configuração lbdas as configurações de rede ficam armazenadas dentro de arquivos de texto comuns, no diretório /etc. Apesar de cada distribuição utilizar métodos distintos para realizar as configurações automáticas de rede, todas elas obedecem à padronização tradicional de armazenamento das configuraçóes. /etc/hostname Arquivo que contém o nome atribuído à máquina local: $ cat /etc/hostname luciano-desktop
/etc/hosts Associa os números IP da rede a nomes. Ele é prático para atribuir um nome mais simples para máquinas adas frequentemente ou para pequenas redes, onde um serviço de resolução automática de nomes não é necessário: $ cat Ietcfhosts 127.0.0.1
localhost lcnsqr
189.14.98.138
themisto
201.6.144.122
office
192.168.64.199
note
/etc/nsswitch. conf Determina por onde o sistema deve começar a procurar recursos como endereços de rede, serviço de autenticação etc. Termos chave comofiks, nise diu determinam onde os recursos em questão podem ser encontrados: $ cat /etc/nsswitch.conf hosts: 178
files dns
Tópico 109: Fundamentos de rede
networks: serv 4 ces: protocos:
files fYes fies
/etc/reso!v. conf Determina os números 1P dos servidores de resolução de nomes DNS.
$ cat /etcIresov.canf search 1i'uxreceaia.cü:.or naineserver 208.67222.222 rameserger 208.61.220.220 A primeira linha, search linuxnewmedia. com . br, determina que caso seja solicitada a resolução de um nome sem domínio, automaticamente será incluído o domínio
Iinuxnewmedia. com . br. Configuração manual da interface Fundamental para o funcionamento da rede é que a interface de rede esteja configurada corretamente. Se toda a parte estrutural da rede - roreador(es) e cabeamento - estiver corretamente preparada e a interface de rede corretamente instalada, esta poderá ser configurada manualmenre por meio do programa ifconfig. O comando ifconfig possui muitas finalidades, mas a principal é definir um endereço IP para a interface de rede, por exemplo: # ifcorfig ethO 192.168.1.2 ap À interface ethO foi atribuído o endereço IP 192.168.1.2. Para desarivar a inrerface de rede, utiliza-se down: 4 ifconfig ethü down
Ui
A máscara de rede para a inrerface também pode ser especificada com o 1 fconf 19: 4 fconflg ethü 192,168.1.2 net.rnask 255.255.255.0 up O 1 fconfig também é usado para inspecionar as configurações de uma interface. Sem argumentos, ele mostra as configuraçóes de todas as inrerfaces ativas do sistema. 179
Certificação LPI-1
Para verificar as configurações de uma interface específica, basta fornecer como argumento o nome da interface: # ifconfig ethü ethü
Link encap:Ethernet Endereço de HW 00:12:3f:fd:80:00 inet end.: 192.1681.109 Bcast:192.168.1.255 Masc:255.255.255.0 endereço inet6: fe80::212:3fff:fefd:8000164 Escopo;Link UR BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:886248 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:820466 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:352704641 (352.7 MB) TX bytes:116209432 (116.2 MB)
Configuração de rotas O comando route mostra e cria rotas de rede. Exemplo de tabela de rotas, exibida com o comando route -n: ¶ route -n Kernel IP routing table Oestination
Gateway
Genmask
106464.64
0.0.0.0
255.255.255.255 UH
0
O
O pppü
192.168.117.2
0.0.0.0
255.255.255.255 UH
O
O
O tunO
192.168.177O
192.168.177.2
255.255.255.0
UG
O
O
O tunO
Flags Metric Ref
Use Iface
192.168.64.0
0.0.0.0
255.255.255.0
U
O
O
O wlano
127.0.0.0
0.L0.0
255.0.0.0
O
O
O
O lo
0.0.0.0
0.0.0.0
0.0,0.0
O
O
O
O pppo
O campo FIags mostra o estado de funcionamento da rota, podendo conter os seguintes caracteres: • U: rota ativa e funcional; • H: o alvo é um host;
• G: é a rota gateway; • R: restabelecer rota por roteamento dinâmico; • D: rota estabelecida dinamicamente por daemon ou redirecionamento; • M: modificada por daemon ou redirecionada; • !: rota rejeitada. 180
Tópico 109: Fundamenlos de rede
Configuração automática de rede 9 Na maior parte dos casos, tanto a configuração da interface quanto das rotas de rede é feita automaticamente usando o recurso de DUOR O programa DH cliente envia urna requisição para a rede por meio da interface especificada e o servidor responde com informações de endereço IP, máscara de rede, broadcast etc., que serão usadas para configurar a interface local. /
Por exemplo, para criar uma rota na interface ethO, para a rede 192.168.1.0, usando a máscara de rede 255.255.255.0:
a
O route add -net 192.168.1.0 netmask 255.255.255.0 dev ethO
Para criar uma rota padrão pela máquina 200.228.60.1 (defaufr gateway), usaríamos: O route add defau't qw 200.228.60.1 Outra maneira de criar a rota padrão é criar uma rora para a rede 0.0.0.0, ou seja, qualquer rede que não tenha uma rota especificada:
a
O route add -"et 0,0.0.0 0ev etrú
Por sua vez, o comando para remover a rota-padrão pela máquina 200.228.60.1 é: O route dei default gw 200.228.60.1 O comando p1 ng pode ser usado para identificar o funcionamento da rede. Utilizando o protocolo ICMP, ele simplesmente envia uma pequena quantidade de dados para uma máquina especificada e aguarda um resposta. Se a máquina remota responder, significa que a configuração básica da rede está funcionando. Por exemplo, após identificar o gateway padrão com o comanto route, enviar três requisiçóes de resposta com o comando ping: O route Tabela de Rotearento P do Kerne Destno Roteador MãscaraGen. Opções Métrica Ref 197.168.1.3 0.0.0.0 255.255.255.0 U 1 O 169.254.0.0 0.0.0.0 255.255.0.0 1000 O 0.0.0.0 192.168.1 .754 0.0.0.0 uc o o
1] Uso Iface 0eth0 0 ethO O ethü 181
Certificação LPI-1
# ping -c3 192.168.1.254 PINO 192.168.1.254 (192.168.1.254) 56(84) bytes of data. 64 bytes from 192.168.1,254: icnp_seq=1 tt164 tiroe=0.364 ms 64 bytes from 192,168.1,254: icmp_seq-2 ttl=64 time=0.274 ms 64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=0.344 ms 192.168,1,254 ping statistics 3 packets transmitted, 3 receivcd, 0% packet loss. time 1998ms
rtt minlavglmaxfmdev
0.27410.32710.36410,041 ms
Com essa saída verifica-se que o servidor respondeu corretamente e a rota está funcionando como se espera.
L
O
109.3 Soluções para problemas de rede simples Peso 4 A etapa mais importante para corrigir uma rede com problemas é identificar a origem da falha. Diversos comandos podem ser usados para essa finalidade, cada um com uma aplicação específica.
Inspecionando a configuração O primeiro o na identificação de uni problema na rede é verificar a coniguração da interface. Isso pode ser feito como próprio comando ifconfig: # ifconfig ethü ethü
Link encap:[thernet Endereço de HW 00:12:3f:fd:80:00 inet end. : 192.168.1.109 Bcast:192,168.1.255 Masc:255.255.255.0 endereço inet6: fe80::212:3fff:fefd:8000/64 [scopo:Link 1W 8ROÀDCAST RIJUMING MUITICAST IITU:1500 Métrica:1 pacotes RX:1862353 erros:0 descartados:Q excesso0 quadro:0 Pacotes TX:1747229 erros:0 descartados:0 excesso:0 portadora:0 colisôes:0 txqueuelen:1000 RX bytes:580345633 (580.3 MB) TX bytes:224131348 (224.1 MB)
A resposta do ifconfig exibe o endereço IP da interface, o endereço de broadcast e a máscara da rede. Caso essas informações náo estejam presentes, é provável que a interfa182
Tópico 109:
Fundamentos de rede
cc ainda não tenha sido configurada. O próprio ifconfig pode ser usado para configurar a rede, mas o comando 1 fup automatiza a tarcE ao utilizar o arquivo que armazena as configurações para a interface específica (/etc/network/interfaces). O comando ifdown realiza a tarefh inversa, desativa a interface especificada quando necessário.
Correção de rotas Se as configurações da interface estiverem corretas e ainda assim o comando ping não receber resposta do gateway, é possível que a tabela de rotas esteja incorreta. Para verificar a tabela de rotas, utiliza-se o comando route: #route -n Tabela de Roteanento IP do Kernel Destino
Roteador
MãscaraGen.
192168.1.0
0.0.0.0
255.255.255.0
[1
1
O
O ethO
0.0.0.0
192.168.1.254
0.0.0.0
UG
O
O
O ethø
0pçes Métrica Ref
Uso Iface
A listagem mostra que existem tanto a rota para a rede local (192.168.1.0), a qual a interfacc ethO está diretamente conectada, quanto a rota padrão (destino 0.0.0.0) apontando para a máquina 1921681.254. Caso outras máquinas dentro da mesma rede respondam ao comando ping mas máquinas Lora da rede local não respondam, é muito provável que a rota padrão não esteja configurada corretamente. Ou seja, os pacotes de dados enviados para fora da rede local - via rota padrão - não estão obtendo resposta. Para excluir uma rota padrão, o próprio comando route pode ser utilizado: / route dei defauit gw 200.228.60.1
ou simplesmente indicando a rede:
II
route dei -net 0.0.0.0
4
Em seguida, basta incluir a rota padrão adequada. Por exemplo, se o destino da rota padrão for a máquina 192.168.1.1: # route add defauit qw 192.168.1.1
u
Após alterar a configuração de interface e rotas, o ping deve ser novamente utilizado para verificar a concctividade. Se ainda houverem problemas de conexão, princi183
Certificação LPI-1
palmente para endereços fora da rede loca!, o problema poderá estar em outro ponto da configuração.
Resolução de nomes Um dos principais problemas de conexão de rede é a falha no serviço de resolução de nomes DNS, O DNS é responsável por traduzir nomes de sues - como www./inwcmagazine. com.br — para um número IP, tornando possível a comunicação pela rede. Para testes mais simples de resolução de nomes, o comando host pode ser utilizado. Por exemplo, traduzir o domínio www.fif org para um número IP: # host www.fsf.org Host www.fsf.org not found: 5(REFUSED)
O teste não foi bem sucedido e a tradução para número IP não aconteceu. Ë possível indicar um servidor DNS específico logo após o nome sendo testado: # host www.fsf.org 208.67.222.222 Using comain server: Mame: 208.67.222.222 Address: 208.61.222.222#53 Alia ses www.fsf.org is an alias for fsf.org . fsf.org has address 140.186.70.59 fsf,org mali is handled by 10 mali.fsf.org . fsf.org mal] is handied by 20 rnx20.gnu.org .
Ao especificar o servidor DNS 208.67.222.222 foi possível traduzir o nome para IR Isso indica que não há servidor DNS especificado no arquivo /etc/resolv.conf ou o servidor indicado no arquivo não está respondendo.
Nome local É possível que a máquina local possua um nome diferente daquele que a identifica na rede. Isso não é um problema, mas é importante que o nome local da máquina reflita um IR local válido geralmente o IP da interface lógica local: 127.0.0.1. Para identificar o nome local da máquina, pode ser usado o comando hostname. O próprio Comando hostname também pode ser usado para alterar temporariamente o nome da máquina local.
184
Tópico 109: Fundamentos de rede
O comando di g (Domain Information Groper) retorna informaçóes mais avançadas para o diagnóstico de problemas em servidores DNS. Se nenhum argumento for utilizado, o comando realizará o teste-padrão no(s) servidor(es) encontrados no arquivo /etc/resol v. conf. Para utilizar um servidor específico, basta indicá-lo após o caractere
(Ø
# dig lnmcombr @208.67.222.222 (<» 010 953-P2 «» lnni.corn.br @208.67.222.222 global options:
printcmd
Got answer: -»H[AOER«- opcode: OUERY. status: NOERROR, Id: 62841 flags: qr rd ra; OUERY: 1, ASWER: 1, AUTHORITY: 0, ADOITIONAL: 0 OUESTJON SECTI0N: :lnm.com.br.
1H
A
IN
A
ANSW[R SECTION: lnm.com.br .
3596
189.14.98138
Ouery time: 146 msec SERVER: 208.67.222.222#53(208.67.222.222) I4HEN: Mon May 18 13:35:27 2009 MSG SIZE rcvd: 44
Essa resposta mostra que o domínio lnm.com.br foi localizado pelo servidor DNS indicado. O trecho QUESTION mostra qual foi o nome pesquisado e o trecho A['JSWER mostra qual foi a resposta do servidor consultado.
Outros problemas de rede Sc todas as configurações de rede estiverem em ordem e ainda assim existircm problemas de conectividade, é possível que as falhas estejam em outros pontos da rede. Um comando importante para analisar o tráfego e a resposta das máquinas remotas é o netstat. Por exemplo, é possível inspecionar todas as conexões do protocolo T ativas: # netstat -tn Conexões Internet Ativas (seta os servidores) 185
Certificação (21-1
Proto Recv-0 Send-0 Endereço Local t
O
Endereço Reaioto
Estado
0192.168,11.1:55488
192.168.11.2:5432
ESTABELECIDA ESTABELECIDA
tep
O
0192.168.11.1:55055
192.168.11.2:5432
t
O
0192.168,11,1:55468
192.168.11.2:5432
ESTABELECIDA
t
O
O 192.168.11,I:45444
192.168.11.2:5432
ESTABELECIDA
t
O
D 192,168.11,1:55453
192.168.11.2:5432
ESTABELECIDA
t
O
0192.168.11.1:55469
192.168.11.2:5432
ESTABELECIDA
t
D
D 192.168.11.1:55402
192.168.11.2:5432
ESTABELECIDA
O
0189.14.98.138:80
201.2839.220:4288
TIME_WAIT
t6
D
0189.14.98.138:80
200.221.9.6:39609
TIME_WAIT
tô
O
0189.14.98.138:80
200,221,9.14:54862
TIME_WAIT
tb
O
0189.14.98.138:80
200.221.9,14:48957
TIME_WAIT
t6
O
D 189.14.98.138:80
201.28,39.220:4706
ESTABELECIDA
(...1 t6
A opção -n determina que sejam mostrados apenas os números IPs e a opção -t determina a configuração apenas das conexões do protocolo T. Para exibir conrinuamente as novas conexões, basta informar a opção -c. O netstat também agrega algumas funções de outros comandos. Com a opção -1, exibe todas as interfaces de rede ativas e estatísticas relacionadas: 1/ netstat -i
*
Tabela de Interfaces do Kernel Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ethO
1500 O
lo
16436 O
1913157
O
322914
00 O
1793478
O
322914
00
O O
O BMRU O LRU
O
Com a opção - r, exibe a tabela de rotas do sistema:
0
# netstat -rn Tabela de Roteamento IP do Kernel Destino
Roteador
MáscaraGen.
192.168.1.0
0.0.0.0
255.255.255,0
Opções O
MSS Janela irtt Iface 00
O ethO
0.0.0.0
192.168.1.254
0.0.0.0
00
00
O ethü
Caso o tráfego de dados mostre que algumas conexões náo respondem, o problema poderá estar no ponto remoto, ou seja, em outra máquina da rede. Para identi186
Tópico 109: Fundamentos de rede
ficar em que ponto as conexões não seguem adiante, existe o comando traceroute. O traceroute mostra as rotas percorridas por um pacote até chegar ao seu destino. Limitando o campo TTL (Time To Live) dos pacotes, ele recebe respostas de erro ICMP TJME_EXCEEDED de cada máquina ao longo do trajeto e exibe onde a comunicação foi interrompida: $
4 traceroute -r 189,14.98,138 traceroute te 189.14.98.138 (189.14.98.138), 30 hops rax, 60 byte packets 1
192.168.1.254 0,448 rns
2
201.83.16.1
3
201.6.0.6
13.107 rns 14.719 "'s
1.041 's
1.062 -is
13.142 i'is
13.156 "is
15.828 'is
15.911 "is
4 201.6.0.92 16.835 as 16.923 as 5 201.6.1.226 6 200.221.30.94
15.872 as
14.719 as
16.630 'us
16.790 os 17.668 'is 17.100 "s
7 200.192.129.129 16.939 -s 27.872 8
16.718 -is
189.14.98.138 28.228 -- s
26.806 'is
«5
27.882 's 27.467 'is
Assim como a maioria dos comandos de rede, a opção -n determina que sejam exibidos apenas os números IP, sem o nomes de domínio. O exemplo mostra todas as máquinas por onde ou o pacote até que chegasse ao destino, o IP 189.14.98.138. O Nesse caso, não houve nenhuma falha no percurso e o teste foi bem sucedido.
109.4 Configurar DNS cliente Peso 2 O serviço responsável por traduzir nomes - como www.linuxmagazine.com.br — pata números IP - como 189.14.98.138 - e vice-versa chama-se DNS (Domain Name Service, ou Serviço de Nomes de Domínio). A configuração incorreta do DNS resulta numa rede praticamente inoperante, pois imensa maioria das máquinas remotas são adas por nome e não diretamente pelo seu número IP.
Configurações A resolução de nomes pode apresentar problemas em várias esferas. Em caso de mal frmncionamento, um dos primeiros arquivos a ser verificado é o fetc/nsswitch. conf. Nele, a entrada hosts determina qual será a ordem na qual a tradução de nomes ocorrerá. 187
Certificação LPI-1
hosts: files dns
a
Via de regra, é primeiro consultado o arquivo /etc/hosts (especificado pelo termo fik4. Em seguida, caso o nome consultado não seja encontrado no arquivo, será consultado um servidor DNS especificado no arquivo /etc/resol v conf (especificado pelo termo uns). O arquivo Jetc/hosts é bastante simples. Nele os números IP são posicionados ao lado dos respectivos nomes: $ cat /etc/hosts 127.0.0.1 189.14.98.138 201.6.144,122 192.168.64.199
localhost lcnsqr themisto office note
Mais de um nome pode ser atribuído a um mesmo IR atuando como um alias para o mesmo IR No arquivo /etc/resol v. conf sáo indicados principalmente os números IP dos servidores DNS, ou seja, os computadores que fazem a tradução de um nome para um número IR A entrada fundamental no /etc/resolv.conf é nameserver, que define o servidor DNS. Outras entradas nameserver podem estar indicadas, para o caso do primeiro servidor DNS estar fora do ar ou muito ocupado: $ cat /etc/resolv.conf search lnm.coni.br nameserver 208.67.222,222 nameserver 208.67.220.220
a
Outra entrada do arquivo /etcfresolv.conf é a entrada search. Ela define um domínio padrão de busca. Assim, quando for consultado um nome sem domínio, automaticamente será incluído o domínio definido na entrada search. Esse recurso é especialmente útil para o domínio da rede local, eliminando a necessidade de especificar o nome de domínio completo dc uma máquina toda vez que seu nome for consultado manualmente. O
188
li)
.2 o o 1 a, >c -
L&J
Cerdfucação LPI-1
40
Questões Tópico 109 1. A rede 192.168.1.0125 permitirá quantos endereços IP válidos para as estações? a. 25 b. 253 c. 128 d. 126
2. Qual é o protocolo utilizado pelo comando ping para verificar a disponibilidade da rede? a. ICMP b. TCI e. UDP d. ECHO_REPLY
3. A porta de rede 443 corresponde a qual serviço IP? a. IMAP b. SMTP e. HTTP cl. HYITPS
4. Qual o arquivo que define os servidores DNS que serão consultados pelo sistema local? a. Ietclhosts b. /etc/resolv.conf e. /etc/nsswitch.conf d. /erc/dns.conf
5. Qual comando pode ser utilizado para exibir as interfaces de rede ativas na máquina? Marque todas as alternativas corretas. a. ifconflg b. netconfig e. interfaces d. netstat
190
Tópico 109: Fundamentos de rede
6. Utilizando o route, qual é o comando completo para definir o IP 192.168.1.250 como rota padrão?
7. O trecho de saída: OJ[STION SECTION: :lnm.corn.br.
1H
A
1H
A
ANSWER S[CTION: lnrn.cr.br .
3596
189.14.98.138
corresponde à execução de qual comando? Dê somente o nome do comando, sem argumentos.
8. Qual comando tem a finalidade de identificar todos os computadores por onde trafegou um pacote de dados? a. ping b. nmap C. traceroute d. route
9. Entre outras finalidades, o arquivo /etclnsswitch.conf destina-se a a. definir a ordem de consulta para conversão de nomes para IPs. b. determinar qual será a rota padrão. c. armazenar os servidores de consulta DNS. d. definir o endereço IP da rede.
10. No arquivo /erc/resolv.conf, a entrada correta para definir o servidor DNS
208.67.222.222 é: a. route 208.67.220.220 b. nameserver 208.67.220.220 c. ip 208.67.220.220 d. dnsserver 208.67.220.220
191
I,
peso tot& do tópico prova 9 :
Tópico 110. Segurança Principais temas abordados: • Localizar brechas de segurança no sistema: • Limitar os recursos disponíveis ao usuário: • Criptografia de dados.
Certificação
LPI-1
110.1 Tarefas istrativas de segurança Peso 3 A segurança do sistema depende de várias tarefas periódicas de verificação. Além de proteger o sistema contra atitudes mal intencionadas, é importante evitar que mesmo eventos não intencionais prejudiquem o funcionamento do sistema.
Verificações de permissão Comandos com permissão SUID e SGJD garantem privilégios especiais a quem os executa. Um comando alterado que contenha essa permissão especial poderá dar o de roor a um usuário comum. Portanto, é importante monitorar quais arquivos detêm essas permissóes, para evitar invasões ou danos ao sistema. O comando fi nd pode ser utilizado para a finalidade de encontrar arquivos SUID e SGID: I/ find / -perin -4000 -or -perin -2000 /bin/su /bin/ping /bin/niount /bin/ping6 /bi nfurnount
As opções -perrn -4000 e - perfil -2000 identificam apenas os arquivos com as permissões SGID e SUID. Vários comandos devem possuir essas permissões especiais, mas a maioria dos comandos não deve. Para facilitar a checagem, é útil gerar uma lista detalhada com o mesmo comando. Essa lista pode ser salva diariamente (provavelmente por um agendamento no crontab) por meio do comando: flnd / \( -perm -4000 -ar -perifi -2000 \) -exec is -1 'II' \; > /var/log/ '-..setuid-$(date
1-%F)
Esse comando gerará um arquivo de nome setuid-ano-mês-dia, que poderá ser comparado ao arquivo do dia anterior por meio do comando diU: # diff /var/log/setuid-2006-05-02 /var/loq/setuid-2006-05-03 2c2 < -rws--x--x 1 root bin 29364 2005-09-07 17:46 /bin/pinq 194
Tópico 110: Segurança
-rws
t
x 1 root bin 29974 2005 09-07 17:46 ib 4 n/p"q
Essa saída mostra que o arquivo /bin/ping mudou de tamanho em relação ao registro anterior. Supóe-se que tenha sido substituído por um programa malicioso, devendo ser excluído e reinstalado adequadamente. L importante rastrear os logs do sistema atrás de possíveis origens dessa alteração. Outras buscas por brechas no sistema podem ser realizadas pelos seguintes comandos: # flnd / -path /dev -prune -perr -2 -not -type 1
Esse comando procura arquivos com permissão de escrita para todos os usuários, com exceção do diretório /dev. Arquivos de configuração do sistema poderiam ser alterados com o intuito de viabilizar invasões ou danos ao sistema. Para procurar arquivos sem dono ou sem grupo, que sugerem que o sistema tenha sido invadido, o comando apropriado seria: # find / \( -no -o -nogroup \)
e
Após a identificação, esses arquivos - salvo raras exceções - devem ser excluídos.
Senhas de usuários Senhas muito antigas podem ser uma brecha de segurança à medida que usuários costumam compartilhar suas senhas. Além disso, senhas muito simples costumam ser a maior porta de entrada para invasões. As definições sobre a vida útil de senhas e aspectos relacionados são armazenadas no arquivo /etc/shadow (quando usado o sistema desenhas shadow, padrão na maioria dos casos). Cada linha corresponde a uma conta de usuário, em campos separados por ":", representando: 1. Nome de o; 2. Senha criptografada; 3. Dias decorridos entre 1" de janeiro de 1970 e a última alteração da senha; 4. Número de dias até que a senha deva ser alterada; 5. Número de dias após os quais a senha deve ser alterada; 6. Número de dias para advertir o usuário sobre a senha a expirar; 7. Número de dias, depois de a senha expirar, até que a conta seja bloqueada para uso; 195
Certificação LPI-1
S. Dias decorridos entre 1 de janeiro de 1970 e a data em que a conta foi bloqueada; 9. Campo reservado. Além de alterar senhas, o comando wd também pode alterar essas definições, utilizando uma ou mais das opções: • -x dias: número máximo de dias que a senha permanecerá válida; • -n dias: mínimo de dias até que o usuário possa trocar uma senha modificada anteriormente; • -w dias: dias anteriores ao fim da validade da senha em que será emitido um aviso a respeito; • -i dias: inatividade ou tolerância de dias após a senha ter expirado até que a conta seja bloqueada. Por exemplo, para alterar as validades de senha para a conta atatiba:
# wd -x 30 -n 1 -w 7 i 7 ataliba Outra opção importante do wd com finalidade semelhante é a -e, que provoca a expiração imediata da senha, e a -d, que apaga a senha para a conta especificada. Quando a opção -q é usada, a senha do grupo especificado é alterada. Seguido de -r, remove a senha e de -k restringe o o a todos usuários. Essa tarefa só pode ser realizada pelo usuário root ou pelo do grupo. Uma conta pode ser bloqueada wd -1 e liberada com wd -u. O estado atual da conta pode ser verificado com wd -5:
II
wd
-s
ataliba
ataliba P 05/03/2006 13077
Essa saída representa: • ataliba: referente à conta; • P: um P significa que o usuário possui uma senha utilizável; NP significa que ele não possui qualquer senha; L representa uma conta bloqueada; • 0510312006: data da última mudança de senha; • 1: limite mínimo de dias da senha; • 30: limite máximo de dias da senha; • 7: dias de aviso; • 7: limite de dias de inatividade, após a senha ter expirado, até que a conta seja bloqueada. 196
Tópico 110: Segurança
Os atributos da senha e validade de conta também podem ser alterados com um comando específico, chamado chage. Seus principais argumentos são: • -m: mínimo de dias até que o usuário possa trocar uma senha modificada; • -M: número máximo de dias em que a senha permanecerá válida; • - d: número de dias decorridos, em relação a 01/01/1 970, em que a senha foi mudada. Também pode ser expresso no formato de data local (dia/mês/ano); • E: número de dias decorridos, em relação a 0110111970, a partir dos quais a conta não estará mais disponível. Também pode ser expresso no formato de data local (dia/mês/ano); • -1: tolerância de dias após a senha ter expirado até que a conta seja bloqueada; • - W: dias anteriores ao fim da validade da senha nos quais será emitido um aviso a respeito da data de expiração. Por exemplo, para determinar a data de bloqueio de uma conta, o comando adequado é: # chage -[04/05/2006 ataliba
4
O uso do chage é ao usuário root. Porém, usuários comuns podem usar o chage com a opção -1 para verificar as definições de suas respectivas contas:
4
$chage -lataliba Maxiipum:
30
Miniínum:
1
Warning:
7
Inactive:
1
Last Change:
Mal 03, 2006
Expires:
Jun 02, 2006
Inactive: Jun 03, 2006 Expires:
Ábr 05, 2006
Tanto o comando wd quanto o comando chage entram em modo de configuração interativa se não forem adas as opções. O usuário assumido será sempre o atual, caso um usuário não seja especificado como argumento. O comando mod agrega muitas dessas funções de alteração de conta de usuário. Suas principais opções são: 197
Certificação LPI-1
• -c descri ção: descrição do usuário; • -d diretório: altera diretório do usuário. Como argumento -m, move o conteúdo do diretório atual para o novo;
• -e vai or: prazo de validade da conta, especificado no formato ddlmm/aaaa; • -f valor: número de dias, ap6s a senha ter expirado, até que a conta seja bloqueada. Um valor -1 cancela essa funçáo; • -g grupo: grupo efetivo do usuário; •
G grupol, grupo2: grupos adicionais para o usuário;
• -i nome: nome de do usuário; - p senha: senha; • -u UID: número de identificação (UID) do usuário;
•
• -s she 1: shell padrão do usuário;
• - L: b!oqueia a conta do usuário, colocando um sina] 1 na frente da senha criptografada. Uma alternativa é substituir o shell padrão do usuário por um scripr ou programa que informe as razões do bloqueio; • -O: desbloqueia a conta do usuário, retirando o sinal Ida frente da senha criptografada. Apesar de a maioria dessas configurações poder ser alterada diretamente nos arquivos /etc/wd e /etc/shadow, é recomendada a utilização dos comandos apropriados para evitar configurações incorretas ou corrupção dos arquivos.
o como root Para um usuário comum entrar na conta de roor, é usado o comando su. Será necessário informar a senha do usuário root para efetuar o . Usando apenas su sem argumentos, a nova sessão herdará as configurações de ambiente da sessão anterior, como variáveis de ambiente e de sessão. Se usado na forma su -1 ou su -, uma sessão totalmente distinta será criada, como a sessão criada a partir de um tradicional. Para que um usuário possa realizar tarefas de root, porém sem que tenha conhecimento da senha da conta root, existe o comando sudo. O comando sudo permite a um usuário ou a um grupo de usuários realizar tarefas antes reservadas somente ao usuário root. Via de regra, esse privilégio é cedido somente aos usuários que pertencem a um grupo istrativo, como o grupo
ou o grupo sido. Por exemplo, um
usuário de grupo istrativo pode manipular a tabela de partiçóes do disco /devf sda invocando o fdisk com o sudo:
$ sudo fdisk fdev/sda 198
O
tópico 110: Segurança
Normalmente é solicitada a senha do próprio usuário para executar a ação solicitada. As permissóes de uso do sudo são determinadas no arquivo /etc/sudoers. É neste arquivo que os usuários ou grupos de usuários com permissão de utilizar o comando sudo são especificados.
Limitação de recursos Usuários comuns podem provocar lentidão e até panes no sistema se utilizarem exageradamente os recursos da máquina. Semelhante ao controle de espaço em disco exercido com o uso de cotas, o uso da memória, a criação de arquivos e o número de processos também podem ser limitados. Para esse fim é utilizado o comando ulirnit. O ul imit é um comando que age no âmbito de uma sessão do Bash. Logo, os limites sáo válidos para a sessão do shell atual, assim como para sessões e processos disparados a partir dela. Geralmente, os limites são estabelecidos nos arquivos de configuração de sessão. Para cada recurso, pode ser determinado um limite sofre um limite harch especificados pelas opções -s e -H, respectivamente. O limite hard representa o valor máximo e o limite soE representa o valor de alerta, até que o limite hard seja alcançado. Se não forem especificados s ou -H, o mesmo limite indicado será definido para ambos os fatores. Opções mais comuns de ulimir sáo: • -a: mostra os limites atuais; • -f: especifica o número máximo de arquivos que poderão ser na sessão do shell; • -u: o número máximo de processos disponíveis ao usuário; • -v: o montante máximo de memória virtual disponível ao shell. Portanto, para estabelecer em 100 o limite máximo de processos: # uliniit -Su 100
Para permitir que o usuário acresça esse limite até o máximo de 200: # uitmit -Hu 203
Se nenhuma opção for fornecida, o recurso alterado por padrão será -f (limite de arquivos criados). Sem um valor de limite, o ulimit exibirá o limite soft atual para a opção fornecida. 199
Certificação LPI-1
Verificando portas abertas no sistema O programa nmap é utilizado para rastrear portas de serviços ativas. Seu uso mais simples é sem nenhum argumento, especificando apenas um nome ou endereço de máquina a ser rastreada: # nmap 1ocahost Starting naiap 3.93 ( http://www.insecure.org/nmapl ) at 2006-05-08 01:39 BRT lnterestínq ports on localhost (1270,0.1): (The 1666 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 631/tep open ipp 60001t open Xli
A saída mostra que as portas 631 /t (Serviço de impressão do CUPS) e 6000It (servidor de janelas X) estão abertas a conexões. Portanto, é fundamental estabelecer restriçóes ao seu uso, por meio da configuração de twrapper ou da configuração do próprio serviço. O nrnap possui muitas opções dc rastreamento. É possível, por exemplo, fazer um rastrearnento para tentar descobrir as portas íveis de conexão e qual é o sistema operacional do alvo: # nrnap -0192.168.1.250 Startinq Nmap 4.76 ( http:/Jnrnap.org ) at 2009-05-18 17:32 BRT Interestinq ports on europa.intra.linuxnewmedia.coín.br (192.168.1.250): Not shown: 990 closed ports PORT STATE S[RVLC[ 22It
open ssh
53/t
open domam
80/t
open http
11i/t open rpcbind 139/t open netbics-ssn 3891t open idap 445/t open microsoft-ds 5181t open afp 631/t open ipp 20491t open nfs MAC Address: AC:DE:48:00:00:01 (Private) 200
Tópico 110: Segurança
Úevice type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.9 - 2.626 Network Distance: 1 hop
Para identificar quais portas estão abertas no sistema tocai, também pode ser usado o comando netstat:
II
netstat -tnl
Conexões Internet Ativas (sem os servidores) t
Prato Recv-O Send-O Endereço Local O
00.0.0.0:53
Endereço Ráoto O,O,O.O : *
t
O
00.0.0.0:22
0.0,13.0 : *
OUÇA
t
O
O 127,0,0.1:631
0.00.0:
OUÇA
t6
O
O :::139
:::k
OUÇA OUÇA OUÇA OUÇA
t6
O
O :::53
:::*
t6
O
O :::22
:::*
t6
O
O :::445
:::*
Estada OUÇA
A principal opção no exemplo foi -1, que determina a exibição das portas esperando por conexões no sistema local. No exemplo, é possível observar algumas portas importantes que estão abertas, como o serviço DNS (porta 53) e SSH (porta 22). Para identificar quais programas e usuário estão utilizando determinada porta de serviço, é indicado o comando 1 sof:
il
isaf -i :22 -n
COMMAND ssh
PID 8871 root
FO
TYPE DEVICE SUE NODE NAI'IE
3u IPv4 4351024
T 192,168.1.109:57914-
'-.>189.14,98.138:ssh (ESTABLISHED) sshd
20712 root
3u lPv4 4174130
sshd
20712 root
4u lPv6 4174132
T *ssh (LISTEN) T *:ssh (LISTEN)
ssh
26047 root
3u IPv4 4263929
T 192.168,1.109:46835-
'-.)192.168.1.25O:ssh (ESTASLISHED)
A opção -i indica tratar-se de uma inspeção de rede, cuja sintaxe é isof -i @máquina porta. Se o nome ou o IP da máquina for omitido, é assumida ser a máquina local. O exemplo mostra quais programas e usuários estão utilizando a porta 22 (SSH), seja como porta de entrada ou saída. Outras informações úteis também são 201
Certilicação 111-1
exibidas, como PID do processo e as máquinas envolvidas. De posse dessas informaO çóes, um processo suspeito pode eventualmente ser finalizado.
110.2 Segurança do host Peso 3
Mesmo que o computador local não seja utilizado como servidor, diversas portas de serviço podem estar abertas sem necessidade, o que pode ser uma grandc brecha de segurança. Algumas práticas podem evitar que uma máquina esteja demasiado exposta sem necessidade.
Senhas shadow Antes mesmo de verificar brechas que podem resultar numa invasão é fundamental se certificar de que nenhuma senha está exposta dentro do sistema local. O uso do sistema de senhas sbadcw proporciona maior segurança, visto que o arquivo em que as senhas são armazenadas - / etc/shadow - não oferece leitura para usuários comuns ('rr r -') e estão sob forte criptografia. O uso de senhas shadow é verificado pela letra x no campo dc senha do usuário em /etc/wd. Caso o sistema não use senhas shadow, é necessário instalar o pacote shadow suite - já presente na grande maioria das distribuições - e executar o comando pwconv para converter as senhas antigas para o novo formato.
Desativando serviços de rede Serviços de rede que não estão sendo utilizados representam um risco adicional de invasões que pode ser evitado. Uma das maneiras de desativar servidores desnccessários é simplesmente tirar a permissão de execuçáo do script que os inicia. Antes de fazê-lo, o serviço deve ser terminado e depois executado o comando chmod -x script. Para serviços disparados pelo servidor ineteh basta comentar (acrescentar o caractere a linha referente ao serviço em /etc/inetd.conf. Por exemplo, para desativar o servidor remetem /etc/inetd.conf:
II
telnet stream t
nowait root
/usr/sbin/td in.telnetd
De forma semelhante, os serviços controlados pelo servidor xinetd podem ser desativados no arquivo de configuração /etcfxinetd.conf, com a opçáo disable correspondente ao serviço. 202
Tópico 110: Segurança
Øinetd exinetd Os programas servidores inetd e xinetd agem como intermediários para outros serviços. Para que alguns serviços pouco utilizados não fiquem o tempo todo ativos aguardando uma conexão, apenas o inetd ou o xinetd ficam aguardando nas respectivas portas e disparam o serviço sob demanda. Os arquivos de configuração de ambos inetd e xinetd são /etc/i netd . conf e /etclxi netd .conf, mas podem estar fragmentados em /etc/inetd.d/ e /etc/xinetd.d/*, respectivamente.
Para desativar o servidor FTP em /etc/xinetd.conf, a entrada correspondente no arquivo seria: ftpl disable = yes strear socket_type orotoco] = t walt no = root server = (usrfsbfn/vstpd
$
Via de regra, os serviços em execução são interrompidos por meio do próprio script que os inicia, usando como argumento o termo stop. Por exemplo, /etcfinit.d/sanba stop. Para simplesmente impedir que um usuário comum seja capaz de fizer na máquina, pode ser usado o bloqueio imposto pelo arquivo /etc/nologi n. Se o arquivo /etc/no existir, apenas o usuário root poderá entrar no sistema. Os demais usuários serão bloqueados e será exibido o conteúdo de fetc/nol 091 n.
T wrappers A maior parte do programas servidores possui e à biblioteca Iibwrap e podem utilizar o mecanismo chamado T wrappers para controlar o o aos serviços disponíveis localmente. Esse controle é estabelecido através de regras criadas nos arquivos /etcfhosts.allow e /etc/hosts.deny. O arquivo /etc/hosts.allow contém as regras para os endereços remotos que poderão ar a máquina local. Se um endereço corresponder a uma regra em /etc/ hosts.allow, o o será liberado e o arquivo /etc/hosts.deny não será consultado. O arquivo /etc/hosts.deny contém as regras para os endereços remotos que não poderão ar a máquina local. Se um endereço não constar em Ietc/hosts.allow nem em /etc)hosts .deny, ele será liberado. 203
Certificação LPI-1
Cada regra é escrita em uma linha, com o mesmo formato - serviço:host:coniando - para /etc/hosts.aiiow e /etc/hosts.deny, em que: •serviço é um ou mais nomes de daemons de serviço, ou instruções especiais; • host é um ou mais endereços, ou instruções especiais; • comando é um comando opcional a ser executado no caso de cumprimento da regra. O campo host pode pode ser um domínio, IP de rede ou IP incompleto. Caracteres curinga como ?e * também podem ser utilizados. No campo serviço e host também podem ser utilizadas as instruções especiais ALL, LOCAL, KNOW, UNKNOWN e PARANOID. O operador EXCEPT exdui uni endereço ou grupo de endereços de determinada condição. Por exemplo, uma regra do arquivo /etc/hosts . ali ow para liberar todos os serviços a todos os endereços da rede 192.168.10, com exceção do 192.168.1.20. ALL: 192,168.1.* EXC[PT 192.168.1.20
a
Complementarmente, regra de /etc/hosts .deny para bloquear todos os serviços a todo endereço que náo constar em regra do arquivo Jetc /hosts . ai iow: ALL: ALL
o
A documentação completa para a criação de regras pode ser encontrada na página manual hostsaccess(5). O
40
110.3 Proteção de dados com criptografia Peso 3
A preservação da segurança só está completa quando sáo utilizadas ferramentas de criptografia, seja para proteger o conteúdo de dados, seja para garantir a autenticidade destes. Sobretudo em ambientes em rede, o uso de fortes sistemas de criptografia é fundamental.
OpenSSH Tratando-se de o remoto, a ferramenta essencial é o pacote OpenSSH. O OpenSSH é o substituto para ferramentas de o remoto ultraadas, como telnet, riogin, rsh e r. 204
Tópico 110: Segurança
O programa cliente do pacote ssh é o comando ssh. As configurações globais para o cliente são feitas no arquivo /etc/ssh/ssh_eonfig. A utilização do ssh é muito simples, bastando fornecer o nome de usuário e o endereço de destino:
$ ssh uciaro®192.168. 1. Esse comando abrirá uma sessão do shell com o computador de endereço 192.168.1.1, através de uma conexão segura. Será usado o usuário luciano e todas as configurações de sessão correspondentes a tal usuário. Tanto a senha do usuário quanto os dados transmitidos estarão protegidos por forte criptografia. Mesmo que eventualmente sejam interceptados, é praticamente impossível que sejam decodificados.
Chaves criptográficas As chaves criptogrificas para o computador são geradas automaticamente peio servidor SSH. Os arquivos para armazenar a chave privada e a chave pública variam de acordo com o tipo de criptografia utilizado, como mostrado na tabela Chaves do computador.
Na primeira vez que o cliente ssh conecta-se a um computador remoto, o usuário é questionado sobre aceitar a chave pública do computador remoto. Se for aceita, ela será armazenada em -/.ssh/know_hosts e garantirá a conflabilidade da conexão entre os dois computadores. O conteúdo desse arquivo pode ser incluído no arquivo /etc/ ssh_know_hosts para que a chave e a valer para todos os usuários. Ainda assim, será necessário que o usuário forneça sua senha ao conectar-se no destino. Dessa forma, se outro computador assumir o nome ou o IP da máquina remota, o cliente SSH informará o usuário que a identificação do servidor mudou e não estabelecerá a conexáo. Nesse caso, só será possível fazer o via SSH se o usuário apagar a chave pública original do servidor armazenada anteriormente no arquivo -1. ssh/know_hosts.
Autenticação por chave Além das chaves do próprio computador, cada usuário pode possuir sua chave pública e privada, utilizada para garantir sua autenticidade.
Chaves do computador RSA aSA
fetc/ssh/ssh host rsa key jt isa
/etc/ssh/ssh host_rsa key.pub
ty
205
Certificação LPI-1
Dessa forma, é possível fazer com que o o via SSH seja feito automaticamente, sem necessidade de fornecer a senha cm todo . Isso é especialmente útil quando um computador remoto é ado frequentemente. Antes dc conseguir fazer o sem senha, é necessário que o usuário crie a chave pública e a chave primária. A chave pública do usuário deverá ser incluída no arquivo authorized_keys, criado no computador de destino. Esse arquivo pode contet uma ou mais chaves que foram criadas em máquinas utilizadas corno origem de o. As chaves são criadas com o comando ssh-keygen. As chaves criptográficas podem utilizar diferentes tipos de formatos, sendo os mais populares o DSJ4 e o RSÀ. Para gerar uma chave DSA de 1024 bits, utiliza-se: $ ssh-keygen -t dsa -b 1024
Chaves RSA am um tamanho em birs maior, como 4096:
a
$ ssh-keyqen -t rsa -b 4096
Um tamanho maior em bits torna ainda mais difícil a quebra da criptografia. As chaves podem ser criadas com ou sem senha, as chamadas phrases. Chaves protegidas com senhas são mais seguras, pois toda vez que forem utilizadas será necessário informar a senha respectiva da chave. O comando ssh-keygen criará as chaves no diretório -/ . sshl na máquina de origem para o usuário atual. A tabela Chaves do usuário mostra quais sáo os arquivos de chave do usuário.
Chaves do usuário ASA
-/ .ssh/idjsa
-/ .ssIi/itLrsa.pub
OSA
-1. ssh/iddsa
-/
. ssh/id_dsa pub
O conteúdo da chave pública poderá então ser incluído em -f . sshfauthori zed_keys para o usuário específico no computador de destino. Supondo que o computador de destino tenha IP 192.168.1.1 e uma conta para o usuário luciano, a chave pública do formato DSA pode ser copiada com o comando: $ cat -/.ssh/id_dsa.pub 1 ssh luciano@192,168.1.1 'cat » -/.ssh/authorized_keys 206
Tópico 110: Segurança
O conteúdo do arquivo -!. ssh/i d_dsa . pub será direcionado para o comando ssh. O ssh redirecionará o conteúdo para o comando cat na máquina remota, que por sua vez induirá o conteúdo no arquivo -!.ssh/authorized_keys da conta na máquina remota. Enviar a chave por uma conexão segura é fundamental para que não seja interceptada. Por questão de segurança, é importante que todos os arquivos contendo chaves em !etc!sshl e —1. ssh/ tenham permissão 600— escrita e leitura só para o dono do arquivo. Se foi informada uma phrase durante a criação da chave, será perdida toda a conveniência de realizar o sem senha, pois será necessário informar a senha da chave toda vez que esta for utilizada. Contudo, é possível evitar a digitação da phrase a todo momento se for utilizado o comando sshagent. O ssh-aqent atua como uma espécie de chaveiro. Ele armazena a autorização e libera o usuário da necessidade de digitar a phrase novamente durante a mesma sessão. Para utilizá-lo, basta executar o comando ssh-agent: $ ssh-agent
0
SSH_AUTH_SOCK=/trnp/ssh-Gnbn'W14709/aqent.14709; export SSH_AUTH_SOCK; SSH_AG[NT_P1014710: expert SSH_AGENJID: echo Agent pid 14110:
O ssh-agent irá para segundo plano e exibirá as variáveis de ambiente que necessitam ser declaradas. Somente se essas variáveis estiverem íveis na sessão é que a autorização automática do ssh-agent poderá ser utilizada. Essas variáveis serão usadas pelos outros programas para fazer a autenticação via ssh-dgent. Com o ssh-agent ativo e as variáveis de ambiente declaradas, é utilizado o comando ssh-add para incluir a chave do usuário no ssh-agent: $ ssh-add
0
Enter phrase for /home/luciano/.ssh!id_rsa: Identity added: !hote/luciano!.ssh/id_rsa (/home/luciano/.ssh/id_rsa)
A phrase será solicitada apenas uma vez, quando a chave do usuário for incluída no ssh-agent. Feito isso, não será necessário informar a phrase nas sessões em que as variáveis exportadas estiverem íveis.
Túneis criptografados Além de abrir sessões remotas do shell, o SSH pode ser utilizado como veículo para outras conex6es. Essa técnica é conhecida como túnel de porta ou simplesmentc túnel SSH. 207
Certificação
LPI-1
Após criar um túnel criptografado, outro programa poderá comunicar-se com a máquina remota em questão através desse túnel, de maneira que todos os dados estarão protegidos ao longo da conexão. Esse recurso é especialmente útil para programas que não possuem a Funcionalidade de criptografia de dados. É o caso dos clientes e servidores VNC mais simples. Por padrão, o VNC utiliza a porta 5900 e envia os dados sem criptografia. Uma maneira de contornar esse inconveniente é criar um túnel SSH entre a porta 5900 do computador local até a porta 5900 do computador remoto. Dessa forma, bastará apontar o cliente VNC para a porta 5900 do computador local e a conexão será automaticamente direcionada através do túnel seguro para a porta 5900 do computador remoto. Para criar o túnel seguro, é utilizado o próprio comando ssh com a opção L porta local :localhost:porta reiïiota, em que porta local especifica qual porta na máquina local será a entrada do túnel, localhost nesse caso diz respeito à máquina de destino e porta remota é a porta de saída do túnel. Por exemplo, para criar um túnel para
[email protected]
A opção -f indica que o comando deve ser executado cm segundo plano. A opção -N determina que não deve ser aberta uma sessão do shell na máquina remota. Depois de criado o túnel, bastará apontar o cliente VNC para a máquina local: $ vncviewer localhost:0
A indicação :0 determina que o vncviewer utilize sua primeira porta padrão, ou seja, a porta 5900. Toda a transmissão enviada e recebida para a máquina remota acontecerá através do túnel criptografado.
X remoto via SSH Técnica semelhante aos túneis SSH é abrir a janela de uma aplicação remota por meio dc uma conexão SSH, usando a opção -X. Por exemplo, para exibir localmente o programa VinualBox presente na máquina remota: $ ssh
-x
[email protected]
E para executar o programa desejado na máquina remota: $VirtualBox 208
0
Tópico 110: Segurança
O processo pode ser simplificado em um só comando: $ ssh X 1uciano192.168.1.1 Virtua1Box"
O comando ado como argumento final para o ssh será executado na máquina remota - opcionalmente o comando ssh também pode enviar os dados recebidos pela sua entrada padrão para a entrada padrão do comando remoto. Nesse caso, será exibida na máquina local a tela do programa VirtualBox em execução na máquina remota.
GnuPG O pacote GnuPG é a mais popular e completa implementação de código aberto do padrão OpenPGP. Com o GnuPG é possível e codificar arquivos ou mensagens para garantir a autenticidade e segurança dos mesmos. Isso é feito baseado no conceito de chave pública e secreta, onde a chave secreta é de conhecimento apenas de seu proprietário e a respectiva chave pública pode ser utilizada pelas demais pessoas para garantir a autenticidade deste proprietário. O comando gpg agrega todas as funções do GnuPG. Ele é usado para gerar as chaves, exportá-las, importá-las, e codificar dados.
Criação das chaves O primeiro o para a utilização do GnuPG é a criação do par chave secreta e chave pública, realizada com a opção - - gen - key: $ gpg --gen-key gpq (GnuPG) 1.4.9: Copyright (O 2008 Free Software Foundation, Inc. This js free software: you are free te chanqe and redistribute it. There is NO WARRANTY, to the extent permitted by law. Por favor selecione o tipo de chave desejado: (1)USA e [igamal (padrão) (2)USA (apenas ) (5) RSA (apenas ) Sua opçio?
Recomenda-se a utilização da chave padrão DSA e Elgamah pois é mais versátil que as outras opções. Em seguida, é escolhido o tamanho da chave: par de chaves OSA vai ter 1024 bits.
1 209
Certificação 191-1
L.
ELG-E chaves podem ter o seu comprimento entre 1024 e 4096 bits, Que tamanho de chave voc@ quer? (2048) O tamanho sugerido é adequado, mas chaves maiores tornam praticamente impossível a quebra da criptografia. A chave pode ter um prazo de validade ou jamais expirar:
Por favor especifique por quanto tempo a chave deve ser valida.
4
O - chave no expira = chave expira em n dias = chave expira em n semanas
m = chave expira em n meses - chave expira em n anos A chave é valida por? (0) Normalmente não é necessário definir um prazo de validade, salvo quando é criada uma chave para alguma necessidade específica. Nas etapas finais será necessário informar alguns dados pessoais - nome, email e descrição - e a pbrase, que é a senha com a qual as chaves serão geradas. A configuração do GnuPG para o usuário e suas chaves ficam no diretório
=1. qnupq/. pub
Para listar as chaves presentes, é usado o comando gpq --1 i st - keys:
10240/F44AD97[ 2009-05-20
uid sub
Luciano Siqueira (isiqueira)
40969/8E19790C 2009-05-20
O código F44AD97E na linha pub é a identificação da chave. Essa informação será usada para identificá-la quando existe mais de uma chave no arquivo de chaveiro
-1 .gnupg/pubring .gpg. Exportar uma chave Para que outra pessoa possa verificar os dados assinados, será necessário que tenha o à chave pública do usuário em questão. Por isso a chave pública deve ser exportada, o que é feito com o comando gpg - - export:
$ gpq --output Isiqueira.gpg --export isiqueira
4
A opção --output indica o arquivo em que a chave pública será gravada. O argumento da opção - - export determina qual chave pública deve ser exportada. Para 210
Tópico 110: Segurança
a identificação da chave pode ser usado qualquer campo das informações pessoais informadas na criação da chave. A chave exportada estará no formato binário. Para gerar uma chave como texto, útil para enviar no corpo de emails, basta acrescentar a opção -armar: $ gpg
-arror --output 1squeira.gp9.asc --export isiqueira
Apesar de a chave pública exportada poder ser enviada diretamente para quem dela fará uso, é mais cômodo exportá-la para um servidor de chaves, de forma que qualquer pessoa de posse da identificação da chave poderá copiá-la diretamente do servidor. A exportação para um servidor remoto é feita com a opção --send-keys: $ gpg - -send-keys F44A097E gpq: sen&nq key F44A097E to hkp server keys.qnupg.net O argumento F44AD97E é a identificação da chave. Foi utilizado o servidor de chaves keys - gnupg - net, que é o servidor padrão do GnuPG. O servidor de chaves é especificado no arquivo —/ - gnupg/gpg - conf. Para alterar o servidor, edite a entrada keyserver nesse arquivo.
Revogar uma chave Caso a chave privada tenha sido comprometida (tenha sido copiada por terceiros, por exemplo), é possível gerar uma chave de revogação. Essa chave de revogação, uma vez enviada para o servidor de chaves, garantirá a invalidação da chave comprometida. Para fazer a revogação, gere uma chave com o comando qpg --qen-revoke, indicando a identificação da chave: $ qpg --gen-revoke F44D97[ Após escolher o motivo da revogação, a chave será gerada: ----BEGIN POP PUBLIC KEY BLOCK ----Version: GnuPG vl,4.12 (GNU/Linux) Coent: A revocation certficate should follow IG[[IBEIAAkFAk+nlrrcCHO'lACgkOo3Z8liP991 sYAEAr2t0307cukuv1RDKzIk lzB/EH8ZLzE/o9WjN4qUlwBAJOzgUqVOFVqnbcG/HvaI r5odspwvinnHgfvnwxK u52B =Dxht -- --E-N3 PGP PUBLIC K[Y BLOCK.....
211
Certificação LPI-1
Este conteúdo deve ser salvo num arquivo. Assim que a importação da revogação for realizada, a chave provada estará revogada:
a
$ gpg -irnport chave_revoqada.txt
Se a chave privada estava hospedada remotamente, basta repetir o envio para revogar a chave no servidor de chaves: 1 gpg --send-keys
Depois de revogada, uma chave não poderá ser revalidada.
Importar uma chave Antes de verificar a autenticidade de determinado arquivo é necessário importar sua respectiva chave. A importação de chave a partir de uma arquivo é feita com a opção -- import:
0
$ gpg --import phess.gpg gpg: key 8A98A584: public key "Pablo Nehab Hess (phess)
" imported gpg: Número total processado: 1 gpg:
importados: 1
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpq: depth: O valid:
2
signed:
O trust: O, Oq,
On, Um, Of, 2u
Também é possível importar a chave diretamente de um servidor de chaves, caso a chave pública em questão esteja presente no servidor configurado no arquivo —/.gnupg/gpg.conf: $ gpg
-
(Ø
-recv-keys 8A98A584
gpg: requesting key 8A98A584 from hkp server keys.gnupg.net gpg: key 8A98A584: public key "Pablo Nehab Hess (phess)
2 signed:
gpg: Número total processado: 1 ypg:
212
importados: 1
O trust: 0, Oq, On, Um. Of, 2u
Tópico 110: Segurança
A opção - - recv - keys recebe como argumento a identificaçáo da chave a ser importada. Realizada a importação, a chave ficará armazenada no chaveiro —1 .gnupg/pubri ng .gpg: $ qpg --list-keys /home/lucianol .qnupg/pubringgpg pub uid
1024D/F44A097E 2009-05-20 Luciano Siqueira (Isiqueira)
sub
40969/8[19790C 2009-05-20
pub
1024D18A98A584 2008-01-29 [expires: 2018-01-261
uid sub
Pablo Nehab Hess (phess)
40969/F503C928 2008-01-29 [expires: 2018-01-261
Após importada, uma chave pública deve ser assinada, de modo a garantir sua autenticidade: $ gpg --siqn-key 8A98A584
Este não é um procedimento obrigatório, mas não fazê-lo causará a exibição de uma mensagem de alerta toda vez que a chave em questão for utilizada. Ë recomendável enviar a chave assinada de volta para o servidor. A chave pública ganha mais credibilidade na medida em que mais usuários a assinam e devolvem ao servidor.
Assinando um arquivo A forma mais comum de utilizar o GnuPG é o arquivo. Semelhante a uma tradicional, o usuário que receber um documento assinado pelo GnuPG poderá certificar-se sobre a identidade do autor. Qualquer tipo de arquivo pode ser assinado pelo comando gpg, com a opção - - si gn: $ qpg --output documento.txt.gpg - -sign documentoJxt
L
Esse comando á o arquivo documento .txt e criará a cópia assinada no arquivo docuniento.txt.gpg. Este arquivo poderá ser enviado para outra pessoa que, de posse
da chave pública do autor da , poderá certificar-se da autoria do arquivo utilizando a opção - - decrypt $ qpg --output documento.txt --decrypt documentoJxLgpg 213
Certificação LPI-1
Será criado o arquivo docurnento.txt a partir do arquivo assinado documento.txt.gpg. Se o arquivo corresponder à ura do autor, será exibida a mensagem de sucesso: gpg: feita Cua 20 Mal 2009 15:50:55 BRT usando DSA chave ID 8À98A584 gpg: checando o trustdb gpg: 3 parcial(is) necessária(s), 1 completa(s) necessária(s), modelo de confiança PGP 1 assinadas: 3 confiança: 0, Oq, On. Om, Of, lu gpg: profundidade: O válidas: 3 assinadas: O confiança: 3 - . Oq, On. Om, Of. Ou qpq: profundidade: 1 válidas: gpg: próxima checagem de banco de dados de confiabilidade em 201801-26 gpg: correta de "Pablo Nehab Hess (phess)
" Mesmo que a não seja autêntica, o arquivo será extraído e poderá ser hdo. Apenas será informado que a não é válida. Já para proteger o conteúdo de um arquivo contra abertura não autorizada, este deve ser criptografado.
Criptografando um arquivo A proteção criptográfica do conteúdo de um arquivo é feita utilizando a chave pública de quem receberá o arquivo. Dessa forma, somente o próprio destinatário - de posse de sua chave secreta - será capaz de descriptografar. A opção para criptografar um arquivo é - -encrypt. A opção - - reci p1 ent indica de qual usuário será usada a chave pública: $ gpg --output documento.txt.gpq --encrypt --recipient phess documento.txt
3
Para a opção - - recipient pode ser indicado qualquer campo de identificação da chave pública desejada. O resultado do comando mostrado será a criação do arquivo criptografado documento.txt.qpg a partir do arquivo documento.txt, arquivo que poderá ser aberto exclusivamenre pelo dono da chave pública - que consequentementc possui a chave secreta. Já no destino, a opção - -decrypt é utilizada para extrair o arquivo criptografado: $ gpg --output documento.txt --decrypt documento.txt.gpq Será feita a verificação de correspondência entre o arquivo criptografado com a chave pública e a chave secreta local. Se a verificação for bem sucedida, bastará ao usuário O fornecer sua phrase e terá criado o arquivo com conteúdo descriptografado.
214
L
Exercícios
Certificação LPI-1
0
, Questões Tópico 110 comando um usuário comwn pode utilizar para realizar tarefas reservadas ao usuário root? a. sudo b. export C. root d. exec
1. Qual
2. O comando ulimit pode ser usado para limitar a. o número dc contas de usuário. b. os recursos disponíveis a um usuário. c. a quantidade de memória RAM do sistema. d. o número de conexóes UDP.
3. Uma das principais finalidades do comando tas na máquina local ou em uma máquina remota.
é identificar as portas aber-
4. A finalidade do comando lsof-i :5432 é a. exibir uma sequência retroativa dc números. b. localizar um arquivo cujo UID é 5432. c. verificar se a porta 5432 está aberta. d. exibir detalhes sobre o processo utilizando a porta 5432.
5. Como um serviço controlado pelo inetd pode ser desativado em seu arquivo de configuração? a. Desinstalando o inetd. b. Alternando para nível de execução 1. c. Comentando com 4 a linha correspondente ao serviço. cl. Definindo a instrução disable = yes para o serviço.
216
Tópico 110: Segurança
6. Quando um endereço IP corresponde a uma regra definida tanto no arquivo /etc/hosts.allow quanto em /etc/hosrs.deny, qual será o comportamento para novas conexões vindas desse endereço? a. A conexão é liberada, pois o bloqueio é definido para serviços específicos. b. A conexão é liberada, pois a primeira consulta é feita em /etclhosrs.allow e prevalece. C. A conexão é bloqueada, pois a primeira consulta é feita em /etclhosts.deny e prevaicce. d. A. conexão é bloqueada, pois o bloqueio é feito usando o nome da máquina.
7. O comando usado para gerar chaves pessoais no formato RSA para o SSH é: a. ssh -t rsa b. ssh-keygen -t rsa C. keygen -t rsa 1 ssh d. ssh -genkey -t rsa
8. O programa ssh-add tem a finalidade de a. Incluir a autorização da chave privada no chaveiro ssh-agent. b. Definir as variáveis mostradas pelo ssh-agent. C. Permitir que outros usuários utilizem o ssh-agent. d. Incluir uma chave pública no chaveiro pessoal.
9. Na pasta -/.sshl, qual arquivo armazena as chaves públicas dos usuários que poderão entrar por SSH sem precisar de senha?
10. Qual opção do gpg é usada para importar uma chave pública diretamente de um servidor de chaves? a. .-import b. --get-key C. --recv-keys d. --receive-keys
217
Apêndices
Visão geral das mudanças nos exames para certificação LPIC nível 1 A nova revisão dos objetivos para as provas LPIC nível 1, válida a partir de abril de 2009, levou as provas para a versão 3.0. Essa é a segunda revisão completa dos objetivos, que padroniza a versão para o mundo todo. No âmbito geral, o LPI antecipou o ciclo de cinco anos para revisões completas. Por volta de cada dois anos e meio, os objetivos serão modificados para refletir as possíveis mudanças do Linux. A próxima versão do LPIC-1 será a 3.5 e refletirá essa revisáo parcial. Além dessas revisões principais, haverão adendos incluídos numa média trimestral, com o intuito de esclarecer pontos e detalhes dos exames. Esses adendos não alteram a versão da prova, pois têm apenas o intuito de esclarecer a cobertura da prova para organizadores de cursos e livros.
Os novos pesos O peso total de cada prova foi estabelecido em 60. Isso significa que, salvo em provas com perguntas "beta" para fins de desenvolvimento do exame, cada prova terá exatamente 60 questões. Portanto, a indicação de peso 3 em um determinado objetivo indica que haverão três questões sobre o tema na prova (exceto, novamente, no caso de haver questóes beta para fins de desenvolvimento dos exames).
Numeração dos objetivos A numeração dos objetivos é ível de dúvida em função de sua falta de linearidade. Por isso, os prefixos 1. e 2. foram descartados nessa revisão. Em todos os momentos em que numerações como I.xxx.y ou 2.nx.y aparecem, o fazem para citar os objetivos antigos.
Redução de conteúdo duplicado Em versões anteriores dos objetivos da certificação LPI, alguns tópicos eram abordados tanto nos exames do nível 1 quanto nos exames do nível 2. Em alguns casos, o mesmo conteúdo aparecia em diferentes provas dentro do mesmo nível de certificação. A atualização dos objetivos buscou reduzir as ocorrências de conteúdo duplicado em diferentes provas ou objetivos. Contudo, algumas tecnologias - como DNS - são importantes nos dois níveis de certificação e estão distribuídos nos locais apropriados. Por exemplo, na certificação nível 1, a abordagem sobre o DNS está restrita à configuraçáo do cliente do serviço.
Certificação LPL-1
Na certificação nível 2, a abordagem a para configuração e segurança de servidores DNS.
Versões de programas Quando apropriado, as versões específicas de programas são mostradas nos objetivos. Por exemplo, a abordagem do Kernel 2.4 foi descartada para priorizar a versão 2.6. As questões relacionadas ao ReiserFS limitam-se à versão 3 do sistema de arquivos e o servidor Bind 8.x não é mais abordado na prova.
Alterações de conteúdo A maioria dos serviços de rede e demais tarefas istrativas foram movidas para a certificação nível 2. O foco da certificação nível 1 foi mais direcionado para o uso e istração de um sistema Linux local. Por exemplo, para obter a certificação nível 1 ainda é necessário saber lidar com a configuração do NTP e Syslog.
Manuseio de base de dados SQL Dados armazenados em bases SQL tornaram-se muito relevantes na medida que esses bancos de dados ficaram mais fáceis de istrar e interagir. Para esse novo objetivo, é necessário saber ler, incluir, atualizar e apagar dados a partir do banco. Nenhum banco de dados específico é abordado, apenas o padrão de instruções SQL.
ibilidade A nova versão da prova de certificação nível 1 introduz a necessidade de preocupação com questões de ibilidade, programas e tecnologias assistivas.
Localização e internacionalização Questões que envolvem outros idiomas além do inglês são abordados. Inclui configuração de fuso horário, codificações de caracteres relevantes e configuração de ambiente relacionadas.
Criptografia de dados A utilização do ssh como ferramenta de segurança para o usuário final ganhou mais relevância. Além disso, também é abordada a utilização do GPG (GnuPG).
222
rT
-
Primeira prova para a cerrificaçáo LPI nível 1.
Sobre os pesos O peso total da prova foi estabelecido em 60. Isso significa que, salvo em provas com perguntas "beta" para fins de desenvolvimento do exame, cada prova terá exatamente 60 questóes. Portanto, a indicação de peso 3 em um determinado objetivo indica que haverão três questões sobre o tema na prova (exceto, novamente, no caso de haver questões beta para fins de desenvolvimento dos exames).
Tópico 101: Arquitetura de Sistema 101.1 Identificar e editar configurações de hardware Peso 2 Os candidatos devem ser capazes de realizar configurações básicas de hardware.
Conhecimentos chave • Ativar e desativar periféricos integrados; • Configuração de sistemas para iniciarem sem periféricos externos, como tedados; • Saber as diferenças entre os vários dispositivos de armazenamento; • Especificar o 1D de hardware correto para diferentes dispositivos, especialmente o dispositivo de boor; • Conhecer a diferença entre dispositivos co/.dpluge hotp/ug • Identificar os recursos de hardware de um dispositivo; • Ferramentas para mostrar diversas informações de hardware (/susb, lspci etc); • Ferramentas para manipular dispositivos USB; • Conhecimento conceitual sobre sysfi, udev, hal4 dbus. • Conhecimento básico das características do LVM. Lista parcial de arquivos, termos e ferramentas abordadas • /5)75
• /proc • /dev • modprobe • lsmod • lspci
Q
Certificação LPI-1
101.2 Início (boot) do sistema Peso 3
Os candidatos devem ser capazes de interagir com o processo de boot.
Conhecimentos chave • Fornecer comandos para o carregador de boot e para o kernel durante o boot; • Mostrar conhecimentos sobre a sequência de boot, das mensagens de BIOS até o término da inicialização; • Verificar os evenros de boor nos arquivos de log. • Realizar alterações básicas na configuração do Grub 2. Lista parcial de arquivos, termos e ferramentas abordadas • /var/log/messages • dmesg • BiOS • boorloader • kernel • init
101.3 Alternar runlevels, desligar e reiniciar o sistema Peso 3
Os candidatos devem ser capazes de istrar o nível de execuçáo do sistema. Este objetivo indui alternar para o modo single (usuário único), desligar ou reiniciar o sistema. Também devem ser capazes de alertar aos usuários antes de mudar o nível de execução e finalizar corretamente os processos. Inclui ainda determinar o nível de execução padrão.
Conhecimentos chave • Determinar o nível de execução padrão; • Alternar entre os níveis de execução, incluindo o modo single ; • Desligar e reiniciar usando a linha de comando; • Alertar aos usuários antes de mudar o nível de execução ou outro evento importante no sistema; • Finalizar corretamente os processos. Lista parcial de arquivos, termos e ferramentas abordadas o /etc/inittab 224
Apêndice
• sFiutdown • init • /etcfinit.d • telinit
Tópico 102: Instalação do Linux & istração de Pacotes 102.1 Dimensionar as partições de disco Peso 2 Os candidatos devem ser capazes de elaborar um esquema de particionamento de disco para um sistema Linux.
Conhecimentos chave • Alocar sistemas de arquivos e espaço de swap em partições ou discos distintos; • Ajustar o esquema de partições para a finalidade do sistema; • Assegurar que a partição Iboot esteja adequada à arquitetura e que o sistema seja capaz de iniciar. Lista parcial de arquivos, termos e ferramentas abordadas • sistema de arquivos / (raiz) • sistema de arquivos Jvar • sistema de arquivos /home • espaço de swap • pontos de montagem • partiçóes 102.2 Instalar o gerenciador de inicialização Peso 2 Os candidatos devem scr capazes de escolher, instalar e configurar um gerenciador de boot.
Conhecimentos chave • Construir locais £ternativos dc boot e fazer becape das opçóes; • Instalar e configurar um carregador de boot, como o GRUB; • Interagir com o carregador de boot
40
Certificação LPI-1
Lista parcial de arquivos, termos e ferramentas abordadas • /boot/grub/menu.!sr • grub-install • MBR • superbiock 102.3 Controle das bibliotecas compartilhadas Peso 1 Os candidatos devem ser capazes de identificar as bibliotecas compartilhadas das quais os programas dependem e instalá-las quando necessário. Conhecimentos chave • Identificar bibliotecas compartilhadas; • Identificar as localizações típicas de bibliotecas compartilhadas no sistema; • Carregar bibliotecas compartilhadas. • Conhecimento básico das características do systemd e Upstart Lista parcial de arquivos, termos e ferramentas abordadas • ldd • ldconfig • /erclld.so.conf • LD_LIBRARY_PATH 102.4 Utilização do sistema de pacotes Debian Peso 3 Os candidatos devem ser capazes de realizar gerenciamento de pacotes utilizando as Ferramentas de pacotes do Debian.
Conhecimentos chave • Instalar, atualizar e desinstalar pacotcs binários do Debian; • Encontrar pacotes contendo arquivos ou bibliotecas específicas, instalados ou não; • Obter informações sobre o pacote, como versão, conteúdo, dependências, integridade de pacote e status de instalação (se os pacotes estão ou náo instalados). Lista parcial de arquivos, termos e ferramentas abordadas • /etc/apt/sources.list 226
Apêndice
• dpkg • dpkg-reconfigure • apt-get • apt-cache • aptitude
102.5 Utilização do sistema de pacotes RPM e VUM Peso 3 Os candidatos devem ser capazes de gerenciar pacotes com as ferramentas do RPM eYVM.
Conhecimentos chave • Instalar, reinstalar, atualizar e remover pacotes usando RPM e YIJM; • Obter informações sobre pacotes RPM como versáo, status, dependências, integridade e s; • Determinar quais arquivos sáo fornecidos por um pacote, bem como descobrir a qual pacote determinado arquivo pertence. Lista parcial de arquivos, termos e ferramentas abordadas • rpni • rpm2io • /ctclyum.conf • Ietclyum.repos.dI
• yum • yumer
Tópico 103: Comandos GNU e Unix 103.1 Trabalhar com a linha de comando
P
Peso 4 Os candidatos devem ser capazes de interagir com shells e comandos usando o terminal. O objetivo supõe a utilização do shell bash.
Conhecimentos chave • Utilizar comandos simples e sequências de comandos no terminal; 227
Certificação 191-1
• Utilizar e modificar o ambiente de shel!, incluindo a definição, referência e exportação de variáveis de ambiente; • Utilizar e editar o histórico de comandos; • Executar comandos localizados dentro e fora do caminho definido pela variável PATH. Lista parcial de arquivos, termos e ferramentas abordadas • bash • echo • env • exec • export • pwd • set • unset • mau • uname history 103.2 Processar fluxos de texto com o uso de filtros Peso 3 Os candidatos devem ser capazes de utilizar filtros em fluxos de texto. Conhecimentos chave Enviar arquivos e fluxos de saída com o uso de filtros para modificar o resultado utilizando os comandos padrão do UNIX, encontrados no pacote GNU texrutils. Lista parcial de arquivos, termos e ferramentas abordadas • cai • cut • expand • fmt • head • od • • nI • paste 228
Apêndice
• pr • sed • sort • split • tail • tr • unexpand • uniq • wc
103.3 Gerenciamento básico de arquivos Peso 4 Os candidatos devem ser capazes de utilizar os comandos básicos Linux para manipular arquivos e diretórios.
Conhecimentos chave • Copiar, mover e remover arquivos e diretórios individualmente; • Copiar arquivos e diretórios recursivamente; • Remover arquivos e diretórios recursivamente; • Utilizar caracteres curinga simples e avançados nos comandos; • Utilizar ofindpara localizar arquivos baseados no tipo, tamanho ou tempo e agir sobre o resultado; • Uso do tar, io e deli Lista parcial de arquivos, termos e ferramentas abordadas • • find • mkdir • mv • Is • rm • rmdir • touch • tar • io • dd • file 229
Certificação LPI-1
• gzip • gunzip • bzip2 • file globbing
103.4 Fluxos, pipes (canalização) e redirecionamento de saída Peso
4
Os candidatos devem ser capazes de redirecionar fluxos e canalizá-los para processar dados de texto. Inclui redirecionar à entrada padrão, à saída-padrão e à saída de erro padrão, canalizar a saída de um comando para a entrada de um outro comando, utilizar a saída dc um comando como argumento para outro comando e enviar a saída para stdout (saída padrão) ou para um arquivo.
Conhecimentos chave • Redirecionamento de entrada-padrão, saída-padrão e erro padrão; • Canalizar a saída de um comando para a e.ntrada de um outro comando utilizando pipei-, • Utilizar a saída de um comando como argumento para outro comando; • Enviar a saída para stdoute para um arquivo. Lista parcial de arquivos, termos e ferramentas abordadas tee xargs
103.5 Criar, monitorar e finalizar processos Peso
4
Os candidatos devcm ser capazes de realizar o controle básico de processos.
Conhecimentos chave • Rodar tarefas em primeiro e segundo plano; • Fazem um programa permanecer ativo após o Iogou • Monitorar processos ativos; • Selecionar e classificar processos vinculados a um disp/.ay, • Enviar sinais para processos.
230
Apêndice
Lista parcial de arquivos, termos e ferramentas abordadas .& • bg • fg • jobs •kill • nohup •
5
• top • free • uptime • killall
103.6 Modificar a prioridade de execução de um processo Peso 2 Os candidatos devem ser capazes dc istrar prioridades de processos em execução.
Conhecimentos chave • Conhecer a prioridade padrão de processos iniciados; • Executar um programa com prioridade maior ou menor que a padrão; • Modificar a prioridade de um processo em execução. Lista parcial de arquivos, termos e ferramentas abordadas nice •
5
• renice • top
103.7 Procurar em arquivos de texto, usando expressões regulares Peso 2 Os candidatos devem ser capazes de manipular arquivos e textos utilizando expressóes regulares. Este objetivo inclui criar expressões regulares simples, contendo diversos padrões. Inclui ainda utilizar ferramentas de expressão regular para realizar buscas em um sistema de arquivos ou no conteúdo de um arquivo.
231
Certificação LPI-1
Conhecimentos chave • Criar expressões regulares simples, contendo diversos padrões; • Utilizar ferramentas de expressão regular para realizar buscas em um sistema de arquivos ou no conteúdo de um arquivo. Lista parcial de arquivos, termos e ferramentas abordadas • grep • egrep • fgrep • sed • regex(7) 103.8 Edição básica de arquivos com o vi Peso 3 Os candidatos devem ser capazes dc editar arquivos de texto, utilizando vi. Este objetivo inclui navegação no vi, modos de execução básicos do vi, inserir, editar, apagar, copiar e encontrar texto.
Conhecimentos chave • Navegar em um documento utilizando vi; • Utilizar modos de execução básicos do vi; • Inserir, editar, apagar, copiar e encontrar texto. Lista parcial de arquivos, termos e ferramentas abordadas • vi
• 1,? • h,j,k,1 • i,o,a • c,d,p,y,dd,yy • ZZ, :w!, :q!, e!
232
Apêndice
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS - Filesystem Hierarchy Standard 104.1 Criar partições e sistemas de arquivos Peso 2 Os candidatos devem ser capazes dc criar partições de disco e sistemas de arquivo em dispositivos como discos rígidos. Inclui a manipulação de parriçóes swap. Conhecimentos chave Utilizar os vários comandos mkfi para configurar as partições e criar diversos sistemas de arquivos como: • ext2 • ext3 • xfs • reiserfs v 3 • vfat • ext4 Lista parcial de arquivos, termos e ferramentas abordadas • fdisk • mkfs • mkswap
104.2 Manutenção da integridade de sistemas de arquivos Peso
2
Os candidatos devem ser capazes de fazer a manutenção de um sistema de arquivo comum, bem como os dados adicionais associados com wn sistema de arquivo journailing. Conhecimentos chave • Verificar a integridade dos sistemas de arquivo; • Monitorar espaço e inodes livres; • Reparar problemas simples no sistema de arquivos. Lista parcial de arquivos, termos e ferramentas abordadas • du • df Pãc!']
Certificação LPI-1
• fsck • e2fsck • mke2& • debugfs • dumpe2fs • rune2fs • Ferramentas xfsrools (como xfs_metadump e xfs_info)
104.3 Controle da montagem e desmontagem de sistemas de arquivos Peso 3 Os candidatos devem ser capazes de configurar a montagem de sistemas de arquivos.
Conhecimentos chave • Montar e desmontar manualmente sistemas de arquivos; • Configurar a montagem de sistemas de arquivos na inicialização; • Configurar a montagem por usuários de dispositivos externos. Lista parcial de arquivos, termos e ferramentas abordadas • /etc/fstab • /media • mount • umount
104.4 istrar cotas de disco Peso 1 Os candidatos devem ser capazes de istrar cotas de disco para os usuários.
Conhecimentos chave • Configurar cota de disco para um sistema de arquivos; • Editar, controlar e criar relatórios de cotas de usuários. Lista parcial de arquivos, termos e ferramentas abordadas • quota • edquota • repquota • quotaon 234
Apêndice
104.5 Controlar permissões e propriedade de arquivos Peso 3
Os candidatos devem ser capazes de controlar o o a arquivos pelo do uso apropriado das permissóes e propriedades.
Conhecimentos chave • Definir permissões para arquivos comuns, especiais e diretórios; • Permissóes de o como suieh sgide o sticky bit para fortalecer a segurança; • Saber como mudar a máscara de criação de arquivos; • Utilizar o campo de grupo para permitir o o aos membros de um grupo. Lista parcial de arquivos, termos e ferramentas abordadas • chmod • umask • chown • chgrp 104.6 Criar e alterar links simbólicos e hardlinks Peso 2
Os candidatos devem ser capazes de criar e operar links simbólicos e hardlinks.
Conhecimentos chave • Criar links; • Identificar links físicos e/ou simbólicos; • Diferenças entre copiar e "linkar" arquivos; • Utilizar links para finalidades istrativas de sistema. Lista parcial de arquivos, termos e ferramentas abordadas • In 104.1 Encontrar arquivos de sistema e conhecer sua localização correta Peso 2
Os candidatos devem ser capazes de entender bem o FHS - Filesystem Hierarchy Standard (Hierarquia Padrão de Sistema de arquivos), as localizações típicas de arquivos e as classificações de diretórios. 235
Certificação LPI-1
Conhecimentos chave • Entender a localização correta dos arquivos no FHS; • Encontrar arquivos e comandos num sistema Linux; • Conhecer a localização e o ptopósito dos arquivos e diretótios importantes como definidos no FHS. Lista parcial de arquivos, termos e ferramentas abordadas • find • locate • updatedb • wheteis • which • type • Jetdupdatedb.conf
®Sfl'
í11JjtiiJ. flE €t
Segunda prova para a certificação LPI nível 1
Sobre os pesos O peso total da prova foi estabelecido em 60. Isso significa que, salvo em provas com perguntas "beta" para fins de desenvolvimento do exame, cada prova terá exatamente 60 questões. Portanto, a indicaç5o de peso 3 em um determinado objetivo indica que havetá três questóes sobre o tema na prova (exceto, novamente, no caso de haverem questões beta para fins de desenvolvimento dos exames).
Tópico 105: Shelis, scripts e istração de dados 105.1 Personalizar e trabalhar no ambiente Shell Peso 4
Os candidatos devem ser capazes de configurar o ambiente de shell para satisfazet as necessidade dos usuários. Também devem saber alterar perfis gerais e específicos de usuários. 236
Apêndice
Conhecimentos chave • Criação de variáveis de ambiente (como PATIM no ou quando um novo shell é disparado; • Escrever funções BASH para sequencias de comandos utilizadas frequentemente; • Manter um csquema de direrórios para novas contas de usuário; • Definir o caminho de busca de comandos com o diretórios apropriado. Lista parcial de arquivos, termos e ferramentas abordadas /etc/profile env • export • set • unset • -/.basLproflie • -/.bash_ • -/.profile • -/.bashrc • -/.bash_ • function • alias • lists
105.2 Editar e escrever scripts simples Peso 4
Os candidatos devem ser capazes de editar scripts existentes e escrever simples scripts BASH.
Conhecimentos chave • Uso sintaxe sh padrão, como laços (loops) e testes; • Utilizar substituição de comando; • Verificar se a reposta produzida por um comando corresponde a sucesso ou falha e analisar outras respostas de comandos; • Selecionar corretamente o interpretador pelo uso do shebang (#O; • istrar a localização, propriedade, direito de execuçáo e permissão suid. Lista parcial de arquivos, termos e ferramentas abordadas • for • while 237
Certificação LPI-1
• test • if • read • chmod • seq
105.3 istração de dados SQL. Peso 2 Os candidatos devem ser capazes de consultar bancos de dados e manipular informações utilizando comandos SQL básicos. Este objetivo inciui a realização de consultas que compreendam a união de duas tabelas e/ou subconjuntos. Conhecimentos chave • Uso de comandos SQL básicos; • Manipulação básica de dados. Lista parcial de arquivos, termos e ferramentas abordadas • insert • update • select • delete • from • where • group by • orderby •
Tópico 106: Interfaces de usuário e Desktops 106.1 Instalar e configurar o Xli Peso 2 Os candidatos devem saber instalar e configurar o Xli. Conhecimentos chave • Verificar se o servidor X a a placa de vídeo e o monitor; 238
Apêndice
• Conhecimento sobre o servidor de fontes do X. • Conhecimento básico do arquivo de configuração X. Lista parcial de arquivos, termos e ferramentas abordadas • Jetc/X1 1/xorg.conf • xhost • DISPLAY • xwininfo • xdpyinfo .
x
106.2 Configurar o gerenciador de gráfico Peso 2
Os candidatos devem ser capazes de configurar e adaptar um ambiente gráfico. Este objetivo contempla os gerenciadores XDM (X Display Manager), GDM (Gnome Display Manager) e KDM (KDE Display Manager). Conhecimentos chave • Ativar ou desarivar o gráfico; • Alterar a saudação do gráfico; • Alterar a profundidade de cor padrão do gráfico; • Configurar o gráfico para ser usado em X-stations. Lista parcial de arquivos, termos e ferramentas abordadas • /etc/inittab; • Arquivos de configuração do xdm; • Arquivos de configuração do kdm; • Arquivos de configuração do gdm.
106.3 ibilidade Peso 1
Os candidatos devem demonstrar conhecimento e preocupação acerca de tecnologias de ibilidade. Conhecimentos chave • Configurações de ibilidade de teclado (AccessX); 239
Certificação LPI-1
• Temas e configurações visuais; • Tecnologias assistivas (TAs).
Lista parcial de arquivos, termos e ferramentas abordadas • Segurar/Repetir teclas; • Desacelerar/inverter/trocar teclas; • Teclas do mouse; • Temas de desktop de alto contraste e tamanho; • Leitor de tela; • Mostrador Braille; • Ampliador de tela; • Teclado em tela; • Cestos (usados no , no gdm por exemplo); • Orca; • GOK; • emacspeak.
E
Tópico 107: Tarefas istrativas 107.1 istrar contas de usuário, grupos e arquivos de sistema relacionados Peso 5 Os candidatos devem ser capazes de adicionar, remover, suspender e modificar contas de usuário.
Conhecimentos chave • Adicionar, modificar e remover usuários e grupos; • Manipular as informações do usuáriolgrupo nos registros de contas e grupos; • Criar e istrar contas restritas e com finalidades específicas.
Lista parcial de arquivos, termos e ferramentas abordadas • /etc/wd • /etc/shadow • /etc/group • /etc/skel • chage 240
Apêndice
• groupadd • groupdel • groupmod • wd • add • de! • mod
107.2 Automatizar e agendar tarefas istrativas de sistema Peso 4 Os candidatos devem ser capazes de utilizar o cron ou anacron para executar traba!hos em intervalos regulares e usar o az' para executar trabalhos em um momento específico. Conhecimentos chave • Controlar agendamentos cron e at • Configurar o o de usuários aos serviços cron e ai'. Lista parcial de arquivos, termos e ferramentas abordadas • /etc/cron.{d,daily,hourly,monthly,weekly} • /etc/at.deny • /etc/at.allow • fetc/crontab • fetc/cron.allow • fctc/cron.deny • fvar/spool/cron /* • croncab • at • atq • atrm
107.3 Localização e internacionalização Peso 3 Os candidatos devem ser capazes de configurar um sistema para um idioma diferente do inglês. Também devem compreender o motivo da utilização de LANG=C em scripts. 241
Certificação LPI-1
Conhecimentos chave • Configurações de localizaçáo; • Configurações de fuso horário. Lista parcial de arquivos, termos e ferramentas abordadas • /etcltimezone
• /etc/localtime • /usr/share/zoneinfo • Variáveis de ambiente: • LC_* • LCALL • LANG • /usr/bin/!ocaie • tzselect • tzconfig • date • iconv • UTF-8 • 150-8859 • ASCII • Unicode
Tópico 108: Serviços essenciais do sistema 108.1 Manutenção de data e hora do sistema Peso 3 Os candidatos devem ser capazes de fazer apropriadamente a manutenção de data e hora do sistema e sincronizar a hora via NTP. Conhecimentos chave • Definir a data e a hora do sistema; • Definir a data e hora de BIOS para a zona UTC correta; • Configurar o fuso horário correto; • Configuração básica do NTP; • Saber como utilizar o serviço pool.ntp.org .
242
Apêndice
Lista parcial de arquivos, termos e ferramentas abordadas • /usr/share/zoneinfo • /etcltimezone • /etc/localtime • /etc/ntp.conf • date • hwclock • ntpd • ntpdate
108.2 Configurar e recorrer a arquivos de Iog Peso 2
Os candidatos devem ser capazes de configurar o datmon syslog. Este objetivo contempla a configuração do daemon de log para enviar a saída para um servidor central ou para receber logs de outras máquinas.
Conhecimentos chave • Arquivos de configuração do syslog; • syslog; • Pari/ides, priorities e actions padrão. Lista parcial de arquivos, termos e ferramentas abordadas • syslog.conf • syslogd • ldogd • !ogger
108.3 Fundamentos de MTA (Mali Transfer Agent) Peso 3 Os candidaros devem conhecer os programas MTA mais comuns e ser capazes de realizar operaç5es básicas como redirecionar e criar aliases. Demais arquivos de configuração não são abordados.
Conhecimentos chave • Criar aliases de emai!; • Configurar redirecionamento de emai!; 243
Certificação 111-1
• Conhecimentos sobre os programas MTA mais comuns (postfix, sendmai!, qmail, exim), exceto configuração.
Lista parcial de arquivos, termos e ferramentas abordadas • -I.forward • Comandos na camada de emulação do sendmail • newaliases • mailq • postfix • sendmail • exim • qmail
108.4 Configurar impressoras e impressão Peso 2 Usando o CUPS e a interface de compatibilidade LPD, os candidatos devem ser capaies de istrar filas de impressão e as tarefas de impressão de usuários.
Conhecimentos chave • Configuração básica do CUPS (para impressoras locais e remotas); • istrar fila de impressão de usuário; • Resolução de problemas referentes à impressão; • Incluir e excluir tarefas de impressão em filas configuradas. Lista parcial de arquivos, termos e ferramentas abordadas • Arquivos de configuração do CUPS, ferramentas e utilitários; • /etc/cups; • Interface legada lpd (lpr, lprm, lpq).
Tópico 109: Fundamentos de rede LI&]
109.1 Fundamentos dos protocolos de Internet Peso 4 Os candidatos devem demonstrar conhecimento sólido sobre os fundamentos de redes T/IP 244
Apêndice
Conhecimentos chave • Entendimento sobre máscaras de rede; • Diferenças entre endereços IP "dorted quad" privados e públicos; • Definição de rota padrão; • Conhecimento acerca de portas T e UDP comuns (20, 21, 22, 23, 25, 53, 80, 110, 119, 139, 143, 161, 443, 465, 993, 995); • Saber as diferenças entre UDP, T e ICMP e suas características; • Conhecer as diferenças principais entre IPv4 e IPv6, • Conhecimento básico de IPv6 Lista parcial de arquivos, termos e ferramentas abordadas • /etc/services • ftp • telnet • host • ping • dig • traccroute • tracepath
109.2 Configuração básica de rede Peso 4
Os candidatos devem ser capazes de identificar, modificar e verificar a configuração de rede nas máquinas clientes. Conhecimentos chave • Realizar configuração manual e automática de interfaces de rede; • Configuração básica de T/IP Lista parcial de arquivos, termos e ferramentas abordadas • /etc/hostname • /etc/hosts • /etcfresolv.conf • /etc/nsswitch.conf • ifconflg • ifup • ifdown 245
Certificação LPI-1
• route
109.3 Soluções para problemas de rede simples Peso 4 Conhecimentos chave • Configurar manual e automaticamente interfaces de rede e tabelas de rotas, incluindo incluir, iniciar, interromper, reiniciar, remover e reconfigurar interFaces de rede; • Alterar, identificar e configurar a tabela de rotas e corrigir manualmente uma rota padrão definida incorretamente; • Analisar problemas associados à configuração de rede. Lista parcial de arquivos, termos e ferramentas abordadas • ifconfig • iRip • ifdown • route • host • hosiname • dig • netstat • ping • traceroute
109.4 Configurar DNS cliente Peso 2 Os candidatos devem ser capazes de configurar o DNS no lado do cliente.
Conhecimentos chave • Utilização de DNS no sistema local; • Alterar a ordem em que a resolução de nome ocorre. Lista parcial de arquivos, termos e ferramentas abordadas • /etdhosts • /etc/resolv.conf • /etc/nsswitch.conf 246
Apêndice
Tópico 110: Segurança 110.1 Tarefas istrativas de segurança Peso 3
Os candidatos devem saber examinar a configuração do sistema e garantir que estejam de acordo com as políticas locais de segurança.
Conhecimentos chave • Localizar no sistema arquivos com o suidisgid bit aplicado; • Definir ou modificar senhas e validade de senha; • Saber utilizar o nmap e netstat para descobrir portas abertas em um sistema; • Limitar s de usuários, processos e uso de memória; • Utilização básica do suda. Lista parcial de arquivos, termos e ferramentas abordadas • find • wd • lsof • nmap • chage • netstat • sudo • fetc/sudoers • su • mod • ulimir
110.2 Segurança do host Peso 3 Os candidatos devem saber como configurar minimamente a segurança básica do host.
Conhecimentos chave • Conhecer o funcionamento de senhas shadouí • Desligar os serviços de rede desnecessários; • Entender a aplicação de T wrappers. • Revogar uma chave. 247
Certificação LPI-1
Lista parcial de arquivos, termos e ferramentas abordadas • /etc/no • /etc/wd • /ctc/shadow • / etc/xi netd . d/* • /etc/xinetd.conf • / etc/i net. d/* • /erc/inerd.conf • Ietclhosts.allow
• /etc/hosts.deny
110.3 Proteção de dados com criptografia Peso 3 Os candidatos devem saber como utilizar chaves públicas para proteger dados e comunicações.
Conhecimentos chave • Configuração e uso básicos do cliente OpenSSH 2; • Entender a aplicação de chaves de servidor OpenSSH 2; • Configuração e uso básicos do GnuPG; • Compreensão de túneis deporta por SSH (incluindo túneis Xli).
Lista parcial de arquivos, termos e ferramentas abordadas • ssh • ssh-keygen • ssh-agent • ssh-add • -/.ssh/id_rsa e id_rsa.pub • -I.sshlid_dsa e id_dsa.pub
• /etc/ssh/ssh_host_rsa_key e /etcfssh/ssh_host_rsa_key.pub • /etc/sshfssh_host_dsa_key e fetc/ssh/ssh..host_dsa_keypub • -/.ssh/authorized_keys • /etc/ssh_known_hosts
_/.gnupg
• gpg
248
l*
Respostas
Tópico 101 1. B 2.0 3-A 4W 5. /dcv/hda2 6. B 7.A 8. runlevel 9-A e B
1o.c Tópico 102 LD 2. B 3.CeD 4.0 5.A 6. ldd 7. /etc/Id.so.conf 8.0
9.A 10. A
Tópico 103 1.D 2. B 3.D 4. B 5.D 6.0 7. tee 8.8 e D
9.D LO. D 250
Respostas dos exercícios
Tópico 104 1.8 2. tune2fs -i /dev/sda3 3. swapon 4. fsck 5.D 6.8 7.D 8.D 9. C 10. find
Tópico 105 1.D 2.D 3. B 4.D 5W 6. A 7. B 8.D 9. C
lo. c Tópico 106 1. B 2.D 3. A 4.D 5.0 6. xdrn-conhg 7.A 8. Orca 9.A 10. GOK 251
Certificação LPI-1
Tópico 107 1.AeB 2.0
3.A, CeD 4. pwconv 5. chsh 6.A 7. vigr 8. *130 * * * * fusr/bin/backup.sh 9.A 1O.D
Tópico 108 1. A 2. A 3. Ietclntp.conf
4. ntpdate 5. B 6. logger 7. 3 8.A 9.0 1O.D
Tópico 109 LD 2. A 3.D 4. 3 5. A e D 6. route add defhulc gw 192.168.1.250 7. dig 8.c 9.A 10. 3 252
Respostas dos exercícios
Tópico 110 1.A 2. B 3. nmap 4.D 5. C 6. B 7. B 8.A 9. authorized_keys
1o.c
253
a,
Agora que voce ja está prontoaais provas do nível 1, que tal se pepartjara o nível 2?
L inux Pro • COLEÇÃO
LI
garanta já o seu pelo site www.linuxmagazine.com.br
¼v4
ÇLt':.
t
— tu,ndon.
:)
0*4° 000*00 *ol1,.O,.
*400.11,, 4*10.0*0
Á
'F±Ttt±VAIi -
O
£ COMPUTAÇÀO EU iWVEM CHEGA NRALMEUTI
A MATUNIDADE COM NOVAS (IRRAMENTAS
QUE PAtIUTAM A AIMUIISTIAÇAO E O MOMITUAMENTU DE SUA INFRAESTRUI1JRA.
tEMAm. DE 11.
SAIBA QUAIS SÃO AS MUDANÇAS QUE *55011112 FAIA O 1a0Iira9' . ,,e s..t lrOtd
1Da.l1I!,.,s:.riLa.;.
1!.
•.
FIOnt 01,fIen0R
PO31
0* 0aIShIdiIM Pfl
.....a....a,l,4*00q.fltr,SIflgI2Jl Pfl
aU - , flr! .1
.o*fl
ttlCGFa.!iIk
, ....
a •Í4..0 p*2
NflROIU p45 Comace o pn.qromo, .pllcoll.to pan a pIaIalo.iiit - maio cinco no mondo C1IJStKS Gononclomonlo Oaril do moltoolas bibIloInoino * cotomilaloreo com mt*tJlelIlei
• —
--
—
—
—
*
1 Entenda comi i 0*04*4.0W to.çTdtt. ao.neeoenao.oac0s19P
O
Ii O
. —
BANCO [JE OMiOS 4dmlnt5Ira000 de boneos 4* Ialoi e oobmlos Come Ele.. O Cloro
toolirlo rrroltoc001aI.0000IC140euoamarJlir!at4.72 I lem nIL.10ra! t di triboir,00l. *4 N pepsi.. p.1* dir'ir o.' n'na' 1 zadr oe: ConTe - S*4I
II
,J1E ij-•j
«ttJ:;tF jj:i
IWflLUNUXMAOAZÍNE.COMSR
Somente os profissionais que se mantêm atualizados garantem sucesso e reconhecimento profissional. Todo mês a Linux Magazine leva ao leitor as informações mais recentes e relevantes sobre mercado, novas tecnologias, ferramentas e procedimentos que todo profissional Linux qualificado precisa dominar. e o site e conheça as diferentes modalidades de
www.linuxmagazine.com.br
Na produç&, sae livro, ffluizamos as famllLas t.pograllcas. Garamond, ffC FrankJài GothIc, Heivelca Neja, HeKelica LT e Inleratate O mlo do livro Icx impresso Oro papel Offsel 75 g e a capa em papel Cartão 230 g com an'anaçâo BOPP Orto. lnprso por AR Ocnneley.