Você está na página 1de 209

Linux

Fundamentos
Linux
Fundamentos

1
Linux - Fundamentos Seja Nosso Parceiro no Combate Cpia Ilegal

A cpia ilegal crime. Ao efetu-la, o infrator estar cometendo um grave erro, que inibir a produo
de obras literrias, prejudicando profissionais que sero atingidos pelo crime praticado.

Junte-se a ns nesta corrente contra a pirataria. Diga no cpia ilegal.

Seu Cadastro Muito Importante para Ns

Ao preencher e remeter a ficha de cadastro constante em nosso site, voc passar a receber
informaes sobre nossos lanamentos em sua rea de preferncia.

Conhecendo melhor nossos leitores e suas preferncias, vamos produzir ttulos que atendam suas
necessidades.

Obrigado pela sua escolha.

Fale Conosco!

Eventuais problemas referentes ao contedo deste livro sero encaminhados ao(s) respectivo(s)
autor(es) para esclarecimento, excetuando-se as dvidas que dizem respeito a pacotes de softwares,
as quais sugerimos que sejam encaminhadas aos distribuidores e revendedores desses produtos,
que esto habilitados a prestar todos os esclarecimentos.

Os problemas s podem ser enviados por:

1. E-mail: producao@erica.com.br

2. Fax: (11) 2097.4060

3. Carta: Rua So Gil, 159 - Tatuap - CEP 03401-030 - So Paulo - SP

2
Walace Soares
Gabriel Fernandes

Linux
Fundamentos

1 Edio

So Paulo
Editora rica Ltda.

3
Linux - Fundamentos Copyright 2010 da Editora rica Ltda.
Todaos os direitos reservados. Proibida a reproduo total ou parcial, por qualquer meio ou processo, especialmente
por sistemas grficos, microflmicos, fotogrficos, reprogrficos, fonogrficos, videogrficos, internet, e-books.
Vedada a memorizao e/ou recuperao total ou parcial em qualquer sistema de processamento de dados e a
incluso de qualquer parte da obra em qualquer programa jusciberntico. Essas proibies aplicam-se tambm s
caractersticas grficas da obra e sua editorao. A violao dos direitos autorais punvel como crime (art. 184
e pargrafos, do Cdigo Penal, conforme Lei n 10.695, de 07/01/2003) com pena de recluso, de dois a quatro
anos, e multa, conjuntamente com busca e apreenso e indenizaes diversas (artigos 102, 103 pargrafo nico,
104, 105, 106 e 107 itens 1, 2 e 3 da Lei n 9.610, de 19/06/1998, Lei dos Direitos Autorais).
Os Autores e a Editora acreditam que todas as informaes aqui apresentadas esto corretas e podem ser utilizadas
para qualquer fim legal. Entretanto, no existe qualquer garantia, explcita ou implcita, de que o uso de tais infor-
maes conduzir sempre ao resultado desejado. Os nomes de sites e empresas, porventura mencionados, foram
utilizados apenas para ilustrar os exemplos, no tendo vnculo nenhum com o livro, no garantindo a sua existncia
nem divulgao. Eventuais erratas estaro disponveis para download no site da Editora rica.
Contedo adaptado ao Novo Acordo Ortogrfico da Lngua Portuguesa, em execuo desde 1 de janeiro de 2009.
"Algumas imagens utilizadas neste livro foram obtidas a partir do CorelDRAW 12, X3 e X4 e da Coleo do
MasterClips/MasterPhotos da IMSI, 100 Rowland Way, 3rd floor Novato, CA 94945, USA."

Dados Internacionais de Catalogao na Publicao (CIP)


(Cmara Brasileira do Livro, SP, Brasil)

Soares, Walace.
Linux: Fundamentos / Walace Soares, Gabriel Fernandes -- 1. ed. -- So Paulo: rica, 2010.

Bibliografia.
ISBN 978-85-365-1176-4

1. Linux (Sistema operacional de computador) 2. Redes de computadores I. Fernandes, Gabriel II. Ttulo.

10-12002 CDD-005.43

ndices para catlogo sistemtico


1. Linux: Sistema Operacional: Computadores: Processamento de dados 005.43

Coordenao Editorial: Rosana Arruda da Silva


Capa: Maurcio S. de Frana
Editorao e Finalizao: Adriana Aguiar Santoro
Roseane Gomes Sobral
Marlene Teresa S. Alves
Carla de Oliveira Morais
Rosana Ap. A. dos Santos

Editora rica Ltda.


Rua So Gil, 159 - Tatuap
CEP: 03401-030 - So Paulo - SP
Fone: (11) 2295-3066 - Fax: (11) 2097-4060
www.editoraerica.com.br

4
Fabricante

Produto: Linux
Fabricante: centOS Team
Site: www.centos.org

Requisitos de Hardware e de Software

 Sistema operacional centOS 5 ou superior;


 centOS 5.4 ou superior;
 GNOME 1.16 ou superior;
 Pentium IV ou superior;
 512 MB de memria RAM;
 Disco rgido de 20 GB ou superior;
 Monitor de vdeo com resoluo mnima de 1024x768 pontos;
 Unidade de DVD-ROM;
 Modem ou placa de rede e acesso Internet.

5
Linux - Fundamentos
Sobre o Material Disponvel na Internet

O material disponvel no site da Editora rica contm as respostas dos exerccios do livro.
Para sua utilizao, necessrio ter instalado o Acrobat Reader 5 ou superior.
Respostas.exe

Procedimento para download


Acesse o site da Editora rica Ltda.: www.editoraerica.com.br. A transferncia do arquivo
disponvel pode ser feita de duas formas:
 Por meio do mdulo pesquisa. Localize o livro desejado, digitando palavras-
-chave (nome do livro ou do autor). Aparecem os dados do livro e o arquivo para
download. Com um clique o arquivo executvel transferido.
 Por meio do boto "Download". Na pgina principal do site, clique no item "Download".
exibido um campo no qual devem ser digitadas palavras-chave (nome do livro ou
do autor). Aparecem o nome do livro e o arquivo para download. Com um clique o
arquivo executvel transferido.

Procedimento para descompactao


Primeiro passo: ap s ter transferido o arquivo, verifique o diret rio em que se encontra e
d um duplo clique nele. Aparece uma tela do programa WINZIP SELF-EXTRACTOR que
conduz ao processo de descompactao. Abaixo do Unzip To Folder h um campo que
indica o destino do arquivo que ser copiado para o disco rgido do seu computador.
C:\Linux
Segundo passo: prossiga a instalao, clicando no boto Unzip, o qual se encarrega de
descompactar o arquivo. Logo abaixo dessa tela aparece a barra de status que monitora
o processo para que voc acompanhe. Aps o trmino, outra tela de informao surge,
indicando que o arquivo foi descompactado com sucesso e est no diretrio criado. Para
sair dessa tela, clique no oto ara finali ar o pro rama IN I X ,
clique no boto Close.

6
Dedicatria

min a esposa ara e s min as fil as arol e Isa elle


Walace Soares

minha esposa Raquel, por sua compreenso;


os meus fil os Nicolas e aria ecilia, que so a ra o da min a vida
Ao meu pai Mauri, irmo Leonardo e meus amigos pelo apoio em todos os momentos
desta importante etapa da minha vida;
Em memria minha av Benta Gertrudes.
Gabriel Fernandes

"Bem-aventurado o homem que acha sabedoria,


e o homem que adquire conhecimento.
Porque melhor a sua mercadoria do que a mercadoria
de prata, e a sua renda do que o ouro mais fino."
Prov. 3, 13-14

7
Agradecimentos
Linux - Fundamentos

A todo o pessoal envolvido no processo de construo do livro, pois so todos importantes


e fundamentais para um trabalho benfeito;
Aos amigos e familiares, que compreenderam meu estresse durante as ltimas semanas.

Walace Soares

Nada realmente bom se faz sozinho. Esta obra no foge a esta regra, pois fala de um sistema
iniciado de forma singular, que hoje recebe a colaborao de vasta quantidade de pessoas.
Professores, amigos, famlia, gerentes, diretores, colaboradores e clientes contriburam
muito na minha trajetria e, consequentemente, na elaborao deste livro, seja criando
oportunidades ou ajudando a encontrar solues nos mais diversos problemas do dia a dia.
Portanto, praticamente impossvel completar a lista de agradecimentos. Se tivesse de citar
nomes nesta etapa, eles seriam muitos.
Entretanto, quero destacar o meu parceiro neste trabalho, Walace Soares, que me deu esta
oportunidade.

Gabriel Fernandes

8
Sumrio

Captulo 1 - A Histria.........................................................................................15
1.1 - UNIX .......................................................................................................15
1.1.1 - A Filosofia UNIX .............................................................................. 16
1.1.2 - Variantes do UNIX........................................................................... 19
1.2 - Linux .......................................................................................................20
1.3 - Vantagens do Linux..................................................................................21
1.4 - Projeto GNU ...........................................................................................23
1.5 - Free Software Foundation ........................................................................24
Exerccios.........................................................................................................26

Captulo 2 - Familiarizao com o Linux .............................................................27


2.1 - Windows e Linux .....................................................................................27
2.2 - POSIX......................................................................................................27
2.3 - Kernel .....................................................................................................28
2.4 - Shell ........................................................................................................30
2.5 - Multitarefa ...............................................................................................32
2.6 - Multiusurio ............................................................................................33
2.7 - Modo de Execuo ..................................................................................34
2.7.1 - Modo Usurio ................................................................................. 34
2.7.2 - Modo Kernel ................................................................................... 34
2.8 - Memria Virtual.......................................................................................35
2.9 - Linux Foundation.....................................................................................36
2.10 - Sistemas de Arquivos .............................................................................37
2.10.1 - Partio ......................................................................................... 38
2.10.2 - Journaling...................................................................................... 39
2.11 - Tipos de Arquivos ..................................................................................40
2.12 - Filesystem Hierarchy Standard (FHS) ......................................................41
2.13 - As Distribuies do Linux.......................................................................44
2.14 - Onde Encontrar Ajuda ...........................................................................47
2.14.1 - As Man Pages ................................................................................ 47
2.14.2 - As Info Pages ................................................................................. 49
2.14.3 - O Comando Whatis ...................................................................... 50
2.14.4 - O Comando Apropos .................................................................... 50
9
Linux - Fundamentos 2.14.5 - A Opo --Help ............................................................................ 51
Exerccios.........................................................................................................52

Captulo 3 - Tarefas Essenciais do Administrador ...............................................54


3.1 - Comandos Bsicos ...................................................................................54
3.1.1 - Obteno da Ajuda do Linux .......................................................... 54
3.1.2 - Gerenciamento de Diretrios e Arquivos ......................................... 55
3.2 - Gerenciamento de Grupos ......................................................................62
3.2.1 - Adio de Grupos ........................................................................... 62
3.2.2 - Remoo de Grupos ....................................................................... 63
3.3 - Gerenciamento de Usurios ....................................................................64
3.3.1 - Adio de um Novo Usurio ........................................................... 64
3.3.2 - Gerenciamento de Senha de um Usurio ........................................ 65
3.3.3 - Alterao de um Usurio Cadastrado .............................................. 66
3.3.4 - Remoo de um Usurio Cadastrado .............................................. 67
3.4 - Gerenciamento de Programas ..................................................................67
3.4.1 - RPM................................................................................................ 67
3.4.2 - Apt.................................................................................................. 69
3.4.3 - Instalador Prprio............................................................................ 69
3.4.4 - Cpia .............................................................................................. 70
3.4.5 - Instalao de Pacotes ...................................................................... 70
3.4.6 - Atualizao de Pacotes .................................................................... 71
3.4.7 - Remoo de Pacotes ....................................................................... 72
3.5 - Monitoramento do Sistema ......................................................................73
3.5.1 - CPU ................................................................................................ 73
3.5.2 - Memria ......................................................................................... 77
3.5.3 - Disco .............................................................................................. 79
3.5.4 - Rede ............................................................................................... 80
3.6 - Arquivos de Mensagens e Logs do Sistema ...............................................82
3.7 - Servios (Daemons) .................................................................................84
3.7.1 - Chkconfig ....................................................................................... 84
3.7.2 - Service ............................................................................................ 86
3.8 - Gerenciamento de Processos ...................................................................87
3.8.1 - Kill e killall....................................................................................... 88
3.9 - Superusurio ...........................................................................................89
Exerccios.........................................................................................................93
10
Captulo 4 - Instalao ........................................................................................94
4.1 - Introduo ...............................................................................................94
4.2 - Preparao para Instalar ..........................................................................94
4.3 - Instalao ................................................................................................95
Exerccios.......................................................................................................111

Captulo 5 - Inicializao e Desligamento do Linux ..........................................112


5.1 - Inicializao...........................................................................................112
5.2 - Gerenciadores de Boot (Boot Loaders) ...................................................113
5.2.1 - LILO.............................................................................................. 113
5.2.2 - GRUB ........................................................................................... 114
5.2.3 - Inicializao em Modo Monousurio ou de Manuteno .............. 116
5.2.4 - Desligamento ................................................................................ 118
Exerccios.......................................................................................................122

Captulo 6 - Sistemas de Arquivos ....................................................................123


6.1 - Montagem e Desmontagem ...................................................................123
6.2 - Tipos de Arquivo ...................................................................................126
Exerccios.......................................................................................................129

Captulo 7 - Shell como Ferramenta do Administrador ....................................130


7.1 - O Que o Shell ....................................................................................130
7.2 - Shell Script ............................................................................................131
7.3 - Utilizao de Shell e Shell Script ............................................................132
7.3.1 - Exibio ........................................................................................ 132
7.3.2 - Variveis........................................................................................ 135
7.3.3 - Entrada de Dados.......................................................................... 142
7.3.4 - Passagem de Parmetro para o Script Shell .................................... 144
7.3.5 - Redirecionamento......................................................................... 147
7.3.6 - Comandos Condicionais e Operadores ......................................... 148
7.3.7 - Miscelneas .................................................................................. 152
7.3.8 - Comandos de Controle ................................................................. 154
7.3.9 - Trap .............................................................................................. 159
7.3.10 - Alias ............................................................................................ 160
7.3.11 - Funes ...................................................................................... 161
Exerccios ................................................................................................. 163 11
Linux - Fundamentos Captulo 8 - Administrao de Rede .................................................................164
8.1 - As Redes TCP/IP ....................................................................................164
8.1.1 - Pilha de Rede ................................................................................ 164
8.1.2 - Endereo de Rede ......................................................................... 166
8.1.3 - Portas ............................................................................................ 167
8.2 - Configurao do TCP/IP.........................................................................169
8.2.1 - Configurao do Hardware de Rede ............................................. 169
8.2.2 - O Uso do IP Dinmico - Cliente DHCP ......................................... 171
8.2.3 - Uso do IP Fixo............................................................................... 174
8.3 - Compartilhamento de Arquivos .............................................................178
8.3.1 - NFS - Compartilhamento com UNIX ou Linux ............................... 178
8.3.2 - Samba - Compartilhamento com Windows ................................... 180
8.4 - Login Remoto ........................................................................................183
8.4.1 - Configurao de um Servidor Telnet .............................................. 183
8.4.2 - Uso de um Cliente Telnet ............................................................. 184
8.4.3 - Configurao de um Servidor OpenSSH ........................................ 185
8.4.4 - Uso de Clientes SSH .................................................................... 186
8.5 - Roteador de Rede..................................................................................187
8.6 - Servidor DHCP ......................................................................................190
8.7 - Servidor FTP ..........................................................................................191
8.8 - Servidor WWW .....................................................................................193
8.9 - Servidor NTP .........................................................................................196
8.9.1 - Sincronizao de um Cliente NTP em Linux ................................. 197
8.10 - Servidor DNS ......................................................................................198
Exerccios.......................................................................................................202

Bibliografia ........................................................................................................203

Marcas Registradas ...........................................................................................204

ndice Remissivo ...............................................................................................205

12
Prefcio

O Linux vem se tornando um sistema operacional cada vez mais amigvel e prtico.
multiusu rio, ro usto, est vel, resistente a fal as, totalmente customi vel e e vel, por
isso deve conquistar cada vez mais espao nas empresas e, no futuro, tambm nos lares.
s interfaces r ficas disponveis atualmente, tais como e N , esto suficiente
mente desenvolvidas para proporcionar ao usu rio lei o um controle eficiente do sistema
operacional e da mquina, deixando transparentes as rotinas mais complexas do Linux.
Utilitrios do Linux de todos os tipos, como editores de texto e de imagem, planilhas de
clculo, editorao eletrnica, e vrios outros no deixam nada a desejar com relao a
outros softwares consagrados nessas reas. O melhor que, na ampla maioria, so de uso
ratuito, redu indo si nificativamente o custo total de propriedade
Para a total utilizao e customizao do Linux, principalmente em sua verso servidor,
necessrio um conhecimento mais profundo do sistema operacional e de suas ferramentas
internas.
Este livro mostra os fundamentos do Linux. Vai da teoria prtica, apresentando os
conceitos e o uso dirio de cada ferramenta.
O captulo 1 aborda a histria do Linux, sua relao com o Unix e outros assuntos relacio-
nados. O captulo 2 trata da estrutura do programa, suas vantagens e aspectos iniciais.
O captulo 3 totalmente prtico. Mostra o dia a dia do administrador, as tarefas exigidas,
as ferramentas comumente utilizadas, comandos bsicos, gerenciamento de usurios
e grupos, monitoramento dos vrios aspectos do servidor, administrao de servios
(daemons) e outros itens interessantes e necessrios ao administrador.
A instalao do Linux em detalhes, com todos os passos necessrios, e a sua execuo de
forma or ani ada e eficiente so temas do quarto captulo o captulo tra os mtodos
para inicializar e desligar o servidor, introduz os gerenciadores de boot mais utilizados
U e I , como confi ur los e dicas de se urana am m so mostradas as
ferramentas para desligamento e reinicializao do Linux.
O captulo 6 trata dos sistemas de arquivos, como mont-los e gerenci-los. O stimo
captulo descreve o Shell e mostra ao administrador como utilizar essa ferramenta
poderosa para automatizar processos e tarefas dirias. Os principais conceitos so exibidos
e devidamente explicados, capacitando o leitor a construir scripts simples ou complexos,
conforme a necessidade.
captulo a ran e especificamente a administrao de redes, definindo protocolos,
instalao, confi urao, , , N , compartil amento de arquivos com
servidores Windows, login remoto, SSH, roteamento, FTP, NTP, DNS, servidor Web e
outros assuntos interessantes nessa rea, sempre com uma viso prtica.

Os autores 13
Sobre os Autores
Linux - Fundamentos

Walace Soares
Capixaba, formado em Matemtica, trabalha desde 1986 com tecnologia. Teve seu primeiro
contato com o mundo Unix no SCO Xenix, e desde ento no deixou de acompanhar a
evoluo desse sistema. Em 1999, conheceu o Linux por meio do Slackware, enfatizando
administrao e programao para Linux, principalmente com PHP, Apache, PostgreSQL
e MySQL. proprietrio da MWS Servios e Sistemas, empresa franqueada Bit Company,
voltada para a formao de profissionais de inform tica, inclusive em produtos inu

Gabriel Fernandes
Nascido em Florianpolis, formado em Eletrnica pela Escola Tcnica Federal e est
cursando especializao em Sistemas Microprocessados.
Trabalha com informtica desde 1999. autodidata e entusiasta do Linux desde 2002,
e nesse tempo desenvolveu desde pro etos de softwares at distri uies inu para fins
especficos
Atualmente scio-proprietrio da Duel Sistemas e analista de sistemas em empresa
privada, onde se dedica a solues e treinamentos em Linux.

14
1
A Histria

1.1 - UNIX
ara compreender o que UNIX, vamos voltar no tempo pelo menos uns anos, o suficiente
para tornar-se obsoleto como muitos sistemas, por exemplo, o MS-DOS criado na dcada de
1980, descontinuado h alguns anos, o qual no tem suporte para a maioria dos hardwares
atuais, restringindo o seu uso.
Para comear a entender um sistema com mais de 40 anos, cujo desenvolvimento iniciou-se
antes mesmo de existirem os computadores na forma como conhecemos atualmente, e ainda
consider lo sin nimo de confiana em solues corporativas, tente ima inar computadores
gigantes, mas gigantes mesmo, muito grandes, do tamanho de uma casa e at mesmo de um
est dio de fute ol taman o dessas m quinas dificultava a manuteno e tam m tornava o
ambiente mais propcio a problemas. Mas este no era o maior problema, pois alm do fator
hardware, cada um tinha o seu sistema operacional prprio, porque na poca os softwares eram
desenvolvidos para prop sitos especficos e no funcionavam em outros sistemas
Um computador atualmente muito barato se comparado aos computadores produzidos no
final da dcada de Naquela poca eles eram muito caros e a nica forma de desenvolver
um sistema para eles era aps sua compra. Para ter acesso a esses computadores, era necessrio
ser um estudante universitrio ou funcionrio de empresa de TI.
Com os avanos tecnolgicos, em 1969, uma equipe de desenvolvedores dos laboratrios Bell
Labs iniciou o que seria a soluo para o problema de compatibilidade entre sistemas diferentes,
criando um sistema operacional em linguagem de programao C em vez de Assembly (linguagem
de m quina , simples, eficiente e com a capacidade de reaproveitar partes especficas do c di o,
disponibilizando os mesmos recursos em diferentes sistemas.
O primeiro UNIX foi desenvolvido em um PDP-7 (Programmable Data Processor), um
equipamento com processador de dados programvel construdo pela DEC (Digital Equipment
Corporation), por Dennis Ritchie e Ken Thompson, desenvolvedores da equipe da Bell Labs. A
histria conta que a motivao para eles criarem o UNIX foi o fato de Ken ter escrito um jogo
chamado Space Travel para o Multics, sistema operacional desenvolvido pela Bell Labs com a
participao deles omo queriam o ar no , fi eram um c di o ase para rodar o o o,
que futuramente se transformaria no UNIX.
Linux - Fundamentos Na Figura 1.1 podemos ver Dennis Richie e Ken Thompson diante do conhecido UNIX
Genesis Machine, o PDP-7.

Figura 1.1 - PDP-7, a UNIX Genesis Machine, e os criadores do UNIX.


Fonte: http://blog.iso50.com/wp-content/uploads/2009/01/leopard-preview-server-1.jpg

Com a capacidade de reutilizao do cdigo, sua popularidade aumentou rapidamente,


pois at ento todos os softwares eram desenvolvidos para solues especficas, e precisavam
ser totalmente reescritos para outros equipamentos. No UNIX, a nica parte do cdigo que
precisaria ser alterada para funcionar em outro sistema (computador) era o ncleo do
sistema, hoje conhecido como kernel. Neste contexto, os softwares evoluram muito, pois
a portabilidade entre sistemas facilitou a continuao dos sistemas independentemente da
arquitetura de hardware.
Agora j era possvel separar o computador (equipamento) do software, pois um mesmo
equipamento poderia servir para mais de uma soluo, assim os softwares ganharam "vida
prpria", ou seja, puderam evoluir paralelamente aos hardwares. Com isso os fabricantes
rapidamente adequaram seus softwares especficos ao UNIX, pois assim aumentariam
muito as vendas.
Por estes e outros motivos, os sistemas UNIX ainda so desenvolvidos, esto em constante
evoluo e cada vez mais reconhecidos como sistemas estveis e seguros.

1.1.1 - A Filosofia UNIX


"UNIX basicamente um sistema operacional simples, mas voc precisa ser um gnio para
entender a simplicidade", disse Dennis Ritchie. A simplicidade do UNIX no encontrada
somente no seu ncleo original, mas tambm em todas as suas variantes diretas e
"reimplementaes" (clones). Esses derivados do UNIX so conhecidos popularmente como
16
sistemas operacionais Unix-Like, sendo de longe considerados os melhores existentes e

A H ist r ia
sempre em constante evoluo, pois so mantidos ininterruptamente h muitos anos. Alm
disso, so os sistemas mais antigos e difundidos do planeta.
No uma nica definio para a filosofia usada na construo do UNIX, mas em todas
elas encontramos o item de maior destaque, a modularidade, pois ele tem a capacidade de
gerenciar um sistema composto por componentes que podem ser arranjados e utilizados
de diversas maneiras distintas.
amos usar al umas citaes de mem ros importantes da comunidade para a udar a definir
a filosofia UNIX
Doug McIlroy, o criador dos pipes no UNIX (estudados mais adiante), no livro A Quarter
Century of UNIX, escrito por Peter H. Saluss, em 1994, resume:
sta a filosofia UNIX
Escrever softwares com apenas um propsito e fazer benfeito.
Escrever softwares que funcionem em conjunto.
screver softwares que manipulem u os de te tos, pois esta uma interface universal
Frequentemente isso abreviado pela comunidade para simplesmente:
Faa apenas uma coisa e faa bem."
Mike Gancarz, em seu livro The UNIX Philosophy, pu licado em , di que a filosofia
UNIX formada por um conjunto de princpios fundamentais e secundrios que asseguram
a qualidade dos sistemas UNIX.
Os princpios fundamentais, segundo ele, so:
 Pequeno belo.
 Construa programas que fazem uma coisa benfeita.
 Disponibilize uma verso prottipo o mais breve possvel.
 refira porta ilidade a efici ncia
 Armazene dados em arquivos simples, como arquivo do tipo texto.
 Use as funcionalidades disponveis do sistema para tirar vantagem.
 Use shell script para incrementar as funcionalidades e portabilidades.
 Evite fazer programas engessados.
 empre faa de seu pro rama um filtro
Os secundrios:
 Permita que o usurio personalize o ambiente.
 Desenvolva ncleo de sistemas operacionais pequenos e leves.
 Use letras minsculas e faa textos curtos.
 Salve as rvores.
17
Linux - Fundamentos  O silncio vale ouro.
 Pense paralelamente.
 A soma de todas as partes maior que o todo.
 Ateno para os 90% da soluo.
 O pior o melhor.
 Pense de forma hierrquica.
or fim, a contri uio de ric a mond, um rande ativista e formador de opinio da
comunidade, em seu livro The Art of UNIX Programming, em que di que a filosofia UNIX
se resume a uma lei de ferro, c amada iss rinciple, princpio do ei o si nificado
mais aceit vel para este acr nimo entre os autores eep It imple, tupid , que si nifica
"mantenha-o simples, estpido!".

Figura 1.2

Eric defende esse princpio como uma norma para a cultura UNIX. No livro, ele descreve
as re ras da filosofia UNIX so o seu ponto de vista compan e
 Regra da modularidade: escreva peas simples conectadas por interfaces simples.
 Regra da clareza: clareza melhor que inteligncia.
 Regra da composio: construa programas para serem conectados com outros
programas.
 Regra da separao: separe a confi urao dos mecanismos separe as interfaces da
implementao de algoritmos.
 Regra da simplicidade: projete para simplicidade; adicione complexidade apenas
onde necessrio.
 Regra da parcimnia: escreva um pro rama de taman o rande somente quando fica
claro, por demonstrao, que de outra maneira no seria possvel resolver o problema.
 Regra da transparncia: projete de forma a dar visibilidade, para fazer do processo de
depurao e inspeo uma tarefa fcil.
 Regra da robustez: a ro uste a fil a da transpar ncia e simplicidade
 Regra da representao: armazene o conhecimento na forma de dados, para que a
lgica dos programas possa ser robusta e estpida.
 Regra da menor surpresa: no projeto de interfaces, sempre faa aquilo que o menos
surpreendente.
18
 Regra do silncio: quando um programa no tem nada surpreendente para dizer, ele

A H ist r ia
no deve dizer nada.
 Regra do reparo: quando inevitvel falhar, falhe ruidosamente e o mais cedo possvel.
 Regra da economia: o tempo do programador caro; conserve-o em detrimento do
tempo da mquina.
 Regra da gerao: evite escrever cdigo; escreva programas que gerem cdigo quando
possvel.
 Regra da otimizao: faa prot tipo antes do refinamento oloque em funcionamento
antes de ser otimizado.
 Regra da diversidade: desconfie de todas as ale aes so re a e ist ncia de um modo
correto de fazer as coisas".
 Regra da extensibilidade: projete para o futuro, pois ele chegar antes do que voc
imagina.

1.1.2 - Variantes do UNIX


O UNIX nunca foi verdadeiramente gratuito, mas at a sua verso 6 era distribudo com
as fontes. Inclusive havia publicaes sobre o cdigo-fonte, sendo uma das mais famosas o
livro A Commentary on the Sixth Edition UNIX Operating System, escrito por John Lyons,
em 1977. Essa publicao comentava passo a passo as linhas do cdigo-fonte do UNIX
verso Nesse perodo de distri uio das fontes e consequente especificao formal para
sistemas UNIX, a in le UNIX pecification, mantida pela pen roup, um cons rcio da
indstria que se formou em 1996, propiciou o surgimento de diversas variantes do UNIX,
como Solaris da Sun Microsystems, a famlia BSD (FreeBSD, NetBSD, OpenBSD e Darwin)
que o ncleo do Mac OS X) e Linux.

entre essas variantes al umas so de acordo com a especificao e outras apenas se


comportam como um sistema UNIX, mas por dentro possuem suas prprias caractersticas.
Existem, portanto, dois grandes grupos de sistemas variantes de UNIX, sendo aqueles em
acordo com a in le UNIX pecification e os clones Um pro rama clone possui funes
similares a outro programa, porm tem um cdigo-fonte totalmente diferente.

Para descrever esses sistemas operacionais, o termo Unix-like frequentemente utilizado.


Na famlia daqueles descendentes diretos, ou seja, daqueles cujo cdigo-fonte diretamente
descendente do UNIX ori inal, que possuem caractersticas vias de UNIX e, por fim,
so descritos oficialmente como sendo UNIX, temos, por e emplo, IX desenvolvido pela
IBM), HP-UX (desenvolvido pela HP), IRIX (desenvolvido pela Silicon Graphics), Solaris
(desenvolvido pela Sun Microsystems), entre outros.
Na famlia de clones do UNIX, ou dos Unix-like, existem muitas semelhanas com os UNIX
que al uns administradores consideram um sistema UNIX, porm oficialmente a maioria
dos seus criadores no os caracteriza como um sistema UNIX. Alguns sistemas Unix-like
clone so os da famlia BSD (FreeBSD, NetBSD, OpenBSD e Darwin) e tambm o Linux,
MINIX, QNX e Cygwin.

19
1.2 - Linux
Linux - Fundamentos

Linux no UNIX!
O ncleo Linux uma reinveno ou "reimplementao" do ncleo do UNIX idealizada
por Linus Torvalds, um estudante da Universidade de Helsinque na Finlndia, que em 3 de
julho de 1991 divulgava sua aventura na criao de um pequeno sistema operacional, no
qual estava trabalhando h alguns meses.
Na Figura 1.3 podemos ver Linux Tovarlds.

Figura 1.3 - Criador do Linux.


Fonte: http://www.coated.com/wp-content/uploads/2010/02/linus-torvalds.jpg

Naquela poca, ele procurava a colaborao de outras pessoas com sugestes porque seu
sistema era muito parecido com o Minix, um sistema operacional Unix-like, e j tinha algo
funcional, pois estava migrando dois programas superimportantes do projeto GNU, sendo
o compilador C e o Shell, mas ainda havia muito a fazer e ele queria melhorar.
Bons programadores inventam programas; grandes programadores reinventam.
O Linux foi desenvolvido em conformidade com o POSIX, um padro para construo
de sistemas operacionais criado para normatizar o UNIX. Ele funciona em centenas de
arquiteturas diferentes e compatvel com a maioria dos softwares disponveis para UNIX. A
verso 0.01 do Linux tinha um desenvolvedor e aproximadamente dez mil linhas de cdigo
na linguagem C e algumas centenas de quilobytes, e hoje conta com uma comunidade
gigante de desenvolvedores, milhes de linhas e algumas centenas de megabytes de
tamanho, tudo sob a licena GNU GPL (abordada no item 1.5 - Free Software Foundation).
O Linux livre, de cdigo-fonte aberto, desenvolvido cooperativamente e mantido por
milhes de usurios e empresas espalhadas por todo o mundo.
le no a inveno do sculo, nem o inus o novo instein, pois tam m tin a dificuldades
e assuntos fora de seu domnio. Um ponto a ser observado que os computadores da
poca, apesar de difcil acesso, no eram to complexos se comparados aos computadores
atuais. Naquela poca havia poucas aplicaes e os recursos de hardware eram bastante
limitados.
20
O Linux foi construdo com base em um conceito j considerado ultrapassado na poca

A H ist r ia
por alguns engenheiros da computao, como, por exemplo, Andrew S. Tanenbaum,
criador do Minix, pois o ncleo do Linux monoltico, tornando o kernel uma entidade
indivisvel, apenas um nico "programa". Enquanto Linus "reinventava a roda", o pessoal
do projeto GNU j trabalhava no ncleo GNU Hurd, conhecido somente como Hurd, o
qual tem um formato diferente chamado de microkernel. Nele existe apenas uma pequena
entidade ncleo que conversa com uma coleo de servidores de funes distintas de
forma assncrona, porm todos utilizando o mesmo protocolo. Isso faz do ncleo um
sistema muito avanado e poderoso, no entanto mais difcil de depurar e mais suscetvel
a falhas. O GNU Hurd ainda est em desenvolvimento e mais informaes podem ser
encontradas no site oficial ttp www nu or software urd
Difcil acreditar que um projeto no qual todos contribuem pode dar to certo.
Assim, o Linux possui muitas melhorias em relao ao UNIX, portanto no podemos dizer
que ele simplesmente um clone do UNIX. muito mais que isso. Trata-se de uma nova
entidade que no UNIX; como ele, mas no igual.
Alm da existncia do Linux, existem outros sistemas operacionais baseados no UNIX, ento
porque esses sistemas no so to populares quanto o Linux?
A melhor estratgia de Linus foi disponibilizar seu cdigo sob a licena GPL, da Free
Software Foundation (FSF), criada por Richard Stallman no incio da dcada de 1980,
instituio de cunho social que estimula e desenvolve software livre. A FSF mantm at
hoje o Projeto GNU, que desenvolveu clones de diversas aplicaes do UNIX. Quando
praticamente todas as ferramentas do Projeto GNU estavam prontas, com exceo do
kernel, surgiu o kernel do Linux.
importante lembrar que as pessoas apenas usam programas. Um sistema operacional
no faz nada sozinho, mas quase ningum nota sua presena, pois ele existe para fazer os
programas funcionarem, e era o que faltava para o Projeto GNU libertar-se dos sistemas
UNIX.
O Projeto GNU completava o Linux, e este seria o caminho do Linux: viabilizar o uso das
ferramentas do Projeto GNU nos computadores residenciais sem nenhum custo, criando
uma nova era no desenvolvimento cooperativo. Assim as pessoas passam a ter liberdade
e condies de desenvolver aplicaes sem a necessidade de investimentos de grandes
empresas ou das universidades.
O Linus no foi o criador da comunidade de desenvolvimento aberto, mas o seu sistema
foi o grande impulsionador do aumento exponencial de colaboradores, pois at ento no
existia um sistema completo gratuito sob a licena GPL.

1.3 - Vantagens do Linux


Grande parte das vantagens do Linux em razo de ele ser um sistema Unix-like, ou seja,
herda de seu antecessor caractersticas importantes. Entretanto, a primeira vantagem do
21
Linux - Fundamentos Linux destacada a seguir, e talvez uma das mais importantes, no encontrada no UNIX,
a saber:
 Gratuito: a licena GNU GPL (estudada na seo Free Software Foundation) garante a
li erdade e ratuidade do inu er ratuito si nifica que o usu rio no ter nen um
nus para baixar e instalar o sistema completo, inclusive os cdigos-fonte. Com o
avano da velocidade de conexo com a Internet, nem mesmo preciso pagar por um
CD ou DVD para adquirir o Linux, pois ele pode ser totalmente baixado da Internet na
maioria das distribuies.
 Comunidade: avendo ol os suficientes, todos os erros so triviais , por ric
S. Raymond, no manifesto The Cathedral and the Bazaar. Ao contrrio do que
a maioria pode pensar, voc ter mais opes de ajuda usando o Linux do que
qualquer outro sistema proprietrio. A comunidade do Linux muito grande, e h
vasta documentao e fruns disponveis na Internet que ajudam bastante na maior
parte das resolues dos problemas. Assim, os problemas com o sistema operacional
e aplicaes so depurados e resolvidos rapidamente pelos milhes de usurios e
desenvolvedores espalhados pelo mundo.
 Estvel: foi construdo para ser unbreakable, inquebrvel, ou seja, feito para nunca parar.
Essa caracterstica do Linux permite que ele seja usado em servidores de misso crtica,
alm de poder assumir novas confi uraes sem reiniciar m am ientes de servidores
com Linux comum encontrar computadores que no so reiniciados h meses.
 Seguro: mais uma herana do UNIX, o modelo de segurana do Linux amplamente
reconhecido por sua robustez e qualidade comprovada. Com o Linux voc pode
prote er desde sua empresa com instalaes de firewalls corporativos at seu des top,
to se uramente quanto o seu firewall
 Portvel: esta tambm uma das caractersticas importantes, oriunda do UNIX. A
portabilidade fundamental para a difuso de qualquer sistema. Com o Linux, um
fabricante de equipamento que no sabe o tipo de sistema operacional que a sua nova
mquina vai executar (mquina pode ser desde um computador at uma mquina de
lavar roupas) pode alterar o kernel Linux para funcionar em seu hardware, pois toda
documentao necessria est disponvel gratuitamente.
 Escalvel: um sistema Linux totalmente personalizvel, pois constitudo basicamente
de um kernel e pacotes de software. Essa caracterstica faz com que ele funcione em um
simples dispositivo mvel, como celulares e coletores de dados, e at em supercompu-
tadores. E ainda, se voc quiser fazer um sistema operacional para um novo processador
embutido ou apenas ressuscitar seu computador antigo, o Linux faz isso tambm.
 Antivrus: para qu sistema de permisses nativo do inu suficiente para torn lo
um sistema livre de vrus e ameaas. No Linux o sistema protegido inclusive em tempo
de e ecuo e para fa er qualquer ao que danifique as partes principais do sistema,
necessrio ter privilgio, ou seja, o suposto vrus ou worm, que um script malicioso, ter
de saber a senha do administrador do sistema antes de ter acesso a ele. Sem acesso aos
arquivos do sistema, a menos que algum lhe informe a senha, o worm nunca descobrir
sozinho, portanto apenas cuide para no ser vtima de engenharia social e nunca use o
seu des top com o usu rio administrador do sistema refira um usu rio normal, sem
22 privilgios.
 Flexvel: com as fontes livres para acesso de todos, muitas opes de personalizao e

A H ist r ia
confi uraes tornam o inu o sistema mais e vel que e iste, podendo adaptar se a
qualquer soluo, sem contar os milhares de softwares tambm de cdigo-fonte aberto
que o Linux carrega, impulsionando seu desenvolvimento a quem quiser colaborar e
alterar.

1.4 - Projeto GNU


GNU originalmente um mamfero africano, parecido com um bfalo, mas o nome
no tem nada a ver com o animal. O nome do projeto uma brincadeira irnica dos
programadores da poca. GNU o acrnimo de "GNU is not UNIX", e todo programa
livre que acompanhava os cdigos-fonte era um GNU, em contraposio ao Unix que, a
partir da verso 7, fechou o acesso ao cdigo-fonte. A mascote smbolo do projeto uma
caricatura da cabea do prprio boi gnu, como possvel ver na Figura 1.4.

Figura 1.4 - Smbolo do projeto GNU.

A ideia do projeto consiste na construo de um sistema operacional como o UNIX,


contendo somente pro ramas livres suficientes para su stiturem qualquer sistema no livre
existente, no caso o prprio UNIX. Esse sistema operacional GNU pretendia ser livre, sem
restries, de forma definitiva, podendo ser redistri udo por qualquer pessoa
Criado por Richard M. Stallman, em 27 de setembro de 1983, o projeto GNU, ou sistema
operacional GNU, era a estratgia para manter o mtodo como os programas eram
repassados na poca apenas entre seus prprios usurios, pois poucos se importavam em
proteger o cdigo-fonte do sistema.
O projeto, ento, comeou a escrever substitutos ou clones de programas importantes do
UNIX, como compilador, editor de textos, editor de planilhas, entre outros, ou seja, tudo
que era necessrio para compor um sistema operacional completo, porm livre.
Informalmente j havia uma comunidade de cooperao entre os desenvolvedores, ou
seja, quando algum queria usar um programa, solicitava pessoa que o desenvolveu
e normalmente ele era fornecido com os cdigos-fonte, e quando algum precisava de

23
Linux - Fundamentos ajuda, e no era muito difcil, recebia-a. Quanta confuso! Mas era assim mesmo. Uns
ajudavam os outros, pois o propsito era prtico, resolver problemas, e no comercial.
A histria conta que tudo comeou quando Richard era desenvolvedor e pesquisador
no MIT Lab AI (Massachusetts Institute of Technology Laboratory Articial Inteligency) e,
na dcada de 1970, deparou-se com um problema no driver de uma impressora e logo
decidiu melhor-lo e corrigir o problema, mas em contato com a empresa descobriu que
isso no seria possvel, pois os cdigos-fonte do driver eram fechados, e mesmo sabendo
que havia uma melhoria a ser implementada no driver e que ele seria capaz de faz-lo, a
empresa no liberou as fontes.
s tempos realmente estavam mudando No final da dcada de e durante a de ,
os usu rios comearam a fec ar seus c di os, muito por in u ncia do modelo comercial
de sucesso da Microsoft.
icrosoft de ill ates firmou sua preocupao e sua atal a com esses usu rios e
mtodos em uma carta enviada por ele ao Homebrew Computer Club, um clube criado
por programadores no Vale do Silcio. Bill defende o modelo proprietrio e compara o
compartilhamento de cdigo ao comunismo. Essa carta tinha o ttulo An Open Letter to
Hobbyists (Carta Aberta aos Entusiastas).
Diante dessa tendncia inevitvel, Richard idealizou o projeto GNU ou o sistema operacional
GNU. Ele acreditou que por ser um dos desenvolvedores de um sistema operacional criado
no MIT, em 1971, chamado de ITS (Sistema de Tempo Compartilhado Incompatvel,
Incompatible Tomesharing System, um trocadilho com CTTS, sistema operacional criado
anteriormente pela mesma instituio), e pela motivao de programadores dessa
instituio, ele tambm poderia desenvolver um sistema operacional e convidar pessoas
para ajud-lo gratuitamente em troca de poderem us-lo tambm gratuitamente.
O primeiro e talvez o mais importante programa livre criado pelo projeto foi o compilador
C, chamado de GCC (GNU C Compiler), pois com um compilador gratuito as portas para
as contribuies se multiplicavam, j que agora era possvel criar programas sem ter de
pagar pelos compiladores. Alm do GCC, que um dos grandes programas criados pelo
GNU, destaca-se tambm o GNU Emacs, um editor de texto muito difundido e utilizado
at hoje.
Uma lista completa dos projetos GNU pode ser vista no link: http://directory.fsf.org/GNU/.

1.5 - Free Software Foundation


undao para o oftware ivre uma or ani ao sem fins lucrativos com a
misso global de promover a liberdade de usurios de computadores e de defender os
direitos de todos os usurios de software livre." (Fonte: http://www.fsf.org/)
am m criada por ic ard tallman, essa fundao financia o pro eto NU odo
projeto tem um custo e para no vincular o projeto GNU a nenhuma empresa, Richard
criou a fundao para angariar fundos para seus projetos de software focados na liberdade
24
da informao para fomentar o conhecimento. Esta a principal caracterstica dos softwares

A H ist r ia
livres, diferentemente de um software open source, cujo propsito fomentar o seu prprio
desenvolvimento, disponibilizando as fontes para que possam ser analisados e alterados.
Para garantir as liberdades dos softwares, a FSF precisava de um documento formal, portanto
ela criou a licena GNU GPL (General Public License), que em linhas gerais fornece quatro
liberdades:
1. Liberdade de executar o programa para qualquer propsito.
2. Liberdade de estudar como o programa funciona e adapt-lo s suas necessidades.
3. Liberdade de redistribuir cpias de modo que voc possa ajudar o seu prximo.
4. Liberdade de melhorar o programa e liberar os seus melhoramentos, de modo que
toda a comunidade se eneficie deles
Alm destas, existem outras licenas de uso da FSF, algumas comentadas a seguir:
 GNU AGPL (Affero General Public License): uma licena minimamente modificada
da GNU GPL para fornecer liberdade em softwares como servios (SaaS, Software as a
Service), softwares que no oferecem acesso direto ao binrio/cdigo-objeto.
 GNU LGPL (Lesser General Public License): a principal diferena da GPL que ela
permite a associao com programas que no estejam sob as licenas GPL ou LGPL,
inclusive software proprietrio.
 GNU FDL (Free Documentation License): licena para documentos e textos livres
publicados pela Free Software Foundation.

25
Linux - Fundamentos

Exerccios

1. omo eram e quais as dificuldades encontradas nos computadores na poca da criao


do UNIX?
2. Qual a caracterstica do UNIX que contribuiu para a sua difuso rpida? Explique.
3. que si nifica o termo Uni li e
4. Qual a diferena entre sistemas UNIX e Unix-like clone?
5. Como foi desenvolvido e como mantido o Linux?
6. Qual a relao do projeto GNU com o Linux? Explique.
7. Como podemos adquirir uma cpia do Linux?
8. Apesar da gratuidade, por que fcil encontrar ajuda sobre o Linux?
9. Como se proteger de scripts maliciosos no Linux?
10. ite duas caractersticas do inu que ustificam o uso em servidores
11. ual a finalidade do ro eto NU
12. Explique a licena GNU GPL.

26
2
Familiarizao com o Linux

2.1 - Windows e Linux


As chances de voc querer usar aplicativos do Microsoft Windows e do Linux simultaneamente
so gigantes. Existem muitas maneiras de rodar aplicativos Windows no Linux e tambm interagir
e utilizar aplicaes ou impressoras do Windows no Linux e do Linux no Windows.
Entre as possibilidades esto o fato de rodar os aplicativos do Windows em um desktop Linux por
meio de emuladores. Tambm possvel ter o Windows funcionando no Linux sob uma mquina
virtual e, se preferir, ao instalar o Linux voc pode continuar com o Windows instalado da forma
como estiver. Diferentemente do Windows, pois se instal-lo em uma mquina que possua o
Linux, pode ter certeza de que a instalao do Windows vai pelo menos tornar inacessvel o
Linux se voc no tiver um conhecimento mais avanado.
O Windows sistema operacional fcil de usar, desta forma dominou o mercado de desktops
no mundo, com capacidade de encurtar a distncia entre o usurio e o mundo da informtica.
inu uma plataforma com infraestrutura confi vel e escal vel, muito poderosa e tam m
utilizada para desktops, com designer muito atraente e moderno.

2.2 - POSIX
IX uma si la que si nifica orta le peratin stem Interface Interface ort vel entre
istemas peracionais la uma coleo de re ras definidas pelo I Institute of lectrical and
letronics n ineers , a maior instituio profissional do mundo dedicada ao avano e e cel ncia
das inovaes tecnolgicas, que normatiza uma interface entre programas e o sistema operacional.
O IEEE responsvel por determinar diversas normas e padres para equipamentos e sistemas
aceitos por todo o mundo.
A norma IEEE 1003 tem o objetivo de garantir uma interface padro entre programas e o sistema
operacional, fazendo com que qualquer programa desenvolvido para um determinado sistema
operacional padro POSIX funcione em todos os sistemas operacionais desse padro. Um sistema
operacional no padro POSIX deve garantir a portabilidade do cdigo-fonte de um programa,
para que ele funcione em qualquer outro sistema operacional que tambm esteja no padro.
Linux - Fundamentos Sabemos que POSI vem do acrnimo IX, mas e o X ais uma ve temos a in u ncia
de Richard M Stallman, pois o nome foi sugerido por ele a pedido da IEEE, por volta de
1985, quando normatizaram o padro de API para as variantes de sistemas UNIX, o POSIX.
X representa o vnculo com o UNIX era pra e colocar um X no final de pro ramas UNIX
e suas variantes.

2.3 - Kernel
Kernel o ncleo do sistema operacional, o programa ou uma coleo de programas
mais importante dentro de um computador, porm no visto nem tampouco utilizado
diretamente pelos usurios em sua maioria.
O ncleo tem como objetivo principal criar uma camada de abstrao entre o hardware e o
software, viabilizando o acesso aos dispositivos de hardware, como memria, processador
e perifricos, e, consequentemente, viabilizar o funcionamento dos programas. So os
programas que interagem diretamente com o ncleo. Podemos dizer que um sistema
operacional no serve para nada sem os programas. A Figura 2.1 permite visualizarmos
uma concepo bsica do kernel.
Basicamente o sistema operacional faz o reconhecimento dos dispositivos de hardware
e inicia o primeiro processo ou pro rama, depois ele fica esperando uma c amada de
um programa ou de uma interrupo por hardware, como quando digitamos uma tecla
no teclado s duas principais tipificaes de n cleos so os n cleos monolticos e os
microncleos.
Um ncleo monoltico apenas um programa no qual rodam todos os servios do sistema
operacional em uma mesma rea de alocao da memria. Esse mtodo considerado o
mais fcil de programar, porm sua principal desvantagem que o tamanho dos ncleos
pode ficar muito rande e difcil de manter por ser uma entidade indivisvel elo mesmo
motivo, um defeito em um determinado driver de um dispositivo pode comprometer todo
o sistema e travar, o famigerado Kernel Panic no caso do Kernel Linux. Na Figura 2.2
podemos ver um diagrama bsico do ncleo monoltico.

Figura 2.1 - Ncleo do sistema e suas conexes. Figura 2.2 - Diagrama de um ncleo monoltico.

O microncleo uma tecnolo ia muito mais sofisticada onsiste em um pro rama


com um con unto mnimo de instrues que erenciam os servios sicos do sistema
operacional; os outros servios so programados no nvel de usurio, s vezes em linguagem
de alto nvel. Neste contexto teremos um ncleo mnimo fcil de manter e uma coleo
28
de servidores que se comunicam com ele em um nico protocolo. Assim o microncleo

Famil iar iz a o c om o G N U / Linux


permite diferentes sistemas operacionais em um mesmo ncleo e tambm alternar entre
um sistema e outro dinamicamente, mantendo os dois funcionando ao mesmo tempo. No
entanto, esse modelo tende a ser mais susceptvel a falhas e mais difcil de depurar.

Figura 2.3 - Diagrama bsico de um microncleo.

O kernel do Linux possui um desenvolvimento colaborativo, mas as principais diretivas e


partes mais difceis do ncleo ainda esto nas mos de Linus. Ele conta com a ajuda de um
rande cola orador e con ecedor do ernel, o lan o , que a uda no pro eto desde suas
verses alfas e betas, em 1991.
i ura mostra lan o

Figura 2.4 - Alan Cox, o segundo homem no comando do Kernel Linux.


onte ttp upload wi imedia or wi ipedia commons e e lan o at p

lm de lan o , e istem outras fi uras importantes no desenvolvimento do ernel inu


Um destaque ave iller, que enviou mais de cola oraes para o ernel inu ,
respons vel pela pil a I do inu e tam m contribuiu com muitos drivers para
placas de redes.
O Kernel Linux possua uma sistemtica de numerao de verso simples, at o Kernel
2.6, em que o primeiro nmero indicava a verso principal do kernel, e o segundo as
modificaes si nificativas e sua esta ilidade, pois verses est veis tin am o se undo
nmero par e as instveis ou em desenvolvimento, mpar. Por ltimo, o terceiro nmero
si nificava pequenas correes e su misses
A partir do Kernel 2.6 a nomenclatura das verses passou a ser controlada por um apndice
rc , que si nifica release candidate, ou se a, uma verso candidata a estvel omo
exemplo podemos ter a verso 2.6.35 estvel e a verso 2.6.36-rc3 em desenvolvimento,
ou seja, candidata a uma verso estvel para o Kernel 2.6.36.
Mais informaes sobre o Kernel Linux podem ser encontradas em http://www.kernel.org.
29
2.4 - Shell
Linux - Fundamentos

ell, em in l s, si nifica conc a ste nome fa aluso ao fato de ele ser a entidade
que envolve o kernel do sistema, como uma espcie de concha mesmo. uma classe
intermediria porque, de maneira genrica, est entre o computador e os usurios. Tambm
podemos dizer que ela uma interface entre o usurio e o sistema operacional. O Shell
o primeiro aplicativo executado ao efetuar o login no sistema. Ele responsvel por muitas
outras tarefas repetitivas, a fim de aliviar o uso do ernel e li er lo para cuidar de recursos
mais importantes.
O Shell funciona como um interpretador de comandos, ou seja, possui uma linguagem de
programao interpretada, possibilitando o uso de scripts que faam tarefas teis como se
fossem programas. A vantagem de usar o Shell para automatizar tarefas e resolver problemas
est em sua relativa simplicidade de programao e linguagem de alto nvel.
Como ele faz a interface do usurio com
o sistema operacional, o nico caminho
que os programas possuem para alcanar
o kernel do sistema, pois todos os progra-
mas precisam trocar mensagens com o
kernel para funcionar normalmente, no
entanto no possvel chegar at o kernel
diretamente, apenas ap s a filtra em do
Shell. Ele interpreta os comandos digita-
dos no teclado, verifica as sinta es forma
como o comando foi escrito) e prepara o
comando para a execuo. A Figura 2.5
mostra um diagrama de peas do sistema, Figura 2.5 - Diagrama bsico
em que podemos visualizar a posio do das peas do sistema.
Shell nesse contexto.
O Shell possui uma ordem de execuo dos comandos, cujas principais tarefas vamos
entender rimeiramente ele verifica a lin a de comando, identificando os caracteres
especiais sm olos reservados que possuem si nificado na interpretao da lin a, em
seguida ele procura na linha um comando ou uma atribuio; s vezes pode haver os
dois. Comando o conjunto de palavras ou smbolos digitados no prompt do Shell. Ele
separado por espaos e normalmente a primeira parte o nome do programa que queremos
e ecutar le pe a esse nome e verifica se o pro rama e iste aso ele no e ista, o ell
retorna uma mensa em de erro caso ele e ista, verificam se as permisses do pro rama
Havendo permisso de execuo desse programa para o usurio, ento lido o restante
do contedo do comando na seguinte ordem: primeiramente os parmetros, depois os
redirecionamentos e por ltimo as variveis.
Uma atri uio consiste nas definies de vari veis, ou se a, o recurso que permite ao
usurio a criao de variveis diretamente no Shell, as quais podem ser usadas enquanto
a sesso atual estiver aberta. O Shell procura a existncia de dois campos separados pelo
sinal de igual (=) sem espaos entre eles. Se houver, ele entende que uma atribuio.
30
p s esses passos o ell verifica se redirecionamentos, que a capacidade de o ell

Famil iar iz a o c om o G N U / Linux


enviar o retorno dos comandos para sadas diferentes. Um exemplo prtico salvar o
contedo do comando em um arquivo texto, em vez de simplesmente exibi-lo na sada
padro.
ora o ell verifica se e istem vari veis no comando e as su stitui pelos seus valores
armazenados em memria anteriormente por uma atribuio, e tambm substitui os
metacaracteres por seus valores. Metacaracteres so caracteres que facilitam, em alguns
comandos, por exemplo, copiar todos os arquivos de uma pasta para outra. Em vez de
colocarmos todos os nomes de arquivos, podemos simplesmente usar o metacaractere
asterisco (*), pois o Shell vai substitu-lo pelo nome de todos os arquivos na pasta.
erminados esses processos, o ell monta a lin a de comando formatada e filtrada para
enviar ao kernel, que executa o comando em um novo Shell. Enquanto o programa est
sendo executado, o Shell principal, aquele que formatou e enviou o comando ao kernel,
fica inativo, a uardando o fim da e ecuo do pro rama o trmino da e ecuo do
processo, juntamente com o segundo Shell que carregou esse programa, o Shell principal
assume novamente o controle e fica a uardando um novo comando
Cada usurio pode utilizar o Shell que desejar e tambm possvel, a partir de um Shell,
invocar outro. Como vimos anteriormente, o prprio Shell faz isso automaticamente para
executar os programas, e trabalha com ele normalmente. Isso possvel porque o Shell,
apesar de realizar diversas tarefas importantes, apenas mais um programa do sistema
operacional.
Existem vrios tipos de Shell. Os mais conhecidos so sh, bash, csh e ksh. Todos podem
conviver juntos em um mesmo sistema operacional do tipo UNIX, como o Linux. A seguir
temos uma breve descrio deles:
 sh - Bourne Shell: lanado em 1977, concomitantemente ao UNIX verso 7, foi
desenvolvido pela equipe de desenvolvedores da AT&T Bell Labs. Foi durante muitos
anos o Shell padro do sistema operacional UNIX. conhecido como Standard Shell
porque durante muito tempo ele foi o nico Shell existente.
 bash - Bourne Again Shell: um dos mais modernos e mais utilizado atualmente,
pois alm de ser o Shell padro para sistemas Linux, tambm muito poderoso. Muito
difundido, esse Shell tem vasta documentao e exemplos disponveis, alm de ser
uma tima ferramenta para administradores do sistema. Mais adiante abordaremos o
uso do Shell como apoio as tarefas do administrador.
 ksh - Korn Shell: mais um projeto realizado pela equipe de desenvolvedores da AT&T
Bell Labs, uma evoluo do Shell sh (Bourne Shell), pois tem todas as facilidades dele
e apresenta muitas outras novidades. totalmente compatvel com o Bourne Shell,
portanto uma boa opo para usurios mais avanados acostumados com ele.
 csh - C Shell: se tivssemos de elencar o mais complexo para usurios novatos, sem
d vida este esenvolvido pela Universidade de er ele , no final da dcada de ,
para os sistemas BSDs, tem sua sintaxe de comandos muito prxima da linguagem C.
De fato, esse Shell para usurios verdadeiramente experientes, pois no compatvel
com nenhum dos demais Shells apresentados aqui.
31
2.5 - Multitarefa
Linux - Fundamentos

Multitasking ou multitarefa em um sistema operacional refere-se ao poder de executar


vrios processos, programas ou tarefas simultaneamente em um nico computador,
aparentemente sem interferncia de um no outro. Portanto, cada processo tem a percepo
de que ele o nico em execuo no computador e que possui poder exclusivo sobre
todos os servios ofertados pelo sistema operacional, o kernel.
A quantidade de programas ou processos que podem ser executados ao mesmo tempo
depende de diversos fatores, como o tamanho da memria, o clock do processador e o
tamanho dos programas.
Em um sistema operacional bem construdo, o kernel, que um controlador de processos,
deve estar totalmente protegido, assim como os processos tambm devem estar totalmente
independentes uns dos outros, pois quando houver um problema em determinado
processo, ele no in uencia os outros nem tampouco o ernel ssim, um pro rama no
far o outro falhar e, consequentemente, o sistema operacional tambm no.
importante saber que um processador executa apenas uma funo por vez, portanto a
multitarefa concebida por uma tcnica chamada timeslice (fatia de tempo), que alterna o
uso do processador rapidamente em velocidades muito altas, entre os vrios processos em
execuo. Para entender melhor, podemos analisar um sistema unitasking ou monotarefa.
O famigerado MS-DOS um sistema monotarefa. Nele o processador permanece inativo
at que o recurso do sistema solicitado pelo processo esteja disponvel, reduzindo
si nificativamente o desempen o do sistema
m termos pr ticos, ao enviar um comando para uma impressora, o processador ficaria
inativo, inoperante at que ela estivesse disponvel, em linha. No multitarefa os processos
ficam na mem ria principal, a mem ria , fa endo com que ele atenda imediatamente
al um outro processo, em ve de ficar esperando al uma resposta ou dispositivo
A maioria dos sistemas operacionais multitarefa. As verses antigas do Windows e
Macintosh usavam a multitarefa cooperativa, que era gerenciada pelos prprios processos,
que deveriam ceder voluntariamente o controle para outros programas em determinados
momentos. Um grande problema que nesse modelo um programa mal escrito poderia
falhar todo o sistema, pois caso ele parasse de responder e no fornecesse o comando do
ernel para o outro processo, provavelmente o ernel tam m ficaria inacessvel
Os sistemas Linux, UNIX, variaes do UNIX, Windows 2000 ou superior e Mac OS X
utilizam um modelo muito mais estvel de multitarefa, chamado multitarefa preemptiva,
por antecipao. Esse mtodo reorganiza a maneira como as tarefas sero executadas pelo
processador. Nesse formato o kernel mantm em memria um registro do contexto atual
de cada processo, uma foto rafia de todos os processos em e ecuo, c amado rvore de
processos.
A Figura 2.6 mostra uma estrutura em rvore. A partir da rvore e do atributo prioridade
existente em cada processo, o ncleo do sistema calcula o tempo que deve fornecer a
cada um deles, o timeslice, criando uma fila de processos uando terminar o tempo
32
de um processo, o ncleo cede o controle do processamento para o prximo e assim

Famil iar iz a o c om o G N U / Linux


sucessivamente at c e ar ao fim da fila e retornar para o topo
Entretanto, o kernel do Linux no alterna entre um processo e outro somente quando
estoura o timeslice. Ele tambm alterna quando o processo decide acessar um recurso ou
dispositivo, pois isso faz com que ele durma (sleep) enquanto aguarda o recurso, ento o
kernel passa o comando para a prxima tarefa. Um terceiro motivo seria em funo do uso
do pipe, que a possibilidade de utilizar as informaes de sadas de um processo como
dados de entrada de outro.
A multitarefa pode ser observada facilmente em ambientes Linux e Windows quando
utili amos uma interface r fica, pois podemos a rir v rios pro ramas diferentes em anelas
diferentes simultaneamente, sem que um interfira diretamente em outro

Figura 2.6 - Exemplo de rvore de processos.

2.6 - Multiusurio
Multiuser ou multiusurio a capacidade de haver diversos usurios em um mesmo sistema
operacional. A multitarefa possibilitou que vrios usurios utilizassem o mesmo computador
simultaneamente por meio de terminais virtuais ou remotamente.
No Linux existem dois tipos de usurios, sendo o normal e o superusurio. Este ltimo o
administrador do sistema e chama-se root.

33
Linux - Fundamentos O root possui permisso para acessar todos os arquivos do sistema sem nenhuma restrio,
inclusive incluir, editar e excluir arquivos dos outros usurios. J os usurios normais possuem
diversas restries de acesso a arquivos do sistema, como os arquivos de confi urao e
dispositivos, alm de restries de espao em disco, memria, entre outras. Vale ressaltar
que um arquivo criado por um usurio normal tem restrio para ser acessado por outro
usurio normal, ou seja, os arquivos podem ser acessados pelo seu dono e pelo root, mas
seu acesso pode ser proibido a outros usurios normais ou no.
As propriedades relacionadas aos usurios esto gravadas em cada um dos arquivos
existentes no sistema. Como no Linux podemos considerar que tudo tratado como
arquivo, essa estrutura de permisses contempla um total controle do sistema por parte do
superusurio, pois em cada arquivo, diretrio ou dispositivo podemos alterar trs nveis de
permisses, sendo aqueles relacionados ao dono do arquivo, ao grupo de usurios ao qual
o dono pertence e a todos os outros usurios.

2.7 - Modo de Execuo


No Linux, como na maioria dos sistemas modernos, existem dois modos distintos de
execuo que o processador do sistema pode assumir, sendo o Modo Usurio (User Mode)
e o Modo Kernel (Kernel Mode). Eles determinam a restrio de acesso a todos os recursos
do sistema. Vamos entender a diferena entre os dois modos.

2.7.1 - Modo Usurio


Modo que inicia processos sem privilgios, como quando executamos uma instncia de
um pro rama com usu rio normal do sistema No ter privil ios si nifica estar proi ido de
realizar algumas tarefas, como acessar partes de memria alocadas pelo kernel ou drivers
de dispositivos do sistema. Devido a essa proteo, as falhas no modo de usurio so
normalmente recuperveis. Quando um processo estiver sendo executado nesse modo e
houver a necessidade de utilizar servios providos pelo kernel, como acessar mais memria do
que aquela alocada para os programas de usurios, o modo chaveado automaticamente e
temporariamente para o Modo Kernel. Quando o kernel terminar de processar a requisio,
ele retorna imediatamente o processo para o modo normal, garantindo que somente o kernel
tenha acesso a todos os recursos do sistema. Vale destacar que a maioria dos programas em
execuo no seu computador provavelmente executada no Modo Usurio.

2.7.2 - Modo Kernel


Quando estamos nesse modo, assume-se que estamos executando um software
verdadeiramente seguro, por isso todo o controle do hardware cedido a esse software.
Problemas nesse modo de execuo certamente travam todo o sistema, por isso esse modo
reservado para o nvel mais baixo de funes do sistema, como, por exemplo, um driver
de dispositivo ernel do inu um software confi vel e possui controle total de tudo
que acontece no sistema. Neste contexto, todos os outros programas so considerados
no confi veis uando um pro rama e ecutado em modo normal necessitar de al um
34
recurso do sistema restrito ao modo kernel, esse programa precisa fazer uma chamada para

Famil iar iz a o c om o G N U / Linux


que o kernel execute a funo e disponibilize o recurso, o que chamado de system call
(chamadas de sistema).

2.8 - Memria Virtual


Em termos prticos, a memria virtual consiste em usar o disco rgido para simular uma
memria adicional memria principal existente no sistema. Essa memria utilizada para
armazenar partes do sistema operacional, programas e dados que esto sendo utilizados
atualmente ou que so necessrios com frequncia.
A memria principal a de acesso aleatrio (memria RAM), que um dispositivo de
hardware com chips de memria, conhecido com "pente de memria", os quais esto
conectados na placa-me por meio de slots. Os tempos de acesso a uma memria RAM
so extremamente rpidos e praticamente iguais para qualquer endereo de memria que
se deseja acessar, no entanto o acesso memria virtual localizada em discos rgidos ou
qualquer outro dispositivo de armazenamento possui tempos distintos e muito grandes em
relao RAM.
Um sistema operacional com memria virtual tem a capacidade de liberar espao na
memria principal, copiando os dados que no so imediatamente necessrios para o disco
rgido. Quando esses dados voltam a ser teis para a operao atual, ele copia novamente
para a memria principal. Ou seja, quando toda a memria principal do sistema estiver
ocupada, ele habilitar a troca (swap) de dados para o disco rgido e retornar a memria
quando necessrio. Isso aumenta a memria total disponvel no sistema. Sendo assim, com
ela possvel executar programas cujo tamanho seja superior ao da memria RAM e vrios
programas simultaneamente, pois cada vez mais os programas so maiores e ocupam mais
espao, acompanhando a evoluo dos dispositivos para disponibilizar novos recursos.
Os programas no conseguem diferenciar a memria principal da virtual e normalmente
os usurios tambm no percebem sua existncia. Por vezes ela pode ser percebida em
funo da perda de desempenho do sistema, quando usada em excesso, pois o processador
gasta mais tempo para copiar da memria para o disco rgido e do disco rgido para a
memria, desperdiando tempo que poderia ser utilizado para processar itens mais teis.
Esse efeito produzido pelo uso em excesso da memria virtual conhecido como thrashing
surra e afeta si nificativamente o desempen o do sistema, pois os discos rgidos no
foram concebidos para acessar dados to rapidamente como a memria RAM nem foram
projetados para acessar pores de dados to pequenas como um simples byte por vez.
No GNU/Linux o espao no disco rgido reservado para ser a memria virtual est localizado
em uma partio separada (partio uma seo lgica independente no disco rgido,
a ordada no item istemas de rquivos , que definida no momento da instalao e
identificada como partio wap Na maioria dos sistemas inu recomendado que a
partio Swap tenha duas vezes o tamanho da memria RAM do sistema.
O espao para troca dividido em segmentos chamados de pginas; cada pgina est
associada a um endereo de memria. Quando um endereo de memria chamado, a
35
Linux - Fundamentos
pgina enviada para a memria e depois retornada ao disco rgido quando ele no for
mais til por um longo perodo de tempo, deixando espao para referenciar outras pginas
da memria virtual.
Vale lembrar que, atualmente, a maioria dos sistemas operacionais utiliza memria virtual,
porque ela fornece um grande benefcio ao usurio a um custo muito baixo, se compararmos
o valor da mesma poro de memria RAM ao da memria virtual utilizada no disco rgido.

2.9 - Linux Foundation


inu oundation uma instituio sem fins lucrativos que promove, prote e e padroni a
o inu , disponi ili ando recursos unificados e os servios necess rios para o sucesso do
cdigo-fonte aberto, perante os sistemas de cdigo fechado. Fundada em 22 de janeiro de
2007, fruto da fuso de duas instituies muito importantes na histria do Linux, a FSG
ree tandards roup , um cons rcio de ind strias sem fins lucrativos, com o o etivo de
especificar e condu ir a adoo dos padres de c di o a erto, e a pen ource
Development Labs), com o objetivo de fomentar o desenvolvimento do Linux para uso
profissional
Os padres desenvolvidos por eles so licenciados pela GFDL (GNU Free Documentation
License) e os programas so livres.
A Linux Foundation mantm diversos grupos de trabalhos importantes. Os mais populares
so LSB (Linux Standard Base), MeeGo, Accessibility e Open Printing. Mais informaes
podem ser encontradas em http://www.linuxfoundation.org/.
LSB (Linux Standard Base)
O LSB um trabalho em constante desenvolvimento que padroniza a estrutura interna de
sistema operacional Linux, incluindo a hierarquia de arquivos. Ele baseado no POSIX,
in le UNIX pecification, e em uma srie de outros padres livres o etivo da
definir uma coleo de padres livres que permitam a compati ilidade entre distri uies,
viabilizando que qualquer programa desenvolvido em um Linux no padro LSB funcione
em qualquer outro sistema Linux, mesmo j estando no formato binrio. Alm disso, ajuda
a coordenar os esforos a fim de convencer desenvolvedores e fa ricantes a portarem seus
programas para um sistema operacional Linux.
Open Printing
um grupo de trabalho muito importante quando se fala em suporte impresso em
sistemas gratuitos como GNU/Linux e BSDs, alm de sistemas comerciais baseados
em UNIX, como Solaris e Mac OS X. Ele desenvolve o Foomatic, um sistema de
banco de dados orientado para a integrao de drivers de impressoras com softwares
livres spoolers dos UNIX. O repositrio de drivers disponveis pode ser visto em
http://www.openprinting.org/printers/.
pro eto est camin ando para um padro no oficial utili ado por diversas
distribuies GNU/Linux e atualmente possui por volta de 15 mil acessos dirios ao
36
site. Apesar do sucesso do projeto, ele precisa de colaborao urgentemente. O projeto

Famil iar iz a o c om o G N U / Linux


hoje mantido praticamente por uma pessoa, Till Kamppeter, tendo a ajuda de um
brasileiro, Vitor Baptista, nico estudante selecionado no Google Summer of Code 2010
(programa global que oferece bolsas a estudantes programadores para contriburem
com projetos de software de cdigo-fonte aberto). Para mais informaes, acesse
http://www.openprinting.org/.

2.10 - Sistemas de Arquivos


No inu , sistema de arquivos file s stem refere se comumente a mais de um item do
sistema importante entender e diferenciar os dois si nificados de sistemas de arquivos,
pois um est relacionado hierarquia de arquivos e subdiretrios e o outro ao formato em
que os dados so armazenados no disco.
Sistema de arquivos referindo-se hierarquia de arquivos e subdiretrios tambm
conhecido como rvore de diretrios, utilizada para organizar a disposio dos arquivos
no sistema Nessa rvore os su diret rios iniciam se no diret rio identificado como rai ,
representado pelo caractere "/" (barra para frente), o qual possui uma srie de subdiretrios
encadeados e arquivos le confi ura todo o sistema como arquivo, o que inclui no
somente arquivos de textos, imagens ou programas, mas tambm diretrios, parties e
dispositivos de hardware.
ssa estrutura possui um documento que especifica re ras para o sistema de arquivos com
o propsito de haver maior compatibilidade entre diferentes sistemas Linux, chamado
Filesystem Hierarchy Standard (FHS), estudado mais adiante. A Figura 2.7 mostra um
exemplo da estrutura em rvore do sistema de arquivos de um Linux.

Figura 2.7 - Exemplo de sistema de arquivos em rvore.

37
Linux - Fundamentos A partir de agora vamos nos concentrar no outro sistema de arquivos, aquele que representa
os tipos de armazenamento de dados ou de sistemas de arquivos.
A forma como os dados so organizados em um disco ou em uma partio dele constitui
sistemas de arquivos. Cada um dos tipos de sistema de arquivos possui suas prprias regras
de controle e alocao de espao em disco para arquivos e para os dados referentes a eles,
tais como o diretrio em que eles esto localizados, o seu nome e as permisses.
menor fatia de um sistema de arquivos so os inodes, nos quais ficam arma enados os
dados e as informaes dos arquivos. Basicamente os inodes so organizados em blocos de
controle e de dados. Cada inode armazena as informaes sobre os arquivos regulares, di-
retrios e outros arquivos do sistema, ou seja, nos inodes, alm dos dados sobre as proprie-
dades e localizao dos arquivos, temos o contedo desses arquivos nos blocos de dados.
Os arquivos normais so armazenados nesses blocos de inodes. Diretrio um arquivo
que contm uma lista com os endereos que apontam para os inodes de cada arquivo
e/ou subdiretrio existente no diretrio. A Figura 2.8 indica um exemplo genrico dessa
estrutura de inodes.

Figura 2.8 - Diagrama bsico de diretrio e inode.

Existem vrias implementaes de sistemas de arquivos no Linux, cada uma com suas
caractersticas prprias e propsitos. Antes de estudarmos um pouco as principais, vamos
entender o que so parties e conhecer um recurso muito importante utilizado nos
sistemas de arquivos mais modernos, chamado journaling.

2.10.1 - Partio
Um disco pode ser dividido em parties, que so fatias lgicas independentes. possvel
haver sistemas de arquivos diferentes, ou seja, num mesmo disco pode haver vrias
parties e cada uma delas ser tratada como uma unidade de disco independente no
sistema operacional. Quando compramos um disco novo, normalmente, ao instalar um
sistema operacional, essas parties so criadas automaticamente. Em um sistema Linux
temos pelo menos duas parties, sendo uma para os arquivos e outra para a memria

38
virtual, conhecida como partio de SWAP, a qual possui um sistema de arquivos com o

Famil iar iz a o c om o G N U / Linux


mesmo nome.
Um disco novo, que nunca foi utilizado, precisa ser inicializado. Inicializar um disco
si nifica asicamente criar a sua ta ela de parties, a qual indica o tipo, o taman o e a
posio das parties no disco, entre outras informaes, e mesmo que no haja nenhuma,
a estrutura deve ser criada. Aps criar uma partio, para poder disponibiliz-la para uso,
preciso escolher um tipo de sistema de arquivo e format-la.
Com a evoluo dos mtodos de armazenamento em disco surgiu uma nova camada
intermediria denominada LVM (Logical Volume Management), que tambm uma
partio. A LVM capaz de gerenciar diferentes tipos de sistemas de arquivos. Em termos
prticos, com a LVM criamos uma grande partio no sistema, a qual pode ter mais de um
Physical Volume (PV), ou seja, mais de um disco ou mais de uma partio LVM inicializada
como PV, e dentro do sistema operacional pode ser visualizada como um nico volume
chamado Volume Group (VG).
Em um grupo de volumes possvel criar diversos Logical Volumes (LV), parties virtuais que
devem ser formatadas com um dos sistemas de arquivos compatveis. Aps a formatao,
essa partio fica disponvel para uso como se fosse uma partio normal i ura
exibe um diagrama da LVM.

Figura 2.9 - Diagrama bsico da LVM.

A principal vantagem do uso de volumes lgicos sobre um grupo de volumes do tipo LVM
a possibilidade de redimensionar e mover essas parties sem perda de dados.

2.10.2 - Journaling
Um sistema de arquivos com journaling capaz de manter em um log, chamado journal,
todas as alteraes no sistema de arquivos antes de grav-lo efetivamente no disco.
Em termos prticos, sistemas de arquivos com journaling so mais resistentes a falhas
em arquivos e se recuperam mais rapidamente. Quando h um problema, como um
travamento ou desligamento indevido do sistema em um computador com sistema de
arquivos desse tipo, a probabilidade de os dados serem corrompidos de longe muito

39
Linux - Fundamentos menor e o tempo de recuperao do sistema si nificativamente menor se comparado a
um sistema de arquivos sem journal.
A recuperao do sistema torna-se mais gil nesses momentos adversos, porque com o
ournal o sistema de arquivos no necessita verificar todo o disco, mas somente os arquivos
contidos nesse log. Na Figura 2.10 podemos observar um diagrama tpico do funcionamento
de um sistema com journaling.

Figura 2.10 - Diagrama tpico de funcionamento do journaling.

Os sistemas de arquivos com journaling compatveis com Linux mais conhecidos so:
 Ext3: o ird tended file s stem uma reimplementao do famoso t , primeiro
sistema de arquivos popular do Linux. A principal diferena que o Ext3 tem
implementao para Journaling.
 Ext4: ourt tended file uma reimplementao do t que enfati ou a mel oria
das suas caractersticas e incluiu algumas funcionalidades importantes j existentes em
outros sistemas de arquivos com journaling, como o ReiserFS. atualmente o sistema
de arquivos mais popular nas distribuies Linux para desktop.
 JFS: Journaling FileSystem um sistema desenvolvido pela IBM inicialmente para o
AIX, uma das variantes de UNIX criada por eles, atualmente de cdigo aberto. Alm do
journal, uma caracterstica interessante a possibilidade de redimensionar as parties
do sistema sem a necessidade de reiniciar o computador.
 XFS: uma implementao de sistema de arquivos journaling iniciada pela Silicon
Graphics para a sua variante de UNIX chamada IRIX. Atualmente de cdigo aberto.
Dentre suas caractersticas, uma das mais importantes o fato de ser um sistema de
arquivos de 64 bits compatvel com 32 bits.
 Reiser4: uma evoluo do ReiserFS, o primeiro sistema de arquivos para Linux com
journal. Foi criado por Hans Reiser, mantido pela empresa Namesys e patrocinado pela
Novell e Linspire.

2.11 - Tipos de Arquivos


Para facilitar o entendimento dos tipos de arquivos no Linux, comum considerarmos que
tudo em um sistema Linux um arquivo, e se no for um arquivo, um processo.
pesar de esta afirmao ser verdadeira, e istem arquivos e arquivos , pois al uns no so
simplesmente arquivos, sendo especiais, como pipes e conexes sockets.
40
Para os usurios, o sistema de arquivos como uma hierarquia de diretrios que

Famil iar iz a o c om o Linux


contm outros subdiretrios e/ou arquivos. Neste contexto, os arquivos e subdiretrios
so identificados pelo nome e os su diret rios iniciam se por , con ecido como root,
director root ou diret rio rai para o ernel do inu , no sistema de arquivos no
estrutura ier rquica, diferenciao entre diret rios, arquivos e pro ramas, tampouco
identificao dos arquivos por nomes, ou se a, na viso do ernel, no diferena entre
um arquivo e um diretrio, uma vez que o diretrio somente um arquivo com informaes
dos arquivos que esto inseridos nele, conforme a ordado no item anterior so re sistemas
de arquivos.
Neste conte to, temos que os pro ramas, servios, ima ens e assim por diante so sempre
arquivos e dispositivos de entrada e sada, e enericamente todos os outros dispositivos
tam m so considerados arquivos para o sistema
s arquivos simples, aqueles que so somente arquivos, so con ecidos como arquivos
re ulares ou normais les possuem dados comuns como arquivos de te to puro, e ecut veis
ou pro ramas
s arquivos que no so simplesmente arquivos podem ser
 Diretrios: arquivos que cont m informaes em formato de lista so re os arquivos
contidos no diretrio.
 Arquivos especiais: um modelo de arquivo utili ado para entrada e sada de informa
es, por e emplo, para fa er refer ncia a drivers de dispositivos Normalmente esto
locali ados a ai o do su diret rio dev
 Links: um mecanismo que torna um diret rio ou arquivo visvel em v rios outros
diret rios da rvore de diret rios do sistema de arquivos, sem a necessidade de copi
lo para esses outros camin os
 Sockets: um tipo de arquivo especial, similar aos soc ets do I , que prov um
servio de rede se uro para comunicao entre os processos
 Pipes: funcionam de forma muito parecida com os soc ets, pois disponi ili am um
camin o para comunicao de um processo com outro, porm no semel ante a
uma cone o soc et

2.12 - Filesystem Hierarchy Standard (FHS)


padro para sistema de arquivos ierrquico um pro eto que era mantido pela
ree tandards roup, que se transformou em inu oundation, como vimos no item
A verso atual a e foi lanada em de aneiro de desde ento outras no
foram lanadas pro eto determina os principais diret rios e descreve os seus requisitos
de conte do para um sistema operacional NU inu e as variantes do UNIX
o etivo do padro criado no pro eto ser utili ado por desenvolvedores de distri uio
e de pro ramas e consultores de sistema ntretanto, esse documento serve apenas como
uma refer ncia, no sendo um manual nem tampouco um tutorial que define como
construir um sistema de arquivos ou ierarquia de diret rios em sistemas NU inu
41
Linux - Fundamentos e UNIX. A grande maioria das distribuies Linux no adota o padro proposto em sua
totalidade, principalmente alguns diretrios criados pelo FHS, como, por exemplo, o /srv/,
que nunca teve grande aceitao na comunidade GNU/Linux. Alguns sistemas GNU/Linux
e UNIX desprezam totalmente o padro FHS e outros fazem apenas algumas alteraes.
Em destaque podemos citar o Mac OS X, que mantm a maioria das funes dos diretrios
descritos no FHS, no entanto seus nomes so mais compridos e legveis, facilitando o
entendimento de usurios leigos.
O diretrio raiz, simbolicamente representado por "/", o nvel mais alto da hierarquia
de arquivos do eu conte do deve ser suficiente para iniciar, restaurar, recuperar e
reparar o sistema.
Na raiz so requeridos os seguintes diretrios:
 /bin: comandos binrios essenciais para todos os usurios. Alguns podem ser utilizados
tanto pelo administrador do sistema quanto pelos usurios normais, mas que sejam
necessrios quando no houver outros sistemas de arquivos montados. Pode conter
tambm comandos utilizados indiretamente por shell scripts e no deve haver
subdiretrios.
 /boot: arquivos estticos dos gerenciadores de boot. Ele deve conter tudo que for
necessrio ao processo de inicializao. Armazena os dados utilizados antes de o kernel
iniciar a execuo de programas em modo usurio.
 /dev: arquivos de dispositivos qui ficam os arquivos especiais ou dispositivos do
sistema.
 /etc: arquivos de confi urao especficos dessa instalao de sistema ost Um arquivo
de confi urao um arquivo local utilizado para ajustar as preferncias de operao de
um programa. Nessa pasta no pode haver nenhum programa executvel.
 /lib: este diretrio contm as bibliotecas compartilhadas essenciais e mdulos do kernel.
Ela deve conter as imagens das bibliotecas para a inicializao do sistema e para executar
os comandos binrios dos diretrios /bin e /sbin.
 /media: reservado para ser utilizado como diretrio inicial para os pontos de montagens
das mdias removveis. Ele deve conter os subdiretrios que so utilizados como ponto
de montagem para as mdias removveis como pendrive, DVD-ROM e CD-ROM.
 /mnt: ponto de montagem para sistemas de arquivos montados temporariamente. Esse
diretrio foi criado para os administradores de sistemas montarem sistemas de arquivos
quando for necessrio. O seu contedo deve ser de uso temporrio e local, e no pode
in uenciar de maneira nen uma o funcionamento de qualquer pro rama do sistema
 /opt: diretrio para a instalao de pacotes de programas de terceiros, que no fazem
parte da distribuio instalada. Dentro de /opt deve existir um diretrio para cada
programa instalado que precisa conter todos os binrios executveis desse pacote.
 /sbin: executveis do sistema. Programas essenciais para a administrao do sistema
ou que somente podem ser executados pelo administrador dele. So armazenados
em /sbin, /usr/sbin e /usr/local/bin. Nesses diretrios esto os programas essenciais
para a inicializao, restaurao, recuperao e reparao do sistema, alm daqueles
42
em in m usr s in devem ficar os arquivos e ecut veis que no so vitais para o

Famil iar iz a o c om o G N U / Linux


sistema e no /usr/local/sbin, os arquivos instalados localmente pelo administrador do
sistema.
 /srv: dados dos servios providos por esse sistema. Esse diretrio deveria conter os dados
especficos dos servios ofertados pelo sistema, no entanto vale ressaltar que ele nunca
foi adotado em larga escala, ou seja, no h distribuies populares que o utilizam.
 /tmp: arquivos temporrios. Ele disponibiliza um local para gravar os arquivos
temporrios dos programas, mas no se pode assumir que os arquivos e diretrios nele
hospedados sejam preservados entre uma execuo e outra do programa.
 /usr: hierarquia secundria. a segunda maior seo do diretrio raiz. Deve estar
compartil ado como somente leitura, ou se a, qualquer informao especfica
da m quina ou que varie com o tempo no pode ficar nesse diret rio acotes de
software muito grandes no devem ser instalados abaixo de /usr. Alguns subdiretrios
so requeridos em usr, como o in, no qual fica a maioria dos comandos do usu rio
o include para os arquivos de cabealhos dos programas em C; o lib que guarda as
i liotecas do usu rio o local para as instalaes locais, ficando va io ap s a instalao
o sbin para armazenar os programas no vitais do sistema e o share para os dados de
somente leitura independentes de arquiteturas.
 /var: contm arquivos de dados variveis. Inclui diretrios e arquivos de spool, de
administrao e logs, alm de arquivos transientes e temporrios. No pode ser
montado em uma partio separada. Em funo disso, quando o espao do diretrio
raiz pequeno, utiliza-se o /usr/var em vez de /var, no entanto um link para /var
sempre deve e istir para no aver con ito entre as definies de usr e var l uns
subdiretrios so requeridos, como o cache que armazena os dados de cache das
aplicaes; o lib que contm as informaes sobre o estado da varivel; o local para
os dados variveis de /usr/local; o lock para os arquivos de bloqueios; o log que
contm os arquivos e diretrios de log; o opt para os dados variveis de /opt; o run
que hospeda os dados relevantes dos processos em execuo; o spool que contm os
dados de spool dos programas e o tmp para armazenar os arquivos temporrios que
devem ser preservados mesmo aps o reincio do sistema.
Alm dos diretrios requeridos, temos os opcionais, entre os quais dois so encontrados em
praticamente todas as distribuies GNU/Linux. So eles:
 /root: local padro para hospedar os arquivos e preferncias de alguns programas do
usurio administrador do sistema. Ele pode ser trocado, no entanto o local mais
indicado para isso. Esse diretrio normalmente de acesso restrito ao administrador.
 /home: local padro para armazenar as pastas de documentos e preferncias de alguns
programas dos usurios. Normalmente cada usurio possui um subdiretrio com o
nome de usurio e abaixo dele esto esses arquivos. Na maioria das vezes o subdiretrio
do usurio s pode ser acessado por ele mesmo e pelo administrador do sistema.
A verso completa do FHS pode ser encontrada em http://www.pathname.com/fhs/.

43
2.13 - As Distribuies do Linux
Linux - Fundamentos

conceito de distri uio inu sur iu ao final de , quando as verses do ernel


Linux j estavam bastante evoludas e com caractersticas distintas do UNIX. Nessa poca
os usurios comearam a montar "kits de instalao" que acompanhavam uma srie de
pacotes, contendo o Kernel Linux e, principalmente, os aplicativos do projeto GNU,
transformando-se em um enorme pacote com dezenas de disquetes que os usurios
trabalhosamente baixavam pela Internet.
Esses pacotes enormes que se transformariam em distribuies foram inicialmente
construdos por estudantes e entusiastas de software livre, logo chamando a ateno de
empresas e instituies que fomentaram cada vez mais a ideia. Um detalhe importante
que nessa poca no havia nenhum padro estabelecido, como o LSB e o FHS vistos
anteriormente; logo, essas distribuies eram de acordo com o sentimento de cada um, o
que dificultava muito a sua difuso
Com o tempo a comunidade se organizou e hoje temos diversos padres que estreitam a
compatibilidade entre as distribuies, permitindo que os usurios se adaptem facilmente
a qualquer uma.
No confunda distribuio com sistema operacional. O kernel do Linux o sistema
operacional e uma distribuio pode ser o conjunto de vrios aplicativos, programas ou
utilitrios que rodam no sistema operacional Linux. No se pode generalizar que o kernel
e os pacotes de uma distribuio so o sistema operacional, pois desta forma, alm de
menosprezar o principal elemento do Linux, o kernel, equaliza-se a viso de sistemas
proprietrios como o Windows, em que os usurios no conseguem distinguir o sistema
operacional dos aplicativos, parecendo que tudo um grande sistema operacional e
limitando o controle dos usurios.
om ase nesta afirmao, podemos definir distri uio como um sistema operacional
completo que possui um kernel (o ncleo do sistema operacional), utilitrios (itens necessrios
ao funcionamento do sistema operacional) e uma variedade de programas e aplicativos.
Embora tenhamos uma miscelnea de distribuies Linux, encontraremos muitas
semelhanas entre elas em funo dos padres de construo de um sistema Linux. Como
sabemos, em uma distribuio Linux toda instalao pode ser baseada em necessidades e
preferncias pessoais, o que vai depender do nvel de cada usurio. Quanto mais avanado
for o usurio, mais ele vai personalizar o sistema, pois a instalao do sistema apenas o
incio de um relacionamento de longo prazo. Quando imaginar que est com um sistema
completo, sendo um usurio entusiasta ou baseando-se em comunidades, ser estimulado
a melhor-lo. E conforme se percebe o poder que o sistema oferece, mais estimulado a
romper os pr prios limites o usu rio fica
Ento, apesar dos padres de criao de distribuies, o Linux pode ser personalizado.
Assim, ele pode parecer diferente dependendo da distribuio utilizada, do hardware e das
preferncias pessoais, mais existem alguns itens fundamentais que esto presentes em todas
as distribuies Linux. Uma distribuio Linux baseada principalmente nas ferramentas

44
do projeto GNU, que provm um conjunto bsico de controle e uso do sistema por meio

Famil iar iz a o c om o G N U / Linux


de seus programas, utilitrios e aplicativos, como, por exemplo, o compilador gcc e o editor
de textos vi, que sem dvida estaro disponveis em 99,99% das distribuies existentes.
A maioria das distribuies fornece pacotes de programas pr-compilados das ferramentas
mais comuns e todos os outros que o fazem uma distribuio, por meio de pacotes RPM
(RedHat Package Manager) para as variantes de RedHat, dpkg (Debian Package) para as
variantes do Debian e tgz para a distribuio Slackware e suas variantes.
A distribuio Slackware uma das mais antigas, e foi baseada naquela que pode ser
considerada a primeira distri uio que e istiu oficialmente, c amada afe andin
System Linux), criada com base no BSD (uma verso do UNIX chamada Berkeley Software
Distribution). O Slack (apelido carinhoso dado pela comunidade) a distribuio que mais
se assemelha e mantm as caractersticas UNIX e seus usurios se orgulham disso, portanto
pense em experimentar outras distribuies mais simples, como variantes do RedHat e
Debian, antes de aventurar-se com ele. No entanto, quando achar que est apto, no deixe
de conhec-lo, pois um verdadeiro parque de diverses para usurios avanados.
Voc no precisa ser um programador para instalar um novo programa em um sistema Linux,
pelo menos para alguns casos, entretanto, se for, pode desfrutar do melhor do Linux, fazendo
tudo voc mesmo, pois as distribuies normalmente fornecem uma coleo completa de
ferramentas de desenvolvimento, possibilitando a instalao de pacotes personalizados a
partir do cdigo-fonte. Com as fontes voc pode instalar qualquer programa no seu sistema,
independente de fazer parte do pacote da sua distribuio ou no.
Sabendo que todas as distribuies possuem o kernel do Linux e um conjunto bsico
em comum que pode ser totalmente personalizado, antes de pensar em instalar devemos
considerar o hardware, porque se escolhermos uma distribuio para um hardware
incompatvel com aquele que estamos tentando instalar, a instalao no se concluir
com sucesso, o que pode ser frustrante para iniciantes, principalmente se for a primeira
experincia com Linux.
Neste contexto, voc precisa saber se a distribuio vai funcionar em seu hardware,
pois existem distribuies para rodar em diversas arquiteturas de hardware diferentes,
como Macintosh, PowerPC, IBM PC x86, Sun Sparc, Sun UltraSparc e at mesmo para
Playstation 2. Porm, para a quase totalidade de usurios desktops no Brasil, as distri-
buies ideais so aquelas baseadas na arquitetura IBM PC x86, a mais difundida no Pas.
l umas distri uies so compiladas para um tipo especfico de ardware, porm elas no
so muito interessantes para o mundo coorporativo, pois so testadas por poucos usurios.
Em consequncia disso, a maioria das distribuies possui um conjunto de pacotes para
PCs genricos e normalmente otimizados para os processadores Intel da famlia x86. Essas
distribuies so muito difundidas, extremamente bem testadas, mantidas por uma base de
profissionais re ular, umas com foco em des top e outras em implementaes de servidores,
alm de oferecerem interface amigvel para instalao e atualizao dos pacotes.

45
Linux - Fundamentos
Distribuio Site Comentrios
O CentOS uma das melhores opes gratuitas para
substituir o no gratuito RedHat Enterprise, sendo
CentOS www.centos.org
totalmente baseada nele. tambm a distribuio
adotada como base para este livro.
Um projeto comunitrio da RedHat, sendo
gratuito e uma tima opo para iniciantes mais
autossuficientes, pois possui vasta documentao
Fedora www.fedoraproject.org disponvel na Internet. tima opo para quem
utiliza hardwares mais atuais e gosta de estar na
vanguarda do que h de novo no mundo do Linux e
do cdigo aberto.
Uma das mais antigas e mais estveis distribuies
existentes. A comunidade Debian prima a
estabilidade e no se aventura em novos recursos.
Debian www.debian.org
bastante conservadora e s libera novas verses
aps testes exaustivos. Ela possui o menor tempo de
soluo de problemas.
Distribuio um pouco baseada em FreeBSD, sendo
umas das melhores para quem gosta de fazer tunning
ou confi uraes mais especficas entoo tem
Gentoo www.gentoo.org
como caracterstica marcante a alta capacidade de
personalizao avanada do sistema para qualquer
necessidade.
Boa opo para quem est comeando. uma das
Mandriva www.mandriva.com
mais amigveis neste sentido.
Variante da Debian; muito amigvel, foi
desenvolvida com o propsito de atingir usurios
Ubuntu www.ubuntu.com
realmente iniciantes que no necessitam de muitas
personalizaes, ou seja, especial para desktops.
Opo gratuita para a distribuio no gratuita SUSE
openSUSE www.opensuse.org Linux Enterprise. Boa opo para substituir servidores
baseados no SUSE.
Distribuio comercial mantida pela RedHat, sem
RedHat
www.redhat.com dvida uma distribuio muito poderosa para
Enterprise
servidores corporativos.
Mais familiar ao UNIX. Conservadora, muito
Slackware www.slackware.com estvel, extremamente bsica e simples. Seu uso
recomendado para usurios mais experientes.
Mais uma distribuio poderosa mantida por
SUSE Linux
www.novell.com/linux instituio privada, tima opo para solues
Enterprise
corporativas.

O processo de instalao evoluiu muito ao longo do tempo, a ponto de permitir escolher


entre v rios tipos de confi urao, como, por e emplo, uma simples estao de tra al o,
que instala um conjunto de pacotes necessrios para o uso dirio em escritrios, ou uma
estao de tra al o para desenvolvedores, com pacotes especficos para desenvolvimento,
e por ltimo uma instalao de servidor, que tem as ferramentas de administrao padro
e os servios selecionados pelo usurio. Ressaltamos que, dependendo do propsito da
distribuio, outras opes de conjunto de pacotes podem estar disponveis, assim como
haver distribuies que no oferecem esse tipo de recurso.
46
Quanto mais voc experimentar as distribuies do Linux, mais experincia vai adquirir

Famil iar iz a o c om o G N U / Linux


para confi urar uma instalao nas com inaes de pacotes que dese ar, durante o processo
de instalao. Aos iniciantes, contudo, extremamente indicado utilizar distribuies bem
difundidas, como as gigantes Fedora e Ubuntu para desktops e Debian e CentOS para
servidores, pois elas possuem muito mais documentao disponvel na Internet e o tempo
para correo de problemas extremamente breve.

2.14 - Onde Encontrar Ajuda


aso precise de a uda, a comunidade inu cele ra a autossufici ncia No inu , por
vezes temos vrias maneiras de resolver um mesmo problema, ento tenha calma quando
estiver diante de um deles e tente ser o mais criterioso possvel nos procedimentos que est
executando. Anote tudo em ordem cronolgica, todos os passos para reproduzir o erro e
tudo que voc j tentou fazer para resolv-lo.
Aps ter alcanado o limite de seus conhecimentos em relao ao problema, pode pedir
a uda a al um ou utili ar um ou mais recursos dos a ordados a se uir, a fim de tentar
solucionar o problema.

2.14.1 - As Man Pages


A maioria dos usurios novatos teme as man pages, pginas do man ou pginas do manual,
porque elas so uma grande fonte de informao em modo texto aparentemente para
usurios avanados, no entanto um grande equvoco, pois qualquer usurio consegue
entend-lo e a partir dele resolver muitos problemas. O nico requisito para o uso de man
pages saber um pouco de ingls, podendo ser o ingls instrumental.
As man pages so muito bem estruturadas, como veremos no exemplo a seguir, usando o
comando man man.

$ man man
NOME
man - formatar e mostrar as pginas do manual on-line
manpath - determinar o manpath inicial para o utilizador

SINOPSE
man [-acdfhktw] [-m sistema] [-p string] [-C fich_config] [-M path]
[-P paginador] [-S lista_sec] [seco] nome ...

DESCRIO
man formata e mostra as pginas do manual on-line. Esta verso reconhece as
variveis de ambiente (environment) MANPATH e (MAN) PAGER (ver a seguir). Se
a seo for indicada, man apenas procura nessa seco de manuais. Pode tambm
indicar por que ordem das seces deve procurar e que
pr-processamento efetuar nos manuais, por meio de opes na linha de comando
ou variveis de ambiente. Se nome contiver uma / tentar primeiro o ficheiro
com esse nome, permitindo fazer man ./foo.5 ou mesmo man /cd/foo/bar.1.gz para
formatar e ver um ficheiro em particular.

OPES
-C fich_config
Indica o ficheiro de configurao a usar; por omisso ser usado /etc/man.
config. (Veja man.conf(5).) 47
Linux - Fundamentos Que incrvel! O man tem a capacidade de mostrar seu prprio manual, ou seja, a
documentao do man foi exibida na tela aps pressionar Enter. Abaixo do exemplo do
comando man man temos um trecho do que voc deve ter visto; no estranhe por estar
em portugus, pois existem muitos manuais em portugus, mas ainda so predominantes
as documentaes em ingls. Fique atento!

oc pode acessar as man pa es por meio de um terminal, se a em modo r fico ou em um console de


Dica

texto puro, conforme sua preferncia.

Com o manual aberto, para navegar entre as pginas, use a barra de espao se quiser
avanar e a letra "b" no teclado para retroceder. Para sair a qualquer instante, pressione a
letra "q" no teclado e voc voltar imediatamente ao prompt de comando.
Cada manual normalmente contm uma coleo de sees padro. Vejamos a seguir
quais so:
 A primeira linha contm o nome do programa em que estamos lendo o manual e o id
da seo onde est localizada a man page. Um nico comando pode conter diversas
pginas, pois as man pages so organizadas em captulos.
 NOME ou NAME: mostra o nome do comando e uma breve descrio utilizada no
ndice das man pages. Podemos procurar qualquer palavra nesse ndice usando o
comando apropos, que veremos a seguir.
 SINOPSE ou SYNOPSIS: aqui temos sintaxes possveis do uso do comando com todas as
opes e argumentos disponveis. Entenda como opo as vrias formas de se executar
um determinado comando, e argumento so as variveis dessas opes. O exemplo
anterior invoca o programa man com o argumento man. As opes e os argumentos
que no so obrigatrios aparecem entre colchetes - "[" e "]" - indicando que podem ser
desprezados. Vale lembrar que alguns comandos no possuem opes ou argumentos.
 DESCRIO ou DESCRIPTION: descrio completa do comando.
 OPES ou OPTIONS: descreve detalhes de cada opo possvel. Normalmente
elas podem ser utilizadas de forma combinada, encadeando diversas opes em um
mesmo comando.
 AMBIENTE ou ENVIRONMENT: indica as vari veis do am iente que podem in uenciar
no funcionamento desse comando.
 VEJA TAMBM ou SEE ALSO: nessa seo so dadas referncias a outras man pages.
Entre os parnteses est o nmero da seo man page que faz referncia ao comando.
 BUGS: indica os bugs conhecidos e como relatar novos erros.
 AUTOR ou AUTHOR: informaes sobre o autor.
 COPYRIGHT: informaes sobre os direitos de uso.
Por vezes, na seo VEJA TAMBM ou SEE ALSO pode haver referncias para outros man
pages, conforme dito anteriormente. Veja a seguir um exemplo desse contedo para o
comando man ssh:
48
SEE ALSO

Famil iar iz a o c om o G N U / Linux


scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh-keyscan(1),
tun(4), hosts.equiv(5), ssh_config(5), ssh-keysign(8), sshd(8)

Chamamos a ateno para alguns comandos que podem conter vrias man pages. Neste
caso o programa sempre exibe, por padro, somente a primeira seo de man page. No
e emplo anterior, o serve que uma das refer ncias dadas ss confi ste n mero
entre par nteses indica em qual man pa e do comando ss confi est a refer ncia para
o comando em que estamos lendo a man pa e ara visuali ar uma man pa e especfica
de um comando, informe o nmero dela antes do nome do programa sobre o qual deseja
mais informaes. No exemplo seguinte solicitada a seo 5 da man page do comando
ss confi

$ man ssh_config 5

Se voc no sabe quantas man pages tem um comando, ou deseja visualizar todas de uma
nica vez, use:

$ man a ssh_config

Esse comando abre as man pages em ordem crescente, da menor para maior. Para avanar
as pginas, pressione a letra "q" no teclado. Quando atingir a ltima man page, o man ser
finali ado e voc voltar ao prompt imediatamente
Uma sugesto a possibilidade de buscar uma palavra ou expresso em qualquer parte do
texto da man page aberta. Para isso, use a barra normal "/" e o texto a ser procurado, como
"/BUGS". Isso faz o man pular para o item BUGS, quando houver, claro.

2.14.2 - As Info Pages


Alm das man pages, podemos procurar ajuda nas info pages, pginas de informao, por
meio do comando info. As informaes contidas nele geralmente so mais recentes e por
vezes, em alguns comandos, o man page faz referncia a info page.
Em vias gerais, mais fcil utilizar as info pages, portanto mais acessveis aos novatos.
Para comear, vejamos um exemplo como o anterior. Vamos pedir a info pages que mostre
a sua prpria documentao, com o comando info info em um terminal ou janela console:

$ info info

File: info.info, Node: Top, Next: Getting Started, Up: (dir)


Info: An Introduction
*********************
The GNU Project distributes most of its on-line manuals in the "Info format",
which you read using an "Info reader". You are probably using an Info reader
to read this now.
There are two primary Info readers: `info, a stand-alone program designed
just to read Info files (*note Stand-alone Info: (info-stnd)Top.), and the `info
package in GNU Emacs, a general-purpose editor. At present, only the Emacs
reader supports using a mouse.
If you are new to the Info reader and want to learn how to use it, type the
49
Linux - Fundamentos command `h now. It brings you to a programmed instruction sequence.
To read about advanced Info commands, type `n twice. This brings you to
`Advanced Info Commands, skipping over the `Getting Started chapter.

* Menu:
* Getting Started:: Getting started using an Info reader.
* Advanced:: Advanced Info commands.
* Expert Info:: Info commands for experts.
* Index:: An index of topics, commands, and variables.

Para navegar, utilize as setas para saltar de uma linha para a outra, page down e page
up para avanar ou retroceder as pginas respectivamente. As linhas que comeam com
asteriscos so links para o assunto, podendo ser usadas como um sumrio no info. Se
colocarmos o cursor em uma dessas linhas e pressionarmos Enter, o info nos leva pgina
que trata do assunto em questo automaticamente. Tambm possvel navegar entre um
assunto e outro usando as letras "p" para voltar e "n" para avanar ao prximo assunto.
Para sair, pressione a letra "q" no teclado.

O programa info normalmente tem mais informaes que o man. Por vezes pode no haver nenhuma
informao de determinado comando no info, no entanto existente no man, por isso devemos utilizar
Dica

os dois. Experimente o comando info man e veja que o info mostra, alm do contedo do comando
man man, muitas outras informaes.

2.14.3 - O Comando Whatis


Ele procura nas man pages um determinado comando e exibe uma breve descrio dele,
que seria o mesmo contedo do campo NAME ou NOME nas man pages.

$ whatis cp
cp (1) - copy files and directories
cp (1p) - copy files

2.14.4 - O Comando Apropos


Tambm exibe uma descrio breve do man pages de um comando, no entanto com ele
possvel procurar palavras nessa descrio, o que facilita muito quando no sabemos qual
item queremos ou precisamos usar, por exemplo:

$ apropos "copy files"


File::Copy (3pm) - Copy files or filehandles
cp (1) - copy files and directories
cp (1p) - copy files
cpio (1) - copy files to and from archives
install (1) - copy files and set attributes

Desta forma, supondo que no soubssemos qual programa utilizar para efetuar uma cpia
de arquivo, descobriramos rapidamente pedindo ao apropos para procurar a expresso
cop files , conforme descrito no e emplo anterior
50
2.14.5 - A Opo --Help

Famil iar iz a o c om o G N U / Linux


A maioria dos programas possui uma ajuda breve que explica como utilizar o comando e
uma lista das opes existentes. No exemplo a seguir vemos a opo --help do comando
man:

$ man --help
man, verso 1.6f
uso: man [-adfhktwW] [seco] [-M path] [-P paginador] [-S lista] [-m sistema]
[-p string] nome ...
a : encontrar todas as entradas
d : imprimir informao de debug
f : o mesmo que whatis(1)
h : imprimir esta ajuda
k : o mesmo que apropos(1)
t : usar troff para formatar o manual para imprimir
w : imprimir a localizao do manual a ver(se no indicar o nome: imprime as
directorias dos manuais)
M path : indica `path como as directorias dos manuais
P paginador : use o programa `paginador para ver os manuais
S lista : indicar lista de seces (separadas por ,)
m sistema : procura manual para o sistema indicado
p string : string indica o pr-processamento a efetuar

Essa opo ajuda bastante e disponibilizada rapidamente ao usurio.


or fim aver comandos que no possuem documentao distinta porque eles fa em
parte de um outro comando. Um exemplo prtico so os comandos exit, pwd, cd e logout,
pois eles so componentes do Shell em execuo, estando embutidos nele. Para ter ajuda
em relao a eles, invoque o man pages para o Shell que est utilizando, por exemplo:

$ man sh

usurio@host~> man sh

51
Linux - Fundamentos

Exerccios

1. O que POSIX?
2. Qual o objetivo do kernel (ncleo) do Linux?
3. Qual a diferena entre um kernel monoltico e microkernel?
4. omo identificar se uma verso do inu est vel ou est em desenvolvimento
5. O que o Shell?
6. Como funciona o Shell?
7. Quais so as principais tarefas da ordem de execuo de comandos do Shell?
8. Cite exemplos de Shells disponveis no Linux.
9. O que multitarefa?
10. Como deve ser a multitarefa em um bom sistema operacional?
11. Apesar de os processadores executarem uma tarefa por vez, como possvel a
multitarefa em um sistema operacional?
12. Como funciona um sistema operacional monotarefa?
13. Qual a diferena entre multitarefa cooperativa e preemptiva?
14. que si nifica o termo multiusu rio
15. Quais os dois tipos de usurios do Linux e suas principais caractersticas?
16. Em que consiste a memria virtual?
17. Como funciona a memria virtual em um sistema operacional?
18. Por que devemos nos preocupar com o uso em excesso da memria virtual?
19. Quais as duas interpretaes para o termo sistema de arquivos?
20. O que so parties?
21. Para que serve uma partio do tipo LVM? Quais so as vantagens?
22. O que so sistemas de arquivos com Journaling?
23. Quais as vantagens de um sistema de arquivos com Journaling?
24. Quais so os tipos de arquivo do Linux?
25. O que e qual o objetivo do FHS?
26. Descreva resumidamente cada um dos diretrios requeridos no diretrio raiz no FHS.
27. Quando e como surgiram as distribuies Linux?
52
Famil iar iz a o c om o G N U / Linux
Exerccios

28. Por que no devemos considerar que uma distribuio Linux um sistema operacional?
29. Quais os pacotes (ferramentas) encontrados em praticamente todas as distribuies
Linux?
30. Como so disponibilizados os pacotes de programas pr-compilados?
31. Quais as principais diferenas entre info e man pages?
32. Para que servem os programas whatis e apropos?

53
3
Tarefas Essenciais do Administrador

3.1 - Comandos Bsicos


ste t pico apresenta os comandos sicos para o dia a dia do profissional respons vel pela admi-
nistrao de uma mquina Linux, sendo til tambm a usurios em geral, quando for necessria
uma interveno diretamente com o sistema operacional (apesar de, na maioria das ocasies, a in-
terface r fica ser suficiente para esses usu rios ostra os comandos na interface te to do inu ,
pois esta a melhor forma de interagir completa e agilmente com o sistema operacional ( claro
que nada impede que o administrador utili e a interface r fica do inu , mas em muitas situaes
ela ser um limitador). Caso voc j tenha domnio desses comandos, pode pular este tpico.
Vamos aprender agora como cumprir as tarefas mais simples no sistema operacionais, tais como
listar o contedo de um diretrio, criar um arquivo ou diretrio, alterar seu nome e permisses e
excluir um arquivo ou diretrio. Alm disso, veremos outras tarefas simples, mas que permitem
a plena interao do administrador com o sistema operacional.

3.1.1 - Obteno da Ajuda do Linux


Antes de entrarmos no assunto, preciso saber que mesmo no modo texto do Linux existe uma
ajuda disponvel (s vezes completa, outras bem simples, sempre disponvel para garantir um
mnimo de auxlio).
Existem vrias formas de obter uma preciosa ajuda do Linux:
 Ajuda do prprio comando: basta digitar o nome do comando seguido de --help para
obtermos alguma ajuda, a qual, na maioria das vezes, apenas a sintaxe do comando e a
lista de opes disponveis. Veja um exemplo:
# net --help
Para os comandos nativos do sistema operacional temos trs formas extras de obter ajuda:
 Pelo comando help: basta digitar o comando help seguido do comando sobre o qual
desejamos a ajuda, exemplo:
# help net
 Pelo comando man: sua sintaxe igual do comando help:

T ar ef as E ssenc iais do A dministr ador


# man net
 Pelo comando info: sintaxe idntica aos demais, exemplo:
# info net
Cada um destes comandos apresenta um formato de ajuda, e so muitas vezes comple-
mentares.

3.1.2 - Gerenciamento de Diretrios e Arquivos


As tarefas mais comuns no quesito gerenciamento de diretrios e arquivos no Linux so:
 Criao de um diretrio
 Alterao do nome do diretrio ou arquivo
 Alterao das permisses
 Remoo de um diretrio ou arquivo
 Exibio da lista de arquivos e diretrios

3.1.2.1 - Criao de um Diretrio


Para criar um diretrio, utilizamos o comando mkdir que possui a seguinte sintaxe:
Mkdir <opes> <nome do diretrio>
comando m dir tenta criar o diret rio especificado conforme as opes informadas
Caso j exista um diretrio ou arquivo com o mesmo nome, uma mensagem de erro
retornada e o diretrio no criado.
A utilizao bsica do comando :
Mkdir <nome do diretrio>
Por exemplo:
# Mkdir teste
Esse comando tenta criar na pasta atual o diretrio teste com as permisses padro do
usurio.
As opes disponveis para o comando mkdir so:
m ou mode efine a m scara de criao do diret rio aso no se a informada, a
mscara padro do usurio utilizada.
-p ou parents Informa ao comando que toda rvore informada deve ser testada e
caso o diretrio no exista, deve ser criado. Caso no seja informada
essa opo, o comando retorna um erro, se alguns dos diretrios da
rvore no existirem, exceto o ltimo.
55
Linux - Fundamentos
-v ou verbose Exibe o que est sendo executado, muito til junto com a opo p.
Exemplos:
# mkdir --m 777 teste
# mkdir --p teste1/teste2/teste3
# mkdir --v p teste11/teste12/teste13
O primeiro exemplo cria o diretrio teste com a mscara 777 (veja mais sobre permisses
no item 3.1.2.3), ou seja, com permisso de leitura, gravao e execuo para todos os
usurios e grupos.
O segundo cria a rvore teste1/teste2/teste3.
O terceiro exemplo cria a rvore e exibe o que est sendo executado, neste caso teremos:
Mkdir: created directory teste11
Mkdir: created directory teste11\teste12
Mkdir: created directory teste11\teste12\teste13

3.1.2.2 - Alterao do Nome de um Diretrio ou Arquivo


No Linux, diretrios so gerenciados como arquivos, por isso vrios comandos utilizados
para arquivos servem tambm para diretrios. Desta forma, para alterar o nome de um
diretrio, podemos utilizar os comandos mv ou rename, tambm usados para arquivos.
O comando mv simples e direto, permite a alterao do nome de um diretrio e possui
opes para esse controle. J o comando rename mais complexo e permite a alterao
controlada do nome de vrios arquivos.
O comando mv possui a seguinte sintaxe:
Mv <opes> nome_atual novo_nome
O padro do comando gerar um erro caso o novo_nome informado j exista. A forma
mais simples de utilizao do comando :
# mv teste testex
As opes disponveis mais teis so:
-f ou --force Fora a alterao do nome_atual para novo_nome, mesmo que
novo_nome j exista; neste caso o arquivo ou diretrio existente ser
perdido.
-b ou --backup Uma cpia do arquivo ou diretrio existente criada antes que a
troca de nome seja executada.
i ou interactive olicita confirmao antes de so rescrever o arquivo ou diret rio
56
existente.
Exemplos:

T ar ef as E ssenc iais do A dministr ador


# mv f teste teste1
# mv f b teste teste1
# mv f i teste teste1
O comando rename realiza trocas complexas, como em vrios arquivos que precisam ter
seus nomes trocados. Podemos utilizar critrios de busca para que a troca seja realizada.
Sua sintaxe :
Rename <de> <para> <lista_arquivos>
O comando substitui a primeira ocorrncia de <de> por <para> encontrada em cada
um dos arquivos da lista informada. A lista informada pode conter caracteres especiais de
pesquisa, tais como ? ou *. O caractere ? indica qualquer letra, nmero ou smbolo e o
caractere * indica qualquer sequncia de caracteres. Veja alguns exemplos:
# rename teste teste0 teste?
# rename teste teste0 teste*
# rename teste teste0 teste??
O primeiro exemplo troca teste por teste0 em qualquer arquivo que comece por teste e
contenha mais um caractere qualquer no seu nome, tais como teste1, teste2, testex, teste_,
mas no trocar em teste, teste11, testexx ou qualquer outro arquivo que tenha mais de
um caractere aps teste.
O segundo exemplo troca teste por teste0 em qualquer arquivo que contenha teste, seguido
de zero ou mais caracteres extras.
O terceiro troca teste por teste0 em qualquer arquivo que contenha teste seguido de dois
outros caracteres, assim teste11, teste22, testex1, teste_a sero afetados, j teste, teste1,
testex, testa, teste111, teste__2 no sero.

3.1.2.3 - Alterao das Permisses de um Diretrio ou Arquivo


Aqui temos novamente um comando comum tanto para arquivos quanto para diretrios.
Utilizamos o comando chmod para alterar as permisses de um diretrio ou arquivo.
Tem a seguinte sintaxe:
Chmod <permisses> <lista_de_arquivos>
As permisses podem ser atribudas a trs categorias:
 Usurio dono do arquivo ou diretrio
 Grupo ao qual o arquivo pertence
 Demais usurios do sistema
 ara cada uma destas cate orias podemos definir as permisses para leitura, escrita e
execuo do arquivo/diretrio.
57
Linux - Fundamentos
ara definir as permisses, podemos utili ar asicamente dois formatos
Octal
Informamos as permisses por valores octais, e cada cate oria de permisso definida por
um d ito octal s valores possveis so
 0: nen uma permisso
 1: permisso para e ecuo
 2: permisso para escrita
 4: permisso para leitura
s valores podem ser com inados, isto , somados para o ter a permisso dese ada or
e emplo, se dese amos li erar leitura e ravao, utili amos o valor para permitir tudo,
utili amos o valor
No formato octal cada d ito define as permisses para uma cate oria omo temos tr s
cate orias, devemos utili ar tr s d itos octais para definir as permisses e a um e emplo
c mod teste
ora o arquivo teste ter permisso de leitura e e ecuo para o dono do arquivo e de
escrita para os demais usu rios
Modo simblico
Nesse modo informamos por meio de sm olos as permisses que dese amos atri uir
mais e vel que o modo octal, porm mais complicado de ser utili ado formato de
utili ao
u oa rw ,
endo
u Usu rio dono do arquivo diret rio
rupo ao qual o arquivo pertence
o utros usu rios do sistema
a odos
diciona as permisses
emove as permisses
efine as permisses su stitui
r eitura
w scrita
ecuo
58
Desta forma, se desejamos adicionar a permisso de escrita ao grupo ao qual o arquivo

T ar ef as E ssenc iais do A dministr ador


pertence, devemos fazer g+w. Podemos atribuir vrias permisses, bastando separ-las por
vrgula. Veja um exemplo:
# chmod a=,u=rwx,g=r,o=x,g+w,o-x teste
o final da e ecuo, o usu rio dono do arquivo ter permisso para leitura, escrita e
execuo, j os usurios pertencentes ao grupo dono do arquivo no tero permisso e os
demais usurios somente tero permisso de executar o arquivo.

3.1.2.4 - Remoo de um Diretrio ou Arquivo


Temos aqui dois comandos. Um exclui arquivos e pode tambm remover diretrios, o
outro remove apenas diretrios.
comando que e clui arquivos e pode ser utili ado para e cluir diret rios o padro
do comando no remover diretrio. Para alter-lo, devemos utilizar uma opo do
comando o rm m seu formato mais simples, precisamos apenas do comando se uido
da lista de arquivos a serem excludos, sendo possvel a utilizao de caracteres especiais
para definio da lista, tais como e ua sinta e
Rm <opes> <lista de arquivos>
A lista de arquivos pode ser uma sequncia de nomes separados por espao ou apenas o
nome de um nico arquivo, sendo possvel a utilizao dos caracteres especiais de busca
em qualquer lugar da lista ou no nome do arquivo. Veja alguns exemplos:
# rm teste
# rm tes*
# rm teste??
# rm teste teste0001 teste02 teste003*
Caso algum dos arquivos da lista seja um diretrio, a mensagem rm: cannot remove
director nome um diret rio ou semel ante dependendo da distri uio utili ada
ser exibida e o diretrio no excludo.
s opes disponveis principais so
-i ou --interactive Pergunta antes de excluir cada um dos arquivos da lista.
-f ou --force No faz nenhum questionamento antes de excluir e ignora os arquivos
no encontrados.
-r ou --recursive Exclui diretrios e todos os seus arquivos recursivamente, ou seja, caso
existam diretrios ou arquivos dentro do diretrio a ser excludo, estes
sero excludos antes da excluso do diretrio.

59
Linux - Fundamentos Logo, para eliminar a mensagem de erro na remoo de diretrios, devemos utilizar a
opo -r do comando rm. Veja um exemplo:
# rm -r teste*
Para a remoo exclusiva de diretrios, podemos utilizar o comando rmdir. Mas lembre-se
de que esse comando somente exclui diretrios vazios. Desta forma, na maioria das vezes
melhor utilizar rm r para excluir diretrios que contenham arquivos ou outros diretrios
ten a certe a disso, evitando a e cluso indese ada de um ou mais diret rios ua sinta e
Rmdir <opes> diretrios
A principal opo desse comando -p ou --parents, a qual permite que uma rvore de
diret rios todos va ios se a e cluda e a um e emplo
# rm teste/teste1/teste2 teste/teste1 teste
Utilizando a opo -p teremos:
# rm p teste/teste1/teste2

3.1.2.5 - Exibio da Lista de Arquivos e Diretrios


Para exibir a lista de arquivos e diretrios, temos o comando ls, que em sua forma mais
simples lista de forma sucinta o contedo do diretrio atual. Sua sintaxe :
Ls <opes> <lista de arquivos>
A lista de arquivos opcional e em geral contm, quando utilizada, uma mscara para
filtra em, utili ando os caracteres e , dos arquivos que sero e i idos e a um e emplo
simples:
# ls teste*
Teremos como resultado uma lista simples dos arquivos e diretrios que satisfazem o
critrio de filtra em
Esse comando possui uma lista enorme de opes. Mostramos as principais e mais utilizadas:
-d Lista os nomes dos diretrios e no seus contedos.
f No fa nen uma classificao lm disso, e i e arquivos normalmente escondidos
pelo comando, tais como arquivos comeados com ponto
-h Exibe as informaes sobre tamanhos dos arquivos em formato humano, ou seja, 1K,
2M, 5G.
-l Exibe uma lista longa, isto , com mais informaes sobre os arquivos
-R Exibe a lista em modo recursivo, isto , lista os subdiretrios de cada diretrio.
t i e a lista classificada por ordem da data de modificao dos arquivos
60
As opes podem ser combinadas livremente, veja um exemplo:

T ar ef as E ssenc iais do A dministr ador


# ls -lth /usr

Figura 3.1

Outro comando interessante, que exibe a rvore de diretrios, o tree. Veja um exemplo
de sua utilizao:
# tree s

Figura 3.2

O comando tree possui vrias opes. As mais importantes so:


-d Lista apenas diretrios.
-s Exibe o tamanho de cada arquivo antes de seu nome.
-H Permite que a lista seja gerada em formato HTML, o que til para sites ftp, por
exemplo.
o efine o nome do arquivo de sada, ou se a, em ve de o resultado ser e i ido na
tela, enviado ao arquivo informado no parmetro.
61
3.2 - Gerenciamento de Grupos
Linux - Fundamentos

Antes de criar outros usurios, podemos


definir os rupos de usu rios que dese a
mos utilizar. Esses grupos so opcionais, e
devemos utiliz-los sempre que se faz neces-
sria a sua organizao, em geral quando
temos um nmero grande de usurios
e precisamos agrup-los em categorias.
Por padro, as distribuies Linux trazem
alguns grupos previamente cadastrados, os
quais podem ser utilizados para criao de
usurios administrativos do Linux.
om os rupos podemos definir permisses
de acesso especficas para os usu rios que
fa em parte do rupo, desta forma fica mais
simples o gerenciamento, tanto na criao
de usurios como na manuteno dos
existentes. Alm disso, ao instalarmos novos
pacotes ou criarmos diret rios, fica f cil
gerenciar as permisses de acesso, uma vez
que precisamos apenas nos preocupar com
os grupos e, se necessrio, com as excees
usu rios de um rupo que necessitam de
permisses diferenciadas

3.2.1 - Adio de Grupos


Em geral temos uma lista de grupos exis-
tentes no momento da instalao do Linux,
a qual pode ser vista no arquivo /etc/group.
Observe uma lista tpica na Figura 3.3.

Figura 3.3

62
Para adicionar um novo grupo ao sistema, utilizamos o comando groupadd, cuja sintaxe :

T ar ef as E ssenc iais do A dministr ador


Groupadd <opes> nome_do_grupo
As opes disponveis so:
-r Cria um grupo do sistema, ou seja, com cdigo entre 0 e 999.
efine o c di o do rupo e essa opo no for informada, o sistema atri ui o c di o
automaticamente (prximo cdigo disponvel, maior que qualquer cdigo existente e
maior que 500, a menos que r seja informado).
-o Permite a criao de grupo com o cdigo duplicado.
Alguns exemplos:
# groupadd contbil
# groupadd r diretoria
# groupadd g 5050 ti
# groupadd infra
resultado ser ol ando o final do arquivo etc roup

Figura 3.4

3.2.2 - Remoo de Grupos


Para remover um grupo, utilizamos o comando groupdel seguido do nome do grupo que
desejamos remover.
ntes de remover um rupo, preciso verificar se no e istem usu rios li ados a ele caso
contr rio, ficaro rfos
No h opes nesse comando. Sua sintaxe :
Groupdel nome_do_grupo
Exemplo:
# groupdel infra

63
3.3 - Gerenciamento de Usurios
Linux - Fundamentos

O gerenciamento de usurios uma das tarefas mais executadas pelo administrador Linux,
uma vez que esta uma lista dinmica e exige atualizao constante, seja para incluso
de novos usurios, retirada de outros e alterao de permisses e grupos dos usurios
existentes.
Este tpico aborda:
 Incluso de um novo usurio
 Gerenciamento da senha do usurio
 Alterao de um usurio existente
 Remoo de um usurio
A lista de usurios pode ser vista nos arquivos /etc/passwd e /etc/shadow.

3.3.1 - Adio de um Novo Usurio


A incluso de um novo usurio realizada pelo comando useradd do Linux, o qual exige
algumas informaes e dispe de uma srie de opes extras que complementam a criao
de um usurio no sistema. A sua sintaxe :
Useradd <opes> <nome_do_usurio>
O nome do usurio deve ser nico no sistema, e caso haja tentativa de inserir um usurio
existente no sistema, uma mensagem de erro retornada e o processo, cancelado.
A forma mais simples de utilizao do comando useradd <nome_do_usurio>. Este
formato cria o usu rio e utili a os valores padro do sistema para definio dos par metros
necessrios a essa atividade. Para alterar um ou mais parmetros, devemos utilizar as
opes do comando. A lista de opes disponveis :
-c Qualquer texto explicativo, sendo utilizado comumente para informar o nome
completo do usurio.
-b Diretrio base para criao do diretrio do usurio. Caso esse parmetro no seja
informado, o diretrio padro ser utilizado (em geral /home). O nome do usurio
ser ane ado ao final do diret rio ase informado ste deve e istir a menos que a
opo m seja utilizada.
d efine o diret rio do usu rio que est sendo criado or padro utili a se o diret rio
base (veja a opo b) juntamente com o nome do usurio. Essa opo permite alterar
esse diret rio, podendo ser definido qualquer um dese ado diret rio informado
no precisa existir no momento da criao do usurio, mas caso no exista, ele no
ser criado pelo comando.
-e Informa a data de expirao da conta do usurio que est sendo criado. A data deve
estar no formato aaaa-mm-dd.
64
-f Nmero de dias aps a expirao da senha do usurio em que a conta ser desativada.

T ar ef as E ssenc iais do A dministr ador


Zero indica desativao imediata e -1 desabilita essa opo, sendo este o valor padro
do comando.
-g O nome ou nmero do grupo ao qual o usurio pertence.
-G Lista de grupos complementares do usurio. Os grupos devem ser separados por vrgula.
-M O diretrio do usurio no ser criado.
-m O diretrio do usurio ser criado, caso no exista.
-n Cria um grupo com o mesmo nome do usurio que est sendo criado pelo comando.
-o Permite a criao de usurio com um cdigo duplicado (nome duplicado no
permitido em nenhuma hiptese).
Exemplos:
# useradd walace
# useradd -d /usuarios/geral -g ti walace2
# useradd -n walace3

3.3.2 - Gerenciamento de Senha de um Usurio


Para gerenciar a senha de um usurio, utilizamos o comando passwd, com o qual podemos
definir a sen a do usu rio, alter la e ainda erenciar os seus par metros, tais como data
de expirao, nmero mnimo e mximo de dias para troca da senha pelo usurio e outras
confi uraes necess rias ao erenciamento de sen as usu rio deve ter sido criado
anteriormente para que o comando passwd seja utilizado (veja o tpico anterior sobre
como criar um usurio no sistema).
A sintaxe do comando passwd :
Passwd <opes> <nome_do_usurio>
emos duas utili aes sicas para o comando passwd primeira a definio ou troca
da sen a de um usu rio a se unda o erenciamento da sen a, definindo validade,
intervalos de trocas e outras confi uraes teis
ara definio ou troca da sen a, utili amos o formato mais simples do comando, ou se a,
sem nenhuma opo extra, por exemplo:

Figura 3.5 65
Linux - Fundamentos
Caso a senha seja fraca, uma mensagem de alerta exibida, porm o processo no
interrompido. Se for desejado, a senha, mesmo fraca, pode ser atribuda ao usurio.
Para um gerenciamento completo, temos as seguintes opes (principais):
-d Desabilita a senha de um usurio, ou seja, a senha no ser solicitada no processo de
login.
n efine o n mero mnimo de dias que uma sen a valida
efine o n mero m imo de dias de uma sen a p s esse perodo a sen a deve ser
obrigatoriamente trocada pelo usurio.
-w Indica o nmero de dias, antes que a senha expire, para avisar o usurio da necessidade
de troca da senha.
-S Exibe de forma resumida as informaes de senha do usurio.
e a um e emplo no qual definimos que a sen a ter validade mnima de sete dias e
mxima de 180 dias, e o usurio ser avisado dez antes de a senha expirar:
# passwd n 7 x 180 w 10 walace

3.3.3 - Alterao de um Usurio Cadastrado


A alterao dos dados de um usurio cadastrado no sistema efetuada pelo comando
usermod, cuja sintaxe :
Usermod <opes> <nome_do_usurio>
As opes disponveis so basicamente as mesmas existentes para o comando useradd,
adicionando as seguintes opes:
-a Acrescenta os grupos informados aos existentes, devendo ser utilizada juntamente
com a opo definio de rupos e tras
l efine um novo nome de usu rio lo in do usu rio Nada mais alterado, apenas
o nome do usu rio e necess rio, um novo diret rio deve ser definido para esse
usurio, para isso veja as opes d (a opo b no est disponvel nesse comando).
-L Bloqueia o acesso da conta, acrescentando o smbolo ! ao incio da senha do usurio.
-U Libera o bloqueio da conta, removendo-o ! colocado no incio da senha do usurio.
Veja alguns exemplos:
# usermod L walace
# usermod l walace_1 d /home/walace_1 walace
# usermod U walace_1

66
3.3.4 - Remoo de um Usurio Cadastrado

T ar ef as E ssenc iais do A dministr ador


Para remover um usurio do sistema, utilizamos o comando userdel. Sua sintaxe :
Userdel <opes> <nome_do_usuario>
m eral no necess rio definir nen uma opo, mas precisamos sa er que
 Um usurio ativo (logado) no sistema no ser removido, a no ser que a opo f seja
utilizada.
 O diretrio do usurio no ser removido a no ser que a opo r seja utilizada.
As opes disponveis para esse comando so:
-f Fora a remoo do usurio, mesmo que ele esteja ativo no sistema (logado), mas isso
perigoso e pode deixar o sistema instvel.
-r Remove o diretrio do usurio e todos os seus arquivos, mas no remove outros
arquivos ligados ao usurio, o que deve ser feito manualmente.

3.4 - Gerenciamento de Programas


Uma das tarefas rotineiras de um administrador de sistemas o gerenciamento de programas,
seja do sistema operacional, seja de terceiros. As principais rotinas no gerenciamento so:
 Instalao de programas
 Atualizao de verso
 Remoo de programas
O gerenciamento pode ser feito por meio dos seguintes mtodos:
 Utilitrio rpm
 Utilitrio apt
 Instalador do prprio programa
 Cpia simples dos arquivos

3.4.1 - RPM
RPM um poderoso utilitrio para gerenciamento de pacotes, principalmente os pacotes
ligados direta e indiretamente ao sistema operacional (nem todas as distribuies Linux tem
suporte a RPM), facilitando a instalao, atualizao e remoo de pacotes de programas.
As quatro funes bsicas do utilitrio so:
 Instalao
 Atualizao
 Remoo
 Consulta 67
Linux - Fundamentos Cada uma das opes exige um formato prprio na execuo do utilitrio (cada um
explicado no tpico correspondente, com exceo de consulta que ser mostrado a seguir).
A sintaxe geral do programa :
Rpm <modo> <opes> <pacote>
Em que modo pode ser:
-i ou --install Instalao de um novo pacote.
-U ou --upgrade Atualizao de um pacote j instalado.
-e ou --erase Remoo de um pacote.
-q ou --query Consulta de pacotes instalados.
Cada um dos modos tem sua lista de opes. Para o modo de consulta temos as seguintes
opes disponveis (principais):
-l Para listar todos os arquivos do pacote.
-a Consulta a todos os pacotes.
f onsulta aos pacotes que cont m o arquivo especificado
--whatrequires Consulta aos pacotes que contm a dependncia informada.
--whatprovides Consulta aos pacotes que fornecem uma dependncia.
A execuo de rpm -q -a lista todos os pacotes instalados no sistema.
Veja um outro exemplo:

Figura 3.6
68
3.4.2 - Apt

T ar ef as E ssenc iais do A dministr ador


O apt um pacote com ferramentas para gerenciamento de pacotes em uma distribuio
Linux, mas nem todas as distribuies possuem esse pacote. Em geral, quem usa RPM no
trabalha com apt e vice-versa. Os principais programas do pacote so:
 Apt-get
 Apt-cdrom
 Apt-cache
 pt confi
Este tpico aborda o apt-get, responsvel pela instalao, atualizao e remoo de
programas.
A sintaxe do comando apt-get :
Apt-get [modo] [opes] [programa]
Os modos disponveis (principais) so:
 Install: instala um novo pacote.
 Upgrade: atualiza um pacote instalado.
 Remove: remove um pacote.
 Source: baixas os cdigos-fonte de um pacote.
 Clean: apaga os arquivos de instalao.
As opes disponveis so:
-d Apenas baixa e no instala.
-y Assume a resposta sim para qualquer pergunta do instalador.
O programa apt-get utiliza um repositrio apt para localizao das informaes sobre os
pacotes que sero instalados. O arquivo que contm a lista o /etc/apt/sources.list e pode
ser editado para incluso, alterao e remoo dos endereos dos repositrios nos quais o
apt vai buscar os pacotes.

3.4.3 - Instalador Prprio


Alguns programas, feitos por terceiros, possuem seus prprios instaladores e seu comporta-
mento e utilizao dependem de como foram construdos. Em sua maioria disponibilizam
um script para gerenciamento da aplicao que cuida dos detalhes da instalao e remoo
do pacote.
A instalao pode ser feita de forma direta, ou seja, os programas j vm no formato binrio
e precisam apenas ser instalados e confi urados no sistema operacional, ou podem vir com
os cdigos-fonte e exigirem que o pacote seja primeiramente compilado para depois ser
instalado.
69
Linux - Fundamentos Um exemplo o servidor web Apache, o qual disponibilizado com os cdigos-fonte
e e i e a e ecuo da confi urao, compilao e instalao Neste caso utili amos o
confi urador que vem com o aplicativo confi ure e compilamos e instalamos o pacote
por meio do comando make.
sse formato mais e vel, todavia e i e al um con ecimento, principalmente quando
ocorrem erros na gerao do cdigo binrio.

3.4.4 - Cpia
Este o formato mais simples de instalao, sendo necessrio apenas copiar os arquivos
dentro de um diretrio e pronto, j possvel utilizar o programa. A cpia pode ser direta
ou ento preciso primeiramente executar o programa tar ou gunzip (ou ambos).
Neste caso os programas j esto em formato binrio e prontos para serem utilizados,
exigindo pouco ou nenhum trabalho extra.

3.4.5 - Instalao de Pacotes


A instalao por cpia ou com uso de instaladores prprios no ser tratada no livro, uma
vez que o primeiro muito simples e no necessita de maiores explicaes, e o segundo
especfico de cada pacote, dependendo de consulta ao uia de instalao fornecido com
o pacote em questo.
Trataremos da instalao por rpm ou apt.

3.4.5.1 - Instalao por RPM


Para instalao de um pacote por meio do utilitrio RPM, devemos utilizar o modo -i ou
--install. Neste caso teremos as seguintes opes disponveis:
allfiles Instalar todos os arquivos do pacote, mesmo arquivos de confi urao
que poderiam ser ignorados.
--excludedocs No instala documentao.
filecon itcts etecta con itos entre pacotes
force Instala mesmo que a a pro lema de con itos e depend ncias
-F Atualiza o pacote se j estiver instalado.
-h Exibe o smbolo # medida que o pacote instalado, geralmente utilizado
com -v.
--ignorearch Ignora a arquitetura do pacote.
--ignoreos Ignora o sistema operacional do pacote.
i noresi e No verifica o espao em disco antes de instalar
70
nodeps No verifica as depend ncias do pacote

T ar ef as E ssenc iais do A dministr ador


nomd No verifica o md dos arquivos
--nosuggest No sugere como resolver problemas de dependncia.
--noscripts No executa scripts de instalao contidos no pacote.
--percent Exibe o percentual instalado durante o processo.
--test No instala, apenas informa se seria executada com sucesso.
-v Exibe detalhes da instalao.
De modo geral utilizamos a forma mais simples do utilitrio, por exemplo:
# rpm i v h postgresql-8.4.5-1.fc15.i686.rpm

3.4.5.2 - Instalao por Apt


A instalao de um novo pacote por meio do apt-get feita pelo modo Install e em geral
no necessita de nenhuma opo extra.
Um exemplo :
# apt-get Install php
# apt-get Install y mysql

3.4.6 - Atualizao de Pacotes


A atualizao uma rotina comum, pois sempre temos algum pacote sendo atualizado,
quer seja para melhorias quer seja para correo de erros (bugs). Trataremos da atualizao
por RPM ou apt-get.
Antes de atualizar um pacote, precisamos tomar alguns cuidados, principalmente se houver
dependncias, uma vez que a atualizao pode afetar o comportamento dos programas
dependentes deste ou mesmo faz-los parar de funcionar.

3.4.6.1 - Atualizao por RPM


Para atualizar um pacote pelo RPM, devemos utilizar o modo U ou --UPGRADE, juntamente
com as opes necessrias, que so as seguintes:
--excludedocs No instalar documentao.
--oldpackage Permite a instalao de uma verso anterior a que j est instalada
(downgrade).
force Instala mesmo que a a pro lema de con itos e depend ncias

71
Linux - Fundamentos -h Exibe o smbolo # medida que o pacote instalado, geralmente utilizado
com -v.
--ignorearch Ignora a arquitetura do pacote.
--ignoreos Ignora o sistema operacional do pacote.
nodeps No verifica as depend ncias do pacote
--noscripts No executar scripts de instalao contidos no pacote.
--percent Exibir o percentual instalado durante o processo.
--test No instala, apenas informa se seria executada com sucesso.
-v Exibe detalhes da instalao.
Um exemplo:
# RPM U v h php-5.3.3-2.fc15.i686.rpm

3.4.6.2 - Atualizao por Apt


Para atualizar um pacote utilizando o apt-get, devemos usar o modo UPGRADE disponvel
na ferramenta e em geral no necessria nenhuma opo extra. Exemplos:
# apt-get upgrade php
# apt-get upgrade y postgresql
possvel obter uma nova lista de pacotes e novas verses pela opo UPDATE do
apt-get.
# apt-get update u mysql

3.4.7 - Remoo de Pacotes


A remoo de pacotes sempre possvel, mas devemos redobrar os cuidados nessa ao,
uma vez que podemos comprometer seriamente o sistema, podendo inclusive faz-lo
parar de funcionar ou ficar e tremamente inst vel

3.4.7.1 - Remoo por RPM


Para remover um pacote usando o RPM, utilizamos o modo e ou erase. Temos as
seguintes opes para esse modo:
nodeps No verifica as depend ncias do pacote
--noscripts No executa scripts de remoo contidos no pacote.
--test No remove, apenas informa se seria executada com sucesso.

72 -vv Exibe detalhes da instalao.


Todos os traos do pacote no sistema so removidos, a no ser que exista alguma

T ar ef as E ssenc iais do A dministr ador


dependncia, o que pode impedir a remoo (veja a opo -nodeps). Os arquivos do
pacote so removidos caso pertenam somente ao pacote em questo; caso contrrio, so
mantidos no sistema. Exemplo:
# RPM erase vv php-5.3.3-2.fc15.i686.rpm

3.4.7.2 - Remoo por Apt


A remoo pelo apt-get feita utilizando o modo REMOVE e em geral no necessria
nenhuma opo extra. Exemplo:
# apt-get remove php
# apt-get remove mysql

3.5 - Monitoramento do Sistema


Monitorar a sade do servidor uma tarefa fundamental para o administrador Linux e
sempre preciso estar atento aos seguintes itens do sistema:
 CPU
 Disco
 Memria
 Rede
Cada um destes itens deve ser monitorado frequentemente pelo administrador, pois
in uencia diretamente na performance e na esta ilidade do sistema operacional se uir,
mostramos as ferramentas disponveis para o gerenciamento de cada um dos itens. Algumas
vezes a mesma ferramenta pode ser utilizada em mais de um item.

3.5.1 - CPU
elo monitoramento da U podemos verificar possveis ar alos no sistema, em como
saber quais processos gastam mais tempo e recursos do sistema, o que ajuda em um plano
para equalizar a performance, seja investindo em um novo servidor ou simplesmente
alterando o comportamento do sistema, por exemplo, alterando o horrio de processamento
de um ou mais aplicativos para liberar tempo e recurso de CPU para processos mais crticos.
O primeiro passo usar o utilitrio top que mostra em tempo real os processos que esto
rodando e os recursos que esto sendo consumidos, inclusive tempo de processamento e
alocao de CPU.

73
Linux - Fundamentos
O padro exibir primeiramente as tarefas que mais consumem CPU. Um exemplo de sua
execuo :
# top

Figura 3.7

Por meio deste utilitrio obtemos informaes importantes, tais como a taxa de ocupao
da CPU, quanto cada processo est requisitando de CPU e outras informaes importantes.
Outro utilitrio importante no gerenciamento de CPU o vmstat, que exibe informaes
diversas, entre elas o consumo de CPU. Temos a opo de exibio do resultado de vrias
formas. Acompanhe alguns exemplos:

Figura 3.8

Este exemplo exibe os dados em uma nica linha, e cada linha mostra a situao do sistema
trs segundos aps a linha anterior (o parmetro 3 indica ao utilitrio que deve exibir uma
nova estatstica a cada trs segundos).
74
T ar ef as E ssenc iais do A dministr ador
Figura 3.9

Neste segundo exemplo os dados so exibidos de forma mais completa e uma informao
por linha (o parmetro s utilizado para exibir um sumrio).
Outro utilitrio que podemos utilizar para busca de informaes da CPU e de outros
itens do sistema operacional o ps, que mostra basicamente os processos executados
no momento, mas pode, por meio de suas vrias opes, oferecer uma gama enorme de
informaes. Por exemplo, para ver todos os processos sendo executados, utilizamos a
opo A:

# ps A
# ps -A

Sample Outputs:

PID TTY TIME CMD


1 ? 00:00:02 init
2 ? 00:00:02 migration/0
3 ? 00:00:01 ksoftirqd/0
4 ? 00:00:00 watchdog/0
5 ? 00:00:00 migration/1
6 ? 00:00:15 ksoftirqd/1
...
...
4881 ? 00:53:28 java
4885 tty1 00:00:00 mingetty
4886 tty2 00:00:00 mingetty
4887 tty3 00:00:00 mingetty
4888 tty4 00:00:00 mingetty
4891 tty5 00:00:00 mingetty
4892 tty6 00:00:00 mingetty
4893 ttyS1 00:00:00 agetty
12853 ? 00:00:00 cifsoplockd
12854 ? 00:00:00 cifsdnotifyd
14231 ? 00:10:34 lighttpd
75
Linux - Fundamentos 14232 ? 00:00:00 php-cgi
54981 pts/0 00:00:00 vim
55465 ? 00:00:00 php-cgi
55546 ? 00:00:00 bind9-snmp-stat
55704 pts/1 00:00:00 ps

Para obter mais informaes, podemos utilizar as opes Alf.


Para obter a rvore de processos, so usadas as opes ejH ou axjf ou ainda o utilitrio
pstree. Veja um exemplo de sua execuo:

Figura 3.10

Detalhes sobre a CPU do servidor podem ser encontrados no arquivo /proc/cpuinfo.


Acompanhe um exemplo:

Figura 3.11

76
aso voc dese e, pode usar se a interface r fica estiver disponvel o utilit rio r fico do

T ar ef as E ssenc iais do A dministr ador


GNOME para monitorar o sistema.

Figura 3.12

Podemos ver neste utilitrio tanto a estatstica de utilizao quanto os processos que esto
sendo executados.

3.5.2 - Memria
Alm dos utilitrios top e vmstat, que servem tambm para monitorar a memria do
servidor, e istem ainda outros utilit rios especficos
O primeiro dos utilitrios o free, que tem como funo exibir a memria total, utilizada e
disponvel do sistema, alm de informaes extras sobre cache e swap.

Figura 3.13

Utilizando a opo s <tempo>, podemos exibir a estatstica de forma contnua, a cada


<tempo> segundos.
ara o ter informaes especficas de um dado processo, considera se o utilit rio pmap
Para saber qual o processo desejado, usa-se o utilitrio os. Veja um exemplo de pmap:
77
Linux - Fundamentos

Figura 3.14

Para obter informaes mais detalhadas, podemos usar as opes d e x.

Figura 3.15

Finalmente, temos o arquivo /proc/meminfo que contm informaes extras sobre a


memria do sistema.
78
T ar ef as E ssenc iais do A dministr ador
Figura 3.16

3.5.3 - Disco
Para o gerenciamento do disco existem os utilitrios fdisk, df e du. O primeiro exibe
informaes sobre os discos e suas parties, j o segundo mostra a ocupao atual do
sistema e o ltimo apresenta a ocupao de cada um dos arquivos do diretrio atual e
todos os seus subdiretrios de forma recursiva ou do sistema inteiro (caso estejamos no
diretrio raiz).
O utilitrio fdisk tem como principal funo o gerenciamento de parties, executando
a criao, formatao e remoo de parties (no o escopo deste tpico tratar deste
assunto). Vamos ver agora a lista de parties disponveis, usando a opo l. O resultado
ser algo parecido com:

Figura 3.17

79
Linux - Fundamentos
Veja que h informaes sobre o tamanho do disco, os dispositivos e o tamanho e tipo de
cada partio.
O utilitrio df exibe a ocupao atual do disco, informando o tamanho de cada partio,
sua ocupao, a disponibilidade de espao, o percentual do disco utilizado e o ponto de
montagem da partio.

Figura 3.18

A opo h permite uma leitura mais fcil e direta dos dados apresentados.
Por ltimo temos o utilitrio du, que exibe a ocupao de cada arquivo do diretrio atual e
de todos os seus diretrios ( recursivo). Para exibir a ocupao de todo o disco, devemos
estar na raiz do sistema ao executar o comando. H basicamente duas formas de ver
o resultado. A primeira o resultado detalhado com a exibio da ocupao de cada
arquivo ou diretrio, a segunda a exibio apenas do resumo total. Na primeira forma,
basta executar o comando sem nenhuma opo (ou apenas de exibio com a opo h,
que tem o mesmo efeito mostrado em df). A segunda forma, isto , a exibio apenas do
resumo final conse uida com a opo s e a um e emplo das duas opes

Figura 3.19

3.5.4 - Rede
O gerenciamento da rede, seu trfego, conexes, pontes, utilizao de sockets e outras
informaes so fundamentais para que o administrador gerencie o sistema e consiga
deix-lo estvel, funcional e otimizado.
Para essa tarefa existem alguns utilitrios, tais como netstat, traceroute e tcpdump. Com
exceo do ltimo utilitrio da lista (tcpdump), todos so de fcil utilizao e entendimento.
O utilitrio netstat exibe as conexes de rede, tabela de roteamento, estatsticas de cada
interface e outras informaes teis. Veja um exemplo de sua utilizao:

80
T ar ef as E ssenc iais do A dministr ador
Figura 3.20

O utilitrio ss exibe as estatsticas de sockets. Em geral utilizamos com a opo a, que


indica que todos os sockets devem ser exibidos, porm o utilitrio dispe de vrias opes
para filtra em e maior detal amento das informaes compan e um e emplo

Figura 3.21

81
Linux - Fundamentos
J o utilitrio tcpdump serve para monitorar o trfego de rede, mas necessrio um
conhecimento razovel do protocolo TCP/IP para fazer bom uso dessa ferramenta. Veja
um exemplo de utilizao:

Figura 3.22

3.6 - Arquivos de Mensagens e Logs do Sistema


O Linux possui vrios arquivos. Alm disso, grande parte dos pacotes disponibiliza seus
prprios arquivos de mensagens e logs.
A maioria dos arquivos de mensagens e logs do sistema est no diretrio /var/logs e pode
ser vista por meio dos comandos cat, more ou tail.
Os arquivos de mensagens e logs mais comuns so:
/var/log/message Mensagens gerais do sistema.
/var/log/auth.log Log de autenticao de usurios.
/var/log/kern.log Log do Kernel do Linux.
/var/log/cron.log Log do crond (agendador de tarefas).
/var/log/mai.log Log do servidor de correio (mail).
/var/log/boot.log Log com informaes de boot (inicializao) do sistema.
/var/log/utmp Registro de entrada de usurios ou wtmp.
Muitos aplicativos tm seu prprio diretrio de mensagens e log. Por exemplo, o servidor
web apache tem por padro criar seu prprio diretrio de logs e armazenar neles os
arquivos com informaes de acesso, erros e outros.
No modo r fico podemos visuali ar e erenciar os arquivos de lo pelo aplicativo intitulado
nome s stem lo pressupondo que voc est usando o nome como interface r fica
Em uma nica tela possvel monitorar os logs existentes, alter-los, remov-los ou incluir
novos arquivos de controle.
82
T ar ef as E ssenc iais do A dministr ador
Figura 3.23

Para gerenciamento dos arquivos de log, principalmente limitao de tamanho (alguns


arquivos crescem rapidamente), utilizamos o aplicativo logrotate. Podemos rodar o
aplicativo manualmente ou inseri lo no cronta para que rode diariamente confi urao
pode ser eral, por meio do arquivo etc lo rotate conf, ou especfica para cada arquivo
Neste caso inserimos a confi urao no diret rio etc lo rotate conf, e o nome do arquivo
de confi urao o nome do processo que dese amos erenciar e a dois e emplos
/etc/logrotate.conf:

# sample logrotate configuration file


compress
/var/log/messages {
rotate 5
weekly
postrotate
/usr/bin/killall -HUP syslogd
endscript
}

/var/log/httpd/access.log /var/log/httpd/error.log {
rotate 5
mail www@my.org
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}

/var/log/news/news.crit {
monthly
rotate 2
olddir /var/log/news/old
missingok
83
Linux - Fundamentos postrotate
kill -HUP `cat /var/run/inn.pid`
endscript
nocompress
}

o especfico de um processo qualquer

/var/log/process-name.log {
rotate 12
monthly
errors root@localhost
missingok
postrotate
/usr/bin/killall -HUP process-name 2> /dev/null || true
endscript
}

3.7 - Servios (Daemons)


O Linux disponibiliza uma srie de aplicativos executados em modo escondido
(background), o que chamamos de servios. Seja o servidor de impresso, o gerenciador
de correio, o servidor web e muitas outras aplicaes, todos so executados de forma
transparente, atuando nos bastidores do sistema operacional.
Servios so programas chamados daemons. Uma vez instalados e iniciados, so exe-
cutados continuamente at que sejam interrompidos, quer seja manualmente ou por
al um par metro de sua confi urao Um e emplo de daemon o servio do servidor
we apac e con ecido como ttpd Uma ve iniciali ado, fica o servando ouvindo a
porta ou outra porta, conforme confi urao e, quando e iste atividade, reali a as
operaes solicitadas pelos programas clientes (em geral um browser HTML).
ara erenciar os servios no inu e istem os aplicativos c confi e service, am os
localizados na pasta /sbin.
primeiro, c confi , confi ura quais servios sero e ecutados durante o processo de
inicializao (boot) do Linux. Qualquer alterao processada por esse comando ter efeito
somente no prximo processo de inicializao (boot) do servidor. Caso seja necessrio
ativar ou desativar um servio manualmente e imediatamente, deve-se usar o utilitrio
service.

3.7.1 - Chkconfig
utilit rio c confi define os servios que sero iniciali ados unto com o sistema
operacional e em que nvel ocorre a inicializao. Os nveis variam de 0 a 6:
0. Modo de desligamento (shutdown). Aqui temos o processo de parada do servio.
1. Modo monousurio, conhecido como modo de manuteno.
2. Modo multiusurio bsico.
84
odo multiusu rio completo, e ceto interface r fica

T ar ef as E ssenc iais do A dministr ador


4. No utilizado.
odo multiusu rio completo com interface r fica padro
6. Modo de reinicializao do sistema (reboot).
e maneira eral definimos o nvel como o ideal para e ecuo de um servio, mas pode
ser necess rio definir em outros nveis em al uns casos especficos
Para obter uma lista de servios e seus nveis, utilizamos a opo --list. Veja um exemplo:

# /sbin/chkconfig --list
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:on 6:off
NetworkManagerDispatcher 0:off 1:off 2:off 3:off 4:off 5:on 6:off
acpid 0:off 1:off 2:off 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
ati-fglrx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
bluetooth 0:off 1:off 2:on 3:on 4:on 5:off 6:off
cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off
...

ara verificar quais servios esto sendo e ecutados em um nvel especifico


c comfi list rep on
ara procurar um servio especifico, podemos e ecutar o se uinte comando
c confi list rep ttpd
A incluso de um novo servio feita pela opo add. A sintaxe neste caso :
confi add nome do servio
Antes de executar esse comando, devemos ter certeza de que o script do servio em questo
est dentro da pasta /etc/init.d ou /etc/rc.d/init.d, dependendo da distribuio Linux.
Ao executar a opo add, o servio instalado em todos os nveis de inicializao, ou seja,
do nvel 0 at o nvel 6. Uma cpia do servio feita nos diretrios /etc/rc0.d, /etc/rc1.d, /
etc/rc2.d, ..., /etc/rc6.d. Exemplo:
c confi add ttpd
Neste exemplo estamos adicionando o servio httpd do servidor web apache ao processo
de inicializao do Linux.
Nem sempre preciso que um servio seja executado em todos os nveis de inicializao.
Para alterar em quais nveis o servio deve ser executado, ou para habilitar ou desabilitar
um determinado nvel, utilizamos a opo level:
confi level nvel servio on off
85
Linux - Fundamentos O exemplo a seguir mostra como habilitar apenas o nvel 5 para o servio httpd:
c confi level ttpd off
Lembre-se de que o servio deve estar criado antes de executar essa opo. Quando o
servio foi criado, ele foi a ilitado em todos os nveis ara confirmar que o servio vai
rodar no nvel apropriado, utilize a opo list:
c confi list rep ttpd
A remoo de um servio do processo de inicializao deve ser feita pela opo --del do
utilitrio, cuja sintaxe :
confi del servio
Veja um exemplo:
c confi del ttpd
Com isso o processo ser retirado de todos os nveis de inicializao, porm o original no
ser excludo de init.d.

3.7.2 - Service
Para o controle manual de um processo, utilizamos o aplicativo service, com o qual
podemos iniciar ou parar manualmente um servio e verificar a situao de um ou v rios
servios. O arquivo relacionado ao servio deve estar instalado no diretrio init.d antes de
e ecutarmos o aplicativo service no necess rio que c confi ten a sido e ecutado
previamente).
Para iniciar um servio, utilizamos a opo start, cuja sintaxe :
Service <servio> start
Um exemplo:
# service httpd start
O resultado ser algo como:
Starting httpd: [ OK ]
Caso o servio no possa ser iniciado, uma mensagem de erro retornada.
A parada de um servio conseguida com a opo stop, cuja sintaxe :
Service <servio> stop
Veja um exemplo:
# service httpd stop

86
O resultado ser algo como:

T ar ef as E ssenc iais do A dministr ador


Stopping httpd: [ OK ]
Novamente, caso haja algum problema, uma mensagem de erro ser exibida.
Para ver a situao atual de um processo, utilizamos a opo status, cuja sintaxe :
Service <servio> status
Veja o exemplo:
# service httpd status
Obteremos como resultado algo como:
Httpd is Stopped
Se for necessrio visualizar todos os processos e a situao de cada um deles, utilizamos a
opo --status-all. Acompanhe um exemplo:
# service -status-all
resultado ser a lista completa de todos os servios aso se a necess rio filtrar somente
os servios ativos, podemos executar o comando da seguinte forma:
service status all rep runnin
O resultado ser algo como:

acpid (pid 2146) is running...


anacron (pid 2236) is running...
atd (pid 2243) is running...
Init-Script is running.
auditd (pid 1944) is running...
cpuspeed (pid 1880) is running...
crond (pid 2206) is running...
cupsd (pid 2156) is running...

3.8 - Gerenciamento de Processos


H vrias ferramentas para gerenciamento de processos, algumas j abordadas em itens
anteriores, tais como top e ps.
Muitas vezes precisamos eliminar um ou mais processos que esto sendo executados, seja
por algum problema na sua execuo, consumo excessivo de memria ou CPU, escassez
de recursos no servidor, necessidade de troca de verso ou manuteno do sistema etc.
odo e qualquer processo rece e um identificador nico no sistema, o qual con ecido
como I rocess Idenficator ou idenficador de processo or meio dele o sistema
gerencia os processos, e sempre que for preciso realizar alguma ao no processo, devemos
utiliz-lo (exceto com o comando killall).
87
Linux - Fundamentos Todos os processos em execuo so registrados no diretrio/proc/<PID>, dentro do qual
obtemos uma gama enorme de informaes do processo, tais como alocao de memria,
mdulo carregados, situao do processo, dispositivos alocados e outras informaes teis
para o completo gerenciamento do processo.

3.8.1 - Kill e killall


Kill e killall so utilizados, como o prprio nome sugere, para remoo de processos do
sistema. Kill geralmente faz a remoo de um processo, enquanto killall til quando
queremos remover um grupo de processos.
A sintaxe do comando kill :
Kill s sinal PIDs
Sinal pode ser o nmero do sinal ou seu nome. Os principais sinais so:
 SIGINT 2
 SIGQUIT 3
 SIGKILL 9
 SIGSEGV 1
 SIGTERM 5
De forma geral utilizamos -9 (SIGKILL) ou -15 (SIGTERM).
I s define um ou mais pids que sero removidos e for uma lista, os pids devem ser
separados por espao. Exemplo:
ps rep p p
# kill -9 55605
O comando killall permite que todos os processos de um determinado programa sejam
removidos. Sua sintaxe :
Killall <opes> <processo>
As opes mais utilizadas so:
i emove de forma interativa, solicitando confirmao antes de remover cada um dos
processos.
-q Modo silencioso, no exibe nenhuma informao do processo.
-w Diz ao comando que aguarde que os processos sejam removidos.
Veja um exemplo:
# killall mysqld
# killall nautilus

88
3.9 - Superusurio

T ar ef as E ssenc iais do A dministr ador


Superusurio ou usurio raiz ou usurio root o usurio do Linux com direitos totais
e irrestritos. Ele criado durante a instalao do Linux e deve ser utilizado para dar
manuteno ao sistema (para executar os itens mostrados - a maioria deles - neste captulo,
voc teve de entrar como superusurio no sistema).
Ele deve ser utilizado somente pelo administrador do sistema e em hiptese nenhuma
deve ser liberado para usurios comuns, sob risco de comprometimento da integridade do
sistema operacional.
Voc pode notar a diferena entre um usurio comum e o superusurio pelo smbolo
exibido no prompt de comando. No caso do superusurio temos o smbolo # e para
usurios comuns, o smbolo $.
Se for necessrio, possvel dar direitos de superusurio a um usurio comum, usando o
comando su:
$ su
A senha do superusurio ser solicitada e, caso esteja correta, o usurio passa a ter as
permisses do superusurio (inclusive o prompt alterado para #).
Para sair do modo superusurio, basta digitar o comando exit:
# exit

Se for necessrio apenas executar um comando como superusurio, possvel utilizar a opo c no
Dica

comando su.

H ainda a opo de permitir que certos usurios executem comandos como superusurio
sem a necessidade de informar a senha (o que uma boa prtica na maioria dos casos, pois
senhas conhecidas por outros, alm do dono, costumam tornar-se pblicas).
Para isso utilizamos, em vez de su, o comando sudo, que autoriza os usurios a executarem
comandos como se fossem o superusurio, sem necessidade da senha do superusurio.
necess rio confi urar o arquivo etc sudoers, que em e vel e permite a definio
de permisses, limitaes e outras confi uraes teis usu rio deve sempre di itar sua
senha para poder rodar o sudo ( possvel inibir a senha pela opo NOPASSWD).
ara editar o arquivo de confi urao, utili amos o pro rama visudo
Veja um exemplo do arquivo sudoers:

#
# Sample /etc/sudoers file.
#
# This file MUST be edited with the visudo command as root.
#
89
Linux - Fundamentos # See the sudoers man page for the details on how to write a sudoers file.
#

##
# User alias specification
##
User_Alias FULLTIMERS = millert, mikef, dowdy
User_Alias PARTTIMERS = bostley, jwfox, crawl
User_Alias WEBMASTERS = will, wendy, wim

##
# Runas alias specification
##
Runas_Alias OP = root, operator
Runas_Alias DB = oracle, sybase

##
# Host alias specification
##
Host_Alias SPARC = bigtime, eclipse, moet, anchor:\
SGI = grolsch, dandelion, black:\
ALPHA = widget, thalamus, foobar:\
HPPA = boa, nag, python
Host_Alias CUNETS = 128.138.0.0/255.255.0.0
Host_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias SERVERS = master, mail, www, ns
Host_Alias CDROM = orion, perseus, hercules

##
# Cmnd alias specification
##
Cmnd_Alias DUMPS = /usr/sbin/dump, /usr/sbin/rdump, /usr/sbin/restore, \
/usr/sbin/rrestore, /usr/bin/mt
Cmnd_Alias KILL = /usr/bin/kill
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias HALT = /usr/sbin/halt, /usr/sbin/fasthalt
Cmnd_Alias REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot
Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
/usr/local/bin/tcsh, /usr/bin/rsh, \
/usr/local/bin/zsh
Cmnd_Alias SU = /usr/bin/su
Cmnd_Alias VIPW = /usr/sbin/vipw, /usr/bin/passwd, /usr/bin/chsh, \
/usr/bin/chfn

##
# Override built-in defaults
##
Defaults syslog=auth
Defaults:FULLTIMERS !lecture
Defaults:millert !authenticate
Defaults@SERVERS log_year, logfile=/var/log/sudo.log

##
# User specification
##

# root and users in group wheel can run anything on any machine as any user
root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL

# full time sysadmins can run anything on any machine without a password
FULLTIMERS ALL = NOPASSWD: ALL
90
# part time sysadmins may run anything but need a password

T ar ef as E ssenc iais do A dministr ador


PARTTIMERS ALL = ALL

# jack may run anything on machines in CSNETS


jack CSNETS = ALL

# lisa may run any command on any host in CUNETS (a class B network)
lisa CUNETS = ALL

# operator may run maintenance commands and anything in /usr/oper/bin/


operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\
/usr/oper/bin/

# joe may su only to operator


joe ALL = /usr/bin/su operator

# pete may change passwords for anyone but root on the hp snakes
pete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

# bob may run anything on the sparc and sgi machines as any user
# listed in the Runas_Alias OP (ie: root and operator)
bob SPARC = (OP) ALL : SGI = (OP) ALL

# jim may run anything on machines in the biglab netgroup


jim +biglab = ALL

# users in the secretaries netgroup need to help manage the printers


# as well as add and remove users
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

# fred can run commands as oracle or sybase without a password


fred ALL = (DB) NOPASSWD: ALL

# on the alphas, john may su to anyone but root and flags are not allowed
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

# jen can run anything on all machines except the ones


# in the SERVERS Host_Alias
jen ALL, !SERVERS = ALL

# jill can run any commands in the directory /usr/bin/, except for
# those in the SU and SHELLS aliases.
jill SERVERS = /usr/bin/, !SU, !SHELLS

# steve can run any command in the directory /usr/local/op_commands/


# as user operator.
steve CSNETS = (operator) /usr/local/op_commands/

# matt needs to be able to kill things on his workstation when


# they get hung.
matt valkyrie = KILL

# users in the WEBMASTERS User_Alias (will, wendy, and wim)


# may run any command as user www (which owns the web pages)
# or simply su to www.
WEBMASTERS www = (www) ALL, (root) /usr/bin/su www

# anyone can mount/unmount a cd-rom on the machines in the CDROM alias


ALL CDROM = NOPASSWD: /sbin/umount /CDROM,\
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM

91
Linux - Fundamentos
o etivo do arquivo de confi urao tanto li erar usu rios para e ecuo de comandos
do superusurio quanto limitar sua atuao, impedindo o acesso irrestrito ao sistema, o
que seria potencialmente peri oso e i ilidade tal que podemos criar v rios apelidos
(alias), e desta forma agrupar usurios, comandos, programas etc. Veja, por exemplo, a
linha:

jill SERVERS = /usr/bin/, !SU, !SHELLS

Aqui temos que o usurio Jill pode executar qualquer comando no diretrio /usr/Bin,
exceto os que esto listados nos apelidos SU e SHELLS, que so:

Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \


/usr/local/bin/tcsh, /usr/bin/rsh, \
/usr/local/bin/zsh
Cmnd_Alias SU = /usr/bin/su

J o usurio fred pode executar qualquer comando como oracle e Sybase sem que seja
solicitada a sua senha.

fred ALL = (DB) NOPASSWD: ALL

J jen pode executar qualquer comando em todos os servidores, com exceo dos listados
em SERVERS.

Host_Alias SERVERS = master, mail, www, ns

92
T ar ef as E ssenc iais do A dministr ador
Exerccios

1. Explique o comando mkdir.


2. D um exemplo do comando mv utilizando o modo forado.
3. Explique o comando chmod 755 teste*.
4. O que acontece no comando chmod a=,u=rwx,g=r,o=x,g+w,o-x teste?
5. Qual o comando usado para adicionar um novo grupo?
6. O que faz o comando useradd? D um exemplo.
7. Que comando gerencia senhas?
8. O que faz o comando RPM?
9. Para que serve apt-get?
10. O que faz o programa free?
11. Qual o resultado de fdisk l?
12. O que faz o comando SS?
13. omo confi urar um servio para iniciali ao autom tica
14. Explique o comando kill.
15. Para que serve o comando su?
16. Qual a funo do arquivo sudoers?

93
4
Instalao

4.1 - Introduo
Se este o seu primeiro contato com uma instalao Linux, tenha certeza de que voc vai
instalar e reinstalar muitas distribuies at encontrar uma que lhe agrade. Graas ao mundo
colaborativo e s iniciativas de torn-lo um sistema mais difundido, os instaladores de hoje no
so cheios de mistrios e macetes, nem todos na linha inglesa, pois a maioria deles multilngua,
alm de possuir interface r fica familiar queles acostumados com o fami erado icrosoft
Windows.
Os instaladores modernos so verdadeiramente muito bem elaborados e ajudam o usurio, pois
em quase sua totalidade, os instaladores r ficos so muito intuitivos asicamente eles a ustam
as confi uraes de ardware e instalam os pacotes selecionados
O hardware tambm era um grande problema h alguns anos, mas hoje a dinmica de
atualizaes do kernel e mdulos muito rpida, pois os fabricantes cada vez mais se preocupam
em lanar seus dispositivos com drivers tam m para inu Isso si nifica que as distri uies
Linux esto cada vez mais compatveis com computadores de marca, e a menos que voc tenha
uma mquina muito velha ou um computador montado com peas muito diferentes, no deve
ter problemas com a instalao.
Neste captulo veremos detalhes de cada uma das opes existentes em praticamente todos
os instaladores. Usamos o CentOS como exemplo de instalao para conduzir as explicaes.
Quando voc for instalar uma outra distribuio, provavelmente encontrar telas com layouts
diferentes, mas o conceito sempre ser o mesmo, por isso, ao entender o princpio de uma
instalao, estar apto a se aventurar com a distribuio que desejar.

4.2 - Preparao para Instalar


Existem diversas maneiras de instalar uma distribuio Linux. Antes de iniciar preciso avaliar
a que melhor se encaixa com a sua realidade. Voc pode instalar pelo mtodo mais tradicional
que a partir de um CD-ROM ou DVD, ou pela rede atravs dos protocolos NFS, HTTP e FTP,
alm de poder instalar diretamente de um disco rgido ou pen drive.
Uma instalao via rede consiste basicamente em disponibilizar uma imagem da instalao

I nstal a o
do sistema atravs de um dos protocolos de rede compatveis, ou seja, se fosse instalar a
partir de um compartilhamento da Internet, teramos de copiar a imagem do CD-ROM
ou DVD de instalao para essa pasta, e ao iniciar a instalao, informar os dados para
conexo ao servidor NFS.
A instalao atravs de um pen drive tambm no tem nenhum segredo. Basicamente o
mesmo que queimar uma imagem de uma instalao do Linux em um pen drive com boot
para usar na instalao.
Veremos uma instalao a partir de um DVD para arquitetura de 32 bits. importante
verificar se o seu computador de ou its na ora de ai ar a ima em de instalao
Este captulo mostra como fazer para instalar em modo texto, pois se voc consegue instalar
uma distribuio em modo texto e entendeu como fez, para instalar qualquer outra no
ter problemas, porque os instaladores so bem semelhantes e seguem uma mesma lgica.
instalao pelo ive , quando em modo r fico, praticamente i ual quela com
DVD, no entanto oferece a capacidade de usar o sistema antes de ter instalado.
Para os estudos precisamos baixar essa imagem de DVD. Ela pode ser encontrada no site
oficial do ent o www centos or , ou no lin se uinte voc acessa o diret rio com as
imagens para download:
http://centos-mirror.hostdime.com.br/centos/5.5/isos/i386/
Aps efetuar o download voc precisa criar o DVD. Para queimar um DVD a partir da
imagem baixada no formato ISO, pode usar qualquer programa de gravao de CDs e
DVDs, como o Nero, por exemplo.

4.3 - Instalao
Para instalar a partir de um DVD, precisamos de um leitor de DVD instalado e tambm
necessrio dizer para a BIOS do computador que deve perguntar ou efetuar o boot
diretamente pelo leitor de DVD. Faa isso antes de prosseguir. Consulte o manual do
fabricante da placa-me caso seja necessrio.
instalao ser feita em modo te to No usaremos o am iente r fico, mas se voc
quiser e perimentar o modo r fico, no pro lema, pois a sequ ncia do instalador
muito parecida.

Incio da Instalao
Coloque o DVD no leitor e reinicie ou ligue o computador. Em seguida aparece uma tela
com as opes de boot e instalao, como na Figura 4.1.

95
Linux - Fundamentos

Figura 4.1

Nessa tela, se simplesmente pressionarmos N , a instalao em modo r fico iniciada,


mas no o que queremos fazer nesse instante. Vamos observar que nessa tela existem logo
abaixo algumas opes para as teclas de funo: F2 mostra algumas opes de instalao,
F3 exibe uma ajuda geral do sistema, F4 exibe informaes sobre parmetros do kernel e
F5 informa sobre opes de emergncia para recuperao de um sistema.
Para iniciar a instalao, vamos usar a opo de instalao text. Digite linux text seguido
de ENTER. Isso inicia a instalao em modo texto.

Teste do DVD
Em seguida ser solicitado que o DVD seja testado. Testar o DVD gravado uma boa ideia
nesse momento para evitar que a instalao seja interrompida por causa de problemas com
o DVD gravado. Use as setas ou o TAB para alternar entre as opes, selecione OK para
testar e Skip para ignorar o teste.

Figura 4.2
96
As Boas-Vindas

I nstal a o
Terminado o passo de teste, o instalador tenta reconhecer alguns dispositivos de hardware
necessrios nesse momento, em seguida surge a tela de boas-vindas. Apenas pressione
ENTER para prosseguir.

Figura 4.3

Seleo do Idioma
Uma tela com a seleo do idioma mostrada, como na Figura 4.4. O idioma padro o
English. Use as setas para selecionar o idioma desejado, TAB para chegar at o ENTER e
confirme

Figura 4.4

97
Seleo do Layout do Teclado
Linux - Fundamentos

A seleo do teclado sugerida conforme o idioma selecionado na tela anterior, mas voc
pode alterar caso no esteja correto.

Figura 4.5

Seleo de um Mtodo para Configurao do Disco Rgido


Se estiver instalando em um disco rgido novo, que nunca foi formatado, pode ser
surpreendido com a mensagem da tela mostrada na Figura 4.6. Isso no motivo para
p nico, pois ele est afirmando que no conse uiu ler a ta ela de partio do disco e
precisa inici-lo para prosseguir, mas avisa que todos os dados sero perdidos. Aqui vale o
bom-senso. Voc deve saber se pode ou no apagar tudo que existe no disco rgido, se
que h alguma informao.

Figura 4.6

98
Se o seu disco rgido j havia sido formatado anteriormente, ser direcionado para a tela de

I nstal a o
seleo do tipo de particionamento, conforme a Figura 4.7.

Figura 4.7

Esta uma das etapas mais importantes da instalao, principalmente se voc estiver
instalando em um disco rgido que j possui outros sistemas operacionais, como o Microsoft
Windows. Mas no se preocupe, pois a comunidade Linux se preocupa em coexistir com
outros sistemas eremos o que si nifica cada um dos tipos de particionamento
 Apagar todas parties nos discos selecionados e criar layout padro: a melhor
opo se voc estiver usando um disco rgido que pode ser totalmente formatado e
se quer apenas utilizar o CentOS como desktop, pois nela o instalador cria um layout
padro automaticamente sem interveno do usurio.
 Remover parties Linux nos discos selecionados e criar layout padro: similar
primeira opo, entretanto desta vez apaga apenas as parties Linux para criar outro
layout padro. Ideal quando j temos um sistema Linux instalado e queremos nos
desfazer dele e instalar o novo por cima. Nesse tipo todos os dados das parties Linux
existentes so apagados.
 Usar espao livre nos discos selecionados e criar layout padro: esta a sem
dvida a melhor opo para quem est saindo, tem o Windows instalado e deixou um
espao livre para iniciar suas aventuras em Linux. Ela no altera nenhuma das parties
existentes, ou seja, nenhum dado perdido. Nessa opo o instalador cria um layout
padro automaticamente no espao livre do disco.
 Criar layout personalizado: essa opo para usurios avanados. Se selecionada,
o instalador abre um sistema completo de gerenciamento de parties para que voc
possa criar, alterar ou excluir as parties da forma que desejar, criando um layout
personalizado. No vamos detalhar esse processo porque est fora do escopo deste
captulo.

99
Linux - Fundamentos e a qual for a opo selecionada neste item, uma confirmao ser solicitada antes de
prosseguir, pois o instalador quer ter certeza de que voc no selecionou por engano.
epois de definir o tipo de particionamento, mostrada uma tela que per unta se voc
dese a rever e modificar o la out das parties empre responda sim, mesmo que no
deseje alterar nada, pois importante saber o que o processo automtico est fazendo,
para que no futuro voc escolha o melhor layout. Na Figura 4.8 possvel ver essa tela.

Figura 4.8

Se optou por rever o layout, uma tela como a da Figura 4.9 aberta.

Figura 4.9

100
O exemplo tem um disco de 8 GB apenas, e por padro o instalador cria volumes lgicos do

I nstal a o
tipo LVM. Ele controla as parties do disco rgido como uma unidade lgica, permitindo
que voc facilmente adicione novas parties unidade LVM. Com esse mtodo voc pode
facilmente e pandir o espao em disco no seu sistema sem a necessidade de reconfi urar
ou perder dados. Ento automaticamente ele criou um grupo de volume com dois volumes
lgicos, um para a partio SWAP com o dobro da quantidade de memria RAM disponvel
e outro com a partio / (raiz) com o restante do tamanho do grupo. A partio /boot no
pode ficar em um volume , por isso ela foi criada em separado com o sistema de
arquivos ext3 para no haver problemas com os gerenciadores de boot.

Configurao do Gerenciador de Boot


Normalmente voc vai querer instalar um gerenciador de boot. A menos que seja um
usu rio avanado e sai a instal lo em separado, sempre escol a a opo que confirma
a instalao do gerenciador de boot. Uma tela como a da Figura 4.10 deve ser mostrada.

Figura 4.10

Em seguida surge uma tela solicitando parmetros adicionais para o kernel que o gerenciador
de boot ir iniciar. Isso acontece porque alguns sistemas s vezes precisam de parmetros
especficos para iniciar corretamente Novamente este um item para usu rios avanados
e na maioria das ve es voc vai apenas confirmar no para prosse uir a instalao

101
Linux - Fundamentos

Figura 4.11

Agora o instalador quer saber se desejamos colocar uma senha na inicializao do sistema,
antes mesmo de efetuar o boot. Na Figura 4.12 podemos ver esta tela.

Figura 4.12

O instalador quer saber ser alm do sistema que estamos instalando e daqueles que
ele reconheceu, existe mais algum outro que desejamos colocar como opo de boot
no gerenciador de inicializao ou se queremos editar um existente. O sistema que
estiver como padro iniciar automaticamente caso nenhum seja selecionado durante a
inicializao. Observe na Figura 4.13 um nico sistema, portanto ele tambm o sistema
padro.

102
I nstal a o
Figura 4.13

ara finali ar a confi urao do erenciador de iniciali ao, o instalador solicita em qual
partio queremos instal-lo. Se no for um usurio avanado, sempre escolha instalar no
MBR (Registro Master de Inicializao), Figura 4.14.

Figura 4.14

103
Linux - Fundamentos
Configurao da Rede
Se o instalador detectar pelo menos uma placa de rede, ser perguntado ao usurio se deseja
confi ur la nesse instante prudente confi urar a interface de rede nesse momento, pois
economi a um servio ap s a instalao i a as instrues e defina as confi uraes da
sua rede.

Figura 4.15

p s confirmar que dese a confi urar uma interface de rede, o instalador per unta se
desejamos iniciar a placa automaticamente e qual protocolo ativar. Normalmente queremos
que ative na inicializao e utilizamos o protocolo Ipv4. Use a barra de espaos para marcar
as opes.

Figura 4.16

104
m se uida informe as confi uraes de I e m scara ou somente marque a opo

I nstal a o
Observe a Figura 4.17.

Figura 4.17

Informe o nome do host ou deixe a opo automtica se estiver usando DHCP, conforme
a Figura 4.18.

Figura 4.18

105
Configurao do Fuso Horrio
Linux - Fundamentos

Nessa etapa apenas selecione o fuso horrio correto e prossiga.

Figura 4.19

Definio de uma Senha para o Usurio Administrador


stamos quase no fim desse emocionante qui Informe a ora uma sen a para o usu rio
root. muito importante ter critrio ao criar uma senha para o root, pois ele o nico
usurio que tem poder total sobre o sistema instalado.

Figura 4.20

106
Seleo de Pacotes

I nstal a o
Finalmente chegamos seleo de pacotes. O CentOS e a maioria das distribuies
fornecem con untos de pacotes macros para fins especficos, facilitando a tarefa de seleo
de pacotes ortanto, na maioria dos casos aver um con unto de pacotes predefinidos
para um des top com N e outro com , um para servidor, entre outros perfis de
pacotes, Figura 4.21.

Figura 4.21

Mesmo assim, se voc deseja selecionar algum pacote adicional, pode marcar a opo
ersonali ar seleo de pro ramas nto, ao confirmar al uns dos perfis macros, o
instalador vai envi-lo a uma tela onde pode escolher os grupos de pacotes que deseja
instalar Na instalao r fica possvel, inclusive, selecionar um pacote especfico
individualmente. Veja a Figura 4.22.

Figura 4.22

p s a seleo de pacotes o instalador verifica e inclui as depend ncias necess rias

107
Linux - Fundamentos
Finalizao da Instalao
O instalador agora vai formatar e copiar a imagem de instalao para instalar os pacotes
selecionados. Este o ltimo momento para desistir de tudo sem afetar nenhuma
confi urao em seu computador, portanto ten a certe a de que dese a prosse uir antes de
pressionar oc pode nesse instante voltar e alterar al uma confi urao da instalao,
mas se tudo estiver correto, apenas confirme pressionando nessa tela e a uarde a
formatao, o clculo do tempo necessrio para instalar e a instalao dos pacotes.

Figura 4.23

Um arquivo contendo detalhes da instalao ser gravado na pasta do usurio root com o
nome install.log. Ele pode ser til no futuro.
Aguarde o trmino da instalao. A tela da Figura 4.24 deve ser mostrada durante o
processo de instalao.

Figura 4.24

108
o terminar a instalao dos pacotes, o sistema solicita uma confirmao para reiniciar e

I nstal a o
iniciar o sistema pela primeira vez. Nesse momento interessante retirar o DVD da leitora
para evitar que ele entre novamente na instalao.
omo fi emos uma instalao em modo te to, mesmo que ten amos instalado um perfil
de pacotes para um desktop GNOME, ele inicia em modo texto. Para no perder tempo
procurando como fazer, para iniciar o GNOME pode digitar startx a qualquer momento
depois do login e tambm alterar o arquivo /etc/inittab e o parmetro id:3:initdefault:
para id:5:initdefault:.

Instalao pela Rede ou Disco


Para instalar a partir da rede usando NFS, HTTP ou FTP ou a partir de um disco rgido ou
pen drive, voc precisa iniciar a instalao com o parmetro askmethod, ou seja, em vez
de pressionar N para instalar em modo r fico, linu te t para instalar em modo
texto, vamos digitar linux askmethod e pressionar ENTER. Selecione o idioma e o teclado
igual ao mtodo de instalao por CD-ROM ou DVD que em seguida ser solicitado o local
da imagem de instalao, como podemos ver na Figura 4.25.

Figura 4.25

ara cada um dos mtodos de rede so solicitadas as informaes de confi urao de rede
i ual quela da instalao por onfi ure a rede e entre com os par metros para cada
protocolo de rede. Se optar por instalar a partir de um disco, o sistema exibe uma tela
com os discos que foram reconhecidos para voc selecionar e um campo para informar
o diretrio onde a imagem da instalao baixada est. Lembrando que a imagem a ser
utilizada no caso a mesma que voc usa para criar o DVD ou o CD.

109
Linux - Fundamentos
Instalao Remota
Para instalar remotamente usando o protocolo VNC, voc precisa iniciar a instalao com
o par metro vnc , ou se a, em ve de pressionar N para instalar em modo r fico,
linux text para instalar em modo texto, linux askmethod para escolher a origem da imagem,
vamos di itar linu vnc e pressionar N elecione o idioma, o teclado e as confi uraes
de rede igual ao mtodo de instalao por CD-ROM ou DVD, que em seguida ser exibida
uma tela com as informaes para cone o via N a fim de prosse uir a instalao
Figura 4.26 ilustra essa tela.

Figura 4.26

Conecte por VNC de qualquer computador na rede para continuar com a instalao.

110
I nstal a o
Exerccios

1. Cite alguns meios de instalao do Linux.


2. Cite trs fases da instalao.
3. que acontece na finali ao da instalao
4. possvel instalar remotamente? Explique.

111
5
Inicializao e Desligamento do Linux

5.1 - Inicializao
O processo de inicializao do Linux, conhecido como bootstrapping ou apenas boot,
responsvel pela execuo inicial do sistema operacional, ou seja, pela carga do sistema opera-
cional, que est no disco rgido ou em outra rea de armazenamento secundria (CD-ROM,
, as , para a mem ria do computador
termo ori inal ootstrappin uma e presso in lesa e como met fora, si nifica mel orar a si
mesmo por seu prprio esforo e sem ajuda.
Em computao sinnimo do processo de inicializao do sistema operacional. O processo o
primeiro a ser executado quando o computador ligado e responsvel pelo carregamento do
sistema operacional para a memria RAM.
O processo de boot ocorre em duas fases:

Fase 1
Nessa fase um pro rama simples que est na do computador em um endereo predefinido
carregado e executado, o qual conhecido por BIOS. A CPU programada para executar esse
programa sempre que o computador ligado.
Durante o processo de boot o BIOS busca um dispositivo de inicializao, e caso seja encontrado,
o I e ecuta o aster oot ecord ou e istro mestre de iniciali ao verifica
a tabela de parties em busca de uma partio ativa que, uma vez encontrada, o MBR carrega
e executa a inicializao que est na partio.

Fase 2
Nessa fase o BIOS acessa um segundo programa, que ainda no o sistema operacional, e sim
um gerenciador de inicializao ou de boot. nessa fase que programas como o LILO ou GRUB
so carregados e executados. Esses programas so lidos da memria secundria, uma vez que
durante a carga e a execuo do BIOS, as informaes necessrias para leitura do disco ou de
outra memria secundria j foram carregadas para a RAM.
A partir desse momento o sistema operacional j pode ser carregado na memria do

I nic ial iz a o e D esl ig amento do Linux


computador e o controle do computador transferido para ele. Nesse processo os drivers de
dispositivos e outros processos so necessrios para que o computador esteja operacional.
O tempo de carga pode variar de alguns segundos a alguns minutos, dependendo da
complexidade do sistema operacional e das rotinas necessrias para sua operao. Assim
um servidor tende a ter um boot mais demorado, pois necessrio inicializar vrios
processos e drivers.

5.2 - Gerenciadores de Boot (Boot Loaders)


No mundo Linux temos basicamente dois gerenciadores, sendo o mais utilizado atualmente
o GRUB, e temos tambm o LILO.

5.2.1 - LILO
O LILO ou Linux Loader (Carregador Linux) um gestor de arranque que permite inicializar
um sistema operacional entre os instalados na mquina (somente um sistema operacional
pode ser carregado por vez).
O LILO instala-se nos primeiros 512 bytes de qualquer dispositivo de armazenamento,
imediatamente antes da tabela de parties, sendo desta forma independente de sistema
operacional.
No I podemos ter at n cleos ernels , cada um com suas opes especficas
confi urao do I pode ser feita pela edio do arquivo etc lilo conf, mas requer
algum conhecimento para sua manipulao.
Veja um exemplo desse arquivo:

#Lilo.conf

#Seo global do LILO


lba32
boot=/dev/hda
map=/boot/map
compact
delay 20
timeout 50
prompt
vga=0x317
default=Linux2.6.12.3

#Seo de imagens do LILO


#Imagem do Linux
image=/boot/Linux2.6.12.3
label=Linux2.6.12.3
root=/dev/hda1
read-only

#Imagem do Windows
113
Linux - Fundamentos other= / dev / hda2
tab le= / dev / hda
lab el= Wndows
#Fim do arquiv o

Entre as opes disponveis as principais so:


oot efine o nome do dispositivo em que ser ravado o setor de partida do I
normalmente usada a partio ativa ou o aster oot ecord aso
no se a especificado, o dispositivo montado como a partio rai ser usado
Install Instala o arquivo setor oot como novo setor de oot do disco e omitido,
oot oot usado por padro
l a ermite que o I que re o limite de cilindros do disco r ido, iniciali
ando o NU inu em um cilindro acima deste altamente recomendado
o uso dessa opo
map specifica a locali ao do arquivo de mapa map e no for especificado,
oot map usado
password ermite prote er todas as ima ens de disco com uma nica sen a aso a
sen a este a incorreta, o I novamente carre ado

Figura 5.1

5.2.2 - GRUB
NU U ou apenas U foi criado pelo pro eto NU para ser um multicarre ador
de sistemas operacionais utili ado, assim como o I , quando dese amos que a m quina
ten a dois ou mais sistemas operacionais e dese amos reali ar o oot em um ou em outro,
conforme a necessidade

114
GRUB um programa que pode carregar qualquer arquivo executvel que contenha um

I nic ial iz a o e D esl ig amento do Linux


cabealho multiboot nos seus 8Kb iniciais. O cabealho composto por uma sequncia de
bits, divididos da seguinte forma:
 32 bits para um nmero mgico
 its com a s
 32 bits para um segundo nmero mgico
 imagem do arquivo executvel
U foi construdo a partir do pacote rand Unified ootloader, de onde vem este
acrnimo. Vrias distribuies utilizam o GRUB como gerenciador de boot, entre eles o
centOS.
Diferentemente dos gerenciadores convencionais que precisam manter uma tabela de
blocos, o GRUB pode rastrear o sistema de arquivos existente. Alguns dos sistemas de
arquivos suportados so:
 Ext2
 Ext3
 Ext4
 Iso9660
 Minix
 NTFS
 VFAT
 FAT16
 FAT32
O processo de carga do sistema operacional pelo GRUB :
1. O BIOS busca o dispositivo para gerenciamento de boot e carregamento do sistema
operacional e, uma vez encontrado, move o controle para o MBR.
2. O MBR contm o primeiro estgio do GRUB, que pequeno e faz apenas a carga do
prximo estgio do GRUB que pode ser o 1.5 ou o 2.
3. O estgio 1.5, que est nos primeiros 30 KB da memria secundria imediatamente
aps o MBR, faz a carga do estgio 2.
4. no estgio 2 que o usurio v o menu com as opes de inicializao e pode escolher
o sistema desejado ou realizar as alteraes necessrias antes de sua carga.
5. Uma vez selecionado o sistema operacional, o GRUB executa o carregamento do seu
ncleo (kernel) e este recebe o controle.

115
Linux - Fundamentos

Figura 5.2

Figura 5.3

5.2.3 - Inicializao em Modo Monousurio ou de Manuteno


Muitas vezes e por vrias razes faz-se necessria a inicializao do Linux em modo
usurio simples (single user mode). Entre estas razes est a perda da senha do root ou
algum problema de software ou mesmo hardware que impede a inicializao completa do
servidor nos nveis acima (o modo usurio simples o correspondente ao nvel 1).
No LILO isso feito pelo parmetro single ou 1 no processo de boot:
boot: linux single
ou

116
boot: linux 1
Se voc acha isso um pouco inseguro, pode impedi-lo, editando o arquivo lilo.conf,

I nic ial iz a o e D esl ig amento do Linux


adicionando as linhas logo aps a seo image correspondente:
Password=sai_senha
Restricted
Altere o modo do arquivo lilo.conf para 600 e evite que algum no autorizado tenha
acesso a ele e veja a senha, uma vez que ela no criptografada. Deste modo, sempre
que ocorrer o boot fora do padro, isto , que seja acrescentado algum parmetro extra ao
comando de boot, a senha ser solicitada.
J no GRUB precisamos dos seguintes passos:
1. Na tela inicial do GRUB selecione o sistema operacional desejado.
2. Utilize a tecla a para adicionar contedo linha de comando do sistema operacional.
ao final da lin a e di ite a palavra sin le use um espao para separ la da ltima
palavra existente).
4. Pressione Enter para sair do modo de edio e executar a carga do sistema operacional.

Figura 5.4

Assim como no LILO, possvel evitar o acesso a esse modo pelo GRUB. Para isso precisamos
seguir alguns passos:
1. Digite o comando grub-md5-crypt para gerar uma senha criptografada (uma melhoria
em relao ao LILO).

# grub-md5-crypt

117
Linux - Fundamentos Informe a sen a que voc dese a e a confirme

Password:<SUA SENHA>
Retype password:<SUA SENHA>
$2$DDoR7r5Sgv6pxQ6LG4GXpfihIJyL0

3. Copie o resultado exibido na tela.


4. Edite o arquivo /boot/grub/menu.lst e logo em seguida insira o parmetro
password --md5 <sua_senha_md5>.

# vi /boot/grub/menu.lst
default 0
timeout 15
password --md5 $2$DDoR7r5Sgv6pxQ6LG4GXpfihIJyL0
title Debian GNU/Linux, kernel 2.6.18.6-cust-en-smp
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hda2 ro
savedefault
boot

Pronto! O GRUB est seguro e sempre que for acionado o modo single boot, a senha ser
solicitada.

Lembre-se de que nesse nvel poucos servios estaro disponveis. Por exemplo, a sua
rede no estar ativa, quer seja local ou remota, alm de outros processos que no estaro
iniciados nesse nvel.

Uma vez no prompt de comando do Linux, o qual entra diretamente em modo superusurio
sem que seja necessrio informar a senha, podemos utilizar o programa passwd para
realizar a troca da senha do superusurio, ou tentar recuperar o Linux de algum problema
existente.

Terminadas as aes necessrias, devemos reiniciar o sistema operacional (veja como no


tpico 5.2.4).

5.2.4 - Desligamento
O desligamento no forado do sistema operacional, isto , de forma segura e ordenada,
fundamental para manter a integridade dele.

Para realizar o desligamento do sistema operacional, temos alguns mtodos:


 Shutdown
 Init
 Halt, reboot e poweroff

118
Shutdown

I nic ial iz a o e D esl ig amento do Linux


Esse programa executa o desligamento do sistema operacional de forma segura e controlada.
odos os usu rios ativos so notificados e novas entradas so loqueadas s processos so
notificados e t m tempo il para encerrarem de forma se ura

possvel executar o encerramento imediatamente ou aps um determinado tempo ou em


uma determinada hora e minuto.

possvel ainda comandar o sistema para que seja desligado ou reiniciado.

A sintaxe do comando shutdown :

Shutdown <opes> <tempo> <mensagem de alerta>

As opes disponveis so:

-t Informa o nmero de segundos entre o envio do aviso aos processos ativos e o envio
do sinal de desativao do processo.

-r Reinicia o servidor aps o trmino do processo.

-h Para ou desliga o servidor ao trmino do processo.

-k No realiza o desligamento, apenas envia a mensagem de alerta.

-f No executa o fsck na reinicializao.

-F fora a execuo de fsck na reinicializao.

-c cancela o processo j em andamento.

O parmetro tempo pode ser informado nos seguintes formatos:

Hh:mm Hora e minuto no qual o processo ser iniciado.

+mm Tempo de espera em minutos antes de iniciar o processo; +0 indica execuo


imediata.

now O mesmo que +0.

Caso o processo no seja executado imediatamente, o programa cria o arquivo de aviso


/etc/nologin o qual informa ao sistema que nenhuma nova entrada de usurios deve ser
autorizada.

Ao utilizar o parmetro -f, o programa cria o arquivo /fastboot indicando ao sistema


operacional que o comando fsck no deve ser executado.

119
Linux - Fundamentos

Figura 5.5

Figura 5.6

init
Init o pai de todos os processos, sendo sua funo principal a criao de processos
conforme definido em etc initta odemos utili ar o pro rama init manualmente para
troca do nvel de execuo.
A sintaxe de init :
Init <nvel>
O parmetro nvel pode variar de 0 a 6 (opcionalmente pode utilizar a letra s ou S para
indicar o nvel 1). Veja alguns exemplos:
# init 0
# init 6
No primeiro caso o sistema desligado totalmente, sendo equivalente a shutdown -h now,
e no segundo caso acontecem o desligamento e a reinicializao do sistema, o equivalente
a shutdown -r now.
No recomendado utilizar init para desligar ou reiniciar o servidor, a no ser que tenhamos
certeza de que no existem usurios ativos ou processos crticos em execuo, pois a sua
120 execuo imediata e irreversvel.
Halt, reboot e poweroff

I nic ial iz a o e D esl ig amento do Linux


Esses utilitrios permitem a parada, a reinicializao e o desligamento do servidor. Eles
somente tm valor efetivo quando estamos nos nveis 0 ou 6. Caso o sistema esteja no
demais nveis, o programa shutdown executado no lugar destes, sendo passado o
parmetro apropriado a cada situao, ou seja, -h para Halt e poweroff e -r para reboot.
Os seguintes parmetros podem ser utilizados junto com esses utilitrios:
-f Fora a execuo do programa em vez de shutdown.
-i Derruba todas as interfaces de rede antes de continuar o processo.
-h Coloca todos os discos em estado de esperada antes de continuar o processo.
Tenha cuidado ao utilizar esses processos porque os resultados podem ser inesperados.
refira sempre utili ar o pro rama s utdown que dispe de mais recursos de controle,
inclusive a possibilidade de abortar sua execuo caso seja necessrio (somente no modo
de espera).

121
Linux - Fundamentos

Exerccios

1. O que MBR?
2. Quais so os gerenciadores de boot mais utilizados no Linux?
3. Como restringir a entrada no modo single user no LILO?
4. E no GRUB?
5. O que faz o comando shutdown?

122
6
Sistemas de Arquivos

m captulos anteriores a ordamos sistemas de arquivos, suas definies e estruturas no


Linux. Agora vamos aprender um pouco como montar, desmontar, alm de parties e outros
dispositivos. Ainda vamos apresentar os principais tipos de arquivos do Linux.
A tabela seguinte mostra os tipos mais comuns de sistemas de arquivos.

Tabela 6.1

Sistema de
Descrio
arquivos
O mais conhecido sistema de arquivos com journaling existente em Linux,
ext3
ele basicamente uma extenso do sistema de arquivos ext2 com journaling.
o mais novo sistema de arquivos para Linux com journaling.
ext4
uma implementao do ext3 com muitas melhorias.
ext2 Sistema de arquivo nativo Linux no journaling.
ReiserFS Foi o primeiro sistema de arquivo com suporte a journaling no Linux.
Sistema de arquivo com Journal criado pela IBM
JFS
e bastante utilizado pelo sistema AIX UNIX.
Sistema de arquivos journaling de alta performance criado
XFS
pela Silicon Graphics para o sistema operacional IRIX.
SWAP rea da memria virtual.

6.1 - Montagem e Desmontagem


Para que uma partio, driver de DVD-ROM e outros dispositivos sejam utilizados, necessrio
mont-los no sistema, e somente aps esse processo a partio ou dispositivo estar disponvel
para utilizao. O comando para montagem o mount. Sua sintaxe :
Mount <opes> <dispositivo> <diretrio>
Linux - Fundamentos
Existem vrias opes para o comando. As principais so:
t efine o tipo do arquivo de s stema vfst pe
-a Monta todas as parties existentes em fstab.
-r Monta o dispositivo apenas com permisso de leitura.
-w Monta o dispositivo para leitura e gravao. Este o padro.
O comando mount sem nenhum argumento extra mostra os dispositivos montados
atualmente.
O parmetro que mais utilizaremos o -t, que informa o tipo de sistema de arquivo a ser
empregado.
Caso o parmetro -t no seja informado ou seja utilizado o valor auto (-t auto), o comando
tenta descobrir o tipo de dispositivo que se est tentando montar. Caso no seja possvel
definir o tipo, uma mensa em de erro retornada
Em geral podemos usar a forma curta do comando:
Mount <dispositivo> <diretrio>
Veja alguns exemplos:
# mount /dev/hda2 /mnt/disco1
# mount /dev/cdrom /cdrom
# mount /dev/fd0 /mnt/dsk
# mount t vfat /dev/hda3 /mnt/windows
Para desmontar uma partio, utilizamos o comando umount seguido do nome do disposi-
tivo ou do diretrio no qual ele foi montado. A sintaxe do comando :
Umount dispositivo diret rio
Exemplos:
# umount /dev/hda2
# umount /mnt/dsk
possvel automatizar o processo de montagem de participaes, tornando-as disponveis
durante o processo de inicializao do Linux. Para isso devemos editar o arquivo fstab, que
se encontra geralmente no diretrio /etc, e acrescentar uma linha de montagem referente
a cada partio que desejamos automatizar na montagem.
O arquivo fstab exige que cada linha tenha o seguinte formato:

<dispositivo> <diretrio> <tipo> <opes> <dump> <fsck>


124
Os parmetros dispositivo, diretrio e tipo so os mesmos informados no comando mount.

S istemas de A r q uiv os
As opes disponveis (principais) so:
Auto Monta o dispositivo automaticamente. Este o padro.

Noauto Montagem manual, ou seja, o dispositivo no montado durante a inicializao


do Linux.

User Qualquer usurio pode montar a partio.

Nouser Apenas o superusurio pode montar a partio. Este o padro.

Exec Permite que arquivos binrios sejam executados. Este o padro.

Noexec No permite que binrios sejam executados.

Rw Monta com permisso de leitura e escrita. Este o padro.

RO Monta apenas com permisso de leitura.

Sync Sincroniza os dados, ou seja, os dados so enviados diretamente para o


dispositivo.

async Trabalha na forma assncrona, ou seja, os dados so gravados no dispositivo


algum tempo depois que so gerados. Este o padro.

Default Equivalente a rw, exec, auto, nouser, async.


Podemos utilizar vrias opes juntas. Basta separ-las por vrgula.

O parmetro <dump> um sinalizador para o utilitrio dump, que responsvel por


realizar cpias de segurana em sistemas ext2/3. Se o parmetro <dump> for zero, o
dispositivo ignorado; caso contrrio, o valor utilizado para decidir se a cpia deve ou
no ser realizada.

par metro fsc define se o comando fsc deve ser utili ado no dispositivo aso o
seu valor seja zero, o dispositivo ser ignorado. Se o valor informado for 1, o dispositivo ser
considerado o sistema de arquivo raiz (root) e 2 deve ser utilizado para outros dispositivos
a serem verificados com fsc

Exemplos:

/dev/cdrom /media/cdrom auto ro,noauto,user,exec 00

dev fd media opp auto rw,noauto,user,s nc

/dev/hda2 / ext2 defaults 11

/dev/hdb1 /home ext2 defaults 12

proc /proc proc defaults 00

/dev/hda1 swap swap pri=42 00 125


6.2 - Tipos de Arquivo
Linux - Fundamentos

O Linux trata tudo como arquivo, seja um texto, um diretrio, um dispositivo etc.
ara sa er o tipo de um arquivo no inu , usa se o comando file, cu a sinta e
File <opes> <nome_do_arquivo>
O comando tenta descobrir o tipo do arquivo por meio de suas caractersticas internas e
compara-as com a biblioteca disponvel em /usr/share/magic.
Em geral no necessria a utilizao de opes no comando. As principais so:
-b Formato curto de sada. No mostra o nome do arquivo, somente o seu tipo.
-i Exibe o tipo no formato mime (algo como text/x-c ou application/x-executable).
-m Informa uma lista alternativa de arquivos contendo nmeros mgicos para a avaliao
dos arquivos.
-s Informa que os arquivos devem ser tratados como dispositivos especiais.
enta verificar arquivos comprimidos
Exemplos:

# file file.c file /dev/wd0a /dev/hda


file.c: C program text
file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), stripped
/dev/wd0a: block special (0/0)
/dev/hda: block special (3/0)
# file -s /dev/hda{ ,1,2,3,4,5,6,7,8,9,10}
/dev/hda: x86 boot sector
/dev/hda1: Linux/i386 ext2 filesystem
/dev/hda2: x86 boot sector
/dev/hda3: x86 boot sector, extended partition table
/dev/hda4: Linux/i386 ext2 filesystem
/dev/hda5: Linux/i386 swap file
/dev/hda6: Linux/i386 swap file
/dev/hda7: Linux/i386 swap file
/dev/hda8: Linux/i386 swap file
/dev/hda9: empty
/dev/hda10: empty
# file -i file.c file /dev/{wd0a,hda}
file.c: text/x-c
file: application/x-executable, dynamically linked (uses shared
libs),not stripped
/dev/hda: application/x-not-regular-file
/dev/wd0a: application/x-not-regular-file

No inu , como dito anteriormente, tudo tratado como arquivo, desta forma fica mais
simples (s vezes mais complicado) manipul-lo. Se voc quer lidar com um CD-ROM, por
e emplo, ver que este um arquivo especial em dev, um diret rio um arquivo enfim,
tudo tratado como tal.
126
Alm dos arquivos comuns e dispositivos, temos ainda a possibilidade de criar arquivos que

S istemas de A r q uiv os
representam ligaes (links) simblicas ou fsicas, ou seja, apontam para um outro arquivo.
Ligaes so teis quando desejamos apontar para arquivos em outros diretrios ou mesmo
parties.
s li aes lin s so identificadas com a letra l no incio da lista em do arquivo or
e emplo, no comando ls la No comando file aparecem como s m oli lin compan e
# ls la /tmp/cpuspeed
lrwxrwxrwx. 1 root root 18 Out 22 11:14 /tmp/cpuspeed -> /usr/sbin/cpuspeed
file tmp cpuspeed
/tmp/cpuspeed: symbolic link to `/usr/sbin/cpuspeed

Link Simblico
A ligao simblica, ou link simblico, um arquivo especial do tipo link que aponta para
localizao do arquivo alvo. Suas caractersticas so:
 Um link simblico pode apontar para diretrios.
 O alvo do link no precisa estar na mesma partio do link.
 Caso o link simblico seja removido, o alvo no ser afetado.
 Qualquer usurio, conforme suas permisses, pode criar um link simblico.

Hard Link
O hard link, ou ligao fsica, aponta para o arquivo alvo e compartilha com ele o mesmo
inode e o mesmo device, ou seja, so o mesmo arquivo. Isso afeta o comportamento desse
tipo de ligao, tornando-o bem diferente de um link simblico. Suas caractersticas so:
 No possvel fazer um hard link de um diretrio.
 O link e o alvo devem estar na mesma partio.
 Se o hard link for removido, o alvo tambm ser.
 Somente o superusurio pode criar hard links.
A criao tanto de ligaes simblicas quanto fsicas realizada pelo comando ln, que
possui as seguintes sintaxes possveis:
ln <opes>[-T] <alvo> <link>
ln <opes> <alvo>
ln <opes> <alvos> <diretrio>
ln <opes> -t <diretrio> <alvos>

127
Linux - Fundamentos
primeira forma cria um lin do alvo especificado com o nome definido no comando
se unda forma cria um lin para o alvo especificado no diret rio atual lin ter o
mesmo nome do alvo
terceira e quarta formas criam lin s no diret rio especificado para a lista de alvos
informada
or padro, o comando cria ard lin s ara erar um lin sim lico, deve se utili ar a
opo s
As opes disponveis so:
a uma c pia do arquivo caso o lin informado e ista
d ou ermite que o superusu rio tente criar um ard lin para diret rios eralmente
isso fal a
f emove qualquer arquivo destino da li ao que e ista
i er unta antes de remover arquivos
s efine que o lin ser sim lico
t efine o diret rio no qual sero criadas as li aes
rata o lin como um arquivo comum
emplos
ln s li li cr pt so li cr pt so
ln s li li cr pto so li l cr pto so
ln root e ecutaprocesso

128
S istemas de A r q uiv os
Exerccios

1. Explique o comando mount.


2. Para que serve a opo r de mount?
3. Como desmontar um dispositivo montado com mount?
4. Como automatizar a montagem de dispositivos?
5. que fa o comando file
6. O que um link simblico?
7. O que um hard link ou link fsico?

129
7
Shell como Ferramenta
do Administrador

7.1 - O Que o Shell


O Shell o interpretador de comandos do Linux. um programa executado logo aps a
autenticao do usurio (login), sendo responsvel por ler os comandos do usurio no prompt,
interpret-los e executar uma determinada ao. O processo realizado o seguinte:
ell verifica se o que foi di itado corresponde a um comando interno do pr prio ell
Caso seja, o comando executado.
e no for um comando interno, o ell procura na lista de diret rios definidos em
(caminho) um arquivo com o nome do comando digitado. Se encontr-lo, ele executado.
3. Caso o que foi digitado no seja um comando interno nem um programa dentro do PATH,
uma mensagem de erro exibida.
Funcionando como uma ponte de ligao, o Shell o intermedirio do ncleo do Linux e do
usurio.
Veja alguns exemplos:
# ls -l
# cat /etc/passwd
ps ef rep init
Existem muitos tipos de Shell, tais como csh, ksh, bsh, sh, bash etc. O bash (GNU Born Again
Shell) o mais utilizado atualmente, desta forma ser utilizado como referncia no livro.
7.2 - Shell Script

S h el l c omo Fer r amenta do A dministr ador


Quando desejamos executar uma lista de comandos do Shell, precisamos criar um arquivo
que contenha esse conjunto de comandos, o qual chamamos de Shell script.
A primeira informao que todo Shell script deve ter a indicao de qual Shell ser
utilizado e sua localizao no sistema. A linha deve comear com os smbolos #!.
#!/bin/bash
Aqui indicamos que o Shell a ser utilizado o bash e que ele est no diretrio /bin.
Para executar um Shell script, devemos dar permisso de execuo ao arquivo que o
contm, para isso utilizamos o comando chmod. Veja um exemplo:
# chmod +x shell_script.sh
Acompanhe um exemplo de Shell script (no se preocupe se no entender muita coisa,
pois tudo ser explicado mais tarde):

#!/bin/sh
# listar.sh
# Script para leitura do diretrio informado
# e exibio de informaes sobre arquivos e diretrios
# Outubro-2010
DATUAL=${PWD}
read -p Informe o diretrio para busca: DIR;
if [ -d ${DIR} ]; then
cd ${DIR};
for i in `ls`; do
if [ -d ${i} ]; then
echo ${i} um diretrio;
else
echo -n ${i} um arquivo do tipo `file -b ${i}`;
if [ -s ${i} ]; then
echo e no est vazio;
else
echo e est vazio;
fi;
fi;
done;
else
echo ${DIR} no existe ou no um diretrio;
fi;
echo ** FIM **;

cd ${DATUAL};

exit 0;

131
Linux - Fundamentos

Figura 7.1

Salve esse script Shell no arquivo listar.sh e altere sua permisso para execuo. Um possvel
resultado de sua execuo :
Ao mandar executar um script, o Shell atual, ou seja, o Shell no qual foi digitado o
comando, carrega um novo Shell para processar o script (o qual eliminado assim que o
script termina de ser executado).

7.3 - Utilizao de Shell e Shell Script


Como qualquer linguagem de programao, o Shell possui comandos e regras prprias para
seu correto funcionamento. Vamos aprender agora um pouco desses comandos e regras.
A primeira regra voc j sabe: informe sempre no incio do arquivo script Shell o Shell que
ser utilizado e onde ele est localizado. Nosso padro ser:
#!/bin/bash

7.3.1 - Exibio
Para enviar dados para a sada padro, em geral a tela do terminal, podemos utilizar os
comandos echo e printf.
Echo
Esse comando muito til para exibio de textos e variveis em formato mais simples com
pouca ou nenhuma formatao. Veja alguns exemplos:
# nome=walace
# echo Meu nome $nome

132 # echo 10
or padro, ec o insere um salto de lin a ao final do te to e i ido ara ini ir esse

S h el l c omo Fer r amenta do A dministr ador


comportamento, utilizamos o parmetro -n juntamente com o comando echo:
# valor=100
# echo -n O valor do produto
# echo ${valor}
Neste exemplo a sada ser:
O valor do produto 100
Outros parmetros para echo so:
-e Habilita o processamento de caracteres de controle.
-E Desabilita o processamento de caracteres de controle. Este o comportamento
padro do comando echo.
Os caracteres de controle disponveis so:
\a Alerta (bell).
\b Backspace.
\c Suprime a terminao de nova linha (\n).
\e Escape.
\f Alimentao de formulrio.
\n Nova linha.
\r Retorno de carro (utilizado antigamente para comandar impressoras em conjunto
com \n).
\t Tabulao horizontal.
\\ Barra invertida.
\0NNN NNN traduzido como um cdigo octal e o caractere ASCII correspon-
dente, caso exista, exibido.
\xnnn nnn traduzido como um cdigo hexadecimal (base 16) o caractere ASCII cor-
respondente, caso exista, exibido.
Veja um exemplo:
# linhas=5
# echo -e \e[34mSalto de ${linhas} linhas\e[${linhas}L
Aqui utilizamos o caractere especial \e para trocar a cor do primeiro plano para azul
(\e[34m) e gerar um comando de salto de vrias linhas (\e[${linhas}L).
133
Linux - Fundamentos Printf
Com o comando printf podemos formatar e imprimir textos, valores etc. A vantagem em
relao ao ec o sua e i ilidade, principalmente para formatao de valores sinta e
do comando :
Printf <formato> <argumentos>
No par metro formato definimos como os dados sero apresentados s se uintes
controles esto disponveis:
\a Alerta (bell).
\b Backspace.
\c Suprime a terminao de nova linha (\n).
\e Escape.
\f Alimentao de formulrio.
\n Nova linha.
\r Retorno de carro (utilizado antigamente para comandar impressoras em conjunto
com \n).
\t Tabulao horizontal.
\\ Barra invertida.
\0NNN NNN traduzido como um cdigo octal (base 8) de 3 dgitos e o caractere
ASCII correspondente, caso exista, exibido.
\xNNN NNN traduzido como um cdigo hexadecimal (base 16) de 3 dgitos e o
caractere ASCII correspondente, caso exista, exibido.
\uNNNN NNNN traduzido como um cdigo hexadecimal (base 16) de 4 dgitos.
\UNNNNNNNN NNNNNNNN traduzido como um cdigo hexadecimal (base 16) de
8 dgitos.
%% Exibe o caractere %.
%b O argumento passado tratado como texto e os caracteres escapes (iniciados
com \) so processados.
%Wd O argumento tratado como um nmero inteiro com W dgitos de tamanho.
e ar umento tratado no formato cientfico com um mnimo de d itos e
dgitos aps a vrgula.

134
f ar umento tratado no formato ponto utuante com um mnimo de d i-

S h el l c omo Fer r amenta do A dministr ador


tos e d itos ap s a vr ula
s ar umento tratado como um te to
l uns e emplos
printf rimeira in a n e unda in a n
valor
printf o alor de f valor
for i i i do printf d i done

7.3.2 - Variveis
ari veis so locais onde o ell arma ena valores a serem utili ados dentro do script ell,
ou se a, so reas de mem ria onde se arma enam dados diversos s dados arma enados
podem ser n meros, te tos, vetores, listas variadas a lista de arquivos de um diret rio, por
e emplo Uma vari vel deve rece er uma identificao, um nome, a qual ser utili ada
para fa er refer ncia vari vel em qualquer lu ar do script
nome de uma vari vel pode conter n meros, letras e o caractere su scrito, e deve co-
mear o ri atoriamente com uma letra ou su scrito, ou se a, no pode ser iniciada por um
n mero etras mai sculas e min sculas so diferenciadas, portanto nome, Nome e N
so consideradas vari veis distintas
ara criar uma vari vel, precisamos apenas informar seu nome e seu valor

N alace
Nome ara
aso o conte do se a alfanumrico, necess rio coloc lo entre aspas
ara acessar o conte do de uma vari vel, asta inserir o sm olo antes do nome
c o
c o N
c o Nome
utra forma de acessar uma vari vel colocar o seu nome entre c aves
c o
c o N

135
Linux - Fundamentos

Figura 7.2

Uma varivel pode ser local, isto , est disponvel somente na funo atual ou no Shell
atual. E pode ser global, ou seja, disponvel para o Shell atual e todos os subprocessos. Uma
vari vel tornada lo al pelo comando e port do ell ara verificar as vari veis lo ais
disponveis, utilize o comando env.
istem diversas vari veis predefinidas, muito teis na construo de scripts ell No
comando env mostrado anteriormente, temos a lista das vari veis predefinidas disponveis
As principais so:
PS1
Essa varivel apresenta o texto para o prompt primrio, isto , o texto que exibido pelo
Shell em cada linha de comando. possvel alterar o formato dessa varivel utilizando al-
guns controles especiais. Observe os principais:
\d Exibe a data atual.
\h Nome do servidor.
\s Nome do Shell.
\t Hora atual - padro 24 horas.
\T Hora atual - padro 12 horas.
\u Usurio.
\w Diretrio atual, caminho completo.
\W Diretrio atual, somente o diretrio.
136
Veja um exemplo:

S h el l c omo Fer r amenta do A dministr ador


e port d t u
O resultado ser algo como:
ui ut root

PWD
Essa varivel contm o diretrio atual.

PATH
A varivel PATH armazena o caminho de busca para o Shell, ou seja, a lista de diretrios
para a busca de um programa ou arquivo. Quando digitamos o nome de um programa no
ell, todos os diret rios listados em e somente estes so verificados em usca do
arquivo, caso o camin o completo do arquivo no ten a sido especificado

USER
Contm o nome do usurio ativo.

UID
Nessa vari vel est a identificao do usu rio ativo

SHLVL
Armazena o nvel do Shell atual, isto , quantos Shells foram executados a partir do Shell
base (o Shell que foi executado aps o login).

HOSTNAME
Contm o nome completo do servidor.

SHELL
Armazena o Shell que est sendo executado.
No Shell possvel tornar uma varivel para leitura apenas, ou seja, o seu contedo, uma
ve definido, no pode ser alterado ara isso devemos utili ar a palavra c ave readonl
antes de definir a varivel. Sua sintaxe :
Readonly <nome_variavel> = <valor>
Um exemplo:
# readonly PI=3.14
# PI=10
// Erro readonly variable 137
Linux - Fundamentos Utilizamos este conceito em geral para constantes em nosso script Shell, assim impedimos
que seu valor seja acidentalmente alterado.
Para ver todas as variveis readonly, ou seja, somente leitura, usamos o comando readonly
sem nenhum argumento ou com o parmetro -p:
# readonly
# readonly -p
Outra forma de declarar uma varivel somente leitura pelo comando declare, cuja sintaxe
:
Declare -r <nome_variavel>=<valor>
Veja um exemplo:
# declare -r K=5
O efeito de declare o mesmo de readonly, ou seja, a varivel no pode ter seu valor
redefinido no restante do script

Um outro uso para declare definir uma varivel como do tipo inteiro, o que pode ser til em algum
momento do script ara definir uma varivel como do tipo inteiro, utilizamos o parmetro -i junto com
Dica

declare. Veja um exemplo:

# declare -i numero=10

Caso se tente alterar o valor da varivel com um dado no numrico, o Shell assume o valor
zero para a varivel.

Para remover uma varivel utilizamos o comando unset, cuja sintaxe :

Unset <nome_variavel>

Veja o exemplo:

# k=10

# readonly x=teste

# unset k

# unset x

O ltimo comando no ser executado e retornar um erro, uma vez que variveis somen-
te leitura (readonly) no podem ser removidas depois de criadas.

138
7.3.2.1 - Escopo

S h el l c omo Fer r amenta do A dministr ador


Uma varivel , por padro, limitada ao Shell atual, ou seja, no exportada para outros
processos fil os e a um e emplo

# nome=Linux

# echo ${nome}

Linux

# bash

# echo ${nome}

O resultado deste ltimo comando ser uma string vazia, pois a varivel no foi exportada
para a nova instncia do Shell, ou seja, uma varivel local.

Para exportar uma varivel para os subprocessos, devemos utilizar o comando export antes
da definio da varivel. Acompanhe o exemplo anterior alterado para exportar a varivel:

# export nome=Linux

# echo ${nome}

Linux

# bash

# echo ${nome}

Linux
Para ver todas as variveis exportadas, utilizamos export sem argumentos ou ento com o
parmetro -p:
# export
# export -p

7.3.2.2 - Aspas Simples e Aspas Duplas


Nos comandos Shell, como, por exemplo, o echo, utilizar aspas simples ou duplas para
delimitar te tos define o comportamento dese ado do ell e utili amos aspas simples,
informamos ao Shell que o texto delimitado por elas no deve ser processado, isto ,
o Shell no tentar substituir variveis informadas. J se delimitarmos o texto com aspas
duplas, o processamento e substituio sero executados. Veja um exemplo da utilizao
desses dois delimitadores:
# echo O diretrio atual $PWD
O diretrio atual /root
139
Linux - Fundamentos ec o camin o definido no sistema
camin o definido no sistema
Nos textos delimitados com aspas podemos utilizar a barra invertida para informar que
caracteres especiais devem ser tratados como comuns e no ser processados. til tambm
quando desejamos incluir uma ou mais aspas duplas dentro do texto. Veja:
# echo Contedo de \$PWD $PWD
Contedo de $PWD /root
# echo \aspas\
aspas

7.3.2.3 - Vetores (Arrays)


Um vetor ou array utilizado para armazenar vrios valores em um mesmo nome de va-
rivel. Cada valor associado a um ndice. O ndice deve ser utilizado para atribuio de
valores e para recuperao dos valores armazenados.
odemos definir um vetor de duas maneiras
1. NomedoVetor[ndice]=Valor
2. NomedoVetor=(valor1 valor2 valor3 ... valorn)
Exemplos:
# semana[0]=Domingo
# semana[1]=Segunda-feira
# semana[2]=Tera-feira
# semana[3]=Quarta-feira
# semana[4]=Quinta-feira
# semana[5]=Sexta-feira
# semana[6]=Sbado
# meses=(Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez)
A recuperao do valor de uma posio do array idntica recuperao de valores de
variveis, exceto pelo fato de que precisamos informar o ndice e utilizar chaves para deli-
mitar tanto o nome da varivel quanto o ndice. A seguir, alguns exemplos:
# echo ${semana[6]}
# printf O primeiro me do ano %s ${meses[0]}
140
7.3.2.4 - Substituio de Variveis

S h el l c omo Fer r amenta do A dministr ador


No Shell possvel controlar as variveis condicionalmente, ou seja, caso a varivel no
este a definida ou este a va ia, pode se instruir o ell a e ecutar uma determinada ao
Temos:
${varivel:-texto}
Se a varivel no estiver definida ou seu conte do for va io, retornado o conte do de
texto, porm a varivel no alterada.
# echo ${URL:-http://www.erica.com.br}
http://www.erica.com.br
# echo $URL

${varivel:=texto}
e a vari vel no estiver definida ou seu conte do for va io, retornado o conte do de
texto e a varivel recebe o mesmo valor.
# echo ${URL:=http://www.erica.com.br}
http://www.erica.com.br
# echo $URL
http://www.erica.com.br

${varivel:?texto}
Se a varivel no estiver definida ou seu conte do for va io, o valor de te to escrito na
sada de erro padro (stderr) e a varivel no alterada.
ec o U Nen uma U definida
as U Nen uma U definida

${varivel:+texto}
Se a varivel estiver definida, ser su stituda por texto, mas seu valor no ser alterado.
# URL= http://www.erica.com.br
ec o U U atual definida como U
U atual definida como ttp www erica com r
# echo $URL
http://www.erica.com.br

141
Linux - Fundamentos
7.3.2.5 - Substituio de Comandos
Muitas vezes precisamos executar um comando e obter o resultado gerado. Isso
conseguido no Shell pelo mtodo de substituio de comando, que pode ser efetuado de
duas formas:
$(comando)
`comando`
A substituio do comando permite que voc capture o resultado, armazenando-o em uma
varivel ou manipulando-o diretamente.
Veja um exemplo:

#!\bin\bash
If [ $# -ne 1 ]; then
echo -e Favor informar o diretrio origem\n
else
dir=$(pwd)
echo Realizando cpia de segurana de $1
cp -R -p -v $(ls $1) /home/backup/$(basename $1)/
echo -e \n Fim da cpia\n
fi
exit 0

7.3.2.6 - Substituio do Til (~)


Outra ao interessante que em algumas situaes pode ser necessria a substituio do
til , a qual pode retornar as se uintes informaes
etorna o valor da vari vel , por e emplo ome walace
etorna o valor da vari vel
etorna o valor de

7.3.3 - Entrada de Dados


A captura de dados pode ser feita de vrios locais:
1. Entrada de dados por parmetros.
2. Captura de dados diretamente do usurio.
3. Recebimento do resultado de um outro processo.
A entrada de dados por parmetro ser tratada no tpico seguinte.
Para capturar os dados diretamente do usurio, ou seja, pelo teclado, devemos utilizar o
comando read. Sua sintaxe :
Read <opes> <variveis>
142
-n Determina o nmero de caracteres que sero lidos pelo comando. Ao chegar ao

S h el l c omo Fer r amenta do A dministr ador


n mero de caracteres definidos, o comando interrompe sua e ecuo
-p Informa um texto que ser exibido pelo comando antes de iniciar a captura dos
dados.
-s O que for digitado no exibido na tela. Opo til para entrada de senha.
Podemos informar uma ou mais variveis para receber os dados digitados, mas o que sepa-
ra o contedo de uma varivel de outra o espao, desta forma a entrada de textos com-
postos por mais de uma palavra no ser possvel. Neste caso, opte por vrios comandos
read, um para cada varivel.
Alguns exemplos:
#!/bin/bash
echo -n Informe a sua altura em cm:
read -n 3 altura
echo
read -p Informe seu peso: -n 3 peso
fator ec o scale peso altura c l
printf \nSeu fator de massa corporal %s\n $fator
Apesar de ser utilizado principalmente para entrada de dados pelo teclado, o comando
read serve para o processamento de uma entrada automatizada, vinda de um arquivo ou
de outro processo, para isso utili amos o redirecionador de sada pipe compan e um
exemplo:

#!/bin/bash
echo -e \e[34m\n**Tabela de preos 2010 **\n
egrep -v ^#|^*$ $1 |
while read CODIGO PRODUTO PRECO; do
echo -e \e[31m${CODIGO}-${PRODUTO}=${PRECO}\n
done
echo -e \e[0m

Salve o Shell script como imprimetabela.sh e altere sua permisso para execuo:
# chmod +x imprimetabela.sh
O script espera que o nome de um arquivo contendo a tabela de preos seja informado
como parmetro e que esse arquivo tenha em cada linha trs valores separados por espao.

143
Linux - Fundamentos O primeiro indica o cdigo do produto, o segundo sua descrio e o ltimo seu preo.
algo como indicado na Figura 7.3.
O script l o arquivo, ignora linhas em branco e comentrios (linhas iniciadas com #) e
processa cada linha como entrada para o comando read, em seguida o produto e seu preo
so exibidos.
Observe um possvel resultado na Figura 7.4.

Figura 7.3 Figura 7.4

funo de pipe conectar a sada padro de um comando com a entrada padro de


outro, permitindo assim um u o de dados entre diferentes processos

7.3.4 - Passagem de Parmetro para o Script Shell


Muitas vezes precisamos ou queremos executar o script Shell enviando pela linha de co-
mando os parmetros necessrios, mas a questo : como tratar os parmetros recebidos
dentro do script Shell? A resposta : utilize as variveis especiais, conhecidas como vari-
veis de parmetro.
Elas so diferenciadas das variveis comuns do script Shell (abordaremos variveis mais
adiante), possuindo caractersticas prprias. A lista a seguir mostra as variveis de parmetros
disponveis:
$0 Contm o nome do script Shell executado.
$n Ensimo parmetro passado ao script Shell; n maior ou igual a 1 e no tem limite.
Caso n seja maior que 9, a referncia deve ser ${n}. Desta forma, para acessar o
primeiro parmetro utilizamos $1 e o de nmero 15 ser ${15}.
$* Todos os parmetros em uma nica linha.
144
$@ Todos os parmetros. Cada parmetro uma linha.

S h el l c omo Fer r amenta do A dministr ador


$# Nmero de parmetros passados ao script Shell.
$? Valor do retorno do ltimo comando executado.
I identificador do processo do script ell
$! PID do ltimo comando iniciado com &.
Veja um exemplo:
#!/bin/bash
# multiplica.sh
# multiplicao de vrios nmeros
# Outubro-2010
if [ $# -le 1 ]; then
echo Voc deve informar pelo menos dois nmeros;
else
total=1;
mult=;
for num in $@;do
total=$[ $total * $num ];
if [ -z $mult ]; then
mult=$num;
else
mult=${mult} * ${num};
fi;
done;
echo ${mult} = ${total};
fi;
exit 0;

erifique um e emplo da e ecuo desse script ell

Figura 7.5

A limitao desse mtodo paras processamento de parmetros percebida quando


precisamos lidar com parmetros que possuem argumentos, algo como -n <valor> -t
<tempo>. Utilizar as variveis de parmetros para lidar com esse tipo de situao um
pouco complicado e exige bastante programao. O melhor utilizar o comando getopts
que lida com essa situao perfeitamente. Sua sintaxe :
getopts <opes> <varivel>

145
Linux - Fundamentos Em opes informamos os parmetros que desejamos receber. Caso o parmetro precise
de um argumento extra (um valor), devemos inserir o smbolo : logo aps o nome do
parmetro. Acompanhe um exemplo:
sd:eh:
Neste exemplo temos que os parmetros s e e no solicitam um argumento extra, j os
parmetros d e h requerem o argumento extra. Existe a limitao de apenas uma letra
por parmetro.

Assim que um parmetro encontrado, a varivel informada na chamada de getopts, isto


, <varivel> recebe o nome do parmetro e caso exista um argumento extra, a varivel
OPTARG recebe esse valor.

Getopts exige que os parmetros passados sejam iniciados com o sinal -, por exemplo, -s
-d <valor> -e -h <valor>.

Getopts processado at que todos os parmetros passados na linha de comando sejam


processados.
Veja um exemplo de sua utilizao:

#!/bin/bash
if [ $# -le 1 ]; then
echo Sintaxe: `basename $0` [-n nome] [-e email] [-t ttulo];
else
while getopts n:e:t: PARAM; do
case $PARAM in
n) $NOME=$OPTARGS;;
e) $EMAIL=$OPTARGS;;
t) $TITULO=$OPTARGS;;
esac;
done;
echo Enviar mensagem para ${NOME} no e-mail ${EMAIL} com o ttulo
${TITULO};
fi;

exit 0;

7.3.4.1 - Shift
O comando shift presente no Shell utilizado para fazer a rolagem dos parmetros, ou
seja, toda vez que esse comando executado, um ou mais parmetros so descartados,
sempre da esquerda para a direita, conforme a opo informada no comando. A sintaxe
do comando :

Shift <deslocamento>

Se <deslocamento> no for informado, o comando assume o valor 1 por padro. Cada


parmetro deslocado perdido, ou seja, seu valor no pode ser mais recuperado. O des-
locamento de 1, por exemplo, faz com que o parmetro $1 seja colocado em $0, $2 em
$1 e assim sucessivamente.
146
Caso o deslocamento informado seja maior que os parmetros existentes, nada feito. Veja

S h el l c omo Fer r amenta do A dministr ador


um exemplo:

#!/bin/bash

echo $# Parmetros: $*
echo removendo o primeiro parmetro
shift
echo $# Parmetros: $*
echo removendo todos os parmetros exceto o ltimo
num=$[ $# - 1 ]
shift $num
echo $# Parmetros: $*

7.3.5 - Redirecionamento
Sempre que precisamos capturar alguma informao ou exibir o resultado de um processo
qualquer, o Shell utiliza os dispositivos de entrada e sada padro (stdin e stdout respecti-
vamente).
Para alterar esse padro, podemos utilizar os caracteres <, > e >>. possvel ainda
redirecionar a sada de erros. Veja como utilizar cada controle:
Programa < arquivo Utiliza o arquivo informado como entrada.
Programa > arquivo Utiliza o arquivo informado como sada. Se o arquivo
existir, ser sobrescrito, ou seja, perder seu contedo
anterior.
Programa >> arquivo Utiliza o arquivo informado como sada, porm o seu
contedo atual no permitido, pois a sada acrescen-
tada ao final dele
Programa 2> arquivo Envia mensagens de erro ao arquivo informado.
Programa &> arquivo Utiliza o arquivo informado para sadas e erros.
Programa 1>&2 Envia a sada padro para a sada de erro.
Programa 2>&1 Envia a sada de erro para a sada padro.

Exemplos:
# ./imprimetabela.sh ./tabela2010.txt > resultado.txt
147
Linux - Fundamentos # ./imprimetabela.sh ./tabela2010.txt >> resultado.txt
# ./imprimetabela.sh ./tabela2010.txt 2>resultado.txt 1>&2
# ./imprimetabela.sh ./tabelaxxx.txt > resultado.txt 2>/dev/null
O primeiro exemplo envia a sada do programa para o arquivo resultado.txt, que ser
criado caso no exista e sobrescrito se existir.
O segundo envia a sada do programa ao arquivo resultado.txt, que ser criado caso no
exista ou ter o seu contedo atual concatenado com a sada produzida pelo programa.
O terceiro exemplo envia tanto os erros como a sada do programa para o arquivo resultado.
txt, que ser criado caso no exista e sobrescrito se existir.
O ltimo exemplo envia a sada do programa para o arquivo resultado.txt, que ser criado
caso no exista e sobrescrito se existir, e os erros encontrados para /dev/null (esse dispositivo
no faz nada, e til para ignorarmos mensagens de erro que seriam normalmente exibidas
na tela do usurio).

7.3.6 - Comandos Condicionais e Operadores


Em qualquer linguagem necessrio que existam estruturas de controle para gerenciamento
de u o de deciso No ell temos os comandos condicionais if e case

7.3.6.1 - Comando If
em por finalidade permitir que um rupo de comandos se a e ecutado conforme uma
determinada condio. Sua sintaxe :
If <condio>; then
<comandos se condio for verdadeira>
else
<comandos se condio for false>
fi
O bloco else opcional, ou seja, podemos utilizar a forma curta do comando apenas com
um bloco de comandos se a condio informada for verdadeira.
A condio o resultado de algum comando executado. Os comandos retornam 0 quando
executados corretamente; caso contrrio, algum nmero diferente de zero. Temos que se
a condio for zero, o bloco pertencente a then ser executado; seno, o bloco de else (se
existir) ser executado.
Em geral, o que desejamos no comando if avaliar uma expresso, uma varivel e no
exatamente um comando. Ento, como fazer?
148
Para avaliar uma expresso temos o comando do Shell test, cujo formato :

S h el l c omo Fer r amenta do A dministr ador


Test <expresso>
Ou
[ <expresso> ]
Exemplos:
# a=10;b=15;test $a = $b;echo $?
# a=10;b=15;teste $a != $b;echo $?
No primeiro exemplo teremos como sada 1 (falso) e no segundo, 0 (verdadeiro).
Os operadores = e !=, igual e diferente, respectivamente, s podem ser utilizados para
textos, no funcionando corretamente com nmeros (10 considerado diferente de 010).
ara operaes aritmticas somente com inteiros temos um rupo especfico de operado-
res. Os operadores disponveis so:
Operadores de texto
-n texto O texto no vazio, isto , seu tamanho maior que zero.
Texto Equivalente a -n texto.
-z texto O texto vazio, isto , seu tamanho zero.
Texto1 = texto2 Texto1 igual a texto2.
Texto1 != texto2 Texto1 e texto2 so diferentes.
Operadores aritmticos (somente inteiros)
Num1 -eq num2 Num1 e num2 so iguais.
Num1 -ne num2 num1 e num2 so diferentes.
Num1 -lt num2 num1 menor que num2.
Num1 -le num2 num1 menor ou igual a num2.
Num1 -gt num2 num1 maior que num2.
Num1 -ge num2 num1 maior ou igual a num2.

Operadores de arquivos
-b arquivo O arquivo um arquivo de bloco (/dev/hda, por exemplo).

-c arquivo O arquivo um arquivo especial de caractere (/dev/tty2).

-d arquivo O arquivo um diretrio.


149
Linux - Fundamentos -e arquivo O arquivo existe.

-f arquivo O arquivo existe e do tipo comum.

-s arquivo O arquivo existe e no est vazio.

-h arquivo O arquivo um link simblico.

p arquivo arquivo um named pipe fifo, lilo

-S arquivo O arquivo um socket.

-r arquivo O arquivo tem permisso de leitura para o usurio atual.

-w arquivo O arquivo tem permisso de escrita para o usurio atual.

-x arquivo O arquivo tem permisso de execuo para o usurio atual.

-O arquivo O arquivo pertence ao usurio atual.

-G arquivo O arquivo pertence ao grupo do usurio atual.

Arquivo1 -ef Arquivo2 Arquivo1 e arquivo2 tm os mesmos nmeros de device e inode.


rquivo nt rquivo rquivo mais novo que rquivo data da ltima modificao
Arquivo1 -ot Arquivo2 Arquivo1 mais velho que arquivo2.

Operadores lgicos
-a Operador lgico E (and).
-o Operador lgico OU (or).
! Operador lgico de negao (not).
Veja um exemplo:

#!/bin/bash
read -p informe o nome de um arquivo: arq
if [ -e $arq ]; then
echo -n ${arq} existe .... ;
if [ -d $arq ]; then
echo e um diretrio
else
echo
fi
else
echo ${arq} no existe!
fi

echo -e \n
read -p Informe um nmero inteiro n1
read -p Informe um segundo nmero n2
read -p Informe mais um nmero n3
if [ $n1 -le $n2 ]; then
150
if [ $n1 -le $n3 ]; then

S h el l c omo Fer r amenta do A dministr ador


menor=$n1
if [ $n2 -le $n3 ]; then
inter=$n2
maior=$n3
else

inter=$n3
maior=$n2
fi
else
if [ $n3 -le $n2 ]; then
menor=$n3
inter=$n1
maior=$n2
else
menor=$n1
inter=$n3
maior=$n2
fi
fi
else
if [ $n1 - le $n3 ]; then
menor=$n2
inter=$n1
maior=$n3
else
if [$n3 -le $n2 ]; then
maior=$n1
inter=$n2
menor=$n3
else

maior=$n1
inter=$n3
menor=$n2
fi
fi
fi

echo -e \e[34m
printf %d <= %d <= %d $menor $inter $maior
echo -e \e[0m

7.3.6.2 - Comando Case


muito til quando queremos testar um n mero finito de possi ilidades ua sinta e
Case <valor> in
Opo 1) comandos
;;
Opo 2) comandos
;;

151
Linux - Fundamentos ...
*) comandos
;;
esac
Case compara o contedo do valor informado (um parmetro ou uma varivel) com as op-
es fornecidas. Caso encontre uma opo que seja igual, os comandos relacionados a essa
opo so executados at que seja encontrado ;;. Um exemplo da utilizao do comando
case so os scripts de inicializao de processos. Veja um exemplo:
#!/bin/bash
case $1 in
start) echo iniciando...
start
;;
stop) echo Parando...
stop
;;
restart) echo Parando...
stop
echo Iniciando...
start
;;
*) echo Opo no suportada...
;;
esac

7.3.7 - Miscelneas

7.3.7.1 - Let
Permite realizar algumas operaes aritmticas, tais como somas, subtraes, multiplicaes,
divises e comparaes arimticas.

152
Sua sintaxe :

S h el l c omo Fer r amenta do A dministr ador


Let <expresso>
Ou
(( <expresso> ))
Alguns exemplos:
# num=1
# let num++
# echo $num
# let num
# echo $num
# (( num++ ))
# echo $num
Note que tanto em let <expresso> quanto em (( <expresso> )) no utilizamos $ para
referenciar a varivel.

7.3.7.2 - Deciso com && e ||


Quando precisamos executar comandos condicionais curtos, isto , onde s h um bloco
para executar, sem um bloco alternativo (o else do comando if), podemos utilizar os ope-
radores e
Ambos tm a seguinte sintaxe:
Comando1 && comando2
omando comando
O operador && executa comando2 se e somente se comando1 retornar verdadeiro (zero).
operador e ecuta comando se e somente se comando retornar falso qualquer
valor diferente de zero).
Veja dois exemplos:
e ac up m dir ac up
# [ -d ./backup ] && ls -l backup
No primeiro exemplo o diretrio backup criado (mkdir) caso no exista um arquivo ou
diretrio com este nome.
O segundo exemplo lista o contedo do diretrio backup caso ele exista e seja realmente
um diretrio.
153
Linux - Fundamentos
7.3.7.3 - Listas
Uma lista um grupo de comandos agrupados por chaves ou parnteses.
# echo Nivel do Shell atual: ${SHLVL}
# [ -d ./backup ] && {
echo execuntando com chaves...Contedo de ./backup:
ls -lt ./backup
echo Nvel Atual: ${SHLVL}
}
# [ -d ./backup ] && (
echo executando com parnteses...Contedo de ./backup:
ls -lt ./backup
echo Nvel Atual: ${SHLVL}
}

7.3.8 - Comandos de Controle


Executam grupos de comandos de forma repetitiva e controlada. Os comandos de controle
disponveis so:
 While
 For
 Until
 Select

7.3.8.1 - While
Esse comando permite executar um grupo de comandos enquanto a condio informada
for verdadeira, saindo do lao quando for falsa. O grupo de comandos pertencentes ao
while executado zero ou mais vezes. Sua sintaxe :
While <condio>; do
Comandos
Done

154
O argumento <condio> tem o mesmo

S h el l c omo Fer r amenta do A dministr ador


formato apresentado para o comando if. Veja
um exemplo:

#!/bin/bash
num=1
while [ $num -ne 0 ]; do
read -p Informe um
nmero(0=Sair) num
[ $num -ne 0] && echo Quadrado
de ${num} = $(( $num * $num ))
done
Figura 7.6
echo [FIM]

7.3.8.2 - Until
O comando until muito semelhante ao while. O detalhe est no fato de que o while exe-
cuta o bloco de comandos enquanto a condio for verdadeira, e until executa enquanto
for falsa, ou seja, quando a condio se tornar verdadeira, a repetio encerrada. Sua
sintaxe :
Until <condio>; do
Comandos
done
Observe o exemplo mostrado no item anterior (while) refeito para usar until.

#!/bin/bash
num=1
until [ $num -eq 0 ]; do
read -p Informe um nmero(0=Sair) num
[ $num -ne 0] && echo Quadrado de ${num} = $(( $num * $num ))
done
echo [FIM]

7.3.8.3 - For
utilizado quando desejamos executar um grupo de comandos determinado nmero
de vezes, sendo equivalente ao while com um contador. Para executar o comando for,
precisamos entregar uma lista que ser processada elemento por elemento. A sintaxe :
For <varivel> in <lista>; do
Comandos
Done
Cada item da lista associado varivel e o grupo de comandos executado; quando
a lista termina, o lao (loop) do comando for encerrado. Desta forma, teremos tantas
iteraes quantos forem os elementos da lista.
155
Linux - Fundamentos Veja um exemplo:
# for num in 0 1 2 3 4 5 6 7 8 9 10; do echo $num; done
O resultado ser a sequncia de 0 a 10:
# for arq in $(ls);do echo $arq; done
Neste exemplo $arq receber os nomes dos arquivos no diretrio em que o script est
sendo executado.

Para gerar uma sequncia de nmeros, utilize o programa seq, cuja sintaxe :
eq inicial incremento final
Ou
eq inicial final
Ou
eq final
No primeiro formato definimos o incremento, que pode ser tanto positivo quanto ne ativo Utili amos
Dica

um incremento negativo para contagem regressiva.


No se undo formato, o incremento definido como e s aceita se conta em pro ressiva
O terceiro formato assume que o valor inicial 1 e o incremento tambm 1.
Assim, para gerar uma lista de 1 a 10:
For num in $(seq 1 10);do echo $num; done
Para gerar uma sequncia de 10 a 1:
For num in $(seq 10 -1 1);do echo $num; done

Outro formato para for :


For((expresso1;expresso2;expresso3)); do
Comandos
Done
Este formato muito til para um lao com controle de contadores. O contedo de
expresso1 avaliado na primeira execuo do lao (primeira iterao). O contedo
de expresso2 avaliado repetidamente, isto , em cada iterao. Quando expresso2
retornar 0, o lao interrompido, ou seja, expresso2 o controle de repetio. Enquanto
expresso2 retornar um valor diferente de zero, isto , verdadeiro, a lista de comandos
executada e em seguida o contedo de expresso3 avaliado. Expresso3 geralmente
contm o incrementador do contador do lao.
Veja um exemplo:
for((num=1;$num<=15;num=$[ num+1 ])); do

156
echo $num

S h el l c omo Fer r amenta do A dministr ador


done
O resultado ser a lista de nmeros mpares entre 1 e 15.

7.3.8.4 - Break e Continue


Os comandos break e continue so utilizados dentro das estruturas de controle while, until
e for.
Break tem por objetivo encerrar a execuo do lao, enquanto continue faz com que a
prxima iterao seja executada.
Veja um exemplo:
For((num=0;$num<=20;num++)); do
[ $num -eq 17 ] && break
[ $(( $num % 2 )) -eq 0 ] && continue
echo $num
done
Neste exemplo somente os nmeros mpares sero exibidos e quando chegar a 17, o lao
ser interrompido.

7.3.8.5 - Select
O comando select um controlador especial. Ele monta um menu de opes conforme
a lista definida e solicita ao usu rio que informe a opo dese ada Uma ve a escol ida a
opo, a lista de comandos executada e o menu novamente exibido. Sua sintaxe :
Select <varivel> in <lista de opes>; do
Comandos
Done
Veja um exemplo de sua utilizao:
Select arq in $(ls) sair; do
[ $arq = sair ] && break
c o file arq
Done

157
Linux - Fundamentos

Figura 7.7

Outro exemplo:
Select opc in Instalar Atualizar Remover Sair; do
Case $opc in
Instalar) echo ..Instalando o aplicativo..
;;
Atualizar) echo ...Buscando atualizaes...
;;
Remover) echo ..Executando processo de remoo..
;;
Sair) break
;;
esac
done

Figura 7.8

158
7.3.9 - Trap

S h el l c omo Fer r amenta do A dministr ador


Esta a forma como se podem capturar sinais transmitidos a um processo e ento executar
uma ou mais aes conforme o sinal detectado. Mas voc deve estar perguntando o que
, afinal de contas, um sinal

7.3.9.1 - Sinal
Sinal a forma como se pode enviar um aviso para um determinado processo em execuo.
possvel sinalizar vrias situaes, e cada sinal representa uma situao. Os sinais mais
comuns so:
HUP Hung-Up.
INT ^C, Interrupo.
KILL Parada (morte) - no pode ser capturado ou ignorado.
TERM Terminao por programa.
Para uma lista completa de sinais, digite kill -l no Shell do Linux.

Figura 7.9

7.3.9.2 - Comando Trap


Esse comando deve ser utilizado para gerenciar os sinais recebidos pelo script. Podemos
definir uma ao especfica para determinados sinais, i norar um sinal ou ento voltar
situao padro para manipulao de sinais.
A sintaxe do comando trap :
Trap <lista de comandos> <lista de sinais>

159
Linux - Fundamentos Para ignorar um sinal, devemos deixar a lista de comandos vazia:
Trap 2
Com isso ignoramos o sinal INT ou ^C.
Para voltar ao comportamento padro, informamos apenas a lista de sinais:
Trap 2
Acompanhe um exemplo de ao durante a captura de sinais:
#!/bin/bash
rap ec o e n e m fim n e m e it
While true; do
Echo -n .
done
Neste e emplo o script, ao rece er IN UI ou , e i e a mensa em fim e
encerra o processamento.
A captura e o processamento de sinais so teis em processos crticos nos quais uma parada
abrupta pode trazer problemas de instabilidade, ou ento quando desejamos, antes de
encerrar o script, realizar tarefas de limpeza, isto , remoo de arquivos temporrios,
liberao de portas, limpeza de memria etc.

7.3.10 - Alias
No ell possvel definir apelidos alias para comandos o etivo economi ar
digitao dentro do script. Para criar os apelidos, utilizamos o comando alias, cuja sintaxe
:
Alias [-p] [nome=comando]
par metro p e i e os apelidos definidos
Exemplos:
# alias l=ls -l
# alias rm=rm -i
# alias d=echo ${PWD}
Para remover um alias, devemos utilizar o comando unalias:
Unalias [-a] [nome1 nome2 ...]
O parmetro -a indica que todos os alias devem ser removidos.
160
e voc tem um rupo de apelidos que dese a sempre ter disponvel, asta editar o arquivo as

S h el l c omo Fer r amenta do A dministr ador


Dica
aliases e colocar os comandos alias dentro dele. Toda vez que voc entrar no sistema esse arquivo ser
executado, disponibilizando seus apelidos favoritos.

7.3.11 - Funes
Funo um agrupamento de comandos que podem ser executados de forma repetitiva em
qualquer lugar do script. Uma funo deve ter um nome e um corpo com os comandos a
ela pertencentes. A funo pode ou no trabalhar com parmetros e retornar um resultado
de sua execuo.
A sintaxe para declarao de uma funo :
Function <nome> {
Comandos da funo
[Return <retorno>]
}
Ou
<nome_funo>() {
Comandos
[Return <retorno>]
}
O retorno opcional e pode estar em qualquer lugar da funo. Quando o comando
return encontrado, nenhum outro comando da funo executado e o processamento
da funo encerrado. O valor retornado pela funo pode ser recuperado por $?.
Veja um exemplo:
# Function quadrado {
return $(( $1 * $1 ));
}
# quadrado 10
# echo $?
A manipulao de parmetros recebidos pela funo idntica mostrada no tpico sobre
parmetros de Shell scripts.

161
Linux - Fundamentos Somente valores numricos podem ser retornados por uma funo e o maior valor possvel
de ser retornado 256.

function infos() {
echo -e \nInformaes do servidor: ; uname -a
echo -e \nUsurios ativos: ; w -h
echo -e \ndata atual: ; date
echo -e \nTempo de vida do servidor: ; uptime
echo -e \nStatus da memria: ; free
echo -e \nArquivo do sistema:; df -h
}
function ll () {
clear;
tput cup 0 0;
ls --color=auto -F --color=always -lhFrt;
tput cup 40 0;
}

162
S h el l c omo Fer r amenta do A dministr ador
Exerccios

1. efina ell
2. Qual deve ser a primeira linha de Shell script?
3. O que faz o comando echo?
4. Explique o comando printf.
5. ite tr s vari veis predefinidas no ell
6. Para que serve o comando readonly?
7. Como remover uma varivel do Shell?
8. O que faz o comando export?
9. ual o resultado de ec o
10. Qual a funo de $0, $1, $# e $? ?
11. Explique o comando programa 2>&1 /dev/null.
12. Para que serve o comando IF?
13. D o resultado do seguinte cdigo:

#!/bin/bash
valor=10
limite=15
IF [ $valor -lt $limite ]; then
Echo O valor menor que o limite
Else
Echo O valor maior ou igual ao limite

Fi
Printf Limite %3d , Valor %3d $limite $valor

14. Para que serve o comando let?


15. Qual a diferena entre while e until?
16. D um exemplo de for para gerar um contador.
17. O que sinal?
18. Explique o comando trap.
19. omo definir um apelido
20. O que funo?
21. Qual o limite para o retorno de uma funo?
163
8
Administrao de Rede

8.1 - As Redes TCP/IP


No dia a dia convivemos com programas que realizam funes e servios de rede. Claro que, na
maioria das vezes, do ponto de vista de usurio, mas voc provavelmente j est familiarizado
com alguma ferramenta de rede, seja um dispositivo de rede wireless ou um programa cliente
de correio eletrnico.
Assim como quase tudo em um sistema, h uma complexidade maior por trs de um processo
aparentemente simples para um usu rio final quando utili amos ferramentas comuns de rede,
como um cliente de ftp ou um navegador da Internet.
Compreender ao menos o bsico sobre redes TCP/IP (Transmission Control Protocol/Internet
rotocol pode ser crucial na ora de confi urar um sistema para utili ar esses recursos e,
principalmente, quando as coisas no esto funcionando como deveriam, pois a compreenso
pode auxiliar muito na resoluo de problemas.
Este item apresenta uma viso geral das principais caractersticas do protocolo TCP/IP e de redes
de computadores.

8.1.1 - Pilha de Rede


Em termos bsicos o principal objetivo das redes a transferncia de informaes de um programa
que est sendo executado em um determinado computador a outro programa executado em
outro computador ou host, como quando abrimos um navegador da Internet, por exemplo,
o Mozilla Firefox. O seu objetivo enviar uma solicitao a um servidor Web e ao digitarmos
o endereo do servidor que desejamos acessar, ele se conecta a ele e solicita os documentos
relativos quela pgina, ou seja, troca informaes com aquele computador remoto. Isso no
regra, pois existem programas que podem usar a rede para conversar entre si ou com outros
programas, mesmo que estejam rodando em um nico computador.
Quando instalamos um programa e o seu banco de dados na mesma mquina, provavelmente
o programa usa a rede para acessar o banco de dados e esse computador, alm de servidor
(provendo acesso ao banco de dados), tambm um cliente (quando utilizamos o programa que
se conecta a esse banco).
Esse processo de troca de informaes pode acontecer dezenas, centenas, milhares,

A dministr a o de R ede
ou seja, quantas vezes forem necessrias, ento imagine se cada programa tivesse a
responsabilidade de controlar o hardware diretamente. Isso seria impraticvel e logo esses
sistemas entrariam em con ito, pois em determinado momento um pro rama iria interferir
em outro, ocasionando falhas no funcionamento. Para garantir a segurana no processo
e padronizar a forma como os programas conversam em redes, foram necessrios alguns
padres de controle do acesso rede.
A soluo para este problema est na pilha de rede. uma coleo de camadas que so
mdulos de softwares de pequeno porte, que funcionam em srie, ou seja, cada camada
de software conversa com outras duas camadas. Uma dessas duas camadas pode ser o
hardware da placa de rede ou o prprio ser humano para a camada de mais baixo nvel e
mais alto respectivamente.
As aplicaes de rede dos clientes e
servidores esto no nvel mais alto da pilha
de rede. Elas se comunicam com a camada
abaixo dela, que conversa com aquela mais
abaixo e assim sucessivamente at atingir
a camada mais inferior. Quando atinge a
camada de mais baixo nvel, o ponto
em que os dados saem do computador e
so efetivamente enviados atravs da rede
at chegar ao host de destino. No destino
o processo acontece de forma inversa
para levar a informao at a camada de
Aplicao. Os dados chegam pela camada
de mais baixo nvel e vo sendo enviados
de uma camada para outra at atingirem o
nvel mais alto, entregando as informaes
ao aplicativo, que pode ou no enviar uma Figura 8.1 - Diagrama modelo OSI de fluxo bsico
resposta. Assim, os dados so transmitidos de informaes de um cliente para um servidor.
pela rede, subindo e descendo a pilha
de rede. Na Figura 8.1 podemos ver um
dia rama deste u o
definio de pil a de rede tornou se uma arquitetura formal para conectar computadores
e chamada de modelo OSI (Open Systems Interconnection). Esse modelo prev que as
redes entre computadores devem conter sete camadas, de tal forma que se obtenham
camadas de abstrao. Assim, cada protocolo de rede necessita apenas programar uma
funcionalidade especfica a uma determinada camada
No TCP/IP, na prtica temos um modelo baseado no OSI, mas com menos camadas. No
modelo TCP/IP o hardware no considerado, pois ele no se estende at a camada Fsica.
Ele mescla parcialmente a camada de Sesso com toda a camada de Transporte em apenas
uma, e o restante da camada de Sesso com as camadas de Apresentao e Aplicao em
mais uma nica camada.

165
Linux - Fundamentos

Na Figura 8.2 podemos ver um


comparativo do formato das duas
pilhas ou modelos.

Figura 8.2 - Pilha de rede modelo OSI x TCP/IP.

8.1.2 - Endereo de Rede


Um componente vital para qualquer protocolo de rede o endereo de rede, pois no h
como interli ar m quinas ou computadores sem que cada um possua uma identificao
nica, ao menos dentro do espao alcanvel por ela, ou seja, a rede qual o equipamento
pertence.
O TCP utiliza endereamento do tipo IP (Internet Protocol). Os endereos IP na verso
4 so nmeros de 32 bits, ou seja, quatro conjuntos de 8 bits, ou simplesmente 4 bytes,
que normalmente so escritos como quatro nmeros decimais separados por ponto
".", um decimal para cada byte, por exemplo, 192.168.1.103. Esses endereos IP esto
divididos em dois componentes, sendo um deles o endereo da rede e o outro o endereo
da mquina. Essa diviso se faz necessria para facilitar a tarefa de roteadores, que so
equipamentos que enviam informaes entre redes distintas.
A mscara de sub-rede, que se chama netmask, determina qual parte do endereo IP
o endereo da rede. Na mscara de rede 255.255.255.0, temos todos os bits dos trs
primeiros bytes em valor binrio igual a 1. Isso indica que esses trs primeiros bytes do
endereo IP so o endereo da rede e o quarto ou ltimo byte o endereo da mquina.
Para o endereo IP 192.168.1.254 o "192.168.1" o endereo da rede e o "254" o
endereo da mquina. Na tabela 8.1 podemos visualizar melhor estas informaes da
confi urao do I para o e emplo dado

Tabela 8.1

Campo Endereos (Decimal)


Endereo IP 192 168 1 254
Mscara de Rede 255 255 255 0
Endereo do Host (Mquina) 0 0 0 254
Endereo de Rede 192 168 1 0
Campo Endereos (Binrio)
Endereo IP 11000000 10101000 00000001 11111110
Mscara de Rede 11111111 11111111 11111111 0
Endereo do Host (Mquina) 00000000 00000000 00000000 11111110
Endereo de Rede 11000000 10101000 00000001 00000000

166
Alternativamente o endereo IP ou de rede pode ser combinado com uma mscara de

A dministr a o de R ede
sub-rede, utilizando uma forma abreviada em que a quantidade de bits em valor binrio
igual a 1 na mscara de sub-rede expressa em numeral decimal, logo aps o endereo IP.
or e emplo, temos , o que si nifica o mesmo que di er que o endereo
de rede 192.168.1.0 e a mscara composta por 24 bits, e pode ser representada
assim 255.255.255.0, ou seja, os trs primeiros bytes com todos os bits em valor binrio 1
representado em numeral decimal.
ara evitar con itos dos endereos entre redes e tam m para or ani ar os endereamentos
IPs, os endereos de IP so divididos em redes com trs classes principais, que so A, B e C.
partir da m scara de su rede, define se uma classe de rede, em que uma rede classe
pode conter mais de 16 milhes de endereos distintos, as redes classe B podem enderear
at 65.534 endereos e a classe C apenas 254. Na Tabela 8.2 podemos ver que cada uma
das tr s classes principais de rede suporta um intervalo finito de endereos privados que
no podem ser utilizados em roteadores de Internet.

Tabela 8.2

Classe Faixa Mscara Endereos Privados


A 1.0.0.0127.255.255.255 255.0.0.0 10.0.0.010.255.255.255
B 128.0.0.0191.255.255.255 255.255.0.0 172.16.0.0172.31.255.255
C 192.0.0.0223.255.255.255 255.255.255.0 192.168.0.0192.168.255.255

Esses endereos privados podem ser utilizados em redes internas ou privadas sem nenhu-
ma autori ao oficial ale ressaltar que e istem mais duas classes de redes, so as clas
ses D e E. A primeira uma classe especial utilizada para os endereos chamados de
Multicast e a segunda reservada para o futuro.

8.1.3 - Portas
uando um pacote enviado para o computador destino, esse ost precisa identificar o
que deve ser feito com ele. No TCP/IP as informaes so transmitidas atravs de portas e
por vezes mais de uma porta. A porta um nmero de 16 bits, ou seja, os pacotes podem
ser enviados por uma das 65.536 portas existentes. As portas normalmente esto associadas
a um servio li ao especfica e por conveno al uns servios especficos possuem portas
bem conhecidas que so numeradas de 1 a 1023, como o servidor Web que escuta na
porta 80 e o FTP que usa a porta 21. Alm destas existem diversas outras portas registradas,
privadas ou dinmicas. O arquivo /etc/services uma lista das atribuies de portas para os
servidores mais comuns.
Como usurios normalmente no precisamos nos preocupar com o uso das portas, porque
os programas clientes sabem em qual porta o servidor est esperando uma conexo. J
como administradores do sistema podemos eventualmente ter de alterar parmetros no
/etc/services, como para adicionar um servidor que instalamos que no usa nenhuma
porta j includa nesse arquivo.
Segue um trecho do arquivo /etc/services do CentOS 5 como exemplo:
167
Linux - Fundamentos # /etc/services:
# $Id: services,v 1.42 2006/02/23 13:09:23 pknirsch Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesnt support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]

tcpmux 1/tcp # TCP port service multiplexer


tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
telnet 23/udp
# 24 - private mail system
lmtp 24/tcp # LMTP Mail Delivery
lmtp 24/udp # LMTP Mail Delivery
smtp 25/tcp mail
smtp 25/udp mail
time 37/tcp timserver
time 37/udp timserver
rlp 39/tcp resource # resource location
rlp 39/udp resource # resource location
nameserver 42/tcp name # IEN 116
nameserver 42/udp name # IEN 116
nicname 43/tcp whois
nicname 43/udp whois
tacacs 49/tcp # Login Host Protocol (TACACS)
tacacs 49/udp # Login Host Protocol (TACACS)
re-mail-ck 50/tcp # Remote Mail Checking Protocol
168
re-mail-ck 50/udp # Remote Mail Checking Protocol

A dministr a o de R ede
domain 53/tcp # name-domain server
domain 53/udp
whois++ 63/tcp
whois++ 63/udp
bootps 67/tcp # BOOTP server
bootps 67/udp
bootpc 68/tcp dhcpc # BOOTP client
bootpc 68/udp dhcpc
tftp 69/tcp
tftp 69/udp
gopher 70/tcp # Internet Gopher
gopher 70/udp
netrjs-1 71/tcp # Remote Job Service
netrjs-1 71/udp # Remote Job Service
netrjs-2 72/tcp # Remote Job Service
netrjs-2 72/udp # Remote Job Service
netrjs-3 73/tcp # Remote Job Service
netrjs-3 73/udp # Remote Job Service
netrjs-4 74/tcp # Remote Job Service
netrjs-4 74/udp # Remote Job Service
finger 79/tcp
finger 79/udp
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
kerberos 88/tcp kerberos5 krb5 # Kerberos v5
kerberos 88/udp kerberos5 krb5 # Kerberos v5
supdup 95/tcp

Importante ressaltar que os programas clientes tambm utilizam portas para originar uma
solicitao a um servidor, as quais so controladas automaticamente pelo Linux, e no
precisamos nos preocupar com isso. Basicamente quando um servidor responde a uma
solicitao de um cliente, ele retorna pela mesma porta que o cliente se conectou, desta
forma o Linux, do lado cliente, ao receber o pacote de volta, pelo nmero da porta sabe
para qual programa entregar a resposta.

8.2 - Configurao do TCP/IP


raticamente todas as distri uies inu permitem que as confi uraes do I se am
informadas durante a instalao do sistema operacional, no entanto nem sempre o que
desejamos fazer, ou no conseguimos fazer naquele momento por falta de driver, ou at
mesmo pela inexistncia de uma placa de rede. Tambm muito comum as distribuies
possurem interfaces r ficas para as confi uraes I ntretanto, apesar desses a entes
facilitadores criados, muito importante entender as ferramentas em modo texto, por isso
vamos estudar este tpico.

8.2.1 - Configurao do Hardware de Rede


Um grupo de trabalho em rede inclui uma srie de hardwares de rede, como switches,
servidores, roteadores, entre outros. Para facilitar consideramos que voc tem uma rede em
funcionamento, pois as possibilidades seriam tantas que se torna impossvel comentar todos
os tipos de arquiteturas de rede amos nos concentrar na confi urao de um sistema
169
Linux - Fundamentos Linux para funcionar em uma nica rede. Para isso vamos localizar e instalar uma placa de
rede ou network interface card (NIC) do tipo Ethernet e instalar o driver apropriado para
essa placa.
odemos verificar os dispositivos de rede que so suportados para um ernel inu
instalado, verificando a confi urao dele ara visuali ar as confi uraes do ernel, so
necessrios os pacotes kernel-devel, kernel-headers e ncurses-devel. Para instalar esses
pacotes podemos usar o gerenciador de pacotes yum como segue:

# yum install kernel-devel kernel-headers ncurses-devel

Aps a instalao, acesse a pasta das fontes do kernel, normalmente localizada no diretrio
/usr/src/kernels/<Verso>, e execute o comando:

# make menuconfig

Na opo Device Drivers Network Device Support aparece um menu com a lista de
categorias de dispositivos. Entrando em cada categoria, possvel listar os dispositivos
suportados, por exemplo, na opo Ethernet (10 or 100Mbit) so exibidos os dispositivos
de 10Mbps e 100Mbps. Alternativamente tambm podemos consultar o fabricante do
dispositivo, pois muitos constroem seu prprio driver para o kernel Linux. Normalmente
disponibilizam os arquivos-fonte para que voc mesmo compile o driver.
Ao compilar um driver embutido ou build-in no kernel Linux, ele ser carregado
automaticamente ao iniciar, mas se o driver for compilado como um mdulo do kernel,
que o mtodo mais comum e mais seguro para iniciantes, talvez seja necessrio incluir
alguns parmetros adicionais, basicamente para carreg-lo ao iniciar. No CentOS o arquivo
que provavelmente precisa ser alterado o /etc/modprobe.conf, no qual vamos incluir a
confi urao de um alias, apelido, para cada dispositivo de rede apontando para o nome
do mdulo/driver da placa de rede.
Como exemplo de arquivo /etc/modprobe.conf, observe a primeira e a ltima linhas, em
que temos as interfaces de rede eth0 e eth1:

alias eth0 e1000


alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
alias eth1 pcnet32

Esse arquivo diz ao kernel que o driver a ser utilizado para o dispositivo eth0 (primeiro
adaptador de rede do sistema) deve ser o e1000 e para o eth1 (segundo adaptador de
rede o driver pcnet oc tam m pode verificar a lista de m dulos disponvel no ernel
instalado acessando a pasta /lib/modules/<Verso>/kernel/drivers/net. Procure arquivos
com a extenso *.ko; o que vem antes da extenso o nome do driver. Segue um exemplo:

# ls /lib/modules/2.6.18-194.17.1.el5/kernel/drivers/net/
3c59x.ko amd8111e.ko cnic.ko fealnx.ko natsemi.ko pcnet32.
ko pppoe.ko s2io.ko slhc.ko sungem_phy.ko typhoon.ko
8139cp.ko b44.ko dl2k.ko forcedeth.ko ne2k-pci.ko ppp_async.
170
ko pppox.ko sis190.ko slip.ko sunhme.ko via-rhine.ko

A dministr a o de R ede
8139too.ko bnx2.ko dummy.ko ifb.ko netconsole.ko ppp_deflate.
ko ppp_synctty.ko sis900.ko starfire.ko tg3.ko via-velocity.ko 8390.ko
bnx2x.ko e100.ko mdio.ko niu.ko ppp_generic.ko qla3xxx.ko
skge.ko sundance.ko tlan.ko virtio_net.ko acenic.ko cassini.ko
epic100.ko mii.ko ns83820.ko ppp_mppe.ko r8169.ko sky2.ko
sungem.ko tun.ko

stando todas as depend ncias instaladas e as confi uraes corretas, o dispositivo deve
funcionar normalmente ara verificar se o ernel detectou o driver correto da placa de
rede, podemos usar o comando dmesg para visualizar as mensagens do kernel a qualquer
momento e conferir os hardwares detectados. Para melhor visualizar a sada do comando
dmes , vamos usar um outro pro rama para filtrar a sada, o rep e a um e emplo

# dmesg | grep -i eth


eth0: registered as PCnet/FAST III 79C973
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
eth1: link up, 100Mbps, full-duplex

Observe na sada do comando dmesg que o kernel reconheceu os dispositivos corretamente.


partir de a ora podemos definir os par metros de rede para esses dispositivos

8.2.2 - O Uso do IP Dinmico - Cliente DHCP


DHCP um protocolo de rede que funciona com o TCP/IP e permite que um sistema, no
caso o servidor DHCP, mantenha as informaes sobre propriedades importantes da rede
para informar aos equipamentos conectados a ela, os clientes DHCP. Estudaremos mais
so re adiante Neste item vamos ver como confi urar um cliente e a sua
rede utili ar , fica muito mais f cil confi urar as estaes de tra al o asicamente
um programa cliente de DHCP ou simplesmente DHCP Client envia um sinal especial
rede, chamado de broadcast, solicitando um servidor DHCP, ou DHCP Server que, ao
receber, retorna ao cliente as informaes necessrias para que ele se conecte rede.
Para dizer ao sistema que estamos conectados a uma rede que possui um servidor DHCP,
podemos alterar o par metro no arquivo script de confi urao da interface
de rede que est conectada rede DHCP. Esses arquivos esto localizados no diretrio
etc s sconfi networ scripts par metro define o tipo de protocolo
utili ado No e emplo que se ue usamos o comando cat para e i ir as confi uraes da
interface et etc s sconfi networ scripts ifcf interface conectada e confi urada
para uma rede DHCP:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=08:00:27:83:05:26
ONBOOT=yes

Observe que o BOOTPROTO est em dhcp. O restante dos parmetros foi includo
automaticamente pelo sistema. O parmetro ONBOOT pode ser til, quando temos mais
de uma placa de rede instalada, pois ele indica se essa interface deve ser inicializada
171
Linux - Fundamentos automaticamente no boot do sistema. Mais informaes sobre os parmetros desse arquivo
podem ser encontradas em http://www.centos.org/docs/5/html/Deployment_Guide-en-
US/s1-networkscripts-interfaces.html.
lternativamente podemos utili ar a ferramenta setup ou s stem confi networ tui na
console do inu om ele fica ainda mais simples confi urar i ite no terminal setup e
uma tela mostrada. Use as setas para navegar e ENTER para entrar em uma opo. Vamos
selecionar onfi urao de ede

# setup

Figura 8.3

p s selecionar onfi urao de rede, ser e i ido outro menu de opes, selecione dit
Devices.

Figura 8.4

172
Na pr ima tela selecione o dispositivo que dese a confi urar Note que so mostrados

A dministr a o de R ede
todos os dispositivos que foram reconhecidos, portanto se houver apenas uma placa, ser
mostrado apenas um dispositivo. No exemplo que segue, temos duas placas de rede e
vamos confi urar a interface et

Figura 8.5

Finalmente use o ENTER para passar para o prximo campo. Siga at o campo Use DHCP
e use a barra de espao para marcar. Observe:

Figura 8.6

aia, confirmando e salvando as confi uraes No se esquea de reiniciar o servio de


rede tanto para confi urao manual quanto pela ferramenta
Para reiniciar o servio de rede, use:

# service network restart


173
Linux - Fundamentos

refletir
aa uma contin a e verifique a quantidade de cliques necess rios para confi urar usando a
Para
ferramenta contra a parametri ao diretamente no arquivo de confi urao

8.2.3 - Uso do IP Fixo


e sua rede no usa , podemos confi urar as definies de I para usar um I
fi o Neste caso a confi urao mais facilmente manipulada no momento da instalao
ou utili ando uma ferramenta de confi urao amos con ecer duas formas de confi urar
uma rede manualmente para usar I fi o primeira seria a forma universal, mais comple a,
entretanto deve funcionar na maioria das distribuies e depois vamos manipular os
arquivos de confi urao Nada impede de utili ar o setup novamente, mas ap s a leitura
deste item voc ter mais facilidade para encontrar as opes desejadas.

8.2.3.1 - Configurao Manual em Tempo de Execuo


primeira coisa a ser feita definir o ostname, nome do computador odemos fa er isso
usando o comando hostname. Se digitarmos apenas hostname seguido de ENTER em um
console, ser e i ido o nome atual ara definir um novo nome, use

# hostname guiapratico.local

Agora j temos um nome na rede, ento podemos ativar a interface de rede. Usaremos o
comando ifconfi , que informa ao sistema a interface e o endereo I a serem utili ados
sinta e sica para o comando ifconfi

# ifconfig interface [opes] [endereo]

Breve descrio dos parmetros:


 interface: a interface que queremos confi urar, por e emplo et
 opes: e istem diversas opes para o ifconfi amos utili ar apenas duas, sendo
a opo up e a m scara de su rede recomend vel ler o man ifconfi para mais
informaes.
 endereo: o endereo IP que ser associado a essa interface.
Para ativarmos a interface de rede eth0 com o endereo IP 192.168.0.125 e mscara de
sub-rede padro 255.255.255.0, usamos:

# ifconfig eth0 192.168.0.125 up

Exemplo para uma mscara de sub-rede diferente da padro:

# ifconfig eth0 netmask 255.255.255.128 192.168.0.125 up

174
or fim sempre prudente verificar se est tudo confi urado como dese amos Use o

A dministr a o de R ede
comando ifconfi nome interface e so mostradas as confi uraes dessa interface aso
se a omitido o nome da interface, ser e i ida a confi urao de todas as interfaces de rede
existentes no sistema. Segue um exemplo:

# ifconfig eth0
eth0 Link encap:Ethernet Endereo de HW 08:00:27:83:05:26
inet end.: 192.168.0.125 Bcast:192.168.0.127 Masc:255.255.255.128
endereo inet6: fe80::a00:27ff:fe83:526/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:108 errors:0 dropped:0 overruns:0 carrier:0
colises:0 txqueuelen:1000
RX bytes:1169 (1.1 KiB) TX bytes:21029 (20.5 KiB)

Observe a segunda linha da sada do comando, em que temos o endereo IP e a mscara


de su rede que confi uramos
Agora o sistema possui acesso rede, porm importante que o sistema saiba qual
interface de rede ele deve utilizar para enviar os dados. Isso em um computador com
apenas uma interface de rede parece ser uma tarefa simples, mas no to simples assim
no Linux, considerando que nele temos a interface local conhecida como loopback, ou
localhost, que direciona o trfego da rede para ele mesmo, e por conveno essa interface
tem o endereo I fi o as no precisamos nos preocupar com essa interface
loopback, pois o Linux cria e inicia automaticamente, mesmo sem estar conectado a uma
rede.
ara definir as rotas que o sistema deve utili ar para acessar a rede, vamos utili ar o
programa route.
A sintaxe bsica do comando route :

# route [add | del] [destino] [gw gateway]] [[dev] interface]

Breve descrio dos parmetros:


 add | del: indica se estamos adicionando uma regra ou excluindo.
 destino: o local que queremos alcanar. Devemos informar o endereo IP da rede
ou ost especfico que queremos acessar e o destino for , o sistema entende
como rota padro para qualquer ost ou rede que no tiver uma rota especfica
 gw: um gateway um sistema conectado a uma rede que sabe como enviar pacotes
para outra rede. Se voc no sabe o IP do seu gateway, consulte o administrador da
rede.
 dev: indica que a rota deve ser aplicada interface de rede definida na lin a de
comando.
Em um sistema simples temos pelo menos duas rotas. Normalmente no h necessidade
de inform las, pois o comando route tem a capacidade de definir al umas rotas din micas

175
Linux - Fundamentos aseadas nas confi uraes de rede, mas como o e emplo ainda no tem um atewa
definido, vamos confi urar essas rotas manualmente compan e

# route add 192.168.0.125 dev eth0

O comando anterior diz ao sistema que qualquer solicitao para o endereo IP


192.168.0.125, que o endereo IP da interface de rede eth0, deve ser enviado para
a interface et , ou se a, apenas estamos afirmando o que para n s vio, mas para o
sistema no .

# route add 0.0.0.0 gw 192.168.0.1 dev eth0

ora definimos que a rota padro do sistema deve solicitar informaes ao I ,


que deve ser um gateway ou um roteador da rede capaz de conversar com outras redes,
ou seja, para qualquer endereo IP de outra rede que desejarmos acessar, vamos enviar os
dados pelo dispositivo eth0 para o gateway 192.168.0.1.
sempre om verificar se est tudo conforme definimos om o comando route podemos
visualizar todas as rotas do sistema. Vamos usar a opo "-n" para mostrar endereos
numricos em vez de nomes. Observe:

# route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MscaraGen. Opes Mtrica Ref Uso Iface
0.0.0.0 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.125 0.0.0.0 255.255.255.255 UH 0 0 0 eth0

Na ta ela de rotas so mostrados no campo pes os a s identificadores m se uida


ve a o que si nifica cada um deles
 U: rota ativa;
 H: destino um host;
 G: use gateway;
 R: rota dinmica;
 D: rota dinmica criada pelo servio;
 M: rota modificada pelo servio
 !: rota negada.
stamos quase no fim da confi urao, restando apenas especificar um N , sistema que
traduz os nomes dos computadores para endereos IP e vice-versa. Informar um DNS no
obrigatrio para navegar em uma rede local, mas se desejamos, por exemplo, acessar
a Internet, ele passa a ser um item essencial. No Linux os IPs dos servidores de DNS e as
informaes sobre eles esto no arquivo /etc/resolv.conf.
Exemplo de arquivo /etc/resolv.conf:

nameserver 189.4.64.15
nameserver 189.4.64.16
176
No arquivo mostrado temos dois servidores de DNS, sendo um primrio e outro secundrio.

A dministr a o de R ede
A ordem de busca aos servidores de acordo com a ordem colocada no arquivo resolv.
conf.

8.2.3.2 - Configurao Manual dos Arquivos de Configurao


Aprendemos como subir uma interface de rede em tempo de execuo. O ruim desse
formato que, quando reiniciamos o sistema, tudo perdido, com exceo do DNS que
definimos em um arquivo de confi urao Uma maneira de confi urar manipular os
arquivos de confi urao da rede
ara definir o ostname, acesse o arquivo etc s sconfi networ , defina ou altere o
par metro N e a uste o conte do do arquivo etc osts
emplo de arquivo etc s sconfi networ

NET WORK ING = y es


NET WORK ING _ IPV 6 = no
H OST NA ME= guiapratico. local

No e emplo apresentado o ostname ser uiapratico local


emplo de arquivo etc osts de acordo com o etc s sconfi networ

1 2 7 . 0 . 0 . 1 guiapratico. local guiapratico


1 9 2 . 1 6 8 . 0 . 1 2 5 guiapratico. local guiapratico

ora podemos confi urar o endereo I fi o, a m scara de su rede e o atewa ara


isso devemos definir os par metros tipo de protocolo , N m scara
de su rede , I endereo I e no script de confi urao da interface de
rede, o arquivo etc s sconfi networ scripts ifcf et para o dispositivo et
emplo de arquivo etc s sconfi networ scripts ifcf et

DEV ICE= eth0


B OOT PROT O= none
H WA DDR= 0 8 :0 0 :2 7 :8 3 :0 5 :2 6
ONB OOT = y es
NET MA SK = 2 5 5 . 2 5 5 . 2 5 5 . 0
IPA DDR= 1 9 2 . 1 6 8 . 0 . 1 2 5
G A T EWA Y = 1 9 2 . 1 6 8 . 0 . 1
T Y PE= Ethernet

Se precisarmos incluir rotas diferentes das que so padres, necessrio usar o comando
route, como descrito anteriormente, e adicionar as lin as de comando ao arquivo etc
rc.local para que sejam executadas todas as vezes que o sistema reiniciar.

177
8.3 - Compartilhamento de Arquivos
Linux - Fundamentos

Em pequena rede, normalmente o recurso mais utilizado o compartilhamento de


arquivos, pois com ele possvel que usurios de um computador acessem arquivos em
outros computadores, como se estivessem acessando arquivos locais. O computador do
usu rio que est acessando os arquivos tipificado como cliente e o computador que
prov os arquivos chamado de servidor.
O compartilhamento de arquivos necessita de um software cliente e outro servidor. Existem
muitos softwares desse tipo, entretanto vamos nos concentrar em apenas dois, o NFS
(Network File System), nativo em ambientes UNIX e Linux, e o Samba para utilizao do
protocolo SMB (Server Message Block), agora com verso superior mais conhecida como
CIFS (Common Internet File System), utilizada pelo Microsoft Windows.

8.3.1 - NFS - Compartilhamento com UNIX ou Linux


Esse protocolo encaixa-se muito bem em ambientes Linux e UNIX porque compatvel
com as caractersticas do sistema de arquivos, como as propriedades e permisses dos
arquivos. Por essas caractersticas ele o mtodo de compartilhamento mais difundido em
computadores UNIX e Linux.

8.3.1.1 - Configurao de um Servidor NFS


ara confi urar um sistema inu como um servidor N , vamos primeiramente instalar ou
certificar que est instalado o pacote do servidor N odemos usar o erenciador de
pacotes yum para fazer isso, como segue:

# yum install nfs-utils

s confi uraes dos diret rios que sero compartil ados, em como as permisses de
acesso, devem ser inseridas no arquivo /etc/exports no qual determinamos inclusive quais
computadores podem montar essa pasta exportada.
ada lin a no etc e ports define um diret rio compartil ado primeiro item da lin a
o caminho completo para o diretrio que ser compartilhado, seguido das autorizaes
cedidas para esse compartil amento, incluindo opes especficas entre par nteses
Exemplo de um arquivo /etc/exports:

/home maria(rw) 192.168.0.122(rw) guiapratico.local(ro)


/tmp *.local(rw)
/opt 192.168.0.0/24(ro)

As possibilidades no arquivo /etc/exports so muito amplas, portanto recomendada a


leitura do man exports para mais informaes. Entretanto, vamos ver algumas possibilidades,
conforme o exemplo dado. Segue a explicao sobre cada linha:

178
1. Estamos compartilhando a pasta /home para o computador com nome (hostname)

A dministr a o de R ede
maria e para o endereo IP 192.168.0.122 com permisso de leitura e escrita (rw),
j para o hostname guiapratico.local o acesso de somente leitura (ro). Note que,
quando o computador est no mesmo domnio, inform-lo opcional. Veja que s
informamos o domnio para o ltimo hostname.
2. Podemos liberar o acesso a todos os computadores de um domnio, usando o curinga
"*" antes do nome do domnio. Neste caso liberamos o acesso da pasta /tmp a todos os
computadores do domnio "local".
3. Na ltima linha exportamos a pasta /opt para uma faixa de computadores em uma
determinada rede usando o endereo dela seguido da mscara abreviada.
Aps os ajustes necessrios no arquivo /etc/exports, preciso iniciar ou reiniciar o servidor
N , para que as confi uraes se am efetivadas Use o comando como se ue para reali ar
essa tarefa:

# service nfs restart

lternativamente depois que o servidor estiver e ecutando, voc pode alterar confi uraes
no arquivo /etc/exports e usar o comando exportfs para atualizar a lista dos compartilha-
mentos, sem necessidade de reincio do servidor NFS. Use o comando exportfs como segue:

# exportfs -av

8.3.1.2 - Montagem de um Compartilhamento NFS


O kernel do Linux possui suporte nativo ao NFS, portanto estar presente em praticamente
todas as distribuies. Normalmente no h problemas com esse suporte, por isso vamos
diretamente para a montagem do sistema de arquivo remoto em um diretrio local. A
montagem de sistemas de arquivos NFS remotos se d no mesmo formato de montagem de
qualquer outro sistema de arquivos, mudando somente o tipo e os parmetros.
A sintaxe a seguinte:

# mount [t nfs] servidor:/caminho ponto_de_montagem

A opo "-t nfs" indica o tipo de sistemas de arquivos, "servidor" o IP ou hostname do


computador que est compartilhando os arquivos, "caminho" a pasta compartilhada
no servidor, assim como foi escrita no arquivo /etc/exports do servidor e o "ponto_de_
montagem" o diretrio local em que ser montado o compartilhamento. Usando o
e emplo do etc e ports usado na confi urao do servidor, e considerando que o I desse
servidor 192.168.0.254, podemos montar o compartilhamento /opt no diretrio local /
mnt/opt_no_meu_servidor da seguinte forma:

# mount -t nfs 192.168.0.254:/opt /mnt/opt_no_meu_servidor

Aps a montagem voc pode usar os arquivos como se fossem locais.

179
Linux - Fundamentos
8.3.2 - Samba - Compartilhamento com Windows
Sistemas operacionais, como o Microsoft Windows, por padro no possuem suporte para
sistemas NFS. Em vez disso esses sistemas utilizam os protocolos de rede SMB ou CIFS,
portanto estes so os melhores protocolos a serem usados com esses sistemas. Felizmente
praticamente todas as distribuies Linux disponveis possuem suporte a esses sistemas.
O pacote Samba no to simples e possui uma complexidade muito maior que o NFS
porque ele precisa simular um sistema Windows em um computador Linux, complicando a
simples tarefa de compartil ar arquivos Uma das dificuldades est no nome dos arquivos
No Linux os arquivos so sensveis caixa, conhecidos como "case sensitive", ou seja, em
um nome de arquivo letras maisculas so diferentes de letras minsculas. No Windows,
no so. Alm destas existem muitas outras complicaes, portanto vamos nos restringir a
montar um servidor am a sico e voc dese a montar um servidor mais personali ado
e seguro, consulte o site http://www.samba.org/.

8.3.2.1 - Configurao de um Servidor Samba Bsico


ara confi urar um sistema inu como um servidor am a, vamos primeiramente instalar
ou certificar se est instalado o pacote do servidor am a odemos usar o erenciador
de pacotes yum para fazer isso, como segue:

# y um install samb a

s confi uraes dos diret rios que sero compartil ados, em como as permisses de
acesso, devem ser inseridas no arquivo /etc/samba/smb.conf. Como falamos anteriormente,
esse arquivo possui diversas confi uraes amos editar o arquivo para confi urar o
servidor da forma mais simples possvel sem controle de acesso por usu rios, o c amado
modo compartilhado que pode ser muito til em pequenas redes.
No exemplo que segue vamos compartilhar a pasta /tmp sem senha. preciso editar o
arquivo /etc/samba/smb.conf e alterar os parmetros seguintes:

[glob al]
workgroup = G ERA L
serv er string = Serv idor Samb a V ers o % v
security = share

O parmetro "workgroup" indica o grupo de trabalho da rede, "server string" o equivalente


descrio do computador no indows e o securit a definio do tipo de acesso,
s are si nifica que no ter controle por usu rios em rando que este o mtodo mais
simples e menos se uro de confi urar um servidor am a
Incluir no final do arquivo as lin as apresentadas em se uida para especificar qual pasta
deve ser compartilhada:

[tmp]
comment = Compartilhamento T emporrio
path = / tmp
guest ok = y es
180 writab le = y es
ronto, para finali ar reinicie ou inicie o servidor am a que o compartil amento estar

A dministr a o de R ede
disponvel para ambientes Windows. Para reiniciar, e se ainda no estiver executando,
iniciar o servio Samba, use:

# service smbd restart

8.3.2.2 - Uso e Montagem de Compartilhamentos com o Cliente Samba


O kernel do Linux possui suporte ao sistema de arquivos SMBFS e CIFS, portanto est
presente em praticamente todas as distribuies. Normalmente no aparecem problemas
com esse suporte no ernel, portanto precisamos apenas verificar ou instalar o pacote
cliente do Samba. Podemos usar o gerenciador de pacotes yum, como segue:

# yum install samba-client

A montagem de sistemas de arquivos SMB remotos se d no mesmo formato de montagem


de qualquer outro sistema de arquivos, mudando somente o tipo e os parmetros.
A sintaxe a seguinte:

# mount [t smbfs|cifs] //servidor/caminho ponto_de_montagem

A opo "-t smbfs" est praticamente obsoleta, pois s funciona com sistemas operacionais
Windows at a verso 9x, ou seja, quase sempre utilizamos a opo "-t cifs" que indica
o tipo de sistemas de arquivos, "servidor" o IP ou hostname do computador que est
compartilhando os arquivos, "caminho" nome do compartilhamento no servidor SMB e
o "ponto_de_montagem" o diretrio local onde ser montado o compartilhamento. Para
montarmos um compartilhamento sem senha com o nome "temp" no IP 192.168.0.254 no
diretrio local /mnt/temp_no_meu_servidor, use:

# mount -t cifs //192.168.0.254/temp /mnt/temp_no_meu_servidor

Para montar o mesmo compartilhamento, porm efetuando login como usurio "maria" e
sen a dificil , use

# mount -t cifs -o username=maria,password=dificil //192.168.0.254/temp /mnt/


temp_no_meu_servidor

Aps a montagem voc pode usar os arquivos como se fossem locais.


Tambm possvel acessar compartilhamentos SMB usando um cliente samba muito pare-
cido com o cliente ftp em modo texto. Basta invocar o smbclient em uma console do Linux,
como segue:

# smbclient //192.168.0.254/temp

Aps pressionar ENTER na linha de comando anterior, o sistema solicita uma senha. No
caso do exemplo no necessrio informar nada, bastando pressionar ENTER novamente.
e voc necessitar informar um usu rio especfico de nome diferente daquele que voc
181
Linux - Fundamentos est usando no Linux, preciso utilizar a opo "-U" para informar o nome do usurio,
como segue no exemplo:

# smbclient //192.168.0.254/temp -U nicolas

Findo esse processo de autenticao do usurio, o smbclient abre um prompt para


comandos, em que permitido executar diversas aes, portanto digite "?" ou "help" para
listar todas as opes possveis. Seguem alguns exemplos prticos para uso.
Copiando de um computador Linux para um compartilhamento samba na rede com senha
no compartilhamento de rede:

# smbclient //IP_do_Windows/compartilhamento -U usuario --pass senha -c "put


/caminho_local/arquivo caminho_destino\arquivo;"

Na pr tica, ficaria assim para copiar o arquivo etc osts da m quina inu para a m quina
192.168.0.254 em Windows ou Linux com servidor Samba:

# smbclient //192.168.0.253/temp -U maria --pass dificil -c "put /etc/hosts


teste_copia\hosts;"

Copiando da mquina Windows para a pasta atual da mquina Linux, como convidado
sem senha:

# smbclient //IP_do_Windows/compartilhamento -U guest --pass "" -c "get


arquivo;"

Exemplo prtico para copiar o arquivo teste.txt para a pasta atual do Linux:

# smbclient //192.168.0.253/temp -U guest --pass "" -c "get teste.txt;"

Copiando da mquina Windows para uma pasta qualquer da mquina Linux, como
convidado sem senha:

# smbclient //IP_Windows/compartilhamento -U guest --pass "" -c "get arquivo


/caminho_destino/arquivo;"

Exemplo prtico:

# smbclient //192.168.0.254/temp -U guest --pass "" -c "get lista-pessoas.xls


/root/Desktop/lista-pessoas.xls;"

ara finali ar, como alternativa para enviar a sen a, pode se coloc la ao final da lin a de
comando, conforme e emplo se uinte ara o usu rio maria temos a sen a dificil e a
que desta forma no h necessidade do parmetro "--pass":

# smbclient //192.168.0.254/temp -U maria -c "get windows.ini;" dificil

182
8.4 - Login Remoto

A dministr a o de R ede
Para efetuar login em um sistema Linux de qualquer localidade e tambm para executar
programas remotamente, existe uma grande variedade de servidores de login remoto. Os
mais utilizados so os de Telnet e os SSH. O Telnet bastante popular, no entanto no
seguro, pois por padro ele envia todas as informaes em texto puro, portanto a melhor
alternativa atualmente o SSH (Secure Shell), pois ele encripta todos os dados antes de
enviar. O servidor mais conhecido e utilizado para login remoto via SSH o OpenSSH.
Neste item vamos estudar como confi urar um servidor para aceitar cone es elnet e
e tambm como utilizar os servios.

8.4.1 - Configurao de um Servidor Telnet


ara confi urar o sistema inu para aceitar cone es remotas por elnet, precisamos
instalar o servidor elnet rimeiramente precisamos instalar ou certificar que est
instalado o pacote do servidor Telnet. Podemos usar o gerenciador de pacotes yum para
fazer isso, como segue:

# yum install telnet-server xinetd

Note que estamos instalando tambm o xinetd, que um Super Server (superservidor). Ele
muito til para economi ar processamento dos servidores, pois monitora portas especficas
e quando h uma solicitao em determinada porta, ele executa o servidor que escuta
naquela porta, assim os servidores no ficam todo o tempo em mem ria, somente quando
esto em uso. O xinetd muito poderoso e muito utilizado. No vamos estud-lo, pois
assunto para pelo menos um captulo inteiro, no entanto mais informaes podem ser
encontradas em www.xinetd.org. Depois de instalarmos o servidor Telnet e o Super Server
Xinetd, devemos alterar o arquivo de confi urao do Xinetd que controla o servidor elnet
e fa er uma modificao muito simples, que consiste em alterar o par metro disa le para
"no", ou seja, vamos deixar habilitado o controle do servidor Telnet no Super Server.
emplo de arquivo de confi urao do uper erver referente ao servidor elnet, com
o parmetro "disable=no" localizado em /etc/xinetd.d/telnet:

# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}

183
Linux - Fundamentos Agora devemos marcar na tabela de servios para ativar o servio telnet ao iniciar,
como segue:

# chkconfig telnet on

odemos verificar que somente o telnet padro foi a ilitado com o comando
anterior usando o mesmo comando com a opo "--list". No exemplo seguinte
associamos o comando rep para filtrar a sada e mostrar apenas as lin as com a
palavra telnet.

# chkconfig --list | grep telnet


ekrb5-telnet: no
krb5-telnet: no
telnet: sim

inalmente podemos iniciar ou reiniciar o uper erver inetd para que as confi uraes
entrem em vigor, como segue:

# service xinetd restart

Finalmente o servidor Telnet est pronto! Vale ressaltar que por padro o login com o usu-
rio root desabilitado por segurana, j que esse protocolo no oferece segurana. Se pre-
cisar efetuar login como root, a melhor opo o SSH que veremos em seguida.

8.4.2 - Uso de um Cliente Telnet


Para acessar um sistema Linux em que est rodando um servidor Telnet, precisamos ter
um usurio e senha no computador remoto e instalar um cliente Telnet. A maioria das
distribuies Linux instala por padro um cliente telnet, mas precisamos ter certeza de que
o am iente est apto amos instalar ou certificar se est instalado o pacote do cliente
Telnet. Podemos usar o gerenciador de pacotes yum para fazer isso, como segue:

# yum install telnet

Alternativamente, se voc ainda no conseguiu se livrar dele, pode se conectar a um servidor


telnet atravs do Microsoft Windows, que por padro vem com um cliente telnet instalado.
Em Linux voc ser muito mais feliz, mas se mesmo assim quiser executar no Microsoft
indows, prefira utili ar o putt tel oc pode ai lo ratuitamente no endereo
ttp www c iar reenend or u s tat am putt
No Linux, aps termos o cliente instalado, basta abrir uma sesso de terminal e executar o
programa telnet na linha de comando, seguido do nmero de IP ou hostname do servidor
de Telnet, que em seguida sero solicitados o usurio e a senha, como podemos ver em
seguida:

# telnet 192.168.1.254
Trying 192.168.1.254...
Connected to 192.168.1.254.

184
Escape character is ^].

A dministr a o de R ede
CentOS release 5.4 (Final)
Kernel 2.6.18-194.17.1.el5 on an i686
login:

Aps o login voc pode executar comandos do shell Linux como se estivesse no computador
remoto.

8.4.3 - Configurao de um Servidor OpenSSH


ara confi urar o sistema inu para aceitar cone es remotas por , vamos utili ar o
servidor pen rimeiramente precisamos instalar ou certificar que est instalado
o pacote do servidor OpenSSH, mesmo sabendo que a grande maioria das distribuies
Linux por padro instala esse servidor em funo de ser uma ferramenta muito poderosa e
segura, ideal para manuteno remota. Podemos usar o gerenciador de pacotes yum para
fazer isso, como segue:

# yum install openssh-server

Normalmente nen uma confi urao precisa ser reali ada ap s a instalao para termos
um servidor ssh funcional. Vamos apenas citar um item de segurana importante que o
fato de a confi urao padro do pen permitir lo in de computador remoto com o
usu rio root ssa confi urao no muito indicada para servidores, pois mesmo avendo
segurana na conexo, se algum descobrir a senha de outra forma, pode invadir o sistema
e causar grandes estragos. Portanto, prudente desligar a permisso de acesso com o root
pela conexo SSH.
s confi uraes relativas ao servidor pen esto no arquivo etc ss ss d confi
Devemos edit-lo e colocar o parmetro "PermitRootLogin" em "no".
rec o de e emplo de um arquivo etc ss ss d confi , com o ermit oot o in desli ado

...
# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
...

Para marcar na tabela de servios a ativao do servio SSH ao iniciar, use:

# chkconfig sshd on

ora podemos iniciar ou reiniciar o servidor pen , para que as confi uraes entrem
em vigor, como segue:

# service sshd restart

185
Linux - Fundamentos
8.4.4 - Uso de Clientes SSH
Para acessar um sistema Linux remoto em que est rodando um servidor ssh, precisamos
ter um usurio e senha no computador remoto e ter instalado ou instalar pelo menos um
cliente ssh. Na maioria das distribuies Linux um cliente ssh instalado por padro, mas
precisamos ter certe a de que o am iente est pronto amos instalar ou certificar se
est instalado o pacote do cliente OpenSSH. Podemos usar o gerenciador de pacotes yum
para fazer isso, como segue:

# yum install openssh-clients

Alternativamente, voc pode conectar-se a um servidor SSH pelo Microsoft Windows,


que por padro no tem um cliente SSH instalado, mas se mesmo assim voc quiser
executar no Microsoft Windows, utilize o putty. Pode baix-lo gratuitamente no endereo
ttp www c iar reenend or u s tat am putt
No Linux, aps termos o cliente instalado, podemos abrir uma sesso de terminal e executar
o programa ssh na linha de comando, seguido do nmero de IP ou hostname do servidor
de SSH. A sintaxe bsica para o comando ssh :

# ssh [opes] [usuario@]hostname [comando]

Breve descrio dos parmetros:


 opes: existem diversas opes para o programa ssh. Uma opo muito utilizada
a "-l" (Letra L minscula) que indica o usurio para login no servidor. Para mais
informaes, consulte o man ssh.
 usuario@hostname: hostname o IP ou nome da mquina que queremos acessar.
O usurio seguido do smbolo "@" opcional e substitui a opo "-l" para informar o
nome do usurio para login.
 comando: alternativamente podemos conectar e entrar executando um programa ou
comando especfico
Para conectar-se a um computador servidor SSH com um usurio desse servidor, utilize uma
das duas alternativas a seguir. No exemplo o servidor SSH tem o endereo IP 192.168.1.254
e o login "maria" de um usurio cadastrado nesse servidor:

# ssh maria@192.168.1.254
# ssh -l maria 192.168.1.254

Se soubermos exatamente o que queremos fazer no servidor, podemos executar o comando


diretamente e sair automaticamente ao terminar a execuo do comando no computador
remoto. No exemplo seguinte, ao entrar, ser executado o comando init 6 que reinicia o
computador remoto, considerando que o usurio tenha permisso para tal tarefa:

# ssh maria@192.168.1.254 init 6

186
Um outro cliente ssh muito til o scp, que serve para copiar arquivos entre o computador

A dministr a o de R ede
local e o servidor de ssh e vice-versa.
Veja no exemplo a seguir como fcil utiliz-lo. Nele copiamos um arquivo do servidor ssh
remoto para a pasta root da mquina local. Acompanhe:

# scp maria@192.168.1.254:/etc/hosts /root

Neste outro exemplo usamos a mquina local apenas como intermediadora na cpia do
arquivo de um servidor ssh. Note que no servidor de endereo de IP 192.168.1.254 vamos
utilizar o usurio "maria" para efetuar o login e no outro o usurio "nicolas". Observe:

# scp maria@192.168.1.254:/etc/hosts nicolas@192.168.1.253:/home/nicolas

ara finali ar os e emplos pr ticos do comando scp, veremos mais um e emplo com a
opo "-r", que copia diretrios e subdiretrios recursivamente. Veja:

# scp -r /opt maria@192.168.1.254:/opt

Copiamos todo o contedo da pasta /opt da mquina local para o servidor em 192.168.1.254.
Os clientes de SSH do OpenSSH so bastante teis e poderosos. No hesite em consultar
a man page de cada um, pois eles possuem muitas outras opes interessantes para o uso
dirio.

8.5 - Roteador de Rede


Roteadores so equipamentos que fazem a interligao de redes distintas. Um sistema
inu pode ser confi urado como um roteador de rede Neste item mostramos como
confi urar um roteador sico que interli a duas redes
Para o exemplo vamos supor que temos duas redes, uma pequena empresa com uma matriz
e uma filial, e precisamos interli ar as duas redes ssim vamos definir ar itrariamente os
endereos de rede:

Tabela 8.3

Local Rede Mscara


1 192.168.1.0 255.255.255.0
2 192.168.2.0 255.255.255.0

roteador que ficar instalado na central ter pelo menos duas interfaces de rede, cada
uma li ada a uma das redes evemos confi urar a primeira interface de rede com um I
da rede e a se unda com um I da rede ara confi urar as interfaces de redes, consulte
o item X onfi urao do I ara o roteador vamos usar as se uintes confi uraes
do TCP/IP:
187
Linux - Fundamentos Tabela 8.4

Interface IP Mscara
eth1 192.168.1.254 255.255.255.0
eth2 192.168.2.254 255.255.255.0

Ou seja, a interface de rede eth1 estar conectada rede 1 e a eth2 rede 2.


Para fazer um sistema Linux se transformar em um roteador, precisamos habilitar o
encaminhamento de pacotes. Em termos gerais, o encaminhamento de pacotes permite
que os pacotes sejam transferidos do sistema Linux de uma rede para outra. Devemos
ativar a confi urao do ernel do inu colocando o valor no par metro net ipv
ip_forward" do arquivo /etc/sysctl.conf.
Trecho exemplo do arquivo /etc/sysctl.conf com o parmetro ativado:

...
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
...

ara verificar se est tudo corretamente confi urado, podemos visuali ar a confi urao
atual com o seguinte comando:

# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456

Note que o parmetro "net.ipv4.ip_forward" est em "1", ou seja, habilitado, mas para
arantir que as confi uraes entrem em vi or sem a necessidade de reiniciar o computador,
vamos executar o comando como segue:

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

Agora devemos habilitar o proxy ARP para que o sistema possa enviar pacotes de uma rede
para outra le pode ser a ilitado para todas as interface de rede ou para uma especfica
Para habilitar para todas as interfaces, inclua a linha seguinte no arquivo /etc/sysctl.conf
como segue:

# Habilita Proxy ARP para todas as interfaces


net/ipv4/conf/all/proxy_arp = 1

188
ara a ilitar interface especfica, use

A dministr a o de R ede
# Habilita Proxy ARP para a interface eth0 e eth1
net/ipv4/conf/eth0/proxy_arp = 1
net/ipv4/conf/eth1/proxy_arp = 1

ara verificar a confi urao atual, use o se uinte comando

# sysctl -p
net.ipv4.conf.all.proxy_arp = 1
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456

Note que o parmetro "net.ipv4.conf.all.proxy_arp" est em "1", ou seja, habilitado, mas


para arantir que as confi uraes entrem em vi or sem reiniciar o computador, vamos
executar o comando como segue:

# echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp

p s confi urarmos os par metros necess rios e as interfaces de rede, podemos definir as
tabelas estticas de roteamento.
Precisamos interligar as redes. Devemos criar uma tabela de roteamento que diga ao
sistema que, quando houver uma solicitao de um IP da rede 192.168.1.0, o trfego
deve ser direcionado para a eth1 e quando for para a rede 192.168.2.0, o trfego ser
direcionado para a et odemos definir essas rotas com o comando route como se ue

# route add -net 192.168.1.0/24 dev eth1


# route add -net 192.168.2.0/24 dev eth2

elem rando que o no final do endereo de rede indica que uma m scara de rede
de 24 bits, ou seja, equivalente a escrever 255.255.255.0. Podemos executar o comando
da outra forma apresentada em seguida e teremos o mesmo resultado:

# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth1


# route add -net 192.168.2.0 netmask 255.255.255.0 dev eth2

onfi ure os computadores clientes na rede usando o I da et como atewa da rede


e da eth2 para a rede 2.

189
8.6 - Servidor DHCP
Linux - Fundamentos

Um servidor inamic ost onfi uration rotocol possui como funo sica
enviar as confi uraes de rede para as estaes que esto confi uradas para usar
Ele envia as informaes necessrias para que a estao esteja disponvel na rede como o
endereo IP, mscara de sub-rede, gateway e DNS.
Existem algumas implementaes de servidor DHCP para Linux, sendo o mais utilizado o
d cpd, a ordado neste item rimeiramente vamos instalar ou certificar se est instalado
o dhcpd. Podemos usar o yum para fazer isso, como segue:

# yum install dhcp

confi urao do d cpd deve ser inserida no arquivo etc d cpd conf Na instalao esse
arquivo criado sem nen uma confi urao Um arquivo de e emplo pode ser encontrado
em /usr/share/doc/dhcp-<verso>/dhcpd.conf.sample. Podemos us-lo como referncia
ou criar outro arquivo.
Para o servidor DHCP vamos deixar o arquivo /etc/dhcpd.conf como segue:

ddns-update-style ad-hoc;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "guiapratico.com";

subnet 192.168.1.0 netmask 255.255.255.0 {


range 192.168.1.10 192.168.1.100;
}

No arquivo /etc/dhcpd.conf temos:


 ddns-update-style ad-hoc: define o modo da atuali ao do N usado como ad oc
para manter compatibilidade com verses anteriores.
 default-lease-time: tempo padro em segundos para concesso de um IP para deter-
minado host.
 max-lease-time: tempo mximo em segundos de concesso de um IP, caso solicitado
pelo cliente.
 option subnet-mask: indica a mscara de sub-rede que deve ser enviada aos clientes.
 option broadcast-address: indica o endereo de broadcast da rede.
 option option routers: indica o IP do gateway da rede a ser enviado aos clientes.
 option domain-name-servers: fornece uma lista de endereos IP dos servidores de
DNS para os clientes.
 option domain-name: indica o nome do domnio para os clientes.

190
 subnet 192.168.1.0 netmask 255.255.255.0 a re a seo de confi urao da

A dministr a o de R ede
sub-rede. Note a existncia do caractere "{" e "}" para abrir e fechar a seo respectivamente.
 range 192.168.1.10 192.168.1.100: aloca a faixa de IP para enviar aos clientes da
sub-rede, ou seja, neste exemplo os clientes dhcp conectados a essa sub-rede tero IPs
dentro da faixa estipulada nesse parmetro.
Para marcar na tabela de servios a ativao do servio dhcpd ao iniciar, use:

# chkconfig dhcpd on

erminadas as confi uraes, podemos iniciar ou reiniciar o servio caso este a iniciado
para que as confi uraes entrem em vi or como se ue

# service dhcpd restart

Uma base de dados contendo os IPs concedidos para os clientes, tempo de concesso,
endereo MAC da placa de rede do cliente, entre outras informaes, criada em /var/lib/
dhcpd/dhcpd.leases. Voc no deve alterar esse arquivo nem cri-lo se ele no existir, pois
periodicamente ele recriado. Se um eventual problema surgir ao recri-lo, portanto, o
correto deixar que o prprio servidor recrie o arquivo, forando o reincio do servidor DHCP.

8.7 - Servidor FTP


Um servidor ile ransfer rotocol permite que um usu rio transfira arquivos entre osts,
ou seja, transferir arquivo do computador local para o computador remoto. Existem diversas
implementaes de servidores FTP, entretanto estudaremos o vsftpd (Very Secure FTP Daemon)
que um dos mais utilizados em ambientes Linux e o padro nos derivados de Red Hat.
Nele os usurios so autenticados usando o controle de senhas do sistema. Tambm possvel
entrar sem autenticao, conhecido como FTP annimo, porm no recomendado, pois
um mtodo no seguro. O FTP utiliza por padro a porta 21.
nto, antes de iniciar precisamos instalar ou verificar se est instalado o servidor
vsftpd no sistema. Use o yum para resolver isso como segue:

# yum install vsftpd

s confi uraes do servidor esto no arquivo etc vsftpd vsftpd conf ara o funciona
mento bsico no necessrio fazer alteraes nesse arquivo.
Exemplo de arquivo /etc/vsftpd/vsftpd.conf aps instalao, sem os comentrios, ou seja,
somente com os parmetros em uso:

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
191
Linux - Fundamentos connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

Alguns comentrios importantes sobre o arquivo /etc/dhcpd.conf:


 anonymous_enable: define se permitido o acesso com usu rio an nimo or padro
ele est sempre ativo inclusive se o par metro for omitido, ele fica ativo e dese ar
bloquear o acesso ao usurio anonymous, necessrio deixar esse parmetro igual a "no".
 local_enable: habilita ou desabilita o acesso aos usurios do sistema local.
 write_enable: indica se permite ou no a gravao de arquivos.
 userlist_enable: se estiver em "yes", indica que os usurios listados no arquivo /etc/
vsftpd.user_list tero o acesso negado ao servidor FTP.
Com o parmetro "userlist_enable" habilitado voc pode determinar uma lista de usurios
sem acesso ao FTP. Isso importante porque bloqueia o acesso antes mesmo de solicitar
a senha e previne que usurios importantes enviem senhas em modo texto. Para bloquear
os usurios antes mesmo de solicitar a senha, use o arquivo /etc/vsftpd/user_list e para
bloquear somente a senha de acesso do usurio, use /etc/vsftpd/ftpusers.
Exemplo de arquivo /etc/vsftpd/user_list:

# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

Exemplo de arquivo /etc/vsftpd/ftpusers:

# Users that are not allowed to login via ftp


root
bin
daemon
adm
lp
sync
shutdown
192
halt

A dministr a o de R ede
mail
news
uucp
operator
games
nobody

iste uma rande variedade de confi uraes no vsftpd, mas informaes podem ser lidas
no endereo http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ftp-vsftpd-
conf.html.
Para marcar na tabela de servios a ativao do servio vsftpd ao iniciar, use:

# chkconfig vsftpd on

Agora podemos iniciar ou reiniciar o servidor FTP com o comando seguinte:

# service vsftpd restart

O acesso annimo por padro aponta para o contedo da pasta /var/ftp/pub/, j o acesso
feito por usurios do sistema aponta para a pasta de cada usurio no sistema.

8.8 - Servidor WWW


O servidor WWW (World Wide Web) um servio que est na camada de aplicao
do modelo OSI e utiliza o protocolo HTTP (HyperText Transfer Protocol). Esses servidores
tambm precisam de um cliente e um servidor. Neste caso o navegador da Internet
o cliente e WWW o servidor. Existem algumas implementaes de servidor WWW,
inclusive para Windows como o IIS (Internet Information Service) da Microsoft. O sistema
estudado neste item sem dvida o mais usado em todo o mundo. Foi com certeza um
dos grandes impulsionadores da difuso de sistemas Linux, alm de tambm funcionar no
Windows. Ele o Apache HTTP Server, desenvolvido pela Apache Software Foundation
ttp www apac e or , sendo e tremamente confi vel, e vel, ro usto e poderoso
evido ampla possi ilidade de confi uraes do servidor e pac e e ao fato de que
a confi urao padro dele atende a maioria dos casos, veremos como montar um servidor
WWW rapidamente, utilizando-se dos recursos disponveis por padro. Vamos adicionar
um add-on que o suporte ao PHP.
Para instalar o servidor Web Apache ou atualizar, podemos utilizar o gerenciador de pacotes
yum como segue:

# yum install httpd

diret rio com os arquivos de confi urao do pac e o etc ttpd , no qual se encontra
o su diret rio conf que a ri a o principal arquivo de confi urao do pac e, o ttpd conf
que mantm parmetros como nome do servidor, porta em uso, diretrio dos arquivos
193
Linux - Fundamentos tml, entre outras, e no su diret rio conf d esto as confi uraes dos m dulos adicionais,
como o PHP, por exemplo. Ainda em /etc/httpd/ so encontrados o subdiretrio modules,
que hospeda os mdulos instalados, e a logs em que esto os logs do sistema.
arquivo de confi urao etc ttpd conf ttpd conf no padro da instalao funciona
normalmente, por se tratar de um arquivo com muitas possibilidades. Neste item veremos
apenas os parmetros mais comumente alterados.
l uns coment rios so re confi uraes sicas do etc ttpd conf ttpd conf que so
comumente utilizadas:
 ServerRoot: o diretrio topo da rvore de diretrio do servidor Apache. Nele esto
as confi uraes, erros e arquivos de lo s padro etc ttpd
 Listen: o parmetro que indica ao Apache em que porta o servidor aceitar conexes.
O padro a porta 80.
 User: define o usu rio que ser propriet rio dos arquivos e processos ttpd sse
par metro um item importante para se urana do servidor, pois podemos definir um
usu rio especfico para controle
 Group: define o rupo que ser propriet rio dos arquivos e processos ttpd
 ServerAdmin: que indica o endereo de e-mail do administrador do sistema exibido
em momentos adversos, como erros ou falhas do servidor.
 ServerName: especifica um nome e uma porta que o servidor usar para se identificar
Isso pode ser determinado automaticamente pelo Apache ao iniciar, mas prudente
especificar para evitar pro lemas durante a iniciali ao Normalmente aqui podemos
colocar o IP e a porta do servidor ou o hostname e a porta.
 DocumentRoot: diretrio raiz em que sero hospedados os arquivos ofertados pelo
servidor Apache e os arquivos referentes aos sites hospedados. O padro /var/www/
html.
 DirectoryIndex: define o arquivo a ser mostrado quando um diret rio for solicitado
Normalmente algo como index.html ou index.php, ou seja, o primeiro ou principal
arquivo do site.
Para marcar na tabela de servios a ativao do servio httdp ao iniciar, use:

# chkconfig httpd on

Para iniciar o servidor Web Apache, podemos usar o programa apachectl ou o gerenciador
de servios do sistema, como segue:

# apachectl start
# service httpd start

Os dois comandos tm o mesmo efeito.


Com o servidor iniciado podemos acessar usando um cliente WWW, por exemplo, o
Mozilla Firefox. Tente acessar usando o endereo http://localhost ou http://127.0.0.1/.
194 Deve ser exibida a tela inicial padro do Apache Web Server, conforme a Figura 8.7.
A dministr a o de R ede
Figura 8.7

Neste ponto temos um servidor Web Apache funcionando e j podemos hospedar sites
no diretrio que aponta o parmetro DocumentRoot. O padro /var/www/html, mas
comum querermos utilizar o PHP associado ao Apache. O PHP uma linguagem de
script embutida no HTML, muito poderosa, e utilizada em servidores Apache. Para mais
informaes visite http://www.php.net.
Para habilitar a integrao com PHP no servidor Web Apache, precisamos instalar o php e
o m dulo para inte rao entre eles, em como confi urar o pac e para usar o ara
instalar, a melhor alternativa usar o gerenciador de pacotes yum, como segue:

# yum install php

Por padro somente os pacotes essenciais so instalados. Se voc quiser instalar todos os
mdulos do php, use:

# yum install php*

Para testar o php, v ao diretrio do DocumentRoot (/var/www/html) e crie um arquivo de


teste do php, como segue.
A seguir, um exemplo de arquivo para teste do php /var/www/html/teste.php:

<?php
phpinfo();
?>

Para testar, abra o browser e coloque o endereo http://localhost/teste.php. A sada deve


ser como a da Figura 8.8.
195
Linux - Fundamentos

Figura 8.8

ara finali ar, devemos adicionar ao par metro irector Inde a usca de arquivos do tipo
php, ou seja, inclua nesse parmetro as opes index.php e index.php5 para que o Apache
procure esses arquivos tambm quando um diretrio for solicitado.

8.9 - Servidor NTP


O NTP (Network Time Protocol) um protocolo utilizado como meio de trocar mensagens
sobre tempo (data e hora) entre computadores. Um servidor NTP escuta na porta 123 udp
e pode ser chamado de "servidor de hora" ou "servidor de horrio", ou seja, sua principal
funo disponibilizar a informao de data e hora para que os computadores solicitantes
sincronizem o horrio.
Para construir um servidor NTP precisamos ter instalados os pacotes referentes ao servidor
NTP. Para instalar podemos usar o gerenciador de pacote yum, como segue:

# yum install ntp

p s a instalao vamos confi urar para sincroni ar data e ora toda ve que iniciar o
servio. Vamos incluir a opo "-x" na linha "OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid""
do arquivo etc s sconfi ntpd arquivo deve ficar como se ue

# Drop root to id ntp:ntp by default.


OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

# Set to yes to sync hw clock after successful ntpdate


SYNC_HWCLOCK=no

# Additional options for ntpdate


NTPDATE_OPTIONS=""
196
O arquivo com as regras do servidor NTP o /etc/ntp.conf, no qual podemos determinar

A dministr a o de R ede
regras para o acesso e servidores para atualizao da hora. Normalmente no h necessidade
de efetuar nen uma alterao nele, pois vem com as confi uraes padro e sincroni a
a ora com os servidores oficiais do pro eto erver ool do N aso voc dese e inserir
outros servidores de hora para sincronizao do seu servidor NTP, inclua em qualquer parte
do arquivo, preferencialmente logo abaixo dos servidores j existentes, o parmetro "server
Servidor_NTP". Veja alguns exemplos de servidores:

server ntps1.pads.ufrj.br # (UFRJ), Rio de Janeiro, Brazil


server ntp1.rnp.br # Rede Nacional de Pesquisa (RNP)
server clock.via.net # ViaNet Communications, Palo Alto, CA, USA
server ntp.pads.ufrj.br # UFRJ, Rio de Janeiro, Brazil (PADS)
server ntp2.pads.ufrj.br # UFRJ, Rio de Janeiro, Brazil (PADS)
server ntp.pop-mg.rnp.br # POP-ES (RNP)
server ntp.pop-es.rnp.br # POP-MG (RNP)

Para marcar na tabela de servios a ativao do servio ntpd ao iniciar, use:

# chkconfig ntpd on

Agora podemos iniciar o servidor NTP e disponibilizar o servio na rede para qualquer
computador que requisitar. Use o comando descrito a seguir, pois se o servidor j estiver
iniciado, ele ser reiniciado e caso no esteja, ele ser iniciado.

# service ntpd restart

8.9.1 - Sincronizao de um Cliente NTP em Linux


Instale o pacote NTP, conforme instalamos para o servidor NTP, pois o mesmo pacote.
Podemos sincronizar a hora com um servidor NTP de duas maneiras. A primeira seria
usando o ntpdate e a segunda usando o servidor ntpd.
Usando o ntpdate, execute o comando a qualquer momento para sincronizar o relgio. A
sintaxe bsica do comando a seguinte:

# ntpdate Servidor_NTP

O "Servidor_NTP" o endereo IP ou hostname do servidor NTP.


Usando o ntpd, execute o comando seguinte a qualquer momento que o relgio ser
sincronizado. Neste caso, o servidor ao qual ser solicitado o horrio deve estar no arquivo
/etc/ntp.conf, ou seja, tenha certeza de que pelo menos uma das incidncias do parmetro
"server" existente nesse arquivo aponta para o IP ou hostname do seu servidor NTP.

# ntpd -q -u ntp:ntp

Para manter sempre sincronizado, uma boa prtica incluir esse comando no agendador
do sistema, o cron.
197
8.10 - Servidor DNS
Linux - Fundamentos

DNS (Domain Name Server) o servio de resoluo de nomes, que tem a funo de
traduzir nomes em endereos IP e vice-versa. Por uma questo prtica, os endereos de IP
precisam ser transformados em nomes, pois imagine se toda vez que fosse preciso acessar
um site, tivssemos de lembrar o endereo IP dele. Portanto, essa tarefa realizada pelos
servidores DNS espalhados pelo mundo, distribudos e interligados de forma hierrquica, e
cada servidor responsvel pelos seus domnios e subdomnios.
No topo dessa estrutura ier rquica esto os servidores rai que identificam todos os s
top level domain e istentes Um pode ser o primeiro nome num N ull qualified
domain name). Para o www.shellinux.com.br o TLD o "br"; descendo a hierarquia esto
os demais servidores e cada um sabe os TLDs que possui, e assim por diante at chegar
ao endereo da mquina. Todas as sesses de um FQDN, com exceo da ltima, a mais
esquerda dele, so onas definidas por meio dos arquivos de confi uraes de onas
que descrevem o espao daquela zona, como tambm os servidores de e-mail a serem
utilizados em um ou mais domnios, entre outros parmetros. Tambm possvel solicitar
um nome de domnio enviando um endereo de IP para um servidor DNS, conhecido
como DNS reverso.
O DNS fundamento em dois pontos estratgicos que consistem na organizao de
domnios para a Internet e na distribuio organizada dos servidores de nomes de rede.
Distribuio porque seria uma prtica invivel manter todos os nomes de domnios em
apenas uma base de dados.
uando confi uramos um sistema inu para funcionar em rede e queremos acessar a
Internet, muito provvel precisarmos de pelo menos um e at trs servidores de DNS
para informar ao sistema. Assim, o sistema ganha a capacidade de acessar computadores
ou hosts a partir dos seus FQDNs.

Figura 8.9 - Fonte: http://www.terraempresas.com.br/web/html/


theme/default/images/faq/nocoes_basicas_clip_image001.gif
198
Um sistema inu pode funcionar como um servidor N , mas confi urar o inu dessa

A dministr a o de R ede
maneira est alm do escopo deste livro. Veremos os tipos de servidores e onde esto
locali ados os principais arquivos de confi urao
Um servidor N possui quatro tipos de confi uraes sicas, a sa er o ac in nl
omente ac e , servidores que no so fontes oficiais de domnios, pois consultam
sempre um servidor remoto para obter a informao; o modo Master (Servidor Mestre), que
se torna um servidor oficial de informaes de domnios, e rece e este nome por ser capa
de responder a qualquer informao sobre seu domnio com total autoridade; o tipo Slave
(Servidor Escravo), tambm conhecido como servidor secundrio, que possui uma cpia do
banco de dados completa do Master Server; o modo Forwarding (Encaminhamento), que
encamin a solicitaes a uma lista especfica para a resoluo de nomes, quando nen um
dos servidores de nome especificado pode e ecutar a resoluo
No Linux e no UNIX, uma implementao de DNS chamada BIND a mais utilizada. Ela
possui algumas peas de servidor e cliente, como o resolver que o resolvedor, um cliente
que solicita informaes sobre um computador e o name server que o servidor de nomes,
no BIND chamado de named, o qual responde as solicitaes aos clientes.
Basicamente, ao acessar um site na Internet, o resolver consulta o arquivo /etc/resolv.conf
para localizar o endereo IP do servidor DNS, solicita ao DNS o IP do domnio da pgina
que queremos acessar named no servidor N verifica se o domnio est no seu cac e
caso no esteja, ele procura pelo DNS responsvel por aquele domnio at encontr-lo,
para retornar o endereo IP ao cliente ou retornar uma mensagem de erro.
Para instalar o BIND, podemos usar o gerenciador de pacotes yum como segue:

# yum install bind

Para marcar na tabela de servios a ativao do servio named ao iniciar, use:

# chkconfig named on

A implementao named do servidor DNS est localizada em /usr/sbin/named. O pacote


BIND inclui tambm um utilitrio de administrao do DNS chamado rndc e localizado
em /usr/sbin.
principal arquivo de confi urao o named conf locali ado no diret rio etc
Exemplo de /etc/named.conf:

//
// Sample named.conf BIND DNS server named configuration file
// for the Red Hat BIND distribution.
//
// See the BIND Administrators Reference Manual (ARM) for details, in:
// file:///usr/share/doc/bind-*/arm/Bv9ARM.html
// Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
// its manual.
//

199
Linux - Fundamentos options
{
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;

// Put files that named is allowed to write in the data/ directory:


directory "/var/named"; // the default
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";

};
logging
{
/* If you want to enable debugging, eg. using the rndc trace command,
* named will try to write the named.run file in the $directory (/var/
named).
* By default, SELinux policy does not allow named to modify the /var/
named directory,
* so put the default debug log file in data/ :
*/
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
//
// All BIND 9 zones are in a "view", which allow different zones to be served
// to different types of client addresses, and for options to be set for
groups
// of zones.
//
// By default, if named.conf contains no "view" clauses, all zones are in the
// "default" view, which matches all clients.
//
// If named.conf contains any "view" clause, then all zones MUST be in a view;
// so it is recommended to start off using views to avoid having to
restructure
// your configuration files in the future.
//
view "localhost_resolver"
{
/* This view sets up named to be a localhost resolver ( caching only
nameserver ).
* If all you want is a caching-only nameserver, then you need only define
this view:
*/
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
# all views must contain the root hints zone:
include "/etc/named.root.hints";

/* these are zones that contain definitions for all the localhost
* names and addresses, as recommended in RFC1912 - these names should
* ONLY be served to localhost clients:
*/
include "/etc/named.rfc1912.zones";
};
view "internal"
{
/* This view will contain zones you want to serve only to "internal" clients
that connect via your directly attached LAN interfaces - "localnets" .
*/
200
match-clients { localnets; };

A dministr a o de R ede
match-destinations { localnets; };
recursion yes;
// all views must contain the root hints zone:
include "/etc/named.root.hints";

// include "named.rfc1912.zones";
// you should not serve your rfc1912 names to non-localhost clients.

// These are your "authoritative" internal zones, and would probably


// also be included in the "localhost_resolver" view above :

zone "my.internal.zone" {
type master;
file "my.internal.zone.db";
};
zone "my.slave.internal.zone" {
type slave;
file "slaves/my.slave.internal.zone.db";
masters { /* put master nameserver IPs here */ 127.0.0.1; } ;
// put slave zones in the slaves/ directory so named can update them
};
zone "my.ddns.internal.zone" {
type master;
allow-update { key ddns_key; };
file "slaves/my.ddns.internal.zone.db";
// put dynamically updateable zones in the slaves/ directory so named
can update them
};
};
key ddns_key
{
algorithm hmac-md5;
secret "use /usr/sbin/dns-keygen to generate TSIG keys";
};
view "external"
{
/* This view will contain zones you want to serve only to "external" clients
* that have addresses that are not on your directly attached LAN interface
subnets:
*/
match-clients { any; };
match-destinations { any; };

recursion no;
// youd probably want to deny recursion to external clients, so you
dont
// end up providing free DNS service to all takers

allow-query-cache { none; };
// Disable lookups for any cached data and root hints

// all views must contain the root hints zone:


include "/etc/named.root.hints";

// These are your "authoritative" external zones, and would probably


// contain entries for just your web and mail servers:

zone "my.external.zone" {
type master;
file "my.external.zone.db";
};
};

No diretrio /var/named/ esto armazenados as zonas, as estatsticas e os arquivos de cache.


201
Linux - Fundamentos

Exerccios

1. Explique de forma resumida o TCP/IP.


2. Quais so as classes de endereos possveis?
3. Qual a mscara da classe B?
4. Qual o intervalo de endereos da classe A?
5. omo confi urar manualmente a interface de rede
6. Para que serve o comando route n?
7. O que NFS?
8. Para que serve o telnet?
9. efina servidor
10. Qual a funo de um servidor FTP?
11. O que faz um servidor DNS?

202
Bibliografia

Bibliografia
BARRETT, D. J.; BYRNES, R. G.; SILVERMAN, R. Linux Security Cookbook. O'Reilly, June,
2003.

BLUM, R.; LEBLANC, D. A. Linux FOR DuMmIES. 9th Edition. Published by Wiley
Publishing, Inc.

NEMETH, E.; SNYDER, G. Linux Administration Handbook. Second Edition. Trent R. Hein
Copyright 2007. Pearson Education, Inc.

RAYMOND, E. S. The Art of Unix Programming. Thyrsus Enterprises Copyright, 2003.

STANFIELD, V.; SMITH, R. W. Linux System Administration. Second Edition. SYBEX.

Sites
http://www.faqs.org/docs/linux_intro/

http://www.faqs.org/faqs/unix-faq/

http://www.linfo.org/main_index.html

http://www.centos.org/docs/5/html/Deployment_Guide-en-US/index.html

http://www.unix.org/what_is_unix/history_timeline.html

http://www.linuxhomenetworking.com/wiki/index.php

http://www.digibarn.com/collections/newsletters/homebrew/V2_01/gatesletter.html

http://en.wikipedia.org/wiki/Kernel_(computing)

http://www.gnu.org/

http://www.kernel.org/

http://www.fsf.org/

http://www.minix3.org/

http://www.pathname.com/fhs/

http://www.linuxfoundation.org/

http://wiki.sintectus.com/bin/view/GrupoLinux/ArtigoConceitosEHistorioaDoLinux

203
Linux - Fundamentos http://www.faqs.org/faqs/unix-faq/faq/part6/section-2.html

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch03_:_
Linux_Networking

ttp www tu files or

http://linux.die.net

http://www.vivaolinux.com.br

http://bash.cyberciti.biz/guide

Revistas
Revista do Linux - Ano II - n. 20 - Agosto/2001.

Filesystem Hierarchy Standard por Filesystem Hierarchy Standard Group editado por Rusty
Russell, Daniel Quinlan e Christopher Yeoh. Published January 28 2004.

Marcas Registradas

Linux marca registrada da centOSTeam.

Todos os demais nomes registrados, marcas registradas ou direitos de uso citados neste livro
pertencem aos seus respectivos proprietrios.

204
ndice Remissivo

ndic e R emissiv o
A G
Adio de grupos 62 Gerenciamento de grupos 62
Administrador 106 GNU
Ajuda 54 AGPL 25
Aplicativos do Microsoft Windows 27 FDL 25
Apt 69, 72 LGPL 25
Arquivo(s) 55, 126, 178 GRUB 114

B H
Boot 101, 113 Halt 121
Hard link 127

C
confi
I
Cliente(s) Inicializao 112
SSH 186 Init 120
Telnet 184 Instalao 95, 108
Comandos bsicos 54 remota 110
onfi urao I fi o
CPU 73, 76

K
D Kernel 28, 29
Daemons 84 Kill 88
Desligamento 118 Killall 88
Desmontagem 123
Diretrios 55
Disco 79 L
rgido 98 Layout do teclado 98
LILO 113
Link simblico 127
E Linux Foundation 36
Endereo de rede 166 Login remoto 183
Logs 82
LSB (Linux Standard Base) 36
F
Filesystem Hierarchy Standard (FHS) 41
Free Software Foundation 24
M
Fuso horrio 106 Manuteno 116
Math 15, 33, 40, 44, 47, 62
205
Linux - Fundamentos Memria 77 Remoo de grupos 63
virtual 35 Roteador de rede 187
Mensagens 82 RPM 71
Microncleo 28
monousurio 116
simblico 58 S
Montagem 123
Seleo do idioma 97
Multitarefa 32
Senha 65
Multitasking 32
Service 86
Servios 84
Servidor
N DHCP 189
Ncleo DNS 198
do sistema 28 FTP 191
monoltico 28 NTP 196
OpenSSH 185
WWW 193
O Shutdown 119
Octal 58 Superusurio 89
Open Printing 36

T
P TCP/IP 164, 169
Pacotes 70-72, 107 Tempo de execuo 174
Pilha de rede 164 Teste do DVD 96
Portas 167
POSIX 27
Poweroff 121 U
Processos 87 UNIX 32
Projeto GNU 23 Usurio(s) 64, 66
cadastrado 67

R
Reboot 121 W
Rede 80, 104, 109, 164 Windows 27

206
Windows Server 2012 - Fundamentos
Autor: Marco Aurlio Thompson
Cdigo: 4308 240 pginas Formato: 17,5 x 24,5 cm ISBN: 978-85-365-0430-8 EAN: 9788536504308
Com exemplos prticos e telas que ilustram passo a passo as operaes, o livro ensina os fundamentos do Windows Server 2012,
verso em portugus, da Microsoft, orientando estudantes e profissionais da rea na criao de uma infraestrutura de rede baseada
nesse sistema.
Comenta as novidades desta verso e demonstra como criar um laboratrio de testes para praticar o contedo. Explica procedimentos
ps-instalao e modelagem de redes, revisa o funcionamento do DNS e trata do Active Directory. Instrui a criao de vrios servidores,
como o DHCP, o DNS, o de arquivos, o de impresso e o controlador de domnios. Fornece dicas para manter o sistema seguro e em
funcionamento, alm de um glossrio com os termos mais comumente usados em redes e um apndice com o roteiro para obteno de
certificao da Microsoft para essa plataforma.

Microsoft Windows Server 2012 - Instalao, Configurao e Administrao de Redes


Autor: Marco Aurlio Thompson
Cdigo: 4346 368 pginas Formato: 17,5 x 24,5 cm ISBN: 978-85-365-0434-6 EAN: 9788536504346
Com o objetivo de auxiliar estudantes e profissionais no gerenciamento de redes com o Windows Server 2012, este livro foi desen-
volvido, repleto de telas explicativas passo a passo.
Faz uma reviso de redes e TCP/IP, descreve as novidades dessa gerao de servidores e explica como criar um laboratrio virtual
de prticas. Introduz a nova interface de usurio Modern UI (ex-Metro), procedimentos ps-instalao, tipos de RAID, funes e
recursos do programa. Destaca os servidores de arquivos e armazenamento, de impresso e documentos, DHCP, DNS, Web (IIS)
e o Active Directory, bem como Server Core, PowerShell e Hyper-V. Trata de administrao remota, planejamento da carreira,
segurana e gerenciamento de redes, trazendo um glossrio com termos comuns e apndices com comandos teis e um roteiro
para obter a certificao da Microsoft para essa plataforma.

Windows Server 2008 R2 - Instalao, Configurao e Administrao de Redes


Autor: Marco Aurlio Thompson
Cdigo: 3066 336 pginas Formato: 17,5 x 24,5 cm ISBN: 978-85-365-0306-6 EAN: 9788536503066
Com linguagem simples e ilustraes que esclarecem passo a passo cada operao, este livro ensina desde os conceitos bsicos
at os mais avanados, para que estudantes e profissionais da rea possam construir uma rede de computadores segura, de alta
confiabilidade e fcil gerenciamento.
Traz uma viso geral do ambiente de redes e apresenta protocolos do TCP/IP, principais funes, infraestrutura com DHCP, WINS,
DNS, diretivas de rede, Active Directory, servidor de arquivos e de fax, servidor de impresso e de web com o IIS, a virtualiza-
o com o Hyper-V, as diferentes formas de acesso remoto ao servidor, segurana da rede, como usar scripts de configurao
com o PowerShell, alm da descrio de diversas tarefas de administrao da rede, com seus problemas mais comuns e as
respectivas solues.

Windows Server 2003 - Administrao de Redes


Autor: Marco Aurlio Thompson
Cdigo: 9808 376 pginas Formato: 17 x 24 cm ISBN: 978-85-7194-980-5 EAN: 9788571949805
Ensina a gerenciar o Windows 2003 Server em rede e mostra como realmente o dia a dia do administrador.
Est organizado de forma didtica, abordando conceitos bsicos de redes, arquiteturas, protocolos e instalao da verso Server,
os tipos de servidor que o Windows 2003 pode se tornar (controlador de domnio, servidor de arquivos, de impresso, DNS, WINS,
DHCP, servidor Web (WWW e FTP) etc.), criao de uma Intranet, adotando uma poltica de segurana, alm de dicas e macetes
do Windows 2003 e orientaes para certificao Microsoft.
indicado aos profissionais e alunos da rea de informtica que desejam ingressar no lucrativo mercado de administrao
de redes.

Windows Server 2003 em portugus - Implementao e Administrao


Autor: Eng. Francisco Baddini
Cdigo: 9832 376 pginas Formato: 17 x 24 cm ISBN: 978-85-7194-983-6 EAN: 9788571949836
Traz os procedimentos recomendados na implementao do Windows Server 2003. Trata desde os principais recursos de hardware
existentes nos servidores at instalao, configurao, aplicaes web, otimizao e gerenciamento dos recursos da plataforma.
Um captulo especial aborda o Microsoft ISA Server 2000, com o qual possvel transformar o servidor numa poderosa soluo de
segurana. destinado aos profissionais e alunos da rea de informtica que desejam implementar e entender como funcionam os
principais recursos e produtos desenvolvidos para essa plataforma.

Sistemas Operacionais & Hardware


Estudo Dirigido de Microsoft Windows 8 Enterprise
Autor: Andr Luiz N. G. Manzano
Cdigo: 437A 168 pginas Formato: 17 x 24 cm ISBN: 978-85-365-0437-7 EAN: 9788536504377
Com estrutura agradvel, este livro traz as principais caractersticas operacionais do Windows 8 e sua nova interface, baseada no
design Metro, seus blocos dinmicos e atalhos de navegao. Explica como alternar dois ambientes de trabalho, criar contas de
usurio, gerenciar arquivos e pastas, alm do controle de acesso Internet e noes bsicas. Trata de terminologias, CPU, mem-
rias, perifricos, novidades da verso, rea de trabalho, principais aplicativos, acessrios e o Explorador de Arquivos. Contempla
assuntos importantes e atuais, como segurana, tecnologia Bluetooth, Wireless, Windows Defender, Firewall e Windows Update.
indicado a professores, alunos e autodidatas. Traz exemplos e exerccios didticos para facilitar o aprendizado.

Microsoft Windows 7 Professional - Guia Essencial de Aplicao


Autor: Jos Augusto N. G. Manzano
Cdigo: 3035 296 pginas Formato: 17,5 x 24,5 cm ISBN: 978-85-365-0303-5 EAN: 9788536503035
O Microsoft Windows 7 e seus recursos essenciais estruturam este livro prtico e dirigido, que conceitua sistema operacional,
explana a estrutura organizacional do Windows, instalao e configuraes iniciais. Aborda acesso ao computador por portadores
de necessidades especiais e descreve as ferramentas de produtividade e de sistema, como bloco de notas, calculadora, prompt de
comando, impressoras etc., o programa Windows Explorer e recursos de multimdia. Inclui gerenciamento do sistema, bibliotecas
e pastas do usurio.
Conectividade e acessibilidade Internet, Windows Update, manuteno do sistema e outros recursos auxiliares, como o modo de
compatibilidade com o Microsoft Windows XP, so assuntos tratados.

Linux - Fundamentos
Autores: Walace Soares e Gabriel Fernandes
Cdigo: 3219 208 pginas Formato: 17,5 x 24,5 cm ISBN: 978-85-365-0321-9 EAN: 9788536503219
Os conceitos e aspectos essenciais do Linux, sua instalao e gerenciamento bsico so explanados de forma objetiva e prtica. O
livro aborda a histria do programa, sua relao com o UNIX, estrutura, vantagens, aspectos prticos do dia a dia do administrador,
as tarefas exigidas, ferramentas e comandos, gerenciamento de usurios e grupos, monitoramento do servidor, administrao de
servios (daemons), execuo da instalao de forma eficiente, os gerenciadores de boot comumente utilizados (GRUB e LILO)
e dicas de segurana.
Detalha os sistemas de arquivos, a ferramenta Shell, protocolos, configurao, DHCP, SAMBA, NFS, compartilhamento de arquivos
com servidores Windows, login remoto, SSH, roteamento, FTP, NTP, DNS e muito mais.

Montagem e Configurao de Computadores - Guia Prtico


Autor: Renato Rodrigues Paixo
Cdigo: 3196 304 pginas Formato: 20,5 x 27,5 cm ISBN: 978-85-365-0319-6 EAN: 9788536503196
Indicado a estudantes, profissionais e entusiastas, o livro desmistifica o processo de montagem de um computador pessoal deta-
lhando cada etapa, como configurao, testes de performance e interconexo numa rede local (LAN).
Aborda conceitos bsicos de eletricidade e eletrnica digital, ferramentas e componentes, partes do PC, perifricos, ambiente de
trabalho, aterramento e conexes, modelos de gabinete, motherboard, jumpeamento, overclocking e o processador.
Descreve pentes de memria, conexes a cabos, fonte de alimentao, HDD e FDD, controladoras, cabos internos e externos do
gabinete, filtros de linha, estabilizadores de tenso e nobreaks. Ensina como ligar o PC pela primeira vez, configurao do setup e
BIOS, janelas principais, boot do sistema, instalao do sistema operacional, placa de vdeo, impressoras, softwares bsicos e de
monitoramento de sinais, defrag e utilitrios de desempenho.

Manuteno de Computadores - Guia Prtico


Autor: Renato Rodrigues Paixo
Cdigo: 3226 208 pginas Formato: 20,5 x 27,5 cm ISBN: 978-85-365-0322-6 EAN: 9788536503226
Estudantes, entusiastas e profissionais da rea encontram neste livro um contedo didtico e objetivo sobre os cuidados necess-
rios para a manuteno preventiva e corretiva de um PC.
De forma gradativa, aborda conceitos bsicos de eletricidade, instrumentos de medida, principais componentes que integram
um PC, microprocessadores, barramento, arquitetura interna, encapsulamentos, conexo do processador com a motherboard,
memrias, chipsets, motherboards, drives (HDD, FDD, CD/DVD), conexo da BIOS, setup e controladoras de vdeo, como tam-
bm aspectos prticos da manuteno, ferramentas e sobressalentes, ambiente de trabalho, cargas eletrostticas, aterramento,
conexes, filtros de linha, estabilizadores de tenso e nobreaks, cuidados com o PC, acessrios, limpeza, tipos de falha e soluo
de problemas.

Sistemas Operacionais & Hardware