Beruflich Dokumente
Kultur Dokumente
GNU/Linux
Instalao, Configurao, Utilizao e Administrao
Belo Horizonte
Direitos Autorais
http://www.linuxsupport.com.br
e-mail: hmarx@linuxsupport.com.br
Revises
Revises
1.00
1.01
1.02
1.03
1.04
2.00
2.01
3.00
3.01
3.02
3.03
3.04
3.05
3.06
4.00
4.01
4.02
4.03
4.04
4.05
abril/2001
maio/2001
junho/2001
julho/2001
junho/2002
julho/2002
novembro/2002
janeiro/2003
abril/2003
maio/2003
fevereiro/2004
julho/2004
setembro/2005
novembro/2006
novembro/2008
junho/2009
dezembro/2009
janeiro/2010
setembro/2010
janeiro/2012
Sobre o autor
Hlio Marques Sobrinho
Engenheiro Eletricista pela EE-UFMG
nfase em Eletrnica Industrial
Mestre em Cincia da Computao pelo DCC-UFMG
nfase em Tecnologia de Hardware
Consultor em Tecnologia da Informao
Anlise de sistemas
Seleo de software e hardware
Projeto de software e hardware
Desenvolvimento de sistemas nativos e web
Instalao e configurao de sistemas
Segurana e desempenho de sistemas
Treinamento
Cursos ministrados
Instituies: Starix Informtica / InterLinux / Instituto On-line
Sistema Operacional SuSE Linux
Instituies: FAFI-BH / Fundac-bh / Uni-BH
Software bsico e de suporte, Sistemas Operacionais
Gerncia de Sistemas e Redes
Segurana em Sistema Operacional Livre
(ps graduao GSTI)
Instituies: PUC Minas (graduao)
Informtica I
Arquitetura de Computadores I e II
Projeto de Algoritmos
Algortmos e Estruturas de Dados III
Avaliao de Sistemas Computacionais
Agradecimentos
iii
Agradecimentos
Agradeo a colaboraco dos seguintes profissionais, que me
auxiliaram na concepo deste livro:
Flvia de Castro Mendes Marques
Bacharel em Cincia da Computao pelo DCC-UFMG
nfase em Software Bsico
Frederico Machado Bastos
Bacharel em Cincia da Computao pela PUC-MG
Mestre em Cincia da Computao pelo DCC-UFMG
nfase em Gerenciamento de Redes
Breno Silveira Soares
Bacharel em Cincia da Computao pela PUC-MG
LPI Certified
Agradeo ainda ao Edson Barbosa Duarte da Art&Soft,
http://artsoft.com.br,
pela inestimvel ajuda nas formataes, revises e impresses deste
livro.
Hlio Marques Sobrinho
iv
Convenes tipogrficas
Convenes tipogrficas
Neste livro so utilizadas as seguintes convenes:
Conveno
negrito
itlico
reticncias ( ... )
colchetes ( [ ] )
chaves ( { } )
asterisco ( { }*)
barra vertical ( | )
courier
itlico-sublinhado
+D
Uso
indica um comando a ser
digitado ou de uma funo
palavras em um idioma
diferente do portugus
indica repetio dos
argumentos
itens opcionais
itens alternativos
permite mais de uma
alternativa
separador das opes
alternativas
nome de um arquivo ou
diretrio
valor ou opo que deve
ser substitudo pelo valor
real ou por uma constante
pressionar as teclas dadas
simultaneamente
Exemplo
man ls
startx()
O kernel do Linux
ls [ opces ] [ arq ... ]
ls [ opces ] [ arq ... ]
route { add | del } ...
{ u | g | o | a}*
route { add | del } ...
/usr/src/linux
--radix=r
+D
Prefcio
Prefcio
Este livro comeou a ser escrito como uma apostila dos cursos de SuSE
Linux ministrados na minha ex-empresa Starix Informtica.
Muitos perguntam o que significa o nome Starix. Este nome surgiu em
1988 como nome do sistema operacional Unix-like que seria desenvolvido como
trabalho de mestrado da Flvia no Departamento de Cincia da Computao da
UFMG - DCC para o super microcomputador DCC-2600.
O projeto dos mdulos de processamento do DCC-2600 foi meu trabalho
de mestrado no DCC, iniciado em 1982 e concluido em 1986 sob a orientao do
Dr. Wilson P. Pdua. Outros mdulos como memria e E/S foram implementados
por Luiz Fernando Costa. O DCC-2600 consistia de um sistema multiprocessado
SMP utilizando processadores de 16 bits Intel 8086 em um barramento Intel
Multibus. O sistema suportava at 16 processadores, compartilhando memria,
discos e barramentos de E/S. Durante o projeto, construo e testes deste sistema
foi utilizado o sistema operacional IBM PC-DOS, no qual foram desenvolvidos
diversos programas para a depurao do hardware. Foi projetado e
implementado um ROM-BIOS compatvel com o IBM PC BIOS, apesar das
grandes diferenas no hardware, para que o PC-DOS (at a verso 3.30) e alguns
de seus aplicativos fossem suportados. Foi implementado tambm um
subconjunto dos aplicativos da rede Micnet do SCO Xenix, permitindo troca
de arquivos, mail e execuo remota entre o DOS e o Xenix atravs de uma
conexo RS-232C.
Adquirimos em 1985, o PCNX da Wendin Inc., um ambiente Unix-like
que rodava sobre o PC-DOS e incluia fontes de diversos aplicativos bsicos do
Unix como o shell, ls, ps, cp, etc. Aps alteraes nos fontes do PCNX (devido
ao hardware), ele funcionou bem em modo monoprocessado no DCC-2600 com
512KB de memria e com 5 terminais seriais.
vi
Prefcio
Prefcio
vii
viii
Prefcio
Prefcio
ix
Prefcio
Prefcio
xi
xii
Prefcio
xiii
Contedo
Contedo
Prefcio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Contedo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1. Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
O que Linux ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Histrico da Computao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Histrico - do Unix ao Linux . . . . . . . . . . . . . . . . . . . . . . . . 10
O United Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
O SuSE Linux e a Novell . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2. Hardware e Arquitetura . . . . . . . . . . . . . . . . . . 16
Arquitetura dos Sistemas Unix-Like. . . . . . . . . . . . . . . . . . .
Dispositivos de armazenamento . . . . . . . . . . . . . . . . . . . . . .
Sistema de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diretrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alguns diretrios padro do SVR4 e do Linux. . . . . . . . . . .
Alguns arquivos padro . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O sistema de arquivos /proc . . . . . . . . . . . . . . . . . . . . . . . . .
Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
20
21
25
26
27
28
30
3. Iniciando o Linux . . . . . . . . . . . . . . . . . . . . . . 34
Do boot ao Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tabela de aes utilizadas no initttab . . . . . . . . . . . . . . . . . .
Nveis de execuo padro . . . . . . . . . . . . . . . . . . . . . . . . . .
Processos disparados pelo init . . . . . . . . . . . . . . . . . . . . . . .
Sesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Encerrando a sesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Desligando o computador . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
35
36
38
39
41
41
Contedo
xiv
4. Utilizando o Linux . . . . . . . . . . . . . . . . . . . . . . 42
Interpretador de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Metacaracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
O Bash - Bourne-Again Shell . . . . . . . . . . . . . . . . . . . . . . . . 45
Comandos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Operadores do bash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Comandos Administrativos. . . . . . . . . . . . . . . . . . . . . . . . . 128
Tratamento dos Sistemas de Arquivos . . . . . . . . . . . . . . . . 134
Mdulos de dispositivos e servios . . . . . . . . . . . . . . . . . . 147
Mensagens do sistema Linux . . . . . . . . . . . . . . . . . . . . . . . 155
160
162
163
171
173
188
192
194
196
199
210
219
220
224
225
227
242
246
xv
Contedo
248
250
255
275
281
290
301
311
314
316
317
322
323
324
330
331
331
336
337
344
345
350
352
365
371
374
377
380
Contedo
xvi
381
382
383
384
385
386
392
398
409
410
411
416
417
420
423
424
446
449
449
449
451
xvii
Contedo
452
453
454
454
454
455
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Livros e outras publicaes. . . . . . . . . . . . . . . . . . . . . . . . . 480
Sites na Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Livros e outras publicaes. . . . . . . . . . . . . . . . . . . . . . . . . 486
Sites na Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Glossrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
ndice Remissivo. . . . . . . . . . . . . . . . . . . . . . . . . 498
Introduo
1. Introduo
O que Linux ?
Quando falamos de Linux, precisamos definir
exatamente o que queremos dizer com o termo. O Linux
propriamente dito o kernel, o corao de todo sistema
operacional GNU, mas o kernel sozinho no um sistema
operacional utilizvel.
Na verdade, o Linux (kernel) parte do projeto GNU, idealizado
por Richard Stallman, cujo objetivo era criar todo um sistema
free, e no somente o kernel do sistema
operacional, e dar aos usurios de
computadores a liberdade que muitos haviam
perdido. Deste ponto de vista, o Linux deveria ser chamando
de GNU/Linux. GNU a sigla para GNU is Not Unix. A base
legal dos aplicativos GNU a GPL - GNU General Public
License da Free Software Foundation, FSF.
Para um sistema Unix existe uma srie de pacotes de software
conhecidos como ferramentas Unix. No Linux, bem como em outros sistemas
operacionais, estes programas esto disponveis como pacotes de software
gratuitos em suas verses GNU. A maioria deles oferece caractersticas
melhoradas em relao aos originais. Destes, o compilador GNU C/C++, que
algumas pessoas acreditam ser um dos melhores compiladores disponveis
atualmente, provavelmente o programa mais famoso, talvez com a exceo do
Emacs.
Introduo
Introduo
Histrico da Computao
A necessidade do ser humano de um sistema de numerao surgiu ainda
na pr-histria. Os homens da caverna comearam a associar pedras s suas
posses.
Com o passar dos anos, o aumento das posses tornou o
transporte de suas "economias" bastante difcil, e assim foram
criados smbolos para representar uma determinada quantidade
de elementos. Um exemplo tpico a escrita cuneiforme dos
babilnios e assrios h mais de 5000 anos.
A partir de 300 AC, surgiram os primeiros bacos. So
instrumentos de clculo simples e altamente eficientes.
So utilizados at hoje no Japo e China.
Em 1617, John Napier, inventor dos logaritmos,
projetou uma mquina de multiplicar atravs de
cilindros. Em 1642, Blaise Pascal construiu uma
mquina de somar e subtrair utilizando
engrenagens.
Em 1673, Gottfried Willhelm Leibniz projetou uma
mquina para realizar multiplicaes atravs de somas
sucessivas, que s pde ser construda em 1694.
Introduo
Em 1812, Charles Babbage projetou uma
mquina de clculos de tabelas
matemticas. Em 1859, ele projetou uma
mquina diferencial. Ela apenas foi
construda em 1991.
Introduo
Introduo
Introduo
Introduo
Introduo
10
Introduo
Foto de um PDP-7
restaurado em Oslo,
Noruega, 2005
Introduo
11
12
Introduo
Introduo
13
O United Linux
Em 25 de julho de 2002, os lderes da indstria
do Linux (Caldera, Conectiva, SuSE Linux e
TurboLinux) anunciaram o planejamento do
UnitedLinux e o provvel lanamento para novembro. Este sistema operacional,
seguindo a especificao tcnica definida pelas 4 distribuidoras de Linux, dever
ser o padro adotado pelas empresas, facilitando sua manuteno e administrao.
Diversas empresas, como a AMD, Borland, Fujitso, IBM, NEC e SAP, j
manifestaram seu apoio comentando a facilidade para a criao de um ambiente
Linux de alto desempenho e a facilidade para o desenvolvimentro de hardware e
software.
A Caldera foi adquirida pela SCO que substituiu a Caldera no grupo
UnitedLinux. Devido s aes da SCO contra a IBM relativas a supostas
propriedades intelectuais de cdigos fornecidos pela IBM aos desenvolvedores do
Linux, o grupo UnitedLinux foi dissolvido em 2004. Posio das SuSE: "A SuSE
Linux continuar a suportar incondicionalmente o UnitedLinux, honrando os
compromissos com os clientes".
14
Introduo
Hardware e Arquitetura
15
2. Hardware e
Arquitetura
O ambiente operacional GNU/Linux est disponvel para diversas
plataformas, cada qual com suas idiossincrasias de configurao e
gerenciamento de dispositivos. A plataforma mais comum a da
famlia de processadores Intel e seus similares (AMD e Cyrix). H
ainda verses para processadores RISC, como o Alpha da Compaq
(anteriormente DEC) e o HP PA, processadores Motorola 68K, Sun
Sparc, ARM, MIPS, PowerPC, e para o IBM S/390.
Vrios barramentos so suportados. Os mais comuns so: ISA,
VLB, EISA, PCI, MCA do PS/2, e VME. Veja os comandos lspci,
lsusb e pnpdump no captulo 4, Utilizando o Linux.
Vamos considerar neste captulo a famlia Intel e
computadores baseados na arquitetura do IBM PC, o Personal
Computer. Muitos servidores, mesmo os multiprocessados (SMP Symetric Multi Processing), possuem a arquitetura do IBM PC.
Nestes computadores existe o BIOS (Basic Input/Output System), que prov a
interface entre o hardware e os sistemas operacionais. Normalmente, o BIOS
tambm oferece uma interface para a configurao das caractersticas do
hardware instalado no computador.
Muitas das configuraes do BIOS podem afetar o comportamento do
computador e do sistema operacional. As informaes fornecidas pelo BIOS ao
sistema operacional podem influir no funcionamento correto e no desempenho de
todo o ambiente computacional. Configuraes tpicas incluem data e hora, tipos
e geometrias de discos IDE e SCSI, a configurao de portas seriais e paralelas
padro e portas USB.
16
Hardware e Arquitetura
Informao
Modelo e caractersticas do(s) processadore(s)
Portos de E/S
Interrupes e dispositivos associados
Canais de DMA utilizados
Memria principal e swap
Dispositivos tipo caracter e bloco
Barramentos e dispositivos SCSI
Barramentos e dispositivos IDE
Mdulos carregados
Mapa de memria principal e de dispositivos
Barramentos e dispositivos
(USB, PCI, PCMCIA, ISA, ...)
Dispositivos especiais
(RTC, nvidia, thinkpad, ...)
Hardware e Arquitetura
17
18
Hardware e Arquitetura
Quando se desenvolve
um aplicativo para Unix, os
analistas e programadores
raramente se preocupam com
o tipo de processador e com a
arquitetura
bsica
do
computador no qual este
aplicativo ser executado. As
bibliotecas do sistema criam
uma arquitetura nica virtual
que, atravs do kernel, e de
seus mdulos, utiliza todos
os recursos disponveis no
hardware e arquitetura real.
Hardware e Arquitetura
19
Dispositivos de armazenamento
Para utilizar qualquer dispositivo de armazenamento no
Linux, este dever conter um sistema de arquivos reconhecvel
pelo Linux. Um dispositivo de armazenamento pode ser um disco,
uma partio do disco, um disquete, um CD, um DVD, um ZIP ou
mesmo um arquivo dentro de um sistema de arquivos.
Alm dos tipos sistemas de arquivos nativos do Linux como o minix, ext,
ext2, ext3 e o reiserfs, so suportadas uma grande variedade de sistemas de
arquivos de outros sistemas operacionais. Entre eles esto os tipos msdos (FAT12
e FAT16), vfat (FAT32), ntfs, ncpfs, smbfs, umsdos, nfs, adfs, affs, hfs, hpfs,
xenix, sysv, coherent, qnx4, jfs, xfs, xiafs, udf, ufs, iso9660 e romfs.
Normalmente o suporte a estes tipos feito atravs de mdulos do kernel. Note
que um sistema de arquivos remoto ser visto virtualmente atravs de seu
protocolo, independente do tipo de formatao do dispositivo. Assim, um sistema
de arquivos ext2 ou reiserfs ser tratado de forma transparente por mquinas
remota utilizand, por exemplo, o tipo nfs - Network File System.Para mquinas
Windows, qualquer tipo de sistema de arquivos pode ser compartilhado atravs do
smbfs.
Aps a formatao do dispositivo de armazenamento, deve ser gerado o
sistema de arquivos utilizando o programa mkfs que um front-end para
programas mkfs.tipo. O mkfs ir criar no dispositivo as informaes de controle
para que o Linux encontre o sistema de arquivos hierrquico e os atributos de
arquivos e diretrios. Para os sistemas de arquivos mais utilizados ext2, msdos e
reiserfs existem os programas mke2fs, mkdosfs e mkreiserfs para facilitar a
utilizao. Veja os comandos de tratamento de sistemas de arquivos no captulo 4.
Alguns discos possuem a tecnologia S.M.A.R.T., ou simplesmente
SMART (Self-Monitoring, Analysis and Reporting Technology) que um sistema
de monitoramento para detectar e reportar vrios indicadores de confiabilidade e
possivelmente antecipar falhas dos discos. O Linux possui o servio smartd que
controla e monitora estes discos. Ele totalmente configurvel. Os eventos
selecionados podem ser enviados para um e-mail.
20
Hardware e Arquitetura
Sistema de Arquivos
O Linux, assim como qualquer sistema Unix-like, no
impe nenhum formato para um arquivo. Para ele, um arquivo
apenas um conjunto de bytes armazenados em algum
dispositivo. Para os usurios, um arquivo identificado pelo
seu nome.
Independente do tipo do sistema de arquivos no dispositivo de
armazenamento, os aplicativos trataro de forma ortogonal os arquivos e
diretrios nele presente. Este sistema denominado Virtual File System ou
simplesmente vfs e prov a transparncia entre os tipos de sistemas de arquivos
nos dispositivos de armazenamento, incluindo os compartilhamentos de rede.
Um arquivo uma sequncia de bytes em, identificada por
um nmero chamado inode ou inodo. O nome (ou os nomes) deste
arquivo estar(o) armazenado(s) em um arquivo de tipo diretrio.
Isto permite que um mesmo arquivo (conjunto de bytes) possua
diversos nomes localizados em diversos diretrios.
Um inodo contm informaes referentes aos bytes armazenados, tais
como:
Hardware e Arquitetura
21
www
@ Um diretrio recm criado ter 2 links, isto 2 nomes. Voc seria capaz de
22
Hardware e Arquitetura
Hardware e Arquitetura
23
24
Hardware e Arquitetura
Diretrios
Um diretrio basicamente um conjunto de nomes para
arquivos. De forma simples, ele associa um nmero de inode a um
nome de arquivo. Isto permite que um arquivo possua diversos
nomes. Os nomes podero estar em diretrios diferentes. Os
diversos nomes de um mesmo arquivo so chamados de links (ou
hard links) ou de symbolic links. Quando h necessidade de colocar um nome de
um arquivo em um diretrio que reside em um sistema de arquivos diferente do
arquivo em si (outra partio, disco ou mesmo computador), cria-se um link
simblico, symbolic link. Um link ou hard link apenas ir incrementar o campo
links do inodo. Um symbolic link alocar um inodo no sistema de arquivos que
conter o nome do arquivo referenciado.
Um arquivo pode ser referenciado por um caminho ou path. O caminho
pode ser absoluto ou relativo. O caminho absoluto contm todos os subdiretrios desde a raiz at o nome do arquivo. O caminho relativo faz referncia
ao diretrio de trabalho corrente. Se o caminho no comea com "/", ele
relativo.
Feb
Feb
Feb
Mar
Mar
Mar
Mar
11
11
11
24
24
24
24
13:22
09:34
13:22
08:35
08:35
08:40
09:08
.
..
Arquivo Normal
Diretorio
Dispositivo
FIFO
Link p sh -> /usr/sh
Hardware e Arquitetura
Alguns nomes so especiais, como:
/
.
..
~
diretrio raiz
Tambm utilizado para separar sub-diretrios em um path
diretrio corrente
diretrio anterior ou diretrio pai
diretrio pessoal ou home directory
Exemplo: ~hmarx o diretrio pessoal do usurio hmarx
diretrio raiz
utilitrios padro
arquivos utilizados no boot do Linux
dispositivos
configurao do sistema
utilitrios da plataforma, interface X Window, ...
arquivos temporrios
outros utilitrios gerais
spool de impresso, mail, fax, ...
boot, configurao e administrao
scripts de inicializao
25
26
Hardware e Arquitetura
Hardware e Arquitetura
27
Informaes
Parmetros do kernel e servios
Parmetros de rede
Sistemas de arquivos suportados pelo kernel
reas de swap em uso
Estatsticas do kernel
Informaes sobre gerenciamento de recursos
Informaes sobre o processo de PID pid
Informaes sobre o processo corrente
Parties de disco reconhecidas pelo kernel
Configurao geral do kernel na compilao
Verso do kernel e dados sobre a compilao
Argumentos passados no boot
28
Hardware e Arquitetura
Hardware e Arquitetura
29
Dispositivos
Os dispositivos do computador, tais como
memria, portas paralelas, portas seriais, discos
IDE, discos SCSI, CD-ROMs, cmeras, pen
drives, interfaces de vdeo, mouse, entre outros,
so representados por arquivos especiais,
normalmente localizados no diretrio /dev.
Estes arquivos so basicamente de dois
tipos:
b - bloco
Indica que as transferncias de dados so em blocos (como os setores de
um disco)
c - caracter
Indica que podem ser feitas transferncias byte a byte (como as
impressoras)
30
Hardware e Arquitetura
Dispositivos Especiais
H diversos dispositivos especiais que mapeiam estruturas de dados ou
processos do kernel. Entre eles esto o socket, representado pelo tipo s e o pipe,
representado pelo tipo p.
/dev/log
/dev/xconsole
Dispositivos Padro
Os dispositivos de armazenamento (tipo bloco), como disquetes, discos e
CD-ROMs (que possuem arquivos e diretrios), devem ser montados para que
possam ser utilizados pelos aplicativos tpicos do Linux. Dispositivos com
sistemas de arquivos FAT ou VFAT (formatados para DOS e Windows) podem
ser utilizados, sem a necessidade da montagem, atravs dos utilitrios mtools.
Na console (vdeo e teclado do computador), so criados 12 terminais
texto virtuais acessveis atravs das teclas + a +.
Normalmente, o terminal virtual 7 (/dev/tty7) desabilitado, dando
lugar ao terminal grfico do sistema X Window. Os terminais 8 a 12 no esto
habilitados por default. O terminal 10 (/dev/tty10) utilizado normalmente
para a sada de logs do sistema. Para comutar para um terminal texto virtual
estando em uma sesso grfica no X Window, utiliza-se as combinaces
++ a ++. Sesses grficas adicionais iro utilizar os terminais a
partir do terminal virtual 8.
Hardware e Arquitetura
31
Arquivos em /dev
/dev/hda, /dev/hdb, /dev/hdc, ...
/dev/sda, /dev/sdb, /dev/sdc, ....
/dev/hda1, /dev/sdc2, ...
/dev/ttyS0, /dev/ttyS1. ...
/dev/lp0, /dev/lp1, ...
/dev/tty1, /dev/tty2, ...
/dev/fd0, /dev/fd1, ...
/dev/pts/0, /dev/pts/1, ...
14c0-14cf 14d8-14db
14a0-14a7
14a8-14af
1400-143f 1440-147f
14d8-14db 14dc-14df
32
Hardware e Arquitetura
lsusb
002: ID
001: ID
002: ID
001: ID
Iniciando o Linux
33
3. Iniciando o Linux
Do boot ao Login
Ao ser ligado (ou reiniciado) um computador do tipo PC, o
primeiro programa a ser executado o BIOS (Basic Input Output
System) , localizado em uma memria ROM ou Flash. Da o
nome ROM BIOS ou Flash BIOS. Este programa realiza o teste
do hardware (Power On Self Test, ou simplesmente POST). So
verificados o processador, memria, dispositivos bsicos de E/S
e armazenamento. A seguir, ele carrega o primeiro setor do dispositivo de boot
(normalmente disquete, CD ou disco rgido). Este setor, denominado master boot
record (MBR), contm um pequeno programa (ou parte inicial dele) cujo
objetivo carregar o sistema operacional. Alguns setores de boot contm
programas que permitem a seleo do sistema operacional a ser carregado. Na
realidade, ele ir carregar o setor de boot da partio do sistema operacional
escolhido. Para o Linux existe o LILO (LInux LOader), o GRUB (GRand
Unified Bootloader), e outros. O openSuSE Linux utiliza como padro o LILO
nas verses at 7.3, e o GRUB a partir da verso 8.x..
No caso de um sistema Unix-like, como o Linux, o setor de boot carrega o
kernel, que responsvel por inicializar o hardware e executar o processo inicial
do sistema operacional, o init, e controlar todo o ambiente operacional do
computador. O processo init recebe o process ID (PID) 1. Ento, atravs das
definies no arquivo /etc/inittab, ele ir disparar os outros processos.
O Linux, como todo Unix, possui diferentes nveis de execuo,
chamados de runlevels. O runlevel identificado por um caracter, que
pode ser de 0 a 6, A, B, C, I ou S. O nvel inicial o definido pela linha
initdefault do arquivo /etc/inittab.
34
Iniciando o Linux
Significado
O processo ser redisparado se terminar.
O init esperar o processo terminar.
O processo ser executado na entrada do runlevel.
O processo ser executado durante o boot.
O init esperar, no boot, o processo terminar.
No ser executado.
O processo ser executado sob demanda sem alterar o
runlevel.
Runlevel inicial aps o boot.
O processo ser executado antes dos processos de boot.
O processo ser executado quando h queda de energia.
O init ir esperar o processo terminar.
O processo ser executado quando h queda de energia.
O init no ir esperar o processo terminar.
O processo ser executado quando do retorno da
energia.
O processo ser executado quando a bateria de uma
UPS estiver quase descarregada.
O processo ser executado quando o kernel informar ao
init que a mquina foi restaurada de um Suspend por
software.
O processo ser executado quando forem pressionadas
juntas as teclas ++.
O processo ser executado quando for pressionada a
sequncia definida no keymap como KeyboardSignal. O
default +.
Iniciando o Linux
35
Significado
Pra o sistema (halt)
Modo monousurio (single)
Multiusurio sem rede
Multiusurio com rede
- no utilizado Multiusurio, com rede e interface grfica
Reinicializa o sistema (reboot)
\
> Sob demanda
/
Inicializao
Modo supervisor - single (usado por scripts)
36
Iniciando o Linux
Ao
Muda o runlevel para o contido no arquivo
/etc/initrunlvl ou /var/log/initrunlvl
Fecha e reabre o /dev/initctrl (til em scripts
de inicializao que remontam o /dev)
Ativa a ao ctrlaltdel (tambm quando pressionadas
as teclas ++)
Ativa a ao kbrequest
Iniciando o Linux
37
38
Iniciando o Linux
Sesses
Para utilizar os recursos do Linux, um usurio precisa
abrir uma sesso. Para isto, ele deve se identificar
atravs de um cdigo (username) e de uma senha
(password). A cada usurio esto associados dois
nmeros: o user id, UID e o group id, GID. Estes dois
nmeros, gerados ou assinalados na criao do usurio,
sero utilizados pelo Linux para verificar as permisses
de acesso deste usurio.
Um usurio pode pertencer a diversos grupos, sendo que um deles o
primrio. H um usurio especial, o super usurio, chamado root, que possui
privilgios especiais.
Um sistema Unix-like como o Linux possui um esquema de
segurana que permite a um usurio normal utiliz-lo sem medo.
No h riscos de danificar o sistema apagando arquivos
essenciais. Ao contrrio, nenhuma verificao feita se o usurio
o root. Assim, procure utilizar sempre um usurio normal para
suas tarefas. Apenas utilize o usurio root quando precisar instalar,
configurar ou administrar o sistema.
Um usurio pode iniciar uma sesso em modo texto, em um terminal ou console
virtual (local ou remoto), ou ainda uma sesso em modo grfico utilizando a
interface X Window (veja o captulo 6).
Iniciando o Linux
39
40
Iniciando o Linux
Encerrando a sesso
Um usurio deve sempre fechar a sua sesso aps o trmino de suas
atividades. Por motivo de segurana, sempre que ausentar-se ou afastar-se do
terminal, ele deve travar ou fechar sua sesso.
Em um terminal texto, basta apenas terminar o shell utilizando o comando
exit, logout ou simplesmente digitando +D (sequncia padro para fim de
arquivo ou EOF - veja o comando stty).
Desligando o computador
Para desligar o computador, deve ser utilizado o comando
shutdown. Assim, o sistema ir terminar todos os
processos, fechar os arquivos, garantindo a integridade dos
dados nos discos. O shutdown tem a opo de parar (-h)
ou reiniciar (-r) o computador. Em computadores com
fonte ATX, o Linux desligar automaticamente o
computador aps parado (atingido o nvel de execuo 0).
Dependendo da configurao, apenas o super usurio poder realizar o
shutdown. Na interface grfica do KDM, ao selecionar Logout para ecerrar a sua
sesso, aparecer uma janela na qual o usurio dever, normalmente, informar a
senha do root para poder confirmar a operao de Shutdown ou Reboot, para
desligar ou reiniciar o computador, respectivamente.
Utilizando o Linux
41
4. Utilizando o Linux
Interpretador de comandos
O interpretador de comandos em modo texto do Linux, como em
qualquer sistema Unix-like, denominado shell.
Existem diversos tipos sua escolha: bash, sh, ksh, csh, tcsh, pdksh, zsh,
ash. A sintaxe dos comandos so ligeiramente diferentes, mas a funo do shell
a mesma: servir de interface entre o operador e o ambiente operacional. Na
interface grfica pode ser utilizado um terminal virtual (xterm, gnome-terminal,
konsole, entre outros) para executar o shell. O shell padro do Linux o bash Bourne Again Shell. O shell no apenas um simples interpretador de comandos:
ele tambm uma poderosa linguagem de programao.
Normalmente, aps o login, disparado o shell definido no
/etc/passwd para o usurio. Ele exibe o seu prompt, indicando estar pronto
para aceitar comandos. O prompt diferente para cada shell, e pode ser alterado
pelo usurio.
42
Utilizando o Linux
A sintaxe geral de um comando a ser digitado no prompt de um shell :
$ comando [ opes ] [ argumentos ]
= ls
= -l --inode
= /bin /tmp
Utilizando o Linux
43
Metacaracteres
Alguns caracteres ou seqncias de caracteres so tratados pelo shell e
substitudos antes de serem passados para o <comando>.
Alguns exemplos:
?
[ <conjunto> ]
[ ! <conjunto> ]
Exemplos:
hmarx@thor:~/docs> ls *
chap1
chap2
chap3
programA
hmarx@thor:~/docs> ls *[1-3]
chap1
chap2
chap3
programB1
hmarx@thor:~/docs> ls *[!1-3]
programaA
hmarx@thor:~/docs> ls *[A-B]?
programB1
programB2
hmarx@thor:~/docs>
programB1
programB2
programB2
44
Utilizando o Linux
Variveis
Variveis so definidas a partir de uma atribuio:
varivel=texto
Caso texto contenha caracteres especiais como os metacaracteres ou
espaos em branco, voc dever coloc-lo entre aspas (") ou apstrofos ().
Ou, ainda, preceder o caracter especial por \. O valor de uma varivel pode ser
obtido atravs de $varivel. Por conveno, os nomes das variveis so dados em
letras maisculas. O bash no ir expandir textos da forma $varivel em cadeias
utilizando apstrofos ( ).
hmarx@thor:~/arqs> PESSOA=Helio
hmarx@thor:~/arqs> EMPRESA="Starix Informatica"
hmarx@thor:~/arqs> echo $PESSOA da $EMPRESA
Helio da Starix Informatica
hmarx@thor:~/arqs> echo "$PESSOA"
Helio
hmarx@thor:~/arqs> echo $PESSOA
$PESSOA
hmarx@thor:~/arqs>
Utilizando o Linux
45
Variveis padro
O bash possui algumas variveis pr-definidas e que podem ser
redefinidas pelo usurio.
Exemplos:
PATH
PS1
PS2
PS3
HOSTNAME
HOME
USER
TERM
LANG
CDPATH
IFS
O bash possui ainda variveis que no podem ser redefinidas pelo usurio,
como:
?
!
0
1 .. 9
@
*
#
$
46
Utilizando o Linux
Utilizando o Linux
47
Expanso de parmetros
O sinal $ introduz a expanso de parmetros, a substituio de comandos e
a expanso aritmtica do bash. O parmetro pode estar entre chaves { } evitando
que caracteres especiais sejam tratados como nomes de variveis. O valor
retornado normalmente o valor do parmetro.
Utilizando operadores extras podemos ainda aumentar o poder desta
expanso, como visto abaixo:
Formato
${parmetro}
${parmetro:-palavra}
${parmetro:=valor}
${parmetro:?erro}
${parmetro:+palavra}
${parmetro:offset}
${parmetro:offset:tamanho}
${#parmetro}
${parmetro#padro}
${parmetro##padro}
${parmetro%valor}
${parmetro%%valor}
Valor retornado
valor do parmetro
palavra se parmetro nulo
se parmetro nulo atribui valor ao
parmetro
Exibe erro se parmetro for nulo
palavra se o parmetro no for nulo
substring do parmetro comeando em
offset
substring de tamanho caracteres do
parmetro comeando em offset
nmero de caracteres do parmetro
remove o menor texto, que bate com o
padro, do incio do valor do
parmetro
remove o maior texto, que bate com o
padro, do incio do valor do
parmetro
remove o menor texto, que bate com o
padro, do fim do valor do parmetro
remove o maior texto, que bate com o
padro, do fim do valor do parmetro
48
Utilizando o Linux
Operadores extras (cont.)
Formato
${parmetro/padro/texto}
${parmetro//padro/texto}
${!parmetro}
Valor retornado
substitui a primeira ocorrncia do
padro no valor do parmetro por
texto
substitui todas as ocorrncias de
padro no valor do parmetro por
texto
indireo : valor do valor do parmetro
Exemplos:
hmarx@thor:~> unset A
hmarx@thor:~> echo ${A:-texto}
texto
hmarx@thor:~> echo ${A:?Varivel no definida}
bash: A: Varivel no definida
hmarx@thor:~> A="Um texto muito longo"
hmarx@thor:~> echo ${#A}
20
hmarx@thor:~> echo ${A:3:11}
texto muito
hmarx@thor:~> echo ${A/muito/quase}
Um texto quase longo
hmarx@thor:~> A=/x/y/z/w/x
hmarx@thor:~> echo ${A%/x}
/x/y/z/w
hmarx@thor:~> echo ${A#/x}
/y/z/w/x
hmarx@thor:~> A=B
hmarx@thor:~> B=1234
hmarx@thor:~> echo $A
B
hmarx@thor:~> echo ${!A}
1234
hmarx@thor:~>
Utilizando o Linux
49
Comandos bsicos
Ao ser digitado um comando, o bash ir verificar se ele um comando
intrnseco, uma funo definida ou um programa executvel (script ou compilado)
que esteja em algum diretrio especificado na varivel PATH. Os diretrios so
separados por ":". A procura no PATH feita da esquerda para a direita. Para
tornar a procura eficiente, obash utiliza uma tabela hash para guardar o caminho
dos programas executados. Veja os comandos hash e rehash.
Mostraremos a seguir os principais comandos do Linux. A maioria deles
possui muitas opes. Sero dadas algumas das opes mais utilizadas. Para os
comandos do bash, a sintaxe geral pode ser vista atravs de
$ help [ comando ]
hmarx@thor:~> help case
case: case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
Selectively execute COMMANDS based upon WORD matching PATTERN.The
| is used to separate multiple patterns.
hmarx@thor:~>
A maioria dos comandos externos aceita ainda a opo --help, que mostra
um sumrio da sintaxe e opes. Para uma explicao mais detalhada, utilize o
man:
$ man [ opes ] [ seo ] comando
Para se obter uma lista das sees dos manuais que se referem a um
comando, utilize o man com a opo -k (ou apenas o comando apropos):
$ man -k comando
hmarx@thor:~> man -k gzip
gzip (1)
- compress or expand files
zforce (1)
- force a .gz extension on all gzip files
MIME::Decoder::Gzip64 (3pm) - decode a "base64" gzip stream
hmarx@thor:~>
50
Utilizando o Linux
Alm da opo -k, outras opes interessantes do man so:
-h, --help
-a, --all
-w, --where
-T disp
-V, --version
Utilizando o Linux
51
pwd
Mostra o diretrio corrente.
hmarx@thor:~> pwd
/home/hmarx
hmarx@thor:~>
echo [ -n ] texto
Imprime a linha de texto,
opcionalmente (-n) sem mudar
de linha.
52
Utilizando o Linux
source arquivo
. arquivo
L e executa os comandos do arquivos arquivo.
Este comando muito utilizado nos scripts de inicializao dos servios do
Linux para ler os parmetros de configurao definidos em varveis do bash.
Por exemplo, no script /sbin/SuSEfirewall2 encontramos:
test -e /etc/sysconfig/network/config && . /etc/sysconfig/network/config
Utilizando o Linux
53
caracter
d
b
c
p
l
s
54
Utilizando o Linux
Exemplos:
hmarx@thor:/usr/src> ls -l
total 4
drwxr-xr-x 10 root root 1024 Mar 14 18:51 epca
lrwxrwxrwx
1 root root
17 Nov 8 06:46 linux -> linux-2.4.19.SuSE
drwxr-xr-x 15 root root 4096 Jan 26 14:30 linux-2.4.19.SuSE
drwxr-x--7 root root 1024 Dec 22 2001 packages
hmarx@thor:/usr/src> ls -la
total 6
drwxr-xr-x
5 root roor 1024 Sep 22 2001 .
drwxr-xr-x 31 root root 1024 Jul 25 11:02 ..
drwxr-xr-x 10 root root 1024 Mar 14 18:51 epca
lrwxrwxrwx
1 root root
17 Nov 8 06:46 linux -> linux-2.4.19.SuSE
drwxr-xr-x 15 root root 4096 Jan 26 14:30 linux-2.4.19.SuSE
drwxr-x--7 root root 1024 Dec 22 2001 packages
hmarx@thor:/usr/src> ls -F
epca/
linux@
linux-2.4.19.SuSE/ packages/
hmarx@thor:/usr/src> ls -QF
"epca"/
"linux"@
"linux-2.4.19.SuSE"/ "packages"/
hmarx@thor:/usr/src> ls --full-time -d
drwxr-xr-x 7 root root 1024 2001-12-22 09:33:07.000000000 -0300 packages/
hmarx@thor:/usr/src>
Utilizando o Linux
55
hmarx@thor:~/test> ls -l
total 0
hmarx@thor:~/test> mkdir sub1
hmarx@thor:~/test> ls -l
total 1
drwxr-xr-x
2 hmarx
starix 1024 Mar 26 23:54 sub1
hmarx@thor:~/test> mkdir -p X/Y/Z
hmarx@thor:~/test> ls -R
.:
X sub1
./X:
Y
./X/Y:
Z
./X/Y/Z:
./sub1:
hmarx@thor:~/test>
56
Utilizando o Linux
cd [ diretrio ]
Muda para o diretrio especificado, ou para o home directory caso diretrio
no seja fornecido. Pode-se utilizar o diretrio - para voltar ao diretrio
anterior.
hmarx@thor:~/test> pwd
/home/hmarx/test
hmarx@thor:~/test> cd sub1
hmarx@thor:~/test/sub1> pwd
/home/hmarx/test/sub1
hmarx@thor:~/test/sub1> cd /home/hmarx/test
hmarx@thor:~/test> cd
hmarx@thor:~> pwd
/home/hmarx
hmarx@thor:~>
Utilizando o Linux
57
popd [ -n ] [ +n | -n ]
Remove o n-simodiretrio da pilha em DIRSTACK.
Algumas opes:
-n
No muda de diretrio, apenas manipula a
pilha em DIRSTACK
Utiliza o n-simo diretrio da contado a
+n
partir da esquerda na lista mostrada pelo
comando dirs
-n
Utiliza o n-simo diretrio da contado a
partir da direita na lista mostrada pelo
comando dirs
dirs [ -clp ] [ +n | -n ]
Algumas opes:
-c
-l
-p
-v
+n
-n
Limpa a pilha
Imprime a lista no formato longo (no usa o
caracter ~ para o diretrio pessoal).
Imprime um diretrio por linha
Imprime um diretrio por linha prefixado
pelo ndice posicional
Imprime o n-simo diretrio da contado a
partir da esquerda na lista mostrada pelo
comando dirs utilizado sem argumentos
Imprime o n-simo diretrio da contado a
partir da direita na lista mostrada pelo
comando dirs utilizado sem argumentos
58
Utilizando o Linux
Utilizando o Linux
59
60
Utilizando o Linux
char
octal
ASCII ou escaped chars
unsigned short em decimal
float
unsigned short em hexadecimal
short em decimal
long em decimal
short em octal
short em hexadecimal
long em hexadecimal
float de 4 bytes
float de 8 bytes
Utilizando o Linux
61
62
Utilizando o Linux
brancos
Utilizando o Linux
63
O comando
hmarx@thor:~> tr "[A-Z]" "[a-z]" < arq.orig > arq.novo
64
Utilizando o Linux
arquivo.txt
Utilizando o Linux
65
66
Utilizando o Linux
/regexp/
Utilizando o Linux
67
68
Utilizando o Linux
Utilizando o Linux
printf
printf
printf
printf
69
[ > arquivo ]
[ >> arquivo ]
[ | arquivo ]
[ >& arquivo ]
70
Utilizando o Linux
Para manipulao bit a bit, awk ainda fornece: and(v1, v2), compl(x),
lshift(val, n), or(v1, v2), rshift(val, n), e xor(v1, v2).
Um programa bem conhecido pode ser escrito em awk:
hmarx@thor:~> awk BEGIN { print "hello world !" }
hello world !
hmarx@thor:~>
expr expresso
Avalia expresses aritmticas e lgicas, imprimindo o resultado na sada
padro.
Uma expresso pode conter os operadores |, &, <, <=, =, !=, >=, >, +, -, *, /,
% e ainda estar entre parenteses: ( expresso ).
Para tratamento de cadeias de caracteres, podem ser utilizados:
string : expresso-regular
ou match string expresso-regular
substr string posio tamanho
index string caracteres
length string
quote token
O comando expr muito til quando operamos com variveis que
representam nmeros no bash:
hmarx@thor:~> I=135
hmarx@thor:~> I=expr $I + 1
hmarx@thor:~> echo $I
136
hmarx@thor:~>
Utilizando o Linux
71
72
Utilizando o Linux
Por exemplo, a funo exponencial da biblioteca matemtica pode ser definida
no bc padro POSIX como:
scale = 20
/*
* Usa o fato de que e^x = (e ^ (x/2))^2
* Se x um valor pequeno, usamos a srie
* e^x = 1 + x + x^2/2! + x^3/3! + ...
*/
define e(x)
{
auto a, d, e, f, i, m, v, z;
/* Verifica o sinal de x */
if (x < 0) { m = 1; x = -x; }
/* Pre-condiciona x. */
z = scale;
scale = 4 + z + .44*x;
while (x > 1) { f += 1; x /= 2; }
/* Inicializa as variveis */
v=1+x
a=x
d=1
for (i = 2; 1; i++)
{
e = (a *= x) / ( d *= i)
if (e == 0)
{
if (x > 0)
while (f--) v = v*v;
scale = z
if (m) return(1/v);
return(v/1);
}
v += e
}
}
Utilizando o Linux
73
-l
starix
4094
starix
1024
passwd PassWord
-l
starix
starix
4094
1024
74
Utilizando o Linux
Utilizando o Linux
75
76
Utilizando o Linux
Utilizando o Linux
77
78
Utilizando o Linux
Utilizando o Linux
79
80
Utilizando o Linux
Mar 30
Mar 30
Apr 4
Apr 4
16:02 (console)
22:30
14:39 (acer.starix.br)
16:03
w [ opes ] [ usurio ]
Mostra quem est logado e o que est fazendo.
Algumas opes:
-h
No mostra o cabealho
-l
Listagem longa (default)
-s
Listagem curta
-V
Mostra a verso
last [ opes ] [ usurio ... ] [ tty ... ]
Lista as ltimas sesses (do(s) usurio(s)s) nos terminais tty. O usurio
especial reboot mostra as reinicializaes do sistema.
Algumas opes:
Mostra n linhas
-n, -n n
-a
Mostra o nome da mquina na ltima
coluna
-R
No mostra o nome do terminal ou d
a mquina utilizada
Utilizando o Linux
81
id [ opes ] [ usurio ]
Imprime informaes sobre o usurio (ou o corrente)
Algumas opes:
-g, --group
Exibe o ID do grupo do usurio
-G, --groups
Exibe os IDs grupos do usurio
-n, --name
Exibe o nome em vez do(s) ID(s)
-u, --user
Exibe o ID do usurio
hmarx@thor:~> id -G -n hmarx
starix root uucp users disk trusted develop audio
hmarx@thor:~> id -g -n hmarx
starix
hmarx@thor:~>
82
Utilizando o Linux
passwd
passwd
passwd
passwd
[ -f | -s ] [ usurio ]
[ -g ] [ -r | -R ] grupo
[ -x max ] [ -n min ] [ -w aviso ] [ -i inativo ] usurio
{ -l | -u | -d | -S } usurio
Utilizando o Linux
83
newgrp [ -l ] [ grupo ]
sg grupo -c comando
- , -l, --login
Transforma o shell no login shell
Passa o comando para o shell
-c, --command=comando
Executa um shell como um grupo substituto (ou como root).
O comando sg no substitui o shell do usurio.
sudo [ opes ] ... comando
Executa um comando como outro usurio (ou como root). O usurio dever
ser incluido em /etc/sudoers.
Algumas opes:
-l
Lista os comandos executveis via sudo
-L
Lista as opes definveis para o sudo
Executa como usurio (nome ou UID) e
-u usurio
no o root
-p prompt
Exibe o prompt para pedir a senha
-b
Executa em background
-k
Invalida a temporizao da senha do
usurio
84
Utilizando o Linux
gpasswd grupo
gpasswd -a usurio grupo
gpasswd -d usurio grupo
gpasswd -R grupo
gpasswd -r grupo
gpasswd [ -A usurio, ... ] [ -M usurio, ... ] grupo
Administra grupos de usurios. utilizado sem opes para alterar a senha de
um grupo.
Opes:
-a
Adiciona o usurio ao grupo grupo
-d
Remove o usurio do grupo grupo
-r
Remove a senha do grupo grupo
-R
Inibe o acesso ao grupo atravs de newgrp
-A
Define administradores do grupo grupo
-M
Define membros do grupo grupo
Utilizando o Linux
85
uname [ opes ]
Exibe informaes sobre o sistema.
Algumas opes:
-s, --sysname
Exibe o nome do sistema operacional
-r, --release
Exibe o release do sistema operacional
-v, --version
Exibe a verso do sistema operacional
-m, --machine
Exibe o tipo da CPU
-n, --nodename
Exibe o nome da mquina na rede
-p, --processor
Exibe o modelo do processador
-a, --all
Exibe todas as informaes
hmarx@thor:~> uname -a
Linux thor 2.4.10-64GB-SMP #1 SMP Fri Sep 28 17:26:36 GMT 2001 i686 unknown
hmarx@thor:~>
tty [ opes ]
Exibe o nome do terminal ou apenas retorna cdigo de erro.
Algumas opes:
-s, --silent, ---quiet
Apenas retorna o cdigo de erro
--help
Exibe uma ajuda sumria
--version
Exibe a verso do tty
hmarx@thor:~> tty
/dev/pts/2
hmarx@thor:~>
86
Utilizando o Linux
setterm [ opes ]
Altera atributos de um terminal definido na varivel TERM atravs de uma
cadeia de caracteres definida pelas suas caractersticas no terminfo.
Caractersticas no suportadas so ignoradas.
Algumas opes:
Usa nome em vez do contedo de TERM
-term nome
-clear
Limpa a tela e coloca o cursor na primeira
linha e coluna.
-reset
Reinicializa o terminal
-cursor [on | off ]
Habilita ou desabilita o cursor
-repeat [on | off ]
Habilita ou desabilita repetio do teclado
Salva o contedo da tela da console virtual
-dump n
n no arquivo screen.dump ou no definido
pela opo -file
-append n
Adiciona o contedo da tela da console
virtual n no arquivo screen.dump ou
no definido pela opo -file
-file arq
Define o arquivo de sada para as opes
-dump e -append
-msg [ on | off ]
Habilita ou desabilita mensagens do kernel
no terminal
-msglevel n
Muda o nvel de log das mensagens para n
(de 1 a 8).
Colocar o monitor no modo de suspenso
-powersave on | vsync
VESA vsync
-powersave hsync
Colocar o monitor no modo de suspenso
VESA hsync
-powersave powerdown
Colocar o monitor no modo de suspenso
VESA powerdown
-powesave off
Inibe o modo de suspenso do monitor
Define em n minutos (1 a 60) o tempo de
-powerdown n
desligamento do monitor, ou inibe o
desligamento do monitor se n = 0
Utilizando o Linux
87
stty [ opes ]
Exibe ou altera as caractersticas e modo de operao do terminal.
Algumas opes:
-a, --all
-g, --save
-F dispositivo, --file dispositivo
caracterstica valor
As caractersticas mais comuns so:
Caracterstica
eof c
eol c
erase c
intr c
lnext c
kill c
quit c
rprnt c
start c
stop c
susp c
werase c
cols N
columns N
N
ispeed N
ospeed N
speed
Significado
Caracter para fim de arquivo
Caracter para fim de linha
Caracter para apagar tecla digitada
Caracter para enviar o sinal SIGINT
Para enviar o prximo caracter sem
tratar
Caractrer para limpar a linha corrente
Caracter para enviar o sinal SIGQUIT
Caracter para reimprimir a linha
Caracter para resumir a sada
Caracter para suspender a sada
Caracter para enviar o sinal SIGSUSP
Caracter para apagar a ltima palavra
Informa ao kernel que o terminal tem
N colunas
Muda o baud rate para N
Muda o baud rate de recepo para N
Muda o baud rate de transmisso para
N
Mostra a velocidade do terminal
default
+D
no definido
+? ou
+C
+V
+U
+\
+R
+Q
+S
+Z
+W
no definido
no definido
no definido
no definido
no definido
88
Utilizando o Linux
Significado
Desabilita o controle de modem
Permite a entrada de caracteres (no pode ser usado na entrada
padro)
Habilita o controle de fluxo atravs de CTS e RTS
Usa 2 bits de stop (ou 1 se desabilitado)
Envia hangup quando o ltimo processo fechar o terminal
Gera e testa o bit de paridade
Gera paridade mpar
Envia um break na linha
Traduz CR (carriage return) para LF (line feed) na entrada
ignora o CR
Ignora caracteres com erro de paridade
Tarduz LF para CR na entrada
Habilita verificao de paridade
Zera o bit 7 na entrada
Habilita o envio de XON/XOFF
Habilita o controle de fluxo XON/XOFF
Traduz CR para LF na sada
Traduz LF para LF-CR na sada
O caracter LF gera a volta do cursor (CR)
No imprime CR na primeira coluna
Apaga caracteres usando backspace-espao-backspace
Ecoa os caracteres digitados
Converte maisculas para minsculas
Converte minsculas para maisculas
Permite qualquer caracter resumir a saida (e no apenas o
definido em start)
Habilita os caracteres especiais definidos em erase, kill,
werase, e rprnt
Utilizando o Linux
E, em especial, para restaurar as caractersticas do terminal:
sane
o mesmo que
cread -ignbrk brkint -inlcr -igncr icrnl
-ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl
onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0
vt0 ff0 isig icanon iexten echo echoe echok -echonl
-noflsh -xcase -tostop -echoprt echoctl echoke,
e todos os caracteres especiais para os valores default.
89
90
Utilizando o Linux
Utilizando o Linux
91
92
Utilizando o Linux
df [ opes ] arquivos
Mostra as informaes sobre o sistema de arquivos onde os arquivos esto.
Algumas opes:
-h, --human-readable
Exibe tamanhos em potncia de 1024
-k, --kilobytes
Utiliza bloco de 1024 bytes
-H, --si
Exibe tamanhos em potncia de 1000
-l, --local
Limita aos sistemas de arquivos locais
-m, --megabytes
Exibe tamanhos em Megabytes
-T, --print-type
Exibe o tipo dos sistemas de arquivos
-i, --inodes
Exibe informaes sobre inodos
du [ opes ] arquivos
Resume a utilizao do disco de cada arquivo e diretrios.
Algumas opes:
-a, --all
Contabiliza todos os tipos de arquivos
-h, --human-readable
Exibe tamanhos em potncia de 1024
-k, --kilobytes
Utiliza bloco de 1024 bytes
-H, --si
Exibe tamanhos em potncia de 1000
-b, --bytes
Exibe tamanho em bytes
-c, --total
Exibe total
-m, --megabytes
Exibe tamanho em Megabytes
-s, --sumarize
Exibe sub-totais
-L, --dereference
Dereferencia os symbolic links
Utilizando o Linux
93
free [ opes ]
Exibe o total de memria fsica e de swap livre, incluindo a memria
compartilhada e buffers usados pelo kernel.
Algumas opes:
-b
Total em bytes
-k
Total em kilobytes
-m
Total em megaytes
-o
Inibe impresso da linha de ajuste de
buffers (subtraido/adicionado memria)
-t
Exibe o total
-s segundos
Exibe continuamente de segundos em
segundos
94
Utilizando o Linux
Utilizando o Linux
95
fg [ job ]
% [ job ]
Coloca o job especificado (nome do processo ou nmero) em foreground.
bg [ job ]
Coloca o job especificado em background. muito til quando um
processo em foreground suspenso por +Z (que gera o sinal SIGSTOP).
jobs [ opes ] [ job ]
Lista os processos ativos, disparados em background.
Algumas opes:
-l
Exibe o PID e outras informaes
-p
Exibe apenas o PID
-r
Exibe apenas os jobs em execuo
-s
Exibe apenas os jobs parados (stopped)
at [ -V ] [ -q fila ] [ -f arq ] [ -mldbv ] hora
atq -c job [ job ] ...
atrm [ -V ] job [ job ] ...
Enfilera, lista ou remove processos para execuo
Algumas opes:
-q fila
Usa a fila fila.Deve ser uma letra do
conjunto [a-zA-Z].
-m
Envia um e-mail ao usurio quando o job
terminar
-d
Apelido para atrm (remove processos)
-l
Apelido para atq (lista processos)
-v
Mostra a hora que o job ser executado
L o job do arquivo arq e no da entrada
-f arq
padro
96
Utilizando o Linux
0-59
0-23
0-31
0-12 (ou nomes)
0-7 (0 ou 7 domingo ou nomes)
Cada um dos primeiros cinco campos pode conter uma lista de faixas
separadas por vrgula. Uma faixa pode ser seguida por /nmero que significa
saltar o nmero dentro da faixa. Por exemplo, 0-8/2 significa 0, 2, 4, 6, 8.
Utilizando o Linux
97
top [ opes ]
Mostra os processos em execuo. Permite enviar um sinal a um processo ou
ainda alterar a prioridade dele.
Algumas opes:
d atraso em segundos
Tempo entre exibies
Nmero de processos a exibir
p nmero do processo
b
Modo batch
s
Modo seguro
(inibe comandos perigosos)
C
Totaliza estado das CPUs
k
Envia um sinal a um processo
r
Altera a prioridade (renice) de um
process
USER
hmarx
hmarx
root
hmarx
hmarx
root
root
root
root
root
root
root
root
root
root
bin
98
Utilizando o Linux
Utilizando o Linux
renice prioridade [ [-p] pid ... ] [ [-g] pgid ... ] [ [-u] users ... ]
Altera a prioridade de um comando em execuo.
Algumas opes:
Nmero(s) do(s) processo(s)
-p pid
-g pgid
GID dos processos
Nome(s) do(s) usurio(s)
-u user
time
[ -p ] comando [ argumentos ]
99
100
Utilizando o Linux
xargs
Utilizando o Linux
101
ou
ou
ou
-not expr
expr1 -and expr2
expr1 -or expr2
102
Utilizando o Linux
Utilizando o Linux
103
Significado
sticky bit
SGID
SUID
r para o dono
w para o dono
x para o dono
r para o grupo
w para o grupo
x para o grupo
r para os outros
w para os outros
x para os outros
O comando ls ir mostrar, no
lugar do x correspondente:
S
s
T
t
p/ SUID ou SGID
p/ SUID ou SGID e execute
p/ Sticky bit
para Sticky bit e execute
hmarx@thor:~/test> ls -l arquivo
-rw------- 2 hmarx
starix
1736 Mar 26 12:27 arquivo
hmarx@thor:~/test > chmod 644 arquivo
hmarx@thor:~/test> ls -l arquivo
-rw-r--r-- 2 hmarx
starix
1736 Mar 26 12:27 arquivo
hmarx@thor:~/test> chmod g+w,o-r arquivo
hmarx@thor:~/test> ls -l arquivo
-rw-rw---- 2 hmarx
starix
1736 Mar 26 12:27 arquivo
hmarx@thor:~/test>
104
Utilizando o Linux
em
Utilizando o Linux
105
dirname nome
Imprime o nome retirando o ltimo componente do diretrio.
.dat
106
Utilizando o Linux
history [ -c ] [ -d offset ] [ n ]
history [ -w ] [ -r ]
Mostra os ltimos n comandos executados, ou apaga o comando de nmero n
do histrico. Um comando anterior pode ser referenciado utilizando o
operador !, seguido do nmero do comando.
Algumas opes:
-w arquivo
Salva o histrico no arquivo arquivo
-r arquivo
L o histrico do arquivo arquivo
-a arquivo
Adiciona o histrio ao arquivo arquivo
-c
Apaga o histrico
Apaga a entrada offset do histrico
-d offset
hmarx@thor:~> history 5
512 cd
513 basename /x/y/z/w/arquivo.dat
514 basename /x/y/z/w/arquivo.dat .dat
515 dirname /x/y/z/w/arquivo.dat
516 dirname ~hmarx
hmarx@thor:~> !514
basename /x/y/z/w/arquivo.dat .dat
arquivo
hmarx@thor:~>
Utilizando o Linux
107
Meta-teclas
A tecla indica que a prximo caracter teclado ser uma meta-tecla. So
representadas por M-x nas documentaes do bash. As mais utilizadas so:
+t
+*
+{
+b
+f
+d
+
+<
+>
+ +E
+u
+l
+c
108
Utilizando o Linux
dd [ opes ] ...
Copia um arquivo, convertendo ou formatando de acordo com as opes.
(Note que um arquivo pode ser um dispositivo.)
Algumas opes:
bs=tamanho do bloco em bytes para leitura e escrita
cbs=nmero de bytes a converter de cada vez
conv=lista de converses separadas por vrgulas
ascii
de EBCDIC para ASCII
ebcdic
de ASCII para EBCDIC
lcase
transforma em minsculas
ucase
transforma em maisculas
swab
troca cada par de bytes
ibs=nmero de bytes do bloco para leitura
if=arquivo de entrada
obs=nmero de bytes do bloco para escrita
of=arquivo de sada
skip=nmero de blocos a saltar na entrada
seek=nmero de blocos a saltar na sada
Os blocos e bytes podem ser dados com sufixos multiplicativos como:
10c
10 caracteres de 1 byte
5w
5 palavras (2 bytes)
8b
8 blocos de 512 bytes
15k
15 blocos de 1024 bytes
3M
3.145.728 bytes (3 Mbytes)
hmarx
hmarx@thor:~/test>
starix
Utilizando o Linux
109
110
Utilizando o Linux
Backup
tar opes [ arquivos ] ...
TAR : Tape Archive and Restore
o programa padro de backups do Unix.
Algumas opes:
t
Lista o backup
x
Extrai o contedo do backup
c
Cria um backup
z
Faz backup comprimido com gzip
j
Faz backup comprimido bzip2
f
Informa arquivo ou dispositivo de backup
v
Prolixo (verbose)
u
Atualiza o backup
zip opes [ arquivos ] ...
Cria arquivos .ZIP
Algumas opes:
-T
-v
-c
-r
-f
-m
-u
Testa o arquivo.ZIP
Prolixo (verbose)
Cria comentrios
Recursivo
Apenas arquivos alterados (freshen)
Move os arquivos
Apenas arquivos alterados ou novos
Utilizando o Linux
111
112
Utilizando o Linux
fsf
eom
Utilizando o Linux
113
Operadores do bash
Redirecionamento de E/S
O bash permite que a entrada ou a sada de um processo seja
redirecionada para um arquivo. Para isto, so utilizados os operadores abaixo:
<
>
>>
2>
>&n
m>&n
<<texto
114
Utilizando o Linux
Pipeline
A sada de um programa pode se tornar a entrada para outro. Basta utilizar
o operador "|". Pode-se ento gerar um pipeline ou linha de montagem:
$ programa1 | programa2 | programa 3 | ...
Cada programa processa a sada do anterior e fornece a entrada para o
prximo. Tarefas complexas podem ser feitas utilizando diversos aplicativos
simples com funes especficas.
rev
Separador de comandos
Voc pode digitar diversos comandos em uma nica linha: basta separlos por ";".
hmarx@thor:~/arqs> pwd
/home/hmarx
hmarx@thor:~/arqs> date
Fri Mar 30 19:38:39 BRT 2001
hmarx@thor:~/arqs> pwd ; date ; who
/home/hmarx
Fri Mar 30
19:38:48 BRT 2001
root
:0
Mar 30
18:12 (console)
root
ttyp0
Mar 30
18:45
hmax
ttyp1
Mar 30
16:06
hmarx@thor:~/arqs>
Utilizando o Linux
115
116
Utilizando o Linux
Agrupando comandos
Um conjunto de comandos pode ser agrupado para que o resultado seja
equivalente a um s utilizando chaves, "{" e "}". Um uso tpico o
redirecionamento da sada de todos os comandos do conjunto. Os comandos sero
executados pelo mesmo shell.
$ { comando1 ; comando2 ; ... }
hmarx@thor:~> A=outer ; { A=inner; echo $A ; } ; echo $A
inner
inner
hmarx@thor:~>
Utilizando o Linux
117
Substituio de comandos
A sada de um comando pode substituir um comando utilizando as formas
$(comando) ou comando (crases). A primeira forma mais interessante por
permitir aninhamento. Isto muito utilizado em avaliaes de expresses a serem
assinaladas a variveis.
hmarx@thor:~> A=123
hmarx@thor:~> A=expr $A + 1
hmarx@thor:~> echo $A
124
hmarx@thor:~> echo Estamos no ano de $(date +%Y) \!
Estamos no ano de 2009 !
hmarx@thor:~> echo "$(host -t A $(uname -n) |
> sed s/^[^0-9]*//) o IP da minha mquina"
192.168.200.3 o IP da minha mquina
hmarx@thor:~>
118
Utilizando o Linux
Expresses aritmticas
O comando:
$ (( expresso ))
retornar 0 se a expresso retornar um valor diferente de 0. Podem ser
utilizados tambm os operadores da linguagem C. Abaixo so listados os
operadores aceitos pelo bash em ordem de precedncia descendente.
Operadores
id++
id-++id
--id
+
!
~
**
*
/
%
+
<<
>>
<= >= < >
==
!=
&
^
|
&&
||
expr ? expr : expr
= *= /= += -=
<<=
>>=
&=
^=
|=
expr1 , expr2
Significado
Ps-incremento e Ps-decremento da varivel id
Pr-incremento e Pr-decremento da varivel id
Sinais unrios mais e menos
Negao lgica bit a bit, AND
Exponenciao
Multiplicao, diviso e mdulo (resto da
diviso)
Adio e subtrao
Deslocamento para a esquerda e direita
Comparao de desigualdade
Comparao de igualdade
Operador E bit a bit (AND)
Operador OU exclusivo (XOR)
Operador OU inclusivo bit a bit (OR)
Operador E lgico (AND)
Operador OU lgico (OR)
Expresso condicional
Assinalamento
Execuo sequencial
Utilizando o Linux
119
Exemplos:
hmarx@thor:~>
51
hmarx@thor:~>
512
hmarx@thor:~>
hmarx@thor:~>
hmarx@thor:~>
A=11
hmarx@thor:~>
45
hmarx@thor:~>
31
hmarx@thor:~>
2
hmarx@thor:~>
hmarx@thor:~>
21
hmarx@thor:~>
120
Utilizando o Linux
Expresses condicionais
O comando:
$ [[ expresso ]]
Significado
O arquivo de nome arquivo existe
O arquivo existe e dispositivo tipo bloco
O arquivo existe e dispositivo tipo caracter
O arquivo arquivo diretrio
O arquivo arquivo existe
O arquivo arquivo existe e um arquivo normal
O arquivo arquivo existe e tem atributo SGID
O arquivo arquivo existe e um link simblico
O arquivo arquivo existe e tem atributo sticky
O arquivo arquivo existe e um named pipe
O arquivo arquivo existe e tem permisso de leitura
O arquivo arquivo existe e tem tamanho maior que zero
O descritor de arquivos fd est aberto e um terminal
O arquivo arquivo existe e tem atributo SUID
O arquivo arquivo existe e tem permisso de escrita
O arquivo arquivo existe e tem permisso de execuo
O arquivo arquivo existe e pertence ao usurio
O arquivo arquivo existe e pertence ao grupo
O arquivo arquivo existe e um link simblico
O arquivo arquivo existe e um socket
O arquivo arquivo existe e foi modificado aps a ltima
vez que foi lido
A opo opo do shell est habilitadas
O tamanho do string zero
O tamanho do string no zero
O tamanho do string no zero
Utilizando o Linux
Operador
arquivo1 -nt arquivo2
arquivo1 -ot arquivo2
arquivo1 -ef arquivo2
string1 == string2
string1 != string2
string1 < string2
string1 > string2
arg1 -eq arg2
arg1 -ne arg2
arg1
arg1
arg1
arg1
-lt
-le
-gt
-ge
arg2
arg2
arg2
arg2
121
Significado
O arquivo1 mais novo que o arquivo2
O arquivo1 mais antigo que o arquivo2
Os arquivos arquivo1 e arquivos2 so o
mesmo inodo do mesmo dispositivo
O string1 igual ao string2
O string1 diferente do string2
O string1 lexicograficamente menor que o
string2
O string1 lexicograficamente maior que o
string2
Os argumentos arg1 e arg2 so
aritmeticamente iguais
Os argumentos arg1 e arg2 so
aritmeticamente diferentes
arg1 aritmeticamene menor que arg2
arg1 aritmeticament menor ou igual a arg2
arg1 aritmeticament maior que arg2
arg1 aritmeticament maior ou igual a arg2
Exemplos:
hmarx@thor:~> [[ ! -a DIR ]] && mkdir DIR && echo Diretrio DIR criado
Diretrio DIR criado
hmarx@thor:~> [[ abacate < abacaxi ]] && echo Abacate precede Abacaxi
Abacate precede Abacaxi
hmarx@thor:~> [[ laranja > banana ]] || echo Laranja precede Banana
hmarx@thor:~> [[ -N /var/spool/mail/hmarx ]] && eho Tenho e-mail novo
Tenho e-mail novo
hmarx@thor:~>
122
Utilizando o Linux
Comandos condicionais
Como uma linguagem de programao, o bash possui mecanismos para
tomadas de deciso ao executar os comandos. Convenciona-se que verdade 0
(zero) e falso qualquer valor diferente de 0. Isto vem do fato que a condio
pode ser, e normalmente , o resultado da execuo de um programa. O valor 0
(zero) significa nenhum erro.
Lembre-se:
Condicional simples:
if condio ;
then
comandos ;
fi
Utilizando o Linux
123
Testes repetidos !
Execuo condicional
Podem ser utilizados os operadores lgicos && e ||, significando E e OU,
respectivamente.
Assim, em:
$ comando1 && comando2
o comando2 s ser executado se o comando1 retornar 0 (execuo OK).
equivalente ao comando:
if comando1 ; then comando2 ; fi
E em:
$ comando1 || comando2
o comando2 s ser executado se o comando1 retornar um valor diferente
de 0 (falhar). equivalente ao comando:
if ! comando1 ; then comando2 ; fi
124
Utilizando o Linux
Comandos iterativos
Teste de continuao do loop
while condio
do
comandos
done
Teste de fim do loop
until condio
do
comandos
done
hmarx@thor:~> for i in A B C D
> do
>
echo $i
> done
A
B
C
D
hmarx@thor:~>
Loop controlado
for nome [ in lista de palavras ]
do
comandos
done
Comando de seleo mltipla
case valor
padro-1 )
comandos-1
;;
padro-2 )
comandos-2
;;
...
esac
Utilizando o Linux
...
case $OPT in
help|ajuda)
Help
;;
start|iniciar)
StartService
;;
stop|parar)
StopService
;;
*)
echo "Use $0 {help | start | stop}"
echo "
$0 {ajuda | iniciar | parar}"
;;
esac
...
125
126
Utilizando o Linux
Utilizando o Linux
127
test [ expresso ]
test [ --help | --version ]
[ expresso ]
Comando interno do bash que avalia a expresso condicional expresso
retornando o resultado. O comando [ um sinnimo para o comando test mas que
obriga a existncia do ] para fechar o comando. Veja Expresses condicionais
para as opes e operadores utilizados na expresso.
128
Utilizando o Linux
Comandos Administrativos
A seguir so mostrados alguns comandos principais utilizados para a
administrao do sistema Linux. Alguns deles s pode ser executado pelo super
usurio.
umask [ -p ] [ -S ] [ modo ]
Comando interno do bash exibe ou define a mscara de criao de
arquivos. O modo pode ser dado na forma de um nmero octal ou
utilizando uma lista utilizando o formato u=rwx,g=rwx, o=rwx
Algumas opes:
-S
Exibe a mscara no formato t=rwx
-p
Exibe apenas a mscara no formato octal
ulimit [ opes ] [ limite ]
Comando interno do shell exibe ou altera os limites impostos na utilizao
dos recursos do sistema pelos processos disparados pelo shell.
Algumas opes:
-S
Utiliza o limite soft
-H
Utiliza o limite hard
-a
Exibe todos os limites
-c
Tamanho do arquivo core
-d
Tamanho mximo do segmento de dados
-f
Tamanho mximo dos arquivos criados
-l
Tamanho da memria travada
-m
Tamanho mximo da memria residente
-n
Nmero mximo de arquivos abertos
-p
Tamanho do buffer do pipe
-s
Tamanho mximo da pilha
-t
Tempo mximo de uso de CPU
-u
Nmero mximo de processos
-v
Tamanho da memria virtual
Utilizando o Linux
129
Campo de comentrio do
/etc/passwd.
Define dir como diretrio pessoal.
Define a data de expirao no formato
YYYY-MM-DD.
Define em quantos dias a conta do usurio
ser desabilitada aps a expirao da
senha.
Define o grupo inicial (de login).
Define a lista de grupos adicionais.
Cria o diretrio pessoal e copia o esqueleto
para ele, se no existir.
Senha criptografada. O default desabilitar
a conta.
Define o login shell.
Define o nmero do usurio UID (maior
que 99 e que qualquer outro UID
existente
Define o diretrio do esqueleto. O default
o /etc/skel.
Em conjunto com -u fora a criao do
UID, mesmo que no nico.
130
Utilizando o Linux
O arquivo /etc/shadow tem o seguinte formato:
usurio:senha criptografada:t1:t2:t3:t4:t5:t6:t7
onde:
a senha criptografada utilizando DES - Data Encryption Standard,
ou opcionalmente MD5 - Message Digest 5.
t1 o data da ltima alterao da senha
t2 o nmero de dias at que a senha possa ser trocada
t3 o nmero de dias at que a senha deva ser trocada
t4 o nmero de dias anterior a expirao da senha
t5 o nmero de dias para desabilitar a conta aps a expirao da
senha
t6 o data de desabilitao da conta
t7 um campo reservado
Uma entrada com a senha criptografada em MD5 tem o formato parecido
com o abaixo:
usuario:$1$BziEuHN8$doX0S7wNN5U7bm5fQI1RR/:11697:0:99999:7:::
Utilizando o Linux
131
useradd -D [ opes ]
Exibe ou atualiza a informao default para usurio novo. Estas
informaes so armazenadas em /etc/default/useradd.
Algumas opes:
-D
Exibe as informaes default atuais
Prefixo para o diretrio pessoal. O login
-b dir
ser adicionado automaticamente.
-e data
Data de expiraoda conta.
-f dias
Nmero de dias para desabilitar a conta
aps a expirao da senha.
-g grupo
Grupo inicial.
Define o login shell.
-s shell
userdel [ -r ] login
Remove o usurio local login, e, se -r for especificado, todo o diretrio
pessoal dele e sua caixa postal. O sistema no permite remover um usurio
que est logado.
groupadd [ -g gid [ -o ]] grupo
Cria um grupo com nome grupo e valor numrico gid, que deve ser nico
se a opco -o no for especificada.
groupdel grupo
Remove o grupo de nome grupo.
132
Utilizando o Linux
Campo de comentrio do
/etc/passwd.
Define dir como diretrio pessoal.
Define a data de expirao no formato
YYYY-MM-DD.
Define em quantos dias a conta do usurio
ser desabilitada aps a expirao da
senha.
Define o grupo inicial (de login).
Define a lista de grupos adicionais.
Cria o diretrio pessoal e copia o esqueleto
para ele, se no existir.
Senha criptografada. O default desabilitar
a conta.
Define o login shell.
Define o nmero do usurio UID (maior
que 99 e que qualquer outro UID
existente
Define o novo login.
Bloqueia o usurio (colocando ! no campo
de senha)
Desbloqueia o usurio (retirando o ! do
campo o de senha)
Utilizando o Linux
133
134
Utilizando o Linux
Utilizando o Linux
135
Start
1
18
82
82
74
66
721
913
End
17
81
1116
273
465
720
912
1116
Blocks
136521
514080
8313637+
1542208+
1542208+
2048256
1542208+
1638598+
Id
82
83
5
83
83
83
83
83
System
Linux swap
Linux
Extended
Linux
Linux
Linux
Linux
Linux
136
Utilizando o Linux
Utilizando o Linux
mkdosfs
137
138
Utilizando o Linux
swapon -a [ -v ]
Ativa todas os dispositivos definidos como swap em /etc/fstab.
Algumas opes:
-v
Modo verboso.
Utilizando o Linux
139
Type
partition
partition
partition
partition
Size
530104
506008
506008
506008
Used
51976
51852
51736
52036
Priority
42
42
42
42
swapoff [ -h | -V ]
Algumas opes:
-h
-V
swapoff -a
Desativa todas os dispositivos definidos como swap em /etc/fstab.
swapoff disp
Desativa a rea de swap em disp.
140
Utilizando o Linux
de quota
Para que um sistema de arquivos possa ter o controle do uso do espao em
disco, le deve ser montado com a opo usrquota. Esta opo pode ser
includa no arquivo /etc/fstab., como o exemplo abaixo:
/dev/disk/by-id/ata-ST3160215A_9RAB8FSE-part2 /work ext3,defaults,usrquota
Utilizando o Linux
141
quotaon [ -v | -u | -g | -f ] fs
quotaon -a [ -v | -u | -g | -f ]
Habilita o sistema de quotas no sistema de arquivos fs (ou em todos os
definidos em /etc/fstab). Os arquivos de controle de quotas devem
existir no diretrio raz do sistema de arquivos.
Algumas opes:
-a
Habilita quota para todos os sistemas de
arquivos no remotos (no NFS)
automaticamente montados
-v
Exibe mensagem para cada sistema de
arquivos tratado
-u
Trata quota de usurios
-g
Trata quota de grupos
-f
Equivale a quotaoff
quotaoff [ -v | -u | -g ] fs
quotaoff -a [ -v | -u | -g ]
Desabilita o sistema de quotas no sistema de arquivos fs (ou em todos os
definidos em /etc/fstab). Os arquivos de controle de quota devem
existir no diretrio raz do sistema de arquivos.
Algumas opes:
-a
Habilita quota para todos os sistemas de
arquivos no remotos (no NFS)
automaticamente montados
-v
Exibe mensagem para cada sistema de
arquivos tratado
-u
Trata quota de usurios
-g
Trata quota de grupos
142
Utilizando o Linux
repquota [ -v | -u | -g | { -t | -n } ] [ -F formato ] fs
repquota -a [ -v | -u | -g | -s | { -t | -n } ] [ -F formato ]
Sumariza as quotas de um sistema de arquivos.
Algumas opes:
-a
Reporta todos os sistemas de arquivos em
/etc/mtab
-v
Exibe todas as quotas e de forma mais
verbosa
-u
Trata quota de usurios
-g
Trata quota de grupos
-F formato
Exibe a quota para o formato especificado,
(vfsold, vfsv0, rpc e xfs)
-t
Trunca nome com mais de 9 caracteres
-n
No resolve UID e GID
-s
Tenta exibir a quota em unidades mais
apropriadas
edquota [ -p prottipo | -u | -g | -r ] [ -F formato ] usurio ...
edquota [ -u | -g ] [ -F formato ] -t
Edita a quota de usurios.
Algumas opes:
-r
-u
-g
-F formato
-p prottipo
-t
Utilizando o Linux
143
144
Utilizando o Linux
quotacheck [ -u | -g | -b | -c | -f | -i | -n | -v | -d | -M | -m | -R ] [ -F formato ] -a
quotacheck [ -u | -g | -b | -c | -f | -i | -n | -v | -d | -M | -m | -R ] [ -F formato ] fs
Verifica o sistema de arquivos, cria e repara os arquivos de quota
Algumas opes:
-b
Fora a criao de arquivos de backup
-v
Modo verboso
-d
Modo de depurao
-u
Verifica apenas usurios em /etc/mtab
-g
Verifica apenas grupos em /etc/mtab
-c
Cria novos arquivos de quota
-f
Fora a verificao de sistemas com o
o sistema de quotas j habilitado
-M
Fora a verificao de sistemas de arquivos
montados read/write
-m
No tenta montar um sistema read-only
-i
Modo interativo
-n
Duplica entradas para um usurio ou grupo
na reparao dos arquivos de quotas
-a
Verifica todos os sistemas de arquivos no
remotos (no NFS)
-R
Exclui o sistema de arquivos raiz
Exibe a quota para o formato especificado,
-F formato
(vfsold, vfsv0, rpc e xfs)
Duplica a quota do usurio prottipo para
-p prottipo
os usurios especificados
-t
Edita os limites de tempo soft.
Utilizando o Linux
145
mount [ { -l | -h | V } ]
Exibe os sistemas montados, uma ajuda ou a verso.
Algumas opes:
-l
Exibe o label se existir
-h
Ajuda sumria
-V
Verso do mount
--help
Exibe uma ajuda
mount -a [ { -f | -F | -n | -r | -s | -v | -w } ] [ -t tipo ]
Monta todos os sistemas de arquivos definidos em /etc/fstab,
opcionalmente do tipo tipo, que no possuam a opo noauto.
Algumas opes:
-f
Simula (fake). til com -v para ver o que o
mount ir fazer.
-F
Executa um fork, montando os sistemas de
arquivos simultaneamente.
-n
Monta os sistemas de arquivos sem gravar
as informaes no arquivo /etc/mtab.
-r
Monta apenas para leitura (read-only).
Equivalente a -o ro
-s
Ignora opes no suportadas pelo sistema
de arquivos.
-v
Modo verboso.
-w
Monta em modo normal de leitura e escrita
(read/write). Equivalente a -o rw.
O Linux suporta atualmente diversos tipos de sistemas de arquivos. Entre eles
esto: adfs, affs, coherent, coda, devpts, ext, ext2, ext3, fat, hfs, hpfs,
iso9960, jffs, jfs, minix, msdos, ncp, nfs, ntfs, proc, qnx4, reiserfs, romfs,
smbfs, sysv, udf, ufs, umsdos, vfat, xenix, xfs, e xiafs.
possvel ainda montar uma parte do sistemas de arquivos em outra com
a opo --bind. As informaes ficaro disponvis em dois lugares:
mount --bind diretrio1 diretrio2
146
Utilizando o Linux
Utilizando o Linux
147
umount [ { -h | -V } ]
Exibe uma ajuda ou a verso.
Algumas opes:
-h
Ajuda
-V
Verso do mount
umount -a [ { -n | -r | -v | -f } ] [ -t tipo ]
Desmonta todos os sistemas de arquivos, opcionalmente do tipo tipo,
definidos em /etc/fstab.
Algumas opes:
-n
Desmonta sem escrever em /etc/mtab.
-r
Em caso de falha, tenta remontar somente
para leitura.
-f
Fora a desmontagem.
-v
Modo verboso.
umount [ { -n | -r | -v | -f} ] { disp | dir } ...
Desmonta os sistemas de arquivos montados do dispositivo disp ou no
diretrio dir.
Algumas opes:
-n
Desmonta sem escrever em /etc/mtab.
-r
Em caso de falha, tenta remontar somente
para leitura.
-f
Fora a desmontagem.
-v
Modo verboso.
148
Utilizando o Linux
Utilizando o Linux
149
lspci [ opes ]
Lista todos os dispositivos do barramento PCI
Algumas opes:
-v
Verboso
-n
Mostra a identificao numrica
-t
Mostra a rvore dos dispositivos
-x
Mostra um dump em hexadecimal da rea
de configurao do dispositivo
Mostra apenas os dispositivos especidicado
-s [[bus]:[slot]].[funo]]
pelo barramento bus, slot e funo, onde
o sinal * siginifica qualquer valor
-d [fornecedor]:[dispositivo] Mostra apenas os dispositivos identificados
com o ID do fornecedor e dispositivo.
Especifica outro diretrio, o default o
-P diretrio
/proc/bus/pci
-M
Habilita o mapeamento do barramento
-G
Habilita depurao do acesso ao PCI
lsusb [ opes ]
Lista todos os dispositivos do barramento USB
Algumas opes:
-v, -vv
Verboso e mais verboso
-t
Mostra a rvore dos dispositivos
-p diretrio
Especifica outro diretrio, o default o
/proc/bus/usb
-s [[bus]:[dispositivo]]
Mostra apenas os dispositivos especidicado
pelo barramento bus, e dispositivo.
-d [fornecedor]:[dispositivo] Mostra apenas os dispositivos identificados
com o ID do fornecedor e dispositivo.
-D dispositivo
Mostra apenas as informaes sobre o
dispositivo especificado
150
Utilizando o Linux
usbview
Lista todos os dispositivos USB em modo grfico.
Utilizando o Linux
151
152
Utilizando o Linux
lsmod [ opes ]
Lista os mdulos carregados.
Algumas opes:
-h, --help
Ajuda
-V, --version
Exibe a verso do lsmod
insmod [ opes ] mdulo [ symbol=valor ... ]
Insere um mdulo carregvel no kernel em execuo.
Algumas opes:
-f, --force
Tenta carregar o mdulo independente da
verso do kernel
-k, --autoclean
Torna o mdulo auto removvel quando
no utilizado por um perodo de tempo
pelo kerneld (normalmente 1 minuto)
-L, --lock
Utiliza o flock para evitar a carga
simultneas do mesmo mdulo
-m, --map
Exibe um mapa da carga
-n, --noload
No carrega o mdulo
-p, --probe
Testa se o mdulo foi carregado com
sucesso
-s, --syslog
Envia a sada para o syslog
-X, --export
Exporta os smbolos externos do mdulo
-x, --noexport
No exporta os smbolos externos do
mdulo
Define explicitamente o nome do mdulo,
-o nome, --name=nome
no utilizando o nome do arquivo objeto
-h, --help
Ajuda sumria
-V, --version
Exibe a verso do insmod
Utilizando o Linux
153
154
Utilizando o Linux
depmod { -a | -A } [ opes ]
depmod [ opes ] mdulo1.o mdulo2.o ...
Trata a descrio de dependncia entre mdulos carregveis
Algumas opes:
-a
Pesquisa por mdulos em todos os
diretrios especificados no arquivo de
configurao /etc/modules.conf
ou /etc/modprobe.conf
-A
Compara a data/hora dos arquivos e, se for
necessrio, opera como -a
-e
Exibe os smbolos no definidos
-n
Exibe a lista de dependncias na sada
padro em vez de gravar no diretrio
/lib/modules
-s
Envia os erros para o syslog
-q
Modo silencioso
-r
Permite a carga de mdulos que no sejam
do usurio root
-h
Ajuda
Usa o diretrio dir em vez do diretrio
-b dir
/lib/modules
-C arquivo
Usa o arquivo de configurao arquivo, em
vez de /etc/modules.conf
Define o arquivo com o mapa de smbolos
-F simbolos
do kernel.
-V
Exibe a verso do depmod
Utilizando o Linux
155
156
Utilizando o Linux
Utilizando o Linux
157
158
Utilizando o Linux
*.*
mail.*
*.=crit;kern.none
kern.crit
local6.*
/dev/tty12
-/var/log/mail
/var/log/critical
@logserver
jose, pedro
Utilizando o Linux
159
/var/log/messages
+4096k 640 root.root
/var/squid/logs/access.log +4096k 640 squid.root
squid
/var/squid/logs/access.log {
compress
dateext
maxage 365
rotate 99
size=+4096k
notifempty
missingok
create 640 squid.root
postrotate
/etc/init.d/squid reload
endscript
}
160
Utilizando o Linux
Reinicializa o syslogd
Termina o syslog
Se habilitado, ignora o modo debug, seno
termina o syslog
Habilita/desabilita o modo debug
Espera pelos processos gerados por
mensagens enviadas para todos
Utilizando o Linux
161
options {
long hostnames(off); flush_lines(0);
perm(0640); stats_freq(3600);
};
source src { internal(); unix-dgram("/dev/log"); };
source chroots
filter f_mail { facility(mail); };
filter f_acpid { lrvrl(emerg..noticed) and message(^acpid:);
filter f_messages
{
not facility(news, mail) and not filter(f_iptables);
};
destination console {
file("/dev/tty12" owner(-1) group (-1) perm (-1));
destination(console);
};
log {
source(src); source (chroots);
filter(f_console);
destination (xconsole);
};
162
Utilizando o Linux
Instalando o Linux
163
5. Instalando o Linux
Instalao do Linux
Como j dito anteriormente, existem diversas distribuies do Linux. O
processo de instalao pode variar um pouco dependendo da distribuio
utilizada. Os princpios, entretanto, so vlidos para qualquer uma delas.
Das distribuies mais conhecidas internacionalmente (SuSE, Red Hat,
Debian, Slackware, Caldera, Turbo Linux, ...), utilizaremos a Novell SuSE Linux
e mais especificamente openSuSE Linux, criada pela empresa alem SuSE
Linux AG. Ela considerada a melhor distribuio por sua estabilidade,
facilidade de instalao e variedade de hardware suportado. Ela possui tambm
uma das maiores quantidades de aplicativos.
O Linux e os aplicativos podem ser instalados a partir de diversos meios:
CD/DVD-ROM, pen drive, site FTP, diretrio acessvel do disco, disquete, ou
servidor NFS.
Atualment so disponveis as verses para 32 e 64 bits.
164
Instalando o Linux
de
Instalando o Linux
165
166
Instalando o Linux
O Boot do Linux
Voc pode compartilhar o disco de seu computador entre diversos
sistemas operacionais. Isto quer dizer que voc poder optar entre carregar o
Linux ou o Windows ou o DOS ou qualquer outro sistema operacional que
esteja instalado em seu computador.
Para que o seu computador rode Linux, o BIOS - Basic Input/Output
System - deve ser capaz de carregar o kernel (ou o o primeiro estgio do LILO
ou do GRUB) a partir de um disquete, CD, DVD ou do disco rgido.
Existem duas formas bsicas:
Instalando o Linux
167
168
Instalando o Linux
Instalando o Linux
169
Com o YaST, voc pode instalar a partir do zero ou atualizar uma verso
de Linux j existente em seu computador. Se voc est fazendo uma atualizao,
o YaST detectar a instalao prvia. Em alguns casos voc precisar informar
qual a partio raiz. Em uma instalao inicial, voc precisa definir os discos e as
parties e seus mount points a serem utilizados pelo Linux. O YaST poder fazer
automaticamente o particionamento se voc quiser. O YaST possui uma
ferramenta para redimensionar parties do disco, muito til quando o disco j
possui, por exemplo, o Windows ocupando todo o disco. O YaST j ir
apresentar uma sugesto para o redimencionamento.
170
Instalando o Linux
Mesmo tendo uma memria principal de bom tamanho, crie uma rea de
swap. O tamanho desta rea depender dos tipos de aplicaes a serem
executadas concorrentemente no equipamento, e do tamanho da memria real
instalada. Uma estao de trabalho tem tipicamente entre 128 e 512MB de
memria, sendo sugerida uma rea de swap de no mnimo 128 MB. Servidores
podem tipicamente ter entre 256 MB e 4 GB de memrio, dependendo da
aplicao. Sugerimos uma rea de swap de no mnimo 512 MB. A exigncia de
memria das recentes aplicaes grficas e de banco de dados poder exigir mais
memria principal e adicionar rea de swap maior pode permitir que a aplicao
rode em detrimento da velocidade. Lembre-se que um equipamento com uma
CPU rpida (acima de 700MHz) poder parecer muito lento se o sistema
necessitar da utilizao constante da rea de swap porque a velocidade de acesso a
disco muitssimo inferior s velocidades da CPU e da memria.
A deciso de criar apenas uma partio raiz ou dividir a instalao em
parties como /, /boot, /opt, /var, /usr, /home e outras, s depende da forma
que voc prefere trabalhar e gerenciar seus arquivos e backups. Em servidores,
sugerimos dividir em parties para a melhor administrao e controle do uso do
espao em disco pelos servios e usurios. Para melhor expansibilidade existe a
opo do LVM - Logical Volume Manager - que permite adicionar parties ou
discos dinamicamente aos sistemas de arquivos.
Durante a criao das parties, o YaST ir criar o sistema de arquivos.
Os sistemas de arquivos sero ento montados nos mount points escolhidos.
Para selecionar os pacotes, voc pode optar por carregar uma configurao
pr-definida pela SuSE ou alterar e criar a sua prpria configurao. As
configuraes pr-definidas contm pacotes previamente marcados conforme o
tipo de uso do computador (Estao de trabalho, servidor, sistema multimedia,
...). Voc poder tambm utilizar uma destas como base e incluir ou excluir
pacotes individualmente. Voc ter disponvel mais de 8000 aplicativos nos mais
de 3000 pacotes RPMs contidos nos CDs ou DVDs do SuSE Linux 10.1.
Dependncias entre pacotes sero verificadas automaticamente pelo YaST
e aps sua seleo, ele provavelmente marcar outros pacotes para a instalao.
Instalando o Linux
171
172
Instalando o Linux
A primeira imagem definida ser o boot default. Existem diversas opes que
podero ser incluidas no arquivo /etc/lilo.conf para personalizar o LILO.
Instalando o Linux
173
174
Instalando o Linux
Instalando o Linux
175
176
Instalando o Linux
Instalando o Linux
177
Utilizando o RPM
O RPM (Red Hat Package Manager) um gerenciador de pacotes que
permite a administrao da instalao de aplicativos compatveis com o LSBLinux Standard Base. Os arquivos .rpm possuem, alm dos componentes do
pacote, programas e informaes para a instalao e remoo do pacote. O rpm
guarda informaces sobre pacotes instalados em uma base de dados localizada
em /var/lib/rpm.
O programa rpm possui trs modos bsicos de operao: 1) criao de
pacotes a partir de seus fontes para a instalao; 2) instalao, atualizao e
remoo de pacotes; e 3) consultas de informaes sobre os pacotes.
As opes gerais mais importantes do rpm so:
--help
--version
--rcfile arquivo
-v
-vv
Verificao de Pacotes
A verificao de um pacote provoca a comparao dos arquivos instalados
de um pacote com as informaes localizadas nas bases de dados do RPM. A
verificao compara tamanho, MD5 sum, permisses, tipo, dono e grupo de cada
arquivo. Para esta verificao utilize a opo :
-V pacote
178
Instalando o Linux
Este modo de verificao pode ser til caso haja alguma suspeita de que a
base de dados RPM esteja corrompida. Esta verificao tem como sada para o
usurio uma string de 8 caracteres, possivelmente um caracter c indicando um
arquivo de configurao e depois o nome do arquivo. Cada um dos 8 caracteres
significa um dos atributos do arquivo comparado com os valores definidos na
base RPM, se ocorrer um ponto ., significa que o atributo est OK. A tabela
abaixo mostra o significado dos caracteres :
Cdigo
5
S
L
T
D
U
G
M
Significado
MD5 checksum
Tamanho do arquivo
Link simblico
Modificao do arquivo
Device
Usurio
Grupo
Modo (inclui permisses e tipo de arquivo)
Exemplo:
Vericando os arquivos do pacote netcfg :
hmarx@thor:~> rpm -V netcfg
S.5....T c /etc/HOSTNAME
S.5....T c /etc/aliases
S.5....T c /etc/defaultdomain
S.5....T c /etc/exports
S.5....T c /etc/hosts
S.5....T c /etc/hosts.lpd
S.5....T c /etc/inetd.conf
S.5....T c /etc/networks
hmarx@thor:~>
Instalando o Linux
179
Verificao de Autenticidade
Aps obter um pacote rpm a partir de um site na Internet ou de outra
fonte qualquer, deve-se verificar sua autenticidade atravs da assinatura PGP do
pacote. Para isto h a opo de verificao:
-K pacote, --checksig pacote
A SuSE inclui uma assinatura GPG em seus pacotes desde a verso 7.1.
Exemplo:
Verificando a assinatura do pacote telnet :
180
Instalando o Linux
Instalao de Pacotes
A instalao de pacotes feita atravs da opo -i ou, --install,
seguida pelos nomes dos arquivos .rpm. Uma instalaopode ser feita utilizando
simplesmente o comando rpm -i pacote.rpm.
Alm das opes globais, podem ser utilizadas:
--excludepath caminho
--relocate velho=novo
--prefix dir
--dbpath dir
--excludedocs
--force
--allfiles
--ignorearch
--ignoresize
--ignoreos
--includedocs
--justdb
--nodeps
--noorder
--noscripts
--notriggers
--percent
--replacefiles
--replacepkgs
--test
--root dir
Instalando o Linux
--hash, -h
181
Imprime # durante o tratamento do
pacote
Exemplo:
thor:~ # rpm -ivh apache-1.3.26-57.i586.rpm
apache
############################
thor:~ #
Atualizao de Pacotes
A atualizao de pacotes feita atravs da opo -U ou, --upgrade,
seguida pelos nomes dos arquivos .rpm. Uma atualizao pode ser feita
utilizando simplesmente o comando rpm -U pacote.rpm.
Alm das opes globais, podem ser utilizadas as mesmas opes
disponveis para a instalao, alm de:
--oldpackage
Exemplo:
thor:~ # rpm -Uvh apache-1.3.26-57.i586.rpm
apache
############################
thor:~ #
182
Instalando o Linux
Remoo de Pacotes
A remoo de pacotes feita atravs da opo -e ou, --erase, seguida
pelos nomes dos arquivos .rpm. Uma remoo pode ser feita utilizando
simplesmente o comando rpm -e pacote.
Alm das opes globais, podem ser utilizadas:
--allmatches
--dbpath dir
--justdb
--nodeps
--noorder
--noscripts
--notriggers
--root dir
Instalando o Linux
183
Consulta de Pacotes
A consulta de pacotes feita atravs da opo -q ou, --query, seguida
por nomes completos de arquivos ou por pacotes.rpm.
Alm das opes globais, podem ser utilizadas:
-a, --all
--root dir
--dbpath dir
--queryformat fmt
-f arquivo
-p pacotes
--triggeredby pkt
--whatprovides atrib
--whatrequires atrib
-i
--changelog
-l
-s
-d
-c
--provides
-R, --requires
--scripts
--triggers
184
Instalando o Linux
Instalando o Linux
185
Utilizando o zypper
O zypper utiliza os repositrios cadastrados no Yast. Os comandos mais
comuns do zypper so:
Ajuda
zypper { help | ? | --help }
Listar repositrios
zypper { repos | lr } [ repositrio ]
Procurar pacotes
zypper { search | se } padro
Instalar pacotes
zypper { install | in } padro
Remover pacotes
zypper { remove | rm } padro
Atualizar pacotes
zypper { update | up } [ padro ]
186
Instalando o Linux
Utilizando o Smart
O smart tem seus repositrios cadastrados nos arquivos com extenso
.channel no diretrio /etc/smart/channels/. Cada arquivo composto
por sesses que definem o canal do repositrio, como o exemplo abaixo para o
openSuSE 11.2.
[suse-oss]
type=rpm-md
baseurl=http://download.opensuse.org/distribution/11.2/repo/oss/suse/
enabled=1
Entre parnteses est o nome do cana (channel), no exemplo suse-oss
(repositrio de pacotes open source do openSuSE Linux). A diretiva name define
o nome do repositrio. A diretiva type define o formato do repositrio, podendo
ser, por exemplo,
Tipo
apt-deb
apt-rpm
deb-dir
red-carpet
rpm-dir
rpm-hdl
rpm-md
slacksite
urpmi
yast2
Formato do repositrio
Repositrio APT-DEB
Repositrio APT-RPM
Repositrio de Debian ou Ubuntu
Canal Red Carpet
Diretrio RPM - Fedora Core
Lista de cabecalhos de RPM
Metadados de RPMs
Repositrio de Slackware
Repositrio de Mandriva
Repositrio de openSuSE
Instalando o Linux
187
Significado
Ajuda
Lista repositrios definidos
Procura pacotes
Exibe informaces do pacotes
Instala pacotes
Remove pacotes
Atualizar lista de pacotes de canais
Atualiza pacote
Remove os arquivos baixados
########################################## [100%]
188
Instalando o Linux
Alm da interface texto, o smart possui uma interface grfica que pode ser
utilizada usando o comando smart com a opco --gui :
smart --gui [ comandos ]
Instalando o Linux
189
simple-package-1.0/prog.c
simple-package-1.0/img.png
O arquivo simple-package.spec :
Name:
Version:
Release:
Source:
Summary:
License:
Distribution:
Group:
simple-package
1.0
0.1
simple-package-1.0.tar.bz2
Simple Package
GPL
openSuSE
Applications
%description
Simple package to demonstrate the RPM build process
%description -l pt_BR
Pacote simples para demonstrar o processo de criar RPM
%prep
%setup -q
%build
make
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/local/pacote
install -m 755 prog $RPM_BUILD_ROOT/usr/local/pacote/prog
install -m 644 arq.txt $RPM_BUILD_ROOT/usr/local/pacote/arq.txt
install -m 644 img.png $RPM_BUILD_ROOT/usr/local/pacote/img.png
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root)
%dir %attr(755,root,root) /usr/local/pacote
/usr/local/pacote/prog
/usr/local/pacote/arq.txt
/usr/local/pacote/img.png
%changelog
* Tue Dec 8 2009 Helio Marques <hmarx@linuxtech.com.br>
* Simple package - initial version
190
Instalando o Linux
Instalando o Linux
191
192
O Sistema X Window
6. O Sistema X Window
O Sistema X Window
O sistema X Window a interface grfica padro dos
sistemas Unix-like. Ele baseado no protocolo X11, definido pela
DEC - Digital Equipment Corporation e pelo MIT (Massachusetts
Institute of Technology). A primeira verso de 1987. Hoje, est na
verso X11R7.4. Este sistema tambm deve ser chamado de:
X
X Window System
X Version 11
X Window System, Version 11
X11
O protocolo X11 orientado a rede e segue o modelo cliente / servidor.
Clientes:
Aplicaes clientes so aquelas que utilizam recursos grficos.
So as aplicaes que normalmente precisam de muito recurso de
CPU e memria.
Servidores:
Equipamentos que provm a interface grfica ao usurio (entrada
e sada grficas). Eles executam o X Server, e apenas tratam da
leitura dos dispositivos de entrada (mouse, teclado, light pen, ...) e
sada (vdeo, som, ...) enviando e recebendo, atravs do protocolo
X11, os eventos do usurio e dos clientes. Podem ser utilizados
computadores PC de baixo poder computacional que disponham
de interface adequada (principalmente mouse, teclado e vdeo).
O Sistema X Window
193
194
O Sistema X Window
):
O Sistema X Window
195
Abaixo vemos uma tela de uma mquina rodando o KDE no SuSE Linux,
exibindo uma calculadora (dxcalc) rodando em Ultrix em uma Personal
DECstation e os processos xosview de duas mquinas SuSE Linux diferentes.
196
O Sistema X Window
O X Window no Linux
Em 1994, foi fundado o projeto XFree86. O objetivo
era criar um servidor X gratuito para plataformas PC.
gratuito, e est na verso 4.6.0 compatvel com X11R6.6.
No final de 2003 foram inseridas algumas restries
na licensa do xfree86 levaram o x.org como o sucessor do
XConsortium. O x.org se tornou ento o padro para o Linux
e est hoje na verso X11R7.4.
O
arquivo
bsico
de
configurao
do
X.org
O Sistema X Window
197
198
O Sistema X Window
Configurao do XFree86
O XFree86 4.x pode ser configurado atravs de parmetros definidos nos
arquivos encontrados no diretrio /etc/X11. Neste diretrio, existem ainda
subdiretrios para a configurao dos componentes da interface do X Window.
Os principais arquivos so:
/etc/X11/Xmodmap
/etc/X11/fs/config
/etc/X11/xdm/Xservers
/etc/X11/xdm/Xaccess
/etc/X11/xdm/xdm-config
/etc/X11/xdm/Xsetup
/etc/X11/xdm/RunChooser
/etc/X11/xdm/Xreset
/etc/X11/xdm/Xresources
/etc/X11/fvwm2/*
/etc/X11/xkb/*
Configuraes do teclado do PC
Configurao do servidor de fonts
Definio dos displays a serem criados
Controle de acesso a conexes XDMCP
Configurao do XDM
Trata das consoles locais e remotas
Trata as consoles remotas
Trata o logout de usurio remoto
Definio do comportamento da interface
X (incluindo o teclado)
Configuraes do fvwm2
Configuraes dos teclados
Por exemplo, para que voc possua mais de um desktop virtual, inclua
uma linha para cada um deles no arquivo /etc/X11/xdm/Xservers, como
as seguintes (opcionalmente com a definio de profundidade de pixel):
:0
:1
:2
local
local
local
/usr/X11R6/bin/X :0
/usr/X11R6/bin/X :1
/usr/X11R6/bin/X :2
vt07
vt08
vt09 -bpp 16
Assim voc ter 3 displays nas consoles tty7, tty8 e tty9, endereados por
:0, :1 e :2 respectivamente. Lembre-se de que cada Xserver necessita de pelo
menos 32M memria para rodar eficientemente e que sua placa de vdeo e
monitor dever suportar a profundidade de pixel. Use + +, +, +,
+, etc., para acessar o desktop virtual desejado.
O Sistema X Window
199
200
O Sistema X Window
Gerenciadores de janelas
Existem hoje mais de 14 gerenciadores diferentes para o Linux. Os mais
conhecidos so:
fvwm e fvwm2
Gerenciador original do XFree86
fvwm95
Configurao do fvwm para imitar a interface do Windows 95
KDE - K Desktop Environment
Interface que se tornou o padro de fato do Linux.
muito poderosa e possui muitas das caractersticas
das interfaces encontradas nos sistemas Windows.
GNOME - GNU Network Object Model Environment
Outra interface famosa do Linux. Utiliza o ORBit,
uma implementao CORBA da RedHat.
mlvwm
Interface semelhante ao Macintosh da Apple.
cdesim
Imita a interface CDE (Common Desktop Environment), muito
utilizada pelas estaes Sun.
afterstep
Interface semelhante ao NeXTStep.
amiwm
Interface semelhante ao AMIGA.
O Sistema X Window
201
enlightenment
Interface poderosa e configurvel. Faz uso intensivo do modo
grfico.
icewm
Interface que pode emular as interfaces do Windows 95, OS/2 e
Motif.
twm
Uma interface bem simples.
qvwm
Mais uma interface, com cones animados, emulando a interface do
Windows 9x e Me.
windowmaker
Mais uma interface configurvel com uso intensivo de apelo
visual.
O gerenciador pode ser escolhido em alguns Desktop Managers, como o
kdm do KDE e o gdm do GNOME. H um menu para escolha do tipo de sesso
que inclui os gerenciadores instalados.
202
O Sistema X Window
O Sistema X Window
203
O KDE
O KDE - K Desktop Environment - est se tornando a
interface grfica padro do Linux. A interface KDE totalmente
configurvel. Ela baseada em URLs e MIME. O KDE inclui,
alm do gerenciador de janelas, o gerenciador de displays e
centenas de aplicaes integradas ao seu gerenciador.
O gerenciador de displays, kdm, um login em modo grfico que
substitui o xdm, o gerenciador padro do sistema X Window. A partir dele, o
usurio poder escolher o gerenciador de janelas com o qual ir trabalhar. O kdm
ir guardar o gerenciador de janelas escolhido por aquele usurio e,
posteriormente, ele ser automaticamente selecionado por default quando o
usurio se identificar.
Entre as aplicaes do KDE, h um poderoso gerenciador de arquivos, o
konqueror, que trata muitos formatos de arquivos diferentes. Ele possui
caractersticas de drag-and-drop e cut-and-paste. Alm disto, ele tambm um
browser WEB.
204
O Sistema X Window
O Sistema X Window
205
XMMS
206
O Sistema X Window
XINE
Para tocar audio (DVDs, CDs, MP3s, estaces de rdio, ...) h o Amarok
com uma interface muito amigvel.
Amarok no KDE4
O Sistema X Window
207
208
O Sistema X Window
O Sistema X Window
209
210
O Sistema X Window
OpenOffice
O Sistema X Window
211
212
O Sistema X Window
O Sistema X Window
213
214
O Sistema X Window
Rede em Unix
215
7. Redes em Unix
Redes em Unix
Colocar sistemas Unix-like em rede significa configurar a suite de
protocolos TCP/IP. O TCP/IP define os servios das camadas de transporte e de
rede do modelo OSI - Open Systems Interconnection da ISO - International
Standard Organization, apesar de no seguir exatamente sua estrutura. TCP/IP a
sigla para Transmission Control Protocol/Internet Protocol. Embora haja outros
protocolos na suite TCP/IP, o TCP e o IP so os mais importantes.
O modelo OSI define 7 camadas hierrquicas que realizam funes
utilizando a camada inferior e provm servios para a camada superior.
7. Aplicao
6. Apresentao
5.
4.
3.
2.
Sesso
Transporte
Rede
Enlace
1. Fsica
Redes em Unix
216
Porto de origem
Tamanho
Porto de destino
Checksum
Dados
Rede em Unix
217
Padding
Dados
Redes em Unix
218
Rede em Unix
219
Servios do TCP/IP
No TCP/IP so definidas diversas aplicaes, conhecidas como servios
TCP/IP. Os mais comuns so:
Servio
correio eletrnico
transferncia de arquivos
login em mquinas remotas
execuo remota de programas
compartilhamento de arquivos
compartilhamento de dispositivos
Exemplo
e-mail
ftp
telnet
rsh ou rexec
NFS
impressora remota, fax, ...
Redes em Unix
220
Por exemplo, o servio FTP pode ser disparado usando o inetd atravs de:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l
Rede em Unix
221
socket_type
protocol
wait
user
group
instances
nice
Redes em Unix
222
Atributos do xinetd (cont.)
Atributo
server
server_args
only_from
no_access
access_times
log_type
log_on_success
log_on_failure
rpc_version
rpc_number
env
passenv
port
redirect
bind
interface
Rede em Unix
223
Atributos do xinetd (cont.)
Atributo
banner
banner_success
banner_fail
per_source
cps
max_load
disable
Redes em Unix
224
Rede em Unix
225
Endereamento IPv4
A base do protocolo TCP/IP o endereo IP. A verso atualmente
utilizada chamada de IPv4. O endereo IPv4 um nmero de 32 bits (4 bytes).
Para facilitar sua leitura e a memorizao, este nmero expresso como 4
nmeros decimais separados por um ponto: w.x.y.z
Por exemplo, o IP 192.168.200.3 armazenado em 4 bytes consecutivos
como abaixo:
byte 3
192
byte 2
168
byte 1
200
byte 0
3
Redes em Unix
226
Valores de w
Net Id
HostId
No. de
redes
1 - 126
w
x.y.z
126
128 - 191
w.x
y.z
16.384
192 - 223
w.x.y
z
2.097.151
224 - 239
Endereos de Multicast
240 - 247
Reservada para uso futuro
experimentais e/ou reservados para uso futuro
No. de
nodos
16.777.214
65.534
254
Rede em Unix
227
Endereos privados
Foram reservadas algumas faixas do espao de endereamento IP para
mquinas que nunca sero acessveis diretamente atravs da Internet. Eles devem
ser utilizados em redes privadas. Mquinas com estes IPs somente conseguem
acessar a Internet atravs de um gateway que faa a traduo do endereo de rede
(NAT ou Masquerading).
Classe
A
B
C
Faixa de endereos
10.0.0.0
a 10.255.255.255
172.16.0.0 a 172.31.255.255
192.168.0.0 a 192.168.255.255
Nome do bloco
24-bit block
20-bit block
16-bit block
Redes em Unix
228
# /etc/hosts
127.0.0.1
localhost
192.168.200.3 thor.starix.br thor
# /etc/networks
loopback 127.0.0.0
starix.local 192.168.200.0
# /etc/resolv.conf
nameserver 192.168.200.3
search
starix.br
# /etc/nsswitch.conf
passwd:
compat
group:
compat
hosts:
files dns
networks:
files dns
services:
files
protocols: files
rpc:
files
ethers:
files
netmasks:
files
netgroup:
files
publickey: files
bootparrms: files
automout:
files nis
aliases:
files
Rede em Unix
229
Subclasses
Um endereo IPv4 tem 32 bits. Para uma classe X qualquer, sendo H o
nmero de bits do HostId, teremos sempre R = 32 - H bits para o NetId. Assim,
para a classe A temos 8 bits para o NetId e 24 bits para o HostId, para a classe B,
16 bits para o NetId e 16 bits para o HostId e para a classe C, 24 bits para o NetId
e 8 bits para o HostId.
<-------------------------------- 32 bits --------------------------------->
<----------- R bits --------------> <-------------- H bits -------------->
NetId
HostId
Uma classe X qualquer do IPv4 pode ser subdividida em subclasses. Na
subclasse, N bits do HostId so acrescentados ao NetId. Logo teremos, em relao
classe original, H-N bits para o HostId e R+N bits para o NetId. Como so N bits
Redes em Unix
230
Roteamento
Para que um pacote chegue ao seu destino, necessrio saber a rota a ser
utilizada. Para isto, so definidos:
o endereo do destino, que pode ser uma rede ou um nodo;
o gateway, equipamento roteador caso o destino no seja diretamente
acessvel atravs da interface de rede;
a mscara que define o endereo do destino;
a mtrica, que o custo da rota.
Exemplo
Seja uma rede local com endereo classe C 192.168.201.0 e que tenha um
gateway que possui uma interface de rede eth0 com endereo 192.168.201.1. O
gateway tambm possui acesso a outras mquinas em outra rede local com
endereo classe C 192.168.200.0. Nesta rede, ele possui uma interface de rede
eth1 com endereo 192.168.200.222. H tambm um roteador com endereo
192.168.200.2 na segunda rede. Todos os endereos das redes locais so
acessveis diretamente atravs das interfaces de rede, por exemplo, eth0.
Rede em Unix
231
Gateway
*
*
192.168.201.1
Mscara
255.255.255.0
255.0.0.0
255.255.255.0
Interface
eth0
lo
eth0
Gateway
*
*
*
192.168.200.2
Mscara
255.255.255.0
255.255.255.0
255.0.0.0
255.255.255.0
Interface
eth0
eth1
lo
eth1
Redes em Unix
232
Rede em Unix
233
Redes em Unix
234
thor:~ # route -n
Kernel IP routing table
Destination
Gateway
201.17.146.0
0.0.0.0
192.168.200.0 0.0.0.0
127.0.0.0
0.0.0.0
0.0.0.0
201.17.146.1
thor:~ #
Genmask
255.255.255.0
255.255.255.0
255.255.0.0
0.0.0.0
Flags
U
U
U
UG
Metric
0
0
0
0
Ref
0
0
0
0
Use
0
0
0
0
Iface
eth0
eth1
lo
eth0
Rede em Unix
235
root@thor:~ # ip link
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: sit0: <NOARP> mtu 1480 qdisc noqueue
link/sit 0.0.0.0 brd 0.0.0.0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:00:e8:4d:4f:a7 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:01:02:ec:22:9a brd ff:ff:ff:ff:ff:ff
root@thor:~ # ip route
192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.11
201.17.146.0/24 dev eth0 proto kernel scope link src 201.17.146.157
192.168.200.0/24 dev eth1 proto kernel scope link src 192.168.200.3
169.254.0.0/16 dev eth0 scope link
127.0.0.0/8 dev lo scope link
default via 201.17.146.1 dev eth0
root@thor:~ # ip neigh
201.17.146.1 dev eth0 lladdr 00:13:5f:05:67:05 DELAY
192.168.200.190 dev eth1 lladdr 00:e0:7d:c2:d2:17 DELAY
192.168.200.200 dev eth1 lladdr 00:16:76:90:c1:94 REACHABLE
192.168.200.41 dev eth1 lladdr 00:06:4f:48:da:74 REACHABLE
root@thor:~ #
Redes em Unix
236
Rede em Unix
237
thor:~ # arp -a
atlas.starix.br (192.168.200.31) at 00:01:02:EC:22:AD [ether] on eth0
wolf.starix.br (192.168.200.35) at 00:00:B4:A6:A1:CC [ether] on eth0
spider.starix.br (192.168.200.222) at 00:00:B4:A7:FF:1E [ether] on eth0
apollo.starix.br (192.168.200.2) at 00:E0:7D:A5:EB:21 [ether] on eth0
diana.starix.br (192.168.200.147) at 00:80:C8:7C:7E:16 [ether] on eth0
tiger.starix.br (192.168.200.1) at 00:40:C7:94:11:53 [ether] on eth0
thor:~ #
Redes em Unix
238
geoiplookup { ip | nome }
Localiza geograficamente o endereo fornecido
thor:~ # geoiplookup linuxtech.com.br
GeoIP Country Edition: BR, Brazil
thor:~ # geoiplookup 201.17.146.157
GeoIP Country Edition: BR, Brazil
thor:~ # geoiplookup suse.de
GeoIP Country Edition: DE, Germany
thor:~ #
Rede em Unix
239
Redes em Unix
240
Trfego de conexes
Rede em Unix
241
Redes em Unix
242
xtraceroute
Visualizao da rota atravs do globo terrestre, utilizando o
traceroute.
Rede em Unix
243
Redes em Unix
O nmap possui a ferramenta grfica zenmap, mostrada abaixo.
244
Rede em Unix
245
connectaddress
connectport
Todas
as
conexes
que
forem
feitas
para
sero
redirecionadas
para
bindaddress/bindport
connectaddress/connectport.
Os argumentos bindaddress e connectaddress podem ser
fornecidos como endereo IP ou por um nome de host. Os
argumentos bindport e connectport podem ser fornecidos como
nmero ou nomes de servios dados em /etc/services. No
caso do servidor ter diversos IPs, pode ser utilizado o IP 0.0.0.0
como bindaddress.
Permisses:
allow padres de IPs
deny padres de IPs
Regras de permisses a serem subsequentemente seguidas.
Os padres de IPs so formados por dgitos 0 a 9, ., ? e
*. Os caracteres ? e * so utilizados como metacaracteres que
combinam com um caracter ou com uma sequncia de caracteres
qualquer.
Redes em Unix
O rinetd pode gerar um log em um arquivo definido por:
logfile arquivo de log
Para um log no formato de um servidor WEB, basta adicionar a linha:
logcommon
Para a utilizao do syslog, adicione a linha:
syslog facilidade prioridade
A facilidade/prioridade default daemon/info.
246
Rede em Unix
247
Endereamento IPv6
Os enderecos IPv so nmeros de 128 bits, normalmente escritos como
16 nmeros em hexadecimal. No h classes como no IPv4. Os bits de mais alta
ordem, denominados prefixo, definem o tipo do endereo.
Tipo de endereo
prefixo
reservado
no assinalado
reservado para NSAP
reservado para IPX
no assinalado
no assinalado
no assinalado
endereos de unicast global agregveis
no assinalado
no assinalado
no assinalado
no assinalado
no assinalado
no assinalado
no assinalado
no assinalado
no assinalado
no assinalado
endereo de unicast local de link
endereo de unicast local de site
endereos de multicast
0000 0000
0000 0001
0000 001
0000 010
0000 011
0000 1
0001
001
010
011
100
101
110
1110
1111 0
1111 10
1111 110
1111 1110 0
1111 1110 10
1111 1110 11
1111 1111
Frao do espao
de endereamento
1/256
1/256
1/128
1/64
1/32
1/16
1/8
1/8
1/8
1/8
1/8
1/8
1/8
1/16
1/32
1/64
1/128
1/512
1/1024
1/1024
1/256
Notas:
1. Os endereos no especificados, o endereo de loopback, e os
endereos IPv4 embutidos no IPv6 so assinalados com prefixo
binrio 0000 0000.
2. O IANA limita, por enquanto, a alocao de endereos unicast faixa
de endereos que comeam com o valor binrio 001. O espao
restante (aprox. 85% do espao de endereamento IPv6) est
reservado para definies futuras.
Redes em Unix
248
13 bits
TLA
ID
32 bits
NLA ID
16 bits
SLA ID
64 bits
interface ID
topologia
identificador
<--------------- topologia pblica ------------> <-----------> <-------------------------------------->
do site
da interface
80 bits
. . .
. . . 0000
16 bits
FFFF
32 bits
Endereo IPv4
Rede em Unix
249
80 bits
. . .
16 bits
0000
. . . 0000
32 bits
Endereo IPv4
Endereo no especificado
um endereo IPv6 com todos os 128 bits em 0, escrito como 0::0 ou
apenas ::.
Endereos de link locais
Um endereo em um link local utilizado quando no h necessidade de
reencaminhamento (forward). Ele formado pelo prefixo de 10 bits 1111 1110
10, seguido de 54 bits em 0 e 64 bits da identificao da interface. Estes
endereos sempre comeam com fe8 a feb. Assim, uma interface ethernet com
endereo MAC 00:01:02:EC:22:9A, ter o IPv6 de escopo link local
fe80::201:2ff:feec:229a.
10 bits
1111111010
54 bits
0000 . . . . . . . .
. 0000
64 bits
interface ID
Redes em Unix
250
38 bits
0000 . . . . . 0000
16 bits
SLA ID
64 bits
interface ID
Endereos de multicast
So endereos que possuem o prefixo 1111 1111, ou seja, na base
hexadecimal, comeam com ff.
Ferramentas de diagnstico
Podem ser utilizadas ferramentas como o ping6, traceroute6 e
tracepath6 para diagnstico de redes utilizando IPv6.
Rede em Unix
251
Internet e Intranet
Uma internet o termo utilizado para uma interligao de redes :
interconnected networks. A Internet a rede global interligando milhes de
computadores em todo o mundo. Uma intranet uma internet local com os
servios tpicos da Internet.
Com a necessidade de interligar computadores diferentes, com sistemas
operacionais diferentes, foi criado o protocolo TCP/IP. Uma internet uma rede
TCP/IP.
A Internet definida e controlada por uma grande comunidade
internacional aberta de projetistas de rede, operadores, vendedores e
pesquisadores denominada IETF - Internet Engineering Task Force. Esta
comunidade organizada em grupos de trabalho em diversas reas (como
roteamento, transporte, segurana, ...). Em 1986 foi criado o IAB - Internet
Architecture Board - que define a arquitetura da Internet. A gerncia das
atividades tcnicas do IETF feita pelo IESG - Intenet Engineering Steering
Group, que tambm define os padres da Internet. As polticas de uso da Internet
so definidas pela ISOC - Internet Society, uma organizao de membros
especialistas da Internet. O IANA - Internet Assigned Numbers Authority -
responsvel pela atribuio de todos os parmetros nicos da Internet como
endereos IP, protocolos e portos.
No Brasil, as regras da Internet so definidas pelo Comit Gestor da
Internet no Brasil (CGI.br), subordinado ao Ministrio de Cincia e Tecnologia. O
CGI.br foi criado pelo decreto presidencial N 4.829, em 3 de setembro de 2003 e
responsvel pelo domnio de primeiro nvel .br.
Redes em Unix
252
Servios de Redes
253
8. Servios de Redes
Domnios
Para facilitar a administrao de mquinas em uma rede Unix, elas so
agrupadas em domnios. Em um domnio podem existir servidores primrios e
secundrios. Estes servidores iro prover as informaes para as mquinas do
domnio. Uma mesma mquina poder pertencer a mais de um domnio.
254
Servio de Redes
Estudaremos aqui os domnios DNS, NIS e LDAP:
DNS - Domain Name System
_________________________
1 YP marca registrada da British Telecom.
Servios de Redes
255
Nmero de
nodos
4
15
35
40
111
213
235
562
1.024
1.961
2.308
5.089
28.174
33.000
56.000
80.0007
130.000
159.000
Data
10/1990
01/1991
07/1991
10/1991
01/1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
Nmero de
nodos
313.000
376.000
535.000
617.000
727.000
1.300.000
2.200.000
4.900.000
9.500.000
18.000.000
30.000.00
42.000.000
70.000.000
110.000.000
162.000.000
172.000.000
317.000.000
355.000.000
256
Servio de Redes
Servios de Redes
257
258
Servio de Redes
Servios de Redes
259
Servidores de Nomes
Existem dois tipos de servidores de nome: o primrio e o secundrio ) ou
escravo) (primary master e secondary master ou slave). As informaes sobre os
domnios so feitas atravs de transferncias denominadas zone transfer. A
resoluo dos nomes feita do topo para o nome da mquina, e dever resultar
em um endereo IP.
Assim, o nome www.suse.de resolvido:
.de
suse.de
www.suse.de
Resoluo de endereos
Alm do domnio de nomes, os endereos tambm
so resolvidos (mapeados para nome). Os
endereos IP esto no sub-domnio in-addr.arpa.
Seja, por exemplo, www.suse.de, que tem
endereo 195.135.220.3. Logo, o mapeamento est
no domnio reverso 3.220.135.195.in-addr.arpa.
260
Servio de Redes
Software DNS
O software mais utilizado para resoluo de nomes o BIND - Berkeley
Internet Name Domain. Inicialmente desenvolvido para sistemas Unix, hoje
disponvel para diversos sistemas operacionais. O programa o /usr/sbin/named.
A configurao do BIND feita atravs de alguns arquivos. O arquivo
principal o /etc/named.boot na verso BIND4, ou o
/etc/named.conf na verso BIND8 ou superior. Este arquivo ir definir na
sesso options o diretrio da base de dados do DNS e, nas sesses zone, os
parmetros para definio dos domnios e sub-domnios (denominados zones).
No diretrio definido (o default /var/named para as verses at o
BIND8 e /var/lib/named para a verso BIND9 ou superior), esto os
arquivos que descrevem os domnios. Estes arquivos so formados por entradas
de controle e registros. Comentrios podem ser inseridos por ";".
Entradas de controle
$ORIGIN subdomnio
Muda a origem do domnio para as definies subsequentes
$INCLUDE arquivo
Inclui o arquivo arquivo que deve conter entradas de controle e
registros do DNS.
$TTL ttl
Define ttl o tempo de vida default em segundos. Podem ser
utilizados os sufixos M, H, D, W para indicar minutos, horas, dias
ou semanas.
$GENERATE faixa lhs [ ttl ] [ classe ] tipo rhs [ comentrio ]
Gera registros de acordo com a faixa fornecida. classe e tipo sero
definidos no tpico Formato dos registros do DNS.
lhs pode ser $ ou ${offset[,width[,base]]}. O $ representar o valor
da iterao que pode ser somado a offset, com 3 posies e na base
numrica base. rhs tratado da mesma forma do lhs.
Servios de Redes
261
tipo
262
Servio de Redes
Servios de Redes
263
2. Name server
NS servidor
onde
o nome ou o IP do servidor de nomes do
domnio.
IN
NS ns1.meudominio.com.
server.meudominio.com.
IN A 192.168.10.17
IN
AAAA 2001:0780:0:1::1
264
Servio de Redes
5. Name to IPv6 address mapping (experimental)
A6 prefixo ipv6
onde
prefixo
ipv6
nome
[ nome ]
o nmero de bits do prefixo;
o IPv6;
o nome de referncia.
www.meudominio.com.
IN A6 96 ::fef7:6d2c ipv6.provedor.com.
ipv6.provedor.com.
IN A6 0 3ffe:1900:4545:2:2d0:9ff::
o nome.
$ORIGIN meudominio.com.
mail IN CNAME servidor
Servios de Redes
265
8. Textual information
TXT "texto"
onde
texto
um texto livre.
9. Responsible person
RP email domnio
onde
email
o e-mail do responsvel;
domnio o domnio associado ao responsvel.
IN RP root.meudominio.com. meudominio.com.
266
Servio de Redes
11. Host information
HINFO hardware software
onde
hardware uma descrico do equipamento;
software uma descrico do ambiente operacional do
equipamento.
Servios de Redes
267
268
Servio de Redes
15. SRV - Available Services
srvce.proto [ .nome] [ ttl ] IN SRV ordem peso porto objeto
onde
nome simblico do servio como _http, _ftp,
srvce
_sip e _ldap;
proto
o nome simblico do protocolo como _tcp e
_udp;
nome
nome do objeto ou o definido anteriormente ou
em $ORIGIN;
ttl
o tempo de vida;
ordem
o nmero de prioridade. Quanto mento maior
a prioridade;
peso
o peso relativo entre objetos;
o nmero do porto do servio;
porto
objeto
o nome do servidor destino.
IN SRV
0 5 80 www.meudominio.com.
Servios de Redes
269
linuxtech.com.br.
IN DNSKEY 256 3 5 (
AwEAAchq3AcolVSob3ZC3H4YwSYDx6R2V0I1ivfKff0SLWmTQklYjuAT
uZZrZWqMMU3J5sXxSo7gT91vNONPvwNsRh089wjF0dJA3/rdGSVt8M0R
1O1wG/pLFiQTE8mjAjBY5TpOAlJgJNWUlQU6xkUmvgOCw+ysw8KFbrgN
FyQm5p4T
270
Servio de Redes
17. RRSIG - Signature Record
RRSIG tipo algo nome ottl expira inicio keytag dono assinatura
onde
registro RR
tipo
algo
cdigo do algoritmo como em DNSKEY
nmero de componentes no nome do objeto
nomes
tempo de vida do objeto
ottl
expira
data de expirao do RRSIG
data inicial
inicio
keytag
cdigo de verificao da assinatura
objeto dono da chave privada
dono
assinatura assinatura digital no formato base64
86400 RRSIG SOA 5 3 86400 20100202004030 (
20100103004030 43461 linuxtech.com.br.
KNZkSgaxBqf6kREdbegt+SaVLEgs4xlPBZ1d
egRU1x3Gc12paIZ9426NxDT1yOhHrMz4lP1x
dtc9jUEyDPXHxt+w7Rr/PbTYbxKS72SFQTgd
uCWz1xexI2I511geITmr3mga8V5skgS08T0i
lmt+8XKZ2V9WWVF5FK+OrCPCx/4= )
linuxtech.com.br.
Servios de Redes
271
272
Servio de Redes
Exemplo de configurao
A resoluo de nomes utiliza o arquivo /etc/resolv.conf que define
o(s) domnio(s) para nomes no qualificados e o(s) servidor(es) de nome default
para o cliente do DNS.
#
# /etc/resolv.conf
#
search meudominio.com
nameserver 192.168.1.1
Endereo IP
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
Funo
servidor de nomes
servidor de e-mail
estao 1
estao 2
servidor web
Servios de Redes
273
#
# Arquivo de configurao exemplo, simplificado do BIND 9.2
#
options {
directory "/var/lib/named";
check-names master warn;
pid-file "/var/run/named.pid";
files unlimited;
recursion yes;
multiple-cnames no;
forwarders {
200.150.13.178;
# Starix/LinuxSupport
200.150.4.5;
# Way Internet
};
};
zone "localhost" in {
type master;
file "localhost.zone";
check-names fail;
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
check-names fail;
allow-update { none; };
};
zone . in {
type hint;
file "root.hint";
};
zone
"meudominio.com" in {
type master;
file "master/meudominio.com.zone";
allow-transfer { any; };
notify yes;
};
zone "1.168.192.in-addr.arpa" in {
type master;
file "master/192.168.1.zone";
check-names fail;
allow-update {none;};
};
zone "outrodominio.br" in {
type slave
file "slave/outrodominio.zone";
masters { 192.168.2.1; };
};
274
Servio de Redes
Servios de Redes
275
Segurana no DNS
Para a gerao das chaves utilizado o aplicativo dnssec-keygen. Para a
gerao da assinatura utilizado o aplicativo dnssec-signzone. Para gerar a
assinatura para o dominio meudominio.com, utilizamos, por exemplo,
276
Servio de Redes
Servios de Redes
277
Ferramentas de diagnstico
Para diagnosticar problemas no DNS, existem diversas ferramentas
disponveis:
dnsdomainname
Exibe o domnio DNS
nslookup
Pesquisa interativa de nomes e IPs. O exemplo abaixo utiliza o
nslookup do BIND verso 8 por ser mais completo.
hmarx@thor: ~> nslookup
Default Server:
thor.starix.br
Address:
192.168.200.3
> ls linuxtech.br
[thor.starix.br]
#$ORIGIN linuxtech.br.
@
1D IN A
192.168.200.3
thor
1D IN A
192.168.200.3
www
1D IN A
192.168.200.3
> server ns.linuxsupport.com.br
Default Server:
ns.linuxsupport.com.br
Address:
201.17.146.157
> www.linuxsupport.com.br
Server: ns.linuxsupport.com.br
Address: 201.17.146.157
Name:
www.linuxsupport.com.br
AddressL 201.17.146.157
> ^D
hmarx@thor: ~>
278
Servio de Redes
dnsquery
Pesquisa em servidores de DNS
traceroute
Da mesma forma, o traceroute utilizar o DNS para exibir o nome
dos nodos.
dig
Faz pesquisas em servidores de nome.
dnsquery
Pesquisa servidores de nome usando o resolver.
host
Exame de nomes de nodos no DNS.
hmarx@thor: ~> host linuxsupport.com.br
linuxsupport has address 201.17.146.157
linuxsupport.com.br mail is handled (pri=10) by mail.linuxsupport.com.br
linuxsupport.com.br mail is handled (pri=20) by master.softaplic.com.br
hmarx@thor: ~>
Servios de Redes
named-xfer
Transferncia de definio de domnios.
thor:~ # named-xfer -z starix.com.br -f starix.zone ns.starix.com.br
named-xfer[30426]: send AXFR query 0 to 201.17.146.157
thor:~ # head starix.zone
; BIND version named 8.2.4-REL Thu Sep 20 04:20:40 GMT 2001
;BIND version root@knox:/usr/src/packages/BUILD/bind8-8.2.4/bin/named
;zone starix.com.br first transfer
;from 201.17.146.157:53 (local 192.168.200.3) using AXFR at Wed Nov 18
14:08:24 2009
$ORIGN com.br.
starix 86400 IN
SOA starix.com.br. hmarx.starix.com.br. (
2002091201 43200 3600 3600000 86400 )
86400 IN
NS
ns.starix.com.br.
86400 IN
NS
ns2.starix.com.br.
86400 IN
NS
master.softaplic.com.br.
thor:~ #
279
280
Servio de Redes
Servios de Redes
281
282
Servio de Redes
Servios de Redes
283
yppasswd [ -f ] [ -l ] [ -p ] usurio
ypchfn usurio
ypchsh usurio
O programa yppasswd utilizado para alterar a senha de usurio ou
informaes na base NIS. O usurio dever ter aberto uma sesso validada pelo
NIS. Note que apenas o root pode alterar as informaes de outro usurio.
Algumas opes:
-f
-l
-p
284
Servio de Redes
"ethers.byname"
"mail.aliases"
"services.byname"
"protocols.bynumber"
"hosts.byname"
"networks.byaddr"
"group.byname"
"shadow.byname"
"passwd.byname"
-d domnio
-k
-t
-x
Servios de Redes
285
286
Servio de Redes
Definies
DN
RDN
DIT
LDIF
OID
Distinguished Name
Relative Distinguished Name
Directory Information Tree
LDAP Data Interchange Format
Object Identifier
Servios de Redes
287
Estrutura hierrquica
As entradas so armazenadas em uma estrutura em rvore chamada
Directory Information Tree. O DIT similar ao sistema de arquivos hierrquivo
do Unix. Cada entrada pode conter dados e/ou conter informaces sobre outras
entradas. Cada servidor contm uma sub-rvore.
Esquemas
Um esquema um conjunto de regras que descreve o tipo de dado a ser
armazenado, Ele mantm a consistncia e a qualidade do dado. Um bom esquema
reduz a duplicidade dos dados e mantm uma interface consistente entre as
aplicaces e os dados.
Um esquema contm atributos requeridos, atributos permitidos,
informaes de como comparar atributos, limites e restries de atributos. Um
atributo tem um nome (identificador nico), um identificador de objeto OID
(sequncia de nmeros inteiros separados por ., a sintaxe do atributo e se o
atributo multivalorado ou no.
288
Servio de Redes
Os atributos definidos no RFC2256 so:
uid
cn
sn
l
ou
o
dc
st
c
User Id
Common Name
Surname
Location
Organizational Unit
Organization
Domain Component
State
Country
LDIF
As entradas do LDAP podem ser representadas em um arquivo texto com
o formato LDIF - LDAP Data Interchange Format. Isto permite alteraes fceis
no dados, backups e transferncias de informaes para outros sistemas. Podem
ser utilizados os aplicativos ldbmcat e slapcat para converter de base da dados
ldbm para LDIF ou os aplicativos ldif2ldbm e slapadd para converter de LDIF
para a base de dados ldbm.
Exemplo de LDIF
dn: uid=hmarx,ou=People,
dc=linuxtech,dc=com,dc=br
uid: hmarx
cn: Helio Marques
objectclass: account
objectclass: posixAccount
objectclass: top
loginshell: /bin/bash
uidnumber: 1000
gidnumber: 3001
homedirectory: /home/hmarx
gecos: Helio Marques,,,,
userpassword: {crypt}dF35L2K2TmOVU
Servios de Redes
289
Servidor LDAP
A implementao utilizada no Linux o Openldap que implementa o
LDAPv3 com funcionalidades adicionais. O programa slapd o servidor LDAP
que atende as requisies dos clientes e manipula a base de diretrios (DIT).
290
Servio de Redes
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include
/etc/openldap/schema/core.schema
include
/etc/openldap/schema/cosine.schema
include
/etc/openldap/schema/inetorgperson.schema
include
/etc/openldap/schema/rfc2307bis.schema
include
/etc/openldap/schema/yast.schema
# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral
ldap://root.openldap.org
pidfile
argsfile
/var/run/slapd/slapd.pid
/var/run/slapd/slapd.args
Servios de Redes
2) Poltica de controle de acesso (ACLs):
291
292
Servio de Redes
3) Definico da base de dados
Aqui o domnio deve ser alterado para o escolhido.
############################################################
# BDB database definitions
############################################################
database
bdb
suffix
"dc=my-domain,dc=com"
checkpoint 1024 5
cachesize
10000
rootdn
"cn=Manager,dc=my-domain,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw
secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory
/var/lib/ldap
# Indices to maintain
index objectClass eq
Servios de Redes
293
De forma similar aos outros servios, pode-se habilitar o slapd para que
ele inicie automaticamente durante o processo de boot, atravs de:
294
Servio de Redes
instalado
no
diretrio
/srv/www/htdocs/lam. Ele deve ser configurado utilizando o script
configure dentro deste diretrio. Utilizando o servidor WEB (apache), o LAM
ser acessvel atravs da URL:
http://localhost/lam
Servios de Redes
295
Servidor WEB
O servidor WEB um programa que atende requisies do protocolo
HTTP - HyperText Transfer Protocol. No Linux, o servidor padro o apache.
Documentos no padro HTML, formados por textos, imagens, sons e vdeos, so
gerenciados e transferidos aos clientes (browsers) que os requisita.
Para tornar as pginas dinmicas, so utilizados programas. Estes
programas so chamados scripts, ou simplesmente CGIs (Common Gateway
Interface). Os CGIs podem ser escritos em qualquer linguagem de programao
(interpretada ou compilada). As mais comuns so: C, C++, perl, java, ou mesmo
shell scripts.
Para melhorar o desempenho e controlar o acesso a documentos e sites
HTML, utiliza-se um programa proxy. No Linux, o proxy padro o squid.
Configurao do Apache
A configurao bsica do apache feita no arquivo
/etc/httpd/httpd.conf. A configurao do apache2 est em arquivos
no diretrio /etc/apache2. O arquivo /etc/apache2/httpd.conf
inclui diversos arquivos de configurao. Nestes arquivos so definidos o modo
de carga do httpd (standalone ou inetd), os diretrios dos documentos, imagens,
scripts CGI, etc. So definidos tambm os portos TCP/UDP (normalmente 80
para http e 443 para https). Os arquivos padro a serem transferidos
(index.htm[l], por exemplo), as permisses e seguranas tambm so
definidos.
Podem ser criados hosts virtuais. Cada um pode ter seu diretrio com os
documentos HTML e programas CGI.
O httpd pode ser disparado em modo standalone. So disparados
processos httpd, que aguardam uma conexo nos portos definidos. No modo
inetd, o httpd s ser disparado caso a conexo seja requisitada por um cliente.
296
Servio de Redes
O arquivo /etc/httpd/httpd.conf dividido em sesses.
Diretiva
Significado
ServerType
ServerRoot
Timeout
KeepAlive
MaxKeepAliveRequests
KeepAliveTimeout
MinSpareServers
MaxSpareServers
StartServers
MaxClients
MaxRequestPerChild
Listen
LoadModule
AddModule
ExtendedStatus
Servios de Redes
297
Diretiva
Significado
Port
Listen
User
Group
ServerAdmin
ServerName
DocumentRoot
UserDir
DirectoryIndex
AccessFileName
HostNameLookups
TypesConfig
DefaultType
MIMEMagicFile
298
Servio de Redes
O apache pode gerar logs de acesso e erro. Os logs de acesso podem ser
definidos em diversos formatos. O formato do log de acesso uma cadeia de
caracteres que pode incluir pseudo-variveis como:
Varivel
Significado
%h
%a
%l
%u
%t
%r
%s
%b
%U
%{Referer}i
%{User-Agent}i
Diretiva
Significado
ErrorLog
Arquivo
padro
para
log
de
erros
(padro:/var/log/httpd/error_log)
Nvel das mensagens de erro (debug, info, notice,
warn, crit, alert, emerg) (padro:warn)
Definio de formatos de log para CustomLog
Arquivo e formato do log de acesso
(padro:/var/log/httpd/access_log
e
common)
LogLevel
LogFormat
CustomLog
Servios de Redes
299
Cada diretrio acessvel pelo apache pode ter o seu acesso controlado
atravs de diretivas includas entre os tags <Directory diretrio> e </Directory>.
As principais diretivas de controle de acesso so:
Diretiva
Significado
AuthUserFile
AuthGroupFile
AuthUserDBMFile
AuthGroupDBMFile
Options
AllowOverride
Order
Allow from
Deny from
Satisfy
No
apache2,
os
arquivos
incluidos
pelo
/etc/apache2/httpd.conf contm as configuraces de cada sesso:
default-server.conf
server-tuning.conf
errors.conf
listen.conf
uid.conf
vhosts.d/*.conf
mod_autoindex-defaults.conf
mod_status.conf
mod_info.conf
mod_tidy.conf
ssl-global.conf
mod_log_config.conf
mod_userdir.conf
mod_mime-defaults.conf
mod_usertrack.conf
300
Servio de Redes
Servios de Redes
301
<Files ~ "^\.ht">
Order allow, deny
Deny from all
Satisfy All
</Files>
302
Servio de Redes
Sites Virtuais
Pginas para domnios virtuais podem ser definidas atravs de diretivas
inseridas entre <VirtualHost nome> e </VirtualHost>.
Deve ser definida a diretiva NameVirtualHost para que o apache
selecione o site web a partir do nome. O nome dever ser resolvido pelo DNS. O
nome pode ser substitudo por um IP, por IP:porto, por * ou *:porto, definindo a
partir de que IP/porto o domnio virtual estar disponvel. O nome ser resolvido
para o IP utilizando o DNS.
No SuSE Linux, os domnios virtuais so definidos nos arquivos *.conf
do diretrio /etc/apache2/vhosts.d/. Crie um arquivo para cada domnio
virtual.
Para que um site seja acessvel tanto por
http://www.meudominio.com
quanto por
http://meudominio.com
os nomes
www.meudominio.com
e
meudominio.com
devem ser resolvidos para um IP no DNS (registro A). Estes e outros apelidos
podem ser definidos na sesso <VirtualHost www.meudominio.com> diretiva
ServerAlias, como mostrado a seguir.
Servios de Redes
Arquivo /etc/apache2/vhosts.d/meudominio.com.conf
<VirtualHost www.meudominio.com>
ServerName www.meudominio.com
ServerAlias meudominio.com
DocumentRoot /srv/www/meudominio.com/htdocs
ErrorLog
logs/meudominio-error.log
CustomLog logs/meudominio-access.log
ScriptAlias
/cgi-bin/ "/srv/www/meudominio.com/cgi-bin/"
Alias
/icons/ "/srv/www/icons/"
<Directory "/srv/www/meudominio.com/htdocs/private">
AllowOverride None
AuthType
Basic
AuthName
"Acesso restrito"
AuthUserFile /srv/www/meudominio.com/users
require valid-user
</Directory>
</VirtualHost>
303
304
Servio de Redes
Servios de Redes
305
O apache gera diversos logs que podem ser analisados por programas
como o webalizer que cria relatrios e grficos de acessos para pginas WEB:
306
Servio de Redes
Servidor de proxy
O software padro de proxy o squid.
Alm de acelerador para acesso as pginas WEB,
ele serve tambm para controlar e registrar os
acessos a elas.
O arquivo de configurao do squid o /etc/squid.conf at o SuSE
7.3 e o /etc/squid/squid.conf a partir do SuSE 8.0. Este arquivo contm
diversos parmetros para configurar a utilizao de memria e de espao em disco
pelos objetos armazenados pelo squid. Alm disto, ele contm regras de controle
de acesso s pginas WEB.
Um proxy normalmente utilizado em conjunto com um firewall.
Utilizando transparent proxy pode-se acelerar e controlar o acesso a pginas
WEB mesmo que o usurio do browser no defina a utilizao de proxy.
Para controle de acesso deve-se primeiro definir o que vai ser controlado.
Isto feito atravs das acls (Access Control Lists). Uma acl definida por uma
das seguintes sintaxes globais:
acl nome tipo argumentos
acl nome tipo " arquivo"
O tipo define elementos para o controle: src, dst, srcdomain, dstdomain,
time, port, proto, method, browser, user, srcdom_regex, dstdom_regex,
maxconn, snmp_community, ... O formato do(s) argumento(s) ir depender do
tipo da acl. Assim, por exemplo, src requer um argumento tipo ip/mscara,
srcdomain requer um domnio (como .starix.com.br), port pode ser definido
pelo seu nmero ou por uma faixa (0-1024, por exemplo), e method pode ser, por
exemplo, GET, PUT ou POST.
Servios de Redes
307
308
Servio de Redes
Servios de Redes
309
Calamaris
O calamaris usado para analisar os logs de acesso do squid e gerar uma
pgina WEB com os relatrios. Os relatrios gerados so:
Summary
Incoming requests by method
Incoming UDP-requests by status
Incoming TCP-requests by status
Outgoing requests by status
Outgoing requests by destination
Request-destinations by 2nd-level-domain
Request-destinations by toplevel-domain
TCP-Request-protocol
Requested content-type
Requested extensions
Incoming UDP-requests by host
Incoming TCP-requests by host
Distribution Histogram
Performance in 1 hour steps
310
Servio de Redes
O script bash abaixo pode ser utilizado via cron para periodicamente
atualizar o relatrio de acesso utilizando o calamaris. Altere as variveis de
configuraco para o seu domnio.
#!/bin/sh
#
# Script para gerar relatorio do Squid
#
# Helio Marques <hmarx@linuxtech.com.br>
# (C) 2002-2010 HMarx
#---------------------------------------------------------------------------------# Configuration
TITLE="Linuxtech"
CAT=which cat
CALAMARIS=which calamaris
ACCESSFILE=/var/log/squid/access.log
CACHE_FILE=/var/log/squid/calamaris_cache.db
REP_FILE=/srv/www/linuxtech.com.br/htdocs/proxy/index.html
#---------------------------------------------------------------------------------if [ -f $CACHE_FILE ]
then
$CAT $ACCESSFILE | $CALAMARIS -F html -H "$TITLE" -a -u -i $CACHE_FILE o $CACHE_FILE > $REP_FILE
else
$CAT $ACCESSFILE | $CALAMARIS -F html -H "$TITLE" -a -u > $REP_FILE
fi
Servios de Redes
A seguir podem ser vistos alguns dos relatrios gerados.
311
312
Servio de Redes
Servios de Redes
313
314
Servio de Redes
Servios de Redes
315
squidGuard
H ainda o plugin squidGuard para o squid que permite a definio de
filtros, redirecionamento e controle de acesso. Ele facilmente configurado
atravs do arquivo /etc/squidguard.conf.
Voc poder encontrar exemplos de configurao nos arquivos do
diretrio /usr/share/doc/packages/squidgrd.
Aps configur-lo, altere o programa de redirecionamento do squid para o
squidGuard na diretiva redirect_program no arquivo squid.conf.
316
Servio de Redes
Servios de Redes
317
318
Servio de Redes
Exemplo de MUA:
Servios de Redes
319
Protocolos de e-mail
Existem dois protocolos bsicos: o de envio e o de recebimento ou leitura
de e-mail. O protocolo de envio de e-mail o SMTP - Simple Mail Transfer
Protocol. O roteamento de mensagens tratado pelas mquinas Mail Exchange
(definidas nos registros MX do DNS). O protocolo de leitura de e-mails
normalmente o POP (hoje na sua verso POP3). O protocolo POP basicamente
configurado no MUA.
Um e-mail no diretrio de spool
/
|
Cabealho /
\
|
\
Corpo
/
|
/
\
|
\
320
Servio de Redes
Estudaremos aqui o sendmail, o MTA mais utilizado em plataformas
Unix.
Protocolo do sendmail
Quando um usurio em uma mquina (local) quer enviar um e-mail para
um usurio em outra mquina (remota), estabelecida uma conexo SMTP. O
protocolo SMTP muito simples. A mquina local se identifica, informa o
remetente do e-mail, o destinatrio do e-mail e o contedo (corpo) da mensagem.
A mquina remota pode realizar verificaes aceitando ou no as diversas
informaes.
Veja abaixo um diagrama simples desta conversao.
Servios de Redes
321
322
Servio de Redes
Configurao do sendmail
O sendmail o programa mais usado como MTA.
Sua configurao bsica est no
arquivo
/etc/sendmail.cf. Podem ser configuradas
informaes como os nomes da mquina local (nome e/ou
domnio), regras de tratamento dos e-mails (chamadas de
regras de reescrita), seguranas e limitaes. Este arquivo
utiliza diversos arquivos texto e .db localizados em
/etc/mail.
Abaixo pode ser visto um diagrama simplificado do fluxo das regras de
tratamento dos e-mails:
Servios de Redes
323
MAIL_CREATE_CONFIG
Varivel
Valores
yes | no
FROM_HEADER
<domnio>
SMTPD_LISTEN_REMOTE
yes | no
CONF_TYPE
standard |
advanced |
undef
yes | no
SENDMAIL_EXPENSIVE
Significado
O SuSEconfig gerar o
arquivo sendmail.cf
Domnio default para
FROM
Aceita conexes
remotas ?
Tipo de configuraco do
servidor de e-mail
s despacha e-mail se
o sendmail for
disparado manualmente
324
Servio de Redes
Em /etc/sysconfig/sendmail:
Varivel
SENDMAIL_LOCALHOST
SENDMAIL_SMARTHOST
SENDMAIL_NOCANONIFY
SENDMAIL_ARGS
SENDMAIL_CLIENT_ARGS
MASQUERADE_DOMAINS
Valores
localhost
...
<servidor do
provedor>
yes | no
-L sendmail
-Am -bd -q30m om
-L sendmail-client
-Ac -q30m
<dominio>
...
SENDMAIL_EXPENSIVE
yes | no
SMTP_AUTH_MECHANISMS
SMTP_AUTH_SERVER
STARTTLS
SENDMAIL_DNSRBL
Significado
Nomes da mquina local
Servidor opcional que
transporta seus e-mails
Transforma os e-mails na
forma cannica (requer
pesquisas no DNS)
Opes de execuo do
sendmail
Opes de execuo do
sendmail client
Domnios a serem
mascarados com
$FROM_HEADER
S despacha e-mail se o
sendmail for disparado
manualmente
Lista de mecanismos de
autenticao como
cliente
Lista de mecanismos de
autenticao como
servidor
Uso da certificao
Servidores de pesquisa
em DNS por open relays
Servios de Redes
325
Definio
mapeamento de usurios
de domnios virtuais
definio de dominios para
o qual ser aceito relay
polticas de acesso
mapeamento de usurios
no qualificados
definio de
transportadores de e-mail
nomes de hosts e domnios
considerados locais
326
Servio de Redes
Servios de Redes
327
Significado
define o comportamento do servio de ftp
usurios que no podem se conectar ao
servio de ftp
converses conhecidas pelo servidor de
ftp
mensagem de boas vindas
usurios cuja sesso FTP ter o diretrio
pessoal como raiz
328
Servio de Redes
Sesses remotas
Ao contrrio da maioria dos sistemas operacionais, voc no precisa estar
na console do computador para executar programas nele. Voc pode utilizar um
terminal em modo texto ou grfico, estando at mesmo a quilmetros de distncia
do computador. Para isto, existem programas servidores como o telnetd , o rlogin
e o sshd, alm e XServers para diversas plataformas.
Um terminal modo texto ou semi-grfico pode ser conectado a um
computador atravs de uma porta serial, um modem ou mesmo uma rede
TCP/IP. Um computador qualquer pode ser utilizado como terminal atravs de
um programa emulador.
Para aplicaes em modo texto ou semi-grfico, existem emuladores de
terminais tipo VT-100, ANSI e outros.
Em modo grfico, normalmente so utilizados os
Xterminals (terminal com protocolo X11 ou terminal do X
Window). Um computador em rede pode executar um XServer e
assim ser transformado em um Xterminal. Existem diversos
aplicativos X Window que emulam um terminal texto (como o
xterm, o kvt, o konsole, e o rxvt). Alguns destes permitem cores
e at imagens de fundo.
Para uma sesso segura h o SSH - Secure shell, que
criptografa toda a comunicao e utiliza autenticao RSA. A
configurao
bsica
feita
atravs
do
arquivos
/etc/ssh_config na verso 1 ou /etc/ssh/ssh_config
na a verso 2.
Para permitir a execuo remota de um aplicativo X grfico pode-se
utilizar o ssh com a opco -X (Enable X Forwarding). A incluso da opo -C
habilita a compresso dos dados na conexo SSL.
Servios de Redes
329
330
Servio de Redes
Entre as opes mais importantes esto:
noipdefault ou iplocal:ipremoto
modem ou local
ipcp-accept-local
ipcp-accept-remote
ms-dns servidorDNS
[no]defaultroute
[no]replacedefaultroute
[no]auth
Servios de Redes
331
332
Servio de Redes
Servios de Redes
333
334
Servio de Redes
Servios de Redes
335
Comunicao e Telefonia
O Linux possui diversos programas
para comunicaco atravs da Internet. Um
dos mais utilizado o kopete que permite
a conexo com ICQ, MSN, AIM, IRC,
Jabber e outros. Ele totalmente
personalizado e faz parte do KDE.
kopete
skype
Alm disto existem diversos programas que falam protocolos H323 e SIP
permitindo facilmente a criao de sistemas de audio e vdeoconferncia.
336
Servio de Redes
Interconectividade
Interconectividade DOS/Windows
O kernel do Linux suporta os sistemas de arquivos msdos, vfat, ntfs e
smbfs. Uma partio FAT ou VFAT pode ser montada na estrutura hierrquica de
sistemas de arquivos do Linux. Assim, voc pode transferir arquivos facilmente
entre os sistemas de arquivos DOS/Windows e Linux em discos ou disquetes.
Utilize os comandos tradicionais, como o cp e mv, do Unix. No se esquea de
desmontar os sistemas de arquivos removveis (como disquetes e zip drives) antes
de remover a media.
Voc pode utilizar ainda os comandos mtools (como mattrib, mcd,
mcopy, mdel, mdeltree, mdir, mformat, mmd, mrd, mmove, mren e mtype)
para tratar diretamente arquivos e diretrios em disquetes ou parties FAT ou
VFAT.
hmarx@thor:~> mdir a:
Volume in drive A is SuSE Linux (abbr=SUSE LINUX )
Volume Serial Number is 5377-BBE2
Directory for A:/
chapte~1 aw
33302 07-04-2002 17:30
chapte~2 aw
295888 07-04-2002 17:31
biblio~1 aw
15343 07-04-2002 17:31
3 files
344 533 bytes
1 112 576 bytes
hmarx@thor:~>
chapter_01.aw
chapter_08.aw
bibliography.aw
free
Servios de Redes
337
338
Servio de Redes
Servios de Redes
339
No SuSE Linux, o servidor Samba pode ento ser disparado pelo script
rcsmb (ou rcsamba). Sero disparados o smbd e o nmbd, servidores SMB e de
nome NetBIOS, respectivamente.
O samba pode ser administrado facilmente pelo SWAT - Samba Web
Administration Tool - atravs de um navegador WEB utilizando uma conexo no
porto 901 (http://localhost:901). Para isto, o swat deve ser habilitado
no /etc/inetd.conf.
340
Servio de Redes
Servios de Redes
341
342
Servio de Redes
O kernel Linux
343
9. O Kernel Linux
Configurao do kernel Linux
Como sistema de fonte aberto, o sistema operacional Linux pode
ser modificado e adequado arquitetura e configurao de
hardware de um computador especfico ou de servios suportados
pelo kernel. Para isto, necessria a instalao dos fontes do kernel.
Os fontes so normalmente instalados em /usr/src/linux. A verso mais atualizada
pode ser obtida de http://kernel.org. Consideraremos um kernel 2.6.x nos
exemplos.
Drivers para dispositivos muito recentes podem no estar, ainda, includos
nos fontes do kernel. Em alguns casos, eles podem estar disponveis em sites na
Internet. Mesmo alguns fabricantes j disponibilizam fontes de drivers mais
atualizados para seus produtos. Siga as instrues que normalmente acompanham
os arquivos baixados do site. Nos casos em que os drivers so disponibilizados
em formato objeto, certifique-se de escolher o driver para a verso correta do
kernel. Os mdulos objetos, carregveis dinamicamente, so geralmente copiados
para um subdiretrio do diretrio /lib/modules/verso_do_kernel.
Quando h necessidade de recompilao, os
bsico em C devero estar instalados (como o gcc,
devel). Se a instalao for feita atravs YaST no
pacotes sero automaticamente selecionados com
desenvolvimento.
pacotes de desenvolvimento
o make, o ld, e o ncursesSuSE Linux, alguns destes
a seleo do ambiente de
344
O Kernel Linux
Objetivo
Ver as opes definidas no Makefile
Realizar a configurao em modo texto linha
a linha
Realizar configurao em modo texto com
janelas
Realizar a configurao em modo grfico,
no sistema X Window
Obter a configurao do kernel atual em
execuo a partir de /proc/config.gz
O kernel Linux
345
346
O Kernel Linux
Objetivo
Apagar os arquivos objetos antigos
mantendo a configurao
Apagar todos os arquivos objetos antigos
incluindo a configurao
Compila tudo que necessrio
Compila apenas o kernel
Compilar todos os mdulos definidos na
configurao
Instalar
os
mdulos
no
diretrio
/lib/modules/verso do kernel
O kernel Linux
347
Voc pode tambm gerar disquetes do boot para recuperao em caso de mau
funcionamento ou funcionamento errtico do sistema devido a uma recompilao
do kernel ou algum mdulo. Isto pode ser feito atravs do YaST ou manualmente.
Veja como criar manualmente um conjunto de disquetes de boot no apndice B:
Criando Disquetes de Boot.
348
O Kernel Linux
Segurana
349
10. Segurana
Devemos inicialmente definir alguns conceitos relacionados a segurana
de equipamentos, processos e informaes (que chamaremos de objetos):
integridade, disponibilidade, confiabilidade e privacidade. Integridade a
permanncia til e funcional dos objetos. Disponibilidade o tempo em que os
objetos esto acessveis para a utilizao. Confiabilidade a certeza de que os
objetos esto corretos (funcionam corretamente e/ou no foram alterados).
Privacidade a certeza que os objetos s esto disponveis aos usurios, grupos
ou outros objetos aos quais pertencem ou foram dadas permisses. Para isto o
sistema deve ter controle de acesso e auditoria para que se possa identificar quem,
quando e o que fez, nos casos da ocorrncia de algum evento incorreto ou
malicioso.
Segurana no Linux
A segurana em sistemas Unix-like uma questo
de confiana. importante definir bem os grupos
de usurios e as regras de utilizao de senhas.
Deve ser tomado um cuidado especial com o
usurio root e aplicativos suid root.
350
Segurana
Formas de ataque
O acesso fsico a um equipamento com informaes crticas e/ou
confidenciais dever tambm ser restrito. Um simples reset poder comprometer
a integridade das informaes. Se o invasor puder reinicializar a mquina atravs
de um disquete ou CD, a festa fica completa. Outro meio de se furar a segurana
so os links de comunicao. Deve-se prestar muita ateno aos links de acesso
dedicado ou modems para acesso discado.
Defina bem a funo do equipamento no qual voc est instalando o
Linux. Selecione os servios que voc realmente deseja disponibilizar (telnet, ftp,
http, mail, ...). Instale apenas os necessrios e/ou desabilite os outros.
Cavalos de Tria
O nome "Cavalo de Tria" vem da mitologia (tambm
referenciado como o presente de grego). Ele dado a
programas que aparentam fazer alguma coisa mas fazem outra
coisa, normalmente maliciosa. Normalmente eles so enviado
atravs de e-mail ou disponibilizados em sites de download
gratuitos. Nunca rode programas de fontes duvidosas. Nunca
execute programas executveis a no ser que voc confie em
quem enviou (pessoa ou site). Sempre verifique todo
programa interpretado (por exemplo, os scripts) antes de execut-lo. Lembre-se
que erros (no intencionais) tambm podem ser muito prejudiciais.
Tome cuidado com o PATH ! Garanta que o comando que voc digita
executar realmente o programa desejado. Um executvel chamado ls instalado
no diretrio pessoal de um usurio que utilize o shell com a varivel PATH
contendo o diretrio pessoal ($HOME) ou o diretrio corrente (.) antes dos
diretrios do sistema, pode no "listar o diretrio" ou no apenas "listar o
diretrio" !
Cuidado com as permisses do diretrio pessoal. Os arquivos de
inicializao (como ~/.bashrc, ~/.profile, ~/.vimrc, ~/.forward
e ~/ .procmailrc) podem ser alvos para a insero de "cavalos de tria".
Um diretrio pessoal deve ter as permisses rwx------, ou seja 0700, garantindo
segurana e privacidade.
Segurana
351
352
Segurana
Scripts CGI
Tenha uma especial ateno na escrita de
scripts WEB. A maioria dos furos de segurana no
so intencionais. Nunca confie no browser do
usurio. Apesar das limitaes impostas por tags
HTML, um campo poder exceder as capacidades
das variveis do script. Os textos podero conter
metacaracteres ou caracteres especiais como uma
crase () que podem ser interpretadas, por exemplo, pelo shell ou pelo perl e
permitir a execuo de comandos externos. Nunca permita que usurios comuns
coloquem scripts CGI em seu servidor sem que um profissional de segurana
tenha testado todo o script e provado que ele no oferece riscos ao seu sistema.
Variveis globais podem tambm oferecer informaes valiosas para os
atacantes. Estas informaes podero ser exibidas no browser ou facilmente
enviadas por e-mail.
Uma ateno especial deve ser dada aos scripts interpretados pelo
servidor. Os scripts comumente escritos em linguagem shell, perl ou php, por
exemplo, devem ser rigorosamente testados antes de publicados. Os scripts java
ou vb, que so interpretados pelo browser, normalmente so mais prejudiciais
segurana do cliente. Estes devem tambm ser verificados para no exporem
informaes indesejveis do servidor para os clientes (browsers).
Segurana
353
Vrus
Um vrus de computador um programa capaz de
"infectar" outros aplicativos e de se espalhar (replicar) por
outros aplicativos. Uma instalao Linux pura
intrinsecamente imune a vrus. Um usurio comum
normalmente no possui permisso para escrita nos
diretrios do sistema. Assim a "infeco" ficaria restrita
aos seus arquivos. Alm disto, escrever um vrus que
contamine programas em qualquer verso, distribuio ou configurao do Linux
extremamente difcil (e por que no dizer praticamente impossvel).
Um arquivo anexo em um e-mail no possui atributo executvel e o
usurio, somente se desejar, ir salv-lo e alterar as permisses para que ele possa
ser executado. Um bom administrador nunca iria faz-lo com qualquer arquivo
vindo da Internet. Esta abordagem de contaminao de mquinas Unix/Linux
denominada de vrus social: um educado vrus que pede para ser salvo, ter seus
atributos alterados para executvel e ainda execut-lo como root !
Porm, se uma mquina utilizada como servidor de arquivos/discos,
arquivos inofensivos para o Linux se tornam extremamente perigosos para as
estaes de trabalho DOS, Windows, MacOS ou Netware. Existem programas
anti-vrus para o Linux para varrer estes arquivos e diretrios compartilhados e
detectar a presena de padres de vrus neles. Para os anexos de e-mails pode ser
utilizado o programa amavis em conjunto com um software anti-vrus (tanto no
envio quanto na recepo). O software anti-vrus deve ser atualizado
peridicamente e, quando possvel, automaticamente.
As mesmas precaues tomadas em relao aos cavalos de tria, quanto
ao PATH e ao diretrio pessoal, devem tambm serem tomadas em relao aos
problemas de vrus.
354
Segurana
Vermes (worms)
Como qualquer sistema operacional, o Linux no
imune a uma classe de programas, denominados de
vermes,
que
simplesmente
gastam
recursos
exageradamente. Isto degrada o desempenho do sistema,
provocando at o trashing. O trashing no um crash.
No trashing, o equipamento torna-se to lento que na
maioria das vezes fica impossvel utiliz-lo. Quando
detectado cedo, at fcil control-lo e elimin-lo. Basta "matar" o processo
guloso de recursos. Para minimizar a possibilidade de degradao do sistema pelo
gasto de recursos, pode-se configurar limites de utilizao de rea em disco com o
sistema de quotas, e limites de tempo de processamento, abertura de arquivos e
uso de memria com o ulimit.
As mesmas precaues tomadas em relao aos cavalos de tria e vrus
quanto ao PATH e ao diretrio pessoal devem tambm serem tomadas em relao
aos worms.
Ataques
Um sistema pode ser atacado de diversas formas. A confidencialidade das
informaes pode ser anulada atravs de escuta em conexes (rede, modem ou
conexes seriais). Quando no h alterao da informao, muito difcil detectar
a presena de um "man in the middle".
Uma forma de ataque semelhante ao verme chamada hoje de Denial of
Service (ou DoS). Ela consiste em sobrecarregar um ou mais servios. Seja por
exemplo um site WEB. Se algum gera, constantemente, muitas requisies para
obter as pginas deste site, outras pessoas podem no conseguir navegar pelo site.
Esta forma se torna mais perigosa se vier simultaneamente de vrias origens da
Internet, conhecida ento como DDoS (Distributed Denial of Service).
Outra forma de ataque a alterao da origem dos pacotes, enganando o
TCP/IP. Isto conhecido como IP spoofing.
Segurana
355
Algumas ferramentas
Existem centenas de ferramentas para
melhorar a segurana e diagnosticar possveis
invases. A implementao de um firewall pode
diminuir consideravelmente a probabilidade de
invaso.
O uso de TCP wrappers pode tambm ajudar
nesta reduo alm de facilitar a deteco de ataques.
A funo principal dos wrappers registrar e controlar os acessos aos servios de
rede. Por exemplo, o tcpd pode ser utilizado no arquivo /etc/inetd.conf
para verificar e controlar os acessos aos servios de rede. As permisses de acesso
para o tcpd so configuradas nos arquivos /etc/hosts.allow e
/etc/hosts.deny. Utilizando o xinetd, os arquivos no diretrio
/etc/xinetd.d/ podem conter diversas opes para evitar e diagnosticar
ataques, como:
only_from
no_access
access_times
cps
max_load
rlimit_as
rlimit_cpu
rlimit_rss
rlimit_stack
log_on_success
log_on_failure
lista de IPs
lista de IPs
faixa de horrio permitida
nmero mximo conexes por segundo
carga mxima do servidor
espao de endereamento mximo
tempo mximo de CPU em segundos
uso mximo de memria residente
tamanho mximo da pilha
informaes para log em caso de sucesso
informaes para log em caso de falha
356
Segurana
Segurana
357
Firewalls
As principais funes de um firewall so a proteo entre
redes locais/privadas e redes pblicas, como a Internet, e a gerao
de logs de atividades, trfego e acessos devidos e indevidos.
Existem diversas arquiteturas de firewall. A mais simples a que utiliza
um equipamento interligando duas redes (chamado de dual homed host). Este
equipamento possui duas interfaces de rede: uma para a rede local privada e outra
para a rede pblica (normalmente a Internet).
358
Segurana
Segurana
359
360
Segurana
Segurana
361
362
Segurana
Um alvo pode ser uma cadeia definida pelo usurio ou um valor especial
como ACCEPT, DENY, REJECT, MASQ, REDIRECT ou RETURN. O smbolo
! utilizado para inverter o significado da especificao.
Desta forma, se um gateway (com interface pblica eth1) s precisa fazer
NAT, basta a insero da regra:
Segurana
363
364
Segurana
Segurana
365
366
Segurana
O SuSEfirewall
A distribuio SuSE Linux contm uma forma mais simples de definio
das regras bsicas de firewall. Nas verses que utilizam o ipchains ele chamado
de SuSEfirewall e nas verses que utilizam o iptables ele chamado de
SuSEfirewall2. Os arquivos de configurao so bastante semelhantes e contm
definies de variveis utilizadas pelo script /sbin/SuSEfirewall ou
/sbin/SuSEfirewall2. O script bash l o arquivo de configurao e faz as
devidas chamadas ao ipchains ou iptables com as regras de firewall.
Chamaremos a partir de agora simplesmente de SuSEfirewall.
A arquitetura do SuSEfirewall define as trs classes de redes bsicas:
interna, externa e DMZ. Podem existir vrias interfaces de rede em cada classe.
No arquivo de configurao as interfaces so definidas pelas variveis
FW_DEV_INT, FW_DEV_EXT e FW_DEV_DMZ. A varivel FW_ROUTE
define se haver ou no roteamento de pacotes entre as interfaces definidas.
FW_MASQUERADE permite a traduo de endereos (NAT) para os IPs das
interfaces definidas em FW_MASQ_DEV. Apenas os endereos pertencentes s
redes definidas em FW_MASQ_NETS sero mascarados.
Segurana
367
Redes Externas
Redes DMZ
FW_SERVICES_INT_TCP
FW_SERVICES_EXT_TCP
FW_SERVICES_DMZ_TCP
FW_SERVICES_INT_UDP
FW_SERVICES_EXT_UDP
FW_SERVICES_DMZ_UDP
FW_SERVICES_INT_IP
FW_SERVICES_EXT_IP
FW_SERVICES_DMZ_UDP
FW_ALLOW_INCOMING_HIGHPORTS_UDP
FW_SERVICE_SQUID
FW_SERVICE_DHCPD
FW_SERVICE_DHCLIENT
FW_SERVICE_SAMBA
368
Segurana
Significado
FW_LOG_DROP_CRIT
FW_LOG_DROP_ALL
FW_LOG_ACCEPT_CRIT
FW_LOG_ACCEPT_ALL
FW_LOG
ip_local_port_range
icmp_echoreply_rate
log_martians
icmp_destunreach_rate
mc_forwarding
icmp_paramprob_rate
mc_forwarding
icmp_timeexceed_rate
rp_filter
route_flush
Voc pode definir se o firewall aceita ping ou permite ping na rede DMZ
ou na Internet atravs das variveis:
FW_ALLOW_PING_FW
FW_ALLOW_PING_DMZ
FW_ALLOW_PING_EXT
Segurana
369
Descrio
fw_custom_before_antispoofing
fw_custom_after_antispoofing
fw_custom_before_port_handling
fw_custom_before_masq
Antes do mascaramento
fw_custom_before_denyall
370
Segurana
Segurana
371
Descrio
Interliga duas mquinas
Interliga uma mquina a uma rede
Interliga duas redes
Quando o meio a Internet, uma das partes deve ter IP fixo para que a
outra parte inicie a formao do tnel. A outra parte pode ter IP dinmico. Existe
a possibilidade de utilizar IP dinmico nas duas partes atravs de atualizao de
um servidor de DNS dinmico. Porm sempre haver uma janela, aps a mudana
dos IPs, at a atualizao do(s) servidor(es) de DNS. Nesta janela a formao do
tnel no ser possvel e as partes estaro desconectadas. H ainda um fator de
insegurana nesta janela quando uma das partes poder tentar estabelecer o tnel
com outra entidade que por ventura tenha obtido o IP dinmico que pertencia a
outra parte. No se deve reduzir muito o TTL do registro no DNS para no
aumentar o trfego na Internet com as atualizaes do DNS.
O firewall tem um papel importante no funcionamento de uma VPN. Ele
ir encaminhar os pacotes da rede privada para dentro do tnel e no permitir que
as mquinas da rede privada sejam acessadas por mquinas da rede pblica.
372
Segurana
CONFIG_IPSEC=m
CONFIG_IPSEC_DEBUG=y
CONFIG_IPSEC_DEBUG_DISABLE_DEFAULT=y
CONFIG_IPSEC_TUNNEL=y
CONFIG_IP_IPSEC=m
CONFIG_IPV6_IPSEC=y
CONFIG_IPV6_IPSEC_TUNNEL=y
hmarx@thor:~>
Voc pode notar que o kernel do exemplo acima foi compilado com
suporte a IPsec atravs de mdulos carregveis. Quando o Openswan for ativado,
o mdulo ipsec ser carregado.
Segurana
373
374
Segurana
Segurana
375
done
for chain in forward_ext; do
$LAA $IPTABLES -A $chain -j LOG ${LOG}"-FORWARD-IPSEC-INT " -i $DEV_IPSEC
done
fi
true
}
...
376
Segurana
Segurana
377
378
Segurana
O software PGP
Utilizando o software pgp, voc pode gerar pares de chaves, extrair
chaves, ver chaves, assinar chaves e documentos, criptografar documentos e
verificar chaves, assinaturas e certificados.
Uma sesso tpica de gerao de um par de chaves de 1024 bits :
info@thor:~> pgp -kg 1024
Pretty Good Privacy(tm) 2.6.3in - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phils Pretty Good Software. 2000-10-07
International version - not for use in the USA. Does not use RSAREF.
Current time: 2002/10/31 04:05 GMT
Generating an RSA key with a 1024-bit modulus.
You need a user ID for your public key. The desired form for this
user ID is your name, followed by your E-mail address enclosed in
<angle brackets>, if you have an E-mail address.
Form: Real Name (comment) <email> (options)
Optional options: ENCR, SIGN, EXPIRE:yyyy-mm-dd
Enter a user ID for your public key:
info@starix.com.br
You need a pass phrase to protect your RSA secret key.
Your pass phrase can be any sentence or phrase and may have many
words, spaces, punctuation, or any other printable characters.
Enter pass phrase:
Enter same pass phrase again:
Note that key generation is a lengthy process.
We need to generate 1120 random bits. This is done by measuring the
time intervals between your keystrokes. Please enter some random text
on your keyboard until you hear the beep:
0 * -Enough, thank you.
.....................................................................
.................................................................****
.........****
Advisory warning: This RSA secret key is not protected by a passphrase.
Just a moment....
Key signature certificate added.
Key generation completed.
info@thor:~>
Segurana
379
Clusters e Grids
Para garantir a disponibilidade das informaes e servios e tambm a
integridade dos dados, pode-se criar um aglomerado de computadores que so
chamados de cluster ou grid. Normalmente d-se o nome de cluster a um
aglomerado local, e o nome de grid a um aglomerado na Internet ou em outra rede
geogrficamente distribuida. O uso de um grid tambm conhecido como
computao nas nuvens (cloud computing).
Veja mais detalhes no captulo Clusters e Grids.
380
Segurana
SAN e NAS
Considerando a estrutura de armazenamento, pode-se optar por uma rede
de armazenamento (SAN - Storage Area Network) e uma arquitetura NAS
(Network Storage Access). Nesta rede podem estar conectados diversos tipos
de dispositivos como discos, CDs ou DVDs, Fitas (DAT, cartucho, streamer,
DLT, LTO, ...) entre outros. Pode-se tambm utilizar RAID para redundncia
e/ou melhoria de desempenho.
A figura abaixo ilustra uma topologia utilizando SAN. Nenhuma estao
ou servidor acessa diretamente os dispositivos de armazenamento. Eles so
acessados pelos servidores atravs da rede SAN, normalmente usando protocolo
TCP/IP.
Segurana
381
RAID
RAID a sigla para Redundant Array of Inexpensive Disks ou Redundant
Array of Independent Disks e significa a utilizao de discos baratos ou
independentes para obter redundncia. O RAID por hardware significa que a
controladora de discos trata o protocolo RAID e disponibiliza para o sistema
operacional o volume como um disco virtual. Disponvel geralmente em
controladoras SCSI.
No RAID por software, o
sistema operacional cria o RAID a partir dos discos/parties fsicas/lgicas e
apresenta o disco virtual para as aplicaes.
Os nveis definidos so
RAID 0 = striping (min. 2 discos)
RAID 1 = mirroring (min.2 discos)
RAID 2 = bit level striping + dedicated hamming parity (min. 3 discos)
RAID 3 = byte level striping + dedicated parity (min. 3 discos)
RAID 4 = block level striping + dedicated parity (min. 3 discos)
RAID 5 = block level striping + distributed parity (min. 3 discos)
RAID 6 = block level striping + double distributed parity (min. 4 discos)
382
Segurana
Segurana mnima
Proteo facultativa
Proteo mandatria
Proteo verificada
Segurana
383
Significado
Testado funcionalmente
Testado estruturalmente
Metodicamente testado e verificado
Metodicamente projetado, testado e revisado
Projetado semi-formalmente e testado
Projeto semi-formalmente verificado e testado
Projeto formalmente verificado e testado
384
Segurana
Segurana
385
386
Sistema de computao
Um sistema de computao formado por elementos de hardware, de
software e de pessoas (que denominamos peopleware).
O hardware formado por peas fsicas como gabinetes, placas,
processadores, memrias, dispositivos de armazenamento (discos, fitas, CDs,
disquetes, ...), dispositivos de entrada e sada (monitores, teclados, mice, tablets,
impressoras, scanners, ...) e dispositivos de comunicao (placas de rede,
modems, hubs, switches, roteadores, rdios, antenas, ...).
O software compreende programas desde o firmware, o sistema
operacional com os drivers dos dispositivos perifricos, os utilitrios e os
aplicativos gerais. O firmware um software especializado que controla um
determinado dispositivo e normalmente j vem gravado de fbrica em uma
PROM, EPROM ou FLASH, instalada na controladora do dispositivo ou do
barramento que o liga ao conjunto processador.
O peopeware inclui todos os seres humanos envolvidos no sistema de
computao: os fornecedores de equipamentos e software (analistas e
programadores), os tcninicos de manuteno de hardware e software, os
gerentes do departamento e os usurios do sistema. A formaode cada elemento
e seu comportamento da utilizao do sistema influem bastante no modo de
gerenciamento do sistema.
387
Instalao fsica
Os componentes de hardware de um sistema de
computao normalmetne possuem partes mveis
que, em alguns casos, so bastante sensveis a
trepidaes ou impactos (como os discos e
unidades de CD/DVD). Mesmo o nivelamento de
alguns componentes poder afetar o seu
desempenho e at mesmo sua funcionalidade.
Cita-se como exemplo alguns discos e plotters. Os
fatores ambientais como temperatura, poluico e
umidade so igualmente importantes.
388
Instalao eltrica
Por serem eletrnicos, os componentes de
hardware tambm dependem da boa
qualidade do sistema eltrico que os
alimenta. Deve ser analisada a carga a ser
instalada (medida em VA - Volt-Ampre),
o cabeamento eltrico, as tomadas, os
disjuntores, estabilizadores, short-breaks,
no-breaks, e tambm o sistema de
aterramento da instalao. Uma instalao
eltrica inadequada frequentemente causa
de falhas no software por erros de hardware (interpretao errnea de instrues
pelos processadores ou alterao de dados em memria ou dispositivos de
armazenamento) que podem resultar em alterao ou mesmo perda de
informaes muitas vezes valiosas.
Os componentes eletrnicos, alm de dissiparem muito calor, foram
projetados para funcionar a uma determinada faixa de temperaturas. Para evitar
erros eletrnicos, deve-se tentar manter uma temperatura constante. Por razes
fsicas, mais fcil manter uma temperatura ambiental baixa constante (entre 17 a
28 graus) do que manter uma temperatura alta constante. Da o motivo de termos
ambientes refrigerados (o famoso ar condicionado) em salas com computadores
(principalmente servidores que devem ter alta disponibilidade).
gua e outros agentes qumicos podem danificar componentes do
hardware e meios de armazenamento (incluindo listagens em papel).
Gases cidos expelidos por baterias de no-breaks alm de nocivos
sade podem corroer componentes e cabeamentos. Poeira, fumaa e
outras formas poluentes devem tambm ser evitadas. Uma ateno
especial deve ser dada a equipamentos que precisam ser instalados em reas
externas ou em reas sem superviso humana constante (como centrais de
superviso sem operadores).
389
Topologia
Topologia o estudo da localizao e interconexo dos componentes do
sistema. Em sistemas de computao, ela define a forma em que os componentes
esto conectados, como os barramentos que interligam os componentes internos
de um computador e seus perifricos e as formas de conexo de redes. Os
elementos de rede e a forma que eles so interligados tambm geram entidades
foco de ateno para o gerente. Os pontos de conexo so frequentes causas de
problemas envolvendo desempenho, disponibilidade e segurana.
As topologias bsicas de redes so: barramento, anel, estrela
e broadcast. No barramento, todos os nodos compartilham no
tempo, um meio fsico de uso exclusivo. Isto , apenas um nodo
pode estar transmitindo uma informao que recebida por todos os
outros. No anel, os nodos formam uma cadeia na qual a informao circula at
chegar ao nodo de destino. Na estrela h um nodo central ao qual os outros nodos
so ligados. Assim, toda informao deve passar pelo nodo central. O broadcast
utiliza um meio comum compartilhado onde a informao no
endereada especificamente a um nodo, mas simplesmente jogada no
meio de transmisso. Exemplos tpicos de broadcast so redes de
rdio e TV.
390
Funcionalidades
Alm dos componentes do computador (processador, memria, discos, ...),
e das interfaces de rede (placas ethernet, seriais, USB, ...), h ainda diversos
dispositivos para compor uma rede.
Modems so componentes que fazem a converso de sinais
ou de protocolos de enlace. A palavra vem de
modulador/demodulador. Existem os modems para conexo discada
a provedores que normalmente so assncronos e atingem at
56Kbps em linhas telefnicas normais. Modems equivalentes para linhas privadas
so normalmente sncronos e possuem uma ampla faixa de velocidades. H aindas
os modems ISDN (tipicamente 64 ou 128Kbps) e ADSL (tipicamente 256 ou
512Kbps, mas que podem atingir at 8Mbps).
Hubs so equipamentos que permitem a conexo de diversos segmentos
de rede e fazem a retransmisso entre estes segmentos de forma passiva. O dado
que chega em uma porta retransmitido para todas as outras. Os mais comuns so
os hubs para redes TP utilizando cabos CAT5, CAT5e ou CAT6. Normalmente
trabalham em 10 ou 100 Mbps.
Switches so equipamentos semelhante aos hubs mas que identificam os
nodos pelos seu endereo MAC e somente transmitem o dado para a porta onde
foi identificado o endereo MAC do nodo de destino. Tambm trabalham
tipicamente em 10 ou 100 Mbps.
Roteadores so equipamentos mais sofisticados que passam pacotes de
uma rede para outra. Normalmente trabalham no nvel da camada de rede e
suportam o IP e o IPX. Existem ainda roteadores que permitem filtro atravs de
parmetros das camandas de transporte e aplicao. Trabalham em uma ampla
faixa de velocidades. So altamentes configurveis e gerenciaveis atravs de
protocolos como o SNMP e o HTTP.
Bridges so equipamentos que fazem traduo de protocolos. Eles podem
reencapsular um protocolo utilizando qualquer tipo de rede ou enlace.
391
Gerenciamento
A ISO - International Standards Organization - define 5
reas funcionais para o gerenciamento de redes no modelo OSI Open Systems Interconnection, conhecidas como reas funcionais
especficas de gerenciamento (OSI - Specific Management Function
Areas). Estas reas so:
Gerenciamento de falhas
Responsvel pela localizao de problemas ou falhas na rede ou em
seus elementos, envolvendo a descoberta, o isolamento e a resoluo
do problema.
Gerenciamento de Configurao
Processo responsvel por identificar e configurar dispositivos
crticos que controlam o comportamento da rede. Inclui, alm disso,
o provisionamento (instalao e disponibilizao) de recursos e
servios.
Gerenciamento de Segurana
Responsvel pelo controle de acesso informao e aos dispositivos
da rede, protegendo-os de abusos intencionais ou acidentais.
Gerenciamento de Desempenho
Enderea os processos que garantem a utilizao mais eficiente dos
recursos da rede e sua habilidade para atingir os objetivos do nvel
de servio, envolvendo a medio do desempenho de software,
hardware e meios de comunicao da rede.
Gerenciamento de Contabilizao
a area que processa e manipula os registros de utilizao de
recursos e servios.
392
Disponibilidade
Confiabilidade
Privacidade
393
394
395
MTBF
MTTR
MTBF =
FRi
i
e a disponibilidade do sistema :
A=
MTBF
MTBF + MTTR
396
IGMP
397
OSPF
SNMP
SNMP e MIB
A MIB - Management Information Base - descreve variveis para o
gerenciamento de uma entidade utilizando o protocolo SNMP. A documentao
de uma MIB descrita em ASN.1 - Abstract Syntax Notation 1 - uma linguagem
formal definida pela ISO com o objetivo da exatido. A definio de uma varivel
utilizando a notao ASN.1 no pemite ambiguidades em seu significado ou
representao. Como no h necessidade de interpretao, ela pode ser tratada
diretamente pelos programas nos equipamentos.
Uma varivel na MIB pertence a um namespace. Os namespaces da
Internet so administrados pela ISO o que garante uma identificaco nica
mundial para um objeto. Os objetos so identificados de forma hierrquica. Nesta
rvore, o namespace chamado nodo. Existem nodos abrangentes definidos pela
ISO que delega a administrao de sub-rvores especficas a outras entidades:
ISO ----- Pas -+---------- Alemanha
+---------- Brasil
+---------- China
+---------- ...
+---------- Zmbia
398
399
-- MIB-II
...
END
400
Aplicativos SNMP
Para a utilizao do protocolo SNMP sem a necessidade de
desenvolver aplicativos utilizando a API, diversos sistemas
operacionais (principalmente os UNIX-like) disponibilizam
utilitrios para gerenciar elementos de redes.
Para o Linux h, por exemplo, o pacote ucdsnmp que inclui o servidor
snmpd, bibliotecas e interfaces para desenvolvimento de aplicativos SNMP e
diversos utilitrios. Entre estes utilitrios esto:
snmpget
snmpset
snmpstatus
snmpwalk
snmptable
snmpnetstat
snmptest
snmptranslate
snmptrap,
snmpinform
snmpdelta
401
402
Variable:
Received Get Response from 192.168.200.5
requestid 0x370E3B1A errstat 0x0 errindex 0x0
system.sysDescr.0 = Linux eagle 2.4.19-4GB #1 Fri Sep 13 13:14:56 UTC 2002 i686
system.sysName.0 = eagle
Variable: ^DQuitting, Goobye
hmarx@thor:~> r
403
404
Ferramentas bsicas como o ping, arp, rarp podem ser utilizadas para
identificar os endereos das mquinas em uma rede e seu alcance. H ainda o
bing (bandwidth ping) que mede a banda entre dois equipamentos utilizando
pacotes de dois tamanhos.
Para controlar o acesso a servios utilizado o tcpd. Ele pode monitorar
os acessos a servios como telnet, ftp, pop3, smtp, rlogin, finger, rsh, registrar o
acesso e, de acordo com sua configurao, executar o programa servidor
apropriado. Normalmente estes servios so configurados no arquivo
/etc/inetd.conf. O processo inetd receber a conexo no porto
especificado e executar o processo correspondente. O processo definido como
tcpd que recebe o nome do processo servidor como argumento. Se os arquivos
/etc/hosts.allow e /etc/hosts.deny permitirem a conexo, o tcpd
dispara o servidor, repassando a conexo.
Um servio tpico do inetd o protocolo POP3, e no arquivo
/etc/inetd.conf podemos ver a seguinte linha:
pop3 stream tcp
405
406
407
408
12. Ambiente de
Execuo e
Desenvolvimento de
Aplicativos em Linux
Desde sua criao, a plataforma Unix definiu um padro de chamadas s
funes do sistema operacional atravs de um conjunto de bibliotecas. Estas
bibliotecas, como tambm quase todos os sistemas Unix-like e seus aplicativos,
foram escritas na linguagem C.
A linguagem C foi definida por Brian Kernigham e Dennis Ritchie em
1978. Nesta mesma poca, o Unix foi traduzido da linguagem de montagem do
DEC PDP-7 para ela. Na criao do padro Unix System V, pela AT&T, no
documento SVID (System V Interface Definition), foram definidas as funes,
suas interfaces e comportamento. Assim, qualquer programa que fosse escrito
utilizando este padro poderia ser facilmente portado para outro Unix e mesmo
para outra arquitetura que suportasse o Unix. Bastava a recompilao dos fontes
para a gerao do cdigo executvel na nova plataforma.
O projeto GNU criou ento o compilador gcc, e o Linux utiliza este
compilador como padro. O gcc considerado o melhor compilador existente. Ele
utiliza o conceito de linguagens de mquinas virtuais hierrquicas. O programa na
linguagem C/C++ compilado para uma linguagem de mquina virtual Linux. O
cdigo produzido otimizado, e ento traduzido para a linguagem de mquina
alvo (Intel, M68K, S390, etc). Este cdigo pode ser ento otimizado de acordo
com a arquitetura do processador alvo, gerando o cdigo objeto final.
409
410
411
Descrio
Lista arquivos abertos pelos processos
fuser
socklist
rpcinfo
ipcs
strace
ltrace
412
413
Alguns exemplos:
thor:~ # lsof /var/log/{mail,warn,messages}
COMMAND PID USER
FD
TYPE DEVICE
SIZE
syslogd 361 root
4w
REG
3,65 219397
syslogd 361 root
8w
REG
3,65 455344
syslogd 361 root
9w
REG
3,65 455344
syslogd 361 root
10w
REG
3,65 3405056
thor:~ #
NODE
580836
583175
583175
580834
NAME
/var/log/mail
/var/log/warn
/var/log/warn
/var/log/messages
thor:~ # rpcinfo -p
program vers proto
100000
2
tcp
100000
2
udp
100005
1
udp
100005
2
udp
100005
1
tcp
100005
2
tcp
100003
2
udp
100003
2
tcp
thor:~ #
port
111
111
860
860
863
863
2049
2049
portmapper
portmapper
mountd
mountd
mountd
mountd
nfs
nfs
thor:~ # ipcs -a
------ Shared Memory Segments -------key
shmid
owner
perms
0x5b410ec3 0
root
644
0x00000000 73531393
hmarx
777
bytes
1048576
196608
nsems
14
perms
used-bytes
nattch
1
2
status
dest
status
messages
414
415
416
Emuladores
Existem ainda para o Linux diversos programas emuladores de hardware
que permitem a instalao e a execuo de um ambiente operacional completo.
O VMware, da empresa VMware Inc.,
cria uma mquina virtual com o mesmo tipo
de processador da mquina hospedeira com
acesso a quase todos os dispositivos
disponveis em uma mquina real. A mquina virtual tem uma interface de rede
que por meio de um bridge possibilita o acesso mquina hospedeira ou at
mesmo sua rede local. O VMware possibilita a instalao e execuo perfeita
do FreeBSD, do DOS, do Netware5 e de todas as verses do Windows (do 3.1 ao
XP).
417
aplicativos
para
O hercules um emulador
de diversas arquiteturas da IBM,
indo do 360 ao z900 (nos modos
S/370, ESA/390 e zArchitecture).
Ele executa facilmente o OS 360,
o VM 370, o zOS, o Linux/390 e o
Linux para zSeries. Ele emula o
hardware do mainframe utilizando
os dispositivos do PC. Por
exemplo, um DASD 3390 pode
ser emulado por um arquivo no
disco e os terminais 3270 podem
ser utilizados atravs do x3270 ou
do tn3270 (aplicativos disponveis para o Linux para acesso a mainframes IBM).
418
419
420
421
422
Os arquivos Makefile
O programa make utiliza arquivos chamados de makefile que dizem o
que fazer para produzir um determinado resultado. Este resultado normalmente
compilar e linkeditar um programa gerando seu executvel.
Um arquivo makefile contm regras para a gerao de resultados a partir
de suas dependncias. Um destino pode ser um arquivo ou uma ao. O arquivo
makefile pode conter linhas com definies de variveis, e diretivas para incluso
de arquivos ou montagens condicionais. Textos aps o caracter # so comentrios
e sero ignorados pelo make.
As definies de variveis so semelhantes do bash:
varivel= texto
423
424
hello
clean:
@-rm hello.o hello
hello:
hello.o
$(CC) $(COPT) -o hello hello.o
hello.o: hello.c
$(CC) $(COPT) -c -o hello.o hello.c
425
texto
Descrio
Nome do pacote
Nmero da Verso
Nmero do Release
Localizao do arquivo com os fontes
Descrio sumria
Forma de licenciamento
Distribuio Linux
Nome do grupo do aplicativo
Arquitetura
Diretdio temporrio para criao do pacote
Dependncias para a criao do pacote
Dependncias para instalao
Descrio
Pr instalao do pacote
Ps instalao do pacote
Pr remoo do pacote
Ps remoo do pacote
426
427
6. Arquivos
%files
[ %defattr (permisses, usurio, grupo) ]
[ %dir %attr (permisses, usurio, grupo) caminho ]
lista de arquivos com o caminho
7. Histrico de atualizaes
%changelog
{
* dia-da-semana ms dia ano responsvel <email>
{ * texto descritivo }
}
Algumas diretivas ou macros como:
%{name}
%{version}
%{_tmppath}
%{buildroot}
%{suse_version}
%(linha de comando)
%{release}
%{_bindir}
428
Assinando um RPM
Para garantir a atenticidade de um pacote RPM utiliza-se uma assinatura
utilizando uma chave privada PGP. O par de chaves pode ser gerada pelo gpg.
Um desenvolvedor pode criar o arquivo .rpmmacros em seu diretrio
pessoal para especificar a chave que ser utilizada na assinatura dos pacotes
gerados por ele.
Por exemplo:
%_signature gpg
%_gpg_path ~/.gnupg
%_gpg_name Helio Marques <hmarx@linuxtech.com.br>
%_gpgbin /usr/bin/gpg
429
430
Name:
Version:
Release:
Source:
Summary:
License:
Distribution:
Group:
BuildArch:
simple-package
1.0
0.1
simple-package-1.0.tar.bz2
Simple Package
GPL
openSuSE
Applications
i586
%description
Simple package to demonstrate the RPM build process
%description -l pt_BR
Pacote simples para demonstrar o processo de criar RPM
%prep
%setup -q
%build
make
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/local/pacote
install -m 755 prog $RPM_BUILD_ROOT/usr/local/pacote/prog
install -m 644 arq.txt
$RPM_BUILD_ROOT/usr/local/pacote/arq.txt
install -m 644 img.png
$RPM_BUILD_ROOT/usr/local/pacote/img.png
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root)
%dir %attr(755,root,root) /usr/local/pacote
/usr/local/pacote/prog
/usr/local/pacote/arq.txt
/usr/local/pacote/img.png
%changelog
* Tue Dec 8 2009 Helio Marques <hmarx@linuxtech.com.br>
* Simple package - initial version
431
Note que a chave pblica deve ser importada para a base de dados RPM,
atravs do comando
root@venus:~# rpm --import hmarx-pubkey.asc
root@venus:~#
432
Comando
rpmbuild -bb aquivo.spec
rpmbuild -bs aquivo.spec
rpmbuild -ba aquivo.spec
433
434
Expresses Regulares
13. Expresses
Regulares
Expresses Regulares
O useo de expresses regulares uma ferramenta muito
poderosa utilizada em diversos aplicativos, incluindo shells,
como o bash, editores de texto, como o vi, utilitrios como o
grep, sed e find, e diversas linguagens de programao, como
Perl. Estas expresses so cadeias de caracteres que formam um
padro a ser comparado em um texto. Expresses regulares so tambm chamadas
de pattern matching ou simplesmente regex.
As expresses regulares so formadas por dois tipos de caracteres:
caracteres especiais, denominados metacaracteres, e os literais, ou caracteres
normais. Metacaracteres possuem significado especial e so interpretados pelo
aplicativo. Assim, uma cadeia de caracteres normais como "linux" uma
expresso regular que deve ser lida como o caracter l, seguido do caracter i,
seguido do caracter n, seguido do caracter u, seguido do caracter x. A cadeia
"*doc*" contm o caracter especial * deve ser lida como zero ou mais
caracteres, seguidos do caracted d, seguido do caracted o, seguido do caracter c,
seguido de zero ou mais caracteres.
Os metacaracteres podem ter semnticas diferentes dependendo do
aplicativo utilizado (shell, grep, sed, perl, ...).
Expresses Regulares
435
Nome
Significado
ponto
classe de caracteres
classe negada
qualquer caracter
qualquer caracter da classe
qualquer caracter no listado
\c
escaped char
caracter c literalmente
^
$
\<
\>
circunflexo
dlar (cifro)
barra-invertida menor
barra-invertida maior
incio da linha
fim da linha
incio de uma palavra
fim de uma palavra
barra-em-p
parntesis
.
[ ... ]
[^... ]
|
( ... )
{ mn, mx }
Nome
Significado
interrogao
asterisco
mais
0 ou 1 caracter
0 ou mais caracteres
1 ou mais caracteres
faixa de quantidades
436
Expresses Regulares
Expresses Regulares
437
438
O Editor de textos VI
439
i
I
a
A
o
O
C
440
O Editor de textos VI
posiciona o cursor aps a ocorrncia anterior do caracter c
Tc
+B
+F
+U
+D
p
P
nrc
R
~
u
U
441
Para procurar um texto (que pode ser uma expresso regular), podemos
utilizar:
procura o texto para frente
/texto
procura o texto para trs
?texto
procura a prxima ocorrncia
n
procura a ocorrncia anterior
N
Pode-se marcar um texto, para executar um comando, utilizando:
inicia a marcao caracter a caracter
v
inicia a marcao de linhas
V
inicia a marcao de colunas
+V
marca a linha com o caracter c (invisvel)
mc
vai para o incio da linha marcada com o caracter c
c
(invisvel)
c
vai para a posio marcada com o caracter c
executa o comando cmd e substitui o texto marcado
!cmd
pela sada do comando.
Ao teclar ":", o vi entra no modo comando de uma linha. O vi colocar na
ltima linha da tela o prompt ":", onde voc pode digitar diversos comandos do
vi. Veja alguns exemplos:
:faixap
:faixad
:n
:prev
:n arquivos
:shell
:!comando
:x
:q
:w arquivo
:e arquivo
:r arquivo
:q!
442
O Editor de textos VI
Podem ser utilizados os comandos:
+6
+G
+L
Alguns comandos podem receber uma faixa para definir o escopo dos
comandos, como os dois primeiros acima. Esta faixa pode ser dado pelos nmeros
das linhas inicial e/ou final, ou por expresses regulares para procura de textos
nas linhas inicial e/ou final.
:2,8p
:1,$p
:/txt1/,/txt2/d
:.,.+3p
imprime as linhas de 2 a 8
imprime da linha 1 ao final do texto
apaga da linha contendo txt1 at a contendo txt2
imprime a linha atual e as 3 seguintes
salva e sai do vi
abandona a edio, ignorando alteraes feitas
443
Opes do vi
O vi possui ainda diversas opes que podem ser alteradas atravs do
comandos:
:set opo = valor
:set opo
:set noopo
O estado atual das opes pode ser visto com:
:set
:set all
Algumas das opes mais usadas so:
:set number
:set nowrap
:set ic
:set sw=2
:set list
:set ts=2
:set sw=4
444
445
446
Descrio
Offset do ramdisk em blocos de 1024 bytes
no utilizado
Indica que um ramdisk deve ser carregado
Indica que deve dar pausa antes da carga do root filesystem
valor
447
448
Utilizando o Grub
Crie o arquivo menu.lst com a definio da entrada para o boot do
kernel instalado. Por conveno, utilize a verso do kernel para identificar a
verso do kernel instalado, similar ao mostrado abaixo.
#--default 0
timeout 5
title Linux - verso do kernel
root (fd0, 0)
kernel /vmlinuz-verso do kernel root=/dev/fd0
initrd /initrd-verso do kernel
449
Desmonte o disquete .
# umount /dev/fd0
# grub
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
grub> device (fd0) /dev/fd0
grub> root (fd0)
Filesystem type is fat, using whole disk
grub> setup (fd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal)
Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p
/boot/grub/menu.lst "... succeeded
Done.
grub> quit
#
r
E pronto !
450
16. Sistemas de
Numerao
Provavelmente, a necessidade do ser humano utilizar
um sistema de numerao surgiu na pr-histria. Inicialmente o
homem das cavernas deve ter associado pedras a suas posses.
Quando suas posses comearam a aumentar, a quantidade de
pedras tournou-se incmoda para o transporte.
Notao posicional
Um nmero um conjunto de smbolos associado a uma
determinada quantidade. Hoje utilizamos uma notao
posicional em que cada smbolo tem um valor diferente
conforme sua posio no nmero. Assim, o nmero 347, na base 10, representa
trs centenas, quarenta e sete dezenas e sete unidades.
Se considerarmos uma base qualquer, uma determinada quantidade Q
ser representada pelo nmero N na base , cuja representao :
N = ...DCBA.abcd...,
onde os smbolos { ..., D, C, B, A, a, b, c, ...} representam quantidades de
0 a - 1. Note que para qualquer base , a quantidade sempre representada
pelo nmero 10.
Logo,
Q = ... + D3 + C2 + B1 + A0 + a-1 + b-2 + c-3 + d-4 + ...
( )
log(Q)
log()
log(9876)
= teto (4.423237040381) = 5
log(8)
log(9876)
= teto (13.179287104600357492) = 14
log(2)
Nmeros naturais
Para os nmeros naturais precisamos de k bits para representar 2k valores
k
(0 a 2 -1). Assim, por exemplo, com 32 bits representamos de 0 a 4294967295.
Nmeros inteiros
Utilizando k bits para representamos 2k valores inteiros (positivos e
negativos). As 3 representaes comuns so sinal magnitude, complemento de 1 e
complemento de 2.
Sinal magnitude
Reservamos 1 bit para o sinal (0 positivo e 1 negativo) e assim sobram k 1 bits representando 2k-1 valores. Problema: teremos o +0 e o -0. Atravs de
circuitos especiais podem zerar o bit de sinal quando todos os outros k-1 bits
forem iguais a zero. Veja abaixo as representaes de +79 e -93 e a soma, -14,
utilizando 8 bits. So vlidas as representaes dos nmeros -127...-0, +0 ... +127.
Nmero
+79
-93
-14
7
0
1
1
6
1
1
0
5
0
0
0
bits
4
0
1
0
3
1
1
1
2
1
1
1
1
1
0
1
0
1
1
0
Complemento de 1
Representamos o nmeros positivos convertendo o nmero para a base 2.
Se o nmero for negativo, convertemos o nmero e complementamos os bits.
Veja abaixo as representaes de +79 e -93 e a soma, -14, utilizando 8 bits. So
vlidas as representaes dos nmeros -127...-0, +0 ... +127.
Nmero
+79
-93
-14
7
0
1
1
6
1
0
1
5
0
1
1
bits
4
0
0
1
3
1
0
0
2
1
0
0
1
1
1
0
0
1
0
1
Complemento de 2
Representamos o nmeros positivos convertendo o nmero para a base 2.
Se o nmero for negativo, convertemos o nmero, complementamos os bits e
somamos 1. Veja abaixo as representaes de +79 e -93 e a soma, -14, utilizando
8 bits. So vlidas as representaes dos nmeros -128..., 0, ... +127.
Nmero
+79
-93
-14
7
0
1
1
6
1
0
1
5
0
1
1
bits
4
0
0
1
3
1
0
0
2
1
0
0
1
1
1
1
0
1
1
0
e bits
expoente
m bits
mantissa
457
17. Introduo
Computao Forense
Conceitos iniciais
A computao forense a obteno e anlise de dados, livre de distores
ou divergncias, para a reconstruo de informaes ou eventos que ocorreram no
sistema. Devemos ter sempre em mente que os sistemas so imensos, complexos
e sofrem alteraes constantemente. Dados podem estar ocultos em qualquer
local. H pouca informao tcnica disponvel. No h software disponvel. O
mais importante o conhecimento e a experincia. A obteno dos dados s vezes
fcil. A anlise difcil e gasta muito tempo. O amazenamento das informaes
obtidas requer muito espao.
Os requisitos bsicos de um detetive digital so:
Conhecimento tcnico
Conhecimento das implicaes tcnicas de suas aes
sperteza e mente aberta
ducao contnua e conhecimento histrico
Uso altamente redundande de fontes de informao nas suas concluses
Ao se deparar com um caso:
Assegure e isole
Registre o cenrio
Procure evidncias sistematicamente
Colecione e empacote as evidncias
Mantenha uma linha de custdias
458
1
2
3
4
5
6
7
459
Plano de batalha
Pense ! Digitar rapidamente no ir ajudar !
H alguma poltica de segurana ?
Defina objetivos
H alguma pessoa de contato ?
Assuma o pior
Trabalhe o mnimo possvel com os dados originais
Quem contactar ?
A equipe de segurana de sua empresa
A gerncia
O CERT ?
O FBI, a polcia, etc. ?
460
Investigao na prtica
Algumas precaues devem ser tomadas para no apagar as evidncias ao
investigar o contedo de um sitema de computao. Devemos sempre lembrar
que:
1. As informaes voltes (contedo de memria RAM, estado do
processador e de dispositivos de E/S) so extremamente difceis de serem obtidas
sem alter-las.
2. As informaes no voltes (armazenadas em disco, disquete, pen
drives, CDs, DVDs, e impresses) so mais fceis de serem obtidas.
3. Horrios da mquina, de arquivos e locais so tens imprecindveis
inverstigao.
4. Em caso de acesso externo, voc deve contar com a ajuda dos
provedores de acesso para obter informaes sobre as conexes executadas pelo
invasor. Verifique o perodo das sesses suspeitas.
5. Observe bem o sistema antes de iniciar a investigao. Nunca inicialize
o computador utilizando o disco em investigao. Utilize outro computador para
suas anlises. Utilize uma cpia dos discos e/ou parties (por exemplo atravs do
utilitrio dd) e sempre monte as parties no modo read-only (utilizando a opo
-o ro do utilitrio mount). Lembre-se que a rea de swap tambm pode conter
informaes valiosas. Nunca utilize esta rea como swap durante sua
investigao. Faa uma cpia e utilize a cpia para anlise.
461
462
Entretenimento e Aprendizado
463
Conceitos
Com o aumento da complexidade dos problemas, e o tempo necessrio
para resolv-lo, surgiu a necessidade de agrupar vrios processadores,
distribuindo o trabalho e assim tornando a utilizao de computadores factve.
Diversas arquiteturas foram definidas conforme o tipo de problema.
Um grid um sistema computacional distribuido que
possui fraco acoplamento. Os processos no se interagem
ou interagem muito pouco. Os processadores podem ser
heterogneos e tambm geograficamente dispersos. Um
bom exemplo o grid do Google que possui cerca de 900
mil computadores distribudos pelo globo.
Um cluster tambm um sistema computacional distribuido mas que
possui acoplamento alto e com alta interaco entre os processos. O cluster pode
ser visto como um sistema nico. Os componentes do cluster (chamados nodos)
so normalmetne interligados por uma rede local rpida. H 2 tipos de aplicaco
para os clusters: alto desempenho e alta disponibilidade.
Um cluster de alto desempenho (simplesmente referido como HPC)
distriibui as tarefas entre os processadores dos nodos. Um cluster de alta
disponibilidade (simplesmente referino como HA), tem nodos ativos e nodos em
hot-standby. No caso de falha de um nodo, seus processos so imediatamente
assumidos por um node em standby.
464
Entretenimento e Aprendizado
Entretenimento e Aprendizado
465
466
Entretenimento e Aprendizado
Implementando um cluster HA
Supondo um cluster HA simples de 2 nodos, utilizaremos o DRBD e o
Pacemaker para implement-lo. So utilizados 2 computadores com 2 interfaces
de rede cada. Uma interface de rede ser utilizada para o sincronismo e o controle
do cluster. A outra interface ser utilizada para o acesso ao cluster. Alm dos IPs
para cada interface, definiremos um IP flutuante que ser adicionado ao nodo
ativo (primrio).
Cada computador tem seus discos e para os dados crticos podem ser
criados volumes (LVM para facilitar a escalabilidade) e que sero duplicados
automaticamente. Os volumes devero ser de tamanhos idnticos. Sugiro no
fazer duplicao do sistetma operacional e aplicativos. Em caso de atualizao ou
instalao de pacotes instveis (principalmente o kernel), o outro nodo no ser
afetado e poder ser promovido a primrio mantendo a alta disponibilidade.
As interfaces N1 e N2 dos computadores deverm ser de alta velocidade
(gigabit) interligadas por um cabo cross-over. Cada nodo tem seu IP (IP1 e IP2)
que podem ser utilizados para configurao e manuteno. O IPcluster ser o IP
flutuante. As estaes sempre faro o acesso aos servios do cluster por este IP.
Entretenimento e Aprendizado
467
resource "nomedorecurso" {
protocol { A | B | C }}; # Use C para aplicaes crticas
incon-degr-cmd "comando shell"
startup { wfc-timeout timeout de conexo; degr-wfc-timeout timeout; }
disk { on-io-error { pass_on | panic | detach }; size tamanho }
net { on-disconnect { reconnect | stand_alone | freeze_io }} };
syncer { rate MBytesps; }
on nomedonode {
device /dev/drbdi;
disk volume;
address ip_do_nodo;
metadisk {{ internal | disco };
}
}
468
Entretenimento e Aprendizado
Abaixo mostrada uma parte do arquivo de configurao do DRBD:
Entretenimento e Aprendizado
469
Heartbeat
O arquivo bsico de configurao do hearbeat o /etc/ha.d/ha.cf.
Podem ser configurados os arquivos de log, timeouts, interfaces e forma de
comunicao e mudana de funo dos nodos. A interface de comunico pode
ser serial ou ethernet (que pode ser a mesma utilizada pelo drbd). Os nomes dos
nodos so listados na opco node e devem ser os mesmos mostrados com o
comando uname -n.
No arquivo /etc/ha.d/authkeys so definidos os mtodos e as
chaves para autenticao dos nodos. No caso de um enlace seguro e dedicado ao
heartbeat (e o drbd), pode-se utilizar apenas o CRC, melhorando o desempenho.
Em outros casos pode-se definir uma senha SHA1 ou MD5. Os recursos so
definidos no arquivo /etc/ha.d/resources, em uma linha o nodo primrio
preferencial e os recursos que sero comutados na troca da funo dos nodos.
A sintaxe geral :
nodoprimrio { lista de recursos separados por espao }
onde cada ada recurso tem o formato recurso::parmetro. Os recursos,
tratados pelos scripts em /etc/ha.d/resource.d so:
IpAddr::ipv4 ou ipv4
drbddisk
Filesystem::device::mountpoint::filesystemtype
servio
Exemplo:
nodo1 192.168.1.5 drbddisk Filesystem::/dev/drbd0::/home::ext3
Filesystem::/dev/drbd1::/data1::ext3 Filesystem::/dev/drbd2::/data2::ext3
apache2 named mysql sendmail ntp
470
Entretenimento e Aprendizado
(dispositivo drbdi)
(recurso)
(funo)
Entretenimento e Aprendizado
471
19. Entretenimento e
Aprendizado
Linux tambm cultura e diverso !
O ambiente operacional GNU/Linux possui tambm diversos aplicativos
para o seu seu entretenimento e aprendizado. Quase todas as distribuies Linux
incluem um pacote conhecido com bsd-games que contm programas
educativos e jogos em modo texto. Abaixo vemos os conhecidos arithmetic,
primes e factor.
hmarx@thor:~> arithmetic
7 - 7 =
0
Right!
5 + 0 =
5
Right!
6 - 4 =
2
Right!
10 - 5 = 5
Right!
8 - 3 =
5
Right!
1 + 10 =
hmarx@venus:~> factor
8
8: 2 2 2
111
111: 3 37
1111
1111: 11 101
11111
11111: 41 271
99999
99999: 3 3 41 271
1234321
1234321: 11 11 101 101
472
Entretenimento e Aprendizado
Entretenimento e Aprendizado
473
S T A R
T R E K
* * *
stardate
condition
position
warp factor
total energy
torpedoes
shields
Klingons left
time left
life support
2100.00
GREEN
0,1/0,2
5.0
5000
10
up, 100%
15
8.00
active
Command: m
Course: 6
Distance: .5
Computer applies full reverse power to avoid hitting the
negative energy barrier. A space warp was entered.
You are now in quadrant 4,7. It is stardate 2100.22
Command:
Guessed:
acdefimnoprst
Word #:
Current Average:
Overall Average:
1
5.000
0.000
474
Entretenimento e Aprendizado
xeyes
O kmahjongg tem um visual mais tridimensional.
oneko
Entretenimento e Aprendizado
475
476
Entretenimento e Aprendizado
Entretenimento e Aprendizado
477
478
Entretenimento e Aprendizado
kgeography
Entretenimento e Aprendizado
479
Kalzium
Em geometria, h o kig que inclui diversas operaes com os elementos
planos.
kig
480
Entretenimento e Aprendizado
Entretenimento e Aprendizado
481
Jogos de ao (3D)
Diversos jogos de ao em 3D como os da empresa Id Software (Doom,
Heretic, Hexen e Quake) tambm esto disponveis para Linux.
Heretic
Doom
Quake 3
482
Entretenimento e Aprendizado
Pingus
Frozen Bubble
Reversi
kasteroids
Entretenimento e Aprendizado
483
3D chess
Brutal Chess
484
Entretenimento e Aprendizado
Entretenimento e Aprendizado
485
486
Entretenimento e Aprendizado
Entretenimento e Aprendizado
487
Bibliografia
Livros e outras publicaes
[AVRITZER]
[CRYPT]
[DNS_BIND]
Paul Albitz & Cricket Liu, DNS and Bind - 2nd edition,
OReilly & Associates, California, USA, 1996.
[INTFW]
[LPI101]
[LPI102]
488
Entretenimento e Aprendizado
[MAXSEC1]
[MAXSEC2]
[MINIX]
[NAG]
[PGP]
[PPP]
[PRODNS]
[TCPADM]
Entretenimento e Aprendizado
489
[UNIXSEC]
[VPN]
[XWIN]
490
Entretenimento e Aprendizado
Sites na Internet
http://www.kernel.org
Site oficial do kernel Linux, criado por Linus Torvalds
http://gnu.org
Projeto GNU da Free Software Foundation criado por Richard
Stallman
http://www.minix3.org
Site dedicado ao MINIX de Andrew S. Tanenbaum
http://www.linux.org
Pgina oficial do sistema operacional Linux. H uma
lista de diversos aplicativos para o Linux
http://linmodems.org
Drivers de softmodems (conhecidos tambm como
Winmodems) para o Linux
http://www.ora.com
Pgina da editora OReilly especializada em livros tecnicos.
Possui muitos livros sobre Unix e Linux
http://www.suse.de
Site original da empresa alem SuSE Linux AG, criadora da
distribuio SuSE Linux. Atualmente redirecionada para o site
da Novell
http://www.vmware.com
Os aplicativos de virtualizao mais conhecidos e
utilizados no mundo
Entretenimento e Aprendizado
491
http://www.hercules-390.org
http://www.jaymoseley.com/hercules/
Hercules, um emulador das arquiteturas IBM System/370,
ESA/390 e zSeries
http://sourceforge.net
Maior site de projetos Open Source
Exemplos: xine.sourceforge.net, bochs.sourceforge.net, ...
http://www.linas.org/linux
Parte do site de Linas Vepstasmostrando diversas
aplicaes comerciais do Linux e estudos de caso.
http://www.linuxsecurity.com
Site sobre aspectos de seguranca em Linux
http://www.maplesoft.com
Software cientficos (como o Maple) da Universidade
de Waterloo, Ontario, Canada.
http://www.ipv6.org
Informaes sobre o protocolo IPv6
http://www.ietf.org
Site da fora tarefa da Engenharia da Internet (Internet
Engineering Task Force). uma comunidade internacional
que cuida da evoluo da arquitetura da Internet
http://www.gnupg.org
Implementaco do OpenPGP, Pretty Good Privacy
http://pgp.mit.edu
Servidor pblico de chaves PGP do MIT
492
Entretenimento e Aprendizado
http://www.faqs.org/rfcs
Grande acervo de documentaes e padres, incluindo
os RFCs, Request for Comments. Contm links para
ISOC, IANA, IAB e outros.
http://www.linuxsupport.com.br
Dicas de configurao e suporte SuSE Linux
http://www.opensuse.org
Site da distribuio openSuSE, criada pela Novell
Bibliografia
493
Bibliografia
Livros e outras publicaes
[AVRITZER]
[CRYPT]
[DNS_BIND]
Paul Albitz & Cricket Liu, DNS and Bind - 2nd edition,
OReilly & Associates, California, USA, 1996.
[INTFW]
[LPI101]
[LPI102]
494
Bibliografia
[MAXSEC1]
[MAXSEC2]
[MINIX]
[NAG]
[PGP]
[PPP]
[PRODNS]
[TCPADM]
Bibliografia
495
[UNIXSEC]
[VPN]
[XWIN]
496
Bibliografia
Sites na Internet
http://www.kernel.org
Site oficial do kernel Linux, criado por Linus Torvalds
http://gnu.org
Projeto GNU da Free Software Foundation criado por Richard
Stallman
http://www.minix3.org
Site dedicado ao MINIX de Andrew S. Tanenbaum
http://www.linux.org
Pgina oficial do sistema operacional Linux. H uma
lista de diversos aplicativos para o Linux
http://linmodems.org
Drivers de softmodems (conhecidos tambm como
Winmodems) para o Linux
http://www.ora.com
Pgina da editora OReilly especializada em livros tecnicos.
Possui muitos livros sobre Unix e Linux
http://www.suse.de
Site original da empresa alem SuSE Linux AG, criadora da
distribuio SuSE Linux. Atualmente redirecionada para o site
da Novell
http://www.vmware.com
Os aplicativos de virtualizao mais conhecidos e
utilizados no mundo
Bibliografia
497
http://www.hercules-390.org
http://www.jaymoseley.com/hercules/
Hercules, um emulador das arquiteturas IBM System/370,
ESA/390 e zSeries
http://sourceforge.net
Maior site de projetos Open Source
Exemplos: xine.sourceforge.net, bochs.sourceforge.net, ...
http://www.linas.org/linux
Parte do site de Linas Vepstasmostrando diversas
aplicaes comerciais do Linux e estudos de caso.
http://www.linuxsecurity.com
Site sobre aspectos de seguranca em Linux
http://www.maplesoft.com
Software cientficos (como o Maple) da Universidade
de Waterloo, Ontario, Canada.
http://www.ipv6.org
Informaes sobre o protocolo IPv6
http://www.ietf.org
Site da fora tarefa da Engenharia da Internet (Internet
Engineering Task Force). uma comunidade internacional
que cuida da evoluo da arquitetura da Internet
http://www.gnupg.org
Implementaco do OpenPGP, Pretty Good Privacy
http://pgp.mit.edu
Servidor pblico de chaves PGP do MIT
498
Bibliografia
http://www.faqs.org/rfcs
Grande acervo de documentaes e padres, incluindo
os RFCs, Request for Comments. Contm links para
ISOC, IANA, IAB e outros.
http://www.linuxsupport.com.br
Dicas de configurao e suporte SuSE Linux
http://www.opensuse.org
Site da distribuio openSuSE, criada pela Novell
Glossrio
499
Glossrio
AGP
ANSI
ARM
ARP
ASCII
ATA
BIND
BIOS
BOOTP
CHAP
CISC
CRISC
DDoS
DEC
DES
DHCP
500
Glossrio
DoD
DoS
DRAM
DMA
DMZ
EBCDIC
EISA
ESP
FAT
FIFO
GMT
GNU
HTTP
IAB
IANA
IDE
IESG
IETF
IKE
IPC
IPsec
IPX
IRQ
ISA
Glossrio
ISAKMP
ISOC
LDAP
LED
MD5
MIB
MIME
MIPS
MIPS
NBT
NCP
NetBIOS
NFS
NMB
NSA
PAP
PATA
PC
PCI
PCMCIA
PDP-11
Pixel
POP
501
Internet Security Association and Key Management
Protocol
Internet Society
Lightweighty Directory Access Protocol
Light Emitting Diode
Message Digest 5 - Algoritmo de autenticao e
criptografia atualmente muito utilizado em senhas do Unix
Management Information Base. Veja tambm SNMP
Multipurpose Internet Mail Extensions - Padro de
encapsulamento de arquivos em e-mails
1Microprocessor without Interlocked Pipeline Stages 2Millions of Instructions Per Second - milhes de
instrues por segundo
NetBIOS over TCP/IP - Protocolo criado pela Microsoft
encapsulando o NMB sobre o TCP/IP para o Windows
NT/9x tornando o NetBIOS rotevel atravs de IP
Netware Core Protocol
Network Basic Input/Output System
Network File System - Sistema de arquivos em rede
Servidor de nomes para o NetBIOS.
National Security Agency - Agncia Nacional de
Segurana
Password Authentication Protocol - Protocolo de
autenticao utilizado em PPP atravs de um usurio e
senha.
Parallel ATA - veja IDE
Personal Computer - Computador pessoal. Termo criado a
partir dos microcomputadores e popularizado com o
lanamento do microcomputador IBM-PC
Peripheral Component Interconnect
Personal Computer Memory Card Industry Association
Programmed Data Processor - Minicomputador da Digital
Equipment Corporation utilizado nas primeiras verses do
Sistema Operacional Unix
Picture Element - cada ponto na tela representado por n
bits, permitindo assim at 2n cores
Post Office Protocol
502
Glossrio
PPP
PPTP
QoS
RAM
RARP
RIP
RISC
ROM
RPC
RPM
RSA
RT-11
SAS
SATA
SCSI
SGID
SMB
SMP
SMTP
SNMP
SPOOL
SSL
SUID
SuSE
SVGA
SWAP
URL
USB
VESA
VFAT
Glossrio
XDR
VGA
WiFi
WWW
WUXGA
WXGA
XGA
503
eXternal Data Representation. Veja tambm RPC
Video Graphics Array
Wireless Fidelity
World Wide Web
Wide Ultra Extended Graphics Array
Wide XGA
eXtended VGA
504
505
ndice Remissivo
ndice Remissivo
A
Andrew S. Tanenbaum
ASN.1 389
B
Backup 108
bunzip2 109
bzcat 109
bzip2 109
compress 110
fita magntica 110
gunzip 109
gzip 109
mt 110
tar 108
unzip 108
zcat 109
zip 108
Bash 42
Expanso de parmetros 45
history 104
meta-teclas 105
redirecionamento de E/S 111
Separador
; 112
Separador de comandos 112
variveis 42
Variveis padro 43
BGP 389
Boot do Linux 159
configurao do GRUB 166
configurao do LILO 165
Bridges 382
C
Calamaris 301
Comandos
ajuda
help 47
info 48
man 47
algbricos
bc 69
expr 68
arquivos
basename 103
cat 57
cp 56
dd 106
dirname 103
discos 106
file 102
find 99
head 57
less 73
ndice Remissivo
ln 72
locate 99
more 73
mv 71
od 58
patch 59
rm 71
split 107
tail 58
tee 57
touch 72
type 102
updatedb 99
which 102
case 122
diretrio
cd 54
dirs 55
ls 51
mkdir 53
popd 55
pushd 54
pwd 49
rmdir 53
discos
df 90
du 90
hash 48
impresso
a2ps 89
lpq 88
lpr 88
lprm 89
pr 88
memria
free 91
top 95
permisses
506
chgrp 100
chmod 101
chown 100
processos
% 93
at 93
atq 93
atrm 93
bg 93
crontab 94
fg 93
GNU time 97
jobs 93
kill 96
killall 96
nice 96
pidof 92
ps 92
pstree 92
renice 97
sudo 81
time 97
top 95
xargs 98
rehash 48
select 124
sistema
top 95
uname 83
terminais
setterm 84
stty 85
tty 83
texto
. 50
awk 65
cut 74
diff 77
507
diff3 77
echo 49
ex 73
grep 62
join 75
paste 74
read 49
sed 63
sort 76
source 50
strings 60
tr 60
uniq 76
vi 73
wc 59
until 122
usurios
finger 79
gpasswd 82
id 79
last 78
newgrp 81
passwd 80
sg 81
su 81
w 78
who 78
Comandos administrativos 125
chfn 130
chsh 130
depmod 149
dmesg 154
edquota 139
fdisk 132
groupadd 128
groupdel 128
groupmod 129
init 34
ndice Remissivo
insmod 147
iptraf 231
isapnp 146
lsdev 146
lsmod 147
lspci 144
lsusb 144
mkdosfs 134
mke2fs 133
mkfs 133
mknod 131
mkreiserfs 135
mkswap 135
modinfo 151
modprobe 150
mount 141-142
nmap 231
pnpdump 145
quota 137
quotacheck 140
quotaoff 138
quotaon 137
repquota 138
rmmod 148
rpcinfo 231
rpm 170
atualizao de pacotes
174
consulta de pacotes
176
criando pacotes 182
instalao de pacotes
173
remoo de pacotes
175
utilzando o smart 179
utilzando o zypper 178
ndice Remissivo
verificao de
autenticidade 172
verificao de pacotes
170
setquota 139
snort 231
socklist 231
swapoff 136
swapon 135-136
syslogd 155
ulimit 125
umask 125
umount 143
usbview 145
useradd 126, 128
userdel 128
usermod 129
Comandos bsicos 47
Comandos condicionais 120
if/then/elif/then/.../fi 121
if/then/else/fi 120
if/then/fi 120
test 124
Comandos iterativos 122
for 122
while 122
compilao 413
Configurao do kernel 335
Correio eletrnico 308
anti-virus 318
MTA 308
MUA 308
POP 311
Protocolos 311, 313
sendmail 312
Configurao 314
SMTP 311
508
D
Depurao
ddd 402
gdb 402
kdbg 402
ltrace 403
strace 403
Desenvolvimento
gcc 400
kdevelop 401
ldd 402
qtdesigner 401
Diretrio 22
Dispositivos 27
DNS 247
BIND 252
Configurao 264
Registros 252
Segurana 267
Ferramentas
dnsdomainname 269
dnsquery 270
nslookup 269
Ferramentas de diagnstico
269
dig 270
dnsquery 270
host 270
named-xfer 271
traceroute 270
Lendo nomes de domnios 250
Resource Record 253
RR 253
Servidores de Nomes 251
Domnios 245
DNS 247
LDAP 278
509
ndice Remissivo
NIS
272
entidades
getty 35
GPL 1
E
Emuladores
dosemu 406
pose 409
simh 410
vmware 408
wine 406-407
H
Hard link 22
hardware 378
Histrico - do Unix ao Linux 8
Histrico da Computao 3
hot-swap 15
Hubs 382
F
Firewall 349
filtros 350
Implementao 351
ipchains 352
iptables 355
NAT 351
SuSEfirewall 358
Firewalls 395
Formato de arquivos
/etc/passwd 126
/etc/shadow 127
/etc/syslog.conf 152
crontab 94
inittab 32
FSF 1
FTP 319
Clientes 319
Configurao 319
Servidores 319
Funcionalidades 382
fuser 403
G
Gerenciamento 383
reas funcionais ISO
aspectos 384
atribuies 385
385
383
ICMP 388
IGMP 388
inetd 212
init 31
inode 18
inodo 18
Instalaco do Linux 160
Instalaco de Aplicativos 168
Instalaco do Linux 157
Instalao fsica
incndio 380
temperatura 380
umidade 380
Interconectividade 328, 333-334
Apple Macintosh 334
Netware
ncpfs 333
Internet
estatsticas 247
rgos reguladores 249
Internet e Intranet 196, 243
Interpretador de comandos 39
ipcs 403
ndice Remissivo
510
L
LDAP
278
Definies 278
Esquemas 279
Hierarquia 279
LDIF 280
servidor 281
utilizao 285
LILO 159
Linus Torvalds 9
login shell 35
Logs 397
lsof 403
M
make 414
Mensagens do sistema Linux 152
Metacaracteres 41
MIB 389
Minix 9
Modems 382
Mdulos de dispositivos e servios
144
mount point 20
MTBF 387
MTTF 387
MTTR 387
MULTICS 7
Multitarefa 15
Multiusurio 15
N
NIS
272
cliente/servidor 272
Configurao 272
domainname 274
ypcat 276
ypchfn 275
ypchsh 275
ypdomainname 274
ypmatch 276
yppasswd 275
yppasswdd 273
ypwhich 274
O
openSuSE 10
Operadores
condicional
&& 121
|| 121
Execuo condicional 121
Expresses aritmticas 116
Expresses condicionais 118
Grupo de comandos 114
Pipeline 112
Processos em background 113
& 113
Processos em subshell 114
substituio de comandos 115
| 112
OSPF 389
Outros aplicativos 395
P
Pacotes RPM 417
path 22
PDP-11 8
peopleware 378
Plakalkl 4
POSIX 16
PPP 321
Conexo ADSL 326
Conexo discada 322
Conexo por demanda 325
511
prompt 39
Protocolo PPP 320-321
Configurao 321
Protocolos e mtodos 387
ndice Remissivo
Servidor HTML
Apache 287
Configurao 287, 296
controle de acesso 291
logs de acesso 290
R
mtodos 291
Redes em Unix 207
parmetros globais 288
IPv4 217
servidor principal 289
Classes 218
sites virtuais 294
Endereos especiais
proxy 298
218
squid 287
Endereos privados
webalizer 297
219
Servidor WEB 287
Roteamento 222
Sesses 36
IPv6 239
Sesses remotas 320
Subclasses 221
SSH 320
TCP/IP 207
Xterminals 320
Ferramentas 224
Shell 39
Redirecionamento 237 Sistema de arquivos 18
Servios 211
Sistemas de arquivos
Richard Stallman 1
/proc 14, 25
Roteadores 382
SLES
rpcinfo 403
SuSE Linux Enterprise 11
SMART 17
S
SMP
S.M.A.R.T. 17
Symetric Multi Processing 13
Samba 330
SNMP 389
Segurana 341
Aplicativos 392
Ataques 346
snmpdelta 392
Cavalos de Tria 342
snmpget 392
Ferramentas 347
snmpinform 392
PGP 368
snmpnetstat 392
Virus 345
snmpset 392
VPN 362, 365, 374, 377
snmpstatus 392
configurao 364
snmptable 392
FreeSwan 364
snmptest 392
Sendmail
snmptranslate 392
Configurao manual 317
snmptrap 392
ndice Remissivo
512
squidGuard 307
super usurio 36
SuSE ix
Switches 382
Symbolic link 22
T
TCP/IP
Ferramentas
arp 229
ethereal 234
geoiplookup 230
ifconfig 224
ip 227
ipcalc 230
netstat 228
ping 225
rarp 229
route 226
tcpdump 231
traceroute 231
xtraceroute 234
Tratamento de sistemas de arquivos
131
X
X Window 185
desktop manager 186
Gerenciadores de janelas
afterstep 193
amiwm 193
CDE 193
fvwm 193-194
fvwm95 193
Gnome 193
icewm 194
KDE 193
mlvm 193
193
qvwm 194
twm 194
windowmaker 194
Protocolo X11 185
window manager 186
desktops virtuais 186
X server 186
XFree86 189, 191
SuperProbe 190
XF86Setup 190
xinetd 213