Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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.
1. E-mail: producao@erica.com.br
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."
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
4
Fabricante
Produto: Linux
Fabricante: centOS Team
Site: www.centos.org
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
6
Dedicatria
7
Agradecimentos
Linux - Fundamentos
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
Bibliografia ........................................................................................................203
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.
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.
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.
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.
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.
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/.
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
26
2
Familiarizao com o Linux
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.
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
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.
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.
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
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.
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.
43
2.13 - As Distribuies do Linux
Linux - Fundamentos
44
do projeto GNU, que provm um conjunto bsico de controle e uso do sistema por meio
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.
$ 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!
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
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.
$ info info
* 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.
$ whatis cp
cp (1) - copy files and directories
cp (1p) - copy files
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
$ 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
$ 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
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
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
Figura 3.3
62
Para adicionar um novo grupo ao sistema, utilizamos o comando groupadd, cuja sintaxe :
Figura 3.4
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.
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
66
3.3.4 - Remoo de um Usurio Cadastrado
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
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.
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.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:
Figura 3.10
Figura 3.11
76
aso voc dese e, pode usar se a interface r fica estiver disponvel o utilit rio r fico do
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
Figura 3.14
Figura 3.15
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
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
/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
}
/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.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
# /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
...
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:
88
3.9 - Superusurio
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
# lisa may run any command on any host in CUNETS (a class B network)
lisa CUNETS = ALL
# 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
# on the alphas, john may su to anyone but root and flags are not allowed
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
# 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
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:
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:
J o usurio fred pode executar qualquer comando como oracle e Sybase sem que seja
solicitada a sua senha.
J jen pode executar qualquer comando em todos os servidores, com exceo dos listados
em SERVERS.
92
T ar ef as E ssenc iais do A dministr ador
Exerccios
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.
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
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
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.
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
Figura 4.19
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
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:.
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
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
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
#Imagem do Windows
113
Linux - Fundamentos other= / dev / hda2
tab le= / dev / hda
lab el= Wndows
#Fim do arquiv o
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
115
Linux - Fundamentos
Figura 5.2
Figura 5.3
116
boot: linux 1
Se voc acha isso um pouco inseguro, pode impedi-lo, editando o arquivo lilo.conf,
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
# 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.
5.2.4 - Desligamento
O desligamento no forado do sistema operacional, isto , de forma segura e ordenada,
fundamental para manter a integridade dele.
118
Shutdown
-t Informa o nmero de segundos entre o envio do aviso aos processos ativos e o envio
do sinal de desativao do processo.
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
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
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.
S istemas de A r q uiv os
As opes disponveis (principais) so:
Auto Monta o dispositivo automaticamente. Este o padro.
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:
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:
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
129
7
Shell como Ferramenta
do Administrador
#!/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.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
134
f ar umento tratado no formato ponto utuante com um mnimo de d i-
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:
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 -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.
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
# 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
${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
#!/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.5
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.
Getopts exige que os parmetros passados sejam iniciados com o sinal -, por exemplo, -s
-d <valor> -e -h <valor>.
#!/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>
#!/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.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 :
Operadores de arquivos
-b arquivo O arquivo um arquivo de bloco (/dev/hda, por exemplo).
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
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
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 :
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
#!/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
156
echo $num
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
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
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
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
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
Tabela 8.1
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
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]
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.
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:
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
# 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
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
# 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
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)
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 -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
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.
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
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:
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:
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
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/.
# 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
[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:
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:
Para montar o mesmo compartilhamento, porm efetuando login como usurio "maria" e
sen a dificil , use
# 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:
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:
Copiando da mquina Windows para a pasta atual da mquina Linux, como convidado
sem senha:
Exemplo prtico para copiar o arquivo teste.txt para a pasta atual do Linux:
Copiando da mquina Windows para uma pasta qualquer da mquina Linux, como
convidado sem senha:
Exemplo prtico:
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":
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.
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.
inalmente podemos iniciar ou reiniciar o uper erver inetd para que as confi uraes
entrem em vigor, como segue:
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.
# 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.
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
...
# chkconfig sshd on
ora podemos iniciar ou reiniciar o servidor pen , para que as confi uraes entrem
em vigor, como segue:
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:
# ssh maria@192.168.1.254
# ssh -l maria 192.168.1.254
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:
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:
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:
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.
Tabela 8.3
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
...
# 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:
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:
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
# 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
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
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:
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:
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";
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
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.
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
# 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
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
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.
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
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:
Por padro somente os pacotes essenciais so instalados. Se voc quiser instalar todos os
mdulos do php, use:
<?php
phpinfo();
?>
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.
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
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:
# 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.
# ntpdate 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.
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:
# chkconfig named on
//
// 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;
};
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.
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
zone "my.external.zone" {
type master;
file "my.external.zone.db";
};
};
Exerccios
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.
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
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
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.
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.