Você está na página 1de 37

ADILSON RODRIGUES BONAN

LINUX

)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,
Exame 117-102

)WKCFG%GTVKECQRCTC#FOKPKUVTCQFQ5KUVGOC

A mente que se abre a uma nova ideia jamais volta ao seu tamanho original.
Albert Einstein
Conhecimento adquirido sem ser transmitido conhecimento perdido.
Adilson Rodrigues Bonan
Autor
Windows: Escrito pelo melhores programadores que o dinheiro pode comprar.
Linux: Escrito pelo melhores programadores que dinheiro nenhum compra.
Annimo Todo homem tem direito liberdade de opinio e expresso; este direito inclui a
liberdade de, sem interferncias, ter opinies e de procurar, receber e transmitir informaes e ideias por quaisquer meios, independentemente de fronteiras.
'HFODUDomR8QLYHUVDOGRV'LUHLWRV+XPDQRV$UW

ADILSON RODRIGUES BONAN

Rio de Janeiro - 2010

Agradecimentos
Em primeiro lugar, sempre agradeo a Deus por tudo o que tenho e posso vir a ter,
e pelo que sou. Agradeo a Ele principalmente pela realizao deste livro o qual foi
motivo de muito trabalho e esforo.
Na sequncia, agradeo a /LQXV%HQHGLFW7RUYDOGV por ter dado incio a esse maravilhoso sistema operacional, ao pessoal que mantm/participa das listas de discusso, frum (Debian, Ubuntu, Red Hat, Fedora e OpenSuse), chats e portais de
estudos na Internet, e Universidades que atravs do seu corpo docente e discente
tambm mantm suas pginas na Internet para ajudar quem quer aprender a usar
o sistema Linux.
Agradeo a ALTA BOOKS Editora, por ter acreditado na qualidade do meu trabalho
e desta obra, e a todos os meus ex-alunos e alunos os quais tambm, de certa forma,
me ajudaram a melhorar esse livro contribuindo com dicas e sugestes. Tambm
agradeo aos energticos, xcaras de caf, p de guaran, catuaba etc. Aos meus pais com todo o carinho Albino Bonan< (em memria) e Terezinha
da Silva Bonan, que sempre me apoiaram e me ajudaram nas horas mais difceis
da minha vida... E ao maior presente que Deus me deu, meu tesouro, minha vida,
PHXDPDGROKRGabriel T. Bonan que, apesar de sua tenra idade de criana,
tambm me deu muita luz, amor, ternura, incentivo e principalmente compreenso
enquanto escrevia este livro.

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

vi

,FRQRJUDDDGRWDGDQRPDWHULDO
Este cone representa uma dica/macete importante.
(VWHtFRQHUHSUHVHQWDXPDQRWDRXVHMDDOJRLPSRUWDQWHTXHYRFrGHYHUiFDUDWHQto.
Este cone representa um resumo simples do tpico estudado. Essas informaes
servem de base para um melhor estudo, pois so os principais termos abordados
nos exames LPI.
Este cone representa tarefas que so realizadas apenas no modelo Red Hat Linux e
DQV([)HGRUD e CentOS. Se for instalao, ser sugerido fazer via Internet com o
comando yum para a resoluo de dependncias.
Este cone representa tarefas que so realizadas apenas no modelo Debian Linux e
similares. Ex.: Kurumin e Ubuntu. Se for instalao, ser sugerido fazer via Internet
com o utilitrio apt-get para a resoluo de dependncias.
Este cone representa a referncia ao tpico, objetivo e peso dos exames LPI, bem
como um informativo sobre o que esperado do candidato quando da realizao
dos exames.
Este cone representa um utilitrio ou uma ao/comando a ser executado no ambiente GNOME.
Este cone representa um utilitrio ou uma ao/comando a ser executado no ambiente KDE.

7LSRORJLDDGRWDGDQROLYUR







Aviso do sistema em negrito para usurio administrador: [root@ns1 ~]# ou #;


Aviso do sistema em negrito para usurio restrito: [adilson@ns1 ~]$ ou $;
Alguns destaques do sistema Linux no meio do texto: .rpm, .deb, etc;
Alguns destaques do pargrafo no meio do texto em itlico;
Alguns comandos do Linux no meio do texto em fonte courier normal: ls, LIFRQJ etc;
Comandos do usurio (administrador ou no) esto em fonte courier negrito: # ls
-lh;
 Respostas do sistema esto em fonte courier normal: /opt /bin /sbin.

&RQYHQo}HVDGRWDGDQROLYUR
 $VJXUDVHWDEHODVHVWmRQXPHUDGDVGHDFRUGRFRPVHXUHVSHFWLYRWySLFRHQ~PHUR
FRPR)LJXUDTXHUHSUHVHQWDDVHJXQGDJXUDGRSULPHLURVXEWySLFRGRWySLFR
101 e Tabela 103.1.1 a primeira tabela do primeiro subtpico do tpico 103.
 Omisso total ou parcial da sada de um comando na tela: (...).
 Representao de uma tecla especial qualquer: [enter],[esc],[F1],[F2],[tab].
 Combinaes de teclas: [control]+[esc]+[backspace],[alt]+[tab],[cont
rol]+[a].

2UJDQL]DomRDGRWDGDQROLYUR

vii

 Nomes das estaes com seus respectivos IPs usados no livro:


fedora:172.16.12.12, debian:172.16.12.50, redhat:172.16.12.53 e
windows2003:172.16.12.23.
 O nome do servidor usado no livro ns1 e o diretrio de trabalho depende do login
(administrador ou usurio) e o prompt # ou $ poder ser usado na representao
desses.
 'RPtQLRSDGUmR FWtFLR XVDGRQROLYURSDUDQVDFDGrPLFRValtabooks.edu.br.
 Os nomes de usurios adilson, fernando, sidney, cristiane, leniza e luciene foram usaGRVDSHQDVSDUDQVDFDGrPLFRVHQmRSRVVXHPQHQKXPYtQFXORFRPRQRPHGRPtQLR
ou a Editora, exceto o usurio adilson que representa o prprio autor. Os outros usurios foram usado aleatoriamente.

2UJDQL]DomRDGRWDGDQROLYUR
Este um livro sobre administrao do sistema Linux, e tambm um livro prepaUDWyULRSDUDRVHJXQGRH[DPHGHFHUWLFDomR/3,/LQX[3URIHVVLRQDO,QVWLWXWH, o
exame 117-102. Ele est organizado de acordo com a hierarquia de conhecimentos
adquiridos desde o procedimento da instalao do sistema at a implementao de
servios, e tem seu incio na administrao do sistema e subsequncia em administrao de redes (assunto continuado em outro livro da srie). No entanto, no
HVWUDQKHFRPRVHGDUiHVVDRUJDQL]DomRSRLVHODHVWiGHQLGDVHJXQGRDKLHUDUTXLD
dos conhecimentos abordados nos exames do LPI.
(VWHOLYURHRXWURVTXHVHJXHPDHVSHFLFDomRGR/3,WHQGHPPXLWRDVHUVHPHlhantes, principalmente em seus ttulos de captulos, tpicos e subtpicos, porm
a semelhana acaba a quando voc, meu querido leitor, perceber a grande carga
de conhecimentos abordada aqui. E lembre-se que se trata de um livro sobre administrao do sistema Linux com uma organizao de tpicos no modelo LPI. Aqui
voc aprender os fundamentos e far a prtica dos comandos enquanto tambm
estuda, claro, para a FHUWLFDomRnos exames LPI.
Os exerccios presentes e comentados em todos os captulos foram testados nas
distribuies Debian 5, Fedora 12 e Red Hat Enterprise Linux 5.3, havendo sutis
GLIHUHQoDVGHFRPDQGRVHQWUHXPDHRXWUDSRUpPTXHDWHQWRVHVXDGLVWULEXLomR
no for uma dessas. E h tambm simulados em formato .pdf os quais podem ser
baixados livremente a partir da pgina da editora referente ao livro.
NOTA: A ordem dos conhecimentos apresentados aqui a mesma ordem em tpicos dos
exames LPI, mas no necessariamente a mesma ordem do nosso aprendizado. Sendo
assim, para que voc domine um assunto, voc no obrigado a ler os captulos anteriores, pois cada captulo apresenta o seu prprio domnio de contedo e voc poder ler e
reler qualquer captulo que queira dominar melhor antes de prosseguir para o prximo,
ou at mesmo para o anterior, porm, tambm possvel ir avanando no livro desde os
captulos iniciais.

viii

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

3DUDTXHPLQWHUHVVDHVVHOLYUR
Este livro foi desenvolvido tendo em mente os seguintes pensamentos:
1. Ensinar os princpios bsicos da administrao do sistema Linux e;
2. 6HUYLUFRPRPDWHULDOSUHSDUDWyULRSDUDTXHPLUiID]HURH[DPHGHFHUWLFDomR
117-102 do LPI.
7RGRVRVFRQKHFLPHQWRVDERUGDGRVQHVWHOLYURDSDUHFHPQRH[DPHFRGLFDGRSHOR
LPI, como o 117-102. Dessa forma, tudo que estiver relacionado parte administrativa do sistema, voc estar seguro (igualmente ao livro anterior, o 117-101). Estude bem este livro, pois voc encontrar questes nos exames que envolvem os
conhecimentos estudados aqui. Sendo assim, esse livro serve para qualquer usurio que esteja chegando ao sistema Linux e que deseja aprender a administrao do
sistema (recomendado para quem j leu o livro anterior, o 117-101), ou para proVVLRQDLVTXHHVWHMDPQDiUHDHTXHLUDPPHOKRUDUVHXVFRQKHFLPHQWRVDRPHVPR
tempo em que estudam para os exames LPI.
NOTA: Alguns assuntos iniciais no so abordados aqui por estarem no Manual do usurio
ou no Guia de instalao da sua distribuio, portanto, esto fora do escopo do livro.

6XPiULR
Prefcio
xix
Introduo .........................................................................................................xxi
O sistema Linux .................................................................................................xxi
$FHUWLFDomR/3, ............................................................................................. xxii
7LSRVGHFHUWLFDo}HV ...................................................................................................... xxiv
Conhecimentos abordados nos exames .......................................................................... xxiv
LPIC-1: EXAME 117-102

TPICO 105: SHELL SCRIPTS E ADMINISTRAO DE DADOS ........................... 3


105.1: PERSONALIZAR E USAR O AMBIENTE SHELL ......................................... 3
O conceito de shell e seu ambiente .................................................................. 3
O interpretador Bash ..........................................................................................................4
Interpretao de recursos pelo bash .................................................................................. 5
Variveis de ambiente/sistema .......................................................................................... 5
Aliases e funes do shell....................................................................................................6
2VDUTXLYRVGHFRQJXUDomR ............................................................................................. 10
105.2: EDITAR E ESCREVER SHELLS SCRIPTS SIMPLES ..................................14
Programando com shell scripts ......................................................................14
A importncia dos shell scripts ........................................................................................ 14
Pequenos exemplos de outros shell scripts ...................................................................... 15
Regras iniciais para escrever e executar um shell script .................................................. 16
Como encerrar/sair corretamente um shell script........................................................... 17
Comandos internos para shell script ................................................................................20
Argumentos de linhas do comando ..................................................................................20
Trabalhando com variveis...............................................................................................22
Como declarar e usar variveis ...................................................................................22
Variveis para/de usurio ...........................................................................................25
Variveis do shell ........................................................................................................27
Variveis somente de leitura (read only) do shell ......................................................28
Variveis globais e variveis locais .............................................................................28
Variveis e substituies .............................................................................................30
Interao com o usurio ................................................................................................... 31
Trabalhando com operadores ...........................................................................................32
Estruturas de controle ......................................................................................................33
Comandos de repetio/lao ......................................................................................33
Usando for ...................................................................................................................34
Usando while ...............................................................................................................35
Usando until ................................................................................................................35
Usando select ..............................................................................................................36
Usando break, continue, exit e return ........................................................................ 37
Comandos de tomadas de deciso ..............................................................................40
Usando if simples ........................................................................................................ 41
Usando if/else ............................................................................................................. 41
Usando if/elif/else ......................................................................................................42
Usando test..................................................................................................................43
Usando o case ..............................................................................................................44
Criando funes ................................................................................................................45
105.3: ADMINISTRAO DE DADOS SQL .......................................................... 49
Introduo linguagem SQL .................................................................... 49

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

Divises da SQL ................................................................................................................50


O que so bancos de dados? .............................................................................................50
Instalao dos pacotes ...................................................................................................... 51
Inicializao do servio .....................................................................................................52
Como passar comandos ao servidor .................................................................................53
Gerenciamento/manipulao de contas no servidor .......................................................56
Conta de usurio administrativo ................................................................................ 57
Conta de usurio comum ............................................................................................59
Como criar usurios ....................................................................................................60
Como atribuir/alterar senhas de usurios .................................................................62
Como listar usurios ...................................................................................................63
Como renomear usurios ............................................................................................63
Como remover usurios ..............................................................................................64
Usando privilgios ......................................................................................................65
Como aplicar privilgios para usurios .....................................................................66
Aplicando privilgio em nvel global ....................................................................67
Aplicando privilgio em nvel de banco de dados ...............................................68
Aplicando privilgio em nvel de tabelas ..............................................................68
Aplicando privilgio em nvel de colunas .............................................................69
Como visualizar privilgios .........................................................................................70
Como remover privilgios para usurios ................................................................... 71
Removendo privilgio do nvel global .................................................................. 71
Removendo privilgio do nvel de banco de dados .............................................. 72
Removendo privilgio do nvel de tabelas ............................................................ 72
Removendo privilgio do nvel de colunas ........................................................... 72
Gerenciamento/manipulao de banco de dados ........................................................... 72
Como criar um banco de dados? ................................................................................ 75
Como listar bancos de dados? ....................................................................................76
Como usar/abrir um banco de dados? ......................................................................76
Como renomear um banco de dados? .......................................................................76
Como remover um banco de dados? .......................................................................... 77
Gerenciamento/manipulao de tabelas e colunas.................................................... 77
Como criar tabelas e colunas ......................................................................................78
Como listar tabelas e colunas ..................................................................................... 81
Como renomear tabelas e colunas ..............................................................................82
Como remover tabelas e colunas ................................................................................83
Gerenciamento/manipulao de dados ..........................................................................84
Como inserir dados .....................................................................................................84
Como importar para inserir dados .............................................................................87
Como consultar dados ................................................................................................88
Como alterar/atualizar dados .....................................................................................95
Como remover dados ..................................................................................................96
TPICO 106: INTERFACES DE USURIOS E DESKTOPS................................... 99
106.1: INSTALAR E CONFIGURAR O X11 ........................................................... 99
Parte cliente e servidora do servidor X.......................................................... 99
O protocolo X ..................................................................................................................100
,QVWDODQGRHFRQJXUDQGRXPVHUYLGRU;...................................................................... 103
&RPDQGRVHDUTXLYRVGHFRQJXUDomR ........................................................................... 105
'HVPHPEUDQGRRDUTXLYR;)&RQJRX[RUJFRQI .................................................108
O servidor X e o Framebuffer .......................................................................................... 111
Iniciando o X ....................................................................................................................112
Fontes True Type para o servidor X ................................................................................115

Sumrio

xi

Instalao manual ......................................................................................................116


Outra forma mais simples de instalao manual ......................................................117
Instalao automtica pelo Gnome e KDE ................................................................117
Usando um servidor de fontes ...................................................................................118
A varivel DISPLAY e as conexes remotas usando clientes X ..................................... 120
106.2: CONFIGURAR O GERENCIADOR DE LOGIN GRFICO .......................... 125
Os gerenciadores de display ......................................................................... 125
O XDM ............................................................................................................................ 125
XDM como padro .................................................................................................... 126
$UTXLYRVGHFRQJXUDomR .................................................................................... 126
Mudando a cor do fundo ..................................................................................... 127
&RQJXUDQGRRDUTXLYRGHFRQWUROH ................................................................... 127
Alterando o tamanho e a posio ........................................................................ 129
O GDM ............................................................................................................................ 130
GDM como padro .............................................................................................. 130
$UTXLYRVGHFRQJXUDomR .....................................................................................131
O KDM ............................................................................................................................ 137
KDM como padro .............................................................................................. 138
$UTXLYRVGHFRQJXUDomR .................................................................................... 139
Os comandos startx e xinit ...................................................................................141
106.3: ACESSIBILIDADE .................................................................................. 143
Ativamento de recursos de acessibilidade ....................................................143
TPICO 107: TAREFAS ADMINISTRATIVAS..................................................... 147
107.1: CONTAS/GRUPOS NO SISTEMA ............................................................. 147
Gerenciando usurios .................................................................................. 147
2VDUTXLYRVGHFRQJXUDomR ........................................................................................... 149
Adicionando/editando/removendo usurios ..................................................... 154
8WLOLWiULRVGRPRGRWH[WRHGRPRGRJUiFR .................................................................. 166
Gerenciando senhas de usurios .................................................................................... 166
2VDUTXLYRVGHFRQJXUDomR ..................................................................................... 166
Adicionando/editando/removendo senhas de usurios .......................................... 167
Gerenciando grupos ................................................................................ 172
2VDUTXLYRVGHFRQJXUDomR ........................................................................................... 173
Adicionando/editando/removendo grupos ....................................................................175
8WLOLWiULRVGRPRGRWH[WRHGRPRGRJUiFR .................................................................. 179
Gerenciando senhas de grupos ....................................................................................... 179
2VDUTXLYRVGHFRQJXUDomR ..................................................................................... 179
Adicionando/editando/removendo senhas de grupos.............................................180
107.2: TAREFAS ADMINISTRATIVAS DE SEGURANA ....................................185
O agendamento ............................................................................................185
Agendamento usando cron...........................................................................185
Instalao dos pacotes .................................................................................................... 186
Inicializao do servio ................................................................................................... 186
Implementando segurana ............................................................................................. 187
$UTXLYRVHGLUHWyULRVGHFRQJXUDomR ............................................................................188
A linha de comandos na tabela de agendamentos (crontab) ......................................... 190
Agendamentos envolvendo horas e minutos:..................................................... 194
Agendamentos envolvendo dia do ms, ms e dia da semana:.......................... 195
Agendando comandos (tarefas) ...................................................................................... 195
Adicionando tarefas diretamente ............................................................................. 195

xii

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

$GLFLRQDQGRWDUHIDVLQWHUDWLYDPHQWHXVDQGRRPRGRJUiFR ................................. 197


Visualizando tarefas .................................................................................................. 197
Removendo tarefas ...................................................................................................198
([HPSORV~WHLVGHDJHQGDPHQWRXVDQGRFURQWDE.......................................................... 199
Agendamento usando anacron .....................................................................199
Instalao dos pacotes ................................................................................................... 200
Inicializao do servio .................................................................................................. 200
Implementando segurana ............................................................................................. 201
(re)Agendando comandos (tarefas)................................................................................ 201
Agendamento usando at .............................................................................. 202
Instalao dos pacotes ....................................................................................................202
Inicializao do servio ...................................................................................................203
Implementando segurana .............................................................................................204
Agendando comandos (tarefas) ......................................................................................205
Adicionando tarefas diretamente .............................................................................206
Adicionando tarefas interativamente ...................................................................... 208
$GLFLRQDQGRWDUHIDV DSOLFDWLYRV GHPRGRWH[WRHPRGRJUiFR ............................209
Visualizando tarefas ..................................................................................................210
Removendo tarefas ....................................................................................................211
([HPSORV~WHLVGHDJHQGDPHQWRXVDQGRDW ..............................................................211
107.3: LOCALIZAO E INTERNACIONALIZAO ..........................................214
&RQJXUDomRGHIXVRKRUiULR .......................................................................214
&RQJXUDomRGHORFDOL]DomRHYDULiYHLV ........................................................ 217
Converso de arquivos ................................................................................. 219
TPICO 108: SERVIOS ESSENCIAIS DO SISTEMA ......................................... 221
108.1: MANUTENO DA DATA E HORA DO SISTEMA .................................... 221
Ajustando a hora do sistema ........................................................................ 221
8VDQGRRPRGRJUiFR ...................................................................................................223
Usando o modo texto (linha de comando) .....................................................................224
O comando date ........................................................................................................224
O comando hwclock/clock ........................................................................................227
O comando rdate .......................................................................................................230
Servidor local NTS com rdate ................................................................................... 231
O servio NTP Network Time Protocol................................................. 232
O conceito Stratum Server ........................................................................................233
Consultas a servidores externos/internos ................................................................234
&RQJXUDQGRRVHUYLGRU173LQWHUQR ......................................................................236
Instalao dos pacotes ..............................................................................................236
Inicializao do servio .............................................................................................237
$UTXLYRVHGLUHWyULRVGHFRQJXUDomR ......................................................................238
&RQJXUDQGRRFOLHQWH173LQWHUQR .............................................................................. 241
O comando ntpq........................................................................................................242
O comando ntpd........................................................................................................244
O comando ntpdc ......................................................................................................245
O comando ntpdate ...................................................................................................247
O horrio de vero ..........................................................................................................249
O horrio GMT e o horrio UTC ...............................................................................250
Ajustando o horrio de vero....................................................................................250
108.2: SISTEMA DE LOGGING ..........................................................................253
9LVXDOL]DQGRORJVGRVLVWHPD........................................................................253
Principais arquivos de log...............................................................................................254

Sumrio

xiii

Rotacionando logs do sistema ..................................................................... 259


2DUTXLYRGHFRQJXUDomR ..............................................................................................260
'LUHWLYDVGHFRQJXUDomR .........................................................................................263
Rotao padro ...............................................................................................................265
Rotao personalizada ....................................................................................................266
Gerenciando logs do sistema ........................................................................267
2DUTXLYRGHFRQJXUDomR ..............................................................................................269
Entendendo as mensagens de logs ................................................................................. 275
Os utilitrios de log do sistema ...................................................................................... 277
Logrotate ................................................................................................................... 277
Logger ........................................................................................................................278
Logcheck e Logwatch ............................................................................................... 280
watch .........................................................................................................................283
108.3: FUNDAMENTOS DE MTA (MAIL TRANSFER AGENT) .......................... 285
Servidores/clientes de email ....................................................................... 285
'HQLo}HVLPSRUWDQWHV ...................................................................................................287
MUA Mail User Agent ...........................................................................................287
MTA Mail Transfer Agent ..................................................................................... 288
MRA Mail Retrieval Agent (cliente POP/IMAP) ................................................. 288
LDA Local Delivery Agent .....................................................................................289
Usando o Sendmail .........................................................................................................289
Instalao dos pacotes ..............................................................................................290
Inicializao do servio .............................................................................................290
2VDUTXLYRVSULQFLSDLVGHFRQJXUDomR.................................................................... 291
2VDUTXLYRVVHFXQGiULRVGHFRQJXUDomR ................................................................292
Os comandos mail e mailx ........................................................................................295
Implementando segurana bsica no servidor.........................................................299
108.4: GERENCIAMENTO DE IMPRESSORAS E IMPRESSO ......................... 304
O servidor de impresso.............................................................................. 304
Instalao dos pacotes ....................................................................................................304
Inicializao do servio ...................................................................................................305
$UTXLYRVHGLUHWyULRVGHFRQJXUDomR ............................................................................305
O arquivo cupsd.conf ................................................................................................306
Arquivo de registro de impressora .......................................................................... 308
Arquivos de log do servidor ..................................................................................... 308
Instalando impressoras ..................................................................................................309
Topologias de impressora locais e de rede ...............................................................310
Instalando impressoras via navegador ......................................................................311
Instalando impressoras via utilitrio do sistema ..................................................... 313
Filtros de Impresso ....................................................................................................... 314
APSFilter .................................................................................................................. 314
Foomatic ................................................................................................................... 314
Ghost Script............................................................................................................... 315

xiv

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

Magic Filter ............................................................................................................... 315


&RPDQGRVGHODGHLPSUHVVmR ...................................................................................... 316
Usando o comando lpc .............................................................................................. 316
Usando o comando lpq ............................................................................................. 317
Usando o comando lprm........................................................................................... 319
Usando o comando lpmove ......................................................................................320
Comandos de impresso .................................................................................................320
O arquivo /etc/printcap ............................................................................................322
Usando porta da impressora.....................................................................................323
Usando o comando lpr ..............................................................................................323
Usando o comando lp ...............................................................................................325
Usando o comando mpage........................................................................................327
8VDQGRRPRGRJUiFR FRPDQGRJV ......................................................................328
8VDQGRRPRGRJUiFR FDL[DGHGLiORJRGHLPSUHVVmR .........................................329
Comandos de consultas ..................................................................................................330
Usando o comando lpstat .........................................................................................330
Usando o comando lpinfo .........................................................................................333
Comandos administrativos .............................................................................................334
Usando o comando lpadmin .....................................................................................334
Usando o comando lppasswd ...................................................................................337
TPICO 109: FUNDAMENTOS DE REDES MODELO TCP/IP............................ 339
109.1: FUNDAMENTOS DOS PROTOCOLOS DE INTERNET ............................. 339
Introduo .................................................................................................. 339
O modelo OSI .............................................................................................. 340
O modelo TCP/IP..........................................................................................341
Endereamento IP....................................................................................... 343
Entidades de alocao de endereos ..............................................................................345
O IPv4 e IPV6 (IPng) ......................................................................................................345
Endereamento invlido/privado (intranet)..................................................................346
(QGHUHoDPHQWRYiOLGRS~EOLFR ,QWHUQHW .....................................................................349
Classes de endereamento IP (antes e depois)...............................................................349
Notao padro ou Classfull (antes) .........................................................................350
Notao CIDR ou Classless (depois) ........................................................................352
Notao VLSM (depois) ............................................................................................355
Os quatro octetos ......................................................................................................360
Classe A ..................................................................................................................... 361
Classe B .....................................................................................................................362
Classe C .....................................................................................................................363
Classe D e Classe E ....................................................................................................364
Endereamentos: rede, mscara e Broadcast ................................................................365
Endereamento de rede ............................................................................................365
Mscara de rede/sub-rede ........................................................................................367
Broadcast...................................................................................................................370

Sumrio

xv

Usando sub-redes .....................................................................................................372


A rota padro .................................................................................................................. 377
Protocolos de comunicao em rede ............................................................................. 380
Portas TCP e UDP ...........................................................................................................384
109.2: CONFIGURAO BSICA DA REDE ....................................................... 391
Introduo ao ambiente de rede Linux ........................................................ 392
&RQJXUDomREiVLFDGDLQWHUIDFHGHUHGH .......................................................................392
8VDQGRXWLOLWiULRVGRPRGRWH[WRHGRPRGRJUiFR ...............................................393
&RQJXUDomRPDQXDOGDLQWHUIDFHGHUHGH ..............................................................394
&RQJXUDomRPDQXDOGDUHGH ..................................................................................395
&RQJXUDomRGDUHGHFRPLIFRQJ .......................................................................... 400
&RQJXUDomRGDUHGHFRPLS ....................................................................................403
Adicionando uma rota ............................................................................................. 404
109.3: SOLUES PARA PROBLEMAS DE REDES SIMPLES ........................... 408
O Troubleshooting da rede .......................................................................... 409
Problemas com a parte hardware, a interface de rede ................................................... 410
3UREOHPDVFRPDFRQJXUDomRGDLQWHUIDFHGDUHGHHGDUHGH ...................................... 410
Problemas com a comunicao na rede ..........................................................................411
Problemas com a rota padro ......................................................................................... 412
Problemas com a rota na rede ........................................................................................ 412
109.4: CONFIGURAO DO CLIENTE DNS....................................................... 413
Introduo ao DNS .......................................................................................414
O funcionamento e os tipos de DNS ............................................................................... 415
A rvore (estrutura) do DNS .......................................................................................... 416
&RQJXUDQGRXPFOLHQWH .............................................................................418
Comandos de consulta .................................................................................................... 419
O comando ping ........................................................................................................ 419
O comando nslookup ................................................................................................ 421
O comando host ........................................................................................................423
O comando dig ..........................................................................................................426
O comando whois ......................................................................................................429
TPICO 110: SEGURANA ................................................................................ 431
110.1: TAREFAS ADMINISTRATIVAS DE SEGURANA.....................................431
Ajustes de permisses .................................................................................. 431
Contas de usurios ...................................................................................... 433
Conta administrativa....................................................................................437
Limitao de recursos ................................................................................. 438
O comando ulimit ...........................................................................................................439
Controlando terminais virtuais (console, tty e pts) .......................................................443
Controlando os servios r*..............................................................................................444
Proteo bsica com PAM ........................................................................... 445
Funcionamento do PAM .................................................................................................448

xvi

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

Classes e controles ..........................................................................................................449


Aplicaes sem suporte ao PAM .....................................................................................454
Portas de servios no sistema ...................................................................... 456
Usando o nmap/xnamp/zenmap ................................................................................... 457
Usando o netstat .............................................................................................................464
Usando o lsof/fuser.........................................................................................................466
Delegao e controle com su, sudo e sudoers ...............................................473
2DUTXLYRVGHFRQJXUDomR ............................................................................................ 475
A diretiva Host_Alias ou Host_Spec .......................................................................479
A diretiva User_Alias ou User_Spec ........................................................................479
A diretiva Cmd_Alias ou Cmd_Spec ........................................................................481
A diretiva Runas_Alias ou Runas_Spec ..................................................................482
A diretiva Defaults ....................................................................................................483
A diretiva para usurio..............................................................................................483
A diretiva para grupos...............................................................................................485
Usando o comando sudo.................................................................................................486
Usando o comando su .................................................................................................... 490
110.2: CONFIGURANDO SEGURANA NA MQUINA ...................................... 494
Senhas shadow ............................................................................................ 494
Desligando servios de rede no necessrios .............................................. 495
8VDQGRXWLOLWiULRVPRGRWH[WRHPRGRJUiFR ...............................................................495
Usando a linha de comando ...........................................................................................496
O Inetd e o Xinetd ...........................................................................................................498
Formato do arquivo /etc/inted.conf .........................................................................498
Formato do arquivo /etc/xinted.conf ...................................................................... 500
TCP Wrappers ............................................................................................. 503
Instalao dos pacotes ....................................................................................................504
&RQJXUDQGR7&3ZUDSSHUV ..........................................................................................504
110.3: SEGURANA DE DADOS COM CRIPTOGRAFIA......................................510
Servio cliente/servidor OpenSSH ...............................................................510
2SHQ66+SURWRFRORVHFULSWRJUDD ................................................................................511
Chaves de computador ................................................................................................... 512
Chaves de usurio ........................................................................................................... 514
Criando chaves ................................................................................................................ 515
Instalao dos pacotes .................................................................................................... 519
Inicializao do servio ...................................................................................................520
Trabalhando em modo texto ..........................................................................................520
Usando o comando ssh ............................................................................................. 521
Conexes com ssh .....................................................................................................522
Executando aplicao texto remota com ssh............................................................523
([HFXWDQGRDSOLFDomRJUiFDUHPRWDFRPVVK .........................................................523
Transferncias locais e remotas com ssh..................................................................524
Usando ssh sem senha ..............................................................................................525

O lado cliente:......................................................................................................525
Do lado servidor: ................................................................................................. 527
Usando o comando scp .............................................................................................527
Usando o comando sftp ............................................................................................529
7UDEDOKDQGRHPPRGRJUiFR........................................................................................532
Utilitrios de menus (Gnome e KDE) .......................................................................532
Usando o Nautilus (Gnome) .....................................................................................532
Usando o Konqueror (KDE) .....................................................................................534
Usando o Putty (Windows e Linux) ..........................................................................535
Usando clientes ssh em ambiente Windows ............................................................536
Implementando segurana .......................................................................................536
Bloqueio simples de login por arquivo .....................................................................536
Bloqueio simples de usurios, grupos e mquinas .................................................. 537
Bloqueio simples de login por mdulos PAM ..........................................................538
Montagens seguras com SSHFS ...............................................................................543
Usando ssh sem senha com ssh-agent e ssh-add .....................................................545
Como funciona o SSH-Agent? ............................................................................546
8VDQGRDSOLFDo}HVFRPW~QHLV66+ ..........................................................................550
Anlise de segurana.................................................................................................553
&ULSWRJUDD ..................................................................................................556
7LSRVGHFULSWRJUDDV .....................................................................................................559
&ULSWRJUDDVLPpWULFD ...............................................................................................559
&ULSWRJUDDDVVLPpWULFD ............................................................................................559
$VVLQDWXUDGLJLWDOH&HUWLFDGRGLJLWDO ...........................................................................560
&ULSWRJUDDFRP*QX3* ................................................................................................562
Instalao dos pacotes ..............................................................................................562
8VDQGRRPRGRJUiFR .............................................................................................563
Usando a linha de comando......................................................................................563
*QX3*FRPFULSWRJUDDVLPpWULFD ...........................................................................565
*QX3*FRPFULSWRJUDDDVVLPpWULFD ........................................................................566
Criando o par de chaves ............................................................................................567
Exportando o par de chaves......................................................................................569
Importando o par de chaves ......................................................................................571
(QFULSWDUGHFULSWDUXWLOL]DQGRDFKDYHS~EOLFD ....................................................... 573
Remoo de chaves ...................................................................................................574
Edio de chaves com gpg......................................................................................... 575
Assinatura em documentos com gpg ........................................................................ 576
BIBLIOGRAFIA .................................................................................................579

3UHIiFLR
Ol meu querido leitor! com prazer que lhe apresento este livro cujo objetivo
ensinar os fundamentos da administrao do sistema operacional Linux e tambm
SUHSDUiORSDUDRSULPHLURH[DPHGHFHUWLFDomR/3,/LQX[3URIHVVLRQDO,QVWLtute, o exame 117-101. Assim que voc conseguir xito nesse exame, h o segundo
livro da srie, o qual voltado para o exame 117-102, e que tambm foi desenvolvido para complementar este primeiro livro. Dessa forma, com ambos os livros em
PmRVYRFrHVWDUiDSWRDGDULQtFLRDVXDFDUUHLUDGHFHUWLFDomRLQWHUQDFLRQDOHP
VLVWHPDRSHUDFLRQDO/LQX[SRLVDFHUWLFDomR/3,HVWiHQWUHDVGH]PDLVSURFXUDGDVSRUSURVVLRQDLVQDiUHDGHWHFQRORJLDGDLQIRUPDomR
(VWHOLYURIRLHODERUDGRSDUDVHURPDLVVLPSOHVSRVVtYHOVHPVDFULFDUDTXLRVVHXV
ensinamentos, porm os usurios que j conhecem o bsico do sistema operacional
Linux tero mais facilidade e podero treinar os comandos para estudar para o
UHIHULGRH[DPHGHFHUWLFDomRQRFRQWH[WRGDDGPLQLVWUDomR0DVSDUDDTXHOHVTXH
no o conhecem, este livro trs uma nova realidade em prticas de comandos nesse
maravilhoso sistema operacional.
Todos os comandos so simples de serem executados, todos so explicados, e foram elaborados para que o leitor novato, na medida em que for aprendendo, possa
ir melhorando e compreendendo como funciona a linha de comando do Linux. O
sistema Linux extremamente poderoso e vasto, e praticamente impossvel escrever um livro que consiga abord-lo por completo. So realmente muitos comandos e assuntos a serem aprendidos, mas o livro aborda os principais assuntos que
um futuro administrador de sistemas Linux dever possuir.
Hoje existem vrios livros sobre o sistema Linux no mercado, e felizmente quase
todos so bons dentro de seus propsitos literrios e acadmicos. Para aprender
o sistema Linux, inicie pelo bsico. Como este livro foi escrito para voc que sabe
pouco, muito pouco ou quase nada sobre o sistema, voc estar cada vez mais seguro sobre o seu conhecimento em Linux aps ir avanando em cada captulo.
A grande vantagem desse livro que ao mesmo tempo em que voc vai aprendendo
o conceito de administrao, poder tambm estudar para os exames do instituto
/3,(VVHLQVWLWXWRpUHVSRQViYHOSHORVH[DPHVGHFHUWLFDomR/3,&QtYHLV,,,H,,,
$VFHUWLFDo}HV/3,HVWmRHQWUHDVPDLVSURFXUDGDVHFRPHVVHOLYURYRFrHVWDUi
DSWRDUHDOL]DURH[DPH/3,HFDUWRWDOPHQWHVHJXURQDVTXHVW}HVTXHHQvolvem a administrao do sistema, e na sequncia, pode se preparar para o exame
117-102 com o segundo livro da srie.
Nessa edio, todos os cuidados foram tomados para que dentro das limitaes
GRSURMHWRGROLYURIRVVHOKHSDVVDGRRPi[LPRGHFRQWH~GR1RHQWDQWRVDEHPRV
TXHFRPXPD~QLFDHGLomRQmRpSRVVtYHODGLVSRQLELOLGDGHGHWRGRRFRQWH~GRGRV
escopos dos exames LPI, e tambm da administrao do sistema Linux, o que torna
necessrio a leitura de vrias outras fontes de referncia.
As nossas realizaes esto proporcionalmente relacionadas aos nossos esforos
SDUDFRQVHJXLODV6HMDEHPYLQGRDR/,18;)XQGDPHQWRV3UiWLFD &HUWLFDo LPI Exame-117-101, um livro escrito para voc decolar em sua carreira de
FHUWLFDomR/LQX[Adilson Rodrigues Bonan
O AUTOR

Introduo
2VLVWHPD/LQX[
O Linux um sistema operacional, criado em 1991 por Linus Torvalds na universidade de Helsinque na Finlndia. um sistema operacional de cdigo aberto distribudo gratuitamente pela Internet, ento, praticamente todo mundo pode ter em
mos os cdigos-fontes do sistema operacional Linux. Seu cdigo-fonte distribudo como Free Software 6RIWZDUH/LYUH, o aviso de Copyright do Kernel que
RQ~FOHRGRVLVWHPDIHLWRSRU/LQXVHTXHGHVFUHYHGHWDOKDGDPHQWHLVVRSRLVDWp
mesmo ele est proibido de fazer a comercializao do sistema.
Tudo comeou mais ou menos assim: 2OiSDUDWRGRVTXHHVWmRXVDQGRR0LQL[
HVWRXID]HQGRXPVLVWHPD OLYUH RSHUDFLRQDO FRPRXPSDVVDWHPSRSRLVQmR
VHUiJUDQGHHSURVVLRQDOFRPRR*18 SDUDH$7FORQHVPS.: Linus
Torvalds.
Foi com essa mensagem que tudo comeou no dia 3 de julho de 1991. /LQX[7RUYDOds, estudante de Cincia da Computao da Universidade de Helsinque, comunicava
RFLDOPHQWHjFRPXQLGDGHGHGHVHQYROYHGRUHVGRnewsgroup comp.os.minix que estava trabalhando em um projeto em Minix, um sistema operacional baseado em Unix.
Naquela ocasio, Linus buscava a indicao de um documento das regras POSIX mais
UHFHQWHV2TXHQmRVLJQLFDQHFHVVDULDPHQWHTXHR/LQX[QDVFHXQDTXHOHGLD
H uma outra data, 25 de agosto de 1991, em que Linus divulga no mesmo newsgroup que est fazendo um sistema operacional propriamente dito, e o mais importante de tudo: livre$VVLPFRXPDLVH[SOtFLWRSDUDRS~EOLFRDLQWHQomRGHOHHP
tornar sua obra disponvel para todos que estivessem interessados.

)LJXUD,, )LJXUD, e )LJXUD,Linus Benedicr Torvalds, Andrew Tannenbaum e Tux.


Linus considerado o pai do Linux; o Professor Tannenbaum teve uma grande contribuio com a criao
do sistema operacional Minix, a partir do qual Linus Torvalds, com o tempo, desenvolveu o Linux; e o simptico pinguinzinho o mascote Tux.

Linus Torvalds iniciou o kernel como um projeto particular, inspirado em seu interesse no Minix, um pequeno sistema UNIX desenvolvido por Andrew Tannenbaum com o propsito de utiliz-lo no meio acadmico. Era permitido que qualTXHUSHVVRDHVWXGDVVHRFyGLJRGR0LQL[SRUpPQmRSRGHULDVHUXWLOL]DGRSDUDQV

xxii

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

comerciais. Lembre-se, o Linux o kernel do sistema operacional, criado em 1991


SRU/LQXV7RUYDOGVHDGRWDD*3/XPDOLFHQoDOLYUHRTXHVLJQLFDHQWUHRXWUDV
coisas, que todos os interessados podem us-lo e redistribu-lo sem nenhum tipo
de preocupao.
Isso quer dizer que no precisamos pagar nada para usar o Linux, que bom isso,
no? E no crime fazer cpias para instalar em outros computadores, melhor ainda, no? Ns, inclusive, incentivamos voc a fazer isso. O fato de ser um sistema de
cdigo aberto pode explicar a performance, estabilidade e velocidade em que novos
recursos so adicionados ao sistema.
Para ser bem radical, para que seja possvel rodar o sistema Linux preciso, no
mnimo, um computador 586 MMX com 64 MB de memria e 60 MB disponveis
em seu disco rgido para uma instalao bsica e funcional; verdade mesmo, com
o tempo voc descobrir como isso maravilhoso. Podemos recuperar mquinas
que praticamente estavam fadadas ao ferro velho. Agora tente instalar o outro
nessas mquinas. Se voc for bem radical mesmo, poder usar o sistema Linux em
um ou dois disquetes e nem vai precisar de disco rgido, pois poder fazer todo o
VHXWUDEDOKRYLDUHGHHHPPRGRJUiFR
E o nome Linux, de onde veio?
Aqui tambm existem vrias lendas, mas acredito que todas tenham um certo
fundamento. Dizem as boas lnguas que Linux pode derivar das seguintes situaes
quando Linus Torvalds estava sem (ou com) inspirao para projetar um nome
para seu sistema operacional:
 Linux = Linus + Minix, que era o sistema operacional que ele estava usando na
poca;
 Linux = Linus + Unix, pois Linus Torvalds usava de certa forma um Unix;
 Linux = /LQX[,V1RW8QL[TXHVLJQLFDTXHR/LQX[pXPDIRUPDGH8QL[PDV
no o Unix, pois seno seria plgio. Digamos que ele seja um Unix Livre;
 Linux = Linus + Anagrama da palavra Unix, sendo que um deles inux.
NOTA: O Linux NO UNIX e nem mesmo um clone, ele um tipo de UNIX, pois o UNIX
uma marca registrada. Ento, por conseguinte, todos os sistemas baseados nesses cdigos so chamados, de uma forma geral, de UNIX ou UNIX Like. O Linux, de Linus Torvalds,
no contm nenhuma linha de cdigo do UNIX. Mas o Linux foi escrito para ser de acordo
com o padro API POSIX (Portable Operating System Interface), o mesmo do UNIX (uma
espcie de ISO ou ABNT uma padronizao que foi criada devido aos vrios tipos de
UNIX, e pelo fato de que no existia um padro entre os vrios fornecedores).

$FHUWLFDomR/3,
O que o LPI?
/LQX[3URIHVVLRQDO,QVWLWXWHou LPI uma organizao no-governamental (ONG)
VHPQVOXFUDWLYRVIXQGDGRQR&DQDGiHPHTXHWHPFRPRPLVVmRSULQFLSDO
FULDUHPDQWHUSURJUDPDVGHFHUWLFDomRSURVVLRQDOHPVLVWHPDV*18/LQX[TXH
DWHVWHPRVFRQKHFLPHQWRVGHSURVVLRQDLVHPGLYHUVDViUHDVGHVWHVLVWHPDRSHUD-

,QWURGXomR

xxiii

cional. O Instituto LPI mantido por vrias companhias de renome mundial, tais
como IBM, Novell, SGI, SUSE Linux, HP, MandrakeSoft, Intel, Linux Journal e
outras. Alm destes patrocinadores, o LPI conta com a organizao e apoio de toda
a comunidade de Software /LYUHmundial.
&RPTXDOGLVWULEXLomR/LQX[R/3,FHUWLFDHWUDEDOKD"
$FHUWLFDomR/3,pLQGHSHQGHQWHGHGLVWULEXLomRVHQGRGHVHQYROYLGDSDUDFHUWLFDURVFRQKHFLPHQWRVGRSURVVLRQDOQDVPDLVFRQKHFLGDVGLVWULEXLo}HV&RPLVVR
RSURVVLRQDOSRVVXLQHXWUDOLGDGHQmRFDQGRDWUHODGRDXPD~QLFDGLVWULEXLomRH
DPSOLDVHXVFRQKHFLPHQWRVHTXDOLFDo}HV
1RHQWDQWRHPVXDVSURYDVGHFHUWLFDomRVmRFREUDGRVFRQKHFLPHQWRGHJHUHQciamento de pacotes .rpm atravs dos comandos rmp e yum (Red Hat e similares)
e pacotes .deb atravs dos comandos apt-get, dpkg (Debian e similares). ExFHWRSRUHVVHGHWDOKHRVFRQKHFLPHQWRVDIHULGRVSHODFHUWLFDomR/3,VmRDTXHOHV
QHFHVViULRVDRVSURVVLRQDLVSDUDRSHUDUHDGPLQLVWUDUTXDLVTXHUGLVWULEXLo}HV
Hoje, os exames LPI podem ser aplicados em vrios pases e nas datas em que
so divulgadas na pgina do instituto, porm, em algumas empresas que aplicam
SURYDVGHFHUWLFDomRYRFrSRGHUiDJHQGDURVH[DPHVGHFHUWLFDomRWmRORJRDFKH
que esteja preparado.
NOTA: Com relao aos exames introdutrios do instituto, a partir de abril/2009 as provas
101 e 102 do LPIC-1 (primeiro nvel) e 201 e 202 do LPIC-2 (segundo nvel) tiveram seus
REMHWLYRVDWXDOL]DGRVSDUDUHHWLUGLUHWDPHQWHQRVDVVXQWRVFREUDGRVQRVQRYRVH[DPHV
Alguns tpicos saram, ou novos entraram, e outros mudaram de lugar. A pontuao da
prova tambm mudou. Ambas as provas apresentam peso 60, o que quer dizer que o leitor encontrar 60 (sessenta) questes em cada prova quando da realizao das mesmas
e, nesse livro, o referido peso dos tpicos informado, assim, voc, meu querido leitor,
saber exatamente quantas questes estaro nas provas 101/102 sobre um determinado
tpico.

)LJXUD,Pases parceiros do LPI.


$DGHVmRPXQGLDODRSURJUDPDGHFHUWLFDomR/3,pPXLWREHPYLQGDDRPXQGR/LQX[HWUiVPDLVUHFRQKHFLPHQWRDRVSURVVLRQDLVQHVVHFDPSR9HULTXHHPhttp://www.lpi.org/ para informaes mais atualizadas.

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

xxiv

7LSRVGHFHUWLFDo}HV
$&HUWLFDomRpRSURFHVVRSHORTXDOXPSURVVLRQDOpUHFRQKHFLGRSRUHPSUHVDV
na rea de hardware e/ou software HPVXDSURFLrQFLDHPXPGHWHUPLQDGRSURduto ou em um conjunto destes. Antes de poder fazer as provas preciso conseguir
o LPI ID (/LQX[3URIHVVLRQDO,QVWLWXWH,GHQWLFDWLRQ TXHpRVHXQ~PHURGHLGHQWLFDomRGHQWURGRVLVWHPDGR/3,(OHpXVDGRWRGDVDVYH]HVHPTXHRSURVVLRQDO
for prestar uma prova, ou para entrar em contato com o LPI.
$VFHUWLFDo}HVVmRGLYLGLGDVHPQtYHLVRVTXDLVVmRGHSHQGHQWHVXQVGRVRXWURV
(exceto o LPIC-1):
 /3,& QtYHO $GPLQLVWUDGRUQtYHOM~QLRU SURYDVHHPSDFRWHV'Hbian ou Red Hat);
 LPIC-2 (nvel 2) Administrador nvel pleno (provas 201 e 202);
 LPIC-3 (nvel 3) Administrador nvel snior (provas 301, 302, 303, 304, 305
e 306).
7DEHOD,4XDGURGHFODVVLFDomRGRVH[DPHV/3,
Cdigo

'HVFULomR

Level 1

Tem como objetivo formar o administrador de sistema Linux jnior, porm, exigem muitos conhecimentos gerais do sistema.

LPIC 117-101/102
Level 2
LPIC 117-201/202

Tem como objetivo formar o administrador de sistema Linux pleno exigindo muito mais que o primeiro exame. Para fazer esse exame, o primeiro LPIC 117-101
obrigatrio.

Level 3

O objetivo desse exame formar especialistas em sistema Linux. Os outros


exames so obrigatrios. O exame 301 (Core Exam) tem objetivos bsicos, o
LPIC 117-301, 302, 303, exame 302 (Mixed Environment) cobre questes mistas, o exame 303 (Security)
304, 305 e 306
cobre questes de segurana, o exame 304 (+LJK$YDLODELOLW\DQG9LUWXDOL]DWLRQ)
cobre alta disponibilidade e virtualizao, o exame 305 (Web and Intranet) e o
exame 306 (Mail and Messaging) cobrem sistema de email e mensagens.
1RWD $ FHUWLFDomR /3, HVWi HQWUH DV GH] PDLV UHTXLVLWDGDV PXQGLDOPHQWH GHYLGR j HQRUPH H[SDQVmR
FUHVFLPHQWRHDPDGXUHFLPHQWRHFRQDELOLGDGHGRVLVWHPD/LQX[&RPFHUWH]DYDOHDSHQDLQYHVWLUHPFHUWLFDo}HV/3,

&RQKHFLPHQWRVDERUGDGRVQRVH[DPHV
3DUDREWHUVXFHVVRQRVGRLVSULPHLURVH[DPHVSDUDDFHUWLFDomR/3,YRFrSUHFLsa de plenos conhecimentos nos tpicos abordados a seguir (tpicos atualizados a
partir de abril de 2009). Lembre-se que de vez em quando aparecem algumas questes puramente tericas nos exames, e ainda podem aparecer questes semelhantes entre os exames. A partir de abril de 2009 os exames LPI foram reformulados,
algumas questes saram, outras foram adicionadas, e umas mudaram at mesmo
de tpico e peso.
Tambm muito importante que voc conhea bem a linha de comandos do sistema Linux e seus principais argumentos/parmetros, pois isso essencial para um
ERPUHVXOWDGR6DEHUFRPRIXQFLRQDPRVDUTXLYRVGHFRQJXUDomRGHDOJXQVVHUvios/servidores tambm fundamental, alm do embasamento das camadas OSI
e TCP/IP quando do estudo da parte de networking (ambiente de rede).

,QWURGXomR

xxv

7DEHOD,4XDGURGHFODVVLFDomRGRVH[DPHV/3,SDUDDVpULH
LPIC-1
Nvel 1: LPIC 117-101 - (1 exame)
Nvel 1: LPIC 117-102 - (2 exame)
Tpico 101: ARQUITETURA DO SISTEMA
Tpico 105: SHELL SCRIPTS E
,GHQWLFDomRHFRQJXUDo}HVGH ADMINISTRAO DE DADOS
hardware
105.1: Personalizar e usar o ambiente
,QLFLDOL]DomR ERRW GRVLVWHPD shell
101.3: Alternar nveis, desligar e
105.2: Editar e escrever shells
reiniciar o sistema
scripts simples
$GPLQLVWUDomRGHGDGRV64/
Tpico 102: INSTALAO DO LINUX E
ADMINISTRAO DE PACOTES
Tpico 106: INTERFACES DE USURIOS E
'LPHQVLRQDUSDUWLo}HVGRGLVFR DESKTOPS
,QVWDODomRGRJHUHQFLDGRUGH
,QVWDODUHFRQJXUDUR;
boot
&RQJXUDURJHUHQFLDGRUGH
102.3: Gerenciamento de bibliotecas do ORJLQJUiFR
sistema
106.3: Acessibilidade
102.4: Gerenciamentos de pacotes DEB
102.5: Gerenciamentos de pacotes RPM
Tpico 107: TAREFAS ADMINISTRATIVAS
107.1: Contas/grupos no sistema
Tpico 103: COMANDOS GNU/LINUX & UNIX
107.2: Tarefas administrativas de
103.1: A linha de comandos
VHJXUDQoD
)OX[RGHWH[WRHXVRGHOWURV
/RFDOL]DomRH
103.3: Gerenciamento bsico de
LQWHUQDFLRQDOL]DomR
arquivos
103.4: Streams, Pipes e
Tpico 108: SERVIOS ESSENCIAIS DO
Redirecionadores
SISTEMA
103.5: Gerenciamento de processos
0DQXWHQomRGDGDWDHKRUDGR
103.6: Prioridades de processos
sistema
%XVFDVXVDQGRH[SUHVV}HV
108.2: Sistema de logging
regulares
108.3: Fundamentos de MTA (Mail
2SHUDo}HVEiVLFDVHPDUTXLYRV
Transfer Agent)
usando o editor VI
108.4: Gerenciamento de impressoras e
LPSUHVVmR
Tpico 104: DISPOSITIVOS, SISTEMAS DE
ARQUIVOS E FHS
Tpico 109: FUNDAMENTOS REDES MODELO
3DUWLo}HVHVLVWHPDVGH
TCP/IP
arquivos
109.1: Fundamentos dos protocolos de
104.2: Manter integridade do sistema
Internet
de arquivos
&RQJXUDomREiVLFDGDUHGH
104.3: Pontos de montagens em sistema
6ROXo}HVSDUDSUREOHPDVGH
de arquivos
redes simples
104.4: Administrar cotas de disco
&RQJXUDomRGRFOLHQWH'16
3HUPLVV}HVHSURSULHGDGHGH
arquivos
Tpico 110: SEGURANA
104.6: Criar e alterar links
110.1: Tarefas administrativas de
simblicos e fsicos
VHJXUDQoD
104.7: Encontrar arquivos e sua
&RQJXUDQGRVHJXUDQoDQD
ORFDOL]DomRFRUUHWD
mquina
6HJXUDQoDGHGDGRVFRP
FULSWRJUDD
DICA: Se voc observar, esto disponibilizados aqui os quatro primeiros exames, ou seja,
os dois nveis os quais compreendem os exames 101/102 e 201/202. Esse livro sobre
administrao foi idealizado para se encaixar dentro desses tpicos, no todos, pois um
livro sobre administrao. E se um tpico no for encontrado no livro provavelmente ele
ser um tpico do nvel 2, sendo portanto encontrado posteriormente em outro livro.

xxvi

/,18;)XQGDPHQWRV3UiWLFD &HUWLFDomR/3,([DPH

7DEHOD,4XDGURGHFODVVLFDomRGRVH[DPHV/3,SDUDDVpULH
LPIC-2
Nvel 2: LPIC 117-201 - (1 exame)
Nvel 2: LPIC 117-202 - (2 exame)
Tpico 201: O KERNEL DO LINUX
Tpico 208: SERVIDOR WEB
201.1: Componentes do kernel
&RQJXUDQGRXPVHUYLGRU:HE
201.2: Compilando um kernel
0DQXWHQomRGHXPVHUYLGRU:HE
201.3: Aplicando ajustes ao kernel
&RQJXUDQGRXPVHUYLGRU3UR[\
201.4: Customizar, construir e
instalar um kernel customizado e seus
Tpico 209: COMPARTILHAMENTO DE
mdulos
ARQUIVOS
201.5: Gerenciamento do kernel e seus
&RQJXUDQGRXPVHUYLGRU6$0%$
mdulos em tempo real
&RQJXUDQGRXPVHUYLGRU1)6
Tpico 202: INICIALIZAO DO SISTEMA
&XVWRPL]DQGRDLQLFLDOL]DomRGR
sistema
5HFXSHUDomRGRVLVWHPD
Tpico 203: SISTEMA DE ARQUIVOS E
DISPOSITIVOS
203.1: Trabalhando com o sistema de
arquivos
0DQXWHQomRGHXPVLVWHPDGH
arquivos
&ULDQGRHFRQJXUDQGRRSo}HV
para sistemas de arquivos
203.4: Gerenciar dispositivos uDev
Tpico 204: ADMINISTRAO AVANADA DE
MEIOS DE ARMAZENAMENTO
&RQJXUDQGRXPPRGHOR5$,'
204.2: Ajustando acessos aos meios de
armazenamento
*HUHQFLDUYROXPHVOyJLFRV /90
Tpico 205: CONFIGURAO DA REDE
&RQJXUDomREiVLFDGDUHGH
&RQJXUDomRDYDQoDGDGDUHGHH
UHVROXomRGHSUREOHPDV
6ROXo}HVGHSUREOHPDVGHUHGH
205.4: Informando usurios sobre
LQIRUPDo}HVGRVLVWHPD
Tpico 206: MANUTENO DO SISTEMA
206.1: Compilar e instalar programas a
partir do cdigo fonte
2SHUDo}HVGH%DFNXS
Tpico 207: SERVIDOR DNS
&RQJXUDomREiVLFDGHXP
VHUYLGRU'16
&ULDomRHPDQXWHQomRGH]RQDV
'16
6HJXUDQoDQR'16

Tpico 210: GERENCIAMENTO DOS CLIENTES


DE REDE
&RQJXUDQGRXPFOLHQWH'+&3
&RQJXUDQGRDXWHQWLFDomR3$0
8VDQGRXPFOLHQWH/'$3
Tpico 211: SERVIOS DE EMAIL
8WLOL]DomRGHVHUYLGRUHVGH
email
211.2: Administrando entrega local de
emails
211.3: Administrando entrega remota de
emails
Tpico 212: SEGURANA DO SISTEMA
&RQJXUDomRGHURWHDGRU URWDV
6HJXUDQoDHPVHUYLGRUHV)73
6HJXUDQoDFRP66+
6HJXUDQoDFRP7&3:UDSSHUV
7DUHIDVGHVHJXUDQoD
Tpico 213: SOLUO DE PROBLEMAS
,GHQWLFDUHVWiJLRVGHERRWH
consertar carregadores de boot
6ROXomRJHQpULFDGHSUREOHPDV
213.3: Problemas em recursos do
sistema
3UREOHPDVHPFRQJXUDo}HVGR
ambiente do sistema

,QWURGXomR

xxvii

Ufa! Acabou? Calma, isso aqui apenas um resumo. lgico que tem MUITO mais
coisas para se aprender do que a nossa mente pode imaginar. Mas no se preocupe,
faa seus estudos gradualmente, e depois que tiver domnio em um determinado
tpico, avance para um prximo semelhante ao que voc acabou de aprender.
As tabelas dos exames da srie 300 no foram disponibilizadas aqui por estarem
fora do escopo do livro. As duas tabelas dos exames da srie 100 e da srie 200 esto disponibilizadas por serem prximas em conhecimento. Todo o nosso estudo
est baseado na tabela da srie 100 (exames 101 e 102), e esse conhecimento servir
de base para futuros exames da srie 200 (exames 201 e 202).

LPIC-1: Exame 117-102

Tpico 105: Shell scripts e


administrao de dados
105.1: Personalizar e usar o ambiente shell
LPI:(VVHpR7ySLFR3HVRGRH[DPHGHFHUWLFDomR/3,&
Nota:2VFDQGLGDWRVGHYHUmRHVWDUDSWRVDSHUVRQDOL]DURDPELHQWHVKHOO SDUDVDWLVID]HU
DVQHFHVVLGDGHVGRVXVXiULRVEHPFRPRPRGLFDUSHUVJOREDLVHGHXVXiULRV

O conceito de shell e seu ambiente


No tpico anterior falamos sobre a linha de comando e o interpretador Bash. Aqui continuaremos mais um pouco, pois ainda h coisas interessantes para entender. J de
nosso conhecimento que o ambiente de comandos do Linux composto de um interpretador de comandos e variveis do sistema. O interpretador tambm chamado de
shell, e o shell tambm um programa, assim como o command.com no Windows.
O shell executado sobre o kernel, assim, o usurio digita seus comandos no shell o
qual interpreta e passa para o kernel realizar uma determinada tarefa. Dessa forma,
ele serve de ponte entre os usurios, seus aplicativos e o kernel. Diferentemente do
sistema Windows o qual s existe uma lgica, a do command.com, o Linux possui
diversos interpretadores de comandos, tais como o bash, ash, csh, tcsh, sh, etc, e o
mais popular o interpretador bash (Bourne Again Shell).
Os comandos digitados na linha de comando podem ser enviados de duas maneiras
SDUDRLQWHUSUHWDGRUGHFRPDQGRVFRPRMiVDEHPRVRQGHVHGHQHDIRUPDLQWHUDtiva atravs de comandos diretos e a no interativa atravs de shell scripts.
Usando a forma interativa ( preciso esperar o trmino de cada comando para a
digitao do outro):
# updatedb
# makewhatis
# umame -a

O usurio dever esperar esse comando terminar.


Agora ele dever esperar esse outro comando terminar.
Somente agora possvel executar esse comando.
Um outro modo de usar a forma interativa ( preciso esperar o trmino de cada comando
SDUDDGLJLWDomRGRRXWUR 

# updatedb; makewhatis; umame -a


comandos terminarem.

O usurio dever esperar esses trs

Tpico 105: Shell scripts e administrao de dados

# locate gimp | less


comando.

Somente agora possvel executar esse

Usando a forma no interativa com um shell script executado pelo interpretador


sh. Dentro desse arquivo h uma srie de comandos os quais o usurio no precisa
digitar na linha de comando, como por exemplo, blocos de tomada de deciso, blocos de repetio etc:
# sh install.sh
(...)

O usurio executar o shell script para instalar.

Os interpretadores de comando presentes no sistema no momento esto registrados


no arquivo /etc/shells e basta um simples comando cat para percebemos que temos
vrios interpretadores. E para usar qualquer um deles, basta cham-los pelo nome
com o comando sh. E para encerrar o interpretador de comandos em uso, basta usar
o comando exit ou [control]+[d] ou logout.

O interpretador Bash
Quando entramos em modo texto (runlevel [1-4]) ou abrimos um terminal digitando os comandos xterm, gnome-terminal ou konsoleQRPRGRJUiFRXP
prompt de comando nos mostrado e estamos prontos para a digitao de comandos. Na grande maioria das distribuies esse prompt de comando vem do
interpretador de comandos BASH Bourne Again Shell, ou simplesmente bash
para os mais ntimos.
Esse interpretador possui inmeras caractersticas interessantes as quais algumas
j foram citadas no incio do livro. No tem nem como colocar toda a ideia desse interpretador aqui. E para que voc tenha uma ideia, h livros inteiros somente sobre
esse assunto,. Sendo assim, como j foi falado sobre esse assunto anteriormente,
veremos aqui mais algumas coisinhas.
O importante saber que comandos para o shell, e nesse caso o interpretador de
comandos bash, podem ser passados de modo interativo e no interativo. H os comandos internos e os comandos externos, sendo que os comandos externos podem
ser apagados e os comandos internos no, pois j esto em memria e fazem parte
dela quando do carregamento do interpretador de comandos.
8P H[HPSOR GH XP FRPDQGR LQWHUQR 9HMD D LGHQWLFDomR %$6+B%8,/7,16
Essa cabea mostra todos os comandos internos (no podem ser removidos) do
BASH:
# man history
BASH_BUILTINS(1)

BASH_BUILTINS(1)

NAME
bash, :, ., [, alias, bg, bind, break, builtin, cd, command,
compgen, complete,
continue, declare, dirs, disown, echo, enable, eval, exec, exit,
export, fc, fg,
getopts, hash, help, history, jobs, kill, let, local, logout, popd,
printf, pushd,
pwd, read, readonly, return, set, shift, shopt, source, suspend, test,
times, trap,

105.1: Personalizar e usar o ambiente shell

type, typeset,
commands, see
bash(1)
(...)

ulimit,

umask, unalias, unset, wait, bash built-in

Nota:$OJXPDVGLVWULEXLo}HVQmRDSUHVHQWDP%$6+B%8,/7,16  TXDQGRDSiJLQDGHPDQXDOGR%$6+

Nesse exemplo o comando ls encontra-se em /bin/ls (comando externo, pode


ser removido), e se ele for apagado do sistema somente estar disponvel se for
instalado o pacote coreutils-[verso], como pode-se ver pela pesquisa do comando
rpm (o pacote coreutils tem a mesma funo em todas as distribuies )
# which --skip-alias ls
/bin/ls
# rpm -qf $(which --skip-alias ls)
coreutils-7.6-5.fc12.i686

Interpretao de recursos pelo bash


8P LQWHUSUHWDGRU GH FRPDQGRV JHUDOPHQWH p TXDVH FRPSOHWR D JHQWH VHPSUH
reclama que falta alguma coisinha) e possui dezenas de recursos para ajudar os
usurios e o administrador com tarefas do dia-a-dia. Esses recursos so compreendidos como mecanismos de controle de trabalhos (jobs) e processos, meta caracteres como |, &, ;, (, ), <, >, atalhos de teclados, pseudo comandos (apelidos
para comandos reais) processamento de caracteres de controle, processamentos de
comandos em primeiro plano e segundo plano, comandos em lotes, comandos coQHFWDGRV XVRGHGXWRV_ UHFXUVRGHH[SDQVmRDJUXSDPHQWRGHFRPDQGRVIXQes, argumentos de linha de comando, redirecionamento, variveis de ambiente e
variveis de sistema, gerenciamento de terminais virtuais e terminais remotos etc.
Felizmente, todos esses recursos ns j vimos no decorrer da leitura e estudo desse livro,
porm, veremos mais alguns detalhes sobre esses assuntos para poder cumprir nosso
FURQRJUDPDGHDSUHQGL]DGRHWDPEpPSHORIDWRGHLVVRDSDUHFHUQRVH[DPHV/3,

Variveis de ambiente/sistema
Ns at j falamos sobre esse tipo de varivel que, por padro, declarada em caixa
alta. So elas que so consultadas pelos aplicativos e pelo prprio interpretador
de comandos. H muitas variveis as quais podem ser consultadas. As variveis
de sistema podem ser listadas pelos comandos set e typeset, env e printenv
e export -p. Fique bem atento quanto a isso, pois comum questes assim nos
H[DPHV/3,$VYDULiYHLVQR/LQX[VmRLPSRUWDQWHVHVmRDSOLFDGDVHPPXLWRVOXJDres, tais como compiladores do sistema, atalhos, carregamento dinmico, biblioteFDVSHUVGHXVXiULRVHRXWURVXVRV/HPEUHVHTXHJHUDOPHQWHWRGDVDVYDULiYHLV
GHYHUmRVHUHVSHFLFDGDVSULQFLSDOPHQWHHPHWFSUROH.
# set | grep java
JAVA_HOME=/usr/lib/java2
PATH=/usr/lib/kde3/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/
local/bin:/usr/bin/X11: /usr/games:/usr/lib/java2/bin:/usr/lib/java2/jre/bin:/
usr/lib/qt3/bin

O comando env lista as variveis globais enquanto o comando set lista todas as
variveis. Outro exemplo:

Tpico 105: Shell scripts e administrao de dados

# set | grep BASH


BASH=/bin/bash
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]=4 [1]=0 [2]=33 [3]=1 [4]=release [5]=i386redhat-linux-gnu)
BASH_VERSION=4.0.33(1)-release
DICA:$VYDULiYHLVGHVLVWHPDVmRFRPRYDULiYHLVXVDGDVHPSURJUDPDomRRXVHMDH[LV
WHPDVYDULiYHLVORFDLVHDVJOREDLV$VORFDLVVmRYLVWDVDSHQDVHPXPDVHVVmRGRVKHOO e
DVJOREDLVHPWRGDVDVVHVV}HVGRVKHOO$VYDULiYHLVORFDLVQmRVmRYLVWDVSRUSURFHVVRV
OKRV 2V FRPDQGRV TXH HQYROYHP HVVDV YDULiYHLV VmR export, declare, typeset,
set, unset, env, printenv e echo.

No sistema Linux fcil encontrar dezenas de variveis de ambiente/sistema, e


realmente so muitas, porm, as variveis mais comuns e importantes as quais deYHPRVVDEHU PHPRUL]HpLPSRUWDQWH SRLVFRVWXPDPDSDUHFHUQRVH[DPHV/3,
VmR',63/$<(',7259,68$/+,67),/(+,67),/(6,=(+,676,=(+20(
,13875& /$1* /2*1$0( /6B&2/256 0$,/ 0$,/&+(&. 0$,/3$7+,
3$7+3:'6+(//7(508,'86(5
9HMD FRPR HODV DIHWDP R VLVWHPD $ VHJXLU IRL GHQLGD D YDULiYHO /$1* SDUD R
idioma portugus do Brasil e executado o programa mc. Seus menus estaro em
portugus e, feito isso, a varivel teve seu valor alterado para o idioma ingls e o
programa mc, quando executado novamente, ter seus menus em ingls:
[fernando@ns1 ~]$ LANG=pt_BR.UTF8; mc
[fernando@ns1 ~]$ LANG=en_US.UTF8; mc

Aliases e funes do shell


Um recurso interessante que j percebemos no sistema Linux so os aliases (criados pelo comando alias), ou seja, apelidos para um comando ou uma sequncia
de comandos; e quando no mais necessrios, so desfeitos pelo comando unalias. Um alias como um atalho para um comando ou sequncia de comandos,
s que mais poderoso. Eles podem ser criados a qualquer momento na linha de
comando, mas se no forem gravados em algum arquivo no podero ser usados
mais tarde e s tero validade para a sesso atual do shell.
Os possveis arquivos em que poderamos disponibilizar nossos aliases so: /etc/
SUROHse quisermos que eles sejam vlidos para todos os usurios do sistema, /
URRWEDVKBSUROHpara o usurio root, ou KRPHDGLOVRQEDVKBSUROH para um
XVXiULR HVSHFtFR QHVVH FDVR R XVXiULR adilson 7DPEpP p SRVVtYHO FRORFDU QRV
arquivos /etc/bashrc, /root/.bashrc e /home/adilson/bashrc seguindo a mesma
ideia j comentada.
&ULDUHPRV XP FRPDQGR alias) chamado winxpon e winxpoff cujo objetivo
p PRQWDU XPD SDUWLomR :LQGRZV GR WLSR )$7 TXDQGR IRU GLJLWDGR R FRPDQGR
winxpon e desmontar essa partio saindo dela quando for digitado o comando

105.1: Personalizar e usar o ambiente shell

winxpoff; esses aliases FDUmRGHQWURGRDUTXLYR/etc/bashrc$GLFLRQHDRQDO


desse arquivo as seguintes linhas. Para que os aliases acima dentro do arquivo /
etc/bashrc sejam vlidos, basta usar o comando source /etc/bashrc ou . /
etc/bashrc:
# alias winxpon=mount -t vfat /dev/hda1 /mnt/winxp; ls /mnt/winxp
# alias winxpoff=cd /; mount /mnt/winxp

9HMDFRPRFDULDXPH[HPSORWtSLFRGHVVHWLSRGHDUTXLYR0DVYHMDTXHLVVRSRGH
ser bem diferente da sua distribuio, pois com o tempo cada um personaliza o
seu:
# cat /etc/bashrc ou FDWHWFSUROH
# Funes e aliases para todo o sistema.
&RQJXUDo}HVGRDPELHQWHGHYHPVHUIHLWDVQRHWFSUROH
# Por razo desconhecida, o bash se recusa a herdar a varivel PS1 em algumas
circunstncias.
# Colocando o PS1 aqui garante que ela seja carregada sempre.
PS1=[\u@\h \W]\\$
alias which=type -path
alias l=ls -laF --color
alias ls=ls --color
alias m=minicom -s -con -L
alias minicom=minicom -s -con -L
alias tm=tail -f /var/log/messages
alias tmm=tail -f /var/log/maillog
alias tms=tail -f /var/log/secure
alias cds=cd /etc/rc.d/init.d && ls
alias fd=PRXQWGHYIGPQWRSS\FGPQWRSS\ OV
alias ufd=FGPQW XPRXQWRSS\ OV
alias winxpon=mount -t vfat /dev/hda1 /mnt/winxp; ls /mnt/winxp
alias winxpoff=cd; umount /mnt/winxp
alias cdon=mount -t iso9660 /dev/cdrom /mnt/cdrom; ls /mnt/cdrom
alias cdoff=cd; umount /mnt/cdrom; eject
alias boot=shutdown -r now
alias off=shutdown -h now
alias xt=setterm -store -background back -foreground green
Nota: (VVHDUTXLYRWHPDSUHVHQWDGRGLIHUHQoDVHQWUHDVGLVWULEXLo}HVDWXDLV

Se o bloco a seguir de shell script for colocado no arquivo .bashrc do usurio, ele
somente poder fazer login XPD~QLFDYH]SRUTXHHVVHEORFRYHULFDVHRXVXiULR
j est logado no sistema. Se estiver, o comando exit ser executado e, assim, ele
somente poder logar uma nica vez:
(...)
if [ $(who | awk { print $1 } | sort | uniq -d) ] ; then
exit

(...)

As funes do shell so semelhantes s dos aliases, porm, bem mais poderosas,


pois com elas podemos escrever bons programinhas para serem chamados a qualquer momento como se fossem comandos do shell. Uma funo pode ser criada
pela declarao da palavra function, a qual opcional, seguida de () para informar
TXH VHUi XPD IXQomR H WRGRV RV FRPDQGRV LQWHUQRV D HOD VmR VHSDUDGRV SRU 
GHQWURGREORFR^`FRPRYHUHPRVQRVSUy[LPRVH[HPSORV

Tpico 105: Shell scripts e administrao de dados

Uma funo tem a seguinte sintaxe ( uma boa prtica que o ltimo comando de
uma funo seja o comando return):
# function nome () {
# nome () {
comandos;
comandos;
comandos;
comandos;
return;
return;
}
}
Nota: $GHFODUDomRfunctionSDUDDFULDomRGHXPDIXQomRpIDFXOWDWLYDPDVDFRQVHOKiYHOFRPRERDSUiWLFD
GHSURJUDPDomR

3DUDFULDUXPDIXQomRpPXLWRVLPSOHVHSRGHVHUIHLWRYLDOLQKDGHFRPDQGRV0DV
VHDIXQomRDVHUFULDGDIRUPDLVFRPSOH[DpERPTXHHODTXHHPXPDUTXLYRWH[WR
assim, atravs do comando source arquivo_de_funo ser possvel ativ-la.
A seguir, temos uma funo chamada Hello que faz a famosa saudao Hello World.
Depois que ela for processada, basta digitar o comando Hello para que a tela seja
limpa e ela aparea l em cima. Na sequncia, veja como ela aparece em uma busca
com o comando set:
# function Hello () {
clear;
echo Hello World;
return;
}

# set | less
...
Hello ()
echo Hello World;
return
}

7DPEpPpSRVVtYHOGHQLUXPDIXQomRXVDQGRDSHQDVXPDOLQKD0DVGHSHQGHQGR
da funo, isso pode no ser uma boa prtica de programao. Na verdade, s
til de ser feito na linha de comando e no devemos esquecer o ponto e vrgula do
comando return:
# function Hello () { clear; echo Hello World; return; }

$VHJXLUIDUHPRVXPDDQiOLVHGHFULDomRGHXPDIXQomR7HPRVWUrVOLQKDVFRP
modelos de criao de uma funo chamada lsinode onde o objetivo seria listar
os arquivos e seus inodes.
# function lsinode() { clear; ls -i; }
# function lsinode() { clear; /bin/ls -i }
# function lsinode() { clear; /bin/ls -i; }

A primeira funo, apesar de estar em sua forma correta, no funcionar a contento


porque j existe no sistema um alias chamado ls. Desse modo, a funo lsinode, quando usa o comando ls, na verdade est usando o alias chamado ls. S que
tanto o alias ls quanto a funo lsinode QmRIXQFLRQDUmRGHYLGRDXPFRQLWR
HQWUHHVVDVGXDVLGHLDVHRFXUVRUFDUiSDUDGRQRprompt do sistema. Esse um
erro clssico cometido por jovens administradores. O correto seria listar todos os
aliases antes de criar funes com nomes semelhantes ou derivados de comandos.
A segunda funo, apesar de estar em sua forma correta, no funcionar a conWHQWRSRUTXHWRGRVRVFRPDQGRVGHQWURGHXPDIXQomRGHYHPWHUPLQDUFRPR

105.1: Personalizar e usar o ambiente shell

que no ocorre nesse exemplo. Ento, ser aberto um prompt ! YDULiYHO36 H
quando da sada dele ou seu cancelamento ocorrer um erro caso os comandos no
VHMDPHQFHUUDGRVFRUUHWDPHQWHHDIXQomRQmRWHUPLQHFRPXP`
$WHUFHLUDIXQomRpDFRUUHWDSDUDHVVDVLWXDomRSRLVDSUHVHQWDRFRPRPGH
instruo. E j que existe uma alias para o comando ls, a funo faz referncia ao
local correto /bin/ls do comando.
Para listar os arquivos com seus respectivos inodes usando a funo lsinode:
# lsinode
192450 ajuda-gnome
192009 anaconda-ks.cfg
192019 rea de Trabalho
192023 Documentos
192020 Download

192025
192002
192003
192021
192024

Imagens
install.log
install.log.syslog
Modelos
Msica

192150 ps1
192022 Pblico
192026 Vdeos

A seguir, temos um arquivo chamado myApacheLog.txt o qual contm o programa


de uma funo chamada apacheLog. Para processar esse arquivo, use o comando
source myApacheLog.txt e, assim, essa funo estar disponvel. E como ela
HVWiHPXPDUTXLYRFDIiFLOID]HUPRGLFDo}HVDTXDOTXHUPRPHQWR2REMHWLYR
da funo gerar um arquivo de log com as atividades do servidor apache durante
4 interaes com intervalo de 3 segundos, e assim que terminar com sucesso ser
enviado esse arquivo de log para o administrador:
function myApacheLog () {
clear;
echo Aguarde....;
echo Gerando um log das atividades do servidor apache...;
echo Uma email ser enviado ao administrador com o arquivo de log.;
top -b -d 3 -n 4 -U apache > /opt/myapache.log && mail -s Log do
servidor Apache root@ns1.altabooks.edu.br < /opt/myapache.log;
echo P;
}

Executando a funo myApacheLog:


# myApacheLog
Aguarde....
Gerando um log das atividades do servidor apache...
Uma email ser enviado ao administrador com o arquivo de log.
P
You have mail in /var/spool/mail/root

$PHQVDJHPYou have mail in /var/spool/mail/root informa ao administrador


que ele tem um novo email. Sendo assim, ele usar o comando mail ou mailx
para ler as mensagens. Nesse exemplo o email de nmero 33 e ter a seguinte
forma (pode variar conforme a distribuio usada):
Message 33:
From root@ns1.altabooks.edu.br Wed Mar 18 15:33:15 2010
Return-Path: <root@ns1.altabooks.edu.br>
From: root <root@ns1.altabooks.edu.br>
Date: Wed, 18 Mar 2010 15:33:15 -0300
To: Apache@ns1.altabooks.edu.br, servidor@ns1.altabooks.edu.br,

10

Tpico 105: Shell scripts e administrao de dados

do@ns1.altabooks.edu.br, Logo@ns1.altabooks.edu.br,
-s@ns1.altabooks.edu.br, root@ns1.altabooks.edu.br
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
Status: R
top - 00:00:16 up 1:31, 5 users, load average: 0.39, 0.18, 0.20
Tasks: 127 total,
1 running, 125 sleeping,
0 stopped,
1 zombie
Cpu(s): 5.3%us, 10.1%sy, 0.0%ni, 83.0%id, 0.6%wa, 0.3%hi, 0.8%si, 0.0%st
Mem:
282440k total,
272764k used,
9676k free,
3260k buffers
Swap: 1052248k total,
3096k used, 1049152k free,
66160k cached
PID
2491
2492
2493
2494
2495
2496
2497
2498
(...)

USER
apache
apache
apache
apache
apache
apache
apache
apache

PR
20
20
20
20
20
20
20
20

NI
0
0
0
0
0
0
0
0

VIRT
28232
28232
28232
28232
28232
28232
28232
28232

RES
4960
4956
4956
4956
4956
4956
4956
4956

SHR
952
948
948
948
948
948
948
948

S %CPU %MEM
S 0.0 1.8
S 0.0 1.8
S 0.0 1.8
S 0.0 1.8
S 0.0 1.8
S 0.0 1.8
S 0.0 1.8
S 0.0 1.8

TIME+
0:00.00
0:00.00
0:00.02
0:00.02
0:00.01
0:00.02
0:00.01
0:00.01

COMMAND
httpd
httpd
httpd
httpd
httpd
httpd
httpd
httpd

NOTA:1mRFULHIXQo}HVFRPQRPHVVHPHOKDQWHVDRVFRPDQGRVGR/LQX[SUHVHQWHVQR
VLVWHPDSRLVDIXQomRWHPSULRULGDGHVVREUHHOHVSRUTXHWDPEpPWrPDLGHLDGHH[SDQGLU
D SRWHQFLDOLGDGH GRV FRPDQGRV 4XDQGR GD FULDomR GH IXQo}HV QmR FULH IXQo}HV FRP
nomes de DOLDVHVSRLVRVGRLVHQWUDUmRHPFRQLWRQRVLVWHPD$VIXQo}HVSRGHPVHU
UHPRYLGDVGRVLVWHPDDTXDOTXHUPRPHQWRSHORFRPDQGRunset funo.

2VDUTXLYRVGHFRQJXUDomR
(VVHVVmRRVDUTXLYRVGHFRQJXUDomRRVTXDLVSRGHPVHUXVDGRVSHORVXVXiULRVHSHOR
ambiente e todos so fceis de entender, podem ser alterados a qualquer momento
e so lidos na inicializao da mquina ou atravs do comando source. Lembre-se
que h vrios outros, mas so esses aqui os importantes no momento. Os arquivos de
FRQJXUDomRSRGHPVHURVDUTXLYRVGRVLVWHPDRXRVDUTXLYRVGRVXVXiULRV6HIRU
do sistema, mais de 98% esto sob o diretrio /etc, e se for dos usurios, esto em /
home/usurio para usurios comuns e /root/ para o administrador.
9HMDTXDWURIRUPDVGHFRQVXOWDUDYDULiYHOGHVLVWHPD+20(DTXDOLQIRUPDR
diretrio do usurio:
[luciene$ns1 ~]$ echo ~luciene
/home/luciene

[luciene$ns1 ~]$ echo ~/


/home/luciene

[luciene$ns1 ~]$ echo ~


/home/luciene

[luciene$ns1 ~]$ echo ~:


/home/luciene:

Outras duas variveis interessantes: a $PWD (mostra o caminho do diretrio atual)


WHP XPD FRUUHVSRQGrQFLD FRP a H D 2/'3:' PRVWUD R FDPLQKR DQWHULRU
j3:' WHPXPDFRUUHVSRQGrQFLDFRPaSRUpPDVIRUPDVPDLVFRPXQVGH
referncia so $PWD e $OLDPWD.
Para uso geral do ambiente temos: