Sunteți pe pagina 1din 373

Guia Foca GNU/Linux

Resumo
Este documento tem por objetivo ser uma referncia ao aprendizado do usurio e um guia de consulta, operao
configurao de sistemas Linux (e outros tipos de *ix). A ltima verso deste guia pode ser encontrada na
Pgina Oficial do Foca GNU/Linux. Novas verses so lanadas com uma freqncia mensal e voc pode
receber avisos de lanamentos preenchendo um formulrio na pgina Web.

Nota de Copyright
Copyleft 1999-2002 - Gleydson Mazioli da Silva.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of
the license is included in the section entitled "GNU Free Documentation License".

Contedo
1 Introduo
1.1 Antes de comear
1.2 Pr-requisitos para a utilizao deste guia
1.2.1 Consideraes sobre o nvel Avanado
1.3 Sistema Operacional
1.4 O Linux
1.4.1 Algumas Caractersticas do Linux
1.5 Distribuies do Linux
1.6 Software Livre
1.7 Processamento de Dados
1.8 O Computador
1.9 Conhecendo o Computador
1.9.1 Tipos de Gabinete
1.9.2 Painel Frontal
1.9.3 Monitor de Vdeo
1.10 Placa-me
1.10.1 Alguns componentes da placa-me
1.11 Memria do Computador
1.11.1 Memria Principal
1.11.2 Memria Auxiliar
1.12 Discos
1.12.1 Discos Flexveis
1.12.2 Disco Rgido
1.12.3 CD
1.13 Cuidados Bsicos com o Computador e Disquetes
1.14 Dispositivos de Entrada e Sada
1.15 Ligando o computador
1.16 Desligando o computador
1.17 Reiniciando o computador
2 Explicaes Bsicas
2.1 Hardware e Software
2.2 Arquivos
2.2.1 Extenso de arquivos
2.2.2 Tamanho de arquivos
2.2.3 Arquivo texto e binrio
2.3 Diretrio
2.3.1 Diretrio Raz
2.3.2 Diretrio padro
2.3.3 Diretrio home
2.3.4 Diretrio Superior
Guia Foca GNU/Linux

2.3.5 Diretrio Anterior


2.3.6 Caminho na estrutura de diretrios
2.3.7 Exemplo de diretrio
2.3.8 Estrutura bsica de diretrios do Sistema Linux
2.4 Nomeando Arquivos e Diretrios
2.5 Comandos
2.5.1 Comandos Internos
2.6 Comandos Externos
2.7 Aviso de comando (Prompt)
2.8 Interpretador de comandos
2.9 Terminal Virtual (console)
2.10 Login
2.11 Logout
2.12 Curingas
2.13 Monitorando os logs
3 Hardware
3.1 Placa de expanso
3.2 Nomes de dispositivos
3.3 Configurao de Hardware
3.3.1 IRQ - Requisio de Interrupo
3.3.1.1 Prioridade das Interrupes
3.3.2 DMA - Acesso Direto a Memria
3.3.2.1 Conflitos de DMA
3.3.3 I/O - Porta de Entrada/Sada
3.4 Hardwares configurveis por jumpers, dip-switches, jumperless e Plug-and-Play.
3.4.1 Jumpers
3.4.2 Dip-Switches
3.4.3 Jumperless (sem jumper)
3.4.4 Plug-and-Play
3.4.4.1 Entendendo o arquivo de configurao isapnp.conf
3.5 Conflitos de hardware
3.6 Barramento
3.7 Placas on-board / off-board
3.8 Hardwares especficos ou "For Windows"
3.9 Dispositivos especficos para GNU/Linux
3.10 Aterramento
3.10.1 Condutores de eletricidade
3.11 Descargas estticas
3.12 Melhoria de performance
3.12.1 Particionamento
3.12.2 Spindles
3.12.3 Fazendo ajustes finos de performance do disco
3.12.4 Data de acesso a arquivos/diretrios
3.13 Perifricos SCSI
3.13.1 Configurando uma SCSI ID e terminao
4 Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux
4.1 Quais as diferenas iniciais
4.2 Comandos equivalentes entre DOS e Linux
4.2.1 Arquivos de configurao
4.3 Usando a sintaxe de comandos DOS no Linux
4.4 Programas equivalentes entre Windows/DOS e o Linux
5 Discos e Parties
5.1 Parties
5.2 Sistema de Arquivos
5.3 Partio EXT2 (Linux Native)
5.3.1 Criando um sistema de arquivos EXT2 em uma partio
5.3.2 Criando um sistema de arquivos EXT2 em um arquivo
5.4 Journaling
5.5 Partio EXT3 (Linux Native)
5.5.1 Criando um sistema de arquivos EXT3 em uma partio
Guia Foca GNU/Linux

5.5.2 Criando um sistema de arquivos EXT3 em um arquivo


5.5.3 Fazendo a converso do sistema de arquivos EXT2 para EXT3
5.5.4 Convertendo de EXT3 para EXT2
5.6 Sistema de arquivos reiserfs
5.6.1 Criando um sistema de arquivos reiserfs em uma partio
5.6.2 Criando um sistema de arquivos reiserfs em um arquivo
5.6.3 Nomeando uma partio de disco
5.6.4 Criando o diretrio especial lost+found
5.6.5 dumpe2fs
5.6.6 Partio EXT2 ou Arquivo?
5.7 Partio Linux Swap (Memria Virtual)
5.7.1 Criando sistema de arquivos Swap em uma partio
5.7.2 Criando um sistema de arquivos Swap em um arquivo
5.7.3 Partio Swap ou Arquivo?
5.8 O sistema de Arquivos /proc
5.9 Formatando disquetes
5.9.1 Formatando disquetes para serem usados no Linux
5.9.2 Formatando disquetes compatveis com o DOS/Windows
5.9.3 Programas de Formatao Grficos
5.10 Pontos de Montagem
5.11 Identificao de discos e parties em sistemas Linux
5.12 Montando (acessando) uma partio de disco
5.12.1 fstab
5.13 Desmontando uma partio de disco
6 Gerenciadores de Partida (boot loaders)
6.1 LILO
6.1.1 Criando o arquivo de configurao do LILO
6.1.2 Opes usadas no LILO
6.1.3 Um exemplo do arquivo de configurao lilo.conf
6.2 GRUB
6.2.1 Como o GRUB trabalha com discos e parties
6.2.2 Instalando o GRUB
6.2.2.1 No MBR
6.2.3 No disco flexvel (somente linha de comando)
6.2.4 No disco flexvel (com interface de menu)
6.2.5 Opes do arquivo de configurao
6.2.6 Um exemplo de arquivo de configurao
6.2.7 Usando a linha de comandos do GRUB
6.2.8 Removendo o GRUB do MBR
6.2.9 Como obter informaes mais detalhadas
6.3 Parmetros de inicializao passados ao Kernel
6.4 LOADLIN
6.4.1 Opes do LOADLIN
6.4.2 Exemplo de inicializao com o LOADLIN
6.5 syslinux
6.5.1 Criando um disquete de inicializao com o syslinux
6.5.2 O arquivo SYSLINUX.CFG
6.5.3 Formatao dos arquivos de tela do syslinux
7 Execuo de programas
7.1 Executando um comando/programa
7.2 path
7.3 Tipos de Execuo de comandos/programas
7.4 Executando programas em sequncia
7.5 ps
7.6 top
7.7 Controle de execuo de processos
7.7.1 Interrompendo a execuo de um processo
7.7.2 Parando momentaneamente a execuo de um processo
7.7.3 jobs
7.7.4 fg
Guia Foca GNU/Linux

7.7.5 bg
7.7.6 kill
7.7.7 killall
7.7.8 killall5
7.7.9 Sinais do Sistema
7.8 nohup
7.9 nice
7.10 fuser
7.11 tload
7.12 vmstat
7.13 pidof
7.14 pstree
7.15 Fechando um programa quando no se sabe como sair
7.16 Eliminando caracteres estranhos
8 Comandos para manipulao de diretrio
8.1 ls
8.2 cd
8.3 pwd
8.4 mkdir
8.5 rmdir
9 Comandos para manipulao de Arquivos
9.1 cat
9.2 tac
9.3 rm
9.4 cp
9.5 mv
10 Comandos Diversos
10.1 clear
10.2 date
10.3 df
10.4 ln
10.5 du
10.6 find
10.7 free
10.8 grep
10.9 head
10.10 nl
10.11 more
10.12 less
10.13 sort
10.14 tail
10.15 time
10.16 touch
10.17 uptime
10.18 dmesg
10.19 mesg
10.20 echo
10.21 su
10.22 sync
10.23 uname
10.24 reboot
10.25 shutdown
10.26 wc
10.27 chattr
10.28 lsattr
10.29 cut
10.30 cmp
10.31 dirname
10.32 diff
10.33 pr
Guia Foca GNU/Linux

10.34 patch
10.35 whereis
10.36 which
10.37 zforce
10.38 gzexe
10.39 znew
11 Comandos de rede
11.1 who
11.2 Telnet
11.3 finger
11.4 ftp
11.5 whoami
11.6 dnsdomainname
11.7 hostname
11.8 talk
11.9 ping
11.10 rlogin
11.11 rsh
11.12 w
11.13 traceroute
11.14 netstat
11.15 wall
12 Comandos para manipulao de contas
12.1 adduser
12.2 addgroup
12.3 passwd
12.4 newgrp
12.5 userdel
12.6 groupdel
12.7 lastlog
12.8 last
12.9 sg
12.10 Adicionando um novo grupo a um usurio
12.11 chfn
12.12 id
12.13 logname
12.14 users
12.15 groups
13 Permisses de acesso a arquivos e diretrios
13.1 Donos, grupos e outros usurios
13.2 Tipos de Permisses de acesso
13.3 Etapas para acesso a um arquivo/diretrio
13.4 Exemplos prticos de permisses de acesso
13.4.1 Exemplo de acesso a um arquivo
13.4.2 Exemplo de acesso a um diretrio
13.5 Permisses de Acesso Especiais
13.6 A conta root
13.7 chmod
13.8 chgrp
13.9 chown
13.10 Modo de permisso octal
13.11 umask
14 Redirecionamentos e Pipe
14.1 >
14.2 >>
14.3 <
14.4 | (pipe)
14.5 Diferena entre o "|" e o ">"
14.6 tee
15 Rede
Guia Foca GNU/Linux

15.1 O que uma rede


15.2 Protocolo de Rede
15.3 Endereo IP
15.3.1 Classes de Rede IP
15.3.2 Para instalar uma mquina usando o Linux em uma rede existente
15.3.3 Endereos reservados para uso em uma rede Privada
15.3.4 Referncia rpida de mscara de redes
15.4 Interface de rede
15.4.1 A interface loopback
15.4.2 Atribuindo um endereo de rede a uma interface (ifconfig)
15.5 Roteamento
15.5.1 Configurando uma rota no Linux
15.6 Resolvedor de nomes (DNS)
15.6.1 O que um nome?
15.6.2 Arquivos de configurao usados na resoluo de nomes
15.6.2.1 /etc/resolv.conf
15.6.2.2 /etc/host.conf
15.6.2.3 /etc/hosts
15.6.2.4 /etc/networks
15.6.3 Executando um servidor de nomes
15.7 Servios de Rede
15.7.1 Servios iniciados como Daemons de rede
15.7.2 Servios iniciados atravs do inetd
15.7.2.1 /etc/inetd.conf
15.8 Segurana da Rede e controle de Acesso
15.8.1 /etc/ftpusers
15.8.2 /etc/securetty
15.8.3 O mecanismo de controle de acessos tcpd
15.8.3.1 /etc/hosts.allow
15.8.3.2 /etc/hosts.deny
15.8.3.3 /etc/hosts.equiv e /etc/shosts.equiv
15.8.3.4 Verificando a segurana do TCPD e a sintaxe dos arquivos
15.8.4 Firewall
15.9 Outros arquivos de configurao relacionados com a rede
15.9.1 /etc/services
15.9.2 /etc/protocols
15.10 Camadas de rede
15.11 Algumas Configuraes de Rede
15.11.1 IP Alias
15.11.2 Bridge
15.11.2.1 Requerimentos para a Instalao
15.11.2.2 Configurao da bridge
15.11.2.3 Configuraes mais avanadas de bridge
15.11.2.4 Configurao manual da bridge
15.11.2.5 Usando o iptables para construir um firewall na mquina da bridge
15.11.2.6 Filtrando pacotes no IP na bridge
16 Kernel e Mdulos
16.1 O Kernel
16.2 Mdulos
16.3 Como adicionar suporte a Hardwares e outros dispositivos no Kernel
16.4 kmod
16.5 lsmod
16.6 insmod
16.7 rmmod
16.8 modprobe
16.9 depmod
16.10 modconf
16.11 Recompilando o Kernel
16.12 Arquivos relacionados com o Kernel e Mdulos
16.12.1 /etc/modules
Guia Foca GNU/Linux

16.12.2 modules.conf
16.13 Aplicando Patches no Kernel
17 Arquivos e daemons de Log
17.1 Formato do arquivo de log
17.2 Daemons de log do sistema
17.2.1 syslogd
17.2.1.1 Arquivo de configurao syslog.conf
17.2.2 klogd
17.3 logger
17.4 Programas teis para monitorao e gerenciamento de arquivos de logs
17.4.1 logcheck
17.4.2 logrotate
17.5 Configurando um servidor de logs
18 Compactadores
18.1 O que fazem os compactadores/descompactadores?
18.1.1 Tipos de compactao
18.2 Extenses de arquivos compactados
18.3 gzip
18.4 zip
18.5 unzip
18.6 tar
18.7 bzip2
18.8 rar
19 A distribuio Debian GNU/Linux
19.1 Porque usar a Debian?
19.2 Pacotes existentes na Debian
19.3 O que sid/testing/frozen/stable?
19.4 Como obter a Debian
19.5 Programas de configurao
19.6 Arquivos de inicializao
19.7 Nveis de Execuo
19.7.1 Entendendo o funcionamento dos nveis de execuo do sistema (runlevels)
19.8 Bug tracking system
19.9 Onde encontrar a Debian para Download?
19.10 Lista de pacotes para uma instalao rpida e manual
19.10.1 Pacotes Bsicos (Altamente Recomendado)
19.10.2 Compilao do Kernel e programas em linguagem C
19.10.3 X11 (bsico)
19.10.4 Window Managers para o X
19.10.5 Impresso (texto e grfico com sistema de spool)
19.10.6 Som (mixer, mp3, Midi, wav, CD-Player)
19.10.7 Programas de Internet (clientes)
19.10.8 Acessrios
19.10.9 Rede
20 Sistema de gerenciamento de pacotes
20.1 dpkg
20.1.1 Pacotes
20.1.2 Instalar pacotes
20.1.3 Dependncias
20.1.4 Listar pacotes existentes no sistema
20.1.5 Removendo pacotes do sistema
20.1.6 Removendo completamente um pacote
20.1.7 Mostrar descrio do pacote
20.1.8 Procura de pacotes atravs do nome de um arquivo
20.1.9 Status do pacote
20.1.10 Procurando pacotes com problemas de instalao
20.1.11 Mostrando a lista de pacotes do sistema
20.1.12 Obtendo uma lista de pacotes para instalar no sistema
20.1.13 Configurando pacotes desconfigurados
20.1.14 Listando arquivos de um pacote
Guia Foca GNU/Linux

20.2 apt
20.2.1 O arquivo /etc/apt/sources.list
20.2.1.1 Endereos de servidores e mirrors nacionais da Debian
20.2.1.2 Um modelo de arquivo sources.list
20.2.2 O arquivo /etc/apt/apt.conf
20.2.3 Copiando a lista de pacotes disponveis
20.2.4 Utilizando CDs oficiais/no-oficiais/terceiros com o apt
20.2.5 Instalando novos pacotes
20.2.6 Removendo pacotes instalados
20.2.7 Atualizando sua distribuio
20.2.8 Removendo pacotes baixados pelo apt
20.2.9 Procurando por pacotes atravs da descrio
20.2.10 Procurando um pacote que contm determinado arquivo
20.2.11 Verificando pacotes corrompidos
20.2.12 Corrigindo problemas de dependncias e outros erros
21 Personalizao do Sistema
21.1 Variveis de Ambientes
21.2 Modificando o Idioma usado em seu sistema
21.3 alias
21.4 Arquivo /etc/profile
21.5 Arquivo .bash_profile
21.6 Arquivo .bashrc
21.7 Arquivo .hushlogin
21.8 Arquivo /etc/environment
21.9 Diretrio /etc/skel
22 Impresso
22.1 Portas de impressora
22.2 Imprimindo diretamente para a porta de impressora
22.3 Imprimindo via spool
22.4 Impresso em modo grfico
22.4.1 Ghost Script
22.5 Magic Filter
22.5.1 Instalao e configurao do Magic Filter
22.5.2 Outros detalhes tcnicos sobre o Magic Filter
22.6 Impresso remota
22.6.1 Dando permisso para impreso remota via lpd/lprng
22.6.2 Impresso via rlpr
22.6.3 Impresso via printcap
22.6.4 Gerenciando impresso de mquinas Windows
23 Configurao do sistema
23.1 Acentuao
23.1.1 Acentuao em modo Texto
23.1.2 Acentuao em modo grfico
23.2 Nmero de Cores do ambiente grfico
23.2.1 Configurando o nmero de cores para quem inicia pelo prompt
23.2.2 Configurando o nmero de cores para quem inicia pelo XDM
23.2.3 Ajustando o alinhamento da imagem no X e outras configuraes
23.2.4 Sobre o nmero de cores para jogos que funcionam no X
24 Compilao
24.1 O que compilao?
24.2 Compilador
25 Manuteno do Sistema
25.1 Checagem dos sistemas de arquivos
25.1.1 fsck.ext2
25.2 reiserfsck
25.3 fsck.minix
25.4 badblocks
25.5 defrag
25.6 Limpando arquivos de LOGS
25.7 Tarefas automticas de manuteno do sistema
Guia Foca GNU/Linux

25.8 cron
25.8.1 O formato de um arquivo crontab
25.9 at
26 Principais arquivos de configurao do diretrio /etc
26.1 Diretrio /etc/alternatives
26.2 Arquivo /etc/default/devpts
26.3 Arquivo /etc/default/rcs
26.4 Arquivo /etc/kbd/config
26.5 Diretrio /etc/menu-methods
26.6 Arquivo /etc/menu-methods/menu-translate
26.7 Arquivo /etc/networks
26.8 Arquivo /etc/networks/interfaces
26.9 Arquivo /etc/networks/options
26.10 Arquivo /etc/networks/spoof-protect
26.11 Diretrio /etc/pam.d
26.12 Diretrio /etc/ppp
26.13 Diretrio /etc/security
26.14 Arquivo /etc/security/access.conf
26.15 Arquivo /etc/security/limits.conf
26.16 Arquivo /etc/crontab
26.17 Arquivo /etc/fstab
26.18 Arquivo /etc/group
26.19 Arquivo /etc/gshadow
26.20 Arquivo /etc/host.conf
26.21 Arquivo /etc/hostname
26.22 Arquivo /etc/hosts
26.23 Arquivo /etc/hosts.allow
26.24 Arquivo /etc/hosts.deny
26.25 Arquivo /etc/hosts.equiv
26.26 Arquivo /etc/inetd.conf
26.27 Arquivo /etc/inittab
26.28 Arquivo /etc/inputrc
26.29 Arquivo /etc/isapnp.conf
26.30 Arquivo /etc/isapnp.gone
26.31 Arquivo /etc/issue
26.32 Arquivo /etc/issue.net
26.33 Arquivo /etc/lilo.conf
26.34 Arquivo /etc/login.defs
26.35 Arquivo /etc/modules
26.36 Arquivo /etc/modules.conf
26.37 Arquivo /etc/motd
26.38 Arquivo /etc/mtab
26.39 Arquivo /etc/networks
26.40 Arquivo /etc/passwd
26.41 Arquivo /etc/printcap
26.42 Arquivo /etc/protocolos
26.43 Arquivo /etc/resolv.conf
26.44 Arquivo /etc/serial.conf
26.45 Arquivo /etc/services
26.46 Arquivo /etc/shadow
26.47 Arquivo /etc/shells
26.48 Arquivo /etc/syslog.conf
26.49 Arquivo /etc/timezone
27 Conectando seu computador a Internet
27.1 Conectando-se a Internet
27.2 Navegando na Internet
27.3 Recebimento de E-Mails atravs do fetchmail
27.3.1 Processamento de mensagens atravs do procmail
28 X Window (ambiente grfico)
28.1 O que X Window?
Guia Foca GNU/Linux

28.2 A organizao do ambiente grfico X Window


28.3 Iniciando o X
28.4 Servidor X
29 Aplicativos para Linux
29.1 Aplicativos Bsicos
29.1.1 Editores de Texto
29.1.2 Aplicativos para Escritrio
29.1.3 Internet
29.1.4 Emuladores
29.1.5 Utilitrios
29.1.6 Administrao do Sistema
29.2 Listagem de Aplicativos para GNU/Linux
29.2.1 Perifricos / Gerenciamento de Hardware
29.2.2 Internet
29.2.3 Conferncia de audio/vdeo via Internet/Intranet
29.2.4 Gerenciamento de WebSites / Linguagem HTML
29.2.5 Multimdia
29.2.6 Som
29.2.7 Comunicao/Fax
29.2.8 X Window
29.2.9 Editorao Grfica/Visualizadores
29.2.10 Emuladores/Ferramentas p/ Interao com outros SO
29.2.11 Programao / Bancos de Dados / Acesso a Dados
29.2.12 Impresso
29.2.13 Texto
29.2.14 Kernel
29.2.15 Notebooks
29.2.16 Gravao de CD/DVD
29.2.17 Computao Paralela/Clusters
29.2.18 PalmTop / Palm Pilot / Computadores de Mo
29.2.19 Backup
29.2.20 Utilitrios
29.2.21 Compactadores/Descompactadores/Arquivadores
29.2.22 Dispositivos X-10 (Controle de eletrodomsticos e aparelhos via PC)
29.2.23 Outros
30 Como obter ajuda no sistema
30.1 Pginas de Manual
30.2 Info Pages
30.3 Help on line
30.4 help
30.5 apropos/whatis
30.6 locate
30.7 which
30.8 Documentos HOWTO's
30.8.1 Listagem de HOWTO's
30.8.1.1 Introduo ao Sistema / Instalao / Configuraes / Kernel
30.8.1.2 Adaptao do GNU/Linux para idiomas especficos
30.8.1.3 Discos / Sistemas de Arquivos / Desempenho
30.8.1.4 Escrita de Documentao / Editores
30.8.1.5 Hardware
30.8.1.6 Software
30.8.1.7 Plataformas no Intel (x86)
30.8.1.8 Programao / Compiladores / Banco de Dados
30.8.1.9 Computao Paralela / Clusters
30.8.1.10 Configurao de Teclado / Vdeo / Console
30.8.1.11 Ambiente Grfico
30.8.1.12 Suporte ao Sistema / Grupos de Usurios / Listas de Discusso
30.8.1.13 Migrao / Convivncia com Outras Plataformas
30.8.1.14 Tarefas Especficas
30.8.1.15 Rede / Administrao / Firewall / Proxy / Segurana
Guia Foca GNU/Linux

10

30.8.1.16 Outros
30.8.2 Listagem de Mini-HOWTOs
30.8.2.1 Introduo ao Sistema / Instalao / Configurao / Kernel
30.8.2.2 Discos / Sistema de Arquivos / Desempenho
30.8.2.3 Escrita de Documentao / Editores
30.8.2.4 Hardware
30.8.2.5 Software
30.8.2.6 Plataformas no Intel (x86)
30.8.2.7 Programao / Compiladores / Banco de Dados
30.8.2.8 Configurao de Teclado / Video / Console
30.8.2.9 Ambiente Grfico
30.8.2.10 Migrao/Convivncia com outras plataformas
30.8.2.11 Tarefas Especficas
30.8.2.12 Rede / Administrao / Firewall / Segurana
30.8.2.13 Outros
30.9 Documentao de Programas
30.10 FAQ
30.11 RFC's
30.12 Internet
30.12.1 Pginas Internet de Referncia
30.12.2 Listas de discusso
31 Firewall iptables
31.1 Introduo
31.1.1 Verso
31.1.2 Um resumo da histria do iptables
31.1.3 Caractersticas do firewall iptables
31.1.4 Ficha tcnica
31.1.5 Requerimentos
31.1.6 Arquivos de logs criados pelo iptables
31.1.7 Instalao
31.1.8 Enviando Correes/Contribuindo com o projeto
31.1.9 O que aconteceu com o ipchains e ipfwadm?
31.1.10 Tipos de firewalls
31.1.11 O que proteger?
31.1.12 O que so regras?
31.1.13 O que so chains?
31.1.14 O que so tabelas?
31.1.15 Habilitando o suporte ao iptables no Kernel
31.1.16 Ligando sua rede interna a Internet
31.2 Manipulando chains
31.2.1 Adicionando regras - A
31.2.2 Listando regras - L
31.2.3 Apagando uma regra - D
31.2.4 Inserindo uma regra - I
31.2.5 Substituindo uma regra - R
31.2.6 Criando um novo chain - N
31.2.7 Listando os nomes de todos os chains atuais
31.2.8 Renomeando um chains criado pelo usurio - E
31.2.9 Limpando as regras de um chain - F
31.2.10 Apagando um chain criado pelo usurio - X
31.2.11 Zerando contador de bytes dos chains - Z
31.2.12 Especificando o policiamento padro de um chain - P
31.3 Outras opes do iptables
31.3.1 Especificando um endereo de origem/destino
31.3.2 Especificando a interface de origem/destino
31.3.3 Especificando um protocolo
31.3.3.1 Especificando portas de origem/destino
31.3.3.2 Especificando mensagens do protocolo ICMP
31.3.3.3 Especificando pacotes syn
31.3.4 Especificando fragmentos
Guia Foca GNU/Linux

11

31.3.5 Especificando uma excesso


31.3.6 Especificando um alvo
31.3.6.1 Alvo REJECT
31.3.6.2 Especificando LOG como alvo
31.3.6.3 Especificando RETURN como alvo
31.4 A tabela nat (Network Adress Translation) - fazendo nat
31.4.1 Criando um novo chain na tabela NAT
31.4.2 Fazendo IP masquerading (para os apressados)
31.4.3 Fazendo SNAT
31.4.3.1 Fazendo IP Masquerading
31.4.4 Fazendo DNAT
31.4.4.1 Redirecionamento de portas
31.4.5 Monitorando conexes feitas na tabela nat
31.5 A tabela mangle
31.5.1 Especificando o tipo de servio
31.5.1.1 Especificando o TOS para trfego de sada
31.5.1.2 Especificando o TOS para o trfego de entrada
31.6 Outros mdulos do iptables
31.6.1 Conferindo de acordo com o estado da conexo
31.6.2 Limitando o nmero de vezes que a regra confere
31.6.3 Proteo contra ping da morte
31.6.4 Proteo contra syn flood
31.6.5 Proteo contra IP spoofing
31.6.6 Especificando mltiplas portas de origem/destino
31.6.7 Especificando o endereo MAC da interface
31.6.8 Conferindo com quem criou o pacote
31.7 Caminho percorrido pelos pacotes nas tabelas e chains
31.7.1 Ping de 192.168.1.1 para 192.168.1.1
31.7.2 Conexo FTP de 192.168.1.1 para 192.168.1.1
31.7.3 Conexo FTP de 192.168.1.1 para 192.168.1.4
31.7.4 Conexo FTP de 200.217.29.67 para a mquina ftp.debian.org.br
31.7.5 Ping de 192.168.1.4 para 192.168.1.1
31.7.6 Conexo FTP de 192.168.1.4 para 192.168.1.1
31.7.7 Conexo FTP de 192.168.1.4 para ftp.debian.org.br
31.7.8 Conexo FTP de 200.198.129.162 para 200.217.29.167
31.7.9 Grafico geral da passagem dos pacotes
31.8 Exemplos de configuraes do iptables
31.8.1 Bloqueando conexes de fora para sua mquina
31.8.2 Monitorando tentativa de conexo de trojans em sua mquina
31.8.3 Conectando sua rede interna a Internet
31.8.4 Um exemplo de firewall simples
32 Gerenciamento de contas e cuidados para a proteo de senhas
32.1 Introduo
32.2 Criao, monitorao e segurana de contas
32.2.1 Definindo valores padres de restrio
32.2.2 Senhas fceis de adivinhar e escolha de boas senhas
32.2.3 Atualizao de senhas de mltiplas contas
32.2.4 A senha do usurio root
32.3 Tipos de ataques mais comuns para se conseguir uma senha.
32.3.1 Deduo
32.3.2 Engenharia Social
32.3.3 Ataques por dicionrio
32.3.4 Brute Force
32.3.5 Monitorao de toques do teclado
32.3.6 Login falso
32.4 Melhorando a segurana das senhas armazenadas em seu sistema
32.4.1 Shadow Passwords
32.4.2 Senhas MD5
33 Apache
33.1 Introduo
Guia Foca GNU/Linux

12

33.1.1 Verso
33.1.2 Um resumo da Histria do Apache
33.1.3 Enviando Correes/Contribuindo com o projeto
33.1.4 Caractersticas do Apache
33.1.5 Ficha tcnica
33.1.6 Requerimentos
33.1.7 Arquivos de log criados pelo Apache
33.1.8 Instalao
33.1.9 Iniciando o servidor/reiniciando/recarregando a configurao
33.1.10 Opes de linha de comando
33.2 Configurando a porta padro do Apache
33.3 Adicionando uma pgina no Apache
33.4 Configurando as interfaces que o Apache atender
33.5 Especificando endereos/portas adicionais (a diretiva Listen)
33.6 Especificando opes/permisses para as pginas
33.7 Restries de Acesso
33.7.1 Autorizao
33.7.2 Autenticao
33.7.2.1 Criando um arquivo de Senhas
33.7.2.2 Autenticao atravs de usurios
33.7.2.3 Autenticao usando grupos
33.7.3 Usando autorizao e autenticao juntos
33.7.3.1 Acesso diferenciado em uma mesma diretiva
33.7.4 O arquivo .htaccess
33.7.5 Usando a diretiva SetEnvIf com Allow e Deny
33.7.6 A diretiva <Limit>
33.7.7 Diretiva <LimitExcept>
33.8 Definindo documentos de erro personalizados
33.9 Mdulos DSO
33.10 Sistema de Log do Apache
33.10.1 AgentLog
33.10.2 ErrorLog
33.10.3 CustomLog
33.10.4 RefererLog
33.10.5 RewriteLog
33.10.6 RewriteLogLevel
33.10.7 ScriptLog
33.10.8 ScriptLogBuffer
33.10.9 ScriptLogLength
33.10.10 TransferLog
33.10.11 LogFormat
33.10.12 LogLevel
33.10.13 Anonymous_LogEmail
33.10.14 CookieLog
33.10.15 Relatrio grfico de acesso ao sistema
33.11 Configurando o Apache como servidor proxy
33.11.1 Controlando o acesso ao servidor proxy
33.11.2 Redirecionamento de conexes no Apache
33.12 Virtual Hosts
33.12.1 Virtual hosts baseados em IP
33.12.2 Virtual hosts baseados em nome
33.12.3 Segurana no uso de IP's em Virtual Hosts
33.13 Uso de criptografia SSL
33.13.1 Servidor apache com suporte a SSL
33.13.2 Instalando o suporte a mdulo SSL no Apache
33.13.3 Gerando um certificado digital
33.13.4 Exemplo de configurao do mdulo mod-ssl
33.13.5 Autorizando acesso somente a conexes SSL
33.13.6 Iniciando o servidor Web com suporte a SSL
33.14 Exemplo comentado de um arquivo de configurao do Apache
Guia Foca GNU/Linux

13

33.14.1 httpd.conf
33.14.2 srm.conf
33.14.3 access.conf
33.15 Cdigos HTTP
34 Servidor ident
34.1 Introduo
34.1.1 Verso
34.1.2 Contribuindo
34.1.3 Caractersticas
34.1.4 Ficha tcnica
34.1.5 Requerimentos de Hardware
34.1.6 Arquivos de log criados pelo Ident
34.1.7 Instalao
34.1.8 Instalao via Inetd
34.1.9 Usando tcpwrappers com oidentd
34.1.10 Iniciando o servidor/reiniciando/recarregando a configurao
34.1.11 Opes de linha de comando
34.1.12 Exemplos
35 Servidor telnet
35.1 Introduo
35.1.1 Verso
35.1.2 Caractersticas
35.1.3 Ficha tcnica
35.1.4 Requerimentos de Hardware
35.1.5 Arquivos de log criados pelo servidor telnet
35.1.6 Instalao
35.1.7 Iniciando o servidor/reiniciando/recarregando a configurao
35.1.8 Opes de linha de comando
35.2 Controle de acesso
35.3 Recomendaes
35.4 Fazendo conexes ao servidor telnet
36 Servidor ssh
36.1 Introduo
36.1.1 Verso
36.1.2 Histria
36.1.3 Contribuindo
36.1.4 Caractersticas
36.1.5 Ficha tcnica
36.1.6 Requerimentos de Hardware
36.1.7 Arquivos de log criados pelo servidor ssh
36.1.8 Instalao do servidor openSSH
36.1.9 Iniciando o servidor/reiniciando/recarregando a configurao
36.1.10 Opes de linha de comando
36.2 Usando aplicativos clientes
36.2.1 ssh
36.2.1.1 Redirecionamento de conexes do X
36.2.1.2 Cliente ssh para Windows
36.2.2 scp
36.2.2.1 Cliente scp para Windows
36.2.3 sftp
36.3 Servidor ssh
36.3.1 sshd
36.3.2 Controle de acesso
36.3.3 Usando autenticao RSA - chave pblica/privada
36.3.4 Diferenas nas verses do protocolo
36.3.5 Exemplo de sshd_config com explicaes das diretivas
37 Servidor pop3
37.1 Introduo
37.1.1 Verso
37.1.2 Contribuindo
Guia Foca GNU/Linux

14

37.1.3 Caractersticas
37.1.4 Ficha tcnica
37.1.5 Requerimentos de Hardware
37.1.6 Arquivos de log criados pelo qpopper
37.1.7 Instalao
37.1.8 Iniciando o servidor/reiniciando/recarregando a configurao
37.1.9 Testando o servidor pop3
37.1.10 Opes de linha de comando
37.1.11 Enviando boletins de mensagens
37.1.12 Especificando quotas para as caixas de correio
37.1.13 Restringindo acesso ao servidor pop3
38 Restries de recursos/servios
38.1 Limitando recursos no bash
38.1.1 Uso do comando readonly para exportar variveis
38.1.2 Restries nos diretrios de usurios e root
38.1.3 Restries bsicas do shell bash com bash -r/--restricted, rbash
38.1.4 Finalizando consoles inativos
38.1.5 Desabilitando o registro de comandos digitados
38.1.6 Desabilitando servios de shell para usurios
38.2 Limitao de recursos usando PAM
38.2.1 Descobrindo se um determinado programa tem suporte a PAM
38.2.2 Definindo um policiamento padro restritivo
38.2.3 Restringindo/Bloqueando o login
38.2.4 Restries de servios PAM baseados em dia/hora
38.2.5 Permitindo acesso a grupos extras
38.2.6 Limitao de recursos do shell
38.3 Restries de acesso a programas/diretrios/arquivos usando grupos
38.4 Dando poderes de root para executar determinados programas
38.5 Restringindo o comando su
38.6 Restries baseadas em usurio/IP
38.7 Desabilitando servios no usados no Inetd
38.8 Evitando o uso de hosts.equiv e .rhosts
38.9 Restringindo o uso do shutdown
38.10 Restringindo o acesso ao sistema de arquivos /proc
38.11 Limitando o uso de espao em disco (quotas)
38.11.1 Instalando o sistema de quotas
38.11.2 Editando quotas de usurios/grupos
38.11.3 Modificando a quota de todos os usurios de uma vez
38.11.4 Verificando a quota disponvel ao usurio
38.11.6 Verificando a quota de todos os usurios/grupos do sistema
38.11.6 Avisando usurios sobre o estouro de quota
38.12 Suporte a senhas ocultas
38.13 Suporte a senhas md5
38.14 Restries no hardware do sistema
38.14.1 BIOS do sistema
38.14.2 Retirada da unidade de disquetes
38.14.3 Placas de rede com eprom de boot
38.14.4 Protegendo o LILO
38.14.5 Disco rgido
39 Introduo ao uso de criptografia para transmisso/armazenamento de dados
39.1 Introduo
39.2 Sniffer
39.2.1 Detectando a presena de sniffers
39.3 Alternativas seguras a servios sem criptografia
39.3.1 http
39.3.2 Transmisso segura de e-mails
39.3.3 Servidor pop3
39.3.4 Transferncia de arquivos
39.3.5 login remoto
39.3.6 Bate papo via IRC
Guia Foca GNU/Linux

15

39.3.7 Transmisso de mensagens via ICQ


39.4 Sistemas de arquivos criptogrfico
39.5 Usando pgp (gpg)para criptografia de arquivos
39.5.1 Instalando o PGP
39.5.2 Criando um par de chaves pblica/privada
39.5.3 Encriptando dados
39.5.4 Descriptando dados com o gpg
39.5.5 Assinando arquivos
39.5.6 Checando assinaturas
39.5.7 Extraindo sua chave pblica do chaveiro
39.5.8 Adicionando chaves pblicas ao seu chaveiro pessoal
39.5.9 Listando chaves de seu chaveiro
39.5.10 Apagando chaves de seu chaveiro
39.5.11 Mudando sua FraseSenha
39.5.12 Assinando uma chave digital
39.5.13 Listando assinaturas digitais
40 CVS
40.1 Introduo ao CVS
40.1.1 Verso
40.1.2 Histria
40.1.3 Contribuindo com o CVS
40.1.4 Caractersticas
40.1.5 Ficha tcnica
40.1.6 Requerimentos de Hardware
40.1.7 Arquivos de log criados pelo CVS
40.1.8 Instalao
40.1.9 Iniciando o servidor/reiniciando/recarregando a configurao
40.1.10 Opes de linha de comando
40.2 Servidor de CVS - configurando mtodos de acesso ao repositrio
40.2.1 local
40.2.1.1 Configurando o mtodo local
40.2.2 fork
40.2.2.1 Configurando o mtodo fork
40.2.3 ext
40.2.3.1 Configurando o mtodo ext
40.2.4 pserver (password server)
40.2.5 Configurando um servidor pserver
40.2.5.1 Ativando o servidor pserver
40.2.5.2 Servidor pserver usando autenticao do sistema
40.2.5.3 Servidor pserver com autenticao prpria
40.2.6 gssapi
40.3 Criando projetos para serem usados no CVS
40.3.1 Repositrio
40.3.2 Criando um repositrio
40.3.3 Logando no servidor de CVS via pserver
40.3.4 Encerrando uma seo de CVS
40.3.5 Baixando arquivos
40.3.6 Adicionando um novo projeto
40.3.7 Sincronizando a cpia remota com a cpia local
40.3.8 Enviando as mudanas para o servidor remoto
40.3.9 Adicionando um arquivo ao mdulo CVS do servidor
40.3.10 Adicionando um diretrio ao mdulo CVS do servidor
40.3.11 Removendo um arquivo do mdulo CVS remoto
40.3.12 Removendo um diretrio do mdulo CVS remoto
40.3.13 Dizendo que o mdulo atual no est mais em uso
40.3.14 Visualizando diferenas entre verses de um arquivo
40.3.15 Outros utilitrios para trabalho no repositrio
40.4 Arquivos administrativos em CVSROOT
40.4.1 config
40.4.2 modules
Guia Foca GNU/Linux

16

40.4.3 cvswrappers
40.4.4 commitinfo
40.4.5 verifymsg
40.4.6 loginfo
40.4.7 cvsignore
40.4.8 checkoutlist
40.4.9 history
40.5 Clientes de CVS
40.5.1 cvs
40.5.2 gcvs - Linux
40.5.3 WinCVS - Windows
40.5.4 MacCVS - Macintosh (PPC)
40.5.5 viewcvs
40.6 Exemplo de uma seo CVS
41 Apndice
41.1 Sobre este guia
41.2 Referncias de auxlio ao desenvolvimento do guia
41.3 Onde encontrar a verso mais nova do guia?
41.4 Colaboradores do Guia
41.5 Marcas Registradas
41.6 Futuras verses
41.7 Chave Pblica PGP

Guia Foca GNU/Linux

17

Captulo 1 - Introduo
Bem vindo ao guia Foca GNU/Linux. A verso que esta lendo agora contm os nveis de aprendizado:

Iniciante

Intermedirio

Avanado
Entre o contedo do guia, voc encontrar:

Textos explicativos falando sobre o GNU/Linux, seus comandos, arquivos, diretrios, etc.

Explicaes iniciais sobre as partes bsicas do computador e perifricos

Comandos e Programas equivalentes entre o DOS/Windows e o GNU/Linux

Todos os materiais contidos na verso iniciante so ideais para quem est tendo o primeiro contato com
computadores e/ou com o GNU/Linux. So usadas palavras simples para explicar o funcionamento de cada
comando evitando, sempre que possvel, termos tcnicos

Explicaes necessrias para conhecer, operar, configurar, desenvolver, personalizar seus programas e
arquivos.

Uma lista de aplicativos clientes para serem usados em seu sistema GNU/Linux, com suas
caractersticas, equipamento mnimo requerido e espao em disco recomendado para instalao.

Criao de parties e arquivos contendo o sistema de arquivos ext2 (para gravao de dados) e swap
(memria virtual) e as vantagens/desvantagens de se utilizar um arquivo ou partio para armazenamento de
dados.

Compilao de programas/Kernel, com explicaes sobre cada uma das opes ajudando-o a decidir
sobre a incluso ou no.

Manipulao de mdulos do Kernel

Explicaes sobre hardwares (Interrupes, Dma, Jumpers, Jumperless, Plug-and-Play) e como


configura-los no Linux, valores padres e resoluo de conflitos entre hardwares.

Dicas de como avaliar e comprar bons hardwares para que seu computador tenha o melhor desempenho
(tambm vlido para DOS, Windows e outras plataformas). Desta maneira voc saber porque algumas
placas de fax-modens custam 3 vezes mais caro que outras e o que a placa traz de especial para ter este
diferencial.

Como modificar facilmente o idioma usado em seu sistema (localizao) para o modo texto e modo
grfico.

Utilizao de compactadores de disco

Mais opes para os comandos existentes na verso Iniciante do guia e novos comandos.

Conhecer os arquivos de configurao e arquivos bsicos de segurana e aprender para que eles servem
e como usa-los.

Dicas de como saber escolher bons perifricos para uso no GNU/Linux e outros sistemas operacionais

Manuteno bsica do computador (verificao do disco, desfragmentao) e manuteno automtica


feita atravs dos programas e scripts configurados.

Introduo rede no Linux (com a configurao de dispositivos de rede, etc.).

Configuraes bsicas de segurana de Rede

Gerenciadores de inicializao, o que so e como funcionam e como criar um arquivo de inicializao


para inicializar o GNU/Linux pelo disco rgido ou mais de um Sistema Operacional.

Particionamento de disco

Criao de memria virtual no disco rgido e em arquivo.

Anlise de logs do sistema GNU/Linux e aplicaes para a soluo de problemas (Arquivos e


daemons de Log, Captulo 17).

Gerenciamento de contas de usurios, definio de perodo automtico para troca de senha


peridica, politicas de segurana, etc (Gerenciamento de contas e cuidados para a proteo de senhas,
Captulo 32).

Principais tipos de ataques para descoberta de senhas e alguns mtodos de como evita-las
(Senhas fceis de adivinhar e escolha de boas senhas, Seo 32.2.2).

Sistemas de proteo de senhas do sistema (Melhorando a segurana das senhas armazenadas


em seu sistema, Seo 32.4).

Criptografia e segurana na transmisso de dados, usando exemplos prticos do uso de sniffers


Guia Foca GNU/Linux

18

para entender o porque da uso de criptografia para transmisso segura de dados (Introduo ao uso de
criptografia para transmisso/armazenamento de dados, Captulo 39).

Uso de servios alternativos criptogrficos (Alternativas seguras a servios sem criptografia,


Seo 39.3).

Criptografia usando gnupgp (Usando pgp (gpg)para criptografia de arquivos, Seo 39.5).

Uso de sistema de arquivos criptogrficos para armazenamento de dados (Sistemas de arquivos


criptogrficos, Seo 39.4).

Otimizao de performance na transferncia de dados do disco rgido atravs de


particionamento e hdparm, uso de spidles para criao de swap (Melhoria de performance, Seo 3.12).

O que so descargas estticas e a importncia do aterramento da instalao eltrica do


computador (dirigido a usurios domsticos e de pequenas instalaes) (Descargas estticas, Seo 3.11).

Maiores consideraes a segurana de sistema e a problemas de segurana relativos a falhas de


configurao (distribuda entre os captulos de daemons e servidores).

Montagem de um servidor Web usando o Apache (Apache, Captulo 33).

Montagem de um firewall para proteo do sistema (filtragem de pacotes) usando o iptables,


redirecionamento de pacotes, nat, masquerading, balanceamento de carga, marcao de pacotes, logging
(Firewall iptables, Captulo 31).

Servidor de acesso para permitir o acesso a distncia ao seu computador usando o telnetd
(Servidor telnet, Captulo 35).

Servidor de acesso para permitir o acesso a distncia a seu computador com criptografia usando
o ssh (Servidor ssh, Captulo 36).

Servidor de identificao usando o oidentd (Servidor ident, Captulo 34).

Montagem de um servidor pop3 para que suas estaes de rede possam acessar o e-mail na
mquina servidora Linux usando programas como Outlook, Communicator, Mutt, sylpheed e outros que
utilizem o protocolo pop3 (Servidor pop3, Captulo 37).

Restries de acesso a instalao do computador, acesso a grupos do sistema, restries de login


usando PAM (Restries de recursos/servios, Captulo 38).

Restries de espao usado em disco por usurios/grupos usando o sistema de quotas


(Limitando o uso de espao em disco (quotas), Seo 38.11).

Uso de grupos dos sistema para restries de acesso (Restries de acesso a


programas/diretrios/arquivos usando grupos, Seo 38.3).

Restries de acesso via hardware: bios, disquete, placa com boot via rede, LILO, disco rgido
(Dando poderes de root para executar determinados programas, Seo 38.4).

Manipulaes de variveis no bash (TMOUT, PS1, PS2, PS3 e PS4).

Montagem de shell bsico restrito (Restries no hardware do sistema, Seo 38.14).

Uso do su para dar privilgio de execuo de programas como root a determinados usurios
(Dando poderes de root para executar determinados programas, Seo 38.4).
Para melhor organizao, dividi o guia em 3 verses: Iniciante, Intermedirio e Avanado. Sendo que a verso
Iniciante voltada para o usurio que no tem nenhuma experincia no GNU/Linux. A ltima verso deste guia
pode ser encontrada em: Foca GNU/Linux HomePage.
Caso tiver alguma sugesto, correo, crtica para a melhoria deste guia, envie um e-mail para
gleydson@cipsa.org.br.
O Foca GNU/Linux atualizado freqentemente, por este motivo recomendo que preencha a ficha do aviso de
atualizaes na pgina web em Foca GNU/Linux HomePage no fim da pgina principal. Aps preencher a ficha
do aviso de atualizaes, voc receber um e-mail sobre o lanamento de novas verses do guia e o que foi
modificado, desta forma voc poder decidir em copia-la caso a nova verso contenha modificaes que
considera importantes.

1.1 - Antes de comear


Os captulos Introduo e bsico contm explicaes tericas sobre o computador, GNU/Linux, etc. Voc pode
pular este captulos caso j conhea estas explicaes ou se desejar partir para a prtica e quiser ve-los mais
tarde, se lhe interessar.
Se voc j um usurio do DOS e Windows, recomendo ler Para quem esta migrando (ou pensando em migrar)
do DOS/Windows para o Linux, Captulo 4. L voc vai encontrar comparaes de comandos e programas
DOS/Windows e GNU/Linux.
Para quem est comeando, muita teoria pode atrapalhar o aprendizado, mais produtivo ver na prtica o que o
computador faz e depois porque ele faz isto. Mesmo assim, recomendo ler estes captulos pois seu contedo
Guia Foca GNU/Linux

19

pode ser til.


Coloquei abaixo algumas dicas para um bom comeo:

Recomendo que faa a leitura deste guia e pratique o que aprendeu imediatamente. Isto facilita o
entendimento do programa/comando.

preciso ter interesse em aprender, se voc tiver vontade em aprender algo, voc ter menos
dificuldade do que em algo que no gosta e est se obrigando a aprender.

Decorar no adianta pelo contrrio, s atrapalha no aprendizado. Voc precisa entender o que o
comando faz, deste modo voc estar tambm usando e desenvolvendo sua interpretao, e entender
melhor o assunto (talvez at me de uma fora para melhorar o guia.

Curiosidade tambm importante. Voc talvez possa estar procurando um comando que mostre os
arquivos que contm um certo texto, e isto far voc chegar at o comando grep, depois voc conhecer
suas opes, etc.

No desanime vendo outras pessoas que sabem mais que voc, lembre-se que ningum nasce sabendo.
Uma pessoa pode ter mais experincia em um assunto no sistema como compilao de programas,
configurao, etc, e voc pode ter mais interesse em redes.

Ningum pode saber tudo da noite para o dia, no procure saber tudo sobre o sistema de uma s vez
seno no entender nada. Caso tenha dvidas sobre o sistema, procure ler novamente a seo do guia, e
caso ainda no tenha entendido procure ajuda nas pgina de manual (veja Pginas de Manual, Seo 30.1),
ou nas listas de discusso (veja Listas de discusso, Seo 30.12.2) ou me envie uma mensagem
gleydson@linuxbr.com.br.

Certamente voc buscar documentos na Internet que falem sobre algum assunto que este guia ainda
no explica. Muito cuidado! O GNU/Linux um sistema que cresce muito rapidamente, a cada semana uma
nova verso lanada, novos recursos so adicionados, seria maravilhoso se a documentao fosse
atualizada com a mesma freqencia.
Infelizmente a atualizao da documentao no segue o mesmo ritmo (principalmente aqui no Brasil).
comum voc encontrar na Internet documentos da poca quando o Kernel estava na verso 2.0.20, 2.0.30, etc.
Estes documentos so teis para pessoas que usem as verses antigas do Kernel Linux, mas pode trazer
problemas ou causar m impresso do GNU/Linux em outras pessoas.
Por exemplo, voc pode esbarrar pela Internet com um documento que diz que o Kernel no tem suporte aos
"nomes extensos" da VFAT (Windows 95), isto verdade para Kernels anteriores ao 2.0.31, mas as verses mais
novas que a 2.0.31 reconhecem sem problemas os nomes extensos da partio Windows VFAT.
Uma pessoa desavisada pode ter receio de instalar o GNU/Linux em uma mesma mquina com Windows por
causa de um documento como este. Para evitar problemas deste tipo, verifique a data de atualizao do
documento, se verificar que o documento est obsoleto, contacte o autor original e pea para que ele retire
aquela seo na prxima verso que ser lanada.
O GNU/Linux considerado um sistema mais difcil do que os outros, mas isto porque ele requer que a pessoa
realmente aprenda e conhea computadores e seus perifricos antes de fazer qualquer coisa (principalmente se
voc um tcnico em manuteno, redes, instalaes, etc, e deseja oferecer suporte profissional a este sistema).
Voc conhecer mais sobre computadores, redes, hardware, software, discos, saber avaliar os problemas e a
buscar a melhor soluo, enfim as possibilidades de crescimento neste sistema operacional depende do
conhecimento, interesse e capacidade de cada um.
A interface grfica existe, mas os melhores recursos e flexibilidade esto na linha de comando. Voc pode ter
certeza que o aprendizado no GNU/Linux ajudar a ter sucesso e menos dificuldade em usar qualquer outro
sistema operacional. Pea ajuda a outros usurios do GNU/Linux quando estiver em dvida ou no souber fazer
alguma coisa no sistema. Voc pode entrar em contato diretamente com outros usurios ou atravs de listas de
discusso (veja Listas de discusso, Seo 30.12.2). Boa Sorte e bem vindo ao GNU/Linux!

1.2 - Pr-requisitos para a utilizao deste guia


assumido que voc j tenha seu GNU/Linux instalado e funcionando. assumido que voc tenha entendido a
funo de boa parte dos comandos que consta na verso iniciante do Foca Linux, arquivos e permisses de
acesso. Em resumo, que saiba decidir quando e qual(is) comando(s) deve usar em cada situao. assumido
que voc ja tenha experincia na configurao de sistemas Linux, conhea boa parte dos comandos e sua
utilizao, tenha noes de rede e saiba como procurar documentao para complementar o que vem
aprendendo. Enfim, requer que se tiver interesse em se aprofundar em determinada rea, que utilize os mtodos
de busca de documentao sugeridos no guia para complementao do aprendizado. O guia no contm todos os
materiais para que a pessoa se torne um expert no assunto, mas contm as referncias para documentaes mais
especficas sobre determinadas reas do sistema.
Este guia no cobre a instalao do sistema. Para detalhes sobre instalao, consulte a documentao que
Guia Foca GNU/Linux

20

acompanha sua distribuio GNU/Linux.

1.2.1 - Consideraes sobre o nvel Avanado


Este guia foi compilado incluindo o nvel Avanado do guia FOCA GNU/Linux, ele no tem a inteno de
oferecer detalhes completos sobre a configurao de servios, servidores, aplicativos, nem garantia que ele
atender a determinada finalidade especfica do usurio (principalmente de uma rede, que depende de uma
perfeita compreenso para adaptao de acordo com os requisitos de uma instalao local). Seu foco principal
a instalao do servio, consideraes voltadas a segurana, e exemplos de configurao e seu funcionamento.
Com relao a captulos sobre servidores, importante observar qual verso documentada no guia e se confere
com a instalada em seu sistema, a fim de que tudo funcione corretamente. Entretanto, na maioria dos casos, as
explicaes relacionadas a uma verso de um programa so inteiramente vlidas em uma nova verso.

1.3 - Sistema Operacional


O Sistema Operacional a interface do usurio e seus programas com o computador. Ele responsvel pelo
gerenciamento de recursos e perifricos (como memria, discos, arquivos, impressoras, CD-ROMs, etc.) e a
execuo de programas.
No Linux o Kernel o Sistema Operacional. Voc poder constru-lo de acordo com a configurao de seu
computador e os perifricos que possui.

1.4 - O Linux
O Linux um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlndia.
um sistema Operacional de cdigo aberto distribudo gratuitamente pela Internet. Seu cdigo fonte liberado
como Free Software (software livre) o aviso de copyright do Kernel feito por Linus descreve detalhadamente
isto e mesmo ele est proibido de fazer a comercializao do sistema.
Isto quer dizer que voc no precisa pagar nada para usar o Linux, e no crime fazer cpias para instalar em
outros computadores, ns inclusive incentivamos voc a fazer isto. Ser um sistema de cdigo aberto pode
explicar a performance, estabilidade e velocidade em que novos recursos so adicionados ao sistema.
Para rodar o Linux voc precisa, no mnimo, de um computador 386 SX com 2 MB de memria e 40MB
disponveis em seu disco rgido para uma instalao bsica e funcional.
O sistema segue o padro POSIX que o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo
o Linux voc no encontrar muita dificuldade em operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS,
etc, bastando apenas aprender alguns detalhes encontrados em cada sistema.
O cdigo fonte aberto permite que qualquer pessoa veja como o sistema funciona (til para aprendizado), corrija
alguma problema ou faa alguma sugesto sobre sua melhoria, esse um dos motivos de seu rpido
crescimento, do aumento da compatibilidade de perifricos (como novas placas sendo suportadas logo aps seu
lanamento) e de sua estabilidade.
Outro ponto em que ele se destaca o suporte que oferece a placas, cd-roms e outros tipos de dispositivos de
ltima gerao e mais antigos (a maioria deles j ultrapassados e sendo completamente suportados pelo sistema
operacional). Este um ponto forte para empresas que desejam manter seus micros em funcionamento e
pretendem investir em avanos tecnolgicos com as mquinas que possui.
Hoje o Linux desenvolvido por milhares de pessoas espalhadas pelo mundo, cada uma fazendo sua
contribuio ou mantendo alguma parte do Kernel gratuitamente. Linus Torvalds ainda trabalha em seu
desenvolvimento e tambm ajuda na coordenao entre os desenvolvedores.
O suporte ao sistema tambm se destaca como sendo mais eficiente e rpido do que qualquer programa
comercial disponvel no mercado. Existem centenas de consultores especializados espalhados ao redor do
mundo. Voc pode se inscrever em uma lista de discusso e relatar sua dvida ou alguma falha, e sua mensagem
ser vista por centenas de usurios na Internet e algum ir te ajudar ou avisar as pessoas responsveis sobre a
falha encontrada para devida correo. Para detalhes, veja Listas de discusso, Seo 30.12.2.

1.4.1 - Algumas caractersticas do Linux

de graa e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores


espalhados ao redor do mundo que tem como objetivo a contribuio para a melhoria e crescimento deste
sistema operacional.

Muitos deles estavam cansados do excesso de propaganda (Marketing) e baixa qualidade de sistemas
comerciais existentes. Convivem sem nenhum tipo de conflito com outros sistemas operacionais (com o
DOS, Windows, OS/2) no mesmo computador.

Multitarefa real
Guia Foca GNU/Linux

21

Multiusurio
Suporte a nomes extensos de arquivos e diretrios (255 caracteres)
Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc,
ARM, Unix, Windows, DOS, etc.
Proteo entre processos executados na memria RAM
Suporte ha mais de 63 terminais virtuais (consoles)
Modularizao - O GNU/Linux somente carrega para a memria o que usado durante o
processamento, liberando totalmente a memria assim que o programa/dispositivo finalizado
Devido a modularizao, os drivers dos perifricos e recursos do sistema podem ser carregados e
removidos completamente da memria RAM a qualquer momento. Os drivers (mdulos) ocupam pouco
espao quando carregados na memria RAM (cerca de 6 Kb para a Placa de rede NE 2000, por exemplo)
No h a necessidade de se reiniciar o sistema aps a modificar a configurao de qualquer perifrico
ou parmetros de rede. Somente necessrio reiniciar o sistema no caso de uma instalao interna de um
novo perifrico, falha em algum hardware (queima do processador, placa-me, etc.).
No precisa de um processador potente para funcionar. O sistema roda bem em computadores 386sx25
com 4MB de memria RAM (sem rodar o sistema grfico X, que recomendado 8MB de RAM). J pensou
no seu desempenho em um 486 ou Pentium.
O crescimento e novas verses do sistema no provocam lentido, pelo contrrio, a cada nova verso os
desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos teis e melhor desempenho
do sistema (como o que aconteceu na passagem do Kernel 2.0.x para 2.2.x).
No requerida uma licena para seu uso. O GNU/Linux licenciado de acordo com os termos da
GNU.
Acessa sem problemas discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga,
Atari, Mac, etc.
Utiliza permisses de acesso a arquivos, diretrios e programas em execuo na memria RAM.
NO EXISTEM VIRUS NO LINUX! Em 9 anos de existncia, nunca foi registrado NENHUM tipo de
vrus neste sistema. Isto tudo devido a grande segurana oferecida pelas permisses de acesso do sistema
que funcionam inclusive durante a execuo de programas.
Rede TCP/IP mais rpida que no Windows e tem sua pilha constantemente melhorada. O GNU/Linux
tem suporte nativo a redes TCP/IP e no depende de uma camada intermediria como o Winsock. Em
acessos via modem a Internet, a velocidade de transmisso 10% maior.
Jogadores do Quake ou qualquer outro tipo de jogo via Internet preferem o GNU/Linux por causa da
maior velocidade do jogo em rede. fcil rodar um servidor Quake em seu computador e assim jogar contra
vrios adversrios via Internet.
Roda aplicaes DOS atravs do DOSEMU. Para se ter uma idia, possvel dar o boot em um sistema
DOS qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema.
Roda aplicaes Windows atravs do WINE.
Suporte a dispositivos infravermelho.
Suporte a rede via rdio amador.
Suporte a dispositivos Plug-and-Play.
Suporte a dispositivos USB.
Vrios tipos de firewalls de alta qualidade e com grande poder de segurana de graa.
Roteamento esttico e dinmico de pacotes.
Ponte entre redes.
Proxy tradicional e transparente.
Possui recursos para atender a mais de um endereo IP na mesma placa de rede, sendo muito til para
situaes de manuteno em servidores de redes ou para a emulao de "mais computadores" virtualmente.
Os servidores WEB e FTP podem estar localizados no mesmo computador, mas o usurio que se
conecta tem a impresso que a rede possui servidores diferentes.
O sistema de arquivos usado pelo GNU/Linux (Ext2) organiza os arquivos de forma inteligente evitando
a fragmentao e fazendo-o um poderoso sistema para aplicaes multi-usurias exigentes e gravaes
intensivas.
Permite a montagem de um servidor Web, E-mail, News, etc, com um baixo custo e alta performance. O
melhor servidor Web do mercado, o Apache, distribudo gratuitamente junto com o Linux. O mesmo
acontece com o Sendmail.
Por ser um sistema operacional de cdigo aberto, voc pode ver o que o cdigo fonte (o que foi digitado

Guia Foca GNU/Linux

22

pelo programador) faz e adapta-lo as suas necessidades ou de sua empresa. Esta caracterstica uma
segurana a mais para empresas srias e outros que no querem ter seus dados roubados (voc no sabe o
que um sistema sem cdigo fonte faz na realidade enquanto esta processando o programa).
Suporte a diversos dispositivos e perifricos disponveis no mercado, tanto os novos como obsoletos.
Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc).
Consultores tcnicos especializados no suporte ao sistema espalhados por todo o mundo.
Entre muitas outras caractersticas que voc descobrir durante o uso do sistema.

TODOS OS TENS DESCRITOS ACIMA SO VERDADEIROS E TESTADOS PARA QUE SE TIVESSE


PLENA CERTEZA DE SEU FUNCIONAMENTO.

1.5 - Distribuies do Linux


S o Kernel GNU/Linux no suficiente para se ter uma sistema funcional, mas o principal. Existem grupos
de pessoas, empresas e organizaes que decidiram "distribuir" o Linux junto com outros programas essenciais
(como por exemplo, editores grficos, planilhas, bancos de dados, ambientes de programao, formatao de
documentos, firewalls, etc).
Este o significado bsico de distribuio. Cada distribuio tem sua caracterstica prpria, como o sistema de
instalao, o objetivo, a localizao de programas, nomes de arquivos de configurao, etc. A escolha de uma
distribuio pessoal e depende das necessidades de cada um.
Algumas distribuies bastante conhecidas so: Slackware, Debian, Red Hat, Conectiva, Suse, Monkey, todas
usando o SO Linux como Kernel principal (a Debian uma distribuio independente de Kernel e pode ser
executada sob outros Kernels, como o GNU hurd).
A escolha de sua distribuio deve ser feita com muita ateno, no adianta muita coisa perguntar em canais de
IRC sobre qual a melhor distribuio, ser levado pelas propagandas, pelo vizinho, etc. O melhor caminho para
a escolha da distribuio, acredito eu, seria perguntar as caractersticas de cada uma e porque essa pessoa gosta
dela ao invs de perguntar qual a melhor, porque quem lhe responder isto estar usando uma distribuio que
se encaixa de acordo com suas necessidade e esta mesma distribuio pode no ser a melhor para lhe atender.
Segue abaixo as caractersticas de algumas distribuies seguidas do site principal e endereo ftp:
Debian
http://www.debian.org - Distribuio desenvolvida e atualizada atravs do esforo de voluntrios espalhados ao
redor do mundo, seguindo o estilo de desenvolvimento GNU/Linux. Por este motivo, foi adotada como a
distribuio oficial do projeto GNU. Possui suporte a lngua Portuguesa, a nica que tem suporte a 10
arquiteturas diferentes (i386, Alpha, Sparc, PowerPc, Macintosh, Arm, etc.) e aproximadamente 15 subarquiteturas. A instalao da distribuio pode ser feita tanto atravs de Disquetes, CD-ROM, Tftp, Ftp, NFS ou
atravs da combinao de vrios destes em cada etapa de instalao.
Acompanha mais de 8710 programas distribudos em forma de pacotes divididos em 4 CDs binrios e 2 de
cdigo fonte (ocupou 2.1 GB em meu disco rgido), cada um destes programas mantido e testado pela pessoa
responsvel por seu empacotamento. Os pacotes so divididos em diretrios de acordo com sua categoria e
gerenciados atravs de um avanado sistema de gerenciamento de pacotes (o dpkg) facilitando a instalao e
atualizao de pacotes. Possui tanto ferramentas para administrao de redes e servidores quanto para desktops,
estaes multimdia, jogos, desenvolvimento, web, etc.
A atualizao da distribuio ou de pacotes individuais pode ser feita facilmente atravs de 2 comandos, no
requerendo adquirir um novo CD para usar a ltima verso da distribuio. a nica distribuio no comercial
onde todos podem contribuir com seu conhecimento para o seu desenvolvimento. Para gerenciar os voluntrios,
conta com centenas de listas de discusso envolvendo determinados desenvolvedores das mais diversas partes
do mundo.
So feitos extensivos testes antes do lanamento de cada verso para atingir um alto grau de confiabilidade. As
falhas encontradas nos pacotes podem ser relatadas atravs de um sistema de tratamento de falhas que
encaminha a falha encontrada diretamente ao responsvel para avaliao e correo. Qualquer um pode receber
a lista de falhas ou sugestes sobre a distribuio cadastrando-se em uma das lista de discusso que tratam
especificamente da soluo de falhas encontradas na distribuio (disponvel na pgina principal da
distribuio).
Os pacotes podem ser instalados atravs de tarefas contendo selees de pacotes de acordo com a utilizao do
computador (servidor Web, desenvolvimento, Tex, jogos, desktop, etc.), Perfis contendo selees de pacotes de
acordo com o tipo de usurio (programador, operador, etc.), ou atravs de uma seleo individual de pacotes,
garantindo que somente os pacotes selecionados sero instalados fazendo uma instalao enxuta. O suporte ao
usurio e desenvolvimento da distribuio so feitos atravs de listas de discusses e canais IRC. Existe uma
Guia Foca GNU/Linux

23

lista de consultores habilitados a dar suporte e assistncia a sistemas Debian ao redor do mundo na rea
consultores do site principal da distribuio.
ftp://ftp.debian.org - Endereo Ftp para download.
Conectiva
http://www.conectiva.com.br - So necessrias caractersticas desta distribuio.
ftp://ftp.conectiva.com.br - Ftp da distribuio Conectiva. Conectiva.
Libranet
http://www.libranet.com - Distribuio baseada na Debian GNU/Linux oferecendo as principais caractersticas
da distribuio Debian. So empacotados os aplicativos mais utilizados da Distribuio Debian em um nico
CD e voc pode ter um desktop completo sendo executado em pouco tempo.
As atualizaes de softwares so feitas gratuitamente. O sistema de gerenciamento de pacotes Debian permite o
gerenciamento de atualizaes automaticamente. Ftp da distribuio.
Slackware
http://www.slackware.com - So necessrias caractersticas desta distribuio.
ftp://ftp.slackware.com - Ftp da distribuio Slackware.
SuSE
http://www.suse.com - Distribuio comercial Alem com a coordenao sendo feita atravs dos processos
administrativos dos desenvolvedores e de seu brao norte-americano. O foco da Suse o usurio com
conhecimento tcnico no Linux (programador, administrador de rede, etc.) e no o usurio iniciante no Linux
(at a verso 6.2). A distribuio possui suporte ao idioma e teclado Portugus, mas no inclui (at a verso 6.2)
a documentao em Portugus. Eis a lista de idiomas suportados pela distribuio: English, Deutsch, Franais,
Italiano, Espaol, Portugus, Portugus Brasileiro, Polski, Cesky, Romanian, Slovensky, Indonsia. Possui
suporte as arquiteturas Intel x86 e Alpha. Sua instalao pode ser feita via CD-ROM ou CD-DVD ( a primeira
distribuio com instalao atravs de DVD). Uma mdia de 1500 programas acompanham a verso 6.3
distribudos em 6 CD-ROMs. O sistema de gerenciamento de pacotes o RPM padronizado. A seleo de
pacotes durante a instalao pode ser feita atravs da seleo do perfil de mquina (developer, estao kde,
grficos, estao gnome, servidor de rede, etc.) ou atravs da seleo individual de pacotes.
A atualizao da distribuio pode ser feita atravs do CD-ROM de uma nova verso ou baixando pacotes de
ftp://ftp.suse.com. Usurios registrados ganham direito a suporte de instalao via e-mail. A base de dados de
suporte tambm excelente e est disponvel na web para qualquer usurio independente de registro.
ftp://ftp.suse.com - Ftp da distribuio SuSE.
Red Hat
http://www.redhat.com - So necessrias caractersticas desta distribuio.
ftp://ftp.redhat.com - Ftp da distribuio Red Hat.
Para contato com os grupos de usurios que utilizam estas distribuies, veja a Listas de discusso, Seo
30.12.2.

1.6 - Software livre


Softwares Livres so programas que possuem o cdigo fonte includo (o cdigo fonte o que o programador
digitou para fazer o programa) e voc pode modificar ou distribui-los livremente. Existem algumas licenas que
permitem isso, a mais comum a General Public Licence (ou GPL).
Os softwares livres muitas vezes so chamados de programas de cdigo aberto (ou OSS). Muito se acredita no
compartilhamento do conhecimento e tendo liberdade de cooperar uns com outros, isto importante para o
aprendizado de como as coisas funcionam e novas tcnicas de construo. Existe uma longa teoria desde 1950
valorizando isto, muitas vezes pessoas assim so chamadas de "Hackers ticos".
Outros procuram aprender mais sobre o funcionamento do computador e seus dispositivos (perifricos) e muitas
pessoas esto procurando por meios de evitar o preo absurdo de softwares comerciais atravs de programas
livres que possuem qualidade igual ou superior, devido a cooperao em seu desenvolvimento.
Voc pode modificar o cdigo fonte de um software livre a fim de melhora-lo ou acrescentar mais recursos e o
autor do programa pode ser contactado sobre a alterao e os benefcios que sua modificao fez no programa, e
esta poder ser includa no programa principal. Deste modo, milhares de pessoas que usam o programa se
beneficiaro de sua contribuio.

1.7 - Processamento de Dados


Guia Foca GNU/Linux

24

Processamento de Dados o envio de dados ao computador que sero processados e tero um resultado de sada
til.
Veja tambm Dispositivos de Entrada e Sada, Seo 1.14.

1.8 - O computador
uma mquina eletrnica que processa e armazena os dados e pode executar diversos programas para realizar
uma srie de tarefas e assim atender a necessidade do seu utilizador. O computador no uma mquina
inteligente, ele apenas executa as instrues dos programas que foram escritos pelo programador.

1.9 - Conhecendo o computador


Esta seo explica para que serve cada boto do painel do computador e monitor de vdeo. Se voc j sabe para
que cada um serve, recomendo pular esta parte, o BE-A-B.:
Todo computador possui funes que so usadas em outros tipos e modelos. Voc pode ter um modelo de
computador e um amigo seu outro tipo e, mesmo tendo aparncia diferente, tero as mesmas funes.

1.9.1 - Tipos de gabinete


Quanto ao tipo, o gabinete pode ser Desktop, Mini-torre e Torre.

Desktop - usado na posio horizontal (como o vdeo-cassete). Sua caracterstica que ocupa pouco
espao em uma mesa, pois pode ser colocado sob o monitor. A desvantagem que normalmente possui
pouco espao para a colocao de novas placas e perifricos. Outra desvantagem a dificuldade na
manuteno deste tipo de equipamento (hardware).

Mini-Torre - usado na posio vertical (torre). o modelo mais usado. Sua caracterstica o espao
interno para expanso e manipulao de perifricos. A desvantagem o espao ocupado em sua mesa.

Torre - Possui as mesmas caractersticas do Mini-torre, mas tem uma altura maior e mais espao para
colocao de novos perifricos. Muito usado em servidores de rede e placas que requerem uma melhor
refrigerao.

1.9.2 - Painel frontal


O painel frontal do computador tem os botes que usamos para ligar, desligar, e acompanhar o funcionamento
do computador. Abaixo o significado de cada um:

Boto POWER - Liga/Desliga o computador.


Boto TURBO - Se ligado, coloca a placa-me em operao na velocidade mxima (o padro).
Desligado, faz o computador funcionar mais lentamente (depende de cada placa-me). Deixe
sempre o TURBO ligado para seu computador trabalhar na velocidade mxima de processamento.

Boto RESET - Reinicia o computador. Quando o computador reiniciado, uma nova partida
feita ( como se ns ligssemos novamente o computador). Este boto um dos mais usados por
usurios Windows dentre os botes localizados no painel do microcomputador. No GNU/Linux
raramente usado (com menos freqencia que a tecla SCROLL LOCK). No GNU/Linux
recomendado se pressionar as teclas <CTRL> <ALT> <DEL> para reiniciar o computador e o
boto RESET somente em ltimo caso, pois o <CTRL> <ALT> <DEL> avisa ao Linux que o
usurio pediu para o sistema ser reiniciado assim ele poder salvar os arquivos, fechar programas e
tomar outras providncias antes de resetar o computador.

KEYLOCK - Permite ligar/desligar o teclado. acionado por uma chave e somente na posio
"cadeado aberto" permite a pessoa usar o teclado (usar o computador). Alguns computadores no
possuem KEYLOCK.

LED POWER - Led (normalmente verde) no painel do computador que quando aceso, indica que o
computador est ligado. O led um diodo emissor de luz (light emission diode) que emite luz fria.

LED TURBO - Led (normalmente amarelo) no painel do computador. Quando est aceso, indica que a
chave turbo est ligada e o computador funcionando a toda velocidade. Raramente as placas-me Pentium e
acima usam a chave turbo. Mesmo que exista no gabinete do micro, encontra-se desligada.

LED HDD - Led (normalmente vermelho) no painel do computador. Acende quando o disco rgido (ou
discos) do computador est sendo usado. Tambm acende quando uma unidade de CD-ROM est conectada
na placa-me e for usado.

1.9.3 - Monitor de vdeo


Guia Foca GNU/Linux

25

O monitor de vdeo se divide em dois tipos:

Monocromtico - Mostra tons de cinza

Policromtico - A conhecida tela colorida


Quando ao padro do monitor, existem diversos:

CGA (Color Graphics Adapter) - Capacidade de mostrar 4 cores simultneas em modo grfico. Uma
das primeiras usadas em computadores PCs, com baixa qualidade de imagem, poucos programas
funcionavam em telas CGA, quase todos em modo texto. Ficou muito conhecida como "tela verde" embora
existem modelos CGA preto e branco.

Hrcules - Semelhante ao CGA. Pode mostrar 2 cores simultneas em modo grfico. A diferena que
apresenta uma melhor qualidade para a exibio de grficos mas por outro lado, uma grande variedade de
programas para monitores CGA no funcionam com monitores Hrcules por causa de seu modo de vdeo.
Tambm conhecido por sua imagem amarela. Dependendo da placa de vdeo, voc pode configurar um
monitor Hrcules monocromtico para trabalhar como CGA.

EGA (Enhanced Graphics Adapter) - Capacidade de mostrar 16 cores simultneas em modo grfico.
Razovel melhora da qualidade grfica, mais programas rodavam neste tipo de tela. Ficou mais conhecida
aps o lanamento dos computadores 286, mas no Brasil ficou pouco conhecida pois logo em seguida foi
lanada o padro VGA.

VGA (Video Graphics Array) - Capacidade de mostrar 256 cores simultneas. Boa qualidade grfica,
este modelo se mostrava capaz de rodar tanto programas texto como grficos com tima qualidade de
imagem. Se tornou o padro mnimo para rodar programas em modo grfico.

1.10 - Placa-Me
a placa principal do sistema onde esto localizados o processador, memria RAM, memria cache, BIOS,
CMOS, RTC, etc. A placa-me possui encaixes onde so inseridas placas de extenso (para aumentar as funes
do computador). Estes encaixes so chamados de "SLOTS".

1.10.1 - Alguns componentes da placa-me


Abaixo a descrio de alguns tipos de componentes eletrnicos que esto presentes na placa-me. No se
preocupe se no entender o que eles significam agora:

RAM - Memria de Acesso Aleatrio (Randomic Access Memory). uma memria de armazenamento
temporrio dos programas e depende de uma fonte de energia para o armazenamento dos programas. uma
memria eletrnica muito rpida assim os programas de computador so executados nesta memria. Seu
tamanho medido em Kilobytes ou Megabytes. Os chips de memria RAM podem ser independentes
(usando circuitos integrados encaixados em soquetes na placa-me) ou agrupados em placas de 30 pinos, 72
pinos e 168 pinos. Quanto maior o tamanho da memria, mais espao o programa ter ao ser executado. O
tamanho de memria RAM pedido por cada programa varia, o GNU/Linux precisa de no mnimo 2 MB de
memria RAM para ser executado pelo processador.

PROCESSADOR - a parte do computador responsvel pelo processamento das instrues


matemticas/lgicas e programas carregados na memria RAM.

CO-PROCESSADOR - Ajuda o Processador principal a processar as instrues matemticas.


normalmente embutido no processador principal em computadores a partir do 486 DX2-66.

CACHE - Memria de armazenamento auxiliar do processador. Possui alta velocidade de


funcionamento, normalmente a mesma que o processador. Serve para aumentar o desempenho de
processamento. A memria Cache pode ser embutida na placa-me ou encaixada externamente atravs de
mdulos L2.

BIOS - a memria ROM que contm as instrues bsicas para a inicializao do computador,
reconhecimento e ativao dos perifricos conectados placa-me. As BIOS mais modernas (a partir do
286) tambm trazem um programa que usado para configurar o computador modificando os valores
localizados na CMOS. As placas controladoras SCSI possuem sua prpria BIOS que identificam
automaticamente os perifricos conectados a ela. Os seguintes tipos de chips podem ser usados para gravar
a BIOS:
ROM - Memria somente para leitura (Read Only Memory). Somente pode ser lida. programada de
fbrica atravs de programao eltrica ou qumica.
PROM - Memria somente para leitura programvel (Programable Read Only Memory) idntica a
ROM mas que pode ser programada apenas uma vez por mquinas "Programadoras de PROM".
tambm chamada de MASK ROM.
EPROM - Memria semelhante a PROM, mas seu contedo pode ser apagado atravs de raios ultraGuia Foca GNU/Linux

26

violeta.
EEPROM - Memria semelhante a PROM, mas seu contedo pode ser apagado e regravado. Tambm
chamada de Flash.

CMOS - uma memria temporria alimentada por uma bateria onde so lidas/armazenadas as
configuraes do computador feitas pelo programa residente na BIOS.

1.11 - Memria do computador


A memria a parte do computador que permite o armazenamento de dados. A memria dividida em dois
tipos: Principal e auxiliar. Normalmente quando algum fala em "memria de computador" est se referindo a
memria "principal". Veja abaixo as descries de memria principal e auxiliar.

1.11.1 - Memria principal


um tipo de memria eletrnica que depende de uma fonte de energia para manter os dados armazenados e
perde os dados quando a fonte de energia desligada. A memria RAM do computador (Randomic Access
Memory - Memria de acesso aleatrio) o principal exemplo de memria de armazenamento principal.
Os dados so armazenados em circuitos integrados (chips) e enquanto voc est usando seu computador, a RAM
armazena e executa seus programas. Os programas so executados na memria RAM porque a memria
eletrnica muito rpida.
Se desligarmos o computador ou ocorrer uma queda de energia, voc perder os programas que estiverem em
execuo ou o trabalho que estiver fazendo. Por esse motivo necessrio o uso de uma memria auxiliar (veja
Memria auxiliar, Seo 1.11.2).

1.11.2 - Memria auxiliar


So dispositivos que no dependem de uma fonte de energia para manter os dados armazenados, os dados no
so perdidos quando a fonte de energia desligada. As memrias auxiliares so muito mais lentas que as
memrias principais porque utilizam mecanismos mecnicos e eltricos (motores e eletroms) para funcionar e
fazer a leitura/gravao dos dados.
Um exemplo de dispositivos de armazenamento auxiliar so os disquetes, discos rgidos, unidades de fita, Zip
Drives, CD-ROM, etc. A memria auxiliar resolve o problema da perda de dados causado pela memria
principal quando o computador desligado. Desta forma podemos ler nossos arquivos e programas da memria
auxiliar e copia-los para a memria principal (memria RAM) para que possam ser novamente usados. Um
exemplo simples de quando estiver editando um texto e precisar salva-lo, o que voc faz simplesmente
salvar os dados da memria RAM que esto sendo editados para o disco rgido. Desta forma voc estar
guardando seu documento na memria auxiliar. Este tipo de memria mais lento que a memria principal,
por este motivo que os programas somente so carregados e executados na memria principal.

1.12 - Discos
Os discos so memrias de armazenamento auxiliares. Entre os vrios tipos de discos existentes, posso citar os
flexveis, rgidos e CDs. Veja as explicaes sobre cada um deles abaixo.

1.12.1 - Discos flexveis


So discos usados para armazenar e transportar pequenas quantidades de dados. Este tipo de disco
normalmente encontrado no tamanho 3 (1.44MB) polegadas e 5 (360Kb ou 1.2MB). Hoje os discos de 3
so os mais utilizados por terem uma melhor proteo por causa de sua capa plstica rgida, maior
capacidade e o menor tamanho, o que facilita seu transporte. Os disquetes so inseridos em um compartimento
chamado de "unidade de disquetes" ou "drive" que faz a leitura/gravao do disquete. Sua caracterstica a
baixa capacidade de armazenamento e baixa velocidade no acesso aos dados, mas podem ser usados para
transportar os dados de um computador a outro com grande facilidade. Os disquetes de computador comuns so
discos flexveis.

1.12.2 - Disco rgido


um disco localizado dentro do computador. fabricado com discos de metal recobertos por material
magntico, onde os dados so gravados atravs de cabeas, e revestido externamente por uma proteo metlica
que preso ao gabinete do computador por parafusos. Tambm chamado de HD (hard disk) ou Winchester.
nele que normalmente gravamos e executamos nossos programas mais usados. A caracterstica deste tipo de
disco a alta capacidade de armazenamento de dados e alta velocidade no acesso aos dados.
Guia Foca GNU/Linux

27

1.12.3 - CD
um tipo de disco que permite o armazenamento de dados atravs de um compact disc e os dados so lidos
atravs de uma lente tica. A unidade de CD localizada no gabinete do computador e pode ler CDs de msicas,
arquivos, interativos, etc. Existem diversos tipos de CDs no mercado, entre eles:

CD-R - CD gravvel, pode ser gravado apenas uma vez. Possui sua capacidade de armazenamento entre
600MB e 740MB dependendo do formato de gravao usado. Usa um formato lido por todas as unidades de
CD-ROM disponveis no mercado.

CD-RW - CD regravvel, pode ser gravado vrias vezes, ter seus arquivos apagados, etc. Seu uso
semelhante ao de um disquete de alta capacidade. Possui capacidade de armazenamento de normalmente
640MB mas isto depende do fabricante. Usa um formato que lido apenas por unidades leitoras e
gravadoras multiseo.

DVD-ROM - CD ROM de alta capacidade de armazenamento. Pode armazenar mais de 17GB de


arquivos ou programas. um tipo de CD muito novo no mercado e ainda em desenvolvimento. lido
somente por unidades prprias para este tipo de disco.

1.13 - Cuidados bsicos com o computador e disquetes


Abaixo uma lista de cuidados bsicos para garantir uma melhor conservao e funcionamento de seu
computador e disquetes.

No deixe seu computador em locais expostos a umidade ou sol. O mesmo se aplica a discos
magnticos, como os disquetes.

Limpe o gabinete e o monitor com um pano levemente umedecido em gua com sabo neutro ou
soluo de limpeza apropriada para micros. No use lcool, querosene, acetona ou qualquer outro tipo de
produto abrasivo. O uso de um destes produtos pode estragar o gabinete de seu computador e se um destes
produtos atingir a parte interna pode causar problemas nas placas ou at um incndio!

No retire o pino central da tomada do computador, ele no veio sobrando e tem utilidade. Este pino
ligado a carcaa do computador (chassis) e deve ser ligado ao terra de sua rede eltrica. As descargas
eltricas vindas da fonte e componentes do micro so feitas no chassis e se este pino for retirado voc
poder tomar choques ao tocar em alguma parte metlica do micro e queimar componentes sensveis como
o disco rgido, placa-me, etc. Se estiver em dvida consulte um eletricista.

No instale seu computador muito perto de campos magnticos como televisores, aparelhos de som,
motores, etc. Estes aparelhos geram rudos eltricos e/ou magnticos que podem prejudicar o bom
funcionamento de seu micro. OBS: As caixas de som de kits multimdia possuem os ms revestidos de
metais em seus auto-falantes para no causar nenhuma interferncia ao computador.

No coloque copos na bandeja da unidade de CD-ROM.

No coloque objetos dentro da unidade de disquetes.

Antes de desligar seu computador, utilize o comando "shutdown -h now" para finalizar os programas,
salvar os dados e desmontar os sistemas de arquivos em seu sistema GNU/Linux. Para detalhes veja
Desligando o computador, Seo 1.16.

1.14 - Dispositivos de entrada e sada

Entrada - Permite a comunicao do usurio com o computador. So dispositivos que enviam dados ao
computador para processamento. Exemplos: teclado, mouse, caneta tica, scanner. O dispositivo de entrada
padro (stdin) em sistemas GNU/Linux o teclado.

Sada - Permite a comunicao do computador com o usurio. So dispositivos que permitem o usurio
visualizar o resultado do processamento enviado ao computador. Exemplos: Monitor, Impressora, Plotter. O
dispositivo de sada padro (stdout) em sistemas GNU/Linux o monitor.

1.15 - Ligando o computador


Para ligar o computador pressione o boto POWER ou ON localizado no painel frontal do micro. Imediatamente
entrar em funcionamento um programa residente na memria ROM (Read Only Memory - memria somente
para leitura) da placa-me que far os testes iniciais para verificar se os principais dispositivos esto
funcionando em seu computador (memria RAM, discos, processador, portas de impressora, memria cache,
etc). Quando a ROM termina os testes bsicos, ele inicia a procura do setor de boot nos discos do computador
que ser carregado na memria RAM do computador. Aps carregar o setor de boot, o sistema operacional ser
iniciado (veja Sistema Operacional, Seo 1.3). O setor de boot contm a poro principal usada para iniciar o
sistema operacional.
Guia Foca GNU/Linux

28

No GNU/Linux, o setor de boot normalmente criado por um gerenciador de inicializao (um programa que
permite escolher qual sistema operacional ser iniciado). Deste modo podemos usar mais de um sistema
operacional no mesmo computador (como o DOS e Linux). O gerenciador de inicializao mais usado em
sistemas GNU/Linux na plataforma Intel X86 o LILO.
Caso o ROM no encontre o sistema operacional em nenhum dos discos, ele pedir que seja inserido um
disquete contendo o Sistema Operacional para partida.

1.16 - Desligando o computador


Para desligar o computador primeiro digite (como root): "shutdown -h now", "halt" ou "poweroff". O
GNU/Linux finalizar os programas e gravar os dados em seu disco rgido, quando for mostrada a mensagem
"power down", pressione o boto POWER em seu gabinete para desligar a alimentao de energia do
computador. NUNCA desligue diretamente o computador sem usar o comando shutdown, halt ou poweroff, pois
podem ocorrer perda de dados ou falhas no sistema de arquivos de seu disco rgido devido a programas abertos
e dados ainda no gravados no disco. Salve seus trabalhos para no correr o risco de perde-los durante o
desligamento do computador.

1.17 - Reiniciando o computador


Reiniciar quer dizer iniciar novamente o sistema. No recomendvel desligar e ligar constantemente o
computador pelo boto ON/OFF, por este motivo existe recursos para reiniciar o sistema sem desligar o
computador. No GNU/Linux voc pode usar o comando reboot, shutdown -r now e tambm pressionar
simultaneamente as teclas <CTRL> <ALT> <DEL> para reiniciar de uma forma segura.
Observaes:

Salve seus trabalhos para no correr o risco de perde-los durante a reinicializao do sistema. O boto
reset do painel frontal do computador tambm reinicia o computador, mas de uma maneira mais forte pois
est ligado diretamente aos circuitos da placa-me e o sistema ser reiniciado imediatamente, no tendo
nenhuma chance de finalizar corretamente os programas, gravar os dados da memria no disco e desmontar
os sistemas de arquivos. O uso indevido da tecla reset pode causar corrompimentos em seus arquivos e
perdas.

Prefira o mtodo de reinicializao explicado acima e use o boto reset somente em ltimo caso.

Guia Foca GNU/Linux

29

Captulo 2 - Explicaes Bsicas


Este captulo traz explicaes sobre os principais componentes existentes no computador e do sistema
operacional.

2.1 - Hardware e Software

Hardware - Significa parte fsica do computador (disquete, impressoras, monitores, placa-me, placa de
fax, discos rgidos, etc).

Software - So os programas usados no computador (sistema operacional, processador de textos,


planilha, banco de dados, scripts, comandos, etc).

2.2 - Arquivos
onde gravamos nossos dados. Um arquivo pode conter um texto feito por ns, uma msica, programa,
planilha, etc. Cada arquivo deve ser identificado por um nome, assim ele pode ser encontrado facilmente quando
desejar usa-lo. Se estiver fazendo um trabalho de histria, nada melhor que salva-lo com o nome histria. Um
arquivo pode ser binrio ou texto (para detalhes veja Arquivo texto e binrio, Seo 2.2.3).
O GNU/Linux Case Sensitive, ou seja, ele diferencia letras maisculas e minsculas nos arquivos. O arquivo
histria completamente diferente de Histria. Esta regra tambm vlida para os comandos e diretrios.
Prefira, sempre que possvel, usar letras minsculas para identificar seus arquivos, pois quase todos os
comandos do sistema esto em minsculas.
Um arquivo oculto no GNU/Linux identificado por um "." no incio do nome (por exemplo, .bashrc).
Arquivos ocultos no aparecem em listagens normais de diretrios e deve ser usado o comando ls -a para
tambm listar arquivos ocultos.

2.2.1 - Extenso de arquivos


A extenso serve para identificar o tipo do arquivo. A extenso so as letras aps um "." no nome de um arquivo,
explicando melhor:

relatorio.txt - O .txt indica que o contedo um arquivo texto.

script.sh - Arquivo de Script (interpretado por /bin/sh).

system.log - Registro de algum programa no sistema.

arquivo.gz - Arquivo compactado pelo utilitrio gzip.

index.html - Pgina de Internet (formato Hypertexto).


A extenso de um arquivo tambm ajuda a saber o que precisamos fazer para abri-lo. Por exemplo, o arquivo
relatorio.txt um texto simples e podemos ver seu contedo atravs do comando cat, Seo 9.1, j o arquivo
index.html contm uma pgina de Internet e precisaremos de um navegador para poder visualiza-lo (como o
lynx, Mosaic ou o Netscape). A extenso (na maioria dos casos) no requerida pelo sistema operacional
GNU/Linux, mas conveniente o seu uso para determinarmos facilmente o tipo de arquivo e que programa
precisaremos usar para abri-lo.

2.2.2 - Tamanho de arquivos


A unidade de medida padro nos computadores o bit. A um conjunto de 8 bits ns chamamos de byte. Cada
arquivo/diretrio possui um tamanho, que indica o espao que ele ocupa no disco e isto medido em bytes. Um
byte representa um caractere. Assim, se voc criar um arquivo vazio e escrever o nome GNU/Linux e salvar o
arquivo, este ter o tamanho de 9 bytes. Espaos em branco e novas linhas tambm ocupam bytes. Alm do byte
existem as medidas Kbytes, Mbytes, Gbytes. Esta medidas servem para facilitar a leitura em arquivos de grande
tamanho. Um arquivo de 1K a mesma coisa de um arquivo de 1024 bytes (K vem de Kilo que igual a 1000 1Kilo igual a 1000 gramas certo?). Da mesma forma 1Mb (ou 1M) igual a um arquivo de 1024K ou
1024000 bytes (M vem de milho que igual a 1000000, fcil no?). 1Gb (ou 1G) igual a um arquivo de
1024Mb ou 1024000Kb ou 1024000000 bytes (1 Gb igual a 1.024.000.000 bytes.). Deu pra notar que mais
fcil escrever e entender como 1Gb do que 1024000000 bytes.

2.2.3 - Arquivo texto e binrio


Quanto ao tipo, um arquivo pode ser de texto ou binrio:

Texto - Seu contedo compreendido pelas pessoas. Um arquivo texto pode ser uma carta, um script,
um programa de computador escrito pelo programador, arquivos de configurao, etc.
Guia Foca GNU/Linux

30

Binrio - Seu contedo somente pode ser entendido por computadores. Contm caracteres
incompreensveis para pessoas normais. Um arquivo binrio gerado atravs de um arquivo de programa
(formato texto) atravs de um processo chamado de compilao. Compilao basicamente a converso de
um programa em linguagem humana para a linguagem de mquina.

2.3 - Diretrio
Diretrio o local utilizado para armazenar conjuntos de arquivos para melhor organizao e localizao. O
diretrio, como o arquivo, tambm "case sensitive" (diretrio /teste completamente diferente do diretrio
/Teste). No podem existir dois arquivos com o mesmo nome em um diretrio, ou um sub-diretrio com um
mesmo nome de um arquivo em um mesmo diretrio. Um diretrio nos sistemas Linux/UNIX especificado
por uma "/" e no uma "\" como feito no DOS. Para detalhes sobre como criar um diretrio, veja o comando
mkdir (mkdir, Seo 8.4).

2.3.1 - Diretrio Raz


Este o diretrio principal do sistema. Dentro dele esto todos os diretrios do sistema. O diretrio raz
representado por uma "/", assim se voc digitar o comando cd / voc estar acessando este diretrio. Nele esto
localizados outros diretrios como o /bin, /sbin, /usr, /usr/local, /mnt, /tmp, /var, /home, etc. Estes so chamados
de sub-diretrios pois esto dentro do diretrio "/". A estrutura de diretrios e sub-diretrios pode ser
identificada da seguinte maneira:

/bin

/sbin

/usr

/usr/local

/mnt

/tmp

/var

/home
A estrutura de diretrios tambm chamada de rvore de diretrios porque parecida com uma rvore de
cabea para baixo. Cada diretrio do sistema tem seus respectivos arquivos que so armazenados conforme
regras definidas pela FHS (FileSystem Hierarchy Standard - Hierarquia Padro do Sistema de Arquivos) verso
2.0, definindo que tipo de arquivo deve ser armazenado em cada diretrio.

2.3.2 - Diretrio padro


o diretrio em que nos encontramos no momento. Tambm chamado de diretrio atual. Voc pode digitar
pwd (veja pwd, Seo 8.3) para verificar qual seu diretrio padro. O diretrio padro tambm identificado
por um "." (ponto). O comando comando ls . pode ser usado para listar os arquivos do diretrio atual ( claro
que isto desnecessrio porque se no digitar nenhum diretrio, o comando ls listar o contedo do diretrio
atual).

2.3.3 - Diretrio home


Tambm chamado de diretrio de usurio. Em sistemas GNU/Linux cada usurio (inclusive o root) possui seu
prprio diretrio onde poder armazenar seus programas e arquivos pessoais. Este diretrio est localizado em
/home/[login], neste caso se o seu login for "joao" o seu diretrio home ser /home/joao. O diretrio home
tambm identificado por um ~(til), voc pode digitar tanto o comando ls /home/joao como ls ~ para listar os
arquivos de seu diretrio home.
O diretrio home do usurio root (na maioria das distribuies GNU/Linux) est localizado em /root.
Dependendo de sua configurao e do nmero de usurios em seu sistema, o diretrio de usurio pode ter a
seguinte forma: /home/[1letra_do_nome]/[login], neste caso se o seu login for "joao" o seu diretrio home ser
/home/j/joao.

2.3.4 - Diretrio superior


O diretrio superior (Upper Directory) identificado por .. (2 pontos). Caso estiver no diretrio /usr/local e
quiser listar os arquivos do diretrio /usr voc pode digitar, ls .. . Este recurso tambm pode ser usado para
copiar, mover arquivos/diretrios, etc.
Guia Foca GNU/Linux

31

2.3.5 - Diretrio anterior


O diretrio anterior identificado por "-". til para retornar ao ltimo diretrio usado. Se estive no diretrio
/usr/local e digitar cd /lib, voc pode retornar facilmente para o diretrio /usr/local usando cd -.

2.3.6 - Caminho na estrutura de diretrios


So os diretrios que teremos que percorrer at chegar no arquivo ou diretrio que que procuramos. Se desejar
ver o arquivo /usr/doc/copyright/GPL voc tem duas opes:

Mudar o diretrio padro para /usr/doc/copyright com o comando cd /usr/doc/copyright e usar o


comando cat GPL

Usar o comando "cat" especificando o caminho completo na estrutura de diretrios e o nome de


arquivo: cat /usr/doc/copyright/GPL.
As duas solues acima permitem que voc veja o arquivo GPL. A diferena entre as duas a seguinte:
Na primeira, voc muda o diretrio padro para /usr/doc/copyright (confira digitando pwd) e depois o comando
cat GPL. Voc pode ver os arquivos de /usr/doc/copyright com o comando "ls". /usr/doc/copyright o caminho
de diretrio que devemos percorrer para chegar at o arquivo GPL.
Na segunda, digitado o caminho completo para o "cat" localizar o arquivo GPL: cat /usr/doc/copyright/GPL.
Neste caso, voc continuar no diretrio padro (confira digitando pwd). Digitando ls, os arquivos do diretrio
atual sero listados.
O caminho de diretrios necessrio para dizer ao sistema operacional onde encontrar um arquivo na "rvore"
de diretrios.

2.3.7 - Exemplo de diretrio


Um exemplo de diretrio o seu diretrio de usurio, todos seus arquivos essenciais devem ser colocadas neste
diretrio. Um diretrio pode conter outro diretrio, isto til quando temos muitos arquivos e queremos
melhorar sua organizao. Abaixo um exemplo de uma empresa que precisa controlar os arquivos de Pedidos
que emite para as fbricas:
/pub/vendas - diretrio principal de vendas
/pub/vendas/mes01-99 - diretrio contendo vendas do ms 01/1999
/pub/vendas/mes02-99 - diretrio contendo vendas do ms 02/1999
/pub/vendas/mes03-99 - diretrio contendo vendas do ms 03/1999
O diretrio vendas o diretrio principal.
mes01-99 subdiretrio que contm os arquivos de vendas do ms 01/1999.
mes02-99 subdiretrio que contm os arquivos de vendas do ms 02/1999.
mes03-99 subdiretrio que contm os arquivos de vendas do ms 03/1999.
mes01-99, mes02-99, mes03-99 so diretrios usados para armazenar os arquivos de pedidos do ms e ano
correspondente. Isto essencial para organizao, pois se todos os pedidos fossem colocados diretamente no
diretrio vendas, seria muito difcil encontrar o arquivo do cliente "Joo".
Voc deve ter reparado que usei a palavra sub-diretrio para mes01-99, mes02-99 e mes03-99, porque que eles
esto dentro do diretrio vendas. Da mesma forma, vendas um sub-diretrio de pub.

2.3.8 - Estrutura bsica de diretrios do Sistema Linux


O sistema GNU/Linux possui a seguinte estrutura bsica de diretrios:

/bin - Contm arquivos de programas do sistema que so usados com freqncia pelos usurios.

/boot - Contm arquivos necessrios para a inicializao do sistema.

/cdrom - Ponto de montagem da unidade de CD-ROM.

/dev - Contm arquivos usados para acessar dispositivos (perifricos) existentes no computador.

/etc - Arquivos de configurao de seu computador local.

/floppy - Ponto de montagem de unidade de disquetes

/home - Diretrios contendo os arquivos dos usurios.

/lib - Bibliotecas compartilhadas pelos programas do sistema e mdulos do Kernel.

/lost+found - Local para a gravao de arquivos/diretrios recuperados pelo utilitrio fsck.ext2. Cada
partio possui seu prprio diretrio lost+found.

/mnt - Ponto de montagem temporrio.

/proc - Sistema de arquivos do Kernel. Este diretrio no existe em seu disco rgido, ele colocado l
pelo Kernel e usado por diversos programas que fazem sua leitura, verificam configuraes do sistema ou
modificam o funcionamento de dispositivos do sistema atravs da alterao em seus arquivos.
Guia Foca GNU/Linux

32

/root - Diretrio do usurio root.


/sbin - Diretrio de programas usados pelo superusurio (root) para administrao e controle do
funcionamento do sistema.

/tmp - Diretrio para armazenamento de arquivos temporrios criados por programas.

/usr - Contm maior parte de seus programas. Normalmente acessvel somente como leitura.

/var - Contm maior parte dos arquivos que so gravados com freqncia pelos programas do sistema,
e-mails, spool de impressora, cache, etc.

2.4 - Nomeando arquivos e diretrios


No GNU/Linux, os arquivos e diretrios podem ter o tamanho de at 255 letras. Voc pode identifica-los com
uma extenso (um conjunto de letras separadas do nome do arquivo por um "."). Os programas executveis do
GNU/Linux, ao contrrio dos programas de DOS e Windows, no so executados a partir de extenses .exe,
.com ou .bat. O GNU/Linux (como todos os sistemas POSIX) usa a permisso de execuo de arquivo para
identificar se um arquivo pode ou no ser executado. No exemplo anterior, nosso trabalho de histria pode ser
identificado mais facilmente caso fosse gravado com o nome trabalho.text ou trabalho.txt. Tambm permitido
gravar o arquivo com o nome Trabalho de Historia.txt mas no recomendado gravar nomes de arquivos e
diretrios com espaos. Porque ser necessrio colocar o nome do arquivo entre "aspas" para acessa-lo (por
exemplo, cat "Trabalho de Historia.txt"). Ao invs de usar espaos, prefira capitalizar o arquivo (usar letras
maisculas e minsculas para identifica-lo): TrabalhodeHistoria.txt.

2.5 - Comandos
Comandos so ordens que passamos ao sistema operacional para executar uma determinada tarefa. Cada
comando tem uma funo especfica. Devemos saber a funo de cada comando e escolher o mais adequado
para fazer o que desejamos, por exemplo:
ls - Mostra arquivos de diretrios
cd - Para mudar de diretrio
Este guia tem uma lista de vrios comandos organizados por categoria com a explicao sobre o seu
funcionamento e as opes aceitas (incluindo alguns exemplos). sempre usado um espao depois do comando
para separa-lo de uma opo ou parmetro que ser passado para o processamento. Um comando pode receber
opes e parmetros:

opes - As opes so usadas para controlar como o comando ser executado, por exemplo, para fazer
uma listagem mostrando o dono, grupo, tamanho dos arquivos, voc deve digitar ls -l. Opes podem ser
passadas ao comando atravs de um "-" ou "--":

- (hfen) - Opo identificada por uma letra. Podem ser usadas mais de uma opo com um nico hfen.
O comando ls -l -a a mesma coisa de ls -la

-- (dois hfens) - Opo identificada por um nome. O comando ls --all equivalente a ls -a..
Pode ser usado tanto "-" como "--", mas h casos em que somente "-" ou "--" est disponvel.

Parmetros - Um parmetro identifica o caminho, origem, destino, entrada padro ou sada padro
que ser passada ao comando. Se voc digitar: ls /usr/doc/copyright, /usr/doc/copyright ser o parmetro
passado ao comando ls, neste caso queremos que ele liste os arquivos do diretrio /usr/doc/copyright.
normal errar o nome de comandos, mas no se preocupe, quando isto acontecer o sistema mostrar a
mensagem command not found (comando no encontrado) e voltar ao aviso de comando. As mensagens de
erro no fazem nenhum mal ao seu sistema, somente dizem que algo deu errado para que voc possa corrigir e
entender o que aconteceu. No GNU/Linux, voc tem a possibilidade de criar comandos personalizados usando
outros comandos mais simples (isto ser visto mais adiante). Os comandos se encaixam em duas categorias:
Comandos Internos e Comandos Externos.
Por exemplo: "ls -la /usr/doc", ls o comando, -la a opo passada ao comando, e /usr/doc o diretrio
passado como parmetro ao comando ls.

2.5.1 - Comandos internos


So comandos que esto localizados dentro do interpretador de comandos (normalmente o Bash) e no no
disco. Eles so carregados na memria RAM do computador junto com o interpretador de comandos.
Quando executa um comando, o interpretador de comandos verifica primeiro se ele um comando interno caso
no seja verificado se um comando externo.
Exemplos de comandos internos so: cd, exit, echo, bg, fg, source, help

2.6 - Comandos externos


Guia Foca GNU/Linux

33

So comandos que esto localizados no disco. Os comandos so procurados no disco usando o path e
executados assim que encontrados. Para detalhes veja path, Seo 7.2.

Guia Foca GNU/Linux

34

2.7 - Aviso de comando (Prompt)


Aviso de comando (ou Prompt), a linha mostrada na tela para digitao de comandos que sero passados ao
interpretador de comandos para sua execuo. A posio onde o comando ser digitado marcado por um
"trao" piscante na tela chamado de cursor. Tanto em shells texto como em grficos necessrio o uso do cursor
para sabermos onde iniciar a digitao de textos e nos orientarmos quanto a posio na tela.
O aviso de comando do usurio root identificado por uma "#" (tralha), e o aviso de comando de usurios
identificado pelo smbolo "$". Isto padro em sistemas UNIX.
Voc pode retornar comandos j digitados pressionando as teclas Seta para cima / Seta para baixo. A tela pode
ser rolada para baixo ou para cima segurando a tecla SHIFT e pressionando PGUP ou PGDOWN. Isto til
para ver textos que rolaram rapidamente para cima.
Abaixo algumas dicas sobre a edio da linha de comandos (no necessrio se preocupar em decora-los):

Pressione a tecla Backspace ("<--") para apagar um caracter esquerda do cursor.

Pressione a tecla Del para apagar o caracter acima do cursor.

Pressione CTRL+A para mover o cursor para o incio da linha de comandos.

Pressione CTRL+E para mover o cursor para o fim da linha de comandos.

Pressione CTRL+U para apagar o que estiver esquerda do cursor. O contedo apagado copiado para
uso com CTRL+y.

Pressione CTRL+K para apagar o que estiver direita do cursor. O contedo apagado copiado para
uso com CTRL+y.

Pressione CTRL+L para limpar a tela e manter o texto que estiver sendo digitado na linha de comando
(parecido com o comando clear).

Pressione CTRL+Y para colocar o texto que foi apagado na posio atual do cursor.

2.8 - Interpretador de comandos


Tambm conhecido como "shell". o programa responsvel em interpretar as instrues enviadas pelo usurio e
seus programas ao sistema operacional (o Kernel). Ele que executa comandos lidos do dispositivo de entrada
padro (teclado) ou de um arquivo executvel. a principal ligao entre o usurio, os programas e o Kernel. O
GNU/Linux possui diversos tipos de interpretadores de comandos, entre eles posso destacar o bash, ash, csh,
tcsh, sh, etc. Entre eles o mais usado o bash. O interpretador de comandos do DOS, por exemplo, o
command.com. Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e nointerativa:

Interativa - Os comandos so digitados no aviso de comando e passados ao interpretador de comandos


um a um. Neste modo, o computador depende do usurio para executar uma tarefa ou o prximo comando.

No-interativa - So usados arquivos de comandos criados pelo usurio (scripts) para o computador
executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do
arquivo um por um e dependendo do trmino do comando, o script pode checar qual ser o prximo
comando que ser executado e dar continuidade ao processamento. Este sistema til quando temos que
digitar por vrias vezes seguidas um mesmo comando ou para compilar algum programa complexo.
O shell Bash possui ainda outra caracterstica interessante: A completao dos nomes. Isto feito pressionandose a tecla TAB. Por exemplo, se digitar "ls tes" e pressionar <tab>, o bash localizar o arquivo que inicia com
"tes" e completar o restante do nome. Caso a completao de nomes encontre mais do que uma expresso que
satisfaa a pesquisa, ou nenhuma, emitido um beep. A completao de nomes funciona sem problemas para
comandos internos.
Exemplo: ech (pressione TAB), ls /vm(pressione TAB)

2.9 - Terminal virtual (console)


Terminal (ou console) o teclado e tela conectados em seu computador. O GNU/Linux faz uso de sua
caracterstica multi-usuria usando os "terminais virtuais". Um terminal virtual uma segunda seo de
trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente via
telnet, rsh, rlogin, etc. No GNU/Linux, em modo texto, voc pode acessar outros terminais virtuais segurando a
tecla ALT e pressionando <F1> a <F6>. Cada tecla de funo corresponde a um nmero de terminal do 1 ao 6
(o stimo usado por padro pelo ambiente grfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas
apenas 6 esto disponveis inicialmente por motivos de economia de memria RAM (cada terminal virtual
ocupa aproximadamente 350 Kb de memria RAM. Desative a quantidade que no estiver usando para liberar
memria RAM para uso de outros programas!) . Se estiver usando o modo grfico, voc deve segurar CTRL+
ALT enquanto pressiona uma tela de <F1> a <F6>.
Guia Foca GNU/Linux

35

Um exemplo prtico: Se voc estiver usando o sistema no Terminal 1 com o nome "joao" e desejar entrar como
root para instalar algum programa, segure ALT enquanto pressiona <F2> para abrir o segundo terminal
virtual e faa o login como "root". Ser aberta uma nova seo para o usurio "root" e voc poder retornar a
hora que quiser para o primeiro terminal pressionando ALT+<F1>.

2.10 - Login
Login a entrada no sistema quando voc digita seu nome e senha. Por enquanto vou manter o seu suspense
sobre o que o logout.

2.11 - Logout
Logout a sada do sistema. A sada do sistema feita pelos comandos logout, exit, CTRL+D, ou quando o
sistema reiniciado ou desligado.

2.12 - Curingas
Curingas (ou referncia global) um recurso usado para especificar um ou mais arquivos ou diretrios do
sistema de uma s vez. Este um recurso permite que voc faa a filtragem do que ser listado, copiado,
apagado, etc. So usados 3 tipos de curingas no GNU/Linux:

"*" - Faz referncia a um nome completo/restante de um arquivo/diretrio.

"?" - Faz referncia a uma letra naquela posio.

[padro] - Faz referncia a um padro contido em um arquivo. Padro pode ser:


[a-z][1-0] - Faz referncia a caracteres de a at z ou de 1 at 10.
[a,z][1,0] - Faz a referncia aos caracteres a e z ou 1 e 10 naquela posio.
[a-z,1,0] - Faz referncia aos caracteres de a at z e 1 e 10 naquela posio.
A procura de caracteres "case sensitive". Assim se voc deseja que sejam localizados todos os caracteres
alfabticos voc deve usar [a-zA-Z].
Caso a expresso seja seguida de um ^, faz referncia a qualquer caracter exceto o da expresso. Por exemplo
[^abc] faz referncia a qualquer caracter exceto a, b e c.
Lembrando que os 3 tipos de curingas ("*", "?" e "[]") podem ser usados juntos. Para entender melhor vamos a
prtica:
Vamos dizer que tenham 5 arquivos no diretrio /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new.
Caso deseje listar todos os arquivos do diretrio /usr/teste voc pode usar o curinga "*" para especificar todos os
arquivos do diretrio:
cd /usr/teste e ls * ou ls /usr/teste/*.
No tem muito sentido usar o comando ls com "*" porque todos os arquivos sero listados se o ls for usado sem
nenhum Curinga.
Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com excesso de teste4.new, teste5.new,
podemos usar inicialmente 3 mtodos:
1.
Usando o comando ls *.txt que pega todos os arquivos que comeam com qualquer nome e terminam
com .txt.
2.
Usando o comando ls teste?.txt, que pega todos os arquivos que comeam com o nome teste, tenham
qualquer caracter no lugar do curinga ? e terminem com .txt. Com o exemplo acima teste*.txt tambm faria
a mesma coisa, mas se tambm tivssemos um arquivo chamado teste10.txt este tambm seria listado.
3.
Usando o comando ls teste[1-3].txt, que pega todos os arquivos que comeam com o nome teste,
tenham qualquer caracter entre o nmero 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtm
uma filtragem mais exata, pois o curinga ? especifica qualquer caracter naquela posio e [] especifica
nmeros, letras ou intervalo que ser usado.
Agora para listar somente teste4.new e teste5.new podemos usar os seguintes mtodos:

ls *.new que lista todos os arquivos que terminam com .new

ls teste?.new que lista todos os arquivos que comeam com teste, contenham qualquer caracter
na posio do curinga ? e terminem com .new.

ls teste[4,5].* que lista todos os arquivos que comeam com teste contenham nmeros de 4 e 5
naquela posio e terminem com qualquer extenso.
Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi
fazer aqui foi mostrar como especificar mais de um arquivo de uma s vez. O uso de curingas ser til ao copiar
arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta uma caracterstica do
GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de vrias maneiras diferentes.
Guia Foca GNU/Linux

36

2.13 - Monitorando os logs


Os arquivos de logs residem em /var/log e registram tudo o que acontecem com o Kernel, com os daemons e
utilitrios do sistema. Eles so muito importantes tanto para monitorar o que acontece com o seu sistema como
para ajudar na soluo de problemas diversos.
Acostume-se a olhar constantemente os arquivos de log em seu sistema, isto pode ser importante para encontrar
possveis falhas de segurana, tentativa de acesso ao sistema e, principalmente, solucionar problemas
(principalmente os mais complicados). Leia Arquivos e daemons de Log, Captulo 17 para mais detalhes.

Guia Foca GNU/Linux

37

Captulo 3 - Hardware
Hardware tudo que diz respeito a parte fsica do computador. Nesta seo sero abordados assuntos
relacionados com a configurao de hardwares, escolha de bons hardwares, dispositivos for Windows, etc.

3.1 - Placa de expanso


um circuito eletrnico encaixado na placa-me que tem por objetivo adicionar novas funcionalidades ao
computador. Esta placa pode ser uma:

placa de som - para fazer o computador emitir sons, msicas, ligar um joystick, etc.

fax-modem - para enviar/receber fax, conectar-se a internet, BBS, acesso remoto, bina, etc.

rede - para permitir a comunicao com outros computadores em uma rede interna

controladora de perifricos - Para ligar discos rgidos, unidades de disquete, impressora, mouse,
joystick, etc.

SCSI - Para ligar unidades de disco rgidos e perifricos de alto desempenho.

controladora de scanner - Para ligar um scanner externo ao micro computador.


O encaixe da placa-me que recebe as placas de expanso so chamados de slots.

3.2 - Nomes de dispositivos


Seria terrvel se ao configurar cada programa que utilize o mouse ou o modem precisassemos nos se referir a ele
pela IRQ, I/O, etc. Para evitar isso so usados os nomes de dispositivos. Os nomes de dispositivos no sistema
GNU/Linux so acessados atravs do diretrio /dev. Aps configurar corretamente o modem, com sua porta I/O
0x2F8 e IRQ 3, ele identificado automaticamente por /dev/ttyS1 (equivalente a COM2 no DOS). Daqui para
frente basta se referir a /dev/ttyS1 para fazer alguma coisa com o modem.
Voc tambm pode fazer um link de /dev/ttyS1 para um arquivo chamado /dev/modem usando:
ln -s /dev/ttyS1 /dev/modem
Faa a configurao dos seus programas usando /dev/modem ao invs de /dev/ttyS1 e se precisar reconfigurar o
seu modem e a porta serial mudar para /dev/ttyS3, ser necessrio somente apagar o link /dev/modem antigo e
criar um novo apontando para a porta serial /dev/ttyS3. No ser necessrio reconfigurar os programas que usam
o modem pois eles esto usando /dev/modem que est apontando para a localizao correta. Isto muito til
para um bom gerenciamento do sistema. Abaixo uma tabela com o nome do dispositivo no GNU/Linux, portas
I/O, IRQ, DMA e nome do dispositivo no DOS (os nomes de dispositivos esto localizados no diretrio /dev):
Dispos. Dispos.
Linux DOS IRQ
DMA
I/O
ttyS0 COM1 4
0x3F8
ttyS1 COM2 3
0x2F8
ttyS2 COM3 4
0x3E8
ttyS3 COM4 3
0x2E8
lp0
LPT1
7
3(ECP)
0x378
lp1
LPT2
5
3(ECP)
0x278
/dev/hda1 C:
14
0x1F0,0x3F6
/dev/hda2 D: * 14
0x1F0,0x3F6
/dev/hdb1 D: * 15
0x170,0x376
* A designao de letras de unidade do DOS no padro como no GNU/Linux e depende da existncia de
outras unidades fsicas/lgicas no computador.

3.3 - Configurao de hardware


A configurao consiste em ajustar as opes de funcionamento dos dispositivos (perifricos) para comunicao
com a placa-me. Um sistema bem configurado consiste em cada dispositivo funcionando com suas portas I/O,
IRQ, DMA bem definidas, no existindo conflitos com outros dispositivos. Isto tambm permitir a adio de
novos dispositivos ao sistema sem problemas. importante conhecer bem a configurao dos dispositivos do
sistema para saber identificar e corrigir possveis problemas de conflitos e o que deve ser modificado, caso seja
necessrio.
Os parmetros usados para configurar dispositivos de hardware so a IRQ, DMA e I/O. Nem todo dispositivo
usam estes trs parmetros, alguns apenas a I/O e IRQ, outros apenas a I/O, etc.

Guia Foca GNU/Linux

38

3.3.1 - IRQ - Requisio de interrupo


Existem dois tipos bsicos de interrupes: as usadas por dispositivos (para a comunicao com a placa-me) e
programas (para obter a ateno do processador). As interrupes de software so mais usadas por programas,
incluindo o sistema operacional e interrupes de hardware mais usadas por perifricos. Daqui para frente ser
explicado somente detalhes sobre interrupes de hardware.
Os antigos computadores 8086/8088 (XT) usavam somente 8 interrupes de hardware operando a 8 bits. Com
o surgimento do AT foram includas 8 novas interrupes, operando a 16 bits. Os computadores 286 e superiores
tem 16 interrupes de hardware numeradas de 0 a 15. Estas interrupes oferecem ao dispositivo associado a
capacidade de interromper o que o processador estiver fazendo, pedindo ateno imediata. As interrupes do
sistema podem ser visualizadas no Kernel com o comando cat /proc/interrupts. Abaixo um resumo do uso mais
comum das 16 interrupes de hardware:

0 - Timer do Sistema - Fixa

01 - Teclado - Fixa

02 - Controlador de Interrupo Programvel - Fixa. Esta interrupo usada como ponte para a IRQ 9
e vem dos antigos processadores 8086/8088 que somente tinham 8 IRQs. Assim, pera tornar processadores
8088 e 80286 comunicveis, a IRQ 2 usada como um redirecionador quando se utiliza uma interrupo
acima da 8.

03 - Normalmente usado por /dev/ttyS1 mas seu uso depende dos dispositivos instalados em seu sistema
(como fax-modem, placas de rede 8 bits, etc).

04 - Normalmente usado por /dev/ttyS0 e quase sempre usada pelo mouse serial a no ser que um mouse
PS2 esteja instalado no sistema.

05 - Normalmente a segunda porta paralela. Muitos micros no tem a segunda porta paralela, assim
comum encontrar placas de som e outros dispositivos usando esta IRQ.

06 - Controlador de Disquete - Esta interrupo pode ser compartilhada com placas aceleradoras de
disquete usadas em tapes (unidades de fita).

07 - Primeira porta de impressora. Pessoas tiveram sucesso compartilhando esta porta de impressora
com a segunda porta de impressora. Muitas impressoras no usam IRQs.

08 - Relgio em tempo real do CMOS - No pode ser usado por nenhum outro dispositivo.

09 - Esta uma ponte para IRQ2 e deve ser a ltima IRQ a ser utilizada. No entanto pode ser usada por
dispositivos.

10 - Interrupo livre para dispositivos

11 - Interrupo livre para dispositivos

12 - Interrupo normalmente livre para dispositivos. O mouse PS/2, quando presente, utiliza esta
interrupo.

13 - Processador de dados numricos - No pode ser usada ou compartilhada

14 - Esta interrupo usada pela primeira controladora de discos rgidos e no pode ser compartilhada.

15 - Esta a interrupo usada pela segunda controladora de discos e no pode ser compartilhada. Pode
ser usada caso a segunda controladora esteja desativada.
Dispositivos ISA, VESA, EISA, SCSI no permitem o compartilhamento de uma mesma IRQ, talvez isto ainda
seja possvel caso no haja outras opes disponveis e/ou os dois dispositivos no acessem a IRQ ao mesmo
tempo, mas isto uma soluo precria.
Conflitos de IRQ ocorrem quando dois dispositivos disputam uma mesma IRQ, e normalmente ocasionam a
parada ou mal funcionamento de um dispositivo e/ou de todo o sistema. Para resolver um conflito de IRQs,
deve-se conhecer quais IRQs esto sendo usadas por quais dispositivos (usando cat /proc/interrupts) e
configurar as interrupes de forma que uma no entre em conflito com outra. Isto normalmente feito atravs
dos jumpers de placas ou atravs de software (no caso de dispositivos jumperless ou plug-and-play).
Dispositivos PCI so projetados para permitir o compartilhamento de uma mesma IRQ pois as manipulam de
forma diferente. Se for necessrio usar uma interrupo normal, o chipset (ou BIOS) mapear a interrupo para
uma interrupo normal do sistema (normalmente usando alguma interrupo entre a IRQ 9 e IRQ 12).

3.3.1.1 - Prioridade das interrupes


Cada IRQ no sistema tem um nmero que identifica a prioridade que ser atendida pelo processador. Nos
antigos sistemas XT as prioridades eram identificadas em seqncia de acordo com as interrupes existentes:

IRQ 0 1 2 3 4 5 6 7 8

PRI
123456789
Guia Foca GNU/Linux

39

Com o surgimento do barramento AT (16 bits), as interrupes passaram a ser identificadas da seguinte forma:

IRQ 0 1 2 (9 10 11 12 13 14 15) 3 4 5 6 7 8

PRI
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Note que a prioridade segue em seqncia atravs da ponte da IRQ 2 para IRQ 9. Os dispositivos com
prioridade mais baixa so atendidos primeiro, mas uma diferena de desempenho praticamente imperceptvel
de ser notada nos sistemas atuais.

3.3.2 - DMA (acesso direto a memria )


A DMA usada para permitir a transferncia de dados entre dispositivos I/O e a memria sem precisar do
processador faze-lo. Ele livra esta carga do processador e resulta em uma rpida transferncia de dados.
O PC padro tem dois controladores de DMA. O primeiro controla os canais 0, 1, 2, 3 e o segundo os canais 4,
5, 6, 7, assim temos 8 canais. No entanto, o canal 4 perdido porque usado pelo controlador de acesso direto
a memria. Os canais 0-3 so chamados de canais baixos porque podem somente mover um byte ( 8 bits) por
transferncia enquanto canais altos movem 2 bytes (16 bits) por transferncia. Os dados movidos usando a
DMA no so movidos atravs do controlador de DMA. Isto oferece uma limitao porque a DMA somente
pode mover dados entre os dispositivos (portas I/O) e a memria. No possvel mover dados entre as portas ou
entre a memria. Existem dois controladores de DMA nos computadores AT e superiores. Ao contrrio do que
acontece com os dois controladores de IRQ, o primeiro controlador ligado ao segundo e no o segundo ao
primeiro. Os canais de DMA altos (5 ao 7) somente podem ser acessados por dispositivos de 16 bits (aqueles
que utilizam a segunda parte do slot AT). Como resultado temos 8 canais de DMA, de 0 a 7, sendo que a DMA 4
usada como ligao entre eles. Os canais de DMA em uso no sistema podem ser visualizados com cat
/proc/dma. Abaixo uma listagem de uso mais comum dos canais de DMA.
DMA Barram.
Uso

0Usada pelo circuito de refresh da memria DRAM


1 - 8/16 bits
Normalmente usado por placas de som (canal 8 bits), porta paralela ECP, adaptadoras
SCSI, placas de rede ou controladora de scanner.

2 - 8/16 bits
Normalmente usado pela controladora de disquetes ou controladoras de tapes.
3 - 8/16 bits
Usado pela porta paralela ECP, placa de som, controladoras de tapes, controladoras
SCSI ou controladora de scanner antiga.

4Usada como ponte para a outra controladora de DMA (0-3)


5 - 16 bits
Normalmente usada pela placa de som (canal 16 bits), placas controladoras SCSI,
placas de rede ou controladora de scanner.

616 bits
Placa de som (canal 16 bits), controladora de scanner ou placa de rede.

716 bits
Placa de som (canal 16 bits), controladora de scanner ou placa de rede.
Somente dispositivos ISA e derivados dele, como o EISA e VESA, usam os canais de DMA padro. Os atuais
dispositivos de alta taxa de transferncia (normalmente PCI) possuem seu prprio controlador de DMA
embutido, muito mais rpido do que a DMA padro. Este controlador de DMA chamado de Bus Mastering e
muito usado nos discos rgidos atuais e pode atingir taxas de 33MB/s (no modo 2) e 66MB/s (no modo 4 requer um cabo IDE com aterramento para evitar interferncias de rudos externos).

3.3.2.1 - Conflitos de DMA


Um canal de DMA no pode ser compartilhado entre dispositivos. Ainda possvel configurar dois dispositivos
para usarem um mesmo canal de DMA, desde que eles no sejam usados ao mesmo tempo. Isto acontece com
scanners paralelos que compartilham a mesma porta paralela com a impressora. Se voc for uma pessoa que
explora os recursos de multitarefa de seu Linux e seu desempenho, evite estes tipos de dispositivos, prefira
aqueles que utilizam seus prprios recursos. Quando ocorre um conflito de DMA, os dados podem ser
misturados e ocorre desde coisas estranhas at o travamento total do sistema. Este tipo de conflito difcil de se
diagnosticar, a no ser que o tcnico seja experiente o bastante e tenha desconfiado de qual problema se trata.

3.3.3 - I/O (portas de entrada/sada)


Cada dispositivo possui um endereo de porta. O endereo uma localizao da memria usada pelo
computador para enviar dados ao dispositivo e onde o dispositivo envia dados ao computador. Ao contrrios da
IRQ e DMA, o dispositivo pode usar mais de uma porta de entrada/sada ou uma faixa de endereos. Por
exemplo, uma placa de som padro usa as portas 0x220, 0x330 e 0x388, respectivamente audio digital, midi e
opl3.
As placas de rede normalmente transferem grandes quantidades de dados, assim ocupam uma faixa de
Guia Foca GNU/Linux

40

endereos. Minha NE2000, por exemplo, ocupa a faixa de endereos 0x260 a 0x27F (0x260-0x27F). O tamanho
da faixa de endereos varia de acordo com o tipo de dispositivo.
Os endereos de I/O em uso no sistema podem ser visualizados com o comando cat /proc/ioports.
Endereos das portas de entrada/sada no podem ser compartilhados

3.4 - Hardwares configurveis por jumpers, dip-switches, jumperless e


Plug-and-Play.
3.4.1 - Jumpers
Hardwares configurveis por jumpers (pinos metlicos protegidos por uma capa plstica) tem sua configurao
alterada atravs da colocao, retirada ou mudana de posio. Hardwares configurveis por jumpers so os
preferidos por tcnicos de informtica muito experientes. Estes hardwares possuem a caracterstica de somente
terem seus parmetros modificados atravs da mudana da posio dos jumpers da placa, desta forma se obtm
uma configurao fixa (no podendo ser modificada por qualquer tipo de programa) e o dispositivo estar
sempre pronto para ser ativado aps a inicializao de qualquer sistema operacional. O nico inconveniente a
necessidade de se retirar a placa do computador para se ter acesso aos jumpers de configurao, a no ser que
estejam manualmente acessveis. Alguns hardwares configurveis atravs de jumpers podem tambm funcionar
como Plug-and-Play, atravs de um ajuste da posio dos jumpers para Plug-and-Play.
Normalmente as placas controladoras EIDE, rede, bons modelos de fax-modens, placas de som, SCSI, etc., so
configuradas por jumpers e possuem um mapa de configurao gravado em seu circuito impresso que explica as
posies de como os jumpers devem ser posicionados para operar na configurao desejada. Normalmente
possvel escolher uma entre vrios tipos de configurao, mas recomendado optar por valores padres (para
detalhes veja IRQ - Requisio de Interrupo, Seo 3.3.1, DMA - Acesso Direto a Memria, Seo 3.3.2 e I/O
- Porta de Entrada/Sada, Seo 3.3.3).
As disposio dos jumpers so normalmente definidas em fechado/aberto e multi-posio. Na disposio
fechado/aberto, o jumper pode ou no ser colocado, definindo a configurao do dispositivo:
::|::
Esta disposio facilmente encontrada na seleo de IRQ e I/O em placas de fax-modem. Na disposio multiposio, os pinos de encaixe so numerados de 1 a 3 (ou 1 a 4, 1 a 5, etc) e os pinos podem ou no ser colocados
na placa e a posio que so colocados tambm influencia os valores escolhidos para o funcionamento do
dispositivo (a posio 1-2 especificam um valor enquanto 2-3 especificam outro). A associao entre a posio
dos jumpers e a configurao desejada feita consultando o mapa desenhado no circuito impresso da placa ou o
manual de instrues da placa.
A configurao de jumper atravs de multi-posio normalmente usada em placas me para definir a
freqncia de operao do barramento, a freqncia de multiplicao ou o tipo do processador.
Se no possuir o mapa de configurao de sua placa e/ou o manual de instrues, ser necessrio fazer um
mapeamento manual da placa, mas para isto voc precisar conhecer detalhadamente a configurao de portas
I/O, DMA, IRQ usadas na mquina que ser usada e anotar as diferenas obtidas atravs da modificao da
pinagem do dispositivo. Isto no fcil, mas tcnicos de informtica experientes conhecero as armadilhas
encontradas pelo mapeamento manual de placas e faro o esquema de configurao completo do dispositivo,
obtendo um excelente manual de instrues. Nesta hora a experincia conta mais que o uso de programas de
diagnstico.
Outra caracterstica de hardwares configurados atravs de jumpers que raramente apresentam problemas de
funcionamento, a no ser que seus parmetros como IRQ, DMA, ou I/O estejam em conflitos com outro
dispositivo, mas isso no culpa do fabricante e nem mesmo do dispositivo...

3.4.2 - Dip-Switches
a mesma coisa que os hardwares configurveis por jumpers exceto que so usados dip-switches no lugar de
jumpers. O dip-switches um conjunto de chaves numeradas que podem ser colocadas para cima ou para baixo
(como um disjuntor ou vrios interruptores LIGA/DESLIGA colocados um ao lado do outro) para se modificar a
configurao do dispositivo.
Normalmente as chaves esto acessveis na parte metlica da placa (onde os hardwares so conectados) para
permitir a fcil mudana de configurao sem retirar a placa. ainda comum encontrar isto em algumas placas
de fax-modem.

3.4.3 - Jumperless (sem jumper)


Os hardwares jumperless no possuem jumpers e so configurados atravs de um programa que acompanha a
prpria placa. Neste programa escolhida a IRQ, DMA, I/O e a configurao salva na prpria placa ou
Guia Foca GNU/Linux

41

restaurada aps cada inicializao por um programa carregado na memria. Devido a configurao via software,
se obtm uma configurao fixa com muito mais facilidade do que via jumpers (por no haver a necessidade de
se retirar a placa).
A maioria das placas jumperless podem funcionar tambm como Plug-and-Play. Existem muitas placas de rede,
fax-modem, scanner jumperless no mercado.

3.4.4 - Plug-and-Play
O Plug-and-Play um protocolo que l os valores de operao disponveis para a placa e permitem que o
usurio possa especificar facilmente qual ser sua IRQ, DMA, I/O. A diferena em relao ao modo jumperless
que o mesmo programa de configurao Plug-and-Play permite configurar todas as placas Plug-and-Play e a
placa somente recebe os valores de IRQ, DMA e I/O aps ser ativada por este programa, normalmente o isapnp
no Linux. Isto significa que a placa no tem nenhum parmetro de IRQ, DMA e I/O na partida do sistema. Desta
forma, somente sistemas operacionais que possuem suporte ao Plug-and-Play (como o GNU/Linux, Windows)
ou programas acionadores PnP (como o ICU para o DOS) podem ativar e usar estes tipos de placas. Placas Plugand-Play permitem muita flexibilidade de configurao de dispositivos. O programa usado para a configurao
de placas Plug-and-Play no GNU/Linux o isapnp e a configurao de todas as placas Plug-and-Play so
definidas no arquivo /etc/isapnp.conf. Veja a prxima seo para entender como funciona o arquivo de
configurao isapnp.conf e assim poder ativar seu dispositivo Plug-and-Play.

3.4.4.1 - Entendendo o arquivo de configurao isapnp.conf


Segue abaixo um exemplo de arquivo /etc/isapnp.conf gerado atravs do pnpdump para a configurao de uma
placa de Som Sound Blaster com porta IDE embutida no GNU/Linux.
O objetivo configurar a placa Sound Blaster para operar na configurao:
IO=0x220
IRQ=5
DMA=1
DMA16=5
MIDI=0x330
OPL=0x388
IDE operando como placa controladora quartenria na porta 0x168/0x36e - Ns queremos ligar um HD
na placa de som. Sim o GNU/Linux permite isso, e ele ser configurado como /dev/hdg1
JOYSTICK na porta 0x220 - bom para jogos e controle do xmms
Observe que as linhas iniciando com # so apenas comentrios e no sero interpretadas pelo isapnp:
# $Id: pnpdump.c,v 1.21 1999/12/09 22:28:33 fox Exp $
# Release isapnptools-1.21 (library isapnptools-1.21)
#
# Para detalhes do formato do arquivo de sada, veja a pgina de manual do isapnp.conf
#
# A seo abaixo faz o isolamento da placa atravs da BIOS (normalmente no precisa ser alterado).
# Com a configurao abaixo, os dados sobre dispositivos sero obtidos diretamente da BIOS.
# Em placas me que no suportam Plug-and-Play, necessrio apenas o parmetro (ISOLATE) para que o
# isapnp possa assumir totalmente o controle para identificao dos dispositivos Plug-and-Play
(READPORT 0x0273)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # ou WARNING
# Card 1: (serial identifier fc 10 01 fb 5d 28 00 8c 0e)
# Vendor Id CTL0028, Serial Number 268565341, checksum 0xFC.
# Version 1.0, Vendor version 1.0
# ANSI string -->Creative SB16 PnP<-#
# Descomente os valores desejados abaixo, selecionando a configurao requerida.
# Note que o valor padro equivale ao primeiro parmetro disponvel (Minimum)
# "(CONFIGURE" inicia um bloco de configurao e finaliza com "(ACT Y)"
# Para ativar as configuraes selecionadas, basta descomentar a linha "#(ACT Y)" no final do bloco de
# configurao.
(CONFIGURE CTL0028/268565341 (LD 0
# ANSI string -->Audio<-Guia Foca GNU/Linux

42

# Pela string acima, esta a configurao de Audio da Sound Blaster


# Hora de mltiplas escolhas, escolha apenas uma.
# Inicia funes dependentes, classificada por prioridade aceitvel
#
#
IRQ 5, 7 ou 10.
(INT 0 (IRQ 5 (MODE +E)))
# Foi especificada a IRQ 5 na configurao acima
#
Primeiro canal DMA 0, 1 ou 3.
#
Somente DMA de 8 bits
#
Dispositivo lgico no um bus master
#
DMA may execute in count by byte mode
#
DMA may not execute in count by word mode
#
DMA channel speed in compatible mode
(DMA 0 (CHANNEL 1))
# O valor da DMA 8 bits padro 0 (o mais baixo), mas este no o valor
# que desejamos. Ajustamos o valor para 1.
#
Next DMA channel 5, 6 or 7.
#
16 bit DMA only
#
Logical device is a bus master
#
DMA may not execute in count by byte mode
#
DMA may execute in count by word mode
#
DMA channel speed in compatible mode
(DMA 1 (CHANNEL 5))
# O canal DMA 16 bits desejado para a Sound Blaster o 5. Apenas descomentamos a linha acima.
#
Logical device decodes 16 bit IO address lines
#
Minimum IO base address 0x0220
#
Maximum IO base address 0x0280
#
IO base alignment 32 bytes
#
Number of IO addresses required: 16
(IO 0 (SIZE 16) (BASE 0x0220))
# Apenas descomentamos a linha.
#
Logical device decodes 16 bit IO address lines
#
Minimum IO base address 0x0300
#
Maximum IO base address 0x0330
#
IO base alignment 48 bytes
#
Number of IO addresses required: 2
(IO 1 (SIZE 2) (BASE 0x0330))
# O valor padro 0x0300 para a porta MIDI, mas ns desejamos usar o valor 0x0330.
# Descomentamos a linha e alteramos o valor da I/O.
#
Logical device decodes 16 bit IO address lines
#
Minimum IO base address 0x0388
#
Maximum IO base address 0x0388
#
IO base alignment 1 bytes
#
Number of IO addresses required: 4
(IO 2 (SIZE 4) (BASE 0x0388))
# Apenas descomentamos a linha. 0x0388 um valor padro para OPL
# Fim de funes dependentes
(NAME "CTL0028/268565341[0]{Audio
}")
(ACT Y) #Descomentamos para ativar este bloco de configurao acima
))
########################################
# Logical device id CTL2011
#
# Descomente os valores desejados abaixo, selecionando a configurao requerida.
# Note que o valor padro equivale ao primeiro parmetro disponvel (Minimum)
# "(CONFIGURE" inicia um bloco de configurao e finaliza com "(ACT Y)"
# Para ativar as configuraes selecionadas, basta descomentar a linha
# "#(ACT Y)" no final do bloco de configurao.
(CONFIGURE CTL0028/268565341 (LD 1
# Compatible device id PNP0600
Guia Foca GNU/Linux

43

# ANSI string -->IDE<-# Pela string acima sabemos que esta a configurao da IDE embutida na SB
# Hora de mltiplas escolhas, escolha apenas uma.
# Inicia funes dependentes: Prioridade Preferida
#
IRQ 10.
(INT 0 (IRQ 10 (MODE +E)))
# Descomentamos e aceitamos o valor acima, pois no entra em conflito com nenhum outro dispositivo do
# sistema.
#
Logical device decodes 16 bit IO address lines
#
Minimum IO base address 0x0168
#
Maximum IO base address 0x0168
(IO 0 (SIZE 8) (BASE 0x0168))
# Descomentamos e aceitamos o valor acima, pois no entra em conflito com nenhum outro dispositivo do
# sistema.
#
Logical device decodes 16 bit IO address lines
#
Minimum IO base address 0x036e
#
Maximum IO base address 0x036e
#
IO base alignment 1 bytes
#
Number of IO addresses required: 2
(IO 1 (SIZE 2) (BASE 0x036e))
# Descomentamos e aceitamos o valor acima, pois no entra em conflito com nenhum outro dispositivo do
#sistema.
# End dependent functions
(NAME "CTL0028/268565341[1]{IDE
}")
(ACT Y) # Descomentando esta linha, a placa IDE da Sound Blaster passar a
# funcionar como IDE quartenria (de acordo com os recursos passados)
))
#######################################
# Logical device id CTL7001
#
# Descomente os valores desejados abaixo, selecionando a configurao requerida.
# Note que o valor padro equivale ao primeiro parmetro disponvel (Minimum)
# "(CONFIGURE" inicia um bloco de configurao e finaliza com "(ACT Y)"
# Para ativar as configuraes selecionadas, basta descomentar a linha
# "#(ACT Y)" no final do bloco de configurao.
(CONFIGURE CTL0028/268565341 (LD 3
# Compatible device id PNPb02f
# ANSI string -->Game<-# Pela string acima sabemos que a Entrada para Joystick
# Logical device decodes 16 bit IO address lines
#
Minimum IO base address 0x0200
#
Maximum IO base address 0x0200
#
IO base alignment 1 bytes
#
Number of IO addresses required: 8
(IO 0 (SIZE 8) (BASE 0x0200))
(NAME "CTL0028/268565341[3]{Jogo
}")
(ACT Y) # Sem muitos comentrios... descomentamos a linha IO acima e
# ativamos a configurao (descomentando (ACT Y)). A diferena
# que especificamos o nome GAME para o recurso atravs da
# linha (NAME "CTL0028/268565341[3]{Jogo
}")
# Este nome ser mostrado quando o Joystick for ativado
))
# Returns all cards to the 'Wait for Key' state
(WAITFORKEY)
Note ainda que o isapnp.conf gerado atravs do pnpdump contm vrios tipos de prioridades de configurao
para o mesmo bloco de configurao e a prioridade que usamos acima foi priority acceptable para o bloco de
udio da Sound Blaster e priority preferred para a porta IDE e Joystick. Os tipos de prioridades disponveis so:

priority preferred - Configurao preferida para o funcionamento do hardware. a recomendada pelo


fabricante do hardware e tambm recomendvel se voc no tem muita experincia na configurao de
Guia Foca GNU/Linux

44

hardwares, pois lista somente uma configurao por recurso. Se a placa entrar em conflito com outras placas
usando priority preferred, tente a priority acceptable.

priority acceptable - Lista todas as configuraes aceitas pelo seu hardware. Ela minha opo
preferida, pois permite analisar dinamicamente todas as configuraes permitidas pelo hardware e escolher
qual a mais adequada para funcionar sem problemas no sistema.

priority functional - Pode conter 1 ou mais blocos de priority funcional por hardware. Note que alguns
recursos do hardware podem no estar disponvel neste tipo de prioridade. til para uso em casos de
conflito, quando o hardware pode ser colocado em funcionamento de forma alternativa ou parcial.
Aps a gravao do arquivo /etc/isapnp.conf, basta voc digitar isapnp /etc/isapnp.conf para ativar a
configurao dos dispositivos listados com as configuraes que voc escolheu. Se o isapnp lhe mostrar
mensagens de conflito ou qualquer outro problema, verifique as configuraes do hardware e modifique, se
necessrio. Depois execute novamente o /etc/isapnp.conf. Para detalhes sobre outros parmetros no explicados
aqui, veja a pgina de manual do isapnp.conf.
A maioria das distribuies GNU/Linux configura os dispositivos Plug-and-Play existentes neste arquivo
automaticamente na inicializao (como o caso da Debian e a Red Hat). Se este no for o seu caso, coloque a
linha isapnp /etc/isapnp.conf em um dos scripts de inicializao de sua distribuio.

3.5 - Conflitos de hardware


Ocorre quando um ou mais dispositivos usam a mesma IRQ, I/O ou DMA. Um sistema com configuraes de
hardware em conflito tem seu funcionamento instvel, travamentos constantes, mal funcionamento de um ou
mais dispositivos e at mesmo, em casos mais graves, a perda de dados.
Sempre que possvel conhea e utilize os valores padres para a configurao de perifricos, isto pode te livrar
de conflitos com outros dispositivos e mal funcionamento do sistema. Alguns programas de diagnstico ou de
auto-deteco podem no localizar seu dispositivo caso ele esteja usando um valor muito diferente do padro.
Para resolver conflitos de hardware ser necessrio conhecer a configurao de cada dispositivo em seu sistema.
Os comandos cat /proc/interrupts, cat /proc/dma e cat /proc/ioports podem ser teis para se verificar as
configuraes usadas.
Lembre-se que o barramento PCI permite o compartilhamento de IRQs entre placas PCI.

3.6 Barramento
O tipo de slot varia de acordo com o barramento usado no sistema, que pode ser um(s) do(s) seguinte(s):

ISA 8 Bits - Industry Standard Architecture - o padro mais antigo, encontrado em computadores
PC/XT.

ISA 16 Bits - Evoluo do padro ISA 8 Bits, possui um conector maior e permite a conexo de placas
de 8 bits. Sua taxa de transferncia chega a 2MB/s.

VESA - Video Electronics Standard Association - uma interface feita inicialmente para placas de
vdeo rpidas. O barramento VESA basicamente um ISA com um encaixe extra no final. Sua taxa de
transferncia pode chegar a 132MB/s.

EISA - Enhanced Industry Standard Architecture - um barramento mais encontrado em servidores.


Tem a capacidade de bus mastering, que possibilita a comunicao das placas sem a interferncia da CPU.

MCA - Micro Channel Architecture - Barramento 32 bits proprietrio da IBM. Voc no pode usar
placas ISA nele, possui a caracterstica de bus mastering, mas pode procurar por dispositivos conectados a
ele, procurando configurao automtica. Este barramento estava presente no PS/1 e PS/2, hoje no mais
usado.

PCI - Peripheral Component Interconnect - outro barramento rpido produzido pela Intel com a
mesma velocidade que o VESA. O barramento possui um chipset de controle que faz a comunicao entre
os slots PCI e o processador. O barramento se configura automaticamente (atravs do Plug-and-Play). O
PCI o barramento mais usado por Pentiums e est se tornando uma padro no PC.

AGP - Accelerated Graphics Port - um novo barramento criado exclusivamente para a ligao de
placas de video. um slot marrom (em sua maioria) que fica mais separado do ponto de fixao das placas
no chassis (comparado ao PCI). Estas placas permitem obter um desempenho elevado de vdeo se
comparado as placas onboards com memria compartilhada e mesmo PCI externas. O consumo de potncia
em placas AGP x4 podem chegar at a 100W, portanto importante dimensionar bem o sistema e ter certeza
que a fonte de alimentao pode trabalhar com folga.

PCMCIA - Personal Computer Memory Card International Association - um slot especial usado para
conexes de placas externas (normalmente revestidas de plstico) e chamadas de cartes PCMCIA. Estes
cartes podem adicionar mais memria ao sistema, conter um fax-modem, placa de rede, disco rgido, etc.
Os cartes PCMCIA so divididos em 3 tipos:
Guia Foca GNU/Linux

45

Tipo 1 - Tem a espessura de 3.3 milmetros, e podem conter mais memria RAM ou memria Flash.
Tipo 2 - Tem a espessura de 5 milmetros e capacidade de operaes I/O. um tipo usado para placas
de fax-modem, rede, som. Computadores que aceitam cartes PCMCIA do tipo 2, mantm a
compatibilidade com o tipo 1.
Tipo 3 - Tem a espessura de 10.5 milmetros e normalmente usado para discos rgidos PCMCIA. Slots
PCMCIA do tipo 3 mantm a compatibilidade com o tipo 2 e 1.

AMR - Audio Modem Raise - Pequeno barramento criado pela Intel para a conexo de placas de som e
modem. Placas de som e modem AMR usam o HSP (host signal processor) e so como as placas on-board e
todo o processamento feito pela CPU do computador (veja detalhes em Placas on-board / off-board, Seo
3.7 e Hardwares especficos ou "For Windows", Seo 3.8. Sua vantagem o preo: um modem ou placa de
som AMR custa em torno de R$ 25,00.

CNR - Communication and Networking Rise - Pequeno barramento criado pela Intel para a conexo de
placas de som, modems e placas de rede. Este um pequenino slot marrom que localizado no ponto de
fixao das placas no chassis do gabinete. Elas so como as placas on-board e todo o processamento feito
pela CPU do computador (veja detalhes em Placas on-board / off-board, Seo 3.7 e Hardwares especficos
ou "For Windows", Seo 3.8.

3.7 - Placas on-board / off-board


Placas on-board so embutidas na placa-me (motherboard). Placas off-board so placas externas encaixadas
nos slots de expanso da placa-me.
No incio da era do PC/XT todos as placas eram embutidas na placa-me (na poca eram somente a placa de
vdeo e controladora). Com o surgimento do padro AT, diversas empresas de informtica desenvolveram
dispositivos concorrentes e assim o usurio tinha a liberdade de escolha de qual dispositivo colocar em sua
placa-me (ou o mais barato ou o de melhor qualidade e desempenho), isto permitiu a adio de perifricos de
qualidade sem romper com seu oramento pessoal (comprando uma placa de som, depois uma de fax-modem,
placa de vdeo melhor, etc).
Atualmente parece que voltamos ao ponto de partida e tudo vem embutido na placa-me (on-board) e o usurio
no tem como escolher qual dispositivo usar em seu computador. muito difcil (praticamente impossvel)
encontrar uma placa-me que satisfaa completamente as necessidades do usurio ou recomendaes de um
bom tcnico de informtica (a no ser que seja um tcnico experiente e encontre alguma alternativa).
Certamente o nico dispositivo que funciona melhor se embutido na placa-me a placa controladora de
perifricos. Esta placa usada para se conectar unidades de disquete, discos rgidos, CD-ROM, portas seriais,
paralelas, joystick ao computador. Os HDs conectados em uma controladora embutida conseguem ter um
desempenho muito maior do que em placas conectadas externamente, sem causar nenhum tipo de problema.
Felizmente os ltimos modelos de placas me 486 e os Pentium j trazem a placa controladora de perifricos
embutida.
Hardwares embutidos na placa-me (como fax-modem, vdeo, som) so em mdia 30% mais baratos que os
vendidos separadamente mas quase sempre so usados dispositivos de baixo desempenho e qualidade para
reduzir o preo da placa-me e quase sempre usados hardwares For Windows.
Hoje em dia por causa do preo da placa-me, comum encontrar pessoas que verificam somente o preo e
sequer procuram saber ou conhecem a qualidade das placas embutidas na placa-me. Pior ainda encontrar
vendedores despreparados que sequer sabem explicar o porque que uma placa de som Sound Blaster 64 mais
cara que uma de modelo genrico...
Certa vez fiz um teste de desempenho em um jogo chamado Network Rally do DOS com minha mquina
Pentium 120 MHZ (s com a placa controladora embutida), 16 MB RAM, placa de som Sound Blaster 16,
placa de vdeo Trident 9680 com 1MB versus um computador Pentium 200 MMX, 32 MB RAM, placa de vdeo
embutida (usando 2 MB de memria compartilhada), fax modem Rockwell embutido, e som CMI 8330 tambm
embutido.
O resultado foi que o jogo rodava perfeito em meu pentium 120MHZ e no outro computador com o som
pipocando e imagem apresentando paradas. O problema que em dispositivos de baixa qualidade e baratos, sua
carga de processamento jogada para o processador, resultando em menos potncia para executar os programas
(veja Hardwares especficos ou "For Windows", Seo 3.8 para maiores detalhes sobre o problema). A memria
de vdeo compartilhada quer dizer que parte da memria RAM usada para memria de vdeo ao invs de uma
memria DRAM especfica e desenvolvida exclusivamente para acelerao de vdeo. Isto traz mais lentido
pois a memria de vdeo (RAM) tambm ser acessada pelo barramento do computador, envolvendo mais carga
para o processador, etc. A tcnica de memria compartilhada exclusiva de placas de vdeo embutidas.
Outro perifrico que traz problemas e muita carga para o processador o fax-modem for Windows, HSP, AMR,
micromodem, etc. A maioria destes perifricos se recusa a funcionar em computadores inferiores ao Pentium
150, no trazem seu chip de processamento e o pior: o chip UART. Isto faz com que o perifrico, mesmo
Guia Foca GNU/Linux

46

marcando conexo a 57.600 ou mais tenha um desempenho de at duas vezes menor que um fax-modem
inteligente com chip de processamento prprio e UART (sem contar com os controles internos do modem, como
os protocolos de correo de erros, e sua extensa interface de programao via comandos). A economia, neste
caso, ser paga em sua conta telefnica. Outra vantagem de fax-modens inteligentes que os modelos atuais
vem com FlashBios o que significa que podem ser reprogramados facilmente para passar de 33.600 para 57.600
sem trocar a placa, ou aceitarem novas tendncias de tecnologia. Para detalhes veja Hardwares especficos ou
"For Windows", Seo 3.8.
Se voc estiver em uma situao destas, certamente os computadores de menor potncia e com hardwares
inteligentes (que possuem seus prprios chips de controle e processamento) tero um desempenho muito
melhor. Mas tambm existem placas embutidas que tem a mesma qualidade de placas separadas (como alguns
modelos de placas me que trazem a Sound Blaster embutida). O preo pode ser maior mas voc estar pagando
por um dispositivo de melhor qualidade e que certamente trar benefcios a voc e ao seu sistema.
Consulte um tcnico em informtica experiente para te indicar uma placa-me de bom preo e de qualidade.
muito comum encontrar falta de profissionalismo em pessoas que no sabem distinguir as caractersticas,
funes e vantagens entre uma placa de boa qualidade e um hardware for Windows a no ser o preo mais
barato.

3.8 - Hardwares especficos ou "For Windows"


Esta seo foi retirada do manual de instalao da Debian GNU/Linux. Uma tendncia que perturba a
proliferao de modems e impressoras especficos para Windows. Em muitos casos estes so especialmente
fabricados para operar com o sistema operacional Microsoft Windows e costumam ter a legenda WinModem,
for Windows, ou feito especialmente para computadores baseados no Windows.
Geralmente estes dispositivos so feitos retirando os processadores embutidos daquele hardware e o trabalho
deles so feitos por drivers do Windows que so executados pelo processador principal do computador. Esta
estratgia faz o hardware menos expansvel, mas o que poupado no passado para o usurio e este hardware
pode at mesmo ser mais caro quanto dispositivos equivalentes que possuem inteligncia embutida. Voc deve
evitar o hardware baseado no Windows por duas razes:
O primeiro que aqueles fabricantes no tornam os recursos disponveis para criar um driver para Linux.
Geralmente, o hardware e a interface de software para o dispositivo proprietria, e a documentao no
disponvel sem o acordo de no revelao, se ele estiver disponvel. Isto impede seu uso como software livre,
desde que os escritores de software grtis descubram o cdigo fonte destes programas.
A segunda razo que quando estes dispositivos tem os processadores embutidos removidos, o sistema
operacional deve fazer o trabalho dos processadores embutidos, freqentemente em prioridade de tempo real, e
assim a CPU no esta disponvel para executar programas enquanto ela esta controlando estes dispositivos. Um
exemplo tpico disso so os modems for Windows; Alm da carga jogada na CPU, o dispositivo no possui o
chip UART 16550, que essencial para uma boa taxa de transferncia do modem. O que alguns dispositivos
fazem a emulao deste chip exigindo no mnimo uma CPU Pentium de 166 MHZ para operar adequadamente
nesta taxa de transmisso. Mesmo assim, devido a falta do chip UART, um modem destes iniciar uma
transmisso de arquivo a 57.600, a tendncia sua taxa de transferncia ir caindo na medida que um arquivo
transferido (at se estabilizar em 21/25 Kbps). Assim o usurio tpico do Windows no obtm um multiprocessamento to intensivo como um usurio do Linux. O fabricante espera que aquele usurio do Windows
simplesmente no note a carga de trabalho que este hardware pe naquela CPU. No entanto, qualquer sistema
operacional de multi-processamento, at mesmo Windows 95 / 98 ou NT, so prejudicados quando fabricantes
de perifricos retiram o processador embutido de suas placas e colocam o processamento do hardware na CPU.
Voc pode ajudar a reverter esta situao encorajando estes fabricantes a lanarem a documentao e outros
recursos necessrios para ns desenvolvermos drivers para estes hardwares, mas a melhor estratgia
simplesmente evitar estes tipos de hardwares at que ele esteja listado no HOWTO de hardwares compatveis
com Linux. Note que hoje j existem muitos drivers para WinModems e outros hardwares for Windows para o
Linux. Veja a lista de hardwares compatveis no HARDWARE-HOWTO ou procure o driver no site do fabricante
de seu dispositivo. Mesmo assim a dica evitar hardwares for Windows e comprar hardwares inteligentes onde
cada um faz sua funo sem carregar a CPU.

3.9 Dispositivos especficos para GNU/Linux


Esta seo foi retirada do manual de instalao da Debian GNU/Linux. Existem diversos vendedores, agora, que
vendem sistemas com a Debian ou outra distribuio do GNU/Linux pr-instaladas. Voc pode pagar mais para
ter este privilgio, mas compra um nvel de paz de mente, desde ento voc pode ter certeza que seu hardware
bem compatvel com GNU/Linux. Praticamente todas as placas que possuem processadores prprios funcionam
sem nenhum problema no Linux (algumas placas da Turtle Beach e mwave tem suporte de som limitado). Se
voc tiver que comprar uma mquina com Windows instalado, leia cuidadosamente a licena que acompanha o
Guia Foca GNU/Linux

47

Windows; voc pode rejeitar a licena e obter um desconto de seu vendedor. Veja
http://www.linuxmall.com/refund/ para detalhes. Se no estiver comprando um computador com GNU/Linux
instalado, ou at mesmo um computador usado, importante verificar se os hardwares existentes so suportados
pelo Kernel do GNU/Linux. Verifique se seu hardware listado no Hardware Compatibility HOWTO, na
documentao do cdigo fonte do Kernel no diretrio Documentation/sound ou consulte um tcnico de
GNU/Linux experiente. Deixe seu vendedor (se conhecer) saber que o que est comprando para um sistema
GNU/Linux. Desta forma isto servir de experincia para que ele poder recomendar o mesmo dispositivo a
outras pessoas que procuram bons dispositivos para sistemas GNU/Linux. Apie vendedores de hardwares
amigos do GNU/Linux.

3.10 - Aterramento
O aterramento correto da instalao eltrica essencial para garantir a proteo de seu microcomputador (e
outros aparelhos que requerem isto). Muitos usurios simplesmente removem o pino central da tomada de seu
computador, ou ligam o terra junto ao neutro da rede eltrica, isto errado e pode trazer srias consequncias. O
computador possui componentes sensveis que geram descargas estticas durante seu funcionamento (fonte,
discos, placas, etc), e estas descargas e rudos so absorvidas pelo sistema de aterramento (que ligado no
gabinete do computador e outros componentes internos). Sem aterramento o seu gabinete passar a dar choques
eltricos (teste com uma chave de testes, ela acender indicando a circulao de corrente eltrica) e a corrente
acumulada poder queimar componentes internos sensveis (placa-me, HD, memrias, placas expansoras).
A ligao do terra ao neutro da rede menos perigosa em condies normais, mas se um raio cair na rede
eltrica as conseqncias podero ser piores. Mesmo a rede de iluminao pblica tendo aterramento em cada
poste isto pode no ser o suficiente para reduzir a carga de um raio que caia nas proximidades.
O sistema de aterramento residencial para PC deve ser feito com uma estaca de cobre com no mnimo 2 metros
de altura. O cobre um timo condutor de eletricidade, perdendo somente para a prata (veja Condutores de
eletricidade, Seo 3.10.1). Cave um buraco no solo com a ajuda de uma cavadeira ( nunca ouviu falar nisso?,
se estiver com dificuldades para cavar por causa de solo ressecado, molhe a terra para facilitar as coisas. Com a
estaca enterrada, prenda um cabo eltrico em sua extremidade. O ideal para testar este sistema de aterramento
seria ter um equipamento chamado terrmetro (medidor de aterramento), mas utilizaremos 2 alternativas mais
acessveis:

Ligue uma lmpada incandescente de 100W em um bocal com uma ponta ligada na extremidade
positiva da rede eltrica (fase) e a outra ponta no fio da barra de cobre. O aterramento est bem feito quando
a lmpada acender quase em sua potncia total. Ligue o fio do aterramento no pino central da tomada de seu
computador.
OBS: Cuidado para no tomar um baita choque durante esta operao que em alguns casos pode ser fatal.
Utilize sandalhas ou sapatos de borracha (materiais isolantes) isto evitar tomar o choque caso acontea.

Ligue a outra extremidade do fio que vem da barra de cobre no pino central da tomada de seu
computador e ligue-o. Consiga um multmetro (analgico ou digital) e coloque para medir em escala DC
10V. Coloque a ponta negativa (preta) no neutro da rede eltrica e encoste a ponta positiva (vermelha) no
gabinete de seu computador. O aterramento estar aprovado caso o valor medido seja de no mximo 2.5
volts.
Caso algo ocorra errado, cheque novamente os passos acima. Se desconfiar das condies do solo, use uma
barra maior ou ligue 2 barras de cobre juntas.

3.10.1 - Condutores de eletricidade


A tabela abaixo est classificada em ordem do material que possui maior conduo de eletricidade (eltrons
mais livres) para o menor.

Prata

Cobre

Ouro

Alumnio

Magnsio

Tungstnio

Ferro

Estanho

Chumbo

Mercrio
Guia Foca GNU/Linux

48

3.11 - Descargas estticas


a energia que se acumula durante o choque das molculas de ar seco ou atrito com outros objetos. Pode
acontecer de em dias secos voc tomar um "choque" ao abrir seu carro ou tocar em algum objeto metlico, isto
uma descarga esttica. Na realidade voc no tomou um choque. Ao tocar em um objeto metlico esta energia
descarregada violentamente. Esta energia pode chegar na ordem de 5 mil volts quando acumulada (assustador
no?). por este motivo que caminhes que transportam combustvel arrastam uma corrente no cho, esta
corrente funciona como um aterramento (veja Aterramento, Seo 3.10) eliminando descargas estticas que
possam gerar fascas e causar um desastre. Pulseiras, cordes, objetos metlicos podem ser usados para eliminar
descargas estticas de pessoas. O contato freqente com o solo um mtodo muito til. Existem casos em que
um colar salvou a vida de pessoas atingidas por raio, justamente pelas explicaes acima. O colar derrete com a
drenagem da eletricidade do raio mas a pessoa tem mais chances de sair viva.
Em indivduos realmente sensveis, uma chapinha de metal pode ser colocada no sapato fazendo contato com o
calcanhar drenando constantemente estas descargas, isto eficaz e bem melhor que sair arrastando correntes por
a. Se voc trabalha com hardwares ou apenas mais um fuador de PCs, agora voc entender porque
recomendvel sempre tocar em partes metlicas do computador antes de mexer em qualquer placa e porque
aquele seu amigo disse que a placa dele queimou depois que resolveu limpar seus contatos.

3.12 - Melhoria de performance


3.12.1 - Particionamento
Para um melhor desempenho, os dados que so solicitados constantemente devero ser armazenados em uma
partio no incio do disco rgido. Esta rea a mais rpida e chega a ser 60% mais rpida que o final do HD
(em alguns modelos). Em especial, a partio de boot, swap e binrios do sistema podero ser armazenados
nesta partio para aumentar a velocidade da carga de programas e no prejudicar a performance do sistema
quando o uso da partio de troca (swap) for necessria.
Em discos rgidos grandes (6GB ou maiores) recomendvel criar no mnimo uma partio pequena para /boot,
outra para /, outra para swap e outra para /usr. Ficando distribudas da seguinte maneira no disco rgido:
BBRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRRRRRRRRR
B - /boot
SSSSSSSSSSUUUUUUUUUUUUUUU
R - Raz /
UUUUUUUUUUUUUUUUUUUUUUU
S - Swap
UUUUUUUUUUUUUUUUUUUUUUU
U - /usr
UUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUU
Mas a swap no ficaria ainda mais rpida sendo a primeira partio no disco? Sim e no: Realmente fica rpida
(na teoria conforme explicado acima), mas levando em considerao que o deslocamento das cabeas de
leitura/gravao do disco rgido leva certo tempo, mais vantajoso mant-la entre as 2 parties mais acessadas,
isto diminui o tempo de acesso caso um programa esteja fazendo uso constante de / ou /usr e precisar trocar
dados na partio swap.
Alm do mais, a partio / geralmente pequena (no mximo 800M) deixando a swap em uma rea muito
prxima do incio do disco rgido. Com base nisto, voc poder ter uma melhor viso tcnica para a construo
de suas parties dependendo da funo do sistema.

3.12.2 - Spindles
Em sistemas que utilizam um disco rgido dedicado para fazer swap, a ligao deste em uma placa controladora
independente aumentar bastante a performance do sistema, pois enquanto o disco principal ligado em sua
controladora estiver fazendo uma operao de leitura, o outro poder estar fazendo sua operao de swap
simultneamente. O mesmo no acontece quando dois discos rgidos IDE esto ligados no mesmo cabo (isto no
acontece no SCSI).

3.12.3 - Fazendo ajustes finos de performance do disco


O hdparm um programa que permite modificar caractersticas diversas da unidade de disco rgido como modo
de transferncia de dados, leitura adiante, dma, cache, leitura simultnea de setores, hibernao, etc.
Por padro as transferncias de dados entre a controladora do HD (a plaquinha que fica embaixo dele) e a
controladora de perifricos feita em 16 bits. Para exibir a configurao atual do disco rgido /dev/hda (por
exemplo), digite o seguinte comando: hdparm /dev/hda
Guia Foca GNU/Linux

49

/dev/hdb:
multcount = 0 (off)
I/O support = 0 (16-bit)
unmaskirq = 0 (off)
using_dma = 1 (off)
keepsettings = 0 (off)
nowerr
= 0 (off)
readonly = 0 (off)
readahead = 8 (on)
Imediatamente podemos modificar os seguintes campos para melhorar sensvelmente o desempenho do disco
rgido:

multcount - Pode ser modificada com -m[num] e especifica o nmero mximo de setores que sero
acessados de uma s vez na operao de leitura da unidade. O valor mximo recomendado igual a
capacidade mxima suportada pelo seu disco rgido, que pode ser obtida com o comando: hdparm -i
/dev/hda
Model=TS6324A2, FwRev=.340 , SerialNo=A99B99JA
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=13228/15/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=256kB, MaxMultSect=16, MultSect=16
CurCHS=13228/15/63, CurSects=12500460, LBA=yes, LBAsects=12500460
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5
O campo MaxMultSect=16 indica o valor de 16 como mximo suportado em uma nica operao pela
unidade. Valores maiores podero ser especificados mas no traro aumento de performance. Para discos
rgidos Western Digital recomendvel deixar este valor como 0, porque eles possuem um mecanismo
embutido para leitura de setores. Para experimentar valores fora dos padres, coloque seu sistema de
arquivos como somente leitura para no perder dados caso algo saia errado.
Note que o comando hdparm -i mostra alguns detalhes interessantes sobre a configurao do disco rgido e
modos de operao suportados.

I/O support - Modificado com -c[num]. O nmero especificado pode ser 0 para transferncia de dados
em 16 bits, 1 para 32 bits e 3 para 32 bits com uma seqencia especial de sincronismo (alguns chips
requerem esta ao invs da 1).

using_dma - Modificado com -d[num]. Habilita ou no o uso de DMA para a transferncia de dados do
HD, ativando o controle de algumas operaes pelo chipset livrando a CPU para processamento. 0 desativa
DMA e 1 ativa. Note que nem todos os chipsets aceitam esta operao.
A ativao de dma pode ser feita automaticamente na recompilao do Kernel ou especificando o parmetro
ideX=dma (X o nmero da controladora IDE) na linha de comando de boot: ou no arquivo /etc/lilo.conf.

unmaskirq - Modificado com -u[num]. Habilita ou no o controlador de disco mascarar as interrupes


do processador durante o processamento das interrupes de disco. 0 desativa esta funo e 1 ativa. Use esta
opo com cuidado e sob seu prprio risco: algumas placas controladores de HD e controladoras de
perifricos no trabalham bem com a taxa de transferncia aumentada, podendo ocorrer perda de dados.
Coloque o sistema de arquivos como somente leitura antes de testar esta caracterstica.

readonly - Modificado com -r[num]. Coloca o disco em modo somente leitura. A montagem da partio
com a opo ro no /etc/fstab preferida.

readahead - Modificado com -a[num]. Configura o nmero de blocos que sero lidos antecipadamente
no sistema de arquivos (por padro usado 8 blocos - 4 Kb). Este nmero poder ser modificado para se
adequar a utilizao do computador. Em sistemas com muita procura de arquivos pequenos (servidores
web), um valor pequeno (como o padro) recomendvel. Se a mquina um servidor de arquivos
dedicado, um valor maior trar maiores benefcios.
Veja mais detalhes sobre o comando hdparm em sua pgina de manual.
OBS: Se o Linux resetar o disco rgido, a maioria das configuraes retornaro ao seu valor padro. Isto ocorre
devido a opes mau utilizadas no hdparm, no suportadas pelo disco rgido ou por problemas no
HD/controladora. Exemplos:
# Ajusta o nmero de setores simultneos para 16 e o modo de transferncia para
# 32 bits no disco rgido /dev/hda
hdparm -c1 -m16 /dev/hda
# Programa a leitura adiante do HD para 64 blocos (32kb), o modo de transferncia
# para 32 bits, usar DMA, e 16 setores simultneos.
Guia Foca GNU/Linux

50

hdparm -c1 -d1 -m16 -a64 /dev/hda


#Mostra os valores de configurao atuais do disco rgido
hdparm /dev/hda

3.12.4 - Data de acesso a arquivos/diretrios


Toda vez que acessamos um arquivo ou diretrio da mquina Linux a data/hora atualizada. Em mquinas
normais isto OK mas em servidores onde o acesso a arquivos constante (como no diretrio /var/spool em
servidores de e-mail ou /usr/ em servidores diskless) recomendvel desativar esta caracterstica. Isto reduzir a
quantidade de buscas das cabeas do disco rgido para a atualizao deste atributo e consequentemente
aumentar a performance na gravao de arquivos (o disco rgido usa o sistema mecnico para ler/gravar dados,
muito mais lento que a memria RAM eletrnica).
chattr -R +A /var/spool
O atributo +A desativa a gravao da "data de acesso" dos arquivos e sub-diretrios dentro de /var/spool. Para
desativar a atualizao da "data de acesso" para toda a partio, voc pode incluir a opo de montagem
noatime no seu /etc/fstab:
/dev/hda1 /var/spool ext2 defaults,noatime 0 1
OBS: O Linux utiliza trs atributos de data para controle de arquivos:

atime - Data/Hora de acesso: atualizado toda vez que o arquivo lido ou executado.

mtime - Data/Hora da modificao, atualizado sempre que alguma modificao ocorre no arquivo ou no
contedo do diretrio. Esta mais interessante que a ctime principalmente quando temos hardlinks.

ctime - Data/Hora da ltima modificao do inodo do arquivo.


Em parties onde a gravao frequente (como na prpria /var/spool) a desativao do atributo atime alm de
melhorar o desempenho do disco, no far muita falta.

3.13 - Perifricos SCSI


Hardwares SCSI (Small Computer System Interfaces) representam a tecnologia ideal para a transferncia de
dados em alta velocidade e ligao de vrios perifricos. A taxa de transferncia especificada para dispositivos
SCSI sempre a padro se comparada a dispositivos IDE (quando uma taxa de 66Mb/s quase nunca atingida).
Estes dispositivos so classificados em 3 categorias:

SCSI I - Usa um cabo de 25 condutores para a ligao de perifricos. Normalmente usado em scanners,
impressoras e outros dispositivos. A taxa de transferncia no muito alta se comparado aos outros tipos
SCSI.

SCSI II - Tambm chamado de Fast SCSI. Usa um cabo de 50 condutores para a ligao de perifricos.
Permite que sejam ligados at 7 perifricos em uma mesma controladora (veja Configurando uma SCSI ID e
terminao, Seo 3.13.1). o mais comum encontrado hoje em dia, mas vem perdendo espao aos poucos
para a tecnologia SCSI III.

SCSI III - Tambm chamado de Fast SCSI SE ou LVD. Usa um cabo de 68 condutores para ligao de
perifricos (veja Configurando uma SCSI ID e terminao, Seo 3.13.1). Permite que sejam ligados at 16
perifricos em uma mesma controladora.
Um cabo SCSI pode ter o comprimento de at 5 metros de extenso. Os perifricos SCSI so identificados
atravs de nmeros chamados de identificador SCSI ou SCSI ID. Estes nmeros vo de 0 a 6 para o padro SCSI
2 e de 0 a 15 para o padro SCSI 3.
Placas SCSI como a Adaptec UV 19160 permitem a ligao de perifricos SCSI 2 e SCSI 3 na mesma placa com
a taxa de transmisso de 160 MB/s por perifrico, alm de possuir um "setup" prprio para configurar as opes
dos dispositivos da placa e a operao da prpria. A tecnologia SCSI algo realmente rpido para a
transferncia de dados e cara tambm, seu uso muito recomendado em servidores crticos. Os prprios
dispositivos SCSI como discos rgidos, gravadores de CD, cd-rom, etc. so construdos de tal forma que tem a
durabilidade maior que perifricos comuns, garantindo a mxima confiana para operao/armazenamento de
dados em longos perodos de operao.

3.13.1 - Configurando uma SCSI ID e terminao


Uma SCSI ID configurada independentemente por dispositivo e consiste em 3 jumpers (ou dip-switches) que
possuem os valores 1, 2 e 4. Veja o exemplo abaixo de uma unidade de CD SCSI 2:
+-------------------------------------------|SCSI ID
|
|
| _____ TERM
| | | | |
Guia Foca GNU/Linux

51

|oooooo
|oooooo
|124T
+--------------------------------------------Se voc deixar os 3 jumpers da SCSI ID abertos, o dispositivo usar a SCSI ID 0. Colocando o jumper na
posio 1, a unidade ter a SCSI ID 1. Se voc colocar um jumper na posio 1 e outro na 4, a unidade ser
identificada pela SCSI ID 5 (quando mais de um jumper ligado, os nmeros sero somados).
A terminao SCSI funciona de forma semelhante a de uma rede BNC, o ltimo perifrico do cabo SCSI deve
ter o jumper de terminao colocado para indicar que o ltimo perifrico do cabo e evitar deflexo de dados.
Algumas placas SCSI modernas ajustam automaticamente a terminao de perifricos sem necessidade de
ajustar manualmente.

Guia Foca GNU/Linux

52

Captulo 4 - Para quem esta migrando (ou pensando em migrar) do


DOS/Windows para o Linux
Este captulo explica as diferenas e particularidades do sistema GNU/Linux comparado ao DOS/Windows e
uma lista de equivalncia entre comandos e programas DOS e GNU/Linux, que pode servir de comparao para
que o usurio possa conhecer e utilizar os comandos/programas GNU/Linux que tem a mesma funo no
ambiente DOS/Windows.

4.1 - Quais as diferenas iniciais


Quando entrar pela primeira vez no GNU/Linux (ou qualquer outro UNIX, a primeira coisa que ver ser a
palavra login: escrita na tela. A sua aventura comea aqui, voc deve ser uma pessoa cadastrada no sistema (ter
uma conta) para poder entrar. No login voc digita seu nome (por exemplo, gleydson) e pressiona <Enter>.
Agora ser lhe pedida a senha. Repare que a senha no mostrada enquanto digitada, isto serve de segurana e
para enganar pessoas que esto prximas de voc "tocando" algumas teclas a mais enquanto digita a senha e
fazendo-as pensar que voc usa uma grande senha (com os asteriscos aparecendo isto no seria possvel). Caso
cometa erros durante a digitao da senha, basta pressionar a tecla <BackSpace> para apagar o ltimo caracter
digitado e terminar a entrada da senha. Pressione <Enter>, se tudo correr bem voc estar dentro do sistema e
ser presenteado com o smbolo # (caso tenha entrado como usurio root) ou $ (caso tenha entrado como um
usurio normal).
Existe um mecanismo de segurana que te alerta sobre eventuais tentativas de entrada no sistema por intrusos
usando seu login. Faa um teste: entre com seu login e digite a senha errada, na segunda vez entre com a senha
correta no sistema. Na penltima linha das mensagens aparece uma mensagem "1 failure since last login", o que
quer dizer "1 falha desde o ltimo login". Isto significa que algum tentou entrar 1 vez com seu nome e senha no
sistema, sem sucesso.
A conta root no tem restries de acesso ao sistema e pode fazer tudo o que quiser, equivalente ao usurio
normal do DOS e Windows. Use a conta root somente para manutenes no sistema e instalao de programas,
qualquer movimento errado pode comprometer todo o sistema. Para detalhes veja A conta root, Seo 13.6.
No GNU/Linux os diretrio so identificados por uma / e no por uma \ como acontece no DOS. Para entrar no
diretrio /bin, voc deve usar cd /bin.
Os comandos so case-sensitive, o que significa que ele diferencia as letras maisculas de minsculas em
arquivos e diretrios. O comando ls e LS so completamente diferentes.
A multitarefa lhe permite usar vrios programas simultaneamente (no pense que multitarefa somente funciona
em ambientes grficos, pois isto errado). Para detalhes veja Execuo de programas, Captulo 7.
Os dispositivos tambm so identificados e uma forma diferente que no DOS por exemplo:
DOS/Windows
------------A:
B:
C:
LPT1
LPT2
LPT3
COM1
COM2
COM3
COM4

Linux
--------------/dev/fd0
/dev/fd1
/dev/hda1
/dev/lp0
/dev/lp1
/dev/lp2
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
/dev/ttyS3

O recurso multiusurio lhe permite acessar o sistema de qualquer lugar sem instalar nenhum driver, ou programa
gigante, apenas atravs de conexes TCP/IP, como a Internet. Tambm possvel acessar o sistema localmente
com vrios usurios (cada um executando tarefas completamente independente dos outros) atravs dos terminais
virtuais. Faa um teste: pressione ao mesmo tempo a tecla <ALT> e <F2> e voc ser levado para o segundo
terminal virtual, pressione novamente <ALT> e <F1> para retornar ao anterior.
Para reiniciar o computador, voc pode pressionar <CTRL>+<ALT>+<DEL> (como usurio root) ou digitar
shudown -r now. Veja Reiniciando o computador, Seo 1.17 para detalhes .
Para desligar o computador, digite shutdown -h now e espere o aparecimento da mensagem Power Down para
apertar o boto LIGA/DESLIGA do computador. Veja Desligando o computador, Seo 1.16 para detalhes.
Guia Foca GNU/Linux

53

4.2 - Comandos equivalentes entre DOS e Linux


Esta seo contm os comandos equivalentes entre estes dois sistemas e a avaliao entre ambos. Grande parte
dos comandos podem ser usados da mesma forma que no DOS, mas os comandos Linux possuem avanos para
utilizao neste ambiente multiusurio/multitarefa.
O objetivo desta seo permitir as pessoas com experincia em DOS fazer rapidamente no GNU/Linux as
tarefas que fazem no DOS. A primeira coluna tem o nome do comando no DOS, a segunda o comando que
possui a mesma funo no GNU/Linux e na terceira coluna as diferenas.
DOS
-------cls
dir

Linux
-----------clear
ls la

Diferenas
-------------------------------------------------Sem diferenas.
A listagem no Linux possui mais campos (as permisses de acesso) e o total de
espao ocupado no diretrio e livre no disco deve ser visto separadamente usando o
comando du e df. Permite tambm listar o contedo de diversos diretrios com um s
comando (ls /bin /sbin /...).
dir/s
ls lR
Sem diferenas.
dir/od
ls tr
Sem diferenas.
cd
cd
Poucas diferenas. cd sem parmetros retorna ao diretrio de usurio e tambm
permite o uso de "cd -" para retornar ao diretrio anteriormente acessado.
del
rm
Poucas diferenas. O rm do Linux permite especificar diversos arquivos que sero
apagados (rm arquivo1 arquivo2 arquivo3). Para ser mostrados os arquivos apagados,
deve-se especificar o parmetro "-v" ao comando, e "-i" para pedir a confirmao ao
apagar arquivos.
md
mkdir
Uma s diferena: No Linux permite que vrios diretrios sejam criados de uma s
vez (mkdir /tmp/a /tmp/b...).
copy
cp
Poucas diferenas. Para serem mostrados os arquivos enquanto esto sendo copiados,
deve-se usar a opo "-v", e para que ele pergunte se deseja substituir um arquivo j
existente, deve-se usar a opo "-i".
echo
echo
Sem diferenas.
Path
path
No Linux deve ser usado ":" para separar os diretrios e usar o comando "export
PATH=caminho1:/caminho2:/caminho3:" para definir a varivel de ambiente PATH.
O path atual pode ser visualizado atravs do comando "echo $PATH".
ren
mv
Poucas diferenas. No Linux no possvel renomear vrios arquivos de uma s vez
(como "ren *.txt *.bak"). necessrio usar um shell script para fazer isto.
type
cat
Sem diferenas.
ver
uname a
Poucas diferenas (o uname tem algumas opes a mais).
date
date
No Linux mostra/modifica a data e hora do sistema.
time
date
No Linux mostra/modifica a data e hora do sistema.
attrib
chmod
O chmod possui mais opes por tratar as permisses de acesso de leitura, gravao e
execuo para donos, grupos e outros usurios.
scandisk fsck.ext2
O fsck mais rpido e extensivo na checagem.
doskey
----A edio de teclas feita automaticamente pelo bash.
edit
vi, ae
O edit mais fcil de usar, mas usurio emacs experientes apreciaro os recursos do
vi ou o emacs (programado em lisp).
fdisk
fdisk, cfdisk Os particionadores do Linux trabalham com praticamente todos os tipos de parties
de diversos sistemas de arquivos diferentes.
format
mkfs.ext2.
Poucas diferenas, precisa apenas que seja especificado o dispositivo a ser formatado
como "/dev/fd0" ou "/dev/hda10" (o tipo de identificao usada no Linux), ao invs
de "A:" ou "C:".
help
man, info
Sem diferenas.
interlnk
plip
O plip do Linux permite que sejam montadas redes reais a partir de uma conexo via
cabo paralelo ou serial. A mquina pode fazer tudo o que poderia fazer conectada em
uma rede (na realidade uma rede e usa o TCP/IP como protocolo) inclusive navegar
na Internet, enviar e-mails, irc, etc.
intersvr
plip
Mesmo que o acima.
keyb
loadkeys
Sem diferenas (somente que a posio das teclas do teclado pode ser editada.
Label
e2label
necessrio especificar a partio que ter o nome modificado.
mem cat/proc/meminfo Mostra detalhes sobre a quantidade de dados top em buffers, cache e memria virtual
Guia Foca GNU/Linux

54

more

more, less

move

mv

scan

-----

backup

tar

print

lpr

vol
xcopy

e2label
cp R

(disco).
O more equivalente a ambos os sistemas, mas o less permite que sejam usadas as
setas para cima e para baixo, o que torna a leitura do texto muito mais agradvel.
Poucas diferenas. Para ser mostrados os arquivos enquanto esto sendo movidos,
deve-se usar a opo "-v", e para que ele pergunte se deseja substituir um arquivo j
existente deve-se usar a opo "-i".
No existem vrus no Linux devido as restries do usurio durante execuo de
programas.
O tar permite o uso de compactao (atravs do parmetro -z) e tem um melhor
esquema de recuperao de arquivos corrompidos que j segue evoluindo h 30 anos
em sistemas UNIX.
O lpr mais rpido e permite at mesmo impresses de grficos ou arquivos
compactados diretamente caso seja usado o programa magicfilter. o programa de
spool de impressoras usados no sistema Linux/Unix.
Sem diferenas.
Pouca diferena, requer que seja usado a opo "-v" para mostrar os arquivos que
esto sendo copiados e "-i" para pedir confirmao de substituio de arquivos.

4.2.1 - Arquivos de configurao


Os arquivos config.sys e autoexec.bat so equivalentes aos arquivos do diretrio /etc especialmente o
/etc/inittab e arquivos dentro do diretrio /etc/init.d.

4.3 - Usando a sintaxe de comandos DOS no Linux


Voc pode usar os comandos do pacote mtools para simular os comandos usados pelo DOS no GNU/Linux. A
diferena bsica que eles tero a letra m no incio do nome. Os seguintes comandos so suportados:

mattrib - Ajusta modifica atributos de arquivos

mcat - Mostra os dados da unidade de disquete em formato RAW

mcd - Entra em diretrios

mcopy - Copia arquivos/diretrios

mdel - Exclui arquivos

mdeltree - Exclui arquivos, diretrios e sub-diretrios

mdir - Lista arquivos e diretrios

mdu - Mostra o espao ocupado pelo diretrio do DOS

mformat - Formatador de discos

minfo - Mostra detalhes sobre a unidade de disquetes

mlabel - Cria um volume para unidades DOS

mmd - Cria diretrios

mmount - Monta discos DOS

mmove - Move ou renomeia arquivos/subdiretrios

mpartition - Particiona um disco para ser usado no DOS

mrd - Remove um diretrio

mren - Renomeia arquivos

mtype - Visualiza o contedo de arquivos (equivalente ao cat)

mtoolstest - Exibe a configurao atual do mtools

mshowfat - Mostra a FAT da unidade

mbadblocks - Procura por setores defeituosos na unidade

mzip - Altera modo de proteo e ejeta discos em unidades Jaz/ZIP

mkmanifest - Cria um shell script para restaurar nomes extensos usados no UNIX

mcheck - Verifica arquivos na unidade

4.4 - Programas equivalentes entre Windows/DOS e o Linux


Esta seo contm programas equivalentes para quem est vindo do DOS e Windows e no sabe o que usar no
GNU/Linux. Esta seo tambm tem por objetivo permitir ao usurio que ainda no usa GNU/Linux decidir se a
passagem vale a pena vendo se o sistema tem os programas que precisa.
Note que esta listagem mostra os programas equivalentes entre o DOS/Windows e o GNU/Linux cabendo a
Guia Foca GNU/Linux

55

voc a deciso final de migrar ou no. Lembrando que possvel usar o Windows, OS/2, DOS, OS/2 e
GNU/Linux no mesmo disco rgido sem qualquer tipo de conflito. A listagem abaixo pode estar incompleta, se
encontrar algum programa que no esteja listado aqui, por favor entre em contato pelo E-Mail
gleydson@escelsanet.com.br para inclui-lo na listagem.
DOS/Windows
----------------MS Word

Linux
----------Star Office

MS Excel
MS PowerPoint
MS Access

Star Office
Star Office
SQL, Oracle

MS Outlook

Pine, Mutt, etc

Internet Explorer

Netscape, Arena

ICQ

LICQ

Photo Shop

The Gimp

Corel Photo Paint


Winamp

Corel Photo Paint


xmms

media player

xanim, xplaymidi

Agente de Sistema

cron

Mixer
Bate-Papo

aumix, cam
talk, ytalk

MIRC
Bitchx, xchat
IIS, Pers.Web Server Apache
Exchange,NT Mail

Sendmail, Exim

Wingate,MS Proxy

Squid, Apache,

Guia Foca GNU/Linux

Diferenas
------------------O Star Office possui todos os recursos do Word alm de ter a
interface grfica igual, menus e teclas de atalho idnticas ao Word,
o que facilita a migrao. Tambm trabalha com arquivos no
formato Word97/2000 e no vulnervel a vrus de macro.
distribudo gratuitamente e no requer pagamento de licena
podendo ser instalado em quantos computadores voc quiser (tanto
domsticos como de empresas).
Mesmos pontos do acima e tambm abre arquivos Excel97/2000.
Mesmos pontos do acima.
Existem diversas ferramentas de conceito para bancos de dados
corporativos no Linux. Todos produtos compatveis com outras
plataformas.
Centenas de programas de e-mail tanto em modo texto como em
modo grfico. Instale, avalie e escolha.
Os trs primeiros para modo Mozilla, lynx grfico e o lynx opera
em modo texto.
Muito prtico e fcil de operar. Possibilita a mudana completa da
aparncia do programa atravs de skins. A organizao dos menus
deste programa outro ponto de destaque.
Fcil de usar, possui muitos scripts que permitem a criao rpida e
fcil de qualquer tipo de efeito profissional pelo usurio mais leigo.
Acompanha centenas de efeitos especiais e um belo manual em
html com muitas fotos (aproximadamente 20MB) que mostra o que
possvel se fazer com ele.
Corel Photo-Paint para Linux.
Possui todos os recursos do programa para Windows alm de
filtros que permite acrescentar efeitos digitais da msica (em tempo
real), eco, etc.
Programas para execuo de xwave, arquivos de msica e videos
multimdia. Existem outras alternativas, a escolha depende de seu
gosto e da sofisticao do programa.
Pouca diferena. O cron d mais liberdade na programao de
tarefas a serem executadas pelo Linux.
Sem diferenas.
O talk e o ytalk permitem a conversa de dois usurios no s
atravs de uma rede local, mas de qualquer parte do planeta, pois
usa o protocolo TCP/IP para comunicao. Muito til e fcil de
usar.
Clientes IRC para Linux
O apache o servidor WEB mais usado no mundo (algo em torno
de 75% das empresas), muito rpido e flexvel de se configurar.
S o Sendmail tem uma base Qmail instalada de mais de 70% no
mundo. O Sendmail o mais rpido e o Qmail o mais seguro.
Todos (especialmente o Sendmail) tem como caracterstica a
flexibilidade de configurao.
A migrao de um servidor proxy ip masquerade, para Linux
requer o uso de nat, diald, vrios programas separados para exim,
para que se tenha um resultado profissional. Isto pode parecer
incmodo no comeo, mas voc logo perceber que a diviso de
servios entre programas mais produtivo. Quando desejar
substituir um deles, o funcionamento dos outros no ser afetado.
No vou entrar em detalhes sobre os programas citados ao lado,
mas o squid um servidor proxy Web (HTTP e HTTPS) completo

56

MS Frontpage

MS Winsock

ViruScan, TBAV

Guia Foca GNU/Linux

e tambm apresenta um excelente servio FTP. Possui outros


mdulos como dns, ping, restries de acesso, limites de tamanho
de arquivos, cache, etc.
Netscape Composer Sem comentrios. Todas so ferramentas para a gerao de grandes
Web Sites. O wdm, por exemplo, usado na gerao do site da
distribuio Debian, (http://www.debian.org) em 27 idiomas
diferentes.
Sem equivalente
O Linux tem suporte nativo a TCP/IP desde o comeo de sua
existncia e no precisa de nenhuma camada de comunicao entre
ele e a Internet. A performance aproximadamente 10% maior em
conexes Internet via fax-modem e outras redes TCP/IP.
----No existem vrus no Linux devido as restries ao usurio durante
a execuo de programas.

57

Captulo 5 - Discos e Parties


Este captulo traz explicaes de como manipular discos rgidos e parties no sistema GNU/Linux e como
acessar seus discos de CD-ROM e parties DOS, Windows 95/98 no GNU/Linux. Tambm ser ensinado
como utilizar o programa mkfs.ext2 para criar um sistema de arquivos EXT2 (formatar o disco) e a ferramenta
mkswap (para criar uma partio ou arquivo de memria virtual).

5.1 - Parties
So divises existentes no disco rgido que marcam onde comea e onde termina um sistema de arquivos. Por
causa destas divises, ns podemos usar mais de um sistema operacional no mesmo computador (como o
GNU/Linux, Windows e DOS), ou dividir o disco rgido em uma ou mais partes para ser usado por um nico
sistema operacional. Para gravar os dados, o disco rgido deve ser primeiro particionado (usando o fdisk),
escolher o tipo da partio (Linux Native, Linux Swap, etc) e depois aquela partio deve ser formatada com o
mkfs.ext2 (veja Partio EXT2 (Linux Native), Seo 5.3). Aps criada e formatada, a partio ser identificada
como um dispositivo no diretrio /dev (veja Identificao de discos e parties em sistemas Linux, Seo 5.8) .
e dever ser montada (Montando (acessando) uma partio de disco, Seo 5.9) para permitir seu uso no
sistema. Uma partio de disco no interfere em outras parties existentes, por este motivo possvel usar o
Windows, GNU/Linux e qualquer outro sistema operacional no mesmo disco. Para escolher qual deles ser
inicializado, veja Gerenciadores de Partida (boot loaders), Captulo 6.
Para particionar (dividir) o disco rgido em uma ou mais partes necessrio o uso de um programa de
particionamento. Os programas mais conhecidos para particionamento de discos no GNU/Linux so fdisk,
cfdisk e o Disk Druid.
Lembre-se: Quando se apaga uma partio, voc estar apagando todos os arquivos existentes nela.
A partio do tipo Linux Native (Tipo 83) a usada para armazenar arquivos no GNU/Linux. Para detalhes veja
Partio EXT2 (Linux Native), Seo 5.3.
A partio do tipo Linux Swap (Tipo 82) usada como memria virtual. Para detalhes veja Partio Linux Swap
(Memria Virtual), Seo 5.4.
Em sistemas novos, comum encontrar o Windows instalado em uma partio que consome todo o espao do
disco rgido. Uma soluo para instalar o GNU/Linux apagar a partio Windows e criar trs com tamanhos
menores (uma para o Windows, uma para o GNU/Linux e outra para a memria virtual do Linux (SWAP). Ou
criar apenas 2 se voc no quiser mais saber do Windows.
A outra usar o programa FIPS para diminuir o tamanho da partio Windows (usando o espao livre existente)
e criar as 2 parties requeridas pelo GNU/Linux no espao restante, sem apagar o Windows. Esta tcnica
tambm chamada de reparticionamento no destrutivo (e o outro obviamente reparticionamento destrutivo).
Caso decida usar o FIPS, pegue a verso 2.0 ou superior do programa, pois funciona nativamente com sistema
de arquivos FAT32 (voc o encontra no site de sua distribuio GNU/Linux).
Para mais detalhes sobre discos, parties ou como particionar seu disco, veja algum bom documento sobre
particionamento (como a pgina de manual e documentao do fdisk, cfdisk ou Disk Druid).

5.2 - Sistema de Arquivos


criado durante a "formatao" da partio de disco (quando se usa o comando mkfs.ext2). Aps a formatao
toda a estrutura para leitura/gravao de arquivos e diretrios pelo sistema operacional estar pronta para ser
usada. Normalmente este passo feito durante a instalao de sua distribuio GNU/Linux.
Cada sistema de arquivos tem uma caracterstica em particular mas seu propsito o mesmo: Oferecer ao
sistema operacional a estrutura necessria para ler/gravar os arquivos/diretrios.
Entre os sistemas de arquivos existentes podemos citar:

Ext2 - Usado em parties Linux Nativas para o armazenamento de arquivos. identificado pelo cdigo
83. Seu tamanho deve ser o suficiente para acomodar todo os arquivos e programas que deseja instalar no
GNU/Linux (voc encontra isto no manual de sua distribuio). Para detalhes veja Partio EXT2 (Linux
Native), Seo 5.3.

Swap - Usado em parties Linux Swap para oferecer memria virtual ao sistema. Note que altamente
recomendado o uso de uma partio swap no sistema (principalmente se voc tiver menos que 16MB de
memria RAM). Este tipo de partio identificado pelo cdigo 82. Para detalhes veja Partio Linux Swap
(Memria Virtual), Seo 5.4.

proc - Sistema de arquivos do Kernel (veja O sistema de Arquivos /proc, Seo 5.5).

FAT12 - Usado em disquetes no DOS

FAT16 - Usado no DOS e oferece suporte at discos de 2GB


Guia Foca GNU/Linux

58

FAT32 - Tambm usado no DOS e oferece suporte a discos de at 2 Terabytes

5.3 - Partio EXT2 (Linux Native)


A partio EXT2 o tipo usado para criar o sistema de arquivos Linux Native usado para armazenar o sistema
de arquivos EXT2 (aps a formatao) e permitir o armazenamento de dados. Para detalhes de como criar uma
partio EXT2 veja Criando um sistema de arquivos EXT2 em uma partio, Seo 5.3.1.
Este tipo de partio normalmente identificado pelo cdigo 83 nos programas de particionamento de disco.
Note que tambm possvel criar um sistema de arquivos EXT2 em um arquivo (ao invs de uma partio) que
poder ser montado e acessado normalmente pelo sistema de arquivos (veja Criando um sistema de arquivos
EXT2 em um arquivo, Seo 5.3.2.
Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e conseqentemente uma partio
Minix) para o armazenamento de arquivos. Com a evoluo do desenvolvimento, foi criado o padro EXT
(Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended Filesystem) que o usado hoje em dia.
Voc deve escolher este tipo de partio para armazenar seus arquivos, o padro atualmente, o mais rpido,
no se fragmenta to facilmente pois permite a localizao do melhor lugar onde o arquivo se encaixa no disco,
etc. Isto til para grandes ambientes multiusurio onde vrias pessoas gravam/apagam arquivos o tempo todo.

5.3.1 - Criando um sistema de arquivos EXT2 em uma partio


O utilitrio usado para formatar uma partio EXT2 o mkfs.ext2. Aps terminar este passo, seu sistema de
arquivos EXT2 estar pronto para ser usado.
Aps particionar seu disco rgido e criar uma (ou vrias) parties EXT2, use o comando:
mkfs.ext2 /dev/hda?
Onde a "?" em hda? significa o nmero da partio que ser formatada. A identificao da partio mostrada
durante o particionamento do disco, anote se for o caso. hda o primeiro disco rgido IDE, hdb o segundo
disco rgido IDE. Discos SCSI so identificados por sda?, sdb?, etc. Para detalhes sobre a identificao de
discos, veja Identificao de discos e parties em sistemas Linux, Seo 5.8.
Algumas opes so teis ao mkfs.ext2:
-c
- Procura blocos danificados na partio antes de criar o sistema de arquivos.
-L NOME
- Coloca um nome (label) no sistema de arquivos.
-b NUM
- Define o tamanho do bloco, em bytes.
Agora para acessar a partio dever ser usado o comando: mount /dev/hda? /mnt -t ext2
Para mais detalhes veja Montando (acessando) uma partio de disco, Seo 5.9.
Note que possvel criar um sistema de arquivos no disco rgido sem criar uma partio usando /dev/hda,
/dev/hdb, etc. EVITE FAZER ISSO! Como no estar criando uma partio, o disco estar divido de maneira
incorreta, voc no poder apagar o sistema de arquivos completamente do disco caso precise (lembre-se que
voc no criou uma partio), e a partio possui uma assinatura apropriada que identifica o sistema de
arquivos.

5.3.2 - Criando um sistema de arquivos EXT2 em um arquivo


possvel criar um sistema de arquivos EXT2 em um arquivo que poder ser montado e acessado normalmente
como se fosse uma partio normal. Isto possvel por causa do recurso loop oferecido pelo Kernel do
GNU/Linux. Os dispositivos de loop esto disponveis no diretrio /dev com o nome loop? (normalmente esto
disponveis 8 dispositivos de loop).
Isto possvel usando o comando dd e o mkfs.ext2. Veja passo a passo como criar o sistema de arquivos EXT2
em um arquivo:
1.
Use o comando dd if=/dev/zero of=/tmp/arquivo-ext2 bs=1024 count=10000 para criar um arquivo
arquivo-ext2 vazio de 10Mb de tamanho em /tmp. Voc pode modificar os parmetros de of para escolher
onde o arquivo ser criado, o tamanho do arquivo poder ser modificado atravs de count
2.
Formate o arquivo com mkfs.ext2 /tmp/arquivo-ext2. Ele primeiro dir que o arquivo arquivo-ext2 no
um dispositivo de bloco especial (uma partio de disco) e perguntar se deve continuar, responda com y.
3.
O sistema de arquivos EXT2 ser criado em /tmp/arquivo-ext2 e estar pronto para ser usado.
4.
Monte o arquivo arquivo-ext2 com o comando: mount /tmp/arquivo-ext2 /mnt -o loop=/dev/loop1. Note
que foi usado o parmetro -o loop para dizer ao comando mount para usar os recursos de loop do Kernel
para montar o arquivo.
5.
Confira se o sistema de arquivos EXT2 em arquivo-ext2 foi realmente montado no sistema de arquivos
digitando df -T. Para detalhes, veja df, Seo 10.3.
Pronto! o que voc gravar para /mnt ser gravado dentro do arquivo /tmp/arquivo-ext2. Como foi criado um
sistema de arquivos EXT2 em arquivo-ext2, voc poder usar todos os recursos da partio EXT2 normal, como
Guia Foca GNU/Linux

59

permisses de arquivos e diretrios, links simblicos, etc.


O uso do dispositivo de loop permite que o dispositivo /dev/loop1 seja associado ao arquivo /arquivo-ext2 e
assim permitir sua montagem e uso no sistema.
Voc poder usar apenas -o loop com o comando mount, assim o Kernel gerenciar automaticamente os
dispositivos de loop.
Caso faa isto manualmente, lembre-se de usar dispositivos /dev/loop diferentes para cada arquivo que montar
no sistema. Pois cada um faz referncia a um nico arquivo.

5.4 - Journaling
O sistema de journaling grava qualquer operao que ser feita no disco em uma rea especial chamada
"journal", assim se acontecer algum problema durante a operao de disco, ele pode voltar ao estado anterior do
arquivo, ou finalizar a operao.
Desta forma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade e maior tolerncia a
falhas. Aps uma falha de energia, por exemplo, o journal analisado durante a montagem do sistema de
arquivos e todas as operaes que estavam sendo feitas no disco so verificadas. Dependendo do estado da
operao, elas podem ser desfeitas ou finalizadas. O retorno do servidor praticamente imediato (sem precisar a
enorme espera da execuo do fsck em parties maiores que 10Gb), garantindo o rpido retorno dos servios
da mquina.
Outra situao que pode ser evitada com inconsistncias no sistema de arquivos do servidor aps a situao
acima, fazendo o servidor ficar em estado 'single user' e esperando pela interveno do administrador. Este
captulo do guia explica a utilizao de journaling usando o sistema de arquivos ext3 (veja Partio EXT3
(Linux Native), Seo 5.12 para detalhes).

5.5 - Partio EXT3 (Linux Native)


O sistema de arquivos ext3 faz parte da nova gerao extended file system do Linux, sendo que seu maior
benefcio o suporte a journaling.
O uso deste sistema de arquivos comparado ao ext2, na maioria dos casos, melhora o desempenho do sistema de
arquivos atravs da gravao seqencial dos dados na rea de metadados e acesso mhash a sua rvore de
diretrios.
A estrutura da partio ext3 semelhante a ext2, o journaling feito em um arquivo chamado .journal que fica
oculto pelo cdigo ext3 na partio (desta forma ele no poder ser apagado, comprometendo o funcionamento
do sistema). A estrutura idntica da partio ext3 com a ext2 torna mais fcil a manuteno do sistema, j que
todas as ferramentas para recuperao ext2 funcionaro sem problemas.

5.5.1 - Criando um sistema de arquivos EXT3 em uma partio


Para criar uma partio ext3, utilize o comando mkfs.ext3 ou o mkfs.ext2 junto com a opo -j. As opes usadas
pelo mkfs.ext3 so idnticas a do mkfs.ext2 (documentado em Criando um sistema de arquivos EXT2 em uma
partio, Seo 5.3.1). A nica vantagem desta ferramenta comparada ao mkfs.ext2 que a opo -j
automaticamente adicionada a linha de comando para criar um sistema de arquivos com journal. Se voc
daqueles que querem ter um controle maior sobre o tamanho do arquivo de journal, use a opo -J [tam] (onde
tamanho o tamanho em Megabytes).
Quando uma partio ext3 criada, o arquivo .journal criado no raz da partio, sendo usado para gravar os
metadados das transaes de journaling. A estrutura da partio ext2 no difere em nada da ext3, a no ser este
arquivo e a opo "has_journal" que passada a partio.
Por exemplo, para criar uma partio ext3 em /dev/hda1:
mkfs.ext3 /dev/hda1
ou
mkfs.ext2 -j /dev/hda1
Basta agora montar a partio com o comando mount /dev/hda1 /teste -t ext3 (para montar a partio em /teste.
Aps isto, modifique o /etc/fstab para montar a partio como ext3 quando o Linux for iniciado. Para mais
detalhes veja Montando (acessando) uma partio de disco, Seo 5.9. ). Caso o suporte a ext3 tenha sido
compilado no Kernel, ele tentar detectar e montar a partio como ext3, caso contrrio, ele usar ext2.
Sua partio agora est montada como ext3, para conferir digite: df -T.
OBS: Quando criar um sistema de arquivos ext3 em uma partio raz (/), tenha certeza de incluir o suporte a
ext3 embutido no Kernel, caso contrrio a partio ser montada como ext2.

Guia Foca GNU/Linux

60

5.5.2 - Criando um sistema de arquivos EXT3 em um arquivo


As instrues para criar um sistema de arquivos ext3 em um arquivo no difere muito das instrues de Criando
um sistema de arquivos EXT2 em um arquivo, Seo 5.3.2, apenas utilize a opo -j ou -J [tamanho_em_mb]
(como explicado em Criando um sistema de arquivos EXT3 em uma partio, Seo 5.12.1).

5.5.3 - Fazendo a converso do sistema de arquivos EXT2 para EXT3


Se voc j possui um uma partio ext2 e deseja converte-la para ext3 isto poder ser feito facilmente, de forma
segura (sem qualquer risco de perda de dados) e voc poder voltar para o sistema ext2 caso deseje (veja
Convertendo de EXT3 para EXT2, Seo 5.12.4).
Primeiro, execute o comando tune2fs na partio que deseja converter com a opo -j ou -J [tamanho_journal]
para adicionar o suporte a journaling na partio. Este comando poder ser executado com segurana em uma
partio ext2 montada, aps converter remontar a partio usando os comandos umount /partio e mount
/partio.
Aps a converso para ext3 desnecessria a checagem peridica do sistema de arquivos (que por padro aps
20 montagens e a cada 30 dias). Voc pode desativar a checagem aps o nmero mximo de montagens com a
opo -c [num_vezes], e o nmero de dias mximos antes de verificar novamente com a opo -i [num_dias] (o
uso de 0 desativa). Por exemplo:
tune2fs -c 0 -i 90 /dev/hda2
Desativa a checagem aps nmero mximo de montagens (-c 0) e diz para a partio ser verificada a cada 90
dias (-i 90).
O ltimo passo modificar o /etc/fstab para que a partio seja montada como ext3 na inicializao e depois
desmontar (umount /dev/hda2) e remonta-la (mount /dev/hda2) para usar o suporte ext3. Confira se ela est
usando ext3 usando o comando df -T.
OBS: Caso a partio convertida para ext3 seja a raz (/), tenha certeza de incluir o suporte a ext3 embutido no
Kernel, caso contrrio, a partio ser montada como ext2.

5.5.4 - Convertendo de EXT3 para EXT2


Remover o suporte a ext3 de uma partio simples, rpido e seguro. Execute os seguintes passos:

Execute o comando: tune2fs -O^has_journal /dev/hdxx na partio que deseja remover o


journal. Este comando poder ser executado em uma partio montada.

Modifique o /etc/fstab e altere a partio para ext2.

Desmonte e monte novamente a partio com os comandos: umount /dev/hdxx e mount


/dev/hdxx.
Pronto! a partio agora novamente uma partio ext2 normal, confira digitando df -T.

5.6 - Sistema de arquivos reiserfs


Este um sistema de arquivos alternativo ao ext2/3 que tambm possui suporte a journaling. Entre suas
principais caractersticas, esto que ele possui tamanho de blocos variveis, suporte a arquivos maiores que 2
Gigabytes (esta uma das limitaes do ext3) e o acesso mhash a rvore de diretrios um pouco mais rpida
que o ext3.
Para utilizar reiserfs, tenha certeza que seu Kernel possui o suporta habilitado (na seo File Systems) e instale o
pacote reiserfsprogs que contm utilitrios para formatar e verificar este tipo de partio.

5.6.1 - Criando um sistema de arquivos reiserfs em uma partio


Para criar uma partio reiserfs, primeiro instale o pacote reiserfsprogs (apt-get install reiserfsprogs).
Para criar uma partio reiserfs, primeiro crie uma partio ext2 normal, e ento use o comando:
mkreiserfs /dev/hda?
Onde:
a "?" em hda? significa o nmero da partio que ser formatada com o sistema de arquivos reiserfs. A
identificao da partio mostrada durante o particionamento do disco, anote se for o caso. hda o primeiro
disco rgido IDE, hdb o segundo disco rgido IDE. Discos SCSI so identificados por sda?, sdb?, etc. Para
detalhes sobre a identificao de discos, veja Identificao de discos e parties em sistemas Linux, Seo 5.11.
Algumas opes so teis ao mkreiserfs:

-s [num] - Especifica o tamanho do arquivo de journal em blocos. O valor mnimo 513 e o mximo
32749. O valor padro 8193.

-l [NOME] - Coloca um nome (label) no sistema de arquivos.

-f - Fora a execuo do mkreiserfs.


Guia Foca GNU/Linux

61


-d - Ativa a depurao durante a execuo do mkreiserfs.
Agora para acessar a partio dever ser usado o comando:
mount /dev/hda? /mnt -t reiserfs
Para mais detalhes veja Montando (acessando) uma partio de disco, Seo 5.12.
Note que possvel criar um sistema de arquivos no disco rgido sem criar uma partio usando /dev/hda,
/dev/hdb, etc. usando a opo f.
EVITE FAZER ISSO! Como no estar criando uma partio, o disco estar divido de maneira incorreta, voc
no poder apagar o sistema de arquivos completamente do disco caso precise (lembre-se que voc no criou
uma partio), e a partio possui uma assinatura apropriada que identifica o sistema de arquivos.

5.6.2 - Criando um sistema de arquivos reiserfs em um arquivo


O sistema de arquivos reiserfs tambm poder ser criado em um arquivo, usando os mesmos benefcios
descritos em Criando um sistema de arquivos EXT2 em um arquivo, Seo 5.3.2. Para fazer isso execute os
seguintes passos em sequncia:

Use o comando dd if=/dev/zero of=/tmp/arquivo-reiserfs bs=1024 count=33000 para criar um arquivo


arquivo-reiserfs vazio de 33Mb de tamanho em /tmp. Voc pode modificar os parmetros de of para escolher
onde o arquivo ser criado, o tamanho do arquivo poder ser modificado atravs de count. Note que o
tamanho mnimo do arquivo deve ser de 32Mb, devido aos requerimentos do reiserfs.

Formate o arquivo com mkreiserfs -f /tmp/arquivo-reiserfs. Ele primeiro dir que o arquivo arquivoreiserfs no um dispositivo de bloco especial (uma partio de disco) e perguntar se deve continuar,
responda com y.

O sistema de arquivos reiserfs ser criado em /tmp/arquivo-reiserfs e estar pronto para ser usado.

Monte o arquivo arquivo-reiserfs com o comando:


mount /tmp/arquivo-reiserfs /mnt -t reiserfs -o loop=/dev/loop1.
Note que foi usado o parmetro -o loop para dizer ao comando mount para usar os recursos de loop do
Kernel para montar o sistema de arquivos. O parmetro -t reiserfs poder ser omitido, se desejar.

Confira se o sistema de arquivos reiserfs em arquivo-reiserfs foi realmente montado no sistema de


arquivos digitando df -T. Para detalhes, veja df, Seo 10.3.
Pronto! o que voc gravar para /mnt ser gravado dentro do arquivo /tmp/arquivo-reiserfs. Voc poder usar
todos os recuros de um sistema de arquivos EXT2 como permisses de arquivos e diretrios, links simblicos,
etc.
O uso da opo loop=/dev/loop1 permite que o dispositivo /dev/loop1 seja associado ao arquivo /arquivoreiserfs e assim permitir sua montagem e uso no sistema.
Voc poder usar apenas -o loop com o comando mount, assim o Kernel gerenciar automaticamente os
dispositivos de loop.
Caso faa isto manualmente, lembre-se de usar dispositivos /dev/loop? diferentes para cada arquivo que montar
no sistema. Pois cada um faz referncia a um nico arquivo.

5.6.3 - Nomeando uma partio de disco


O comando e2label usado para esta funo.
e2label [dispositivo] [nome]
Onde:

dispositivo - Partio que ter o nome modificado

nome - Nome que ser dado a partio (mximo de 16 caracteres). Caso seja usado um nome de volume
com espaos, ele dever ser colocado entre "aspas". Se no for especificado um nome, o nome atual da
partio ser mostrado.
O nome da partio tambm pode ser visualizado atravs do comando dumpe2fs (veja dumpe2fs, Seo 5.3.5).
Exemplo: e2label /dev/sda1 FocaLinux, e2label /dev/sda1 "Foca Linux"

5.6.4 - Criando o diretrio especial lost+found


O utilitrio mklost+found cria o diretrio especial lost+found no diretrio atual. O diretrio lost+found criado
automticamente aps a formatao da partio com o mkfs.ext2, a funo deste diretrio pre-alocar os blocos
de arquivos/diretrio durante a execuo do programa fsck.ext2 na recuperao de um sistema de arquivos (veja
Checagem dos sistemas de arquivos, Seo 25.1). Isto garante que os blocos de disco no precisaro ser
diretamente alocados durante a checagem.
mklost+found
OBS: Este comando s funciona em sistemas de arquivos ext2
Guia Foca GNU/Linux

62

Exemplo: cd /tmp;mklost+found;ls -a

5.6.5 - dumpe2fs
Mostra detalhes sobre uma partio Linux.
dumpe2fs [opes] [partio]
Onde:
partio - Identificao da partio que ser usada.
Opes:

-b - Mostra somente os blocos marcado como defeituosos no sistema de arquivos especificado.


Este comando lista diversas opes teis do sistema de arquivos como o tipo do sistema de arquivos,
caractersticas especiais, nmero de inodos, blocos livres, tamanho do bloco, intervalo entre checagens
automticas, etc.
Exemplo: dumpe2fs /dev/sda1, dumpe2fs -b /dev/sda1

5.6.6 - Partio EXT2 ou arquivo?


Criar uma partio EXT2 ou um arquivo usando o loop? Abaixo esto algumas consideraes:
A partio EXT2 o mtodo recomendado para a instalao do GNU/Linux.
O desempenho da partio EXT2 bem melhor se comparado ao arquivo porque acessada diretamente
pelo Kernel (SO).
O arquivo EXT2 til para guardarmos dados confidenciais em disquetes ou em qualquer outro lugar no
sistema. Voc pode perfeitamente gravar seus arquivos confidenciais em um arquivo chamado libBlaBlaBla2.0 no diretrio /lib e ningum nunca suspeitar deste arquivo (acho que no). Tambm possvel
criptografa-lo para que mesmo algum descobrindo que aquilo no uma lib, no poder abri-lo a no ser
que tenha a senha (isto coberto no documento Loopback-encripted-filesystem.HOWTO).
O uso do arquivo EXT2 til quando voc est perdendo espao na sua partio EXT2 e no quer reparticionar seu disco pois teria que ser feita uma re-instalao completa e tem muito espao em um partio
de outro SO (como o Windows).
Voc poderia facilmente copiar o contedo de /var, por exemplo, para o arquivo EXT2 ext2-l criado no
diretrio raz do Windows, apagar o contedo de /var (liberando muito espao em disco) e ento montar
ext2-l como /var. A partir de agora, tudo o que for gravado em /var ser na realidade gravado no arquivo
ext2-l.
Para o sistema acessar o arquivo, deve passar pelo sistema de arquivos loop e FAT32, isto causa um
desempenho menor.

5.7 - Partio Linux Swap (memria virtual)


Este tipo de partio usado para oferecer o suporte a memria virtual ao GNU/Linux em adio a memria
RAM instalada no sistema. Este tipo de partio identificado pelo tipo 82 nos programas de particionamento de
disco para Linux. Para detalhes de como criar uma partio Linux Swap veja Criando sistema de arquivos Swap
em uma partio, Seo 5.4.1.
Somente os dados na memria RAM so processados pelo processador, por ser mais rpida. Desta forma
quando voc est executando um programa e a memria RAM comea a encher, o GNU/Linux move
automaticamente os dados que no esto sendo usados para a partio swap e libera a memria RAM para a
continuar carregando os dados necessrios para o programa. Quando os dados movidos para a partio swap so
solicitados, o GNU/Linux move os dados da partio swap para a Memria. Por este motivo a partio swap
tambm chamada de troca ou memria virtual.
A velocidade em que os dados so movidos da memria RAM para a partio muito alta. Note tambm que
possvel criar o sistema de arquivos swap em um arquivo ao invs de uma partio (veja Criando um sistema de
arquivos Swap em um arquivo, Seo 5.4.2).

5.7.1 - Criando sistema de arquivos swap em uma partio


O programa usado para formatar uma partio swap o mkswap. Seu uso simples:
mkswap /dev/hda?
Novamente veja Identificao de discos e parties em sistemas Linux, Seo 5.8 caso no souber identificar
seus discos e parties. O nome do dispositivo da partio swap pode ser visualizado atravs de seu programa
de particionamento, voc pode usar o comando fdisk -l /dev/hda para listar as parties no primeiro disco rgido
e assim verificar qual dispositivo corresponde a partio swap.
A opo -c tambm pode ser usada com o mkswap para checar se existem agrupamentos danificados na
partio.
Guia Foca GNU/Linux

63

Com a partio swap formatada, use o comando: swapon /dev/hda? para ativar a partio swap (lembre-se de
substituir ? pelo nmero de sua partio swap).
Observaes:
Os Kernels do GNU/Linux 2.0.xx e anteriores somente suportam parties swap de at 128MB. Caso precise de
mais que isso, crie mais parties swap ou atualize seu sistema para trabalhar com o Kernel 2.2.xx
Se utilizar mais que 1 partio swap, pode ser til o uso da opo -p NUM que especifica a prioridade em que a
partio swap ser usada. Pode ser usado um valor de prioridade entre 0 e 32767, parties com nmero maior
sero usadas primeiro, sendo que na montagem automtica atravs de "mount -a" podem ser designados
nmeros negativos.
Procure usar o nmero maior para parties mais rpidas (elas sero acessadas primeiro) e nmeros maiores
para parties mais lentas. Caso precise desativar a partio swap, use o comando: swapoff /dev/hda?.

5.7.2 - Criando um sistema de arquivos swap em um arquivo


Tambm possvel criar um arquivo que poder ser usado como memria virtual. Veja passo a passo como fazer
isso:
1.
Use o comando dd if=/dev/zero of=/tmp/troca bs=1024 count=16000 para criar um arquivo chamado
troca vazio de 16Mb de tamanho em /tmp. Voc pode modificar os parmetros de of para escolher onde o
arquivo ser criado, o tamanho do arquivo poder ser modificado atravs de count.
2.
Execute mkswap /tmp/troca para formatar o arquivo. Aps concluir este passo, o sistema de arquivos
swap estar criado e pronto para ser usado.
3.
Ative o arquivo de troca com o comando swapon /tmp/troca.
4.
Confira se o tamanho da memria virtual foi modificado digitando cat /proc/meminfo ou free.
Observaes:

Podem ser usadas parties de troca e arquivos de troca juntos, sem problemas.

Caso seu sistema j tenha uma partio de swap, recomendvel deixar o acesso ao arquivo
swap com uma prioridade menor (usando a opo -p NUM com o comando swapon).

5.7.3 - Partio swap ou arquivo?


Criar uma partio de troca ou um arquivo de troca? Abaixo algumas vantagens e desvantagens:
A partio swap mais rpida que o arquivo swap pois acessada diretamente pelo Kernel. Se o seu
computador tem pouca memria (menos que 32Mb) ou voc tem certeza que o sistema recorre
freqentemente a memria virtual para executar seus programas, recomendvel usar uma partio swap.
O arquivo de troca permite que voc crie somente uma partio Linux Native e crie o arquivo de troca na
partio EXT2.
Voc pode alterar o tamanho do arquivo de troca facilmente apagando e criando um novo arquivo como
descrito em Criando um sistema de arquivos Swap em um arquivo, Seo 5.4.2.
possvel criar um arquivo de troca em outros tipos de parties como FAT16, FAT32, etc.
O arquivo de troca estar disponvel somente aps o sistema de arquivos que o armazena (EXT2, FAT32,
etc) estar montado. Isto um problema para sistemas com pouca memria que dependem do arquivo de
troca desde sua inicializao.

5.8 - O sistema de arquivos /proc


o sistema de arquivos do Kernel do GNU/Linux. Ele oferece um mtodo de ler, gravar e modificar
dinamicamente os parmetros do Kernel, muito til para curiosos (como eu) e programas de configurao. A
modificao dos arquivos do diretrio /proc o mtodo mais usado para modificar a configurao do sistema e
muitos programas tambm dependem deste diretrio para funcionar.
Nele voc tem todo o controle do que o seus sistema operacional est fazendo, a configurao dos hardwares,
interrupes, sistema de arquivos montado, execuo de programas, memria do sistema, rede, etc.
Agora entre no diretrio /proc digite ls e veja a quantidade de arquivos e diretrios que ele possui, d uma
passeada por eles. Abaixo a descrio de alguns deles (todos podem ser visualizados pelo comando cat):
Diretrios com nmeros - Estes identificam os parmetros de um processo em execuo. Por exemplo, se o PID
(identificao do processo) do inetd for 115, voc pode entrar no diretrio 115 e verificar as opes usadas para
execuo deste programa atravs de cada arquivos existente dentro do diretrio. Alguns so:

cmdline - O que foi digitado para iniciar o processo (pode tambm ter sido iniciado atravs de um
programa ou pelo Kernel).

environ - Variveis de ambiente existentes no momento da execuo do processo.

status - Dados sobre a execuo do processo (PID, status da execuo do programa, memria
Guia Foca GNU/Linux

64

consumida, memria executvel, UID, GID, etc).

apm - Dados sobre o gerenciamento de energia

cmdline - Linha de comando usada para inicializar o Kernel GNU/Linux. Os parmetros so passados
atravs do programa de inicializao, como o LILO, LOADLIN, SYSLINUX.

cpuinfo - Detalhes sobre a CPU do sistema

devices - Dispositivos usados no sistema

dma - Canais de DMA usados por dispositivos

filesystems - Sistemas de arquivos em uso atualmente

interrupts - Interrupes usadas por dispositivos

ioports - Portas de entrada e sada usadas pelos dispositivos do sistema

kcore - Este arquivo corresponde a toda a memria RAM em seu sistema. Seu tamanho
correspondente a memria RAM do micro

kmsg - Permite visualizar mensagens do Kernel (use o comando cat < kmsg para visualiza-lo e
pressione <CTRL>+<C> para cancelar

loadavg - Mdia de carga do sistema

meminfo - Dados de utilizao da memria do sistema

misc - Outras configuraes

modules - Mdulos atualmente carregados no Kernel

mounts - Sistemas de arquivos atualmente montados

pci - Detalhes sobre dispositivos PCI do sistema

rtc - Relgio em tempo real do sistema

uptime - Tempo de execuo do sistema

version - Verso atual do Kernel, programa usado na compilao, etc

Diretrio net - Dados sobre a rede do sistema

Diretrio sys - Dados sobre outras reas do sistema

Diretrio scsi - Detalhes sobre dispositivos SCSI do sistema


Note que o diretrio /proc e os arquivos existentes dentro dele esto localizados no diretrio raiz (/), mas no
ocupa nenhum espao no disco rgido.

5.9 - Formatando disquetes


As subsees seguintes explicaro maneiras de formatar seus disquetes para serem usados no GNU/Linux e
DOS/Windows.

5.9.1 - Formatando disquetes para serem usados no Linux


Para formatar disquetes para serem usados no GNU/Linux use o comando:
mkfs.ext2 [-c] [/dev/fd0]
Em alguns sistemas voc deve usar mke2fs no lugar de mkfs.ext2. A opo -c faz com que o mkfs.ext2 procure
por blocos danificados no disquete e /dev/fd0 especifica a primeira unidade de disquetes para ser formatada
(equivalente a A: no DOS). Mude para /dev/fd1 para formatar um disquete da segunda unidade.
OBS: Este comando cria um sistema de arquivos ext2 no disquete que nativo do GNU/Linux e permite usar
caractersticas como permisses de acesso e outras. Isto tambm faz com que o disquete NO possa ser lido
pelo DOS/Windows. Para formatar um disquete no GNU/Linux usando o FAT12 (compatvel com o
DOS/Windows) veja prxima seo.
Exemplo: mkfs.ext2 -c /dev/fd0

5.9.2 - Formatando disquetes compatveis com o DOS/Windows


A formatao de disquetes DOS no GNU/Linux feita usando o comando superformat que geralmente
includo no pacote mtools. O superformat formata (cria um sistema de arquivos) um disquete para ser usado no
DOS e tambm possui opes avanadas para a manipulao da unidade, formatao de intervalos de cilindros
especficos, formatao de discos em alta capacidade e verificao do disquete.
superformat [opes] [dispositivo]
dispositivo - Unidade de disquete que ser formatada. Normalmente /dev/fd0 ou /dev/fd1 especificando
respectivamente a primeira e segunda unidade de disquetes.
Opes:

-v [num] - Especifica o nvel de detalhes que sero exibidos durante a formatao do disquete. O nvel 1
Guia Foca GNU/Linux

65

especifica um ponto mostrado na tela para cada trilha formatada. Veja a pgina de manual do superformat
para detalhes.

-superverify - Verifica primeiro se a trilha pode ser lida antes de formata-la. Este o padro.

--dosverify, -B - Verifica o disquete usando o utilitrio mbadblocks. Usando esta opo, as trilhas
defeituosas encontradas sero automaticamente marcadas para no serem utilizadas.

--verify_later, -V - Verifica todo o disquete no final da formatao.

--noverify, -f - No faz verificao de leitura.

-b [trilha] - Especifica a trilha inicial que ser formatada. O padro 0.

-e [trilha] - Especifica a trilha final que ser formatada.


Na primeira vez que o superformat executado, ele verifica a velocidade de rotao da unidade e a
comunicao com a placa controladora, pois os discos de alta densidade so sensveis a rotao da unidade.
Aps o teste inicial ele recomendar adicionar uma linha no arquivo /etc/driveprm como forma de evitar que
este teste seja sempre executado. OBS: Esta linha calculada de acordo com a rotao de usa unidade de
disquetes, transferncia de dados e comunicao com a placa controladora de disquete. Desta forma ela varia de
computador para computador Note que no necessrio montar a unidade de disquetes para formata-la.
Segue abaixo exemplos de como formatar seus disquetes com o superformat:

superformat /dev/fd0 - Formata o disquete na primeira unidade de disquetes usando os valores padres.

superformat /dev/fd0 dd - Faz a mesma coisa que o acima, mas assume que o disquete de dupla
densidade (720Kb).

superformat -v 1 /dev/fd0 - Faz a formatao da primeira unidade de disquetes (/dev/fd0) e especifica o


nvel de detalhes para 1, exibindo um ponto aps cada trilha formatada.

5.9.3 - Programas grficos para formatao


Alm de programas de formatao em modo texto, existem outros para ambiente grfico (X11) que permitem
fazer a mesma tarefa.
Entre os diversos programas destaco o gfloppy que alm de permitir selecionar se o disquete ser formatado para
o GNU/Linux (ext2) ou DOS (FAT12), permite selecionar a capacidade da unidade de disquetes e formatao
rpida do disco.

5.10 - Pontos de Montagem


O GNU/Linux acessa as parties existentes em seus discos rgidos e disquetes atravs de diretrios. Os
diretrios que so usados para acessar (montar) parties so chamados de Pontos de Montagem. Para detalhes
sobre montagem de parties, veja Montando (acessando) uma partio de disco, Seo 5.9.
No DOS cada letra de unidade (C:, D:, E:) identifica uma partio de disco. No GNU/Linux os pontos de
montagem fazem parte da grande estrutura do sistema de arquivos raiz.
Existem muitas vantagens de se usar pontos de montagem ao invs de unidade de disco para identificar parties
(mtodo usado no DOS):
Voc pode montar a partio no diretrio que quiser.
Em caso de um sistema de arquivos cheio, voc pode copiar o contedo de um grande diretrio para um
disco separado, apagar o contedo do diretrio original e montar o disco onde foram copiados os arquivos
naquele local.
O uso de pontos de montagem torna o gerenciamento mais flexvel.
A adio de novas parties ou substituio de discos rgidos no afeta a ordem de identificao dos discos
e pontos de montagem (como no acontece no DOS).

5.11 - Identificao de discos e parties em sistemas Linux


No GNU/Linux, os dispositivos existentes em seu computador (como discos rgidos, disquetes, tela, portas de
impressora, modem, etc) so identificados por um arquivo referente a este dispositivo no diretrio /dev.

Guia Foca GNU/Linux

66

A identificao de discos rgidos no GNU/Linux feita da seguinte forma:


/dev/hda1
|
| | |
|
| | | _Nmero que identifica o nmero da partio no disco rgido.
|
| |
|
| |_Letra que identifica o disco rgido (a=primeiro, b=segundo, etc...).
|
|
|
|_Sigla que identifica o tipo do disco rgido (hd=ide, sd=SCSI, xd=XT).
|
|_Diretrio onde so armazenados os dispositivos existentes no sistema.
Abaixo algumas identificaes de discos e parties em sistemas Linux:

/dev/fd0 - Primeira unidade de disquetes.

/dev/fd1 - Segunda unidade de disquetes.

/dev/hda - Primeiro disco rgido na primeira controladora IDE do micro (primary master).

/dev/hda1 - Primeira partio do primeiro disco rgido IDE.

/dev/hdb - Segundo disco rgido na primeira controladora IDE do micro (primary slave).

/dev/hdb1 - Primeira partio do segundo disco rgido IDE.

/dev/sda - Primeiro disco rgido na primeira controladora SCSI.

/dev/sda1 - Primeira partio do primeiro disco rgido SCSI.

/dev/sdb - Segundo disco rgido na primeira controladora SCSI.

/dev/sdb1 - Primeira partio do segundo disco rgido SCSI.

/dev/sr0 - Primeiro CD-ROM SCSI.

/dev/sr1 - Segundo CD-ROM SCSI.

/dev/xda - Primeiro disco rgido XT.

/dev/xdb - Segundo disco rgido XT.


As letras de identificao de discos rgidos podem ir alm de hdb, em meu micro, por exemplo, a unidade de
CD-ROM est localizada em /dev/hdg (Primeiro disco - quarta controladora IDE).
importante entender como os discos e parties so identificados no sistema, pois ser necessrio usar os
parmetros corretos para monta-los.

5.12 - Montando (acessando) uma partio de disco


Voc pode acessar uma partio de disco usando o comando mount.
mount [dispositivo] [ponto de montagem] [opes]
Onde:
dispositivo - Identificao da unidade de disco/partio que deseja acessar (como /dev/hda1 (disco
rgido) ou /dev/fd0 (primeira unidade de disquetes).
ponto de montagem - Diretrio de onde a unidade de disco/partio ser acessado. O diretrio deve
estar vazio para montagem de um sistema de arquivos. Normalmente usado o
diretrio /mnt para armazenamento de pontos de montagem temporrios.
Opes

-t [tipo] - Tipo do sistema de arquivos usado pelo dispositivo. So aceitos os sistemas de arquivos:
ext2 - Para parties GNU/Linux.
vfat - Para parties Windows 95 que utilizam nomes extensos de arquivos e diretrios.
msdos - Para parties DOS normais.
iso9660 - Para montar unidades de CD-ROM. o padro.
umsdos - Para montar uma partio DOS com recursos de parties EXT2, como permisses de acesso,
links, etc. Para mais detalhes sobre opes usadas com cada sistema de arquivos, veja a pgina de
manual mount.

-r - Caso for especificada, monta a partio somente para leitura.

-w - Caso for especificada, monta a partio como leitura/gravao. o padro.


Existem muitas outras opes que podem ser usadas com o comando mount, mas aqui procurei somente mostrar
o bsico para "montar" seus discos e parties no GNU/Linux (para mais opes, veja a pgina de manual do
mount). Caso voc digitar mount sem parmetros, sero mostrados os sistemas de arquivos atualmente montados
no sistema. Esta mesma listagem pode ser vista em /etc/mtab. A remontagem de partio tambm muito til,
especialmente aps reparos nos sistema de arquivos do disco rgido. Veja alguns exemplos de remontagem
abaixo.
necessrio permisses de root para montar parties, a no ser que tenha especificado a opo user no arquivo
Guia Foca GNU/Linux

67

/etc/fstab (veja fstab, Seo 5.9.1).


Exemplo de Montagem:
1.
Montar uma partio Windows (vfat) de /dev/hda1 em /mnt somente para leitura: mount /dev/hda1 /mnt
-r -t vfat
2.
Montar a primeira unidade de disquetes /dev/fd0 em /floppy: mount /dev/fd0 /floppy -t vfat
3.
Montar uma partio DOS localizada em um segundo disco rgido /dev/hdb1 em /mnt: mount
/dev/hdb1 /mnt -t msdos.
4.
Remontar a partio raz como somente leitura: mount -o remount,r /
5.
Remontar a partio raz como leitura/gravao (a opo -n usada porque o mount no conseguir
atualizar o arquivo /etc/mtab devido ao sistema de arquivos / estar montado como somente leitura
atualmente: mount -n -o remount,rw /.

5.12.1 - fstab
O arquivo /etc/fstab permite que as parties do sistema sejam montadas facilmente especificando somente o
dispositivo ou o ponto de montagem. Este arquivo contm parmetros sobre as parties que so lidos pelo
comando mount. Cada linha deste arquivo contm a partio que desejamos montar, o ponto de montagem, o
sistema de arquivos usado pela partio e outras opes. fstab tem a seguinte forma:
Sistema_de_arquivos
Ponto_de_Montagem Tipo Opcoes
dump ordem
/dev/hda1
/
ext2
defaults
0
1
/dev/hda2
/boot
ext2
defaults
0
2
/dev/hda3
/dos
msdos defaults,noauto,rw
0
0
/dev/hdg
/cdrom
iso9660 defaults,noauto
0
0
Onde:

Sistema de Arquivos - Partio que se deseja montar.

Ponto de montagem - Diretrio do GNU/Linux onde a partio montada ser acessada.

Tipo - Tipo de sistema de arquivos usado na partio que ser montada. Para parties GNU/Linux use
ext2, para parties DOS (sem nomes extensos de arquivos) use msdos, para parties Win 95 (com suporte
a nomes extensos de arquivos) use vfat, para unidades de CD-ROM use iso9660.

Opes - Especifica as opes usadas com o sistema de arquivos:


defaults - Utiliza valores padres de montagem.
noauto - No monta os sistemas de arquivos durante a inicializao (til para CD-ROMS e disquetes).
ro - Monta como somente leitura.
user - Permite que usurios montem o sistema de arquivos (no recomendado por motivos de
segurana).
sync recomendado para uso com discos removveis (disquetes, zip drives, etc) para que os dados
sejam gravados imediatamente na unidade (caso no seja usada, voc deve usar o comando sync,
Seo 10.22 antes de retirar o disquete da unidade.

Ordem - Define a ordem que os sistemas de arquivos sero verificados na inicializao do sistema. Se
usar 0, o sistema de arquivos no verificado. O sistema de arquivos que dever ser verificado primeiro o
raz "/" (a no ser que voc tenha um sistema de arquivos de outro tipo que no montado dentro do
diretrio raz e possui seu suporte embutido no Kernel) .
Aps configurar o /etc/fstab, basta digitar o comando mount /dev/hdg ou mount /cdrom para que a unidade de
CD-ROM seja montada. Voc deve ter notado que no necessrio especificar o sistema de arquivos da partio
pois o mount verificar se ele j existe no /etc/fstab e caso existir, usar as opes especificadas neste arquivo.
Para maiores detalhes veja as pginas de manual fstab e mount.

5.13 - Desmontando uma partio de disco


Para desmontar um sistema de arquivos montado com o comando mount, use o comando umount. Voc deve ter
permisses de root para desmontar uma partio.
umount [dispositivo/ponto de montagem]
Voc pode tanto usar umount /dev/hda1 como umount /mnt para desmontar um sistema de arquivos /dev/hda1
montado em /mnt.
Observao: O comando umount executa o sync automaticamente no momento da desmontagem para garantir
que todos os dados ainda no gravados sero salvos.

Guia Foca GNU/Linux

68

Captulo 6 - Gerenciadores de Partida (boot loaders)


Gerenciadores de Partida so programas que carregam um sistema operacional e/ou permitem escolher qual ser
iniciado. Normalmente este programas so gravados no setor de boot (inicializao) da partio ativa ou no
master boot record (MBR) do disco rgido.
Este captulo explica o funcionamento de cada um dos principais gerenciadores de partida usados no
GNU/Linux, em que situaes recomendado seu uso, as caractersticas, como configura-lo e alguns exemplos
de configurao.

6.1 - LILO
O LILO (Linux Loader) sem dvida o gerenciador de partida padro para quem deseja iniciar o GNU/Linux
atravs do disco rgido. Ele permite selecionar qual sistema operacional ser iniciado (caso voc possua mais de
um) e funciona tanto em discos rgidos IDE como SCSI.
A seleo de qual sistema operacional e a passagem de parmetros ao Kernel pode ser feita automaticamente ou
usando o aviso de boot: do LILO.

6.1.1 - Criando o arquivo de configurao do LILO


Os dados para a criao do novo setor de boot que armazenar o gerenciador de partida so lidos do arquivo
/etc/lilo.conf. Este arquivo pode ser criado em qualquer editor de textos (como o ae ou vi). Normalmente ele
criado durante a instalao de sua distribuio GNU/Linux mas por algum motivo pode ser preciso modifica-lo
ou personaliza-lo (para incluir novos sistemas operacionais, mensagens, alterar o tempo de espera para a partida
automtica, etc).
O arquivo /etc/lilo.conf dividido em duas sees: Geral e Imagens. A seo Geral vem no incio do arquivo e
contm opes que sero usadas na inicializao do Lilo e parmetros que sero passados ao Kernel. A seo
Imagens contm opes especifcas identificando qual a partio que contm o sistema operacional, como ser
montado inicialmente o sistema de arquivos, tabela de partio, o arquivo que ser carregado na memria para
inicializar o sistema, etc. Abaixo um modelo do arquivo /etc/lilo.conf para sistemas que s possuem o
GNU/Linux instalado:
boot=/dev/hda1
compact
install=/boot/boot.b
map=/boot/map
vga=normal
delay=20
lba32
image=/vmlinuz
root=/dev/hda1
label=Linux
read-only
Para criar um novo gerenciador de partida atravs do arquivo /etc/lilo.conf, execute o comando lilo.
No exemplo acima, o gerenciador de partida ser instalado em /dev/hda1 (veja Identificao de discos e
parties em sistemas Linux, Seo 5.8) , utilizar um setor de boot compacto (compact), modo de vdeo VGA
normal (80x25), esperar 2 segundos antes de processar automaticamente a primeira seo image= e carregar o
Kernel /vmlinux de /dev/hda1. Para detalhes sobre opes que podem ser usadas neste arquivo veja Opes
usadas no LILO, Seo 6.1.2.
Para mostrar o aviso de boot:, voc dever ligar as teclas <Caps Lock> ou <Scrool lock> na partida ou
pressionar a tecla <Shift> durante os dois segundos de pausa. Outro mtodo incluir a opo prompt na seo
global para que o aviso de boot: seja mostrado automaticamente aps carregar o LILO.
Abaixo uma configurao para computadores com mais de um sistema operacional (Usando GNU/Linux e
DOS):
boot=/dev/hda1
compact
lba32
install=/boot/boot.b
map=/boot/map
vga=normal
Guia Foca GNU/Linux

69

delay=20
prompt
image=/vmlinuz
root=/dev/hda1
label=linux
read-only
other=/dev/hda2
table=/dev/hda
label=dos
O exemplo acima idntico ao anterior, o que foi acrescentado foi a opo prompt na seo geral (para que seja
mostrado imediatamente o aviso de boot: no momento em que o LILO for carregado), e includa uma imagem
de disco DOS localizado em /dev/hda2. No momento da inicializao mostrada a mensagem boot: e caso seja
digitado DOS e pressionado <ENTER>, o sistema iniciar o DOS. Caso a tecla <Enter> seja pressionada sem
especificar a imagem, a primeira ser carregada (neste caso o GNU/Linux).
Voc pode substituir a palavra GNU/Linux da opo label pelo nmero 1 e DOS por 2, desta forma o nmero
pode ser digitado para iniciar o sistema operacional. Isto muito til para construir um menu usando a opo
message. Para detalhes veja Opes usadas no LILO, Seo 6.1.2.
A seo Geral vem do incio do arquivo at a palavra delay=20. A partir do primeiro aparecimento da palavra
image, other ou range, tudo o que vier abaixo ser interpretado como imagens de inicializao.
Por padro, a imagem carregada a especificada por default= ou a primeira que aparece no arquivo (caso
default= no seja especificado). Para carregar o outro sistema (o DOS), digite o nome da imagem de disco no
aviso de boot: (especificada em label=) que ser carregada. Voc tambm pode passar parmetros manualmente
ao Kernel digitando o nome da imagem de disco e uma opo do Kernel ou atravs do arquivo /etc/lilo.conf
(veja Opes usadas no LILO, Seo 6.1.2).
O LILO pode inicializar o seguintes tipos de imagens:
Imagens do Kernel de um arquivo. Normalmente usado para iniciar o GNU/Linux pelo disco rgido e
especificado pelo parmetro image=.
Imagens do Kernel de um dispositivo de bloco (como um disquete). Neste caso o nmero de setores a serem
lidos devem ser especificados na forma PRIMEIRO-LTIMO ou PRIMEIRO+NMERO de setores a serem
lidos.
necessrio especificar o parmetro image= e range=, por exemplo:
image=/dev/fd0
range=1+512
Todas as opes do Kernel podem ser usadas na inicializao por dispositivo.
O setor de boot de outro sistema operacional (como o DOS, OS/2, etc). O setor de partida armazenado
junto com a tabela de partio no arquivo /boot/map. necessrio especificar o parmetro
other=dispositivo ou other=arquivo e a inicializao atravs de um setor de partida possui algumas opes
especiais como o table= (para especificar a tabela de partio) e o map-drive= (identificao da unidade de
discos pelo sistema operacional). Veja o exemplo desta configurao abaixo:
other=/dev/hda2
table=/dev/hda
label=DOS
map-drive=0x80
to = 0x81
map-drive=0x81
to = 0x80
Observaes:

Caso o gerenciador de partida seja instalado no MBR do disco rgido (boot=/dev/hda), o setor de boot
do antigo sistema operacional ser substitudo, retire uma cpia do setor de boot para um disquete usando o
comando dd if=/dev/hda of=/floppy/mbr bs=512 count=1 no GNU/Linux para salvar o setor de boot em um
disquete e dd if=/floppy/mbr of=/dev/hda bs=446 count=1 para restaura-lo. No DOS voc pode usar o
comando fdisk /mbr para criar um novo Master Boot Record.

Aps qualquer modificao no arquivo /etc/lilo.conf , o comando lilo dever ser novamente executado
para atualizar o setor de partida do disco rgido. Isto tambm vlido caso o Kernel seja atualizado ou a
partio que contm a imagem do Kernel desfragmentada.

A limitao de 1024 cilindros do LILO no existe mais a partir da verso 21.4.3 (recomendada, por
conter muitas correes) e superiores.
Guia Foca GNU/Linux

70

A reinstalao, formatao de sistemas DOS e Windows pode substituir o setor de partida do HD e


assim o gerenciador de partida, tornando impossvel a inicializao do GNU/Linux. Antes de reinstalar o
DOS ou Windows, verifique se possui um disquete de partida do GNU/Linux.
Para gerar um novo boot loader, coloque o disquete na unidade e aps o aviso boot: ser mostrado, digite
linux root=/dev/hda1 (no lugar de /dev/hda1 voc coloca a partio raiz do GNU/Linux), o sistema iniciar.
Dentro do GNU/Linux, digite o comando lilo para gerar um novo setor de partida.
Agora reinicie o computador, tudo voltar ao normal.

6.1.2 - Opes usadas no LILO


Esta seo traz opes teis usadas no arquivo lilo.conf com explicaes sobre o que cada uma faz. As opes
esto divididas em duas partes: As usadas na seo Global e as da seo Imagens do arquivo lilo.conf.
Global

backup=[arquivo/dispositivo] - Copia o setor de partida original para o arquivo ou dispositivo


especificado.

boot=dispositivo - Define o nome do dispositivo onde ser gravado o setor de partida do LILO
(normalmente usada a partio ativa ou o Master Boot Record - MBR). Caso no seja especificado, o
dispositivo montado como a partio raiz ser usado.

compact - Tenta agrupar requisies de leitura para setores seguintes ao sendo lido. Isto reduz o tempo
de inicializao e deixa o mapa menor. normalmente recomendado em disquetes.

default=imagem - Usa a imagem especificada como padro ao invs da primeira encontrada no arquivo
lilo.conf.

delay=[num] - Permite ajustar o nmero de segundos (em dcimos de segundos) que o gerenciador de
partida deve aguardar para carregar a primeira imagem de disco (ou a especificada por default=). Esta pausa
lhe permite selecionar que sistema operacional ser carregado.

install=setor-boot - Instala o arquivo setor-boot como novo setor de boot do disco. Se install for
omitido, /boot/boot.b usado por padro.

lba32 - Permite que o LILO quebre o limite de 1024 cilindros do disco rgido, inicializando o
GNU/Linux em um cilindro acima deste atravs do acesso . Note que isto requer compatibilidade com o
BIOS, mais especificamente que tenha suporte a chamadas int 0x13 e AH=0x42. recomendado o seu uso.

map=arquivo-mapa - Especifica a localizao do arquivo de mapa (.map). Se no for especificado,


/boot/map usado.

message=arquivo - Especifica um arquivo que contm uma mensagem que ser mostrada antes do aviso
de boot:. Nenhuma mensagem mostrada at que seja pressionada a tecla <Shift> aps mostrar a palavra
LILO. O tamanho da mensagem deve ser no mximo 65535 bytes. O arquivo de mapa deve ser novamente
criado caso a mensagem seja retirada ou modificada. Na mensagem, o caracter FF (<CTRL>+<L>) limpa a
tela.

nowarn - No mostra mensagens de alerta.

password=senha - Permite proteger todas as imagens de disco com uma nica senha. Caso a senha
esteja incorreta, o LILO novamente carregado.

prompt - Mostra imediatamente o aviso de boot: ao invs de mostrar somente quando a tecla <Shift>
pressionada.

verbose=[num] - Ativa mensagens sobre o processamento do LILO. Os nmeros podem ser


especificados de 1 a 5, quanto maior o nmero, maior a quantidade de detalhes mostrados.

timeout=[num] - Ajusta o tempo mximo de espera (em dcimos de segundos) de digitao no teclado.
Se nenhuma tecla pressionada no tempo especificado, a primeira imagem automaticamente carregada.
Igualmente a digitao de senha interrompida se o usurio estiver inativo por este perodo.
Adicionalmente as opes de imagem do Kernel append, ramdisk, read-only, read-write, root e vga podem ser
especificadas na seo global.
Imagem
As opes por imagem iniciam com uma das seguintes opes: image=, other= ou range=. Opes usadas
por cada imagem:

table=dispositivo - Indica o dispositivo que contm a tabela de partio para aquele dispositivo.
Necessrio apenas para imagens especificadas por other=.

unsafe - No acessa o setor de boot no momento da criao do mapa. Isto desativa algumas checagens,
como a checagem da tabela de partio. unsafe e table= so incompatveis.

label=[nome] - Permite especificar um nome para a imagem. Este nome ser usado na linha boot: para
inicializar o sistema.
Guia Foca GNU/Linux

71

alias=[nome] - Apelido para a imagem de disco. como um segundo label.


optional - Ignora a imagem caso no estiver disponvel no momento da criao do mapa. til para
especificar Kernels que no esto sempre presentes no sistema.

password=senha - Protege a imagem atual com a senha. Caso a senha esteja incorreta, o setor de partida
do LILO novamente carregado.

restricted - A senha somente pedida para iniciar a imagem se o sistema for iniciado no modo single.
Tambm podem ser usados parmetros de inicializao do Kernel no arquivo /etc/lilo.conf, veja a seo
Parmetros de inicializao passados ao Kernel, Seo 6.3 para maiores detalhes.

6.1.3 - Um exemplo do arquivo de configurao lilo.conf


Abaixo um exemplo do arquivo /etc/lilo.conf que poder ser usado em instalaes GNU/Linux com o DOS.
boot=/dev/hda1
#Instala o LILO em /dev/hda1
compact
install=/boot/boot.b
map=/boot/map
message=/etc/lilo.message #mensagem que ser mostrada na tela
default=1
#Carrega a Imagem especificada por label=1 como padro
vga=normal
#usa o modo de video 80x25 ao iniciar o Linux
delay=20
#aguarda 2 segundos antes de iniciar a imagem padro
lba32
#permite quebrar o limite de 1024 cilindros na inicializao
prompt
#mostra o aviso de "boot:" logo que o LILO carregado
image=/vmlinuz
root=/dev/hda1
label=1
read-only
password=12345
restricted

#especifica o arquivo que contm a primeira imagem


#partio onde a imagem acima esta localizada
#identificao da imagem de disco
#monta inicialmente como somente leitura
#Usa a senha 12345
#somente quando iniciar com o parmetro single

other=/dev/hda2
#especifica outro sistema que ser carregado
table=/dev/hda
#a tabela de partio dele est em /dev/hda
label=2
#identificao desta imagem de disco
password=12345
#pede a senha antes de iniciar este sistema
Voc pode usar o exemplo acima como base para construir sua prpria configurao personalizada do
/etc/lilo.conf mas no se esquea de modificar as tabelas de parties para seu sistema. Se voc usa o Windows
NT 4.0, Windows NT 5.0 (Windows 2000) ou o OS/2, recomendo ler o DOS+Windows+OS/2-HOWTO.
Aps criar seu arquivo /etc/lilo.conf , execute o comando lilo e se tudo ocorrer bem, o LILO ser instalado.

6.2 - GRUB
(Os detalhes contidos na seo sobre o GRUB, foram integralmente desenvolvidos por Alexandre Costa
alebyte@bol.com.br como contribuio ao guia FOCA GNU/Linux.)
O GRUB (Grand Unified Boot Loader) mais uma alternativa como gerenciador de boot e apresenta alguns
recursos extras com relao as outras opes disponveis. Ele flexvel, funcional e poderoso, podendo
inicializar sistemas operacionais como o Windows (9x, ME, NT, 2000 e XP), Dos, Linux, GNU Hurd, *BSD,
OS/2 e etc. Podemos destacar tambm o suporte aos sistemas de arquivos ext2 (Linux), ext3 e reiserfs (novos
sistemas de arquivos journaling do Linux), FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no
*BSD), minix (MINIX OS) e etc.
Por utilizar o padro multiboot ele capaz de carregar diversas imagens de boot e mdulos. Por esse motivo ele
o nico gerenciador de inicializao capaz de carregar o conjunto de servidores do GNU Hurd. O GRUB
tambm permite buscar imagens do Kernel pela rede, por cabo seriais, suporta discos rgidos IDE e SCSI,
detecta toda a memria RAM disponvel no sistema, tem interface voltada para linha de comandos ou menus de
escolha, alm de suportar sistemas sem discos e terminais remotos.
Como possui inmeros recursos, ser apresentada sua utilizao bsica, ficando como sugesto ao leitor
procurar se aprofundar mais em suas possibilidades de uso e configurao.

Guia Foca GNU/Linux

72

6.2.1 - Como o GRUB trabalha com discos e parties


O GRUB trabalha com uma notao diferente para apontar discos e parties sendo necessrio algumas
explicaes antes de prosseguir. Veja a tabela comparativa:
No Linux
No GRUB
/dev/hda
(hd0)
/dev/hda1
(hd0,0)
/dev/hda2
(hd0,1)
/dev/hdb
(hd1)
/dev/hdb1
(hd1,0)
/dev/hdb2
(hd1,1)
/dev/sda
(hd0) # Disco SCSI ID 0
/dev/sda1
(hd0,0) # Disco SCSI ID 0, partio 1
/dev/sda2
(hd0,1) # Disco SCSI ID 0, partio 2
/dev/sdb
(hd1) # Disco SCSI ID 1
/dev/sdb1
(hd1,0) # Disco SCSI ID 1, partio 1
/dev/sdb2
(hd1,1) # Disco SCSI ID 1, partio 2
/dev/fd0
(fd0)
OBS: Os discos IDE e SCSI so referenciados ambos como (hd?) pelo GRUB. No h distino entre os discos
e de modo geral a identificao de unidades IDE menor do que qualquer tipo de drive SCSI, salvo se voc
alterar a seqncia de inicializao (boot) na BIOS.
Para saber como o Linux trabalha com parties veja Identificao de discos e parties em sistemas Linux,
Seo 5.8.

6.2.2 - Instalando o GRUB


A instalao do GRUB ao contrrio da instalao do LILO (LILO, Seo 6.1), s precisa ser executada uma
nica vez. Caso seja necessria alguma mudana como por exemplo adicionar uma nova imagem, esta pode ser
feita apenas editando o arquivo de configurao menu.lst.

6.2.2.1 - No MBR
Um mtodo simples de adicionar o GRUB para gerenciar seu MBR (Master Boot Record) rodando o seguinte
comando (como superusurio):
# /sbin/grub-install /dev/hda
Este comando grava o GRUB no MBR do primeiro disco e cria o diretrio /boot/grub onde estaro os arquivos
necessrios para o seu funcionamento. Neste ponto o GRUB j est instalado e quando voc reiniciar seu
computador ir se deparar com uma linha de comandos, onde ter que carregar a imagem do Kernel
manualmente. Mais adiante ser explorada a utilizao desta linha de comando que muito eficiente.
Provavelmente voc achar mais interessante copiar o arquivo de configurao de exemplos do GRUB e
otimiz-lo s suas necessidades. Note que isto no exclui a possibilidade de utilizar a linha de comando, apenas
cria uma interface de menus onde voc pode configurar vrias opes de boot de uma forma organizada,
automatizada e funcional. Copie este arquivo para o diretrio /boot/grub com o seguinte comando:
# cp /usr/share/doc/grub/examples/menu.lst /boot/grub
Por ser um arquivo de exemplos ser necessrio otimiz-lo de acordo com suas necessidades, o que ser
abordado mais a frente.

6.2.3 - No disco flexvel (somente linha de comando)


Quando criamos um disquete de partida, este funcionar em um sistema qualquer, podendo utilizar este disquete
em vrias mquinas diferentes ou em uma mquina em que tenha tido algum problema com o GRUB no MBR.
Coloque um disquete virgem e digite os seguintes comandos:
# dd if=/usr/lib/grub/i386-pc/stage1 of=/dev/fd0 count=1
# dd if=/usr/lib/grub/i386-pc/stage2 of=/dev/fd0 seek=1
Estes comandos permitem que seja apresentada a linha de comando do grub quando este disco for utilizado para
boot.

6.2.4 - No disco flexvel (com interface de menu)


Quando foi criado o disquete de partida anteriormente, este s nos permitia utilizar a linha de comando sendo
necessrio carregar o menu.lst pelo disco rgido (o qual deve estar presente). Em alguns casos este disco satisfaz
Guia Foca GNU/Linux

73

as necessidades bsicas mas pode haver um momento em que voc deseje ter um disquete que funcione com
vrios sistema e no dependa de um disco fixo.
Digite os seguintes comandos:
# mke2fs /dev/fd0
# mount /dev/fd0 /floppy -t ext2
# mkdir /floppy/grub
# cp /usr/lib/grub/i386-pc/stage[12] /floppy/grub
# cp /usr/share/doc/grub/examples/menu.lst /floppy/grub
# umount /floppy
# /sbin/grub
Este ltimo comando disponibiliza a linha de comando do GRUB. Digite os seguintes comandos:
grub> install (fd0)/grub/stage1 d (fd0) (fd0)/grub/stage2 p (fd0)/grub/menu.lst
grub> quit
Neste momento o disquete est pronto. Note que o menu.lst que foi copiado para ele um arquivo de exemplo,
sendo necessrio que voc o configure de acordo com suas necessidades.

6.2.5 - Opes do arquivo de configurao


Esta seo descreve o arquivo menu.lst com explicaes sobre as opes mais usadas. Este arquivo dividido
em parmetros globais, que afetam o arquivo todo e parmetros que s tem efeito para as imagens do sistema
que ser carregado. Algumas opes podem ser passadas para o Kernel do Linux no momento do boot, algumas
delas tambm sero detalhadas.
Parmetros Globais

timeout = Define um tempo (em segundos) de espera. Se nenhuma tecla for pressionada, carrega a
imagem padro.

default = Define qual ser a opo padro que deve ser automaticamente selecionada quando nenhuma
outra for especificada em um tempo definido por timeout.

fallback = Caso ocorra algum erro inesperado e a opo padro no possa ser carregada, este parmetro
define qual a outra opo deve ser utilizada.

color = Permite que voc escolha as cores usadas no menu de boot.

password = Permite que voc especifique uma senha. Est ser solicitada sempre que houver
necessidade de realizar uma funo que no seja carregar as imagens disponveis, como por exemplo
acessar a linha de comandos do GRUB. Voc pode utilizar tambm o parmetro password para esconder um
arquivo que contenha outras configuraes, como um menu.lst secreto. O arquivo pode ter um nome
qualquer.
Ex.: password = senha (hd0,0)/boot/grub/secret.conf
Voc pode ter vrias entradas do parmetro password em um mesmo arquivo sendo que uma delas usada
para bloquear o acesso as imagens/linha de comandos e as outras usadas para carregar arquivos de opes
do GRUB. Quando voc digitar p para entrar com a senha, voc pode digitar a senha que protege as
imagens/linha de comandos ou a que utilizada para carregar os arquivos de opes.

hiddenmenu = Est opo faz com que o menu de opes no seja mostrado e d boot na imagem
especificada por default depois de expirado o tempo definido em timeout. O usurio pode requisitar o menu
com as opes pressionando a tecla <ESC> antes que o tempo definido em timeout expire.
Parmetros que afetam apenas as imagens

title = Define um texto que ser apresentado no menu de boot para identificar o sistema a ser
inicializado.

root = Determina qual a partio raiz do sistema a ser inicializada.

rootnoverify = Idntica a opo root, mas no tenta montar a partio-alvo, o que necessrio para
alguns sistemas como Dos e Windows.

Kernel = Nesta opo voc informa qual o Kernel vai ser inicializado. Voc pode passar parmetros
diretamente para o Kernel tambm.
Ex.: Kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6

module = Faz com que algum mdulo necessrio para o boot seja carregado. Lembre-se que estes no
so mdulos do Kernel (mdulos de som, rede, etc.) e sim mdulos necessrios ao boot de alguns sistemas,
como por exemplo o GNU Hurd.

lock = Quando voc quiser controlar se uma pessoa pode iniciar um sistema que esteja listado nas
opes do menu de boot, voc pode utilizar esta opo que faz com que a senha especificada com o
comando password seja solicitada no momento em que se tentar carregar a imagem em questo.

pause = Emite uma mensagem na tela e espera uma tecla ser pressionada.
Guia Foca GNU/Linux

74

makeactive = Torna a partio ativa. Este comando est limitado a parties primrias dos discos.
chainloader = Alguns sistemas como o Windows ou Dos armazenam seu prprio gerenciador de boot
no incio da partio em que ele est instalado. Para efetuar o boot destes sistemas atravs do GRUB, voc
precisa pedir para que o gerenciador de boot de tal sistema seja carregado e faa seu trabalho, dando o boot.

hide e unhide = Esconde e mostra partio respectivamente. Estas duas opes so necessrias quando
houver mais de uma verso do Dos ou Windows na mquina em parties diferentes, j que estes sistemas
detectam automaticamente a partio e quase sempre o fazem de modo errado. Suponha o Windows na
primeira partio primria (hd0,0) e o Dos na segunda partio primria (hd0,1). Quando quisermos
carregar estes sistemas devemos proceder da seguinte maneira:
title Windows
hide (hd0,1)
unhide (hd0,0)
rootnoverify (hd0,0)
chainloader +1
makeactive
title Dos
hide (hd0,0)
unhide (hd0,1)
rootnoverify (hd0,1)
chainloader +1
makeactive

map = Alguns sistemas no permitem ser inicializados quando no esto no primeiro disco (Dos, Win
9x, etc.). Para resolver esta e outras situaes o GRUB tem um comando que permite enganar tal sistema
mapeando as unidades de disco do modo como lhe for mais conveniente.
Imagine que voc tenha o primeiro disco (hd0) com o GNU/Linux instalado e em um outro disco (hd1) com o
Windows/Dos instalado. O Windows/Dos no permitem serem inicializados desta forma e como soluo voc
poderia usar a seguinte entrada no arquivo de configuraes do GRUB:
title Windows
unhide (hd1,0)
rootnoverify (hd1,0)
chainloader +1
map (hd1) (hd0)
makeactive
Isso faz com que o disco (hd1), onde esta o Windows/Dos, seja apresentado a este sistema como (hd0)
"enganado" o mesmo e possibilitando o boot.
Parmetros enviados diretamente ao Kernel
Pode ser necessrio passar alguns parmetros para o Kernel no momento do boot. Para maiores informaes
ver a seo Parmetros de inicializao passados ao Kernel, Seo 6.3. Voc pode passar os parmetros da
seguinte maneira:
# Exemplo de entrada no 'menu.lst'.
title Linux 2.4.16
root (hd0,0)
Kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6 mem=512M ramdisk=0
Neste exemplo, a linha com o comando "Kernel" usada para indicar qual imagem deve ser carregada. As
opes que seguem (vga, mem e ramdisk) so parmetros que devem ser passados diretamente ao Kernel do
sistema a ser carregado.

6.2.6 - Um exemplo de arquivo de configurao


# Exemplo de arquivo de configurao do GRUB.
# Note que voc pode usar o caracter '#' para fazer comentrios.
# Se aps 30 segundos nenhuma tecla for pressionada, carrega a imagem padro.
timeout 30
# Define a primeira imagem como padro.
default 0
# Caso a imagem padro no funcione carrega a imagem definida aqui.
fallback 1
# Define as cores que sero usadas no menu.
Guia Foca GNU/Linux

75

color light-cyan/black white/blue


# Permite utilizar uma senha.
password minha-senha-secreta
password minha-senha (hd0,0)/boot/grub/secret.conf
# Para boot com o GNU/Hurd
title GNU/Hurd
root (hd0,0)
Kernel /boot/gnumach.gz root=hd0s1
module /boot/serverboot.gz
# Para boot com o GNU/Linux
title Linux 2.4.16
# Pede a senha configurada em "password" antes de carregar esta imagem.
lock
root (hd0,0)
# Atente as opes passadas diretamente para o Kernel (vga, mem, etc.).
Kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6 mem=512M ramdisk=0
# Para boot com o Mach (obtendo o Kernel de um disquete)
title Utah Mach4 multiboot
root (hd0,2)
pause Insira o disquete agora!!!
Kernel (fd0)/boot/Kernel root=hd0s3
module (fd0)/boot/bootstrap
# Para boot com FreeBSD
title FreeBSD 3.4
root (hd0,2,a)
Kernel /boot/loader
# Para boot com OS/2
title OS/2
root (hd0,1)
makeactive
chainloader +1
chainloader /boot/chain.os2
# Para boot com Windows 9x, ME, NT, 2000, XP.
title Windows 9x, ME, NT, 2000, XP
unhide (hd0,0)
rootnoverify (hd0,0)
chainloader +1
makeactive
# Para instalar o GRUB no disco rgido.
title = Instala o GRUB no disco rgido
root = (hd0,0)
setup = (hd0)
# Muda as cores.
title Mudar as cores
color light-green/brown blink-red/blue

6.2.7 - Usando a linha de comandos do GRUB


O GRUB possui inmeros recursos, mas com certeza um dos mais importantes e que merece destaque sua
linha de comandos. A maioria dos comandos usados no arquivo de configurao menu.lst so vlidos aqui e
muitos outros esto disponveis. Uma breve apresentao da linha de comandos ser dada, ficando por conta do
leitor se aprofundar o quanto achar necessrio em sua flexibilidade.
Quando o GRUB inicializado voc pode se deparar com sua linha de comandos ou se possuir o arquivo
menu.lst configurado, um menu de escolha. Mesmo usando os menus de escolha voc pode utilizar a linha de
comandos, bastando para isso seguir as instrues no rodap da tela onde o GRUB nos informa que podemos
digitar e para editar as entradas de boot ou c para ter acesso a linha de comandos (lembre-se que pressionar
<ESC> faz com que voc volte aos menus de escolha).
Caso a opo password tenha sido especificada no arquivo menu.lst, ser necessrio antes de acessar as outras
opes (que estaro desabilitadas) pressionar p e entrar com a senha correta.
Agora, com acesso a linha de comandos, voc pode verificar os comandos disponveis pressionando duas vezes
Guia Foca GNU/Linux

76

a tecla <TAB>. Note que voc tambm pode utilizar esta tecla para completar nomes de comandos bem como
parmetros de alguns comandos.
Alguns comandos disponveis:

cat = Este comando permite verificar o contedo de um arquivo qualquer, o qual deve estar gravado em
um dispositivo ligado a sua mquina. Embora seja um recurso til, nenhuma permisso de acesso
verificada e qualquer pessoa que tenha acesso a linha de comandos do GRUB pode listar o contedo de
arquivos importantes. Para contornar este problema o parmetro password utilizado no arquivo menu.lst e
faz com que uma senha seja solicitada antes de liberar o acesso a linha de comandos. No esquea que ainda
possvel utilizar um disquete com o GRUB para dar boot na mquina o que permite usar a linha de
comandos pelo disquete.
Ex.: grub> cat (hd0,0)/etc/passwd

cmp = Este comando utilizado para comparar dois arquivos.


Ex.: grub> cmp (hd0,0)/arquivo1 (hd0,0)/arquivo2

configfile = Carrega um arquivo de configurao do GRUB.


Ex.: grub> configfile (hd0,0)/boot/grub/menu.lst

displayapm = Mostra informaes sobre APM.

displaymem = Mostra informaes sobre a memria RAM.

find = Permite encontrar um arquivo. A sada deste comando disponibiliza o nome completo do
caminho para o arquivo e a partio onde o mesmo est localizado.
Ex.: grub> find stage1

geometry = Mostra informaes sobre a geometria reconhecida de seu drive e permite que voc escolha
a geometria desejada caso esta esteja sendo reconhecida erroneamente.

help = help "comando" para ver a ajuda.


Ex.: help color

install = Instala o GRUB, embora no seja recomendado o uso deste comando diretamente, pois
possvel esquecer ou trocar facilmente um parmetro e sobrescrever a tabela de parties de seu disco.
Ex.: install (fd0)/grub/stage1 d (fd0) (fd0)/grub/stage2 p (fd0)/grub/menu.lst

setup = Voc pode usar este comando para instalar o GRUB. Note que sua sintaxe menos complexa do
que a usada em install.
Ex.:
grub> root = (hd0,0)
grub> setup = (hd0)

quit = Abandona a linha de comandos do GRUB.

reboot = Reinicia o computador.

boot = Efetua o boot. Suponha o Linux instalado em (hd0,0), podemos passar os seguintes comandos na
linha de comandos para efetuar o boot de uma imagem do GNU/Linux:
grub> root (hd0,0)
grub> Kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6
grub> boot
Muitos outros comandos esto disponveis tanto na linha de comandos do GRUB quanto no arquivo de
configurao menu.lst. Estes comandos adicionais podem ser necessrios apenas para algumas pessoas e por
isso no sero explicados.

6.2.8 - Removendo o GRUB do MBR


No existe a necessidade de se remover o GRUB do MBR pois no h utilizao para o mesmo vazio. Para
substituir o GRUB do MBR necessrio apenas que outro gerenciador de boot escreva algo nele. Voc pode
seguir o procedimento de instalao do LILO para escrever algo no MBR ou usar o comando fdisk /mbr do
DOS.

6.2.9 - Como obter informaes mais detalhadas


Para obter informaes mais detalhadas sobre o GRUB recomendado o site oficial do mesmo, o qual est
disponvel apenas na lngua inglesa. Os seguintes sites foram utilizados na pesquisa:

Site oficial do GRUB: http://www.gnu.org/software/grub/

Site Debian-br (http://debian-br.cipsga.org.br), na parte de suporte, documentao, "Como usar o


GRUB: Um guia rpido para usar o GRUB, feito por Vitor Silva Souza e Gustavo Noronha Silva".

6.3 - Parmetros de inicializao passados ao Kernel


Abaixo algumas das opes mais usadas para passar parmetros de inicializao de hardware/caractersticas ao
Guia Foca GNU/Linux

77

Kernel.

append=string - Passa os parmetros especificados ao Kernel. extremamente til para passar


parmetros de hardwares que podem ter problemas na hora da deteco ou para parmetros que precisam ser
passados constantemente ao Kernel atravs do aviso boot:.
Exemplo: append="mem=32m"

ramdisk=tamanho - Especifica o tamanho do disco RAM que ser criado. Caso for igual a zero,
nenhum disco RAM ser criado. Se no for especificado, o tamanho do disco RAM usado na imagem de
inicializao do Kernel ser usada.

read-only - Especifica que o sistema de arquivos raiz dever ser montado como somente leitura.
Normalmente o sistema de inicializao remonta o sistema de arquivos como leitura/gravao.

read-write - Especifica que o sistema de arquivos raiz dever ser montado como leitura e gravao.

root=dispositivo - Especifica o dispositivo que ser montado como raiz. Se a palavra current usada, o
dispositivo atual ser montado como raiz.

vga=modo - Especifica o modo de vdeo texto que ser usado durante a inicializao.
normal - Usa o modo 80x25 (80 colunas por 25 linhas)
extended (ou ext) - Usa o modo de texto 80x50
ask - Pergunta que modo de video usar na inicializao. Os modos de vdeo podem ser obtidos
pressionando-se <Enter> quando o sistema perguntar o modo de vdeo.
Uma lista mais detalhada de parmetros de inicializao pode ser obtida no documento Boot-prompt-howto
(veja Documentos HOWTO's, Seo 30.8).

6.4 - LOADLIN
um gerenciador de partida que permite iniciar o GNU/Linux a partir do DOS. A vantagem do uso do Loadlin
no ser preciso reiniciar o computador para se entrar no GNU/Linux. Ele funciona carregando o Kernel (copiado
para a partio DOS) para a memria e inicializando o GNU/Linux.
Outro motivo pelo qual muito usado quando o GNU/Linux no tem suporte a um certo tipo de dispositivo,
mas este tem seu suporte no DOS ou Windows e funciona corretamente com eles.
O truque o seguinte: Voc inicia normalmente pelo DOS e aps seu dispositivo ser configurado corretamente
pelo driver do DOS e funcionando corretamente, voc executa o Loadlin e o GNU/Linux assim poder usa-lo.
Muitos usam o comando Loadlin dentro do arquivo autoexec.bat para iniciar o GNU/Linux automaticamente
aps o dispositivo ser configurado pelo DOS.
ATENO!!! No execute o Loadlin dentro do Windows.

6.4.1 - Opes do LOADLIN


Abaixo a lista de opes que podem ser usadas com o programa LOADLIN (note que todas so usadas no
DOS):
loadlin [imagem_Kernel] [argumentos] [opes]

imagem_Kernel - Arquivo que contm o Kernel.


root=dispositivo - Especifica o dispositivo que contm o sistema de arquivos raiz. especificado de
acordo com a identificao de dispositivos no GNU/Linux (/dev/hda1, /dev/hdb1, etc).
ro - Diz ao Kernel para montar inicialmente o sistema de arquivos raiz como somente leitura. Os scripts
de inicializao normalmente modificam o sistema de arquivos para leitura e gravao aps sua checagem.
rw - Diz ao Kernel para montar inicialmente o sistema de arquivos raiz como leitura e gravao.
initrd=[NUM] - Define o tamanho do disco RAM usado no sistema.
-v - Mostra detalhes sobre mensagens e configurao
-t - Modo de teste, tudo feito menos a inicializao do GNU/Linux.
-d arquivo - Mesma funo de -t, mas envia a sada para o arquivo
-txmode - Altera o modo de vdeo para 80x25 antes de inicializar o Kernel.
-dskreset - Aps carregar a imagem do Kernel, reseta todos os discos rgidos antes de inicializar o
GNU/Linux.

6.4.2 - Exemplo de inicializao com o LOADLIN


Abaixo voc encontra um exemplo do comando loadlin que poder ser usado em sua instalao GNU/Linux
(precisando apenas ajustar a localizao da partio raiz do GNU/Linux de acordo com seu sistema).
Guia Foca GNU/Linux

78

C:\> LOADLIN vmlinuz root=/dev/hda1 ro


|
|
|
|
|
+- Montar como somente leitura
|
|
|
+- Partio raiz
|
+- Nome do Kernel copiado para o DOS

6.5 - syslinux
Outro gerenciador de partida que funciona somente com sistemas de arquivos DOS. A principal diferena do
syslinux em relao ao LOADLIN que foi feito especialmente para funcionar em disquetes formatados no
DOS, facilitando a instalao do GNU/Linux e para a criao de disquetes de recuperao ou de inicializao.
Um disquete gerado pelo syslinux lido sem problemas pelo DOS/Windows.
syslinux [-s] [dispositivo]
A opo -s instala no disquete uma verso segura, lenta e estpida do syslinux. Isto necessrio para algumas
BIOS problemticas.

6.5.1 - Criando um disquete de inicializao com o syslinux


Siga os passos abaixo para criar um disquete de inicializao com o syslinux:

Formate o disquete no DOS ou com alguma ferramenta GNU/Linux que faa a formatao de disquetes
para serem usados no DOS.

Copie um ou mais arquivos de Kernel para o disquete

Digite syslinux /dev/fd0 (lembre-se de usar a opo -s se tiver problemas de inicializao). Este
comando modificar o setor de partida do disquete e gravar um arquivo chamado LDLINUX.SYS no
diretrio raiz do disquete.
Lembre-se: O disquete deve estar desmontado antes de usar o comando syslinux, caso o disquete estiver
montado uma mensagem ser mostrada e o syslinux abortado.
Por padro carregado o Kernel de nome GNU/Linux. Este padro pode ser modificado atravs do arquivo de
configurao SYSLINUX.CFG que tambm gravado no diretrio raiz do disquete. Veja O arquivo
SYSLINUX.CFG, Seo 6.5.2 para detalhes.
Se as teclas <Caps Lock> ou <Scrool Lock> estiverem ligadas ou <Shift>, <Alt> forem pressionadas durante o
carregamento do syslinux, o syslinux mostrar um aviso de boot no estilo do LILO. O usurio pode ento digitar
o nome do Kernel seguido de qualquer parmetro para inicializar o GNU/Linux.

6.5.2 - O arquivo SYSLINUX.CFG


Este arquivo criado no diretrio raiz da unidade de disquete e contm as opes que sero usadas para
modificar o funcionamento do syslinux. Abaixo a listagem de opes que podem ser especificadas neste
arquivo:

default [Kernel] [opes] - Indica o nome do Kernel e as opes dele que sero usadas na inicializao,
caso o syslinux seja iniciado automaticamente. Caso no for especificado, o assumido para o Kernel ser
GNU/Linux sem nenhuma opo de inicializao.

append [opoes] - Passa uma ou mais opes ao Kernel na inicializao. Elas sero adicionadas
automaticamente para inicializaes automticas e manuais do syslinux.

label [nome]

Kernel [Kernel]

append [opes] - Nome que identificar o Kernel no aviso de boot (idntica a opo label= do LILO).
Se a imagem especificada por nome for selecionada, o Kernel usado ser o especificado pelo parmetro
Kernel e as opes usadas por append. Caso seja passado um hfen (-) ao parmetro append, os parmetros
passados pelo append global sero anulados.

implicit [valor] - Se o [valor] for igual a 0, no carrega a imagem at que seja explicitamente
especificada na opo label.

timeout [tempo] - Indica quanto tempo o syslinux aguardar antes de inicializar automaticamente
(medido em 1/10 de segundos). Caso alguma tecla seja pressionada, a inicializao automtica
interrompida. Para desativar esta caracterstica, use 0 como timeout. O valor mximo de 35996.
Guia Foca GNU/Linux

79

font [nome] - Especifica uma fonte (em formato .psf) que ser usada para mostrar as mensagens do
syslinux (aps o aviso de copyright do programa). Ele carrega a fonte para a placa de vdeo, se a fonte
contiver uma tabela unicode, ela ser ignorada. Somente funciona em placas EGA e VGA.

kbdmap [mapa] - Instala um simples mapa de teclado. O mapa de teclados usado muito simples:
somente remapeia cdigos conhecidos pela BIOS, o que significa que somente teclas usadas no teclado
padro EUA sero usadas. O utilitrio keytab-lilo.pl da distribuio do lilo pode ser usado para criar tais
mapas de teclado.

prompt [valor] - Se [valor] for igual a 1, mostra automaticamente o aviso de boot assim que o syslinux
for iniciado. Caso seja igual a 0, mostra o aviso de boot somente se as teclas <Shift> ou <Alt> forem
pressinadas ou <Caps Lock> e <Scrool Lock> estiverem ativadas.

display [arquivo] - Mostra o contedo do [arquivo] durante a inicializao do syslinux.

F1 [arquivo]
F2 [arquivo]
...
F0 [arquivo]

Especifica que arquivos sero mostrados quando as teclas de <F1> at <F10>


forem pressionadas. Para detalhes, veja Formatao dos arquivos de tela do
syslinux, Seo 6.5.3

6.5.3 - Formatao dos arquivos de tela do syslinux


Os arquivos de texto que so mostrados na tela pelo syslinux podem ter suas cores modificadas usando
parmetros simples, isto causa um bom efeito de apresentao. Abaixo esto os cdigos que podem ser usados
para criar um arquivo texto que ser exibido pelo syslinux:
CTRL+L - Limpa a tela (semelhante ao que o clear faz).
CTRL+O[frente][fundo] - Define a cor de frente e fundo, se somente uma cor for especificada, esta ser
assumida como frente. Veja os valores para [frente] e [fundo] abaixo:
00 preto
08 - cinza escuro
01 - azul escuro
09 - azul claro
02 - verde escuro
0a - verde claro
03 - ciano escuro
0b - ciano claro
04 - vermelho escuro
0c - vermelho claro
05 - purple escuro
0d - purple claro
06 marrom
0e - amarelo
07 - cinza claro
0f - branco
CTRL+Z
- Equivalente ao fim de arquivo no DOS
O cdigo padro usado o 07. Escolhendo uma cor clara para o fundo (08-0f) resultar em uma cor piscante
correspondente para a texto (00-07).

Guia Foca GNU/Linux

80

Captulo 7 - Execuo de programas


Este captulo explica como executar programas no GNU/Linux e o uso das ferramentas de controle de execuo
dos programas.

7.1 - Executando um comando/programa


Para executar um comando, necessrio que ele tenha permisses de execuo (veja Tipos de Permisses de
acesso, Seo 13.2 e ls, Seo 8.1) e que esteja no caminho de procura de arquivos (veja path, Seo 7.2).
No aviso de comando #(root) ou $(usurio), digite o nome do comando e tecle <Enter>. O programa/comando
executado e receber um nmero de identificao (chamado de PID - Process Identification), este nmero til
para identificar o processo no sistema e assim ter um controle sobre sua execuo (ser visto mais adiante neste
captulo).
Todo o programa recebe uma identificao de usurio (UID) quando executado o que determina quais sero
suas permisses de acesso durante sua execuo. O programa normalmente usa o UID do usurio que o
executou ou o usurio configurado pelo bit de permisso de acesso SUID caso estiver definido. Existem tambm
programas que so executados como root e modificam sua identificao de usurio para algum que tenha menos
privilgios no sistema (como o Apache, por exemplo). Para maiores detalhes veja Permisses de acesso a
arquivos e diretrios, Captulo 13.
Todo o programa executado no GNU/Linux roda sob o controle das permisses de acesso. Recomendo ver mais
tarde o Permisses de acesso a arquivos e diretrios, Captulo 13.
Exemplos de comandos: ls, df, pwd.

7.2 - path
Path o caminho de procura dos arquivos/comandos executveis. O path (caminho) armazenado na varivel
de ambiente PATH. Voc pode ver o contedo desta varivel com o comando echo $PATH.
Por exemplo, o caminho /usr/local/bin:/usr/bin:/bin:/usr/bin/X11 significa que se voc digitar o comando ls, o
interpretador de comandos iniciar a procura do programa ls no diretrio /usr/local/bin, caso no encontre o
arquivo no diretrio /usr/local/bin ele inicia a procura em /usr/bin, at que encontre o arquivo procurado.
Caso o interpretador de comandos chegue at o ltimo diretrio do PATH e no encontre o arquivo/comando
digitado, mostrada a seguinte mensagem:
bash: ls: command not found (comando no encontrado).
O caminho de diretrios vem configurado na instalao do Linux, mas pode ser alterado no arquivo /etc/profile.
Caso deseje alterar o caminho para todos os usurios, este arquivo o melhor lugar, pois ele lido por todos os
usurios no momento do login.
Caso um arquivo/comando no esteja localizado em nenhum dos diretrios do path, voc deve executa-lo
usando um ./ na frente do comando.
Se deseja alterar o path para um nico usurio, modifique o arquivo .bash_profile em seu diretrio de usurio
(home).
OBSERVAO: Por motivos de segurana, no inclua o diretrio atual $PWD no path.

7.3 - Tipos de Execuo de comandos/programas


Um programa pode ser executado de duas formas:

Primeiro Plano - Tambm chamado de foreground. Quando voc deve esperar o trmino da execuo
de um programa para executar um novo comando. Somente mostrado o aviso de comando aps o trmino
de execuo do comando/programa.

Segundo Plano - Tambm chamado de background. Quando voc no precisa esperar o trmino da
execuo de um programa para executar um novo comando. Aps iniciar um programa em background,
mostrado um nmero PID (identificao do Processo) e o aviso de comando novamente mostrado,
permitindo o uso normal do sistema. O programa executado em background continua sendo executado
internamente. Aps ser concludo, o sistema retorna uma mensagem de pronto acompanhado do nmero
PID do processo que terminou.
Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em
segundo plano, acrescente o caracter "&" aps o final do comando.
OBS: Mesmo que um usurio execute um programa em segundo plano e saia do sistema, o programa continuar
sendo executado at que seja concludo ou finalizado pelo usurio que inciou a execuo (ou pelo usurio root).
Exemplo: find / -name boot.b &
O comando ser executado em segundo plano e deixar o sistema livre para outras tarefas. Aps o comando find
Guia Foca GNU/Linux

81

terminar, ser mostrada uma mensagem.

7.4 - Executando programas em sequncia


Os comandos podem ser executados em seqncia (um aps o trmino do outro) se os separarmos com ";". Por
exemplo: echo primeiro;echo segundo;echo terceiro

7.5 - ps
Algumas vezes til ver quais processos esto sendo executados no computador. O comando ps faz isto, e
tambm nos mostra qual usurio executou o programa, hora que o processo foi iniciado, etc.
ps [opes]
Opes

a - Mostra os processos criados por voc e de outros usurios do sistema.

x - Mostra processos que no so controlados pelo terminal.

u - Mostra o nome de usurio que inciou o processo e hora em que o processo foi iniciado.

m - Mostra a memria ocupada por cada processo em execuo.

f - Mostra a rvore de execuo de comandos (comandos que so chamados por outros comandos).

e - Mostra variveis de ambiente no momento da inicializao do processo.

w - Mostra a continuao da linha atual na prxima linha ao invs de cortar o restante que no couber na
tela.

--sort:[coluna] - Organiza a sada do comando ps de acordo com a coluna escolhida. Voc pode usar as
colunas pid, utime, ppid, rss, size, user, priority. Pode ser especificada uma listagem em ordem inversa
especificando --sort:[-coluna]. Para mais detalhes e outras opes, veja a pgina de manual.
As opes acima podem ser combinadas para resultar em uma listagem mais completa. Voc tambm pode usar
pipes "|" para filtrar a sada do comando ps. Para detalhes, veja | (pipe), Seo 14.4.
Ao contrrio de outros comandos, o comando ps no precisa do hfen (-) para especificar os comandos. Isto
porque ele no utiliza opes longas e no usa parmetros.
Exemplos: ps, ps ax|grep inetd, ps auxf, ps auxw.

7.6 - top
Mostra os programas em execuo ativos, parados, tempo usado na CPU, detalhes sobre o uso da memria
RAM, Swap, disponibilidade para execuo de programas no sistema, etc. top um programa que continua em
execuo mostrando continuamente os processos que esto rodando em seu computador e os recursos utilizados
por eles. Para sair do top, pressione a tecla q.
top [opes]
Onde:

-d [tempo] - Atualiza a tela aps o [tempo] (em segundos).

-s - Diz ao top para ser executado em modo seguro.

-i - Inicia o top ignorando o tempo de processos zumbis.

-c - Mostra a linha de comando ao invs do nome do programa.


A ajuda sobre o top pode ser obtida dentro do programa pressionando a tecla <h> ou pela pgina de manual
(man top). Abaixo algumas teclas teis:

espao - Atualiza imediatamente a tela.

CTRL+L - Apaga e atualiza a tela.

h - Mostra a tela de ajuda do programa. mostrado todas as teclas que podem ser usadas com o top.

i - Ignora o tempo ocioso de processos zumbis.

q - Sai do programa.

k - Finaliza um processo - semelhante ao comando kill. Voc ser perguntado pelo nmero de
identificao do processo (PID). Este comando no estar disponvel caso esteja usando o top com a opo
-s.

n - Muda o nmero de linhas mostradas na tela. Se 0 for especificado, ser usada toda a tela para
listagem de processos.

7.7 - Controle de execuo de processos


Abaixo algumas comandos e mtodos teis para o controle da execuo de processos no GNU/Linux.

Guia Foca GNU/Linux

82

7.7.1 - Interrompendo a execuo de um processo


Para cancelar a execuo de algum processo rodando em primeiro plano, basta pressionar as teclas
<CTRL>+<C>. A execuo do programa ser cancelada e ser mostrado o aviso de comando. Voc tambm
pode usar o comando kill, Seo 7.7.6 para interromper um processo sendo executado.

7.7.2 - Parando momentaneamente a execuo de um processo


Para parar a execuo de um processo rodando em primeiro plano, basta pressionar as teclas <CTRL>+<Z>. O
programa em execuo ser pausado e ser mostrado o nmero de seu job e o aviso de comando.
Para retornar a execuo de um comando pausado, use fg, Seo 7.7.4 ou bg, Seo 7.7.5.
O programa permanece na memria no ponto de processamento em que parou quando ele interrompido. Voc
pode usar outros comandos ou rodar outros programas enquanto o programa atual est interrompido.

7.7.3 - jobs
O comando jobs mostra os processos que esto parados ou rodando em segundo plano. Processos em segundo
plano so iniciados usando o smbolo "&" no final da linha de comando (veja Tipos de Execuo de
comandos/programas, Seo 7.3) ou atravs do comando bg. O nmero de identificao de cada processo
parado ou em segundo plano (job), usado com os comandos fg, Seo 7.7.4 e bg, Seo 7.7.5.

7.7.4 - fg
Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Voc deve usar o
comando jobs para pegar o nmero do processo rodando em segundo plano ou interrompida, este nmero ser
passado ao comando fg para ativa-lo em primeiro plano.
fg [nmero]
Onde nmero o nmero obtido atravs do comando jobs.
Caso seja usado sem parmetros, o fg utilizar o ltimo programa interrompido (o maior nmero obtido com o
comando jobs).
Exemplo: fg 1.

7.7.5 - bg
Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um
programa em primeiro plano rodar em segundo, necessrio primeiro interromper a execuo do comando com
<CTRL>+<Z>, ser mostrado o nmero da tarefa interrompida, use este nmero com o comando bg para iniciar
a execuo do comando em segundo plano.
bg [nmero]
Onde: nmero - nmero do programa obtido com o pressionamento das teclas <CTRL>+<Z> ou atravs do
comando jobs.

7.7.6 - kill
Permite enviar um sinal a um comando/programa. Caso seja usado sem parmetros, o kill enviar um sinal de
trmino ao processo sendo executado.
kill [opes] [sinal] [nmero]
Onde:

nmero - o nmero de identificao do processo obtido com o comando ps, Seo 7.5

sinal - Sinal que ser enviado ao processo. Se omitido usa -15 como padro.
Opes

-9 - Envia um sinal de destruio ao processo ou programa. Ele terminado imediatamente sem chances
de salvar os dados ou apagar os arquivos temporrios criados por ele.
Voc precisa ser o dono do processo ou o usurio root para termina-lo ou destru-lo. Voc pode verificar se o
processo foi finalizado atravs do comando ps. Os tipos de sinais aceitos pelo GNU/Linux so explicados em
detalhes em Sinais do Sistema, Seo 7.7.9.
Exemplo: kill 500, kill -9 500.

7.7.7 - killall
Permite finalizar processos atravs do nome.
killall [opes] [sinal] [processo]
Guia Foca GNU/Linux

83

Onde:

processo - Nome do processo que se deseja finalizar

sinal - Sinal que ser enviado ao processo (pode ser obtido usando a opo -i).
Opes

-i - Pede confirmao sobre a finalizao do processo.

-l - Lista o nome de todos os sinais conhecidos.

-q - Ignora a existncia do processo.

-v - Retorna se o sinal foi enviado com sucesso ao processo.

-w - Finaliza a execuo do killall somente aps finalizar todos os processos.


Os tipos de sinais aceitos pelo GNU/Linux so explicados em detalhes na Sinais do Sistema, Seo 7.7.9.
Exemplo: killall -HUP inetd

7.7.8 - killall5
Envia um sinal de finalizao para todos os processos sendo executados.
killall5 [sinal]

7.7.9 - Sinais do Sistema


Retirado da pgina de manual signal. O GNU/Linux suporta os sinais listados abaixo. Alguns nmeros de sinais
so dependentes de arquitetura.
Primeiro, os sinais descritos no POSIX 1:
Sinal
Valor Ao
Comentrio
--------------------------------------------------------------------------HUP
1
A
Travamento detectado no term.de contr.ou finalizao do processo controlado
INT
2
A
Interrupo atravs do teclado
QUIT
3
C
Sair atravs do teclado
ILL
4
C
Instruo Ilegal
ABRT
6
C
Sinal de abortar enviado pela funo abort
FPE
8
C
Exceo de ponto Flutuante
KILL
9
AEF Sinal de destruio do processo
SEGV
11
C
Referncia Invlida de memria
PIPE
13
A
Pipe Quebrado: escreveu para o pipe sem leitores
ALRM
14
A
Sinal do Temporizador da chamada do sistema alarm
TERM
15
A
Sinal de Trmino
USR1 30,10,16 A
Sinal definido pelo usurio 1
USR2 31,12,17 A
Sinal definido pelo usurio 2
CHLD 20,17,18 B
Processo filho parado ou terminado
CONT 19,18,25
Continuar a execuo, se interrompido
STOP 17,19,23 DEF Interromper processo
TSTP 18,20,24 D
Interromper digitao no terminal
TTIN 21,21,26 D
Entrada do terminal para o processo em segundo plano
TTOU 22,22,27 D
Sada do terminal para o processo em segundo plano
As letras da coluna Ao tem o seguinte significado:

A - A ao padro terminar o processo.

B - A ao padro ignorar o sinal.

C - A ao padro terminar o processo e mostrar o core.

D - A ao padro parar o processo.

E - O sinal no pode ser pego.

F - O sinal no pode ser ignorado.


Sinais no descritos no POSIX 1 mas descritos na SUSv2:
Sinal
Valor
Aco
Comentrio
------------------------------------------------------------------------BUS
10,7,10
C
Erro no Barramento (acesso incorreto da memria)
POLL
A
Evento executado em Pool (Sys V). Sinnimo de IO
PROF
27,27,29
A
Tempo expirado do Profiling
SYS
12,-,12
C
Argumento invlido para a rotina (SVID)
Guia Foca GNU/Linux

84

TRAP
5
C
Captura do trao/ponto de interrupo
URG
16,23,21
B
Condio Urgente no soquete (4.2 BSD)
VTALRM 26,26,28
A
Alarme virtual do relgio (4.2 BSD)
XCPU
24,24,30
C
Tempo limite da CPU excedido (4.2 BSD)
XFSZ
25,25,31
C
Limite do tamanho de arquivo excedido (4.2 BSD)
Para os casos SIGSYS, SIGXCPU, SIGXFSZ, e em algumas arquiteturas tambm o SIGGUS, a ao padro do
Linux para Kernels 2.3.27 e superiores A (terminar), enquanto SYSv2 descreve C (terminar e mostrar dump
core). Seguem vrios outros sinais:
Sinal Valor Aco Comentrio
-------------------------------------------------------------------IOT
6
C
Trao IOT. Um sinnimo para ABRT
EMT
7,-,7
STKFLT
-,16,A
Falha na pilha do processador
IO
23,29,22
A
I/O agora possvel (4.2 BSD)
CLD
-,-,18
Um sinnimo para CHLD
PWR
29,30,19
A
Falha de fora (System V)
INFO
29,-,Um sinnimo para SIGPWR
LOST
-,-,A
Perda do bloqueio do arquivo
WINCH
28,28,20
B
Sinal de redimensionamento da Janela (4.3 BSD, Sun)
UNUSED -,31,A
Sinal no usado (ser SYS)
O "-" significa que o sinal no est presente. Onde trs valores so listados, o primeiro normalmente vlido
para o Alpha e Sparc, o do meio para i386, PowerPc e sh, o ltimo para o Mips. O sinal 29 SIGINFO/SIGPWR
em um Alpha mas SIGLOST em um Sparc.

7.8 - nohup
Executa um comando ignorando os sinais de interrupo. O comando poder ser executado at mesmo em
segundo plano caso seja feito o logout do sistema.
nohup [comando que ser executado]
As mensagens de sada do nohup so direcionadas para o arquivo $HOME/nohup.out.
Exemplo: nohup find / -uid 0 >/tmp/rootfiles.txt &.

7.9 - nice
Configura a prioridade da execuo de um comando/programa.
nice [opes] [comando/programa]
Onde:
comando/programa - Comando/programa que ter sua prioridade ajustada.
Opes:
-n [numero] - Configura a prioridade que o programa ser executado. Se um programa for executado com
maior prioridade, ele usar mais recursos do sistema para seu processamento, caso tenha uma prioridade
baixa, ele permitir que outros programas tenham preferncia. A prioridade de execuo de um
programa/comando pode ser ajustada de -19 (a mais alta) at 19 (a mais baixa).
Exemplo: nice -n -19 find / -name apropos

7.10 - fuser
Permite identificar e fechar os processos que esto utilizando arquivos e soquetes no sistema.
fuser [opes] [nome]
Onde:
nome - Especifica um nome de processo, diretrio, arquivo, etc.
Opes

-k - Finaliza os processos acessando o arquivo especificado. O sinal desejado deve ser especificado com
a opo -signal [num], ou o sinal -9 ser enviado como padro. No possvel matar o prprio processo
fuser.

-i - Pergunta antes de destruir um processo. Ser ignorada caso a opo -k no seja especificada.

-l - Lista todos os nomes de sinais conhecidos.

-m [nome] - Especifica um arquivo em um sistema de arquivos montado ou dispositivo de bloco que


est montado. Todos os processos acessando aquele sistema de arquivos sero listados. Diretrios so
mostrados seguidos de uma /
Guia Foca GNU/Linux

85

-signal [nmero] - Usa o sinal especificado ao invs de -9 (SIGKILL) quando finalizar processos.
-u - Acrescenta o nome do dono de cada processo ao PID.
-v - Os processos so mostrados em um estilo idntico ao ps.

7.11 - tload
Representa de forma grfica a carga do sistema.
tload [opes]
Onde:
Opes:

-s [nmero] - Mostra uma escala vertical com espaamento especificado por [nmero]. recomendvel
o uso de nmeros entre 1 e 10 para melhor visualizao da escala.

-d [nmero] - Especifica o intervalo entre atualizaes, em segundos.

7.12 - vmstat
Mostra estatsticas sobre o uso da memria virtual do sistema.
vmstat [intervalo] [contagem]
Onde:
intervalo - Nmero especificado em segundos entre atualizaes.
contagem - Nmero de vezes que ser mostrado.
Se no for especificado nenhum parmetro, o vmstat mostra o status da memria virtual e volta imediatamente
para a linha de comando. A descrio dos campos do vmstat so as seguintes:
Processos

r - Nmero de processos aguardando execuo.

b - Nmero de processos em espera no interrompveis.

w - Nmero de processos extrados do arquivo de troca ou caso contrrio em execuo.


Memria

swpd - A quantidade de memria virtual usada em Kb.

free - Quantidade de memria livre em Kb.

buff - Quantidade de memria usada como buffer em Kb.


Memria Virtual

si - Quantidade de memria gravada para o disco Kb/s.

so - Quantidade de memria retirada do disco em Kb/s.


Entrada/Sada

bi - Blocos enviados para um dispositivo de bloco (medido em blocos por segundo).

bo - Blocos recebidos de um dispositivo de bloco (em blocos por segundo).


Sistema

in - Nmero de interrupes por segundo, incluindo o clock.

cs - Nmero de mudanas de contexto por segundo.


Porcentagem do total de tempo da CPU

us - Tempo do usurio

sy - Tempo do sistema

id - Tempo ocioso

7.13 - pidof
Retorna o PID do processo especificado
pidof [opes] [nome]
Onde:
nome - Nome do processo que seja obter o nmero PID
Opes

-s - Retorna somente o primeiro PID encontrado.

-x - Retorna o PID do do shell que est executando o script

-o [PID] - Ignora o processo com aquele PID. O PID especial %PPID pode ser usado para nomear o
processo pai do programa pidof.
OBS: O programa pidof um link simblico ao programa killall5. Cuidado ao executar o killall5 as funes e
opes so completamente diferentes dependendo da forma como chamado na linha de comando (veja killall5,
Guia Foca GNU/Linux

86

Seo 7.7.8 para detalhes.)


Exemplo: pidof -s init

7.14 - pstree
Mostra a estrutura de processos em execuo no sistema em forma de rvore.
pstree [opes] [pid]
Onde:
pid - Nmero do processo que ter sua rvore listada. Se omitido, lista todos os processos.
Opes:

-a - Mostra opes passadas na linha de comando.

-c - Mostra toda a estrutura (inclusive sub-processos do processo pai).

1- Usa caracteres grficos no desenho da rvore de processos.

-h - Destaca o processo atual e seus antecessores.

-H [pid] - Destaca o processo especificado.

-l - No faz quebra de linha

-n - Classifica pelo nmero PID ao invs do nome.

-p - Mostra o nmero PID entre parnteses aps o nome do processo.

-u - Mostra tambm o dono do processo.

-U - Usa o conjunto de caracteres Unicode para o desenho da rvore.

7.15 - Fechando um programa quando no se sabe como sair


Muitas vezes quando se esta iniciando no GNU/Linux voc pode executar um programa e talvez no saber como
fecha-lo. Este captulo do guia pretende ajuda-lo a resolver este tipo de problema.
Isto pode tambm ocorrer com programadores que esto construindo seus programas e por algum motivo no
implementam uma opo de sada, ou ela no funciona!
Em nosso exemplo vou supor que executamos um programa em desenvolvimento com o nome contagem que
conta o tempo em segundos a partir do momento que executado, mas que o programador esqueceu de colocar
uma opo de sada. Siga estas dicas para finaliza-lo:
1.
Normalmente todos os programas UNIX (o GNU/Linux tambm um sistema operacional baseado no
UNIX) podem ser interrompidos com o pressionamento das teclas <CTRL> e <C>. Tente isto primeiro para
finalizar um programa. Isto provavelmente no vai funcionar se estiver usando um editor de texto (ele vai
entender como um comando de menu). Isto normalmente funciona para comandos que so executados e
terminados sem a interveno do usurio. Caso isto no der certo, vamos partir para a fora.
2.
Mude para um novo console (pressionando <ALT> e <F2>), e faa o login como usurio root.
3.
Localize o PID (nmero de identificao do processo) usando o comando: ps ax, aparecero vrias
linhas cada uma com o nmero do processo na primeira coluna, e a linha de comando do programa na
ltima coluna. Caso aparecerem vrios processos voc pode usar ps ax | grep contagem, neste caso o grep
far uma filtragem da sada do comando ps ax mostrando somente as linhas que tem a palavra "contagem".
Para maiores detalhes, veja o comando grep, Seo 10.8.
4.
Feche o processo usando o comando kill PID, lembre-se de substituir PID pelo nmero encontrado pelo
comando ps ax acima. O comando acima envia um sinal de trmino de execuo para o processo (neste caso
o programa contagem). O sinal de trmino mantm a chance do programa salvar seus dados ou apagar os
arquivos temporrios que criou e ento ser finalizado, isto depende do programa.
5.
Alterne para o console onde estava executando o programa contagem e verifique se ele ainda est em
execuo. Se ele estiver parado mas o aviso de comando no est disponvel, pressione a tecla <Enter>.
Freqentemente acontece isto com o comando kill, voc finaliza um programa mas o aviso de comando no
mostrado at que se pressione <Enter>.
6.
Caso o programa ainda no foi finalizado, repita o comando kill usando a opo -9: kill -9 PID. Este
comando envia um sinal de destruio do processo, fazendo ele terminar "na marra".
Uma ltima dica: todos os programas estveis (todos que acompanham as boas distribuies GNU/Linux) tem
sua opo de sada. Lembre-se que quando finaliza um processo todos os dados do programa em execuo
podem ser perdidos (principalmente se estiver em um editor de textos), mesmo usando o kill sem o parmetro 9.
Procure a opo de sada de um programa consultando o help on line, as pginas de manual, a documentao
que acompanha o programa, info pages. Para detalhes de como encontrar a ajuda dos programas, veja o Como
obter ajuda no sistema, Captulo 30

Guia Foca GNU/Linux

87

7.16 - Eliminando caracteres estranhos


As vezes quando um programa mal comportado finalizado ou quando voc visualiza um arquivo binrio
atravs do comando cat, possvel que o aviso de comando (prompt) volte com caracteres estranhos.
Para fazer tudo voltar ao normal, basta digitar reset e teclar <Enter>. No se preocupe, o comando reset no
reiniciar seu computador (como o boto reset do seu computador faz), ele apenas far tudo voltar ao normal.
Note que enquanto voc digitar reset aparecero caracteres estranhos ao invs das letras. No se preocupe. Basta
digitar corretamente e bater <Enter> e o aviso de comando voltar ao normal.

Guia Foca GNU/Linux

88

Captulo 8 - Comandos para manipulao de diretrio


Abaixo comandos teis para a manipulao de diretrios.

8.1 ls
Lista os arquivos de um diretrio.
ls [opes] [caminho/arquivo] [caminho1/arquivo1] ...
onde:
caminho/arquivo - Diretrio/arquivo que ser listado.
caminho1/arquivo1 - Outro Diretrio/arquivo que ser listado. Podem ser feitas vrias listagens de uma
s vez.
Opes:

-a, --all - Lista todos os arquivos (inclusive os ocultos) de um diretrio.

-A, --almost-all - Lista todos os arquivos (inclusive os ocultos) de um diretrio, exceto o

diretrio atual e o de nvel anterior.


-B, --ignore-backups - No lista arquivos que terminam com ~ (Backup).
--color=PARAM - Mostra os arquivos em cores diferentes, conforme o tipo de arquivo. PARAM pode
ser:
never

- Nunca lista em cores (mesma coisa de no usar o parmetro --color).


- Sempre lista em cores conforme o tipo de arquivo.
auto - Somente colore a listagem se estiver em um terminal.

-d, --directory - Lista os nomes dos diretrios ao invs do contedo.

-f - No classifica a listagem.

-F - Insere um caracter aps arquivos executveis ('*'), diretrios ('/'), soquete ('='), link simblico ('@')
e pipe ('|'). Seu uso til para identificar de forma fcil tipos de arquivos nas listagens de diretrios.

-G, --no-group - Oculta a coluna de grupo do arquivo.

-h, --human-readable - Mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes.

-H - Faz o mesmo que -h, mas usa unidades de 1000 ao invs de 1024 para especificar Kbytes, Mbytes,
Gbytes.

-l - Usa o formato longo para listagem de arquivos. Lista as permisses, data de modificao, donos,
grupos, etc.

-n - Usa a identificao de usurio e grupo numrica ao invs dos nomes.

-L, --dereference - Lista o arquivo original e no o link referente ao arquivo.

-o - Usa a listagem longa sem os donos dos arquivos (mesma coisa que -lG).

-p - Mesma coisa que -F, mas no inclui o smbolo '*' em arquivos executveis. Esta opo tpica de
sistemas Linux.

-R - Lista diretrios e sub-diretrios recursivamente.

--full-time - Lista data e hora completa.


Classificao da listagem
A listagem pode ser classificada usando-se as seguintes opes:

-f - No classifica, e usa -au para listar os arquivos.

-r - Inverte a ordem de classificao.

-c - Classifica pela data de alterao.

-X - Classifica pela extenso.

-U - No classifica, lista os arquivos na ordem do diretrio.


Uma listagem feita com o comando ls -la normalmente mostrada da seguinte maneira:
-rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste
Abaixo as explicaes de cada parte:

-rwxr-xr-- - So as permisses de acesso ao arquivo teste. A primeira letra (da esquerda) identifica o
tipo do arquivo, se tiver um d um diretrio, se tiver um "-" um arquivo normal. As permisses de acesso
explicada em detalhes em Permisses de acesso a arquivos e diretrios, Captulo 13.

1 - Se for um diretrio, mostra a quantidade de sub-diretrios existentes dentro dele. Caso for um
arquivo, ser 1.

gleydson - Nome do dono do arquivo teste.


always

Guia Foca GNU/Linux

89

user - Nome do grupo que o arquivo teste pertence.


8192 - Tamanho do arquivo (em bytes).
nov - Ms da criao/ ltima modificao do arquivo.
4 - Dia que o arquivo foi criado.
16:00 - Hora em que o arquivo foi criado/modificado. Se o arquivo foi criado ha mais de um ano, em
seu lugar mostrado o ano da criao do arquivo.

teste - Nome do arquivo.


Exemplos do uso do comando ls:
ls - Lista os arquivos do diretrio atual.
ls /bin /sbin - Lista os arquivos do diretrio /bin e /sbin
ls -la /bin - Listagem completa (vertical) dos arquivos do diretrio /bin inclusive os ocultos.

8.2 cd
Entra em um diretrio. Voc precisa ter a permisso de execuo para entrar no diretrio.
cd [diretorio]
onde:
diretorio - diretrio que deseja entrar.
Exemplos:
Usando cd sem parmetros ou cd ~, voc retornar ao seu diretrio de usurio (diretrio home).
cd / - retornar ao diretrio raz.
cd - - retornar ao diretrio anteriormente acessado.
cd .. - sobe um diretrio.
cd ../[diretorio] - sobe um diretrio e entra imediatamente no prximo (por exemplo, quando voc est
em /usr/sbin, voc digita cd ../bin, o comando cd retorna um diretrio (/usr) e entra
imediatamente no diretrio bin (/usr/bin).

8.3 pwd
Mostra o nome e caminho do diretrio atual.
Voc pode usar o comando pwd para verificar em qual diretrio se encontra (caso seu aviso de comandos no
mostre isso).

8.4 mkdir
Cria um diretrio no sistema. Um diretrio usado para armazenar arquivos de um determinado tipo. O
diretrio pode ser entendido como uma pasta onde voc guarda seus papeis (arquivos). Como uma pessoa
organizada, voc utilizar uma pasta para guardar cada tipo de documento, da mesma forma voc pode criar um
diretrio vendas para guardar seus arquivos relacionados com vendas naquele local.
mkdir [opes] [caminho/diretrio] [caminho1/diretrio1]
onde:
caminho - Caminho onde o diretrio ser criado.
diretrio - Nome do diretrio que ser criado.
Opes:
--verbose - Mostra uma mensagem para cada diretrio criado. As mensagens de erro sero mostradas
mesmo que esta opo no seja usada. Para criar um novo diretrio, voc deve ter permisso de
gravao. Por exemplo, para criar um diretrio em /tmp com o nome de teste que ser usado para gravar
arquivos de teste, voc deve usar o comando "mkdir /tmp/teste". Podem ser criados mais de um diretrio
com um nico comando (mkdir /tmp/teste /tmp/teste1 /tmp/teste2).

8.5 rmdir
Remove um diretrio do sistema. Este comando faz exatamente o contrrio do mkdir. O diretrio a ser removido
deve estar vazio e voc deve ter permisso de gravao para remove-lo.
rmdir [caminho/diretrio] [caminho1/diretrio1]
onde:
caminho - Caminho do diretrio que ser removido.
diretrio - Nome do diretrio que ser removido.
necessrio que esteja um nvel acima do diretrio(s) que ser(o) removido(s). Para remover diretrios que
contenham arquivos, use o comando rm com a opo -r (para maiores detalhes, veja rm, Seo 9.3). Por
exemplo, para remover o diretrio /tmp/teste voc deve estar no diretrio tmp e executar o comando rmdir teste.
Guia Foca GNU/Linux

90

Captulo 9 Comandos para manipulao de Arquivos


Abaixo, comandos utilizados para manipulao de arquivos.

9.1 cat
Mostra o contedo de um arquivo binrio ou texto.
cat [opes] [diretrio/arquivo] [diretrio1/arquivo1]
onde:
diretrio/arquivo - Localizao do arquivo que deseja visualizar o contedo.
Opes:

-n, --number - Mostra o nmero das linhas enquanto o contedo do arquivo mostrado.

-s, --squeeze-blank - No mostra mais que uma linha em branco entre um pargrafo e outro.

- - L a entrada padro.
O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamente arquivos compactados
com gzip.
Exemplo: cat /usr/doc/copyright/GPL

9.2 tac
Mostra o contedo de um arquivo binrio ou texto (como o cat) s que em ordem inversa.
tac [opes] [diretrio/arquivo] [diretrio1/arquivo1]
onde:
diretrio/arquivo - Localizao do arquivo que deseja visualizar o contedo
Opes:

-s [string] - Usa o [string] como separador de registros.

- - L a entrada padro.
Exemplo: tac /usr/doc/copyright/GPL.

9.3 rm
Apaga arquivos. Tambm pode ser usado para apagar diretrios e sub-diretrios vazios ou que contenham
arquivos.
rm [opes][caminho][arquivo/diretrio] [caminho1][arquivo1/diretrio1]
onde:
caminho - Localizao do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no
diretrio atual.
arquivo/diretrio - Arquivo que ser apagado.
Opes:

-i, --interactive - Pergunta antes de remover, esta ativada por padro.

-v, --verbose - Mostra os arquivos na medida que so removidos.

-r, --recursive - Usado para remover arquivos em sub-diretrios. Esta opo tambm pode ser usada
para remover sub-diretrios.

-f, --force - Remove os arquivos sem perguntar.


Use com ateno o comando rm, uma vez que os arquivos e diretrios forem apagados, eles no podero ser
mais recuperados.
Exemplos:
rm teste.txt - Apaga o arquivo teste.txt no diretrio atual.
rm *.txt - Apaga todos os arquivos do diretrio atual que terminam com .txt.
rm *.txt teste.novo - Apaga todos os arquivos do diretrio atual que terminam com .txt e tambm o
arquivo teste.novo.
rm -rf /tmp/teste/* - Apaga todos os arquivos e sub-diretrios do diretrio /tmp/teste mas mantm o subdiretrio /tmp/teste.
rm -rf /tmp/teste - Apaga todos os arquivos e sub-diretrios do diretrio /tmp/teste, inclusive /tmp/teste.

9.4 cp
Copia arquivos.
cp [opes] [origem] [destino]
Guia Foca GNU/Linux

91

onde:
origem - Arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado
usando "Curingas" (veja Curingas, Seo 2.12).
destino - O caminho ou nome de arquivo onde ser copiado. Se o destino for um diretrio, os arquivos
de origem sero copiados para dentro do diretrio.
Opes:

i, --interactive - Pergunta antes de substituir um arquivo existente.

-f, --force - No pergunta, substitui todos os arquivos caso j exista.

-r - Copia arquivos dos diretrios e subdiretrios da origem para o destino. recomendvel usar -R ao
invs de -r.

-R, --recursive - Copia arquivos e sub-diretrios (como a opo -r) e tambm os arquivos especiais
FIFO e dispositivos.

-v, --verbose - Mostra os arquivos enquanto esto sendo copiados.

-s, --simbolic-link - Cria link simblico ao invs de copiar.

-l, --link - Faz o link no destino ao invs de copiar os arquivos.

-p, --preserve - Preserva atributos do arquivo, se for possvel.

-u, --update - Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o
arquivo de destino no existe.

-x - No copia arquivos que esto localizados em um sistema de arquivos diferente de onde a cpia
inciou.
O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino tero o mesmo contedo
aps a cpia.
Exemplos:
cp teste.txt teste1.txt - Copia o arquivo teste.txt para teste1.txt.
cp teste.txt /tmp - Copia o arquivo teste.txt para dentro do diretrio /tmp.
cp * /tmp - Copia todos os arquivos do diretrio atual para /tmp.
cp /bin/* . - Copia todos os arquivos do diretrio /bin para o diretrio em que nos encontramos no momento.
cp -R /bin /tmp - Copia o diretrio /bin e todos os arquivos/sub-diretrios existentes para o diretrio /tmp.
cp -R /bin/* /tmp - Copia todos os arquivos do diretrio /bin (exceto o diretrio /bin) e todos os
arquivos/sub-diretrios existentes dentro dele para /tmp.
cp -R /bin /tmp - Copia todos os arquivos e o diretrio /bin para /tmp.

9.5 mv
Move ou renomeia arquivos e diretrios. O processo semelhante ao do comando cp mas o arquivo de origem
apagado aps o trmino da cpia.
mv [opes] [origem] [destino]
Onde:
origem - Arquivo/diretrio de origem.
destino - Local onde ser movido ou novo nome do arquivo/diretrio.
Opes:

-f, --force - Substitui o arquivo de destino sem perguntar.

-i, --interactive - Pergunta antes de substituir. o padro.

-v, --verbose - Mostra os arquivos que esto sendo movidos.

-u, --update - Move somente arquivos antigos, ou novos arquivos.


O comando mv copia um arquivo da ORIGEM para o DESTINO (semelhante ao cp), mas aps a cpia, o
arquivo de ORIGEM apagado.
Exemplos:
mv teste.txt teste1.txt - Muda o nome do arquivo teste.txt para teste1.txt.
mv teste.txt /tmp - Move o arquivo teste.txt para /tmp. Lembre-se que o arquivo de origem apagado aps ser
movido.
mv teste.txt teste.new (supondo que teste.new j exista) - Copia o arquivo teste.txt por cima de teste.new e
apaga teste.txt aps terminar a cpia.

Guia Foca GNU/Linux

92

Captulo 10 Comandos Diversos


Comandos de uso diversos no sistema.

10.1 clear
Limpa a tela e posiciona o cursor no canto superior esquerdo do vdeo.
clear

10.2 date
Permite ver/modificar a Data e Hora do Sistema. Voc precisa estar como usurio root para modificar a data e
hora. Muitos programas do sistema, arquivos de registro (log) e tarefas agendadas funcionam com base na data e
hora fornecidas pelo sistema, assim esteja consciente das modificaes que a data/hora pode trazer a estes
programas (principalmente em se tratando de uma rede com muitos usurios) .
date MesDiaHoraMinuto[AnoSegundos]
Onde:
MesDiaHoraMinuto[AnoSegundos] - So respectivamente os nmeros do ms, dia, hora e minutos
sem espaos. Opcionalmente voc pode especificar o Ano
(com 2 ou 4 dgitos) e os Segundos.
+[FORMATO] Define o formato da listagem que ser usada pelo comando date. Os seguintes
formatos so os mais usados:
%d - Dia do Ms (00-31).
%m - Ms do Ano (00-12).
%y - Ano (dois dgitos).
%Y - Ano (quatro dgitos).
%H - Hora (00-24).
%I - Hora (00-12).
%M - Minuto (00-59).
%j - Dia do ano (1-366).
%p - AM/PM (til se utilizado com %d).
%r - Formato de 12 horas completo (hh:mm:ss AM/PM).
%T - Formato de 24 horas completo (hh:mm:ss).
%w - Dia da semana (0-6).
Outros formatos podem ser obtidos atravs da pgina de manual do date. Para maiores detalhes, veja a pgina de
manual do comando date.
Para ver a data atual digite: date
Se quiser mudar a Data para 25/12 e a hora para 08:15 digite: date 12250815
Para mostrar somente a data no formato dia/ms/ano: date +%d/%m/%Y

10.3 df
Mostra o espao livre/ocupado de cada partio.
df [opes]
Opes:

-a - Inclui sistemas de arquivos com 0 blocos.

-h, --human-readable - Mostra o espao livre/ocupado em MB, KB, GB ao invs de blocos.

-H - Idntico a -h mas usa 1000 ao invs de 1024 como unidade de clculo.

-k - Lista em Kbytes.

-l - Somente lista sistema de arquivos locais.

-m - Lista em Mbytes (equivalente a --block-size=1048576).

--sync - Executa o sync antes de mostrar os dados.

-T - Lista o tipo de sistema de arquivos de cada partio

-t tipo - Lista somente sistema de arquivos do tipo tipo.

-x tipo - No lista sistemas de arquivos do tipo tipo.


Exemplos: df, df -h, df -t vfat.

Guia Foca GNU/Linux

93

10.4 ln
Cria links para arquivos e diretrios no sistema. O link um mecanismo que faz referncia a outro arquivo ou
diretrio em outra localizao. O link em sistemas GNU/Linux faz referncia reais ao arquivo/diretrio podendo
ser feita cpia do link (ser copiado o arquivo alvo), entrar no diretrio (caso o link faa referncia a um
diretrio), etc.
ln [opes] [origem] [link]
Onde:
origem - Diretrio ou arquivo de onde ser feito o link.
link - Nome do link que ser criado.
Opes:

-s - Cria um link simblico. Usado para criar ligaes com o arquivo/diretrio de destino.

-v - Mostra o nome de cada arquivo antes de fazer o link.

-d - Cria um hard link para diretrios. Somente o root pode usar esta opo.
Existem 2 tipos de links: simblicos e hardlinks.
O link simblico cria um arquivo especial no disco (do tipo link) que tem como contedo o caminho para
chegar at o arquivo alvo (isto pode ser verificado pelo tamanho do arquivo do link). Use a opo -s para criar
links simblicos.
O hardlink faz referncia ao mesmo inodo do arquivo original, desta forma ele ser perfeitamente idntico,
inclusive nas permisses de acesso, ao arquivo original. Ao contrrio dos links simblicos, no possvel fazer
um hardlink para um diretrio ou fazer referncia a arquivos que estejam em parties diferentes.
Observaes:
Se for usado o comando rm com um link, somente o link ser removido.
Se for usado o comando cp com um link, o arquivo original ser copiado ao invs do link.
Se for usado o comando mv com um link, a modificao ser feita no link.
Se for usado um comando de visualizao (como o cat), o arquivo original ser visualizado.
Exemplos:
ln -s /dev/ttyS1 /dev/modem - Cria o link /dev/modem para o arquivo /dev/ttyS1.
ln -s /tmp ~/tmp - Cria um link ~/tmp para o diretrio /tmp.

10.5 du
Mostra o espao ocupado por arquivos e sub-diretrios do diretrio atual.
du [opes]
Opes:

-a, --all - Mostra o espao ocupado por todos os arquivos.

-b, --bytes - Mostra o espao ocupado em bytes.

-c, --total - Faz uma totalizao de todo espao listado.

-D - No conta links simblicos.

-h, --human - Mostra o espao ocupado em formato legvel por humanos (Kb, Mb) ao invs de usar
blocos.

-H - Como o anterior mas usa 1000 e no 1024 como unidade de clculo.

-k - Mostra o espao ocupado em Kbytes.

-m - Mostra o espao ocupado em Mbytes.

-S, --separate-dirs - No calcula o espao ocupado por sub-diretrios.

-x - No faz a contagem de diretrios em sistemas de arquivos diferentes do atual.


Exemplo: du -h, du -hc.

10.6 find
Procura por arquivos/diretrios no disco. find pode procurar arquivos atravs de sua data de modificao,
tamanho, etc atravs do uso de opes. find, ao contrrio de outros programas, usa opes longas atravs de um
"-".
find [diretrio] [opes/expreso]
Onde:
diretrio - Inicia a procura neste diretrio, percorrendo seu sub-diretrios.
Opes/expresso

-name [expresso] - Procura pelo nome [expresso] nos nomes de arquivos e diretrios processados.

-depth - Processa os sub-diretrios primeiro antes de processar os arquivos do diretrio principal.


Guia Foca GNU/Linux

94

-maxdepth [num] - Faz a procura at [num] sub-diretrios dentro do diretrio que est sendo
pesquisado.

-mindepth [num] - No faz nenhuma procura em diretrios menores que [num] nveis.

-mount, -xdev - No faz a pesquisa em sistemas de arquivos diferentes daquele de onde o comando find
foi executado.

-amin [num] - Procura por arquivos que foram acessados [num] minutos atrs. Caso for antecedido por
"-", procura por arquivos que foram acessados entre [num] minutos atrs at agora.

-atime [num] - Procura por arquivos que foram acessados [num] dias atrs. Caso for antecedido por "-",
procura por arquivos que foram acessados entre [num] dias atrs e a data atual.

-gid [num] - Procura por arquivos que possuam a identificao numrica do grupo igual a [num].

-group [nome] - Procura por arquivos que possuam a identificao de nome do grupo igual a [nome].

-uid [num] - Procura por arquivos que possuam a identificao numrica do usurio igual a [num].

-user [nome] - Procura por arquivos que possuam a identificao de nome do usurio igual a [nome].

-inum [num] - Procura por arquivos que esto localizados no inodo [num].

-links [num] - Procura por arquivos que possuem [num] links como referncia.

-mmin [num] - Procura por arquivos que tiveram seu contedo modificado h [num] minutos. Caso for
antecedido por "-", procura por arquivos que tiveram seu contedo modificado entre [num] minutos atrs at
agora.

-mtime [num] - Procura por arquivos que tiveram seu contedo modificado h [num] dias. Caso for
antecedido por "-", procura por arquivos que tiveram seu contedo modificado entre [num] dias atrs at
agora.

-nouser - Procura por arquivos que no correspondam a identificao do usurio atual.

-nogroup - Procura por arquivos que no correspondam a identificao do grupo do usurio atual.

-perm [modo] - Procura por arquivos que possuam os modos de permisso [modo]. Os [modo] de
permisso pode ser numrico (octal) ou literal.

-used [num] - O arquivo foi acessado [num] vezes antes de ter seu status modificado.

-size [num] - Procura por arquivos que tiverem o tamanho [num]. [num] pode ser antecedido de "+" ou
"-" para especificar um arquivo maior ou menor que [num]. A opo -size pode ser seguida de:
o b - Especifica o tamanho em blocos de 512 bytes. o padro caso [num] no seja acompanhado de
nenhuma letra.
o c - Especifica o tamanho em bytes.
o k - Especifica o tamanho em Kbytes.

-type [tipo] - Procura por arquivos do [tipo] especificado. Os seguintes tipos so aceitos:
o b - bloco
o c - caracter
o d - diretrio
o p - pipe
o f - arquivo regular
o l - link simblico
o s - sockete
A maior parte dos argumentos numricos podem ser precedidos por "+" ou "-". Para detalhes sobre outras
opes e argumentos, consulte a pgina de manual.
Exemplo:
find / -name grep - Procura no diretrio raz e sub-diretrios um arquivo/diretrio chamado grep.
find / -name grep -maxdepth 3 - Procura no diretrio raz e sub-diretrios at o 3o. nvel, um arquivo/diretrio
chamado grep.
find . -size +1000k - Procura no diretrio atual e sub-diretrios um arquivo com tamanho maior que 1000
kbytes (1Mbyte).
find / -mmin 10 - Procura no diretrio raz e sub-diretrios um arquivo que foi modificado h 10 minutos atrs.
find / -links 4 - Procura no diretrio raz e sub-diretrios, todos os arquivos que possuem 4 links como
referncia.

10.7 free
Mostra detalhes sobre a utilizao da memria RAM do sistema.
free [opes]
Opes:
Guia Foca GNU/Linux

95


-b - Mostra o resultado em bytes.

-k - Mostra o resultado em Kbytes.

-m - Mostra o resultado em Mbytes.

-o - Oculta a linha de buffers.

-t - Mostra uma linha contendo o total.

-s [num] - Mostra a utilizao da memria a cada [num] segundos.


O free uma interface ao arquivo /proc/meminfo.

10.8 grep
Procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padro.
grep [expresso] [arquivo] [opes]
Onde:
expresso - palavra ou frase que ser procurada no texto. Se tiver mais de 2 palavras voc deve
identifica-la com aspas "" caso contrrio o grep assumir que a segunda palavra o
arquivo!
arquivo - Arquivo onde ser feita a procura.
Opes:

-A [nmero] - Mostra o [nmero] de linhas aps a linha encontrada pelo grep.

-B [nmero] - Mostra o [nmero] de linhas antes da linha encontrada pelo grep.

-f [arquivo] - Especifica que o texto que ser localizado, esta no arquivo [arquivo].

-h, --no-filename - No mostra os nomes dos arquivos durante a procura.

-i, --ignore-case - Ignora diferena entre maisculas e minsculas no texto procurado e arquivo.

-n, --line-number - Mostra o nome de cada linha encontrada pelo grep.

-U, --binary - Trata o arquivo que ser procurado como binrio.


Se no for especificado o nome de um arquivo ou se for usado um hfen "-", grep procurar a string no
dispositivo de entrada padro. O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisar
diretamente em arquivos compactados com gzip, os comandos e opes so as mesmas.
Exemplos: grep "capitulo" texto.txt, ps ax|grep inetd, grep "capitulo" texto.txt -A 2 -B 2.

10.9 head
Mostra as linhas iniciais de um arquivo texto.
head [opes]
Opes:

-c [numero] - Mostra o [numero] de bytes do incio do arquivo.

-n [numero] - Mostra o [numero] de linhas do incio do arquivo. Caso no for especificado, o head
mostra as 10 primeiras linhas.
Exemplos: head teste.txt, head -n 20 teste.txt.

10.10 nl
Mostra o nmero de linhas junto com o contedo de um arquivo.
nl [opes] [arquivo]
Opes:

-f [opc] - Faz a filtragem de sada de acordo com [opc]:

a - Numera todas as linhas.

t - No numera linhas vazias.

n - Numera linhas vazias.

texto - Numera somente linhas que contm o [texto].

-v [num] - Nmero inicial (o padro 1).

-i [num] - Nmero de linhas adicionadas a cada linha do arquivo (o padro 1).


Exemplos: nl /etc/passwd, nl -i 2 /etc/passwd.

10.11 more
Permite fazer a paginao de arquivos ou da entrada padro. O comando more pode ser usado como comando
para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o more efetua uma pausa e
permite que voc pressione Enter ou espao para continuar avanando no arquivo sendo visualizado. Para sair
Guia Foca GNU/Linux

96

do more pressione q.
more [arquivo]
Onde: arquivo - o arquivo que ser paginado.
Para visualizar diretamente arquivos texto compactados pelo gzip .gz use o comando zmore.
Exemplos: more /etc/passwd, cat /etc/passwd|more.

10.12 less
Permite fazer a paginao de arquivos ou da entrada padro. O comando less pode ser usado como comando
para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o less efetua uma pausa
(semelhante ao more) e permite que voc pressione Seta para Cima e Seta para Baixo ou PgUP/PgDown para
fazer o rolamento da pgina. Para sair do less pressione q.
less [arquivo]
Onde: arquivo - o arquivo que ser paginado.
Para visualizar diretamente arquivos texto compactados pelo utilitrio gzip (arquivos .gz), use o comando zless.
Exemplos: less /etc/passwd, cat /etc/passwd|less

10.13 sort
Organiza as linhas de um arquivo texto ou da entrada padro. A organizao feita por linhas e as linhas so
divididas em campos que a ordem que as palavras aparecem na linha separadas por um delimitador
(normalmente um espao).
sort [opes] [arquivo]
Onde:
arquivo - o nome do arquivo que ser organizado. Caso no for especificado, ser usado o dispositivo
de entrada padro (normalmente o teclado ou um "|").
Opes:

-b - Ignora linhas em branco.

-d - Somente usa letras, dgitos e espaos durante a organizao.

-f - Ignora a diferena entre maisculas e minsculas.

-r - Inverte o resultado da comparao.

-n - Caso estiver organizando um campo que contm nmeros, os nmeros sero organizados na ordem
aritmtica. Por exemplo, se voc tiver um arquivo com os nmeros
100
10
50
Usando a opo -n, o arquivo ser organizado desta maneira:
10
50
100
Caso esta opo no for usada com o sort, ele organizar como uma listagem alfabtica (que comeam
de a at z e do 0 at 9)
10
100
50

-c - Verifica se o arquivo j esta organizado. Caso no estiver, retorna a mensagem "disorder on


arquivo".

-o arquivo - Grava a sada do comando sort no arquivo.

-m arquivo1 arquivo2 - Combina o contedo de arquivo1 e arquivo2 gerando um nico arquivo. Os


dois arquivos precisam estar ordenados antes de se utilizar esta opo.

-i - Ignora os caracteres fora da faixa octal ASCII 040-0176 durante a organizao.

-t caracter - Usa caracter como delimitador durante a organizao de linhas. Por padro usado um
espao em branco como delimitador de caracteres.

+num1 -num2 - Especifica qual o campo dentro na linha que ser usado na organizao. O(s) campo(s)
usado(s) para organizao estar entre +num1 e +num2. O delimitador padro utilizado um espao em
branco (use a opo -t para especificar outro). A contagem iniciada em "0". Caso no for especificada, a
organizao feita no primeiro campo. Caso -num2 no seja especificado, a organizao ser feita usando a
coluna +num1 at o fim da linha.

-k num1, num2 - Esta uma alternativa ao mtodo acima para especificar as chaves de organizao. O
Guia Foca GNU/Linux

97

uso idntico, mas o delimitador iniciado em "1".


Abaixo, exemplos de uso do comando sort:
sort texto.txt - Organiza o arquivo texto.txt em ordem crescente.
sort texto.txt -r - Organiza o contedo do arquivo texto.txt em ordem decrescente.
cat texto.txt|sort - Faz a mesma coisa que o primeiro exemplo, s que neste caso a sada do comando cat
redirecionado a entrada padro do comando sort.
sort -f texto.txt - Ignora diferenas entre letras maisculas e minsculas durante a organizao.
sort +1 -3 texto.txt - Organiza o arquivo texto.txt usando como referncia a segunda at a quarta
palavra (segundo ao quarto campo) que constam naquela linha.
sort -t : +2 -3 passwd - Organiza o arquivo passwd usando como referncia a terceira at a quarta
palavra (terceiro ao quarto campo). Note que a opo -t especifica o caracter
":" como delimitador de campos ao invs do espao. Neste caso, o que estiver
aps ":" ser considerado o prximo campo.

10.14 tail
Mostra as linhas finais de um arquivo texto.
tail [opes]
Opes:

-c [numero] - Mostra o [numero] de bytes do final do arquivo.

-n [numero] - Mostra o [numero] de linhas do final do arquivo.


Exemplos: tail teste.txt, tail -n 20 teste.txt.

10.15 time
Mede o tempo gasto para executar um processo (programa).
time [comando]
Onde: comando - o comando/programa que deseja medir o tempo gasto para ser concludo.
Exemplo: time ls, time find / -name crontab.

10.16 touch
Muda a data e hora que um arquivo foi criado. Tambm pode ser usado para criar arquivos vazios. Caso o touch
seja usado com arquivos que no existam, por padro ele criar estes arquivos.
touch [opes] [arquivos]
Onde:
arquivos - Arquivos que tero sua data/hora modificados.
Opes:

-t MMDDhhmm[ANO.segundos] - Usa Minutos (MM), Dias (DD), Horas (hh), minutos (mm) e
opcionalmente o ANO e segundos para modificao do(s) arquivos ao invs da data e hora atual.

-a, --time=atime - Faz o touch mudar somente a data e hora do acesso ao arquivo.

-c, --no-create - No cria arquivos vazios, caso os arquivos no existam.

-m, --time=mtime - Faz o touch mudar somente a data e hora da modificao.

-r [arquivo] - Usa as horas no [arquivo] como referncia ao invs da hora atual.


Exemplos:
touch teste - Cria o arquivo teste caso ele no existir.
touch -t 10011230 teste - Altera da data e hora do arquivo para 01/10 e 12:30.
touch -t 120112301999.30 teste - Altera da data, hora ano, e segundos do arquivo para 01/12/1999 e
12:30:30.
touch -t 12011200 * - Altera a data e hora do arquivo para 01/12 e 12:00.

10.17 uptime
Mostra o tempo de execuo do sistema desde que o computador foi ligado.
uptime

10.18 dmesg
Mostra as mensagens de inicializao do Kernel. So mostradas as mensagens da ltima inicializao do
sistema.
dmesg|less
Guia Foca GNU/Linux

98

10.19 mesg
Permite ou no o recebimentos de requisies de talk de outros usurios.
mesg [y/n]
Onde: y - permite que voc receba "talks" de outros usurios.
Digite mesg para saber se voc pode ou no receber "talks" de outros usurios. Caso a resposta seja "n" voc
poder enviar um talk para algum mas o seu sistema se recusar em receber talks de outras pessoas.
interessante colocar o comando mesg y em seu arquivo de inicializao .bash_profile para permitir o
recebimento de "talks" toda vez que entrar no sistema.
Para detalhes sobre como se comunicar com outros usurios, veja o comando talk, Seo 11.8.

10.20 echo
Mostra mensagens. Este comando til na construo de scripts para mostrar mensagens na tela para o usurio
acompanhar sua execuo.
echo [mensagem]
A opo -n pode ser usada para que no ocorra o salto de linha aps a mensagem ser mostrada.

10.21 su
Permite o usurio mudar sua identidade para outro usurio sem fazer o logout. til para executar um programa
ou comando como root sem ter que abandonar a seo atual.
su [usurio]
Onde: usurio - o nome do usurio que deseja usar para acessar o sistema. Se no digitado, assumido o
usurio root. Ser pedida a senha do superusurio para autenticao. Digite exit quando desejar retornar
a identificao de usurio anterior.

10.22 sync
Grava os dados do cache de disco na memria RAM para todos os discos rgidos e flexveis do sistema. O cache
um mecanismo de acelerao que permite que um arquivo seja armazenado na memria ao invs de ser
imediatamente gravado no disco, quando o sistema estiver ocioso, o arquivo gravado para o disco. O
GNU/Linux procura utilizar toda memria RAM disponvel para o cache de programas acelerando seu
desempenho de leitura/gravao.
sync
O uso do sync til em disquetes quando gravamos um programa e precisamos que os dados sejam gravados
imediatamente para retirar o disquete da unidade. Mas o mtodo recomendado especificar a opo sync
durante a montagem da unidade de disquetes (para detalhes veja fstab, Seo 5.9.1.

10.23 uname
Retorna o nome e verso do Kernel atual.
uname

10.24 reboot
Reinicia o computador.

10.25 shutdown
Desliga/reinicia o computador imediatamente ou aps determinado tempo (programvel) de forma segura.
Todos os usurios do sistema so avisados que o computador ser desligado . Este comando somente pode ser
executado pelo usurio root ou quando usada a opo -a pelos usurios cadastrados no arquivo
/etc/shutdown.allow que estejam logados no console virtual do sistema.
shutdown [opes] [hora] [mensagem]
Onde:

hora - Momento que o computador ser desligado. Voc pode usar HH:MM para definir a hora e
minuto, MM para definir minutos, +SS para definir aps quantos segundos, ou now para imediatamente
(equivalente a +0). O shutdown criar o arquivo /etc/nologin para no permitir que novos usurios faam
login no sistema (com excesso do root). Este arquivo removido caso a execuo do shutdown seja
cancelada (opo -c) ou aps o sistema ser reiniciado.

mensagem - Mensagem que ser mostrada a todos os usurios alertando sobre o reincio/desligamento
Guia Foca GNU/Linux

99

do sistema.
Opes:

-h - Inicia o processo para desligamento do computador.

-r - Reinicia o sistema

-c - Cancela a execuo do shutdown. Voc pode acrescentar uma mensagem avisando aos usurios
sobre o fato.

-a - Permite que os nomes de usurios contidos no arquivo /etc/shutdown.allow possam utilizar o


shutdown para reinicializar/desligar o sistema. Deve ser colocado um nome de usurio por linha. O limite
mximo de usurios neste arquivo de 32. Este arquivo til quando o shutdown usado para controlar o
pressionamento das teclas CTRL+ALT+DEL no /etc/inittab.

-k - Simula o desligamento/reincio do sistema, enviando mensagem aos usurios.

-f - No executa a checagem do sistema de arquivos durante a inicializao do sistema. Este processo


feito gravando-se um arquivo /fastboot que interpretado pelos scripts responsveis pela execuo do fsck
durante a inicializao do sistema.

-F - Fora a checagem do sistema de arquivos durante a inicializao. gravado um arquivo chamado


/forcefsck que interpretado pelos scripts responsveis pela execuo do fsck durante a inicializao do
sistema.

-n - Faz com que o shutdown ignore a execuo do init fechando todos os processos.

-t [num] - Faz com que o shutdown envie um sinal de trmino aos processos e aguarde [num] segundos
antes de enviar o sinal KILL.
O shutdown envia uma mensagem a todos os usurios do sistema alertando sobre o desligamento durante os 15
minutos restantes e assim permite que finalizem suas tarefas. Aps isto, o shutdown muda o nvel de execuo
atravs do comando init para 0 (desligamento), 1 (modo monousurio), 6 (reinicializao). recomendado
utilizar o smbolo "&" no final da linha de comando para que o shutdown seja executado em segundo plano.
Quando restarem apenas 5 minutos para o reincio/desligamento do sistema, o programa login ser desativado,
impedindo a entrada de novos usurios no sistema.
O programa shutdown pode ser chamado pelo init atravs do pressionamento da combinao das teclas de
reinicializao CTRL+ALT+DEL alterando-se o arquivo /etc/inittab. Isto permite que somente os usurios
autorizados (ou o root) possam reinicializar o sistema.
Exemplos:
"shutdown -h now" - Desligar o computador imediatamente.
"shutdown -r now" - Reinicia o computador imediatamente.
"shutdown 19:00 A manuteno do servidor ser iniciada s 19:00" - Faz o computador entrar em
modo monousurio (init 1) s 19:00 enviando a mensagem A manuteno do servidor ser
iniciada s 19:00 a todos os usurios conectados ao sistema.
"shutdown -r 15:00 O sistema ser reiniciado s 15:00 horas" - Faz o computador ser reiniciado (init 6)
s 15:00 horas enviando a mensagem O sistema ser reiniciado s 15:00 horas a todos os
usurios conectados ao sistema.
shutdown -r 20 - Faz o sistema ser reiniciado aps 20 minutos.
shutdown -c - Cancela a execuo do shutdown.
shutdown -t 30 -r 20 - Reinicia o sistema aps 20 minutos, espera 30 segundos aps o sinal de trmino
para enviar o sinal KILL a todos os programas abertos.

10.26 wc
Conta o nmero de palavras, bytes e linhas em um arquivo ou entrada padro. Se as opes forem omitidas, o
wc mostra a quantidade de linhas, palavras, e bytes.
wc [opes] [arquivo]
Onde:
arquivo - Arquivo que ser verificado pelo comando wc.
Opes:

-c, --bytes - Mostra os bytes do arquivo.

-w, --words - Mostra a quantidade de palavras do arquivo.

-l, --lines - Mostra a quantidade de linhas do arquivo.


A ordem da listagem dos parmetros nica, e modificando a posio das opes no modifica a ordem que os
parmetros so listados.
Exemplo:
wc /etc/passwd - Mostra a quantidade de linhas, palavras e letras (bytes) no arquivo /etc/passwd.
wc -w /etc/passwd - Mostra a quantidade de palavras.
Guia Foca GNU/Linux

100

wc -l /etc/passwd - Mostra a quantidade de linhas.


wc -l -w /etc/passwd - Mostra a quantidade de linhas e palavras no arquivo /etc/passwd.

10.27 chattr
Modifica atributos de arquivos/diretrios. No confunda atributos de arquivo com permisses de acesso
(Permisses de acesso a arquivos e diretrios, Captulo 13), os atributos so diferentes e definem outras
caractersticas especiais para os arquivos/diretrios especificados.
chattr [opes] [atributos] [arquivos/diretrios]
Onde:
arquivos/diretrios - Arquivos/Diretrios que tero os atributos modificados. Podem ser usados
curingas
Opes:

-R - Modifica atributos em subdiretrios

-V - Mostra detalhes sobre a modificao de atributos.


atributos
Os atributos de arquivos/diretrios podem ser especificados da seguinte maneira:

+ - Adiciona o atributo

- - Remove o atributo

= - Define o atributo exatamente como especificado


Os atributos so os seguintes:

A - No modifica a hora de acesso de arquivos. Poder aumentar consideravelmente a performance em


Notebooks devido a diminuio de I/O no disco rgido. Quando especificada em diretrios, faz com que
todos os arquivos e subdiretrios residentes nele no tenham a hora de acesso modificada. Este atributo
funciona apenas em Kernels 2.2 e superiores

a - Append-Only - Arquivos com este atributo podem somente ser gravados em modo incrementais (o
contedo poder somente ser adicionado ao final do arquivo). Eles no podero ser removidos, renomeados
e novos links no podero ser criados para estes arquivos. Em diretrios faz com que os arquivos sejam
apenas adicionados. Somente o root pode especificar ou retirar este atributo.

c - Permite compactao nos arquivos especificados de forma transparente para o usurio. Durante a
leitura, o Kernel retorna dados descompactados e durante a gravao os dados so compactados e gravados
no disco. Este atributo ainda no foi totalmente implementado no cdigo atual do Kernel.

d - Este atributo no usado pelo Kernel, mas faz com que o programa dump evitar backup dos
arquivos marcados com este atributo.

i - Imutvel - Arquivos imutveis no podem ser modificados, os dados tambm no podem ser
gravados para estes arquivos, no podem ser removidos, renomeados. At mesmo o usurio root no poder
modificar estes arquivos. Em diretrios, faz com que arquivos no possam ser adicionados ou apagados.
Somente o usurio root pode especificar ou retirar este atributo.

s - O arquivo especificado marcado como "apagamento seguro"; quando o arquivo apagado, seus
blocos so zerados e gravados de volta no disco (eliminando qualquer possibilidade de recuperao).

S - Faz a gravao imediatamente para o arquivo especificado. como especificar a opo "sync" na
montagem do sistema de arquivos ext2, mas afeta somente os arquivos especificados. No tem efeito em
diretrios.

u - O arquivo especificado marcado como recupervel. Quando o arquivo apagado, seu contedo
salvo para permitir futura recuperao. Este atributo ainda no foi implementado totalmente no cdigo atual
do Kernel.
Os atributos de arquivos/diretrios so visualizados atravs do utilitrio lsattr. Existem patches para os Kernels
da srie 2.2 que adicionam o suporte experimental aos atributos "c" e "u".
Exemplos:
chattr +AacdiSsu teste.txt - Adiciona todos os atributos
chattr =ASs teste.txt - Define os atributos para "ASs"
chattr +i -A teste.txt - Retira o atributo "A" e adiciona "i"
chattr = teste.txt - Retira todos os atributos

10.28 lsattr
Lista atributos de um arquivo/diretrio. Os atributos podem ser modificados atravs do comando chattr.
Guia Foca GNU/Linux

101

lsattr [opes] [arquivos/diretrios]


Onde:
arquivos/diretrios - Arquivos/diretrios que deseja listar os atributos. Podem ser usados curingas.
Opes:

-a - Lista todos os arquivos, incluindo ocultos (inciando com um ".").

-d - Lista os atributos de diretrios ao invs de listar os arquivos que ele contm.

-R - Faz a listagem em diretrios e subdiretrios.

-v - Mostra verses dos arquivos.


Caso seja especificado sem parmetros, o lsattr listar os atributos de todos os arquivos e diretrios do diretrio
atual. O lsattr mostrar mensagens de erro caso seja usado em um diretrio de pontos de montagem ou arquivos
que no sejam ext2.
Exemplo: lsattr -d, lsattr -R, lsattr -R *.txt

10.29 cut
Mostra sees de cada linha do arquivo dependendo das opes passadas ao programa.
cut [opes] [arquivo]
Onde:
arquivo - Arquivo que ser verificado pelo comando cut.
Opes:

-b, --bytes [bytes] - Mostra somente a lista de [bytes] do arquivo.

-c, --characters [numero] - Mostra somente o [nmero] de caracteres no arquivo. semelhante a opo
"-b" mas tabs e espaos so tratados como qualquer caracter.

-f, --field [campos] - Mostra somente a lista de [campos].

-d, --delimite [delimitador] - Para uso com a opo -f, os campos so separados pelo primeiro caracter
em [delimitador] ao invs de tabulaes.

-s - Para uso com a opo -f, somente mostra linhas que contm o caracter separador de campos.
Devem ser especificadas opes para o funcionamento deste comando. Os bytes, campos e delimitadores podem
ser especificados atravs de intervalos de caracteres (usando a-z), atravs de vrgulas (a,b,d) ou da combinao
entre eles.
cut -b 1,3 /etc/passwd - Pega a primeira e terceira letra (byte) de cada linha do arquivo /etc/passwd
cut -b 1,3-10 /etc/passwd - Pega a primeira letra (byte) e terceira a dcima letra de cada linha do
arquivo /etc/passwd.
cut -c 1,3-10 /etc/passwd - Pega o primeiro caracter e terceiro ao dcimo caracter de cada linha do
arquivo /etc/passwd.

10.30 cmp
Compara dois arquivos de qualquer tipo (binrio ou texto). Os dois arquivos especificados sero comparado e
caso exista diferena entre eles, mostrado o nmero da linha e byte onde ocorreu a primeira diferena na sada
padro (tela) e o programa retorna o cdigo de sada 1.
cmp [arquivo1] [arquivo2] [opes]
Onde:
arquivo1/arquivo2 - Arquivos que sero comparados.
Opes:

-l - Mostra o nmero do byte (hexadecimal) e valores diferentes de bytes (octal) para cada diferena.

-s - No mostra nenhuma diferena, s retorna o cdigo de sada do programa.


Use o comando zcmp para comparar diretamente arquivos binrios/texto compactados com gzip.
Exemplo: cmp teste.txt teste1.txt.

10.31 dirname
Obtm o nome do diretrio atravs do caminho passado ao programa.
dirname [diretrio/arquivo]
Exemplo: dirname /usr/bin/dirname, dirname /tmp/*.

10.32 diff
Compara dois arquivos e mostra as diferenas entre eles. O comando diff usado somente para a comparao de
Guia Foca GNU/Linux

102

arquivos em formato texto. As diferenas encontradas podem ser redirecionadas para um arquivo que poder ser
usado pelo comando patch para aplicar as alteraes em um arquivo que no contm as diferenas. Isto til
para grandes textos porque possvel copiar somente as modificaes (geradas atravs do diff, que so muito
pequenas) e aplicar no arquivo para atualiza-lo (atravs do patch) ao invs de copiar a nova verso. Este um
sistema de atualizao muito usado na atualizao dos cdigo fonte do Kernel do GNU/Linux.
diff [diretrio1/arquivo1] [diretrio2/arquivo2] [opes]
Onde:
diretrio1/arquivo1 diretrio2/arquivo2 - Arquivos /diretrios que sero comparados. Normalmente
usado como primeiro arquivo/diretrio o mais antigo e o
mais novo como segundo.
Opes:

-lines [num] - Gera a diferena com [num] linhas de contexto. Por padro o diff gera um arquivo com 2
linhas que o mnimo necessrio para o correto funcionamento do patch.

-a - Compara os dois arquivos como arquivos texto.

-b - Ignora espaos em branco como diferenas.

-B - Ignora linhas em branco inseridas ou apagadas nos arquivos.

-i - Ignora diferenas entre maisculas e minsculas nos arquivos.

-H - Usa anlise heurstica para verificar os arquivos.

-N - Em uma comparao de diretrios, se o arquivo apenas existe em um diretrio, trata-o como


presente mas vazio no outro diretrio.

-P - Em uma comparao de diretrios, se o arquivos apenas existe no segundo diretrio, trata-o como
presente mas vazio no primeiro diretrio.

-q - Mostra somente se os dois arquivos possuem diferenas. No mostra as diferenas entre eles.

-r - Compara diretrios e sub-diretrios existentes.

-S [nome] - Inicia a comparao de diretrios pelo arquivo [nome]. til quando cancelamos uma
comparao.

-t - Aumenta a tabulao das diferenas encontradas.

-u - Usa o formato de comparao unificado.


Use o comando zdiff para comparar diretamente arquivos compactados pelo utilitrio gzip
Use o comando sdiff para visualizar as linhas diferentes entre os dois arquivos em formato texto simples.
Exemplo:
diff texto.txt texto1.txt - Compara o arquivo texto.txt com texto1.txt e exibe suas diferenas na tela.
diff -Bu texto.txt texto1.txt - Compara o arquivo texto.txt com texto1.txt ignorando linhas em branco
diferentes entre os dois arquivos e usando o formato unificado.
diff texto.txt texto1.txt >texto.diff - Compara o arquivo texto.txt com texto1.txt e gera um arquivo
chamdo texto.diff contendo a diferena entre eles. Este arquivo poder ser
usado pelo patch para aplicar as diferenas existente entre os dois no
arquivo texto.txt.
diff -r /usr/src/linux-2.2.13 /usr/src/linux-2.2.14 >patch-2.2.14.diff - Compara o diretrio e subdiretrios linux-2.2.13 e linux-2.2.14 e grava as diferenas entre eles no
arquivo patch-2.2.14.diff.

10.33 pr
Pgina arquivos texto ou a entrada padro para impresso. Este comando faz a paginao de um arquivo texto e
opcionalmente ajusta o nmero de colunas e mostra o resultado na sada padro.
pr [opes] [arquivo]
Onde:
arquivo - Arquivo que ser paginado para impresso.
Opes:

+[NUM] - Inicia a numerao de pginas na pgina [PAGINA]

-[NUM] - Mostra a sada com [NUM] colunas.

-c - Imprime o caracter CTRL como "^" na sada padro.

-F, -f - Usa avano de pgina ao invs de linhas em branco para separar pginas.

-e[caracter][tamanho] - Usa o caracter [caracter] como tabulao (o padro tab) e o espao da


tabulao [tamanho].

-h [nome] - Mostra [nome] ao invs do nome do arquivo no cabealho.

-l [num] - Define o nmero mximo de linhas por pgina para [num].


Guia Foca GNU/Linux

103

-m - Imprime vrios arquivos em paralelo, um por coluna.


-r - Oculta mensagens de erro de abertura de arquivos.
-w [num] - Ajusta a largura da pgina para [num] colunas (o padro 72).
Exemplo: pr -l 50 -h "Teste do comando pr" teste.txt.

10.34 patch
Atualiza arquivos texto atravs das diferenas geradas pelo comando diff.
patch [opes] [arquivo.diff] ou patch [opes] < [arquivo.diff]
Onde:
arquivo.diff - Arquivo contendo as diferenas geradas pelo comando diff.
Opes:

-p [num] - Nvel do diretrio onde o patch ser aplicado, se igual a 0, o patch assume que os arquivos
que sero atualizados esto no diretrio atual, se 1, assume que os arquivos que sero atualizado esto no
diretrio acima (..), se 2, 2 diretrios acima ...

-b - Cria cpias de segurana dos arquivos originais ao aplica o patch.

-binary - L e grava arquivo usando modo binrio.

-d [dir] - Muda para o diretrio [dir] antes de aplica o patch.

-E - Remove arquivos vazios aps a aplicao do patch.

-n - Interpreta o arquivo de patch como um .diff normal.

-N - No desfaz patches j aplicados.

-s - No mostra mensagens de erro.

-u - Interpreta o patch em formato unificado.


As diferenas so aplicadas em arquivos originais gerados pelo comando diff. importante entender os
comandos patch e diff pois so comandos muito utilizados para desenvolvimento feito por equipes de pessoas.
Exemplo:
patch -p0<texto.diff - Aplica as diferenas contidas no arquivo texto.diff nos arquivos originais.
patch -p0 texto.txt texto.diff - Aplica as diferenas contidas no arquivo texto.diff nos arquivos originais.
Faz a mesma coisa que o comando anterior.

10.35 whereis
Localiza o arquivo que contm uma pgina de manual. A pesquisa feita usando-se os caminhos de pginas de
manuais configuradas no sistema (normalmente o arquivo /etc/manpath.config).
whereis [comando]
Exemplo: whereis ls, whereis cd.

10.36 which
Mostra a localizao de um arquivo executvel no sistema. A pesquisa de arquivos executveis feita atravs do
path do sistema. Para maiores detalhes, veja path, Seo 7.2.
which [comando]
Exemplos: which ls, which shutdown, which which.

10.37 zforce
Renomeia extenso de arquivos para .gz. Este comando til quando fazemos downloads de arquivos
compactados pelo gzip mas que no esto identificados pela extenso .gz.
zforce [arquivos]
Quando usado o zforce verifica se o arquivo um arquivo compactado pelo gzip, caso seja, verificado se j
tem a extenso .gz, caso no tiver, acrescenta a extenso.

10.38 gzexe
Cria arquivos compactados gzip auto-extrcteis. Este comando usado para compactar arquivos executveis
que se auto-descompactam assim que so solicitados. til para sistemas ou unidades de disco que possuem
pouco espao disponvel. Este comando deve somente ser usado para arquivos executveis.
gzexe [arquivo]
Onde: arquivo - o arquivo executvel que ser compactado.
Quando gzexe executado, uma cpia do arquivo original gravada com o formato nome_do_arquivo~.
Guia Foca GNU/Linux

104

Exemplo: gzexe /tmp/teste.

10.39 znew
Recompacta arquivos do formato compress (.Z) para o formato gzip (.gz). Aps a re-compactao, os arquivos
de origem .Z so apagados.
znew [opes] [arquivo]
Onde:
arquivo.Z - Arquivo compactado pelo compress que ser re-compactado para o gzip.
Opes:

-f - Substitui o arquivo .gz caso j exista.

-t - Teste os novos arquivos criados antes de apagar os arquivos .Z.

-v - Mostra o nome e porcentagem de compactao para cada arquivo processado.

-9 - Usa a mxima compactao.

-P - Usa pipes durante a converso para reduzir o espao ocupado no disco. A data e hora do arquivo
no mantida caso esta opo seja usada.

-K - Mantm o arquivo .Z caso seja menor que o arquivo .gz.

Guia Foca GNU/Linux

105

Captulo 11 Comandos de rede


Este captulo traz alguns comandos teis para uso em rede e ambientes multiusurio.

11.1 who
Mostra quem est atualmente conectado no computador. Este comando lista os nomes de usurios que esto
conectados em seu computador, o terminal e data da conexo.
who [opes]
Opes:

-H, --heading - Mostra o cabealho das colunas.

-i, -u, --idle - Mostra o tempo que o usurio est parado em Horas:Minutos.

-m, i am - Mostra o nome do computador e usurio associado ao nome. equivalente a digitar who i am
ou who am i.

-q, --count - Mostra o total de usurios conectados aos terminais.

-T, -w, --mesg - Mostra se o usurio pode receber mensagens via talk (conversao).
o
+ - O usurio recebe mensagens via talk
o
- - O usurio no recebe mensagens via talk.
o
? - No foi possvel determinar o dispositivo de terminal onde o usurio est conectado.

11.2 Telnet
Permite acesso a um computador remoto. mostrada uma tela de acesso correspondente ao computador local
onde deve ser feita a autenticao do usurio para entrar no sistema. Muito til, mas deve ser tomado cuidados
ao disponibilizar este servio para evitar riscos de segurana.
telnet [opes] [ip/dns] [porta]
onde:
ip/dns - Endereo IP do computador de destino ou nome DNS.
porta - Porta onde ser feita a conexo. Por padro, a conexo feita na porta 23.
Opes:

-8 - Requisita uma operao binria de 8 bits. Isto fora a operao em modo binrio para envio e
recebimento. Por padro, telnet no usa 8 bits.

-a - Tenta um login automtico, enviando o nome do usurio lido da varivel de ambiente USER.

-d - Ativa o modo de debug.

-r - Ativa a emulao de rlogin.

-l [usurio] - Faz a conexo usando [usurio] como nome de usurio.


Exemplo: telnet 192.168.1.1, telnet 192.168.1.1 23.

11.3 finger
Mostra detalhes sobre os usurios de um sistema. Algumas verses do finger possuem bugs e podem significar
um risco para a segurana do sistema. recomendado desativar este servio na mquina local.
finger [usurio] [usurio@host]
Onde:
usurio - Nome do usurio que deseja obter detalhes do sistema. Se no for digitado o nome de usurio,
o sistema mostra detalhes de todos os usurios conectados no momento.
usurio@host - Nome do usurio e endereo do computador que deseja obter detalhes.
-l - Mostra os detalhes de todos os usurios conectados no momento. Entre os detalhes, esto includos o
nome do interpretador de comandos (shell) do usurio, diretrio home, nome do usurio, endereo, etc.
Estes dados so lidos de /etc/passwd.
-p - No exibe o contedo dos arquivos .plan e .project
Se for usado sem parmetros, mostra os dados de todos os usurios conectados atualmente ao seu sistema.
Exemplo: finger, finger root.

11.4 ftp
Permite a transferncia de arquivos do computador remoto/local e vice versa. O file transfer protocol o sistema
de transmisso de arquivos mais usado na Internet. requerida a autenticao do usurio para que seja
permitida a conexo. Muitos servidores ftp disponibilizam acesso annimo aos usurios, com acesso restrito.
Guia Foca GNU/Linux

106

Uma vez conectado a um servidor ftp, voc pode usar a maioria dos comandos do GNU/Linux para oper-lo.
ftp [ip/dns]
Abaixo alguns dos comandos mais usados no FTP:

ls - Lista arquivos do diretrio atual.

cd [diretrio] - Entra em um diretrio.

get [arquivo] - Copia um arquivo do servidor ftp para o computador local. O arquivo gravado, por
padro, no diretrio onde o program ftp foi executado.

hash [on/off] - Por padro esta opo est desligada. Quando ligada, faz com que o caracter "#" seja
impresso na tela indicando o progresso do download.

mget [arquivos] - Semelhante ao get, mas pode copiar diversos arquivos e permite o uso de curingas.

send [arquivo] - Envia um arquivo para o diretrio atual do servidor FTP (voc precisa de uma conta
com acesso a gravao para fazer isto).

prompt [on/off] - Ativa ou desativa a pergunta para a cpia de arquivo. Se estiver como off assume sim
para qualquer pergunta.
Exemplo: ftp ftp.br.debian.org.

11.5 whoami
Mostra o nome que usou para se conectar ao sistema. til quando voc usa vrias contas e no sabe com qual
nome entrou no sistema.
whoami

11.6 dnsdomainname
Mostra o nome do domnio de seu sistema.

11.7 hostname
Mostra ou muda o nome de seu computador na rede.

11.8 talk
Inicia conversa com outro usurio em uma rede local ou Internet. Talk um programa de conversao em tempo
real onde uma pessoa v o que a outra escreve.
talk [usurio] [tty]
ou
talk [usurio@host]
Onde:
usurio - Nome de login do usurio que deseja iniciar a conversao. Este nome pode ser obtido com o
comando who (veja who, Seo 11.1).
tty - O nome de terminal onde o usurio est conectado, para iniciar uma conexo local.
usurio@host - Se o usurio que deseja conversar estiver conectado em um computador remoto, voc deve
usar o nome do usurio@hosname do computador.
Aps o talk ser iniciado, ele verificar se o usurio pode receber mensagens, em caso positivo, ele enviar uma
mensagem ao usurio dizendo como responder ao seu pedido de conversa. Veja who, Seo 11.1. Voc deve ter
o daemon do talk instalado (talkd) para receber requisies de conversa.
Voc deve autorizar o recebimento de talks de outros usurios para que eles possam se comunicar com voc ,
para detalhes veja o comando mesg, Seo 10.19.

11.9 ping
Verifica se um computador est disponvel na rede. Este comando muito utilizado por alguns programas de
conexo e administradores para verificar se uma determinada mquina est conectada na rede e tambm para
verificar o tempo de resposta de cada mquina da rede. O ping envia pacotes ICMS ECHO_REQUEST para um
computador, este quando recebe o pacote envia uma resposta ao endereo de origem avisando que est
disponvel na rede.
ping [opes][IP/DNS]
onde:
IP/dns - Endereo IP ou nome DNS do endereo.
Opes:

-c [num] - Envia num pacotes ao computador de destino.


Guia Foca GNU/Linux

107

-f - Flood ping - Envia novos pacotes antes de receber a resposta do pacote anterior. Para cada
requisio enviada, um "." mostrado na tela e para cada resposta recebida, um backspace mostrado.
Somente o usurio root pode utilizar esta opo e pode te auxiliar muito na deteco de erros de transmisso
de pacotes em interfaces das mquinas em sua rede.
-i [seg] - Aguarda [seg] segundos antes de enviar cada pacote.
-q - No mostra as requisies enquanto so enviadas, somente mostra as linhas de sumrio no incio e
trmino do programa.
-s [tamanho] - Especifica o tamanho do pacote que ser enviado.
-v, --verbose - Sada detalhada, tanto os pacotes enviados como recebidos so listados.
Exemplo: ping 192.168.1.1, ping www.br.debian.org.

11.10 rlogin
Executa um login em uma mquina local ou remota.
rlogin [opes] [IP/DNS]
onde:
IP/DNS - Endereo IP ou DNS do computador que ser acessado.
Opes:

-l [nome] - Entra com o user id [nome] no sistema.


rlogin usado para executar comandos interativamente no computador de destino (como se voc estivesse
sentado diante dele, muito semelhante ao telnet). Para executar comandos no interativamente veja rsh, Seo
11.11.

11.11 rsh
Executa um comando em um computador local ou remoto.
rsh [opes] [IP/DNS] [comando]
Onde:
IP/DNS - Endereo IP ou nome DNS do computador.
comando - Comando que ser executado no computador local/remoto.
Opes:

-l [nome] - Entra no sistema usando o login [nome].


rsh usado somente para executar comandos. Para usar um shell interativo veja Telnet, Seo 11.2 e rlogin,
Seo 11.10.

11.12 w
Mostra quem est conectado no sistema e o que cada um est fazendo.
w [opes][usurio]
onde:
usurio - Nome do usurio que deseja ver os detalhes. Se o usurio no for digitado, o comando w
mostra detalhes de todos os usurios conectados no sistema.
Opes:

-h - No mostra o cabealho

-u - Ignora os nomes de usurios enquanto verifica os processo atuais e tempos de CPU.

-f - Mostra ou oculta o campo FROM na listagem.

11.13 traceroute
Mostra o caminho percorrido por um pacote para chegar ao seu destino. Este comando mostra na tela o caminho
percorrido entre os Gateways da rede e o tempo gasto de retransmisso. Este comando til para encontrar
computadores defeituosos na rede caso o pacote no esteja chegando ao seu destino.
traceroute [opes] [host/IP de destino]
Onde:
host/IP destino - o endereo para onde o pacote ser enviado (por exemplo, www.debian.org). Caso o
tamanho do pacote no seja especificado, enviado um pacote de 38 bytes.
Opes:

-l - Mostra o tempo de vida do pacote (ttl)

-m [num] - Ajusta a quantidade mximas de ttl dos pacotes. O padro 30.

-n - Mostra os endereos numericamente ao invs de usar resoluo DNS.


Guia Foca GNU/Linux

108

-p [porta] - Ajusta a porta que ser usada para o teste. A porta padro 33434.
-r - Pula as tabelas de roteamento e envia o pacote diretamente ao computador conectado a rede.
-s [end] - Usa o endereo IP/DNS [end] como endereo de origem para computadores com mltiplos
endereos IPs ou nomes.

-v - Mostra mais detalhes sobre o resultado do traceroute.

-w [num] - Configura o tempo mximo que aguardar por uma resposta. O padro 3 segundos.
Exemplos: traceroute www.debian.org, traceroute www.linux.org.

11.14 netstat
Mostra conexes de rede, tabela de roteamento, estatsticas de interfaces, conexes masquerade, e mensagens.
netstat [opes]
Opes:
-i [interface] - Mostra estatsticas da interface [interface].
-M, --masquerade - Se especificado, tambm lista conexes masquerade.
-n, --numeric - Usa endereos numricos ao invs de tentar resolver nomes de hosts, usurios e portas.
-c, --continuos - Mostra a listagem a cada segundo at que a CTRL+C seja pressionado.
Se no for especificada nenhuma opo, os detalhes das conexes atuais sero mostrados.

11.15 wall
Envia uma mensagem a todos os usurios do sistema. Este comando faz a leitura de um arquivo ou entrada
padro e escreve o resultado em todos os terminais onde existem usurios conectados. Somente o usurio root
pode utilizar este comando.
wall [arquivo]
Exemplos: wall /tmp/mensagem.txt, echo Teste de mensagem enviada a todos os usurios conectados ao
sistema|wall.

Guia Foca GNU/Linux

109

Captulo 12 Comandos para manipulao de contas


Este captulo traz comandos usados para manipulao de conta de usurios e grupos em sistemas GNU/Linux.
Entre os assuntos descritos aqui esto adicionar usurios ao sistema, adicionar grupos, incluir usurios existente
em novos grupos, etc.

12.1 adduser
Adiciona um usurio ou grupo no sistema. Por padro, quando um novo usurio adicionado, criado um
grupo com o mesmo nome do usurio. Ser criado um diretrio home com o nome do usurio (a no ser que o
novo usurio criado seja um usurio do sistema) e este receber uma identificao. A identificao do usurio
(UID) escolhida ser a primeira disponvel no sistema especificada de acordo com a faixa de UIDS de usurios
permitidas no arquivo de configurao /etc/adduser.conf. Este o arquivo que contm os padres para a criao
de novos usurios no sistema.
adduser [opes] [usurio/grupo]
Onde:
usurio/grupo - Nome do novo usurio que ser adicionado ao sistema.
Opes:
-disable-passwd - No executa o programa passwd para escolher a senha e somente permite o uso da conta
aps o usurio escolher uma senha.
--force-badname - Desativa a checagem de senhas ruins durante a adio do novo usurio. Por padro o
adduser checa se a senha pode ser facilmente adivinhada.
--group - Cria um novo grupo ao invs de um novo usurio. A criao de grupos tambm pode ser feita
pelo comando addgroup.
-uid [num] - Cria um novo usurio com a identificao [num] ao invs de procurar o prximo UID
disponvel.
-gid [num] - Faz com que o usurio seja parte do grupo [gid] ao invs de pertencer a um novo grupo que
ser criado com seu nome. Isto til caso deseje permitir que grupos de usurios possam ter acesso a
arquivos comuns. Caso estiver criando um novo grupo com adduser, a identificao do novo grupo ser
[num].
--home [dir] - Usa o diretrio [dir] para a criao do diretrio home do usurio ao invs de usar o
especificado no arquivo de configurao /etc/adduser.conf.
--ingroup [nome] - Quando adicionar um novo usurio no sistema, coloca o usurio no grupo [nome] ao
invs de criar um novo grupo.
--quiet - No mostra mensagens durante a operao.
--system - Cria um usurio de sistema ao invs de um usurio normal.
Os dados do usurio so colocados no arquivo /etc/passwd aps sua criao e os dados do grupo so colocados
no arquivo /etc/group.
OBS: Caso esteja usando senhas ocultas (shadow passwords), as senhas dos usurios sero colocadas no arquivo
/etc/shadow e as senhas dos grupos no arquivo /etc/gshadow. Isto aumenta mais a segurana do sistema porque
somente o usurio root pode ter acesso a estes arquivos, ao contrrio do arquivo /etc/passwd que possui os dados
de usurios e devem ser lidos por todos.

12.2 addgroup
Adiciona um novo grupo de usurios no sistema. As opes usadas so as mesmas do adduser, Seo 12.1.
addgroup [usurio/grupo] [opes]

12.3 passwd
Muda a senha do usurio ou grupo. Um usurio somente pode alterar a senha de sua conta, mas o superusurio
(root) pode alterar a senha de qualquer conta de usurio, inclusive a data de validade da conta, etc. Os donos de
grupos tambm podem alterar a senha do grupo com este comando.
Os dados da conta do usurio como nome, endereo, telefone, tambm podem ser alterados com este comando.
passwd [usurio/grupo] [opes]
Onde:
usurio - Nome do usurio/grupo que ter sua senha alterada.

Guia Foca GNU/Linux

110

Opes:
-g - Se especificada, a senha do grupo ser alterada. Somente o root ou o administrador do grupo pode
alterar sua senha. A opo -r pode ser usada com esta para remover a senha do grupo. A opo -R pode ser
usada para restringir o acesso do grupo para outros usurios.
-x [dias] - Especifica o nmero mximo de dias que a senha poder ser usada. Aps terminar o prazo, a
senha dever ser modificada.
-i - Desativa a conta caso o usurio no tenha alterado sua senha aps o tempo especificado por -x.
-n [dias] - Especifica o nmero mnimo de dias para a senha ser alterada. O usurio no poder mudar sua
senha at que [dias] sejam atingidos desde a ltima alterao de senha.
-w [num] - Nmero de dias antecedentes que o usurio receber o alerta para mudar sua senha. O alerta
ocorre [num] dias antes do limite da opo -x, avisando ao usurios quantos dias restam para a troca de sua
senha.
-l [nome] - Bloqueia a conta do usurio [nome]. Deve ser usada pelo root. O bloqueio da conta feito
acrescentando um caracter a senha para que no confira com a senha original.
-u [nome] - Desbloqueia a conta de um usurio bloqueada com a opo -l.
-S [nome] - Mostra o status da conta do usurio [nome]. A primeira parte o nome do usurio seguido de
L (conta bloqueada), NP (sem senha), ou P (com senha), a terceira parte a data da ltima modificao da
senha, a quarta parte a perodo mnimo, mximo, alerta e o perodo de inatividade para a senha.
Procure sempre combinar letras maisculas, minsculas, e nmeros ao escolher suas senhas. No
recomendado escolher palavras normais como sua senha pois podem ser vulnerveis a ataques de dicionrios
cracker. Outra recomendao utilizar senhas ocultas em seu sistema (shadow password).
Voc deve ser o dono da conta para poder modificar a senhas. O usurio root pode modificar/apagar a senha de
qualquer usurio.
Exemplo: passwd root.

12.4 newgrp
Altera a identificao de grupo do usurio. Para retornar a identificao anterior, digite exit e tecle Enter. Para
executar um comando com outra identificao de grupo de usurio, use o comando sg, Seo 12.9.
newgrp - [grupo]
Onde:
- - Se usado, inicia um novo ambiente aps o uso do comando newgrp (semelhante a um novo login no
sistema), caso contrrio, o ambiente atual do usurio mantido.
grupo - Nome do grupo ou nmero do grupo que ser includo.
Quando este comando usado, pedida a senha do grupo que deseja acessar. Caso a senha do grupo esteja
incorreta ou no exista senha definida, a execuo do comando negada. A listagem dos grupos que pertence
atualmente pode ser feita usando o comando id, Seo 12.12.

12.5 userdel
Apaga um usurio do sistema. Quando usado, este comando apaga todos os dados da conta especificado dos
arquivos de contas do sistema.
userdel [-r] [usurio]
Onde:
-r - Apaga tambm o diretrio HOME do usurio.
OBS: Note que uma conta de usurio no poder ser removida caso ele estiver no sistema, pois os programas
podem precisar ter acesso aos dados dele (como UID, GID) no /etc/passwd.

12.6 groupdel
Apaga um grupo do sistema. Quando usado, este comando apaga todos os dados do grupo especificado dos
arquivos de contas do sistema.
groupdel [grupo]
Tenha certeza que no existem arquivos/diretrios criados com o grupo apagado atravs do comando find.
OBS: Voc no pode remover o grupo primrio de um usurio. Remova o usurio primeiro.

12.7 lastlog
Mostra o ltimo login dos usurios cadastrados no sistema. mostrado o nome usado no login, o terminal onde
ocorreu a conexo e a hora da ltima conexo. Estes dados so obtidos atravs da pesquisa e formatao do
Guia Foca GNU/Linux

111

arquivo /var/log/lastlog. Caso o usurio no tenha feito login, mostrada a mensagem ** Never logged in **
lastlog [opes]
Opes:
-t [dias] - Mostra somente os usurios que se conectaram ao sistema nos ltimos [dias].
-u [nome] - Mostra somente detalhes sobre o usurio [nome].
A opo -t substitui a opo -u caso sejam usadas.

12.8 last
Mostra uma listagem de entrada e sada de usurios no sistema. So mostrados os seguintes campos na listagem:
Nome do usurio
Terminal onde ocorreu a conexo/desconexo
O hostname (caso a conexo tenha ocorrido remotamente) ou console (caso tenha ocorrido localmente).
A data do login/logout, a hora do login/down se estiver fora do sistema/ still logged in se ainda estiver
usando o sistema
Tempo (em Horas:Minutos) que esteve conectado ao sistema.
A listagem mostrada em ordem inversa, ou seja, da data mais atual para a mais antiga. A listagem feita pelo
last obtida de /var/log/wtmp.
last [opes]
Opes:
-n [num] - Mostra [num] linhas. Caso no seja usada, todas as linhas so mostradas.
-R - No mostra o campo HostName.
-a - Mostra o hostname na ltima coluna. Ser muito til se combinada com a opo -d.
-d - Usa o DNS para resolver o IP de sistemas remotos para nomes DNS.
-x - Mostra as entradas de desligamento do sistema e alteraes do nvel de execuo do sistema.
O comando last pode ser seguido de um argumento que ser pesquisado como uma expresso regular durante a
listagem.
O comando last usa o arquivo /var/log/wtmp para gerar sua listagem, mas alguns sistemas podem no possuir
este arquivo. O arquivo /var/log/wtmp somente usado caso existir. Voc pode cria-lo com o comando "echo -n
>/var/log/wtmp" ou touch /var/log/wtmp.
last - Mostra a listagem geral
last -a - Mostra a listagem geral incluindo o nome da mquina
last gleydson - Mostra somente atividades do usurio gleydson
last reboot - Mostra as reinicializaes do sistema
last tty1 - Mostra todas as atividades no tty1

12.9 sg
Executa um comando com outra identificao de grupo. A identificao do grupo de usurio modificada
somente durante a execuo do comando. Para alterar a identificao de grupo durante sua seo shell, use o
comando newgrp, Seo 12.4.
sg [-] [grupo] [comando]
Onde:
- - Se usado, inicia um novo ambiente durante o uso do comando (semelhante a um novo login e execuo
do comando), caso contrrio, o ambiente atual do usurio mantido.
grupo - Nome do grupo que o comando ser executado.
comando - Comando que ser executado. O comando ser executado pelo bash.
Quando este comando usado, pedida a senha do grupo que deseja acessar. Caso a senha do grupo esteja
incorreta ou no exista senha definida, a execuo do comando negada.
Exemplo: sg root ls /root

12.10 Adicionando um novo grupo a um usurio


Para incluir um novo grupo a um usurio, e assim permitir que ele acesse os arquivos/diretrios que pertencem
quele grupo, voc deve estar como root e editar o arquivo /etc/group. Este arquivo possui o seguinte formato:
NomedoGrupo:senha:GID:usurios
Onde:
NomedoGrupo - o nome daquele grupo de usurios.
senha - Senha para ter acesso ao grupo. Caso esteja utilizando senhas ocultas para grupos, as senhas estaro
em /etc/gshadow.
Guia Foca GNU/Linux

112

GID - Identificao numrica do grupo de usurio.


usuarios - Lista de usurios que tambm fazem parte daquele grupo. Caso exista mais de um nome de
usurio, eles devem estar separados por vrgula.
Deste modo para acrescentar o usurio "joao" ao grupo audio para ter acesso aos dispositivos de som do Linux,
acrescente o nome no final da linha: "audio:x:100:joao". Pronto, basta digitar logout e entrar novamente com
seu nome e senha, voc estar fazendo parte do grupo audio (confira digitando groups ou id).
Outros nomes de usurios podem ser acrescentados ao grupo audio bastando separar os nomes com vrgula.

12.11 chfn
Muda os dados usados pelo comando finger, Seo 11.3.
chfn [usurio] [opes]
Onde:
usurio - Nome do usurio.
Opes:
-f [nome] - Muda o nome completo do usurio.
-r [nome] - Muda o nmero da sala do usurio.
-w [tel] - Muda o telefone de trabalho do usurio.
-h [tel] - Muda o telefone residencial do usurio.
-o [outros] - Muda outros dados do usurio.
Caso o nome que acompanha as opes (como o nome completo) contenha espaos, use "" para identifica-lo.
Exemplo: chfn -f "Nome do Usurio root" root

12.12 id
Mostra a identificao atual do usurio, grupo primrio e outros grupos que pertence.
id [opes] [usurio]
Onde:
usurio - o usurio que desejamos ver a identificao, grupos primrios e complementares.
Opes:
-g, --group - Mostra somente a identificao do grupo primrio.
-G, --groups - Mostra a identificao de outros grupos que pertence.
-n, --name - Mostra o nome do usurio e grupo ao invs da identificao numrica.
-u, --user - Mostra somente a identificao do usurio (user ID).
-r, --real - Mostra a identificao real de usurio e grupo, ao invs da efetiva. Esta opo deve ser usada
junto com uma das opes: -u, -g, ou -G.
Caso no sejam especificadas opes, id mostrar todos os dados do usurio.
Exemplo: id, id --user, id -r -u.

12.13 logname
Mostra seu login (username).
logname

12.14 users
Mostra os nomes de usurios usando atualmente o sistema. Os nomes de usurios so mostrados atravs de
espaos sem detalhes adicionais, para ver maiores detalhes sobre os usurios, veja os comandos id, Seo 12.12
e who, Seo 11.1.
users
Os nomes de usurios atualmente conectados ao sistema so obtidos do arquivo /var/log/wtmp.

12.15 groups
Mostra os grupos que o usurio pertence.
groups [usurio]
Exemplo: groups, groups root

Guia Foca GNU/Linux

113

Captulo 13 Permisses de acesso a arquivos e diretrios


A permisso de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas no
autorizados.
A permisso de acesso do GNU/Linux tambm impede que um programa mal intencionado, por exemplo,
apague um arquivo que no deve, envie arquivos para outra pessoa ou fornea acesso da rede para que outros
usurios invadam o sistema. O sistema GNU/Linux muito seguro e como qualquer outro sistema seguro e
confivel impede que usurios iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem
saber para que eles realmente servem e causem danos irreverssveis em seus arquivos, seu micro ou sua
empresa.
Esta seo pode se tornar um pouco difcil de se entender, ento recomendo ler e ao mesmo tempo prtica-la
para uma tima compreenso. No se preocupe, tambm coloquei exemplos para ajuda-lo a entender o sistema
de permisses de acesso do ambiente GNU/Linux.

13.1 Donos, grupos e outros usurios


O princpio da segurana no sistema de arquivos GNU/Linux definir o acesso aos arquivos por donos, grupos
e outros usurios:
dono - a pessoa que criou o arquivo ou o diretrio. O nome do dono do arquivo/diretrio o mesmo do
usurio usado para entrar no sistema GNU/Linux. Somente o dono pode modificar as permisses de acesso
do arquivo. As permisses de acesso do dono de um arquivo somente se aplicam ao dono do
arquivo/diretrio. A identificao do dono tambm chamada de user id (UID).
A identificao de usurio e o nome do grupo que pertence so armazenadas respectivamente nos arquivos
/etc/passwd e /etc/group. Estes so arquivos textos comuns e podem ser editados em qualquer editor de
texto, mas tenha cuidado para no modificar o campo que contm a senha do usurio encriptada (que pode
estar armazenada neste arquivo caso no estiver usando senhas ocultas).
Grupo - Para permitir que vrios usurios diferentes tivessem acesso a um mesmo arquivo (j que somente
o dono poderia ter acesso ao arquivo), este recurso foi criado. Cada usurio pode fazer parte de um ou mais
grupos e ento acessar arquivos que pertenam ao mesmo grupo que o seu (mesmo que estes arquivos
tenham outro dono).
Por padro, quando um novo usurio criado, o grupo ele pertencer ser o mesmo de seu grupo primrio
(exceto pelas condies que explicarei adiante) (veja isto atravs do comando id, veja id, Seo 12.12). A
identificao do grupo chamada de gid (group id).
Um usurio pode pertencer a um ou mais grupos. Para detalhes de como incluir o usurio em mais grupos
veja Adicionando um novo grupo a um usurio, Seo 12.10.
outros - a categoria de usurios que no so donos ou no pertencem ao grupo do arquivo.
Cada um dos tipos acima possuem trs tipos bsicos de permisses de acesso que sero vistas na prxima seo.

13.2 Tipos de Permisses de acesso


Quanto aos tipos de permisses que se aplicam ao dono, grupo e outros usurios, temos 3 permisses bsicas:
r - Permisso de leitura para arquivos. Caso for um diretrio, permite listar seu contedo (atravs do
comando ls, por exemplo).
w - Permisso de gravao para arquivos. Caso for um diretrio, permite a gravao de arquivos ou outros
diretrios dentro dele. Para que um arquivo/diretrio possa ser apagado, necessrio o acesso a gravao.
x - Permite executar um arquivo (caso seja um programa executvel). Caso seja um diretrio, permite que
seja acessado atravs do comando cd (veja cd, Seo 8.2 para detalhes).
As permisses de acesso a um arquivo/diretrio podem ser visualizadas com o uso do comando ls -la. Para
maiores detalhes veja ls, Seo 8.1. As 3 letras (rwx) so agrupadas da seguinte forma:
-rwxrwxrwx gleydson users teste
Virou uma baguna no? Vou explicar cada parte para entender o que quer dizer as 10 letras acima (da esquerda
para a direita):
A primeira letra diz qual o tipo do arquivo. Caso tiver um "d" um diretrio, um "l" um link a um arquivo
no sistema (veja ln, Seo 10.4 para detalhes) , um "-" quer dizer que um arquivo comum, etc.
Da segunda a quarta letra (rwx) dizem qual a permisso de acesso ao dono do arquivo. Neste caso gleydson
ele tem a permisso de ler (r - read), gravar (w - write) e executar (x - execute) o arquivo teste.
Da quinta a stima letra (rwx) diz qual a permisso de acesso ao grupo do arquivo. Neste caso todos os
usurios que pertencem ao grupo users tem a permisso de ler (r), gravar (w), e tambm executar (x) o
arquivo teste.
Guia Foca GNU/Linux

114

Da oitava a dcima letra (rwx) diz qual a permisso de acesso para os outros usurios. Neste caso todos os
usurios que no so donos do arquivo teste tem a permisso para ler, gravar e executar o programa.
Veja o comando chmod, Seo 13.7 para detalhes sobre a mudana das permisses de acesso de
arquivos/diretrios.

13.3 Etapas para acesso a um arquivo/diretrio


O acesso a um arquivo/diretrio feito verificando primeiro se o usurio que acessar o arquivo o seu dono,
caso seja, as permisses de dono do arquivo so aplicadas. Caso no seja o dono do arquivo/diretrio,
verificado se ele pertence ao grupo correspondente, caso pertena, as permisses do grupo so aplicadas. Caso
no pertena ao grupo, so verificadas as permisses de acesso para os outros usurios que no so donos e no
pertencem ao grupo correspondente ao arquivo/diretrio.
Aps verificar aonde o usurio se encaixa nas permisses de acesso do arquivo (se ele o dono, pertence ao
grupo, ou outros usurios), verificado se ele ter permisso acesso para o que deseja fazer (ler, gravar ou
executar o arquivo), caso no tenha, o acesso negado, mostrando uma mensagem do tipo: "Permission denied"
(permisso negada).
O que isto que dizer que mesmo que voc seja o dono do arquivo e definir o acesso do dono (atravs do
comando chmod) como somente leitura (r) mas o acesso dos outros usurios como leitura e gravao, voc
somente poder ler este arquivo mas os outros usurios podero ler/grava-lo.
As permisses de acesso (leitura, gravao, execuo) para donos, grupos e outros usurios so independentes,
permitindo assim um nvel de acesso diferenciado. Para maiores detalhes veja Tipos de Permisses de acesso,
Seo 13.2.
Lembre-se: Somente o dono pode modificar um arquivo/diretrio!
Para mais detalhes veja os comandos chown, Seo 13.9 e chgrp, Seo 13.8.

13.4 Exemplos prticos de permisses de acesso


Abaixo dois exemplos prticos de permisso de acesso: Exemplo de acesso a um arquivo, Seo 13.4.1 e a
Exemplo de acesso a um diretrio, Seo 13.4.2. Os dois exemplos so explicados passo a passo para uma
perfeita compreenso do assunto. Vamos a prtica!

13.4.1 Exemplo de acesso a um arquivo


Abaixo um exemplo e explicao das permisses de acesso a um arquivo no GNU/Linux (obtido com o
comando ls -la, explicarei passo a passo cada parte:
-rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste
-rwxr-xr-Estas so as permisses de acesso ao arquivo teste. Um conjunto de 10 letras que especificam o tipo do arquivo,
permisso do dono do arquivo, grupo do arquivo e outros usurios. Veja a explicao detalhada sobre cada uma
abaixo:
-rwxr-xr-A primeira letra (do conjunto das 10 letras) determina o tipo do arquivos. Se a letra for um d um diretrio, e
voc poder acessa-lo usando o comando cd. Caso for um l um link simblico para algum arquivo ou diretrio
no sistema (para detalhes veja o comando ln, Seo 10.4 . Um - significa que um arquivo normal.
-rwxr-xr-Estas 3 letras (da segunda a quarta do conjunto das 10 letras) so as permisses de acesso do dono do arquivo
teste. O dono (neste caso gleydson) tem a permisso para ler (r), gravar (w) e executar (x) o arquivo teste.
-rwxr-xr-Estas 3 letras (da quinta a stima do conjunto das 10 letras) so as permisses de acesso dos usurios que
pertencem ao grupo user do arquivo teste. Os usurios que pertencem ao grupo user tem a permisso somente
para ler (r) e executar (x) o arquivo teste no podendo modifica-lo ou apaga-lo.
-rwxr-xr-Estas 3 letras (da oitava a dcima) so as permisses de acesso para usurios que no so donos do arquivo teste
e que no pertencem ao grupo user. Neste caso, estas pessoas somente tero a permisso para ver o contedo do
arquivo teste.
gleydson - Nome do dono do arquivo teste.
user - Nome do grupo que o arquivo teste pertence.
teste - Nome do arquivo.

13.4.2 Exemplo de acesso a um diretrio


Guia Foca GNU/Linux

115

Abaixo um exemplo com explicaes das permisses de acesso a um diretrio no GNU/Linux:


drwxr-x--- 2 gleydson user 1024 nov 4 17:55 exemplo
drwxr-x--Permisses de acesso ao diretrio exemplo. um conjunto de 10 letras que especificam o tipo de arquivo,
permisso do dono do diretrio, grupo que o diretrio pertence e permisso de acesso a outros usurios. Veja as
explicaes abaixo:
drwxr-x--A primeira letra (do conjunto das 10) determina o tipo do arquivo. Neste caso um diretrio porque tem a letra
d.
drwxr-x--Estas 3 letras (da segunda a quarta) so as permisses de acesso do dono do diretrio exemplo. O dono do
diretrio (neste caso gleydson) tem a permisso para listar arquivos do diretrio (r), gravar arquivos no diretrio
(w) e entrar no diretrio (x).
drwxr-x--Estas 3 letras (da quinta a stima) so as permisses de acesso dos usurios que pertencem ao grupo user. Os
usurios que pertencem ao grupo user tem a permisso somente para listar arquivos do diretrio (r) e entrar no
diretrio (x) exemplo.
drwxr-x--Estas 3 letras (da oitava a dcima) so as permisses de acesso para usurios que no so donos do diretrio
exemplo e que no pertencem ao grupo user. Com as permisses acima, nenhum usurio que se encaixe nas
condies de dono e grupo do diretrio tem a permisso de acessa-lo.
gleydson - Nome do dono do diretrio exemplo.
user - Nome do grupo que diretrio exemplo pertence.
exemplo - Nome do diretrio.
Para detalhes de como alterar o dono/grupo de um arquivo/diretrio, veja os comandos chmod, Seo 13.7,
chgrp, Seo 13.8 e chown, Seo 13.9.
OBSERVAES:
O usurio root no tem nenhuma restrio de acesso ao sistema.
Se voc tem permisses de gravao no diretrio e tentar apagar um arquivo que voc no tem permisso
de gravao, o sistema perguntar se voc confirma a excluso do arquivo apesar do modo leitura. Caso
voc tenha permisses de gravao no arquivo, o arquivo ser apagado por padro sem mostrar nenhuma
mensagem de erro (a no ser que seja especificada a opo -i com o comando rm).
Por outro lado, mesmo que voc tenha permisses de gravao em um arquivo mas no tenha permisses
de gravao em um diretrio, a excluso do arquivo ser negada.
Isto mostra que levado mais em considerao a permisso de acesso do diretrio do que as permisses dos
arquivos e sub-diretrios que ele contm. Este ponto muitas vezes ignorado por muitas pessoas e expem seu
sistema a riscos de segurana. Imagine o problema que algum usurio que no tenha permisso de gravao em
um arquivo mas que a tenha no diretrio pode causar em um sistema mal administrado.

13.5 Permisses de Acesso Especiais


Em adio as trs permisses bsicas (rwx), existem permisses de acesso especiais (stX) que afetam arquivos
executveis e diretrios:
s - Quando usado na permisso de acesso do Dono, ajusta a identificao efetiva do usurio do processo
durante a execuo de um programa, tambm chamado de bit setuid. No tem efeito em diretrios.
Quando s usado na permisso de acesso do Grupo, ajusta a identificao efetiva do grupo do processo
durante a execuo de um programa, chamado de bit setgid. identificado pela letra s no lugar da
permisso de execuo do grupo do arquivo/diretrio. Em diretrios, fora que os arquivos criados dentro
dele pertenam ao mesmo grupo do diretrio, ao invs do grupo primrio que o usurio pertence.
Ambos setgid e setuid podem aparecer ao mesmo tempo no mesmo arquivo/diretrio. A permisso de
acesso especial s somente pode aparecer no campo Dono e Grupo.
t - Salva a imagem do texto do programa no dispositivo swap, assim ele ser carregado mais rapidamente
quando executado, tambm chamado de stick bit.
Em diretrios, impede que outros usurios removam arquivos dos quais no so donos. Isto chamado de
colocar o diretrio em modo append-only. Um exemplo de diretrio que se encaixa perfeitamente nesta
condio o /tmp, todos os usurios devem ter acesso para que seus programas possam criar os arquivos
temporrios l, mas nenhum pode apagar arquivos dos outros. A permisso especial t, pode ser especificada
somente no campo outros usurios das permisses de acesso.
X - Se voc usar X ao invs de x, a permisso de execuo somente afetada se o arquivo ja tiver
Guia Foca GNU/Linux

116

permisses de execuo. Em diretrios ela tem o mesmo efeito que a permisso de execuo x.
Exemplo da permisso de acesso especial X:
Crie um arquivo teste (digitando touch teste) e defina sua permisso para rw-rw-r-- (chmod ug=rw,o=r teste
ou chmod 664 teste).
Agora use o comando chmod a+X teste
digite ls -l
Veja que as permisses do arquivo no foram afetadas.
agora digite chmod o+x teste
digite ls -l, voc colocou a permisso de execuo para os outros usurios.
Agora use novamente o comando chmod a+X teste
digite ls -l
Veja que agora a permisso de execuo foi concedida a todos os usurios, pois foi verificado que o arquivo
era executvel (tinha permisso de execuo para outros usurios).
Agora use o comando chmod a-X teste
Ele tambm funcionar e remover as permisses de execuo de todos os usurios, porque o arquivo teste
tem permisso de execuo (confira digitando ls -l).
Agora tente novamente o chmod a+X teste
Voc deve ter reparado que a permisso de acesso especial X semelhante a x, mas somente faz efeito
quanto o arquivo j tem permisso de execuo para o dono, grupo ou outros usurios.
Em diretrios, a permisso de acesso especial X funciona da mesma forma que x, at mesmo se o diretrio
no tiver nenhuma permisso de acesso (x).

13.6 A conta root


Esta seo foi retirada do Manual de Instalao da Debian.
A conta root tambm chamada de super usurio, este um login que no possui restries de segurana. A
conta root somente deve ser usada para fazer a administrao do sistema, e usada o menor tempo possvel.
Qualquer senha que criar dever conter de 6 a 8 caracteres, e tambm poder conter letras maisculas e
minsculas, e tambm caracteres de pontuao. Tenha um cuidado especial quando escolher sua senha root,
porque ela a conta mais poderosa. Evite palavras de dicionrio ou o uso de qualquer outros dados pessoais que
podem ser adivinhados.
Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Voc normalmente nunca deve distribuir sua
conta root, a no ser que esteja administrando um computador com mais de um administrador do sistema.
Utilize uma conta de usurio normal ao invs da conta root para operar seu sistema. Porque no usar a conta
root? Bem, uma razo para evitar usar privilgios root por causa da facilidade de se cometer danos irreparveis
como root. Outra razo que voc pode ser enganado e rodar um programa Cavalo de Tria -- que um
programa que obtm poderes do super usurio para comprometer a segurana do seu sistema sem que voc
saiba.

13.7 chmod
Muda a permisso de acesso a um arquivo ou diretrio. Com este comando voc pode escolher se usurio ou
grupo ter permisses para ler, gravar, executar um arquivo ou arquivos. Sempre que um arquivo criado, seu
dono o usurio que o criou e seu grupo o grupo do usurio (exceto para diretrios configurados com a
permisso de grupo "s", ser visto adiante).
chmod [opes] [permisses] [diretrio/arquivo]
Onde:
diretrio/arquivo - Diretrio ou arquivo que ter sua permisso mudada.
Opes:
-v, --verbose - Mostra todos os arquivos que esto sendo processados.
-f, --silent - No mostra a maior parte das mensagens de erro.
-c, --change - Semelhante a opo -v, mas s mostra os arquivos que tiveram as permisses alteradas.
-R, --recursive - Muda permisses de acesso do diretrio/arquivo no diretrio atual e sub-diretrios.
ugoa+-=rwxXst - ugoa - Controla que nvel de acesso ser mudado. Especificam, em ordem, usurio (u),
grupo (g), outros (o), todos (a).
+-= - + coloca a permisso, - retira a permisso do arquivo e = define a permisso exatamente como
especificado.
rwx - r permisso de leitura do arquivo. w permisso de gravao. x permisso de execuo (ou acesso a
diretrios).
chmod no muda permisses de links simblicos, as permisses devem ser mudadas no arquivo alvo do link.
Guia Foca GNU/Linux

117

Tambm podem ser usados cdigos numricos octais para a mudana das permisses de acesso a
arquivos/diretrios. Para detalhes veja Modo de permisso octal, Seo 13.10.
DICA: possvel copiar permisses de acesso do arquivo/diretrio, por exemplo, se o arquivo teste.txt tiver a
permisso de acesso r-xr----- e voc digitar chmod o=u, as permisses de acesso dos outros usurios (o) sero
idnticas ao do dono (u). Ento a nova permisso de acesso do arquivo teste.txt ser r-xr--r-x
Exemplos de permisses de acesso:
chmod g+r * - Permite que todos os usurios que pertenam ao grupo dos arquivos (g) tenham (+)
permisses de leitura (r) em todos os arquivos do diretrio atual.
chmod o-r teste.txt - Retira (-) a permisso de leitura (r) do arquivo teste.txt para os outros usurios (usurios
que no so donos e no pertencem ao grupo do arquivo teste.txt).
chmod uo+x teste.txt - Inclui (+) a permisso de execuo do arquivo teste.txt para o dono e outros usurios
do arquivo.
chmod a+x teste.txt - Inclui (+) a permisso de execuo do arquivo teste.txt para o dono, grupo e outros
usurios.
chmod a=rw teste.txt - Define a permisso de todos os usurios exatamente (=) para leitura e gravao do
arquivo teste.txt.

13.8 chgrp
Muda o grupo de um arquivo/diretrio.
chgrp [opes] [grupo] [arquivo/diretrio]
Onde:
grupo - Novo grupo do arquivo/diretrio.
arquivo/diretrio - Arquivo/diretrio que ter o grupo alterado.
Opes:
-c, --changes - Somente mostra os arquivos/grupos que forem alterados.
-f, --silent - No mostra mensagens de erro para arquivos/diretrios que no puderam ser alterados.
-v, --verbose - Mostra todas as mensagens e arquivos sendo modificados.
-R, --recursive - Altera os grupos de arquivos/sub-diretrios do diretrio atual.

13.9 chown
Muda dono de um arquivo/diretrio. Opcionalmente pode tambm ser usado para mudar o grupo.
chown [opes] [dono.grupo] [diretrio/arquivo]
onde:
dono.grupo - Nome do dono.grupo que ser atribudo ao diretrio/arquivo. O grupo opcional.
diretrio/arquivo - Diretrio/arquivo que o dono.grupo ser modificado.
Opes:
-v, --verbose - Mostra os arquivos enquanto so alterados.
-f, --supress - No mostra mensagens de erro durante a execuo do programa.
-c, --changes - Mostra somente arquivos que forem alterados.
-R, --recursive - Altera dono e grupo de arquivos no diretrio atual e sub-diretrios.
O dono.grupo pode ser especificado usando o nome de grupo ou o cdigo numrico correspondente ao grupo
(GID). Voc deve ter permisses de gravao no diretrio/arquivo para alterar seu dono/grupo.
chown joao teste.txt - Muda o dono do arquivo teste.txt para joao.
chown joao.users teste.txt - Muda o dono do arquivo teste.txt para joao e seu grupo para users.
chown -R joao.users * Muda o dono/grupo dos arquivos do diretrio atual e sub-diretrios para
joao/users (desde que voc tenha permisses de gravao no diretrios e
sub-diretrios).

13.10 Modo de permisso octal


Ao invs de utilizar os modos de permisso +r, -r, etc, pode ser usado o modo octal para se alterar a permisso
de acesso a um arquivo. O modo octal um conjunto de oito nmeros onde cada nmero define um tipo de
acesso diferente.
mais flexvel gerenciar permisses de acesso usando o modo octal ao invs do comum, pois voc especifica
diretamente a permisso do dono, grupo, outros ao invs de gerenciar as permisses de cada um separadamente.
Abaixo a lista de permisses de acesso octal:
0 - Nenhuma permisso de acesso. Equivalente a -rwx.
1 - Permisso de execuo (x).
Guia Foca GNU/Linux

118

2 - Permisso de gravao (w).


3 - Permisso de gravao e execuo (wx).
4 - Permisso de leitura (r).
5 - Permisso de leitura e execuo (rx).
6 - Permisso de leitura e gravao (rw).
7 - Permisso de leitura, gravao e execuo. Equivalente a +rwx.
O uso de um deste nmeros define a permisso de acesso do dono, grupo ou outros usurios. Um modo fcil de
entender como as permisses de acesso octais funcionam, atravs da seguinte tabela:
1 - Executar
2 - Gravar
4 - Ler
* Para Dono e Grupo, multiplique as permisses acima por x100 e x10.
* Para as permisses de acesso especiais:
1000 - Salva imagem do texto no dispositivo de troca
2000 - Ajusta o bit setgid na execuo
4000 - Ajusta o bit setuid na execuo
Basta agora fazer o seguinte:
Somente permisso de execuo, use 1.
Somente a permisso de leitura, use 4.
Somente permisso de gravao, use 2.
Permisso de leitura/gravao, use 6 (equivale a 2+4 / Gravar+Ler).
Permisso de leitura/execuo, use 5 (equivale a 1+4 / Executar+Ler).
Permisso de execuo/gravao, use 3 (equivale a 1+2 / Executar+Gravar).
Permisso de leitura/gravao/execuo, use 7 (equivale a 1+2+4 / Executar+Gravar+Ler).
Salvar texto no dispositivo de troca, use 1000.
Ajustar bit setgid, use 2000.
Ajustar bip setuid, use 4000.
Salvar texto e ajustar bit setuid, use 5000 (equivale a 1000+4000 / Salvar texto + bit setuid).
Ajustar bit setuid e setgid, use 6000 (equivale a 4000+2000 / setuid + setgid).
Vamos a prtica com alguns exemplos:
"chmod 764 teste" - Os nmeros so interpretados da direita para a esquerda como permisso de acesso
aos outros usurios (4), grupo (6), e dono (7). O exemplo acima faz os outros usurios
(4) terem acesso somente leitura (r) ao arquivo teste, o grupo (6) ter a permisso de
leitura e gravao (w), e o dono (7) ter permisso de leitura, gravao e execuo (rwx)
ao arquivo teste.
Outro exemplo:
"chmod 40 teste - O exemplo acima define a permisso de acesso dos outros usurios (0) como nenhuma,
e define a permisso de acesso do grupo (4) como somente leitura (r). Note usei
somente dois nmeros e ento a permisso de acesso do dono do arquivo no
modificada (leia as permisses de acesso da direita para a esquerda!). Para detalhes veja
a lista de permisses de acesso em modo octal no incio desta seo.
"chmod 752 teste" - O exemplo define a permisso de acesso dos outros usurios (2) para somente execuo
(x), o acesso do grupo (5) como leitura e execuo (rx) e o acesso do dono (7) como
leitura, gravao e execuo (rwx).
"chmod 4752 teste" - O exemplo acima define a permisso de acesso dos outros usurios (2) para somente
execuo (x), acesso do grupo (4) como leitura e execuo (rx), o acesso do dono (7)
como leitura, gravao e execuo (rwx) e ajusta o bit setgid (4) para o arquivo teste.

13.11 umask
A umask (user mask) so 3 nmeros que definem as permisses iniciais do dono, grupo e outros usurios que o
arquivo/diretrio receber quando for criado ou copiado. Digite umask sem parmetros para retornar o valor de
sua umask atual.
A umask tem efeitos diferentes caso o arquivo que estiver sendo criado for binrio (um programa executvel) ou
texto (Arquivo texto e binrio, Seo 2.2.3) . Veja a tabela a seguir para ver qual a mais adequada a sua
situao:
__________________________________________
|
|
ARQUIVO
| DIRETRIO |
Guia Foca GNU/Linux

119

| UMASK |---------------------------- |
|
|
| Binrio | Texto |
|
|------------------------------------------- |------------------ |
| 0
|
r-x
| rw|
rwx
|
| 1
|
r-| rw|
rw|
| 2
|
r-x
| r-|
r-x
|
| 3
|
r-| r-|
r-|
| 4
|
--x
| -w|
-wx
|
| 5
|
--| -w|
-w|
| 6
|
--x
| --|
--x
|
| 7
|
--| --|
--|
| _________________________________________ |
Um arquivo texto criado com o comando umask 012;touch texto.txt receber as permisses -rw-rw-r--, pois 0
(dono) ter permisses rw-, 1 (grupo), ter permisses rw- e 2 (outros usurios) tero permisses r--. Um
arquivo binrio copiado com o comando umask 012;cp /bin/ls /tmp/ls receber as permisses -r-xr--r-x (confira
com a tabela acima).
Por este motivo preciso um pouco de ateno antes de escolher a umask, um valor mal escolhido poderia
causar problemas de acesso a arquivos, diretrios ou programas no sendo executados. O valor padro da umask
na maioria das distribuies atuais 022. A umask padro no sistema Debian a 022 .
A umask de grande utilidade para programas que criam arquivos/diretrios temporrios, desta forma pode-se
bloquear o acesso de outros usurios desde a criao do arquivo, evitando recorrer ao chmod.

Guia Foca GNU/Linux

120

Captulo 14 Redirecionamentos e Pipe


Esta seo explica o funcionamento dos recursos de direcionamento de entrada e sada do sistema GNU/Linux.

14.1 >
Redireciona a sada de um programa/comando/script para algum dispositivo ou arquivo ao invs do dispositivo
de sada padro (tela). Quando usado com arquivos, este redirecionamento cria ou substitui o contedo do
arquivo.
Por exemplo, voc pode usar o comando ls para listar arquivos e usar ls >listagem para enviar a sada do
comando para o arquivo listagem. Use o comando cat para visualizar o contedo do arquivo listagem.
O mesmo comando pode ser redirecionado para o segundo console /dev/tty2 usando: ls >/dev/tty2, o resultado
do comando ls ser mostrado no segundo console (pressione ALT e F2 para mudar para o segundo console e
ALT e F1 para retornar ao primeiro).

14.2 >>
Redireciona a sada de um programa/comando/script para algum dispositivo ou final de arquivo ao invs do
dispositivo de sada padro (tela). A diferena entre este redirecionamento duplo e o simples, se caso for usado
com arquivos, adiciona a sada do comando ao final do arquivo existente ao invs de substituir seu contedo. .
Por exemplo, voc pode acrescentar a sada do comando ls ao arquivo listagem do captulo anterior usando ls /
>>listagem. Use o comando cat para visualizar o contedo do arquivo listagem.
O mesmo comando pode ser redirecionado para o segundo console /dev/tty2 usando: ls >/dev/tty2, o resultado
do comando ls ser mostrado no segundo console (pressione ALT e F2 para mudar para o segundo console e
ALT e F1 para retornar ao primeiro).

14.3 <
Direciona a entrada padro de arquivo/dispositivo para um comando. Este comando faz o contrrio do anterior,
ele envia dados ao comando.
Voc pode usar o comando cat <teste.txt para enviar o contedo do arquivo teste.txt ao comando cat que
mostrar seu contedo ( claro que o mesmo resultado pode ser obtido com cat teste.txt mas este exemplo serviu
para mostrar a funcionalidade do <).

14.4 | (pipe)
Envia a sada de um comando para a entrada do prximo comando para continuidade do processamento. Os
dados enviados so processados pelo prximo comando que mostrar o resultado do processamento.
Por exemplo: ls -la|more, este comando faz a listagem longa de arquivos que enviado ao comando more (que
tem a funo de efetuar uma pausa a cada 25 linhas do arquivo).
Outro exemplo o comando "locate find|grep bin/", neste comando todos os caminhos/arquivos que contm
find na listagem sero mostrados (inclusive man pages, bibliotecas, etc.), ento enviamos a sada deste comando
para grep bin/ para mostrar somente os diretrios que contm binrios. Mesmo assim a listagem ocupe mais de
uma tela, podemos acrescentar o more: locate find|grep bin/|more.
Podem ser usados mais de um comando de redirecionamento (<, >, |) em um mesmo comando.

14.5 Diferena entre o "|" e o ">"


A principal diferena entre o "|" e o ">", que o Pipe envolve processamento entre comandos, ou seja, a sada
de um comando enviado a entrada do prximo e o ">" redireciona a sada de um comando para um
arquivo/dispositivo.
Voc pode notar pelo exemplo acima (ls -la|more) que ambos ls e more so comandos porque esto separados
por um "|"! Se um deles no existir ou estiver digitado incorretamente, ser mostrada uma mensagem de erro.
Um resultado diferente seria obtido usando um ">" no lugar do "|"; A sada do comando ls -la seria gravada em
um arquivo chamado more.

14.6 tee
Envia o resultado do programa para a sada padro (tela) e para um arquivo ao mesmo tempo. Este comando
deve ser usado com o pipe "|".
comando|tee [arquivo]
Exemplo: ls -la|tee listagem.txt, a sada do comando ser mostrada normalmente na tela e ao mesmo
Guia Foca GNU/Linux

121

tempo gravada no arquivo listagem.txt.

Guia Foca GNU/Linux

122

Captulo 15 Rede
Este captulo descreve o que uma rede, os principais dispositivos de rede no GNU/Linux, a identificao de
cada um, como configurar os dispositivos, escolha de endereos IP, roteamento.
Parte deste captulo, uns 70% pelo menos, baseado no documento NET3-4-HOWTO. (seria perda de tempo
reescrever este assunto pois existe um material desta qualidade j disponvel).

15.1 O que uma rede


Rede a conexo de duas ou mais mquinas com o objetivo de compartilhar recursos entre uma mquina e
outra. Os recursos podem ser:
Compartilhamento do contedo de seu disco rgido (ou parte dele) com outros usurios. Os outros usurios
podero acessar o disco como se estivesse instalado na prpria mquina). Tambm chamado de servidor de
arquivos.
Compartilhamento de uma impressora com outros usurios. Os outros usurios podero enviar seus trabalhos
para uma impressora da rede. Tambm chamado de servidor de impresso.
Compartilhamento de acesso a Internet. Outros usurios podero navegar na Internet, pegar seus e-mails, ler
noticias, bate-papo no IRC, ICQ atravs do servidor de acesso Internet. Tambm chamado de servidor Proxy.
Servidor de Internet/Intranet. Outros usurios podero navegar nas pginas Internet localizadas em seu
computador, pegar e-mails, usar um servidor de IRC para chat na rede, servidor de ICQ, etc
Com os tens acima funcionando possvel criar permisses de acesso da rede, definindo quem ter ou no
permisso para acessar cada compartilhamento ou servio existente na mquina (www, ftp, irc, icq, etc), e
registrando/avisando sobre eventuais tentativas de violar a segurana do sistema, firewalls, pontes, etc.
Entre outras ilimitadas possibilidades que dependem do conhecimento do indivduo no ambiente GNU/Linux, j
que ele permite muita flexibilidade para fazer qualquer coisa funcionar em rede.
A comunicao entre computadores em uma rede feita atravs do Protocolo de Rede.

15.2 Protocolo de Rede


O protocolo de rede a linguagem usada para a comunicao entre um computador e outro. Existem vrios tipos
de protocolos usados para a comunicao de dados, alguns so projetados para pequenas redes (como o caso
do NetBios) outros para redes mundiais (TCP/IP que possui caractersticas de roteamento).
Dentre os protocolos, o que mais se destaca atualmente o TCP/IP devido ao seu projeto, velocidade e
capacidade de roteamento.

15.3 Endereo IP
O endereo IP so nmeros que identificam seu computador em uma rede. Inicialmente voc pode imaginar o
IP como um nmero de telefone. O IP compostos por quatro bytes e a conveno de escrita dos nmeros
chamada de "notao decimal pontuada". Por conveno, cada interface (placa usada p/ rede) do computador ou
roteador tem um endereo IP. Tambm permitido que o mesmo endereo IP seja usado em mais de uma
interface de uma mesma mquina mas normalmente cada interface tem seu prprio endereo IP.
As Redes do Protocolo Internet so seqncias contnuas de endereos IP's. Todos os endereos dentro da rede
tem um nmero de dgitos dentro dos endereos em comum. A poro dos endereos que so comuns entre
todos os endereos de uma rede so chamados de poro da rede. Os dgitos restantes so chamados de poro
dos hosts. O nmero de bits que so compartilhados por todos os endereos dentro da rede so chamados de
netmask (mscara da rede) e o papel da netmask determinar quais endereos pertencem ou no a rede. Por
exemplo, considere o seguinte:
------------------------------------------Endereo do Host
192.168.110.23
Mscara da Rede
255.255.255.0
Poro da Rede
192.168.110.
Poro do Host
.23
------------------------------------------Endereo da Rede
192.168.110.0
Endereo Broadcast
192.168.110.255
------------------------------------------Qualquer endereo que finalizado em zero em sua netmask, revelar o endereo da rede que pertence. O
endereo e rede ento sempre o menor endereo numrico dentro da escalas de endereos da rede e sempre
possui a poro host dos endereos codificada como zeros.
Guia Foca GNU/Linux

123

O endereo de broadcast um endereo especial que cada computador em uma rede "escuta" em adio a seu
prprio endereo. Este um endereo onde os datagramas enviados so recebidos por todos os computadores da
rede. Certos tipos de dados como informaes de roteamento e mensagens de alerta so transmitidos para o
endereo broadcast, assim todo computador na rede pode recebe-las simultaneamente.
Existe dois padres normalmente usados para especificar o endereo de broadcast. O mais amplamente aceito
para usar o endereo mais alto da rede como endereo broadcast. No exemplo acima este seria 192.168.110.255.
Por algumas razes outros sites tem adotado a conveno de usar o endereo de rede como o endereo
broadcast. Na prtica no importa muito se usar este endereo, mas voc deve ter certeza que todo computador
na rede esteja configurado para escutar o mesmo endereo broadcast.

15.3.1 Classes de Rede IP


Por razes administrativas aps algum pouco tempo no desenvolvimento do protocolo IP alguns grupos
arbitrrios de endereos foram formados em redes e estas redes foram agrupadas no que foram chamadas de
classes. Estas classes armazenam um tamanho padro de redes que podem ser usadas. As faixas alocadas so:
--------------------------------------------------------------------| Classe | Mscara de |
Endereo da Rede
|
|
|
Rede
|
|
--------------------------------------------------------------------|
A
| 255.0.0.0
| 0.0.0.0 - 127.255.255.255 |
|
B
| 255.255.0.0 | 128.0.0.0 - 191.255.255.255 |
|
C
| 255.255.255.0 | 192.0.0.0 - 223.255.255.255 |
| Multicast | 240.0.0.0
| 224.0.0.0 - 239.255.255.255 |
--------------------------------------------------------------------O tipo de endereo que voc deve utilizar depende exatamente do que estiver fazendo.

15.3.2 Para instalar uma mquina usando o Linux em uma rede


existente
Se voc quiser instalar uma mquina GNU/Linux em uma rede TCP/IP existente ento voc deve contactar
qualquer um dos administradores da sua rede e perguntar o seguinte:
Endereo IP de sua mquina
Endereo IP da rede
Endereo IP de broadcast
Mscara da Rede IP
Endereo do Roteador
Endereo do Servidor de Nomes (DNS)
Voc deve ento configurar seu dispositivo de rede GNU/Linux com estes detalhes. Voc no pode
simplesmente escolhe-los e esperar que sua configurao funcione.

15.3.3 Endereos reservados para uso em uma rede Privada


Se voc estiver construindo uma rede privada que nunca ser conectada a Internet, ento voc pode escolher
qualquer endereo que quiser. No entanto, para sua segurana e padronizao, existem alguns endereos IP's que
foram reservados especificamente para este propsito. Eles esto especificados no RFC1597 e so os seguintes:
---------------------------------------------------------------------------| ENDEREOS RESERVADOS PARA REDES PRIVADAS |
| --------------------------------------------------------------------------- |
| Classe | Mscara de |
Endereo da Rede
|
| de Rede |
Rede
|
|
| --------------------------------------------------------------------------- |
| A
| 255.0.0.0
| 10.0.0.0 - 10.255.255.255
|
| B
| 255.255.0.0 | 172.16.0.0 - 172.31.255.255
|
| C
| 255.255.255.0 | 192.168.0.0 - 192.168.255.255 |
---------------------------------------------------------------------------Voc deve decidir primeiro qual ser a largura de sua rede e ento escolher a classe de rede que ser usada.

Guia Foca GNU/Linux

124

15.3.4 Referncia rpida de mscara de redes


A tabela abaixo faz referncia as mscaras de rede mais comuns e a quantidade de mquinas mximas que ela
atinge. Note que a especificao da mscara tem influncia direta na classe de rede usada:

Classe A
Classe B:

Classe C

Mscara
(Forma
octal)
/8
/16
/17
/18
/19
/20
/21
/22
/23
/24
/25
/26
/27
/28
/29
/30
/32

Mscara (Forma
32 bits)
/255.0.0.0
/255.255.0.0
/255.255.128.0
/255.255.192.0
/255.255.224.0
/255.255.240.0
/255.255.248.0
/255.255.252.0
/255.255.254.0
/255.255.255.0
/255.255.255.128
/255.255.255.192
/255.255.255.224
/255.255.255.240
/255.255.255.248
/255.255.255.252
/255.255.255.255

Nmero
Mximo de
Mquinas
16,777,215
65,535
32,767
16,383
8,191
4,095
2,047
1,023
511
255
127
63
31
15
7
3
1

Qualquer outra mscara fora desta tabela (principalmente para a classe A), dever ser redimensionada com uma
calculadora de IP para chegar a um nmero aproximado de redes/mquinas aproximados que deseja.

15.4 Interface de rede


As interfaces de rede no GNU/Linux esto localizadas no diretrio /dev e a maioria criada dinamicamente
pelos softwares quando so requisitadas. Este o caso das interfaces ppp e plip que so criadas dinamicamente
pelos softwares.
Abaixo a identificao de algumas interfaces de rede no Linux (a ? significa um nmero que identifica as
interfaces seqencialmente, iniciando em 0):
eth? - Placa de rede Ethernet e WaveLan.
ppp? - Interface de rede PPP (protocolo ponto a ponto).
slip? - Interface de rede serial
eql - Balanceador de trfego para mltiplas linhas
plip? - Interface de porta paralela
arc?e, arc?s - Interfaces Arcnet
sl?, ax? - Interfaces de rede AX25 (respectivamente para Kernels 2.0.xx e 2.2.xx.
fddi? - Interfaces de rede FDDI.
dlci??, sdla? - Interfaces Frame Relay, respectivamente para para dispositivos de encapsulamento DLCI e
FRAD.
nr? - Interface Net Rom
rs? - Interfaces Rose
st? - Interfaces Strip (Starmode Radio IP)
tr? - Token Ring
Para maiores detalhes sobre as interfaces acima, consulte o documento NET3-4-HOWTO.

15.4.1 A interface loopback


A interface loopback um tipo especial de interface que permite fazer conexes com voc mesmo. Todos os
computadores que usam o protocolo TCP/IP utilizam esta interface e existem vrias razes porque precisa fazer
isto, por exemplo, voc pode testar vrios programas de rede sem interferir com ningum em sua rede. Por
conveno, o endereo IP 127.0.0.1 foi escolhido especificamente para a loopback, assim se abrir uma conexo
telnet para 127.0.0.1, abrir uma conexo para o prprio computador local.
A configurao da interface loopback simples e voc deve ter certeza que fez isto (mas note que esta tarefa
Guia Foca GNU/Linux

125

normalmente feita pelos scripts padres de inicializao existentes em sua distribuio).


ifconfig lo 127.0.0.1
Caso a interface loopback no esteja configurada, voc poder ter problemas quando tentar qualquer tipo de
conexo com as interfaces locais, tendo problemas at mesmo com o comando ping.

15.4.2 Atribuindo um endereo de rede a uma interface (ifconfig)


Aps configurada fisicamente, a interface precisa receber um endereo IP para ser identificada na rede e se
comunicar com outros computadores, alm de outros parmetros como o endereo de broadcast e a mscara de
rede. O comando usado para fazer isso o ifconfig (interface configure).
Para configurar a interface de rede Ethernet (eth0) com o endereo 192.168.1.1, mscara de rede 255.255.255.0,
podemos usar o comando:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
O comando acima ativa a interface de rede. A palavra up pode ser omitida, pois a ativao da interface de rede
o padro. Para desativar a mesma interface de rede, basta usar usar o comando:
ifconfig eth0 down
Digitando ifconfig so mostradas todas as interfaces ativas no momento, pacotes enviados, recebidos e colises
de datagramas. Para mostrar a configurao somente da interface eth0, use o comando: ifconfig eth0
Para mais detalhes, veja a pgina de manual do ifconfig ou o NET3-4-HOWTO.

15.5 Roteamento
Roteamento quando uma mquina com mltiplas conexes de rede decide onde entregar os pacotes IP que
recebeu, para que cheguem ao seu destino.
Pode ser til ilustrar isto com um exemplo. Imagine um simples roteador de escritrio, ele pode ter um link
intermitente com a Internet, um nmero de segmentos ethernet alimentando as estaes de trabalho e outro link
PPP intermitente fora de outro escritrio. Quando o roteador recebe um datagrama de qualquer de suas conexes
de rede, o mecanismo que usa determina qual a prxima interface deve enviar o datagrama. Computadores
simples tambm precisam rotear, todos os computadores na Internet tem dois dispositivos de rede, um a
interface loopback (explicada acima) o outro um usado para falar com o resto da rede, talvez uma ethernet,
talvez uma interface serial PPP ou SLIP.
OK, viu como o roteamento funciona? cada computador mantm uma lista de regras especiais de roteamento,
chamada tabela de roteamento. Esta tabela contm colunas que tipicamente contm no mnimo trs campos, o
primeiro o endereo de destino, o segundo o nome da interface que o datagrama deve ser roteado e o terceiro
opcionalmente o endereo IP da outra mquina que levar o datagrama em seu prximo passo atravs da rede.
No GNU/Linux voc pode ver a tabela de roteamento usando um dos seguintes comandos:
cat /proc/net/route
route -n
netstat -r
O processo de roteamento muito simples: um datagrama (pacote IP) recebido, o endereo de destino (para
quem ele ) examinado e comparado com cada item da tabela de roteamento. O item que mais corresponder
com o endereo selecionado e o datagrama direcionado a interface especificada.
Se o campo gateway estiver preenchido, ento o datagrama direcionado para aquele computador pela interface
especificada, caso contrrio o endereo de destino assumido sendo uma rede suportada pela interface.

15.5.1 Configurando uma rota no Linux


A configurao da rota feita atravs da ferramenta route. Para adicionar uma rota para a rede 192.168.1.0
acessvel atravs da interface eth0 basta digitar o comando:
route add -net 192.168.1.0 eth0
Para apagar a rota acima da tabela de roteamento, basta substituir a palavra add por del. A palavra net quer dizer
que 192.168.1.0 um endereo de rede (lembra-se das explicaes em Endereo IP, Seo 15.3?)) para
especificar uma mquina de destino, basta usar a palavra -host. Endereos de mquina de destino so muito
usadas em conexes de rede apenas entre dois pontos (como ppp, plip, slip). Por padro, a interface
especificada como ltimo argumento. Caso a interface precise especifica-la em outro lugar, ela dever ser
precedida da opo -dev.
Para adicionar uma rota padro para um endereo que no se encontre na tabela de roteamento, utiliza-se o
gateway padro da rede. Atravs do gateway padro possvel especificar um computador (normalmente outro
gateway) que os pacotes de rede sero enviados caso o endereo no confira com os da tabela de roteamento.
Para especificar o computador 192.168.1.1 como gateway padro usamos:
route add default gw 192.168.1.1 eth0
O gateway padro pode ser visualizado atravs do comando route -n e verificando o campo gateway. A opo
Guia Foca GNU/Linux

126

gw acima, especifica que o prximo argumento um endereo IP (de uma rede j acessvel atravs das tabelas
de roteamento).
O computador gateway est conectado a duas ou mais redes ao mesmo tempo. Quando seus dados precisam ser
enviados para computadores fora da rede, eles so enviados atravs do computador gateway e o gateway os
encaminham ao endereo de destino. Desta forma, a resposta do servidor tambm enviada atravs do gateway
para seu computador ( o caso de uma tpica conexo com a Internet).
A nossa configurao ficaria assim:
route add -net 192.168.1.0 eth0
route add default gw 192.168.1.1 eth0
Para mais detalhes, veja a pgina de manual do route ou o NET3-4-HOWTO.

15.6 Resolvedor de nomes (DNS)


DNS significa Domain Name System (sistema de nomes de domnio). O DNS converte os nomes de mquinas
para endereos IPs que todas as mquinas da Internet possuem. Ele faz o mapeamento do nome para o endereo
e do endereo para o nome e algumas outras coisas. Um mapeamento simplesmente uma associao entre duas
coisas, neste caso um nome de computador, como www.metainfo.org, e o endereo IP desta mquina (ou
endereos) como 200.245.157.9.
O DNS foi criado com o objetivo de tornar as coisas mais fceis para o usurio, permitindo assim, a
identificao de computadores na Internet ou redes locais atravs de nomes ( como se tivssemos apenas que
decorar o nome da pessoa ao invs de um nmero de telefone). A parte responsvel por traduzir os nomes como
www.nome.com.br em um endereo IP chamada de resolvedor de nomes.
O resolvedor de nomes pode ser um banco de dados local (controlador por um arquivo ou programa) que
converte automaticamente os nomes em endereos IP ou atravs de servidores DNS que fazem a busca em um
banco de dados na Internet e retornam o endereo IP do computador desejado. Um servidor DNS mais difundido
na Internet o bind.
Atravs do DNS necessrio apenas decorar o endereo sem precisar se preocupar com o endereo IP (alguns
usurios simplesmente no sabem que isto existe...). Se desejar mais detalhes sobre DNS, veja o documento
DNS-HOWTO.

15.6.1 O que um nome?


Voc deve estar acostumado com o uso dos nomes de computadores na Internet, mas pode no entender como
eles so organizados. Os nomes de domnio na Internet so uma estrutura hierrquica, ou seja, eles tem uma
estrutura semelhante aos diretrios de seu sistema.
Um domnio uma famlia ou grupo de nomes. Um domnio pode ser colocado em um sub-domnio. Um
domnio principal um domnio que no um sub-domnio. Os domnios principais so especificados na RFC920. Alguns exemplos de domnios principais comuns so:
COM - Organizaes Comerciais
EDU - Organizaes Educacionais
GOV - Organizaes Governamentais
MIL - Organizaes Militares
ORG - Outras Organizaes
NET - Organizaes relacionadas com a Internet
Identificador do Pas - So duas letras que representam um pas em particular.
Cada um dos domnios principais tem sub-domnios. Os domnios principais baseados no nome do pas so
freqentemente divididos em sub-domnios baseado nos domnios .com, .edu, .gov, .mil e .org. Assim, por
exemplo, voc pode finaliza-lo com: com.au e gov.au para organizaes comerciais e governamentais na
Austrlia; note que isto no uma regra geral, as organizaes de domnio atuais dependem da autoridade na
escolha de nomes de cada domnio. Quando o endereo no especifica o domnio principal, como o endereo
www.unicamp.br, isto quer dizer que uma organizao acadmica.
O prximo nvel da diviso representa o nome da organizao. Subdomnios futuros variam em natureza,
freqentemente o prximo nvel do sub-domnio baseado na estrutura departamental da organizao mas ela
pode ser baseada em qualquer critrio considerado razovel e significantes pelos administradores de rede para a
organizao.
A poro mais a direita do nome sempre o nome nico da mquina chamado hostname, a poro do nome a
direita do hostname chamado nome de domnio e o nome completo chamado nome do domnio
completamente qualificado (Fully Qualified Domain Name).
Usando o computador www.debian.org.br como exemplo:
Guia Foca GNU/Linux

127

br - Pas onde o computador se encontra


org - Domnio principal
debian - Nome de Domnio
www - Nome do computador
A localizao do computador www.debian.org.br atravs de servidores DNS na Internet obedece exatamente a
seqncia de procura acima. Os administradores do domnio debian.org.br podem cadastrar quantos subdomnios e computadores quiserem (como www.non-us.debian.org.br ou cvs.debian.org.br).

15.6.2 Arquivos de configurao usados na resoluo de nomes


Abaixo a descrio dos arquivos usados no processo de resolver um nome no sistema GNU/Linux.

15.6.2.1 /etc/resolv.conf
O /etc/resolv.conf o arquivo de configurao principal do cdigo do resolvedor de nomes. Seu formato um
arquivo texto simples com um parmetro por linha e o endereo de servidores DNS externos so especificados
nele. Existem trs palavras chaves normalmente usadas que so:
domain - Especifica o nome do domnio local.
search - Especifica uma lista de nomes de domnio alternativos ao procurar por um computador, separados
por espaos. A linha search pode conter no mximo 6 domnios ou 256 caracteres.
nameserver - Especifica o endereo IP de um servidor de nomes de domnio para resoluo de nomes.
Pode ser usado vrias vezes.
Como exemplo, o /etc/resolv.conf se parece com isto:
domain maths.wu.edu.au
search maths.wu.edu.au wu.edu.au
nameserver 192.168.10.1
nameserver 192.168.12.1
Este exemplo especifica que o nome de domnio a adicionar ao nome no qualificado (ie hostnames sem o
domnio) maths.wu.edu.au e que se o computador no for encontrado naquele domnio ento a procura segue
para o domnio wu.edu.au diretamente. Duas linhas de nomes de servidores foram especificadas, cada uma pode
ser chamada pelo cdigo resolvedor de nomes para resolver o nome.

15.6.2.2 /etc/host.conf
O arquivo /etc/host.conf o local onde possvel configurar alguns tens que gerenciam o cdigo do resolvedor
de nomes. O formato deste arquivo descrito em detalhes na pgina de manual resolv+. Em quase todas as
situaes, o exemplo seguinte funcionar:
order hosts,bind
multi on
Este arquivo de configurao diz ao resolvedor de nomes para checar o arquivo /etc/hosts (parmetro hosts)
antes de tentar verificar um servidor de nomes (parmetro bind) e retornar um endereo IP vlido para o
computador procurado e multi on retornar todos os endereos IP resolvidos no arquivo /etc/hosts ao invs do
primeiro.
Os seguintes parmetros podem ser adicionados para evitar ataques de IP spoofing:
nospoof on
spoofalert on
O parmetro nospoof on ativa a resoluo reversa do nome da bibliteca resolv (para checar se o endereo
pertence realmente quele nome) e o spoofalert on registra falhas desta operao no syslog.

15.6.2.3 /etc/hosts
O arquivo /etc/hosts contm uma relao entre o endereo IP e o nome de computadores. Recomendado para Ips
constantemente acessados e para colocao de endereos de virual hosts (quando desejar se referir pelo nome ao
invs de IP). A incluso de um computador neste arquivo dispensa a consulta de um servidor de nomes para
obter um endereo IP, sendo muito til para mquinas que so acessadas frequentemente. A desvantagem de
fazer isto que voc mesmo precisar manter este arquivo atualizado e se o endereo IP de algum computador
for modificado, esta alterao dever ser feita em cada um dos arquivos hosts das mquinas da rede. Em um
sistema bem gerenciado, os nicos endereos de computadores que aparecero neste arquivo sero da interface
loopback e os nomes de computadores.
# /etc/hosts
127.0.0.1 localhost loopback
192.168.0.1 this.host.name
Guia Foca GNU/Linux

128

Voc pode especificar mais que um nome de computador por linha como demonstrada pela primeira linha, a que
identifica a interface loopback.
OBS: Caso encontre problemas de lentido para resolver nomes e at para executar os aplicativos (como o mcI,
etc), verifique se existem erros neste arquivo de configurao.
Estes sintomas se confundem com erros de memria ou outro erro qualquer de configurao de hardware, e
somem quando a interface de rede desativada (a com IP, no loopback). Isto causado somente pela m
configurao do arquivo /etc/hosts. O bom funcionamento do Unix depende da boa ateno do administrador de
sistemas para configurar os detalhes do seu servidor.

15.6.2.4 /etc/networks
O arquivo /etc/networks tem uma funo similar ao arquivos /etc/hosts. Ele contm um banco de dados simples
de nomes de redes contra endereos de redes. Seu formato se difere por dois campos por linha e seus campos
so identificados como:
Nome_da_Rede Endereo_da_Rede
Abaixo um exemplo de como se parece este arquivo:
loopnet 127.0.0.0
localnet 192.168.1.0
amprnet 44.0.0.0
Quando usar comandos como route, se um destino uma rede e esta rede se encontra no arquivo /etc/networks,
ento o comando route mostrar o nome da rede ao invs de seu endereo.

15.6.3 Executando um servidor de nomes


Se voc planeja executar um servidor de nomes, voc pode fazer isto facilmente. Por favor veja o documento
DNS-HOWTO e quaisquer documentos includos em sua verso do BIND (Berkeley Internet Name Domain).

15.7 Servios de Rede


Servios de rede o que est disponvel para ser acessado pelo usurio. No TCP/IP, cada servio associado a
um nmero chamado porta que onde o servidor espera pelas conexes dos computadores clientes. Uma porta
de rede pode se referenciada tanto pelo nmero como pelo nome do servio.
Abaixo, alguns exemplos de portas padres usadas em servios TCP/IP:
21 - FTP (transferncia de arquivos)
23 - Telnet (terminal virtual remoto)
25 - Smtp (envio de e-mails)
53 - DNS (resolvedor de nomes)
79 - Finger (detalhes sobre usurios do sistema)
80 - http (protocolo www - transferncia de pginas Internet)
110 - Pop-3 (recebimento de mensagens)
119 - Nntp (usado por programas de noticias)
O arquivo padro responsvel pelo mapeamento do nome dos servios e das portas mais utilizadas o
/etc/services (para detalhes sobre o seu formato, veja a /etc/services, Seo 15.9.1).

15.7.1 Servios iniciados como Daemons de rede


Servios de rede iniciados como daemons ficam residente o tempo todo na memria esperando que algum se
conecte (tambm chamado de modo standalone). Um exemplo de daemon o servidor proxy squid e o servidor
web Apache operando no modo daemon.
Alguns programas servidores oferecem a opo de serem executados como daemons ou atravs do inetd.
recomendvel escolher daemon se o servio for solicitado freqentemente (como o caso dos servidores web ou
proxy).
Para verificar se um programa est rodando como daemon, basta digitar ps ax e procurar o nome do programa,
em caso positivo ele um daemon.
Normalmente os programas que so iniciados como daemons possuem seus prprios recursos de
segurana/autenticao para decidir quem tem ou no permisso de se conectar.

15.7.2 Servios iniciados atravs do inetd


Servios iniciados pelo inetd so carregados para a memria somente quando so solicitados. O controle de
quais servios podem ser carregados e seus parmetros, so feitos atravs do arquivo /etc/inetd.conf.
Um daemon chamado inetd l as configuraes deste arquivo e permanece residente na memria, esperando
Guia Foca GNU/Linux

129

pela conexo dos clientes. Quando uma conexo solicitada, o daemon inetd verifica as permisses de acesso
nos arquivos /etc/hosts.allow e /etc/hosts.deny e carrega o programa servidor correspondente no arquivo
/etc/inetd.conf. Um arquivo tambm importante neste processo o /etc/services que faz o mapeamento das
portas e nomes dos servios.
Alguns programas servidores oferecem a opo de serem executados como daemons ou atravs do inetd.
recomendvel escolher inetd se o servio no for solicitado freqentemente (como o caso de servidores ftp,
telnet, talk, etc).

15.7.2.1 /etc/inetd.conf
O arquivo /etc/inetd.conf um arquivo de configurao para o daemon servidor inetd. Sua funo dizer ao
inetd o que fazer quando receber uma requisio de conexo para um servio em particular. Para cada servio
que deseja aceitar conexes, voc precisa dizer ao inetd qual daemon servidor executar e como executa-lo.
Seu formato tambm muito simples. um arquivo texto com cada linha descrevendo um servio que deseja
oferecer. Qualquer texto em uma linha seguindo uma "#" ignorada e considerada um comentrio. Cada linha
contm sete campos separados por qualquer nmero de espaos em branco (tab ou espaos). O formato geral o
seguinte:
servio tipo_soquete proto opes usurio caminho_serv. opes_serv.
Opes:
servio - o servio relevante a este arquivo de configurao pego do arquivo /etc/services.
tipo_soquete - Este campo descreve o tipo do soquete que este item utilizar, valores permitidos so:
stream, dgram, raw, rdm, ou seqpacket. Isto um pouco tcnico de natureza, mas como uma regra geral,
todos os servios baseados em tcp usam stream e todos os protocolos baseados em udp usam dgram.
Somente alguns tipos de daemons especiais de servidores usam os outros valores.
protocolo - O protocolo considerado vlido para este tem. Isto deve bater com um tem apropriado no
arquivo /etc/services e tipicamente ser tcp ou udp. Servidores baseados no Sun RPC (Remote Procedure
Call), utilizam rpc/tcp ou rpc/udp.
opes - Existem somente duas configuraes para este campo. A configurao deste campo diz ao inetd se
o programa servidor de rede libera o soquete aps ele ser iniciado e ento se inetd pode iniciar outra cpia
na prxima requisio de conexo, ou se o inetd deve aguardar e assumir que qualquer servidor j em
execuo pegar a nova requisio de conexo.
Este um pequeno truque de trabalho, mas como uma regra, todos os servidores tcp devem ter este
parmetro ajustado para nowait e a maior parte dos servidores udp deve t-lo ajustado para wait. Foi
alertado que existem algumas excesses a isto, assim deixo isto como exemplo se no estiver seguro.
usurio - Este campo descreve que conta de usurio usurio no arquivo /etc/passwd ser escolhida como
dono do daemon de rede quando este for iniciado. Isto muito til se voc deseja diminuir os riscos de
segurana. Voc pode ajustar o usurio de qualquer item para o usurio nobody, assim se a segurana do
servidor de redes quebrada, a possibilidade de problemas minimizada. Normalmente este campo
ajustado para root, porque muitos servidores requerem privilgios de usurio root para funcionarem
corretamente.
caminho_servidor - Este campo o caminho para o programa servidor atual que ser executado.
argumentos_servidor - Este campo inclui o resto da linha e opcional. Voc pode colocar neste campo
qualquer argumento da linha de comando que deseje passar para o daemon servidor quando for iniciado.
Uma dica que pode aumentar significativamente a segurana de seu sistema comentar (colocar uma #no incio
da linha) os servios que no sero utilizados.
Abaixo um modelo de arquivo /etc/inetd.conf usado em sistemas Debian:
# /etc/inetd.conf: veja inetd(8) para mais detalhes.
#
# Banco de Dados de configuraes do servidor Internet
#
#
# Linhas iniciando com "#:LABEL:" ou "#<off>#" no devem
# ser alteradas a no ser que saiba o que est fazendo!
#
#
# Os pacotes devem modificar este arquivo usando update-inetd(8)
#
# <nome_servio> <tipo_soquete> <proto> <opes> <usurio> <caminho_servidor> <args>
#
#:INTERNO: Servios internos
Guia Foca GNU/Linux

130

#echo
stream tcp
nowait root
internal
#echo
dgram udp
wait
root
internal
#chargen stream tcp
nowait root
internal
#chargen dgram udp
wait
root
internal
#discard
stream tcp
nowait root
internal
#discard
dgram udp
wait
root
internal
#daytime
stream tcp
nowait root
internal
#daytim
dgram udp
wait
root
internal
time
stream tcp
nowait root
internal
#time
dgram udp
wait
root
internal
#
#:PADRES: Estes so servios padres.
#:BSD: Shell, login, exec e talk so protocolos BSD.
#shell
stream tcp
nowait
root
/usr/sbin/tcpd /usr/sbin/in.rshd
#login
stream tcp
nowait
root
/usr/sbin/tcpd /usr/sbin/in.rlogind
#exec
stream tcp
nowait
root
/usr/sbin/tcpd /usr/sbin/in.rexecd
talk
dgram udp
wait
nobody.tty
/usr/sbin/tcpd /usr/sbin/in.talkd
ntalk
dgram udp
wait
nobody.tty
/usr/sbin/tcpd /usr/sbin/in.ntalkd
#:MAIL: Mail, news e servios uucp.
smtp
stream tcp
nowait mail /usr/sbin/exim exim -bs
#:INFO: Servios informativos
#:BOOT: O servio Tftp oferecido primariamente para a inicializao. Alguns sites
# o executam somente em mquinas atuando como "servidores de inicializao".
#:RPC: Servios baseados em RPC
#:HAM-RADIO: servios de rdio amador
#:OTHER: Outros servios

15.8 Segurana da Rede e controle de Acesso


Deixe-me iniciar esta seo lhe alertando que a segurana da rede em sua mquina e ataques maliciosos so uma
arte complexa. Uma regra importante : "No oferea servios de rede que no deseja utilizar".
Muitas distribuies vem configuradas com vrios tipos de servios que so iniciados automaticamente. Para
melhorar, mesmo que insignificantemente, o nvel de segurana em seu sistema voc deve editar se arquivo
/etc/inetd.conf e comentar (colocar uma "#") as linhas que contm servios que no utiliza.
Bons candidatos so servios tais como: shell, login, exec, uucp, ftp e servios de informao tais como finger,
netstat e sysstat.
Existem todos os tipos de mecanismos de segurana e controle de acesso, eu descreverei os mais importantes
deles.

15.8.1 /etc/ftpusers
O arquivo /etc/ftpusers um mecanismo simples que lhe permite bloquear a conexo de certos usurios via ftp.
O arquivo /etc/ftpusers lido pelo programa daemon ftp (ftpd) quando um pedido de conexo recebido. O
arquivo uma lista simples de usurios que no tem permisso de se conectar. Ele se parece com:
# /etc/ftpusers - login de usurios bloqueados via ftp
root
uucp
bin
mail

Guia Foca GNU/Linux

131

15.8.2 /etc/securetty
O arquivo /etc/securetty lhe permite especificar que dispositivos tty que o usurio root pode se conectar. O
arquivo /etc/securetty lido pelo programa login (normalmente /bin/login). Seu formato uma lista de
dispositivos tty onde a conexo permitida, em todos os outros, a entrada do usurio root bloqueada.
# /etc/securetty - terminais que o usurio root pode se conectar
tty1
tty2
tty3
tty4

15.8.3 O mecanismo de controle de acessos tcpd


O programa tcpd que voc deve ter visto listado no mesmo arquivo /etc/inetd.conf, oferece mecanismos de
registro e controle de acesso para os servios que esta configurado para proteger. Ele um tipo de firewall
simples e fcil de configurar que pode evitar tipos indesejados de ataques e registrar possveis tentativas de
invaso.
Quando executado pelo programa inetd, ele l dos arquivos contendo regras de acesso e permite ou bloqueia o
acesso ao servidor protegendo adequadamente.
Ele procura nos arquivos de regras at que uma regra confira. Se nenhuma regra conferir, ento ele assume que
o acesso deve ser permitido a qualquer um. Os arquivos que ele procura em seqncia so: /etc/hosts.allow e
/etc/hosts.deny. Eu descreverei cada um destes arquivos separadamente.
Para uma descrio completa desta facilidade, voc deve verificar a pgina de manual apropriada (hosts_access
(5) um bom ponto de partida).

15.8.3.1 /etc/hosts.allow
O arquivo /etc/hosts.allow um arquivo de configurao do programa /usr/sbin/tcpd. O arquivo hosts.allow
contm regras descrevendo que hosts tem permisso de acessar um servio em sua mquina.
O formato do arquivo muito simples:
# /etc/hosts.allow
#
# lista de servios: lista de hosts : comando
Onde:
lista de servios - uma lista de nomes de servios separados por vrgula que esta regra se aplica.
Exemplos de nomes de servios so: ftpd, telnetd e fingerd.
lista de hosts - uma lista de nomes de hosts separada por vrgula. Voc tambm pode usar endereos IP's
aqui. Adicionalmente, voc pode especificar nomes de computadores ou endereo IP usando caracteres
coringas para atingir grupos de hosts.
Exemplos incluem: gw.vk2ktj.ampr.org para conferir com um endereo de computador especfico,
.uts.edu.au para atingir qualquer endereo de computador finalizando com aquele string. Use 200.200.200.
para conferir com qualquer endereo IP iniciando com estes dgitos. Existem alguns parmetros especiais
para simplificar a configurao, alguns destes so: ALL atinge todos endereos, LOCAL atinge qualquer
computador que no contm um "." (ie. est no mesmo domnio de sua mquina) e PARANOID atinge
qualquer computador que o nome no confere com seu endereo (falsificao de nome). Existe tambm um
ltimo parmetro que tambm til: o parmetro EXCEPT lhe permite fazer uma lista de excees. Isto
ser coberto em um exemplo adiante.
comando - um parmetro opcional. Este parmetro o caminho completo de um comando que dever
ser executado toda a vez que esta regra conferir. Ele pode executar um comando para tentar identificar quem
esta conectado pelo host remoto, ou gerar uma mensagem via E-Mail ou algum outro alerta para um
administrador de rede que algum est tentando se conectar.
Existem um nmero de expanses que podem ser includas, alguns exemplos comuns so: %h expande o
endereo do computador que est conectado ou endereo se ele no possuir um nome, %d o nome do daemon
sendo chamado.
Se o computador tiver permisso de acessar um servio atravs do /etc/hosts.allow, ento o /etc/hosts.deny no
ser consultado e o acesso ser permitido.
Como exemplo:
# /etc/hosts.allow
#
# Permite que qualquer um envie e-mails
Guia Foca GNU/Linux

132

in.smtpd: ALL
# Permitir telnet e ftp somente para hosts locais e myhost.athome.org.au
in.telnetd, in.ftpd: LOCAL, myhost.athome.org.au
# Permitir finger para qualquer um mas manter um registro de quem
in.fingerd: ALL: (finger @%h | mail -s "finger from %h" root)
Qualquer modificao no arquivo /etc/hosts.allow entrar em ao aps reiniciar o daemon inetd. Isto pode ser
feito com o comando kill -HUP [pid do inetd], o pid do inetd pode ser obtido com o comando ps ax|grep inetd.

15.8.3.2 /etc/hosts.deny
O arquivo /etc/hosts.deny um arquivo de configurao das regras descrevendo quais computadores no tem a
permisso de acessar um servio em sua mquina.
Um modelo simples deste arquivo se parece com isto:
# /etc/hosts.deny
#
# Bloqueia o acesso de computadores com endereos suspeitos
ALL: PARANOID
#
# Bloqueia todos os computadores
ALL: ALL
A entrada PARANOID realmente redundante porque a outra entrada nega tudo. Qualquer uma destas linhas
pode fazer uma segurana padro dependendo de seu requerimento em particular.
Tendo um padro ALL: ALL no arquivo /etc/hosts.deny e ento ativando especificamente os servios e
permitindo computadores que voc deseja no arquivo /etc/hosts.allow a configurao mais segura.
Qualquer modificao no arquivo /etc/hosts.deny entrar em ao aps reiniciar o daemon inetd. Isto pode ser
feito com o comando kill -HUP [pid do inetd], o pid do inetd pode ser obtido com o comando ps ax|grep inetd.

15.8.3.3 /etc/hosts.equiv e /etc/shosts.equiv


O arquivo /etc/hosts.equiv usado para garantir/bloquear certos computadores e usurios o direito de acesso aos
servios "r*" (rsh, rexec, rcp, etc) sem precisar fornecer uma senha. O /etc/shosts.equiv equivalente mas lido
somente pelo servio ssh. Esta funo til em um ambiente seguro onde voc controla todas as mquinas,
mesmo assim isto um perigo de segurana (veja nas observaes). O formato deste arquivo o seguinte:
#Acesso Mquina
Usurio
maquina2.dominio.com.br
usuario2
maquina4.dominio.com.br
usuario2
+
maquina1.dominio.com.br
+@usuarios
O primeiro campo especifica se o acesso ser permitido ou negado caso o segundo e terceiro campo confiram.
Por razes de segurana deve ser especificado o FQDN no caso de nomes de mquinas. Grupos de rede podem
ser especificados usando a sintaxe "+@grupo".
Para aumentar a segurana, no use este mecanismo e encoraje seus usurios a tambm no usar o arquivo
.rhosts.
ATENO O uso do sinal "+" sozinho significa permitir acesso livre a qualquer pessoa de qualquer lugar. Se
este mecanismo for mesmo necessrio, tenha muita ateno na especificao de seus campos.
Evita tambm A TODO CUSTO uso de nomes de usurios (a no ser para negar o acesso), pois facil forjar o
login, entrar no sistema tomar conta de processos (como por exemplo do servidor Apache rodando sob o usurio
www-data ou at mesmo o root), causando enormes estragos.

15.8.3.4 Verificando a segurana do TCPD e a sintaxe dos arquivos


O utilitrio tcpdchk til para verificar problemas nos arquivos hosts.allow e hosts.deny. Quando executado
ele verifica a sintaxe destes arquivos e relata problemas, caso eles existam.
Outro utilitrio til o tcpdmatch, o que ele faz permitir que voc simule a tentativa de conexes ao seu
sistema e observar ser ela ser permitida ou bloqueada pelos arquivos hosts.allow e hosts.deny.
importante mostrar na prtica como o tcpdmatch funciona atravs de um exemplo simulando um teste simples
em um sistema com a configurao padro de acesso restrito:
O arquivo hosts.allow contm as seguintes linhas:
ALL: 127.0.0.1
in.talkd, in.ntalkd: ALL
in.fingerd: 192.168.1. EXCEPT 192.168.1.30
A primeira linha permite o loopback (127.0.0.1) acessar qualquer servio TCP/UDP em nosso computador, a
segunda linha permite qualquer um acessar os servidor TALK (ns desejamos que o sistema nos avise quando
Guia Foca GNU/Linux

133

algum desejar conversar) e a terceira somente permite enviar dados do finger para computadores dentro de
nossa rede privada (exceto para 192.168.1.30).
O arquivo hosts.deny contm a seguinte linha:
ALL: ALL
Qualquer outra conexo ser explicitamente derrubada.
Vamos aos testes, digitando: "tcpdmatch in.fingerd 127.0.0.1" (verificar se o endereo 127.0.0.1 tem acesso ao
finger):
client: address 127.0.0.1
server: process in.fingerd
matched: /etc/hosts.allow line 1
access: granted
Ok, temos acesso garantido com especificado pela linha 1 do hosts.allow (a primeira linha que confere usada).
Agora "tcpdmatch in.fingerd 192.168.1.29":
client: address 192.168.1.29
server: process in.fingerd
matched: /etc/hosts.allow line 3
access: granted
O acesso foi permitido atravs da linha 3 do hosts.allow. Agora "tcpdmatch in.fingerd 192.168.1.29":
client: address 192.168.1.30
server: process in.fingerd
matched: /etc/hosts.deny line 1
access: denied
O que aconteceu? como a linha 2 do hosts.allow permite o acesso a todos os computadores 192.168.1.* exceto
192.168.1.30, ela no bateu, ento o processamento partiu para o hosts.deny que nega todos os servios para
qualquer endereo. Agora um ltimo exemplo: "tcpdmatch in.talkd www.debian.org"
client: address www.debian.org
server: process in.talkd
matched: /etc/hosts.allow line 2
access: granted
Ok, na linha 2 qualquer computador pode te chamar para conversar via talk na rede, mas para o endereo DNS
conferir com um IP especificado, o GNU/Linux faz a resoluo DNS, convertendo o endereo para IP e
verificando se ele possui acesso.
No lugar do endereo tambm pode ser usado a forma daemon@computador ou cliente@computador para
verificar respectivamente o acesso de daemons e cliente de determinados computadores aos servios da rede.
Como pode ver o TCPD ajuda a aumentar a segurana do seu sistema, mas no confie nele alm do uso em um
sistema simples, necessrio o uso de um firewall verdadeiro para controlar minuciosamente a segurana do seu
sistema e dos pacotes que atravessam os protocolos, roteamento e as interfaces de rede. Se este for o caso
aprenda a trabalhar a fundo com firewalls e implemente a segurana da sua rede da forma que melhor planejar.

15.8.4 Firewall
Dentre todos os mtodos de segurana, o Firewall o mais seguro. A funo do Firewall bloquear
determinados tipos de trfego de um endereo ou para uma porta local ou permitir o acesso de determinados
usurios mas bloquear outros, bloquear a falsificao de endereos, redirecionar trfego da rede, ping da morte,
etc.
A implementao de um bom firewall depender da experincia, conhecimentos de rede (protocolos,
roteamento, interfaces, endereamento, masquerade, etc), da rede local, e sistema em geral do Administrador de
redes, a segurana de sua rede e seus dados dependem da escolha do profissional correto, que entenda a fundo o
TCP/IP, roteamento, protocolos, servios e outros assuntos ligados a rede.
Freqentemente tem se ouvido falar de empresas que tiveram seus sistemas invadidos, em parte isto devido a
escolha do sistema operacional indevido mas na maioria das vezes o motivo a falta de investimento da
empresa em polticas de segurana, que algumas simplesmente consideram a segurana de seus dados e sigilo
interno como uma despesa a mais.
Um bom firewall que recomendo o ipchains, Sinus e o TIS. Particularmente gosto muito de usar o ipchains e o
Sinus e possvel fazer coisas inimaginveis programando scripts para interagirem com estes programas...

Guia Foca GNU/Linux

134

15.9 Outros arquivos de configurao relacionados com a rede


15.9.1 /etc/services
O arquivo /etc/services um banco de dados simples que associa um nome amigvel a humanos a uma porta de
servio amigvel a mquinas. um arquivo texto de formato muito simples, cada linha representa um item no
banco de dados. Cada item dividido em trs campos separados por qualquer nmero de espaos em branco
(tab ou espaos). Os campos so:
nome porta/protocolo
apelido # comentrio
Onde:
name - Uma palavra simples que representa o nome do servio sendo descrito.
porta/protocolo - Este campo dividido em dois sub-campos.
porta - Um nmero que especifica o nmero da porta em que o servio estar disponvel. Muitos dos
servios comuns tem designados um nmero de servio. Estes esto descritos no RFC-1340.
protocolo - Este sub-campo pode ser ajustado para tcp ou udp. importante notar que o item 18/tcp
muito diferente do item 18/udp e que no existe razo tcnica porque o mesmo servio precisa existir em
ambos. Normalmente o senso comum prevalece e que somente se um servio esta disponvel em ambos os
protocolos tcp e udp, voc precisar especificar ambos.
apelidos - Outros nomes podem ser usados para se referir a entrada deste servio.
comentrio - Qualquer texto aparecendo em uma linha aps um caracter "#" ignorado e tratado como
comentrio.

15.9.2 /etc/protocols
O arquivo /etc/protocols um banco de dados que mapeia nmeros de identificao de protocolos novamente
em nomes de protocolos. Isto usado por programadores para permiti-los especificar protocolos por nomes em
seus programas e tambm por alguns programas tal como tcpdump permitindo-os mostrar nomes ao invs de
nmeros em sua sada. A sintaxe geral deste arquivo :
nomeprotocolo nmero apelidos

15.10 Camadas de Rede


So organizaes do protocolo TCP/IP que visam organizar e simplificar seu padro e implementao pelos
desenvolvedores.
Um padro TCP o conjunto de regras que devem ser seguidas para garantir a homogeneidade da comunicao
entre diversos sistemas de diversos fabricantes (por exemplo, Mac com Windows, Windows com Linux, etc.).
A implementao o cdigo escrito por cada desenvolvedor para integrao ao sistema operacional seguindo as
regras do padro para garantir a comunicao entre as mquinas, portanto, a implementao do protocolo TCP
varia de fabricante para fabricante.
Existem dois tipos de padres TCP:

Darpa

OSI
O padro Darpa dividido em 4 camadas e ainda o padro atualmente utilizado. O padro OSI mais recente,
dividido em 7 camadas, mas ainda no se tornou um padro como o Darpa.
Segue abaixo os padres e a descrio de cada uma das camadas:
Darpa

Aplicao - www, ftp, dns, etc. Fazem interface com as aplicaes do sistema.

Transporte - Protocolo tcp e udp. Cuidam da parte de transporte dos dados do sistema.

Rede - IP, icmp, igmp, arp. Cuida de levar o pacote para seu destino (rotas) e condies de transmisso.

Interface de Rede - Ethernet, FDDI, Token Ring. Define qual o mtodo que a mensagem transmitida
ser encapsulada para envio ao seu destino.
Apesar dos padres Darpa e OSI, o protocolo TCP/IP oficialmente independente destas camadas.

15.11 - Algumas Configuraes de Rede


Este captulo descreve alguns tipos de configuraes que podem ser feitas em rede utilizando os recursos
disponveis do Linux. Aqui no esto todas as aplicaes, pois o sistema bastante flexvel e o prprio time de
desenvolvimento do Kernel no demonstrou limitaes quanto as formas de se construir uma rede.
Guia Foca GNU/Linux

135

15.11.1 IP Alias
Este recurso permite configurar uma interface de rede para responder por um ou mais IPs, que no precisam
pertencer a mesma faixa. Para usurios externos, a impresso que a rede tem "muitas" mquinas, quando na
realidade apenas uma responde por todos estes endereos virtuais. Podemos citar algumas utilizaes teis deste
recurso:

Simular uma rede com diversas mquinas

Construir virtual hosts baseados em IP

Definir endereamentos secundrios para fins de anlise e depurao de pacotes (principalmente como
armadilhas para trojans)

Colocao de servios com operao restritas a interfaces em funcionamento atravs de faixas


especficas usando as configuraes da interface virtual

Transio de IP de servidores de forma transparente


Entre muitas outras. A idia aqui mostrar a simplicidade de se configurar este recurso e entender o processo,
que bastante simples.
Para configurar o recurso de IP Alias necessrio apenas que a opo IP Aliasing Support seja habilitada no
Kernel (como mdulo ou embutida). Em nosso exemplo abaixo, temos uma rede com a interface eth0
configurada com o IP 192.168.1.1 (classe C privada) e queremos adicionar uma interface virtual que atenda pelo
IP 172.16.0.1 (classe B privada) e depois seguir os seguintes passos:

Ative a interface de rede com ifconfig ou ifup (caso esteja usando a Debian).

Crie uma interface virtual usando o comando ifconfig eth0:0 172.16.0.1. Isto criar uma nova interface
chamada eth0:0 que passar a responder pelo IP 172.6.0.1. permitido o uso de nomes para especificar a
interface virtual, como: eth0:rede1, eth0:rede2, eth0:escritrio.

Digite ifconfig para ver as configuraes de sua nova interface de rede. Use o ping tambm para v-la:
ping 172.16.0.1.
eth0
Encapsulamento do Link: Ethernet Endereo de HW 00:80:AE:B3:AA:AA
inet end.: 192.168.1.1 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
RX packets:979 errors:0 dropped:0 overruns:0 frame:0
TX packets:1228 errors:0 dropped:0 overruns:0 carrier:0
colises:1 txqueuelen:100
RX bytes:71516 (69.8 Kb) TX bytes:1146031 (1.0 Mb)
IRQ:10 Endereo de E/S:0x300
eth0:0 Encapsulamento do Link: Ethernet Endereo de HW 00:80:AE:B3:AA:AA
inet end.: 192.168.1.10 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
IRQ:10 Endereo de E/S:0x300
Note que o MAC Address da placa eth0 e eth0:0 so o mesmo, indicando que a mesma interface atende ambos
os IPs.
Se necessrio ajuste as rotas ou gateway com o comando route (veja Configurando uma rota no Linux, Seo
15.5.1).
Para desativar uma interface de rede virtual, utilize a sintaxe: ifconfig eth0:0 down ou ifdown eth0:0 (caso esteja
usando a Debian).
Se o teste com o ping no funcionar, verifique se possui o suporte a IP Alias no Kernel, se o mdulo precisa ser
carregado manualmente (caso seu Kernel no esteja compilado com o kmod) ou se existe um firewall restritivo
bloqueando seu IP.
Na distribuio Debian a configurao de uma interface virtual pode ser feita de forma idntica a interfaces
estticas padro:
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
auto eth0:0
iface eth0:0 inet static
Guia Foca GNU/Linux

136

address 172.16.0.1
netmask 255.255.0.0
network 172.16.0.1
broadcast 172.16.255.255
OBS1: Quando voc desativa uma interface fsica (eth0), todas as interfaces virtuais tambm so desativadas.
OBS2: Caso utilize um firewall (principalmente com a poltica padro permissiva), esteja atento as
modificaes que precisa realizar para no comprometer a segurana de sua mquina. Caso tenha dados
considerados seguros em sua mquina e esteja em dvida sobre as implicaes de segurana do IP Alias em sua
mquina, consulte seu administrador de redes.
OBS3: Note que somente os 4 primeiros caracteres sero mostrados na sada do ifconfig, desta forma procure
utilizar no mximo esta quantidade de caracteres para evitar problemas durante uma futura administrao do
servidor, no caso de esquecimento do nome completo da interface virtual).

15.11.2 Bridge
Uma bridge uma interface de rede lgica composta por uma ou mais interfaces de rede fsica operando em
nvel 2 (enviando pacotes atravs de MAC adresses, veja Camadas de Rede, Seo 15.10).
Sua operao transparente na rede, podendo ser usada como um switch/firewall, estao de monitorao, etc.
Aqui descreverei como montar uma bridge simples e uma aplicao de firewall simples. As possibilidades so
diversas e uma configurao bem feita pode detectar ataques, protocolos desconhecidos at virus complexos de
rede.

15.11.2.1 Requerimentos para a Instalao


necessrio um dos seguintes requerimentos para se montar uma bridge:

Kernel com suporte a bridge ativado (na configurao de rede)

patch bridge-nf se desejar usar o netfilter com as interfaces de entrada e sada (como antes de usar a
bridge) ao invs de controlar o trfego apenas pela interface cridada pela bridge.

Ative a opo 802.1d Ethernet Bridging na seo Networking Options, recompile e instale seu novo
Kernel. Caso tenha aplicado o patch bridge nf, aparecer uma sub-opo chamada netfilter (firewalling)
support que permitir que o firewall trabalhe com as interfaces fsicas ao invs de somente atravs da
interface virtual criada pela bridge.
OBS: O patch bridge nf viola a RFC de bridges. Mesmo assim ela a nica opo em muitas aplicaes,
principalmente quando se deseja controlar o trfego que atravessam as interfaces. Aps isto instale o pacote
bridge-utils, ele possui os utilitrios necessrios para ativar, configurar e monitorar o funcionamento de sua
bridge.
No necessria ativao do ip_forward para o funcionamento da bridge, uma vez que ela funcionar como
uma interface lgica que rene interfaces de rede fsicas.

15.11.2.2 Configurao da bridge


Nos exemplos abaixo, eu assumirei a utilizao do nome de dispositivo br0 para se referir a bridge no sistema.
Siga estes passos para configurar uma bridge em sistemas Debian:

Primeiro, desative os blocos no arquivo /etc/network/interfaces que configuram as interfaces que sero
usadas na bridge (por exemplo, eth0 e eth1). Elas podem ser comentadas, removidas, ou voc poder
comentar a linha auto eth0 e auto eth1 para que ele no ative automaticamente estas interfaces com o ifup -a
(executado durante a inicializao). Desta forma, a inicializao destas interfaces poder somente ser feita
manualmente.
auto br0
iface br0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0 eth1
Note que a interface virtual da brigde (br0) deve ser configurada com parmetros vlidos de interfaces (assim
com uma interface de rede padro). Note a adio da linha bridge_ports que indica que interfaces de rede
sero usadas para fazer a bridge. Caso seja usado o parmetro all, todas as interfaces fsicas de rede sero
usadas para fazer bridge (excluindo a lo).

Execute o ifdown -a (para desativar as interfaces antigas.


Guia Foca GNU/Linux

137

Execute o ifup br0 para levantar as interface br0. O sistema poder demorar um pouco para levantar a
bridge (as vezes at 40 segundos) mas isto normal.
Pronto, voc ter uma bridge simples j configurada e funcionando em seu sistema! As interfaces fsicas sero
configuradas com o IP 0.0.0.0 e estaro operando em modo promscuo.

15.11.2.3 Configuraes mais avanadas de bridge


A bridge permite ainda definir prioridade para utilizao de interfaces, alm de outras funcionalidades que lhe
permitem ajustar a performance da mquina de acordo com sua rede. Um bom exemplo, quando voce deseja
criar 2 bridges em uma mesma mquina envolvendo interfaces de rede especficas, uma atendendo a rede
192.168.0.x e outra a rede 192.168.1.x:
auto br0
iface br0 inet static
address 192.168.0.2
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0 eth1
auto br1
iface br1 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.0.1
bridge_ports eth2 eth3 eth4
No exemplo acima, as interfaces eth0 e eth1 fazem parte da bridge br0 e as demais (eth0, eth1 e eth2 da bridge
br1.
bridge_ports eth2 eth3
bridge_bridgeprio 16385
bridge_portprio eth1 100
bridge_fd 5

15.11.2.4 Configurao manual da bridge


Internamente, o que o ifup faz interpretar os parmetros no arquivo de configurao e executar os comandos
do pacote bridge-utils para ativar a interface da brige. O utilitrio responsvel por este processo o brctl. Ser
documentado aqui como ativar uma bridge atravs deste programa (que servir para fazer uma bridge em
qualquer sistema Linux).
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig br0 192.168.0.4
O comando acima ativa uma bridge simples, como o primeiro exemplo. Tenha certeza que as interfaces fsicas
de rede esto desativadas antes de executar este comando.
Outros parmetros que podem ser usados com o brctl:

setbridgeprio [bridge] [prioridade] - Define a prioridade da bridge, o valor deve estar entre 0 e 65536
(16 bits). Valores menores definem uma prioridade maior.

setfd [bridge] [tempo] - Ajusta o delay da bridge especificada em [tempo] segundos.

setmaxage [bridge] [tempo] - Ajusta o tempo mximo de vida da bridge para [tempo] segundos.

setportprio [bridge] [interface] [prioridade] - Ajusta a prioridade da [interface] especificada na


[bridge]. O valor de prioridade deve estar entre 0 e 255 (8 bits). Quanto menor o valor maior a prioridade.
Isto til para otimizaes o volume de trfego em mquinas que possuem diversas interfaces configuradas
fazendo parte da bridge.
brctl addbr br0
Guia Foca GNU/Linux

138

brctl addif br0 eth0


brctl addif br0 eth1
brctl setportprio br0 eth0 50
brctl setportprio br0 eth1 80
brctl setfd br0 2
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig br0 192.168.0.4

15.11.2.5 Usando o iptables para construir um firewall na mquina da


bridge
A construo de um firewall em uma bridge no tem maiores segredos, basta referir-se a interface lgica da
bridge para construir suas regras (tendo em mente como uma bridge funciona e como os pacotes atravessaro as
interfaces).
Caso aplique o patch bridge nf, ser possvel referir-se as interfaces locais de rede e tambm a da bridge. Neste
caso a interface da bridge ser identificada como interface IN ou OUT PHYSIN e as interfaces fsicas como
PHYSOUT:
Oct 22 09:19:24 router Kernel: IN=br0 PHYSIN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:d4:7d:ff:ff:ff:08:00
SRC=192.168.0.4 DST=1982.168.255.255 LEN=238 TOS=0x00 PREC=0x00 TTL=128 ID=23383
PROTO=UDP SPT=138 DPT=138 LEN=218
Mesmo que a bridge no necessite de ip_forward ativado para redirecionar os pacotes atravs das interfaces, isto
ser necessrio para habilitar o uso do firewall para controlar o trfego que atravessa as interfaces.

15.11.2.6 Filtrando pacotes no IP na bridge


Para fazer esta tarefa, utilize a ferramenta ebtables disponvel em
(http://users.pandora.be/bart.de.schuymer/ebtables/).

Guia Foca GNU/Linux

139

Captulo 16 Kernel e Mdulos


Este captulo descreve em detalhes o que o Kernel, mdulos, sua configurao e programas relacionados.

16.1 O Kernel
o sistema operacional (o GNU/Linux) ele controla os dispositivos e demais perifricos do sistema (como
memria, placas de som, vdeo, discos rgidos, disquetes, sistemas de arquivos, redes e outros recursos
disponveis). Muitos confundem isto e chamam a distribuio de sistema operacional, isto errado!
O Kernel faz o controle dos perifricos do sistema e para isto ele deve ter o seu suporte includo. Para fazer uma
placa de som Sound Blaster funcionar, por exemplo, necessrio que o Kernel oferea suporte a este placa e
voc deve configurar seus parmetros (como interrupo, I/O e DMA) com comandos especficos para ativar a
placa e faze-la funcionar corretamente. Existe um documento que contm quais so os perifricos suportados/
no suportados pelo GNU/Linux, ele se chama Hardware-HOWTO.
Suas verses so identificadas por nmeros como 2.0.36, 2.0.38, 2.1.10, 2.2.12, as verses que contm um
nmero par entre o primeiro e segundo ponto so verses estveis e que contm nmeros mpares neste mesmo
local so verses instveis (em desenvolvimento). Usar verses instveis no quer dizer que ocorrer
travamentos ou coisas do tipo, mas algumas partes do Kernel podem no estar testadas o suficiente ou alguns
controladores podem ainda estar incompletos para obter pleno funcionamento. Se opera sua mquina em um
ambiente crtico, prefira pegar verses estveis do Kernel.
Aps inicializar o sistema, o Kernel e seus arquivos podem ser acessados ou modificados atravs do ponto de
montagem /proc. Para detalhes veja O sistema de Arquivos /proc, Seo 5.5.
Caso voc tenha um dispositivo (como uma placa de som) que tem suporte no GNU/Linux mas no funciona
veja Como adicionar suporte a Hardwares e outros dispositivos no Kernel, Seo 16.3.

16.2 Mdulos
So partes do Kernel que so carregadas somente quando so solicitadas por algum aplicativo ou dispositivo e
descarregadas da memria quando no so mais usadas. Este recurso til por 2 motivos: Evita a construo de
um Kernel grande (esttico) que ocupe grande parte da memria com todos os drivers compilados e permite que
partes do Kernel ocupem a memria somente quando forem necessrios.
Os mdulos do Kernel esto localizados no diretrio /lib/modules/verso_do_Kernel/* (onde verso_do_Kernel
a verso atual do Kernel em seu sistema, caso seja 2.2.10 o diretrio que contm seus mdulos ser
/lib/modules/2.2.10.
Os mdulos so carregados automaticamente quando solicitados atravs do programa kmod ou manualmente
atravs do arquivo /etc/modules , insmod ou modprobe. Ateno: No compile o suporte ao seu sistema de
arquivos raz como mdulo, isto o tornar inacessvel.

16.3 Como adicionar suporte a Hardwares e outros dispositivos no


Kernel
Quando seu hardware no funciona mas voc tem certeza que suportado pelo GNU/Linux, preciso seguir
alguns passos para faze-lo funcionar corretamente:
Verifique se o Kernel atual foi compilado com suporte ao seu dispositivo. Tambm possvel que o suporte ao
dispositivo esteja compilado como mdulo. D o comando dmesg para ver as mensagens do Kernel durante a
inicializao e verifique se aparece alguma coisa referente ao dispositivo que deseja instalar (alguma mensagem
de erro, etc). Caso no aparecer nada possvel que o driver esteja compilado como mdulo, para verificar isto
entre no diretrio /lib/modules/versao_do_Kernel e veja se encontra o mdulo correspondente ao seu dispositivo
(o mdulo da placa NE 2000 tem o nome de ne.o e o da placa Sound Blaster de sb.o, por exemplo).
Caso o Kernel no tiver o suporte ao seu dispositivo, voc precisar recompilar seu Kernel ativando seu suporte.
Veja Recompilando o Kernel, Seo 16.11.
Caso seu hardware esteja compilado no Kernel, verifique se o mdulo correspondente est carregado (com o
comando lsmod). Caso no estiver, carregue-o com o modprobe (por exemplo, modprobe sb io=0x220 irq=5
dma=1 dma16=5 mpuio=0x330), para detalhes veja modprobe, Seo 16.8.
O uso deste comando dever ativar seu hardware imediatamente, neste caso configure o mdulo para ser
carregado automaticamente atravs do programa modconf ou edite os arquivos relacionados com os mdulos
(veja Arquivos relacionados com o Kernel e Mdulos, Seo 16.12). Caso no tenha sucesso, ser retornada
uma mensagem de erro.

Guia Foca GNU/Linux

140

16.4 kmod
Este o programa usado para carregar os mdulos automaticamente quando so requeridos pelo sistema. Ele
um daemon que funciona constantemente fazendo a monitorao, quando verifica que algum dispositivo ou
programa est solicitando o suporte a algum dispositivo, ele carrega o mdulo correspondente.
Ele pode ser desativado atravs da recompilao do Kernel, dando um kill no processo ou atravs do arquivo
/etc/modules (veja /etc/modules, Seo 16.12.1. Caso seja desativado, preciso carregar manualmente os
mdulos atravs do modprobe ou insmod.

16.5 lsmod
Lista quais mdulos esto carregados atualmente pelo Kernel. O nome lsmod uma contrao de ls+mdulos Listar Mdulos. A listagem feita pelo lsmod uma alternativa ao uso do comando cat /proc/modules.
A sada deste comando tem a seguinte forma:
Module
Size
Pages Used by
nls_iso8859_1 8000
1
1 (autoclean)
nls_cp437
3744
1
1 (autoclean)
ne
6156
2
1
8390
8390
2
[ne] 0
A coluna Module indica o nome do mdulo que est carregado, a coluna Used mostra qual mdulos est usando
aquele recurso. O parmetro (autoclean) no final da coluna indica que o mdulo foi carregado manualmente
(pelo insmod ou modprobe) ou atravs do kmod e ser automaticamente removido da memria quando no for
mais usado.
No exemplo acima os mdulos ne e 8390 no tem o parmetro (autoclean) porque foram carregados pelo
arquivo /etc/modules (veja /etc/modules, Seo 16.12.1). Isto significa que no sero removidos da memria
caso estiverem sem uso.
Qualquer mdulo carregado pode ser removido manualmente atravs do comandos rmmod.

16.6 insmod
Carrega um mdulo manualmente. Para carregar mdulos que dependem de outros mdulos para que
funcionem, voc duas opes: Carregar os mdulos manualmente ou usar o modprobe que verifica e carrega as
dependncias correspondentes.
A sintaxe do comando : insmod [mdulo] [opes_mdulo]
Onde:
mdulo - o nome do mdulo que ser carregado.
opes_mdulo - Opes que sero usadas pelo mdulo. Variam de mdulo para mdulo, alguns precisam
de opes outros no, tente primeiro carregar sem opes, caso seja mostrada uma mensagem de erro
verifique as opes usadas por ele. Para detalhes sobre que opes so suportadas por cada mdulo, veja a
sua documentao no cdigo fonte do Kernel em /usr/src/linux/Documentation
Exemplo: insmod ne io=0x300 irq=10

16.7 rmmod
Remove mdulos carregados no Kernel. Para ver os nomes dos mdulos atualmente carregados no Kernel digite
lsmod e verifique na primeira coluna o nome do mdulo. Caso um mdulo tenha dependncias e voc tentar
remover suas dependncias, uma mensagem de erro ser mostrada alertando que o mdulo est em uso.
Exemplo: rmmod ne

16.8 modprobe
Carrega um mdulo e suas dependncias manualmente. Este comando permite carregar diversos mdulos e
dependncias de uma s vez. O comportamento do modprobe modificado pelo arquivo /etc/modules.conf .
A sintaxe deste comando : modprobe [mdulo] [opes_mdulo]
Onde:
mdulo - o nome do mdulo que ser carregado.
opes_mdulo - Opes que sero usadas pelo mdulo. Variam de mdulo para mdulo, alguns precisam
de opes outros no, tente primeiro carregar sem opes, caso seja mostrada uma mensagem de erro
verifique as opes usadas por ele. Para detalhes sobre que opes so suportadas por cada mdulo, veja a
sua documentao no cdigo fonte do Kernel em /usr/src/linux/Documentation
Nem todos os mdulos so carregados corretamente pelo modprobe, o plip, por exemplo, mostra uma
mensagem sobre porta I/O invlida mas no caso seja carregado pelo insmod.
Guia Foca GNU/Linux

141

Exemplo: modprobe ne io=0x300 irq=10, modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpuio=0x330

16.9 depmod
Verifica a dependncia de mdulos. As dependncias dos mdulos so verificadas pelos scripts em /etc/init.d
usando o comando depmod -a e o resultado gravado no arquivo /lib/modules/versao_do_Kernel/modules.dep.
Esta checagem serve para que todas as dependncias de mdulos estejam corretamente disponveis na
inicializao do sistema. O comportamento do depmod pode ser modificado atravs do arquivo
/etc/modules.conf . possvel criar a dependncia de mdulos imediatamente aps a compilao do Kernel
digitando depmod -a [verso_do_Kernel].
Exemplo: depmod -a

16.10 modconf
Este programa permite um meio mais fcil de configurar a ativao de mdulos e opes atravs de uma
interface atravs de menus. Selecione a categoria de mdulos atravs das setas acima e abaixo e pressione enter
para selecionar os mdulos existentes. Sero pedidas as opes do mdulo (como DMA, IRQ, I/O) para que sua
inicializao seja possvel, estes parmetros so especficos de cada mdulo e devem ser vistos na
documentao do cdigo fonte do Kernel no diretrio /usr/src/linux/Documentation. Note que tambm existem
mdulos com auto-deteco mas isto deixa o sistema um pouco mais lento, porque ele far uma varredura na
faixa de endereos especificados pelo mdulo para achar o dispositivo. As opes so desnecessrias em alguns
tipos de mdulos.
As modificaes feitas por este programa so gravadas no diretrio /etc/modutils em arquivos separados como
/etc/modutils/alias - alias de mdulos, /etc/modutils/modconf - opes usadas por mdulos, /etc/modutils/paths Caminho onde os mdulos do sistema so encontrados. Dentro de /etc/modutils ainda encontrado um subdiretrio chamado arch que contm opes especficas por arquiteturas.
A sincronizao dos arquivos gerados pelo modconf com o /etc/modules.conf feita atravs do utilitrio updatemodules. Ele normalmente executado aps modificaes nos mdulos feitas pelo modconf.

16.11 Recompilando o Kernel


Ser que vou precisar recompilar o meu Kernel? voc deve estar se perguntando agora. Abaixo alguns motivos
para esclarecer suas dvidas:
Melhora o desempenho do Kernel. O Kernel padro que acompanha as distribuies GNU/Linux foi feito
para funcionar em qualquer tipo de sistema e garantir seu funcionamento e inclui suporte a praticamente
tudo. Isto pode gerar desde instabilidade at uma grade pausa do Kernel na inicializao quando estiver
procurando pelos dispositivos que simplesmente no existem em seu computador!
A compilao permite escolher somente o suporte aos dispositivos existentes em seu computador e assim
diminuir o tamanho do Kernel, desocupar a memria RAM com dispositivos que nunca usar e assim voc
ter um desempenho bem melhor do que teria com um Kernel pesado.
Incluir suporte a alguns hardwares que esto desativados no Kernel padro (SMP, APM, Firewall, drivers
experimentais, etc).
Se aventurar em compilar um Kernel (sistema operacional) personalizado em seu sistema.
Impressionar os seus amigos, tentando coisas novas.
Sero necessrios uns 70Mb de espao em disco disponvel para copiar e descompactar o cdigo fonte do
Kernel e alguns pacotes de desenvolvimento como o gcc, cpp, binutils, gcc-i386-gnu, bin86, make, dpkg-dev,
perl, Kernel-package (os trs ltimos somente para a distribuio Debian).
Na distribuio Debian, o melhor mtodo atravs do Kernel-package que faz tudo para voc (menos escolher o
que ter o no o suporte no Kernel) e gera um pacote .deb que poder ser usado para instalar o Kernel em seu
sistema ou em qualquer outro que execute a Debian ou distribuies baseadas (Corel Linux, Libranet, etc).
Devido a sua facilidade, a compilao do Kernel atravs do Kernel-package muito recomendado para usurios
iniciantes e para aqueles que usam somente um Kernel no sistema ( possvel usar mais de dois ao mesmo
tempo, veja o processo de compilao manual adiante neste captulo). Siga este passos para recompilar seu
Kernel atravs do Kernel-package:
1.
Descompacte o cdigo fonte do Kernel (atravs do arquivo linux-2.2.XX) para o diretrio /usr/src. Caso
use os pacotes da Debian eles tero o nome de Kernel-source-2.2.XX, para detalhes de como instalar um
pacote, veja Instalar pacotes, Seo 20.1.2.
2.
Aps isto, entre no diretrio onde o cdigo fonte do Kernel foi instalado com cd /usr/src/linux (este ser
assumido o lugar onde o cdigo fonte do Kernel se encontra).
3.
Como usurio root, digite make config. Voc tambm pode usar make menuconfig (configurao
atravs de menus) ou make xconfig (configurao em modo grfico) mas precisar de pacotes adicionais
Guia Foca GNU/Linux

142

para que estes dois funcionem corretamente.


Sero feitas perguntas sobre se deseja suporte a tal dispositivo, etc. Pressione Y para incluir o suporte
diretamente no Kernel, M para incluir o suporte como mdulo ou N para no incluir o suporte. Note que
nem todos os drivers podem ser compilados como mdulos.
Escolha as opes que se encaixam em seu sistema. se estiver em dvida sobre a pergunta digite ? e tecle
Enter para ter uma explicao sobre o que aquela opo faz. Se no souber do que se trata, recomendo
incluir a opo (pressionando Y ou M. Este passo pode levar entre 5 minutos e 1 Hora (usurios que esto
fazendo isto pela primeira vez tendem a levar mais tempo lendo e conhecendo os recursos que o
GNU/Linux possui, antes de tomar qualquer deciso). No se preocupe se esquecer de incluir o suporte a
alguma coisa, voc pode repetir o passo make config (todas as suas escolhas so gravadas no arquivo
.config), recompilar o Kernel e instalar em cima do antigo a qualquer hora que quiser.
4.
Aps o make config chegar ao final, digite make-kpkg clean para limpar construes anteriores do
Kernel.
5.
Agora compile o Kernel digitando make-kpkg --revision=teste.1.0 Kernel-image. A palavra teste pode
ser substituda por qualquer outra que voc quiser e nmero da verso 1.0 serve apenas como controle de
suas compilaes (pode ser qualquer nmero).
Observao: No inclua hfens (-) no parmetro --revision, use somente pontos.
6.
Agora aps compilar, o Kernel ser gravado no diretrio superior (..) com um nome do tipo Kernelimage-2.2.10-i386_teste.1.0.deb. Basta voc digitar dpkg -i Kernel-image-2.2.10-i386_teste.1.0.deb e o
dpkg far o resto da instalao do Kernel para voc e perguntar se deseja criar um disquete de
inicializao (recomendvel).
7.
Reinicie seu computador, seu novo Kernel iniciar e voc j perceber a primeira diferena pela
velocidade que o GNU/Linux iniciado (voc inclui somente suporte a dispositivos em seu sistema). O
desempenho dos programas tambm melhorar pois cortou o suporte a dispositivos/funes que seu
computador no precisa.
Caso alguma coisa sair errada, coloque o disquete que gravou no passo anterior e reinicie o computador
para fazer as correes.
Para recompilar o Kernel usando o mtodo padro, siga os seguintes passos:
1.
Descompacte o cdigo fonte do Kernel (atravs do arquivo linux-2.2.XX) para o diretrio /usr/src. O
cdigo fonte do Kernel pode ser encontrado em ftp://ftp.Kernel.org.
2.
Aps isto, entre no diretrio onde o cdigo fonte do Kernel foi instalado com cd /usr/src/linux (este ser
assumido o lugar onde o cdigo fonte do Kernel se encontra).
3.
Como usurio root, digite make config. Voc tambm pode usar make menuconfig (configurao
atravs de menus) ou make xconfig (configurao em modo grfico) mas precisar de pacotes adicionais.
Sero feitas perguntas sobre se deseja suporte a tal dispositivo, etc. Pressione Y para incluir o suporte
diretamente no Kernel, M para incluir o suporte como mdulo ou N para no incluir o suporte. Note que
nem todos os drivers podem ser compilados como mdulos.
Escolha as opes que se encaixam em seu sistema. se estiver em dvida sobre a pergunta digite ? e tecle
Enter para ter uma explicao sobre o que aquela opo faz. Se no souber do que se trata, recomendo
incluir a opo (pressionando Y ou M. Este passo pode levar entre 5 minutos e 1 Hora (usurios que esto
fazendo isto pela primeira vez tendem a levar mais tempo lendo e conhecendo os recursos que o
GNU/Linux possui antes de tomar qualquer deciso). No se preocupe se esquecer de incluir o suporte a
alguma coisa, voc pode repetir o passo make config, recompilar o Kernel e instalar em cima do antigo a
qualquer hora que quiser.
4.
Digite o comando make dep para verificar as dependncias dos mdulos.
5.
Digite o comando make clean para limpar construes anteriores do Kernel.
6.
Digite o comando make zImage para iniciar a compilao do Kernel esttico (outro comando compila
os mdulos). Aguarde a compilao, o tempo pode variar dependendo da quantidade de recursos que
adicionou ao Kernel, a velocidade de seu computador e a quantidade de memria RAM disponvel.
Caso tenha acrescentado muitos itens no Kernel, possvel que o comando make zImage falhe no final
(especialmente se o tamanho do Kernel esttico for maior que 505Kb). Neste caso use make bzImage. A
diferena entre zImage e bzImage que o primeiro possui um limite de tamanho porque descompactado
na memria bsica (recomendado para alguns Notebooks), j a bzImage, descompactada na memria
estendida e no possui as limitaes da zImage.
7.
Aps terminada a compilao do Kernel esttico, execute make modules para compilar os mdulos
referentes quele Kernel. A velocidade de compilao pode variar de acordo com os motivos do passo
anterior.
8.
A compilao neste ponto est completa, voc agora tem duas opes para instalar o Kernel: Substituir
o Kernel anterior pelo recm compilado ou usar os dois. A segunda questo recomendvel se voc no
tem certeza se o Kernel funcionar corretamente e deseja iniciar pelo antigo no caso de alguma coisa dar
Guia Foca GNU/Linux

143

errado.
Se voc optar por substituir o Kernel anterior:
1.
recomendvel
renomear
o
diretrio
/lib/modules/verso_do_Kernel
para
/lib/modules/verso_do_Kernel.old, isto ser til para restaurao completa dos mdulos antigos caso
alguma coisa der errado.
2.Execute o comando make modules_install para instalar os mdulos do Kernel recm compilado em
/lib/modules/verso_do_Kernel.
3.Copie o arquivo zImage que contm o Kernel de /usr/src/linux/arch/i386/boot/zImage para
/boot/vmlinuz-2.XX.XX (2.XX.XX a verso do Kernel anterior)
4.Verifique se o link simblico /vmlinuz aponta para a verso do Kernel que compilou atualmente (com ls
-la /). Caso contrrio, apague o arquivo /vmlinuz do diretrio raz e crie um novo link com ln -s
/boot/vmlinuz-2.XX.Xx /vmlinuz apontando para o Kernel correto.
5.Execute o comando lilo para gerar um novo setor de partida no disco rgido. Para detalhes veja LILO,
Seo 6.1.
6.Reinicie o sistema (shutdown -r now).
7.Caso tudo esteja funcionando normalmente, apague o diretrio antigo de mdulos que salvou e o Kernel
antigo de /boot. Caso algo tenha dado errado e seu sistema no inicializa, inicie a partir de um disquete,
apague o novo Kernel, apague os novos mdulos, renomeie o diretrio de mdulos antigos para o nome
original, ajuste o link simblico /vmlinuz para apontar para o antigo Kernel e execute o lilo. Aps
reiniciar seu computador voltar como estava antes.
Se voc optar por manter o Kernel anterior e selecionar qual ser usado na partida do sistema (til
para um Kernel em testes):
1.Execute o comando make modules_install para instalar os mdulos recm compilados do Kernel em
/lib/modules/versao_do_Kernel.
2.Copie o arquivo zImage que contm o Kernel de /usr/src/linux/arch/i386/boot/zImage para
/boot/vmlinuz-2.XX.XX (2.XX.XX a verso do Kernel anterior)
3.Crie um link simblico no diretrio raz (/) apontando para o novo Kernel. Como exemplos ser usado
/vmlinuz-novo.
4.Modifique o arquivo /etc/lilo.conf para incluir a nova imagem de Kernel. Por exemplo:
Antes da modificao:
boot=/dev/hda
prompt
timeout=200
delay=200
map=/boot/map
install=/boot/boot.b
image = /vmlinuz
root = /dev/hda1
label = 1
read-only
Depois da modificao:
boot=/dev/hda
prompt
timeout=200
delay=200
map=/boot/map
install=/boot/boot.b
image = /vmlinuz
root = /dev/hda1
label = 1
read-only
image = /vmlinuz-new
root = /dev/hda1
label = 2
read-only
Se voc digitar 1 no aviso de boot: do Lilo, o Kernel antigo ser carregado, caso digitar 2 o novo Kernel
ser carregado. Para detalhes veja Criando o arquivo de configurao do LILO, Seo 6.1.1 e Um
Guia Foca GNU/Linux

144

exemplo do arquivo de configurao lilo.conf, Seo 6.1.3.


5.Execute o comando lilo para gravar o novo setor de boot para o disco rgido.
6.Reinicie o computador
7.Carregue o novo Kernel escolhendo a opo 2 no aviso de boot: do Lilo. Caso tiver problemas, escolha
a opo 1 para iniciar com o Kernel antigo e verifique os passos de configurao (o arquivo lilo.conf foi
modificado corretamente?.
Em alguns casos (como nos Kernels empacotados em distribuies GNU/Linux) o cdigo fonte do Kernel
gravado em um diretrio chamado Kernel-source-xx.xx.xx. recomendvel fazer um link com um diretrio
GNU/Linux, pois o padro usado pelas atualizao do cdigo fonte atravs de patches (veja Aplicando Patches
no Kernel, Seo 16.13).
Para criar o link simblico, entre em /usr/src e digite: ln -s Kernel-source-xx.xx.xx linux.
Se quiser mais detalhes sobre a compilao do Kernel, consulte o documento Kernel-howto.

16.12 Arquivos relacionados com o Kernel e Mdulos


Esta seo descreve os arquivos usados pelo Kernel e mdulos, a funo de cada um no sistema, a sintaxe, etc.

16.12.1 /etc/modules
A funo deste arquivo carregar mdulos especificados na inicializao do sistema e mant-los carregado todo
o tempo. til para mdulos de placas de rede que precisam ser carregados antes da configurao de rede feita
pela distribuio e no podem ser removidos quando a placa de rede estiver sem uso (isto retiraria seu
computador da rede).
Seu contedo uma lista de mdulos (um por linha) que sero carregados na inicializao do sistema. Os
mdulos carregados pelo arquivo /etc/modules pode ser listados usando o comando lsmod (veja lsmod, Seo
16.5.
Se o parmetro auto estiver especificado como um mdulo, o kmod ser ativado e carregar os mdulos
somente em demanda, caso seja especificado noauto o programa kmod ser desativado. O kmod ativado por
padro nos nveis de execuo 2 ao 5.
Ele pode ser editado em qualquer editor de textos comum ou modificado automaticamente atravs do utilitrio
modconf.

16.12.2 modules.conf
O arquivo /etc/modules.conf permite controlar as opes de todos os mdulos do sistema. Ele consultado
pelos programas modprobe e depmod. As opes especificadas neste arquivo facilita o gerenciamento de
mdulos, evitando a digitao de opes atravs da linha de comando.
Note que recomendado o uso do utilitrio modconf para configurar quaisquer mdulos em seu sistema e o
utilitrio update-modules para sincronizao dos arquivos gerados pelo modconf em /etc/modutils com o
/etc/modules.conf (geralmente isto feito automaticamente aps o uso do modconf). Por este motivo no
recomendvel modifica-lo manualmente, a no ser que seja um usurio experiente e saiba o que est fazendo.
Veja modconf, Seo 16.10
Por exemplo: adicionando as linhas:
alias sound sb
options sb io=0x220 irq=5 dma=1 dma16=5 mpuio=0x330
permitir que seja usado somente o comando modprobe sb para ativar a placa de som.

16.13 Aplicando Patches no Kernel


Patches so modificaes geradas pelo programa diff em que servem para atualizar um programa ou texto. Este
recurso muito til para os desenvolvedores, pois podem gerar um arquivo contendo as diferenas entre um
programa antigo e um novo (usando o comando diff) e enviar o arquivo contendo as diferenas para outras
pessoas.
As pessoas interessadas em atualizar o programa antigo, podem simplesmente pegar o arquivo contendo as
diferenas e atualizar o programa usando o patch.
Isto muito usado no desenvolvimento do Kernel do GNU/Linux em que novas verses so lanadas
freqentemente e o tamanho Kernel completo compactado ocupa cerca de 18MB. Voc pode atualizar seu
Kernel pegando um patch seguinte a verso que possui em ftp://ftp.Kernel.org.
Para aplicar um patch que atualizar seu Kernel 2.2.13 para a verso 2.2.14 voc deve proceder da seguinte
forma:
Descompacte o cdigo fonte do Kernel 2.2.13 em /usr/src/linux ou certifique-se que existe um link
simblico do cdigo fonte do Kernel para /usr/src/linux.
Guia Foca GNU/Linux

145

Copie o arquivo patch-2.2.14.gz de ftp://ftp.Kernel.org para /usr/src.


Use o comando gzip -dc patch-2.2.14|patch -p0 -N -E para atualizar o cdigo fonte em /usr/src/linux para a
verso 2.2.14.
Alternativamente voc pode primeiro descompactar o arquivo patch-2.2.14.gz com o gzip e usar o comando
patch -p0 -N -E <patch-2.2.14 para atualizar o cdigo fonte do Kernel. O GNU/Linux permite que voc
obtenha o mesmo resultado atravs de diferentes mtodos, a escolha somente sua.
Caso deseja atualizar o Kernel 2.2.10 para 2.2.14, como no exemplo acima, voc dever aplicar os patches em
seqncia (do patch 2.2.11 ao 2.2.14). Vale a pena observar se o tamanho total dos patches ultrapassa ou chega
perto o tamanho do Kernel completo.

Guia Foca GNU/Linux

146

Captulo 17 Arquivos e daemons de Log


A atividade dos programas so registradas em arquivos localizados em /var/log . Estes arquivos de registros so
chamados de logs e contm a data, hora e a mensagem emitida pelo programa (violaes do sistema, mensagens
de error, alerta e outros eventos) entre outros campos. Enfim, muitos detalhes teis ao administrador tanto para
acompanhar o funcionamento do seu sistema, comportamento dos programas ou ajudar na soluo e preveno
de problemas.
Alguns programas como o Apache, exim, ircd e squid criam diversos arquivos de log e por este motivo estes so
organizados em sub-diretrios (a mesma tcnica usada nos arquivos de configurao em /etc, conforme a
padro FHS atual).

17.1 Formato do arquivo de log


Um arquivo de log normalmente composto pelos seguintes campos:
Data|Hora|Mquina|daemon|mensagem
O campo mquina o nome do computador que registrou a mensagem (a mquina pode atuar como um servidor
de logs registrando mensagens de diversos computadores em sua rede). O campo daemon indica qual programa
gravou a mensagem.
O uso dos utilitrios do console pode ajudar muito na pesquisa e monitorao dos logs, por exemplo, para obter
todas as mensagens do daemon Kernel da estao de trabalho wrk1, eliminando os campos "wrk1" e "Kernel":
cat /var/log/*|grep 'wrk1'|grep 'Kernel'|awk '{print $1 $2 $3 $6 $7 $8 $9 $10 $11 $12}'
Os parmetros "$1", "$2" do comando awk indica que campos sero listados, (omitimos $4 e $5 que so
respectivamente "wrk1" e "Kernel").

17.2 Daemons de log do sistema


Os daemons de log do sistema registram as mensagens de sada do Kernel (klogd) e sistema (syslogd) nos
arquivos em /var/log .
A classificao de qual arquivo em /var/log receber qual tipo de mensagem controlado pelo arquivo de
configurao /etc/syslog.conf atravs de facilidades e nveis (veja Arquivo de configurao syslog.conf, Seo
17.2.1.1 para detalhes).

17.2.1 syslogd
Este daemon controla o registro de logs do sistema.
syslogd [opes]
Opes:
-f - Especifica um arquivo de configurao alternativo ao /etc/syslog.conf.
-h - Permite redirecionar mensagens recebidas a outros servidores de logs especificados.
-l [computadores] - Especifica um ou mais computadores (separados por ":") que devero ser registrados
somente com o nome de mquina ao invs do FQDN (nome completo, incluindo domnio).
-m [minutos] - Intervalo em minutos que o syslog mostrar a mensagem --MARK--. O valor padro
padro 20 minutos, 0 desativa.
-n - Evita que o processo caia automaticamente em background. Necessrio principalmente se o syslogd
for controlado pelo init.
-p [soquete] - Especifica um soquete UNIX alternativo ao invs de usar o padro /dev/log.
-r - Permite o recebimento de mensagens atravs da rede atravs da porta UDP 514. Esta opo til para
criar um servidor de logs centralizado na rede. Por padro, o servidor syslog rejeitar conexes externas.
-s [domnios] - Especifica a lista de domnios (separados por ":") que devero ser retirados antes de
enviados ao log.
Na distribuio Debian, o daemon syslogd iniciado atravs do script /etc/init.d/sysklogd.

17.2.1.1 Arquivo de configurao syslog.conf


O arquivo de configurao /etc/syslog.conf possui o seguinte formato:
facilidade.nvel
destino
A facilidade e nvel so separadas por um "." e contm parmetros que definem o que ser registrado nos
arquivos de log do sistema:
facilidade - usada para especificar que tipo de programa est enviando a mensagem. Os seguintes nveis
Guia Foca GNU/Linux

147

so permitidos (em ordem alfabtica):


auth - Mensagens de segurana/autorizao ( recomendvel usar authpriv ao invs deste).
authpriv - Mensagens de segurana/autorizao (privativas).
cron - Daemons de agendamento (cron e at).
daemon - Outros daemons do sistema que no possuem facilidades especficas.
ftp - Daemon de ftp do sistema.
kern - Mensagens do Kernel.
lpr - Subsistema de impresso.
local0 a local7 - Reservados para uso local.
mail - Subsistema de e-mail.
news - Subsistema de notcias da USENET.
security - Sinnimo para a facilidade auth (evite usa-la).
syslog - Mensagens internas geradas pelo syslogd.
user - Mensagens genricas de nvel do usurio.
uucp - Subsistema de UUCP.
* - Confere com todas as facilidades.
Mais de uma facilidade pode ser especificada na mesma linha do syslog.conf separando-as com ",".
nvel - Especifica a importncia da mensagem. Os seguintes nveis so permitidos (em ordem de
importncia invertida; da mais para a menos importante):
emerg - O sistema est inutilizvel.
alert - Uma ao deve ser tomada imediatamente para resolver o problema.
crit - Condies crticas.
err - Condies de erro.
warning - Condies de alerta.
notice - Condio normal, mas significante.
info - Mensagens informativas.
debug - Mensagens de depurao.
* - Confere com todos os nveis.
none - Nenhuma prioridade.
Alm destes nveis os seguintes sinnimos esto disponveis:

error - Sinnimo para o nvel err.

panic - Sinnimo para o nvel emerg.

warn - Sinnimo para o nvel warning.

destino - O destino das mensagens pode ser um arquivo, um pipe (se iniciado por um
"|"), um computador remoto (se iniciado por uma "@"), determinados usurios do sistema (especificando os
logins separados por vrgula) ou para todos os usurios logados via wall (usando "*").
Todas as mensagens com o nvel especificado e superiores a esta especificadas no syslog.conf sero registradas,
de acordo com as opes usadas. Conjuntos de facilidades e nveis podem ser agrupadas separando-as por ";".
OBS1: Sempre use TABS ao invs de espaos para separar os parmetros do syslog.conf.
OBS2: Algumas facilidades como security, emitem um beep de alerta no sistema e enviam uma mensagem para
o console, como forma de alerta ao administrador e usurios logados no sistema.
Existem ainda 4 caracteres que garantes funes especiais: "*", "=", "!" e "-":
"*" - Todas as mensagens da facilidade especificada sero redirecionadas.
"=" - Somente o nvel especificado ser registrado.
"!" - Todos os nveis especificados e maiores NO sero registrados.
"-" - Pode ser usado para desativar o sync imediato do arquivo aps sua gravao.
Os caracteres especiais "=" e "!" podem ser combinados em uma mesma regra.
Exemplo: Veja abaixo um exemplo de um arquivo /etc/syslog.conf padro de sistemas Debian
#
# Primeiro alguns arquivos de log padres. Registrados por facilidade
#
auth,authpriv.*
/var/log/auth.log
*.*;auth,authpriv.none
-/var/log/syslog
cron.*
/var/log/cron.log
daemon.*
-/var/log/daemon.log
Guia Foca GNU/Linux

148

kern.*
-/var/log/kern.log
lpr.*
-/var/log/lpr.log
mail.*
/var/log/mail.log
user.*
-/var/log/user.log
uucp.*
-/var/log/uucp.log
#
# Registro de logs do sistema de mensagens. Divididos para facilitar
# a criao de scripts para manipular estes arquivos.
#
mail.info
-/var/log/mail.info
mail.warn
-/var/log/mail.warn
mail.err
/var/log/mail.err
# Registro para o sistema de news INN
#
news.crit
/var/log/news/news.crit
news.err
/var/log/news/news.err
news.notice
-/var/log/news/news.notice
#
# Alguns arquivos de registro "pega-tudo".
# So usadas "," para especificar mais de uma prioridade (por
# exemplo, "auth,authpriv.none") e ";" para especificar mais de uma
# facilidade.nvel que ser gravada naquele arquivo.
# Isto permite deixar as regras consideravelmente menores e mais legveis
#
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none
-/var/log/messages
#
# Emergncias so enviadas para qualquer um que estiver logado no sistema. Isto
# feito atravs da especificao do "*" como destino das mensagens e so
# enviadas atravs do comando wall.
#
*.emerg
*
#
# Eu gosto de ter mensagens mostradas no console, mas somente em consoles que
# no utilizo.
#
#daemon,mail.*;\
#
news.=crit;news.=err;news.=notice;\
#
*.=debug;*.=info;\
#
*.=notice;*.=warn
/dev/tty8
# O pipe /dev/xconsole usado pelo utilitrio "xconsole". Para usa-lo,
# voc deve executar o "xconsole" com a opo "-file":
#
# $ xconsole -file /dev/xconsole [...]
#
# NOTA: ajuste as regras abaixo, ou ficar maluco se tiver um um site
# muito movimentado...
#
daemon.*;mail.*;\
news.crit;news.err;news.notice;\
*.=debug;*.=info;\
*.=notice;*.=warn
|/dev/xconsole
# A linha baixo envia mensagens importantes para o console em que
# estamos trabalhando logados (principalmente para quem gosta de ter
# controle total sobre o que est acontecendo com seu sistema).
Guia Foca GNU/Linux

149

*.err;kern.debug;auth.notice;mail.crit

/dev/console

17.2.2 klogd
Este daemon controla o registro de mensagens do Kernel. Ele monitora as mensagens do Kernel e as envia para
o daemon de monitoramento syslogd, por padro.
klogd [opes]
Opes:
-d - Ativa o modo de depurao do daemon
-f [arquivo] - Envia as mensagens do Kernel para o arquivo especificado ao invs de enviar ao daemon do
syslog
-i - Envia um sinal para o daemon recarregar os smbolos de mdulos do Kernel.
-I - Envia um sinal para o daemon recarregar os smbolos estticos e de mdulos do Kernel.
-n - Evita a operao em segundo plano. til se iniciado pelo init
-k [arquivo] - Especifica o arquivo que contm os smbolos do Kernel. Exemplos deste arquivo esto
localizados em /boot/System.map-xx.xx.xx.
A especificao de um arquivo com a opo -k necessria se desejar que sejam mostradas a tabela de smbolos
ao invs de endereos numricos do Kernel.

17.3 logger
Este comando permite enviar uma mensagem nos log do sistema. A mensagem enviada aos logs via daemon
syslogd ou via soquete do sistema, possvel especificar a prioridade, nvel, um nome identificando o processo,
etc. Seu uso muito til em shell scripts ou em outros eventos do sistema.
logger [opes] [mensagem]
Onde:
mensagem - Mensagem que ser enviada ao daemon syslog
Opes:
-i - Registra o PID do processo
-s - Envia a mensagem ambos para a sada padro (STDOUT) e syslog.
-f [arquivo] - Envia o contedo do arquivo especificado como mensagem ao syslog.
-t [nome] - Especifica o nome do processo responsvel pelo log que ser exibido antes do PID na
mensagem do syslog.
-p [prioridade] - Especifica a prioridade da mensagem do syslog, especificada como facilidade.nvel. Veja
os tipos de prioridade/nveis em Arquivo de configurao syslog.conf, Seo 17.2.1.1. O valor padro
prioridade.nvel user.notice
Mais detalhes sobre o funcionamento sobre o daemon de log do sistema syslogd, pode ser encontrado em
syslogd, Seo 17.2.1
Exemplos: logger -i -t focalinux Teste teste teste, logger -i -f /tmp/mensagem -p security.emerg

17.4 Programas teis para monitorao e gerenciamento de arquivos de


logs
17.4.1 logcheck
um programa usado para enviar um e-mail periodicamente ao administrador do sistema (atravs do cron ou
outro daemon com a mesma funo) alertando sobre os eventos que ocorreram desde a ltima execuo do
programa. As mensagens do logcheck so tratadas por arquivos em /etc/logcheck e organizadas em categorias
antes de ser enviada por e-mail, isto garante muita praticidade na interpretao dos eventos ocorridos no
sistema. As categorias so organizadas da mais importantes para a menos importante, e vo desde "Hacking em
andamento" (providncias devem ser tomadas imediatamente para resolver a situao) at "eventos anormais do
sistema" (mensagens de inicializao, mensagens dos daemons do sistema, etc.).
O tipo de mensagem que ser includa/ignorada nos logs enviados podem ser personalizadas pelo administrador
do sistema atravs dos arquivos/diretrios dentro de /etc/logcheck. Nomes de arquivos/diretrios contendo a
palavra "ignore" so usados para armazenar expresses regulares que NO sero enviadas pelo logcheck.
permitido o uso de expresses regulares perl/sed para especificar as mensagens nos arquivos de log.

17.4.2 logrotate
Guia Foca GNU/Linux

150

Usado para fazer backups dos logs atuais do sistema (programado via cron, ou outro daemon com a mesma
funo) e criando novos arquivos de logs que sero usados pelo sistema. Opcionalmente os arquivos de logs
antigos sero compactados para diminuir a utilizao de espao em disco ou enviados por e-mail ao
administrador. A rotao dos arquivos de logs proporciona maior agilidade quando precisamos encontrar algum
detalhe til (que seria mais difcil de se achar em um arquivo de log de 10MB ou maior).
A rotao de logs feita de acordo com o tamanho do arquivo de logs especificado, mas a opo -f pode ser
usada para "forar" a rotao de logs. A opo -d fornece mais detalhes sobre o que o logrotate est fazendo. Seu
arquivo principal de configurao o /etc/logrotate.conf. Um modelo deste tipo de arquivo o seguinte:
#### Estas opes afetam globalmente o funcionamento do logrotate
# roda os arquivos de log semanalmente
weekly
# mantm as ltimas 4 cpias de logs anteriores
rotate 4
# Erros de no existncia dos logs so enviados para o usurio root
mail root
# Cria novos arquivos de log (vazios) aps rodar os antigos
create
# Descomente isso se desejar seus arquivos de logs compactados. O parmetro
# delaycompress usado para que o primeiro log rodado seja mantido
# descompactado
compress
delaycompress
# Executam os scripts em prerotate e postrotate a cada vez que os logs
# forem rodados.
nosharedscripts
# Definimos um diretrio que poder conter definies individuais para
# diversos servios no sistema, eles podem ir neste arquivo mas
# diversas configuraes individuais podem deixar a interpretao
# deste arquivo confusa.
include /etc/logrotate.d
# Define opes especficas para a rotao mensal de /var/log/wtmp, o novo arquivo
# de log somente ser rodados caso tenha mais de 5MB (size 5M), ser criado
# com a permisso 0664 e pertencer ao usurio root grupo utmp
# (create 0664 root utmp) e ser mantida somente uma cpia do log anterior.
# (rotate 1)
/var/log/wtmp {
monthly
create 0664 root utmp
size 5M
rotate 1
}
# Define opes especficas para a rotao mensal de /var/log/btmp, se o arquivo
# no existir no ser necessrio gerar alertas (missinkok) que sero enviados
# ao administrador. O novo arquivo criado dever ter a permisso 0664 com o
# dono root e grupo utmp (create 0664 root utmp) e ser
# mantida somente uma cpia do log anterior.
/var/log/btmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
# Define opes especficas para a rotao mensal de /var/log/lastlog, o novo
# arquivo ser criado com a permisso 0664 com o dono root e grupo
# utmp e ser mantida somente uma cpia do arquivo de log anterior
# (rotate 1).
/var/log/lastlog {
missingok
monthly
create 0664 root utmp
Guia Foca GNU/Linux

151

rotate 1
}
# Define opes especficas para a rotao diria de /var/log/messages, o
# arquivo ser rodado se atingir o tamanho de 1Mb, ento o
# novo arquivo ser criado com as mesmas permisses do arquivo anterior.
# O comando killall -1 syslogd ser executado aps a rotao
# para que o daemon syslogd funcione corretamente mas somente uma vez
# durante a rotao de vrios arquivos de logs (sharedscripts).
# Sero mantidas as 10 ltimas cpias do arquivo /var/log/messages
# compactadas (o parmetro compress foi especificado na seo global deste
# arquivo de configurao).
/var/log/messages {
daily
size 1M
sharedscripts
postrotate
/sbin/killall -1 syslogd
endscript
rotate 10
}
# Define opes especficas para a rotao mensal dos arquivos em /var/log/mirror/*,
# a falta desses arquivos no precisa ser notificada ao administrador (missingok),
# mesmo assim o parmetro "nomail" evitar isto de qualquer forma. Os logs
# rodados no sero compactados (nocompress) e sero mantidas as ltimas 7 cpias
# dos logs.
/var/log/mirror/* {
montly
nomail
missingok
nocompress
rotate 7
}
# logs especficos do sistema podem ser configurados aqui. As opes padres e
# definidas na seo global deste arquivo sero usadas para processar os
# arquivos de logs restantes.
Qualquer definio de parmetro especificado no arquivo de configurao, substituir as definies anteriores.
Quando o nmero mximo de logs mantidos pela opo rotate [num] atingida, os logs eliminados sero
enviados para o usurio especificado na opo mail [email]. A utilizao da diretiva nomail evita isso.
OBS: importante enviar um sinal HUP ao programa que grava para aquele arquivo de log para que no
ocorram problemas aps a rotao, isto feito usando o parmetro postrotate.

17.5 Configurando um servidor de logs


As mensagens das mquinas de sua rede podem ser centralizadas em uma nica mquina, isto facilita o
gerenciamento, anlise e soluo de problemas que ocorrem nas mquinas da rede. Mais importante ainda que
qualquer invaso a estao de trabalho no ser registrada localmente (podendo ser apagada posteriormente pelo
invasor, isso comum).
Configurando o servidor de logs
Adicione a opo -r ao iniciar o daemon syslogd para aceitar logs enviados das mquinas clientes. Na
distribuio Debian modifique o arquivo /etc/init.d/sysklogd colocando a opo -r na varivel SYSLOGD e
reinicie o servio usando ./sysklogd restart.
Adicionalmente podero ser usadas as opes -l mquina ( um "L" minsculo no uma letra "I") para
registrar o nome FQDN da mquina e -h para redirecionar conexes a outros servidores de logs (veja syslogd,
Seo 17.2.1).
Configurando mquinas cliente
Modifique o arquivo /etc/syslogd.conf (veja Arquivo de configurao syslog.conf, Seo 17.2.1.1 colocando o
nome do computador seguido de "@" para redirecionar as mensagens dos logs:
auth,authpriv.*
@servlog
*.*;auth,authpriv.none
@servlog
cron.*
@servlog
Guia Foca GNU/Linux

152

daemon.*
@servlog
kern.*
-/var/log/kern.log
kern.*
@servlog
lpr.*
@servlog
mail.*
/var/log/mail.log
user.*
-/var/log/user.log
user.*
@servlog
uucp.*
-/var/log/uucp.log
E reinicie o daemon syslogd da mquina cliente para re-ler o arquivo de configurao: killall -HUP syslogd ou
/etc/init.d/sysklogd restart.
OBS1: Mantenha o relgio do servidor de logs sempre atualizado (use o chrony ou outro daemon de
sincronismo NTP para automatizar esta tarefa).
OBS2: interessante compilar um daemon syslogd personalizado modificando o nome e localizao do arquivo
/etc/syslog.conf para enganar possveis invasores. Isto pode ser modificado no arquivo syslogd.c na linha:
#define _PATH_LOGCONF "/etc/syslog.conf"
Use a imaginao para escolher um nome de arquivo e localizao que dificulte a localizao deste arquivo.
OBS3: Em uma grande rede, recomendvel configurar um computador dedicado como servidor de log
(desativando qualquer outro servio) e configurar o iptables para aceitar somente o trfego indo para a porta
UDP 514 (syslogd):
iptables -P INPUT DROP
iptables -A INPUT -p udp --dport 514 -j ACCEPT

Guia Foca GNU/Linux

153

Captulo 18 Compactadores
Esta seo explica o que so e como usar programas compactadores no GNU/Linux, as caractersticas de cada
um, como identificar um arquivo compactado e como descompactar um arquivo compactado usando o programa
correspondente.
A utilizao de arquivos compactados mtodo til principalmente para reduzir o consumo de espao em disco
ou permitir grandes quantidades de texto serem transferidas para outro computador atravs de disquetes.

18.1 O que fazem os compactadores/descompactadores?


Compactadores so programas que diminuem o tamanho de um arquivo (ou arquivos) atravs da substituio de
caracteres repetidos. Para entender melhor como eles funcionam, veja o prximo exemplo:
compactadores compactam e deixam arquivos compactados.
-- aps a compactao da frase -%dores %m e deixam arquivos %dos
O que aconteceu realmente foi que a palavra compacta se encontrava 3 vezes na frase acima, e foi substituda
por um sinal de %. Para descompactar o processo seria o contrrio: Ele substituiria % por compacta e ns temos
a frase novamente restaurada.
Voc deve ter notado que o tamanho da frase compactada caiu quase pela metade. A quantidade de compactao
de um arquivo chamada de taxa de compactao. Assim se o tamanho do arquivo for diminudo a metade aps
a compactao, dizemos que conseguiu uma taxa de compactao de 2:1 (l-se dois para um), se o arquivo
diminuiu 4 vezes, dizemos que conseguiu uma compactao de 4:1 (quatro para um) e assim por diante.
Para controle dos caracteres que so usados nas substituies, os programas de compactao mantm cabealhos
com todas as substituies usadas durante a compactao. O tamanho do cabealho pode ser fixo ou definido
pelo usurio, depende do programa usado na compactao.
Este um exemplo bem simples para entender o que acontece durante a compactao, os programas de
compactao executam instrues muito avanadas e cdigos complexos para atingir um alta taxa de
compactao.
Observaes:
No possvel trabalhar diretamente com arquivos compactados! necessrio descompactar o arquivo
para usa-lo. Note que alguns programas atualmente suportam a abertura de arquivos compactados, mas na
realidade eles apenas simplificam a tarefa descompactando o arquivo, abrindo e o recompactando assim que
o trabalho estiver concludo.
Arquivos de texto tem uma taxa de compactao muito melhor que arquivos binrios, porque possuem
mais caracteres repetidos. normal atingir taxas de compactao de 10 para 1 ou mais quando se compacta
um arquivo texto. Arquivos binrios, como programas, possuem uma taxa de compactao mdia de 2:1.
Note que tambm existem programas compactadores especialmente desenvolvidos para compactao de
msicas, arquivos binrios, textos.

18.1.1 Tipos de compactao


Existem basicamente dois tipos de compactao, a compactao sem perdas e a compactao com perdas.
Os exemplos a seguir tentam explicar de forma simples os conceitos envolvidos.
A compactao sem perdas, como o prprio nome diz no causa nenhuma perda nas informaes contidas no
arquivo. Quando voc compacta e descompacta um arquivo, o contedo o mesmo do original.
A compactao com perdas um tipo especfico de compactao desenvolvido para atingir altas taxas, porm
com perdas parciais dos dados. aplicada a tipos de arquivos especiais, como msicas e imagens ou arquivos
que envolvam a percepo humana.
Sabe-se que o ouvido humano no to sensvel a determinados sons e freqncias, ento a compactao de um
arquivo de msica poderia deixar de gravar os sons que seriam pouco percebidos, resultando em um arquivo
menor. Uma compactao do tipo ogg ou mp3 utiliza-se destes recursos. O arquivo resultante muito menor que
o original, porm alguns dados sonoros so perdidos. Voc s notaria se estivesse reproduzindo a msica em um
equipamento de alta qualidade e se tivesse um ouvido bem aguado. Para efeitos prticos, voc est ouvindo a
mesma msica e economizando muito espao em disco.
Outro exemplo de compactao com perdas so as imagens jpg. Imagine que voc tem uma imagem com 60000
tons de cor diferentes, mas alguns tons so muito prximos de outros, ento o compactador resume para 20000
tons de cor e a imagem ter 1/3 do tamanho original e o nosso olho conseguir entender a imagem sem
problemas e quase no perceber a diferena. Exemplos de extenses utilizadas em imagens compactadas so
jpg, png, gif.
Guia Foca GNU/Linux

154

Apesar das vantagens da grande taxa de compactao conseguida nos processos com perdas, nem sempre
podemos utiliz-lo. Quando compactamos um texto ou um programa, no podemos ter perdas, seno o nosso
texto sofre alteraes ou o programa no executa. Nem mesmo podemos tem perdas quando compactamos
imagens ou musicas que sero utilizadas em processos posteriores de masterizao, mixagem ou impresso em
alta qualidade.

18.2 Extenses de arquivos compactados


As extenses identificam o tipo de um arquivo e assim o programa o programa necessrio para trabalhar com
aquele tipo de arquivo. Existem dezenas de extenses que identificam arquivos compactados. Quando um
arquivo (ou arquivos) compactado, uma extenso correspondente ao programa usado adicionada ao nome do
arquivo (caso o arquivo seja compactado pelo gzip receber a extenso .gz, por exemplo). Ao descompactar
acontece o contrrio: a extenso retirada do arquivo. Abaixo segue uma listagem de extenses mais usadas e
os programas correspondentes:
.gz - Arquivo compactado pelo gzip. Use o programa gzip para descompacta-lo (para detalhes veja gzip,
Seo 18.3). .bz2 - Arquivo compactado pelo bzip2. Use o programa bzip2 para descompacta-lo (para
detalhes veja bzip2, Seo 18.7).
.Z - Arquivo compactado pelo programa compress. Use o programa uncompress para descompacta-lo.
.zip - Arquivo compactado pelo programa zip. Use o programa unzip para descompacta-lo.
.rar - Arquivo compactado pelo programa rar. Use o programa rar para descompacta-lo.
.tar.gz - Arquivo compactado pelo programa gzip no utilitrio de arquivamento tar. Para descompacta-lo,
voc pode usar o gzip e depois o tar ou somente o programa tar usando a opo -z. Para detalhes veja gzip,
Seo 18.3 e tar, Seo 18.6.
.tgz - Abreviao de .tar.gz.
.tar.bz2 - Arquivo compactado pelo programa bzip2 no utilitrio de arquivamento tar. Para descompactalo, voc pode usar o bzip2 e depois o tar ou somente o programa tar usando a opo -j. Para detalhes veja
bzip2, Seo 18.7 e tar, Seo 18.6.
.tar.Z - Arquivo compactado pelo programa compress no utilitrio de arquivamento tar. Para descompactalo, voc pode usar o uncompress e depois o tar ou somente o programa tar usando a opo -Z. Para detalhes
veja tar, Seo 18.6.

18.3 gzip
praticamente o compactador padro do GNU/Linux, possui uma tima taxa de compactao e velocidade. A
extenso dos arquivos compactados pelo gzip a .gz, na verso para DOS, Windows NT usada a extenso .z.
gzip [opes] [arquivos]
Onde:
arquivos - Especifica quais arquivos sero compactados pelo gzip. Caso seja usado um -, ser assumido
a entrada padro. Curingas podem ser usados para especificar vrios arquivos de uma s vez (veja
Curingas, Seo 2.12).
Opes:
-d, --decompress [arquivo] - Descompacta um arquivo.
-f - Fora a compactao, compactando at mesmo links.
-l [arquivo] - Lista o contedo de um arquivo compactado pelo gzip.
-r - Compacta diretrios e sub-diretrios.
-c [arquivo] - Descompacta o arquivo para a sada padro.
-t [arquivo] - Testa o arquivo compactado pelo gzip.
-[num], --fast, --best - Ajustam a taxa de compactao/velocidade da compactao. Quanto melhor a taxa
menor a velocidade de compactao e vice versa. A opo --fast permite uma compactao rpida e
tamanho do arquivo maior. A opo --best permite uma melhor compactao e uma velocidade menor.
O uso da opo -[nmero] permite especificar uma compactao individualmente usando nmeros entre 1
(menor compactao) e 9 (melhor compactao). til para buscar um bom equilibro entre taxa de
compactao/velocidade (especialmente em computadores muito lentos).
Quando um arquivo compactado pelo gzip, automaticamente acrescentada a extenso .gz ao seu nome.
O gzip tambm reconhece arquivos compactados pelos programas zip, compress, compress -H e pack. As
permisses de acesso dos arquivos so tambm armazenadas no arquivo compactado.
Exemplos:
gzip -9 texto.txt - Compacta o arquivo texto.txt usando a compactao mxima (compare o tamanho do
arquivo compactado usando o comando ls -la).
Guia Foca GNU/Linux

155

gzip -d texto.txt.gz - Descompacta o arquivo texto.txt


gzip -c texto.txt.gz - Descompacta o arquivo texto.txt para a tela
gzip -9 *.txt - Compacta todos os arquivos que terminam com .txt
gzip -t texto.txt.gz - Verifica o arquivo texto.txt.gz.

18.4 zip
Utilitrio de compactao compatvel com pkzip (do DOS) e trabalha com arquivos de extenso .zip. Possui
uma tima taxa de compactao e velocidade no processamento dos arquivos compactados (comparando-se ao
gzip).
zip [opes] [arquivo-destino] [arquivos-origem]
Onde:
arquivo-destino - Nome do arquivo compactado que ser gerado.
arquivos-origem - Arquivos/Diretrios que sero compactados. Podem ser usados curingas para
especificar mais de um arquivo de uma s vez (veja Curingas, Seo 2.12).
Opes:
-r - Compacta arquivos e sub-diretrios.
-e - Permite encriptar o contedo de um arquivo .zip atravs de senha. A senha ser pedida no momento da
compactao.
-f - Somente substitui um arquivo compactado existente dentro do arquivo .zip somente se a verso mais
nova que a atual. No acrescenta arquivos ao arquivo compactado. Deve ser executado no mesmo diretrio
onde o programa zip foi executado anteriormente.
-F - Repara um arquivo .zip danificado.
-[NUM] - Ajusta a qualidade/velocidade da compactao. Pode ser especificado um nmero de 1 a 9. O 1
permite mnima compactao e mxima velocidade, 9 permite uma melhor compactao e menor
velocidade.
-i [arquivos] - Compacta somente os [arquivos] especificados.
-j - Se especificado, no armazena caminhos de diretrios.
-m - Apaga os arquivos originais aps a compactao.
-T [arquivo] - Procura por erros em um arquivo .zip. Caso sejam detectados problemas, utilize a opo -F
para corrigi-los.
-y - Armazena links simblicos no arquivo .zip. Por padro, os links simblicos so ignorados durante a
compactao.
-k [arquivo] - Modifica o [arquivo] para ter compatibilidade total com o pkzip do DOS.
-l - Converte saltos de linha UNIX (LF) para o formato CR+LF (usados pelo DOS). Use esta opo com
arquivos Texto.
-ll - Converte saltos de linha DOS (CR+LF) para o formato UNIX (LF). Use esta opo com arquivos
texto.
-n [extensao] - No compacta arquivos identificados por [extenso]. Ele armazenado sem compactao
no arquivo .zip, muito til para uso com arquivos j compactados.
Caso sejam especificados diversas extenses de arquivos, elas devem ser separadas por : - Por exemplo, zip
-n .zip:.tgz arquivo.zip *.txt.
-q - No mostra mensagens durante a compactao do arquivo.
-u - Atualiza/adiciona arquivos ao arquivo .zip
-X - No armazena detalhes de permisses, UID, GID e datas dos arquivos.
-z - Permite incluir um comentrio no arquivo .zip.
Caso o nome de arquivo de destino no termine com .zip, esta extenso ser automaticamente adicionada. Para a
descompactao de arquivos .zip no GNU/Linux, necessrio o uso do utilitrio unzip.
Exemplos:
zip textos.zip *.txt - Compacta todos os arquivos com a extenso .txt para o arquivo textos.zip (compare
o tamanho do arquivo compactado digitando ls -la).
zip -r textos.zip /usr/*.txt - Compacta todos os arquivos com a extenso .txt do diretrio /usr e subdiretrios para o arquivo textos.zip.
zip -9 textos.zip * - Compacta todos os arquivos do diretrio atual usando a compactao mxima para
o arquivo textos.zip.
zip -T textos.zip - Verifica se o arquivo textos.zip contm erros.

Guia Foca GNU/Linux

156

18.5 unzip
Descompacta arquivos .zip criados com o programa zip. Este programa tambm compatvel com arquivos
compactados pelo pkzip do DOS.
unzip [opes] [arquivo.zip] [arquivos-extrair] [-d diretrio]
Onde:
arquivo.zip - Nome do arquivo que deseja descompactar. Podem ser usados curingas para especificar
mais de um arquivo para ser descompactado.
arquivos-extrair - Nome dos arquivos (separados por espao) que sero descompactados do arquivo
.zip. Caso no seja especificado, assumido * (todos os arquivos sero
descompactados).
Se for usado -x arquivos, os arquivos especificados no sero descompactados. O
uso de curingas permitido.
-d diretrio - Diretrio onde os arquivos sero descompactados. Caso no for especificado, os arquivos
sero descompactados no diretrio atual.
Opes:
-c - Descompacta os arquivos para stdout (sada padro) ao invs de criar arquivos. Os nomes dos arquivos
tambm so mostrados (veja a opo -p).
-f - Descompacta somente arquivos que existam no disco e mais novos que os atuais.
-l - Lista os arquivos existentes dentro do arquivo .zip.
-M - Efetua uma pausa a cada tela de dados durante o processamento (a mesma funo do comando more).
-n - Nunca substitui arquivos j existentes. Se um arquivo existe ele pulado.
-o - Substitui arquivos existentes sem perguntar. Tem a funo contrria a opo -n.
-P [SENHA] - Permite descompactar arquivos .zip usando a [SENHA]. CUIDADO! qualquer usurio
conectado em seu sistema pode ver a senha digitada na linha de comando digitada.
-p - Descompacta os arquivos para stdout (sada padro) ao invs de criar arquivos. Os nomes dos arquivos
no so mostrados (veja a opo -c).
-q - No mostra mensagens.
-t - Verifica o arquivo .zip em busca de erros.
-u - Idntico a opo -f s que tambm cria arquivos que no existem no diretrio.
-v - Mostra mais detalhes sobre o processamento do unzip.
-z - Mostra somente o comentrio existente no arquivo.
Por padro o unzip tambm descompacta sub-diretrios caso o arquivo .zip tenha sido gerado com zip -r.
Exemplos:
unzip texto.zip - Descompacta o contedo do arquivo texto.zip no diretrio atual.
unzip texto.zip carta.txt - Descompacta somente o arquivo carta.txt do arquivo texto.zip.
unzip texto.zip -d /tmp/texto - Descompacta o contedo do arquivo texto.zip para o diretrio /tmp/texto.
unzip -l texto.zip - Lista o contedo do arquivo texto.zip.
unzip -t texto.zip - Verifica o arquivo texto.zip.

18.6 tar
Na verdade o tar no um compactador e sim um "arquivador" (ele junta vrios arquivos em um s), mas pode
ser usado em conjunto com um compactar (como o gzip ou zip) para armazena-los compactados. O tar tambm
muito usado para cpias de arquivos especiais ou dispositivos do sistema. comum encontrar arquivos com a
extenso .tar, .tar.gz, .tgz, .tar.bz2, .tar.Z, .tgZ, o primeiro um arquivo normal gerado pelo tar e todos os outros
so arquivos gerados atravs tar junto com um programa de compactao (gzip (.gz), bzip2 (.bz2) e compress
(.Z).
tar [opes] [arquivo-destino] [arquivos-origem]
Onde:
arquivo-destino - o nome do arquivo de destino. Normalmente especificado com a extenso .tar caso
seja usado somente o arquivamento ou .tar.gz/.tgz caso seja usada a compactao
(usando a opo -z).
arquivos-origem - Especifica quais arquivos/diretrios sero compactados.
Opes:
-c, --create - Cria um novo arquivo .tar
-t, --list - Lista o contedo de um arquivo .tar
-u, --update - Atualiza arquivos compactados no arquivo .tar
-f, --file [HOST:]F - Usa o arquivo especificado para gravao ou o dispositivo /dev/rmt0.
Guia Foca GNU/Linux

157

-j, --bzip2 - Usa o programa bzip2 para processar os arquivos do tar


-l, --one-file-system - No processa arquivos em um sistema de arquivos diferentes de onde o tar foi
executado.
-M, --multi-volume - Cria/lista/descompacta arquivos em mltiplos volumes. O uso de arquivos em
mltiplos volumes permite que uma grande cpia de arquivos que no cabe em um disquete, por exemplo,
seja feita em mais de um disquete.
-o - Grava o arquivo no formato VT7 ao invs do ANSI.
-O, --to-stdout - Descompacta arquivos para a sada padro ao invs de gravar em um arquivo.
--remove-files - Apaga os arquivos de origem aps serem processados pelo tar.
-R, --record-number - Mostra o nmero de registros dentro de um arquivo tar em cada mensagem.
--totals - Mostra o total de bytes gravados com a opo --create.
-v - Mostra os nomes dos arquivos enquanto so processados.
-V [NOME] - Inclui um [NOME] no arquivo tar.
-W, --verify - Tenta verificar o arquivo gerado pelo tar aps grava-lo.
-x - Extrai arquivos gerados pelo tar
-X [ARQUIVO] - Tenta apagar o [ARQUIVO] dentro de um arquivo compactado .tar.
-Z - Usa o programa compress durante o processamento dos arquivos.
-z - Usa o programa gzip durante o processamento dos arquivos.
--use-compress-program [PROGRAMA] - Usa o [PROGRAMA] durante o processamento dos arquivos.
Ele deve aceitar a opo -d.
-[0-7][lmh] - Especifica a unidade e sua densidade.
A extenso precisa ser especificada no arquivo de destino para a identificao correta:
1.
Arquivos gerados pelo tar precisam ter a extenso .tar
2.
Caso seja usada a opo -j para compactao, a extenso dever ser .tar.bz2
3.
Caso seja usada a opo -z para compactao, a extenso dever ser .tar.gz ou .tgz
4.
Caso seja usada a opo -Z para a compactao, a extenso dever ser .tar.Z ou .tgZ
5.
importante saber qual qual o tipo de compactador usado durante a gerao do arquivo .tar
pois ser necessrio especificar a opo apropriada para descompacta-lo (para detalhes veja Extenses de
arquivos compactados, Seo 18.2).
Exemplos:
tar -cf index.txt.tar index.txt - Cria um arquivo chamado index.txt.tar que armazenar o arquivo index.txt.
Voc pode notar digitando ls -la que o arquivo index.txt foi somente
arquivado (sem compactao), isto til para juntar diversos arquivos em um
s.
tar -xf index.txt.tar - Desarquiva o arquivo index.txt criado pelo comando acima.
tar -czf index.txt.tar.gz index.txt - O mesmo que o exemplo de arquivamento anterior, s que agora usado a
opo -z (compactao atravs do programa gzip). Voc agora pode notar
digitando ls -la que o arquivo index.txt foi compactado e depois arquivado
no arquivo index.txt.tar.gz (voc tambm pode chama-lo de index.txt.tgz
que tambm identifica um arquivo .tar compactado pelo gzip)
tar -xzf index.txt.tar.gz - Descompacta e desarquiva o arquivo index.txt.tar.gz criado com o comando acima.
gzip -dc index.tar.gz | tar -xf - - Faz o mesmo que o comando acima s que de uma forma diferente: Primeiro
descompacta o arquivo index.txt.tar.gz e envia a sada do arquivo
descompactado para o tar que desarquivar o arquivo index.txt.
tar -cjf index.txt.tar.bz2 index.txt - Arquiva o arquivo index.txt em index.txt.tar.bz2 compactando atravs do
bzip2 (opo -j).
tar -xjf index.txt.tar.bz2 - Descompacta e desarquiva o arquivo index.txt.tar.bz2 criado com o comando acima.
bzip2 -dc index.txt.tar.bz2 | tar -xf - Faz o mesmo que o comando acima s que de uma forma diferente:
Primeiro descompacta o arquivo index.txt.tar.bz2 e envia a sada do
arquivo descompactado para o tar que desarquivar o arquivo
index.txt.
tar -t index.txt.tar - Lista o contedo de um arquivo .tar.
tar -tz index.txt.tar.gz - Lista o contedo de um arquivo .tar.gz.

Guia Foca GNU/Linux

158

18.7 bzip2
um novo compactador que vem sendo cada vez mais usado porque consegue atingir a melhor compactao em
arquivos texto se comparado aos j existentes (em consequencia sua velocidade de compactao tambm
menor; quase duas vezes mais lento que o gzip). Suas opes so praticamente as mesmas usadas no gzip e voc
tambm pode usa-lo da mesma forma. A extenso dos arquivos compactados pelo bzip2 a .bz2
bzip2 [opes] [arquivos]
Onde:
arquivos - Especifica quais arquivos sero compactados pelo bzip2. Caso seja usado um -, ser
assumido a entrada padro. Curingas podem ser usados para especificar vrios arquivos de
uma s vez (veja Curingas, Seo 2.12).
Opes:
-d, --decompress [arquivo] - Descompacta um arquivo.
-f - Fora a compactao, compactando at mesmo links.
-l [arquivo] - Lista o contedo de um arquivo compactado pelo bzip2.
-r - Compacta diretrios e sub-diretrios.
-c [arquivo] - Descompacta o arquivo para a sada padro.
-t [arquivo] - Testa o arquivo compactado pelo bzip2.
-[num], --fast, --best - Ajustam a taxa de compactao/velocidade da compactao. Quanto melhor a taxa
menor a velocidade de compactao e vice versa. A opo --fast permite uma compactao rpida e
tamanho do arquivo maior. A opo --best permite uma melhor compactao e uma velocidade menor.
O uso da opo -[nmero] permite especificar uma compactao individualmente usando nmeros entre 1
(menor compactao) e 9 (melhor compactao). til para buscar um bom equilibro entre taxa de
compactao/velocidade (especialmente em computadores muito lentos).
Quando um arquivo compactado pelo bzip2, automaticamente acrescentada a extenso .bz2 ao seu nome. As
permisses de acesso dos arquivos so tambm armazenadas no arquivo compactado.
Exemplos:
bzip2 -9 texto.txt - Compacta o arquivo texto.txt usando a compactao mxima (compare o tamanho do
arquivo compactado usando o comando ls -la).
bzip2 -d texto.txt.bz2 - Descompacta o arquivo texto.txt
bzip2 -c texto.txt.bz2 - Descompacta o arquivo texto.txt para a sada padro (tela)
bzip2 -9 *.txt - Compacta todos os arquivos que terminam com .txt
bzip2 -t texto.txt.bz2 - Verifica o arquivo texto.txt.bz2.

18.8 rar
rar um compactador desenvolvido por Eugene Roshal e possui verses para GNU/Linux, DOS, Windows,
OS/2 e Macintosh. Trabalha com arquivos de extenso .rar e permite armazenar arquivos compactados em
vrios disquetes (mltiplos volumes). Se trata de um produto comercial, mas decidi coloca-lo aqui porque
possui boas verses Shareware e pode ser muito til em algumas situaes.
rar [aes] [opes] [arquivo-destino.rar] [arquivos-origem]
Onde:
arquivo-destino.rar - o nome do arquivo de destino
arquivos-origem - Arquivos que sero compactados. Podem ser usados curingas para especificar mais
de um arquivo.
Aes:
a - Compacta arquivos
x - Descompacta arquivos
d - Apaga arquivos especificados
t - Verifica o arquivo compactado em busca de erros.
c - Inclui comentrio no arquivo compactado
r - Repara um arquivo .rar danificado
l - Lista arquivos armazenados no arquivo compactado
u - Atualiza arquivos existentes no arquivo compactado.
m - Compacta e apaga os arquivos de origem (move).
e - Descompacta arquivos para o diretrio atual
p - Mostra o contedo do arquivo na sada padro
Guia Foca GNU/Linux

159

rr - Adiciona um registro de verificao no arquivo


s - Converte um arquivo .rar normal em arquivo auto-extractil. Arquivos auto-extracteis so teis para
enviar arquivos a pessoas que no tem o programa rar. Basta executar o arquivo e ele ser automaticamente
descompactado (usando o sistema operacional que foi criado). Note que esta opo requer que o arquivo
default.sfx esteja presente no diretrio home do usurio. Use o comando find para localiza-lo em seu
sistema.
Opes
o+ - Substitui arquivos j existentes sem perguntar
o- - No substitui arquivos existentes
sfx - Cria arquivos auto-extracteis. Arquivos auto-extracteis so teis para enviar arquivos a pessoas que
no tem o programa rar. Basta executar o arquivo e ele ser automaticamente descompactado. Note que este
processo requer que o arquivo default.sfx esteja presente no diretrio home do usurio. Use o comando find
para localiza-lo em seu sistema.
y - Assume sim para todas as perguntas
r - Inclui sub-diretrios no arquivo compactado
x [ARQUIVO] - Processa tudo menos o [ARQUIVO]. Pode ser usados curingas
v[TAMANHO] - Cria arquivos com um limite de tamanho. Por padro, o tamanho especificado em bytes,
mas o nmero pode ser seguido de k (kilobytes) ou m(megabytes).
Exemplo: rar a -v1440k ... ou rar a -v10m ...
p [SENHA] - Inclui senha no arquivo. CUIDADO, pessoas conectadas em seu sistema podem capturar a
linha de comando facilmente e descobrir sua senha.
m [0-5] - Ajusta a taxa de compactao/velocidade de compactao. 0 no faz compactao alguma (mais
rpido) somente armazena os arquivos, 5 o nvel que usa mais compactao (mais lento).
ed - No inclui diretrios vazios no arquivo
isnd - Ativa emisso de sons de alerta pelo programa
ierr - Envia mensagens de erro para stderr
inul - Desativa todas as mensagens
ow - Salva o dono e grupo dos arquivos.
ol - Salva links simblicos no arquivo ao invs do arquivo fsico que o link faz referncia.
mm[f] - Usa um mtodo especial de compactao para arquivos multimdia (sons, vdeos, etc). Caso for
usado mmf, fora o uso do mtodo multimdia mesmo que o arquivo compactado no seja deste tipo.
Os arquivos gerados pelo rar do GNU/Linux podem ser usados em outros sistemas operacionais, basta ter o rar
instalado. Quando usada a opo -v para a criao de mltiplos volumes, a numerao dos arquivos feita na
forma: arquivo.rar, arquivo.r00, arquivo.r01, etc, durante a descompactao os arquivos sero pedidos em
ordem. Se voc receber a mensagem cannot modify volume durante a criao de um arquivo .rar, provavelmente
o arquivo j existe. Apague o arquivo existente e tente novamente.
Exemplos:
rar a texto.rar texto.txt - Compacta o arquivo texto.txt em um arquivo com o nome texto.rar
rar x texto.rar - Descompacta o arquivo texto.rar
rar a -m5 -v1400k textos.rar * Compacta todos os arquivos do diretrio atual, usando a compactao
mxima no arquivo textos.rar. Note que o tamanho mximo de cada
arquivo 1440 para ser possvel grava-lo em partes para disquetes.
rar x -v -y textos.rar - Restaura os arquivos em mltiplos volumes criados com o processo anterior. Todos os
arquivos devem ter sido copiados dos disquetes para o diretrio atual antes de
prosseguir. A opo -y til para no precisar-mos responder yes a toda pergunta que
o rar fizer.
rar t textos.rar - Verifica se o arquivo textos.rar possui erros.
rar r textos.rar - Repara um arquivo .rar danificado.

Guia Foca GNU/Linux

160

Captulo 19 A distribuio Debian GNU/Linux


Este captulo traz algumas caractersticas sobre a distribuio Debian GNU/Linux, programas de configurao e
particularidades. A maioria dos trechos aqui descritos, tambm se aplicam a distribuies baseadas na Debian,
como a Corel Debian GNU/Linux e a LibraNet.
Voc deve estar se perguntando mas porque um captulo falando sobre a distribuio Debian se eu uso outra?.
Bem, a partir da verso Intermedirio do Foca Linux existem algumas partes que so especificas de algumas
distribuies Linux e que no se aplicam a outras, como a localizao dos arquivos de configurao, nomes dos
programas de configurao e outros detalhes especficos e esta verso a baseada na Debian. Pegue na pgina
do Foca Linux (http://www.metainfo.org/focalinux) uma verso Intermedirio do guia especfico para sua
distribuio.

19.1 Porque usar a Debian?


A Debian a distribuio que mais cresce no mundo, cada verso somente lanada aps rigorosos testes de
segurana e correo de falhas fazendo desta a mais segura e confivel dentre todas as outras distribuies
Linux. reconhecida como a mais segura, maior e atualizada mais freqentemente entre as outras distribuies
Linux, alm de ser a nica sem fins comerciais.
a nica que adota o estilo de desenvolvimento aberto e no mantida por uma empresa comercial (note que o
endereo do WebSite da Debian termina com .org), ao invs disso mantida por programadores, hackers e
especialistas de segurana espalhados ao redor do mundo, seguindo o estilo de desenvolvimento do Linux.
Possui suporte a mais de 10 arquiteturas e 15 sub-arquiteturas (entre elas, Intel x86, Alpha, VMS, Sparc,
Macintosh (m68k), Power Pc, ARM, etc).
Suas atualizaes so constantes e no necessrio adquirir um novo CD para fazer upgrades. Meu sistema
atualizado semanalmente e de forma segura atravs de 2 simples comandos. Veja apt, Seo 20.2 as instrues
de como fazer isto.
Cada pacote da distribuio mantida por uma pessoa, o que garante uma boa qualidade, implementaes de
novos recursos e rpida correo de falhas. Qualquer pessoa com bons conhecimentos no sistema e ingls pode
se tornar um Debian Developer, para detalhes consulte a lista de discusso debian-user-portuguese (veja Listas
de discusso, Seo 30.12.2) ou veja a pgina oficial da Debian: http://www.debian.org.
A distribuio apresenta compatibilidade com outros sistemas a partir da instalao at a seleo de programas e
execuo do sistema, sua instalao est at mesmo disponvel desde computadores 386 que utilizam unidades
de disquetes de 5 1/4 polegadas at para computadores UDMA66 e com CD-ROM inicializvel.
a distribuio mais indicada para uso em servidores devido ao seu desempenho, segurana e programas teis
de gerenciamento e monitorao da rede, recomendados por especialistas que participam de seu
desenvolvimento.
No existem verses separadas da Debian para servidores, uso pessoal, etc, ao invs disso a distribuio usa
perfis de usurio (dependendo da funo do usurio) e perfis de computador (dependendo do que deseja fazer),
podendo ser selecionado mais de um perfil de usurio/computador.
Os perfis selecionam automaticamente os pacotes mais teis para a instalao. Os pacotes existentes em cada
perfil foram escolhidos atravs de debates entre usurios que trabalham ativamente naquela rea, resultando em
uma seleo de pacotes de alta produtividade.
Para os usurios avanados e exigentes, tambm possvel selecionar os pacotes individualmente via dselect, o
que resultar em uma instalao somente com pacotes teis e melhor configurada.

19.2 Pacotes existentes na Debian


O nmero de pacotes existentes na distribuio atual da Debian (Potato - 2.2) de 4350.
A Debian (como a Red Hat) usa um formato prprio para armazenar os programas: o formato .deb. Este formato
permite a declarao, resoluo e checagem automtica de dependncias, pacotes sugeridos, opcionais e outras
caractersticas que o torna atraente para o desenvolvimento, gerenciamento e manuteno do sistema.
Estes pacotes so gerenciados atravs do programa dpkg (Debian Package) ou atravs de front-ends como o
dselect ou apt (para detalhes veja Sistema de gerenciamento de pacotes, Captulo 20).

19.3 O que sid/testing/frozen/stable?


Para o lanamento de uma nova distribuio Debian, o seguinte processo ocorre: sid => testing => stable (sendo
a stable sempre o lanamento oficial e sem bugs da distribuio).
sid - Durante o desenvolvimento de uma nova distribuio Debian, ela chamada de sid. A sid a verso
Unstable, isto no significa instabilidade, mas sim que a distribuio esta sofrendo modificaes para se
Guia Foca GNU/Linux

161

tornar uma verso estvel, recebendo novos pacotes, etc.


Quando os pacotes no so modificados aps um determinado perodo, os scripts da Debian copiam estes
pacotes (novos ou atualizados) para a testing.
No use a distribuio sid (unstable) ao menos que tenha experincia no Linux para corrigir problemas, que
certamente aparecero.
testing - A testing recebe os pacotes que no so modificados durante algum tempo da unstable, isto
significa que eles possuem alguma estabilidade.
A testing uma espcie de congelamento permanente (freeze) durante o desenvolvimento da Unstable.
Os novos pacotes que entram na unstable tambm caem na testing aps certo tempo.
Mesmo assim, podem existir falhas graves na testing, se voc precisa de um ambiente realmente livre de
falhas, use a stable.
frozen (congelada) - Na data programada pela equipe de lanamento da Debian, a distribuio testing
congelada: nenhum pacote novo da unstable cai na testing e comea a procura de falhas na distribuio
testing. Nenhuma nova caracterstica implementada nos pacotes (a no ser que seja extremamente
necessrio) e os developers se dedicam a correo de erros nos pacotes.
A distribuio testing congelada se tornar a futura stable aps todas as falhas serem corrigidas.
considerado seguro usar a frozen aps 1 mes de "congelamento".
Quando a testing congelada, o ciclo de desenvolvimento da unstable continua para que a prxima
distribuio da Debian seja lanada.
stable - Quando todos os bugs da testing congelada so eliminados, ela lanada como stable, a nova
verso Oficial da Debian.
A stable o resultado final do desenvolvimento, das correo de falhas/segurana e que passou por todos os
ciclos de testes para ser lanada. Resumindo a distribuio pronta para ser usada com toda a segurana.

19.4 Como obter a Debian


A
instalao
da
distribuio
pode
ser
obtida
atravs
de
Download
de
ftp://ftp.debian.org/debian/dists/stable/main/disks-i386 (para Intel x86), seus programas diversos esto
disponveis em ftp://ftp.debian.org/debian/dists/stable/main/binary-i386.
A distribuio tambm pode ser obtida atravs de 3 (ou 4) CDs binrios (para a Debian 2.2).

19.5 Programas de configurao


dselect - Seleciona pacote para instalao/desinstalao
pppconfig - Configura o computador para se conectar a Internet facilmente. Aps isto, use pon para se
conectar a Internet, poff para se desconectar e plog para monitorar a conexo.
modconf - Permite selecionar os mdulos que sero automaticamente carregados na inicializao do
sistema. Se requerido pelos mdulos os parmetros I/O, IRQ e DMA tambm podem ser especificados.
kbdconfig - Permite selecionar o tipo de teclado que utiliza
shadowconfig - Permite ativar ou desativar o suporte a senhas ocultas (shadow password). Com as senhas
ocultas ativadas, as senhas criptografadas dos usurios e grupos so armazenadas nos arquivos shadow e
gshadow respectivamente, que somente podem ser acessadas pelo usurio root.
Isto aumenta consideravelmente a segurana do sistema pois os arquivos passwd e group contm dados de
usurios que devem ter permisso de leitura de todos os usurios do sistema.
tasksel - Permite selecionar/modificar de forma fcil a instalao de pacotes em seu sistema atravs da
funo que sua mquina ter ou do seu perfil de usurio.
tzconfig - Permite modificar/selecionar o fuso-horrio usado na distribuio.
Alm destes, a Debian 3.0 (Woody) conta com o sistema de configurao baseado no dpkg-reconfigure que
permite configurar de forma facil e rpida aspecto de pacotes: dpkg-reconfigure xserver-svga.

19.6 Arquivos de inicializao


Os arquivos de inicializao da distribuio Debian (e baseadas nela) esto localizados no diretrio /etc/init.d.
Cada daemon (programa residente na memria) ou configurao especfica possui um arquivo de onde pode ser
ativado/desativado. Os sistemas residentes neste diretrio no so ativados diretamente, mas sim atravs de
links existentes nos diretrios /etc/rc?.d onde cada diretrio consiste em um nvel de execuo do sistema (veja
tambm a Nveis de Execuo, Seo 19.7).
Por padro, voc pode usar as seguintes palavras chaves com os arquivos de configurao:
start - Inicia o daemon ou executa a configurao
stop - Interrompe a execuo de um daemon ou desfaz a configurao feita anteriormente (se possvel).
Guia Foca GNU/Linux

162

restart - Reinicia a execuo de um daemon. equivalente ao uso de stop e start mas se aplicam somente a
alguns daemons e configuraes, que permitem a interrupo de execuo e reincio.
Por exemplo, para reconfigurar as interfaces de rede do computador, podemos utilizar os seguintes comandos:
cd /etc/init.d
./networking restart

19.7 Nveis de Execuo


Os Nveis de execuo (run levels) so diferentes modos de funcionamento do GNU/Linux com programas,
daemons e recursos especficos. Em geral, os sistemas GNU/Linux possuem sete nveis de execuo numerados
de 0 a 6. O daemon init o primeiro programa executado no GNU/Linux (veja atravs do ps ax|grep init) e
responsvel pela carga de todos daemons de inicializao e configurao do sistema.
O nvel de execuo padro em uma distribuio GNU/Linux definido atravs do arquivo de configurao do
/etc/inittab (Arquivo /etc/inittab, Seo 26.27) atravs da linha
id:2:initdefault:

19.7.1 Entendendo o funcionamento dos nveis de execuo do sistema


(runlevels)
Os nvel de execuo atual do sistema pode ser visualizado atravs do comando runlevel e modificado atravs
dos programas init ou telinit. Quando executado, o runlevel l o arquivo /var/run/utmp e adicionamente lista o
nvel de execuo anterior ou a letra N em seu lugar (caso ainda no tenha ocorrido a mudana do nvel de
execuo do sistema).
Na Debian, os diretrios /etc/rc0.d a /etc/rc6.d contm os links simblicos para arquivos em /etc/init.d que so
acionados pelo nvel de execuo correspondente.
Por exemplo, o arquivo S10sysklogd em /etc/rc2.d, um link simblico para /etc/init.d/sysklogd.
O que aconteceria se voc removesse o arquivo /etc/rc2.d/S10sysklogd? Simplesmente o daemon sysklogd
deixaria de ser executado no nvel de execuo 2 do sistema (que o padro da Debian).
A Debian segue o seguinte padro para definir se um link simblico em /etc/rc[0-6].d iniciar ou interromper a
execuo de um servio em /etc/init.d, que o seguinte:
Se um link iniciado com a letra K (kill), quer dizer que o servio ser interrompido naquele nvel de
execuo. O que ele faz executar o daemon em /etc/init.d seguido de stop.
Se um link iniciado com a letra S (start), quer dizer que o servio ser iniciado naquele nvel de execuo
( equivalente a executar o daemon seguido de start).
Primeiro os links com a letra K so executado e depois os S. A ordem que os links so executados dependem do
valor numrico que acompanha o link, por exemplo, os seguintes arquivos so executados em seqncia:
S10sysklogd
S12Kerneld
S20inetd
S20linuxlogo
S20logoutd
S20lprng
S89cron
S99xdm
Note que os arquivos que iniciam com o mesmo nmero (S20*) so executados alfabeticamente. O nvel de
execuo do sistema pode ser modificado usando-se o comando init ou telinit. Os seguinte nveis de execuo
esto disponveis na Debian:
0 - Interrompe a execuo do sistema. todos os programas e daemons finalizados. acionado pelo
comando shutdown -h
1 - Modo monousurio, til para manuteno dos sistema.
2 - Modo multiusurio (padro da Debian)
3 - Modo multiusurio
4 - Modo multiusurio
5 - Modo multiusurio com login grfico
6 - Reinicializao do sistema. Todos os programas e daemons so encerrados e o sistema reiniciado.
acionado pelo comando shutdown -r e o pressionamento de CTRL+ALT+DEL.
Por exemplo, para listar o nvel de execuo atual do sistema digite: runlevel. O runlevel dever listar algo
como:
Guia Foca GNU/Linux

163

N2
Agora para mudar para o nvel de execuo 1, digite: init 3. Agora confira a mudana digitando: runlevel. Voc
dever ver este resultado:
23
Isto quer dizer que o nvel de execuo anterior era o 2 e o atual o 3.

19.8 Bug tracking system


o sistema para relatar bugs e enviar sugestes sobre a distribuio. Para relatar um bug primeiro voc deve
saber ingls ( a lngua universal entendida pelos desenvolvedores) e verificar se o bug j foi relatado. O Debian
Bug tracking system pode ser acessado pelo endereo: http://bugs.debian.org.
Para relatar uma falha/sugesto, envie um e-mail para: submit@bugs.debian.org, com o assunto referente a
falha/sugesto que deseja fazer e no corpo da mensagem:
Package: pacote
Severity: normal/grave/wishlist
Version: verso do pacote
E o relato do problema
O bug ser encaminhado diretamente ao mantenedor do pacote que verificar o problema relatado. Os campos
Package e Severity so obrigatrios para definir o nome do pacote (para enderear o bug para a pessoa correta) e
verso do pacote (esta falha pode ter sido relatada e corrigida em uma nova verso).

19.9 Onde encontrar a Debian para Download?


No endereo ftp://ftp.debian.org. Outros endereos podem ser obtidos na pgina oficial da Debian
(http://www.debian.org) clicando no link Download e mirrors.
A distribuio Potato (2.2) completa, com 4350 pacotes ocupa em torno de 2.0 GB, (equivalente a 4 CDS de
pacotes e mais 2 se quiser o cdigo fonte). Voc tambm pode optar por fazer a instalao dos pacotes opcionais
via Internet atravs do mtodo apt. Para detalhes veja o guia do dselect ou envie uma mensagem para a lista de
discusso debian-user-portuguese@lists.debian.org (veja Listas de discusso, Seo 30.12.2 para detalhes).

19.10 Lista de pacotes para uma instalao rpida e manual


Esta seo contm uma lista de pacotes necessrios que atendem a maioria dos usurios normais da Debian em
um sistema padro sem desperdcio de espao e sabendo exatamente o que est instalando.
Estou assumindo que voc concluiu a instalao da Debian 2.2 (Potato) mas preferiu pular o passo de seleo de
pacotes do dselect e fazer uma instalao manual.
A lista de pacotes est dividida por categorias e voc precisa ter o programa apt configurado corretamente para
que os comandos funcionem (veja apt, Seo 20.2 para detalhes).
Se pretende usar a lista de pacotes para fazer a instalao da Debian em muitos computadores, voc tem duas
opes:
Copiar o contedo das sees que seguem e fazer um script de instalao personalizado para automatizar a
instalao de pacotes da Debian em outras mquinas
Aps a instalao dos pacotes no computador, utilize o comando dpkg --get-selections >Lista-Pacotes.txt para
gerar o arquivo Lista-Pacotes.txt contendo a lista de pacotes instalados.
Ento no computador que pretende fazer a instalao de pacotes, use o comando dpkg --set-selections <ListaPacotes.txt e ento digitar apt-get -f install ou escolher a opo Install no dselect.
Para mais detalhes veja Mostrando a lista de pacotes do sistema, Seo 20.1.11 e a Obtendo uma lista de pacotes
para instalar no sistema, Seo 20.1.12. importante usar o comando apt-get clean aps a instalao de pacotes
para remover os pacotes baixados pelo apt de /var/cache/apt/archives (exceto na instalao de pacotes atravs do
disco rgido local).

19.10.1 Pacotes Bsicos (Altamente Recomendado)


apt-get install cpio info libident libncurses4 man-db manpages whois nvi
hdparm mc exim linuxlogo less kbd mutt libstdc++2.8 bzip2
isapnptools cron gpm libstdc++2.9-glibc2.1

19.10.2 Compilao do Kernel e programas em linguagem C


apt-get install perl, gcc-i386-gnu libc6-dev bin86 make
Se pretender utilizar o Kernel-package para compilar o Kernel mais facilmente, ento voc precisar dos
seguintes pacotes:
Guia Foca GNU/Linux

164

apt-get install Kernel-package dpkg-dev


Veja Recompilando o Kernel, Seo 16.11 para entender como compilar seu prprio Kernel.

19.10.3 X11 (bsico)


apt-get install xbase xbase-clients xf86setup xfonts-75dpi xserver-svga
xterm xfs-xtt xdm
Caso suas fontes sejam mostradas em tamanho exagerado, remova o pacotes xfonts-100dpi ou ajuste a seo
Files do arquivo /etc/X11/XF86Config apropriadamente.

19.10.4 Window Managers para o X


apt-get install wmaker wmakerconf wmaker-data wmavload
eterm enlightenment enlightenment-theme-bluesteel asclock
afterstep
OBS: Existem outros excelentes gerenciadores de janelas como o gnome, se voc tiver espao em disco...

19.10.5 Impresso (texto e grfico com sistema de spool)


apt-get install lprng magicfilter gs gsfonts

19.10.6 Som (mixer, mp3, Midi, wav, CD-Player)


xmms playmidi cam aumix libaudiofile0 libmikmod2 libesd0 mesag3+ggi xmcd sox

19.10.7 Programas de Internet (clientes)


apt-get install xchat licq licq-data netscape fetchmail procmail mime-support

19.10.8 Acessrios
apt-get install gimp gimp-nonfree gedit gxedit abiword freefont sharefont
type1inst

19.10.9 Rede
apt-get install finger, talk, talkd, telnet

Guia Foca GNU/Linux

165

Captulo 20 Sistema de gerenciamento de pacotes


Este captulo ensina a operao bsica do programa de manipulao de pacotes Debian, a instalao, remoo,
consulta e checagem de arquivos .deb.

20.1 dpkg
O dpkg (Debian Package) o programa responsvel pelo gerenciamento de pacotes em sistemas Debian. Sua
operao feita em modo texto e funciona atravs de comandos, assim caso deseje uma ferramenta mais
amigvel para a seleo e instalao de pacotes, prefira o dselect (que um front-end para o dpkg) ou o apt
(veja apt, Seo 20.2).
dpkg muito usado por usurios avanados da Debian e desenvolvedores para fins de instalao, manuteno e
construo de pacotes.

20.1.1 Pacotes
Pacotes Debian so programas colocados dentro de um arquivo identificados pela extenso .deb incluindo
arquivos necessrios para a instalao do programa, um sistemas de listagem/checagem de dependncias, scripts
de automatizao para remoo parcial/total do pacote, listagem de arquivos, etc.
Um nome de pacote tem a forma nome-verso_reviso.deb

20.1.2 Instalar pacotes


Use o comando: dpkg -i NomedoPacote para instalar um pacote em seu sistema. Talvez ele pea que seja
instalado algum pacote que depende para seu funcionamento. Para detalhes sobre dependncias veja
Dependncias, Seo 20.1.3. preciso especificar o nome completo do pacote (com a verso e reviso).

20.1.3 Dependncias
Dependncias so pacotes requeridos para a instalao de outro pacote. Na Debian cada pacote contm um
programa com uma certa funo. Por exemplo, se voc tentar instalar o pacote de edio de textos supertext que
usa o programa sed, voc precisar verificar se o pacote sed est instalado em seu sistema antes de tentar
instalar o supertext, caso contrrio, o pacote supertext pedir o sed e no funcionar corretamente. Note que o
pacote supertext apenas um exemplo e no existe (pelo menos at agora :-). O programa dselect faz o trabalho
de checagem de dependncias automaticamente durante a instalao dos pacotes.
A colocao de cada programa em seu prprio pacote parece ser uma dificuldade a mais para a instalao
manual de um certo programa. Mas para os desenvolvedores que mantm os mais de 4300 pacotes existentes na
distribuio Debian, um ponto fundamental, porque no preciso esperar uma nova verso do supertext ser
lanada para instalar a verso mais nova do pacote sed. Por este motivo tambm uma vantagem para o usurio.

20.1.4 Listar pacotes existentes no sistema


Use o comando: dpkg -l [pacote] para isto.
Na listagem de pacotes tambm ser mostrado o "status" de cada um na coluna da esquerda, acompanhado do
nome do pacote, verso e descrio bsica. Caso o nome do [pacote] seja omitido, todos os pacotes sero
listados. recomendado usar "dpkg -l|less" para ter um melhor controle da listagem (pode ser longa dependendo
da quantidade de programas instalados).

20.1.5 Removendo pacotes do sistema


Use o comando: dpkg -r NomedoPacote para remover um pacote do sistema completamente. Somente
necessrio digitar o nome e verso do pacote que deseja remover, no sendo necessrio a reviso do pacote.
O comando dpkg -r no remove os arquivos de configurao criados pelo programa. Para uma remoo
completa do programa veja Removendo completamente um pacote, Seo 20.1.6.

20.1.6 Removendo completamente um pacote


Use o comando: dpkg --purge NomedoPacote para remover um pacote e todos os diretrios e arquivos de
configurao criados. No necessrio especificar a reviso do pacote. O comando dpkg--purge pode ser usado
aps uma remoo normal do pacote (usando dpkg -r).
Caso voc usar diretamente o comando dpkg --purge, dpkg primeiro remover o pacote normalmente (como
explicado em Removendo pacotes do sistema, Seo 20.1.5) e aps removido apagar todos os arquivos de
Guia Foca GNU/Linux

166

configurao.
Note que o dpkg --purge somente remove arquivos de configurao conhecidos pelo pacote. Em especial, os
arquivos de configurao criados para cada usurio do sistema devem ser removidos manualmente. Seria pedir
demais que o dpkg tambm conhecesse os usurios de nosso sistema ;-).

20.1.7 Mostrar descrio do pacote


Use o comando: dpkg -I NomedoPacote para mostrar a descrio do pacote. Entre a descrio so mostradas as
dependncias do pacote, pacotes sugeridos, recomendados, descrio do que o pacote faz, tamanho e nmero de
arquivos que contm.

20.1.8 Procura de pacotes atravs do nome de um arquivo


Use o comando: dpkg S arquivo para saber de qual pacote existente no sistema o arquivo pertence.

20.1.9 Status do pacote


Use o comando: dpkg -s pacote para verificar o status de um pacote em seu sistema, se esta ou no instalado,
configurado, tamanho, dependncias, maintainer, etc.
Se o pacote estiver instalado no sistema, o resultado ser parecido com o do comando dpkg -c [pacote]. Este
comando equivalente ao dpkg --status.

20.1.10 Procurando pacotes com problemas de instalao


A checagem de pacotes com este tipo de problema pode ser feita atravs do comando:
dpkg -C
Ser listado todos os pacotes com algum tipo de problema, verifique os detalhes do pacote com "dpkg -s" para
decidir como corrigir o problema.

20.1.11 Mostrando a lista de pacotes do sistema


Use o comando:
dpkg --get-selections
para obter uma lista de seleo dos pacotes em seu sistema. A listagem mostrada na sada padro, que pode ser
facilmente redirecionada para um arquivo usando dpkg --get-selections >dpkg.lista.
A listagem obtida com este comando muito til para repetir os pacotes usados no sistema usando o dpkg --setselections.

20.1.12 Obtendo uma lista de pacotes para instalar no sistema


Use o comando:
dpkg --set-selections <arquivo
para obter a lista de pacotes que sero instalados no sistema. O uso do dpkg --get-selections e dpkg --setselections muito til durante uma necessidade de reinstalao do sistema GNU/Linux ou repetir a instalao
em vrias mquinas sem precisar selecionar algumas dezenas entre os milhares de pacotes no dselect.
Aps obter a lista com dpkg --get-selections, use dpkg --set-selections <arquivo e ento entre no dselect e
escolha a opo INSTALL, todos os pacotes obtidos via dpkg --set-selections sero automaticamente instalados.

20.1.13 Configurando pacotes desconfigurados


Pacotes esto desconfigurados quando, por algum motivo, a instalao do mesmo no foi concluda com
sucesso. Pode ter faltado alguma dependncia, acontecido algum erro de leitura do arquivo de pacote, etc.
Quando um erro deste tipo acontece, os arquivos necessrios pelo pacote podem ter sido instalados, mas os
scripts de configurao ps-instalao no so executados.
Use o comando:
dpkg --configure [NomedoPacote]
Para configurar um pacote. O NomedoPacote no precisa conter a reviso do pacote e extenso.

20.1.14 Listando arquivos de um pacote


Use o comando: dpkg -c arquivo para obter a listagem dos arquivos contidos no pacote. necessrio digitar o
nome completo do pacote. O comando dpkg -c til para listarmos arquivos de pacotes que no esto instalados
no sistema.
Para obter a listagem de arquivos de pacotes j instalados no sistema, use o comando: dpkg -L arquivo.
Guia Foca GNU/Linux

167

necessrio digitar somente o nome do pacote (sem a reviso e extenso).

20.2 apt
O apt sistema de gerenciamento de pacotes de programas que possui resoluo automtica de dependncias
entre pacotes, mtodo fcil de instalao de pacotes, facilidade de operao, permite atualizar facilmente sua
distribuio, etc. Ele funciona atravs de linha de comando e ainda no existe nenhuma interface amigvel para
uso deste programa, mesmo assim sua operao muito fcil.
O apt pode utilizar tanto com arquivos locais como remotos na instalao ou atualizao, desta maneira
possvel atualizar toda a sua distribuio Debian via ftp ou http com apenas 2 simples comandos!
recomendvel o uso do mtodo apt no programa dselect pois ele permite a ordem correta de instalao de
pacotes e checagem e resoluo de dependncias, etc. Devido a sua facilidade de operao, o apt o mtodo
preferido para os usurios manipularem pacotes da Debian.
O apt exclusivo da distribuio Debian e distribuies baseadas nela e tem por objetivo tornar a manipulao
de pacotes poderosa por qualquer pessoa e tem dezenas de opes que podem ser usadas em sua execuo ou
configuradas no arquivo /etc/apt/apt.conf. Explicarei aqui como fazer as aes bsicas com o apt, portanto se
desejar maiores detalhes sobre suas opes, veja a pgina de manual apt-get.

20.2.1 O arquivo /etc/apt/sources.list


Este arquivo contm os locais onde o apt encontrar os pacotes, a distribuio que ser verificada (stable,
testing, unstable, Potato, Woody) e a seo que ser copiada (main, non-free, contrib, non-US).
Potato(Debian 2.2) e Woody(Debian 3.0) so os nomes das verses enquanto stable e unstable so links para as
verses estvel e testing respectivamente. Se desejar usar sempre uma distribuio estvel (como a potato),
modifique o arquivo sources.list e coloque potato como distribuio. Caso voc desejar estar sempre atualizado
mas uma pessoa cuidadosa e deseja ter sempre a ltima distribuio estvel da Debian, coloque stable como
verso. Assim que a nova verso for lanada, os links que apontam de stable para potatok sero alterados
apontando para woody e voc ter seu sistema atualizado.
Abaixo um exemplo simples de arquivo /etc/apt/sources.list com explicao das sees:
deb http://www.debian.org/debian stable main contrib non-free
deb http://nonus.debian.org/debian-non-US stable non-US
Voc pode interpretar cada parte da seguinte maneira:
deb - Identifica um pacote da Debian. A palavra deb-src identifica o cdigo fonte.
http://www.debian.org/debian - Mtodo de acesso aos arquivos da Debian, site e diretrio principal. O
caminho pode ser http://, ftp://, file:/.
stable - Local onde sero procurados arquivos para atualizao. Voc pode tanto usar o nome de sua
distribuio (potato, woody) ou sua classificao (stable, testing ou unstable. Note que unstable
recomendada somente para desenvolvedores, mquinas de testes e se voc tem conhecimentos para corrigir
problemas. Nunca utilize unstable em ambientes de produo ou servidores crticos, use a stable.
main contrib non-us - Sees que sero verificadas no site remoto.
Note que tudo especificado aps o nome da distribuio ser interpretado como sendo as sees dos arquivos
(main, non-free, contrib, non-US). O caminho percorrido pelo apt para chegar aos arquivos ser o seguinte:
http://www.debian.org/debian/dists/stable/main/binary-i386
http://www.debian.org/debian/dists/stable/non-free/binary-i386
http://www.debian.org/debian/dists/stable/contrib/binary-i386
Voc notou que o diretrio dists foi adicionado entre http://www.debian.org/debian e stable, enquanto as sees
main, non-free e contrib so processadas separadamente e finalizando com o caminho binary-[arquitetura],
onde [arquitetura] pode ser i386, alpha, spart, powerpc, arm, etc. dependendo do seu sistema. Entendendo isto,
voc poder manipular o arquivo sources.list facilmente.

20.2.1.1 Endereos de servidores e mirrors nacionais da Debian


Segue abaixo uma relao de servidores que podem ser colocados em seu arquivo sources.list:
Endereo
Diretrio Principal
-------------------------------ftp://ftp.debian.org.br
/debian
ftp://ftp.br.debian.org
/debian
ftp://ftp.debian.org
/debian
ftp://download.sourceforge.net
/debian
ftp://ftp.quimica.ufpr.br
/debian
ftp://download.unesp.br
/linux/debian
Guia Foca GNU/Linux

168

20.2.1.2 Um modelo de arquivo sources.list


Voc pode copiar o modelo do sources.list abaixo para ser usado em sua distribuio Stable ou personaliza-lo
modificando a distribuio utilizada e servidores:
# Arquivos principais da stable
deb ftp://ftp.debian.org.br/debian stable main non-free contrib
# Non-US da Stable
deb ftp://ftp.debian.org.br/debian-non-US stable/non-US main non-free contrib
# Atualizaes propostas para Stable main e non-US
deb ftp://ftp.debian.org.br/debian dists/proposed-updates/
deb ftp://ftp.debian.org.br/debian-non-US dists/proposed-updates/
# Atualizaes de segurana da Stable
deb ftp://nonus.debian.org/debian-security stable/updates main
# Ximian um conjunto de pacotes atualizados frequentemente e compatveis
# com a distribuio Debian. Entre estes programas esto o Gimp 1.2 e outros
# mais atuais e compatveis com a Debian. Para usa-los inclua a seguinte linha no
# seu sources.list
deb ftp://spidermonkey.ximian.com/pub/red-carpet/binary/debian-22-i386/ ./
# Kde 1 e 2
deb ftp://kde.tdyc.com/pub/kde/debian potato main crypto optional qt1apps

20.2.2 O arquivo /etc/apt/apt.conf


Voc pode especificar opes neste arquivo que modificaro o comportamento do programa apt durante a
manipulao de pacotes (ao invs de especificar na linha de comando). Se estiver satisfeito com o
funcionamento do programa apt, no necessrio modifica-lo. Para detalhes sobre o formato do arquivo, veja a
pgina de manual do apt.conf. Na pgina de manual do apt-get so feitas referncias a parmetros que podem
ser especificados neste arquivo ao invs da linha de comando.

20.2.3 Copiando a lista de pacotes disponveis


O apt utiliza uma lista de pacotes para verificar se os pacotes existentes no sistema precisam ou no ser
atualizados. A lista mais nova de pacotes copiada atravs do comando apt-get update.
Este comando pode ser usado com alguma frequncia se estiver usando a distribuio stable e sempre se estiver
usando a unstable (os pacotes so modificados com muita frequncia). Sempre utilize o apt-get update antes de
atualizar toda a distribuio.

20.2.4 Utilizando CDs oficiais/no-oficiais/terceiros com o apt


Para usar CDs da Debian ou de programas de terceiros, use o seguinte comando com cada um dos CDs que
possui:
apt-cdrom add
Este comando adicionar automaticamente uma linha para cada CD no arquivo /etc/apt/sources.list e atualizar a
lista de pacotes em /var/state/apt/lists. Por padro, a unidade acessada atravs de /cdrom usada. Use a opo -d
/dev/scd? para especificar um outra unidade de CDs (veja Identificao de discos e parties em sistemas Linux,
Seo 5.8 para detalhes sobre essa identificao).
Durante a instalao de um novo programa, o apt pede que o CD correspondente seja inserido na unidade e
pressionado <Enter> para continuar. O mtodo acesso do apt atravs de CDs inteligente o bastante para
instalar todos os pacotes necessrios daquele CD, instalar os pacotes do prximo CD e iniciar a configurao
aps instalar todos os pacotes necessrios.
Observao: - CDs de terceiros ou contendo programas adicionais tambm podem ser usados com o comando
"apt-cdrom add".

20.2.5 Instalando novos pacotes


Use o comando apt-get install [pacotes] para instalar novos pacotes em sua distribuio. Podem ser instalados
mais de um pacotes ao mesmo tempo separando os nomes por espaos. Somente preciso especificar o nome do
pacote (sem a verso e reviso).
Se preciso, o apt instalar automaticamente as dependncias necessrias para o funcionamento correto do
pacote. Quando pacotes alm do solicitado pelo usurio so requeridos para a instalao, o apt mostrar o
Guia Foca GNU/Linux

169

espao total que ser usado no disco e perguntar ao usurio se ele deseja continuar. Aps a instalao, o pacote
ser automaticamente configurado pelo dpkg para ser executado corretamente em seu sistema.

20.2.6 Removendo pacotes instalado


Use o comando apt-get remove [pacotes] para remover completamente um pacote do sistema. Podem ser
removidos mais de um pacote ao mesmo tempo separando os nomes dos pacotes com espaos. O apt-get remove
remove completamente o pacote mas mantm os arquivos de configurao, exceto se for adicionada a opo
--purge. preciso especificar somente o nome do pacote (sem a verso e reviso).

20.2.7 Atualizando sua distribuio


O apt tem uma grande caracterstica: Atualizar toda a sua distribuio de uma forma inteligente e segura. O apt
le a listagem de pacotes disponveis no servidor remoto, verifica quais esto instalados e suas verses, caso a
verso do pacote seja mais nova que a j instalada em seu sistema, o pacote ser imediatamente atualizado.
A cpia dos arquivos pelo apt pode ser feita via FTP, HTTP ou atravs de uma cpia local dos arquivos no disco
rgido (um mirror local). Em nenhuma circunstncia os pacotes existentes em seu sistema sero removidos ou
sua configurao apagada durante um upgrade na distribuio.
Os arquivos de configurao em /etc que foram modificados so identificados e podem ser mantidos ou
substitudos por verses existentes nos pacotes que esto sendo instalado, esta escolha feita por voc. Se
estiver atualizando a Debian Potato (2.2) para Woody (3.0), antes de iniciar a atualizao da distribuio execute
os comandos:
export LANG=C
export LC_ALL=C
export LC_MESSAGES=C
para retornar as variveis de localizao ao valor padro (ingles). Isto necessrio por causa de modificaes no
sistema de locales, e o excesso de mensagens de erro do perl causaram alguns problemas em meus testes.
Aps isto, a atualizao da distribuio Debian pode ser feita atravs de dois simples comandos:
apt-get update
#Para atualizar a lista de pacotes (obrigatrio)
apt-get -f dist-upgrade #Para atualizar a distribuio
A opo -f faz com que o apt verifique e corrija automaticamente problemas de dependncias entre pacotes.
Recomendo executa o comando apt-get -f --dry-run dist-upgrade|less para ver o que vai acontecer sem atualizar
a distribuio, se tudo ocorrer bem, retire o --dry-run e v em frente.
A distribuio usada na atualizao pode ser:
Para a mesma verso que utiliza - Para quem deseja manter os pacotes sempre atualizados entre revises,
copiar pacotes que contm correes para falhas de segurana (veja a pgina web em
http://www.br.debian.org para acompanhar o boletim de segurana).
Para uma distribuio stable - Mesmo que o acima, mas quando uma nova distribuio for lanada, o link
simblico de stable ser apontado para prxima distribuio, atualizando instantaneamente seu sistema.
Para a distribuio testing - Atualiza para a futura distribuio Debian que ser lanada, como a unstable,
mas seus pacotes passam por um perodo de testes de 2 semanas na unstable antes de serem copiados para
esta.
unstable - Verso em desenvolvimento, recomendada somente para desenvolvedores ou usurios que
conhecem a fundo o sistema GNU/Linux e saibam resolver eventuais problemas que apaream.
A unstable uma distribuico em constante desenvolvimento e podem haver pacotes problemticos ou com
falhas de segurana. Aps o perodo de desenvolvimento, a distribuio unstable se tornar frozen.
frozen - Verso congelada, nenhum pacote novo aceito e somente so feitas correes de falhas. Aps
todas as falhas estarem corrigidas, a distribuio frozen se tornar stable
A distribuio que ser usada na atualizao pode ser especificada no arquivo /etc/apt/souces.list (veja a seo
correspondente acima). Caso o mtodo de atualizao usado seja via HTTP ou FTP, ser necessrio usar o
comando apt-get clean para remover os pacotes copiados para seu sistema (para detalhes veja a seo seguinte).

20.2.8 Removendo pacotes baixados pelo apt


Use o comando apt-get clean para apagar qualquer arquivo baixado durante uma atualizao ou instalao de
arquivos com o apt. Os arquivos baixados residem em /var/cache/apt/archives (download completo) e
/var/cache/apt/archives/partial (arquivos sendo baixados - parciais).
Este local de armazenamento especialmente usado com o mtodo http e ftp para armazenamento de arquivos
durante o download para instalao (todos os arquivos so primeiro copiados para serem instalados e
configurados).
O apt-get clean automaticamente executado caso seja usado o mtodo de acesso apt do dselect.
Guia Foca GNU/Linux

170

20.2.9 Procurando por pacotes atravs da descrio


O utilitrio apt-cache pode ser usado para esta funo. Ele tambm possui outras utilidades interessante para a
procura e manipulao da lista de pacotes. Por exemplo, o comando apt-cache search clock mostrar todos os
pacotes que possuem a palavra clock na descrio do pacote.

20.2.10 Procurando um pacote que contm determinado arquivo


Suponha que algum programa esteja lhe pedindo o arquivo perlcc e voc no tem a mnima idia de que pacote
instalar no seu sistema. O utilitrio auto-apt pode resolver esta situao. Primeiro instale o pacote auto-apt e
execute o comando auto-apt update para que ele copie o arquivo Contents-i386.gz que ser usado na busca
desses dados.
Agora, basta executar o comando:
auto-apt search perlcc
para que ele retorne o resultado:
usr/bin/perlcc interpreters/perl
O pacote que contm este arquivo o perl e se encontra na seo interpreters dos arquivos da Debian. Para uma
pesquisa que mostra mais resultados (como auto-apt search a2ps), interessante usar o grep para filtrar a sada:
auto-apt search a2ps|grep bin/
usr/bin/psmandup
text/a2ps
usr/bin/pdiff text/a2ps
usr/bin/psset text/a2ps
usr/bin/composeglyphs text/a2ps
usr/bin/a2psj text/a2ps-perl-ja
usr/bin/a2ps text/a2ps
usr/bin/fixps text/a2ps
usr/bin/ogonkify
text/a2ps
usr/bin/fixnt text/a2ps
usr/bin/card text/a2ps
usr/bin/texi2dvi4a2ps text/a2ps
Sero mostrados somente os binrios, diretrios de documentao, manpages, etc. no sero mostradas.

20.2.11 Verificando pacotes corrompidos


Use o comando apt-get check para verificar arquivos corrompidos. A correo feita automaticamente. A lista
de pacotes tambm atualizada quando utiliza este comando.

20.2.12 Corrigindo problemas de dependncias e outros erros


Use o comando apt-get -f install (sem o nome do pacote) para que o apt-get verifique e corrija problemas com
dependncias de pacotes e outros problemas conhecidos.

Guia Foca GNU/Linux

171

Captulo 21 Personalizao do Sistema


Este captulo ensina como personalizar algumas caractersticas de seu sistema GNU/Linux.

21.1 Variveis de Ambientes


um mtodo simples e prtico que permite a especificao de opes de configurao de programas sem
precisar mexer com arquivos no disco ou opes. Algumas variveis do GNU/Linux afetam o comportamento
de todo o Sistema Operacional, como o idioma utilizado e o path (veja path, Seo 7.2) . Variveis de ambientes
so nomes que contm algum valor e tem a forma Nome=Valor. As variveis de ambiente so individuais para
cada usurio do sistema ou consoles virtuais e permanecem residentes na memria RAM at que o usurio saia
do sistema (logo-off) ou at que o sistema seja desligado.
As variveis de ambiente so visualizadas/criadas atravs do comando set ou echo $NOME (apenas visualiza) e
exportadas para o sistemas com o comando export NOME=VALOR.
Nos sistemas Debian, o local usado para especificar variveis de ambiente o /etc/environment (veja Arquivo
/etc/environment, Seo 21.8). Todas as variveis especificadas neste arquivos sero inicializadas e
automaticamente exportadas na inicializao do sistema.
Exemplo: Para criar uma varivel chamada TESTE que contenha o valor 123456 digite: export TESTE=123456.
Agora para ver o resultado digite: echo $TESTE ou set|grep TESTE. Note que o $ que antecede o nome TESTE
serve para identificar que se trata de uma varivel e no de um arquivo comum.

21.2 Modificando o Idioma usado em seu sistema


O idioma usado em seu sistema pode ser modificado facilmente atravs das variveis de ambiente. Atualmente a
maioria dos programas esto sendo localizados. A localizao um recurso que especifica arquivos que contm
as mensagens do programas em outros idiomas. Voc pode usar o comando locale para listar as variveis de
localizao do sistema e seus respectivos valores. As principais variveis usadas para determinar qual idioma os
programas localizados utilizaro so:
LANG - Especifica o idioma_PAIS local. Podem ser especificados mais de um idioma na mesma varivel
separando-os com :, desta forma caso o primeiro no esteja disponvel para o programa o segundo ser
verificado e assim por diante. A lngua Inglesa identificada pelo cdigo C e usada como padro caso
nenhum locale seja especificado.
Por exemplo: export LANG=pt_BR, export LANG=pt_BR:pt_PT:C
LC_MESSAGES - Especifica o idioma que sero mostradas as mensagens dos programas. Seu formato o
mesmo de LANG.
LC_ALL - Configura todas as variveis de localizao de uma s vez. Seu formato o mesmo de LANG.
As mensagens de localizao esto localizadas em arquivos individuais de cada programa em /usr/share/locale/
[Idioma]/LC_MESSAGES . Elas so geradas atravs de arquivos potfiles (arquivos com a extenso .po ou .pot
e so gerados catlogos de mensagens .mo. As variveis de ambiente podem ser especificadas no arquivo
/etc/environment desta forma as variveis sero carregadas toda a vez que seu sistema for iniciado. Voc
tambm pode especificar as variveis de localizao em seu arquivos de inicializao .bash_profile, .bashrc ou
.profile assim toda a vez que entrar no sistema, as variveis de localizao personalizadas sero carregadas.
Siga as instrues a seguir de acordo com a verso de sua distribuio Debian:
Debian 3.0
Acrescente a linha pt_BR ISO-8859-1 no arquivo /etc/locale.gen, rode o utilitrio locale-gen para gerar os
locales e acrescente as variveis de localizao no arquivo /etc/locales.def seguindo a forma:
export LANG=pt_BR
export LC_ALL=pt_BR
export LC_MESSAGES=pt_BR
Note que o arquivo /etc/environment tambm pode ser usado para tal tarefa, mas o locales.def foi criado
especialmente para lidar com variveis de localizao na Debian 3.0.
Debian 2.2
Coloque estas variveis no arquivo /etc/environment (veja um exemplo deste arquivo em Arquivo
/etc/environment, Seo 21.8), assim toda a vez que seu sistema for iniciado as variveis de localizao sero
carregadas e exportadas para o sistema, estando disponveis para todos os usurios.
Para as mensagens e programas do X-Window usarem em seu idioma local, preciso colocar as variveis no
arquivo ~/.xserverrc do diretrio home de cada usurio e dar a permisso de execuo neste arquivo ( chmod 755
.xserverrc). Lembre-se de incluir o caminho completo do arquivo executvel do seu gerenciador de janelas na
ltima linha deste arquivo (sem o & no final), caso contrrio o Xserver ser finalizado logo aps ler este
Guia Foca GNU/Linux

172

arquivo.
Abaixo exemplos de localizao com as explicaes:
export LANG=pt_BR - Usa o idioma pt_BR como lngua padro do sistema. Caso o idioma Portugues do
Brasil no esteja disponvel, C usado (Ingls).
export LANG=C - Usa o idioma Ingls como padro ( a mesma coisa de no especificar LANG, pois o
idioma Ingls usado como padro).
export LANG=pt_BR:pt_PT:es_ES:C - Usa o idioma Portugus do Brasil como padro, caso no esteja
disponvel usa o Portugus de Portugal, se no estiver disponvel usa o Espanhol e por fim o Ingls.
recomendvel usar a varivel LC_ALL para especificar o idioma, desta forma todos os outras variveis
(LANG, MESSAGES, LC_MONETARY, LC_NUMERIC, LC_COLLATE, LC_CTYPE e LC_TIME) sero
configuradas automaticamente.

21.3 alias
Permite criar um apelido a um comando ou programa. Por exemplo, se voc gosta de digitar (como eu) o
comando ls --color=auto para ver uma listagem longa e colorida, voc pode usar o comando alias para facilitar
as coisas digitando: alias ls='ls --color=auto' (no se esquea da meia aspa 'para identificar o comando'). Agora
quando voc digitar ls, a listagem ser mostrada com cores.
Se voc digitar ls -la, a opo -la ser adicionada no final da linha de comando do alias: ls --color=auto -la, e a
listagem tambm ser mostrada em cores.
Se quiser utilizar isto toda vez que entrar no sistema, veja Arquivo .bash_profile, Seo 21.5 e Arquivo .bashrc,
Seo 21.6.

21.4 Arquivo /etc/profile


Este arquivo contm comandos que so executados para todos os usurios do sistema no momento do login.
Somente o usurio root pode ter permisso para modificar este arquivo.
Este arquivo lido antes do arquivo de configurao pessoal de cada usurio (.profile(root) e .bash_profile).
Quando carregado atravs de um shell que requer login (nome e senha), o bash procura estes arquivos em
seqncia e executa os comandos contidos, caso existam:
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
Caso o bash seja carregado atravs de um shell que no requer login (um terminal no X, por exemplo), o
seguinte arquivo executado: ~/.bashrc.
Observao: Nos sistemas Debian, o profile do usurio root est configurado no arquivo /root/.profile. A razo
disto porque se o bash for carregado atravs do comando sh, ele far a inicializao clssica deste shell lendo
primeiro o arquivo /etc/profile e aps o ~/.profile e ignorando o .bash_profile e .bashrc que so arquivos de
configurao usados somente pelo Bash. Exemplo, inserindo a linha mesg y no arquivo /etc/profile permite que
todos os usurios do sistema recebam pedidos de talk de outros usurios. Caso um usurio no quiser receber
pedidos de talk, basta somente adicionar a linha "mesg y" no arquivo pessoal .bash_profile.

21.5 Arquivo .bash_profile


Este arquivo reside no diretrio pessoal de cada usurio. executado por shells que usam autenticao (nome e
senha). .bash_profile contm comandos que so executados para o usurio no momento do login no sistema
aps o /etc/profile. Note que este um arquivo oculto pois tem um "." no incio do nome.
Por exemplo colocando a linha: alias ls='ls --colors=auto' no .bash_profile, cria um apelido para o comando ls
--colors=auto usando ls, assim toda vez que voc digitar ls ser mostrada a listagem colorida.

21.6 Arquivo .bashrc


Possui as mesmas caractersticas do .bash_profile mas executado por shells que no requerem autenticao
(como uma seo de terminal no X).
Os comandos deste arquivo so executados no momento que o usurio inicia um shell com as caractersticas
acima. Note que este um arquivo oculto pois tem um "." no incio do nome.

21.7 Arquivo .hushlogin


Guia Foca GNU/Linux

173

Deve ser colocado no diretrio pessoal do usurio. Este arquivo faz o bash pular as mensagens do /etc/motd,
nmero de e-mails, etc. Exibindo imediatamente o aviso de comando aps a digitao da senha.

21.8 Arquivo /etc/environment


Armazena as variveis de ambiente que so exportadas para todo o sistema. Uma varivel de ambiente controla
o comportamento de um programa, registram detalhes teis durante a seo do usurio no sistema, especificam
o idioma das mensagens do sistema, etc.
Exemplo do contedo de um arquivo /etc/environment:
LANG=pt_BR
LC_ALL=pt_BR
LC_MESSAGES=pt_BR

21.9 Diretrio /etc/skel


Este diretrio contm os modelos de arquivos .bash_profile e .bashrc que sero copiados para o diretrio pessoal
dos usurios no momento que for criada uma conta no sistema. Desta forma voc no precisar configurar estes
arquivos separadamente para cada usurio.

Guia Foca GNU/Linux

174

Captulo 22 Impresso
Este capitulo descreve como imprimir em seu sistema GNU/Linux e as formas de impresso via spool, rede,
grfica, etc.
Antes de seguir os passos descritos neste captulo, tenha certeza que seu Kernel foi compilado com o suporte a
impressora paralela ativado, caso contrrio at mesmo a impresso direta para a porta de impressora falhar.
Para detalhes veja Recompilando o Kernel, Seo 16.11 .

22.1 Portas de impressora


Uma porta de impressora o local do sistema usado para se comunicar com a impressora. Em sistemas
GNU/Linux, a porta de impressora identificada como lp0, lp1, lp2 no diretrio /dev, correspondendo
respectivamente a LPT1, LPT2 e LPT3 no DOS e Windows. Recomendo que o suporte a porta paralela esteja
compilado como mdulo no Kernel.

22.2 Imprimindo diretamente para a porta de impressora


Isto feito direcionando a sada ou o texto com > diretamente para a porta de impressora no diretrio /dev.
Supondo que voc quer imprimir o texto contido do arquivo trabalho.txt e a porta de impressora em seu sistema
/dev/lp0, voc pode usar os seguintes comandos:
cat trabalho.txt >/dev/lp0 - Direciona a sada do comando cat para a impressora.
cat <trabalho.txt >/dev/lp0. Faz a mesma coisa que o acima.
cat -n trabalho.txt >/dev/lp0 - Numera as linhas durante a impresso.
head -n 30 trabalho.txt >/dev/lp0 - Imprime as 30 linhas iniciais do arquivo.
cat trabalho.txt|tee /dev/lp0 - Mostra o contedo do cat na tela e envia tambm para a impressora.
Os mtodos acima servem somente para imprimir em modo texto (letras, nmeros e caracteres semi-grficos).

22.3 Imprimindo via spool


A impresso via spool tem por objetivo liberar logo o programa do servio de impresso deixando um outro
programa especifico tomar conta. Este programa chamado de daemon de impresso, normalmente o lpr ou o
lprng (recomendado) em sistemas GNU/Linux.
Logo aps receber o arquivo que ser impresso, o programa de spool gera um arquivo temporrio (normalmente
localizado em /var/spool/lpd) que ser colocado em fila para a impresso (um trabalho ser impresso aps o
outro, em seqncia). O arquivo temporrio gerado pelo programa de spool apagado logo aps concluir a
impresso. Antes de se imprimir qualquer coisa usando os daemons de impresso, preciso configurar os
parmetros de sua impressora no arquivo /etc/printcap. Um arquivo /etc/printcap para uma impressora local
padro se parece com o seguinte:
lp|Impressora compatvel com Linux
:lp=/dev/lp0
:sd=/var/spool/lpd/lp
:af=/var/log/lp-acct
:lf=/var/log/lp-errs
:pl#66
:pw#80
:pc#150
:mx#0
:sh
possvel tambm compartilhar a impressora para a impresso em sistemas remotos, isto ser visto em uma
seo separada neste guia. Usando os exemplos anteriores da seo Imprimindo diretamente para uma porta de
impressora, vamos acelerar as coisas:
cat trabalho.txt |lpr - Direciona a saida do comando cat para o programa de spool lpr.
cat <trabalho.txt |lpr. Faz a mesma coisa que o acima.
cat -n trabalho.txt |lpr - Numera as linhas durante a impresso.
head -n 30 trabalho.txt |lpr - Imprime as 30 linhas iniciais do arquivo.
A fila de impresso pode ser controlada com os comandos:
lpq - Mostra os trabalhos de impresso atuais
lprm - Remove um trabalho de impresso
Ou usado o programa de administrao lpc para gerenciar a fila de impresso (veja a pgina de manual do lpc
ou digite ? ao iniciar o programa para detalhes).
Guia Foca GNU/Linux

175

OBS1: Se a impressora no imprimir ou no for possvel compartilhar a porta de impressora paralela com outros
dispositivos (tal como o plip), verifique se o mdulo parport_pc foi carregado e com os valores de irq e I/O
corretos (por exemplo, modprobe parport_pc io=0x378 irq=7). Muitas vezes sua porta paralela pode funcionar
sem problemas durante a impresso, mas se ao utilizar plip ocorrerem erros, a causa pode ser essa. Na
distribuio Debian, use o programa modconf para configurar os valores permanentemente para o mdulo
parport_pc.
OBS2: Se tiver mais de uma impressora instalada na mquina, ser necessrio especificar a opo "-P
impressora" para especificar qual impressora deseja imprimir/controlar.

22.4 Impresso em modo grfico


A impresso em modo grfico requer que conhea a marca e modelo de sua impressora e os mtodos usados
para imprimir seus documentos. Este guia abordar somente a segunda recomendao :-)

22.4.1 Ghost Script


O mtodo mais usados pelos aplicativos do GNU/Linux para a impresso de grficos do Ghost Script. O Ghost
Script (chamado de gs) um interpretador do formato Pos Script (arquivos .ps) e pode enviar o resultado de
processamento tanto para a tela como impressora. Ele est disponvel para diversas plataformas e sistema
operacionais alm do GNU/Linux, inclusive o DOS, Windows, OS/2, etc.
O formato .ps esta se tornando uma padronizao para a impresso de grficos em GNU/Linux devido a boa
qualidade da impresso, liberdade de configurao, gerenciamento de impresso feito pelo gs e por ser um
formato universal, compatveis com outros sistemas operacionais.
Para imprimir um documento via Ghost Script, voc precisar do pacote gs, gsfonts (para a distribuio Debian
e distribuies baseadas, ou outros de acordo com sua distribuio Linux) e suas dependncias. A distribuio
Debian vem com vrios exemplos Pos Script no diretrio /usr/share/doc/gs/example que so teis para o
aprendizado e testes com o Ghost Script.
Hora da diverso:
Copie os arquivos tiger.ps.gz e alphabet.ps.gz do diretrio /usr/share/doc/gs/examples (sistemas Debian)
para /tmp e descompacte-os com o comando gzip -d tiger.ps.gz e gzip -d alphabet.ps.gz. Se a sua
distribuio no possui arquivos de exemplo ou voc no encontra nenhuma referncia de onde se
localizam, mande um e-mail que os envio os 2 arquivos acima (so 32Kb).
O Ghost Script requer um monitor EGA, VGA ou superior para a visualizao dos seus arquivos (no
tenho certeza se ele funciona com monitores CGA ou Hrcules Monocromtico) .
Para visualizar os arquivos na tela digite:
gs tiger.ps
gs alphabet.ps
Para sair do Ghost Script pressione CTRL+C. Neste ponto voc deve ter visto um desenho de um tigre e
(talvez) letras do alfabeto. Se o comando gs alphabet.ps mostrou somente uma tela em branco, voc se
esqueceu de instalar as fontes do Ghost Script (esto localizadas no pacote gsfonts na distribuio Debian).
Para imprimir o arquivo alphabet.ps use o comando:
gs -q -dSAFER -dNOPAUSE -sDEVICE=epson -r240x72 -sPAPERSIZE=legal -sOutputFile=/dev/lp0
alphabet.ps
O arquivo alphabet.ps deve ser impresso. Caso aparecerem mensagens como Error: /invalidfont in findfont
no lugar das letras, voc se esqueceu de instalar ou configurar as fontes do Ghost Script. Instale o pacote de
fontes (gsfonts na Debian) ou verifique a documentao sobre como configurar as fontes.
Cada uma das opes acima descrevem o seguinte:
-q, -dQUIET - No mostra mensagens de inicializao do Ghost Script.
-dSAFER - uma opo para ambientes seguros, pois desativa a operao de mudana de nome e deleo
de arquivo e permite somente a abertura dos arquivos no modo somente leitura.
-dNOPAUSE - Desativa a pausa no final de cada pgina processada.
-sDEVICE=dispositivo - Dispositivo que receber a saida do Ghost Script. Neste local pode ser
especificada a marca o modelo de sua impressora ou um formato de arquivo diferente (como pcxmono,
bmp256) para que o arquivo .ps seja convertido para o formato designado.
Para detalhes sobre os dispositivos disponveis em seu Ghost Script, digite gs --help|less ou veja a pgina
de manual. Normalmente os nomes de impressoras e modelos so concatenados, por exemplo, bjc600 para
a impressora Canon BJC 600, epson para impressoras padro epson, stcolor para Epson Stylus color, etc.
O Hardware-HOWTO contm referncias sobre hardware suportados pelo GNU/Linux, tal como
impressoras e sua leitura pode ser til.
-r<ResH>x<ResV> - Define a resoluo de impresso (em dpi) Horizontal e Vertical. Os valores
Guia Foca GNU/Linux

176

dependem de sua impressora.


-sPAPERSIZE=tamanho - Tamanho do papel. Podem ser usados a4, legal, letter, etc. Veja a pgina de
manual do gs para ver os outros tipos suportados e suas medidas.
-sOutputFile=dispositivo - Dispositivo que receber a saida de processamento do gs. Voc pode
especificar
o
arquivo.epson - Nome do arquivo que receber todo o resultado do processamento. O
arquivo.epson ter toda a impresso codificada no formato entendido por impressoras epson e poder
ser impresso com o comando cat arquivo.epson >/dev/lp0.
Uma curiosidade til: possvel imprimir este arquivo em outros sistemas operacionais, tal como o
DOS digitando: copy /b arquivo.eps prn (lembre-se que o DOS tem um limite de 8 letras no nome do
arquivo e 3 na extenso. Voc deve estar compreendendo a flexibilidade que o GNU/Linux e suas
ferramentas permitem, isso s o comeo.
o
impressao%d.epson - Nome do arquivo que receber o resultado do processamento. Cada
pgina ser gravada em arquivos separados como impressao1.epson, impressao2.epson.
Os arquivos podem ser impressos usando os mesmos mtodos acima.
o
/dev/lp0 - para uma impressora em /dev/lp0
o
- - para redirecionar a sada de processamento do gs para a sada padro. til para usar o gs
com pipes |.
o
\|lpr - Envia a sada do Ghost Script para o daemon de impresso. O objetivo deixar a
impresso mais rpida.
Se voc curioso ou no esta satisfeito com as opes mostradas acima, veja a pgina de manual do gs.

22.5 Magic Filter


O Magic Filter um filtro de impresso inteligente. Ele funciona acionado pelo spool de impresso (mais
especificamente o arquivo /etc/printcap) e permite identificar e imprimir arquivos de diversos tipos diretamente
atravs do comando lpr arquivo.
um timo programa e ALTAMENTE RECOMENDADO se voc deseja apenas clicar no boto imprimir e
deixar os programas fazerem o resto. A inteno do programa justamente automatizar os trabalhos de
impresso e spool.
A maioria dos programas para ambiente grfico X11, incluindo o Netscape, Word Perfect, Gimp e Star Office
trabalham nativamente com o magicfilter.

22.5.1 Instalao e configurao do Magic Filter


O Magic Filter encontrado no pacote magicfilter da distribuio Debian e baseadas.
Sua configurao pode ser feita com o programa magicfilterconfig que torna o processo de configurao rpido
e fcil para quem no conhece a sintaxe do arquivo /etc/printcap ou no tem muitas exigncias sobre a
configurao detalhada da impressora.
Aps instalar o magicfilter reinicie o daemon de impresso (se estiver usando a Debian, entre no diretrio
/etc/init.d e como usurio root digite ./lpr restart ou ./lprng restart).
Para testar o funcionamento do magicfilter, digite lpr alphabet.ps e lpr tiger.ps, os arquivos sero enviados para
o magicfilter que identificar o arquivo como Pos Script, executar o Ghost Script e retornar o resultado do
processamento para o daemon de impresso. O resultado ser visto na impressora. Se tiver problemas, verifique
se a configurao feita com o magicfilterconfig est correta. Caso precise re-configurar o magicfilger, digite
magicfilterconfig --fource (lembre-se que a opo --force substitui qualquer configurao personalizada que
tenha adicionado ao arquivo /etc/printcap).

22.5.2 Outros detalhes tcnicos sobre o Magic Filter


Durante a configurao do magicfilter, a seguinte linha adicionada ao arquivo /etc/printcap:
:if=/etc/magicfilter/epson9-filter
No tenho nenhum contrato de divulgao com a epson :-) estou usando esta marca de impressora porque a
mais tradicional e facilmente encontrada. A linha que comea com :if no magicfilter identifica um arquivo de
filtro de impresso.
O arquivo /etc/magicfilter/epcon9-filter criado usando o formato do magicfilter, e no difcil entender seu
contedo e fazer algumas modificaes:
#! /usr/sbin/magicfilter
#
# Magic filter setup file for 9-pin Epson (or compatible) printers
Guia Foca GNU/Linux

177

#
# This file is in the public domain.
#
# This file has been automatically adapted to your system.
#
# wild guess: native control codes start with ESC
0
\033
cat
# PostScript
0 %! filter /usr/bin/gs -q -dSAFER -dNOPAUSE -r120x72 -sDEVICE=epson -sOutputFile=- - -c quit
0 \004%! filter /usr/bin/gs -q -dSAFER -dNOPAUSE -r120x72 -sDEVICE=epson -sOutputFile=- - -c quit
# PDF
0 %PDF fpipe /usr/bin/gs -q -dSAFER -dNOPAUSE -r120x72 -sDEVICE=epson -sOutputFile=- $FILE -c quit
# TeX DVI
0 \367\002 fpipe /usr/bin/dvips -X 120 -Y 72 -R -q -f
# compress'd data
0 \037\235 pipe /bin/gzip -cdq
# packed, gzipped, frozen and SCO LZH data
0 \037\036 pipe /bin/gzip -cdq
0 \037\213 pipe /bin/gzip -cdq
0 \037\236 pipe /bin/gzip -cdq
0 \037\240 pipe /bin/gzip -cdq
0 BZh pipe
/usr/bin/bzip2 -cdq
# troff documents
0 .\?\?\040
fpipe `/usr/bin/grog -Tps $FILE`
0 .\\\"
fpipe `/usr/bin/grog -Tps $FILE`
0 '\\\"
fpipe `/usr/bin/grog -Tps $FILE`
0 '.\\\"
fpipe `/usr/bin/grog -Tps $FILE`
0 \\\"
fpipe `/usr/bin/grog -Tps $FILE`
Voc deve ter notado que para cada tipo de arquivo existe o respectivo programa que executado, basta voc
modificar as opes usadas nos programas neste arquivo (como faria na linha de comando) para afetar o
comportamento da impresso.
Por exemplo, modificando a resoluo para -r240x72 no processamento de arquivos Pos Script (gs), a
impressora passar a usar esta resoluo.

22.6 Impresso remota


Aqui ser explicado como fazer seu sistema Linux atuar como um servidor de impresso para outras mquinas
de sua rede.

22.6.1 Dando permisso para impreso remota via lpd/lprng


As mquinas autorizadas a usar a impressora local devero ter seus nomes incluidos no arquivo /etc/hosts.lpd
(para o daemon lpd padro) ou /etc/lprng/lpd.perms (para o daemon lpd do pacote lprng).
O arquivo /etc/lprng/lpd.perms do lprng mais configurvel (e complexo), uma linha como:
ACCEPT HOST=estacao1.dominio.org SERVICE=X,R,P,Q,M,C
aceitar os servios (SERVICE) de conexo (X), lpr (R), impresso de trabalhos (P), lpq (Q), lprm (M) e lpc (C)
da mquina estacao1.dominio.org. Veja os comentrios neste arquivo para entender o funcionamento de suas
opes ou a pgina de manual do lpd.perms.

22.6.2 Impresso via rlpr


O rlpr redireciona a impresso diretamente ao servidor de impresso. Sua vantagem que a impresso feita
diretamente sem a necessidade de configurar um arquivo /etc/printcap e dispensar trabalhos adicionais de
administrao. Ele envia o trabalho de impresso diretamente ao daemon lpd na na porta 515 (a mquina deve
estar configurada para aceitar conexes, veja Dando permisso para impreso remota via lpd/lprng, Seo
22.6.1).
Para enviar o arquivo listagem.txt para a impressora hp no servidor impr.meudominio.org:
rlpr -Himpr.meudominio.org -Php listagem.txt
A opo -H especifica o nome do servidor de impresso e -P o nome da impressora. Caso no tenha permisses
para imprimir na impressora remota, uma mensagem ser mostrada.
Guia Foca GNU/Linux

178

22.6.3 Impresso via printcap


Atravs deste mtodo, a impresso ser tratada atravs do spool remoto (lpd ou lprng) e enviada ao servidor de
impresso. Para que isto funcione, utilize a seguinte configurao no seu arquivo /etc/printcap:
lp:Impressora remota:\
:sd=/var/spool/lpd/lp:\
:rm=impr.meudominio.org:\
:rp=hp:\
:sh:
Ento quando for executado o comando lpr na mquina remota, o lprng enviar a impresso para a impressora
hp (rp=hp) na mquina impr.meudominio.org (rm=impr.meudominio.org).
Caso voc tenha a opo de imprimir tanto para uma impressora local quando para uma remota, voc poder
usar uma configurao como a seguinte:
lp|hp|Impressora Local:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/hp:\
:sh:\
:pw#80:\
:pl#66: \
:px#1440:\
:mx#0:\
:if=/etc/magicfilter/dj930c-filter:\
:af=/var/log/lp-acct:\
:lf=/var/log/lp-errs:
hp-r|Impressora Remota:\
:sd=/var/spool/lpd/lp:\
:rm=impr.meudominio.org:\
:rp=hp:\
:sh:
Para selecionar qual impressora ser usada, adicione a opo -Pimpressora na linha de comando dos utilitrios
lpr, lpq, lprm (por exemplo, lpr -Php-r relatorio.txt. Quando a opo -P especificada, a impressora lp ser
usada por padro.
OBS Lembre-se de reiniciar seu daemon de impresso toda vez que modificar o arquivo /etc/printcap.

22.6.4 Gerenciando impresso de mquinas Windows


Ser necessrio ter o pacote samba instalado e adicionar as seguintes linhas no seu arquivo /etc/samba/smb.conf:
[hp-printer]
path = /tmp
printer name=HP DeskJet 690C
printable = yes
print command = lpr -r -h -P %p %s
valid users = winuser winuser2
create mode = 0700
O compartilhamento acima tornar disponvel a impressora local "lp" as mquinas Windows com o nome "HP
DeskJet 690C". Uma impressora alternativa pode ser especificada modificando a opo -P da linha de comando
do lpr. Note que somente os usurios "winuser" e "winuser2" podero usar esta impressora.
Agora ser necessrio instalar o driver desta impressora no Windows (HP 690C) e escolher impressora instalada
via rede e seguir os demais passos de configurao.

Guia Foca GNU/Linux

179

Captulo 23 Configurao do sistema


Este captulo traz explicaes sobre algumas configuraes teis que podem ser feitas no sistema. Neste
documento assumimos que o Kernel do seus sistema j possui suporte a pgina de cdigo 860 (Portuguesa) e o
conjunto de caracteres ISO-8859-1.

23.1 Acentuao
Permite que o GNU/Linux use a acentuao. A acentuao do modo texto independente do modo grfico; voc
pode configurar tanto um como o outro ou ambos. Para maiores detalhes veja Acentuao em modo Texto,
Seo 23.1.1 e/ou Acentuao em modo grfico, Seo 23.1.2.
Note que os mapas de teclado usados em modo texto so diferentes dos usados em modo grfico. Geralmente os
mapas de teclados para o modo grfico tem uma letra X no nome.

23.1.1 Acentuao em modo Texto


Caso sua distribuio Debian esteja acentuando corretamente no modo texto voc no precisar ler esta seo.
Antes de prosseguir, verifique se voc possui o pacote kbd ou console-dat instalado em seu sistema com o
comando: dpkg -l kbd. Caso no existam, alguns programas de configurao e arquivos de fontes no estaro
disponveis.
Siga os passos abaixo para colocar e acentuao em funcionamento para o modo Texto na Debian:
Mapa de Teclados
Debian 2.2 (Potato)
Verifique se possui o arquivo de mapa de teclado correspondente ao seu modelo. Um mapa de teclado
so arquivos com a extenso .map ou .kmap que fazem a traduo do cdigo enviado pelo teclado para
um caracter que ser exibido na tela alm de outras funes como o "Dead Keys" (pressionamento de
uma tecla que no gera nenhum caracter mas afetar o prximo caracter gerado - como na acentuao,
quando voc aperta o ' no aparece nada mas aps apertar a letra A um caracter exibido. A
combinao ' + A um Dead Key e est definido no arquivo do mapa de teclados).
Os tipos de teclados mais usados aqui no Brasil so o padro EUA e o ABNT2. O teclado padro EUA
o modelo usado nos Estados Unidos e voc precisar apertar '+C para gerar um Cedilha (), enquanto o
teclado ABNT2 possui todas as teclas usadas no Brasil (semelhante a uma mquina de escrever) e o
Cedilha possui sua prpria tecla aps a letra L. O mapa de teclados correspondente ao teclado padro
EUA o br-latin1 enquanto o ABNT2 o br-abnt2.
Se no tiver o arquivo correspondente ao seu teclado ou no encontra-lo, voc poder copia-lo de
http://www.metainfo.org/focalinux/download/outros/Consolemaps_tar.gz, este arquivo possui 3 mapas
de teclados para os 2 teclados Brasileiros mais usados e um de Portugal (raramente usado no Brasil).
Descompacte o arquivo Consolemaps_tar.gz para um local em seu sistema (por exemplo: /tmp) com o
comando: tar -xzvf Consolemaps_tar.gz. Note que este arquivo serve somente para a configurao no
modo texto (console), veja a seo seguinte para configurar a acentuao no modo grfico.
Debian 3.0 (Woody)
Digite dpkg-reconfigure console-data. Aps a tela inicial, selecione a opo Select Keymap from Arch
List, qwerty e selecione os passos seguintes de acordo com seu tipo de teclado:
USInternacional - Selecione US American na lista de opes e em seguida Standard e US
International (ISO-8859-1).
ABNT2 (com cedilha) - Selectione Brazilian na lista de opes.
Configurando o Mapa de Teclados
Se o arquivo do mapa de teclados possuir a extenso .gz, descompacte-o com o comando: gzip -dc
arquivo.gz>/etc/kbd/default.map ou gzip -d arquivo.gz para descompactar e depois o comando cp
arquivo.kmap /etc/kbd/default.
Se o arquivo possuir a extenso .tar.gz, descompacte-o com o comando: tar -zxvf arquivo.tar.gz e depois use
o comando cp arquivo.kmap /etc/kbd/default.
Faa isto substituindo arquivo.gz ou arquivo.tar.gz com o nome do arquivo compactado que contm o mapa
de teclados.
Voc pode manter o arquivo /etc/kbd/default.map.gz, pois este arquivo lido pelos scripts de inicializao
da Debian somente se o arquivo /etc/kbd/default.map no for encontrado.
Se desejar usar o comando loadkeys, voc precisa copiar o mapa de teclados para um local conhecido no
sistema, ento copie o arquivo arquivo.kmap para /usr/share/keymaps/i386/qwerty (em sistemas Debian) ou
algum outro local apropriado. Note que o arquivo pode ser compactado pelo gzip e copiado para
Guia Foca GNU/Linux

180

/usr/share/keymaps/i386/qwerty que ser lido sem problemas pelo sistema encarregado de configurar o
teclado e acentuao.
Configurando a fonte de Tela
Descomente a linha CONSOLE_FONT=iso01.f16 e modifique-a para CONSOLE_FONT=lat1u-16.psf no
arquivo /etc/kbd/config.
Esta linha diz ao sistema que fonte deve carregar para mostrar os caracteres na tela. A fonte de caracteres
deve ser compatvel com o idioma local, pois nem todas suportam caracteres acentuados. A fonte prefervel
para exibir os caracteres acentuados a lat1u-16, o -16 no nome do arquivo significa o tamanho da fonte. As
fontes de tela esto disponveis no diretrio /usr/share/consolefonts.
Neste ponto voc pode verificar se o seu sistema esta reconhecendo corretamente a acentuao entrando no
editor de textos ae e digitando: . Se todos os acentos apareceram corretamente, parabns! voc j passou
pela parte mais difcil. Agora o prximo passo a acentuao no Bash.
Acentuao no aviso de comando (bash)
Para acentuar no Bash (interpretador de comandos) necessrio alterar o arquivo /etc/inputrc e fazer as
seguintes modificaes:
1. Descomente a linha: "#set convert-meta off" voc faz isto apagando o smbolo "#" antes do nome.
Um comentrio faz com que o programa ignore linha(s) de comando. muito til para descrever o
funcionamento de comandos/programas (voc vai encontrar muito isso no sistema GNU/Linux, tudo
muito bem documentado).
2. Inclua a seguinte linha no final do arquivo:
set meta-flag on
3. O contedo deste arquivo deve ficar assim:
set convert-meta off
set input-meta on
set output-meta on
set meta-flag on
4. Digite exit ou pressione CTRL+D para fazer o logout. Entre novamente no sistema para que as
alteraes faam efeito.
Pronto! voc j esta acentuando em modo texto!. Talvez seja necessrio que faa alguma alterao em arquivos
de configurao de outros programas para que possa acentuar corretamente (veja se existe algum arquivo com o
nome correspondente ao programa no diretrio /etc).
A distribuio Debian tambm traz o utilitrio kbdconfig que tambm faz a configurao do mapa de teclados de
forma interativa e gravando automaticamente o mapa de teclados em /etc/kbd/default.map.gz. Se preferir usar o
kbdconfig ainda ser necessrio executar os passos acima para habilitao da fonte lat1u-16 e acentuao no
bash.

23.1.2 Acentuao em modo grfico


A acentuao no modo grfico feita de maneira simples:
Mapa de Teclados
Verifique se possui o arquivo de mapa de teclado para o modo grfico que corresponde ao seu teclado. Um
arquivo de mapa de teclado faz a traduo do cdigo enviado pelo teclado para um caracter que ser exibido
na tela. Este tipo de arquivo identificado com a extenso .map. Se no tiver este arquivo ou no encontralo, voc pode copia-lo de http://www.metainfo.org/focalinux/download/outros/Xmodmaps_tar.gz, este
arquivo possui 3 mapas de teclados para os 2 teclados Brasileiros mais usados e um de Portugal.
Descompacte o arquivo Xmodmaps_tar.gz para um local em seu sistema (por exemplo: /tmp) com o
comando: tar -xzvf Xmodmaps-tar.gz. Note que os mapas de teclado do Xmodmaps_tar.gz somente servem
para a configurao no modo grfico (X-Window).
Acentuao no X
Para acentuar no X voc precisar descompactar e copiar o arquivo de mapa de teclado adequado ao seu
computador em cima do arquivo /etc/X11/Xmodmap que j est em seu sistema. No meu caso, eu usei o
seguinte comando (aps descompactar o arquivo): "cp Xmodmap.us+ /etc/X11/Xmodmap". Agora voc
precisa reiniciar o servidor X para que as alteraes faam efeito (ou digite xmodmap /etc/X11/Xmodmap
no xterm para aplicar as alteraes na seo atual).
Os passos descritos at aqui funcionaro para pessoas que iniciam o X pelo prompt (usando o comando
startx, xinit, etc), veja o passo seguinte para acentuar pelo XDM.
Acentuao no XDM
Para acentuar no XDM, inclua as seguintes linhas no arquivo /etc/X11/xdm/Xsetup_0:
sysmodmap=/etc/X11/Xmodmap

Guia Foca GNU/Linux

181

if [ -r $sysmodmap ]; then
xmodmap $sysmodmap
fi

23.2 Nmero de Cores do ambiente grfico


O nmero de cores do ambiente grfico pode ser alterado facilmente. Por padro, a maioria das instalaes e
distribuies GNU/Linux vem com apenas 16 cores (4 bits) porque um nmero de cores suportado por
qualquer placa de vdeo, sem modificaes especiais.
A configurao de mais de 16 cores exige que voc tenha escolhido o modelo correto de sua placa de vdeo
(usando o programa xf86config (na Debian 2.2) ou digitando dpkg-reconfigure xserver-svga (na Debian 3.0)).
Por exemplo, minha placa de vdeo uma Trident 9680 na tela de seleo do programa xf86config eu escolhi
Trident 9680 Generic (cdigo 671 no servidor X 3.3.6) que o driver que permite o uso de todas as cores
permitidas por esta placa e tambm usar os recursos de acelerao que ela oferece. Voc pode utilizar o
programa xviddetect para obter o modelo de sua placa de vdeo e o servidor X correspondente a ela, basta
digitar xviddetect na linha de comando. O comando dpkg-reconfigure xserver-svga da Debian 3.0 (Woody)
mais flexvel e possui uma facilidade maior de configurao, inclusive auto-detectando seu chipset de video e
configurando seu monitor de acordo com o tamanho da tela (em polegadas).
Com uma configurao correta possvel atingir at 32 bits de cores (pocket pixel) no X. A configurao do X
utiliza o nmero de bits ao invs do nmero de cores na sua configurao. Abaixo uma tabela comparativa:
Bits Nmero Max. Cores
Memria mnima requerida na Placa de Vdeo
------- ------------------------------------------------------------------------------4 bits
16 cores
256Kb
8 bits
256 cores
512Kb
16 bits 32.384/65536 cores
1MB
24 bits 16 milhes de cores (pixel menor)
1MB
32 bits 16 milhes de cores
1MB
Lembre-se que a tabela acima leva em considerao a resoluo de vdeo de 640x480. Caso utilizar uma
resoluo de 800x600, 1024x768 ou superior, os requerimentos de memria de vdeo para mostrar o nmero de
cores da tabela acima sero maiores. Para mostrar 1024x768 - 16 milhes de cores sero necessrios 2MB de
memria de vdeo, por exemplo. A resoluo de 24 bits normalmente traz problemas em alguns chipsets,
considere a utilizao da resoluo de 16 ou 32 bits.
O uso de uma resoluo de vdeo como 800x600 ou superior, tambm depende do monitor de vdeo. Nem todos
os monitores VGA e SVGAs do mercado suportam resolues acima de 640x480.
OBS: Se tiver escolha, prefira placas de vdeo independentes da placa-me. Normalmente as placas de vdeo onboard usam parte da memria RAM como memria de vdeo (memria compartilhada) e isto diminui a
performance de vdeo e a performance do sistema porque se voc estiver usando 2MB de memria de vdeo,
ter 2 MB a menos para executar seus programas. O preo destas placas geralmente diminui na proporo do
desempenho que oferecem.
Uma boa escolha para uma melhor qualidade e maior velocidade 16 bits. O motivo disto que quanto maior a
qualidade e a resoluo, mais tempo ser levado para os pixels serem atualizados no monitor. Veja abaixo como
configurar o nmero de cores para quem esta iniciando o X-Window pelo modo texto e XDM.

23.2.1 Configurando o nmero de cores para quem inicia pelo prompt


Aps configurar corretamente a resoluo de video aceita pelo seu servidor X com xf86config ou dpkgreconfigure xserver-svga (Debian 3.0) use o comando startx -- -bpp 8 no lugar de startx. Note que estou usando
256 cores como exemplo (veja a tabela acima), se quiser usar mais cores e sua placa de vdeo tiver memria
suficiente, use 16, 24 ou 32. Os usurios de distribuies baseadas na Debian 2.2 tambm tem o anXious (um
programa em linguagem Perl) que permite fazer a configurao no modo texto atravs de menus. Para a Debian
3.0 (Woody) o comando dpkg-reconfigure xserver-svga o mais fcil e rpido, ele detecta sua placa de video e
configura seu monitor de acordo com o tamanho de tela, alm de permitir configuraes detalhadas se
selecionar a opo "Avanado" de configurao.
Uma maneira mais prtica de iniciar sempre com uma mesma resoluo incluir um alias no arquivo .bashrc em
seu diretrio: alias startx='startx -- -bpp 8'
Desta forma toda a vez que se digitar startx, ser executado o comando da direita do sinal de igual.
OBS: Se alguma coisa der errado e a imagem aparecer distorcida ou simplesmente no aparecer, no se
desespere! Pressione simultaneamente CTRL+ALT+BackSpace, esta a combinao de teclas finaliza
imediatamente o servidor X.

23.2.2 Configurando o nmero de cores para quem inicia pelo XDM


Guia Foca GNU/Linux

182

Assumindo que o seu arquivo /etc/X11/XF86Config foi gerado corretamente, modifique o arquivo
/etc/X11/xdm/Xservers e alterar o final da linha colocando -bpp resoluo. Por exemplo, a ltima linha de meu
arquivo Xservers era:
:0 local /usr/bin/X11/X vt7
eu a modifiquei para
:0 local /usr/bin/X11/X vt7 -bpp 16
Pronto, basta reiniciar o servidor X (usando CTRL+ALT+BackSpace) ou reiniciando atravs do arquivo
/etc/init.d/xdm usando xdm restart e seu sistema passar a usar 65.000 cores de vdeo.
OBS: Lembre-se de salvar todos os seus arquivos antes de reiniciar o servidor X, pois todos os programas que
estiverem abertos no sistema sero imediatamente fechados.

23.2.3 Ajustando o alinhamento da imagem no X e outras configuraes


Aps voc ter criado o arquivo de configurao do X com o xf86config (modo texto), dpkg-reconfigure xserversvga ou XF86Setup (modo grfico), possvel que a configurao precise de um ajuste fino para o alinhamento
correto da imagem no monitor. Muitos monitores modernos possuem teclas para esta funo, mas desde que
monitor esteja com sua imagem aparecendo corretamente em modo texto, o ajuste dever ser feito no servidor
X. Este ajuste feito atravs do utilitrio xvidtune.
Entre no modo grfico como usurio root, abra o xterm e digite xvidtune uma tela aparecer com um aviso
sobre o uso do programa, clique em OK. Recomendo que ative o boto AUTO para que a tela v se ajustando na
medida que voc mexe nos ajustes.
Para restaurar a configurao anterior, pressione o boto Restore (no faz efeito caso o boto Apply tenha sido
pressionado). Clicando em Quit, voc sai do xvidtune sem salvar a configurao. Quando estiver satisfeito com
a sua configurao/alinhamento da imagem, clique em Apply, a configurao escolhida estar salva.

23.2.4 Sobre o nmero de cores para jogos que funcionam no X


A maioria dos jogos se recusam a funcionam com uma quantidade de cores maior do que 8 bits. Se voc instalar
algum jogo e ao tentar executa-lo simplesmente no acontecer nada ou mostrar uma mensagem de erro,
modifique o nmero de cores para 8 bits, provavelmente o problema estar ai.
Lembre-se: Quanto mais cores usar e maior for sua resoluo, mais lento ficar a velocidade de vdeo. Por este
motivo alguns jogos se recusam a funcionar com mais de 8 bits de cores.

Guia Foca GNU/Linux

183

Captulo 24 Compilao
Este captulo explica o que compilao, os principais compiladores e como compilar programas e
principalmente o Kernel do GNU/Linux com o objetivo de personaliza-lo de acordo com os dispositivos usados
em seu computador e/ou os recursos que planeja utilizar.

24.1 O que compilao?


a transformao de um programa em cdigo fonte (programa escrito pelo programador) em linguagem de
mquina (programa executvel).
Existem centenas de linguagens de programao diferentes umas das outras, cada uma oferece recursos
especficos para atender melhor uma necessidade ou caractersticas particulares, algumas so voltadas para
bancos de dados, outras somente para a criao de interfaces comunicao ( front-ends), aprendizado, etc. Cada
linguagem de programao possui comandos especficos que desempenham alguma funo, mas todas
trabalham com variveis de memria para a manipulao de dados de entrada/processamento.

24.2 Compilador
o programa que converte o programa feito pelo programador em linguagem de mquina. Aps o processo de
compilao o programa estar pronto para ser executado como um arquivo binrio.
Existem muitos compiladores no ambiente GNU/Linux, um dos mais usados o gcc, o compilador para
linguagem C.

Guia Foca GNU/Linux

184

Captulo 25 Manuteno do Sistema


Este captulo descreve como fazer a manuteno de seu sistema de arquivos e os programas de manuteno
automtica que so executados periodicamente pelo sistema.

25.1 Checagem dos sistemas de arquivos


A checagem do sistema de arquivos permite verificar se toda a estrutura para armazenamento de arquivos,
diretrios, permisses, conectividade e superfcie do disco esto funcionando corretamente. Caso algum
problema exista, ele poder ser corrigido com o uso da ferramenta de checagem apropriada. As ferramentas de
checagem de sistemas de arquivos costumam ter seu nome iniciado por fsck e terminados com o nome do
sistema de arquivos que verifica, separados por um ponto:

fsck.ext2 - Verifica o sistema de arquivos EXT2. Pode tambm ser encontrado com o nome e2fsck.

fsck.minix - Verifica o sistema de arquivos Minix.

fsck.msdos - Verifica o sistema de arquivos Msdos. Pode tambm ser encontrado com o nome
dosfsck.
Para verificar um sistema de arquivos necessrio que ele esteja desmontado caso contrrio poder ocorrer
danos em sua estrutura. Para verificar o sistema de arquivos raz (que no pode ser desmontado enquanto o
sistema estiver sendo executado) voc precisar inicializar atravs de um disquete e executar o fsck.ext2.

25.1.1 fsck.ext2
Este utilitrio permite verificar erros em sistemas de arquivos EXT2 (Linux Native).
fsck.ext2 [opes] [dispositivo]
Onde:
dispositivo - o local que contm o sistema de arquivos EXT2 que ser verificado (parties, disquetes,
arquivos).
Opes:
-c - Faz o fsck.ext2 verificar se existem agrupamentos danificados na unidade de disco durante a
checagem.
-d - Debug - Mostra detalhes de processamento do fsck.ext2.
-f - Fora a checagem mesmo se o sistema de arquivos aparenta estar em bom estado. Por padro, um
sistema de arquivos que aparentar estar em bom estado no so verificados.
-F - Grava os dados do cache no disco antes de iniciar.
-l [arquivo] - Inclui os blocos listados no [arquivo] como blocos defeituosos no sistema de arquivos. O
formato deste arquivo o mesmo gerado pelo programa badblocks.
-L [arquivo] - Faz o mesmo que a opo -l, s que a lista de blocos defeituosos do dispositivo
completamente limpa e depois a lista do [arquivo] adicionada.
-n - Faz uma verificao de somente leitura no sistema de arquivos. Com esta opo possvel verificar o
sistema de arquivos montado. Ser assumido no para todas as perguntas e nenhuma modificao ser feita
no sistema de arquivos.
Caso a opo -c seja usada junto com -n, -l ou -L, o sistema de arquivos ser verificado e permitir somente
a atualizao dos setores danificados no alterando qualquer outra rea.
-p - Corrige automaticamente o sistema de arquivos sem perguntar. recomendvel fazer isto
manualmente para entender o que aconteceu, em caso de problemas com o sistema de arquivos.
-v - Ativa o modo verbose (mais mensagens so mostradas durante a execuo do programa).
-y - Assume sim para todas as questes.
Caso sejam encontrados arquivos problemticos e estes no possam ser recuperados, o fsck.ext2 perguntar se
deseja salva-los no diretrio lost+found. Este diretrio encontrado em todas as parties ext2.
Aps sua execuo mostrado detalhes sobre o sistema de arquivos verificado como quantidade de blocos
livres/ocupados e taxa de fragmentao.
Exemplos: fsck.ext2 /dev/hda2, fsck.ext2 -f /dev/hda2, fsck.ext2 -vrf /dev/hda1.

25.2 reiserfsck
Verifica um sistema de arquivos reiserfs em sistema de arquivos.
reiserfsck [opes] [dispositivo]
Onde:
Guia Foca GNU/Linux

185

dispositivo - Dispositivo que contm o sistema de arquivos reiserfs que ser verificado.
Opes:

-a - Mostra detalhes sobre o sistema de arquivos e sai

-j arquivo - Especifica um arquivo de Journal alternativo usado pelo sistema de arquivos.

-q quiet - No exibe mensagens sobre o status da checagem do sistema de arquivos.

-S - Constri a rvore de todos os blocos do dispositivo.


O reiserfsck possui outros modos de operao alm de checagem (o padro), para detalhes veja a pgina de
manual do programa.
Exemplos: reiserfsck /dev/hda1, reiserfsck -S /tmp/arq-reiserfs

25.3 fsck.minix
Verifica o sistema de arquivos minix em um dispositivo.
fsck.minix [opes] [dispositivo]
Onde:
dispositivo - Partio, disquete ou arquivo que contm o sistema de arquivos Minix que ser verificado
Opes:
-f - Verifica o sistema de arquivos mesmo se ele estiver perfeito.
-r - Permite reparo manual do sistema de arquivos
-a - Permite um reparo automtico do sistema de arquivos. recomendado fazer o reparo manual.
-v - Verbose - Mostra detalhes durante a execuo do programa
-s - Exibe detalhes sobre os blocos de root.
Exemplo: fsck.minix -f /dev/hda8, fsck.minix -vf /dev/hda8

25.4 badblocks
Procura blocos defeituosos em um dispositivo.
badblocks [opes] [dispositivo]
Onde:
dispositivo - Partio, disquete ou arquivo que contm o sistema de arquivos que ser verificado.
Opes:
-b [tamanho] - Especifica o [tamanho] do bloco do dispositivo em bytes
-o [arquivo] - Gera uma lista dos blocos defeituosos do disco no [arquivo]. Este lista pode ser usada com o
programa fsck.ext2 junto com a opo -l.
-s - Mostra o nmero de blocos checados durante a execuo do badblocks.
-v - Modo verbose - So mostrados mais detalhes.
-w - Usa o modo leitura/gravao. Usando esta opo o badblocks procura por blocos defeituosos gravando
alguns padres (0xaa, 0x55, 0xff, 0x00) em cada bloco do dispositivo e comparando seu contedo.
Nunca use a opo -w em um dispositivo que contm arquivos pois eles sero apagados!
Exemplo: badblocks -s /dev/hda6, badblocks -s -o bad /dev/hda6

25.5 defrag
Permite desfragmentar uma unidade de disco. A fragmentao o armazenamento de arquivos em reas no
seqenciais (uma parte armazenada no comeo a outra no final, etc), isto diminui o desempenho da unidade de
disco porque a leitura dever ser interrompida e feita a movimentao da cabea para outra regio do disco onde
o arquivo continua, por este motivo discos fragmentados tendem a fazer um grande barulho na leitura e o
desempenho menor. A desfragmentao normalmente desnecessria no GNU/Linux porque o sistema de
arquivos ext2 procura automaticamente o melhor local para armazenar o arquivo. Mesmo assim, recomendvel
desfragmentar um sistema de arquivos assim que sua taxa de fragmentao subir acima de 10%. A taxa de
fragmentao pode ser vista atravs do fsck.ext2. Aps o fsck.ext2 ser executado mostrada a taxa de
fragmentao seguida de non-contiguos.
A ferramenta de desfragmentao usada no GNU/Linux o defrag que vem com os seguintes programas:

e2defrag - Desfragmenta sistemas de arquivos Ext2.

defrag - Desfragmenta sistemas de arquivos Minix.

xdefrag - Desfragmenta sistemas de arquivos Xia.


O sistema de arquivos deve estar desmontado ao fazer a desfragmentao. Se quiser desfragmentar o sistema de
arquivos raz (/), voc precisar inicializar atravs de um disquete e executar um dos programas de
desfragmentao apropriado ao seu sistema de arquivos. A checagem individual de fragmentao em arquivos
Guia Foca GNU/Linux

186

pode ser feita com o programa frag.


ATENO: Retire cpias de segurana de sua unidade antes de fazer a desfragmentao. Se por qualquer
motivo o programa de desfragmentao no puder ser completado, voc poder perder dados!
e2defrag [opes] [dispositivo]
Onde:
dispositivo - Partio, arquivo, disquete que contm o sistema de arquivos que ser desfragmentado.
Opes:
-d - Debug - sero mostrados detalhes do funcionamento
-n - No mostra o mapa do disco na desfragmentao. til quando voc inicializa por disquetes e recebe
a mensagem "Failed do open term Linux" ao tentar executar o e2defrag.
-r - Modo somente leitura. O defrag simular sua execuo no sistema de arquivos mas no far nenhuma
gravao. Esta opo permite que o defrag seja usado com sistema de arquivos montado.
-s - Cria um sumrio da fragmentao do sistema de arquivos e performance do desfragmentador.
-v - Mostra detalhes durante a desfragmentao do sistema de arquivos. Caso mais de uma opo -v seja
usada, o nvel de detalhes ser maior.
-i [arquivo] - Permite definir uma lista de prioridades em que um arquivo ser gravado no disco, com isto
possvel determinar se um arquivo ser gravado no comeo ou final da unidade de disco. Esta lista lida do
[arquivo] e deve conter uma lista de prioridades de -100 a 100 para cada inodo do sistema de arquivos.
Arquivos com prioridade alta sero gravados no comeo do disco.
Todos os inodos tero prioridade igual a zero caso a opo -i no seja usada ou o inodo no seja
especificado no [arquivo]. O [arquivo] dever conter uma srie de linhas com um nmero (inodo) ou um
nmero prefixado por um sinal de igual seguido da prioridade.
-p [numero] - Define o [numero] de buffers que sero usados pela ferramenta de desfragmentao na
realocao de dados, quanto mais buffers mais eficiente ser o processo de realocao. O nmero depende
de quantidade memria RAM e Swap voc possui. Por padro 512 buffers so usados correspondendo a
512Kb de buffer (em um sistema de arquivos de blocos com 1Kb).
Exemplo: e2defrag -n -v /dev/hdb4, e2defrag -r /dev/hda1

25.6 Limpando arquivos de LOGS


Tudo que acontece em sistemas GNU/Linux pode ser registrado em arquivos de log em /var/log, como vimos
anteriormente. Eles so muito teis por diversos motivos, para o diagnstico de problemas, falhas de
dispositivos, checagem da segurana, alerta de eventuais tentativas de invaso, etc.
O problema quando eles comeam a ocupar muito espao em seu disco. Verifique quantos Megabytes seus
arquivos de LOG esto ocupando atravs do comando cd /var/log;du -hc. Antes de fazer uma limpeza nos
arquivos de LOG, necessrio verificar se eles so desnecessrios e s assim zerar os que forem dispensveis.
No recomendvel apagar um arquivo de log pois ele pode ser criado com permisses de acesso indevidas
(algumas distribuies fazem isso). Voc pode usar o comando: echo -n >arquivo ou o seguinte shell script para
zerar todos os arquivos de LOG de uma s vez (as linhas iniciante com # so comentrios):
#! /bin/sh
cd /var/log
for l in `ls -p|grep '/'`; do
echo -n >$l &>/dev/null
echo Zerando arquivo $l...
done
echo Limpeza dos arquivos de log concluda!
Copie o contedo acima em um arquivo com a extenso .sh, d permisso de execuo com o chmod e o
execute como usurio root. necessrio executar este script para zerar arquivos de log em subdiretrios de
/var/log, caso sejam usados em seu sistema.
Algumas distribuies, como a Debian GNU/Linux, fazem o arquivamento automtico de arquivos de LOGs em
arquivos .gz atravs de scripts disparados automaticamente pelo cron. ATENO: LEMBRE-SE QUE O
SCRIPT ACIMA APAGAR TODOS OS ARQUIVOS DE LOGs DO SEU SISTEMA SEM POSSIBILIDADE
DE RECUPERAO. TENHA ABSOLUTA CERTEZA DO QUE NO PRECISAR DELES QUANDO
EXECUTAR O SCRIPT ACIMA!

25.7 Tarefas automticas de manuteno do sistema


Os arquivos responsveis pela manuteno automtica do sistema se encontram em arquivos individuais
localizados nos diretrios /etc/cron.daily, /etc/cron.weekly e /etc/cron.montly. A quantidade de arquivos depende
da quantidade de pacotes instalado em seu sistema, porque alguns programam tarefas nestes diretrios e no
Guia Foca GNU/Linux

187

possvel descrever todas, para detalhes sobre o que cada arquivo faz veja o cabealho e o cdigo de cada
arquivo.
Estes arquivos so executados pelo cron atravs do arquivo /etc/crontab. Voc pode programas quantas tarefas
desejar, para detalhes veja cron, Seo 25.7. Alguns programas mantm arquivos do cron individuais em
/var/spool/cron/crontabs que executam comandos periodicamente.

25.8 cron
O cron um daemon que permite o agendamento da execuo de um comando/programa para um determinado
dia/mes/ano/hora. muito usado em tarefas de arquivamento de logs, checagem da integridade do sistema e
execuo de programas/comandos em horrios determinados.
As tarefas so definidas no arquivo /etc/crontab e por arquivos individuais de usurios em
/var/spool/cron/crontabs/[usurio] (criados atravs do programa crontab). Adicionalmente a distribuio
Debian utiliza os arquivos no diretrio /etc/cron.d como uma extenso para o /etc/crontab.
Para agendar uma nova tarefa, basta editar o arquivo /etc/crontab com qualquer editor de texto (como o ae e o
vi) e definir o mes/dia/hora que a tarefa ser executada. No necessrio reiniciar o daemon do cron porque ele
verifica seus arquivos a cada minuto. Veja a seo O formato de um arquivo crontab, Seo 25.7.1 para entender
o formato de arquivo cron usado no agendamento de tarefas.

25.8.1 O formato de um arquivo crontab


O arquivo /etc/crontab tem o seguinte formato:
52 18 1 * * root run-parts --report /etc/cron.montly
|
| |
| | |
|
|
| |
| | |
\_Comando que ser executado
|
| |
| | |
|
| |
| | \_ UID que executar o comando
|
| |
| |
|
| |
| \_ Dia da semana (0-7)
|
| |
|
|
| |
\_ Mes (1-12)
|
| |
|
| \_ Dia do Ms (1-31)
|
|
|
\_ Hora
|
\_ Minuto
Onde:
Minuto - Valor entre 0 e 59
Hora - Valor entre 0 e 23
Dia do Mes - Valor entre 0 e 31
Mes - Valor entre 0 e 12 (identificando os meses de Janeiro a Dezembro)
Dia da Semana - Valor entre 0 e 7 (identificando os dias de Domingo a Sbado). Note que tanto 0 e 7
equivalem a Domingo.
usurio - O usurio especificado ser usado para executar o comando (o usurio dever existir).
comando - Comando que ser executado. Podem ser usados parmetros normais usados na linha de
comando.
Os campos do arquivo so separados por um ou mais espaos ou tabulaes. Um asterisco * pode ser usado nos
campos de data e hora para especificar todo o intervalo disponvel. O hfen ( -) serve para especificar perodos de
execuo (incluindo a o nmero inicial/final). A vrgula serve para especificar lista de nmeros. Passos podem
ser especificados atravs de uma /. Veja os exemplos no final desta seo.
O arquivo gerado em /var/spool/cron/crontabs/[usurio] pelo crontab tem o mesmo formato do /etc/crontab
exceto por no possuir o campo usurio (UID), pois o nome do arquivo j identifica o usurio no sistema.
Para editar um arquivo de usurio em /var/spool/cron/crontabs ao invs de editar o /etc/crontab use crontab -e,
para listar as tarefas daquele usurio crontab -l e para apagar o arquivo de tarefas do usurio crontab -r
(adicionalmente voc pode remover somente uma tarefa atravs do crontab -e e apagando a linha
correspondente).
OBS: No esquea de incluir uma linha em branco no final do arquivo, caso contrrio o ltimo comando no
ser executado.
O cron define o valor de algumas variveis automaticamente durante sua execuo; a varivel SHELL definida
Guia Foca GNU/Linux

188

como /bin/sh, PATH como /usr/bin:/bin, LOGNAME, MAILTO e HOME so definidas atravs do arquivo
/etc/passwd. Os valores padres destas variveis podem ser substitudos especificando um novo valor nos
arquivos do cron.
Exemplos de um arquivo /etc/crontab:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
00 10 * * * root sync
# Executa o comando sync todo o dia as 10:00
00 06 * * 1 root updatedb
# Executa o comando updatedb toda segunda-feira as 06:00.
10,20,40 * * * * root runq
# Executa o comando runq todos os dias e a toda a hora em 10, 20 e 40 minutos.
*/10 * * * * root fetchmail
# Executa o comando fetchmail de 10 em 10 minutos todos os dias
15 0 25 12 * root echo "Feliz Natal"|smail john
# Envia um e-mail as 0:15 todo o dia 25/12 para john desejando um feliz natal.
30 5 * * 1-6 root poff
# Executa o comando poff automaticamente as 5:30 de segunda-feira a sbado.

25.9 at
O at agenda tarefas de forma semelhante ao cron com uma interface que permite a utilizao de linguagem
natural nos agendamentos. Sua principal aplicao no uso de tarefas que sejam disparadas somente uma vez.
Uma caracterstica deste programa a execuo de aplicativos que tenham passado de seu horrio de execuo,
muito til se o computador desligado com frequncia ou quando ocorre uma interrupo no fornecimento de
energia.
Para utilizar o at, instale-o com o comando: apt-get install at. O prximo passo criar os arquivos /etc/at.allow
e at.deny. Estes arquivos so organizados no formato de um usurio por linha. Durante o agendamento,
verificado primeiro o arquivo at.allow (lista de quem pode executar comandos) e depois o at.deny (lista de quem
NO pode executar comandos). Caso eles no existam, o agendamento de comandos permitido a todos os
usurios.
Abaixo seguem exemplos do agendamento atravs do comando at:
echo ls | at 10am today Executa as 10 da manha de hoje
echo ls | at 10:05 today Executa as 10:05 da manha de hoje
echo ls | at 10:05pm today Executa as 10:05 da noite de hoje
echo ls | at 22:05 today Executa as 22:05 da noite de hoje
echo ls | at 14:50 tomorrow Executa o comando amanha as 14:50 da tarde
echo ls | at midnight Executa o comando a meia noite de hoje
echo ls | at midnight tomorrow Executa o comando a meia noite de amanha
echo ls | at noon Executa o comando de tarde (meio dia).
at -f comandos.txt teatime Executa os comandos especificados no arquivo "comandos.txt"
no horrio do caf da tarde (as 16:00 horas).
at -f comandos.txt +3 minutes Executa os comandos especificados no arquivo "comandos.txt"
daqui a 3 minutos. Tambm pode ser especificado "hours" ou
"days".
at -f comandos.txt tomorrow +3 hours Executa os comandos especificados no arquivo "comandos.txt"
daqui a 3 horas no dia de amanha. (se agora so 10:00, ela ser
executada amanha as 13:00 da tarde).
Todas as tarefas agendadas so armazenadas em arquivos dentro do diretrio /var/spool/cron/atjobs. A sintaxe
de comandos para gerenciar as tarefas semelhante aos utilitrios do lpd:

Para ver as tarefas, digite atq.

Para remover uma tarefa, use o comando atrm seguido do nmero da tarefa obtida pelo atq.

Guia Foca GNU/Linux

189

Captulo 26 Principais arquivos de configurao do diretrio /etc


Este captulo descreve a funo, parmetros e exemplos de utilizao de alguns arquivos/diretrios de
configurao em /etc. Estes arquivos esto disponveis por padro na instalao bsica do GNU/Linux, o que
assegura um mximo de aproveitamento deste captulo. No sero descritos aqui arquivos de configurao
especficos de servidores ou daemons (com exceo do inetd).

26.1 Diretrio /etc/alternatives


Este diretrio contm links para diversos aplicativos padres utilizados pelo sistema. Dentre eles so
encontrados links para o editor do sistema e o xterm padro usado pelo sistema.
Por exemplo, se voc quiser usar o editor jed ao invs do ae ou vi, remova o link editor com o comando rm
editor, localize o arquivo executvel do jed com which jed e crie um link para ele ln -s /usr/bin/jed editor. De
agora em diante o editor padro usado pela maioria dos aplicativos ser o jed.

26.2 Arquivo /etc/default/devpts


Este arquivo contm algumas configuraes para os pseudo terminais em /dev/pts.

26.3 Arquivo /etc/default/rcs


Contm variveis padres que alteram o comportamento de inicializao dos scripts em /etc/rcS.d
Por exemplo, se quiser menos mensagens na inicializao do sistema, ajuste o valor da varivel VERBOSE para
no.
OBS: Somente modifique aquilo que tem certeza do que est fazendo, um valor modificado incorretamente
poder causar falhas na segurana de sua rede ou no sistemas de arquivos do disco.

26.4 Arquivo /etc/kbd/config


Este arquivo contm configuraes padres do pacote kbd para as fontes de tela e mapas de teclado usados pelo
sistema. A fonte de tela especificada neste arquivo (as fontes disponveis no sistema esto localizadas em
/usr/share/consolefonts).
O arquivo do mapa de teclados pode ser copiado para o diretrio /etc/kbd com o nome default.kmap para que
seja utilizado na inicializao do sistema ou escolhido interativamente atravs do utilitrio kbdconfig.

26.5 Diretrio /etc/menu-methods


Este diretrio contm uma lista de arquivos que so executados pelo programa update-menu para criar os menus
dos programas.

26.6 Arquivo /etc/menu-methods/menu-translate


Este arquivo permite fazer a traduo de nomes de menus, identificao ou ttulos usados no ambiente grfico.

26.7 Arquivo /etc/networks


Este local contm as configuraes das interfaces (placas) de rede do sistema e outras opes teis para a
configurao/segurana da rede.

26.8 Arquivo /etc/networks/interfaces


Este o arquivo de configurao usado pelos programas ifup e ifdown, respectivamente para ativar e desativas
as interfaces de rede.
O que estes utilitrios fazem na realidade carregar os utilitrios ifconfig e route atravs dos argumentos
passados do arquivo /etc/networks/interfaces, permitindo que o usurio iniciante configure uma interface de
rede com mais facilidade.
Abaixo um exemplo do arquivo interfaces o seguinte:
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
As interfaces e roteamentos so configurados na ordem que aparecem neste arquivo. Cada configurao de
interface inicia com a palavra chave iface. A prxima palavra o nome da interface que deseja configurar (da
mesma forma que utilizada pelos comandos ifconfig e route). Voc pode tambm usar IP aliases especificando
Guia Foca GNU/Linux

190

eth0:0 mas tenha certeza que a interface real (eth0) inicializada antes.
A prxima palavra especifica a familia de endereos da interface; Escolha inet para a rede TCP/IP, ipx para
interfaces IPX e IPv6 para interfaces configuradas com o protocolo IPV6.
A palavra static especifica o mtodo que a interface ser configurada, neste caso uma interface com endereo
esttico (fixo).
Outros mtodos e seus parmetros so especificados abaixo (traduzido da pgina do arquivo interfaces):

O mtodo loopback - usado para configurar a interface loopback (lo) IPv4.

O mtodo static - usado para configurar um endereo IPv4 fixo para a interface. As opes que
podem ser usadas com o mtodos static so as seguintes (opes marcadas com * no final so requeridas na
configurao):
address endereo * - Endereo IP da Interface de rede (por exemplo, 192.168.1.1).
netmask mscara * - Mscara de rede da Interface de rede (por exemplo, 255.255.255.0).
broadcast endereo - Endereo de Broadcast da interface (por exemplo, 192.168.1.255).
network endereo - Endereo da rede (por exemplo, 192.168.0.0).
gateway endereo - Endereo do gateway padro (por exemplo, 192.168.1.10). O gateway o endereo
do computador responsvel por conectar o seu computador a outra rede. Use somente se for necessrio em
sua rede.

O mtodo dhcp - Este mtodo usado para obter os parmetros de configurao atravs de um servidor
DHCP da rede atravs das ferramentas: dhclient, pump (somente Kernels 2.2.x) ou dpcpcp (somente Kernels
2.0.x e 2.2.x)
hostname nome - Nome da estao de trabalho que ser requisitado. (pump, dhcpcd)
leasehours leasttime - Lease time preferida em horas (pump)
leasetime leasetime - Lease time preferida em segundos (dhcpcd)
vendor vendedor - Identificador do vendedor (dhcpcd)
cliente identificao - Identificao do cliente (dhcpcd)

O mtodo bootp - Este mtodo pode ser usado para obter um endereo via bootp:
bootfile arquivo - Diz ao servidor para utilizar arquivo como arquivo de inicializao
server endereo - Especifica o endereo do servidor bootp.
hwaddr endereo - Usa endereo como endereo de hardware no lugar do endereo original.
Algumas opes se aplicam a todas as interfaces e so as seguintes:

noauto - No configura automaticamente a interface quando o ifup ou ifdown so executados com a


opo -a (normalmente usada durante a inicializao ou desligamento do sistema).

pre-up comando - Executa o comando antes da inicializao da interface.

up comando - Executa o comando aps a interface ser iniciada.

down comando - Executa o comando antes de desativar a interface.

pre-down comando - Executa o comando aps desativar a interface.


Os comandos que so executados atravs das opes up, pre-up e down podem aparecer vrias vezes na mesma
interface, eles so executados na seqncia que aparecem. Note que se um dos comandos falharem, nenhum dos
outros ser executado. Voc pode ter certeza que os prximos comandos sero executados adicionando || true ao
final da linha de comando.

26.9 Arquivo /etc/networks/options


Este arquivo contm opes que sero aplicadas as interfaces de rede durante a inicializao do sistema. Este
arquivo lido pelo script de inicializao /etc/init.d/network que verifica os valores e aplica as modificaes
apropriadas no Kernel.

26.10 Arquivo /etc/networks/spoof-protect


Permite especificar os endereos IPs locais e interfaces de rede que sero protegidas contra a tcnica de IP
spoofing (falsificao de endereo IP).

26.11 Diretrio /etc/pam.d


Este diretrio possui arquivos de configurao de diversos mdulos PAM existentes em seu sistema.

Guia Foca GNU/Linux

191

26.12 Diretrio /etc/ppp


Contm arquivos de configurao usados pelo daemon pppd para fazer uma conexo com uma rede PPP
externa, criados manualmente ou atravs do pppconfig.

26.13 Diretrio /etc/security


Este diretrio contm arquivos para controle de segurana e limites que sero aplicados aos usurios do sistema.
O funcionamento de muitos dos arquivos deste diretrio depende de modificaes nos arquivos em /etc/pam.d
para habilitar as funes de controle, acesso e restries.

26.14 Arquivo /etc/security/access.conf


lido no momento do login do usurio e permite definir quem ter acesso ao sistema e de onde tem permisso
de acessar sua conta. O formato deste arquivo so 3 campos separados por :, cada linha contendo uma regra de
acesso.
O primeiro campo deve conter o caracter + ou - para definir se aquela regra permitir (+) ou bloquear(-) o
acesso do usurio.
O segundo campo deve conter uma lista de logins, grupos, usurio@computador ou a palavra ALL (confere
com tudo) e EXCEPT (excesso).
O terceiro campo deve conter uma lista de terminais tty (para logins locais), nomes de computadores, nomes de
domnios (iniciando com um .), endereo IP de computadores ou endereo IP de redes (finalizando com .).
Tambm pode ser usada a palavra ALL, LOCAL e EXCEPT (atinge somente mquinas locais conhecidas pelo
sistema).
Abaixo um exemplo do access.conf
# Somente permite o root entrar em tty1
#
-:ALL EXCEPT root:tty1
# bloqueia o logins do console a todos exceto whell, shutdown e sync.
#
-:ALL EXCEPT wheel shutdown sync:console
# Bloqueia logins remotos de contas privilegiadas (grupo wheel).
#
-:wheel:ALL EXCEPT LOCAL .win.tue.nl
# Algumas contas no tem permisso de acessar o sistema de nenhum lugar:
#
-:wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde:ALL
# Todas as outras contas que no se encaixam nas regras acima, podem acessar de
# qualquer lugar

26.15 Arquivo /etc/security/limits.conf


Defini limites de uso dos recursos do sistema para cada usurio ou grupos de usurios. Os recursos so descritos
em linhas da seguinte forma:
#<dominio>
<tipo> <item> <valor>
O domnio pode ser um nome de usurio, um grupo (especificado como @grupo) ou o curinga *.
O tipo pode ser soft para o limite mnimos e hard para o limite mximo. O campo item pode ser um dos
seguintes:
core - limita o tamanho do arquivo core (KB)
data - tamanho mximo de dados (KB)
fsize - Tamanho mximo de arquivo (KB)
memlock - Espao mximo de endereos bloqueados na memria (KB)
nofile - Nmero mximo de arquivos abertos
rss - Tamanho mximo dos programas residentes (KB)
stack - Tamanho mximo de pilha (KB)
cpu - Tempo mximo usado na CPU (MIN)
nproc - Nmero mximo de processos
Guia Foca GNU/Linux

192

as - Limite de espao de endereos


maxlogins - Nmero mximo de logins deste usurio
priority - Prioridade que os programas deste usurio sero executados
Abaixo um exemplo de arquivo /etc/security/limits.conf:
#<dominio>
*
*
@student
@faculty
@faculty
ftp
@student

<tipo>
soft
hard
hard
soft
hard
hard
-

<item>
core
rss
nproc
nproc
nproc
nproc
maxlogins

<valor>
0
10000
20
20
50
0
4

26.16 Arquivo /etc/crontab


Arquivo que contm a programao de programas que sero executados em horrios/datas programadas.
Veja cron, Seo 25.7 para mais detalhes sobre o formato deste arquivo e outras opes.

26.17 Arquivo /etc/fstab


Contm detalhes para a montagem dos sistemas de arquivos do sistema. Veja fstab, Seo 5.9.1 para detalhes
sobre o formato deste arquivo.

26.18 Arquivo /etc/group


Lista de grupos existentes no sistema. Veja Adicionando um novo grupo a um usurio, Seo 12.10 para mais
detalhes sobre o formato deste arquivo.

26.19 Arquivo /etc/gshadow


Senhas ocultas dos grupos existentes no sistema (somente o usurio root pode ter acesso a elas). Use o utilitrio
shadowconfig para ativar/desativar o suporte a senhas ocultas.

26.20 Arquivo /etc/host.conf


Veja /etc/host.conf, Seo 15.6.2.2.

26.21 Arquivo /etc/hostname


Arquivo lido pelo utilitrio hostname para definir o nome de sua estao de trabalho.

26.22 Arquivo /etc/hosts


Banco de dados DNS esttico que mapeia o nome ao endereo IP da estao de trabalho (ou vice versa). Veja
/etc/hosts, Seo 15.6.2.3 para mais detalhes sobre o formato deste arquivo.

26.23 Arquivo /etc/hosts.allow


Controle de acesso do wrapper TCPD que permite o acesso de determinadas de determinados endereos/grupos
aos servios da rede. Veja /etc/hosts.allow, Seo 15.8.3.1 para detalhes sobre o formato deste arquivo.

26.24 Arquivo /etc/hosts.deny


Controle de acesso do wrapper TCPD que bloqueia o acesso de determinados endereos/grupos aos servios da
rede. Este arquivo somente lido caso o /etc/hosts.allow no tenha permitido acesso aos servios que contm.
Um valor padro razoavelmente seguro que pode ser usado neste arquivo que serve para a maioria dos usurios
domsticos :
ALL: ALL
caso o acesso ao servio no tenha sido bloqueado no hosts.deny, o acesso ao servio permitido.
Veja /etc/hosts.deny, Seo 15.8.3.2 para detalhes sobre o formato deste arquivo.

26.25 Arquivo /etc/hosts.equiv


Veja /etc/hosts.equiv e /etc/shosts.equiv, Seo 15.8.3.3.
Guia Foca GNU/Linux

193

26.26 Arquivo /etc/inetd.conf


Veja /etc/inetd.conf, Seo 15.7.2.1.

26.27 Arquivo /etc/inittab


Este o arquivo de configurao utilizado pelo programa init para a inicializao do sistema. Para mais detalhes
sobre o formato deste arquivo, consulte a pgina de manual do inittab.

26.28 Arquivo /etc/inputrc


Este arquivo contm parmetros para a configurao do teclado. Veja o final da seo Acentuao em modo
Texto, Seo 23.1.1 e a pgina de manual do inputrc para mais detalhes.

26.29 Arquivo /etc/isapnp.conf


Gerado pelo utilitrio pnpdump e utilizado pelo utilitrio isapnp para configurar os recursos de hardware dos
dispositivos Plug-and-Play no GNU/Linux.

26.30 Arquivo /etc/isapnp.gone


Contm uma lista de endereos reservados que no devero ser usados pelo isapnp.

26.31 Arquivo /etc/issue


Contm um texto ou mensagem que ser mostrada antes do login do sistema.

26.32 Arquivo /etc/issue.net


Mesma utilidade do /etc/issue mas mostrado antes do login de uma seo telnet. Outra diferena que este
arquivo aceita os seguintes tipos de variveis:

%t - Mostra o terminal tty atual.

%h - Mostra o nome de domnio completamente qualificado (FQDN).

%D - Mostra o nome do domnio NIS.

%d - Mostra a data e hora atual.

%s - Mostra o nome do Sistema Operacional.

%m - Mostra o tipo de hardware do computador.

%r - Mostra a reviso do Sistema Operacional.

%v - Mostra a verso do Sistema Operacional.

%% - Mostra um simples sinal de porcentagem (%).

26.33 Arquivo /etc/lilo.conf


Arquivo de configurao do gerenciador de partida lilo. Veja LILO, Seo 6.1 e Um exemplo do arquivo de
configurao lilo.conf, Seo 6.1.3.

26.34 Arquivo /etc/login.defs


Definies de configurao para o pacote login

26.35 Arquivo /etc/modules


Veja /etc/modules, Seo 16.12.1.

26.36 Arquivo /etc/modules.conf


Veja modules.conf, Seo 16.12.2.

26.37 Arquivo /etc/motd


Mostra um texto ou mensagem aps o usurio se logar com sucesso no sistema. Tambm usado pelo telnet,
Guia Foca GNU/Linux

194

ftp, e outros servidores que requerem autenticao do usurio (nome e senha).

26.38 Arquivo /etc/mtab


Lista os sistemas de arquivos montados atualmente no sistema. Sua funo idntica ao /proc/mounts.

26.39 Arquivo /etc/networks


Veja /etc/networks, Seo 15.6.2.4.

26.40 Arquivo /etc/passwd


o arquivo mais cobiado por Hackers porque contm os dados pessoais do usurio como o login, uid, telefone
e senha (caso seu sistema esteja usando senhas ocultas, a senha ter um * no lugar e as senhas reais estaro
armazenadas no arquivo /etc/shadow).

26.41 Arquivo /etc/printcap


Banco de dados de configurao da impressora, usado por daemons de impresso como o lpr e lprng.

26.42 Arquivo /etc/protocols


Veja /etc/protocols, Seo 15.9.2.

26.43 Arquivo /etc/resolv.conf


Veja /etc/resolv.conf, Seo 15.6.2.1.

26.44 Arquivo /etc/serial.conf


Configuraes das portas seriais do sistema. Veja a pgina de manual do serial.conf e a pgina de manual do
utilitrio setserial para detalhes de como configurar adequadamente a taxa de transmisso serial conforme seu
dispositivo.

26.45 Arquivo /etc/services


Veja /etc/services, Seo 15.9.1.

26.46 Arquivo /etc/shadow


Este arquivo armazena as senhas criptografadas caso estiver usando o recurso de senhas ocultas. Este arquivo
somente pode ser lido pelo usurio root.

26.47 Arquivo /etc/shells


Contm uma lista de interpretadores de comando (shells) vlidos no sistema.

26.48 Arquivo /etc/syslog.conf


Contm configuraes para definir o que ser registrado nos arquivos de log em /var/log do sistema. Veja a
pgina de manual syslog.conf e dos programas klog e syslogd para entender o formato usado neste arquivo.

26.49 Arquivo /etc/timezone


Contm a sua localizao para clculo correto do seu fuso-horrio local.

Guia Foca GNU/Linux

195

Captulo 27 Conectando seu computador a Internet


Este captulo descreve como configurar seu sistema para se conectar a Internet, navegar, enviar/receber
mensagens, etc.

27.1 Conectando-se a Internet


Conectar-se a Internet atravs da Debian fcil, e todo o trabalho de configurao pode ser feito atravs do
programa pppconfig ou modificando manualmente os arquivos em /etc/ppp. Para criar uma conexo internet
atravs do pppconfig, entre como usurio root no sistema, digite pppconfig e siga os passos de configurao
(esta configurao serve para usurios domsticos e assume que voc possui o Kernel com suporte a PPP):

No primeiro menu, escolha a opo Create para criar uma nova conexo. As outras opes
disponveis so Change para modificar uma conexo a Internet criada anteriormente, Delete para apagar
uma conexo. A opo Quit sai do programa.

Agora o sistema perguntar qual ser o nome da conexo que ser criada. O nome provider o
padro, e ser usado caso digite pon para iniciar uma conexo internet sem nenhum argumento.

O prximo passo especificar como os servidores de nomes sero acessados. Escolha Static se no
tiver nenhum tipo de rede local ou None para usar os servidores especificados no arquivo /etc/resolv.conf.
Aperte a tecla TAB e tecle ENTER para seguir para o prximo passo.

Agora digite o endereo do servidor DNS especificado pelo seu provedor de acesso. Um servidor
DNS converte os nomes como www.blablabla.com.br para o endereo IP correspondente para que seu
computador possa fazer conexo.
Tecle ENTER para seguir para o prximo passo.

Voc pode digitar um endereo de um segundo computador que ser usado na resoluo de nomes
DNS. Siga as instrues anteriores caso tiver um segundo servidor de nomes ou ENTER para continuar.

Agora voc precisar especificar qual o mtodo de autenticao usado pelo seu provedor de
acesso. O Password Autentication Protocol usado pela maioria dos provedores de acesso. Desta forma
escolha a opo PAP

Agora entre com o seu login no provedor de acesso, ou seja, o nome para acesso ao sistema que
escolheu no momento que fez sua assinatura.

Agora especifique a sua senha.

O prximo passo ser especificar a taxa de transmisso da porta serial do micro. O valor de 115200
deve funcionar com todas as configuraes mais recentes.
Uma configurao serial DTE detalhada pode ser feita com a ferramenta setserial.

Agora ser necessrio selecionar o modo de discagem usado pelo seu fax-modem. Escolha tone para
linha digital e pulse se possuir uma linha telefnica analgica.

Pressione TAB e tecle ENTER para prosseguir.

Agora digite o nmero do telefone para fazer conexo com o seu provedor de acesso.

O prximo passo ser a identificao do seu fax-modem, escolha YES para que seja utilizada a
auto-deteco ou NO para especificar a localizao do seu fax-modem manualmente.

Se voc quiser especificar mais detalhes sobre sua configurao, como strings de discagem, tempo
de desconexo, auto-discagem, etc., faa isto atravs do menu Advanced.
Escolha a opo Finished para salvar a sua configurao e retornar ao menu principal. Escolha a opo Quit
para sair do programa.
Pronto! todos os passos para voc se conectar a Internet esto concludos, basta digitar pon para se conectar e
poff para se desconectar da Internet. Caso tenha criado uma conexo com o nome diferente de provider voc
ter que especifica-la no comando pon (por exemplo, pon provedor2).
A conexo pode ser monitorada atravs do comando plog e os pacotes enviados/recebidos atravs do pppconfig.
Para uma navegao mais segura, recomendvel que leia e compreenda alguns itens que podem aumentar
consideravelmente a segurana do seu sistema em Segurana da Rede e controle de Acesso, Seo 15.8,
/etc/hosts.allow, Seo 15.8.3.1, /etc/hosts.deny, Seo 15.8.3.2. A seo /etc/resolv.conf, Seo 15.6.2.1 pode
ser tambm til.

27.2 Navegando na Internet


Existem diversos tipos de navegadores web para GNU/Linux e a escolha depende dos recursos que pretende
utilizar (e do poder de processamento de seu computador).
Para navegar na Internet com muitos recursos, voc pode usar o navegador Netscape Navigator, ele suporta
Guia Foca GNU/Linux

196

plug-ins, java, flash, etc. Voc tambm tem a escolha do Mozilla que inspirou a criao do Netscape.
O Arena e Opera so boas alternativas para aqueles que desejam um navegador em modo grfico, mas eles no
tem suporte a Java e Frames.
Os usurios e administradores de servidores que operam em modo texto podem optar pelo Lynx. Uma listagem
mais detalhada e recursos requeridos por cada navegador podem ser encontrados em Internet, Seo 29.1.3.

27.3 Recebimento de E-Mails atravs do fetchmail


o programa mais tradicional no recebimento de mensagens atravs dos servios pop3, imap, pop2, etc. no
GNU/Linux. Ele pega as mensagens de seu servidor pop3 e as entrega ao MDA local ou nos arquivos de e-mails
dos usurios do sistema em /var/mail
Todo o funcionamento do fetchmail controlado pelo arquivo ~/.fetchmailrc. Segue abaixo um modelo padro
deste arquivo:
poll pop3.seuprovedor.com.br protocol pop3
user gleydson password sua_senha keep fetchall is gleydson here
Este arquivo lido pelo fetchmail na ordem que foi escrito. Veja a explicao abaixo sobre o arquivo exemplo:

A palavra pool especifica o servidor de onde suas mensagens sero baixadas, o servidor especificado no
exemplo pop3.seuprovedor.com.bt. A palavra skip pode ser especificada, mas as mensagens no servidor
especificado por skip somente sero baixadas caso o nome do servidor de mensagens for especificado
atravs da linha de comando do fetchmail.

protocol o protocolo que ser usado para a transferncia de mensagens do servidor. O fetchmail
utilizar a autodeteco de protocolo caso este no seja especificado.

user define o nome do usurio no servidor pop3.seuprovedor.com.br, que no exemplo acima gleydson.

password define a senha do usurio gleydson (acima), especificada como sua_senha no exemplo.

keep opcional e serve para no apagar as mensagens do servidor aps baixa-las (til para testes e
acesso a uma nica conta de e-mail atravs de vrios locais, como na empresa e sua casa por exemplo).

fetchall baixa todas as mensagens do provedor marcadas como lidas e no lidas.

is gleydson here um modo de especificar que as mensagens obtidas de pop3.seuprovedor.com.br do


usurio gleydson com a senha sua_senha sero entregues para o usurio local gleydson no diretrio
/var/mail/gleydson.
As palavras is e here so completamente ignoradas pelo fetchmail, servem somente para dar um tom de
linguagem natural na configurao do programa e da mesma forma facilitar a compreenso da configurao.
Se possuir vrias contas no servidor pop3.seuprovedor.com.br, no necessrio repetir toda a configurao para
cada conta, ao invs disso especifique somente os outros usurios do mesmo servidor:
pool pop3.seuprovedor.com.br protocol pop3
user gleydson password sua_senha keep fetchall is gleydson here
user conta2 password sua_senha2 fetchall is gleydson here
user conta3 password sua_senha3 fetchall is gleydson here
Note que todos os e-mails das contas gleydson, conta2 e conta3 do servidor de mensagens
pop3.seuprovedor.com.br so entregues ao usurio local gleydson (arquivo /var/mail/gleydson).
Agora voc pode usar um programa MUA como o mutt ou pine para ler localmente as mensagens. O
armazenamento de mensagens no diretrio /var/mail preferido pois permite a utilizao de programas de
notificao de novos e-mais como o comsat, mailleds, biff, etc.
Tambm possvel utilizar um processador de mensagens ao invs do MTA para a entrega de mensagens. O
programa procmail um exemplo de processador de mensagens rpido e funcional que pode separar as
mensagens em arquivos de acordo com sua origem, destino, assunto, enviar respostas automticas, listas de
discusso, envio de arquivos atravs de requisio, etc. Veja Processamento de mensagens atravs do procmail,
Seo 27.3.1 para detalhes.
Para mais detalhes sobre outras opes especficas de outros protocolos, checagem de mensagens, criptografia,
etc, veja a pgina de manual do fetchmail.

27.3.1 Processamento de mensagens atravs do procmail


O processamento de mensagens pode ser usado para inmeras finalidades, dentre elas a mais comum separar
uma mensagem em arquivos/diretrios de acordo com sua origem, prioridade, assuntos, destinatrio, contedo,
etc., programar auto-respostas, programa de frias, servidor de arquivos, listas de discusso, etc.
O procmail um programa que rene estas funes e permitem muito mais, dependendo da habilidades e
conhecimento das ferramentas GNU/Linux para saber integra-las corretamente. Toda a operao do procmail
controlada pelo arquivo /etc/procmailrc e ~/.procmailrc. Abaixo um modelo do arquivo ~/.procmailrc usado para
enviar todas as mensagens contendo a palavra GNU/Linux no assunto para o arquivo mensagens-linux:
Guia Foca GNU/Linux

197

PATH=/usr/bin:/bin:/usr/local/bin:
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/mbox
LOGFILE=$MAILDIR/log
:0:
* ^Subject:.*Linux
mensagens-linux
A varivel de ambiente MAILDIR especifica o diretrio que sero armazenadas as mensagens e logs das
operaes do procmail. A varivel DEFAULT especifica a caixa de correio padro onde todas as mensagens que
no se encaixam nas descries do filtro do procmailrc sero enviadas. A varivel LOGFILE especifica o
arquivo que registrar todas as operaes realizadas durante o processamento de mensagens do procmail.
O arquivo mensagens-linux criado dentro do diretrio especificado por MAILDIR.
Para que o procmail entre em ao toda vez que as mensagens forem baixadas via fetchmail, preciso modificar
o arquivo .fechmailrc e incluir a linha mda /usr/bin/procmail -d %T no final do arquivo e retirar as linhas is
[usuriolocal] here para que o processamento das mensagens seja feita pelo MDA local (neste caso, o procmail).
Se quiser que o procmail seja executado pelo MDA local, basta criar um arquivo ~/.forward no diretrio do
usurio e incluir a linha exec /usr/bin/procmail (note que em algumas implementaes do exim, o procmail
executado automaticamente caso um arquivo ~/.procmailrc seja encontrado, caso contrrio ser necessrio
adicionar a linha "/usr/bin/procmail" ao arquivo ~/.forward (somente exim).
Para mais detalhes, veja a pgina de manual do procmail, procmailrc e HOWTOs relacionados com e-mails no
GNU/Linux.

Guia Foca GNU/Linux

198

Captulo 28 X Window (ambiente grfico)


Este captulo do guia traz explicaes sobre o ambiente grfico X Window System.

28.1 O que X Window?


um sistema grfico de janelas que roda em uma grande faixa de computadores, mquinas grficas e diferentes
tipos de mquinas e plataformas Unix. Pode tanto ser executado em mquinas locais como remotas atravs de
conexo em rede.

28.2 A organizao do ambiente grfico X Window


Em geral o ambiente grfico X Window dividido da seguinte forma:
O Servidor X - o programa que controla a exibio dos grficos na tela, mouse e teclado. Ele se
comunica com os programas cliente atravs de diversos mtodos de comunicao.
O servidor X pode ser executado na mesma mquina que o programa cliente esta sendo executado de forma
transparente ou atravs de uma mquina remota na rede.
O gerenciador de Janelas - o programa que controla a aparncia da aplicao. Os gerenciadores de
janelas (window managers) so programas que atuam entre o servidor X e a aplicao. Voc pode alternar
de um gerenciador para outro sem fechar seus aplicativos.
Existem vrios tipos de gerenciadores de janelas disponveis no mercado entre os mais conhecidos posso
citar o Window Maker (feito por um Brasileiro), o After Step, Gnome, KDE, twm (este vem por padro
quando o servidor X instalado), Enlightenment, IceWm, etc.
A escolha do seu gerenciador de janelas pessoal, depende muito do gosto de cada pessoa e dos recursos
que deseja utilizar.
A aplicao cliente - o programa sendo executado.
Esta organizao do ambiente grfico X traz grandes vantagens de gerenciamento e recursos no ambiente
grfico UNIX, uma vez que tem estes recursos voc pode executar seus programas em computadores remotos,
mudar totalmente a aparncia de um programa sem ter que fecha-lo (atravs da mudana do gerenciador de
janelas), etc.

28.3 Iniciando o X
O sistema grfico X pode ser iniciado de duas maneiras:
Automtica - Usando o programa xdm que um programa que roda no ambiente grfico X e apresenta
uma tela pedindo nome e senha para entrar no sistema (login). Aps entrar no sistema, o X executar um
dos gerenciadores de janelas configurados.
Manual - Atravs do comando startx, ou xstart (note que o startx e xstart so scripts que fazem uma
configurao completa do ambiente e as vezes tambm a segurana antes de executar o xinit) . Neste caso o
usurio deve entrar com seu nome e senha para entrar no modo texto e ento executar um dos comandos
acima. Aps executar um dos comandos acima, o servidor X ser iniciado e executar um dos gerenciadores
de janelas configurados no sistema.

28.4 Servidor X
Como dito acima, o servidor X controla o teclado, mouse e a exibio dos grficos em sua tela. Para ser
executado, precisa ser configurado atravs do arquivo /etc/X11/XF86Config ou usando o utilitrio xf86config
(modo texto).
A finalizao do servidor X feita atravs do pressionamento simultneo das teclas CTRL, ALT, BackSpace. O
servidor X imediatamente terminado e todos os gerenciadores de janelas e programas clientes so fechados.
CUIDADO: Sempre utilize a opo de sada de seu gerenciador de janelas para encerrar normalmente uma
seo X11 e salve os trabalhos que estiver fazendo antes de finalizar uma seo X11. A finalizao do servidor
X deve ser feita em caso de emergncia quando no se sabe o que fazer para sair de um gerenciador de janelas
ou de um programa mal comportado.
Recomendo fazer a leitura de Fechando um programa quando no se sabe como sair, Seo 7.15 caso estiver em
dvidas de como finalizar um programa mal comportado ou que no sabe como sair.

Guia Foca GNU/Linux

199

Captulo 29 Aplicativos para Linux


Este captulo traz uma lista de aplicativos e suas caractersticas e tem como objetivo servir de referncia para a
escolha de um programa que atenda as suas necessidades especficas.
Os programas descritos aqui so "Clientes", ou seja, fazem acesso a um programa "Servidor" (como o caso
dos navegadores) para funcionarem. Os programas servidores sero descritos futuramente na verso Avanado
do guia.
Se voc conhece um bom programa e acha que ele deveria estar aqui, me avise pelo email
gleydson@escelsanet.com.br.

29.1 Aplicativos Bsicos


So aplicativos que fazem parte do cotidiano da maioria dos usurios domsticos e de empresas.

29.1.1 Editores de Texto


vi - Modo Texto - (existem algumas verses adaptadas para o modo grfico). um dos editores padres dos
sistemas GNU/Linux e sua interface complexa e possui muitas funes (usurios GNU/Linux avanados
adoram a quantidade de funes deste programa). Recomendo que aprenda o bsico sobre ele, pois sempre
estar disponvel caso ocorra algum problema no sistema.
Para sair do editor vi sem salvar pressione ESC e digite :q!. Para sair do editor e salvar pressione ESC e
digite :wq.
elvis - Modo Texto - possui boa interface de comunicao com o usurio, suporte a HTML e Metacaracteres.
ae - Modo Texto - um dos editores padres dos sistemas GNU/Linux (encontrado nas distribuies Debian e
baseadas). Sua interface mais fcil que o vi. Tambm recomendo que aprenda o bsico sobre ele, pois
requerido para a manuteno do sistema.
Para sair do ae sem salvar pressione CTRL+Q, para salvar o texto pressione CTRL+X e CTRL+W (aps
isto se quiser sair do editor, pressione CTRL+Q).
jed - Modo Texto - Recomendvel para aqueles que esto acostumados com o EDIT do DOS e gostam de
menus suspensos. Sua interface de fcil operao.
O jed possui recursos poderosos para programadores de C e outras linguagens que faz auto-tabulao,
auto-identao e delimitao de blocos de cdigo atravs de cores.
mcedit - Modo Texto - Muito fcil de utilizar e possui interface em Portugus do Brasil, em geral no requer
um tutorial para aprendizado. Este programa faz parte do pacote Midnight Commander (conhecido
tambm como mc).
Voc utiliza as teclas de funo (F1 a F10) para salvar o texto, procurar palavras no texto, pedir ajuda,
sair, etc. Ele possui recursos para colorir blocos de cdigo (testado com arquivos HTML e SGML).
joe - Modo Texto - um editor muito verstil e voc pode escolher inclusive sua interface.
gedit - Modo Grfico - editor do Gnome, sua interface de comunicao tima e recomendado para aqueles
que gostam de trabalhar com muitos arquivos abertos, copiar e colar, etc. Possui muitos recursos de
operao de arquivo, tabulaes, browser, diff de documentos, etc.
gxeditni - Modo Grfico - Editor no estilo do gedit, sua interface de comunicao com o usurio tima,
possui suporte a e-mail, mede o nmero de toques por minuto do usurio (digitao), suporte a tags
HTML, audio, rede, correo ortogrfica, etc.

29.1.2 Aplicativos para Escritrio


Star Office - Modo Grfico - Pacote de Escritrio contendo editor de texto, planilha de clculo, banco de
dados, digitalizador de imagens, editor grfico, calculadora, navegador, e-mail, abre todos os
arquivos do MS Office 2000 e sua interface idntica aos programas do Office, no requerendo
novo treinamento dos usurios. Todos os programas do Star Office so iniciados atravs de uma
interface virtual idntica ao Windows (com menu iniciar e tudo mais).
Possui verso em Portugus e sua verso atual a 5.2. Alm da impressionante integrao entre
os programas que compem o conjunto, o Star Office possui um frame de navegao com
centenas de modelos, barra de desktop, localizao fcil de arquivos e abertura instantnea.
O Star Office possui mais recursos que o Office e no custa nada! Seu tamanho para download
de 80MB e no requer o pagamento de licenas para a instalao em computadores de empresas
ou domsticos.
O equipamento mnimo que recomendo para a execuo do Star Office um 586 com 32 MB de
memria RAM e 200 MB Livres no disco rgido. Sua instalao feita em modo grfico e o
Guia Foca GNU/Linux

200

tamanho ocupado no disco depende dos componentes selecionados.


Abiword - Modo Grfico - um editor de Textos mais simples que o Star Office e uma boa interface de
operao que possui suporte a arquivos do Office 2000.
O equipamento mnimo que recomendo para a execuo do Abiword um 486 com 8 MB de
memria RAM e 7 MB de espao livre no disco rgido (ele pode ocupar menos espao caso as
bibliotecas compartilhados que utiliza j estiverem instaladas).
Corel Word Perfect - Modo Grfico - Pacote de escritrio da Corel. Uma alternativa ao Star Office. Ele requer
o pagamento de licenas para seu uso.

29.1.3 Internet
Netscape 4.73 -

Modo Grfico - Verso do Netscape Communicator para GNU/Linux, com criptografia forte,
programa de e-mail, news, editor interativo de pginas HTML, catlogo de endereos.
Tambm possui suporte a rede proxy e conexo via firewall.
Equipamento mnimo recomendvel: 486 com 32 MB de RAM e 40 MB de espao em disco
livre.

Mozilla - Modo Grfico - Navegador que inspirou a construo do Netscape, foi o primeiro navegador

grfico e hoje a verso do Netscape 6.0 baseada no Mozilla. Se gosta de frescuras na


aparncia do navegador escolha este mas o desempenho do Netscape 4.73 melhor...
Tambm possui suporte a rede proxy e conexo via firewall
Equipamento mnimo recomendado: 486 com 48 MB de RAM e 40 MB de espao em disco livre.
Arena - Modo Grfico - navegador pequeno, sem suporte a Java e Frames, ideal para computadores menos
potentes. Recomendo o Lynx!
Equipamento mnimo recomendado: 386 com 8 MB de RAM e 12 MB de disco
Opera - Modo Grfico - Navegador pequeno, sem suporte a Java e Frames, ideal para computadores menos
potentes. Ainda recomendo o Lynx!
Lynx - Modo Texto - Agora sim! Navegador pequeno, no tem suporte a frames mas exibe uma listagem
permitindo selecionar qual ser aberto, sem suporte a java e muito flexvel em sua configurao (d uma
olhada na quantidade de opes no arquivo /etc/lynx.cfg). Tambm funciona via proxy tradicional ou
firewall.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 2 MB de disco.
Pine - Modo Texto - Programa de E-Mail muito usado entre os usurios GNU/Linux, mas no
gratuito.Possui suporte a criptografia PGP e HTML em sua nova verso.
Mutt - Modo Texto - Outro programa de E-mail muito usado pelos usurios do GNU/Linux. Possui suporte a
criptografia PGP, cores de destaque nas mensagens e processamento de links HTML. muito
personalizvel (veja a quantidade de opes no arquivo de configurao /etc/Muttrc). Sua interface em
Portugus.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 2 MB de disco.
ftp - Modo Texto - O prprio! faz cpias de arquivos de um site remoto para seu disco local ou vice versa. Veja
ftp, Seo 11.4 para mais detalhes.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 1 MB de disco.
telnet - Modo Texto - Conexo ao terminal virtual remotamente. Permite controlar seu terminal remotamente
atravs de uma conexo via rede TCP/IP. Veja Telnet, Seo 11.2 para mais detalhes.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 1 MB de disco.
talk - Modo Texto - Permite conversar com outros usurios GNU/Linux conectados atravs de uma rede TCP/IP
no estilo do Bate Papo ou do Chat do ICQ. Veja talk, Seo 11.8 para mais detalhes.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 1 MB de disco.
fetchmail - Modo Texto - Permite baixar as mensagens de seu servidor de e-mail para o seu diretrio de usurio
no sistema.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 1 MB de disco.
procmail - Modo Texto - Organiza mensagens em arquivos separados de acordo com a
origem/assunto/contedo. O procmail muito flexvel e tambm permite resposta automtica de
acordo com alguns tipos de mensagens e a criao de filtros de mensagens muito poderosos caso
voc conhea e saiba integrar as ferramentas do sistema.
bitchx - Programa de IRC muito complexo e poderoso. Ele opera em modo texto e em modo grfico (xbitchx).
Tem que ter disposio de hacker para aprender o que significam cada uma das 4 telas de comandos
obtidos com o /help.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 4 MB de disco.
xchat - Programa de IRC muito fcil de usar e com muitos recursos. Ele possui verses para modo texto e
grfico e possui suporte a scripts Perl e Python, personalizao de menus, comandos, etc. Sua
Guia Foca GNU/Linux

201

flexibilidade muito boa para quem conhece os comandos dos clientes IRC. Tambm permite o log das
conversas pblicas e privadas. Tambm funciona via proxy tradicional ou Firewall.
Equipamento mnimo recomendado: 386 com 8 MB de RAM e 3 MB de disco.
licq - Modo grfico - Programa de ICQ grfico para GNU/Linux. Apesar de ter muitos recursos, sua interface
muito organizada e possui suporte a seleo de sua aparncia (Skins). Emite avisos sonoros e levanta-se
sobre as outras janelas durante o recebimento de mensagens. Tambm funciona via proxy tradicional ou
Firewall.
Equipamento mnimo recomendado: 386 com 8 MB de RAM e 6 MB de disco.
zicq - Modo Texto - Programa de ICQ em modo Texto.
Equipamento mnimo recomendado: 386 com 2 MB de RAM e 1 MB de disco.

29.1.4 Emuladores
DosEmu - Emulador do DOS. Permite executar aplicativos e jogos de DOS no GNU/Linux
Equipamento mnimo recomendado: 486 com 8 MB de RAM e 4 MB de disco.
Wine - Emulador de Windows. Permite executar aplicativos desenvolvidos para Windows 3.1X, 9X, NT e 200x
no GNU/Linux.
Equipamento mnimo recomendado: 486 com 16 MB de RAM e 12 MB de disco.

29.1.5 Utilitrios
Midnight Commander -Gerenciador de Arquivos no estilo do Nortom Commander e Far. Opera tanto em modo
texto e grfico e possui todas as qualidades dos gerenciadores acima, mais o suporte ao
painel FTP, permisses de arquivos e dicas sobre o sistema. Simples, prtico e til.
Equipamento mnimo recomendado: 386 com 4 MB de RAM e 2 MB de disco.
wget - Modo Texto - Permite a cpia completa de sites remotos e tambm pode ser usado como mirror. Com o
simples comando wget http://www.metainfo.org/focalinux, todo o site do guia Foca Linux ser gravado
em seu disco. O wget tambm tem a caracterstica de resumir downloads interrompidos e copiar
somente arquivos mais novos.
Gostou da idia? Isto s o comeo! existem ferramentas mais poderosas no GNU/Linux :-)
Equipamento mnimo recomendado: 386 com 4 MB de RAM e disco dependendo do tamanho do site
que deseja copiar (um disco maior que 540 MB exige uma placa-me com suporte a LBA :-)

29.1.6 Administrao do Sistema


logcheck - Envia um E-Mail periodicamente ao usurio alertando sobre ocorrncias especiais encontradas nos
logs do sistema, como tentativas de invaso sem sucesso, tentativas de acesso ao usurio root do
sistema, erros nos dispositivos, mensagens dos daemons, inetd, etc.

29.2 Listagem de Aplicativos para GNU/Linux


Esta seo contm uma listagem dos mais diversos tipos de aplicativos/ferramentas/scripts/suites/servidores, etc.
para GNU/Linux com sua respectiva descrio. A listagem est organizada em ordem alfabtica e subsees
para facilitar a sua navegao e localizao do aplicativo desejado.
Alguns aplicativos marcados com (D) no final da descrio so Docks que so executados como cones no
gerenciador de janelas.

29.2.1 Perifricos / Gerenciamento de Hardware


3c5x9utils - Utilitrios de configurao e diagnstico para placas 3Com 5x9
apcupsd - Gerenciamento de Energia para No Breaks APC
buffer - Programa de buffering/reblocking para backup em tapes, impresso, etc
dds2tar - Ferramenta para usar caractersticas DDS de unidades DAT com o programa tar da GNU
dtlk -Controlador de dispositivo Linux para o DoubleTalk PC
eject - ejeta CDs e opera CD-Changers sob o Linux
estic - Programa de administrao para ISDN PABX ISTEC 1003/1008
gatos - Software de captura TV All-in-Wonder da ATI
genpower - Monitor de No Break e manipulador de falhas de energia
hdparm - Permite fazer um ajuste fino na performance do disco rgido
hpscanpbm - Utilitrio para o Scanner HP ScanJet
hwtools - Coleo de ferramentas para o gerenciamento em baixo nvel do hardware
isapnp - Permite configurar recursos de dispositivos Plug-and-Play no Linux
jazip - monta e desmonta Zip drives Iomega e/ou Jaz
Guia Foca GNU/Linux

202

jaztool - Utilitrio para manipular drives Iomega


joystick -Ferramentas de teste e calibragem de Joysticks
lcdproc - Daemon de tela LCD
lm-sensors - Utilitrios para ler a temperatura/voltagem/sensores da ventoinha da CPU
mtx - Controla unidades tape autochangers
pciutils - Utilitrios PCI para o Linux (para Kernels 2.[123].x )
powstatd - Daemon de monitoramento de No Breaks configurvel
prime-net - Permite doar ciclos da CPU no usados - Cliente PrimeNet GIMPS
sane-gimp1.1 - Interface para Scanners no gimp
sane - Interface para Scanners. Permite a comunicao e uso de diversos tipos de scanners diferentes.
setcd - Controla caractersticas de funcionamento de sua unidade de CD-ROM (auto-lock, auto-eject, etc)
sformat - Formatador de discos SCSI e ferramenta de reparo
svgatextmode - Executa o modo de texto em alta resoluo
synaptics - Configura um TouchPad da Synaptics
upsd - Programa monitor de No Breaks
wanpipe - Utilitrios de configurao para placas Sangoma S508/S514 WAN
wdsetup - Utilitrio de configurao para placas ethernet Western Digital e SMC
xsane-gimp1.1 - Uma interface X11 baseada no GTK para o SANE (Scanner Access Now Easy)
xsane - Uma interface X11 baseada no GTK para o SANE (Scanner Access Now Easy)
xviddetect - Detecta o modelo da placa de vdeo e indica servidores X associados a placa

29.2.2 Internet
arena - um navegador WWW compatvel com HTML 3.0 para o X
bezerk - Cliente IRC baseado em GTK
bitchx - Cliente IRC Avanado
bitchx-gtk - Interface grfica GTK para o BitchX
cftp - Cliente ftp de tela cheia
chimera2 - Navegador Web para o X
dxftp - Cliente FTP Darxite baseado em linha de comando
epic4 - Cliente irc epic irc client, verso 4
epic - Cliente ircII modificado com funcionalidades adicionais
everybuddy - Cliente ICQ, AOL, Yahoo (tudo em 1)
express - Navegador web baseado em GTK para o GNOME
filerunner - Programa FTP e Gerenciador de Arquivos baseado em X
ftp - O cliente FTP padro
ftp-upload - Envia arquivos FTP atravs de um script
gaim - Um clone GTK do AOL Instant Messenger
gftp - Cliente FTP do X/GTK+
gnap - Cliente Gnome para o Napster
gnapster - Cliente Napster para Linux - localiza arquivos MP3 na Internet
gnomeicu - Clone pequeno, rpido e funcional do Mirabilis ICQ
gnome-napster - Cliente Napster para Linux - localiza arquivos MP3 na Internet
gpppon - Um applet do gnome que funciona como uma interface ao pon e poff
gzilla - Um navegador web baseado em GTK
irssi - Cliente IRC para Gnome
isdnbutton - Inicia e Interrompe conexes ISDN e mostra status
licq-data - Arquivos de daods para o Licq
licq-plugin-qt2 - Interface grfica para o Licq usando bibliotecas QT2
licq - Programa ICQ grfico para Linux
lynx - Navegador WWW em modo texto
micq - Cliente ICQ baseado em texto com muitas caractersticas
mosaic - Navegador WWW Grfico
mozilla - Um Navegador WWW de cdigo aberto para o X e GTK+
ncftp2 - Um cliente FTP com interface fcil e com muitas caractersticas
ncftp - Um cliente FTP com interface fcil e com muitas caractersticas
Netscape - Navegador grfico com programa de e-mail, news, livro de endereos, editor de pginas HTML.
Suporta Java, tabelas, frames, CSS, proxy, etc...
ppxp - Programa PPP
ppxp-tcltk - Console tk do ppxp
Guia Foca GNU/Linux

203

ppxp-x11 - Console X do ppxp


quickppp - Ferramenta de configurao PPP
realplayer - Real Player
sysnews - Mostra noticias do sistema (de /var/news)
talk - Permite conversar com outro usurio conectado ao sistema ou via rede TCP/IP
tftp - Programa trivial file transfer
tik - Cliente Tcl/Tk do servio AOL Instant Messenger
utalk - programa parecido com o talk com caractersticas adicionais
vrwave - Navegador baseado em VRML 2.0 java
vrweb - Um navegador VRML e editor
wvdial - Discador PPP com inteligncia embutida.
wxftp-gtk - Um programa ftp grfico com a interface GTK
xchat - Cliente IRC para X similar ao AmIRC
xchat-gnome - Cliente IRC para o GNOME similar ao AmIRC
xisp - Uma interface X amigvel ao pppd/chat
xitalk - Programa talk que lista usurios atuais do sistema. Ele tambm pode iniciar uma seo talk, tocar som,
executar um aplicativo, etc. durante uma requisio talk
xrn - Leitor de news NNTP baseado em X
xtalk - Um cliente X-Window BSD talk, escrito em Python
ytalk - Programa talk avanado com suporte ao X
zicq - Cliente ICQ baseado em ncurses

29.2.3 Conferncia de audio/vdeo via Internet/Intranet


camediaplay - Interface de Cmera Digital
cqcam - Programa de Controle da Cmera Colorida QuickCam (PC/Paralela)
gphoto - Aplicativo Universal para cmeras digitais
gstalker - Stock and commodity price charting utility
photopc - Interface para cmeras digitais
phototk - Interface grfica para cmeras digitais
qcam - Capturador de Imagens da QuickCam
qvplay - Ferramenta de comunicao para a cmera Casio QV
rat - RAT - Ferramenta de conferncia de audio unicast e multicast
Vat - Ferramenta de audio conferncia via rede/Internet
vic - Ferramenta de vdeo conferncia
wbd - Prancha de Desenho para Multicast
webcam - Captura e faz o upload automtico de imagens para um servidor web

29.2.4 Gerenciamento de WebSites / Linguagem HTML


adacgi - Interface CGI para o Ada
amaya - Editor HTML Grfico da w3.org
analog - Analiza arquivos de log de servidores www
bk2site - Utilitrio para tornar bookmarks em pginas parecidas com o yahoo/Slashdot
bluefish - Um editor HTML baseado em Gtk+
bookmarker - Gerenciamento de bookmark baseado em WWW, ferramenta de recuperao e procura
bookmarks - Outra coleo de bookmarks
browser-history - Daemon do usurio que captura URLs procuradas e as registra
c2html - Destaca cdigos em C para apresentao em WWW
cgic-capture - Captura de ambiente CGI para depurao
cgiemail - Conversor de formulrio CGI para E-Mail
cgilib - Biblioteca CGI simples
cgiwrap - Permite usurios ordinrios executar seus prprios Scripts CGI
checkbot - Verificador de links WWW
cocoon - Um Framework de publicao XML/XSL
cronolog - Um roteador de arquivos de log para servidores web
curl - Copia um arquivo de um servidor FTP, GOPHER, ou HTTP (sem suporte a ssl)
cvs2html - Cria verses em html dos logs do CVS
faqomatic - FAQ cgi online e interativa
freetable - Um script em Perl que facilita a produo de tabelas HTML
gifsicle - Poderoso programa para a manipulao de imagens GIF
Guia Foca GNU/Linux

204

giftrans - Converte qualquer arquivo GIF em um GIF89a


gnujsp - Uma implementao gratuita do Sun's Java Server Pages (JSP 1.0)
gtml - Um pr-processador HTML
htdig - Sistema de procura WWW para a Intranet ou uma pequena internet
htget - Um capturador de arquivos que obtm arquivos atraes de servidores HTTP
htmldoc - Processador HTML que gera arquivos HTML, PS, e PDF indexados
htmlgen - Gerao de documentos HTML com scripts em Python
htp - Um pr-processador HTML
http-analyze - Um analizador rpido de logs de servidores WWW
hypermail - Cria arquivos HTML de listas de discusses por E-Mail
imaptool - Uma ferramenta para a criao de mapas de imagens do lado cliente
imgsizer - Adiciona os atributos WIDTH e HEIGHT a tags IMG tags em arquivos HTML
imho - Mdulo de E-Mail baseado na Web para o Roxen (usando IMAP)
imp - Programa de E-Mail baseado em IMAP para a Web
java2html - Destaca cdigos em Java e C++ para apresentao via WWW
jserv - Motor Java Servlet 2.0 com um mdulo Apache adicional
junkbuster - O Junkbuster da Internet!
latte - A linguagem para transformao de texto (atualmente para html)
linbot - Verificador de links de sites WWW
lists-archives - Arquivo Web para listas de discusso por E-Mail
mailto - Ligao de formulrios WWW com o programa de E-Mail
muffin - Um proxy Web pessoal e extensvel
pas2html - Destaca fontes do Pascal e Modula para apresentao via WWW
pcd2html - Scripts para converter imagens PCD para pginas HTML comentadas
perl2html - Destaca fontes do Perl para apresentao via WWW
php3 - Uma linguagem script embutida em HTML - lado do servidor
php4 - Uma linguagem script embutida em HTML - lado do servidor
phplib - Biblioteca para escrever aplicaes para a Web facilmente
plugger - Plug-in Mime do Netscape
rpm2html - Gera ndices HTML dos diretrios de RPMs
screem - Um ambiente de desenvolvimento de website
sitecopy - Um programa para gerenciar um site WWW via FTP
squishdot - Sistema de discusso/news baseado na Web
swish-e - Sistema simples de indexao Web para Humanos
swish++ - Sistema simples de indexao Web para Humanos++
tidy - Verificador de sintaxe HTML e reformatador do cdigo
w3mir - Ferramenta de cpia completa HTTP e mirror
wdg-html-validator - Verificador de arquivos HTML
webalizer - Programa de anlise arquivos de log do servidor Web
weblint - Um verificador de sintaxe e estilo mnimo para HTML
webmagick - Cria uma galeria de thumbnails para website
websec - Secretria Web
wget - Utilitrio para copiar arquivos atraes da WWW via HTTP e FTP com suporte a reincio do ponto de
interrupo do download.
wmf - Web Mail Folder
wml - Website META Language por Ralf Engelschall
wwwcount - Contador de acessos a pginas Web
wwwoffle - Explorer OFFline da World Wide Web
wwwtable - Um script em Perl que facilita a produo de tabelas em HTML
xsitecopy - Um programa para gerenciar um site WWW via FTP (verso GNOME)
zope - O Ambiente de Publicao de Objetos Z

29.2.5 Multimdia
gxanim - Interface em GTK para o xanim
smpeg-gtv - Exibe arquivos MPEG de audio/vdeo com interface em GTK+
smpeg-plaympeg - Exibe arquivos MPEG de audio/vdeo atravs da linha de comando
Guia Foca GNU/Linux

205

streamer - Programa de captura de vdeo para a bt848 a video4linux


tkxanim - Interface Tcl/Tk para o xanim
ucbmpeg - Encoder de vdeo MPEG e ferramentas de anlise
ucbmpeg-play - Exibe arquivos de vdeo MPEG
vstream - Utilitrio de captura de vdeo bttv para a criao de MPEGs
xanim - Exibe arquivos multimdia (animaes, filmes e sons)
xanim-modules - Instalao de binrios de xanim - somente mdulos

29.2.6 Som
ascdc - CD changer ideal para ser usado no After Step junto com o mdulo wharf
ascd - CD Player e mixer para Window Maker e After Step (D)
aumix - Mixer em modo texto que permite modificar, salvar e restaurar a configurao de som na inicializao
do sistema
bplay - Player/Gravador wav que opera em modo texto (root)
cam - Mixer para modo texto com controle completo da placa de som. Tambm permite salvar e restaurar a
configurao de som, embora isto seja mais simples atravs do aumix.
cdda2wav - Extrai audio do CD para arquivos wav e mp3
cd-diskio - Obtem dados do CDDB sobre o CD de audio
cdparanoia - Extrai dados de CD para wav
cdtool - Utilitrios para manipulao de CD player em modo texto
dtmfdial - Gera tons de discagem para linhas tom
festival - L textos para a placa de som do sistema
freeamp - Player mp2/mp3
gramofile - Programa de gravao de msicas de disco de vinil para wav com filtros para retirada de rudos
graudio - Permite controlar placas de rdio FM
grip - CD-Ripper e CD-Player (do CD paranoia)
gtick - Gera rudos de batida em /dev e /dsp
id3 - Modifica cabealhos de identificao de arquivos mp3
maplay - Decoder mp3 que permite a decodificao para a sada padro
mctools - CDplayer e mixer
mixer.app - Mixer para Window Maker (D)
mp3blaster - Player mp3 para console
mp3info - Mostra cabealho de arquivos mp3
nas - Network Audio Server - Sistema de audio atravs da rede
playmidi - Toca musicas .mid
recite - L textos para a placa de som do sistema
rplay - Toca sons atravs da rede
s3mod - Player para arquivos de msica s3m e mod
saytime - Diz as horas na placa de som
snack - Adiciona suporte a som na linguagem TCL/TK
soundtracker - Mdulos para edio. suporta mdulos .xt e instrumentos .xi
sox - Tradutor universal de sons
splay - Toca arquivos mp1, mp2, mp3
synaesthesia - Osciloscpio musical
timitidy - Midi sequencer. Tambm faz a converso de arquivos .mid para .wav
tkmixer - Mixer em TCL/TK
transcriber - Permite gravar notas durante a descrio de programas
vkeybd - Teclado virtual (requer placa awe)
wav2cdr - Converte wav em arquivos cdr. Permite edio de msicas
wavtools - Ferramentas para arquivos wav (player, recorder, compactao)
wmcdplayer - Mdulo de Cd player para Window Maker
wmxmms-spectrum - Spectrum analizador para Window Maker (D)
workbone - CD player para modo texto operado atravs do teclado numrico
wosundprefs - Preferncias musicais para o Window Maker
wsoundserver - Servidor de som para Window Maker
xcolmix - Um mixer colorido RGB
xfreecd - Programa para tocar CDS
xmcd - CD player/changer muito completo com suporte ao CDDB
xmix - Mixer para o X
Guia Foca GNU/Linux

206

xmp - Player mod, s3m, 669, mtm, ptm, okt, far, wow, amd, rad, alm

29.2.7 Comunicao/Fax
adbbs - AD BBS, uma BBS baseada em perl ou menu de sistema fcil
efax - Programas para enviar e receber mensagens de fax
hylafax-client - Programa HylaFAX cliente
hylafax-server - Programa HylaFAX servidor
lrzsz - Ferramentas para a transferncia de arquivos atravs de zmodem/xmodem/ymodem
mgetty-fax - Ferramentas de Fax para o mgetty
mgetty - Substituio ao getty
mgetty-viewfax - Programa para mostrar arquivos de fax sob o X
mgetty-voice -Secretria Eletrnica para o mgetty
minicom - Clone do "Telix" - um programa de comunicao do DOS
mserver - Servidor de Modem para a Rede
seyon - Programa de comunicao nativo completo nativo do X11
smsclient - Um programa para enviar mensagens curtas para telefones mveis/Pagers (SM / SMS)
speaker - Aplicativo Viva Voz baseado em Tcl/Tk
tkhylafax - Uma interface td ao hylafax
xringd - Daemon de chamadas Extendida - Monitora toques do telefone e executa alguma ao

29.2.8 X Window
asclock - Relgio do After Step
dfm - Gerenciador de Arquivos/Desktop
dgs - Visualizador de arquivos do Ghost Script
dxpc - Compactador do protocolo X para linhas lentas
floatbg - Modifica lentamente a cor do fundo da janela do root
gdm - Gerenciador de seo do GNOME - Substituio ao xdm
gentoo - Um gerenciador de arquivos totalmente configurvel para o X usando o GTK+
gtkcookie - Editor de arquivos cookie
gtkfind - Localizador de arquivos completo
gtkfontsel - Visualizador de fontes
ical - Um aplicativo de calendrio baseado em X11/Tk
regexplorer - Explorer visual de expresses regulares
rt - Mostra arquivos de log selecionados na janela raz do X
sclient - Um cliente MUD baseado em gtk.
sfm - Um gerenciador de arquivos baseado em texto usando o GTK+
tkdesk - Um gerenciador de Desktop/Arquivos X11 baseado em TCL/TK
tkvnc - Mostra uma lista de mquinas definidas para iniciar o VNC
tkworld - Uma interface grfica para comandos do shell
tuxeyes - Uma verso do xeyes para o penguim
ude - Ambiente desktop do Unix
unclutter - Oculta o mouse no X aps um perodo de inatividade
uwm - Gerenciador de janelas ultimate para o UDE
vreng - Motor de realidade virtual
wdm - Substituio ao XDM com visual do Window Maker, animaes e suporte a seleo do gerenciador de
janelas
wmanager - Permite selecionar o gerenciador de janelas aps o login do xdm
wmapm - Mostra o status da bateria, gerenciamento de energia do sistema (D)
wmdate - Mostra a data/dia da semana (D)
wmifs - Monitor das interfaces de rede com indicador de atividade das interfaces (envio/recebimento) grfico de
atividade na rede e indicador de interface ativa (D)
wmitime - Relgio analgico+digital+data e hora da Internet. (D)
wmload - Mostra a carga da CPU na forma de barras (D)
wmmail - Monitor de E-mails (D)
wmmatrix - Mostra um dock do matrix (D)
wmmixer - Mixer para o Window maker (D)
wmmoonclock - Relgio da lua (D)
wmnet - Monitor de interfaces de rede (D)
wmnetselect - Dispara o netscape atravs de um cone (D)
Guia Foca GNU/Linux

207

wmpinboard - Todo list com animaes e um excelente visual (D)


wmspaceweather - Monitora prtons e eltrons do espao (D)
wmtime - Relgio analgico, dia da semana e data (D)
wmtv - Sintonizador de TV para Window Maker com suporte a seleo de canais, sistema de cores PAMM/Secam/NTSC, ajuste fino, procura de estaes de TV, uso de aplicativos de TV externos e muito mais
(D)
x2x - Liga a imagem de 2 monitores simulando multi-telas
xautolock - Inicia um programa aps certo perodo de inatividade do X
xawtv - Visualizador Video4linux
xbanner - Deixa a tela de login mais bonita
xext - Extenses para os servidores X
xfishtank - Mostra um aqurio na janela raz do X Window
xfs - Servidor de fontes do X
xfs-xtt - Servidor de fontes do X com suporte a fontes true type
xinput - Configurao em tempo de execuo e teste para dispositivos de entrada do X
xipmsg - Envia mensagens
xjscal - Calibrador de Joystick para o X11
xkbsel - Ferramenta para definir, selecionar e indicar teclados para o X
xkbsel-gnome - Ferramenta para definir, selecionar e indicar teclados para o X (verso para Gnome)
xkeycaps - Mostra o cdigo de teclas do seu teclado no X para a construo de um Xmodmap personalizado
xlockmore-gl - Verso do xlockmore em GL
xlockmore - Trava a tela do X at que uma senha seja digitada
xmaddressbook - Agenda de endereos para o X
xmanpages - Visualizador de pginas de manual para o X
xmbdfed - Editor de fontes para o X11
xmon - Monitor do protocolo X
xmotd - Navegador da mensagem do dia par ao X
xodo - Mede a "distncia" percorrida pelo cursos do seu mouse. permitido escolher at a unidade de medida
da distncia
xpaste - Mostra o contedo copiado com CTRL+C
xrootconsole - Melhora a aparncia do desktop
xscreensaver - Coleo de Screen Savers automtico para o X
xscreensaver-gl - Protees de tela GL para o xscreensaver
xsm - Gerenciador de seo do X
xsnow - Animao de neve para o X (muito legal).
xt - Traceroute grfico em GL. Mostra o caminho percorrido por sua conexo at chegar ao destino
xvt - Emulador de terminal do X parecido com o xterm, mas menor
xwit - Uma coleo de rotinas simples para chamar algumas funes do X11
xwrits - Te lembra para dar uma parada na digitao
xzoom - Lente de aumento para parte da sua tela do X, com atualizaes rpidas

29.2.9 Editorao Grfica/Visualizadores


dia - Editor de Diagramas
egon - Programa de animaes da Siag Office
gimp - O Programa de Manipulao de Imagens da GNU
imagemagick - Programas de manipulao de Imagem
mentor - Uma coleo de algoritmos de animao
moonlight - Cria e desenha cenas em 3D
pixmap - Um editor de pixmaps
qcad - Sistema CAD PROFISSIONAL.
qiv - Um visualizador rpido de imagens para o X
saoimage - Utilitrio para mostrar e processar imagens atronmicas
sced - Um programa para criar cenas em 3D
sketch - Um programa de desenho interativo do X11
terraform - Um programa para gerao/manipulao de mapas Tridimensionais da Terra
tgif - Programa para desenhos 2-D sob o X11
whirlgif - Cria GIFs animadas
xbmbrowser - Navegador para Pixmaps e Bitmaps
xfig - Facilita a gerao de figuras interativamente sob o X11
Guia Foca GNU/Linux

208

xli - Visualiza imagens sob o X11


xloadimage - Visualizador de arquivos grficos sob o X11
xpcd - Coleo de ferramentas PhotoCD: Bsico
xpcd-gimp - Coleo de ferramentas PhotoCD: Suporte ao Gimp
xpcd-svga - Coleo de ferramentas PhotoCD: Visualizador SVGA
xv-doc - Documentao do XV em Posscript e HTML.
xv - Uma visualizador e manipulador de imagens para o X Window System
xwpick - Captura uma tela X11 e armazena em arquivos

29.2.10 Emuladores/Ferramentas p/ Interao com outros SO


doschk - Verifica a compatibilidade de arquivos SYSV e DOS
dosemu - Emulador de DOS para Linux
dosfstools-Utilitrios para criar e checar sistemas de arquivos DOS FAT
hfsutils - Ferramenta para ler e gravar volumes Macintosh.
hfsutils-tcltk -Interface Tcl/Tk para ler e gravar volumes Macintosh
macutils - Conjunto de ferramentas para negociar com arquivos especiais do Macintosh
mcvert - Ferramenta para negociar com arquivos encodificados especiais do Macintosh
mixal - Um emulador MIX e interpretador MIXAL
mtools - Ferramenta para manipulao de arquivos do DOS
p3nfs - Monta unidades da sria Psion 3[ac], 5
simh - Um emulador de vrios computadores DEC
stella - Emulador do video game Atari 2600 Emulator para X Windows
uae-exotic - O Emulador Amiga Ubiquitous: Binrios exticos
uae - O Emulador Amiga Ubiquitous: Bsico
uae-suid - O Emulador Amiga Ubiquitous: Binrios Suid root
umsdos - Utilitrios para o sistema de arquivos UMSDOS
vice - Emulador verstil do commodore
wine - Emulador do Windows (Emulador Binrio)
xapple2 - Emulador do Apple
xcopilot - Emulador do Pilot
xspectemu - Emulador do Spectrim Fast 48k ZX para X11
xtrs - Emulador para os computadores TRS-80 Modelos I/III/4/4P
xzx - Emulador de espectro baseado em ZX para o X11

29.2.11 Programao / Bancos de Dados / Acesso a Dados


bcc - Compilador C 16 Bits
bin86 - Assembler 16 bits e carregador
binutils - Assembler da GNU, linker e utilitrios binrios
clc-intercal - Compilador para a linguagem Intercal
cmucl - Compilador lisp CMUCL e sistema de desenvolvimento
colorgcc - Colore mensagens de alerta/erro do GCC
cutils - Utilitrios de cdigo fonte C
cvs - Concurrent Versions System
cvsweb - uma interface CGI ao seu repositrio CVS
cxref - Gera documentao em latex e HTML para seus programas em C
dbf2pg - Converte arquivos do xBase para PostgreSQL
dbf - Pacote de manipulao de arquivos xbase
dbview - Visualiza arquivos do dBase III
dialog - Permite adicionar o recurso de caixas de dilogo em shell scripts como "Yes/No", "Ok", "Cancelar",
etc.
dist - Ferramentas para desenvolver, manter e distribuir softwares
doc++ - Um sistema de documentao para C/C++ e Java
f2c -Um tradutor do Fortran77 para C/C++ com bibliotecas estticas e compartilhadas
f77reorder - Um script de compilao Fortran chamando o f2c/gcc
fp-api -Units Livres da API do Pascal
fp-compiler - Compilador Livre do Pascal
fp-extra - Pacotes Extras do Pascal Livre
fp-fcl - Pascal Livre - Biblioteca de Componentes Livres
fp-gtk - Ligaes Pascal - GTK
Guia Foca GNU/Linux

209

fp-utils - Units do Pascal Livre


freetds-jdbc - Driver JDBC Java puro para MS SQL e Sybase
g77 - Compilador GNU Fortran 77.
gbdk-dev - Kit de desenvolvimento do GameBoy - pacotes de desenvolvimento
gbdk-examples - Kit de desenvolvimento do GameBoy - pacote de exemplos
gbdk -Kit de desenvolvimento GameBoy - pacote binrio
gcc272-docs - Documentao para compiladores gcc (gcc272, g++272)
gcc-i386-gnu - Cheap cross-compiler para GNU/Hurd
gcc - O compilador C da GNU
g++ - Compilador GNU C++
gdb - O depurador GNU
gengetopt - Gerador de estrutura main.c
global - Ferramenta de procura e navegao do cdigo fonte
gpc - Compilador Pascal da GNU
gprolog - Compilador GNU Prolog
gtksql - Interface grfica GTK para o banco de dados posgress SQL
guavac - Compilador java
hello-debhelper - O programa inicial e um bom exemplo
hello - O programa inicial e um bom exemplo
indent - Programa de formatao do cdigo fonte em linguagem C
inform - Compilador para jogos de aventura
jitterbug - Um ferramenta cgi-bin para relato de problemas e teste
lclint - Uma ferramenta para checagem esttica de programas em C
liwc - Ferramentas para manipular o cdigo fonte em C
mercury - Nova linguagem de programao lgica/funcional
mmake - Gerador Makefile para programas em java
mpsql - Uma interface grfica ao PostgreSQL
mysql-client - Binrios cliente do banco de dados mysql
mysql-gpl-client - Binrios cliente do banco de dados mysql
mysql-manual - Documentao no oficial do MySQL 3.20
mysql-server 3.22.32-1 - binrios do servidor do banco de dados mysql
nosql - um sistema de Gerenciamento de Banco de Dados Relacional para Unix
p2c - Tradutor Pascal para C
pentium-builder - Fora a compilao otimizada para computadores Pentium
pgaccess - Interface grfica Tk/Tcl para o banco de dados PostgreSQL
phylip - [Biology] A program package for inferring phylogenies
postgresql - Banco de dados SQL relacionado a objetos, descendente do POSTGRES
postgresql-client - Programas de interface para o PostgreSQL
postgresql-contrib - Facilidades adicionais para o PostgreSQL
postgresql-test - Conjunto de testes de regresso para o PostgreSQL
smalleiffel - Compilador Eiffel GNU
solid-desktop - Servidor SQL Slido
solid-devel - Desenvolvimento do Servidor SQL Slido
solid-doc-Documentao do servidor slido SQL
solid-tools - Ferramentas do servidor slido SQL
www-mysql - Uma interface WWW interface para o banco de dados TCX mySQL
www-pgsql - Uma interface WWW para o banco de dados PostgreSQL
xmysqladmin - Interface grfica para o mysql (3.22.xx)
xxgdb - Interface grfica para o GNU debugger gdb

29.2.12 Impresso
apsfilter - Um filtro de linha de impresso para sistemas com lpd/lpr
cupsys-bsd - Common UNIX Printing System(tm) - comandos BSD
cupsys - Common UNIX Printing System(tm) - bsico
djtools - Ferramentas para a impressora HP Deskjet
ifhp - Filtro para impressoras HP LaserJet
lprng - Sistema de spooling de impresso lpr/lpd
lpr - Sistema de spooling da linha de impresso estilo BSD
Guia Foca GNU/Linux

210

magicfilter - Filtro automtico de impressora


mpage - Mostra mltiplas pginas em uma impressora PostScript
printop - Interface grfica para o daemon de impresso LPRng
printtool - Ferramenta de administrao de impressoras
psptools - Ferramentas para impressoras PostScript e dispositivos
rlpr -Um utilitrio para impresso do ldp sem usar o /etc/printcap
wip - Pacote de para ploters grficos com alta qualidade de sada

29.2.13 Texto
1a2ps - Conversor GNU de "tudo para PostScript" e impresso
abc2ps - Traduz arquivos de descrio de msica ABC para PostScript
acroread - Adobe Acrobat Reader: Visualizador de arquivos Portable Document Format
aspell - Uma substituio mais inteligente para o verificador ortogrfico ispell
brazilian-conjugate - Conjugador de verbos Portugues do Brasil
catdoc - Conversor de arquivos MS-Word para TeX ou texto plano
colortail - tail que colore os padres que conferem
cost - Ferramenta de ps processamento SGML de propsito geral
debiandoc-sgml -DTD DebianDoc SGML e ferramentas de formatao
docbook - DTD SGML para a documentao de software
dog - Substituio avanada para o cat
figlet - Cria palavras usando tabelas de caracteres ASCII
flip - Converte arquivos de texto entre os formatos DOS e Unix
ghostview - Um visualizador PostScript para o X11
gnuhtml2latex - Um Script Perl que converte arquivos html em latex
gs-aladdin - Interpretador PostScript com suporte a X11 e preview svgalib
gsfonts - Fontes para o interpretador ghostscript
gs - Interpretador PostScript com suporte a X11 e preview svgalib
gtkdiff - Ferramenta de comparao de texto grfica
help2man - Gerador automtico de pginas de manual
html2ps - Conversor HTML para PostScript
iamerican - Um dicionrio de Ingls Americano para o ispell
ibrazilian - Um dicionrio do Brasileiro para o ispell
ispell - International Ispell (um corretor ortogrfico interativo)
less - Programa de paginao de arquivos, parecido com o more
lincredits - Gera verses com melhor formatao do arquivo CREDITS do Linux
lookup - utilitrio para procurar arquivos de texto rapidamente e com muitos recursos
lout - Sistema de Digitao, uma alternativa ao (La)TeX
lv - Um poderoso visualizador de arquivos multi-lngua
lyx - Processador de textos de alto nvel
mgdiff - clone do xdiff
mswordview - Um conversor de arquivos MS Word 97/2000 para HTML
ndtpd - Servidor CD-ROM books
par - Reformatador de pargrafo
pbm2ppa - Conversor PBM para PPA
perlsgml - Ferramentas para construir e analizar DTDs SGML
perspic - Programa indexador de textos e localizador de palavras
poster - Faz grandes posters de pginas PostScript
ppd-gs - Arquivos de descrio de impressora PostScript para o Ghostscript
pstotext - Extrai textos de arquivos PostScript e PDF
recode - Utilitrio de converso do conjunto de caracteres
sgml-base - Utilitrio para manter o arquivo de catlogo SGML
sgml-data - Dados comuns entre DTDs SGML e entities
sgml-tools - Conversores SGML somente par ao DTD linuxdoc
spell - Spell GNU, um clone do "spell" para Unix
sufary - Ferramentas de procura em texto completo usando uma array de sufixos
sufary-tcltk - Interface Tcl/Tk para o SUFARY
tcs - Tradutor de conjunto de caracteres
tkdiff - Utilitrio "diff" grfico
trueprint - Imprime de forma organizada o cdigo fonte
Guia Foca GNU/Linux

211

word2x - Traduz arquivos do Word em texto ascii ou LaTeX


xpdf - Visualizador do formato Portable Document Format para X11
xpw - O processador de textos Pattico

29.2.14 Kernel
adjtimex - Mostra e configura variveis do Kernel
autofs - Montador automtico baseado no Kernel para Linux
Kernellab - Gerencia facilmente configuraes do Kernel em muitas mquinas
Kernel-package - Scripts de construo do pacote de Kernel para a Debian
knl - Obtm/ajusta parmetros de imagem do Kernel
ksymoops - Interpreta mensagens oops e de erro do Kernel
psmisc - Utilitrios que utilizam o sistema de arquivos /proc
systune - Ajuste fino do Kernel atravs do sistema de arquivos /proc

29.2.15 Notebooks
apmd - Utilitrio para gerenciamento avanado de energia (APM) em Notebooks
toshutils - Utilitrios para Note Books Toshiba
wmbattery - Mostra o status/carga da bateria (D)

29.2.16 Gravao de CD/DVD


cdrdao - Grava CDs de audio ou tipos de dados diversos no disco de uma s vez
cdrecord - Ferramenta de gravao de CD/DVD
cdrtoaster - Interface grfica em Tcl/Tk para gravar CD-ROMs
cdwrite - Ferramenta de gravao de CD para unidades CD-R Orange Book
cdlabelgen - Gera capa e fundo para CDs
gtoaster - Gnome Toaster, uma interface grfica para gravao de CD's
mkhybrid - Cria imagens do sistema de arquivos CD-ROM
mkisofs - Cria imagens do sistema de arquivos CD-ROM ISO-9660
tkcdlayout - Programa simples em X para criar capas de CDs
xcdroast - Software de gravao de CDs baseado no X

29.2.17 Computao Paralela/Clusters


lam2-dev - Ativa processamento paralelo entre mltiplos processadores
mpich - Sistema de computao Paralela
pvm - Mquina Virtual Paralela - binrios e bibliotecas compartilhadas

29.2.18 PalmTop / Palm Pilot / Computadores de Mo


imgvtopgm -Utilitrio de converso de imagem PalmPilot/III
jpilot -Um utilitrio GTK para modificar o contedo de seus Bancos de Dados no Pilot.
lpkg - Carregador do pacotes de mensagens para o PDA Newton MessagePad
lx-gdb - Mostra e carrega banco de dados do palmtop da HP
lxtools -Permite o gerenciamento de arquivos em palmtops HP100/200LX
palm-doctoolkit - Ferramentas de texto eletrnico para usurios PalmPilot
picasm -Assembler para a familia de controladores Microchip PIC
pilot-link -Ferramentas para se comunicar com um Pilot 3COM PDA atravs de uma porta serial
pilot-manager - PalmPilot PIM, UI, e gerenciador de condute
pilot-template - Gerador de cdigo para programas do PalmPilot
pilrc - Compilador de recursos e editor do PalmPilot/PalmIII
pose - Emulador PalmOS
prc-tools - GCC, GDB, binutils, etc. para o PalmPilot e Palm III
pyrite - Kit da plataforma de comunicao Palm Computing(R) para Python

29.2.19 Backup
afbackup-client - Sistema de backup cliente-servidor (lado Cliente)
afbackup - Sistema de backup cliente-servidor (lado Servidor)
amanda-client - Advanced Maryland Automatic Network Disk Archiver (Cliente)
amanda-common - Advanced Maryland Automatic Network Disk Archiver (Libs)
Guia Foca GNU/Linux

212

amanda-server - Advanced Maryland Automatic Network Disk Archiver (Servidor)


floppybackup - Backup em disquetes usando diversos tipos de formatos de disquetes
taper - Utilitrio de backup do sistema em tela cheia
tob - Programa pequeno e poderoso orientado a backup de tapes

29.2.20 Utilitrios
afio - Programa de manipulao de arquivos
aish - Conversor ish/base64/uuencoded_file
alien - Instala pacotes da Red Hat, Stampede e Slackware com o dpkg
ascii - Mostra aliases e tabela para caracteres ASCII
autoconf - Script de configurao automtico
autogen - Gerador automtico de arquivos texto
automake - Gerador automtico de scripts Makefile
autoproject - Cria um esqueleto de pacote fonte para um novo programa
barcode - Cria cdigo de barras no formato .ps
binstats - Ferramenta de estatstica para programas instalados
birthday - Alerta sobre eventos pendentes no login
blinkd -Pisca LEDS do teclado para uma secretria eletrnica ou mquina de fax
bl - Pisca seqencialmente os LEDs do teclado
bsdmainutils - Mais utilitrios do 4.4BSD-Lite
btoa - Converte binrio para ascii e vice versa
cbb - Um clone do Quicken
chase - Segue um link simblico e mostra seu arquivo alvo
dgpsip - Corrige localizao GPS com o sinal DGPS da internet
diffstat - produz grficos das alteraes introduzidas por um arquivo diff
dotfile-bash - Gerador de arquivos dotfile, mdulo para o bash
dotfile -Configurao fcil de programas populares atravs da interface Tcl/Tk
dotfile-elm - Gerador de arquivos dotfile, mdulo para o elm
dotfile-fvwm1 - Gerador de arquivos dotfile, mdulo para o fvwm1
dotfile-fvwm2 - Gerador de arquivos dotfile, mdulo para o fvwm2
dotfile-ipfwadm - Gerador de arquivos dotfile, mdulo para o ipfwadm
dotfile-procmail - Gerador de arquivos dotfile, mdulo para o procmail
dotfile-rtin - Gerador de arquivos dotfile, mdulo para o rtin
dotfile-tcsh - Gerador de arquivos dotfile, mdulo para o tcsh
dump - 4.4bsd dump e restore para sistema de arquivos ext2
fastjar - Utilitrio de criao de arquivos Jar
fdupes - Identifica arquivos duplicados residindo nos diretrios especificados
fdutils - Utilitrios de disquete do Linux
file - Determina o tipo de arquivo usando nmeros "mgicos"
gcal - Mostra um calendrio
gettext - Utilitrios de internacionalizao da GNU
gfloppy - Interface grfica para a formatao de disquetes
git - Ferramentas interativas da GNU
glimpse - Ferramentas de indexao e localizao em tela cheia
gmc - Midnight Commander - Um poderoso gerenciador de arquivos - Verso gnome
gmemusage -Mostra um grfico detalhando a utilizao de memria por cada processo
gnotes - Applet de notas Yellow sticky para o GNOME
gnucash - Um programa de tratamento de finanas pessoais
gpm - Daemon de mouse para modo texto
grep-dctrl - Verso do gru para informaes de pacotes da Debian
gtktalog - Catlogo de Disco
guitar - Ferramenta de extrao/visualizao de arquivos em GTK+
gxset - Interface grfica baseada em GTK a ferramenta de linha de comando xset
hextype - Hexdump de acordo com o formato de sada do antido Debug do DOS
iraf - Reduo de Imagem e Facilidade de Anlise (astronomia/imagem)
jdresolve - Alternativa rpida ao logresolve do Apache
kbd - Utilitrios de fonte e mapas de teclado para o console do Linux
launcher - Seleciona que programa carregar de acordo com a extenso
lavaps - Uma lmpada de lava dos processos atualmente executados
Guia Foca GNU/Linux

213

leave - Te lembra quando deve deixar o sistema (muito til para quem gosta do Linux :-)
linuxlogo - Logotipo do Sistema Colorido em ANSI
loadwatch - Executa um programa usando somente ciclos ociosos da CPU
makepatch - gera/aplica arquivos de patch com mais funcionalidade que o diff plano
mc-common - Arquvios comuns par ao mc e gmc
mc - Midnight Commander - Um poderoso gerenciador de arquivos
mirrordir - Duplica um diretrio fazendo um mnimo de modificaes
ncdt - Mostra a rvore de diretrios
netplan - Servidor de rede para o "plan"
nwrite - Substituio avanada ao comando write
patch - Aplica um arquivo gerado pelo diff a um original
pcal - Cria calendrios imprimveis via PostScript sem o X
perforate - Utilitrios para salvar espao em disco
pgrep - utilitrio grep que usa expresses regulares compatveis com o Perl
plan - Planejamento dirio baseado em X/Motif (compilado dinmicamente com LessTif)
pointerize - Utilitrios de internacionalizao baseado no gettext
popularity-contest - Vote em seus pacotes favoritos automticamente
pydf - Clone df com sada em cores
rtlinux - Linux em Tempo Real
set6x86 -Ferramenta de configurao para CPUs Cyrix/IBM 5x86/6x86
splitvt - Executa dois programas em uma tela dividida
statserial - Mostra a linha de status da porta serial do modem
strace - Um traador de chamadas do sistema
sunclock - Mostra poro iluminada do planeta terra
symlinks - procura/modifica links simblicos
tleds - Pisca LEDs do teclado indicando Envio e Recebimento de pacotes da rede
tree - Mostra a rvore de diretrios em cores
units - conversor entre diferentes unidades de sistema
uptimed - Utilitrio para registrar seus maiores tempos de utilizao do sistema
urlview - Extrai URLs de textos
vold - Daemon de volume para unidades de CDROM
vrms - Virtual Richard M. Stallman (mostra mensalmente uma lista de pacotes no-livres instalados em seu
sistema)
wipe - Deleo segura de arquivos (sem possibilidade de recuperao)
xcal - Um calendrio grfico com alarmes de alerta
xplanet - Cria imagens do planeta Terra
xvmount - Pequeno utilitrio grfico para a montagem de dispositivos pelos usurios

29.2.21 Compactadores/Descompactadores/Arquivadores
bzip2 - Um timo compactador de arquivos texto - utilitrios
gzip - Compactador de arquivos de formato .gz
lha - Compactador de arquivos no formato .lha ou . lzh
lzop - Um compactador em tempo real
ncompress - Compress / Uncompress original para a transferncia de News, etc.
rar - Compactador/Descompactador de arquivos .rar
tar - Utilitrio de arquivamento de arquivos
unarj - Descompactador de arquivos .arj
unzip - Descompactador de arquivos .zip
zoo - Manipula arquivos compactados no formato .zoo

29.2.22 Dispositivos X-10 (Controle de eletrodomsticos e aparelhos via


PC)
bottlerocket - Utilitrio para controle de dispositivos X10
heyu - Comunicao X10 de dois pontos para o CM11A
wmx10 - Permite controlar uma casa atravs de mdulos x10. Este aplicativo permite controlar at 8
dispositivos por casa (D)
x10 - Opera mdulos de controle de fora eltrica
X10x10-automate - Interface grfica para o utilitrio de controle de fora de linha X10
xtend - Daemon monitor de status X10
Guia Foca GNU/Linux

214

29.2.23 Outros
acs - Simulador de Circuito Al's
avra - Montador para microcontroladoras AVR Atmel
avrp - Programador para microcontroladoras AVR Atmel
chipmunk-log - Ferramenta de captura esquemtica e ambiente de simulao
cracklib2-dev - Uma biblioteca de checagem de senhas
cracklib2 - Uma biblioteca de checagem de senhas
cracklib-runtime - Uma biblioteca de checagem de senhas
display-dhammapada - Mostra versos do Dhammapada
fastdnaml - [Biologia] Uma ferramenta para construo de rvores da seqncia do DNA
geda - GNU EDA -- Software de design eletrnico
gwave - Um visualizador waveform para simuladores spice
megahal - Um simulador de conversao que pode aprender
mime-support - Arquivos MIME "mime.types" e "mailcap", e programas
nitpic - Simulador para o Microcontrolador Microchip PIC16C84
pcb - Programa de Design de Placas de Circuito Impresso
puzzle - [Biology] Reconstruction of phylogenetic trees by maximum likelihood
readseq - [Biologia] Converso entre formatos em seqncia
savant - Analizador VHDL 93 livre da University de Cincinnati's
screen - Um gerenciador de tela com a emulao de terminal VT100/ANSI
seaview - [Biologia] Um editor de alinhamento em mltiplas seqncias
simulpic - Simulador de dispositivo PIC Microchip
smtm - Show Me The Money is a configurable Perl/Tk stock ticker program
spim - Emulador MIPS R2000/R3000
xacc-smotif -Um programa de tratamento de finanas pessoais
xacc - Um programa de tratamento de finanas pessoais
xcircuit - Esquemas de circuitos de desenho de quase tudo

Guia Foca GNU/Linux

215

Captulo 30 Como obter ajuda no sistema


Dvidas so comuns durante o uso do GNU/Linux e existem vrias maneiras de se obter ajuda e encontrar a
resposta para algum problema. O GNU/Linux um sistema bem documentado, provavelmente tudo o que
imaginar fazer ou aprender j esta disponvel para leitura e aprendizado. Abaixo segue algumas formas teis
para encontrar a soluo de sua dvida, vale a pena conhece-las.

30.1 Pginas de Manual


As pginas de manual acompanham quase todos os programas GNU/Linux. Elas trazem uma descrio bsica
do comando/programa e detalhes sobre o funcionamento de opo. Uma pgina de manual visualizada na
forma de texto nico com rolagem vertical. Tambm documenta parmetros usados em alguns arquivos de
configurao.
A utilizao da pgina de manual simples, digite:
man [seo] [comando/arquivo]
onde:
seo - a seo de manual que ser aberta, se omitido, mostra a primeira seo sobre o comando
encontrada (em ordem crescente).
comando/arquivo - Comando/arquivo que deseja pesquisar.
A navegao dentro das pginas de manual feita usando-se as teclas:
q - Sai da pgina de manual
PageDown ou f - Rola 25 linhas abaixo
PageUP ou w - Rola 25 linhas acima
SetaAcima ou k - Rola 1 linha acima
SetaAbaixo ou e - Rola 1 linha abaixo
r - Redesenha a tela (refresh)
p ou g - Incio da pgina
h - Ajuda sobre as opes da pgina de manual
s - Salva a pgina de manual em formato texto no arquivo especificado (por exemplo: /tmp/ls).
Cada seo da pgina de manual contm explicaes sobre uma determinada parte do sistema. As sees so
organizadas em diretrios separados e localizadas no diretrio /usr/man. Os programas/arquivos so
classificados nas seguintes sees:
1.
Programas executveis ou comandos internos
2.
Chamadas do sistema (funes oferecidas pelo Kernel)
3.
Chamadas de Bibliotecas (funes dentro de bibliotecas do sistema)
4.
Arquivos especiais (normalmente encontrados no diretrio /dev)
5.
Formatos de arquivos e convenes (/etc/inittab por exemplo).
6.
Jogos
7.
Pacotes de macros e convenes (por exemplo man)
8.
Comandos de Administrao do sistema (normalmente usados pelo root)
9.
Rotinas do Kernel (no padres)
A documentao de um programa tambm pode ser encontrada em 2 ou mais categorias, como o caso do
arquivo host_access que documentado na seo 3 (bibliotecas) e 5 (formatos de arquivo). Por este motivo
necessrio digitar man 5 hosts_access para ler a pgina sobre o formato do arquivo, porque o comando man
procura a pgina de manual nas sees em ordem crescente e a digitao do comando man hosts_access abriria a
seo 3.
As pginas de manual contm algumas regras para facilitar a compreenso do comando:
Texto Negrito - Deve ser digitado exatamente como mostrado
[bla bla bla] - Qualquer coisa dentro de [] so opcionais
Exemplo: man ls, man 5 hosts_access.

30.2 Info Pages


Idntico as pginas de manual, mas usada navegao entre as pginas. Se pressionarmos <Enter> em cima de
uma palavra destacada, a info pages nos levar a seo correspondente. A info pages til quando sabemos o
nome do comando e queremos saber para o que ele serve. Tambm traz explicaes detalhadas sobre uso,
opes e comandos.
Para usar a info pages, digite:
Guia Foca GNU/Linux

216

info [comando/programa]
Se o nome do comando/programa no for digitado, a info pages mostra a lista de todos os manuais de
comandos/programas disponveis. A navegao da info pages feita atravs de nomes marcados com um "*"
(hipertextos) que se pressionarmos <Enter>, nos levar at a seo correspondente. A info pages possui algumas
teclas de navegao teis:
q - Sai da info pages
? - Mostra a tela de ajuda (que contm a lista completa de teclas de navegao e muitos outras opes).
n - Avana para a prxima pgina
p - Volta uma pgina
u - Sobre um nvel do contedo (at checar ao ndice de documentos)
m - Permite usar a localizao para encontrar uma pgina do info. Pressione m, digite o comando e tecle
<Enter> que ser levado automaticamente a pgina correspondente.
d - Volta ao ndice de documentos.
Existem muitos outras teclas de navegao teis na info pages, mas estas so as mais usadas. Para mais detalhes,
entre no programa info e pressione ?.
Exemplo: info cvs.

30.3 Help on line


Ajuda rpida, til para sabermos quais opes podem ser usadas com o comando/programa. Quase todos os
comandos/programas GNU/Linux oferecem este recurso que til para consultas rpidas (e quando no
precisamos dos detalhes das pginas de manual). til quando se sabe o nome do programa mas deseja saber
quais so as opes disponveis e para o que cada uma serve. Para acionar o help on line, digite:
[comando] --help
comando - o comando/programa que desejamos ter uma explicao rpida.
O Help on Line no funciona com comandos internos (embutidos no Bash), para ter uma ajuda rpida sobre os
comandos internos, veja help, Seo 30.4.
Exemplo: ls --help.

30.4 help
Ajuda rpida, til para saber que opes podem ser usadas com os comandos internos do interpretador de
comandos. O comando help somente mostra a ajuda para comandos internos, para ter uma ajuda similar para
comandos externos, veja Help on line, Seo 30.3. Para usar o help digite:
help [comando]
Exemplo: help echo, help exit

30.5 apropos/whatis
Apropos procura por programas/comandos atravs da descrio. til quando precisamos fazer alguma coisa
mas no sabemos qual comando usar. Ele faz sua pesquisa nas pginas de manual existentes no sistema e lista os
comandos/programas que atendem a consulta. Para usar o comando apropos digite:
apropos [descrio]
Digitando apropos copy, ser mostrado todos os comandos que tem a palavra copy em sua descrio
(provavelmente os programas que copiam arquivos, mas podem ser mostrados outros tambm).

30.6 locate
Localiza uma palavra na estrutura de arquivos/diretrios do sistema. til quando queremos localizar onde um
comando ou programa se encontra (para copia-lo, curiosidade, etc). A pesquisa feita em um banco de dados
construdo com o comando updatedb sendo feita a partir do diretrio raz / e sub-diretrios. Para fazer uma
consulta com o locate usamos:
locate [expresso]
A expresso deve ser o nome de um arquivo diretrio ou ambos que sero procurados na estrutura de diretrios
do sistema. Como a consulta por um programa costuma localizar tambm sua pgina de manual,
recomendvel usar "pipes" para filtrar a sada do comando (para detalhes veja | (pipe), Seo 14.4 .
Por exemplo, para listar os diretrios que contm o nome "cp": locate cp. Agora mostrar somente arquivos
binrios, usamos: locate cp| grep bin/

Guia Foca GNU/Linux

217

30.7 which
Localiza um programa na estrutura de diretrios do path. muito semelhante ao locate, mas a busca feita no
path do sistema e somente so mostrados arquivos executveis .
which [programa/comando].

30.8 Documentos HOWTO's


So documentos em formato texto, html, etc, que explicam como fazer determinada tarefa ou como um
programa funciona. Normalmente so feitos na linguagem SGML e convertidos para outros formatos (como o
texto, HTML, Pos Script) depois de prontos.
Estes trazem explicaes detalhadas desde como usar o bash at sobre como funciona o modem ou como montar
um servidor internet completo. Os HOWTOs podem ser encontrados no diretrio do projeto de documentao
do GNU/Linux (LDP) em ftp://metalab.unc.edu/pub/Linux/docs/HOWTO ou traduzidos para o Portugus pelo
LDP-BR em http://ldp-br.conectiva.com.br/comofazer. Caso tenha optado por instalar o pacote de HOWTO's de
sua distribuio GNU/Linux, eles podem ser encontrados em: /usr/doc/how-to

30.8.1 Listagem de HOWTO's


Esta seo tem a inteno de facilitar a localizao de um documento que trata do assunto desejado ou te
despertar a curiosidade sobre alguns assuntos do SO-GNU/Linux atravs da descrio contida nos documentos.
Segue abaixo uma listagem de HOWTO's do projeto LDP organizadas por sub-sees com a descrio do
assunto que cada um deles aborda.

30.8.1.1 Introduo ao Sistema / Instalao / Configuraes / Kernel


Access-HOWTO - O HOWTO de Acesso ao GNU/Linux cobre o uso de tecnologia adaptada para tornar o
GNU/Linux acessvel queles que no o utilizam. Ele cobre reas onde ele pode usar solues tecnolgicas
adaptadas.
Bash-Prompt-HOWTO - Explica como criar e controlar um terminal e aviso de comando xterm, incluindo
seqncias de escape incorporadas para passar o nome do usurio, diretrio atual, hora, uso de cores ANSI,
etc.
Bootdisk-HOWTO - Explica como criar seu prprio disco de inicializao/raz para o GNU/Linux.
BootPrompt-HOWTO - Este documento rene a maioria dos parmetros de inicializao que podem ser
passados ao Kernel do GNU/Linux durante a inicializao do sistema. Tambm explica como o Kernel
classifica os argumentos de inicializao e tambm os softwares usados para inicializao do Kernel do
GNU/Linux.
Config-HOWTO - Este documento ensina como fazer um ajuste fino em sua mquina GNU/Linux recm
instalada rpido e fcil. Neste documento voc encontrar um conjunto de configuraes para as aplicaes
e servios mais populares.
Distribution-HOWTO - Este documento tem a inteno de ajudar novos usurios escolherem uma
distribuio GNU/Linux e ajudar usurios experientes a avaliar o estado do merketing no GNU/Linux Ele
no planeja ser uma lista completa de distribuies GNU/Linux para todas as plataformas, mas ao invs
disso se focaliza nas distribuies em Ingls baseadas no processador Intel, disponveis em CD-ROM e
acessveis a usurios novatos no sistema.
From-PowerUp-To-Bash-Prompt-HOWTO - Contm uma breve descrio sobre o que acontece no
sistema GNU/Linux, do momento que liga o seu computador at o login no aviso do bash. Ele organizado
por pacotes para torna-lo fcil para pessoas que desejam construir um sistema atravs do cdigo fonte.
Entendendo isto ser til quando precisar resolver problemas ou configurar o seu sistema.
Installation-HOWTO - Este documento descreve como obter e instalar o software GNU/Linux. Ele o
primeiro documento que um novo usurio GNU/Linux dev ler para iniciar no sistema.
INFO-SHEET - Este documento oferece informaes bsicas sobre o sistema operacional GNU/Linux,
incluindo uma explicao sobre o sistema, uma lista de caractersticas, alguns requerimentos e alguns
recursos.
Kernel-HOWTO - Este um guia detalhado de configurao do Kernel, compilao, upgrades e problemas
para sistemas baseados.
PLIP-Install-HOWTO - Descreve como instalar uma distribuio GNU/Linux em um computador sem
placa Ethernet, ou CD-ROM, mas apenas com uma unidade de disquetes local e um servidor NFS remoto
conectado via um cabo paralelo.
Guia Foca GNU/Linux

218

Reading-List-HOWTO - Lista os livros mais valiosos para uma pessoa que deseja aprender o sistema
operacional Unix (especialmente o GNU/Linux).
Software-Building-HOWTO - Guia compreensivo de como construir e instalar distribuies de softwares
"genricas" UNIX sob o GNU/Linux. Adicionamente existe alguma cobertura dos binrios pr-empacotados
"rpm" e "deb".
Tips-HOWTO - Este documento descreve algumas dicas difceis de encontrar e truques que fazem o
GNU/Linux um pouco melhor.
Unix-and-Internet-Fundamentals-HOWTO - Este documento descreve a base de funcionamento dos
computadores da classe PC, sistemas operacionais Unix e a Internet em linguagem no tcnica.
User-Authentication-HOWTO - Explica como as informaes de usurio e grupo so armazenadas e
como os usurios so autenticados no sistema GNU/Linux (PAM) e como melhorar a autenticao de seu
sistema.

30.8.1.2 Adaptao do GNU/Linux para idiomas especficos

Belgian-HOWTO - Este documento ensina a configurao do sistema GNU/Linux para o idioma Belgo.
Chinese-HOWTO - Este documento explica como configurar o idioma Chins no GNU/Linux.
Cyrillic-HOWTO - Explica como utilizar o GNU/Linux com o idioma Russo.
Danish-HOWTO - Descreve como configurar o GNU/Linux e vrios aplicativos GNU/Linux para este
idioma.
Esperanto-HOWTO - Configurao do GNU/Linux para o idioma Esperanto.
Finnish-HOWTO - Descreve como usar o sistema GNU/Linux no idioma Finlands.
Francophones-HOWTO - Descreve como usar o GNU/Linux no idioma Francs.
German-HOWTO - Descreve como usar o GNU/Linux com o idioma Alemo.
Hebrew-HOWTO - Descreve como configurar o GNU/Linux para exibir caracteres Hebreus no X-Window
e Console.
Hellenic-HOWTO - Guia para configurao do GNU/Linux.
Italian-HOWTO - Descreve como configurar o GNU/Linux no idioma Italiano.
Polish-HOWTO - Configurando seu sistema GNU/Linux para o idioma Polons.
Portuguese-HOWTO - Configurando seu sistema GNU/Linux para o idioma Portugus.
Serbian-HOWTO - Configurando seu sistema GNU/Linux para o idioma Servio.
Slovenian-HOWTO - Como configurar os parmetros do sistema GNU/Linux para este idioma.
Spanish-HOWTO - Configurando o sistema GNU/Linux para o idioma Espanhol.
Thai-HOWTO - Descreve como usar o idioma Tailands com o GNU/Linux.
Turkish-HOWTO - Configurando o GNU/Linux para o idioma Turco.

30.8.1.3 Discos / Sistemas de Arquivos / Desempenho

Filesystems-HOWTO - Descreve sistemas de arquivos e o acesso aos sistemas de arquivos.


Large-Disk-HOWTO - Tudo sobre a geometria e o limite de 1024 cilindros para os discos.
LVM-HOWTO - Um HOWTO descritivo sobre o GNU/Linux LVM.
Loopback-Encrypted-Filesystem-HOWTO - Este documento explica como criar e utilizar um sistema de
arquivos que, quando montado por um usurios, encripta transparentemente e dinamicamente seu contedo.
O sistema de arquivos armazenado em um arquivo regular, que pode ser oculto ou nomeado para algo que
no chama a ateno, como algo que nunca seria procurado. Isto permite um alto nvel de segurana dos
dados armazenados.
Multi-Disk-HOWTO - Este documento descreve como utilizar da melhor maneira mltiplos discos e
parties em um sistema GNU/Linux. Muitos dos detalhes descritos aqui podem tambm ser aplicados a
outros sistemas operacionais multi-tarefas.
MultiOS-HOWTO - Este documento cobre os procedimentos para utilizar discos rgidos removveis para
instalar e gerenciar mltiplos sistemas operacionais alternativos enquanto deixa um disco rgido simples
fixo para proteger o sistema operacional primrio. muito escalvel e oferece uma boa grade de proteo e
um ambiente de disco estvel para o sistema operacional primrio.
Optical-Disk-HOWTO - Este documento descreve a instalao e configurao de unidades de disco ticos
para GNU/Linux.
Root-RAID-HOWTO - Este documento somente se aplica a ferramentas raid ANTIGAS, verso 0.50 e
inferiores. Os detalhes contidos neste documento se tornaram obsoletos com a vasta melhoria das

Guia Foca GNU/Linux

219

ferramentas raid 0.90 e acompanhadas do patch nos Kernels das sries 2.0.37, 2.2x e 2.3x.
SCSI-Programming-HOWTO - Este documento fala sobre a programao da interface SCSI genrica no
GNU/Linux.
UMSDOS-HOWTO - O UMSDOS um sistema de arquivos GNU/Linux. Ele oferece uma alternativa do
sistema de arquivos EXT2. Sua maior caracterstica a coexistncia com os dados DOS existentes,
compartilhando a mesma partio.

30.8.1.4 Escrita de Documentao / Editores


Emacs-Beginner-HOWTO - Este documento introduz os usurios GNU/Linux no editor Emacs. Ele
assume o mnimo de conhecimento com o editor de texto vi ou similar.
Emacspeak-HOWTO - Este documento descreve como um usurio pode usar o sistema com um
sintetizador de voz no lugar do monitor de vdeo. Ele descreve como ter o GNU/Linux rodando em seu PC e
como configura-lo para falar. Ele tambm sugere como aprender sobre o Unix.
HOWTO-HOWTO - Lista de ferramentas, processos e dicas para ajudar os autores de HOWTOs
aumentarem sua produtividade.
LinuxDoc+Emacs+Ispell-HOWTO - Este documento de interesse de escritores e tradutores dos
HOWTOs do GNU/Linux ou qualquer outro papel para o Projeto de Documentao do GNU/Linux. Ele
oferece dicas sobre o uso de ferramentas incluindo o Emacs e Ispell.
TeTeX-HOWTO - Este documento cobre a instalao bsico e uso das implementaes teTeX, TeX e
LaTeX sob as maiores distribuies de GNU/Linux Inglesas e pacotes auxiliares como o GhostScript.
Vim-HOWTO - Este documento uma guia para configurar rapidamente o editor colorido Vim nos
sistemas Unix e GNU/Linux. Os detalhes aqui aumentaro a produtividade dos programadores porque o
editor Vim suporta a colorizao de cdigo e fontes negrito, aumentando a "legibiliade" do cdigo do
programa. A produtividade do programador aumenta de 2 a 3 vezes com um editor colorido como Vim.

30.8.1.5 Hardware
3Dfx-HOWTO - Este documento descreve o suporte do GNU/Linux aos chips aceleradores 3Dfx. Tambm
lista alguns hardwares suportados, descreve como configurar os drivers e responde perguntas frequntes.
Busmouse-HOWTO - Descreve como instalar, configurar e usar um barramento de mouse sob o
GNU/Linux. Ele contm uma lista de barramentos suportados e tenta responder as questes mais frequntes
relacionadas ao assunto.
Ftape-HOWTO - Este howto discute o controlador de unidades tape para GNU/Linux.
HP-HOWTO - Este documento descreve o uso dos produtos disponveis no catlogo Hewlett-Packard
(HP) com o GNU/Linux e alguns programas free software. Ele explica o estado do suporte para hardwares,
softwares utilizados e respostas para alguns questes frequntes.
Hardware-HOWTO - Este documento lista a maioria dos hardware suportados pelo GNU/Linux e lhe
ajuda a localizar os controladores necessrios.
Jaz-Drive-HOWTO - Este HOWTO cobre a configurao e uso dos drivers Iomega 1Gb e 2Gb sob o
GNU/Linux.
Kodak-Digitalcam-HOWTO - Fazendo uma camera Kodak digital funcionar sob GNU/GNU/Linux.
Laptop-HOWTO - Os Notebooks so diferentes de computadores desktops/torres. Eles usam certos
hardwares como cartes PCMCIA, portas infravermelho, baterias, estaes de encaixe. Freqentemente
seus hardwares so mais limitados (i.e. espao em disco, velocidade da CPU) ento sua performance se
torna menor. Em algumas instncias, os notebooks podem se tornar uma substituio ao sistema desktop. O
suporte de hardware para o GNU/Linux (e outros sistemas operacionais) algumas vezes mais limitado (i.e.
chips grficos, modems internos). Os Notebooks freqentemente utilizam hardware especializado, no qual a
localizao de um controlador adequado pode se tornar uma dificuldade. Os Notebooks so utilizados em
ambientes mveis, assim existe a necessidade de mltiplas configuraes e estratgias adicionais de
segurana.
Modem-HOWTO - Ajuda com a seleo, conexo, configurao, resoluo de problemas e compreenso
de modems de um PC. Veja o Serial-HOWTO para detalhes sobre mltiplas placas seriais.
PCI-HOWTO - Informaes sobre o que funciona com o GNU/Linux e placas PCI e que o no funciona.
Plug-and-Play-HOWTO - Este documento ajuda a compreenso e operao do Plug-and-Play e como
incluir o suporte do seu sistema GNU/Linux ao Plug-and-Play.
Serial-HOWTO - Este documento descreve caractersticas da porta serial ao invs de outros detalhes que
devem ser cobertos pelos documentos Modem-HOWTO, PPP-HOWTO, Serial-Programming-HOWTO, ou
Guia Foca GNU/Linux

220

Text-Terminal-HOWTO. Ele lista detalhes sobre mltiplas placas seriais contendo informaes tcnicas
detalhadas sobre a prpria porta serial em mais detalhes do que os encontrados nos HOWTOs acima e deve
ser o suficiente para correo de problemas quando o problema a prpria porta serial. Se estiver
trabalhando com um Modem, PPP (usado para acesso a Internet atravs de uma Linha telefnica), ou um
Terminal baseado em modo texto, seus respectivos HOWTOs devem ser primeiramente consultados.
Serial-Programming-HOWTO - Explica como programar comunicaes com dispositivos atravs de uma
porta serial em um computador com o GNU/Linux.
UPS-HOWTO - Este documento te ajudar a conectar um uninterruptable power supply (No Break) em
seu computador GNU/Linux... se tiver a sorte de possuir um...
Wacom-Tablet-HOWTO - Instalao do (no somente) Wacom graphic tablets sob o GNU/Linux e / ou
xfree86.
Wearable-HOWTO - Computao mvel com GNU/Linux.
Winmodems-and-Linux-HOWTO - Este documento contm detalhes sobre a configurao de Winmodems
no GNU/Linux.

30.8.1.6 Software
AI-Alife-HOWTO - Este howto contm informaes primrias sobre, e links para, vrias bibliotecas
relacionadas com o AI, aplicativos, etc. que funcionam na plataforma GNU/Linux. Todos eles (pelo menos)
livres para uso pessoal.
Commercial-HOWTO - Este documento contm uma listagem de programas comerciais e aplicaes que
so oferecidas para o GNU/Linux
Glibc2-HOWTO - Este documento cobre a instalao e uso da Biblioteca GNU C verso 2 nos sistemas
GNU/Linux.
RPM-HOWTO - Explica como utilizar o sistema de gerenciamento de pacotes RPM.
Program-Library-HOWTO - Este documento para programadores discute como criar e usar bibliotecas no
GNU/Linux. Estas incluem bibliotecas estticas, bibliotecas compartilhadas e bibliotecas carregadas
dinamicamente.
Secure-Programs-HOWTO - Este documento oferece um conjunto de designs e regras de implementao
para escrever programas seguros para os sistemas Unix e Linux. Tais programas incluem programas
aplicativos usados para visualizadores de dados remotos, scripts CGI, servidores de rede, programas
setuid/setgid. Guias especficos sobre C, C++, Java, Perl, Python, e Ada95 esto includos.
Software-RAID-0.4x-HOWTO - RAID significa "Redundant Array of Inexpensive Disks", e significa ser
um mtodo de criar um rpido e confivel subsistema de unidades de disco ao invs de discos individuais. O
RAID pode se prevenir de falhas de disco e pode tambm aumentar a performance obtida atravs de uma
simples unidade de disco. Este documento um tutorial/HOWTO/FAQ para usurios do Kernel do Linux
com extenses MD, as ferramentas associadas, e seu uso. A extenso MD implementa o RAID-0 (striping),
RAID-1 (mirroring), RAID-4 e RAID-5 no sofware. O que significa que, com MD, nenhum hardware
especial ou controladoras de disco so requeridas para obter muitos dos benefcios do RAID.
Software-RAID-HOWTO - Este documento descreve como usar o software RAID sob o GNU/Linux. Ele
enderea uma verso especfica da camada de software do RAID, nomeada camada RAID 0.90, feita por
Ingo Molnar e outros. Esta a camada RAID que ser padronizada no Linux-2.4, e tambm a verso usada
por Kernels 2.2 do GNU/Linux vendidos por alguns vendedores. O suporte RAID 0.90 est disponvel com
patches para os Kernels do 2.0 e 2.2 do GNU/Linux e tambm considerado ser mais estvel que o antigo
suporte RAID j includo nestes Kernels.
Software-Release-Practice-HOWTO - Este documento descreve boas prticas de lanamento para o
projeto de cdigo-aberto GNU/Linux. Seguindo estas prticas, ser fcil e possvel para os usurios
construir seu cdigo e usa-lo, e para outros desenvolvedores entender seu cdigo e cooperar com voc para
melhora-lo. Este documento deve ser lido por desenvolvedores iniciantes. Desenvolvedores experientes
devem revisa-lo quando desejarem lanar um novo projeto. Este documento revisado periodicamente para
refletir a evoluo das boas prticas de lanamento.

30.8.1.7 Plataformas no Intel (x86)


Alpha-HOWTO - Este documento uma viso rpida das CPUs Alpha, chipsets e sistemas existentes.
MILO-HOWTO - Este documento descreve o MIniLOader, um programa para sistemas baseados na
arquitetura Alpha que pode ser usado para inicializar a mquina e carregar o GNU/Linux. O Linux
Miniloader do Alpha (seu nome completo) tambm conhecido como MILO.
MIPS-HOWTO - Esta FAQ descreve o porte do MIPS para o sistema operacional Linux, problemas
Guia Foca GNU/Linux

221

comuns e suas solues, disponibilidade e mais. Ele tambm tenta ser um pouco til a outras pessoas que
desejam ler esta FAQ em uma tentativa de encontrar informaes que atualmente seriam cobertas em outro
lugar.
SRM-HOWTO - Este documento descreve como inicializar no Linux/Alpha usando o console SRM, que
a firmware de console tambm usada para inicializar o Unix Compaq Tru64 (tambm conhecido com
Digital Unix e OSF/1) e OpenVMS.

30.8.1.8 Programao / Compiladores / Banco de Dados


Assembly-HOWTO - Este documento descreve como programar em linguagem Assembler usando
ferramentas de programao livres, focalizando-se no desenvolvimento para ou do Sistema Operacional
GNU/Linux, mais na plataforma IA-32 (i386).
Bash-Prog-Intro-HOWTO - Este documento tem a inteno de te ajudar a iniciar na programao

de shell scripts. Ele no tem a inteno de ser uma documento avanado.

C++Programming-HOWTO - Discute os mtodos para evitar problemas de memria no C++ e tambm te


ajudar a programar corretamente na linguagem C++. As informaes contidas neste documento se aplicam
a todos os sistemas operacionais que so GNU/Linux, DOS, BeOS, Apple Macintosh OS, Windows
95/98/NT/2000, OS/2, Sistemas IBM (MVS, AS/400, etc...), VAX VMS, Novell Netware, todos os tipos de
Unix como o Solaris, HPUX, AIX, SCO, Sinix, BSD, etc., e todos os outros sistemas operacionais que
suportam o compilador "C++" (quase todos os sistemas operacionais deste planeta!).
C-C++Beautifier-HOWTO - Este documento ajudar a formatar (de forma organizada) os programas
C/C++ assim ser mais legvel e seguir os padres de codificao C/C++. As informaes deste documento
se aplica a quase todos os sistemas operacionais do planeta!
DB2-HOWTO - Este documento explica como instalar o DB2 Universal Database verso 7.1 para
GNU/Linux nas seguintes distribuies baseadas no Intel x86: Caldera Caldera OpenLinux 2.4, Debian, Red
Hat Linux 6.2, SuSE Linux 6.2 e 6.3, e TurboLinux 6.0. Aps instalar o DB2, voc pode usar um banco de
dados de exemplo, conectar-se ao servidor DB2 de uma mquina remota e administrar o DB2 usando o DB2
Control Center.
Enterprise-Java-for-Linux-HOWTO - Como configurar um ambiente Java Enterprise no GNU/Linux
incluindo o Java Developmento Kip, um servidor Web, suportando Jave servlets, acessando um banco de
dados via JDBC e suportado Enterprise Jave Beans (EJBs).
GCC-HOWTO - Este documento explica como configurar o compilador GNU C e bibliotecas de
desenvolvimento sob o GNU/Linux e te d uma viso de compilao, linkagem, execuo e programas de
depurao.
IngresII-HOWTO - Este documento cobre a instalao do Ingres II Relational Database management
System no GNU/Linux. Ele cobre a configurao de ambos o Kit de desenvolvimento e verso completa do
Ingres. Algumas sees explicam como iniciar o uso do Ingres.
Oracle-7-HOWTO - Um guia para instalar e configurar o Servidor do Banco de Dados Oracle em um
sistema GNU/Linux.
Oracle-8-HOWTO - Com este HOWTO, um pouco de sorte, voc ser capaz de ter o Oracle 8i
Enterprise Edition para GNU/Linux instalado, criar um banco de dados e conectar a ele atravs de um
computador remoto. O foco principal deste guia o RedHat 6.0, no entanto ele pode funcionar em outros
distribuies recentes aps algumas modificaes.
PHP-HOWTO - Ensina como desenvolver programas em PHP e tambm migrar todas as aplicaes GUI
do Windows 95 para o poderoso conjunto PHP + HTML + DHTML + XML + Applets Java + Javascript. As
explicaes descritas neste documento se aplicam a todo os sistemas operacionais para onde o PHP est
portado que so: Linux, Windows 95/98/NT/2000, OS/2, todos os tipos de Unix como o Solaris, HPUX,
AIX, SCO, Sinix, BSD, etc...
PostgreSQL-HOWTO - Este documento um "guia prtico" para rapidamente colocar para funcionar um
banco de dados SQL e suas ferramentas de comunicao em um sistema Unix. Ele tambm discute a
linguagem padro Internacional ANSI/ISO SQL e revisa os mritos/vantagens do SQL database engine
desenvolvido pela Internet ao redor do mundo em um ambiente de desenvolvimento aberto. Tambm como
configurar a prxima gerao do banco de dados relacional a objetos SQL "PostgresSQL" em um sistema
Unix que pode ser usado como um Servidor de Aplicativos de banco de dados ou como um Servidor de
banco de dados Web.
TclTk-HOWTO - Este documento descreve o uso do Tcl no GNU/Linux, uma linguagem de scripting. Ela
uma linguagem interpretada fcil de aprender que usa pouca digitao para obter um alto nvel de
programao e desenvolvimento rpido de aplicativos (RAD). O Tk tookkit um ambiente de programao
Guia Foca GNU/Linux

222

para criar interfaces grficas do usurio (GUI) sob o Sistema X Window. Suas capacidades incluem a
possibilidade de estender e incluir em outros aplicativos, desenvolvimento rpido e fcil de usar. Juntos o
Tcl e Tk oferecem muitos benefcios para o desenvolvedor e usurio. As interfaces baseadas no Tk tendem a
ser mais personalizveis e dinmicas que aquelas feitas de toolkits C ou C++. O Tk implementa o Visual e
Uso do Motif. Um grande nmero de aplicaes X interessantes so implementadas completamente em Tk,
com nenhum comandos especficos de aplicativo.

30.8.1.9 Computao Paralela / Clusters


Beowulf-HOWTO - Este documento uma introduo a arquitetura de Supercomputador Beowulf e
oferece informaes sobre programao paralela, incluindo links para documentos mais especficos e
pginas internet.
Parallel-Processing-HOWTO - O Processamento Paralelo uma forma de acelerar a execuo de um
programa dividindo o programa em mltiplos fragmentos que podem ser executados simultaneamente, cada
um em seu prprio processador. Um programa sendo executado em N processadores pode ser executado N
vezes mais rpido que seria usando somente um processador. Este documento discute os quatro mtodos
para realizar processamento paralelo que esto disponveis aos usurios do sistema operacional GNU/Linux:
Sistemas Linux SMP, Sistemas Linux em Clusters de rede, execuo paralela usando as instrues
multimdia do processador (i.e. MMX) e processadores (paralelos) conectados no sistema GNU/Linux.
SMP-HOWTO - Este HOWTO revisa principais assuntos (e eu espero que solues) relacionadas com as
configuraes SMP sob o GNU/Linux.

30.8.1.10 Configurao de Teclado / Vdeo / Console


Font-HOWTO - Como usar e configurar corretamente tipos de fontes no ambiente GNU/Linux.
Framebuffer-HOWTO - Descreve como utilizar dispositivos framebuffer no GNU/Linux com uma
variedade de plataformas. Isto tambm inclui como ajustar telas multi-headed.
Keyboard-and-Console-HOWTO - Este documento contm algumas informaes sobre o teclado e
console no GNU/Linux, e o uso de caracteres no-ASCII. Ele descreve o GNU/Linux 2.0.
Text-Terminal-HOWTO - Explica o que so os terminais texto, como funcionam, como instalar e
configura-los e oferece muitos detalhes de como conserta-los. Se no tiver um manual do terminal, poder
ser de grande ajuda. Enquanto escrito para terminais reais no sistema GNU/Linux alguns deles tambm
so aplicveis a emulao de terminal e pode ser til para sistemas no Linux.
Unicode-HOWTO - Explica como alterar seu sistema GNU/Linux para utilizar a codificao de texto
baseada no UTF-8. -

30.8.1.11 Ambiente Grfico


MGR-HOWTO - O MGR (ManaGeR) um sistema de janelas grfico. O servidor MGR oferece um
gerenciador de janelas embutido e emulao de terminal grfico em janela em monitor colorido ou
monocromtico. O MGR controlado por menus pop-up, por interao do teclado e por sequencias de
escapa escrita em pseudo-terminais pelo software cliente.
XFree86-HOWTO - Este documento descreve como obter, instalar e configurar a verso 4.0 do XFree86
do X Window System (X11R6) para sistemas GNU/Linux. Ele um guia passo a passo para configurar o
XFree86 em seu sistema.
XFree86-Touch-Screen-HOWTO - Descreve como configurar um dispositivo de entrada touch screen sob
o XFree86.
XFree86-Video-Timings-HOWTO - Como configurar os modos de vdeo de sua placa/monitor sob o
XFree86.
XWindow-User-HOWTO - Este documento contm detalhes sobre a configurao do ambiente X
Windows para o usurio GNU/Linux, tambm como o administrador de sistemas iniciantes tentando
aprender os mais diversos tipos de opes de configurao e detalhes do X Window. assumido um
conhecimento bsico de configuraes de software e instalao.
Xinerama-HOWTO - Este documento descreve como configurar o XFree86 verso 4.0 com monitores
multimdia com as extenses Xinerama.

30.8.1.12 Suporte ao Sistema / Grupos de Usurios / Listas de Discusso


Consultants-HOWTO - Contm uma lista de empresas e consultores oferecendo suporte comercial
relacionado ao sistema GNU/Linux.
Guia Foca GNU/Linux

223

Online-Troubleshooting-HOWTO - Este documento direciona usurios GNU/Linux a lugares disponveis


na Internet que oferecem acesso a uma vasta quantidade de documentos teis relacionados ao sistema em
situaes de problema.
User-Group-HOWTO - Este documento descreve como fundar, manter e organizar um grupo de usurios
GNU/Linux.

30.8.1.13 Migrao / Convivncia com Outras Plataformas


DOS-Win-to-Linux-HOWTO - Este documento tem a inteno de ajudar o leitor traduzir seu
conhecimento do DOS e Windows para o ambiente GNU/Linux, tambm como oferecer dicas de
manipulao de arquivos e utilizao de recursos entre os dois sistemas.
VMS-to-Linux-HOWTO - Este documento escrito para todos aqueles que tem usado o VMS e agora
precisam migrar para o GNU/Linux um clone gratuito do UNIX. A transio feita (felizmente) atravs de
uma comparao passo a passo de comandos e ferramentas existentes.

30.8.1.14 Tarefas Especficas


Astronomy-HOWTO - Este documento compartilha dicas e recursos para utilizar solues do GNU/Linux
no mundo da Astronomia.
CD-Writing-HOWTO - Este documento explica como gravar CD-ROMs sob o GNU/Linux.
CDROM-HOWTO - Este documento descreve como instalar, configurar e usar uma unidade de CD-ROM
sob o GNU/Linux. Ele lista hardwares suportados e responde a um nmero de questes frequntes.
CVS-RCS-HOWTO - Este documento um guia prtico para rapidamente configurar o sistema de
controle do cdigo fonte CVS/RCS. Este documento tambm possui shell scripts personalizados que so
trocados no topo do CVS. Estes scripts oferecem uma interface fcil entre o usurio e o CVS.
DVD-Playing-HOWTO - Uma explicao fcil de seguir de como obter seu DVD funcionando no
GNU/Linux.
Diskless-HOWTO - Este documento descreve como configurar uma mquina sem disco rgido no
GNU/Linux.
Java-Decompiler-HOWTO - Este documento te ajudar a descompilar programas class feitos em Java.
Este documento contm uma lista de descompiladores que podem reverter o engineer os arquivos Java class
e gerar arquivos de cdigo fonte Java. Isto muito til se voc no tem o arquivo com o cdigo fonte Java.
JavaStation-HOWTO - Este HOWTO descreve como ativar o SO GNU/Linux no NC Sun Java Station.
KickStart-HOWTO - Este documento descreve como usar o sistema Linux RedHat para instalar
rapidamente o sistema em um grande nmero de mquinas GNU/Linux.
Kiosk-HOWTO - Este documento oferece um guia para ajustar um kiosk baseado em WWW usando o
GNU/Linux, X11R6, FVWM2, Netscape Navigator 4.X e um trackball customizado.
Linux-From-Scratch-HOWTO - Este documento descreve o processo de criar seu prprio sistema
GNU/Linux do nada atravs de uma distribuio j instalada, usando nada mais que o cdigo fonte dos
softwares que precisamos.
MP3-HOWTO - Este documento descreve o hardware, software e processos necessrios, para encodificar,
tocar, mixar e decodificar arquivos de som MP3 sob o GNU/Linux.
Majordomo-MajorCool-HOWTO - Este documento tem a inteno de guiar o usurio atravs do software
de gerenciamento de listas de discusso Majordomo e MajorCool. O MajorCool um utilitrio para
gerenciar listas Majordomo via script CGI; muitas pessoas que no esto familiar com o Majordomo
baseado em modo texto podem preferir uma interface mais amigvel via web do MajorCool.
Mutt-GnuPG-PGP-HOWTO - Este documento explica como configurar rapidamente o Mutt-i, PGP e
GnuPG em suas diferentes verses (2.6.x, 5.x e GnuPG), nada dos problemas que podem ocorrer enquanto
envia e-mails criptografados e assinados para ser lidos por clientes de e-mail que no so compatveis com
PGP/MIME como definido na RFC 2015 e em outros sistemas operacionais.
NC-HOWTO - Este documento tenta descrever como colocar uma Netstation da IBM em sua rede local
usando um computador GNU/Linux como servidor.
NCD-HOWTO - Este documento tenta descreve como colocar uma ThinSTAR NCD em sua rede local
usando um computador GNU/Linux como servidor.
PalmOS-HOWTO - Este documento explica como usar seu dispositivo Palm OS com um sistema
GNU/Linux. Este HOWTO no aborda somente o sistema operacional GNU/Linux.
Printing-HOWTO - Este o Printing HOWTO do GNU/Linux, uma coleo de informaes sobre como
gerar, ver, imprimir e enviar fax de tudo sob o GNU/Linux (e outros UNIXes em geral).
Guia Foca GNU/Linux

224

Printing-Usage-HOWTO - Descreve como usar o sistema de spooling oferecido pelo sistema operacional
GNU/Linux. Este HOWTO um documento suplementar ao Linux Printing Setup, que discute a instalao
e configurao do sistema de impresso do GNU/Linux.
Psion-HOWTO - Este documento descreve como usar Palmtops Psion com o GNU/Linux, mas no cobre
a execuo do Linux no Palmtop Psion. Veja o projeto Linux 7k em http://www.calcaria.net.
Quake-HOWTO - Este documento explica como instalar, executar e corrigir problemas no Quake,
QuakeWorld e Quake II em um sistema GNU/Linux Intel.
RedHat-CD-HOWTO - Descreve como fazer seus prprios CDs da distribuio Red Hat, a estrutura da
distribuio e tambm como incluir RPMs atualizados na distribuio.
Sound-HOWTO - Este documento descreve o suporte ao som no GNU/Linux, arquiteturas de som
suportadas e como incluir o suporte ao som no Kernel. Este documento tambm responde algumas questes
frequntes sobre o suporte ao som no GNU/Linux.
Sound-Playing-HOWTO - Este documento lista aplicativos que podem tocar vrios formatos de sons no
GNU/Linux.
VME-HOWTO - Este documento mostra como executar o GNU/Linux em seu Pentium VMEbus e outros
barramentos PCI baseados no design de processador VMEbus.

30.8.1.15 Rede / Administrao / Firewall / Proxy / Segurana


AX25-HOWTO - Talvez o GNU/Linux seja o nico sistema operacional no mundo que possui suporte
nativo e padro ao protocolo de pacotes de rdio AX.25 usado por Operadores de Rdio Amador ao redor do
mundo. Este documento explica como instalar e configurar este suporte.
Adv-Routing-HOWTO - Roteamento avanado. Explicaes sobre o iproute2, traffic shaper e netfilter.
BRIDGE-STP-HOWTO - Este documento explica o que uma ponte entre redes e como criar uma

utilizando o Spanning Tree Protocol (STP). Este um mtodo de manter os dispositivos Ethernet
conectados e funcionando em mltiplos caminhos. Os participantes negociam a troca atravs do
caminho mais curto atravs do STP.

Chroot-BIND-HOWTO - Este documento descreve a instalao do servidor de nomes BIND 8 para ser
executado em uma jaula chroot e como um usurio no-root, para oferecer segurana adicional e minimizar
efeitos potenciais que podem comprometer a segurana.
DNS-HOWTO - Como configurar seu servidor DNS em pouco tempo.
Diald-HOWTO - Este documento mostra alguns cenrios tpicos para iniciar o uso do Diald facilmente.
Este cenrios incluem uma conexo de um computador local a um provedor usando o PPP atravs de um
modem sem usar o pon/poff ou ppp-pon/ppp-off para um servidor proxy/firewall com diferentes conexes
Internet atravs de vrios provedores.
Diskless-root-NFS-HOWTO - Explica como configurar um servidor e clientes para operao sem disco
atravs de uma rede.
Ethernet-HOWTO - Este documento uma coleo de dados sobre dispositivos Ethernet que podem ser
usados no GNU/Linux e como configura-los. Note que este HOWTO est focalizado no hardware e
aspectos de baixo nvel de controladores das placas ethernet e no cobre assuntos de software como os
programas ifconfig e route (veja o Network-HOWTO se procura por estes materiais).
Firewall-HOWTO - Descreve os sistemas bsicos de firewall e alguns detalhes de como ajustar firewalls
proxy e de filtragem de pacotes em sistemas baseados no GNU/Linux.
IP-Masquerade-HOWTO - Este documento descreve como ativar a caracterstica IP Masquerade no
GNU/Linux. O IP Masquerade uma forma do Network Address Translation ou NAT que permite que
computadores conectados internamente que no tem um ou mais endereos Internet registrados ter a
habilidade de se comunicar com a Internet via uma nica mquina GNU/Linux com um nico endereo IP.
IPCHAINS-HOWTO - Descreve como obter, instalar e configurar o programa avanado de firewall para o
GNU/Linux e algumas idia de como usa-lo.
IPX-HOWTO - Descreve como obter, instalar e configurar as vrias ferramentas disponveis para o
sistema operacional GNU/Linux para utilizar o suporte do protocolo IPX no Kernel do GNU/Linux.
IR-HOWTO - Uma introduo ao GNU/Linux e dispositivos infra-vermelho e como usar programas
oferecidos pelo projeto Linux/IrDA.
ISP-Hookup-HOWTO - Descreve como usar o GNU/Linux para conectar a um Provedor Internet via
modem dial-up via conexo TCP/IP. Tambm como o procedimento de discagem inicial e estabelecimento
de IP, recebimento de email e news.
Intranet-Server-HOWTO - Este documento descreve como configurar uma Intranet usando o GNU/Linux
Guia Foca GNU/Linux

225

como um servidor que se comunica com Unix, Netware, NT e Windows.


Java-CGI-HOWTO - Este documento explica como configurar seu servidor para permitir programas CGI
escritos em Java e como usar Java para escrever programas CGI.
LDAP-HOWTO - Informaes sobre a instalao, configurao, execuo e manuteno de um Servidor
LDAP (Lightweight Directory Access Protocol) em uma mquina GNU/Linux descrita neste documento.
Existe tambm detalhes sobre como criar bancos de dados LDAP, como atualizar e apagar informaes no
banco de dados, como implementar roaming access e como usar o Livro de Endereos do Netscape.
Mail-Administrator-HOWTO - Este documento descreve a configurao e uso do Correio Eletrnico (Email) sob o GNU/Linux. primariamente mais indicado para administradores do que usurios.
Mail-User-HOWTO - Este documento uma introduo ao mundo do Correio Eletrnico sob o
GNU/Linux
Multicast-HOWTO - Este HOWTO tenta cobrir muitos aspectos relacionados com o multicast sobre redes
TCP/IP. Assim, muitas informaes que no so especficas do sistema Linux (apenas no caso de no usar o
GNU/Linux... ainda).
NFS-HOWTO - Como configurar servidores e clientes NFS>
NIS-HOWTO - Este documento descreve como configurar o GNU/Linux como um cliente NIS (YS) ou
NIS+ e como instala-lo como um servidor NIS.
Net-HOWTO - Este documento cobre as rea de software e tecnologias de rede no GNU/Linux.
Networking-Overview-HOWTO - O propsito deste documento lhe oferecer uma viso das capacidades
de rede do sistema operacional GNU/Linux e oferecer ponteiros para outros documentos e detalhes de
implementao.
PPP-HOWTO - Este documento mostra como conectar seu PC GNU/Linux a um servidor PPP (Protocolo
Ponto a Ponto), como usar o PPP para ligar duas redes e oferece um mtodo de configurar seu computador
GNU/Linux como um servidor PPP. Este documento tambm oferece ajuda na soluo de problemas
relacionados com o PPP.
Qmail-VMailMgr-Courier-imap-HOWTO - Este documento sobre a construo de um servidor de email que suportar hospedagem de domnios dinmicos e oferecer os servios smtp, pop3 e imap, usando
uma poderosa alternativa ao sendmail.
SMB-HOWTO - Este o HOWTO SMB. Ele descreve como usar o protocolo Server Message Block
(SMB), tambm chamado de Session Message Block, NetBIOS ou protocolo LanManager, com o
GNU/Linux e usando o Samba.
Securing-Domain-HOWTO - Este documento descreve as coisas que provavelmente deve fazer quando
desejar configurar uma rede de computadores sob seu prprio domnio. Ele cobre a configurao de
parmetros de rede, servios de rede e configuraes de segurana.
Security-HOWTO - Este documento uma viso geral dos assuntos de segurana que enfrente o
administrador de sistemas GNU/Linux Ele cobre a filosofia geral de segurana e um nmero de exemplos
especficos de como melhorar a segurana de seu sistema GNU/Linux Tambm esto includos ponteiros
para materiais relacionados com programas e segurana.
Shadow-Password-HOWTO - Este documento tenta descrever como obter, instalar e configurar o Linux
password Shadow Suite. Tambm discute como obter e reinstalar outros softwares e daemons de rede que
requerem acesso as senhas do usurio.
Tango-HOWTO - Descreve a instalao, configurao e correo de problemas bsicos do Pervasive
Software's Tango Application Server no Sun Solaris e vrios sabores de GNU/Linux.
Thinclient-HOWTO - Como converter computadores comuns em rpidos terminais usando o poder de seu
computador principal, voc precisar de: Um computador rpido para atuar como servidor, um computador
cliente (antigo e no desejado). Placas de rede compatveis com o GNU/Linux. Uma conexo entre os
computadores. Como centralizar a administrao do sistema usando o NFS (i.e. colocando todo o sistema de
arquivos de um cliente rpido no servidor).
UUCP-HOWTO - Este documento descreve a configurao do UUCP sob o GNU/Linux. Voc deve ler
este documento se planejar conectar a sites remotos via UUCP via modem, conexo direta ou via Internet.
Provavelmente no precisar ler este documento se no souber o que UUCP ou se seu computador no
possuir este suporte.
VMailMgr-HOWTO - Explica como configurar o suporte ao VMailMgr servios de domnio virtual pop3
em conjunto com o Qmail.
VPN-HOWTO - Descreve como configurar uma Virtual Private Network com o GNU/Linux.
VPN-Masquerade-HOWTO - Descreve como configurar um Firewall GNU/Linux para o masquerade em
trfego baseado no IPsec- e PPTP Virtual Private Network Traffic, permitindo estabelecer uma conexo

Guia Foca GNU/Linux

226

VPN sem perder a segurana e flexibilidade de sua conexo Internet com o firewall GNU/Linux e
permitindo fazer um servidor VPN disponvel que no possui um endereo IP registrado na Internet.
Tambm esto incluidos detalhes de como configurar um cliente e servidor VPN.
Virtual-Services-HOWTO - Este documento fala sobre tudo que precisa saber para virtualizar um servio.
WWW-HOWTO - Explica como configurar servios WWW sob o GNU/Linux (ambos cliente e servidor).
Ele no tenta ser um manual detalhada mas uma viso e um bom ponto de referncia.
WWW-mSQL-HOWTO - Descreve como construir um banco de dados cliente/servidor usando a WWW e
HTML para a interface com o usurio.
phhttpd-HOWTO - O phttpd um acelerador HTTP. Ele serve uma rpida requisio esttica HTTP
atravs de um sistema de arquivos locai e passa as requisies menos dinmicas para um servidor de espera.
Suas caractersticas so uma compreenso do I/O e um cache de contedo agressivo que o ajuda a fazer um
trabalho eficiente.

30.8.1.16 Outros
Benchmarking-HOWTO - Este documento discute assuntos relacionados ao desempenho dos sistemas
Linux e recomenda algumas ferramentas para medida do desempenho do sistema.
DOSEMU-HOWTO - Ensina como utilizar, configurar o emulador do ambiente DOS para Linux.
Ecology-HOWTO - Este documento discute mtodos de como os computadores com o GNU/Linux podem
ser usados para proteger nosso ambiente, usando caractersticas como economia de energia ou papel. Como
ele no requer grandes requerimentos de hardware, o GNU/Linux pode ser usado com computadores antigos
e tornar seu ciclo de vida longo. Os jogos podem ser usados em ambientes educativos e esto disponveis
programas para simular os processos ecolgicos.
Process-Monitor-HOWTO - Este documento descreve como monitorar os processos (programas) no
Linux/Unix e como reinicia-los automaticamnete se eles so destrudos sem interveno manual. Este
document tambm tem URLs para FAQs sobre "Processos no Unix".
VAR-HOWTO - Contm uma lista de empresas de servio que no fabricam hardwares ou criam pacotes
de softwares, mas incluem valores ao produtos existentes.

30.8.2 Listagem de Mini-HOWTOs


Segue abaixo uma listagem de Mini-HOWTOs do projeto LDP organizados por sub-sees com a descrio do
assunto que cada um deles aborda.

30.8.2.1 Introduo ao Sistema / Instalao / Configurao / Kernel


Alsa-sound - Descreve a instalao dos controladores de som ALSA para Linux. Estes controladores de
som podem ser usados em substituio aos controladores de com regular, como so totalmente compatveis.
Install-From-ZIP - Descreve como instalar o GNU/Linux atravs de um zip drive conectado a porta
paralela usando a distribuio Slackware do GNU/Linux.
Kerneld - Explica como configurar e utilizar o daemon Kerneld.
Loadlin+Win95 - Este documento descreve como usar o Loadlin com o Windows 95 para inicializar o
GNU/Linux.
Modules - Explica como incluir seu suporte no Kernel, configurar e utilizar mdulos no GNU/Linux.
Path - Descreve truques comuns e problemas com as variveis de ambiente no GNU/Linux/Unix,
especialmente a varivel PATH. PATH uma lista de diretrios onde os comandos so pesquisados. Os
detalhes se apilcam a distribuio Debian 1.3.
Pre-Installation-Checklist - Voc um novato no Linux? Voc um guru no Linux? Em ambos os casos
esta checklist ser de grande ajuda para voc. Quantas vezes voc se encontrou com problemas no meio de
um processo de instalao do GNU/Linux porque algum detalhe vital sobre o hardware alvo no
conhecido?
RPM+Slackware - Este documento descreve como ter o RPM instalado e funcionando corretamente sob o
Slackware.
Update - Descreve como se manter atualizado sobre o desenvolvimento no mundo GNU/Linux.
Upgrade - Dicas e truques de como atualizar de uma distribuio GNU/Linux para outra.
VAIO+Linux - Explica a instalao do GNU/Linux em computadores Syny VAIO.

30.8.2.2 Discos / Sistema de Arquivos / Desempenho


Guia Foca GNU/Linux

227

Automount - Descreve a montagem automtica de sistemas de arquivos autofs, como configura-lo e alguns
problemas que devem ser evitados.
Ext2fs-Undeletion - Imagina isto: Voc passou os ltimos trs dias sem dormir, sem comer. Sua
compulso hacker foi paga: voc finalizou aquele programa que lhe dar fama e reconhecimento. Todo o
que voc precisa fazer coloca-lo no Metalab. Oh, e apagar aqueles arquivos de backup do Emacs. Assim
voc fadigado digita rm * ~.. E bem mais tarde voc notou o espao extra naquele comando. Voc
simplesmente apagou todo o seu trabalho! Mas a ajuda est na mo. Este documento oferece uma discusso
de como recuperar arquivos apagados atravs do Second Extend File System (EXT2). Talvez, voc ser
capaz de lanar aquele programa depois disso...
Hard-Disk-Upgrade - Como copiar um sistema GNU/Linux de um disco para outro.
Loopback-Root-FS - Este documento explica como usar o dispositivo de loopback do Linux para criar um
formato nativo de sistema de arquivos atravs de uma partio DOS sem reparticionamento.
Partition-Rescue-mini-HOWTO - Como recuperar uma partio pelo GNU/Linux.
Quota - Descreve como ativar a quota nos sistemas de arquivos para usurios e grupos de uma mquina
GNU/Linux.
Swap-Space - Descreve como compartilhar sua partio swap do GNU/Linux com o Windows.
Ultra-DMA - Explica como usar Ultra-DMA como discos rgidos e interfaces Ultra ATA, Ultra 33 e
Ultra66 com o GNU/Linux.
ZIP-Drive - Este documente oferece uma referncia rpida para a configurao e uso da unidade de ZIP
drive Iomega com o GNU/Linux.

30.8.2.3 Escrita de Documentao / Editores


Man-Page - Descreve o que deve ter em mente quando estiver escrevendo documentao on-line -tambm chamada de pgina de manual (man page).

30.8.2.4 Hardware
3-Button-Mouse - Como ter um mouse serial de 3 botes funcionando no GNU/Linux.
BTTV-Mini-HOWTO-0.3 - Este documento descreve o hardware, software e procedimentos necessrios
para se usar um chipset baseado no bt8x8 frame grabber ou placa sintonizadora de TV sob o GNU/Linux.
Boca - Instalando uma placa serial Boca 16-portas (Boca 2016) no GNU/Linux.
GTEK-BBS-550 - Ensina como configurar a placa serial de 8 portas GTEK's BBS-550 com 16C550
UARTS. Somente uma IRQ pode ser usada para todas 8 portas. Ele no requer qualquer controlador no
GNU/Linux no entanto o Kernel precisa ter o suporte a portas seriais.
Handspring-Visor - Usando o Visor com o GNU/Linux e sua porta USB.
IO-Port-Programming - Este documento descreve a programao de portas I/O de hardware.

30.8.2.5 Software
ADSM-Backup - Descreve como instalar e usar um cliente para o sistema de backup comercial ADSM
para Linux Intel.
Bzip2 - Explica como usar o programa de compactao bzip2.
GIS-GRASS - Este documento descreve como adquirir, instalar e configurar o poderoso sistema de
informaes cientficas e geogrficas de domnio pblico (GIS): o Geographic Resources Analysis Support
System (GRASS).
LILO - O LILO o gerenciador de inicializao mais usado na plataforma Intel do Linux. Este documento
descreve alguns tipos de instalaes do LILO.

30.8.2.6 Plataformas no Intel (x86)


Mac-Terminal - Descreve o 1,002nd uso para um Macintosh (grin) morto: como configurar o Mac para
uso como um terminal GNU/Linux.

30.8.2.7 Programao / Compiladores / Banco de Dados


Programming-Languages - Uma breve comparao das maiores linguagens de programao para o
GNU/Linux e maiores bibliotecas para para criao de interfaces grficas com o usurio (GUIs) sob o
GNU/Linux.
Guia Foca GNU/Linux

228

30.8.2.8 Configurao de Teclado / Video / Console


Intkeyb - Mini-Howto experimental para o GNU/Linux para a configurao de teclados.

30.8.2.9 Ambiente Grfico


FDU - Como corrigir fontes feias e ilegveis no X.
LBX - O LBX (Low Bandwidth X) uma extenso do servidor X que realiza compresso no protocolo X.
Isto significa que pode ser usado em conjunto com aplicativos X e um servidor X que esto separados
atravs de uma conexo de rede de baixa velocidade, para aumentar o tempo de resposta.
Remote-X-Apps - Descreve como executar aplicativos X remotos.
X-Big-Cursor- Descreve como usar cursores grandes no X.
XFree86-XInside - Como converte um modeline XFree86 em um XInside/XiGraphics.
Xterm-Title - Explica como usar seqncias de escape para alterar dinmicamente os ttulos e cones de
janelas de um xterm.

30.8.2.10 Migrao/Convivncia com outras plataformas


Linux+DOS+Win95+OS2 - Este documento oferece um procedimento para fazer 4 sistemas operacionais
coexistirem no mesmo disco rgido.
Linux+FreeBSD - Descreve como usar o Linux e FreeBSD no mesmo sistema.
Linux+NT-Loader - Descreve como usar o gerenciador de inicializao do Windows NT para iniciar o
GNU/Linux. Este processo foi testado com o Windows NT 4.0 WorkStation.
Linux+Solaris - Descreve como usar o Linux (X86) e Solaris (x86) no mesmo computador.
Linux+Win95 - Descreve como usar o Linux e Windows 95-98 na mesma mquina.
Multiboot-with-LILO - Descreve como usar mltipla inicializao entre o Windows 95, Windows NT e
Linux.

30.8.2.11 Tarefas Especficas


Backup-With-MSDOS - Descreve como usar uma unidade de tape compatvel com o GNU/Linux
instalado em uma mquina DOS para fazer o backup do sistema de arquivos de uma mquina GNU/Linux.
Battery-Powered - Descreve como reduzir o consumo de energia do sistema GNU/Linux atravs de alguns
ajustes de configurao. Isto ser til para qualquer um quer executar o GNU/Linux em um sistema de
computador porttil. Tambm contm dicas de uso da bateria. Se estiver usando o GNU/Linux em um
sistema desktop, voc provavelmente no precisar ler todo este documento.
Clock - Como manter o relgio de seu computador na hora.
Coffee - Uma dos mais extremos dos documentos. Eu j pensei se era possvel usar o GNU/Linux para
fazer caf... e descobri que o GNU/Linux faz caf!
Por um longo tempo a humanidade estava se perguntando se um computador podia fazer caf... As pessoas
precisam de caf para no dormirem na frente do computador. Todo mundo sabe que melhor programar de
noite...
Divert-Sockets-mini-HOWTO - Descreve como obter, compilar e usar os soquetes divert FreeBSD sob o
GNU/Linux 2.2.12.
Leased-Line - Configurando seu modem e pppd para usar 2 pares de cabos leased line.
Linux-Modem-Sharing - Descreve como configurar o sistema GNU/Linux para compartilhar um modem
conectado a este sistema com outros atravs de uma rede TCP/IP.
Mail2News - Descreve como enviar mensagens de uma lista de discusso para um servidor news.
NCD-X-Terminal - Descreve como conectar um terminal NCD X a um computador UNIX.
NFS-Root - Este documento tenta explicar como configurar uma estao de trabalho "sem disco" no
GNU/Linux, que monta seu sistema de arquivos raz via NFS.
NFS-Root-Client-mini-HOWTO - O propsito deste documento explicar como criar um cliente dos
diretrios raz em um servidor que est usando clientes com NFS root montados.
Netscape+Proxy - Este documento descreve o processo de configurar uma REDE (INTRANET) em casa.
Ento configura o NETSCAPE das mquinas dos clientes para acessarem a internet.
News-Leafsite - Este documento ajudar a configurao de um pequeno leafsite para a Usenet News
usando o Leadnode do pacote free software.
Offline-Mailing - Explica como usar o sistema de mensagens do GNU/Linux offline, receber emails para
Guia Foca GNU/Linux

229

mltiplos usurios somente com uma conta de e-mail, e sem estar 24-24 horas online na Internet. Se voc
no pode pagar uma linha para estar conectado por 24-24 horas e ainda deseja que seus usurios recebem
emails em sua mquina Linux; tambm no pague por uma conta multi-drop em seu provedor, voc pode
usar este sistema usando somente um endereo de e-mail para dividir seus endereos de e-mails dos
usurios.
Process-Accounting - Descreve como ativar a conta de processos em uma mquina GNU/Linux, o uso de
vrios comandos de contabilizao de processos.
RCS - Este documento cobre a instalao e uso bsicos do RCS, o GNU Revision Control System sob o
GNU/Linux.
Saving-Space - Este documento mostra maneiras de diminuir sua instalao GNU/Linux consumindo o
mnimo possvel de espao.
Secure-POP+SSH - Este documento explica como usar conexes POP seguras via ssh.
Small-Memory - O propsito deste documento descrever como executar o GNU/Linux em um sistema
com pequena quantidade de memria. Assumindo que a compra de memria esta fora de questo aqui.
Soundblaster-AWE - Descreve como instalar e configurar a placa de som Sound Blaster 32 (SB AWE 32,
SB AWE 64) da Creative Labs em um Sistema Linux usando a extenso do driver de som AWE escrito por
Takashi Iwai.
StarOffice - Instalando o StarOffice 3.1 da StarDivision no GNU/Linux.
TT-Debian - Descreve como configurar o suporte das fontes True Type na Debian.
TkRat - Este documento foi escrito para qualquer um que tem interesse em usar seu computador
GNU/Linux para enviar e receber E-mails pela Internet.
Visual-Bell - Explica como usar o termcap para configurar um aviso visual no sistema ao invs do beep e
como desativar o sinal de audio.
Wacom-USB-mini-HOWTO - Descreve como configurar um Wacom Graphire USB tablet para uso no
GNU/Linux (console e X), iniciando com a configurao do Kernel para o nvel da aplicao.
WordPerfect - Discute a execuo do WordPerfect no GNU/Linux incluindo uma breve discusso sobre o
WordPerfect 7.0.
ZIP-Install - Este documento somente til para aqueles que possuem a verso em porta paralela de um
ZIP drive e que deseja fazer o backup do sistema GNU/Linux em um disco ZIP.
call-back-mini-HOWTO - Descreve como configurar um call-back usando um sistema GNU/Linux e um
modem.

30.8.2.12 Rede / Administrao / Firewall / Segurana


ADSL - Configurando o GNU/Linux para funcionar com Asymmetric Digital Subscriber Loop (ADSL),
uma nova tecnologia de acesso digital de alta velocidade atravs de linhas disponvel atravs da Telcos. O
ADSL uma das tecnologias disponveis da famlia da digital subscriber line (DSL) disponveis para
usurios residenciais e comerciais usando copper loops, oferecendo velocidades que variam de 384kbps a
1.5Mbps. Este documento contm uma introduo ao ADSL e informaes de como instalar, configurar e
colocar o ADSL para funcionar.
Apache+SSL+PHP+fp - Este documento explica como construir um servidor web que suportar contedo
web dinmico via a linguagem de scripting PHP/FI, transmisso de dados segura baseado no SSL do
Netscape, execuo segura de CGI's e extenses do M$ Frontpage Server.
Apache-mods - Detalhes sobre a instalao do servidor web baseado no Apache configurado para
manipular DSO e vrios mdulos teis incluindo perl, ssl, e php.
Bridge - Este documento descreve como ajustar uma ponte ethernet (bridge). O que uma ponte ethernet?
um dispositivo que controla os pacotes de dados dentro de uma subrede na tentativa de cortar o excesso
de trfego. Uma ponte colocada normalmente entre dois grupos separados de computadores que falam
entre eles, mas no muito com computadores no outro grupo. Um bom exemplo disto considerar um grupo
de Macintoshes e um grupo de mquinas Unix. Ambos destes grupos de mquinas tendem falar uma com as
outras, e o trfego que produzem na rede causam colises para as outras mquinas que esto tentando falar
uma com a outra. Uma ponte pode ser colocada entre estes dois grupos de computadores. A tarefa da ponte
ento examinar o destino dos pacotes de dados um por vez e decidir o que passar ou no para o outro lado
do segmento ethernet. O resultado uma rede rpida com menos colises.
Bridge+Firewall - Como configurar uma ponte com um firewall.
Bridge+Firewall+DSL - Configurando um sistema GNU/Linux para funcionar como um firewall e ponte
com uma conexo de rede DSL.
Cipe+Masq - Como configurar uma VPN usando o Cipe em um firewall GNU/Linux masquerading.
Guia Foca GNU/Linux

230

Compressed-TCP - Sees TCP/IP compactadas usando ferramentas como SSH.


DHCP - Este documento tenta responder questes bsicas de como configurar seu computador
GNU/Linux para servir de cliente ou servidor DHCP.
DPT-Hardware-RAID - Como ajustar o hardware RAID sob o GNU/Linux.
Domain - Este documento explica as coisas que voc provavelmente deve fazer quando desejar construir
uma rede de computadores sob seu prprio domnio. Ele cobre a configurao dos parmetros de rede,
servios de rede e segurana.
FTP - Como usar clientes e servidores FTP.
Fax-Server - Descreve os mtodos mais simples de configurar um servidor de fax em seu sistema
GNU/Linux. O fax est disponvel aos usurios do seu sistema local e rede de usurios.
Firewall-Piercing - Mtodos de usar PPP atravs de telnet para tornar os materiais da rede transparentes
atravs de um firewall Internet.
Home-Network-mini-HOWTO - Um tutorial simples de configurao do sistema Red Hat 6 e variantes
para operar como um gateway na internet para uma pequena rede domstica ou de escritrio. Entre os
tpicos cobertos esto includos masquerading, DNS, DHCP e segurana bsica.
IP-Alias - Descreve como utilizar vrios IPs em uma nica interface de rede. Em adio, esto includas
instrues de como ajustar a mquina para receber e-mais em IPs alises.
IP-Subnetworking - Descreve porque e como subdividir uma rede IP - que est usando uma simples classe
de rede A, B ou C para funcionar corretamente em diversas redes interconectadas.
IPMasquerading+Napster - Descreve como permitir usurios atravs de um sistema IPMasquerade usar o
Napster.
ISP-Connectivity - Descreve como configurar o PPP, conectar-se ao seu Provedor, configurar o E-mail e
news, obter um IP permanente (se disponvel), obter um nome de domnio.
Mail-Queue - Queue E-mails remotos + Entregar e-mails locais as configuraes necessrias para fazer o
Sendmail enviar mensagens locais ***Agora*** e entregar mensagens remotas "quando quiser".
Netrom-Node - Este documento descreve como configurar o pacote de utilitrios ax25 para Rdio
Amadores.
PLIP - Este documento lhe ajudar a usar sua porta Paralela para conexo entre computadores.
Proxy-ARP-Subnet - Este documento discute o uso do Proxy Address Resolution Protocol (ARP) com
subrede em ordem para fazer uma pequena rede de computadores visvel a outra sub rede IP (eu chamo isto
de sub-subrede). isto faz todas as mquinas na rede local (rede 0 onde estamos agora) aparecer como se
estivessem conectadas a rede principal (rede 1).
Public-Web-Browser - A idia bsica dar acesso web a pessoas que desejam, limitando suas habilidades
de causar problemas.
Qmail+MH - Ensina como usar o Qmail em conjunto com o MH.
Remote-Boot - Este documento descreve como configurar um servidor de inicializao robusto e seguro
para um grupo de PCS, permitindo cada cliente escolher em tempo de inicializao qual sistema operacional
executar.
SLIP-PPP-Emulator - Descreve como obter seu computador Linux conectado a um site genrico via
emulador SLIP/PPP, tal como SLiRP ou TIA.
Sendmail+UUCP - Como utilizar o Sendmail em conjunto com o UUCP.
Sendmail-Address-Rewrite - Breve descrio de como ajustar o arquivo de configurao do sendmail para
o usurio domstico que utiliza o acesso dial-up a
Term-Firewall - Mtodos de usar o "term" para tornar os materiais de rede transparentes atravs de um
firewall TCP que parece no ser capaz.
Token-Ring - Fazendo o Token Ring funcionar no GNU/Linux.
TransparentProxy - Como configurar um servidor proxy transparente de cache HTTP usando somente o
GNU/Linux e o Squid.
VPN - Ensina como configurar uma Virtual Protected Network no GNU/Linux.

30.8.2.13 Outros
Advocacy - Este documento oferece sugestes de como a comunidade Linux pode defender efetivamente o
uso do Linux.
BogoMips - Detalhes sobre BogoMips. Este texto foi criado a partir de vrios arquivos GNU/Linux no
arquivo HOWTO/mini/BogoMips.
Commercial-Port-Advocacy - Este documento discute mtodos que podem ser usados como aproximao
Guia Foca GNU/Linux

231

de empresas comerciais para convence-las a portar seus programas para o GNU/Linux.

30.9 Documentao de Programas


So documentos instalados junto com os programas. Alguns programas tambm trazem o aviso de copyright,
changelogs, modelos, scripts, exemplos e FAQs (perguntas frequntes) junto com a documentao normal.
Seu princpio o mesmo do How-to; documentar o programa. Estes arquivos esto localizados em:
/usr/doc/[programa].
Programa o nome do programa ou comando procurado.

30.10 FAQ
FAQ um arquivo de perguntas e respostas mais frequntes sobre o programa. Os arquivos de FAQ esto
localizados em:
/usr/doc/FAQ/[programa].
Programa o nome do programa ou comando procurado.

30.11 RFC's
So textos que contm normas para a padronizao dos servios e protocolos da Internet (como a porta padro
de operao, comandos que devem ser utilizados, respostas) e outros detalhes usados para padronizar o uso de
servios Internet entre as mais diversas plataformas de computadores, com o objetivo de garantir a perfeita
comunicao entre ambos.
O arquivo de uma RFC segue o formato RFC+Nmero, onde RFC descreve que o documento uma RFC e
Nmero o seu nmero de identificao, como o documento RFC1939 que documenta o funcionamento e
comandos do protocolo POP3. Os arquivos de RFC's podem ser encontrados no pacote doc-rfc da distribuio
Debian e baseadas .
Segue abaixo o ndice principal do diretrio de RFC's que poder ser usado para localizar RFC's especficas de
um determinado servio/assunto:
0001 - PADRES OFICIAIS DO PROTOCOLO INTERNET. J. Reynolds, R. Braden. Maro 2000.
(Formato: TXT=86139 bytes) (Deixa obsoleto RFC2500, RFC2400, RFC2300, RFC2200, RFC2000,
RFC1920, RFC1880, RFC1800, RFC1780, RFC1720, RFC1610, RFC1600, RFC1540, RFC1500,
RFC1410, RFC1360, RFC1280, RFC1250, RFC1200, RFC1140, RFC1130, RFC1100, RFC1083) (Tambm
RFC2600)
0002 - Nmeros designados. J. Reynolds, J. Postel. Outubro 1994. (Formato: TXT=458860 bytes)
(Tambm RFC1700)
0003 - Requerimentos do sistema. R. Braden. Outubro 1989. (Formato: TXT=528939 bytes) (Tambm
RFC1122, RFC1123)
0004 - Requerimentos do Gateway. R. Braden, J. Postel. Junho 1987. (Formato: TXT=125039 bytes)
(Tambm RFC1009)
0005 - Protocolo Internet. J. Postel. Setembro 1981. (Formato: TXT=241903 bytes) (Tambm RFC0791,
RFC0950, RFC0919, RFC0922, RFC792, RFC1112)
0006 - User Datagram Protocol. J. Postel. Agosto 1980. (Formato: TXT=5896 bytes) (Tambm RFC0768)
0007 - Transmission Control Protocol. J. Postel. September 1981. (Formato: TXT=172710 bytes)
(Tambm RFC0793)
0008 - Protocolo Telnet. J. Postel, J. Reynolds. Maio 1983. (Formato: TXT=44639 bytes) (Tambm
RFC0854, RFC0855)
0009 - File Transfer Protocol. J. Postel, J. Reynolds. Outubro 1985. (Formato: TXT=148316 bytes)
(Tambm RFC0959)
0010 - SMTP Service Extensions. J. Klensin, N. Freed, M. Rose, E. Stefferud & D. Crocker. Novembro
1995. (Formato: TXT=23299 bytes) (Deixa obsoleto RFC1651) (Tambm RFC821, RFC1869)
0011 - Standard for the format of ARPA Internet text messages. D. Crocker. 13-Ago-1982. (Formato:
TXT=109200 bytes) (Deixa obsoleto RFC1653) (Tambm RFC0822)
0012 - Network Time Protocol. D. Mills. Setembro 1989. (Formato: TXT=193 bytes) (Tambm RFC1119)
0013 - Domain Name System. P. Mockapetris. Novembro 1987. (Formato: TXT=248726 bytes) (Tambm
RFC1034, RFC1035)
0014 - Mail Routing and the Domain System. C. Partridge. Janeiro 1986. (Formato: TXT=18182 bytes)
(Tambm RFC0974)
0015 - Simple Network Management Protocol. J. Case, M. Fedor, M. Schoffstall, J. Davin. Maio 1990.
(Formato: TXT=72876 bytes) (Tambm RFC1157)
Guia Foca GNU/Linux

232

0016 - Structure of Management Information. M. Rose, K. McCloghrie. Maio 1990. (Formato:


TXT=82279 bytes) (Deixa obsoleto RFC1065) (Tambm RFC1155)
0017 - Management Information Base. K. McCloghrie, M. Rose. March 1991. (Formato: TXT=142158
bytes) (Deixa obsoleto RFC1158) (Tambm RFC1213)
0018 - Exterior Gateway Protocol. D. Mills. Abril 1984. (Formato: TXT=63836 bytes) (Tambm
RFC0904)
0019 - NetBIOS Service Protocols. NetBIOS Working Group. Maro 1987. (Formato: TXT=319750 bytes)
(Tambm RFC1001, RFC1002)
0020 - Echo Protocol. J. Postel. Maio 1983. (Formato: TXT=1237 bytes) (Tambm RFC0862)
0021 - Discard Protocol. J. Postel. Maio 1983. (Formato: TXT=1239 bytes) (Tambm RFC0863)
0022 - Character Generator Protocol. J. Postel. Maio 1983. (Formato: TXT=6842 bytes) (Tambm
RFC0864)
0023 - Quote of the Day Protocol. J. Postel. Maio 1983. (Formato: TXT=1676 bytes) (Tambm RFC0865)
0024 - Active Users Protocol. J. Postel. Maio 1983. (Formato: TXT=2029 bytes) (Tambm RFC0866)
0025 - Daytime Protocol. J. Postel. Maio 1983. (Formato: TXT=2289 bytes) (Tambm RFC0867)
0026 - Time Server Protocol. J. Postel. Maio 1983. (Formato: TXT=3024 bytes) (Tambm RFC0868)
0027 - Binary Transmission Telnet Option. J. Postel, J. Reynolds. Maio 1983. (Formato: TXT=8965 bytes)
(Tambm RFC0856)
0028 - Echo Telnet Option. J. Postel, J. Reynolds. Maio 1983. (Formato: TXT=10859 bytes) (Tambm
RFC0857)
0029 - Suppress Go Ahead Telnet Option. J. Postel, J. Reynolds. Maio 1983. (Formato: TXT=3712 bytes)
(Tambm RFC0858)
0030 - Status Telnet Option. J. Postel, J. Reynolds. Maio 1983. (Formato: TXT=4273 bytes) (Tambm
RFC0859)
0031 - Timing Mark Telnet Option. J. Postel, J. Reynolds. Maio 1983. (Formato: TXT=7881 bytes)
(Tambm RFC0860)
0032 - Extended Options List Telnet Option. J. Postel, J. Reynolds. Maio 1983. (Formato: TXT=3068
bytes) (Tambm RFC0861)
0033 - Trivial File Transfer Protocol. K. Sollins. Julho 1992. (Formato: TXT=24599 bytes) (Tambm
RFC1350)
0034 - Routing Information Protocol. C. Hedrick. Junho 1988. (Formato: TXT=91435 bytes) (Tambm
RFC1058)
0035 - ISO Transport Service on top of the TCP (Version: 3). M. Rose, D. Cass. Maio 1978. (Formato:
TXT=30662 bytes) (Tambm RFC1006)
0036 - Transmission of IP and ARP over FDDI Networks. D. Katz. Janeiro 1993. (Formato: TXT=22077
bytes) (Tambm RFC1390)
0037 - An Ethernet Address Resolution Protocol. David C. Plummer. Novembro 1982. (Formato:
TXT=21556 bytes) (Tambm RFC0826)
0038 - A Reverse Address Resolution Protocol. Ross Finlayson, Timothy Mann, Jeffrey Mogul, Marvin
Theimer. Junho 1984. (Formato: TXT=9345 bytes) (Tambm RFC0903)
0039 - Interface Message Processor: Especificaes para a Interconexo de um computador e um IMP
(Revisado). BBN. Dezembro 1981. (fora de linha)
0040 - Host Access Protocol specification. Bolt Beranek and Newman. Agosto 1993. (Formato:
TXT=152740 bytes) (Deixa obsoleto RFC0907) (Tambm RFC1221)
0041 - Standard for the transmission of IP datagrams over Ethernet networks. C. Hornig. Abril 1984.
(Formato: TXT=5697 bytes) (Tambm RFC0894)
0042 - Standard for the transmission of IP datagrams over experimental Ethernetnetworks. J. Postel. Abril
1984. (Formato: TXT=4985 bytes) (Tambm RFC0895)
0043 - Standard for the transmission of IP datagrams over IEEE 802 networks. J. Postel, J.K. Reynolds.
Agosto 1993. (Formato: TXT=34359 bytes) (Deixa obsoleto RFC0948) (Tambm RFC1042)
0044 - DCN Local-Network Protocols. D.L. Mills. Agosto 1993. (Formato: TXT=65340 bytes) (Tambm
RFC0891)
0045 - Internet Protocol on Network System's HYPERchannel: Protocol Specification. K. Hardwick, J.
Lekashman. Augosto 1993. (Formato: TXT=100836 bytes) (Tambm RFC1044)
0046 - Transmitting IP traffic over ARCNET networks. D. Provan. Agosto 1993. (Formato: TXT=16565
bytes) (Deixa obsoleto RFC1051) (Tambm RFC1201)

Guia Foca GNU/Linux

233

0047 - Nonstandard for transmission of IP datagrams over serial lines: SLIP. J.L. Romkey. Agosto 1993.
(Formato: TXT=12578 bytes) (Tambm RFC1055)
0048 - Standard for the transmission of IP datagrams over NetBIOS networks. L.J. McLaughlin. Agosto
1993. (Formato: TXT=5579 bytes) (Tambm RFC1088)
0049 - Standard for the transmission of 802.2 packets over IPX networks. L.J. McLaughlin. Agosto 1993.
(Formato: TXT=7902 bytes) (Tambm RFC1132)
0050 - Definitions of Managed Objects for the Ethernet-like Interface Types. F. Kastenholz. Julho 1994.
(Formato: TXT=39008, bytes) (Deixa obsoleto RFC1623, RFC1398) (Tambm RFC1643)
0051 - The Point-to-Point Protocol (PPP). W. Simpson, Editor. Julho 1994. (Formato: TXT=151158 bytes)
(Deixa obsoleto: RFC1549) (Tambm RFC1661, RFC1662)
0052 - The Transmission of IP Datagrams over the SMDS Service. D. Piscitello, J. Lawrence. Maro 1991.
(Formato: TXT=24662 bytes) (Tambm RFC1209)
0053 - Post Office Protocol - Version 3. J. Myers & M. Rose. Maio 1996. (Formato: TXT=47018 bytes)
(Deixa Obsoleto: RFC1725) (Tambm RFC1939)
0054 - OSPF Version 2. J. Moy. Abril 1998. (Formato: TXT=447367 bytes) (Tambm RFC2328)
0055 - Multiprotocol Interconnect over Frame Relay. C. Brown, A. Malis. Setembro 1998. (Formato:
TXT=74671 bytes) (Deixa Obsoleto: RFC1490, RFC1294) (Tambm RFC2427)
0056 - RIP Version 2. G. Malkin. Novembro 1998. (Formato: TXT=98462 bytes) (Atualiza RFC1723,
RFC1388) (Tambm RFC2453)
0057 - RIP Version 2 Protocol Applicability Statement. G. Malkin. Novembro 1994. (Formato:
TXT=10236 bytes) (Tambm RFC1722)
0058 - Structure of Management Informatoion Version 2 (SMIv2. K. McCloghrie, D. Perkins, J.
Schoenwaelder. Abril 1999. (Formato: TXT=89712 bytes) (Deixa Obsoleto RFC1902) (Tambm RFC2578,
RFC2579)
0059 - Remote Network Monitoring Management Information Base. S. Waldbusser. Maio 2000. (Formato:
TXT=198676 bytes) (Deixa Obsoleto RFC1757) (Tambm RFC2819)

30.12 Internet
Certamente o melhor suporte ao GNU/Linux via Internet, veja abaixo alguns locais teis de onde pode obter
ajuda ou se atualizar.

30.12.1 Pginas Internet de Referncia


Existem boas pginas Internet Nacionais e Internacionais sobre o GNU/Linux e assuntos relacionados com este
sistema. A maioria trazem documentos e explicaes sobre configurao, instalao, manuteno,
documentao, suporte, etc.
Estas pginas podem ser encontradas atravs de ferramentas de busca. Entre outras pginas, posso citar as
seguintes:

http://debian-br.sourceforge.net Projeto Debian-Br. A Debian uma distribuio de Linux conhecida por


sua qualidade, grande nmero de pacotes, estabilidade, facilidade de atualizao, desenvolvimento aberto,
segurana, ferramentas de gerenciamento de servidores e comprometimento com o software livre.
A Debian feita originalmente em ingls e traduzida por grupos em vrios lugares do mundo. O projeto
Debian-br destina-se a colaborar na traduo da Debian para o Portugus (nossa lingua-me). Atravs desse
projeto, todos podero, da forma colaborativa como na Debian, trazer essa excelente distribuio em nosso
idioma!
Participe:
- Voc pode pegar um documento pra traduzir
- Reformular a pgina do projeto
- Programando para o projeto
- Sendo um desenvolvedor da Debian
- A pagina do projeto a http://debian-br.sourceforge.net
- Revisar documentao
- Ou participar de outras tarefas do seu interesse!
Entre em contato com o responsvel pelo projeto pelo email baptista@linuxsolutions.com.br para saber como
entrar no projeto ou visite a pgina http://debian-br.sourceforge.net. Todos os interessados esto convidados a
participar do projeto!

http://debian-br.sourceforge.net/contador-debian/contador.html - O contador Debian uma pgina


idealizada para que fossem geradas estatsticas fceis de se aplicar quanto ao nmero e caractersticas prprias
Guia Foca GNU/Linux

234

de cada grupo de usurios Debian no Brasil.


Sua base construda em PHP com uso do banco de dados MySQL, hospedado no Source Forge mantido
pelo pessoal do projeto Debian-BR o contador tem tambm a facilidade de integrar-se com o bot apt-br
facilitando a vida dos usurios do canal IRC do projeto.
Responsvel pela pgina: Gustavo Noronha dockov@zaz.com.br endereo: http://debianbr.sourceforge.net/contador-debian/contador.html
http://www.linux.trix.net - Boletim dirio com as noticias mais recentes sobre GNU/Linux, testes, redes,
descrio/configurao/ avaliao de programas, entrevistas, downloads, dica do dia, mecanismo de busca no
site, links, etc. Em Portugus.
Responsvel pela pgina: Augusto Campos brain@matrix.com.br endereo: http://www.linux.trix.net.
http://www.olinux.com.br - Trata o GNU/Linux com o foco jornalstico e tem a inteno de prover
informaes eficazes e esclarecedoras capazes de instruir, reciclar e tornar acessvel aos usurios o
conhecimento e aprofundamento de temas relacionados a plataforma GNU/Linux.
Publicao diria de Artigos que so feitos para que o usurio possa resolver problemas e tirar dvidas deste
sistema. Assuntos diversos sobre programas, servios e utilitrios. Tambm conta com sees de programao,
jogos, segurana e entrevistas com personalidades do cenrio software livre/cdigo aberto. Atualizao diria.
Responsvel
pela
pgina:
Linux
Solutions
baptista@linuxsolutions.com.br
endereo:
http://www.olinux.com.br.
http://come.to/linuxworld - Informaes sobre distribuies Linux, downloads, gerenciadores de janelas
(Enlightenment, Window Maker, etc) temas com fotos ilustrativas, seo programa do ms (onde falado
sobre um programa interessante), seo sobre jogos (para as pessoas enviarem suas dvidas de jogos). Em
Portugus.
Esta homepage tambm traz uma seo onde as pessoas escrevem suas dvidas, que so recebidas pelo
responsvel pela pgina, solucionadas e respondidas.
Responsvel pela pgina: Luiz Estevo Baptista de Oliveira luizestevao@yahoo.com endereo:
http://come.to/linuxworld.
http://www.linuxsecurity.com.br - Boletins de segurana, publicaes de textos nacionais, tradues de
sites especializados em segurana, programas relacionados com criptografia e segurana no ambiente Linux.
A pgina requer um navegador com suporte a java.
http://www.thecore.com.br - Empresa que publica o Core News, o primeiro boletins de noticias de free
software do pas.
O site tambm oferece um mecanismo de contagem de acesso (ranking) para sites que apiam o Core News.
O site conta com um jogo de domin on-line muito interessante feito pela empresa como uma pequena
demonstrao dos servios que oferece.
Responsvel pela pgina: thecore@thecore.com.br endereo: http://www.thecore.com.br.
http://ldp-br.conectiva.com.br - Projeto de documentao do GNU/Linux no Brasil. Toda a documentao
traduzida para o Portugus do Brasil pode ser encontrada l.
Responsvel pela pgina: ricardo@conectiva.com.br endereo: http://ldp-br.conectiva.com.br.
http://expansion.onweb.cx - Site que visa juntar e divulgar principalmente a documentao do
GNU/Linux, sejam HOW-TOs ou simples dicas.
Responsvel pela pgina: netstart@linuxbr.com.br endereo: http://expansion.onweb.cx.
http://www.guiadohardware.net - Site de Hardware, conta com notcias dirias, cursos online, artigos,
tutoriais, anlises de equipamentos, frum, dicionrio de termos, dicas sobre overclock, palm pilot e sesso
FAQ com mais de 300 dvidas respondidas.
Atualizaes dirias, possui um servio de envio de dicas por e-mail.
Responsvel pela pgina: Carlos E. Morimoto
morimoto@guiadohardware.net endereo:
http://www.guiadohardware.net.
http://www.linux.org - Pgina oficial do GNU/Linux mantida pela Transmeta (a empresa que Linus
Torvalds vem trabalhando atualmente). Muita referncia sobre GNU/Linux, distribuies, hardwares,
softwares, downloads, etc.
Responsvel pela pgina: webmaster@linux.org endereo: http://www.linux.org.
http://counter.li.org - Este um servio que tem o objetivo de contar os usurios, mquinas, grupos de
usurios Linux existentes ao redor do mundo. Te encorajo a se registrar neste site e indica-lo aos seus amigos,
de graa, voc estar contribuindo para o aumento das estatsticas do nmero de usurios no mundo, pas,
sua cidade, etc. O site tambm conta com um sistema de estatsticas de usurios, mquinas e grupos de
usurios espalhados ao redor do mundo. Voc pode saber em poucos segundos a quantidade de usurios Linux
em seu pas, cidade, etc.
Responsvel pela pgina: Harald T. Alvestrand harald@alvestrand.no endereo: http://counter.li.org.

Guia Foca GNU/Linux

235

http://metalab.unc.edu - O ponto de referncia mais tradicional de softwares GNU/Linux do mundo. Voc


pode encontrar desde dicas, documentao (todos os How-Tos) at diversas distribuies GNU/Linux.
Responsvel pelo site: webmaster@sunsite.unc.edu endereo: http://metalab.unc.edu.

http://www.themes.org - Neste site voc encontra milhares de temas divididos em categorias para os mais
diversos gerenciadores de janelas no GNU/Linux. O site muito pesado, por causa das fotos, recomendvel
um bom fax-modem ou muita pacincia.
Responsvel pela pgina: webmaster@themes.org endereo: http://www.themes.org.
Caso conhecer uma pgina de Internet que contenha materiais teis a comunidade GNU/Linux ou desejar
incluir a sua, entre em contato para sua incluso na prxima verso do guia junto com uma descrio da
pgina.

30.12.2 Listas de discusso


So grupos de usurios que trocam mensagens entre si, resolvem dvidas, ajudam na configurao de
programas, instalao, etc. considerado o melhor suporte ao GNU/Linux pois qualquer participante pode ser
beneficiar das solues discutidas. Existem milhares de listas de discusses sobre o GNU/Linux espalhadas pelo
mundo, em Portugus existem algumas dezenas.
Algumas listas so especficas a um determinado assunto do sistema, algumas so feitas para usurios iniciantes
ou avanados, outras falam praticamente de tudo. Existem desde usurios iniciantes, hackers, consultores,
administradores de redes experientes e gurus participando de listas e oferecendo suporte de graa a quem se
aventurar em instalar e usar o sistema GNU/Linux.
A lista de discusso funciona da seguinte forma: voc se inscreve na lista enviando uma mensagem ao endereo
de inscrio, ser enviada um pedido de confirmao por e-mail, simplesmente d um reply na mensagem para
ser cadastrado. Pronto! agora voc estar participando do grupo de usurios e receber todas as mensagens dos
participantes do grupo. Assim voc poder enviar sua mensagem e ela ser vista por todos os participantes da
lista.
Da mesma forma, voc pode responder uma dvida de outro usurio da lista ou discutir algum assunto, tirar
alguma dvida sobre a dvida de outra pessoa, etc.
No tenha vergonha de enviar sua pergunta, participar de listas de discusso uma experincia quase
obrigatrio de um Linuxer. Abaixo segue uma relao de listas de discusso em Portugus com a descrio,
endereo de inscrio, e o que voc deve fazer para ser cadastrado:

debian-user-portuguese@lists.debian.org - Lista de discusso para usurios Portugueses da Debian.


Tambm so discutidos assuntos relacionados ao Linux em geral. A inscrio aberta a todos os interessados.
Para se inscrever, envie uma mensagem para debian-user-portuguese-request@lists.debian.org contendo a
palavra subscribe no assunto da mensagem. Ser enviada uma mensagem a voc pedindo a confirmao da
inscrio na lista de discusso, simplesmente d um reply na mensagem (responder) e voc estar cadastrado e
poder enviar e receber mensagens dos participantes.

debian-news-portuguese@lists.debian.org - A Debian extremamente bem estruturada quanto a


divulgaes e notcias, vrias listas de email e vrias pginas compe essa base. A Debian Weekly News
especialmente importante pois d uma viso geral do que se passou na Debian durante a semana. Sua verso
Brasileira editada e traduzida por Gustavo Noronha Silva (kov) e conta com a lista de pacotes traduzida por
Adriano Freitas (afreitas) e revisada por Hilton Fernandes e no traz apenas tradues mas tambm adies
dos acontecimentos atuais da Debian no Brasil, ou projetos concludos ou lanados pela equipe Debian-br
(http://debian-br.sourceforge.net). Essa lista NO usada para resoluo de dvidas e problemas, apenas para
o RECEBIMENTO de notcias relacionadas a Debian. No poste mensagens nela!
Para se inscrever, envie uma mensagem para debian-news-portuguese-request@lists.debian.org contendo a
palavra subscribe no assunto da mensagem. Ser enviada uma mensagem a voc pedindo a confirmao da
inscrio na lista de discusso, simplesmente d um reply na mensagem (responder) e voc passar a receber
as notcias sobre a Debian em Portugus.

linux-br@unicamp.br - Lista de discusso que cobre assuntos diversos. Esta lista voltada para usurios
com bons conhecimentos no GNU/Linux, so abordados assuntos como redes, configuraes, etc. Esta uma
lista moderada, o que significa que a mensagem que envia passam por uma pessoa que verifica (modera) e a
libera caso estejam dentro das normas adotada na lista. uma lista de alto nvel e recomendada para quem
deseja fugir de mensagens como no consigo instalar o Linux, no sei compilar o Kernel, o que eu fao
quando vejo uma tela com o nome login:?, etc.
Para se inscrever nesta lista, envie uma mensagem para: linux-br-request@unicamp.br contendo a palavra
subscribe no assunto da mensagem e aguarde o recebimento da confirmao da inscrio. Apenas responda a
mensagem de confirmao para se inscrever. Para se descadastrar envie uma mensagem para o mesmo
endereo mas use a palavra unsubscribe.

dicas-l@unicamp.br - Esta lista envia diariamente uma dica de Unix, sistemas da Microsoft ou novidades
Guia Foca GNU/Linux

236

da Internet.
Para se inscrever nesta lista de discusso, envie uma mensagem para: dicas-l-request@unicamp.br contendo a
palavra subscribe no corpo da mensagem e aguarde o recebimento da confirmao da inscrio. Apenas
responda a mensagem de confirmao para confirmar sua inscrio na lista. Para se descadastrar envie uma
mensagem para o mesmo endereo mas use a palavra unsubscribe.

linux-br@listas.conectiva.com.br - Discute todos os aspectos relacionados ao uso, instalao, atualizao


e operao do GNU/Linux.
Para se inscreve nesta lista de discusso, envie uma mensagem para: linux-br-request@listas.conectiva.com.br
contendo a palavra subscribe no corpo da mensagem e aguarde o recebimento da confirmao da inscrio.
Apenas respoda a mensagem de confirmao para confirmar sua inscrio na lista. Para se descadastrar envie
uma mensagem para o mesmo endereo mas use a palavra unsubscribe.

debian-news-portuguese@lists.debian.org - Lista de discusso que veicula semanalmente a traduo de


noticias postadas a listas debian-news (em Ingls), listas de novos pacotes includos na distribuio com a
descrio traduzida e noticias relacionadas aos esforos da Internacionalizao da Debian no Brasil.
Para se inscrever, envie uma mensagem para debian-news-portuguese-request@lists.debian.org contendo a
palavra subscribe no assunto da mensagem. Ser enviada uma mensagem a voc pedindo a confirmao da
inscrio na lista de discusso, simplesmente d um reply na mensagem (responder) e voc estar cadastrado e
passar a receber as noticias semanais enviadas a lista.
Esta listagem deveria estar mais completa, mas eu no lembro de todas as listas!.
RECOMENDAES AO PARTICIPAR DE LISTAS DE DISCUSSES
No envie mensagens em maisculo porque VAI PARECER QUE VOC EST GRITANDO!. Isto uma regra
de etiqueta na internet. Recebi muitas mensagens de gente escrevendo TODO o e-mail desta forma e ignorei a
todas!
Sempre coloque um assunto (subject) na mensagem. O assunto serve como um resumo do problema ou dvida
que tem. Alguns usurios, principalmente os que participam de vrias listas de discusso, verificam o assunto da
mensagem e podem simplesmente descartar a mensagem sem l-la porque as vezes ele no conhece sobre
aquele assunto.
Nunca use "Socorro!", "Help!" ou coisa do gnero como assunto, seja objetivo sobre o problema/dvida que
tem: "Falha ao carregar mdulo ne do Kernel", "SMAIL retorna a mensagem Access denied", "Novidades:
Nova verso do guia Foca Linux" ;-).
Procure enviar mensagens em formato texto ao invs de HTML para as listas de discusso pois isto faz com que
a mensagem seja vista por todos os participantes (muitos dos usurios GNU/Linux usam leitores de e-mail que
no suportam formato html) e diminui drasticamente o tamanho da mensagem porque o formato texto no usa
tags e outros elementos que a linguagem HTML contm (muitos dos usurios costumam participar de vrias
listas de discusso, e mensagens em HTML levam a um excesso de trfego e tempo de conexo).
Muitas pessoas reclamam do excesso de mensagens recebidas das listas de discusso. Se voc recebe muitas
mensagens, procure usar os filtros de mensagens para organiza-las. O que eles fazem procurar por campos na
mensagem, como o remetente, e enviar para um local separado. No final da filtragem, todas as mensagens de
listas de discusso estaro em locais separados e as mensagens enviadas diretamente a voc entraro na caixa de
correio principal, por exemplo.
Um filtro de mensagens muito usado no GNU/Linux o procmail, para maiores detalhes consulte a
documentao deste programa.
O Netscape tambm tem recursos de filtros de mensagem que podem ser criadas facilmente atravs da opo
"Arquivo/Nova SubPasta" ("File/New Subfolder") do programa de E-mail. Ento defina as regras atravs do
menu "Editra/Filtros de Mensagens" ("Edit/Message filters") clicando no boto "Novo"("New").

Guia Foca GNU/Linux

237

Captulo 31 Firewall iptables


Este captulo documenta o funcionamento do firewall iptables que acompanha a srie do Kernel 2.4, opes
usadas, e aponta alguns pontos fundamentais para iniciar a configurao e construo de bons sistemas de
firewall.

31.1 Introduo
O Firewall um programa que como objetivo proteger a mquina contra acessos indesejados, trfego
indesejado, proteger servios que estejam rodando na mquina e bloquear a passagem de coisas que voc no
deseja receber (como conexes vindas da Internet para sua segura rede local, evitando acesso aos dados
corporativos de uma empresa ou a seus dados pessoais). No Kernel do Linux 2.4, foi introduzido o firewall
iptables (tambm chamado de netfilter) que substitui o ipchains dos Kernels da srie 2.2. Este novo firewall tem
como vantagem ser muito estvel (assim como o ipchains e ipfwadm), confivel, permitir muita flexibilidade na
programao de regras pelo administrador do sistema, mais opes disponveis ao administrador para controle
de trfego, controle independente do trfego da rede local/entre redes/interfaces devido a nova organizao das
etapas de roteamento de pacotes. O iptables um firewall a nvel de pacotes e funciona baseado no
endereo/porta de origem/destino do pacote, prioridade, etc. Ele funciona atravs da comparao de regras para
saber se um pacote tem ou no permisso para passar. Em firewalls mais restritivos, o pacote bloqueado e
registrado para que o administrador do sistema tenha conhecimento sobre o que est acontecendo em seu
sistema. Ele tambm pode ser usado para modificar e monitorar o trfego da rede, fazer NAT (masquerading,
source nat, destination nat), redirecionamento de pacotes, marcao de pacotes, modificar a prioridade de
pacotes que chegam/saem do seu sistema, contagem de bytes, dividir trfego entre mquinas, criar protees
anti-spoofing, contra syn flood, DoS, etc. O trfego vindo de mquinas desconhecidas da rede pode tambm ser
bloqueado/registrado atravs do uso de simples regras. As possibilidades oferecidas pelos recursos de filtragem
iptables como todas as ferramentas UNIX maduras dependem de sua imaginao, pois ele garante uma grande
flexibilidade na manipulao das regras de acesso ao sistema, precisando apenas conhecer quais interfaces o
sistema possui, o que deseja bloquear, o que tem acesso garantido, quais servios devem estar acessveis para
cada rede, e iniciar a construo de seu firewall.
O iptables ainda tem a vantagem de ser modularizvel, funes podem ser adicionadas ao firewall ampliando as
possibilidades oferecidas. Usei por 2 anos o ipchains e afirmo que este um firewall que tem possibilidades de
gerenciar tanto a segurana em mquinas isoladas como roteamento em grandes organizaes, onde a passagem
de trfego entre redes deve ser minuciosamento controlada.
Um firewall no funciona de forma automtica (instalando e esperar que ele faa as coisas por voc),
necessrio pelo menos conhecimentos bsicos de rede TCP/IP, roteamento e portas para criar as regras que faro
a segurana de seu sistema. A segurana do sistema depende do controle das regras que sero criadas por voc,
as falhas humanas so garantia de mais de 95% de sucesso nas invases.
Enfim o iptables um firewall que agradar tanto a pessoas que desejam uma segurana bsica em seu sistema,
quando administradores de grandes redes que querem ter um controle minucioso sobre o trfego que passam
entre suas interfaces de rede (controlando tudo o que pode passar de uma rede a outra), controlar o uso de
trfego, monitorao, etc.

31.1.1 Verso
assumido que esteja usando a verso 1.2.3 do iptables e baseadas nas opes do Kernel 2.4.16 (sem o uso de
mdulos experimentais). As explicaes contidas aqui podem funcionar para verses posteriores, mas
recomendavel que leia a documentao sobre modificaes no programa (changelog) em busca de mudanas
que alterem o sentido das explicaes fornecidas aqui.

31.1.2 Um resumo da histria do iptables


O iptables um cdigo de firewall das verses 2.4 do Kernel, que substituiu o ipchains (presente nas sries 2.2
do Kernel). Ele foi includo no Kernel da srie 2.4 em meados de Junho/Julho de 1999.
A histria do desenvolvimento (desde o porte do ipfw do BSD para o Linux at o iptables (que a quarta
gerao de firewalls do Kernel) est disponvel no documento, Netfilter-howto.

31.1.3 Caractersticas do firewall iptables

Especificao de portas/endereo de origem/destino


Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens icmp)

Guia Foca GNU/Linux

238

Suporte a interfaces de origem/destino de pacotes


Manipula servios de proxy na rede
Tratamento de trfego dividido em chains (para melhor controle do trfego que entra/sai da mquina e
trfego redirecionado.
Permite um nmero ilimitado de regras por chain
Muito rpido, estvel e seguro
Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos ou mal formados.
Suporte a mdulos externos para expanso das funcionalidades padres oferecidas pelo cdigo de
firewall
Suporte completo a roteamento de pacotes, tratadas em uma rea diferente de trfegos padres.
Suporte a especificao de tipo de servio para priorizar o trfego de determinados tipos de pacotes.
Permite especificar excesses para as regras ou parte das regras
Suporte a deteco de fragmentos
Permite enviar alertas personalizados ao syslog sobre o trfego aceito/bloqueado.
Redirecionamento de portas
Masquerading
Suporte a SNAT (modificao do endereo de origem das mquinas para um nico IP ou faixa de IP's).
Suporte a DNAT (modificao do endereo de destino das mquinas para um nico IP ou fixa de IP's)
Contagem de pacotes que atravessaram uma interface/regra
Limitao de passagem de pacotes/conferncia de regra (muito til para criar protees contra, syn
flood, ping flood, DoS, etc).

31.1.4 Ficha tcnica


Pacote: iptables

iptables - Sistema de controle principal para protocolos ipv4

ip6tables - Sistema de controle principal para protocolos ipv6

iptables-save - Salva as regras atuais em um arquivo especificado como argumento. Este utilitrio pode
ser dispensado por um shell script contendo as regras executado na inicializao da mquina.

iptables-restore - Restaura regras salvas pelo utilitrio iptables-save.

31.1.5 Requerimentos
necessrio que o seu Kernel tenha sido compilado com suporte ao iptables (veja Habilitando o suporte ao
iptables no Kernel, Seo 31.1.15. O requerimento mnimo de memria necessria para a execuo do iptables
o mesmo do Kernel 2.4 (4MB). Dependendo do trfego que ser manipulado pela(s) interface(s) do firewall ele
poder ser executado com folga em uma mquina 386 SX com 4MB de RAM.
Como as configuraes residem no Kernel no necessrio espao extra em disco rgido para a execuo deste
utilitrio.

31.1.6 Arquivos de logs criados pelo iptables


Todo trfego que for registrado pelo iptables registrado por padro no arquivo /var/log/kern.log.

31.1.7 Instalao
apt-get install iptables
O pacote iptables contm o utilitrio iptables (e ip6tables para redes ipv6) necessrios para inserir suas regras no
Kernel. Se voc no sabe o que ipv6, no precisar se preocupar com o utilitrio ip6tables por enquanto.

31.1.8 Enviando Correes/Contribuindo com o projeto


A pgina principal do projeto http://netfilter.filewatcher.org. Sugestes podem ser enviadas para a lista de
desenvolvimento oficial do iptables: http://lists.samba.org.

31.1.9 O que aconteceu com o ipchains e ipfwadm?


O iptables faz parte da nova gerao de firewalls que acompanha o Kernel 2.4, mas o suporte ao ipchains e
ipfwadm ainda ser mantido atravs de mdulos de compatibilidade do Kernel at 2004. Seria uma grande falta
de considerao retirar o suporte a estes firewalls do Kernel como forma de obrigar a "aprenderem" o iptables
Guia Foca GNU/Linux

239

(mesmo o suporte sendo removido aps este perodo, acredito que criaro patches "externos" para futuros
Kernels que no traro mais este suporte). Se precisa do suporte a estes firewalls antes de passar em definitivo
para o iptables leia Habilitando o suporte ao iptables no Kernel, Seo 31.1.15.
Se voc um administrador que gosta de explorar todos os recursos de um firewall, usa todos os recursos que
ele oferece ou mantm uma complexa rede corporativa, tenho certeza que gostar do iptables.

31.1.10 Tipos de firewalls


Existem basicamente dois tipos de firewalls:

nvel de aplicao - Este tipo de firewall analisam o contedo do pacote para tomar suas decises de
filtragem. Firewalls deste tipo so mais intrusivos (pois analisam o contedo de tudo que passa por ele) e
permitem um controle relacionado com o contedo do trfego. Alguns firewalls a nvel de aplicao
combinam recursos bsicos existentes em firewalls a nvel de pacotes combinando as funcionalidade de
controle de trfego/controle de acesso em uma s ferramenta. Servidores proxy, como o squid, so um
exemplo deste tipo de firewall.

nvel de pacotes - Este tipo de firewall toma as decises baseadas nos parmetros do pacote, como
porta/endereo de origem/destino, estado da conexo, e outros parmetros do pacote. O firewall ento pode
negar o pacote (DROP) ou deixar o pacote passar (ACCEPT). O iptables um excelente firewall que se
encaixa nesta categoria.
Firewall a nvel de pacotes o assunto explicado nesta seo do guia.
Os dois tipos de firewalls podem ser usados em conjunto para fornecer uma camada dupla de segurana no
acesso as suas mquinas/mquinas clientes.

31.1.11 O que proteger?


Antes de iniciar a construo do firewall bom pensar nos seguintes pontos:

Quais servios precisa proteger. Servios que devem ter acesso garantido a usurios externos e quais
sero bloqueados a todas/determinadas mquinas. recomendvel bloquear o acesso a todas portas menores
que 1024 por executarem servios que rodam com privilgio de usurio root, e autorizar somente o acesso
as portas que realmente deseja (configurao restritiva nesta faixa de portas).

Que tipo de conexes eu posso deixar passar e quais bloquear. Servios com autenticao em texto
plano e potencialmente inseguros como rlogin, telnet, ftp, NFS, DNS, LDAP, SMTP RCP, X-Window so
servios que devem ser ter acesso garantido somente para mquinas/redes que voc confia. Estes servios
podem no ser s usados para tentativa de acesso ao seu sistema, mas tambm como forma de atacar outras
pessoas aproveitando-se de problemas de configurao.
A configurao do firewall ajuda a prevenir isso, mesmo se um servio estiver mal configurado e tentando
enviar seus pacotes para fora, ser impedido. Da mesma forma se uma mquina Windows de sua rede for
infectada por um trojan no haver pnico: o firewall poder estar configurado para bloquear qualquer
tentativa de conexo vinda da internet (cracker) para as mquinas de sua rede.
Para cpia de arquivos via rede insegura (como atravs da Internet), recomendado o uso de servios que
utilizam criptografia para login e cpia de arquivos (veja Servidor ssh, Captulo 36).

Que mquinas tero acesso livre e quais sero restritas.

Que servios devero ter prioridade no processamento.

Que mquinas/redes NUNCA devero ter acesso a certas/todas mquinas.

O volume de trfego que o servidor manipular. Atravs disso voc pode ter que balancear o trfego
entre outras mquinas, configurar protees contra DoS, syn flood, etc.

O que tem permisso de passar de uma rede para outra (em mquinas que atuam como
roteadores/gateways de uma rede interna).

Etc.
A anlise destes pontos pode determinar a complexidade do firewall, custos de implementao, prazo de
desenvolvimento e tempo de maturidade do cdigo para implementao. Existem muitos outros pontos que
podem entrar na questo de desenvolvimento de um sistema de firewall, eles dependem do tipo de firewall que
est desenvolvendo e das polticas de segurana de sua rede.

31.1.12 O que so regras?


As regras so como comandos passados ao iptables para que ele realize uma determinada ao (como bloquear
ou deixar passar um pacote) de acordo com o endereo/porta de origem/destino, interface de origem/destino,
etc. As regras so armazenadas dentro dos chains e processadas na ordem que so inseridas.
As regras so armazenadas no Kernel, o que significa que quando o computador for reiniciado tudo o que fez
Guia Foca GNU/Linux

240

ser perdido. Por este motivo elas devero ser gravadas em um arquivo para serem carregadas a cada
inicializao.
Um exemplo de regra: iptables -A INPUT -s 123.123.123.1 -j DROP.

31.1.13 O que so chains?


Os Chains so locais onde as regras do firewall definidas pelo usurio so armazenadas para operao do
firewall. Existem dois tipos de chains: os embutidos (como os chains INPUT, OUTPUT e FORWARD) e os
criados pelo usurio. Os nomes dos chains embutidos devem ser especificados sempre em maisculas (note que
os nomes dos chains so case-sensitive, ou seja, o chain input completamente diferente de INPUT).

31.1.14 O que so tabelas?


Tabelas so os locais usados para armazenar os chains e conjunto de regras de um mesmo conjunto que cada um
possui. As tabelas podem ser referenciadas com a opo -t tabela e existem 3 tabelas disponveis no iptables:

filter - Esta a tabela padro, contm 3 chains padres:


INPUT - Consultado para dados que chegam a mquina
OUTPUT - Consultado para dados que saem da mquina
FORWARD - Consultado para dados que so redirecionados para outra interface de rede ou outra
mquina.
Os chains INPUT e OUTPUT somente so atravessados por conexes indo/se originando de localhost. OBS:
Para conexes locais, somente os chains INPUT e OUTPUT so consultados na tabela filter.

nat - Usada para dados que gera outra conexo (masquerading, source nat, destination nat, port
forwarding, proxy transparente so alguns exemplos). Possui 3 chains padres:
PREROUTING - Consultado quando os pacotes precisam ser modificados logo que chegam. o chain
ideal para realizao de DNAT e redirecionamento de portas (Fazendo DNAT, Seo 31.4.4).
OUTPUT - Consultado quando os pacotes gerados localmente precisam ser modificados antes de serem
roteados. Este chain somente consultado para conexes que se originam de IPs de interfaces locais.
POSTROUTING - Consultado quando os pacotes precisam ser modificados aps o tratamento de
roteamento. o chain ideal para realizao de SNAT e IP Masquerading (Fazendo SNAT, Seo 31.4.3).

mangle - Utilizada para alteraes especiais de pacotes (como modificar o tipo de servio (TOS) ou
outros detalhes que sero explicados no decorrer do captulo. Possui 2 chains padres:
PREROUTING - Consultado quando os pacotes precisam ser modificados logo que chegam.
OUTPUT - Consultado quando pacotes gerados localmente precisam ser modificados antes de serem
roteados.
Veja A tabela mangle, Seo 31.5 para mais detalhes sobre a tabela mangle.

31.1.15 Habilitando o suporte ao iptables no Kernel


Para usar toda a funcionalidade do firewall iptables, permitindo fazer o controle do que tem ou no permisso de
acessar sua mquina, fazer Masquerading/NAT em sua rede, etc., voc precisar dos seguintes componentes
compilados em seu Kernel (os mdulos experimentais fora ignorados intencionalmente):
*
* Network Options:
*
Network packet filtering (replaces ipchains) [Y/m/n/?]
Network packet filtering debugging [Y/m/n/?]
e na Subseo:
*
* IP: Netfilter Configuration
*
Connection tracking (required for masq/NAT) (CONFIG_IP_NF_CONNTRACK) [M/n/y/?]
FTP protocol support (CONFIG_IP_NF_FTP) [M/n/?]
IRC protocol support (CONFIG_IP_NF_IRC) [M/n/?]
IP tables support (required for filtering/masq/NAT) (CONFIG_IP_NF_IPTABLES) [Y/m/n/?]
limit match support (CONFIG_IP_NF_MATCH_LIMIT) [Y/m/n/?]
MAC address match support (CONFIG_IP_NF_MATCH_MAC) [M/n/y/?]
netfilter MARK match support (CONFIG_IP_NF_MATCH_MARK) [M/n/y/?]
Guia Foca GNU/Linux

241

Multiple port match support (CONFIG_IP_NF_MATCH_MULTIPORT) [M/n/y/?]


TOS match support (CONFIG_IP_NF_MATCH_TOS) [M/n/y/?]
LENGTH match support (CONFIG_IP_NF_MATCH_LENGTH) [M/n/y/?]
TTL match support (CONFIG_IP_NF_TTL) [M/n/y/?]
tcpmss match support (CONFIG_IP_NF_MATCH_TCPMSS) [M/n/y/?]
Connection state match support (CONFIG_IP_NF_MATCH_STATE) [M/n/?]
Packet filtering (CONFIG_IP_NF_FILTER) [M/n/y/?]
REJECT target support (CONFIG_IP_NF_TARGET_REJECT) [M/n/?]
Full NAT (CONFIG_IP_NF_NAT) [M/n/?]
MASQUERADE target support (CONFIG_IP_NF_TARGET_MASQUERADE) [M/n/?]
REDIRECT target support (CONFIG_IP_NF_TARGET_REDIRECT) [M/n/?]
Packet mangling (CONFIG_IP_NF_MANGLE) [M/n/y/?]
TOS target support (CONFIG_IP_NF_TARGET_TOS) [M/n/?]
MARK target support (CONFIG_IP_NF_TARGET_MARK) [M/n/?]
LOG target support (CONFIG_IP_NF_TARGET_LOG) [M/n/y/?]
TCPMSS target support (CONFIG_IP_NF_TARGET_TCPMSS) [M/n/y/?]
Esta configurao permite que voc no tenha problemas para iniciar o uso e configurao do seu firewall
iptables, ela ativa os mdulos necessrios para utilizao de todos os recursos do firewall iptables. Quando
conhecer a funo de cada um dos parmetros acima (durante o decorrer do texto), voc poder eliminar muitas
das opes desnecessrias para seu estilo de firewall ou continuar fazendo uso de todas ;-)
OBS1: A configurao acima leva em considerao que voc NO executar os cdigos antigos de firewall
ipfwadm e ipchains. Caso deseje utilizar o ipchains ou o ipfwadm, ser preciso responder com "M" a questo
"IP tables support (required for filtering/masq/NAT) (CONFIG_IP_NF_IPTABLES)". Ser necessrio carregar
manualmente o mdulo correspondente ao firewall que deseja utilizar (modprobe iptables_filter.o no caso do
iptables).
No execute mais de um tipo de firewall ao mesmo tempo!!!
OBS2: recomendvel ativar o daemon kmod para carga automtica de mdulos, caso contrrio ser necessrio
compilar todas as partes necessrias embutidas no Kernel, carregar os mdulos necessrios manualmente ou
pelo iptables (atravs da opo --modprobe=mdulo).

31.1.16 Ligando sua rede interna a Internet


Se a sua inteno (como da maioria dos usurios) conectar sua rede interna a Internet de forma rpida e
simples, leia Fazendo IP masquerading (para os apressados), Seo 31.4.2 ou Fazendo SNAT, Seo 31.4.3. Um
exemplo prtico de configurao de Masquerading deste tipo encontrado em Conectando sua rede interna a
Internet, Seo 31.8.3.
Aps configurar o masquerading, voc s precisar especificar o endereo IP da mquina masquerading
(servidor) como Gateway da rede. No Windows 9x/NT/2000 isto feito no Painel de
Controle/Rede/Propriedades de TCP/IP. No Linux pode ser feito com route add default gw IP_do_Servidor.

31.2 Manipulando chains


As opes passadas ao iptables usadas para manipular os chains so SEMPRE em maisculas. As seguintes
operaes podem ser realizadas com os chains:

31.2.1 Adicionando regras - A


Como exemplo vamos criar uma regra que bloqueia o acesso a nossa prpria mquina (127.0.0.1 - loopback).
Primeiro daremos um ping para verificar seu funcionamento:
#ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.6 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.5 ms
--- 127.0.0.1 ping statistics --2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.5/0.5/0.6 ms
Ok, a mquina responde, agora vamos incluir uma regra no chain INPUT (-A INPUT) que bloqueie (-j DROP)
qualquer acesso indo ao endereo 127.0.0.1 (-d 127.0.0.1):
iptables -t filter -A INPUT -d 127.0.0.1 -j DROP
Agora verificamos um novo ping:
#ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
Guia Foca GNU/Linux

242

--- 127.0.0.1 ping statistics --2 packets transmitted, 0 packets received, 100% packet loss
Desta vez a mquina 127.0.0.1 no respondeu, pois todos os pacotes com o destino 127.0.0.1 (-d 127.0.0.1) so
rejeitados (-j DROP). A opo -A usada para adicionar novas regras no final do chain. Alm de -j DROP que
serve para rejeitar os pacotes, podemos tambm usar -j ACCEPT para aceitar pacotes. A opo -j chamada de
alvo da regra ou somente alvo pois define o destino do pacote que atravessa a regra (veja Especificando um
alvo, Seo 31.3.6). Bem vindo a base de um sistema de firewall.
OBS1: - O acesso a interface loopback no deve ser de forma alguma bloqueado, pois muitos aplicativos
utilizam soquetes tcp para realizarem conexes, mesmo que voc no possua uma rede interna.
OBS2: - A tabela filter ser usada como padro caso nenhuma tabela seja especificada atravs da opo -t.

31.2.2 Listando regras - L


A seguinte sintaxe usada para listar as regras criadas:
iptables [-t tabela] -L [chain] [opes]
Onde:
tabela - uma das tabelas usadas pelo iptables. Se a tabela no for especificada, a tabela filter ser
usada como padro. Veja O que so tabelas?, Seo 31.1.14 para detalhes.
chain - Um dos chains disponveis na tabela acima (veja O que so tabelas?, Seo 31.1.14) ou criado
pelo usurio (Criando um novo chain - N, Seo 31.2.6). Caso o chain no seja especificado, todos os
chains da tabela sero mostrados.
Opes:
As seguintes opes podem ser usadas para listar o contedo de chains:

-v - Exibe mais detalhes sobre as regras criadas nos chains.

-n - Exibe endereos de mquinas/portas como nmeros ao invs de tentar a resoluo DNS e consulta
ao /etc/services. A resoluo de nomes pode tomar muito tempo dependendo da quantidade de regras que
suas tabelas possuem e velocidade de sua conexo.

-x - Exibe nmeros exatos ao invs de nmeros redondos. Tambm mostra a faixa de portas de uma
regra de firewall.

--line-numbers - Exibe o nmero da posio da regra na primeira coluna da listagem.


Para listar a regra criada anteriormente usamos o comando:
#iptables -t filter -L INPUT
Chain INPUT (policy ACCEPT)
target prot opt source
destination
DROP
all -- anywhere
localhost
O comando iptables -L INPUT -n tem o mesmo efeito, a diferena que so mostrados nmeros ao invs de
nomes:
#iptables -L INPUT -n
Chain INPUT (policy ACCEPT)
Target
prot
opt
source
destination
DROP
all
-0.0.0.0/0
127.0.0.1
#iptables -L INPUT -n --line-numbers
Chain INPUT (policy ACCEPT)
Num target prot
opt
source
destination
1
DROP all
-0.0.0.0/0
127.0.0.1
#iptables -L INPUT -n -v
Chain INPUT (policy ACCEPT 78 packets, 5820 bytes)
Pkts bytes target prot
opt
in
out
source
destination
2 194
DROP icmp -*
*
0.0.0.0/0
127.0.0.1
Os campos assim possuem o seguinte significado:

Chain INPUT - Nome do chain listado

(policy ACCEPT 78 packets, 5820 bytes) - Policiamento padro do chain (veja Especificando o
policiamento padro de um chain - P, Seo 31.2.11).

pkts - Quantidade de pacotes que atravessaram a regra (veja Zerando contador de bytes dos chains - Z,
Seo 31.2.10).

bytes - Quantidade de bytes que atravessaram a regra. Pode ser referenciado com K (Kilobytes), M
(Megabytes), G (Gigabytes).

target - O alvo da regra, o destino do pacote. Pode ser ACCEPT, DROP ou outro chain. Veja
Especificando um alvo, Seo 31.3.6 para detalhes sobre a especificao de um alvo.
Guia Foca GNU/Linux

243

prot - Protocolo especificado pela regra. Pode ser udp, tcp, icmp ou all. Veja Especificando um
protocolo, Seo 31.3.3 para detalhes.
opt - Opes extras passadas a regra. Normalmente "!" (veja Especificando uma excesso, Seo 31.3.5)
ou "f" (veja Especificando fragmentos, Seo 31.3.4).
in - Interface de entrada (de onde os dados chegam). Veja Especificando a interface de origem/destino,
Seo 31.3.2.
out - Interface de sada (para onde os dados vo). Veja Especificando a interface de origem/destino,
Seo 31.3.2.
source - Endereo de origem. Veja Especificando um endereo de origem/destino, Seo 31.3.1.
destination - Endereo de destino. Veja Especificando um endereo de origem/destino, Seo 31.3.1.
outras opes
Estas opes normalmente aparecem quando so usadas a opo -x:
dpt ou dpts - Especifica a porta ou faixa de portas de destino.
reject-with icmp-port-unreachable - Significa que foi usado o alvo REJECT naquela regra (veja Alvo
REJECT, Seo 31.3.6.1).

31.2.3 Apagando uma regra - D


Para apagar um chain, existem duas alternativas:

Quando sabemos qual o nmero da regra no chain (listado com a opo -L) podemos referenciar o
nmero diretamente. Por exemplo, para apagar a regra criada acima:
iptables -t filter -D INPUT 1
Esta opo no boa quando temos um firewall complexo com um grande nmero de regras por chains, neste
caso a segunda opo a mais apropriada.

Usamos a mesma sintaxe para criar a regra no chain, mas trocamos -A por -D:
iptables -t filter -D INPUT -d 127.0.0.1 -j DROP
Ento a regra correspondentes no chain INPUT ser automaticamente apagada (confira listando o chain com a
opo "-L"). Caso o chain possua vrias regras semelhantes, somente a primeira ser apagada.

31.2.4 Inserindo uma regra - I


Precisamos que o trfego vindo de 192.168.1.15 no seja rejeitado pelo nosso firewall. No podemos adicionar
uma nova regra (-A) pois esta seria includa no final do chain e o trfego seria rejeitado pela primeira regra
(nunca atingindo a segunda). A soluo inserir a nova regra antes da regra que bloqueia todo o trfego ao
endereo 127.0.0.1 na posio 1:
iptables -t filter -I INPUT 1 -s 192.168.1.15 -d 127.0.0.1 -j ACCEPT
Aps este comando, temos a regra inserida na primeira posio do chain (repare no nmero 1 aps INPUT) e a
antiga regra nmero 1 passa a ser a nmero 2. Desta forma a regra acima ser consultada, se a mquina de
origem for 192.168.1.15 ento o trfego estar garantido, caso contrrio o trfego com o destino 127.0.0.1 ser
bloqueado na regra seguinte.

31.2.5 Substituindo uma regra - R


Aps criar nossa regra, percebemos que a nossa inteno era somente bloquear os pings com o destino 127.0.0.1
(pacotes ICMP) e no havia necessidade de bloquear todo o trfego da mquina. Existem duas alternativas:
apagar a regra e inserir uma nova no lugar ou modificar diretamente a regra j criada sem afetar outras regras
existentes e mantendo a sua ordem no chain (isso muito importante). Use o seguinte comando:
iptables -R INPUT 2 -d 127.0.0.1 -p icmp -j DROP
O nmero 2 o nmero da regra que ser substituda no chain INPUT, e deve ser especificado. O comando
acima substituir a regra 2 do chain INPUT (-R INPUT 2) bloqueando (-j DROP) qualquer pacote icmp (-p
icmp) com o destino 127.0.0.1 (-d 127.0.0.1).

31.2.6 Criando um novo chain - N


Em firewalls organizados com um grande nmero de regras, interessante criar chains individuais para
organizar regras de um mesmo tipo ou que tenha por objetivo analisar um trfego de uma mesma categoria
(interface, endereo de origem, destino, protocolo, etc) pois podem consumir muitas linhas e tornar o
gerenciamento do firewall confuso (e conseqentemente causar srios riscos de segurana). O tamanho mximo
de um nome de chain de 31 caracteres e podem conter tanto letras maisculas quanto minsculas.
iptables [-t tabela] [-N novochain]
Para criar o chain internet (que pode ser usado para agrupar as regras de internet) usamos o seguinte comando:
Guia Foca GNU/Linux

244

iptables -t filter -N internet


Para inserir regras no chain internet basta especifica-lo aps a opo -A:
iptables -t filter -A internet -s 200.200.200.200 -j DROP
E ento criamos um pulo (-j) do chain INPUT para o chain internet:
iptables -t filter -A INPUT -j internet
OBS: O chain criando pelo usurio pode ter seu nome tanto em maisculas como minsculas.
Se uma mquina do endereo 200.200.200.200 tentar acessar sua mquina, o iptables consultar as seguintes
regras:
INPUT
internet
--------------------------------------------------------------------| Regra1: -s 192.168.1.15 |
| Regra1: -s 200.200.200.200 |
|------------------------------ |
|--------------------------------|
| Regra2: -s 192.168.1.1 |
| Regra2: -d 192.168.1.1
|
|------------------------------ |
-------------------------------------| Regra3: -j DROP
|
-------------------------------O pacote tem o endereo de origem 200.200.200.200,
ele passa pela primeira e segunda regras do chain INPUT,
a terceira regra direciona para o chain internet:

/-----------------------------| Regra1: -s 192.168.1.15


|-----------------------------| Regra2: -s 192.168.1.1
|-----------------------------| Regra3: -j internet
|-----------------------------| Regra4: -j DROP
\------------------------------

______________________________
v
/
v
|- \ / /----------------------------------------------|-\
| | /
| Regra1: -s 200.200.200.200 -j DROP \_____\
|- | /
|---------------------------------------------- |
/
| |/
| Regra2: -d 200.200.200.202 -j DROP |
|- |/
\--------------------------------------------- /
|/
|
No chain internet, a primeira regra confere
|
com o endereo de origem 200.200.200.200 e
/
o pacote bloqueado.

Se uma mquina com o endereo de origem 200.200.200.201 tentar acessar a mquina, ento as regra
consultadas sero as seguintes:
O pacote tem o endereo de origem
200.200.200.201, ele passa pela
primeira e segunda regras do chain
INPUT, a terceira regra direciona
para o chain internet
_______________________________
v
/
v
/------------------------------ |- \ / /----------------------------------------------|-\
| Regra1: -s 192.168.1.15 | | /
| Regra1: -s 200.200.200.200 -j DROP |-|
|------------------------------ |- | /
|---------------------------------------------- |-|
| Regra2: -s 192.168.1.1 | | /
| Regra2: -s 200.200.200.202 -j DROP |-|
|------------------------------ |- |/
\--------------------------------------------- |-/
| Regra3: -j internet
|/
v
|------------------------------ |
/
| Regra4: -j DROP
+------------------------------------------------------\----------------------------/-/
O pacote passa pelas regras 1 e 2 do chain
|
internet, como ele no confere com nenhuma
v
das 2 regras ele retorna ao chain INPUT e
Esta regra a nmero 4
analisado pela regra seguinte.
que diz para rejeitar o
pacote.

31.2.7 Renomeando um chain criado pelo usurio - E


Guia Foca GNU/Linux

245

Se por algum motivo precisar renomear um chain criado por voc na tabela filter, nat ou mangle, isto poder ser
feito usando a opo -E do iptables:
iptables -t filter -E chain-antigo novo-chain
Note que no possvel renomear os chains defaults do iptables.

31.2.8 Listando os nomes de todos os chains atuais


Use o comando cat /proc/net/ip_tables_names para fazer isto. interessante dar uma olhada nos arquivos dentro
do diretrio /proc/net, pois podem lhe ser interessantes.

31.2.9 Limpando as regras de um chain - F


Para limpar todas as regras de um chain, use a seguinte sintaxe:
iptables [-t tabela] [-F chain]
Onde:
tabela - Tabela que contm o chain que desejamos zerar.
chain - Chain que desejamos limpar. Caso um chain no seja especificado, todos os chains da tabela
sero limpos.
iptables -t filter -F INPUT
iptables -t filter -F

31.2.10 Apagando um chain criado pelo usurio - X


Para apagarmos um chain criado pelo usurio, usamos a seguinte sintaxe:
iptables [-t tabela] [-X chain]
Onde:
tabela - Nome da tabela que contm o chain que desejamos excluir.
chain - Nome do chain que desejamos apagar. Caso no seja especificado, todos os chains definidos
pelo usurio na tabela especificada sero excludos.
OBS: - Chains embutidos nas tabelas no podem ser apagados pelo usurio. Veja os nomes destes chains em O
que so tabelas?, Seo 9.1.14.
iptables -t filter -X internet
iptables -X

31.2.11 Zerando contador de bytes dos chains - Z


Este comando zera o campo pkts e bytes de uma regra do iptables. Estes campos podem ser visualizados com o
comando iptables -L -v. A seguinte sintaxe usada:
iptables [-t tabela] [-Z chain] [-L
Onde:
tabela - Nome da tabela que contm o chain que queremos zerar os contadores de bytes e pacotes.
chain - Chain que deve ter os contadores zerados. Caso no seja especificado, todos os chains da tabela
tero os contadores zerados. Note que as opes -Z e -L podem ser usadas juntas, assim o chain
ser listado e imediatamente zerado. Isto evita a passagem de pacotes durante a listagem de um
chain.
iptables -t filter -Z INPUT

31.2.12 Especificando o policiamento padro de um chain - P


O policiamento padro determina o que acontecer com um pacote quando ele chegar ao final das regras
contidas em um chain. O policiamento padro do iptables "ACCEPT" mas isto pode ser alterado com o
comando:
iptables [-t tabela] [-P chain] [ACCEPT/DROP]
Onde:
tabela - Tabela que contm o chain que desejamos modificar o policiamento padro.
chain - Define o chain que ter o policiamento modificado. O chain deve ser especificado.
ACCEPT/DROP - ACCEPT aceita os pacotes caso nenhuma regra do chain conferir (usado em regras
permissivas). DROP rejeita os pacotes caso nenhuma regra do chain conferir (usado
em regras restritivas).
O policiamento padro de um chain mostrado com o comando iptables -L:
# iptables -L INPUT
Guia Foca GNU/Linux

246

Chain INPUT (policy ACCEPT)


Target prot
opt
source
destination
DROP icmp -anywhere
localhost
No exemplo acima, o policiamento padro de INPUT ACCEPT (policy ACCEPT), o que significa que
qualquer pacote que no seja rejeitado pela regra do chain, ser aceito. Para alterar o policiamento padro deste
chain usamos o comando:
iptables -t filter -P INPUT DROP
OBS: Note que policiamentos PERMISSIVOS (ACCEPT) normalmente so usados em conjunto com regras
restritivas no chain correspondentes (tudo bloqueado e o que sobrar liberado) e policiamentos
RESTRITIVOS (DROP) so usados em conjunto com regras permissivas no chain correspondente (tudo
liberado e o que sobrar bloqueado pelo policiamento padro).

31.3 Outras opes do iptables


31.3.1 Especificando um endereo de origem/destino
As opes -s (ou --src/--source)e -d (ou --dst/--destination) servem para especificar endereos de origem e
destino respectivamente. permitido usar um endereo IP completo (como 192.168.1.1), um hostname (debian),
um endereo fqdn (www.debian.org) ou um par rede/mscara (como 200.200.200.0/255.255.255.0 ou
200.200.200.0/24).
Caso um endereo/mscara no sejam especificados, assumido 0/0 como padro (todos as mquinas de todas
as redes). A interpretao dos endereos de origem/destino dependem do chain que est sendo especificado
(como INPUT e OUTPUT por exemplo).
OBS: Caso seja especificado um endereo fqdn e este resolver mais de um endereo IP, sero criadas vrias
regras, cada uma se aplicando a este endereo IP especfico. recomendvel sempre que possvel a
especificao de endereos IP's nas regras, pois alm de serem muito rpidos (pois no precisar de resoluo
DNS) so mais seguros para evitar que nosso firewall seja enganado por um ataque de IP spoofing.
# Bloqueia o trfego vindo da rede 200.200.200.*:
iptables -A INPUT -s 200.200.200.0/24 -j DROP
# Bloqueia conexes com o destino 10.1.2.3:
iptables -A OUTPUT -d 10.1.2.3 -j DROP
# Bloqueia o trfego da mquina www.dominio.teste.org a rede 210.21.1.3
# nossa mquina possui o endereo 210.21.1.3
iptables -A INPUT -s www.dominio.teste.org -d 210.21.1.3 -j DROP

31.3.2 Especificando a interface de origem/destino


As opes -i (ou --in-interface) e -o (ou --out-interface) especificam as interfaces de origem/destino de pacotes.
Nem todos as chains aceitam as interfaces de origem/destino simultaneamente, a interface de entrada (-i) nunca
poder ser especificada em um chain OUTPUT e a interface de sada (-o) nunca poder ser especificada em um
chain INPUT. Abaixo uma rpida referncia:
--------------------------------------------------------------TABELA |
CHAIN
|
INTERFACE
|
|
|-------------------------------------- |
|
| ENTRADA (-i) | SADA (-o) |
--------------- |----------------------- |---------------------|-----------------|
|
| INPUT
| SIM
| NO
|
| filter
| OUTPUT
| NO
| SIM
|
|
| FORWARD
| SIM
| SIM
|
|-------------- |----------------------- |--------------------- |---------------- |
|
| PREROUTING | SIM
| NO
|
| nat
| OUTPUT
| NO
| SIM
|
|
| POSTROUTING | NO
| SIM
|
|-------------- |----------------------- |--------------------- |---------------- |
| mangle
| PREROUTING | SIM
| NO
|
|
| OUTPUT
| NO
| SIM
|
--------------- --------------------------------------------------------------A definio de qual interface permitida em qual chain determinada pela posio dos chains nas etapas de
roteamento do pacote. O chain OUTPUT da tabela filter somente poder conter a interface de sada (veja a
Guia Foca GNU/Linux

247

tabela acima). O chain FORWARD da tabela filter o nico que aceita a especificao de ambas as interfaces,
este um timo chain para controlar o trfego que passa entre interfaces do firewall.
Por exemplo para bloquear o acesso do trfego de qualquer mquina com o endereo 200.123.123.10 vinda da
interface ppp0 (uma placa de fax-modem):
iptables -A INPUT -s 200.123.123.10 -i ppp0 -j DROP
A mesma regra pode ser especificada como
iptables -A INPUT -s 200.123.123.10 -i ppp+ -j DROP
O sinal de "+" funciona como um coringa, assim a regra ter efeito em qualquer interface de ppp0 a ppp9. As
interfaces ativas no momento podem ser listadas com o comando ifconfig, mas permitido especificar uma
regra que faz referncia a uma interface que ainda no existe, isto interessante para conexes intermitentes
como o PPP. Para bloquear qualquer trfego local para a Internet:
iptables -A OUTPUT -o ppp+ -j DROP
Para bloquear a passagem de trfego da interface ppp0 para a interface eth1 (de uma de nossas redes internas):
iptables -A FORWARD -i ppp0 -o eth1 -j DROP

31.3.3 Especificando um protocolo


A opo -p (ou --protocol) usada para especificar protocolos no iptables. Podem ser especificados os
protocolos tcp, udp e icmp. Por exemplo, para rejeitar todos os pacotes UDP vindos de 200.200.200.200:
iptables -A INPUT -s 200.200.200.200 -p udp -j DROP
OBS1: Tanto faz especificar os nomes de protocolos em maisculas ou minsculas.

31.3.3.1 Especificando portas de origem/destino


As portas de origem/destino devem ser especificadas aps o protocolo e podem ser precedidas por uma das
seguintes opes:

--source-port ou --sport - Especifica uma porta ou faixa de portas de origem.

--destination-port ou --dport - Especifica uma porta ou faixa de portas de destino.


Uma faixa de portas pode ser especificada atravs de PortaOrigem:PortaDestino:
# Bloqueia qualquer pacote indo para 200.200.200.200 na faixa de
# portas 0 a 1023
iptables -A OUTPUT -d 200.200.200.200 -p tcp --dport :1023 -j DROP
Caso a PortaOrigem de uma faixa de portas no seja especificada, 0 assumida como padro, caso a Porta
Destino no seja especificada, 65535 assumida como padro. Caso precise especificar diversas regras que
envolvam o tratamento de portas diferentes, recomendo da uma olhada em Especificando mltiplas portas de
origem/destino, Seo 31.6.6, antes de criar um grande nmero de regras.

31.3.3.2 Especificando mensagens do protocolo ICMP


O protocolo ICMP no possui portas, mas possvel fazer um controle maior sobre o trfego ICMP que
entra/sai da rede atravs da especificao dos tipos de mensagens ICMP. Os tipos de mensagens devem ser
especificados com a opo "--icmp-type CdigoICMP" logo aps a especificao do protocolo icmp:
iptables -A INPUT -s 200.123.123.10 -p icmp --icmp-type time-exceeded -i ppp+ -j DROP
A regra acima rejeitar mensagens ICMP do tipo "time-exceeded" (tempo de requisio excedido) que venham
do endereo 200.123.123.10 atravs da interface ppp+.
Alguns tipos de mensagens ICMP so classificados por categoria (como o prprio "time-exceeded"), caso a
categoria "time-exceeded" seja especificada, todas as mensagens daquela categoria (como "ttl-zero-duringtransit", "ttl-zero-during-reassembly") conferiro na regra especificada.Os tipos de mensagens ICMP podem ser
obtidos com o comando iptables -p icmp -h:
echo-reply (pong)
destination-unreachable
network-unreachable
host-unreachable
protocol-unreachable
port-unreachable
fragmentation-needed
source-route-failed
network-unknown
host-unknown
network-prohibited
host-prohibited
Guia Foca GNU/Linux

248

TOS-network-unreachable
TOS-host-unreachable
communication-prohibited
host-precedence-violation
precedence-cutoff
source-quench
redirect
network-redirect
host-redirect
TOS-network-redirect
TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
ttl-zero-during-transit
ttl-zero-during-reassembly
parameter-problem
ip-header-bad
required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply
OBS1: No bloqueie mensagens do tipo "host-unreachable" seno ter srios problemas no controle de suas
conexes.

31.3.3.3 Especificando pacotes syn


Pacotes syn so usados para iniciarem uma conexo, o uso da opo --syn serve para especificar estes tipos de
pacotes. Desta maneira possvel bloquear somente os pacotes que iniciam uma conexo, sem afetar os pacotes
restantes. Para que uma conexo ocorra necessrio que a mquina obtenha a resposta a pacotes syn enviados,
caso ele seja bloqueado a resposta nunca ser retornada e a conexo no ser estabelecida.
iptables -A INPUT -p tcp --syn --dport 23 -i ppp+ -j DROP
A regra acima bloqueia (-j DROP) qualquer tentativa de conexo (--syn) vindas da interface ppp+ ao telnet (-dport 23) da mquina local, conexes j efetuadas o so afetadas por esta regra. A opo --syn somente pode
ser especificada para o protocolo tcp.
ATENO: - A situao de passagem de pacotes durante deve ser levada em conta durante a inicializao do
firewall, bloqueando a passagem de pacotes durante o processo de configurao, criando regras que bloqueiam a
passagem de pacotes (exceto para a interface loopback) at que a configurao do firewall esteja completa, pode
ser uma soluo eficiente.
Outra alternativa segura configurar as regras de firewall antes das interfaces de rede se tornarem ativas
(usando a opo "pre-up comando_firewall" no arquivo de configurao /etc/network/interfaces em sistemas
Debian.

31.3.4 Especificando fragmentos


A opo "-f" (ou --fragment) permite especificar regras que confiram com fragmentos. Fragmentos so
simplesmente um pacote maior dividido em pedaos para poder ser transmitido via rede TCP/IP para
remontagem do pacote pela mquina de destino.
Somente o primeiro fragmento possui detalhes de cabealho para ser processado, os segundos e seguintes
somente possuem alguns cabealhos necessrios para dar continuidade ao processo de remontagem do pacote no
destino.
Uma regra como
iptables -A INPUT -s 200.200.200.1 -f -j DROP
derrubar os fragmentos de 200.200.200.1 que cheguem at ns.
OBS1: Note que se o cabealho do pacote no tiver detalhes suficientes para checagem de regras no iptables, a
regra simplesmente no ira conferir.
OBS2: No preciso especificar a opo "-f" para conexes NAT, pois os pacotes so remontados antes de
entrarem no cdigo de filtragem.
OBS3: A opo "-f" tambm pode ser usada para evitar o flood por fragmentos (bomba de fragmentos) que,
Guia Foca GNU/Linux

249

dependendo da intensidade, podem at travar a mquina.

31.3.5 Especificando uma excesso


Muitos parmetros como o endereo de origem/destino, protocolo, porta, mensagens ICMP, fragmentos, etc)
podem ser precedidos pelo sinal "!" que significa excesso. Por exemplo:
iptables -t filter -A INPUT ! -s 200.200.200.10 -j DROP
Diz para rejeitar todos os pacotes EXCETO os que vem do endereo 200.200.200.10.
iptables -A INPUT -p tcp ! --syn -s 200.200.200.10 ! -i eth0 -j DROP
Diz para bloquear todos os pacotes EXCETO os que iniciam conexes (! --syn), EXCETO para pacotes vindos
na interface eth0 (! -i eth0).
iptables -A INPUT -s 200.200.200.10 ! -p tcp -j DROP
Bloqueia todos os pacotes vindos de 200.200.200.10, EXCETO os do protocolo tcp.

31.3.6 Especificando um alvo


O alvo (-j) o destino que um pacote ter quando conferir com as condies de uma regra, um alvo pode dizer
para bloquear a passagem do pacote (-j DROP), aceitar a passagem do pacote (-j ACCEPT), registrar o pacote
no sistema de log (-j LOG), rejeitar o pacote (-j REJECT), redirecionar um pacote -j REDIRECT, retornar ao
chain anterior sem completar o processamento no chain atual (-j RETURN), passar para processamento de
programas externos (-j QUEUE), fazer source nat (-j SNAT), destination nat (-j DNAT), etc. Podem existir mais
alvos, pois o iptables modularizvel, e mdulos que acrescentam mais funes podem ser carregados em
adio aos j existentes no Kernel.
Nos exemplos anteriores vimos o uso de diversos alvos como o DROP e o ACCEPT. Apenas farei uma breve
referncia sobre os alvos mais usados em operaes mais comuns dos chains. Os alvos REDIRECT, SNAT e
DNAT sero explicados em uma seo seguinte:

ACCEPT - O pacote ACEITO e o processamento das regras daquele chains concludo. Pode ser
usado como alvo em todos os chains de todas as tabelas do iptables e tambm pode ser especificado no
policiamento padro das regras do firewall (veja Especificando o policiamento padro de um chain - P,
Seo 31.2.11).

DROP - Rejeita o pacote e o processamento das regras daquele chain concludo. Pode ser usado como
alvo em todos os chains de todas as tabelas do iptables e tambm pode ser especificado no policiamento
padro das regras do firewall (veja Especificando o policiamento padro de um chain - P, Seo 31.2.11).

REJECT - Este um mdulo opcional que faz a mesma funo do alvo DROP com a diferena de que
uma mensagem ICMP do tipo "icmp-port-unreachable" retornada para a mquina de origem. Pode ser
usado como alvo somente nos chains da tabela filter.

LOG - Este mdulo envia uma mensagem ao syslog caso a regra confira, o processamento continua
normalmente para a prxima regra (o pacote no nem considerado ACEITO ou REJEITADO).

RETURN - Retorna o processamento do chain anterior sem processar o resto do chain atual.

QUEUE - Passa o processamento para um programa a nvel de usurio.

31.3.6.1 Alvo REJECT


Para ser usado, o mdulo ipt_REJECT deve ser compilado no Kernel ou como mdulo. Este alvo rejeita o
pacote (como o DROP) e envia uma mensagem ICMP do tipo "icmp-port-unreachable" para a mquina de
origem.
um alvo interessante para bloqueio de portas TCP, pois em alguns casos da a impresso que a mquina no
dispe de um sistema de firewall (o alvo DROP causa uma parada de muito tempo em alguns portscanners e
tentativas de conexo de servios, revelando imediatamente o uso de um sistema de firewall pela mquina). O
alvo REJECT vem dos tempos do ipchains e somente pode ser usado na tabela filter. Quando um pacote confere,
ele rejeitado com a mensagem ICMP do tipo "port unreachable", possvel especificar outro tipo de
mensagem ICMP com a opo --reject-with tipo_icmp.
OBS: REJECT pode ser usado somente como alvo na tabela filter e no possvel especifica-lo como
policiamento padro do chain filter (como acontecia no ipchains. Uma forma alternativa inserir como ltima
regra uma que pegue todos os pacotes restantes daquele chain e tenha como alvo REJECT (como iptables -A
INPUT -j REJECT), desta forma ele nunca atingir o policiamento padro do chain.
# Rejeita pacotes vindos de 200.200.200.1 pela interface ppp0:
iptables -A INPUT -s 200.200.200.1 -i ppp+ -j REJECT

31.3.6.2 Especificando LOG como alvo


Guia Foca GNU/Linux

250

Este alvo usado para registrar a passagem de pacotes no syslog do sistema. um alvo muito interessante para
ser usado para regras que bloqueiam determinados trfegos no sistema (para que o administrador tome
conhecimento sobre tais tentativas), para regras de fim de chain (quando voc tem um grande conjunto de regras
em um firewall restritivo e no sabe onde suas regras esto sendo bloqueadas), para satisfazer sua curiosidade,
etc.
# Para registrar o bloqueio de pacotes vindos de 200.200.200.1 pela interface ppp0
iptables -A INPUT -s 200.200.200.1 -i ppp+ -j LOG
# Para efetuar o bloqueio
iptables -A INPUT -s 200.200.200.1 -i ppp+ -j REJECT
Note que a regra que registra o pacote (-j LOG) deve aparecer antes da regra que REJEITA (-j REJECT), caso
contrrio a regra de LOG nunca funcionar. A nica coisa que muda nas regras de log o alvo da regra, isto
facilita a implementao de grandes conjuntos de regras de firewall.
A regra acima mostrar a seguinte sada no syslog do sistema:
Aug 25 10:08:01 debian Kernel: IN=ppp0 OUT= MAC=10:20:30:40:50:60:70:80:90:00:00:00:08:00
SRC=200.200.200.1 DST=200.210.10.10 LEN=61 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF
PROTO=UDP SPT=1031 DPT=53 LEN=41
Os campos possuem o seguinte significado:

Aug 25 10:08:01 - Mes, dia e hora do registro do pacote.

debian - Nome do computador que registrou o pacote.

Kernel: - Daemon que registrou a mensagem, no caso o iptables faz parte do prprio Kernel.

IN=ppp0 - Especifica a interface de entrada (de onde o pacote veio).

OUT= - Especifica a interface de sada (para onde o pacote foi).

MAC=10:20:30:40:50:60:70:80:90:00:00:00:08:00 - Endereo mac da interface de rede (pode ser


obtido com arp interface).

SRC=200.200.200.1 - Endereo de origem do pacote.

DST=200.210.10.10 - Endereo de destino do pacote.

LEN=61 - Tamanho do pacote.

TOS=0x00 - Prioridade do cabealho TOS (prioridade normal neste caso). Veja a seo Especificando o
tipo de servio, Seo 31.5.1 para mais detalhes.

PROTO=UDP - Nome do protocolo. Pode ser TCP, UDP ou ICMP

SPT=1031 - Porta de origem da requisio.

DPT=53 - Porta de destino da requisio.

LEN=41 - Tamanho do pacote.


O log acima mostra uma consulta DNS (porta destino 53) para nossa mquina (INPUT) de 200.200.200.1 para
200.210.10.10.
O problema que em um grande nmero de regras ser difcil saber qual regra conferiu (pois teramos que
analisar o endereo/porta origem/destino) e o destino do pacote (se ele foi ACEITO ou BLOQUEADO) pois
voc pode ter regras para ambas as situaes. Por este motivo existem algumas opes teis que podemos usar
com o alvo LOG:

--log-prefix "descrio" - Permite especificar uma descrio para a regra do firewall de at 29


caracteres. Caso tiver espaos, devem ser usadas "aspas".

--log-level nvel - Especifica o nvel da mensagem no syslog.

--log-tcp-options - Registra campos do cabealho TCP nos logs do sistema.

--log-ip-options - Registra campos do cabealho IP nos logs do sistema

--log-tcp-sequence - Registra os nmeros de seqencia TCP. Evite ao mximo o uso desta opo, pois a
seqencia de nmeros TCP pode ser a chave para um seqestro de seo ou IP spoofing em seu sistema caso
algum usurio tenha acesso a estes logs.
Lembre-se que estas opes so referentes ao alvo LOG, e devem ser usadas aps este, caso contrrio voc ter
um pouco de trabalho para analisar e consertar erros em suas regras do firewall.
# Complementando o exemplo anterior:
# Para registrar o bloqueio de pacotes vindos de 200.200.200.1 pela interface ppp0
iptables -A INPUT -s 200.200.200.1 -i ppp+ -j LOG --log-prefix "FIREWALL: Derrubado "
# Para efetuar o bloqueio
iptables -A INPUT -s 200.200.200.1 -i ppp+ -j REJECT
Retornar a seguinte mensagem no syslog:
Aug
25
10:08:01
debian
Kernel:
FIREWALL:
Derrubado
IN=ppp0
OUT=
MAC=10:20:30:40:50:60:70:80:90:00:00:00:08:00
SRC=200.200.200.1
DST=200.210.10.10
Guia Foca GNU/Linux

251

LEN=61 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1031 DPT=53 LEN=41


Agora voc sabe o que aconteceu com o pacote (Rejeitado). A padronizao de mensagens de firewall tambm
importante para a criao de scripts de anlise que podero fazer a anlise dos logs do seu firewall (para criao
de estatsticas que podem servir como base para a criao de novas regras de firewall ou eliminao de outras).
OBS: Se voc sente falta da funo "-l" do ipchains que combina o alvo e log na mesma regra voc pode criar
um alvo como o seguinte:
iptables -N log-drop
iptables -A log-drop -j LOG
iptables -A log-drop -j DROP
E usar "log-drop" como alvo em suas regras. Mesmo assim esta soluo "limitada" em relao a "-l" do
ipchains porque o iptables no inclui detalhes de qual chain bloqueou o pacote/qual pacote foi bloqueado, assim
necessrio a especificao da opo --log-prefix para as mensagens se tornarem mais compreensveis.
Infelizmente o iptables no aceita variveis, seno esta limitao seria facilmente contornada.

31.3.6.3 Especificando RETURN como alvo


O alvo RETURN diz ao iptables interromper o processamento no chain atual e retornar o processamento ao
chain anterior. Ele til quando criamos um chain que faz um determinado tratamento de pacotes, por exemplo
bloquear conexes vindas da internet para portas baixas, exceto para um endereo IP especfico. Como segue:
1-) iptables -t filter -A INPUT -i ppp0 -j internet
2-) iptables -t filter -j ACCEPT
3-) iptables -t filter -N internet
4-) iptables -t filter -A internet -s www.debian.org -p tcp --dport 80 -j RETURN
5-) iptables -t filter -A internet -p tcp --dport 21 -j DROP
6-) iptables -t filter -A internet -p tcp --dport 23 -j DROP
7-) iptables -t filter -A internet -p tcp --dport 25 -j DROP
8-) iptables -t filter -A internet -p tcp --dport 80 -j DROP
Quando um pacote com o endereo www.debian.org tentando acessar a porta www (80) de nossa mquina
atravs da internet (via interface ppp0), o chain nmero 1 confere, ento o processamento continua no chain
nmero 4, o chain nmero 4 confere ento o processamento volta para a regra nmero 2, que diz para aceitar o
pacote. Agora se um pacote vem com o endereo www.dominio.com.br tentando acessar a porta www *80) de
nossa mquina atravs da internet (via interface ppp0), o chain nmero 1 confere, ento o processamento
continua no chain nmero 4, que no confere. O mesmo acontece com os chains 5, 6 e 7. O chain nmero 8
confere, ento o acesso bloqueado.
Como pode ter notado, o alvo RETURN pode facilitar bastante a construo das regras do seu firewall, caso
existam mquinas/redes que sejam excesses as suas regras. Se ela no existisse, seria necessrio especificar
diversas opes -s, -d, etc para poder garantir o acesso livre a determinadas mquinas.

31.4 A tabela nat (Network Adress Translation) - fazendo nat


A tabela nat serve para controlar a traduo dos endereos que atravessam o cdigo de roteamento da mquina
Linux. Existem 3 chains na tabela nat: PREROUTING, OUTPUT e POSTROUTING (veja O que so tabelas?,
Seo 31.1.14 para maiores detalhes).
A traduo de endereos tem inmeras utilidades, uma delas o Masquerading, onde mquinas de uma rede
interna podem acessar a Internet atravs de uma mquina Linux, redirecionamento de porta, proxy transparente,
etc. Esta seo abordar os tipos de NAT, exemplos de como criar rapidamente uma conexo IP masquerading e
entender como a traduo de endereos funciona no iptables.
Se sua inteno ligar sua rede a Internet existem duas opes:

Voc possui uma conexo que lhe oferece um endereo IP dinmico (a cada conexo dado um
endereo IP - como uma conexo PPP) ento o IP masquerading o que precisa (veja Fazendo IP
masquerading (para os apressados), Seo 31.4.2 ou Fazendo IP Masquerading, Seo 31.4.3.1).

Voc tem uma conexo que lhe oferece um endereo IP permanente (ADSL, por exemplo) ento o
SNAT o que precisa (veja Fazendo SNAT, Seo 31.4.3).

31.4.1 Criando um novo chain na tabela NAT


O procedimento para criao de um novo chain nesta tabela o mesmo descrito em Criando um novo chain - N,
Seo 31.2.6 ser necessrio somente especificar a tabela nat (-t nat) para que o novo chain no seja criado na
tabela padro (-t filter).
iptables -t nat -N intra-inter
Que criar o chain chamado intra-inter na tabela nat. Para inserir regras neste chain ser necessrio especificar a
Guia Foca GNU/Linux

252

opo "-t nat".

31.4.2 Fazendo IP masquerading (para os apressados)


Voc precisar de um Kernel com suporte ao iptables (veja Habilitando o suporte ao iptables no Kernel, Seo
31.1.15 e ip_forwarding e ento digitar os dois comandos abaixo para habilitar o masquerading para todas as
mquinas da rede 192.168.1.*:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
echo "1" >/proc/sys/net/ipv4/ip_forwarding
A configurao do servidor Linux est completa, agora os clientes da rede precisaro ser configurados para usar
o endereo IP do servidor Linux como gateway. recomendvel instalar um servidor proxy e DNS na mquina
Linux para acelerar o desempenho das requisies/resoluo de nomes das mquinas em rede. A utilizao de
bits TOS tambm pode trazer um grande aumento de velocidade para os diferentes servios da rede (veja
Especificando o tipo de servio, Seo 9.5.1).

31.4.3 Fazendo SNAT


SNAT (source nat - nat no endereo de origem) consiste em modificar o endereo de origem das mquinas
clientes antes dos pacotes serem enviados. A mquina roteadora inteligente o bastante para lembrar dos
pacotes modificados e reescrever os endereos assim que obter a resposta da mquina de destino, direcionando
os pacotes ao destino correto. Toda operao de SNAT feita no chain POSTROUTING.
permitido especificar endereos de origem/destino, protocolos, portas de origem/destino, interface de
entrada/sada (dependendo do chain), alvos, etc. desnecessrio especificar fragmentos na tabela nat, pois eles
sero remontados antes de entrar no cdigo de roteamento.
O SNAT a soluo quando voc tem acesso a internet atravs de um nico IP e deseja fazer que sua rede tenha
acesso a Internet atravs da mquina Linux. Nenhuma mquina da Internet poder ter acesso direto as mquinas
de sua rede interna via SNAT.
OBS: A observao acima no leva em conta o controle de acesso externo configurado na mquina que estiver
configurando o iptables, uma configurao mau realizada pode expor sua mquina a acessos externos
indesejados e comprometer sua rede interna caso algum consiga acesso direto ao servidor.
necessrio especificar SNAT como alvo (-j SNAT) quando desejar que as mquinas de sua rede interna tenha
acesso a Internet atravs do IP fixo da mquina Linux (para conexes intermitentes como PPP, veja Fazendo IP
Masquerading, Seo 31.4.3.1). O parmetro --to IP:portas deve ser usado aps o alvo SNAT. Ele serve para
especificar um endereo IP, faixa de endereos e opcionalmente uma porta ou faixa de portas que ser
substituda. Toda a operao de SNAT realizada atravs do chain POSTROUTING:
# Modifica o endereo IP dos pacotes vindos da mquina 192.168.1.2 da rede interna
# que tem como destino a interface eth1 para 200.200.217.40 (que o nosso endereo
# IP da interface ligada a Internet).
iptables -t nat -A POSTROUTING -s 192.168.1.2 -o eth1 -j SNAT --to 200.200.217.40
Os pacotes indo para a Internet (nossa conexo feita via eth1, nossa interface externa) vindo do endereo
192.168.1.2, so substitudos por 200.241.200.40 e enviados para fora. Quando a resposta a requisio
retornada, a mquina com iptables recebe os pacotes e faz a operao inversa, modificando o endereo
200.241.200.40 novamente para 192.168.1.2 e enviando a resposta a mquina de nossa rede interna. Aps
definir suas regras de NAT, execute o comando echo "1" >/proc/sys/net/ipv4/ip_forward para habilitar o suporte
a redirecionamento de pacotes no Kernel.
Tambm possvel especificar faixas de endereos e portas que sero substitudas:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 200.200.217.40-200.200.217.50
Modifica o endereo IP de origem de todas as mquinas da rede 192.168.1.0/24 que tem o destino a interface
eth0 para 200.241.200.40 a 200.241.200.50. O endereo IP selecionado escolhido de acordo com o ltimo IP
alocado. # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \ -j SNAT --to 1.2.3.0-1.2.3.4 --to
1.2.3.6-1.2.3.254
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 200.200.217.40-200.200.217.50:11023
Idntico ao anterior, mas faz somente substituies na faixa de portas de origem de 1 a 1023.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 200.200.217.40-200.200.217.50 --to
200.200.217.70-200.200.217.73
Faz o mapeamento para a faixa de portas 200.200.217.40 a 200.200.217.50 e de 200.200.217.70 a
200.200.217.73.
OBS1: Se por algum motivo no for possvel mapear uma conexo NAT, ela ser derrubada. OBS2: Tenha
certeza que as respostas podem chegar at a mquina que fez o NAT. Se estiver fazendo SNAT em um endereo
livre em sua rede (como 200.200.217.73).
Guia Foca GNU/Linux

253

OBS2: Como notou acima, o SNAT usado quando temos uma conexo externa com um ou mais IP's fixos. O
Masquerading uma forma especial de SNAT usada para funcionar em conexes que recebem endereos IP
aleatrios (PPP).
OBS3: No se esquea de habilitar o redirecionamento de pacotes aps fazer suas regra de NAT com o
comando: echo "1" >/proc/sys/net/ipv4/ip_forward, caso contrrio o redirecionamento de pacotes no
funcionar.

31.4.3.1 Fazendo IP Masquerading


O IP Masquerading um tipo especial de SNAT usado para conectar a sua rede interna a internet quando voc
recebe um IP dinmico de seu provedor (como em conexes ppp). Todas as operaes de IP Masquerading so
realizadas no chain POSTROUTING. Se voc tem um IP fixo, deve ler Fazendo SNAT, Seo 31.4.3.
Para fazer IP Masquerading de uma mquina com o IP 192.168.1.2 para ter acesso a Internet, use o comando:
iptables -t nat -A POSTROUTING -s 192.168.1.2/32 -o ppp0 -j MASQUERADE
A diferena que o alvo -j MASQUERADE. O comando acima faz IP Masquerading de todo o trfego de
192.168.1.2 indo para a interface ppp0: O endereo IP dos pacotes vindos de 192.168.1.2 so substitudos pelo
IP oferecido pelo seu provedor de acesso no momento da conexo, quando a resposta retornada a operao
inversa realizada para garantir que a resposta chegue ao destino. Nenhuma mquina da internet poder ter
acesso direto a sua mquina conectava via Masquerading.
Para fazer o IP Masquerading de todas as mquinas da rede 192.168.1.*:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
Aps definir a regra para fazer Masquerading (SNAT), execute o comando echo "1"
>/proc/sys/net/ipv4/ip_forward para habilitar o suporte a redirecionamento de pacotes no Kernel.

31.4.4 Fazendo DNAT


DNAT (Destination nat - nat no endereo de destino) consiste em modificar o endereo de destino das mquinas
clientes. O destination nat muito usado para fazer redirecionamento de pacotes, proxyes transparentes e
balanceamento de carga.
Toda operao de DNAT feita no chain PREROUTING. As demais opes e observaes do SNAT so
tambm vlidas para DNAT (com excesso que somente permitido especificar a interface de origem no chain
PREROUTING).
# Modifica o endereo IP destino dos pacotes de 192.168.1.2 vindo da interface eth0
# para 200.200.217.40.
iptables -t nat -A PREROUTING -s 192.168.1.2 -i eth0 -j DNAT --to 200.200.217.40
Tambm possvel especificar faixas de endereos e portas que sero substitudas no DNAT:
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 200.200.217.40-200.200.217.50
Modifica o endereo IP de destino do trfego vindos da interface 192.168.1.0/24 para um IP de 200.241.200.40
a 200.241.200.50. Este um excelente mtodo para fazer o balanceamento de carga entre servidores. O
endereo IP selecionado escolhido de acordo com o ltimo IP alocado.
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 200.200.217.40-200.200.217.50:1024:5000
Idntico ao anterior, mas faz somente substituies na faixa de portas de destino de 1024 a 5000. A operao
acima a mesma realizada pelo ipmasqadm dos Kernels da srie 2.2.
OBS: Se por algum motivo no for possvel mapear uma conexo NAT, ela ser derrubada.

31.4.4.1 Redirecionamento de portas


O redirecionamento de portas permite a voc repassar conexes com destino a uma porta para outra porta na
mesma mquina. O alvo REDIRECT usado para fazer esta operao, junto com o argumento --to-port
especificando a porta que ser redirecionada. Este o mtodo DNAT especfico para se para fazer proxy
transparente (para redirecionamento de endereos/portas, veja Fazendo DNAT, Seo 31.4.4). Todas as
operaes de redirecionamento de portas realizada no chain PREROUTING.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 81
Redireciona as conexes indo para a porta 80 para a porta 81 (rodando squid) no firewall.
ATENO: O squid possui suporte a proxy transparente, e poder atender as requisies acima da regra acima.

31.4.5 Monitorando conexes feitas na tabela nat


Use o comando cat /proc/net/ip_conntrack para listar todas as conexes atuais tratadas pelo mdulo nat.

31.5 A tabela mangle


A tabela mangle serve para especificar aes especiais para o tratamento do trfego que atravessa os chains.
Guia Foca GNU/Linux

254

Nesta tabela existem dois chains: PREROUTING e OUTPUT (veja O que so tabelas?, Seo 31.1.14 para
maiores detalhes).
Opes com o Tipo de Servio (TOS) especificada nesta tabela para classificar e aumentar consideravelmente a
velocidade de trfego considerados em tempo real.

31.5.1 Especificando o tipo de servio


O tipo de servio um campo existente no cabealho de pacotes do protocolo ipv4 que tem a funo especificar
qual a prioridade daquele pacote. Uma das vantagens da utilizao do tipo de servio dar prioridade ao
trfego de pacotes interativos (como os do ICQ, IRC, servidores de chat), etc. Com o TOS especificado, mesmo
que esteja fazendo um download consumindo toda a banda de sua interface de rede, o trfego com prioridade
interativa ser enviado antes, aumentando a eficincia dos servios em sua mquina.
Em testes realizados em minha conexo de 56K, o uso de regras TOS aumentou bastante o desempenho em
trfego interativo (em torno de 300%), durante o uso total da banda da interface ppp em um grande download.
Usamos o alvo TOS (-j TOS) para especificar a modificao do tipo de servio nos pacotes que atravessam as
regras do firewall, acompanhada do argumento --set-tos TOS que define a nova prioridade dos pacotes. Os
valores aceitos so os seguintes:

Espera Mnima - especificado atravs de Minimize-Delay, 16 ou 0x10

Mximo Processamento - especificado atravs de Maximize-Throughput, 8, ou 0x08.

Mxima Confiana - especificado atravs de Maximize-Reliability, 4 ou 0x04.

Custo mnimo - Especificado atravs de Minimize-Cost, 2 ou 0x02.

Prioridade Normal - Especificado atravs de Normal-Service, 0 ou 0x00.


Os pacotes vem por padro com o valor TOS ajustado como prioridade normal (bits tos ajustados para 0x00). O
tipo Mnima Espera o mais usado, pois prioriza o trfego em servios interativos.

31.5.1.1 Especificando o TOS para trfego de sada


Este o mais usado, pois prioriza o trfego que sai da mquina (com destino a Internet, por exemplo). Sua
operao realizada atravs do chain OUTPUT.
Para priorizar todo o trfego de IRC de nossa rede interna indo para a interface ppp0:
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport 6666-6668 -j TOS --set-tos 16
O bit TOS ajustado para Espera mnima e ser enviado antes dos pacotes com prioridade normal para fora.
Para priorizar a transmisso de dados ftp saindo da rede:
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport 20 -j TOS --set-tos 8
Para priorizar o trfego de ICQ da rede:
iptables -t mangle -A OUTPUT -o ppp0 -p udp --dport 4000 -j TOS --set-tos 16
Existem muitas outras otimizaes que podem ser feitas, s depende dos requerimentos e anlise de cada
servio da rede pelo administrador.
OBS: - Os pacotes que atravessam o alvo TOS somente tem os bits tipo do servio modificados, eles no sero
de qualquer forma rejeitados.

31.5.1.2 Especificando o TOS para o trfego de entrada


Este prioriza o trfego que entra da mquina. Sua operao realizada no chain PREROUTING. No faz muito
sentido o uso deste chain dentro de uma rede pequena/mdia, pois o trfego que recebermos ser priorizado pelo
sada de outras mquinas da internet/outras redes antes de chegar a nossa.
Para priorizar o processamento do trfego interativo vindo de servidores IRC para nossa rede:
iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 6666-6668 -j TOS --set-tos 0x10
Modifica o tipo de servio para mnima espera de todo o trfego enviado por servidores de IRC vindo da
interface eth0.
OBS: - Os pacotes que atravessam o alvo TOS somente tem os bits tipo do servio modificados, eles no sero
de qualquer forma rejeitados. \

31.6 Outros mdulos do iptables


Os mdulos do iptables so especificados com a opo -m mdulo ou --match mdulo e permitem expandir a
funcionalidade do firewall atravs de novas conferncias e recursos de filtragem adicionais, como limitar a
conferncia de regras do firewall (um mtodo til de limitar ping floods, syn floods, etc).

31.6.1 Conferindo de acordo com o estado da conexo


Este mdulo permite especificar regras de acordo com o estado da conexo do pacote, isto feito atravs da
Guia Foca GNU/Linux

255

interpretao da sada do mdulo ip_conntrack. O parmetro --state OPES deve acompanhar este mdulo.
As opes permitidas so as seguintes:

NEW - Confere com pacotes que criam novas conexes

ESTABLISHED - Confere com conexes j estabelecidas

RELATED - Confere com pacotes relacionados indiretamente a uma conexo, como mensagens de erro
icmp, etc.

INVALID - Confere com pacotes que no puderam ser identificados por algum motivo. Como respostas
de conexes desconhecidas.
Caso seja necessrio especificar mais de uma opes estas devem ser separadas por vrgulas.
iptables -A INPUT -m state --state NEW -i ppp0 -j DROP
Bloqueia qualquer tentativa de nova conexo vindo da interface ppp0.
iptables -A INPUT -m state --state NEW,INVALID -i ppp0 -j LOG
Permite registrar novas conexes e pacotes invlidos vindos da interface ppp0.

31.6.2 Limitando o nmero de vezes que a regra confere


A opo -m limit permite especificar o nmero de vezes que uma regra conferir quando todas as outras
condies forem satisfeitas. O nmero padro de conferncia de 3 por hora, a no ser que seja modificado
atravs dos argumentos aceitos pelo limit:

--limit num/tempo - Permite especificar a taxa de conferncias do limit. O parmetro num especifica um
nmero e tempo pode ser:
s - Segundo
m - Minuto
h - Hora
d - Dia
Assim uma regra como iptables -A INPUT -m limit --limit 5/m -j ACCEPT permitir que a regra acima
confira apenas 5 vezes por minuto (--limit 2/s). Este limite pode ser facilmente adaptado para uma regra de
log que confere constantemente no causar uma avalanche em seus logs. O valor padro 3/h.

--limit-burst num - Especifica o nmero inicial mximo de pacotes que iro conferir, este nmero
aumentado por 1 a cada vez que o parmetro --limit acima no for atingido. O valor padro 5.

31.6.3 Proteo contra ping da morte


A regra abaixo pode tomada como base para proteo contra ping flood:
iptables -t filter -A ping-chain -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -t filter -A ping-chain -j DROP
A regra acima limita em 1 vez por segundo (--limit 1/s) a passagem de pings (echo requests) para a mquina
Linux.
iptables -t filter -A ping-chain -i ppp0 -p icmp --icmp-type echo-reply -m limit --limit 1/s -j RETURN
iptables -t filter -A ping-chain -j DROP
Limita respostas a pings (echo reply) vindos da interface ppp0 (-i ppp0) a 1 por segundo.
ATENO: Os exemplos acima devem so somente exemplos para criao de suas prprias regras com
limitaes, caso um pacote no confira com a regra ele ser bloqueado pela prxima regra. Se uma regra como
for colocada no chain INPUT sem modificaes obviamente colocar em risco a segurana de seu sistema.

31.6.4 Proteo contra syn flood


A regra abaixo uma boa proteo para os ataques syn floods:
iptables -t filter -A syn-chain -p tcp --syn -m limit --limit 2/s -j ACCEPT
iptables -t filter -A syn-chain -j DROP
Esta regra limita o atendimento de requisies de conexes a 2 por segundo.
ATENO: Os exemplos acima devem so somente exemplos para criao de suas prprias regras com
limitaes, caso um pacote no confira com a regra ele ser bloqueado pela prxima regra. Se uma regra como
for colocada no chain INPUT sem modificaes obviamente colocar em risco a segurana de seu sistema.

31.6.5 Proteo contra IP spoofing


A especificao de endereos de origem/destino junto com a interface de rede pode ser usado como um detector
de ataques spoofing. A lgica que todos os endereos que NUNCA devem vir da interface X devem ser
negados imediatamente. As regras abaixo so colocadas no incio do chain INPUT para detectar tais ataques:
iptables -A INPUT -s 192.168.1.0/24 -i ! eth0 -j DROP
Guia Foca GNU/Linux

256

iptables -A INPUT ! -s 192.168.1.0/24 -i eth0 -j DROP


A primeira regra diz para bloquear todos os endereos da faixa de rede 192.168.1.* que NO vem da interface
eth0, a segunda regra diz para bloquear todos os endereos que no sejam 192.168.1.* vindos da interface eth0.
O smbolo "!" serve para especificar excesses (veja Especificando uma excesso, Seo 31.3.5. O Kernel do
Linux automaticamente bloqueia a passagem de pacotes que dizem ser de 127.0.0.1 e no est vindo da
interface loopback.
O mtodo preferido para controlar o ip spoofing atravs do cdigo de roteamento do Kernel (a no ser que
esteja usando algum tipo de roteamento assimtrico):
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 >$i
done
Desta forma qualquer endereo dizendo ser 192.168.1.5 vindo de ppp0 ser imediatamente rejeitado. Uma
checagem adicional contra IP spoofing pode ser feita no arquivo /etc/host.conf (veja /etc/host.conf, Seo
15.6.2.2).

31.6.6 Especificando mltiplas portas de origem/destino


O mdulo multiport permite que seja especificado mltiplas portas para um alvo. Podem ser especificadas at
15 portas em um nico parmetro e basta que uma porta confira para que a regra entre em ao, pois a
comparao feita usando condies "or". O parmetro multiport deve ser acompanhado de um dos argumentos
abaixo:

--source-port [porta1, porta2...] - Faz a regra conferir se a porta de origem estiver presente entre as
portas especificadas.

--destination-port [porta1, porta2...] - Faz a regra conferir se a porta de destino estiver presente entre as
portas especificadas.

--port [porta1, porta2...] - Faz a regra conferir caso a porta de origem ou destino esteja presente no
parmetro.
Este mdulo pode eliminar muitas regras de firewall que fazem o mesmo tratamento de pacotes para diversas
portas diferentes.
iptables -A INPUT -p tcp -i ppp0 -m multiport --destination-port 21,23,25,80,110,113,6667 -j DROP
Bloqueia todos os pacotes vindo de ppp0 para as portas 21 (ftp), 23 (telnet), 25 (smtp), 80 (www), 110 (pop3),
113 (ident), 6667 (irc).

31.6.7 Especificando o endereo MAC da interface


O mdulo mac serve para conferir com o endereo Ethernet dos pacotes de origem. Somente faz sentido se
usado nos chains de PREROUTING (da tabela nat) ou INPUT (da tabela filter). Aceita como argumento a opo
--mac-source endereo. O smbolo "!" pode ser usado para especificar uma excesso.
iptables -t filter -A INPUT -m mac --mac-source 00:80:AD:B2:60:0B -j DROP
Confere com a mquina com endereo ethernet igual a 00:80:AD:B2:60:0B.

31.6.8 Conferindo com quem criou o pacote


Este mdulo confere com o usurio que inciou a conexo. somente vlido no chain OUTPUT da tabela filter.
Os seguintes argumentos so vlidas para este mdulo:

--uid-owner UID - Confere se o pacote foi criado por um processo com o UID especificado. At o
momento somente UID numricos so aceitos.

--gid-owner GID - Confere se o pacote foi criado por um usurio pertencente ao grupo GID. At o
momento somente GID numricos so aceitos.

--pid-owner PID - Confere se o pacote foi criado por um processo com o PID especificado.

--sid-owner ID - Confere se o pacote foi criado por um processo no grupo de seo especificado.
OBS: - Lembre-se que pacotes que no possuem detalhes suficientes de cabealho nunca conferiro!
iptables -A OUTPUT -m owner --gid-owner 100 -p udp -j DROP
Rejeita um conexes indo para portas UDP de pacotes criados pelo usurios pertencentes ao grupo 100.

31.7 Caminho percorrido pelos pacotes nas tabelas e chains


MUITO importante entender a funo de cada filtro e a ordem de acesso dos chains de acordo com o tipo de
conexo e interface de origem/destino. Esta seo explica a ordem que as regra so atravessadas, isso lhe
permitir planejar a distribuio das regras nos chains, e evitar erros de localizao de regras que poderia deixar
seu firewall com srios problemas de segurana, ou um sistema de firewall totalmente confuso e sem lgica.
Guia Foca GNU/Linux

257

Nos exemplos abaixo assumirei a seguinte configurao:

A mquina do firewall com iptables possui o endereo IP 192.168.1.1 e conecta a rede interna ligada via
interface eth0 a internet via a interface ppp0.

Rede interna com a faixa de endereos 192.168.1.0 conectada ao firewall via interface eth0

Interface ppp0 fazendo conexo com a Internet com o endereo IP 200.217.29.67.

A conexo das mquinas da rede interna (eth0) com a rede externa (ppp0) feita via Masquerading.
Tambm utilizarei a sintaxe CHAIN-tabela para fazer referncia aos chains e tabelas dos blocos ASCII: INPUTfilter - chain INPUT da tabela filter.
ATENO: A ordem de processamento das regras do iptables, diferente do ipchains devido a incluso do
novo sistema de nat e da tabela mangle.

31.7.1 Ping de 192.168.1.1 para 192.168.1.1

Endereo de Origem: 192.168.1.1


Interface de Entrada: lo
Protocolo: ICMP
Descrio: Ping para o prprio firewall

Endereo de Destino: 192.168.1.1


Interface de Sada: lo

SADA DE PACOTES (envio do ping para 192.168.1.1):


---------------------------------------------------------------------------------------| OUTPUT-mangle | => | OUTPUT-nat | => | OUTPUT-filter | => | POSTROUTING-nat |
------------------------ --------------------------------------- ---------------------------ENTRADA DOS PACOTES (Retorno da resposta ping acima):
------------------------------- -----------------| PREROUTING-mangle | => | INPUT-filter |
------------------------------- -----------------Quando damos o ping (echo request) os pacotes seguem o caminho em SADA DE PACOTES percorrendo os
chains na ordem especificada e retornam via ENTRADA DOS PACOTES (echo reply).
OBS1: Para conexes com destinos na prpria mquina usando um endereo IP das interfaces locais, a interface
ser ajustada sempre para lo (loopback).
OBS2: Em qualquer operao de entrada/sada de pacotes, os dois chains da tabela mangle so sempre os
primeiros a serem acessados. Isto necessrio para definir a prioridade e controlar outros aspectos especiais dos
pacotes que atravessam os filtros.
OBS3: O chain OUTPUT da tabela filter consultado sempre quando existem conexes se originando em
endereos de interfaces locais.

31.7.2 Conexo FTP de 192.168.1.1 para 192.168.1.1

Endereo de Origem: 192.168.1.1


Endereo de Destino: 192.168.1.1
Interface de Origem: lo
Interface de Destino: lo
Porta Origem: 1404
Porta Destino: 21
Protocolo: TCP
Descrio: Conexo ftp (at o prompt de login, sem transferncia de arquivos).

Guia Foca GNU/Linux

258

SADA DOS PACOTES (envio da requisio para 192.168.1.1):


------------------------ ----------------------------------------------------------------| OUTPUT-mangle | => | OUTPUT-nat | => | OUTPUT-filter | => | POSTROUTING-nat |
------------------------ --------------------------------------- ---------------------------ENTRADA DE PACOTES (respostas da requisio vindas de 192.168.1.1):
------------------------------- -----------------| PREROUTING-mangle | => | INPUT-filter |
------------------------------- -----------------A requisio ftp passa atravs dos chains especificados em SADA DOS PACOTES e retorna por ENTRADA DE
PACOTES. Aps a conexo ser estabelecida, o caminho de SADA DE PACOTES ser:
------------------------ --------------------| OUTPUT-mangle | => | OUTPUT-filter |
------------------------ --------------------pois os dados de entrada que vem da interface externa, so passados diretamente a mquina do firewall, no
necessitando de tratamento SNAT (os chains OUTPUT-nat e POSTROUTING-nat so processado somente uma
vez a procura de regras que conferem, principalmente para fazer SNAT).
OBS1: Para conexes com destinos na prpria mquina usando um endereo IP das interfaces locais, a interface
ser ajustada sempre para lo (loopback).
OBS2: Em qualquer operao de entrada/sada de pacotes, os dois chains da tabela mangle so sempre os
primeiros a serem acessados. Isto necessrio para definir a prioridade e controlar outros aspectos especiais dos
pacotes que atravessam os filtros.

31.7.3 Conexo FTP de 192.168.1.1 para 192.168.1.4

Endereo de Origem: 192.168.1.1


Endereo de Destino: 192.168.1.4
Interface de Origem: eth0
Interface de Destino: eth0
Porta Origem: 1405
Porta Destino: 21
Protocolo: TCP
Descrio: Conexo ftp (at o prompt de login, sem transferncia de arquivos).

SADA DOS PACOTES (envio da requisio para 192.168.1.4):


------------------------------------------ --------------------- ----------------------------| OUTPUT-mangle | => | OUTPUT-nat | => | OUTPUT-filter | => | POSTROUTING-nat |
------------------------ -------------------- --------------------- ----------------------------ENTRADA DE PACOTES (respostas da requisio de 192.168.1.4):
------------------------------------------------| PREROUTING-mangle | => | INPUT-filter |
------------------------------- ------------------A requisio ftp passa atravs dos chains especificados em SADA DOS PACOTES com o destino 192.168.1.4
porta 21 e retorna por ENTRADA DE PACOTES para 192.168.1.1 porta 1405. Aps a conexo ser estabelecida,
o caminho de SADA DE PACOTES ser:
-------------------------------------------| OUTPUT-mangle | => | OUTPUT-filter |
------------------------ ---------------------pois os dados no precisam de tratamento SNAT (os chains OUTPUT-nat e POSTROUTING-nat so processado
somente uma vez a procura de regras que conferem, principalmente para fazer SNAT).
OBS: Em qualquer operao de entrada/sada de pacotes, os dois chains da tabela mangle so sempre os
primeiros a serem acessados. Isto necessrio para definir a prioridade e controlar outros aspectos especiais dos
pacotes que atravessam os filtros.

31.7.4 Conexo FTP de 200.217.29.67 para a mquina ftp.debian.org.br

Endereo de Origem: 200.217.29.67


Endereo de Destino: 200.198.129.162
Interface de Origem: ppp0
Interface de Destino: ppp0
Porta Origem: 1407
Porta Destino: 21
Protocolo: TCP
Descrio: Conexo ftp (at o prompt de login, sem transferncia de arquivos).

Guia Foca GNU/Linux

259

SADA DOS PACOTES (envio da requisio para 200.198.129.162):


------------------------------------------ ------------------------------------------------| OUTPUT-mangle | => | OUTPUT-nat | => | OUTPUT-filter | => | POSTROUTING-nat |
------------------------------------------ ---------------------- ----------------------------ENTRADA DE PACOTES (respostas da requisio vindas de 200.198.129.162):
-------------------------------------------------------- ------------------| PREROUTING-mangle | => | PREROUTING-nat | => | INPUT-filter |
-------------------------------------------------------------------------A requisio ftp passa atravs dos chains especificados em SADA DOS PACOTES com o destino
200.198.129.162 porta 21 (aps a resoluo DNS de www.debian.org.br) e retorna por ENTRADA DE
PACOTES para 200.217.29.67 porta 1407. Aps a conexo ser estabelecida, o caminho de sada de pacotes :
------------------------ ---------------------| OUTPUT-mangle | => | OUTPUT-filter |
------------------------ ---------------------pois os dados no precisam de tratamento SNAT (os chains OUTPUT-nat e POSTROUTING-nat so processado
somente uma vez a procura de regras que conferem, principalmente para fazer SNAT).
E aps a conexo estabelecida, o caminho de entrada de pacotes passa a ser:
------------------------------- ------------------| PREROUTING-mangle | => | INPUT-filter |
------------------------------- ------------------pois os dados no precisam de tratamento DNAT (o chain PREROUTING-nat processado somente uma vez a
procura de regras que conferem, principalmente para fazer DNAT).
OBS: Para qualquer operao de entrada/sada de pacotes, os dois chains da tabela mangle so sempre os
primeiros a serem acessados. Isto necessrio para definir a prioridade e controlar outros aspectos especiais dos
pacotes que atravessam os filtros.

31.7.5 Ping de 192.168.1.4 para 192.168.1.1

Endereo de Origem: 192.168.1.4


Endereo de Destino: 192.168.1.1
Interface de Entrada: eth0
Interface de Sada: eth0
Protocolo: ICMP
Descrio: Ping de 192.168.1.4 para a mquina do firewall.

ENTRADA DE PACOTES (recebimento da requisio, vinda de 192.168.1.4):


-------------------------------------------------------- ------------------| PREROUTING-mangle | => | PREROUTING-nat | => | INPUT-filter |
------------------------------- --------------------------- ------------------SADA DE PACOTES (envio da resposta a 192.168.1.4)
-------------------------------------------| OUTPUT-mangle | => | OUTPUT-filter |
-------------------------------------------Quando damos o ping (echo request) os pacotes seguem o caminho em ENTRADA DE PACOTES percorrendo
os chains na ordem especificada e retornam via SADA DOS PACOTES (echo reply).
OBS1: Para qualquer operao de entrada/sada de pacotes, os dois chains da tabela mangle so sempre os
primeiros a serem acessados. Isto necessrio para definir a prioridade e controlar outros aspectos especiais dos
pacotes que atravessam os filtros.

31.7.6 Conexo FTP de 192.168.1.4 para 192.168.1.1

Endereo de Origem: 192.168.1.4


Endereo de Destino: 192.168.1.1
Interface de Origem: eth0
Interface de Destino: eth0
Porta Origem: 1030
Porta Destino: 21
Protocolo: TCP
Descrio: Conexo ftp (at o prompt de login, sem transferncia de dados).

Guia Foca GNU/Linux

260

ENTRADA DOS PACOTES (envio da requisio vindas de 192.168.1.4):


------------------------------------------------------------------------| PREROUTING-mangle | => | PREROUTING-nat | => | INPUT-filter |
-------------------------------------------------------------------------SADA DE PACOTES (respostas da requisio acima para 192.168.1.4):
-------------------------------------------| OUTPUT-mangle | => | OUTPUT-filter |
-------------------------------------------A requisio ftp passa atravs dos chains especificados em ENTRADA DOS PACOTES com o destino
192.168.1.1 porta 21 e retorna por SADA DE PACOTES para 192.168.1.4 porta 1030. Aps a conexo ser
estabelecida, o caminho de entrada de pacotes :
-----------------------------------------------| PREROUTING-mangle | => | INPUT-filter |
-----------------------------------------------pois os dados no precisam de tratamento DNAT (o chain PREROUTING-nat processado somente uma vez a
procura de regras que conferem, principalmente para fazer DNAT).
OBS: O roteamento sempre realizado aps o processamento do chain PREROUTING da tabela nat.

31.7.7 Conexo FTP de 192.168.1.4 para ftp.debian.org.br

Endereo de Origem: 192.168.1.4


Endereo de Destino: 200.198.129.162
Interface de Origem: eth0
Interface de Destino: ppp0
Porta Origem: 1032
Porta Destino: 21
Protocolo: TCP
Descrio: Conexo ftp (at o prompt de login, sem transferncia de dados).

SADA DOS PACOTES (requisio vindas de 192.168.1.4):


---------------------------------------------------------------------------------------------------------| PREROUTING-mangle | => | PREROUTING-nat | => | FORWARD-filter | => | POSTROUTING-nat |
-------------------------------------------------------------------------------- ----------------------------ENTRADA DE PACOTES (respostas da requisio acima, enviadas para 192.168.1.4):
-----------------------------------------------------| PREROUTING-mangle | => | FORWARD-filter |
-----------------------------------------------------A requisio ftp passa atravs dos chains especificados em SADA DOS PACOTES com o destino
200.198.129.162 porta 21 (aps a resoluo DNS de ftp.debian.org.br) e retorna por ENTRADA DE PACOTES
para 192.168.1.4 porta 1032.
Note que o Masquerading regrava os pacotes; para a mquina 200.198.129.162 a conexo est sendo feita para
200.217.29.67. As respostas de conexes vindas de 200.198.129.162 e indo para 200.217.29.67 so regravadas
no firewall com o destino 192.168.1.4 e enviadas para a mquina correspondente. Aps a conexo ser
estabelecida, o caminho de sada de pacotes :
-----------------------------------------------------| PREROUTING-mangle | => | FORWARD-filter |
-----------------------------------------------------Isto acontece porque aps feita a conexo Masquerading (via PREROUTING-nat), o firewall j sabe como
reescrever os pacotes para realizar a operao de Masquerading, reescrevendo todos os pacotes que chegam de
www.debian.org.br para 192.168.1.4.
OBS: As conexes Masquerading feitas atravs da rede interna, so enviadas para 200.198.129.162 tem o
endereo de origem ajustado para 200.217.29.67 que o IP de nossa interface ppp0. Quando as respostas
atravessam o firewall, os pacotes so checados pra saber se so uma resposta a uma conexo masquerading e
far a regravao dos pacotes substituindo o endereo de destino para 192.168.1.4. Caso uma operao de
Masquerading falhe, os pacotes sero Bloqueados.

31.7.8 Conexo FTP de 200.198.129.162 para 200.217.29.167


Endereo de Origem: 200.198.129.162
Interface de Origem: ppp0
Porta Origem: 3716
Guia Foca GNU/Linux

Endereo de Destino: 200.217.29.67


Interface de Destino: ppp0
Porta Destino: 21

261

Protocolo: TCP
Descrio: Conexo ao servio ftp do firewall
ENTRADA DOS PACOTES (envio da requisio vindas de 200.198.129.162):
------------------------------------------------------------------------| PREROUTING-mangle | => | PREROUTING-nat | => | INPUT-filter |
------------------------------------------------------------------------SADA DE PACOTES (respostas da requisio de 200.198.129.162):
-------------------------------------------| OUTPUT-mangle | => | OUTPUT-filter |
-------------------------------------------A requisio ftp passa atravs dos chains especificados em ENTRADA DOS PACOTES com o destino
200.217.29.67 (nossa interface ppp0 local) porta 21 e retorna por SADA DE PACOTES para 200.198.129.162
porta 3716 (tambm via ppp0). Aps a conexo ser estabelecida, o caminho de entrada de pacotes :
-----------------------------------------------| PREROUTING-mangle | => | INPUT-filter |
-----------------------------------------------Isto acontece porque aps feita a anlise do chain PREROUTING (para necessidade de DNAT), a mquina j
saber tomar a deciso apropriada para gerenciar aquela conexo.

31.7.9 Grafico geral da passagem dos pacotes


Este grfico foi retirado do documento netfilter-hacking-HOWTO.txt e mostra a estrutura geral de passagem dos
pacotes nas tabelas/chains. Os exemplos de passagem de pacotes acima podero ser facilmente comparados com
as etapas abaixo para compreender a estrutura do iptables.
E ---> PREROUTING ------> (ROTEAM.) ---> FORWARD ----------> POSTROUTING --> S
Mangle e
Filter
NAT (Src)
NAT (DNAT))
(ROTEAM.)
|
IN Filter
OUT - Mangle,
NAT (DNAT)
Filter
-------------------------------------------|
Processo Local
|
--------------------------------------------

31.8 Exemplos de configuraes do iptables


Em construo. Exemplo de como bloquear todas as conexes para a mquina do firewall permitindo somente
conexes da mquina Linux para fora.

31.8.1 Bloqueando conexes de fora para sua mquina


As regras a seguir servem para bloquear tentativas de conexes da interface de Internet (ppp0) a sua rede sem
bloquear o trfego de conexes j iniciadas. O trfego de outras interfaces no afetado com as regras a seguir:
iptables -A INPUT -i ppp0 -m state --state ! ESTABLISHED,RELATED -j DROP
Todas as conexes vindas de ppp0 de estado diferente de ESTABLISHED e RELATED (NEW e INVALID)
sero derrubadas. Veja Conferindo de acordo com o estado da conexo, Seo 31.6.1 para detalhes.
iptables -A INPUT -i ppp0 --syn -j DROP
Este acima mais simples e possui o mesmo efeito: Pacotes SYN so usados para iniciar conexes, derrubando
pacotes deste tipo significa bloquear novas conexes. Pacotes de conexes j estabelecidas ainda so
permitidos.
Estas regras acima servem para quem no deseja NENHUM acesso indevido a sua mquina. Existem outras
formas de bloquear conexes de modo mais seletivo usando chains especficos, endereos de origem/destino,
portas, etc., este tipo de configurao muito usada caso precise fornecer algum tipo de servio que seja
acessvel externamente e protegendo outros.

Guia Foca GNU/Linux

262

31.8.2 Monitorando tentativa de conexo de trojans em sua mquina


As regras abaixo alertam sobre a tentativa de conexo dos trojans "For Win" mais conhecidos. Coloquei isto
aqui por curiosidade de algumas pessoas, pois mquinas Linux so imunes a este tipo de coisa:
#!/bin/sh
TROJAN_PORTS="12345 31336 31337 31338 3024 4092 5714 5742 2583 8787 5556 5557"
iptables -t filter -N trojans-in
for PORTA in ${TROJAN_PORTS};do
iptables -A trojans-in -p tcp --sport=1024: --dport=${PORTA} -j LOG \
--log-prefix "FIREWALL: Trojan ${PORTA} "
iptables -A trojans-in -p tcp --sport=1024: --dport=${PORTA} -j DROP
done
iptables -t filter -A INPUT -i ppp0 -j trojans-in
A primeira linha do iptables cria o chain trojans-in dentro da tabela filter que usaremos para armazenar nossas
regras de firewall. A segunda (dentro do lao for) faz uma regra de LOG para registrar as tentativas de acesso de
trojans em nosso sistema, a terceira rejeita o acesso. A quarta regra do iptables cria de todo o trfego vindo da
interface ppp0 pra o chain trojans-in (queremos que s o trfego vindo da internet seja analisado pelo chain
trojans-in).
Muitas das portas especificadas na varivel TROJAN_PORTS so antigas conhecidas de quem j brincou ou
sofreram com o Back Orifice, Win Crack, NetBus (quem nunca passou pela fase de ter uma lista com mais de
100 netmasks e conseguir encontrar centenas de mquinas por dia infectadas pelo BO?
No cdigo acima a nica coisa que precisa fazer para adicionar mais portas inseri-las na varivel
TROJAN_PORTS e executar o programa. O lao do for executar as 2 regras para cada porta processada
(economizando linhas e linhas de regras, me livrando de uma LER e poupando muitos bytes neste guia.
Dependendo do nmero de portas alvo, este cdigo pode ser muito simplificado usando o recurso multiport do
iptables (veja Especificando mltiplas portas de origem/destino, Seo 31.6.6 para detalhes).

31.8.3 Conectando sua rede interna a Internet


O seguinte exemplo permite ligar sua rede interna com a faixa de IP's 192.168.1.* a internet (usando uma
conexo discada do tipo ppp):
iptables -A nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -j MASQUERADE
echo "1" >/proc/sys/net/ipv4/ip_forward

31.8.4 Um exemplo de firewall simples


Esta seo possui um exemplo mais elaborado de firewall que servir para mquinas conectadas via ppp com
uma rede interna conectada via Masquerading. Este exemplo no to complexo e cobre as expectativas mais
comuns de pessoas que gostam de explorar os potenciais de rede no Linux ou satisfazer sua curiosidade. Ele
poder ser facilmente adaptado para atender outro tipo de necessidade. A configurao assumida a seguinte:

Mquina do firewall com 2 interfaces de rede, uma eth0 com o IP 192.168.1.1 que serve de ligao a
sua rede Interna, a outra ppp0 que a interface Internet.

Qualquer acesso externo a mquinas da rede interna bloqueado.

Os usurios da rede local tem acesso livre ao servidor Linux.

Qualquer acesso externo a mquina do firewall bloqueado, exceto conexes para o servio Apache
(httpd). Outras tentativas de conexes devem ser explicitamente registradas nos logs do sistema para
conhecimento do administrador.

Todos os usurios possuem acesso livre a Internet via Masquerading, exceto que o acesso para o servio
www deve ser obrigatoriamente feito via squid, e o servidor smtp a ser usado dever ser o do firewall
Linux.

Prioridades sero estabelecidas para os servios de telnet, IRC,talk e DNS.


#!/bin/sh
# Modelo de configurao de firewall
# Autor: Gleydson M. Silva
# Data: 05/09/2001
# Descrio: Produzido para ser distribudo livremente, acompanha o guia
#
Foca GNU/Linux. http://www.metainfo.org/focalinux
#
# assumido um sistema usando kmod para carga automtica dos mdulos usados por
Guia Foca GNU/Linux

263

# esta configurao do firewall:


# ipt_filter
# ipt_nat
# ipt_conntrack
# ipt_mangle
# ipt_TOS
# ipt_MASQUERADE
# ipt_LOG
# Se voc tem um Kernel modularizado que no utiliza o kmod, ser necessrio
# carregar estes mdulos via modprobe, insmod ou iptables --modprobe=modulo
##### Definio de Policiamento #####
# Tabela filter
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP
# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP
# Tabela mangle
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
##### Proteo contra IP Spoofing #####
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 >$i
done
##### Ativamos o redirecionamento de pacotes (requerido para NAT) #####
echo "1" >/proc/sys/net/ipv4/ip_forward
# O iptables define automaticamente o nmero mximo de conexes simultneas
# com base na memria do sistema. Para 32MB = 2048, 64MB = 4096, 128MB = 8192,
# sendo que so usados 350 bytes de memria residente para controlar
# cada conexo.
# Quando este limite excedido a seguinte mensagem mostrada:
# "ip_conntrack: maximum limit of XXX entries exceed"
#
# Como temos uma rede simples, vamos abaixar este limite. Por outro lado isto
# criar uma certa limitao de trfego para evitar a sobrecarga do servidor.
echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max
###############################################################
#
Tabela filter
#
###############################################################
##### Chain INPUT #####
# Criamos um chain que ser usado para tratar o trfego vindo da Internet e
iptables -N ppp-input
# Aceita todo o trfego vindo do loopback e indo pro loopback
iptables -A INPUT -i lo -j ACCEPT
# Todo trfego vindo da rede interna tambm aceito
iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
# Conexes vindas da interface ppp0 so tratadas pelo chain ppp-input
iptables -A INPUT -i ppp+ -j ppp-input
# Qualquer outra conexo desconhecida imediatamente registrada e derrubada
iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT "
iptables -A INPUT -j DROP
##### Chain FORWARD ####
# Permite redirecionamento de conexes entre as interfaces locais
# especificadas abaixo. Qualquer trfego vindo/indo para outras
# interfaces ser bloqueado neste passo
iptables -A FORWARD -d 192.168.1.0/24 -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -o ppp+ -j ACCEPT
iptables -A FORWARD -j LOG --log-prefix "FIREWALL: FORWARD "
Guia Foca GNU/Linux

264

iptables -A FORWARD -j DROP


##### Chain ppp-input ####
# Aceitamos todas as mensagens icmp vindas de ppp0 com certa limitao
iptables -A ppp-input -p icmp -m limit --limit 2/s -j ACCEPT
# Primeiro aceitamos o trfego vindo da Internet para o servio www (porta 80)
iptables -A ppp-input -p tcp --dport 80 -j ACCEPT
# A tentativa de acesso externo a estes servios sero registrados no syslog
# do sistema e sero bloqueados pela ltima regra abaixo.
iptables -A ppp-input -p tcp --dport 21 -j LOG --log-prefix "FIREWALL: ftp "
iptables -A ppp-input -p tcp --dport 25 -j LOG --log-prefix "FIREWALL: smtp "
iptables -A ppp-input -p udp --dport 53 -j LOG --log-prefix "FIREWALL: dns "
iptables -A ppp-input -p tcp --dport 110 -j LOG --log-prefix "FIREWALL: pop3 "
iptables -A ppp-input -p tcp --dport 113 -j LOG --log-prefix "FIREWALL: identd "
iptables -A ppp-input -p udp --dport 111 -j LOG --log-prefix "FIREWALL: rpc"
iptables -A ppp-input -p tcp --dport 111 -j LOG --log-prefix "FIREWALL: rpc"
iptables -A ppp-input -p tcp --dport 137:139 -j LOG --log-prefix "FIREWALL: samba "
iptables -A ppp-input -p udp --dport 137:139 -j LOG --log-prefix "FIREWALL: samba "
# Bloqueia qualquer tentativa de nova conexo de fora para esta mquina
iptables -A ppp-input -m state --state ! ESTABLISHED,RELATED -j LOG --log-prefix "FIREWALL: ppp-in "
iptables -A ppp-input -m state --state ! ESTABLISHED,RELATED -j DROP
# Qualquer outro tipo de trfego aceito
iptables -A ppp-input -j ACCEPT
#######################################################
#
Tabela nat
#
#######################################################
##### Chain POSTROUTING #####
# Permite qualquer conexo vinda com destino a lo e rede local para eth0
iptables -t nat -A POSTROUTING -o lo -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j ACCEPT
# No queremos que usurios tenham acesso direto a www e smtp da rede externa, o
# squid e smtpd do firewall devem ser obrigatoriamente usados. Tambm registramos
# as tentativas para monitorarmos qual mquina est tentando conectar-se diretamente.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 80 -j LOG --log-prefix
"FIREWALL: SNAT-www "
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 25 -j LOG --log-prefix
"FIREWALL: SNAT-smtp "
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 25 -j DROP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 80 -j DROP
# feito masquerading dos outros servios da rede interna indo para a interface
# ppp0
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -j MASQUERADE
# Qualquer outra origem de trfego desconhecida indo para eth0 (conexes vindas
# de ppp+) so bloqueadas aqui
iptables -t nat -A POSTROUTING -o eth0 -d 192.168.1.0/24 -j LOG --log-prefix "FIREWALL: SNAT
unknown"
iptables -t nat -A POSTROUTING -o eth0 -d 192.168.1.0/24 -j DROP
# Quando iniciamos uma conexo ppp, obtermos um endereo classe A (10.x.x.x) e aps
# estabelecida a conexo real, este endereo modificado. O trfego indo para
# a interface ppp no dever ser bloqueado. Os bloqueios sero feitos no
# chain INPUT da tabela filter
iptables -t nat -A POSTROUTING -o ppp+ -j ACCEPT
# Registra e bloqueia qualquer outro tipo de trfego desconhecido
iptables -t nat -A POSTROUTING -j LOG --log-prefix "FIREWALL: SNAT "
iptables -t nat -A POSTROUTING -j DROP
###############################################
#
Tabela mangle
#
###############################################
##### Chain OUTPUT #####
# Define mnimo de espera para os servios ftp, telnet, irc e DNS, isto
Guia Foca GNU/Linux

265

# dar uma melhor sensao de conexo em tempo real e diminuir o tempo


# de espera para conexes que requerem resoluo de nomes.
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 21 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 23 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 6665:6668 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o ppp+ -p udp --dport 53 -j TOS --set-tos 0x10

Guia Foca GNU/Linux

266

Captulo 32 Gerenciamento de contas e cuidados para a proteo de


senhas
Este captulo traz explicaes e comandos teis para o gerenciamento de contas e proteo de senhas de
usurios em sistemas Linux. Tambm explica os principais mtodos usados para quebra de senha usando
diversos mtodos como engenharia social, brute force, etc., bem como dicas de como escolher boas senhas para
voc e seus usurios e mtodos automatizados de checagem de senhas vulnerveis.
Estes mtodos so explicados para que voc entenda, se previna destes tipos de ataques alm de entender a
importncia de polticas de proteo de senhas.

32.1 Introduo
A criao de uma conta em uma mquina Linux pode expor seu sistema (ou todas suas redes) a crackers
simplesmente com a falta de treinamento e polticas de segurana. Uma invasor com um simples acesso a uma
conta de usurio pode conseguir acesso a reas que contm dados importantes expondo seu sistema a ataques ou
roubo de dados.
Um firewall no pode fazer muito em uma situao dessas, um acesso atravs de uma conta de sistema vlida
difcil de ser auditado e descoberto, a no ser que o usurio monitore seus acesso via lastlog e o administrador
conhea os hbitos de seus usurios para notar o uso estranho de contas em determinados dias/horrios. Evitar
situaes como esta depende mais de conscientizao e treinamento tanto do administrador como dos usurios
das contas para no expor o sistema a um ataque direto. Este captulo do guia explicar as situaes mais
comuns e alguns exemplos de como tais ataques acontecem.
ATENO: - Os dados aqui disponibilizados so puramente para fins didticos e compreenso de como tais
situaes funcionam para se criar mecanismos de defesa personalizados de acordo com o que deseja proteger.

32.2 Criao, monitorao e segurana de contas


Para adicionar uma conta de usurio ao sistema simples, basta um comando adduser [usurio] e alguns
poucos segundos para responder as questes do programa. Quando criamos contas para outros usurios temos 2
alternativas: deixarmos a senha em branco ou escolher uma senha que ser passada ao usurio para que ele
possa fazer a troca mais tarde. A primeira alternativa muito perigosa, pois uma pessoa com acesso a
/etc/passwd poder facilmente descobrir sua lista de usurios (principalmente em uma grande empresa quando
conhecemos as polticas de criao de novas contas). Um funcionrio notaria a presena do novato e poderia
aproveitar esta oportunidade para tentar incriminar este usando a conta recm criada ou tentar outras coisas para
obter benefcio prprio atravs do descuido de outros.
O segundo mtodo de senha inicial um pouco mais seguro e de preferncia a senha deve ser escolhida pelo
usurio para que pessoas que conhecem o estilo de senhas iniciais escolhidas pelo administrador no possam
deduzir a nova senha criada. comum vermos senhas como "novo1234", "123456", "abcdef", "a1b3c3", o
"nome do usurio" como senhas iniciais, pois fcil de lembrar. Senhas deste tipo so as primeiras a ser
tentadas por crackers e programas especficos para este fim. Mas se o o usurio esquecer de trocar sua senha
provisria?
O programa change e passwd possui recursos que permitem definir limites mnimos e mximo do tempo para
troca de senha de acesso, nmero mximo de dias aps expirar o tempo de troca da senha em que a conta ser
permanentemente desabilitada (at que o administrador a reative) e o perodo mnimo entre troca de senhas.
Alguns exemplos:
passwd -x 10 -w 3 teste
A senha do usurio teste expirar aps 10 dias (-x 10) e ele ser avisado com 3 dias de antecedncia (-w 3) para
trocar sua senha. Aps o perodo mximo o usurio ser obrigado a trocar a senha.
Quando o usurio efetuar o login receber a seguinte mensagem: Warning: your password will expire in 3 days.
passwd -x 10 -w 3 -i 2 teste
A senha do usurio teste expirar aps 10 dias (-x 10) e ele ser avisado com 3 dias de antecedncia (-w 3) para
trocar sua senha, aps a expirao da senha, o usurio tem 2 dias antes da conta ser desativada (-i 2). Se o
perodo expirar e o usurio tentar um novo login ser mostrada a mensagem:
Your account has expired: Please contact your system administrator
Para reativar a conta acima, remova totalmente o bloqueio da conta do usurio teste com passwd -x 0 teste,
passwd -x 99999 -w 7 -i 0 teste ou especifique um perodo de dias maior em adio queles especificados para
que ele possa trocar a senha.
Por exemplo, caso tenha passado 3 dias desde que a conta acima expirou e deseje dar mais 2 dias para o usurio
trocar a conta: passwd -x 17 -i 0 teste A conta ser reativada por mais 2 dias dando a oportunidade do usurio
Guia Foca GNU/Linux

267

trocar a senha. Preste ateno neste exemplo para entender bem a situao e prazos.
passwd -x 90 -n 60 -w 15 -i 0 teste
A senha do usurio teste expirar aps 90 dias (-x 90), ele ser avisado para trocar sua senha com 15 dias antes
do prazo final (-w 15) e a conta ser imediatamente desativada caso o prazo mximo para troca da senha expire
(-i 0). O usurio tambm no poder trocar sua senha durante os primeiros 60 dias desde a ltima troca de senha
(-n 60).
Em sistemas onde precisa adicionar restries a muitos usurios na criao da conta, recomendvel seguir os
mtodos descritos em Definindo valores padres de restrio, Seo 32.2.1.
OBS1: Em sistemas com senhas ocultas ativadas (veja Shadow Passwords, Seo 32.4.1) as restries acima
sero especificadas no arquivo /etc/shadow, isto garante que s o usurio root tenha acesso aos detalhes
fornecidos neste arquivo.
OBS2: A -d do passwd serve para remover a senha do usurio especificado ou seja somente ser necessrio
fornecer o nome de usurio para ter acesso ao sistema.
OBS3: Leve em considerao que o uso do recursos de senhas de grupo um risco de segurana, pois a mesma
senha ser compartilhada entre diversas pessoas.
OBS4: O programa useradd combina as funes do adduser e passwd para garantir que a conta seja criada com
as restries apropriadas. O nico inconveniente que o useradd quebra o Debian Policy e precisa de todos
todos os parmetros para a criao correta da conta (como o diretrio home, senha criptografada, e UID
numrico). Seu uso indicado em shell scripts que cuidam automaticamente da tarefa de adicionar usurios ao
sistema.

32.2.1 Definindo valores padres de restrio


Isto muito til quando precisa criar diversos usurios com as mesmas restries de contas, isto tornar o
gerenciamento do sistema muito mais prtico (tudo em Unix feito para ser mais prtico, s devemos saber
onde mexer). O arquivo /etc/defaults/useradd contm valores padres que sero usados pelo useradd e adduser
para definir valores de restries de contas. Estes valores so gerados usando a opo -D em combinao com as
seguintes opes do useradd:
-b [home] - Especificar o diretrio home de usurio. O padro /home.
-e [data] - Data padro de expirao de contas, especificada no formato AnoMesDia. Por exemplo,
20010920.
-f [dias] - Nmero mximo de dias que a conta permanece vlida aps a data de expirao at ser
desativada.
-g [gid/grupo] - ID do grupo ou nome do grupo que o usurio pertencer inicialmente.
-s [shell] - Shell do usurio. O padro /bin/bash.
OBS: Note que nem todas as opes acima tero efeito com o adduser (principalmente as opes -f, -g e -s que
so especificadas no seu arquivo de configurao /etc/adduser.conf).

32.2.2 Senhas fceis de adivinhar e escolha de boas senhas


A senha lhe identifica como o verdadeiro dono de uma conta em um sistema para garantir acesso a seus
recursos. A senha de um sistema to importante quanto uma senha de sua conta bancria, caso caia em mos
erradas as consequencias podero ser catastrficas, todo cuidado pouco na hora de escolher uma senha.
Senhas fceis de adivinhar so o primeiro motivo de sucesso de crackers no acesso a sistemas de computadores
(veja Deduo, Seo 32.3.1 e Engenharia Social, Seo 32.3.2), o administrador pode forar o usurio a fazer
trocas peridicas de senhas atravs dos recursos citados em Criao, monitorao e segurana de contas, Seo
32.2, mas quem vai garantir que ele esteja escolhendo boas senhas para que ningum as descubra com
facilidade? Abaixo uma lista de senhas ruins (que dever evitar a todo custo usa-las) e boas:
Senhas Ruins
O uso da palavra senha como senha! Isto parece idiota mais existe...
Senhas com o mesmo nome do login (joao/joao).
Compostas por letras ou nmeros em seqencia crescente ou decrescente (abcdef, 123456, 654321, etc,
etc). Este tipo de senha pode ser adivinhada por deduo e so uma das primeiras combinaes que crackers
usam para acertar senhas.
palavras relacionadas com o gosto pessoal. Por exemplo "escort", "vectra", "subaru" se a pessoa amante
de carros.
Nome da esposa, filhos, familiares, animal de estimao, time de futebol, idola da TV/filmes ou qualquer
coisa relacionada a familiares ou indiretamente ao usurio.
Idade, data de aniversrio, data de casamento, nmero de identidade, ttulo de eleitor, placa de carro ou
qualquer coisa que seja caracterstica do usurio.
Guia Foca GNU/Linux

268

Palavras existentes. Um ataque de dicionrio poder descobrir facilmente sua senha.


Senhas com menos de 8 letras
Senhas apenas em minsculas ou MAISCULAS.
Senhas Boas
Uma boa senha nunca dever ser lida mas fcil de lembrar. Por exemplo pense em uma frase importante
para voc "meu sistema operacional preferido o Linux" e pegue a primeira letra de cada palavra:
"msopeol". PRONTO esta escolhida uma boa senha que fcil de se lembrar e difcil de ser quebrada por
ataques de dicionrio!
Uma boa senha deve conter nmeros e letras. A senha acima poderia ser modificada para "msopeol1"
Conter letras maisculas e minsculas. "msopeoL1".
Conter 8 caracteres sempre que possvel. Isto aumenta bastante o nmero de combinaes necessrias para
se quebrar uma senha em um ataque brute force (veja Brute Force, Seo 32.3.4). Mesmo que a senha
escolhida no chegue a 8 caracteres mnimos, voc poder combina-la com nmeros.
Com as dicas acima, a possibilidade de algum conseguir quebrar uma senha criptografada em seu sistema
usando os ataques descritos em Tipos de ataques mais comuns para se conseguir uma senha., Seo 32.3
praticamente nula! Para os paranicos de planto, o utilitrio makepasswd pode criar uma senha com caracteres
completamente aleatrios:
makepasswd --chars 8
4y0sBdwM
Este comando retorna uma string com 8 caracteres (--chars 8) "4y0sBdwM". Se voc entendeu boa parte deste
guia tenho certeza que 1 ou 2 dias de treino e se acostuma com uma senha como esta ;-)
OBS: NUNCA NUNCA d pistas sobre sua senha! Para voc isto pode ser um desafio lanado a outras pessoas
quase impossvel de ser resolvido, mas no se esquea que muita gente especializada neste tipo de deduo.

32.2.3 Atualizao de senhas de mltiplas contas


O programa chpasswd usado para tal operao. Deve ser especificado um arquivo que contm os campos
usurio:senha por linha. Caso as senhas estejam encriptadas dever ser especificada a opo -e ao programa.
chpasswd -e /localadmin/contas/contas.db
O comando acima atualiza a senha de todos os usurios especificados no arquivo contas.db de uma s vez.

32.2.4 A senha do usurio root


Esta seo foi retirada do Manual de Instalao da Debian.
A conta root tambm chamada de super usurio, este um login que no possui restries de segurana. A
conta root somente deve ser usada para fazer a administrao do sistema, e usada o menor tempo possvel.
Qualquer senha que criar dever conter de 6 a 8 caracteres, e tambm poder conter letras maisculas e
minsculas, e tambm caracteres de pontuao. Tenha um cuidado especial quando escolher sua senha root,
porque ela a conta mais poderosa. Evite palavras de dicionrio ou o uso de qualquer outros dados pessoais que
podem ser adivinhados.
Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Voc normalmente nunca deve distribuir sua
conta root, a no ser que esteja administrando um computador com mais de um administrador do sistema.
Utilize uma conta de usurio normal ao invs da conta root para operar seu sistema. Porque no usar a conta
root? Bem, uma razo para evitar usar privilgios root por causa da facilidade de se cometer danos irreparveis
como root. Outra razo que voc pode ser enganado e rodar um programa Cavalo de Tria -- que um
programa que obtm poderes do super usurio para comprometer a segurana do seu sistema sem que voc
saiba.

32.3 Tipos de ataques mais comuns para se conseguir uma senha.


32.3.1 Deduo
O cracker se aproveita da ingenuidade de usurios que deixam senhas em branco, usam senhas simples como o
prprio nome, "abcdef", "asdfg", "123456", e outros tipos de senhas comuns para tentar obter acesso ao sistema.
Senhas deduzidas so geralmente senhas muito simples e muito usadas... Uma situao comum para a escolha
de uma senha deste tipo o medo de esquecer a senha (quando no se consegue pensar em algo mais difcil e ao
mesmo tempo que seja fcil de lembrar) e quando o usurio pego desprevenido e no se sabe o que usar como
senha (como na assinatura de um provedor Internet, muito comum essa situao).
Geralmente muito rpido e muito eficaz dependendo das habilidades do atacante dispe.
Guia Foca GNU/Linux

269

32.3.2 Engenharia Social


Ataques por engenharia social so feitos atravs de pesquisa de dados pessoais e outras caractersticas
relacionadas ao usurio (time de futebol, data de nascimento dele, da esposa, filhos, nome da atriz predileta, etc)
e usando estes dados coletados para auxiliar na descoberta da senha. Este ataque requer uma pesquisa sobre os
hbitos, gostos, etc. Mas existem outros tipos de ataque baseados em engenharia social, inclusive com o cracker
passando-se pelo usurio. Para diminuir as possibilidades deste tipo de ataque entenda e siga os procedimentos
da parte "Senhas Boas" na Senhas fceis de adivinhar e escolha de boas senhas, Seo 32.2.2 e continue lendo
esta seo.
Outro detalhe importante para diminuir as possibilidades de um ataque deste tipo bem sucedido permitir
somente o acesso do servio de finger a redes confiveis (locais onde uns conhecem os outros). Os detalhes
fornecidos pelo finger podem ser suficientes para garantir sucesso deste tipo de ataque:
#finger joao
Login: joao
Name: Joao P. M.
Directory: /home/joao
Shell: /bin/bash
Office: Sala 400 Andar 2, 123-4567 Home: 123-7654
Last login Fri Aug 25 21:20 (AMT) on tty3
No mail.
Grupo de cadastramento.
As ltimas linhas da sada do finger so os dados contidos nos arquivos .plan e .projects do diretrio de usurio.
O cracker com base nos dados fornecidos acima pelo finger poderia inventar uma situao em que necessitaria
de troca de senha por algum motivo. Abaixo uma situao onde o cracker sabe que no existe identificador de
chamadas na empresa e conhece as fragilidades:
Cracker: Disca para o CPD?
Vitima: CPD?
Cracker: Oi, eu sou o Joao P. M. do grupo de cadastramento aqui do segundo andar, estou tentando
entrar no sistema mas por algum motivo ele no aceita minha senha (fazendo-se de ignorante no assunto).
Vitima: Por favor Sr. verifique se o Caps Lock do seu teclado est ativado, letras em
maisculas/minsculas fazem diferena em nossos sistemas.
Cracker: Ok vou checar (espera um tempo). No, esta tudo Ok, voc poderia agilizar isto de alguma
maneira, preciso lanar algumas fichas no sistema.
Vitima: Posso modificar sua senha para um nome qualquer, depois voc poder trocar por si prprio.
Cracker: Ok, por mim tudo bem.
Vitima: Humm, modifiquei para "cad1234", basta voc usa-la e ter acesso ao sistema. Aps isso execute
o utilitrio passwd para troca-la para algo que desejar.
Cracker: Ok, muito obrigado. Tenha um bom dia.
Este um exemplo simples de ataque por engenharia social. Dependendo do objetivo, este tipo de ataque pode
levar semanas e as vezes requer contatos com diversas empresas criando diversas situaes para obter detalhes
necessrios para atingir o objetivo.
As polticas de segurana de senhas minimizam riscos deste tipo. Como este um caso que o requisitante um
funcionrio prximo do departamento de informtica, o mais adequado seria o administrador se deslocar ao
setor (ou enviar um tcnico do setor treinado para tal situao) para saber se quem diz ser quem est realmente
no local enfrentando aquela situao. O contato com o responsvel do setor (conhecido do tcnico) tambm
pode ser uma alternativa antes de entregar uma senha a um desconhecido.
Para casos externos (principalmente para empresas que mantm determinados servios em funcionamento em
nosso servidor, como servidores de pginas), o procedimento correto seria passar uma nova senha por e-mail (de
preferncia criptografado com pgp) ao invs de telefone. Isto garantir que a senha no caia nas mos erradas.
OBS1: Qualquer detalhe sobre a poltica de criao de senhas, trocas de senhas, etc. poder ter muito valor para
um cracker obter acesso ao seu sistema.
OBS2: Dificulte as maneiras para se obter acesso root ao sistema via conta de usurio comum. de extrema
importncia utilizar conexes de dados criptografadas quando for necessrio acesso externo ao seu sistema.
OBS3: Nunca use uma mesma senha para fazer tudo (banco, acessar seu sistema, conectar-se ao seu provedor,
senha de root). Voc estar em srios apuros caso algum tenha acesso a esta senha. difcil lembrar de vrias
senhas, mas voc pode aditar uma senha e criar modificaes a partir dela para utilizao em outros locais, por
exemplo: "wekpdm" => "Bwekpdm1" => "3wekpdmS", etc.

32.3.3 Ataques por dicionrio


De posse do arquivo de senhas /etc/passwd, o cracker utiliza um arquivo que contm diversas palavras que sero
Guia Foca GNU/Linux

270

tentadas como senha. Este trabalho feito automaticamente por ferramentas dedicadas a este tipo de tarefa e
pode levar dias dependendo da lista de senhas do cracker e quantidades de usurios existentes no arquivo de
senha.
Note que o uso de criptografia md5 e senhas ocultas dificultam bastante ao arquivo de senhas e o sucesso de um
ataque bem sucedido (veja Shadow Passwords, Seo 32.4.1 e Senhas MD5, Seo 32.4.2).

32.3.4 Brute Force


De posse do arquivo de senhas /etc/passwd o cracker utiliza uma ferramenta que tenta diversas combinaes de
letras seqencialmente na tentativa de descobrir uma senha. Este ataque geralmente usado como ltimo
recurso aps um ataque por dicionrio, e leva muito tempo para descobrir uma senha.
Dependendo se uma senha conter caracteres aleatrios, combinao de letras maisculas/minsculas, nmeros, a
senha ser praticamente impossvel de ser descoberta. Note que o uso de criptografia md5 e senhas ocultas
aumentam bastante a proteo das senhas (veja Shadow Passwords, Seo 32.4.1 e Senhas MD5, Seo 32.4.2).

32.3.5 Monitorao de toques do teclado


Este ataque muito comum em sistemas DOS e Windows, um programa instalado sem o conhecimento do
usurio que grava todos os toques do teclado em um arquivo escondido pelo cracker. Aps certo tempo o
cracker obtm acesso ao arquivo e aos dados que ele contm. Este tipo de ataque muito perigoso e pode
capturar senhas no s do sistema como nmeros de carto de crdito digitados (caso o usurio tenha feito
compras on-line), conta bancria+senha e tudo mais que for digitado pelo teclado.

32.3.6 Login falso


Esta uma forma rpida de se conseguir acesso a um sistema. criada uma tela de login idntica a original do
sistema, s que ao digitar nome e senha, estes so gravados em um arquivo (que ser mais tarde recuperado pelo
cracker para obter acesso ao sistema) e uma mensagem de erro ser exibida pelo sistema.
Naturalmente o usurio pensar que digitou o nome/senha incorretamente e far uma nova tentativa, a segunda
ocorrer com sucesso (fazendo este pensar que errou *mesmo* a senha).
Sua ateno muito importante para evitar este tipo de ataque, caso desconfie de algo errado, entra no sistema e
d um find --type f -cmin -3 para localizar os arquivos modificados nos ltimos 3 minutos e localizar possveis
bancos de dados de senhas.
Outra alternativa realmente digitar uma senha invlida intencionalmente (e diferente da correta) e na segunda
tentativa lanar a senha vlida (normalmente sistemas deste tipo bem elaborados chamam o verdadeiro sistema
de login na segunda tentativa).

32.4 Melhorando a segurana das senhas armazenadas em seu sistema


32.4.1 Shadow Passwords
Senhas Ocultas (shadow passwords) aumentam consideravelmente a senha do seu sistema pois as senhas sero
armazenadas em um arquivo separado: /etc/shadow para senhas de usurios e /etc/gshadow para senhas de
grupos. Estes dois arquivos podero ser acessados somente pelo usurio root. O armazenamento de senhas no
arquivo /etc/passwd e /etc/groups no seguro, estes arquivos devem ser lidos por todos os usurios porque
muitos programas mapeiam a UID do usurio com seu nome e vice versa.
O utilitrio shadowconfig usado para ativar/desativar o suporte a senhas ocultas (de usurios e grupos) em seu
sistema. Adicionamente os utilitrios pwconv/grpconv podem ser usados separadamente para ativar o suporte a
senhas ocultas de usurios/grupos e pwunconv/grpunconv para desativar este suporte.
ATENO: Caso voc inclua usurios em grupos manualmente no arquivo /etc/passwd, tambm precisar
fazer isto no arquivo /etc/shadow para que no tenha problemas. Esta tarefa feita automaticamente com o
comando adduser usurio grupo. O programa vipw e vigr tambm podem ser usados com a opo -s para editar
os arquivos /etc/shadow e /etc/gshadow respectivamente.

32.4.2 Senhas MD5


O sistema de criptografia usado pelas senhas MD5 mais seguro que o padro Crypto e permitem o uso de
senhas maiores do que 8 caracteres.
O uso de senhas MD5 recomendado para aumentar o nvel de proteo da senha. No use caso estiver
executando um servio de NIS. OBS: Caso utilize senhas MD5 em um sistema com PAM, inclua a palavra md5
na linha de configurao do mtodo de autenticao password do mdulo pam_unix.so:
password required pam_unix.so md5
Guia Foca GNU/Linux

271

Captulo 33 Apache
Esta captulo documenta a configurao, personalizao, introduo aos mecanismos de autenticao e controle
de acesso do Apache, sistema proxy, virtual hosting, e exemplos de configurao do servidor httpd. Ele no tem
como objetivo ser uma referncia completa de configurao, mas sim abordar didaticamente o assunto.

33.1 Introduo
O servidor web um programa responsvel por disponibilizar pginas, fotos, ou qualquer outro tipo de objeto
ao navegador do cliente. Ele tambm pode operar recebendo dados do cliente, processando e enviando o
resultado para que o cliente possa tomar a ao desejada (como em aplicaes CGI's, banco de dados web,
preenchimento de formulrios, etc).
O Apache um servidor Web extremamente configurvel, robusto e de alta performance desenvolvido por uma
equipe de voluntrios (conhecida como Apache Group) buscando criar um servidor web com muitas
caractersticas e com cdigo fonte disponvel gratuitamente via Internet. Segundo a Netcraft
(http://www.netcraft.com/survey/), o Apache mais usado que todos os outros servidores web do mundo juntos.
Este captulo no tenta ser um guia completo ao Apache, mas tentar mostrar como sua estrutura organizada,
as diretivas principais de configurao, diretivas de segurana, virtual hosting, proxy, o uso de utilitrios de
gerenciamento do servidor, como personalizar algumas partes do servidor e programas teis de terceiros para
anlise e diagnstico do servidor web. No deixe tambm de ver Exemplo comentado de um arquivo de
configurao do Apache, Seo 33.14 pois contm muitas explicaes interessante e faz parte do aprendizado.

33.1.1 Verso
assumido que esteja usando a verso 1.3.22 do apache. As explicaes contidas aqui podem funcionar para
verses posteriores, mas recomendavel que leia a documentao sobre modificaes no programa (changelog)
em busca de mudanas que alterem o sentido das explicaes fornecidas aqui.

33.1.2 Um resumo da Histria do Apache


O Apache tem como base o servidor web NCSA 1.3 (National Center of Supercomputing Applications), que foi
desenvolvido por Rob McCool. Quando Rob deixou o NCSA, o desenvolvimento foi interrompido, assim
muitos desenvolvedores buscaram personalizar sua prpria verso do NCSA ou adicionar mais caractersticas
para atender as suas necessidades. Neste momento comea a histria do Apache com Brian Behlendorf e Cliff
Skolnick abrindo uma lista de discusso para interessados no desenvolvimento, conseguindo espao em um
servidor doado pela HotWired e trocando patches corrigindo problemas, adicionando recursos e discutindo
idias com outros desenvolvedores e hackers interessados neste projeto.
A primeira verso oficial do Apache foi a 0.6.2, lanada em Abril de 1995 (neste perodo a NCSA retomava o
desenvolvimento de seu servidor web, tendo como desenvolvedores Brandon Long e Beth Frank que tambm se
tornaram membros especiais do grupo Apache, compartilhando idias sobre seus projetos).
Nas verses 2.x do Apache, a escalabilidade do servidor foi ampliada suportando as plataformas Win32 (no
obtendo o mesmo desempenho que em plataformas UNIX mas sendo melhorado gradativamente).

33.1.3 Enviando Correes/Contribuindo com o projeto


Um formulrio est disponvel na Web para o envio de correes/sugestes em
http://www.apache.org/bug_report.html. Uma lista de anuncio sobre o Apache est disponvel em apacheannounce@apache.org que divulgam correes, novas verses e realizao de eventos.
Mais detalhes sobre o desenvolvimento do Apache podem ser visualizadas na URL http://dev.apache.org.

33.1.4 Caractersticas do Apache


Abaixo esto algumas caractersticas que fazem esse servidor web o preferido entre os administradores de
sistemas:
Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc.
Suporte a autorizao de acesso podendo ser especificadas restries de acesso separadamente para cada
endereo/arquivo/diretrio acessado no servidor.
Autenticao requerendo um nome de usurio e senha vlidos para acesso a alguma pgina/subdiretrio/arquivo (suportando criptografia via Crypto e MD5).
Negociao de contedo, permitindo a exibio da pgina Web no idioma requisitado pelo Cliente
Navegador.
Guia Foca GNU/Linux

272

Suporte a tipos mime.


Personalizao de logs.
Mensagens de erro.
Suporte a virtual hosting ( possvel servir 2 ou mais pginas com endereos/ portas diferentes atravs do
mesmo processo ou usar mais de um processo para controlar mais de um endereo).
Suporte a IP virtual hosting.
Suporte a name virtual hosting.
Suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexvelmente configurveis).
Suporte a proxy e redirecionamentos baseados em URLs para endereos Internos.
Suporte a criptografia via SSL,Certificados digitais
Mdulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem
necessidade de recompilao do programa.

33.1.5 Ficha tcnica


Pacote: apache
Utilitrios:
apache - Servidor Web Principal
apachectl - Shell script que faz interface com o apache de forma mais amigvel
apacheconfig - Script em Perl para configurao interativa bsica do Apache
htpasswd - Cria/Gerencia senhas criptografadas Crypto/MD5
htdigest - Cria/Gerencia senhas criptografadas Crypto/MD5
dbmmanage - Cria/Gerencia senhas em formato DBM (Perl)
logresolve - Faz um DNS reverso dos arquivos de log do Apache para obter o endereo de hosts com base
nos endereos IP's.
ab - Apache Benchmarcking - Ferramenta de medida de desempenho do servidor Web Apache.
Por padro, os arquivos de configurao do Apache residem no diretrio /etc/apache:
httpd.conf - Arquivo de configurao principal do Apache, possui diretivas que controlam a operao do
daemon servidor. Um arquivo de configurao alternativo pode ser especificado atravs da opo "-f" da
linha de comando.
srm.conf - Contm diretivas que controlam a especificao de documentos que o servidor oferece aos
clientes. O nome desse arquivo pode ser substituido atravs da diretiva ResourceConfig no arquivo principal
de configurao.
access.conf - Contm diretivas que controlam o acesso aos documentos. O nome desse arquivo pode ser
substituido atravs da diretiva AccessConfig no arquivo principal de configurao.
O servidor Web l os arquivos acima na ordem que esto especificados (httpd.conf, srm.conf e access.conf). As
configuraes tambm podem ser especificadas diretamente no arquivo httpd.conf. Note que no obrigatrio
usar os arquivos srm.conf e access.conf, mas isto proporciona uma melhor organizao das diretivas do servidor,
principalmente quando se tem um grande conjunto de diretivas. Um exemplo comentado destes trs arquivos de
configurao encontrado em Exemplo comentado de um arquivo de configurao do Apache, Seo 33.14.

33.1.6 Requerimentos
A mquina mnima para se rodar um servidor Apache para atender a uma rede padro 10MB/s um Pentium 90,
24MB de RAM, um HD com um bom desempenho e espao em disco considervel de acordo com o tamanho
projetado de seu servidor web (considerando seu crescimento).
Uma configurao mais rpida para redes 100MB/s teria como processador um Cyrix MX ou Intel Pentium
MMX como plataforma mnima (Cyrix o recomendado pelo alto desempenho no processamento de strings),
barramento de HD SCSI com uma boa placa controladora (Adaptec 19160 ou superior) com 64MB de RAM no
mnimo.

33.1.7 Arquivos de log criados pelo Apache


O servidor httpd grava seus arquivos de log geralmente em /var/log/apache, no possvel descrever os arquivos
de logs usados porque tanto seus nomes como contedo podem ser personalizados no arquivo httpd.conf.
Mesmo assim, os arquivos de logs encontrados na instalao padro do Apache so os seguintes:
access.log - Registra detalhes sobre o acesso as pginas do servidor httpd.
error.log - Registra detalhes saber erros de acesso as pginas ou erros internos do servidor.
Guia Foca GNU/Linux

273

agent.log - Registra o nome do navegador do cliente (campo UserAgent do cabealho http).


Mais referncias podem ser encontradas em Sistema de Log do Apache, Seo 33.10. Um bom programa para
gerao de estatsticas de acesso com grficos o Relatrio grfico de acesso ao sistema, Seo 33.32.15.

33.1.8 Instalao
apt-get install apache apache-doc
(o pacote apache-doc contm a documentao de referencia do Apache, recomendvel instala-lo se estiver
curioso e deseja entender melhor seu funcionamento ou consultar diretivas).

33.1.9 Iniciando o servidor/reiniciando/recarregando a configurao


O Apache pode ser executado tanto como um servidor Inetd ou como um Daemon. A inicializao de programas
pelo Inetd uma boa estratgia quando voc precisa de um controle de acesso bsico (o fornecido pelo tcpd), e
o servio pouco usado na mquina.
A segurana de um servio iniciado pelo inetd pode ser substituda e melhorada por um firewall bem
configurado, garantindo facilidades extras como um relatrio de trfego para a porta do servidor web, por
exemplo. Mesmo assim se o servidor Apache estiver rodando como daemon e estiver ocioso, ele ser movido
para swap liberando a memria RAM para a execuo de outros programas.
Neste captulo ser assumido seu funcionamento do Apache como Daemon, que o mtodo de funcionamento
recomendado para sites de grande trfego onde ele frequentemente requisitado e considerado um servio
crtico.
O mtodo padro para iniciar programas como daemons na Debian atravs dos diretrios /etc/rc?.d. Cada
diretrio deste contm os programas que sero executados/interrompidos no nvel de execuo "?" (rc1.d/, rc2.d/
...). O contedo destes diretrios so links para os scripts originais em /etc/init.d/programa, o nosso programa
alvo /etc/init.d/apache. O /etc/init.d/apache aceita os seguintes parmetros:
start - Inicia o Apache
stop - Finaliza o Apache
restart - Reinicia o Apache, efetuando uma pausa de 5 segundos entre a interrupo do seu funcionamento
e reincio.
reload - Recarrega os arquivos de configurao do Apache, as alteraes entram em funcionamento
imediatamente.
reload-modules - Recarrega os mdulos. Basicamente feito um restart no servidor.
force-reload - Faz a mesma funo que o reload
Para reiniciar o Apache usando o /etc/init.d/apache, digite:
./etc/init.d/apache restart
ou
cd /etc/init.d;./apache restart
Na realidade, o que o /etc/init.d/apache faz interagir diretamente com o shell script apachectl.
O apachectl recebe os parmetros enviados pelo usurio e converte para sinais que sero enviados para o binrio
apache. Da mesma forma ele verifica os cdigos de sada do apache e os transforma em mensagens de erro
legveis para o usurio comum. Os seguintes comandos so aceitos pelo apachectl:
httpd-server/start - Inicia o Apache
stop - Finaliza o Apache (enviando um sinal TERM)
restart - Reinicia o Apache (enviando um sinal HUP)
graceful - Recarrega os arquivos de configurao do Apache (enviando um sinal USR1)
fullstatus - Mostra o status completo do servidor Apache (requer o lynx e o mdulo mod_status
carregado).
status - Mostra o status do processo do servidor Apache (requer o lynx e o mdulo mod_status carregado).
configtest - Verifica se a sintaxe dos arquivos de configurao est OK (executa um apache -t).

33.1.10 Opes de linha de comando

-D nome - define um nome que ser usado na diretiva <IfDefine nome>.


-d diretrio - especifica o diretrio ServerRoot (substitui o do arquivo de configurao).
-f arquivo - especifica um arquivo ServerConfigFile alternativo.
-C "diretiva" - processa a diretiva antes de ler os arquivo de configurao.
-c "diretiva" - processa a diretiva depois de ler os arquivos de configurao.
-v - mostra a verso do programa.

Guia Foca GNU/Linux

274

-V - mostra opes usadas na compilao do Apache.


-h - Mostra o help on-line do programa
-l - lista mdulos compilados junto com o Apache (embutidos)
-L - lista diretivas de configuraes disponveis
-S - Mostra configuraes de Virtual Hosting
-t - executa a checagem de sintaxe nos arquivos de configurao do Apache (incluindo a checagem da
diretiva DocRoot).
-T - executa a checagem de sintaxe nos arquivos de configurao do Apache (menos da diretiva DocRoot).

33.2 Configurando a porta padro do Apache


Use a diretiva Port para configurar a porta padro que o Apache receber requisies por padro. A diretiva
Listen tambm usada para ajustar o endereo/portas alternativas (usadas tambm em Virtual Hosts) e
substituir as definies de Port(veja Especificando endereos/portas adicionais (a diretiva Listen ), Seo 33.5
para detalhes).
OBS:: Somente uma diretiva Port e um argumento podero ser especificados. Para mais controle sobre as portas
do sistema use a diretiva Listen.

33.3 Adicionando uma pgina no Apache


Existem dois tipos de pginas que podem ser adicionadas ao Apache: a pgina raz e sub-pginas.
Pgina Raz
A pgina raz especificada atravs da diretiva DocumentRoot e ser mostrada quando se entrar no domnio
principal, como http://www.focalinux.org. Na configurao padro do Apache, DocumentRoot aponta para o
diretrio /var/www. Este diretrio ser assumido como raz caso os diretrios no sejam iniciados por uma /:
home/focalinux - Aponta para /var/www/home/focalinux
/home/focalinux - Aponta para /home/focalinux
Este diretrio deve conter um arquivo de ndice vlido (especificado pela diretiva DocumentIndex no
srm.conf) e permisses de acesso vlidas no arquivo access.conf para autorizar o acesso as pginas em
/var/www (veja Restries de Acesso, Seo 33.7 para detalhes).
Sub-pginas
Sub pginas so armazenadas abaixo do diretrio da Pgina raz, como http://www.focalinux.org/download.
Elas podem ser um subdiretrio da pgina principal em /var/www ou serem criadas atravs da diretiva Alias
no arquivo srm.conf. Caso seja um sub-diretrio, as permisses de acesso de /var/www sero herdadas para
este subdiretrio, mas tambm podero ser modificadas com a especificao de uma nova diretiva de acesso.
Atravs da diretiva Alias a pgina pode estar localizada em outro diretrio do disco (at mesmo outro sistema
de arquivos) e as permisses de acesso devero ser definidas para aquela pgina. Para criar um endereo
http://www.focalinux.org/iniciante que aponta para o diretrio /home/focalinux/download/iniciante no disco
local, basta usar a seguinte diretiva no srm.conf:
Alias /iniciante /home/focalinux/download/iniciante
Pode ser necessrio permitir o acesso a nova pgina caso o servidor tenha uma configurao restritiva por
padro (veja Restries de Acesso, Seo 33.7 para detalhes). Aps isto, faa o servidor httpd re-ler os
arquivos de configurao ou reinicia-lo. Aps isto, a pgina /home/focalinux/download/iniciante estar
acessvel via http://www.focalinux.org/iniciante.
OBS: Caso inclua uma / no diretrio que ser acessvel via URL, o endereo somente estar disponvel caso
voc entre com / no final da URL:
Alias /doc/ /usr/doc/
O diretrio /doc somente poder ser acessado usando http://www.focalinux.org/doc/, o uso de
http://www.focalinux.org/doc retornar uma mensagem de URL no encontrada.

33.4 Configurando as interfaces que o Apache atender


A diretiva BindAddress usada para especificar endereos IP das interfaces ou endereos FQDN que o Apache
responder requisies. Mais de um endereo podem ser especificados separados por espaos. Caso no seja
definido, o Apache assumir o valor "*" (atender requisies vindas de qualquer interface).
OBS1: - permitido usar somente uma diretiva BindAddress. A diretiva Listen dever ser usada se desejar mais
controle sobre as portas do servidor web. Veja Especificando endereos/portas adicionais (a diretiva Listen),
Seo 33.5 para detalhes.
OBS2: - As interfaces especificadas pela diretiva Listen substituir as especificadas em BindAddress.
Exemplo:
Guia Foca GNU/Linux

275

BindAddress 192.168.1.1 - Especifica que os usurios da faixa de rede 192.168.1.* tero acesso ao
servidor httpd. Isto assume que a mquina possui o endereo 192.168.1.1 em sua interface de rede interna.
BindAddress * - Atender requisies vindas de qualquer interface de rede.

33.5 Especificando endereos/portas adicionais (a diretiva Listen)


A diretiva Listen usada para se ter um controle maior sobre a especificao de endereos/portas alternativas
que o servidor web esperar por requisies externas. Esta diretiva muito usada na construo de Virtual
Hosts. Esta diretiva pode substituir completamente as diretivas Port e BindAddress. Podem ser usados o nmero
da porta, ou o par endereo:porta:
Listen 192.168.1.1:80
Listen 192.168.7.1:81
Listen 60000
O endereo que dever ser usado o da interface de rede (assim como na diretiva BindAddress). No exemplo
acima, o servidor httpd esperar por requisies vindas de 192.168.1.* na porta 80 e tambm 60000, e
requisies vindas de 192.168.7.1 na porta 81 e tambm 60000.

33.6 Especificando opes/permisses para as pginas


As opes de restrio podem tanto ser especificadas nas diretivas <Directory>, <Location> ou <Files> quanto
nos arquivos .htaccess (ou outro nome de arquivo de controle de acesso especificado pela opo
AccessFileName do arquivo de configurao do Apache). Cada diretiva de acesso especificada entre <tags> e
devem ser fechadas com </tag> (como na linguagem HTML). As seguintes diretivas de acesso so vlidas no
Apache:
Directory - As restrio afetar o diretrio no disco especificado, conseqentemente a pgina armazenada
nele. Por exemplo:
<Directory /var/www>
Order deny,allow
deny from all
allow from 10.1.0.1
<Directory>
O acesso ao diretrio /var/www ser permitido somente ao computador com o endereo IP 10.1.0.1.
DirectoryMatch - Funciona como a diretiva <Directory> mas trabalha com expresses regulares como
argumento. Por exemplo:
<DirectoryMatch "^/www/.*">
Order deny,allow
deny from all
<DirectoryMatch>
Bloquear o acesso ao diretrio /www e sub-diretrios dentro dele.
Files - As restries afetaro os arquivos do disco que conferem com o especificado. possvel usar os
coringas ? e * como no shell. Tambm podem ser usadas expresses regulares especificando um "~" aps
Files e antes da expresso. Por exemplo:
<Files *.txt>
Order deny,allow
deny from all
</Files>
Bloqueia o acesso a todos os arquivos com a extenso .txt
<Files ~ "\.(gif|jpe?g|bmp|png)$">
Order deny,allow
</Files>
Bloqueia o acesso a arquivos gif, jpg, jpeg, bmp, png (note que o "~" ativa o modo de interpretao de
expresses regulares).
FilesMatch - Permite usar expresses regulares na especificao de arquivos (equivalente a diretiva <Files
~ "expresso">). Por exemplo:
<FilesMatch "\.(gif|jpe?g|bmp|png)$">
Order deny,allow
</FilesMatch>
Bloqueia o acesso a arquivos gif, jpg, jpeg, bmp, png.
Location - As restries afetaro o diretrio base especificado na URL e seus sub-diretrios. Por exemplo:
<Location /security>
Guia Foca GNU/Linux

276

Order allow,deny
</Location>
Bloqueia o acesso de todos os usurios ao diretrio /security da URL (a explicao porque o acesso
bloqueado neste caso ser explicado em Autorizao, Seo 33.7.1).
LocationMatch - Idntico a diretiva <Location> mas trabalha com expresses regulares. Por exemplo:
<LocationMatch "/(extra|special)/data">
Order deny,allow
deny from all
</LocationMatch>
Bloquear URLs que contm a substring "/extra/data" ou "/special/data".
O uso das diretivas <Directory> e <Files> apropriada quando voc deseja trabalhar com permisses a nvel de
diretrios/arquivos no disco local (o controle do proxy tambm feito via <Directory>), o uso da diretiva
<Location> adequado para trabalhar com permisses a nvel de URL. A ordem de processamento das diretivas
de acesso so processadas a seguinte:
1.
A diretiva <Directory> (com exceo de <DirectoryMatch>) e os arquivos .htaccess so processados
simultaneamente. As definies dos arquivos .htaccess substituem as de <Directory>)
2.
Expresses regulares de <DirectoryMatch>, <Directory>.
3.
<Files> e <FilesMatch> so processados simultaneamente.
4.
<Location> e <LocationMatch> so processados simultaneamente.
Normalmente encontrado a opo Options dentro de uma das diretivas acima, a funo desta diretiva
controlar os seguintes aspectos da listagem de diretrios:

All - Todas as opes so usadas exceto a MultiViews. a padro caso a opo Options no
seja especificada.

ExecCGI - Permite a execuo de scripts CGI.

FollowSymLinks - O servidor seguir links simblicos neste diretrio (o caminho no


modificado). Esta opo ignorada caso aparea dentro das diretivas <Location>, <LocationMatch> e
<DirectoryMatch>.

Includes - permitido o uso de includes no lado do servidor.

IncludesNOEXEC - permitido o uso de includes do lado do servidor, mas o comando #exec e


#include de um script CGI so desativados.

Indexes - Se no existir um arquivo especificado pela diretiva <DirectoryIndex> no diretrio


especificado, o servidor formatar automaticamente a listagem ao invs de gerar uma resposta de acesso
negado.

MultiViews - Permite o uso da Negociao de contedo naquele diretrio. A negociao de


contedo permite o envio de um documento no idioma requisitado pelo navegador do cliente.

SymLinksIfOwnerMatch - O servidor somente seguir links simblicos se o arquivo ou


diretrio alvo tiver como dono o mesmo user ID do link. Esta opo ignorada caso aparea dentro das
diretivas <Location>, <LocationMatch> e <DirectoryMatch>.
Mltiplos parmetros para Options podem ser especificados atravs de espaos.
OBS1: A opo Options no tem efeito dentro da diretiva FILES.
OBS2: Tanto faz usar maisculas quanto minsculas nas diretivas de configurao, opes e parmetros de
configurao do Apache, a capitalizao apenas ajuda a leitura e interpretao: SymLinksIfOwnerMatch
(LinksSimblicosSeDonoConferir).
As opes especificadas para o diretrio afetam tambm seus sub-diretrios, a no ser que sejam especificadas
opes separadas para o sub-diretrio:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
Ao acessar o diretrio /var/www/focalinux, as permisses usadas sero de /var/www, ao menos que uma
diretiva <Directory> ou <Location> seja especificada:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/focalinux>
Options Includes
</Directory>
As opes e restries de acesso de /var/www/focalinux sero EXATAMENTE as especificadas no bloco da
diretiva <Directory /var/www/focalinux> e somente os includes sero permitidos. Para adicionar ou remover
Guia Foca GNU/Linux

277

uma opo individual definidas por diretivas anteriores, podem ser usado os sinais "+" ou "-", por exemplo:
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/focalinux>
Options +Includes -Indexes
</Directory>
As opes Indexes e FollowSymLinks so definidas para o diretrio /var/www, ento as permisses do diretrio
/var/www/focalinux sero FollowSymLinks (do diretrio /web/docs) e Includes (adicionada) e o parmetro
Indexes no ter efeito neste diretrio.
permitido fazer um aninhamento das diretivas <Directory> e <Files>:
<Directory /var/www>
Order allow,deny
allow from all
<Files LEIAME-DONO.txt>
Order deny,allow
deny from all
</Files>
</Directory>
Neste caso, somente os arquivos LEIAME-DONO.txt existentes no diretrio /var/www e seus sub-diretrios
sero bloqueados.
Se a diretiva <Files> for usada fora de uma estrutura <Directory>, ela ter efeito em todos os arquivos
disponibilizados pelo servidor. Este excelente mtodo para proteger os arquivos de acesso, senhas e grupos,
conforme ser explicado mais adiante.
Qualquer outro tipo de aninhamento de diretivas resultar em um erro de configurao ao se tentar
carregar/recarregar o Apache. Um exemplo de diretiva incorreta:
<Directory /var/www>
Options Indexes FollowSymLinks
<Directory /var/www/focalinux>
Options +Includes -Indexes
</Directory>
</Directory>
O correto :
<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/focalinux>
Options +Includes -Indexes
</Directory>
Espero que tenha observado o erro no exemplo acima.
OBS1: Voc pode verificar se a configurao do apache est correta digitando apache -t como usurio root, se
tudo estiver correto com suas configuraes ele retornar a mensagem: "Syntax OK".
OBS2: Se Options no for especificado, o padro ser permitir tudo exceto MultiViews.
OBS3: Qualquer restrio afetar o diretrio atual e todos os seus sub-diretrios! Defina permisses de subdiretrios especficos separadamente caso precise de um nvel de acesso diferente. Veja tambm a seo sobre
arquivos OverRide (.htaccess) para detalhes sobre este tipo de arquivo.
OBS4: A diretiva de acesso "<Directory />" no afetar outros sistemas de arquivos montados dentro de seus
subdiretrios. Caso uma diretiva de acesso padro no seja especificada para outros sistemas de arquivos, o
acesso ser automaticamente negado.

33.7 Restries de Acesso


A restrio de acesso do Apache feita atravs de Autorizao (Autorizao, Seo 33.7.1) e Autenticao
(Autenticao, Seo 33.7.2). Atravs da autorizao, checado se o endereo/rede especificada tem ou no
permisso para acessar a pgina. A autenticao requer que seja passado nome e senha para garantir acesso a
pgina. Os mtodos de Autorizao e Autenticao podem ser combinados como veremos mais adiante.

Guia Foca GNU/Linux

278

33.7.1 Autorizao
A restrio de acesso por autorizao (controlado pelo mdulo mod_access), permite ou no o acesso ao cliente
de acordo com o endereo/rede especificada. As restries afetam tambm os sub-diretrios do diretrio alvo.
Abaixo um exemplo de restrio de acesso que bloqueia o acesso de qualquer host que faz parte do domnio
.spammers.com.br a URL http://servidor/teste:
<Location /teste>
Option Indexes
Order allow,deny
allow from all
deny from .spammers.com.br
</Location>
A opo Option foi explicada acima, seguem as explicaes das outras diretivas:
Order - Especifica em que ordem as opes de acesso allow/deny sero pesquisadas. Caso no seja
especificada, o padro ser deny/allow. Note que a ordem de pesquisa de allow e deny a inversa da
especificada. A diretiva Order aceita os seguintes valores:
deny,allow - Esta a padro, significa um servidor mais restritivo; a diretiva allow processada primeiro e
somente depois a diretiva deny. Caso nenhuma diretiva allow e deny forem especificadas ou no
conferirem, PERMITE TUDO como padro.
allow,deny - Significa um servidor mais permissivo, a opo deny processada primeiro e somente depois
a opo allow. Caso nenhuma diretiva allow e deny for especificadas ou no conferirem, BLOQUEIA
TUDO como padro.
mutual-failure - Somente permite o acesso se o usurio receber autorizao atravs da opo allow e NO
ser bloqueado pela opo deny, caso uma das checagens falhe, o acesso imediatamente negado. uma
opo interessante quando voc quer somente pessoas de um determinado endereo/rede acessando o seu
sistema e no estejam em sua lista negra.
ATENO: importante saber se a pgina ser permissiva ou restritiva para escolher a ordem mais
adequada ao seu caso, tambm leve em considerao a possibilidade do processamento cair na diretiva de
acesso padro, caso nem a diretiva allow e deny conferiram e estiver usando a ordem de acesso
"allow,deny" ou "deny,allow". Um sistema mal configurado neste aspecto poder trazer srias
conseqncias.
comum em pginas permissivas se definir a seguinte configurao:
Order allow,deny
allow from all
O motivo que em um grande site, se forem adicionadas mais restries nesta pgina (devido a alguns
domnios que tem usurios mal comportados, bloqueio de acesso a rede do concorrente, potenciais
atacantes, etc...), estas devero ser lidas antes da diretiva "allow from all" e podem passar desapercebidas ao
administrador e podem simplesmente no funcionar caso a opo Order no esteja ajustada corretamente
(lembre-se, voc o administrador e a integridade do site depende de sua ateno na escolha da ordem
correta das diretivas de acesso).
allow from - Especifica o endereo que ter acesso ao recurso especificado. A diretiva allow from aceita os
seguintes valores:
all - O acesso permitido a todos.
um endereo de domnio completo (FQDN). Por exemplo www.debian.org.br.
um endereo de domnio parcial. Qualquer computador que confira com o incio ou fim ter o acesso
permitido. Por exemplo, .spammers.com.br, .debian.org.
um endereo IP completo, como 192.168.1.1
um endereo IP parcial como 192.168.1.
um par rede/mscara como 10.1.0.0/255.255.0.0 ou 10.1.0.0/16, uma faixa de acesso a mquinas de uma
mesma rede pode ser definida facilmente atravs deste mtodo.
OBS1: necessrio reiniciar o Apache depois de qualquer modificao em seu arquivo de configurao
(executando apachectl restart), ou recarregar os arquivos de configurao (apachectl graceful).
OBS2: Mais de um host pode ser especificado separando com um espao:
allow from 192.168. .debian.org.br
Permitir o acesso de qualquer mquina que o endereo IP confira com 192.168.*.* e qualquer computador do
domnio debian.org.br
OBS3: Regras baseadas em nomes simples de hosts (como www) no conferiro! Dever ser usado o FQDN
ou IP: www.dominio.com.br
OBS4: Caso Order no seja especificado, deny,allow ser usado como padro (ou seja, permitir tudo como
Guia Foca GNU/Linux

279

padro).
deny from - Expecifica os endereos que NO tero acesso ao recurso especificado. As explicaes
referentes a esta diretiva de acesso so idntica as de allow from.
recomendvel o uso de endereos IP ao invs de endereos DNS e um mecanismo anti-spoofing no firewall
ou cdigo de roteamento, pois ficar mais difcil um ataque baseado em DNS spoofing, aumentando
consideravelmente a segurana de seu servidor web.
ATENO: Caso receba erros 403 (acesso negado) sem bloquear a URL nas diretivas de acesso, significa que
o servidor Web no tem permisses para acessar/abrir o diretrio da pgina. Certifique-se que o dono e grupo do
processo Apache (especificado pela diretiva User e Group) possuem permisses de acesso quele diretrio.
Abaixo alguns exemplos de permisses de acesso:
<Directory /var/www>
Options SymLinksIfOwnerMatch Indexes MultiViews
Order allow,deny
allow from all
</Directory>
Permite o acesso a de qualquer usurio de qualquer lugar (allow from all), permite tambm a visualizao da
listagem formatada de arquivos caso nenhum arquivo especificado na diretiva DirectoryIndex seja encontrado
(Indexes), permite negociao de contedo (MultiViews) e seguir links caso o dono do arquivo confira com o
nome do link (SymLinksIfOwnerMatch).
<Directory /var/www>
Options SymLinksIfOwnerMatch Indexes MultiViews
</Directory>
Tem o mesmo significado da diretiva acima por mtodos diferentes; quando nenhuma opo Order
especificada, deny,allow definido como padro, e como nenhuma opo de acesso allow/deny foi especificada,
o padro "Order deny,allow" usado e permite TUDO como padro.
<Directory /var/www>
Options Indexes
Order deny,allow
deny from all
</Directory>
Esta regra acima no tem muita lgica pois restringe o acesso de todos os usurios ao diretrio /var/www, ao
menos se esta for sua inteno...
<Location /focalinux>
Options All
Order allow,deny
allow from all
</Location>
A regra acima permite o acesso a URL http://www.servidor.org/focalinux de qualquer host na Internet
<Files .htaccess>
Order deny,allow
deny from all
</Files>
Bloqueia o acesso a qualquer arquivo .htaccess do sistema
<Files ~ "leiame-(arm|alpha|m68k|sparc|powerpc)\.txt">
Order deny,allow
deny from all
</Files>
Bloqueia o acesso a qualquer arquivo leiame-arm.txt, leiame-alpha.txt, leiame-m68k.txt, leiame-sparc.txt e
leiame-powerpc.txt fazendo uso de expresses regulares.
<Directory /var/www>
Options Indexes
Order mutual-failure
allow from .dominio.com.br
deny from lammer.dominio.com.br
</Directory>
A diretiva acima somente permite acesso ao diretrio /var/www de mquinas pertencentes ao domnio
.dominio.com.br desde que no seja lammer.dominio.com.br.
<Directory /var/www>
Options Indexes MultiViews
Order allow,deny
Guia Foca GNU/Linux

280

deny from .com .com.br


allow from all
</Directory>
Bloqueia o acesso ao diretrio /var/www de computadores pertencentes aos domnios .com e .com.br.
<Directory /var/www>
Options None
Order deny,allow
allow from 192.168.1. .metainfo.org .debian.org
deny from 200.200.123.
</Directory>
A regra acima permite o acesso de mquinas da rede 192.168.1.*, do domnio *.metainfo.org e *.debian.org, o
acesso de mquinas da rede 200.200.123.* bloqueado (nada contra, peguei nesse nmero ao acaso :-).
Note que a mquina 192.168.4.10 ter acesso LIVRE a regra acima, pois no conferir nem com allow nem com
deny, ento o processamento cair na diretiva padro de deny,allow, que neste caso permite o acesso caso nem
allow e deny conferiram com o padro.
<Directory /var/www>
Options None
Order allow,deny
allow from 192.168.1. .metainfo.org .debian.org
deny from 200.200.123.
</Directory>
A regra acima idntica a anterior somente com a mudana da opo Order. Bloqueia o acesso de mquinas da
rede 200.200.123.* e permite o acesso de mquinas da rede 192.168.1.*, do domnio *.metainfo.org e
*.debian.org.
Note que a mquina 192.168.4.10 ter acesso BLOQUEADO a regra acima, pois no conferir nem com allow
nem com deny, ento o processamento cair na diretiva padro de allow,deny que neste caso bloqueia o acesso.

33.7.2 Autenticao
Atravs da autenticao (controlado pelo mdulo mod_auth) possvel especificar um nome e senha para
acesso ao recurso solicitado. As senhas so gravadas em formato criptografado usando Crypto ou MD5
(conforme desejado). O arquivo de senhas pode ser centralizado ou especificado individualmente por usurio,
diretrio ou at mesmo por arquivo acessado.

33.7.2.1 Criando um arquivo de Senhas


O arquivo de senhas pode ser criado e mantido atravs do uso de 3 utilitrios: htpasswd, htdigest e dbmmanage:

33.7.2.1.1 htpasswd
Este usado para criar o arquivo de senhas. Para criar um banco de dados com o nome senhas para o usurio
convidado, usada a seguinte sintaxe:
htpasswd -c -m senhas convidado
Voc ser perguntado por uma senha para o usurio convidado e para redigita-la. A opo "-c" indica que dever
ser criado um arquivo, a opo "-m" indica a utilizao de senhas criptografadas usando o algoritmo MD5, que
garante maior segurana que o mtodo Crypto. A senha pode ser especificada diretamente na linha de comando
atravs da opo "-b" (isto um timo recurso para utilizao em shell scripts ou programas CGI de integrao
com o navegador).
htpasswd -b -d senhas chefe abcdef
No exemplo acima, uma senha de alta segurana ser introduzida no banco de dados senhas tornando impossvel
o acesso a pgina do usurio.
Note que esta senha foi cadastrada usando o algoritmo de criptografia Crypto (opo -d). O algoritmo SHA
tambm pode ser usado como alternativa, atravs da opo "-s". Para modificar a senha do usurio convidado,
basta usar a mesma sintaxe (sem a opo "-c" que usada para criar um novo arquivo):
htpasswd -m senhas convidado
ou
htpasswd -b -m senhas convidado nova_senha
Opcionalmente voc pode especificar a opo "-d" para atualizar tambm o formato da senha para Crypto.
Podem existir senhas de criptografias mistas (SHA, Crypto, MD5) no mesmo arquivo sem nenhum problema.
A mudana do formato de senhas til quando se deseja aumentar o nvel de segurana oferecido por um
melhor sistema ou para manter a compatibilidade com alguns scripts/programas que compartilhem o arquivo de
senhas.
Guia Foca GNU/Linux

281

33.7.2.1.2 htdigest e dbmmanage


Estes so idnticos ao htpasswd, a diferena que o htdigest permite criar/manter um arquivo de senhas usando
a autenticao Digest, enquanto o dbmmanage permite manter o banco de dados de senhas em um arquivo DB,
DBM, GDBM e NDBM, formatos conhecidos pelo Perl.

33.7.2.2 Autenticao atravs de usurios


Atravs deste mtodo possvel especificar que usurios tero acesso ao recurso definido, usando senhas de
acesso individuais criptografadas usando um dos utilitrios da seo anterior. Para restringir o acesso ao
endereo http://servidor.org/teste:
<Location /teste>
AuthName "Acesso a pgina do Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
# AuthGroupFile /home/users/SenhaGrupo
Require valid-user
</Location>
Ao tentar acessar o endereo http://servidor/teste, ser aberta uma janela no navegador com o ttulo Enter
username for Acesso a pgina do Foca Linux at servidor.org, a diretiva Require valid-user definem que o
usurio e senha digitados devem existir no arquivo especificado por AuthUserFile para que o acesso seja
garantido. Uma explicao de cada opo de acesso usado na autenticao:
AuthName - Ser o nome que aparecer na janela de autenticao do seu navegador indicando qual rea
restrita est solicitando senha (podem existir vrias no servidor, bastando especificar vrias diretivas de
restries).
AuthType - Especifica o mtodo de que o nome e senha sero passados ao servidor. Este mtodo de
autenticao pode ser Basic ou Digest
Basic - Utiliza a codificao base64 para encodificao de nome e senha, enviando o resultado ao servidor.
Este um mtodo muito usado e pouco seguro, pois qualquer sniffer instalado em um roteador pode
capturar e descobrir facilmente seu nome e senha.
Digest - Transmite os dados de uma maneira que no pode ser facilmente decodificada, incluindo a
codificao da rea protegida (especificada pela diretiva AuthName) que possui a sequencia de
login/senha vlida. A diferena deste mtodo que voc precisar de arquivos de senhas diferentes para
cada rea protegida especificada por AuthName (tambm chamada de Realm).
AuthUserFile - o arquivo gerado pelo utilitrio htpasswd que contm a senha correspondente ao usurio
AuthGroupFile - um arquivo texto que contm o nome do grupo, dois pontos (":") e o nome dos
usurios que podem ter acesso ao recurso, separados por vrgulas. No exemplo acima ele se encontra
comentado, mas a seguir encontrar exemplos que explicam em detalhes o funcionamento desta diretiva.
Require - Especifica que usurios podem ter acesso ao diretrio. Podem ser usadas uma das 3 sintaxes:
Require user usurio1 usurio2 usurio3 - Somente os usurios especificados so considerados vlidos
para ter acesso ao diretrio.
Require group grupo1 grupo2 grupo3 - Somente os usurios dos grupos especificados so considerados
vlidos para terem acesso ao diretrio. Esta diretiva til quando deseja que somente alguns usurios de
determinado grupo tenham acesso ao recurso (por exemplo, usurios do grupo admins).
Require valid-user - Qualquer usurio vlido no banco de dados de senhas pode acessar o diretrio. bem
til quando as opes de acesso especificadas por Require user so muito longas.
A opo Require deve ser acompanhado das diretivas AuthName, AuthType e as diretivas AuthUserFile e
AuthGroupFile para funcionar adequadamente.
OBS: necessrio reiniciar o Apache depois de qualquer modificao em seu arquivo de configurao
(apachectl restart), ou recarregar os arquivos de configurao (apachectl graceful). Note que o apachectl
somente um shell script para interao mais amigvel com o servidor web apache, retornando mensagens
indicando o sucesso/falha no comando ao invs de cdigos de sada.
Alguns exemplos para melhor assimilao:
<Location /teste>
AuthName "Acesso a pgina do Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson
</Location>
Guia Foca GNU/Linux

282

As explicaes so idnticas a anterior, mas somente permite o acesso do usurio gleydson a URL
http://servidor.org/teste, bloqueando o acesso de outros usurios contidos no arquivo AuthUserFile.
<Location /teste>
AuthName "Acesso a pgina do Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson usuario1 usuario2
</Location>
<Location /teste>
AuthName "Acesso a pgina do Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
Require user gleydson
Require user usuario1
Require user usuario2
</Location>
As 2 especificaes acima so equivalentes e permite o acesso aos usurios gleydson, usuario1 e usuario2 a
pgina http://servidor.org/teste.

33.7.2.3 Autenticao usando grupos


H casos onde existem usurios de um arquivo de senhas que devem ter acesso a um diretrio e outros no,
neste caso a diretiva valid-user no pode ser especificada (porque permitiria o acesso de todos os usurios do
arquivo de senha ao diretrio) e uma grande lista de usurios ficaria bastante complicada de ser gerenciada com
vrios usurios na diretiva Require user.
Quando existe esta situao, recomendado o uso de grupos de usurios. Para fazer uso desse recurso, primeiro
dever ser criado um arquivo quer armazenar o nome do grupo e dos usurios pertencente quele grupo usando
a seguinte sintaxe (vamos chamar este arquivo de SenhaGrupo):
admins: gleydson usuario2
usuarios: usuario1 usuario2 usuario3 gleydson
Agora adaptamos o exemplo anterior para que somente os usurios especificados no grupo admins do arquivo
criado acima:
<Location /teste>
AuthName "Acesso a pgina do Foca Linux"
AuthType basic
AuthUserFile /home/gleydson/SenhaUsuario
AuthGroupFile /home/gleydson/SenhaGrupo
Require group admins
</Location>
Agora somente os usurios pertencentes ao grupo admins (gleydson e usuario2) podero ter acesso ao diretrio
/teste.
OBS1: Verifique se o servidor Web possui acesso a leitura no arquivo de senhas de usurios e grupos, caso
contrrio ser retornado um cdigo "500 - Internal Server Error". Este tipo de erro caracterizado por tudo estar
OK na sintaxe dos arquivos de configurao aps checagem com "apache -t" e todas as diretivas de controle de
acesso apontam para os diretrios e arquivos corretos.
OBS2:: Sempre use espaos para separar os nomes de usurios pertencentes a um grupo.
OBS3: NUNCA coloque os arquivos que contm senhas e grupos em diretrios de acesso pblico onde usurios
podem ter acesso via o servidor Web. Tais localizaes so /var/www, /home/"usuario"/public_html e qualquer
outro diretrio de acesso pblico que defina em seu sistema.
recomendvel tambm ocultar estes arquivos atravs da diretiva <Files> evitando possveis riscos de
segurana com usurios acessando os arquivos de senha e grupo.
Na distribuio Debian, qualquer arquivo iniciando com .ht* ser automaticamente ocultado pelo sistema, pois
j existe uma diretiva <Files ~ "\.ht">. Tal diretiva pode tambm ser especificada no arquivo de acesso .htaccess.
Assim um arquivo .htsenha e .htgroup so bons nomes se estiver desejando ocultar dados de olhos curiosos...

33.7.3 Usando autorizao e autenticao juntos


Os mtodos de autorizao e autenticao podem ser usados ao mesmo tempo dentro de qualquer uma das
diretivas de controle de acesso. As diretivas de autorizao so processadas primeiro (mod_access) e depois as
diretivas de autenticao (mod_auth). Segue um exemplo:
<Directory /var/www>
Guia Foca GNU/Linux

283

Options Indexes
Order deny,allow
allow from .dominiolocal.com.br
deny from all
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
Require valid-user
</Directory>
Para ter acesso ao diretrio /var/www, primeiro o computador deve fazer parte do domnio
.dominiolocal.com.br, assim ela passa pelo teste de autorizao, depois disso ser necessrio fornecer o login e
senha para acesso a pgina, digitando o login e senha corretos, o teste de autenticao ser completado com
sucesso e o acesso ao diretrio /var/www autorizado.
<Directory /var/www>
Options Indexes
Order mutual-failure
allow from .dominiolocal.com.br
deny from lammer.dominiolocal.com.br
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
AuthGroupFile /var/cache/apache/grupos
Require group admins
</Directory>
No exemplo acima, usado o mtodo de autorizao com a opo Order mutual-failure e o mtodo de
autenticao atravs de grupos. Primeiro verificado se o usurio pertence ao domnio .dominiolocal.com.br e
se ele no est acessando da mquina lammer.dominiolocal.com.br, neste caso ele passa pelo teste de
autorizao. Depois disso ele precisar fornecer o nome e senha vlidos, com o login pertencente ao
AuthGroupFile, passando pelo processo de autenticao e obtendo acesso ao diretrio /var/www.

33.7.3.1 Acesso diferenciado em uma mesma diretiva


interessante permitir usurios fazendo conexes de locais confiveis terem acesso direto sem precisar fornecer
nome e senha e de locais inseguros acessarem somente aps comprovarem quem realmente so. Como o caso
de permitir usurios de uma rede privada terem acesso completo aos recursos e permitir o acesso externo ao
mesmo recurso somente atravs de senha. Isto pode ser feito com o uso da diretiva Satisfy junto ao bloco de
autorizao/autenticao. Vamos tomar como base o exemplo anterior:
<Directory /var/www>
Options Indexes
Order mutual-failure
allow from .dominiolocal.com.br
deny from lammer.dominiolocal.com.br
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
AuthGroupFile /var/cache/apache/grupos
Require group admins
Satisfy any
</Directory>
Note que o exemplo o mesmo com a adio da diretiva Satisfy any no final do bloco do arquivo. Quando a
opo Satisfy no especificada, ela assumir "all" como padro, ou seja, o usurio dever passar no teste de
autorizao e autenticao para ter acesso.
A diferena do exemplo acima em relao ao da seo anterior se a mquina passar no teste de autorizao ela
j ter acesso garantido. Caso falhe no teste de autorizao, ainda ter a chance de ter acesso a pgina passando
na checagem de autenticao.
Isto garante acesso livre aos usurios do domnio .dominiolocal.com.br. J os outros usurios, incluindo acessos
vindos de lammer.dominiolocal.com.br que pode ser uma mquina com muito uso, poder ter acesso ao recurso
caso tenha fornecido um nome e senha vlidos para passar pelo processo de autenticao. Tenha isto em mente...
este tipo de problema comum e depende mais de uma poltica de segurana e conduta interna, o sistema de
segurana no pode fazer nada a no ser permitir acesso a um nome e senha vlidos.
Guia Foca GNU/Linux

284

Tenha cuidado com o uso da opo Satisfy em diretivas que especificam somente o mtodo de autenticao:
<Directory /var/www>
Options Indexes
AuthName "Acesso ao diretrio do servidor Web"
AuthType basic
AuthUserFile /var/cache/apache/senhas
AuthGroupFile /var/cache/apache/grupos
Require group admins
Satisfy any
</Directory>
ATENO PARA O DESCUIDO ACIMA!: Como o mtodo de autorizao NO especificado, assumido
deny,allow como padro, que permite o acesso a TODOS os usurios. O bloco acima NUNCA executar o
mtodo de autenticao por este motivo. A melhor coisa NO usar a opo Satisfy em casos que s requerem
autenticao ou usar Satisfy all (que ter o mesmo efeito de no usa-la, hehehe).
A falta de ateno nisto pode comprometer silenciosamente a segurana de seu sistema.

33.7.4 O arquivo .htaccess


O arquivo .htaccess deve ser colocado no diretrio da pgina que dever ter suas permisses de acesso/listagem
controladas. A vantagem em relao a incluso direta de diretivas de acesso dentro do arquivo de configurao
do Apache, que o controle de acesso poder ser definido pelo prprio webmaster da pgina, sem precisar ter
acesso direto a configurao do Apache, que requerem privilgios de root.
Outro ponto fundamental que no h necessidade de reiniciar o servidor Web, pois este arquivo lido no
momento de cada acesso ao diretrio que controla. O nome do arquivo OverRide pode ser definido atravs da
diretiva AccessFileName no arquivo de configurao do Apache, .htaccess usado como padro.
O controle de que opes estaro disponveis no .htaccess so definidas na diretiva AllowOverride que pode
conter o seguintes parmetros:
None - O servidor no buscar o arquivo .htaccess nos diretrios
All - O servidor utilizar todas as opes abaixo no arquivo .htaccess
AuthConfig - Permite o uso de diretivas de autenticao (AuthDBMGroupFile, AuthDBMUserFile,
AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc.).
FileInfo - Permite o uso de diretivas controlando o tipo de documento (AddEncoding, AddLanguage,
AddType, DefaultType, ErrorDocument, LanguagePriority, etc.).
Indexes - Permite o uso de diretivas controlando a indexao de diretrio (AddDescription, AddIcon,
AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName,
IndexIgnore, IndexOptions, ReadmeName, etc.).
Limit - Permite o uso de diretivas controlando o acesso ao computador (allow, deny e order).
Options - Permite o uso de diretivas controlando caractersticas especficas do diretrio ( Options e
XBitHack).
OBS: No tem sentido usar a opo AllowOverride dentro da diretiva <Location>, ela ser simplesmente
ignorada.
Para acesso ao arquivo .htaccess do diretrio /var/www/focalinux, o Apache buscar os arquivos .htaccess na
sequencia: /.htaccess, /var/.htaccess, /var/www/.htaccess, /var/www/focalinux/.htaccess, qualquer diretiva que
no exista no .htaccess do diretrio /var/www/focalinux ter seu valor definido pela diretiva dos arquivos
.htaccess dos diretrios anteriores. Somente aps esta sequencia de checagens o acesso ao documento
permitido (ou negado).
Por este motivo, muitos administradores decidem desativar completamente o uso de arquivos .htaccess no
diretrio raz e habilitar somente nos diretrios especificados pela diretiva <Directory> no arquivo de
configurao do Apache, evitando brechas de segurana na manipulao destes arquivos (esta uma boa idia a
no ser que se dedique 24 horas somente na administrao do seu servidor Web e conhea toda sua estrutura
hierrquica de segurana:
<Directory />
AllowOverride none
</Directory>
<Directory /var/www>
AllowOverride limit authconfig indexes
</Directory>
Na especificao acima, o arquivo .htaccess ser procurado no diretrio /var/www e seus sub-diretrios, usando
somente opes que controlam a autorizao de acesso (limit), autenticao e opes (authconfig) e de
indexao de documentos (indexes).
Guia Foca GNU/Linux

285

Alguns exemplos do uso do arquivo .htaccess:


Para permitir o acesso direto de usurios da rede 192.168.1.* diretamente, e requerer senha de acesso para
outros usurios, o seguinte arquivo .htaccess deve ser criado no diretrio /var/www:
Order deny,allow
allow from 192.168.1.0/24
deny from all
AuthName "Acesso a pgina Web principal da Empresa"
AuthType basic
AuthUserFile /var/cache/apache/senhas
Require valid-user
Satisfy any
Note que a sintaxe exatamente a mesma das usadas na diretivas de acesso, por este motivo vou dispensar
explicaes detalhadas a respeito.
ATENO: A diretiva Options Indexes dever ser especificada no AllowOverRide e no no arquivo .htaccess.
Agora voc j sabe o que fazer se estiver recebendo erros 500 ao tentar acessar a pgina (Erro interno no
servidor)...

33.7.5 Usando a diretiva SetEnvIf com Allow e Deny


possvel especificar o acesso baseado em variveis de ambiente usando a diretiva SetEnvIf, isto lhe permite
controlar o acesso de acordo com o contedo de cabealhos HTTP. A sintaxe a seguinte:
SetEnvIf [atributo] [expresso] [varivel]
Isto poder ser facilmente interpretado como: Se o "atributo" especificado conter a "expresso", a "varivel" ser
criada e armazenar o valor verdadeiro. Veja abaixo:
SetEnvIf User-Agent ".*MSIE*." EXPLODER
<Directory /var/www>
Order deny,allow
allow from all
deny from env=EXPLODER
</Directory>
Se o Navegador (campo User-Agent do cabealho http) usado para acessar a pgina for o Internet Explorer, a
varivel EXPLODER ser criada e ter o valor verdadeiro (porque a expresso de SetEnvIf conferiu com a
expresso).
Note o uso de "deny from env=VARIVEL". Neste caso se o navegador for o Internet Explorer, o acesso ser
bloqueado (pois o navegador conferiu, assim a varivel EXPLODER recebeu o valor verdadeiro).
permitido especificar as diretivas de acesso normais junto com especificao de variveis de ambiente, basta
separa-los com espaos. Uma descrio completa dos cabealhos HTTP, contedo e parmetros aceitos por cada
um so descritos na RFC 2068.

33.7.6 A diretiva <Limit>


Esta diretiva semelhante a <Directory> mas trabalha com mtodos HTTP (como GET, PUT, POST, etc) ao
invs de diretrios. A diretiva <Limit> pode ser usada dentro da diretiva de acesso <Directory>, <Location>,
mas nenhuma diretiva de controle de acesso pode ser colocada dentro de <Limit>.
Os mtodos HTTP vlidos so: GET, POST, PUT DELETE, CONNECT, OPTIONS, TRACE, PATCH,
PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK e UNLOCK. Note que os mtodos so casesensitive. Por exemplo:
<Directory /var/www>
Option Indexes
<Limit POST PUT DELETE>
Order deny,allow
allow from 192.168.1.0/24
deny from all
</Limit>
</Directory>
Somente permitem o uso dos mtodos POST, PUT, DELETE de mquinas da rede interna.
OBS1: Se o mtodo GET bloqueado, o cabealho HTTP tambm ser bloqueado.
OBS2: A diretiva de acesso <Limit> somente ter efeito na diretiva <Location> se for especificada no arquivo
de configurao do servidor web. A diretiva <Location> simplesmente ignorada nos arquivos .htaccess...
Este abaixo usado por padro na distribuio Debian para restringir para somente leitura o acesso aos
diretrios de usurios acessados via mdulo mod_userdir:
Guia Foca GNU/Linux

286

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>

33.7.7 Diretiva <LimitExcept>


Esta diretiva semelhante a <Limit>, mas atinge todos os mtodos HTTP, menos os especificados.

33.8 Definindo documentos de erro personalizados


Documentos de erros personalizados so definidos atravs da diretiva ErrorDocument. possvel especificar
cdigos de erros que sero atendidos por certos documentos ou colocar esta diretiva dentro de blocos de
controle de acesso <Directory>, <Location> ou <VirtualHost> para que tenham mensagens de erro
personalizadas, ao invs da padro usada pelo servidor httpd.
ErrorDocument [cdigo de erro] [documento]
Onde:
cdigo de erro - Cdigo de erro da mensagem (veja Cdigos HTTP, Seo 33.15 como referncia). O
cdigo de erro 401 deve referir-se a um arquivo local.
documento - Documento, mensagem de erro ou redirecionamento que ser usado no servidor caso aquele
cdigo de erro seja encontrado:
Para definir uma mensagem de erro padro para todo servidor web, basta colocar a diretiva ErrorDocument fora
das diretivas que controlam o acesso a diretrios e virtual hosts (o incio do arquivo httpd.conf ideal).
Exemplos:
ErrorDocument 404 /cgi-bin/erros404.pl - Direciona para um script em Perl que manda um e-mail ao
administrador falando sobre o link quebrado e envia o usurio a uma pgina de erro padro.
ErrorDocument 404 /naoencontrada.html - Direciona o usurio para o arquivo naoencontrada.html
(dentro de DocumentRoot) quando ocorrer o erro 404. Note que o diretrio / levado em considerao o
especificado pela diretiva DocumentRoot.
ErrorDocument 500 "Erro Interno no servidor" - Mostra a mensagem na tela quando ocorrer o erro 500.
ErrorDocument 401 /obtendoacesso.html - Direciona o usurio ao arquivo explicando como obter acesso
ao sistema.
ErrorDocument 503 http://www.focalinux.org/servicos.html - Redireciona o usurio a URL especificada.
ErrorDocument 403 "Acesso negado" - Mostra a mensagem na tela no caso de erros 403.

33.9 Mdulos DSO


Os mdulos DSO permitem adicionar/remover caractersticas do Apache sem necessidade de recompilar todo o
servidor web, assim interrompendo o servio para a atualizao dos arquivos. Mdulos de programas terceiros
tambm podem ser compilados e adicionado sem problemas atravs deste recurso.
Os mdulos so carregados atravs da diretiva LoadModule no arquivo de configurao. O formato o seguinte:
LoadModule [nome_do_modulo] [caminho_do_arquivo_so]
Onde:

nome_do_modulo - Especifica o nome do mdulo, no deve conter espaos.

caminho_do_arquivo_so - Define a localizao do arquivo que contm o mdulo especificado.


Por padro os mdulos esto localizados em /usr/lib/apache/[verso]
A posio em que os mdulos aparecem podem ter influncia em seu funcionamento, alguns requerem que
sejam especificados antes de outros mdulos para funcionarem corretamente (como o mdulo php3_module,
que deve ser carregado antes de qualquer mdulo de controle de CGI's). Leia a documentao especfica sobe o
mdulo em caso de dvidas, os mdulos que acompanham o Apache so documentados em detalhes no manual
do Apache.
Para usar uma caracterstica/diretiva/opo do Apache que dependa de um certo mdulo, obviamente voc
Guia Foca GNU/Linux

287

dever carregar o mdulo correspondente (em caso de dvidas, leia a documentao sobre o mdulo). Veja a
httpd.conf, Seo 33.14.1 para exemplos do uso da diretiva LoadModule.
Por exemplo, se voc quiser utilizar as diretivas de autorizao (allow, deny, order) dever ter o mdulo
mod_access carregado, para usar as diretivas de autorizao (authname, authuserfile, authtype, etc) dever ter o
mdulo mod_auth carregado. Mais detalhes podem ser encontrados em Autorizao, Seo 33.7.1. OBS: O
suporte a DSO atualmente s est disponvel para plataforma UNIX e seus derivados, como o Linux.
Tambm possvel ativar certas diretivas verificando se o mdulo correspondente estiver ou no carregado
atravs da diretiva IfModule:
<IfModule mod_userdir.c>
UserDir disabled root
UserDir public_html
</IfModule>
Nas linhas acima, as diretivas UserDir somente sero executadas se o mdulo mod_userdir.c estiver carregado
atravs da diretiva LoadModule.
Segue abaixo uma lista de mdulos padres que acompanham do Apache, os mdulos marcados com "*" so
ativados por padro:
Criao de Ambiente
* mod_env - Ajusta variveis de ambiente para scripts CGI/SSI
* mod_setenvif - Ajusta variveis de ambiente de acordo com cabealhos http
mod_unique_id - Gera identificadores nicos para requisies
Deciso de tipo de contedo de arquivos
* mod_mime - Determinao de tipo/encodificao do contedo (configurado)
mod_mime_magic - Determinao de tipo/encodificao do contedo (automtico)
* mod_negotiation - Seleo de contedo baseado nos cabealhos "HTTP Accept*"
Mapeamento de URL
* mod_alias - Traduo e redirecionamento de URL simples
mod_rewrite - Traduo e redirecionamento de URL avanado
* mod_userdir - Seleo de diretrios de recursos por nome de usurio
mod_speling - Correo de URLs digitadas incorretamente
mod_vhost_alias - Suporte para virtual hosts dinmicamente configurados em massa.
Manipulao de Diretrios
* mod_dir - Manipulao de Diretrio e arquivo padro de diretrio
* mod_autoindex - Gerao de ndice automtico de diretrio
Controle de Acesso
* mod_access - Controle de acesso por autorizao (usurio, endereo, rede)
* mod_auth - Autenticao HTTP bsica (usurio, senha)
mod_auth_dbm - Autenticao HTTP bsica (atravs de arquivos NDBM do Unix)
mod_auth_db - Autenticao HTTP bsica (atravs de arquivos Berkeley-DB)
mod_auth_anon - Autenticao HTTP bsica para usurios no estilo annimo
mod_auth_digest - Autenticao MD5
mod_digest - Autenticao HTTP Digest
Respostas HTTP
mod_headers - Cabealhos de respostas HTTP (configurado)
mod_cern_meta - Cabealhos de respostas HTTP (arquivos no estilo CERN)
mod_expires - Respostas de expirao HTTP
* mod_asis - Respostas HTTP em formato simples (raw)
Scripts
* mod_include - Suporte a Includes no lado do servidor (SSI - Server Sides Includes)
* mod_cgi - Suporte a CGI (Common Gateway Interface)
* mod_actions - Mapeia scripts CGI para funcionarem como 'handlers' internos.
Manipuladores de contedo Interno
* mod_status - Visualiza status do servidor em tempo de execuo.
mod_info - Visualiza sumrio de configurao do servidor.
Registros de Requisies
* mod_log_config - Registro de requisies personalizveis
mod_log_agent - Registro especializado do User-Agent HTTP (depreciado)
Guia Foca GNU/Linux

288

mod_log_refer - Registro especializado do Referrer HTTP (depreciado)


mod_usertrack - Registro de cliques de usurios atravs de Cookies HTTP
Outros
* mod_imap - Suporte a Mapeamento de Imagem no lado do servidor.
mod_proxy - Mdulo de Cache do Proxy (HTTP, HTTPS, FTP).
mod_so - Inicializao do Dynamic Shared Object (DSO)
Experimental
mod_mmap_static - Cache de pginas frequentemente servidas via mmap()
Desenvolvimento
mod_example - Demonstrao da API do Apache (somente desenvolvedores)

33.10 Sistema de Log do Apache


O Apache bem flexvel na especificao do que ser registrado em seus arquivos de log, possibilitando utilizar
um arquivo de log nico, diversos arquivos de logs registrando cada evento ocorrido no sistema (conexo,
navegador, bloqueio de acesso, erros, etc) incluindo os campos que deseja em cada arquivo e a ordem dos
campos em cada um deles.
Enfim qualquer coisa pode ser especificada de forma que atenda as suas necessidades particulares de logging.

33.10.1 AgentLog
AgentLog arquivo/pipe: Indica o nome do arquivo que registrar o nome do navegador que est acessando a
pgina (contedo do cabealho User-Agent). possvel usar o pipe "|" para direcionar os erros para um
programa de formatao ou processamento. ATENO: Se um programa for usado como pipe, ele ser
executado sob o usurio que inciou o apache. Revise o cdigo fonte do programa para ter certeza que no
contm falhas que possam comprometer a segurana de seu sistema.
Exemplo: AgentLog /var/log/apache/agent.log

33.10.2 ErrorLog
ErrorLog arquivo/pipe - Especifica o arquivo que registrar as mensagens de erro do servidor Apache.
possvel usar o pipe "|" para direcionar os erros para um programa de formatao ou processamento.
Exemplo: ErrorLog /var/log/apache/errors.log

33.10.3 CustomLog
Permite especificar onde os logs sero gravados para os arquivos de logs personalizados. Esta diretiva tambm
aceita apelidos definidos pela diretiva LogFormat.
CustomLog [arquivo/pipe] [formato/nome]
Onde:
arquivo/pipe - Arquivo de log personalizado ou pipe.
formato/nome - Especifica o formato do arquivo de log (da mesma forma que o especificado na opo
LogFormat). Dever ser especificado entre "aspas" caso tiver espaos. Veja LogFormat, Seo 33.10.11
para detalhes.
Ao invs de especificar o formato, tambm possvel usar um apelido definido pela opo LogFormat
(LogFormat, Seo 33.10.11), neste caso os parmetros definidos pelo LogFormat para "nome" sero atribudos
a diretiva CustomLog.
Exemplos:
CustomLog /var/log/apache/common.log "%h %l %u %t \"%r\" %>s %b"
CustomLog /var/log/apache/common.log common

33.10.4 RefererLog
RefererLog [arquivo/pipe]: Indica que arquivo/pipe registrar os campos Referer do cabealho HTTP. Esta
diretiva mantida por compatibilidade com o servidor web NCSA 1.4.
A configurao padro do Apache usa uma diretiva alternativa para a especificao do referer que a seguinte:
LogFormat "%{Referer}i -> %U" referer
CustomLog /var/log/apache/referer.log referer
Exemplo: RefererLog /var/log/apache/referer.log

33.10.5 RewriteLog
Guia Foca GNU/Linux

289

RewriteLog: [arquivo/pipe]: Indica o arquivo/pipe que registrar qualquer regravao de URL feita pelo
Apache.
OBS: No recomendvel direcionar o nome de arquivo para /dev/null como forma de desativar este log,
porque o mdulo de regravao no cria a sada para um arquivo de log, ele cria a sada de log internamente.
Isto somente deixar o servidor lento. Para desativar este registro, simplesmente remova/comente a diretiva
RewriteLog ou use a opo RewriteLogLevel 0.
Exemplo: RewriteLog "/usr/local/var/apache/logs/rewrite.log

33.10.6 RewriteLogLevel
RewriteLogLevel [num]: Especifica os detalhes que sero includos no registro da opo RewriteLog, os valores
permitidos esto entre 0 e 9. Se for usado 0, o registro do RewriteLog totalmente desativado (esta a padro).
OBS: Qualquer valor acima de 2 deixa o servidor Web cada vez mais lento devido ao processamento e a
quantidade de detalhes registrados no arquivo especificado por RewriteLog.

33.10.7 ScriptLog
ScriptLog [arquivo]: Especifica o nome do arquivo de log que receber as mensagens de erros gerados por
scripts CGI executados no servidor. Esta opo controlada pelo mdulos mod_cgi.
Os arquivos de log sero abertos por um sub-processo rodando com as permisses do usurio especificado na
diretiva "user".
OBS: Esta opo somente recomendada como depuradora de scripts CGI, no para uso contnuo em
servidores ativos.
Exemplo: ScriptLog /var/log/apache/cgiscripts.log

33.10.8 ScriptLogBuffer
ScriptLogBuffer: Especifica o tamanho do cabealho PUT ou POST gravado no arquivo especificado por
ScriptLog. O valor padro 1024 bytes. Esta opo controlada pelo mdulos mod_cgi
Exemplo: ScriptLogBuffer 512

33.10.9 ScriptLogLength
ScriptLogLength: [tamanho]: Especifica o tamanho mximo do arquivo de log gerado pela opo ScriptLog. O
valor padro 10385760 bytes (10.3MB). Esta opo controlada pelo mdulos mod_cgi
Exemplo: ScriptLogLength 1024480

33.10.10 TransferLog
TransferLog [arquivo/pipe]: Indica o arquivo que armazenar as transferncias entre o servidor http e o cliente.
Ela cria o arquivo de log com o formato definido pela opo LogFormat mais recente ou o formato padro do
arquivo de log do Apache.
Se omitido, o arquivo no ser gerado
Exemplo: TransferLog /var/log/apache/transferncias.log

33.10.11 LogFormat
LogFormat: Define os campos padres do arquivo gerado pela opo TransferLog. O seu formato o seguinte:
LogFormat [formato] [nome]
Quando o formato no especificado, assume o valor padro %h %l %u %t \"%r\" %s %b. A especificao do
[nome] permite que voc utilize o formato especificado em uma opo CustomLog ou outra diretiva LogFormat,
facilitando a especificao do formato do log.
Os seguintes formatos so vlidos:
%b - Bytes enviados, excluindo cabealhos HTTP.
%f - Nome do arquivo.
%{FOOBAR}e - O contedo da varivel de ambiente FOOBAR.
%h - Mquina cliente.
%a - Endereo IP da mquina cliente.
%A - Endereo IP local. Muito til em virtual hostings.
%{Foobar}i - O contedo de Foobar: linhas de cabealho na requisio enviada ao servidor.
%l - O nome de login remoto enviado pelo identd (se fornecido).
%{Foobar}n - O contedo de "FooBar" de outro mdulo.
Guia Foca GNU/Linux

290

%{Foobar}o: - O contedo de Foobar: linhas de cabealho na resposta.


%p - A porta do servidor servindo a requisio.
%P - A identificao do processo filho que serviu a requisio.
%r - A primeira linha da requisio.
%s - Status. Para requisies que foram redirecionadas. internamente. Este o status de uma requisio
*original*. Use %s para a ltima.
%t - Hora, no formato do arquivo de log (formato ingls padro).
%{format}t - Hora, no formato definido por strftime.
%T - O tempo necessrio para servir a requisio, em segundos.
%u - Usurio remoto (atravs do auth, pode ser falso se o status de retorno (%s) for 401).
%U - O caminho da URL requisitada.
%v - O nome canoico definido por ServerName que serviu a requisio.
%V - O nome do servidor de acordo com a configurao de UseCanonicalName.
Exemplos:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %v" full
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %P %T" debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

33.10.12 LogLevel
Define o nvel de alerta das mensagens que sero gravadas no arquivo especificado pela diretiva ErrorLog.
Quando no especificado, assume o nvel "error" como padro. Abaixo os parmetros aceitos em sua
respectiva ordem de importncia:
emerg - O sistema est inutilizvel.
alert - A ao deve ser tomada imediatamente.
crit - Condies crticas.
error - Condies de erro.
warn - Condies de alerta.
notice - Condio normal mas significante.
info - Mensagens informativas.
debug - Mensagens do nvel de depurao.
Note que os nveis so os mesmos usados pelo syslog. Quando um nvel particular especificado, as mensagens
de todos os nveis de maior importncia tambm sero registrados. Por exemplo, se o nvel "info" for
especificado, as mensagens com os nveis de "notice" e "warn" tambm sero registradas. recomendado o uso
de um nvel de no mnimo crit.

33.10.13 Anonymous_LogEmail
Se estiver como "on" a senha digitada ser registrada no arquivo especificado por ErrorLog. Esta diretiva
ativada por padro.
Exemplo: Anonymous_LogEmail off

33.10.14 CookieLog
Especifica o arquivo que ser usado para registrar os cookies
OBS1: Caso o caminho do arquivo no for especificado nas diretivas, ser assumido DocumentRoot como
diretrio padro.
OBS2: Caso esteja usando o pipe, o dono do processo ser o mesmo que inciou o servidor WEB Apache. Tenha
certeza do funcionamento do programa para no comprometer o seu sistema, e cuide para que ele no possa ser
modificado indevidamente por outros usurios.
Exemplo: CookieLog /var/log/apache/cookies.log

33.10.15 Relatrio grfico de acesso ao sistema


O programa webalizer poder ser instalado para gerar um relatrio grfico com a estatsticas de visitas por
ano/mes/dia/hora usando os dados do access.log. Outra interessante caracterstica so as estatsticas de cdigos
Guia Foca GNU/Linux

291

http (veja Cdigos HTTP, Seo 33.15), onde possvel saber a quantidade de links quebrados existentes em
nosso servidor (estes podero ser detectados usando o pacote de anlise de sites linbot). O webalizer tambm
compatvel com os formatos de log do squid e proftpd. Na distribuio Debian ele pode ser instalado a partir do
pacote webalizer e gera um relatrio geral quando executado sem opes.

33.11 Configurando o Apache como servidor proxy


O Apache pode ser configurado para funcionar como servidor proxy transparente para sua rede interna,
possibilitando inclusive o uso de cache de disco. possvel se fazer conexes HTTP (incluindo SSL) e FTP.
Atravs desta caracterstica tambm possvel usar uma das caractersticas mais interessante desse servidor
web: o redirecionamento de conexes para uma determinada URL para uma outra mquina, que pode ser um
outro host remoto ou uma mquina da rede interna (no acessvel diretamente via Internet).
O primeiro passo ativar o mdulo de proxy no arquivo httpd.conf, basta descomentar a linha:
# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
O seguinte bloco pode ser colocado no final do arquivo httpd.conf para configurar um servidor proxy para
realizar conexes diretas (sem o uso de cache) e permitir o uso de servidores proxy em sua rede:
# Suporte a Proxy
#
<IfModule mod_proxy.c>
ProxyRequests off
ProxyRemote * http://debian:3128
ProxyBlock microsoft.com microsoft.com.br
NoProxy 192.168.1.0/24
ProxyDomain .gms.com.br
# Ativa/Desativa a manipulao de cabealhos HTTP/1.1 "Via:".
#
# ("Full" adiciona a verso do servidor Apache; "Block" remove todos os cabealhos
# de sada "Via:")
# Escolha uma das opes: Off | On | Full | Block
#
#ProxyVia On
#</IfModule>
Segue a explicao de cada uma das diretivas acima:
ProxyRequests [on/off] - Ativa (on) ou Desativa (off) o servio de proxy do servidor Apache. Note que o
mdulo libproxy.so deve estar carregado para que o bloco <IfModule libproxy.c> seja processado. A
desativao desta diretiva no afeta a diretiva ProxyPass.
ProxyRemote [origem] [URL] - Esta opo til para fazer o Apache redirecionar suas requisies para
outro servidor proxy (como o squid ou o gateway da rede, caso o Apache estiver sendo executado em uma
mquina interna). A origem pode ser uma URL completa (como http://www.debian.org), uma URL parcial
(como ftp, http) ou "*" para que o redirecionamento seja sempre usado.
ProxyBlock [padro] - Permite bloquear o acesso a endereos que contenham o padro especificado.
Podem ser especificadas palavras, mquinas, domnios, URLs separados por espaos. O Apache far a
resoluo DNS no caso de endereos IP e far o cache para requisies futuras.
NoProxy [endereos] - Permite especificar endereos Internos que no sero redirecionados para o
servidor proxy especificado por ProxyRemote. Podem ser usados nomes de mquinas, endereos IP,
subredes ou domnios separados por espaos.
ProxyDomain [endereo] - Especifica o endereo que ser adicionado a URL caso seja recebida uma
requisio que contenha somente um nome de mquina. til em redes Internas.
Note que quando o suporte a proxy no est ativado no Apache, qualquer endereo de URL externa levar a
pgina definida pela diretiva DocumentRoot. Isto deixar de funcionar aps configurar o servio de proxy.
O uso do cache interessante para acelerar as requisies http da rede interna para a rede externa, desta forma,
se uma requisio foi feita anteriormente, ser descarregado o arquivo do disco rgido e assim evitar uma nova
conexo externa (isto libera a rede para outras coisas). Para configurar um cache no servio proxy, adicione as
seguintes linhas no final do bloco anterior de proxy:
# As linhas abaixo ativam o cache do apache, o cache no funcionar ao menos que
# CacheRoot seja especificado
CacheRoot /var/spool/apache
CacheForceCompletion 70
CacheSize 5
Guia Foca GNU/Linux

292

CacheGcInterval 3
CacheDefaultExpire 5
CacheMaxExpire 300
NoCache 192.168.1.0/24 a_domain.com outrodomnio.com.br outro.dominio.net
Cada diretiva acima possui o seguinte significado:
CacheRoot - Diretrio base onde sero criados os outros diretrios de cache. O cache s ser ativado se
esta diretiva for definida.
CacheForceCompletion [num] - Se uma transferncia for cancelada e passar de num%, o Apache
continuar a transferncia e armazenar o arquivo no cache. O valor padro 90.
CacheSize [num] - Define o tamanho mximo do diretrio de cache do Apache, em KB. No especifique
um valor que tome mais de 70% do espao em disco. O valor padro 5.
CacheGcInterval [num] - Define o tempo que o cache ser checado em busca de arquivos maiores que o
total do cache. Arquivos que ultrapassem o tamanho do cache so automaticamente eliminados.
CacheDefaultExpire [num] - Define o tempo que os documentos ficaro no cache, se foram transferidos
atravs de protocolos que no suportam horas de expirao. O valor padro 1 hora.
CacheMaxExpire [num] - Define o tempo que os documentos permanecero armazenados no cache (em
horas). Esta opo ignora a hora de expirao do documento (caso fornecida). O valor padro 24 horas.
NoCache [endereos] - Permite especificar lista de palavras, mquinas, domnios, IP's que no sero
armazenados no cache do Apache. Caso seja usado NoCache * o cache ser desativado completamente.
Note que o cache tambm pode ser desativado comentando a diretiva CacheRoot.
Se voc desejar um servidor cache mais flexvel, rpido, dinmico, configurvel (com possibilidade de uso de
restries baseadas em URL, tempo de acesso, autenticao), instale o squid e configure o apache para fazer
forward de conexes para ele (Redirecionamento de conexes no Apache, Seo 33.11.2).

33.11.1 Controlando o acesso ao servidor proxy


Incluir o bloco abaixo no arquivo access.conf para definir o acesso dos servios de proxy nas redes desejadas (se
a sua configurao for aberta como padro isto pode ser opcional):
# Acesso aos servios proxy do apache
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from .seudominio.com.br
</Directory>
Para explicaes sobre o processo de bloqueio acima, veja Autorizao, Seo 33.7.1.

33.11.2 Redirecionamento de conexes no Apache


Este recurso do Apache interessante para criar clusters de servidores em sua rede interna. O que ele faz pegar
uma requisio a um determinado endereo e redireciona-lo a outra mquina e as respostas so repassadas ao
servidor web (para o cliente a mesma mquina esta atendendo a requisio, para voc o processamento das
requisies esta sendo distribuido internamente na rede).
As seguintes diretivas so usadas para realizar o redirecionamento de conexes: ProxyPass e ProxyPassReverse
ProxyPass [diretrio_da_url [outro_servidor:/diretrio]
A ProxyPass permite que a URL seja redirecionada para o servidor local e diretrio especificado. Por
exemplo, assumindo que o endereo principal de nosso servidor http://www.focalinux.org e desejamos que
a URL http://www.focalinux.org/download seja atendida por uma mquina localizada na nossa rede privada
com o endereo http://192.168.1.54. Basta incluir a linha:
ProxyPass /download http://192.168.1.54
Qualquer requisio externa a http://www.focalinux.org/download/iniciante ser atendida por
http://192.168.1.54/iniciante.
ProxyPassRemote [diretrio_da_url [outro_servidor:/diretrio]
Esta diretiva permite modificar o cabealho Location nas mensagens de respostas de redirecionamento
enviadas pelo Apache. Isto permite que o endereo retornado seja o do servidor (que faz a interface externa
com o cliente) e no da mquina do redirecionamento.
ProxyPass
/download http://192.168.1.54
ProxyPassReverse /download http://192.168.1.54
Se a mquina 192.168.1.54 redirecionar a URL para http://192.168.1.54/download/iniciante, a resposta ser
modificada para http://www.focalinux.org/download/iniciante antes de ser retornada ao cliente.
Guia Foca GNU/Linux

293

33.12 Virtual Hosts


Virtual Hosts (sites virtuais) um recurso que permite servir mais de um site no mesmo servidor. Podem ser
usadas diretivas especficas para o controle do site virtual, como nome do administrador, erros de acesso a
pgina, controle de acesso e outros dados teis para personalizar e gerenciar o site. Existem 2 mtodos de virtual
hosts:

Virtual Hosts baseados em IP - Requer um endereo IP diferente para cada site. Este poder ser um IP
real (da interface de rede) ou um apelido (veja Definindo diversos endereos IP para a mesma interface de
rede, Seo 15.10), o que interessa que deve haver um endereo IP diferente para cada site. O nmero de
sites servidos estar limitado a quantidade de endereos IP disponveis em sua classe de rede. Veja Virtual
hosts baseados em IP, Seo 33.12.1 para detalhes de como construir um virtual host deste tipo.
O apache foi um dos primeiros a incluir suporte a virtual hosts baseados em IP.

Virtual Hosts baseados em nome - Este utiliza nomes para identificar os sites servidos e requerem
somente um endereo IP. Desta maneira possvel servir um nmero ilimitado de sites virtuais. O
navegador do cliente deve suportar os cabealhos necessrios para garantir o funcionamento deste recurso
(praticamente todos os navegadores atuais possuem este suporte). Veja Virtual hosts baseados em nome,
Seo 33.12.2 para detalhes de como construir um virtual host deste tipo.
As explicaes desta seo so baseadas na documentao do Apache.

33.12.1 Virtual hosts baseados em IP


Existem duas maneiras de rodar este tipo de host virtual: Atravs de daemons httpd separados ou em um nico
daemon httpd usando a diretiva <VirtualHost>.
As vantagens do uso de daemons separados para servir requisies a proteo sob UID e GID diferente dos
outros servidores, assim o administrador do site1 no ter acesso ao httpd.conf, pgina do site2 (porque ele
estar rodando sob uma UID e GID diferentes e o acesso restrito). Para usar este mtodo, especifique a opo
-f [arquivo_cfg] para utilizar um arquivo de configurao personalizado e a diretiva Listen endereo:porta para
dizer onde o servidor aguardar as requisies.
As vantagens do uso de um mesmo daemon para servir as requisies so: quando no h problema se os
administradores de outros sites tenham acesso ao mesmo arquivo de configurao ou quando h a necessidade
de servir muitas requisies de uma s vez (quanto menos servidores web estiverem em execuo, melhor o
desempenho do sistema). Abaixo um exemplo de configurao de virtual hosts servindo os sites
www.site1.com.br e www.site2.com.br:
ServerAdmin webmaster@site.com.br
<VirtualHost www.site1.com.br>
ServerName www.site1.com.br
ServerAdmin site1@site1.com.br
DocumentRoot /var/www/www_site1_com_br
TransferLog /var/log/apache/site1/access.log
ErrorLog /var/log/apache/site1/error.log
User www-data
Group www-data
</VirtualHost>
<VirtualHost www.site2.com.br>
ServerName www.site2.com.br
DocumentRoot /var/www/www_site2_com_br
TransferLog /var/log/apache/site2/access.log
ErrorLog /var/log/apache/site2/error.log
</VirtualHost>
Qualquer diretiva dentro de <VirtualHost> controlaro tero efeito no site virtual especificado. Quando uma
diretiva no for especificada dentro de <VirtualHost>, sero usados os valores padres especificados no arquivo
de configurao do Apache (como a diretiva ServerAdmin webmaster@site.com.br que ser usado como padro
na configurao de www.site2.com.br).
Digite apache -S para ver suas configuraes de virtual hosts atual.
OBS1: Desative a diretiva UseCanonicalName off quando utilizar o recurso de mquinas virtuais, esta diretiva
faz que o nome do servidor retornado usando o valor em ServerName quando o cliente digita um endereo
qualquer.
OBS2: Utilize sempre que possvel endereos IP em configuraes crticas, assim os servios no sero to
vulnerveis a possveis falsificaes ou erros. Veja /etc/host.conf, Seo 15.6.2.2 e Proteo contra IP spoofing,
Seo 31.6.5. Leia tambm a seo Segurana no uso de IP's em Virtual Hosts, Seo 33.12.3.
OBS3: No permita que outros usurios a no ser o root e o dono do processo Apache (especificado pela
Guia Foca GNU/Linux

294

diretiva User) tenham acesso de gravao aos logs gerados pelo servidor, pois os dados podem ser apagados ou
criados links simblicos para binrios do sistema que sero destrudos quando o Apache gravar dados. Alguns
binrios e bibliotecas so essenciais para o funcionamento do sistema.

33.12.2 Virtual hosts baseados em nome


Este mtodo idntico ao baseado em IP, em especial adicionamos a diretiva NameVirtualHost para dizer qual
o endereo IP do servidor que est servindo os virtual hosts baseados em nome. Veja o exemplo de
configurao:
NameVirtualHost 200.200.200.10:80
<VirtualHost 200.200.200.10>
ServerName www.site1.com.br
ServerAdmin admin1@site1.com.br
DocumentRoot /var/www/www_site1_com_br
TransferLog /var/log/apache/site1/access.log
ErrorLog /var/log/apache/site1/error.log
</VirtualHost>
<VirtualHost 200.200.200.10>
ServerName www.site2.com.br
ServerAdmin admin2@site2.com.br
DocumentRoot /var/www/www_site2_com_br
TransferLog /var/log/apache/site2/access.log
ErrorLog /var/log/apache/site2/error.log
</VirtualHost>
A diretiva NameVirtualHost diz que ser usado virtual hosts baseados em nome servidos pela mquina com IP
200.200.200.10. Os parmetros dentro do bloco das diretivas <VirtualHost > so especficas somente no site
virtual especificado, caso contrrio os valores padres definidos no arquivo de configurao sero usados.
Digite apache -S para ver suas configuraes de virtual hosts atual. Se sua inteno criar um grande nmero de
virtual hosts que sero servidos pela mesma mquina, o uso da expanso %0 e diretivas VirtualDocumentRoot e
VirtualScriptAlias so recomendados:
NameVirtualHost 200.200.200.10:80
<VirtualHost 200.200.200.10>
VirtualDocumentRoot /var/www/%0
VirtualScriptAlias /var/www/%0/cgi-bin
TransferLog log/apache/site1/access.log
ErrorLog log/apache/site1/error.log
</VirtualHost>
Agora crie os diretrios em /var/www correspondentes aos nomes de domnios que sero servidos por sua
mquina: mkdir /var/www/www.site1.com.br, mkdir /var/www/www.site2.com.br. Note que sua mquina
dever estar com o DNS configuraro para responder por estes domnios .
ATENO importante que os endereos especificados nas diretivas ServerName (www.site1.com.br)
resolvam o endereo IP da diretiva VirtualHost (200.200.200.10). Isto deve ser feito via DNS ou nos arquivos
/etc/hosts.
OBS1: Utilize sempre que possvel endereos IP em configuraes crticas, assim os servios no sero to
vulnerveis a possveis falsificaes ou erros. Veja /etc/host.conf, Seo 15.6.2.2 e Proteo contra IP spoofing,
Seo 31.6.5. Leia tambm a seo Segurana no uso de IP's em Virtual Hosts, Seo 33.12.3.
OBS2: No permita que outros usurios a no ser o root e o dono do processo Apache (especificado pela
diretiva User) tenha acesso de gravao aos logs gerados pelo servidor. Pois os dados podem ser apagados ou
criados links para binrios do sistema que sero destrudos quando o apache gravar dados para os logs. Alguns
binrios e bibliotecas so essenciais para o funcionamento do sistema.

33.12.3 Segurana no uso de IP's em Virtual Hosts


Quando voc est colocando um nome na diretiva de configurao do seu virtual hosts, est assumindo que ele
resolver o endereo IP corretamente (como www.site1.com.br => 200.200.200.10). Se por algum motivo o
servidor DNS for modificado (por outra pessoa que tem acesso a isto), o endereo IP resolvido para o site
www.site1.com.br poder ser modificado para 200.200.200.20, isto redirecionar as requisies para outra
mquina ao invs da mquina correta. Este tipo de ataque chamado "DNS Spoofing" e o uso de endereo IP
(ao invs de nomes) praticamente evita que isto acontea. Esta situao pode acontecer com a diretiva abaixo:
<VirtualHost www.gms.com.br>
ServerName www.gms.com.br
Guia Foca GNU/Linux

295

ServerAdmin gleydson@escelsanet.com.br
DocumentRoot /var/www/www_gms_com_br
</VirtualHost>
Outra situao, que impede o funcionamento do servidor Web, quando o servidor DNS est em manuteno ou
por algum outro motivo no pode resolver o endereo IP de um nome especificado (como www.site1.com.br). O
apache precisa saber qual o seu endereo IP para ser executado. Veja a prxima modificao:
<VirtualHost 192.168.1.1>
ServerName www.gms.com.br
ServerAdmin gleydson@escelsanet.com.br
DocumentRoot /var/www/www_gms_com_br
</VirtualHost>
Na configurao acima usamos o IP do servidor para especificar o virtual host. O apache tentar fazer o DNS
reverso para determinar qual nome servido por aquele endereo IP (www.site1.com.br). Se ele falhar, somente
a seo <VirtualHost> correspondente ser desativada. Isto j uma melhoria sobre a primeira configurao. O
nome do servidor na diretiva ServerName garante que o servidor responda com o nome correto.
Para evitar ataques baseados em DNS siga os seguintes procedimentos de segurana:
1.
Preferencialmente utilize o arquivo /etc/hosts para a resoluo de nomes em mquinas locais
(principalmente quando existe somente um administrador). um mtodo que evita diversas consultas ao
servidor DNS (que pode deixar o acesso lento) e este arquivo gerenciado pelo usurio root, isto evita o
acesso de qualquer usurio para a falsificao de endereos.
2.
Este arquivo tambm til caso a pesquisa DNS falhe (quando a ordem de pesquisa for do servidor
DNS para o arquivo hosts no arquivo /etc/host.conf), pois de qualquer forma o nome ser resolvido e o
servidor Apache ser executado.
3.
Evite dar poderes a outros administradores manipularem seu prprio domnio DNS, no h nada que
possa impedi-lo de modificar o endereo "X" para ser servido pelo IP "Y" desviando o trfego para seu
prprio servidor web. Se isto no for possvel, siga as dicas abaixo para diminuir possveis problemas.
4.
Utilize endereos IP na diretiva <VirtualHost>.
5.
Use endereos IP na diretiva Listen.
6.
Use um endereo IP na diretiva BindAddress.
7.
Sempre utilize o parmetro ServerName em todas as diretivas <VirtualHost>, isto evita o retorno
incorreto de nomes (que pode evitar/revelar fraudes).
8.
Quando utilizar virtual hosts, crie uma diretiva <VirtualHost _default_L:*> usando uma diretiva
DocumentRoot que no aponte para lugar algum. Esta diretiva ser acessada quando nenhuma diretiva
VirtualHost servir a requisio, conferindo com o endereo/ip.

33.13 Uso de criptografia SSL


Esta seo uma referncia rpida para configurao e uso do mdulo apache-ssl com o servidor Apache. Este
mdulo realiza a comunicao segura de dados (criptografada) via porta 443 (que usada como padro quando
especificamos uma url iniciando com https://). A transmisso criptografada de dados importante quanto temos
dados confidenciais que precisamos transmitir como movimentao bancria, senhas, nmero de cartes de
crdito, fazer a administrao remota do servidor, etc. SSL significa Secure Sockets Layer (camada segura de
transferncia) e TLS Transport Layer Security (camada segura de Transporte).
A inteno aqui fornecer explicaes prticas para colocar um servidor Apache com suporte a SSL
funcionando no menor tempo possvel. Detalhes sobre funcionamento de certificados, mtodos de criptografia,
assinatura, etc. devero ser buscadas na documentao deste mdulo ou em sites especializados ( um assunto
muito longo).

33.13.1 Servidor apache com suporte a ssl


Ao invs de utilizar o mdulo apache-ssl, voc poder usar o pacote apache-ssl, ele nada mais que um servidor
Apache com o suporte SSL j incluso e no interfere no servidor Apache padro, porque executado somente
na porta 443.
Se voc tem um grande site com configuraes de acesso personalizadas, ele trar mais trabalho de
administrao, pois as configuraes e diretivas de restries de acesso devero ser copiadas para este servidor
web. No entanto, ele indicado para mquinas que sero servidores SSL dedicados ou quando no possui
configuraes especiais em seu servidor web principal.
Esta seo tem por objetivo a instalao do suporte ao mdulo SSL (mod_ssl) no servidor Apache padro.

33.13.2 Instalando o suporte a mdulo SSL no Apache


Guia Foca GNU/Linux

296

Instale o pacote libapache-mod-ssl. Aps instala-lo, edite o arquivo /etc/apache/httpd.conf adicionando a linha
LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so.
Depois, gere um certificado digital ssl com o programa mod-ssl-makecert. Ele ser armazenado por padro nos
diretrios em /etc/apache/ssl.??? e seu uso explicado no resto desta seo.

33.13.3 Gerando um certificado digital


O certificado digital a pea que garante a transferncia segura de dados. Ele contm detalhes sobre a empresa
que far seu uso e quem o emitiu. Para gerar ou modificar um certificado digital, execute o comando mod-sslmakecert e siga as instrues. O mtodo de criptografia usado pelo certificado digital baseado no conceito de
chave pblica/privada, a descrio sobre o funcionamento deste sistema de criptografia feito em Usando pgp
(gpg)para criptografia de arquivos, Seo 39.5.
OBS No utilize acentos nos dados de seu certificado.

33.13.4 Exemplo de configurao do mdulo mod-ssl


Abaixo uma configurao rpida para quem deseja ter um servidor com suporte a SSL funcionando em menor
tempo possvel (ela feita para operar em todas as instalaes e no leva em considerao o projeto de
segurana de sua configurao atual do Apache). Note que todas as diretivas relacionadas com o mdulo
mod_ssl comeam com o nome "SSL":
# Somente processa as diretivas relacionadas a SSL caso o mdulo mod_ssl estiver
# carregado pela diretiva LoadModule
<IfModule mod_ssl.c>
# necessrio especificar as portas que o servidor Web aguardar conexes (normais e
# ssl).
Listen 80
Listen 443
# Ativa o tratamento de conexes com o destino na porta 443 pela diretiva
# VirtualHost abaixo
<VirtualHost _default_:443>
# Ativa ou desativa o mdulo SSL para este host virtual
SSLEngine on
# Certificado do servidor
SSLCertificateFile /etc/apache/ssl.crt/server.crt
# Chave privada de certificado do servidor.
SSLCertificateKeyFile /etc/apache/ssl.key/server.key
# A linha abaixo fora o fechamento de conexes quando a
# conexo com o navegador Internet Explorer interrompida. Isto
# viola o padro SSL/TLS mas necessrio para este tipo de
# navegador. Alguns problemas de conexes de navegadores tambm
# so causados por no saberem lidar com pacotes keepalive.
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
</VirtualHost>
</IfModule>
#################################################################################
# Adicionalmente podero ser especificadas as seguintes opes para modificar #
# o comportamento da seo SSL (veja mais detalhes na documentao do mod-ssl) #
#################################################################################
# Formato e localizao do cache paralelo de processos da seo. O cache de seo
# feito internamente pelo mdulo mas esta diretiva acelera o processamento
# de requisies paralelas feitas por modernos clientes navegadores. Por padro
# nenhum cache usado ("none").
SSLSessionCache
dbm:/var/run/ssl-cache
# Localizao do arquivo de lock que o mdulo SSL utiliza para
# sincronizao entre processos. O padro nenhum.
SSLMutex file:/var/run/ssl-mutex
# Especifica o mtodo de embaralhamento de dados que ser utilizado
# durante o incio de uma seo SSL (startup) ou durante o processo
# de conexo (connect). Podem ser especificados "builtin" ( muito rpido
# pois consome poucos ciclos da CPU mas no gera tanta combinao aleatria), um
# programa que gera nmeros aleatrios (com "exec") ou os dispositivos aleatrios
Guia Foca GNU/Linux

297

# /dev/random e /dev/urandom (com "file"). Por padro nenhuma fonte


# adicional de nmeros aleatrios usada.
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/urandom 512
#SSLRandomSeed connect file:/dev/urandom 512
#SSLRandomSeed connect exec:/pub/bin/NumAleat
# Tipos MIME para download de certificados
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# Tempo mximo de permanncia dos objetos do cache acima. O valor padro
# 300 segundos (5 minutos).
SSLSessionCacheTimeout 300
# Verso do protocolo SSL que ser usada. Podem ser especificadas
# SSLv2, SSLv3 TLSv1 ou all. O mais compatvel com os navegadores atuais
# o "SSLv2". Por padro "all" usado.
#SSLProtocol all
#SSLProtocol -all +SSLv3
# Registra detalhes sobre o trfego neste arquivo. Mensagens de erro
# tambm so armazenadas no arquivo de registro padro do Apache
SSLLog /var/log/apache/ssl-mod.log
# Nvel das mensagens de log registradas por SSLLog
SSLLogLevel info
Algumas diretivas deste mdulo podem fazer parte tanto da configurao global do servidor como diretivas de
acesso (Directory, Location, .htaccess, veja a opo "Context" na documentao do mod_ssl).

33.13.5 Autorizando acesso somente a conexes SSL


Existem casos que precisa restringir o uso de conexes normais e permitir somente conexes via SSL (como por
exemplo, dentro da diretiva de acesso que controla seu acesso a uma pgina com listagem de clientes). A opo
SSLRequereSSL usada para tal e deve ser usada dentro das diretivas de controle acesso:
<Directory /var/www/secure/clientes>
Options Indexes
Order deny,allow
Deny from evil.cracker.com
SSLRequireSSL
</Directory>
A diretiva acima requer que sejam feitas conexes SSL (porta 443 - https://) para acesso ao diretrio
/var/www/secure/clientes, qualquer conexo padro no criptografada (feita na porta 80) ser rejeitada com o
erro 403.
OBS: A diretiva SSLRequireSSL podia ser colocada entre as condicionais "IfModule mod_ssl.c" mas o servidor
web permitiria conexes no criptografadas se por algum motivo esse mdulo no estivesse carregado. Na
configurao acima, ocorrer um erro e impedir o funcionamento do servidor web caso ocorra algum problema
com o mod_ssl.

33.13.6 Iniciando o servidor Web com suporte a SSL


Verifique se a configurao do Apache est ok com apache -t. Caso positivo, reinicie o servidor usando um dos
mtodos descritos em Iniciando o servidor/reiniciando/recarregando a configurao, Seo 33.1.9. O servidor
web lhe pedir a FraseSenha para descriptografar a chave privada SSL (esta senha foi escolhida durante o
processo de criao do certificado).
Esta senha garante uma segurana adicional caso a chave privada do servidor seja copiada de alguma forma.
Somente quem tem conhecimento da FraseSenha poder iniciar o servidor com suporte a transferncia segura de
dados. Verifique se o virtual host est servindo as requisies na porta 443 com apache -S.
O nico mtodo para fazer o servidor web evitar de pedir a senha para descriptografar a chave privada
colocando uma senha em branco. Isto s recomendado em ambientes seguros e o diretrio que contm a chave
privada dever ter somente permisses para o dono/grupo que executa o servidor Web. Qualquer outra
permisso poder por em risco a segurana da instalao caso a chave privada seja roubada. Depois disso,
execute o comando:
# entre no diretrio que contm a chave privada
cd /etc/apache/ssl.key
Guia Foca GNU/Linux

298

# renomeie a chave privada para outro nome


ren server.key server.key-Csenha
openssl rsa -in server.key-Csenha -out server.key
Digite a senha quando pedido. A chave original (com senha) estar gravada no arquivo server.key-Csenha e
poder ser restaurada se necessrio. Reinicie o servidor Apache, desta vez ele no pedir a senha.
OBS1: Tire uma cpia de segurana da chave privada original antes de executar esta operao.
OBS2: No se esquea de ajustar as permisses de acesso no diretrio /etc/apache/ssl.key caso no utilize senha
para proteger seu certificado digital.

33.14 Exemplo comentado de um arquivo de configurao do Apache


O exemplo abaixo foi retirado da distribuio Debian GNU/Linux, fiz sua traduo, modificaes e inclui
alguns comentrios sobre as diretivas para deixa-lo mais de acordo com o contedo abordado pelo guia e mais
auto-explicativo.
A configurao do Apache est distribuda nos arquivos httpd.conf, srm.conf e access.conf e podem ser usados
como modelo para a construo da configurao de seu servidor.

33.14.1 httpd.conf
##
## httpd.conf -- Arquivo de configurao do servidor httpd Apache
##
#
# Baseado nos arquivos de configurao originais do servidor NCSA por Rob McCool.
# Modificado para distribuio junto ao guia Foca GNU/Linux Avanado
# http://www.metainfo.org/focalinux <gleydson@escelsanet.com.br>
#
# Este o arquivo de configurao principal do servidor Apache. Ele contm as
# diretivas de configurao que do ao servidor suas instrues.
# Veja <http://www.apache.org/docs/> para informaes detalhadas sobre as
# diretivas.
#
# NO leia simplesmente as instrues deste arquivo sem entender o que significam
# e o que fazem, se no tiver certeza do que est fazendo consulte a documentao
# on-line ou leia as sees apropriadas do guia. Voc foi avisado.
#
# Aps este arquivo ser processado, o servidor procurar e processar o arquivo
# /etc/apache/srm.conf e ento /etc/apache/access.conf
# a no ser que voc tenha modificado o nome dos arquivos acima atravs das
# diretivas ResourceConfig e/ou AccessConfig neste arquivo.
#
# Configurao e nomes de arquivos de log: Se os nomes de arquivos que
# especificar para os arquivos de controle do servidor iniciam com uma
# "/", o servidor usar aquele caminho explicitamente. Se os nomes *no*
# iniciarem com uma "/", o valor de ServerRoot adicionado -- assim
# "logs/foo.log" com ServerRoot ajustado para "/usr/local/apache" ser
# interpretado pelo servidor como "/usr/local/apache/logs/foo.log".
#
# Originalmente por Rob McCool
# modificado por Gleydson Mazioli da Silva para o guia Foca GNU/Linux
# Carga dos Mdulos de Objetos Compartilhados:
# Para voc ser capaz de usar a funcionalidade de um mdulo que foi construdo como
# um mdulo compartilhado, ser necessrio adicionar as linhas 'LoadModule'
# correspondente a sua localizao, assim as diretivas que os mdulos contm
# estaro disponveis antes de serem usadas.
# Exemplo:
#
# ServerType pode ser inetd, ou standalone. O modo Inetd somente suportado nas
# plataformas Unix. O modo standalone inicia o servidor como um daemon.
#
ServerType standalone
Guia Foca GNU/Linux

299

# Se estiver executando a partir do inetd, v at a diretiva "ServerAdmin".


# Port: A porta que o servidor standalone escutar. Para portas < 1023, ser
# necessrio o servidor funcionando como root inicialmente.
Port 80
#
# HostnameLookups: Registra os nomes DNS dos clientes ou apenas seus endereos
# IP's
# ex., www.apache.org (on) ou 204.62.129.132 (off).
# O valor padro off porque permitir menos trfego na rede. Ativando
# esta opo significa que cada acesso de um cliente resultar em
# NO MNIMO uma requisio de procura ao servidor de nomes (DNS).
#
HostnameLookups off
# Caso desejar que o servidor http seja executado como um usurio ou grupo diferente
# voc deve executar o httpd inicialmente como root e ele modificar sua ID para a
# especificada.
# User/Group: O nome (ou #nmero) do usurio/grupo que executar o servidor httpd.
# No SCO (ODT 3) use "User nouser" e "Group nogroup"
# No HPUX voc pode no ser capaz de usar memria compartilhada como nobody, e
# sugerido que seja criado um usurio www e executar o servidor httpd com
# este usurio, adequando as permisses onde necessrias.
User www-data
Group www-data
# ServerAdmin: Seu endereo de email, para onde os problemas com o servidor devem ser
# enviadas. Este endereo aparecer nas mensagens de erro do servidor.
ServerAdmin gleydson@escelsanet.com.br
#
# ServerRoot: O topo da rvore de diretrios onde os arquivos de configurao do
# servidor, erros, e log so mantidos.
#
# NOTA: Se tiver a inteno de colocar isto em um sistema de arquivos montado
# em um servidor NFS (ou outra rede) ento por favor leia a documentao do
# LockFile
# (disponvel em <http://www.apache.org/docs/mod/core.html#lockfile>);
# e se salvar de vrios problemas.
#
# No adicione uma barra no fim do caminho do diretrio.
#
ServerRoot /etc/apache
# BindAddress: Voc pode usar esta opo em virtual hosts. Esta
# opo usada para dizer ao servidor que endereo IP escutar. Ele pode
# conter ou "*", um endereo IP, ou um nome de domnio completamente qualificado
# (FQDN). Veja tambm a diretiva VirtualHost.
BindAddress *
#
# Suporte a Objetos Compartilhados Dinamicamente (DSO - Dynamic Shared Object)
#
# Para ser capaz de usar a funcionalidade de um mdulo que foi compilado como
# um mdulo DSO, voc ter que adicionar as linhas 'LoadModule' correspondentes
# nesta localizao, assim as diretivas contidas nela estaro disponveis
# antes de serem usadas. Por favor leia o arquivo README.DSO na distribuio
# 1.3 do Apache para mais detalhes sobre o mecanismo DSO e execute o comando
# "apache -l" para a lista de mdulos j compilados (estticamente linkados e
# assim sempre disponveis) em seu binrio do Apache.
#
# Please keep this LoadModule: line here, it is needed for installation.
# LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so
# LoadModule env_module /usr/lib/apache/1.3/mod_env.so
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
# LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so
Guia Foca GNU/Linux

300

LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so


LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
# LoadModule info_module /usr/lib/apache/1.3/mod_info.so
# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule php3_module /usr/lib/apache/1.3/libphp3.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
# LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so
# LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so
# LoadModule action_module /usr/lib/apache/1.3/mod_actions.so
# LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
# LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so
# LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so
# LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so
# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
# LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so
# LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
# LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so
# LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so
LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
# LoadModule sys_auth_module /usr/lib/apache/1.3/mod_auth_sys.so
# LoadModule put_module /usr/lib/apache/1.3/mod_put.so
# LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so
# LoadModule allowdev_module /usr/lib/apache/1.3/mod_allowdev.so
# LoadModule auth_mysql_module /usr/lib/apache/1.3/mod_auth_mysql.so
# LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so
# LoadModule eaccess_module /usr/lib/apache/1.3/mod_eaccess.so
# LoadModule roaming_module /usr/lib/apache/1.3/mod_roaming.so
#
# ExtendedStatus: Controla se o Apache gerar detalhes completos de status
# (ExtendedStatus On) ou apenas detalhes bsicos (ExtendedStatus Off) quando o
# manipulador (handler) "server-status" for usado. O padro Off.
#
ExtendedStatus on
#
# ErrorLog: A localizao do arquivo de log de erros.
# Se no estiver especificando a diretiva ErrorLog dentro de <VirtualHost>,
# as mensagens de erros relativas aos hosts virtuais sero registradas neste
# arquivo. Se definir um arquivo de log de erros para <VirtualHost>, as
# mensagens relativas ao servidor controlados por ela sero registradas l e
# no neste arquivo.
#
ErrorLog /var/log/apache/error.log
#
# LogLevel: Controla o nmero de mensagens registradas no ErrorLog.
# Facilidades possveis incluem: debug, info, notice, warn, error, crit,
# alert, emerg.
# Veja as facilidades na seo do guia sobre o syslog para detalhes
#
LogLevel warn
# As seguintes diretivas definem alguns formatos de nomes que sero usados com a
Guia Foca GNU/Linux

301

# diretiva CustomLog (veja abaixo).


LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %v" full
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %P %T" debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#
# A localizao e formato do arquivo de log de acesso (definida pela diretiva
# LogFormat acima).
# Se no definir quaisquer arquivos de log de acesso dentro de um
# <VirtualHost>, eles sero registrados aqui. Se for definido dentro
# de <VirtualHost> o arquivo de log de acesso ser registrado no
# arquivo especificado na diretiva e no aqui.
#
#CustomLog /var/log/apache/access.log common
# Se voc desejar ter um arquivo de log separado para o agent (navegador usado)
# e referer, descomente as seguintes diretivas.
#CustomLog /var/log/apache/referer.log referer
#CustomLog /var/log/apache/agent.log agent
#
# Se preferir um arquivo de log simples, com os detalhes de acesso, agent, e
# referer (usando o formato combined da diretiva LogFile acima), use a seguinte
# diretiva.
CustomLog /var/log/apache/access.log combined
#
# Incluir uma linha contendo a verso do servidor e um nome de host virtual
# para as pginas geradas pelo servidor (documentos de erro, listagens
# de diretrios FTP, sada dos mdulos mod_status e mod_info, etc., exceto
# para documentos gerados via CGI). Use o valor "EMail" para tambm incluir
# um link mailto: para o ServerAdmin. Escolha entre "On", "Off" ou "EMail".
#
ServerSignature On
#
# PidFile: O arquivo que o servidor gravar os detalhes sobre seu PID quando
# iniciar.
#
PidFile /var/run/apache.pid
#
# ScoreBoardFile: Arquivo usado para armazenar detalhes do processo interno do
# servidor. Nem todas as arquiteturas requerem esta diretiva, mas se a sua
# requerer (voc saber porque este arquivo ser criado quando executar o
# Apache) ento voc *dever* ter certeza que dois processos do Apache no
# utilizam o mesmo arquivo ScoreBoardFile.
#
ScoreBoardFile /var/run/apache.scoreboard
#
# Na configurao padro, o servidor processar este arquivo, o
# srm.conf e o access.conf neste ordem. Voc pode fazer o servidor
# ignorar estes arquivos usando "/dev/null".
#
ResourceConfig /etc/apache/srm.conf
AccessConfig /etc/apache/access.conf
#
# A diretiva LockFile define o caminho do lockfile usado quando o servidor
# Apache for compilado com a opo USE_FCNTL_SERIALIZED_ACCEPT ou
# USE_FLOCK_SERIALIZED_ACCEPT. Esta diretiva normalmente deve ser deixada em seu
# valor padro. A razo principal de modifica-la no caso do diretrio de logs
# for montado via um servidor NFS< pois o arquivo especificado em LockFile
# DEVE SER ARMAZENADO EM UM DISCO LOCAL. O PID do processo do servidor principal
Guia Foca GNU/Linux

302

# automaticamente adicionado neste arquivo.


#
LockFile /var/run/apache.lock
# ServerName permite ajustar o nome de host que ser enviado
# aos clientes, caso for diferente do nome real (por exemplo, se desejar usar
# www ao invs do nome real de seu servidor).
#
# Nota: Voc no pode simplesmente inventar nomes e esperar que funcionem. O nome
# que definir dever ser um nome DNS vlido para sua mquina.
ServerName debian.meudominio.org
# UseCanonicalName: Com esta opo ligada, se o Apache precisar construir uma
# URL de referncia (uma url que um retorno do servidor a uma requisio) ele
# usar ServerName e Port para fazer o "nome cannico". Com esta opo desligada,
# o Apache usar computador:porta que o cliente forneceu, quando possvel.
# Isto tambm afeta SERVER_NAME e SERVER_PORT nos scripts CGIs.
#
# Dependendo de sua configurao, principalmente em virtual hosts, recomendvel
# deixa-la desativada ou com o valor DNS. O valor DNS obtm o nome do servidor
# atravs de uma requisio DNS reversa do endereo IP (muito til para virtual
# hosts baseados em IP).
UseCanonicalName off
# CacheNegotiatedDocs: Por padro, o Apache envia Pragma: no-cache com cada
# documento que foi negociado na base do contedo. Isto permite dizer a
# servidores proxy para no fazerem cache do documento. Descomentando a
# seguinte linha, desativa esta caracterstica, e os proxyes sero capazes
# de fazer cache dos documentos.
#CacheNegotiatedDocs
# Timeout: O nmero de segundos antes de receber e enviar um time out
Timeout 300
# KeepAlive: Se vai permitir ou no conexes persistentes (mais que uma requisio
# por conexo). Mude para "Off" para desativar.
KeepAlive On
# MaxKeepAliveRequests: O nmero mximo de requisies que sero permitidas
# durante uma conexo persistente. Mude para 0 para permitir uma quantidade
# ilimitada. Ns recomendamos deixar este nmero alto, para obter a mxima
# performance
MaxKeepAliveRequests 100
# KeepAliveTimeout: Nmero de segundos que aguardar a prxima requisio
KeepAliveTimeout 15
# Regulagem do tamanho de pool do servidor. Ao invs de fazer voc adivinhar
# quantos processos servidores precisar, o Apache adapta dinamicamente
# de acordo com a carga que ele v --- isto , ele tenta manter o nmero de
# processos o bastante para manipular a carga atual, mas alguns poucos
# servidores esparsos para manipular requisies transientes (ex. requisies
# simultneas mltiplas de um navegador Netscape simples).
# Ele faz isto verificando periodicamente quantos servidores esto
# aguardando por uma requisio. Se l existe menos que MinSpareServers,
# ele cria um novo processo. Se existe mais que MaxSpareServers, ele
# fecha alguns processos. Os valores abaixo esto adequados para muitos
# sites
MinSpareServers 5
MaxSpareServers 10
# Nmero de servidores que sero iniciados --- deve conter um valor razovel.
StartServers 5
# Limita o nmero total de servidores rodando, i.e., limita o nmero de clientes
# que podem conectar simultaneamente --- se este limite sempre atingido,
# os clientes podem sero BARRADOS, assim este valor NO DEVE SER MUITO PEQUENO.
# Ele tem a inteno principal de ser um freio para manter um em execuo com
# uma performance aceitvel de acordo com os requerimentos de construo e
# carga calculada no servidor.
Guia Foca GNU/Linux

303

MaxClients 150
#
# MaxRequestsPerChild: O nmero de requisies que cada processo tem permisso
# de processar antes do processo filho ser finalizado. O filho ser finalizado
# para evitar problemas aps uso prolongado quando o Apache (e talvez as
# bibliotecas que utiliza) tomar memria e outros recursos. Na maioria dos
# sistemas, isto realmente no necessrio, exceto para alguns (como o
# Solaris) que possuem ponteiros notveis em suas bibliotecas. Para estas
# plataformas, ajuste para algo em torno de 10000 ou algo assim; uma
# configurao de 0 significa ilimitado.
#
# NOTA: Este valor no inclui requisies keepalive aps a requisio
#
inicial por conexo. Por exemplo, se um processo filho manipula
#
uma requisio inicial e 10 requisies "keptalive" subseqentes,
#
ele somente contar 1 requisio neste limite.
#
MaxRequestsPerChild 30
# Listen: Permite fazer o Apache escutar um IP determinado e/ou porta, em
# adio a padro. Veja tambm o comando VirtualHost
#Listen 3000
#Listen 12.34.56.78:80
# VirtualHost: Permite o daemon responder a requisies para mais que um
# endereo IP do servidor, se sua mquina estiver configurada para aceitar pacotes
# para mltiplos endereos de rede. Isto pode ser feito com a opo de aliasing
# do ifconfig ou atravs de patches do Kernel como o de VIF.
# Qualquer diretiva httpd.conf ou srm.conf pode ir no comando VirtualHost.
# Veja tambm a entrada BindAddress.
#<VirtualHost host.some_domain.com>
#ServerAdmin webmaster@host.some_domain.com
#DocumentRoot /var/www/host.some_domain.com
#ServerName host.some_domain.com
#ErrorLog /var/log/apache/host.some_domain.com-error.log
#TransferLog /var/log/apache/host.some_domain.com-access.log
#</VirtualHost>
# VirtualHost: Se voc quiser manter mltiplos domnios/nomes de mquinas em sua
# mquina voc pode ajustar o contedo de VirtualHost para eles.
# Por favor veja a documentao em <http://www.apache.org/docs/vhosts/>
# para mais detalhes antes de tentar configurar seus hosts virtuais.
# Voc pode usar a opo de linha de comando '-S' para verificar sua configurao
# de hosts virtuais.
#
# Se desejar usar hosts virtuais baseados em nome, ser necessrio definir no
# mnimo um endereo IP (e nmero de porta) para eles.
#
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78
#
# Exemplo de um Host Virtual:
# Praticamente qualquer diretiva do Apache pode entrar na condicional
# VirtualHost.
#
#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error.log
# CustomLog logs/host.some_domain.com-access.log common
#</VirtualHost>
#<VirtualHost _default_:*>
#</VirtualHost>
Guia Foca GNU/Linux

304

33.14.2 srm.conf
# Neste arquivo so definidos o espao de nomes que os usurios visualizaro no
# seu servidor http. Este arquivo tambm define configuraes do servidor que
# afetam como as requisies so servidas e como os resultados devero ser
# formatados.
# Veja os tutoriais em http://www.apache.org/ para mais detalhes
# DocumentRoot: O diretrio principal onde voc servira seus documentos.
# Por padro, todas as requisies so tomadas atravs deste diretrio,
# exceto links simblicos e aliases que podem ser usados para apontar para
# outras localizaes no sistema de arquivos.
DocumentRoot /var/www
#
# UserDir: O nome do diretrio que ser adicionado ao diretrio home do usurio
# caso uma requisio ~usurio for recebida.
#
<IfModule mod_userdir.c>
# Linha abaixo por recomendao de segurana do manual do Apache
UserDir disabled root
UserDir public_html
</IfModule>
#
# DirectoryIndex: Nome do arquivo ou arquivos que sero usados como ndice do
# diretrio. Especifique mais de um arquivos separados por espaos ao invs
# de um s um nome (como "index") para aumentar a performance do servidor.
#
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.cgi
</IfModule>
#
# Diretivas que controlam a exibio de listagem de diretrios geradas pelo servidor.
#
<IfModule mod_autoindex.c>
#
# FancyIndexing: se voc deseja o padro fancy index ou padro para a indexao
#
de arquivos no diretrio. Usando FancyIndexing o servidor
#
apache gerar uma listagem de arquivos que poder ser
#
ordenada, usar tipos de cones e encoding, etc. Veja as
#
prximas opes
IndexOptions FancyIndexing
#
# As diretivas AddIcon* dizem ao servidor que cone mostrar para um determinado
# arquivo ou extenso de arquivos. Estes somente so mostrados para os
# diretrios classificados atravs da opo FancyIndexing.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
Guia Foca GNU/Linux

305

AddIcon /icons/p.gif .pl .py


AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif */core
AddIcon /icons/deb.gif .deb Debian
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# DefaultIcon o cone que ser mostrado para aplicativos que no tiverem um
# cone explicitamente definido.
DefaultIcon /icons/unknown.gif
#
# AddDescription: isto lhe permite colocar uma curta descrio aps um arquivo
# nos ndices gerados pelo servidor. Estes somente so mostrados para diretrios
# com ndices organizados usando a opo FancyIndexing.
# Formato: AddDescription "descrio" extenso
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
# ReadmeName o nome do arquivo LEIAME que o servidor procurar como
# padro. Estes sero inseridos no fim da listagem de diretrios.
Formato: ReadmeName nome
#
# O servidor procurar primeiro por nome.html, includo se ele for encontrado,
# e ento procurar pelo nome e incluir ele como texto plano se encontrado..
ReadmeName README
# HeaderName o nome do arquivo que deve ser colocado no topo do ndice
# de diretrios. As regras de procura de nome so as mesmas do arquivo
# README
HeaderName HEADER
#
# IndexIgnore: um conjunto de nomes de arquivos que a listagem de diretrios
# deve ignorar e no incluir na listagem. permitido o uso de coringas
# como no interpretador de comandos.
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>
# AccessFileName: O nome do arquivo que ser procurado em cada diretrio
# que contm detalhes sobre as permisses de acesso a um determinado
# diretrio e opes de listagem. Tenha cuidado ao modificar o nome
# deste arquivo, muitas definies que trabalham em cima do nome
# .htaccess nos arquivos de configurao devero ser modificados para
# no comprometer a segurana de seu servidor.
# Uma falta de ateno neste ponto poder deixar este arquivo visvel
# em qualquer listagem de diretrios facilmente...
AccessFileName .htaccess
# TypesConfig especifica o arquivo de configurao que contm os tipos
# usados pelo servidor
TypesConfig /etc/mime.types
#
# DefaultType o tipo MIME padro que o servidor utilizar para um documento
# caso ele no possa determinar seu contedo, como atravs de extenses
# de arquivos. Se o servidor contm em sua maioria texto ou documentos em HTML,
# "text/plain" um bom valor. Caso a maioria do contedo seja binrios, tal
# como aplicativos ou fotos, o tipo mais adequado ao seu caso poder ser
Guia Foca GNU/Linux

306

# "application/octet-stream" para evitar que navegadores tentem exibir


# aplicativos binrios como se fossem texto.
# Se desejar uma referncia rpida sobre tipos mime, consulte o arquivo
# /etc/mime.types
#
DefaultType text/plain
#
# Document types.
#
<IfModule mod_mime.c>
# AddEncoding permite que alguns navegadores (Mosaic/X 2.1+, Netscape, etc)
# descompactem dados durante sua abertura. N
# Nota: Nem todos os navegadores suportam isto. Esquea os nomes parecidos,
# as seguintes diretivas Add* no tem nada a ver com personalizaes
# da opo FancyIndexing usada nas diretivas acima.
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
# AddLanguage: permite especificar o idioma do documento. Voc pode
# ento usar a negociao de contedo para dar ao navegador um
# arquivo no idioma solicitado.
#
# Nota 1: O sufixo no precisa ser o mesmo da palavra chave do
# idioma --- estes com o documento em Polons (no qual o
# cdigo padro da rede pl) pode desejar usar "AddLanguage pl .po"
# para evitar confuso de nomes com a extenso comum de scripts
# scripts em linguagem Perl.
#
# Nota 2: As entradas de exemplos abaixo mostram que em alguns casos
# as duas letras de abreviao do 'Idioma' no idntico as duas letras
# do 'Pas' para seu pas, como 'Danmark/dk' versus 'Danish/da'.
#
# Nota 3: No caso de 'ltz' ns violamos a RFC usando uma especificao de
# trs caracteres. Mas existe um 'trabalho em progresso' para corrigir isto
# e obter os dados de referncia para limpar a RFC1766.
#
# Danish (da) - Dutch (nl) - English (en) - Estonian (ee)
# French (fr) - German (de) - Greek-Modern (el)
# Italian (it) - Portugese (pt) - Luxembourgeois* (ltz)
# Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz)
# Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
# AddCharset ISO-2022-JP .jis
AddLanguage pl .po
# AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
Guia Foca GNU/Linux

307

AddLanguage cz .cz
# LanguagePriority: permite definir a prioridade para a exibio de
# documentos caso nenhum documento confira durante a negociao de
# contedo.
#
# Para fazer isto, especifique os idiomas em ordem de preferncia de exibio
# de idiomas.
#
<IfModule mod_negotiation.c>
LanguagePriority pt-br pt es en da nl et fr de el it ja pl ltz ca sv
</IfModule>
#
# AddType permite modificar o mime.types sem editar o arquivo, ou fazer
# a associao de arquivos a certos tipos de contedo.
#
# Por exemplo, o mdulo PHP 3.x (que no faz parte da distribuio do
# Apache - veja http://www.php.net) tipicamente utiliza isto:
#
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
#
# E para arquivos PHP 4.x use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
AddType application/x-tar .tgz
AddType image/bmp .bmp
# hdml
AddType text/x-hdml .hdml
#
# AddHandler permite mapear certas extenses de arquivos a programas
# "manipuladores" adequados a seu contedo. Estes podem ser construdos
# no servidor ou adicionados com o comando Action (veja abaixo).
#
# Se desejar usar includes no lado do servidor, ou servir diretrios
# com scripts CGI para fora, descomente as seguintes linhas.
#
# Para usar scripts CGI:
#
#AddHandler cgi-script .cgi .sh .pl
#
# Para usar arquivos html gerados atravs do servidor
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml
#
# Descomente as seguintes linhas para ativar a caractersticas de arquivos
# send-asis HTTP do servidor Apache
#
#AddHandler send-as-is asis
#
# Se desejar usar arquivos de mapas de imagens processadas no servidor, use
#
#AddHandler imap-file map
#
# Para ativar tipo de mapas, voc poder usar
#
#AddHandler type-map var
</IfModule>
# Fim dos tipos de documentos
Guia Foca GNU/Linux

308

# Preferncias padres de exibio de caracteres (veja http://www.apache.org/info/css-security/).


AddDefaultCharset on
AddDefaultCharsetName iso-8859-1
# Redirect permite dizer aos cliente que documentos no existem mais no seu servidor
# e a nova localizao do documento.
# Format: Redirect nomeurl url
# "nomeurl" o caminho especificado na url e "url" a nova localizao do
# documento
# Aliases: Inclua aqui quantos apelidos voc desejar (sem limite) o formato :
# Alias nomeurl nomereal
# "nomeurl" o caminho especificado na url e "nomereal" a localizao
# do documento no sistema de arquivos local
# Note que se voc incluir uma / no fim de "nomeurl", ento o servidor
# requisitar que tambm esteja presente na URL.
Alias /icons/ /usr/share/apache/icons/
Alias /doc/ /usr/doc/
Alias /focalinux /var/www/focalinux
Alias /debian-br /var/www/debian-br/htdocs
Alias /debian /pub/mirror/debian
# ScriptAlias: Esta diretiva controla que diretrios contm scripts do servidor.
# Format: ScriptAlias fakename realname
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#
# Action: permite definir os tipos de mdia que executaro um script quando um
# arquivo que conferir for chamado. Isto elimina a necessidade de caminhos de URLs
# repetidas para processadores de arquivos CGI freqentemente usados.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
#
#
# MetaDir: especifica o nome do diretrio no qual o apache procurar arquivos de
# detalhes do mdulo mod_cern_meta. Os mdulos meta contm cabealhos HTTP
# adicionais que sero includos durante o envio do documento.
#
#MetaDir .web
#
# Resposta de erros personalizada (no estilo do Apache)
# estas podem ser 3 tipos:
#
# 1) texto plano
#ErrorDocument 500 "O servidor fez boo boo.
# n.b. a aspa (") marca como texto, ela no ser exibida
#
# 2) redirecionamentos locais
#ErrorDocument 404 /missing.html
# para redirecionar para a URL local /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
# N.B.: tambm possvel redirecionar a um script o documento usando includes
# do lado do servidor (server-side-includes).
#
# 3) redirecionamentos externos
#ErrorDocument 402 http://algum.outro_servidor.com/inscricao.html
# N.B.: Muitas das variveis de ambientes associada com a requisio atual *no*
# estaro disponveis para tal script.
#
# O mdulo mod_mime_magic permite o servidor usar vrias dicas atravs do contedo
# do arquivo para determinar o seu tipo. A diretiva MIMEMagicFile diz ao mdulo
# onde as definies de dicas esto localizadas. O mdulo mod_mime_magic no
# parte do servidor padro Apache (voc precisar adiciona-lo manualmente com
# uma linha LoadModule (veja o pargrafo DSO na seo Ambiente Global no
Guia Foca GNU/Linux

309

# arquivo httpd.conf), ou recompile o servidor e inclua mod_mime_magic como


# parte de sua configurao), por este motivo ele est entre as condicionais
# <IfModule>. Isto significa que a diretiva MIMEMagicFile somente ser processada
# caso o mdulo estiver ativo no servidor.
#
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
<IfModule mod_setenvif.c>
#
# As seguintes diretivas modificam o funcionamento da resposta normal do
# servidor HTTP.
# A primeira diretiva desativa o keepalive para o Netscape 2.x e navegadores que
# as falsificam. Existem problemas conhecidos com estas implementaes de
# navegadores. A segunda diretiva para o MS IE 4.0b2 que tem uma implementao
# defeituosa do HTTP/1.1 e no suporta adequadamente o keepalive quando ele
# utiliza as respostas de redirecionamento 301 e 302.
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#
# As seguintes diretivas desativam as respostas HTTP/1.1 para navegadores que
# violam a especificao HTTP/1.0 no sendo capaz de enviar uma resposta
# 1.1 bsica.
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
</IfModule>
# Se o mdulo Perl est instalado, isto ser ativado.
<IfModule mod_perl.c>
Alias /perl/ /var/www/perl/
<Location /perl>
Options +ExecCGI
SetHandler perl-script
PerlHandler Apache::Registry
</Location>
</IfModule>

33.14.3 access.conf
# access.conf: Configurao de acesso Global
# Documentos on-line em http://www.apache.org/
# Este arquivo define as configuraes do servidor que afetam que tipos de
# servios so permitidos e em quais circunstncias.
# Cada diretrio que o Apache possui acesso, pode ser configurado respectivamente
# com quais servios e caractersticas que podem ser permitidas e/ou bloqueadas
# no diretrio (e seus subdiretrios).
#
# Primeiro a configurao restringe uma srie de permisses
<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
# Order deny,allow
# Deny from all
</Directory>
# Desse ponto em diante, necessrio especificar o que ser permitido
# caso contrrio ser bloqueado pelo bloco acima
# Esta parte deve ser modificada para a localizao do documento raz do servidor.
<Directory /var/www>
Guia Foca GNU/Linux

310

# A opo Options pode conter os valores "None", "All", ou quaisquer combinao


# de "Indexes", "Includes", "FollowSymLinks", "ExecCGI", ou "MultiViews".
#
# Note que "MultiViews" deve ser *explicitamente* especificada --- "Options All"
# no a ativa (pelo menos no ainda).
Options Indexes FollowSymLinks Includes MultiViews
# Esta opo controla que opes os arquivos .htaccess nos diretrios podem ser
# substitudas. Pode tambm conter "All", ou qualquer combinao de "Options",
# "FileInfo", "AuthConfig", e "Limit"
AllowOverride None
# Controla quem pode obter materiais deste servidor. Leia a seo adequada no
# guia para mais explicaes sobre a ordem de acesso, padres e valores permitidos.
order allow,deny
allow from all
</Directory>
#
# O diretrio "/usr/lib/cgi-bin" deve ser modificado para o diretrio que
# possuem seus scripts CGI, caso tenha configurado o suporte a CGI's no
# servidor.
#
<Directory /usr/lib/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
#
# Permite ver relatrios de status e funcionamento do servidor web e
# processos filhos, atravs da URL http://servidor/server-status
# isto requer o mdulo status_module (mod_status.c) carregado no arquivo
# httpd.conf
#
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .meudominio.org
#</Location>
#
# Permite relatrio de configurao remota do servidor, atravs da URL
# http://servername/server-info
# Isto requer o mdulo info_module (mod_info.c) carregado no arquivo
# httpd.conf
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .meudominio.org
#</Location>
# Visualizao do diretrio de cones
<Directory /usr/share/apache/icons>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# O Debian Policy assume que /usr/doc "/doc/" e linkado com /usr/share/doc,
# pelo menos para localhost.
<Directory /usr/doc>
Guia Foca GNU/Linux

311

Options Indexes FollowSymLinks


order deny,allow
deny from all
allow from 192.168.1.10/24
</Directory>
# Esta define a localizao visualizvel do monitor de status mod_throttle
#
<location /throttle-info>
SetHandler throttle-info
</location>
#
# As seguintes linhas previnem os arquivos .htaccess de serem mostrados nos
# clientes Web. Pois os arquivos .htaccess freqentemente contm detalhes
# de autorizao, o acesso desabilitado por razes de segurana. Comente
# estas linhas se desejar que seus visitantes vejam o contedo dos arquivos
# .htaccess. Se modificar a diretiva AccessFileName acima, tenha certeza de
# fazer as modificaes correspondentes aqui.
#
# As pessoas tambm tendem a usar nomes como .htpasswd nos arquivos de senhas
# a diretiva abaixo os proteger tambm.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
#
# Controla o acesso a diretrios UserDir. As seguintes diretivas so um exemplo
# para um site onde estes diretrios esto restritos a somente-leitura. Veja
# detalhes sobre as opes de acesso, e limites na seo sobre controle
# de acesso do guia
#
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>
#
# As vezes ocorrem relatos de pessoas tentando abusar de uma falha antiga nos
# dias do Apache 1.1 (muitas pginas na Net documentam isso). Esta falha envolve
# um script CGI distribudo como parte do Apache. Descomentando estas linhas voc
# poder redirecionar estes ataques a um script de registro em phf.apache.org. Ou
# poder gravar em sua prpria mquina, usando o script support/phf_abuse_log.cgi.
#
#<Location /cgi-bin/phf*>
# Deny from all
# ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>
# Acesso aos servios proxy do apache
#<Directory proxy:*>
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#</Directory>
Guia Foca GNU/Linux

312

# a seguinte diretiva permite o acesso a todos os usurios ao contedo da pgina


# do guia Foca GNU/Linux exceto os que possuem navegadores MSIE ;-)
# Veja a seo sobre restries de acesso para detalhes sobre a diretiva de
# controle de acesso baseado no user-agent
SetEnvIf User-Agent MSIE EXPLODER
<Directory /var/www/focalinux>
Options Indexes
Order allow,deny
allow from all
deny from env=EXPLODER
ErrorDocument 403 "Explorer no entra, pgina com o contedo potenciamente perigoso ao Windows, use
um navegador seguro para ter acesso a esta pgina ;-)
</Directory>
# A diretiva abaixo somente permite acesso a leitura do arquivo
# h-supor-fonte.txt a pessoas que fornecerem o nome/senha corretos
# que constam no arquivo passwd1
# Este bloco contm um erro que a localizao do arquivo da senha em um
# diretrio pblico, voc dever adapta-lo se no quiser se ver em apuros.
#
# A permisso do diretrio de nvel superior prevalece sobre seus
# sub-diretrios no caso as permisses de /focalinux, a menos que
# sejam definidas opes de acesso especficas ao arquivo abaixo
<Location /focalinux/humor/h-supor-fonte.txt>
AuthName "Piada de fonte de alimentao"
AuthType basic
AuthUserFile /home/gleydson/public_html/passwd1
Require valid-user
# Satisfy all
</Location>
# Libera o acesso a localizao /debian (acessada atravs de /pub/mirror/debian,
# definida no Alias acima)
<Location /debian>
Options Indexes
Order deny,allow
allow from all
deny from all
</Location>

33.15 Cdigos HTTP


Esta seo pode ser uma interessante referncia para a programao e configurao da diretiva ErrorDocument,
etc.

2xx - Sucesso

200 - OK

201 - Criado

202 -Aceito

203 - Informao no-autoritativa *

204 - Nenhum contedo

205 - Contedo resetado *

206 - Contedo parcial *

3xx - Redirecionamento

300 - Mltiplas escolhas

301 - Movido Permanentemente

302 - Movido Temporariamente

303 - Veja outra *

304 - No modificada

305 - Use o Proxy (redirecionamento proxy) *

4xx - Erros no Cliente


Guia Foca GNU/Linux

313

400 - Requisio incorreta


401 - No autorizado
402 - Pagamento Requerido *
403 - Bloqueado
404 - No encontrada
405 - Mtodo no permitido *
406 - No aceitvel *
407 - Autenticao via proxy requerida *
408 - Tempo limite da requisio expirado *
409 - Conflito *
410 - Gone *
411 - Tamanho requerido *
412 - Falha na pr-condio *
413 - A requisio parece ser grande *
414 - A URI requisitada muito longa *
415 - Tipo de mdia no suportado

5xx - Erros no Servidor

500 - Erro Interno no Servidor

501 - No implementado

502 - Gateway incorreto

503 - Servio no disponvel

504 - Tempo limite no gateway *

505 - Verso HTTP no suportada *


Os cdigos de erros marcados com um "*" pertencem ao padro HTTP 1.1

Guia Foca GNU/Linux

314

Captulo 34 Servidor ident


Este captulo documenta o uso, benefcios, configurao, utilizao e exemplos do servidor identd. Tambm so
explicados alguns pontos positivos/negativos de sua utilizao para aumentar a segurana quando usado junto
com o mecanismo de controle de acesso.
O servidor identd escolhido para ser descrito nesta seo do guia foi o oidentd.

34.1 Introduo
O ident (identidade) um servidor que permite identificar qual o usurio efetuou determinada conexo e o
sistema operacional usado. Ele opera na porta 113 por padro e retorna nomes de usurios localmente vlidos, e
consultado por servios conhecidos como IRC, alguns servidores ftp, smtp e outros. Outro benefcio a
utilizao de mecanismos de restries de acesso baseadas em usurios/endereoIP (o tcpd um exemplo de
servio que permite esta caracterstica). A sintaxe usada para fazer tal restrio universal:
usurio@endereoIP onde normalmente aparece o endereoIP que usado para bloquear/permitir o acesso.
No momento da conexo, o endereo IP checado pra ver se confere, e o servidor Ident da mquina que est
efetuando a conexo consultado para checar se o usurio que tem acesso o mesmo especificado no controle
de acesso. Isso aumenta um pouco a segurana do sistema, mas existem algumas implicaes e pontos frgeis
do identd que sero explicados no decorrer deste captulo.

34.1.1 Verso
assumido que esteja usando a verso 1.7 do oidentd. As explicaes contidas aqui podem funcionar para
verses posteriores, mas recomendavel que leia a documentao sobre modificaes no programa (changelog)
em busca de mudanas que alterem o sentido das explicaes fornecidas aqui.

34.1.2 Contribuindo
A Homepage do projeto oidentd http://ojnk.sourceforge.net Sugestes, crticas, comentrios, etc., podem ser
enviados para odin@numb.org.

34.1.3 Caractersticas
Caractersticas do oidentd:
Pode ser executado tanto como daemon quanto via inetd (este ltimo indicado para sistemas com pouca
memria onde o servio pouco solicitado).
Pode mapear identificaes de usurio via IP Masquerading, tornando este servidor muito verstil podendo
ser usado tanto em mquina individuais como em servidores proxy/roteadores.
Pode fazer forwarding de conexes para outras mquinas da rede local, quando no executado no
proxy/roteador.
Spoofing de nomes: possvel mapear um nome de usurio para outra identificao; por exemplo, o
usurio root poder ser mapeado para outra conta de usurio antes da identificao ser enviada.

34.1.4 Ficha tcnica


Pacote - oidentd
Utilitrios
oidentd - Servidor identd
Arquivos de configurao do oidentd
identd.spoof - Controla o spoof (falsificao) de nomes de usurios. O formato deste arquivo so dois
campos separados por ":", o primeiro contendo a identificao original do usurio e o segundo o nome que
ser enviado pelo identd. O segundo campo pode ser omitido, neste caso a resposta de identificao lida
atravs do arquivo ~/.ispoof. - Este arquivo deve ter como dono o usurio do primeiro campo do
identd.spoof e a identificao retornada ser a contida no arquivo. Esteja certo que o daemon oidentd tem
permisses para acessar este arquivo, caso contrrio nenhum spoof de identidade ser realizado.
Para o spoof ser habilitado, o servio oidentd dever ser iniciado com a opo -s ou -S (veja mais detalhes
Opes de linha de comando, Seo 34.1.11).
OBS: Certifique-se de colocar as permisses adequadas para que somente o daemon oidentd tenha acesso a
este arquivo (de acordo com o usurio e grupo usado para executar o oidentd), os detalhes de mapeamento
de nomes podem ser perigosos em mos erradas, e garantir o sucesso de uma conexo indesejvel.
Guia Foca GNU/Linux

315

oidentd.users - Mapeamento de nomes de usurios efetuando conexes via Masquerading. O formato deste
arquivo o seguinte:
#EndereoIP/mscara
Usurio
Sistema
192.168.1.1
john
WINDOWS
192.168.1.2
usuario1
WINDOWS
192.168.1.1/32
usuario2
UNIX
192.168.1.0/24
usuario3
UNIX
192.168.1.0/16
usuario4
UNIX
As conexes vindas dos endereos da primeira coluna so mapeados para o nome/sistema da segunda/terceira
coluna e enviados a mquina que requisitou a identificao. Para o suporta a mapeamento de usurios via
Masquerading funcionar, o daemon oidentd dever ser iniciado com a opo -m.

34.1.5 Requerimentos de Hardware


O oidentd requer pouca memria e pode ser executado sem problemas em um sistema com o mnimo de
memria necessria para rodar o Kernel do Linux (2 MB para 2.2 e 4MB para as sries 2.4 do Kernel). Mesmo
assim interessante considerar 1 MB a mais que o mnimo requerido pelo Kernel para uma folga na execuo
do servio de identificao junto a outros do sistema.

34.1.6 Arquivos de log criados pelo Ident


Mensagens informativas, erros, e outras sobre execues do servio oidentd so enviadas ao syslog do sistema.

34.1.7 Instalao
Para instalar o daemon do oidentd digite:
apt-get install oidentd
Por padro o servio instalado para ser executado como daemon, para executa-lo atravs do inetd siga os
passos em Instalao via Inetd, Seo 34.1.8. O servio ser executado sob o usurio nobody e grupo nogroup
por motivos de segurana, alteraes de nome/grupo que executar o oidentd podem ser feitas no arquivo
/etc/defaults/oidentd ou /etc/init.d/oidentd.

34.1.8 Instalao via Inetd


Siga os procedimentos de instalao em Instalao, Seo 34.1.7 e os seguintes passos:
1.
Edite o arquivo /etc/inetd.conf e adicione a seguinte linha:
#:INFO: Info services
auth
stream tcp
nowait.40
nobody.nogroup
/usr/sbin/oidentd oidentd -q -i -t 40
A opo -i permite o oidentd aceitar requisies via inetd (sem ela ele ser executado no modo daemon). As
opes -s e -m devem tambm ser especificadas caso desejar os recursos de falsificao de identificao
(mapeamento de nomes) e masquerading (veja Opes de linha de comando, Seo 34.1.11). Aqui foi
definido um parmetro mximo de 40 requisies por minuto (tpico de um servio poucos usado no
sistema), caso este limite seja ultrapassado o servio ser desativado na seo atual do inetd. Os outros
campos so descritos em /etc/inetd.conf, Seo 4.7.2.1).
2.
Interrompa a execuo do daemon do oidentd atual dando um ./etc/init.d/oidentd stop.
3.
Remova os links dos runlevels em /etc/rc?.d que iniciam/interrompem a execuo do daemon com o
comando: update-rc.d -f oidentd remove. Neste ponto o daemon oidentd no ser mais iniciado. Para
reverter esta ao, execute o comando: udpate-rc.d oidentd defaults.
4.
De um comando killall -HUP inetd para fazer o servio inetd recarregar o arquivo de configurao
/etc/inetd.conf. O servio de identd j estar funcionando.
OBS: A configurao da distribuio Debian permite detectar quando o servio ident (auth) est sendo
executado no /etc/inetd.conf atravs de seus scripts de inicializao. Voc poder fazer as coisas manualmente
baseado nisso se desejar.

34.1.9 Usando tcpwrappers com oidentd


Especifique a opo -W para fazer o oidentd utilizar o mecanismo de acesso em hosts.allow e hosts.deny para
garantir/bloquear ao servio de acordo com endereos/hosts especificados.
OBS O oidentd somente executado aps a conferncia de todos os parmetros de endereos nestes arquivos de
acesso, no utilize a sintaxe "usurio@endereo" como endereo na linha de acesso do servio oidentd (por
motivos bvios).

Guia Foca GNU/Linux

316

34.1.10 Iniciando o servidor/reiniciando/recarregando a configurao


O arquivo que controla o funcionamento do daemon do oidentd controlado pelo arquivo /etc/init.d/oidentd.
Utilize os mtodos descritos em Arquivos de inicializao, Seo 6.3 e Nveis de Execuo, Seo 6.4 para
entender como iniciar/interromper os servios e a organizao SYSTEM 5.
A execuo do oidentd atravs de inetd automtica quando feita uma requisio para a porta 113.

34.1.11 Opes de linha de comando


Opes de linha de comando do oidentd:
-a [endereoIP] - Espera por requisies somente no nome ou endereo IP da interface especificada.
-A - Quando o spoofing esta ativado, permite os usurios falsificaram o ident em conexes para portas
privilegiadas.
-c [pginacodigo] - Especifica uma pgina de cdigo alternativa. O padro "US-ASCII".
-d - Ativa o modo de depurao, mais detalhes sero exibidos.
-e - Retorna "UNKNOWN-ERROR" (erro desconhecido) para qualquer tipo de erro.
-f [porta] - Redireciona requisies de mquinas usando MASQUERADE para o computador na porta
especificada.
-F - O mesmo que -f, mas usa a porta 113 como padro.
-g [gid] - Executa o daemon do oidentd no grupo especificado.
-i - Permite ser executado atravs do inetd.
-m - Ativa o suporta a IP Masquerading.
-n - Retorna nmeros UID ao invs de nomes de usurios.
-N - Permite ocultar a identificao de determinados usurios atravs de arquivos ~/.noident.
-o - Retorna "OTHER" (outro qualquer) ao invs do sistema operacional especificado.
-p [porta] - Espera por conexes na porta especificadas (a padro a 113 - servio auth).
-q - Oculta o logging normal.
-P [proxy] - O proxy especificado (endereo IP) faz redirecionamento de conexes para a mquina
executando o oidentd.
-r - Retorna respostas aleatrias de identd. As opes -n e -r no podem ser usadas juntas.
-s - Permite utilizar os mecanismos de spoofing (falsificao) do oidentd.
-S - O mesmo que -s mas permitem todos os usurios EXCETO os especificados em /etc/identd.spoof
falsificarem suas respostas.
-t [segundos] - Espera o tempo especificado antes de ser encerrado.
-T [segundos] - O oidentd permanecer aceitando conexes quando executado com a opo -w pelo
nmero de segundos especificado.
-u [uid] - Executa o servidor oidentd com a uid especificada.
-v/-V - Mostra detalhes sobre a verso do servidor.
-w - Modo de espera de conexes.
-x [texto] - Se uma requisio falha, o texto especificado retornado.
-W - Utiliza os mecanismos de acesso hosts.allow e hosts.deny do tcpd.
-h - Mostra as opes de linha de comando do oidentd.

34.1.12 Exemplos
No faz muito sentido exemplos de arquivo de configurao do oidentd por estes serem muito simples e estarem
bem explicados em Ficha tcnica, Seo 34.1.4. No entanto acho interessante mostrar alguns exemplos de
configuraes do hosts.allow e hosts.deny fazendo uso dos recursos de restries baseadas em
usurio@endereo :
# Arquivo hosts.allow
#
# Permite requisies talk de qualquer lugar
in.ntalkd: ALL
in.talkd: ALL
#
# Permite que o usurio john acesse os servios de ftp de qualquer mquina da
# rede 191.168.1.*
in.ftpd: john@192.168.1.
Guia Foca GNU/Linux

317

#
# O servio telnet est permitido somente para john conectando de 192.168.1.1
in.telnetd: john@192.168.1.1
# Todos podem acessar os servios samba (nomes e compartilhamentos) exceto
# o usurio evil conectando de qualquer host com o endereo cracker.com.*
smbd, nmbd: ALL EXCEPT evil@cracker.com.
# Arquivo hosts.deny
# Qualquer finger bloqueado exceto vindos do usurio admin feitos em qualquer
# mquina da rede 192.168.1.*
in.fingerd: ALL EXCEPT admin@192.168.1.
# Qualquer outra coisa bloqueada
ALL: ALL

Guia Foca GNU/Linux

318

Captulo 35 Servidor telnet


Este captulo ensina como instalar, configurar, usar e fazer restries de acesso ao servidor telnet. Tambm
explicada a utilizao do cliente telnet e o suporte a criptografia (ssl).

35.1 Introduo
O servio telnet oferece o login remoto em seu computador, que lhe permite trabalhar conectado a distncia
como se estivesse em frente a ela. Ele substitui o rlogin e possui muitas melhorias em relao a ele, como o
controle de acesso, personalizao de seo e controle de terminal.

35.1.1 Verso
assumido que esteja usando a verso 0.17.16 do telnet. As explicaes contidas aqui podem funcionar para
verses posteriores, mas recomendavel que leia a documentao sobre modificaes no programa (changelog)
em busca de mudanas que alterem o sentido das explicaes fornecidas aqui.

35.1.2 Caractersticas

Conexo rpida (no utiliza transmisso de dados criptografada), recomendado para ambientes seguros.
Possui uma verso com suporte a criptografia via ssl.
Possui controle de acesso tcpd (usando /etc/hosts.allow e /etc/hosts.deny).
A maioria dos sistemas operacionais trazem este utilitrio por padro como sistema de acesso remoto a
mquinas UNIX.
Suporte a terminais ANSI (cores e cdigos de escape especiais para o console) e uma grande variedade de
outros terminais.

35.1.3 Ficha tcnica


Pacotes:
telnet - Cliente telnet com suporte a autenticao.
telnetd - Servidor telnet com suporte a autenticao.
telnet-ssl - Cliente telnet com suporte a autenticao e ssl. Tambm suporta conexo a servidores telnet
padro quando o servidor no suporta ssl. Por padro tentada a conexo usando ssl, se esta falhar ser
assumida a transmisso em texto plano.
telnetd-ssl - Servidor telnet com suporte a autenticao e ssl. Tambm suporta conexo de clientes telnet
padro (sem suporte a ssl).
Utilitrios:
in.telnetd - Servidor telnet
telnet - Cliente telnet padro (quando o pacote telnet-ssl est instalado, simplesmente um link para telnetssl).
telnet-ssl - Cliente telnet com suporte a ssl.

35.1.4 Requerimentos de Hardware


Normalmente o servidor telnet carregado via inetd, o que permite sua utilizao em uma mquina com a
quantidade mnima de memria RAM requerida para o funcionamento do Kernel: 2 MB para Kernels da srie
2.2 e 4MB para Kernels da srie 2.4.

35.1.5 Arquivos de log criados pelo servidor telnet


Mensagens do servidor telnet relacionadas com sees so enviadas para /var/log/daemon.log. Adicionalmente,
as mensagens sobre autenticao (servios de login) so registradas pelos mdulos PAM em /var/log/auth.log.

35.1.6 Instalao
apt-get install telnet telnetd ou apt-get install telnet-ssl telnetd-ssl.
Os pacotes com o -ssl no final possuem suporte a criptografia ssl. Por padro a porta usada para executar o
servio telnet a 23 (ou outro nmero de porta definido no /etc/services). A instalao do servidor telnet feita
via inetd (no arquivo /etc/inetd.conf) e o controle de acesso ao servio feito atravs dos arquivos
/etc/hosts.allow e /etc/hosts.deny (veja Servios iniciados atravs do inetd, Seo 15.7.2 e O mecanismo de
Guia Foca GNU/Linux

319

controle de acessos tcpd, Seo 15.8.3).


O servidor tem o nome in.telnetd e este dever ser usado para ajustar o controle de acesso nos arquivos acima.

35.1.7 Iniciando o servidor/reiniciando/recarregando a configurao


O arquivo que controla o funcionamento do servidor telnet o /etc/inetd.conf e o controle de acesso sendo feito
pelos arquivos /etc/hosts.allow e /etc/hosts.deny. Ser necessrio reiniciar o servidor inetd caso algum destes
trs arquivos seja modificado: killall -HUP inetd. A porta de operao padro a 23 e pode ser modificada no
arquivo /etc/services.

35.1.8 Opes de linha de comando


Opes de linha de comando do servidor telnetd:
-D nvel_de_depurao - Permite especificar o que ser registrado pelo servidor durante a conexo dos
clientes telnet. As seguintes opes so suportadas:
options - Mostra detalhes sobre a negociao das opes de conexo.
report - Mostra detalhe de opes e o que est sendo feito.
netdata - Mostra os dados transferidos na conexo telnetd.
ptydata - Mostra os dados mostrados na pty.
-edebug - Ativa a depurao do cdigo de criptografia apenas para o servidor telnet com suporte a ssl.
-h - Somente mostra os detalhes de configurao do seu PC aps o usurio fornecer um nome/senha
vlidos.
-L [programa] - Utiliza o programa especificado para fazer o login do usurio (/usr/sbin/telnetlogin o
padro).
-n - No envia pacotes keep alive para verificar o estado da conexo. Desativando esta opo poder fazer
o servidor ficar rodando constantemente caso acontea algum problema e o usurio no consiga se
desconectar normalmente.
-S TOS - Ajusta o tipo de servio usado na conexo para o valor especificado (veja Especificando o tipo de
servio, Seo 31.5.1 para maiores detalhes sobre esta opo e os valores aceitos).
Estas opes devero ser especificadas aps o servidor in.telnetd no arquivo /etc/inetd.conf.

35.2 Controle de acesso


feito pelos arquivos hosts.allow e hosts.deny. Veja O mecanismo de controle de acessos tcpd, Seo 15.8.3.

35.3 Recomendaes
O servio telnet utiliza texto plano para seo (exceto nas verses cliente/servidor "-ssl"). Os dados transmitidos
por servios que utilizam texto plano podem ser capturados por sniffers e trazer perigo ao seu sistema (veja
Sniffer, Seo 39.2).
recomendvel somente executar o servidor telnet padro em ambientes seguros (como em uma rede interna) e
a verso com suporte a ssl para fazer conexes via redes inseguras (como a Internet). O servio ssh (Servidor
ssh, Captulo 36) uma excelente alternativa ao telnet, alm de possuir outras caractersticas adicionais que
justifiquem seu uso, alm de programas cliente para Linux e Windows.

35.4 Fazendo conexes ao servidor telnet


Use o comando: telnet [endereo] [porta] para realizar conexes com uma mquina rodando o servidor telnet.
Adicionalmente as seguintes opes podem ser usadas:
-l [usuario] - Envia o nome de usurio ao computador remoto. Muito til com o telnet-ssl.
-E - Desativa o caracter de escape
-a - Tenta fazer o login automtico usando o nome de usurio local. Se o login falhar, ser solicitado o
nome de usurio. Esta opo usada por padro com o cliente telnet-ssl.
-r - Emula o comportamento do programa rlogin.
Exemplos:
# Conecta-se ao servidor telnet rodando na porta 23 de sua prpria mquina
telnet localhost
# Conecta-se ao servidor telnet 200.200.200.200 operando na porta 53454 usando o
# nome de usurio john
telnet -l john 200.200.200.200 5345
Guia Foca GNU/Linux

320

Captulo 36 Servidor ssh


Este captulo documenta a instalao, configurao e personalizao do servidor de shell seguro sshd, alm de
explicar as vantagens da utilizao dos servios criptogrficos. A utilizao do programa cliente ssh tambm
explicada, alm de utilitrios usados para gerao de chaves pblica/privada para o ssh (autenticao RSA/DAS
- o que , vantagens), cpia de arquivos e mtodos de autenticao usando o mtodo de chave pblica/privada
RSA.
Ambas as verses 1 e 2 do ssh so documentadas neste captulo. Opes especficas do protocolo 1 ou 2 do ssh
sero destacadas.

36.1 Introduo
O servio de ssh permite fazer o acesso remoto ao console de sua mquina, em outras palavras, voc poder
acessar sua mquina como se estivesse conectado localmente ao seu console (substituindo o rlogin e rsh). A
principal diferena com relao ao servio telnet padro, rlogin e rsh que toda a comunicao entre
cliente/servidor feita de forma encriptada usando chaves pblicas/privadas RSA para criptografia garantindo
uma transferncia segura de dados.
A velocidade do console remoto conectado via Internet excelente (melhor que a obtida pelo telnet e servios
r*) dando a impresso de uma conexo em tempo real (mesmo em links discados de 9.600 KB/s), a
compactao dos dados tambm pode ser ativada para elevar ainda mais a velocidade entre cliente-servidor ssh.
Alm do servio de acesso remoto, o scp possibilita a transferncia/recepo segura de arquivos (substituindo o
rcp).
Em conexes sem criptografia (rsh, rlogin) os dados trafegam de forma desprotegida e caso exista algum sniffer
instalado em sua rota com a mquina destino, todo o que fizer poder ser capturado (incluindo senhas).

36.1.1 Verso
assumido que esteja usando a verso 2.0 do ssh. As explicaes contidas aqui podem funcionar para verses
posteriores, mas recomendavel que leia a documentao sobre modificaes no programa (changelog) em
busca de mudanas que alterem o sentido das explicaes fornecidas aqui.

36.1.2 Histria
O openSSH (explicado neste captulo) baseado na ltima verso livre do implementao de Tatu Ylonen com
todos os algoritmos patenteados (para bibliotecas externas) removidos, todos as falhas de segurana corrigidas,
novas caractersticas e muitas outras melhorias. O openSSH foi criado por Aaron Campbell, Bob Beck, Markus
Friedl, Niels Provos, Theo de Raadt e Dug Song.

36.1.3 Contribuindo
A Homepage principal http://www.unixuser.org/~haruyama/security/openssh/index.html. Falhas, correes e
sugestes podem ser enviadas para a lista de discusso openssh-unix-dev@mindrot.org (aberta a postagens de
usurios no inscritos).

36.1.4 Caractersticas
Abaixo as principais caractersticas do servio ssh (Openssh).
Conexo de dados criptografada entre cliente/servidor.
Cpia de arquivos usando conexo criptografada.
Suporte a ftp criptografado (sftp).
Suporte a compactao de dados entre cliente/servidor.
Controle de acesso das interfaces servidas pelo servidor ssh.
Suporte a controle de acesso tcp wrappers.
Autenticao usando um par de chaves pblica/privada RSA ou DSA.
Algoritmo de criptografia livre de patentes.
Suporte a PAM.
Suporte a caracteres ANSI (cores e cdigos de escape especiais no console).

Guia Foca GNU/Linux

321

36.1.5 Ficha tcnica


Pacote: ssh
Utilitrios:
ssh - Cliente ssh (console remoto).
slogin - Link simblico para o programa ssh.
sshd - Servidor de shell seguro ssh.
scp - Programa para transferncia de arquivos entre cliente/servidor
ssh-keygen - Gera chaves de autenticao para o ssh
sftp - Cliente ftp com suporte a comunicao segura.
sftp-server - Servidor ftp com suporte a comunicao segura.
ssh-add - Adiciona chaves de autenticao DSA ou RSA ao programa de autenticao.
ssh-agent - Agente de autenticao, sua funo armazenar a chave privada para autenticao via chave
pblica (DSA ou RSA).
ssh-keyscan - Scaneia por chaves pblicas de autenticao de hosts especificados. O principal objetivo
ajudar na construo do arquivo local know_hosts.
ssh-copy-id - Usado para instalao do arquivo identity.pub em uma mquina remota.
Arquivos de configurao:
/etc/ssh/sshd_config - Arquivo de configurao do servidor ssh.
/etc/ssh/ssh_config - Arquivo de configurao do cliente ssh.
~/.ssh/config - Arquivo de configurao pessoal do cliente ssh.

36.1.6 Requerimentos de Hardware


recomendado no mnimo 6MB de memria RAM para a execuo do servio ssh mais o Kernel do Linux.
Este limite deve ser redimensionado para servidores de acesso dedicado, uma quantidade de 64MB deve ser
confortvel para centenas de usurios conectados simultaneamente (o que raramente acontece).
Veja tambm Restries de recursos/servios, Captulo 16 para configurao de restries usando PAM. O ssh
que acompanha a distribuio Debian vem com o suporte a tcp wrappers compilado por padro.

36.1.7 Arquivos de log criados pelo servidor ssh


Detalhes sobre a execuo do servidor sshd (como incio, autenticao e trmino) so enviadas ao syslog do
sistema. A prioridade e nvel so definidos no arquivo de configurao /etc/ssh/sshd_config (veja Exemplo de
sshd_config com explicaes das diretivas, Seo 36.3.5).

36.1.8 Instalao do servidor openSSH


apt-get install ssh.
Por padro o servidor sshd instalado como daemon, tambm possvel executa-lo via inetd mas isto no
aconselhvel porque o servidor gera uma chave aleatria de seo toda vez que iniciado, isto podendo levar
vrios segundos (quando usada a verso 1 do protocolo ssh, veja Diferenas nas verses do protocolo, Seo
36.3.4).

36.1.9 Iniciando o servidor/reiniciando/recarregando a configurao


O arquivo que controla o funcionamento do daemon do ssh controlado pelo arquivo /etc/init.d/ssh. Utilize os
mtodos descritos em Arquivos de inicializao, Seo 19.3 e Nveis de Execuo, Seo 19.4 para entender
como iniciar/interromper os servios e a organizao SYSTEM 5.
A execuo do ssh atravs de inetd automtica quando feita uma requisio para a porta 22.

36.1.10 Opes de linha de comando


Opes de linha de comando do servidor sshd:
-b bits - Especifica o nmero de bits da chave do servidor (768 por padro).
-d - Modo de depurao - O servidor envia detalhes sobre seu funcionamento aos logs do sistema e no
executado em segundo plano. Ele tambm responder conexes pelo mesmo processo. Podem ser usadas no
mximo 3 opes -d para aumentar os detalhes de depurao.
-f arquivo_configurao - Indica um arquivo de configurao alternativo (por padro usado
/etc/ssh/sshd_config). O ssh pode ser configurado atravs de opes de linha de comando mas requer um
arquivo de configurao para ser executado. Opes de linha de comando substituem as especificadas no
Guia Foca GNU/Linux

322

arquivo de configurao.
-g segundos - Especifica o tempo mximo para a digitao de senha de acesso. Aps o tempo especificado
o servidor encerra a conexo. O valor padro 600 segundos e 0 desativa este recurso.
-h arquivo_chave - Diz qual arquivo contm a chave privada local. O padro /etc/ssh/ssh_host_key e
somente o usurio root deve ter permisses de leitura neste arquivo. Ser necessrio especificar esta opo
caso o sshd no esteja sendo executado como usurio root.
possvel ter mltiplos arquivos de chaves para os protocolos 1 e 2 do ssh.
-i - Indica que o servidor sshd ser executado pelo inetd. Isto no aconselhvel porque o servidor gerar a
chave aleatria de seo toda vez que for iniciado e isto pode levar alguns segundos. Esta opo pode se
tornar vivel com o uso do protocolo 2 ou criando chaves pequenas como 512 bytes (no ssh 1), mas a
segurana criptogrfica tambm ser diminuda. Veja as diferenas entre os dois protocolos em Diferenas
nas verses do protocolo, Seo 36.3.4.
-k segundos - Especifica a frequencia da gerao de novas chaves do daemon sshd. O valor padro 3600
segundos e 0 desativa este recurso.
ATENO: NO desative este recurso!!! Esta opo traz a segurana que uma nova chave gerada de
servidor ser gerada constantemente (esta chave enviada junto com a chave pblica quando o cliente
conecta e fica residente na memria voltil), assim mesmo que um cracker consiga obt-la interceptando as
conexes, ser praticamente impossvel tentar qualquer coisa. Valores menores tendem a aumentar ainda
mais a segurana.
-p porta - Especifica a porta que o daemon sshd atender as requisies. Por padro usada a porta 22.
-q - Nenhuma mensagem ser enviada ao syslog do sistema.
-u tam - Especifica o tamanho do campo de nome do computador que ser armazenado no arquivo utmp. A
opo u0 faz somente endereos IP serem gravados.
-D - Quando usada no faz o sshd iniciar em segundo plano.
-V verso_cliente - Assume que o cliente possui a verso ssh especificada (1 ou 2) e no faz os testes de
identificao de protocolo.
-4 - Fora o uso do protocolo IP tradicional (IPv4).
-6 - Fora o uso da nova gerao do protocolo IP (IPv6).
A maioria das opes so realmente teis para modificar o comportamento do servidor ssh sem mexer em seu
arquivo de configurao (para fins de testes) ou para executar um servidor ssh pessoal, que dever ter arquivos
de configurao especficos.

36.2 Usando aplicativos clientes


Esta seo explicar o uso dos utilitrios ssh, scp e sftp.

36.2.1 ssh
Esta a ferramenta usada para sees de console remotos. O arquivo de configurao de usurios
~/.ssh/config e o arquivo global /etc/ssh/ssh_config. Para conectar a um servidor ssh remoto:
ssh ip/nome_do_servidor_ssh
O uso da opo -C recomendado para ativar o modo de compactao dos dados (til em conexes lentas). A
opo -l usurio pode ser usada para alterar a identificao de usurio (quando no usada, o login local
usado como nome de usurio remoto). Uma porta alternativa pode ser especificada usando a opo -p porta (a
22 usada por padro).
Na primeira conexo, a chave pblica do servidor remoto ser gravada em ~/.ssh/know_hosts ou
~/.ssh/know_hosts2 (dependendo da verso do servidor ssh remoto, veja Diferenas nas verses do protocolo,
Seo 36.3.4), e verificada a cada conexo como checagem de segurana para se certificar que o servidor no
foi alvo de qualquer ataque ou modificao no autorizada das chaves. Por padro, o cliente utilizar o
protocolo ssh verso 1, a opo -2 permite usar o protocolo verso 2.
Variveis de ambiente personalizadas para o ssh podero ser definidas no arquivo ~/.ssh/environment.
Comandos que sero executados somente na conexo ssh em ~/.ssh/rc e /etc/ssh/sshrc caso contrrio ser
executado o xauth por padro.
OBS: Para utilizar autenticao Rhosts/Rhosts+RSA (arquivos ~/.rhosts/~/.shosts) o programa ssh dever ter
permisses SUID root e conectar usando portas baixas (menores que 1024).
Exemplos:
# Conecta-se ao servidor remoto usando o login do usurio atual
ssh ftp.sshserver.org
# Conecta-se ao servidor remoto usando o login john (via ssh verso 2)
ssh -2 ftp.sshserver.org -l john
Guia Foca GNU/Linux

323

# Conecta-se ao servidor remoto usando compactao e o login john


ssh ftp.sshserver.org -C -l john
# Conecta-se ao servidor remoto usando compactao, o login john,
# ativa o redirecionamento do agente de autenticao (-A) e redirecionamento
# de conexes X11 (-X). Veja a prxima seo para entender como o
# suporte a redirecionamento de conexes do X funciona.
ssh ftp.sshserver.org -C -A -X -l john

36.2.1.1 Redirecionamento de conexes do X


O redirecionamento de conexes do X Window poder ser habilitado em ~/.ssh/config ou /etc/ssh/ssh_config ou
usando as opes -A -X na linha de comando do ssh (as opes -a e -x desativam as opes acima
respectivamente). Uma varivel $DISPLAY criada automaticamente para fazer o redirecionamento ao servidor
X local.
Ao executar um aplicativo remoto, a conexo redirecionada a um DISPLAY proxy criado pelo ssh (a partir de
:10, por padro) que faz a conexo com o display real do X (:0), ou seja, ele pular os mtodos de autenticao
xhost e cookies. Por medidas de segurana recomendvel habilitar o redirecionamento individualmente
somente se voc confia no administrador do sistema remoto.
# Exemplo de configurao do ssh_config
# Permite Redirecionamento de conexes para o prprio computador (nomes de
# mquinas podem ser especificadas).
Host 127.0.0.1
ForwardAgent yes
ForwardX11 yes
# Opes especficas do cliente para conexes realizadas a 192.168.1.4 usando
# somente o protocolo 2
Host 192.168.1.4
# As 2 linhas abaixo ativam o redirecionamento de conexes do X
ForwardAgent yes
ForwardX11 yes
PasswordAuthentication yes
Port 22
Protocol 2
Cipher blowfish
# Opes especficas do cliente para conexes realizadas a 192.168.1.5 usando
# somente o protocolo 1
Host 192.168.1.5
# As 2 linhas abaixo desativam o redirecionamento de conexes do X
ForwardAgent no
ForwardX11 no
PasswordAuthentication yes
Port 22
Protocol 1
Cipher blowfish
# CheckHostIP yes
# RhostsAuthentication no
# RhostsRSAAuthentication yes
# RSAAuthentication yes
# FallBackToRsh no
# UseRsh no
# BatchMode no
# StrictHostKeyChecking yes
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_rsa1
# IdentityFile ~/.ssh/id_rsa2
# EscapeChar ~

36.2.1.2 Cliente ssh para Windows


O putty um cliente ssh Win32 que possui suporte aos protocolos verso 1 e 2 do ssh, aceita compactao alm
Guia Foca GNU/Linux

324

de funcionar tambm como cliente telnet. Seu tamanho pequeno, apenas um executvel e requer 220KB de
espao em disco. Ele pode ser baixado de http://www.chiark.greenend.org.uk/~sgtatham/putty/.
Outra alternativa o MindTerm, este baseado em Java e pode inclusive ser executado como um applet em uma
pgina web. Este programa encontrado em http://www.mindbright.se/mindterm.

36.2.2 scp
Permite a cpia de arquivos entre o cliente/servidor ssh. A sintaxe usada por este comando a seguinte:
scp [origem] [destino]
Os parmetros de origem e destino so semelhantes ao do comando cp mas possui um formato especial quando
especificado uma mquina remota:
Um caminho padro - Quando for especificado um arquivo local. Por exemplo: /usr/src/arquivo.tar.gz.
usuario@host_remoto:/diretrio/arquivo - Quando desejar copiar o arquivo de/para um servidor remoto
usando sua conta de usurio. Por exemplo: gleydson@ftp.debian.org:~/arqs.
A opo -C recomendvel para aumentar a taxa de transferncia de dados usando compactao. Caso a porta
remota do servidor sshd seja diferente de 22, a opo -P porta dever ser especificada ( "P" maiscula mesmo,
pois a -p usada para preservar permisses/data/horas dos arquivos transferidos).
Exemplos:
# Para copiar um arquivo local chamado /pub/teste/script.sh para
# meu diretrio pessoal em ftp.sshserver.org
scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/
# Para fazer a operao inversa a acima (copiando do servidor remoto para o local)
# s inverter os parmetros origem/destino:
scp -C gleydson@ftp.sshserver.org:~/script.sh /pub/teste
# Para copiar o arquivo local chamado /pub/teste/script.sh para
# o diretrio /scripts dentro do meu diretrio pessoal em ftp.sshserver.org
# com o nome teste.sh
scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/scripts/teste.sh
# O exemplo abaixo faz a transferncia de arquivos entre 2 computadores remotos:
# O arquivo teste.sh lido do servidor server1.ssh.org e copiado para
# server2.ssh.org (ambos usando o login gleydson)
scp -C gleydson@server1.ssh.org:~/teste.sh gleydson@server2.ssh.org:~/

36.2.2.1 Cliente scp para Windows


O pscp faz a tarefa equivalente ao scp
http://www.chiark.greenend.org.uk/~sgtatham/putty/.

no

windows,

pode

ser

baixado

de

36.2.3 sftp
Permite realizar transferncia de arquivos seguras atravs do protocolo ssh. A conexo e transferncias so
realizadas atravs da porta 22 (ainda no possvel modificar a porta padro). A sintaxe para uso deste comando
a seguinte:
sftp usuario@host_remoto
Compactao pode ser especificada atravs da opo -C. Um arquivo contendo os comandos usados na seo
sftp poder se especificado atravs da opo -b arquivo para automatizar tarefas.
OBS1: Para desativar o servidor sftp, remova a linha SubSystem sftp /usr/lib/sftp-server (que inicializa o subsistema ftp) do arquivo /etc/ssh/sshd_config e reinicie o servidor sshd.
OBS2: O suporte ao programa sftp somente est disponvel ao protocolo ssh verso 2 e superiores.
OBS3: Algumas opes comuns do cliente ftp padro (como mget) ainda no esto disponveis ao sftp. Veja a
pgina de manual para detalhe sobre as opes disponveis.

36.3 Servidor ssh


36.3.1 sshd
Este o daemon de controle da conexo encriptada via protocolo ssh, transferncia de arquivos e shell
interativo. As opes de linha de comando esto disponveis em Opes de linha de comando, Seo 36.1.10.
Seu arquivo de configurao principal /etc/ssh/sshd_config, um exemplo e descrio das opes deste arquivo
encontrada em Exemplo de sshd_config com explicaes das diretivas, Seo 36.3.5.
OBS1: recomendvel que o arquivo /etc/ssh/sshd_config seja lido somente pelo dono/grupo, por conter
Guia Foca GNU/Linux

325

detalhes de acesso de usurios, grupos e intervalo entre a gerao de chave de seo.


OBS2: Se estiver ocorrendo falhas no acesso ao servidor ssh, verifique as permisses nos arquivos
/etc/hosts.allow e /etc/hosts.deny (o nome do servio sshd). Mesmo operando como daemon, o servidor utiliza
estes arquivos para fazer um controle de acesso adicional.

36.3.2 Controle de acesso


definido pelas opes ListenAddress, AllowUsers, DenyUsers, AllowGroups, DenyGroups e
PermitRootLogin do arquivo de configurao sshd_config (veja Exemplo de sshd_config com explicaes das
diretivas, Seo 36.3.5) e via tcpd (arquivos hosts.allow e hosts.deny). Veja O mecanismo de controle de acessos
tcpd, Seo 15.8.3.

36.3.3 Usando autenticao RSA - chave pblica/privada


Este mtodo de autenticao permite a criao de um par de chaves: uma pblica (que ser distribudo nas
mquinas que voc conecta) e outra privada (que ficar em seu diretrio pessoal). A encriptao e decriptao
so feitas usando chaves separadas e no possvel conseguir a chave de decriptao usando a chave de
encriptao. possvel inclusive gerar uma chave sem senha para entrar diretamente em um sistema remoto
(este esquema um pouco mais seguro que os arquivos ~/.rhosts e ~/.shosts), mas dever ser levado em
considerao a possibilidade de acesso fsico ao seu diretrio pessoal, qualquer um que tenha posse de sua
chave privada poder ter acesso ao sistema remoto.
Siga os seguintes passos para se autenticar usando RSA 1 - usada na verso 1 do ssh:
1.
Gere um par de chaves pblica/privada usando o comando:
ssh-keygen
Um par de chaves RSA verso 1 ser gerado com o tamanho de 1024 bits por padro que garante uma boa
segurana/velocidade e salvas no diretrio ~/.ssh com o nome identity e identity.pub. Para alterar o tamanho
da chave use a opo -b tamanho. Depois de gerar a chave, o ssh-keygen pedir uma frase-senha (
recomendvel ter um tamanho maior que 10 caracteres e podem ser includos espaos). Se no quiser digitar
uma senha para acesso ao sistema remoto, tecle <Enter> quando perguntado. Mude as permisses do
diretrio ~/.ssh para 750.
A opo -f especifica o diretrio e nome das chaves. A chave pblica ter a extenso .pub adicionada ao
nome especificado.
ATENO Nunca distribua sua chave privada, nem armazene-a em servidores de acesso pblicos ou
outros mtodos que permitem outros terem acesso a ela. Se precisar de uma cpia de segurana, faa em
disquetes e guarde-a em um lugar seguro.
2.
Instale a chave pblica no servidor remoto que deseja se conectar, por exemplo, www.sshserver.org:
ssh-copy-id -i ~/.ssh/identity gleydson@www.sshserver.org
A funo do utilitrio acima entrar no sistema remoto e adicionar a chave pblica local ~/.ssh/identity.pub
no arquivo /home/gleydson/.ssh/authorized_keys do sistema remoto www.sshserver.org. O mesmo processo
poder ser feito manualmente usando os mtodos tradicionais (ssh/scp). Caso o arquivo remoto
/home/gleydson/.ssh/authorized_keys no existe, ele ser criado. Seu formato idntico ao
~/.ssh/know_hosts e contm uma chave pblica por linha.
3.
Agora utilize o ssh para entrar no sistema remoto usando o mtodo de chave pblica/privada. Entre com
a senha que usou para gerar o par de chaves pblico/privado (ele entrar diretamente caso no tenha
digitado uma senha).
Para autenticar em uma verso 2 do ssh (usando chave RSA 2 ou DSA):
1.
Gere um par de chaves pblica/privada usando o comando:
ssh-keygen -t rsa -f ~/.ssh/id_rsa
ou
ssh-keygen -t dsa -f ~/.ssh/id_rsa
Um par de chaves RSA 2/DSA ser gerado. Para alterar o tamanho da chave use a opo -b tamanho.
Depois de gerar a chave, o ssh-keygen pedir uma frase-senha ( recomendvel ter um tamanho maior que
10 caracteres e podem ser includos espaos). Se no quiser digitar uma senha para acesso ao sistema
remoto, tecle <Enter> quando perguntado. Mude as permisses do diretrio ~/.ssh para 750.
ATENO Nunca distribua sua chave privada, nem armazene-a em servidores de acesso pblicos ou
outros mtodos que permitem outros terem acesso a ela. Se precisar de uma cpia de segurana, faa em
disquetes e guarde-a em um lugar seguro.
2.
Instale a chave pblica no servidor remoto que deseja se conectar copiando o arquivo com:
scp ~/.ssh/id_rsa.pub usuario@servidorremoto:~/.ssh/authorized_keys2
Caso o arquivo remoto /home/gleydson/.ssh/authorized_keys2 no existe, ele ser criado. Seu formato
idntico ao ~/.ssh/know_hosts2 e contm uma chave pblica por linha.
Guia Foca GNU/Linux

326

3.

Agora utilize o ssh para entrar no sistema remoto usando o mtodo de chave pblica/privada. Entre com
a senha que usou para gerar o par de chaves pblico/privado (ele entrar diretamente caso no tenha
digitado uma senha).
O tipo de chave criada por padro a rsa1 (compatvel com as verses 1 e 2 do ssh). A opo -t [chave] poder
ser usada (ao gerar a chave) para selecionar o mtodo de criptografia:

rsa1 - Cria uma chave rsa compatvel com a verso 1 e 2 do ssh (esta a padro).

rsa - Cria uma chave rsa compatvel somente com a verso 2 do ssh.

dsa - Cria uma chave dsa compatvel somente com a verso 2 do ssh.
Para trocar a senha utilize o comando: ssh-keygen -p -t rsa -f ~/.ssh/identity - ser pedida sua senha antiga e a
nova senha (no mesmo estilo do passwd). Opcionalmente voc pode utilizar a sintaxe: ssh-keygen -p -f
~/.ssh/identity -P senha_antiga -N senha_nova, que troca a senha em um nico comando (til para ser usado em
scripts junto com a opo -q para evitar a exibio de mensagens de sada do ssh-keygen).

36.3.4 Diferenas nas verses do protocolo


Retirada da pgina de manual do sshd:
Protocolo SSH verso 1
Cada servidor possui uma chave RSA especfica (1024 bits por padro) usada para identifica-lo. Quando o
sshd inicia, ele gera uma chave RSA do servidor (768 bits por padro, valor definido por ServerKeyBits)
que recriada a cada hora (modificado por KeyRegenerationInterval no sshd_config) e permanece sempre
residente na RAM.
Quando um cliente se conecta o sshd responde com sua chave pblica da mquina e chaves do servidor. O
cliente ssh compara a chave RSA com seu banco de dados (em ~/.ssh/know_hosts) para verificar se no foi
modificada.
Estando tudo OK, o cliente gera um nmero aleatrio de 256 bits, o encripta usando ambas as chaves de
mquina e chave do servidor e envia este nmero ao servidor. Ambos os lados ento usam este nmero
aleatrio como chave de seo que usado para encriptar todas as comunicaes seguintes na seo.
O resto da seo usa um mtodo de embaralhamento de dados convencional, atualmente Blowfish ou 3DES
(usado como padro). O cliente seleciona o algoritmo de criptografia que ser usado de um destes
oferecidos pelo servidor. Aps isto o servidor e cliente entram em um dilogo de autenticao. O cliente
tenta se autenticar usando um dos seguintes mtodos de autenticao:
~/.rhosts ou ~/.shosts (normalmente desativada).
~/.rhosts ou ~/.shosts combinado com autenticao RSA (normalmente desativada).
Autenticao RSA por resposta de desafio.
Autenticao baseada em senha.
A autenticao usando Rhosts normalmente desativada por ser muito insegura mas pode ser ativada no
arquivo de configurao do servidor se realmente necessrio. A segurana do sistema no melhorada a no
ser que os servios rshd, rlogind, rexecd e rexd estejam desativados (assim, o rlogin e rsh sero
completamente desativados na mquina).
Protocolo SSH verso 2
A verso 2 funciona de forma parecida com a 1: Cada mquina possui uma chave DSA especfica usada
para se identificar. A diferena que quando o sshd inicia, ele no gera uma chave de servidor. A segurana
de redirecionamento oferecida atravs da concordncia do uso de uma chave Diffie-Hellman. Esta
concordncia de chave resulta em uma seo com chave compartilhada. O resto da seo encriptada
usando um algoritmo simtrico, como Blowfish, 3DES, CAST128, Arcfour, 128 bit AES, ou 256 bit AES.
O cliente que seleciona o algoritmo de criptografia que ser usado entre os oferecidos pelo servidor.
Adicionalmente a integridade da seo oferecida atravs de um cdigo de autenticao de mensagem
criptogrfica (hmac-sha1 ou hmac-md5). A verso 2 do protocolo oferece um mtodo de autenticao
baseado em chave pblica (PubkeyAuthentication) e o mtodo de autenticao convencional usando senhas.

36.3.5 Exemplo de sshd_config com explicaes das diretivas


Abaixo segue um exemplo deste arquivo que poder ser adaptado ao seu sistema. O objetivo ser ao mesmo
tempo til para sua configurao e didtico:
# Modelo personalizado para o guia Foca GNU/Linux baseado na configurao
# original do FreeBSD.
# Autor: Gleydson Mazioli da Silva
# Data: 20/09/2001.
# Porta padro usada pelo servidor sshd. Mltiplas portas podem ser
# especificadas separadas por espaos.
Guia Foca GNU/Linux

327

Port 22
# Especifica o endereo IP das interfaces de rede que o servidor sshd
# servir requisies. Mltiplos endereos podem ser especificados
# separados por espaos. A opo Port deve vir antes desta opo
ListenAddress 0.0.0.0
# Protocolos aceitos pelo servidor, primeiro ser verificado se o cliente
# compatvel com a verso 2 e depois a verso 1. Caso seja especificado
# somente a verso 2 e o cliente seja verso 1, a conexo ser descartada.
# Quando no especificada, o protocolo ssh 1 usado como padro.
Protocol 2,1
# As 4 opes abaixo controlam o acesso de usurios/grupos no sistema.
# Por padro o acesso a todos garantido (exceto o acesso root se
# PermitRootLogin for "no"). AllowUsers e AllowGroups definem uma lista
# de usurios/grupos que podero ter acesso ao sistema. Os coringas
# "*" e "?" podem ser especificados. Note que somente NOMES so vlidos,
# UID e GID no podem ser especificados.
#
# As diretivas Allow so processadas primeiro e depois Deny. O mtodo que
# estas diretivas so processadas idntico a diretiva
# "Order mutual-failure" do controle de acesso do Apache:
# O usurio dever TER acesso via AllowUsers e AllowGroups e NO ser bloqueado
# por DenyUsers e DenyGroups para ter acesso ao sistema. Se uma das diretivas
# no for especificada, "*" assumido como padro.
# Estas permisses so checadas aps a autenticao do usurio, porque
# dados a ele pelo /etc/passwd e PAM so obtidos aps o processo de
# autenticao.
#AllowUsers gleydson teste?
#DenyUsers root adm
#AllowGroups users
#DenyGroups root adm bin
# Permite (yes) ou no (no) o login do usurio root
PermitRootLogin no
# Chaves privadas do servidor (as chaves pblicas possuem um ".pub" adicionado
# no final do arquivo.
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# Tamanho da chave. 768 bits o padro
ServerKeyBits 768
# Tempo mximo para login no sistema antes da conexo ser fechada
LoginGraceTime 600
# Tempo para gerao de nova chave do servidor (segundos). O padro
# 3600 segundos (1 hora).
KeyRegenerationInterval 3600
# Ignora os arquivos ~/.rhosts e ~/.shosts
IgnoreRhosts yes
# Ignora (yes) ou no (no) os arquivos ~/.ssh/known_hosts quando for usado
# para a opo RhostsRSAAuthentication. Se voc no confia neste mecanismo
# ajuste esta opo para yes.
IgnoreUserKnownHosts no
# Checa por permisses de dono dos arquivos e diretrio de usurio antes de
# fazer o login. muito recomendvel para evitar riscos de segurana
# com arquivos lidos por todos os usurios.
StrictModes yes
# Permite (yes) ou no (no) o redirecionamento de conexes X11. A segurana
# do sistema no aumentada com a desativao desta opo, outros mtodos
# de redirecionamento podem ser usados
X11Forwarding yes
# Especifica o nmero do primeiro display que ser usado para o redirecionamento
# X11 do ssh. Por padro usado o display 10 como inicial para evitar conflito
Guia Foca GNU/Linux

328

# com display X locais


X11DisplayOffset 10
# Mostra (yes) ou no (no) a mensagem em /etc/motd no login. O padro "no".
PrintMotd no
# Mostra (yes) ou no (no) a mensagem de ltimo login do usurio. O padro "no".
PrintLastLog no
# Permite (yes) ou no (no) o envio de pacotes keepalive (para verificar se o
# cliente responde. Isto bom para fechar conexes que no respondem mas
# tambm podem fechar conexes caso no existam rotas para o cliente
# naquele momento ( um problema temporrio). Colocando esta opo como
# "no" por outro lado pode deixar usurios que no tiveram a oportunidade
# de efetuar o logout do servidor dados como "permanentemente conectados"
# no sistema. Esta opo deve ser ativada/desativada aqui e no programa
# cliente para funcionar.
KeepAlive yes
# Facilidade e nvel das mensagens do sshd que aparecero no syslogd
SyslogFacility AUTH
LogLevel INFO
# Especifica se somente a autenticao via arquivos ~/.rhosts e /etc/hosts.equiv
# suficiente para entrar no sistema. No muito bom usar "yes" aqui.
RhostsAuthentication no
# Mesmo que o acima com o acrscimo que o arquivo /etc/ssh/ssh_known_hosts tambm
# verificado. Tambm evite usar "yes" aqui.
RhostsRSAAuthentication no
# Especifica se a autenticao via RSA permitida (s usado na verso 1 do
# protocolo ssh). Por padro "yes".
RSAAuthentication yes
# Permite autenticao usando senhas (serve para ambas as verses 1 e 2 do ssh).
# O padro "yes".
PasswordAuthentication yes
# Se a PasswordAuthentication for usada, permite (yes) ou no (no) login
# sem senha. O padro "no".
PermitEmptyPasswords no
# Ativa senhas s/key ou autenticao PAM NB interativa. Nenhum destes
# compilado por padro junto com o sshd. Leia a pgina de manual do
# sshd antes de ativar esta opo em um sistema que usa PAM.
ChallengeResponseAuthentication no
# Verifica se o usurio possui emails ao entrar no sistema. O padro "no".
# Este mdulo tambm pode estar sendo habilitado usando PAM (neste caso
# cheque a configurao em /etc/pam.d/ssh).
CheckMail no
# Especifica se o programa login usado para controlar a sees de shell
# interativo. O padro "no".
UseLogin no
# Especifica o nmero mximo de conexes de autenticao simultneas feitas
# pelo daemon sshd. O valor padro 10. Valores aleatrios podem ser
# especificados usando os campos "incio:taxa:mximo". Por exemplo,
# 5:40:15 rejeita at 40% das tentativas de autenticao que excedam o
# limite de 5 at atingir o limite mximo de 15 conexes, quando
# nenhuma nova autenticao permitida.
MaxStartups 10
#MaxStartups 10:30:60
# Mostra uma mensagem antes do nome de usurio/senha
Banner /etc/issue.net
# Especifica se o servidor sshd far um DNS reverso para verificar se o
# endereo confere com a origem (isto til para bloquear conexes
# falsificadas - spoofing). O padro "no".
ReverseMappingCheck yes
# Ativa o subsistema de ftp seguro. Para desabilitar comente a linha
# abaixo
Guia Foca GNU/Linux

329

Subsystem sftp

Guia Foca GNU/Linux

/usr/lib/sftp-server

330

Captulo 37 Servidor pop3


Este captulo descreve a instalao, configurao, criao de contas e controle de acesso ao servidor pop3. Este
captulo baseado no servidor qpopper da Qualcomm.

37.1 Introduo
o servidor para recebimento de mensagens eletrnicas (e-mails) para o cliente de e-mails. O servidor pop3
documentado o qpopper (da Qualcomm), um dos mais usados em ambiente Linux, simples de configurar e
distribudo livremente. O que este programa faz ler os e-mails de usurios em /var/mail e os envia via porta
110 ao programa cliente (Netscape, sylpheed, mutt, balsa, Pegasus, Outlook, ou qualquer outro que suporte o
protocolo pop3).

37.1.1 Verso
assumido que esteja usando a verso 4.0.3 do qpopper. As explicaes contidas aqui podem funcionar para
verses posteriores, mas recomendavel que leia a documentao sobre modificaes no programa (changelog)
em busca de mudanas que alterem o sentido das explicaes fornecidas aqui.

37.1.2 Contribuindo
O site do qpopper http://www.eudora.com/qpopper/, anncios de novas verses, bugs e correes so enviados
para qpopper-announce@rohan.qualcomm.com (inscreva-se enviando uma mensagem com o assunto
"subscribe" para o nome da lista acrescentando "-request"). A lista de suporte aos usurios
qpopper@lists.pensive.org (o mtodo de inscrio idntico a lista announce).

37.1.3 Caractersticas

Simples de configurar.
Possui um timeout padro de 30 segundos ao invs de 10 minutos do protocolo pop3 padro.
O protocolo pop3 mais simples e consome menos recursos no servidor que o IMAP.
Suporte a envio de boletins aos usurios do sistema.
Inclui suporte a TLS/SSL.
Suporte a senhas ocultas (shadow passwords).
Suporta PAM.
Suporte a autenticao via APOP.
Alta performance.

37.1.4 Ficha tcnica


Pacote: qpopper
Utilitrios:
in.qpopper - Servidor pop3.
popauth - Manipula os bancos de dados de autorizao quando usado o mtodo de autenticao APOP.
Arquivos de configurao:
/etc/popper.allow - Contm a lista de usurios autorizados a usar o servio pop3.
/etc/popper.deny - Contm uma lista de usurios NO autorizados a usar o servio pop3.
/etc/pop.auth - Contm dados de autenticao criados pelo programa popauth.

37.1.5 Requerimentos de Hardware


O servidor qpopper requer no mnimo 6MB de memria para rodar e espao em disco suficiente para acomodar
os e-mails de usurios.

37.1.6 Arquivos de log criados pelo qpopper


Mensagens sobre a execuo do qpopper so enviadas aos seguintes arquivos em /var/log:
mail.info - Detalhes sobre autenticao de usurios e mensagens.
mail.warn - Erros e avisos diversos ocorridos na seo pop3.
syslog e daemon.log - Mensagens sobre a execuo do servidor qpopper.
Guia Foca GNU/Linux

331

auth.log - Mensagens de autenticao gerados pelo PAM.

37.1.7 Instalao
apt-get install qpopper
Por padro o servidor qpopper instalado via inetd:
pop-3
stream tcp
nowait.60
root
/usr/sbin/tcpd /usr/sbin/in.qpopper -s
Se estiver configurando um servidor pop3 com um grande nmero de conexes, recomendvel aumentar o
nmero de execues do servio pop3 por minuto (no inetd.conf) ou rodar o servidor qpopper como daemon
(preferido). Para fazer isto, remova a linha que inicia o qpopper no inetd.conf e construa um script que inicie o
servio como daemon usando a opo -S (veja outras opes em Opes de linha de comando, Seo 37.1.10).

37.1.8 Iniciando o servidor/reiniciando/recarregando a configurao


O servio executado por padro via inetd e utiliza o controle de acesso tcpd (veja O mecanismo de controle de
acessos tcpd, Seo 4.8.3). Adicionalmente voc pode definir que usurios tero/no acesso ao servio pop3 nos
arquivos /etc/popper.allow e popper.deny. Por padro, o acesso garantido para qualquer usurio.
Aps instalar o servidor pop3 instalado, resta configurar o cliente para conectar ao servidor pop3 do servidor. O
nome de usurio e senha so os usados no arquivo /etc/passwd.

37.1.9 Testando o servidor pop3


Um simples teste consiste em usar o telnet conectando a porta pop3 (110): telnet 127.0.0.1 110:
Connected to 127.0.0.1.
Escape character is '^]'.
+OK Qpopper (version 4.0.3) at server.org starting. <2122.11132222@server.org>
A resposta acima indica que o servidor pop3 est funcionando corretamente.

37.1.10 Opes de linha de comando


Opes de linha de comando do servidor in.qpopper:
endereo:porta - Quando est operando em modo daemon (iniciado com -S), espera por conexes no
endereo e opcionalmente na porta especificada. O endereo dever ser o da interface de rede local do
servidor (como 192.168.1.1) caso no seja especificado, o servidor qpopper monitorar todos os endereos.
A porta padro 110 caso no seja especificada.
-b [diretrio] - Ativa o sistema de envio de boletins. O diretrio especificado o que contm os boletins
que sero enviados (na distribuio Debian, o /var/spool/popbull o indicado). Veja Enviando boletins de
mensagens, Seo 37.1.11 para instrues de utilizao deste recurso.
-c - Modifica a senha para caracteres minsculos antes de autenticar, permitindo que clientes conectem
com a senha em MAISCULAS ou caracteres mIsTurados.
-f [arquivo] - Especifica um arquivo de configurao para o servidor qpopper. Veja a pgina de manual
para detalhes sobre as opes. Recomendo usar as opes de linha de comando exceto se for requerida
configuraes especiais para modificar o comportamento do servidor pop3.
-l [num] - Modifica as opes de criptografia TLS/SSL usada no transporta da seo. Os seguintes valores
so aceitos:
0 - Desativa TLS/SSL. o padro.
1 - Ativa o suporte a TLS/SSL. Se o cliente no suportar criptografia, os dados sero transmitidos usando a
forma padro.
2 - Tenta ativar uma conexo TLS quando o cliente conecta ao servidor usando uma porta alternativa.
-p [num] - Seleciona como a senha em texto plano ser manipulada. O servidor dever estar compilado
com suporte a outras formas de autenticao (como APOP) ao invs de texto plano. As seguintes opes so
suportadas.
0 - Senhas em texto plano podem ser usadas para usurios no cadastrados no arquivo /etc/pop.auth
(gerenciado pelo popauth. Este o padro.
1 - Somente permite acesso de usurios cadastrados no arquivo /etc/pop.auth. Qualquer acesso usando
texto plano negado.
2 - Permite autenticao usando texto plano como preferncia, at mesmo para usurios que estejam no
/etc/pop.auth). til para clientes que no suportam autenticao usando texto plano.
3 - Somente usurios conectando da mesma mquina (127.0.0.1) podem usar autenticao em texto plano.
4 - Permite autenticao usando texto plano somente se uma conexo criptogrfica foi estabelecida usando
Guia Foca GNU/Linux

332

TLS ou SSL.
-R - Desativa a resoluo reversa de endereos IP de clientes.
-s - Registra dados de incio da seo, nome de usurio, nmero de bytes/mensagens apagadas, nmero de
mensagens deixadas no servidor e fim da seo. Estes detalhes so registrados pelo syslogd. Seu uso
recomendvel para ter controle sobre o que est acontecendo em seu servidor.
-S - Ativa o modo daemon. til para servidores pop3 com grande nmero de acessos.
-T [num] - Tempo mximo em segundos para finalizao da seo quando o cliente no envia nenhuma
resposta ou comando. Valores pequenos (como 20) podem ser especificados para servidores que possuem
poucos usurios e um link rpido. Para grande quantidade de usurios ou conexo feita via links lentos
(como ppp, slip, plip, etc.) use valores como 600 (10 minutos) ou mais. O valor padro 120 segundos (2
minutos).
-u - L o arquivo ~/.qpopper.options no diretrio do usurio em busca de opes adicionais para o servidor.
Este arquivo lido aps o processo de autenticao e deve ter permisses leitura/gravao para o dono. Isto
no recomendvel em servidores seguros, a criptografia ou mtodo de autenticao podem ser desativados
sem o conhecimento do administrador comprometendo a segurana dos dados.
-U - Idntica a opo acima, mas o arquivo deve residir no diretrio de spool (/var/spool/pop) e ter o
formato:
.usuario.qpopper-options
Este arquivo deve ter como dono o administrador ou dono do servidor pop3. Esta alternativa mais segura
que a anterior porque o usurio no ter acesso ou desativar opes especficas.
-y [facilidade] - Permite modificar o nvel facilidade que as mensagens so registradas no syslogd (veja
Arquivo de configurao syslog.conf, Seo 17.2.1.1).

37.1.11 Enviando boletins de mensagens


Este recurso muito til para enviar alertas ou avisos para todos os usurios em seu sistema de uma s vez. A
mensagem escrita no diretrio /var/spool/popbull seguindo um formato especial e quando o usurio pop3 se
conecta para pegar seus e-mails receber tambm uma cpia do boletim. O controle de boletins j recebido pelo
usurio feito no arquivo ~/.popbull. Siga os passos a seguir para configurar este sistema:
1.
Ative o suporte a envio de boletins no servidor qpopper, adicionando a opo -b /var/spool/popbull a
linha de comando.
2.
Os nmeros de boletins so controlados seqencialmente pelos arquivos ~/.popbull, portanto
importante comear com o nome do boletim com pelo menos 5 dgitos (00001, 00002, 00003, etc). Vamos
usar 00001-teste em nosso exemplo.
3.
A primeira linha do boletim deve conter a palavra "From" e um espao e deve ser completada com um
nome e data, seguido de campos essenciais para o envio da mensagem:
From teste Sex Set 29 21:40:00 2001
To: user@localhost
From: Administrador do Sistema <root@localhost>
Date: Fri, 29 Sep 2001 21:40:00 -0800 (PST)
Subject: Teste do sistema de boletins
Este apenas um teste para o sistema de boletins. Se tudo estiver OK
voc receber esta mensagem quando pegar seus e-mails no cliente pop3
e este boletim ser registrado no arquivo ~/.popbull para que no seja
novamente recebido.
Deve haver uma linha em branco para separar o cabealho da mensagem.
OBS: Quando incluir novos usurios no sistema, somente os ltimos 10 boletins sero enviados.

37.1.12 Especificando quotas para as caixas de correio


Crie o diretrio de spool /var/mail em uma partio separada e ative o sistema de quota do Linux nela. Leia as
instrues em Limitando o uso de espao em disco (quotas), Seo 38.11.

37.1.13 Restringindo acesso ao servidor pop3


O controle de acesso de conexes feito via mtodo tcpd usando o daemon in.qpopper (veja O mecanismo de
controle de acessos tcpd, Seo 15.8.3). O controle de acesso dos usurios feito atravs do arquivos
/etc/popper.allow e /etc/popper.deny, respectivamente contm os nomes de usurios que podem e no podem ter
acesso ao servidor qpopper. Por motivos de segurana recomendvel redirecionar os e-mails do usurio root
para outra conta (no arquivo /etc/aliases e bloquear o acesso do usurio root ao pop3 no arquivo
/etc/popper.deny.
Guia Foca GNU/Linux

333

Se a mquina servidora pop3 no for utilizada para acesso remoto, recomendvel desativar os servios de
login (veja Desabilitando servios de shell para usurios, Seo 38.1.6).

Guia Foca GNU/Linux

334

Captulo 38 Restries de recursos/servios


Este captulo documenta diversos mtodos de fazer restries de contas, limitao de acesso interno/externo, de
recursos por usurios/grupos, login, tempo mximo ocioso, e outros modos para limitar o uso de recursos do
sistema. Tambm so descritos mtodos para aumentar a segurana do acesso fsico a seu servidor e maneiras de
restringir o uso de servios disponveis no sistema.
Se voc deseja restringir o acesso de mquinas na rede ou portas especficas em sua mquina, veja tambm .

38.1 Limitando recursos no bash


38.1.1 Uso do comando readonly para exportar variveis
Variveis exportadas na forma comum podem ser modificadas a qualquer momento pelo usurio, e isso pode
trazer problemas de acordo com o tipo de sistema que administramos. A definio da varivel como somente
leitura (readonly) evita a maioria destes problemas:
readonly TESTE="123"
A varivel TESTE no poder ser modificada ou excluda. Com isto o administrador pode "bloquear" a
modificao de variveis que controlam o funcionamento de determinados recursos do interpretador de
comandos (alguns deles sero vistos ainda nesta seo).
OBS1: Algumas variveis de controle de ambientes ambiente do interpretador de comandos j so iniciadas
com valores somente leitura (como as variveis EUID e PPID)
OBS2: Variveis exportadas como somente leitura em shell scripts so mantidas at a finalizao do script e
depois liberadas.

38.1.2 Restries nos diretrios de usurios e root


O controle de acesso a diretrios de usurios importante quando desejamos que outras pessoas no tenham
acesso ao diretrio de outros usurios, violando a privacidade do mesmo e obtendo acesso a partes indesejveis,
principalmente do usurio root. recomendado restringir o acesso somente ao dono e grupo do usurio,
bloqueando o acesso a outros tipos de usurios:
chmod 2750 /root
chmod 2750 /home/usuario
O exemplo acima permitir o acesso do diretrio /root e /home/usuario somente ao usurio e grupo que
pertencem. Este processo pode ser facilitado na criao dos diretrios de usurios em /home especificando a
varivel: DIR_MODE=0750 no arquivo /etc/adduser.conf.
OBS: Algumas distribuies de Linux garantem o acesso livre a diretrios de usurios por padro pois alguns
daemons que requerem acesso a diretrio de usurios rodam sob outros usurios ao invs do root. Um bom
exemplo a utilizao do recurso "UserDir" do Apache para servir requisies como
http://servidor.org/~usuario.
A restrio de diretrio home neste caso bloquear o acesso do servidor web Apache ao diretrio
/home/usuario/public_html. Mesmo assim, uma alternativa para garantir a utilizao da restrio incluir o
usurio do servidor web Apache (www-data) no grupo "usuario" (que possui acesso ao diretrio /home/usuario):
adduser www-data usuario
Isto garantir que o servidor Apache continue servindo as requisies dentro do diretrio /home/usuario, com
acesso garantido via grupo. O mesmo principio pode ser aplicado em outros programas, apenas leve em
considerao que se um cracker tomar conta do processo que tem acesso ao seu diretrio home restrito, ele
certamente tambm ter acesso.

38.1.3 Restries bsicas do shell bash com bash -r/--restricted, rbash


Quando o bash iniciado com o parmetro -r, --restricted ou como rbash, o shell restringe o uso dos seguintes
recursos em sua seo:
Usar o comando cd para mudar de diretrio.
Definindo, modificar ou apagar a variveis SHELL, PATH, ENV, BASH_ENV.
Nomes de comandos que contm /
Especificar um nome de arquivo contendo uma / como argumento para o comando builtin (embutido no
interpretador de comandos).
Especificar uma / como argumento a opo -p no comando hash (embutido no interpretador de comandos).
Importar a definio de funes do ambiente do shell atual.
Guia Foca GNU/Linux

335

Analisar o valor da varivel SHELLOPTS do ambiente do shell atual.


Redirecionando a sada padro usando os operadores de redirecionamento >, >|, <>, >&, &>; e >>.
Usando o comando embutido exec para substituir o shell por outro comando.
Usar as opes -f ou -d com o comando enable (embutido no interpretador de comandos).
Especificar a opo -p ao comando interno command.
Desativar o modo restrito com set +r ou set +o restricted *
Estas restries so ativadas aps a leitura dos arquivos de inicializao do interpretador de comandos. O shell
restrito desliga as restries quando um shell script executado.

38.1.4 Finalizando consoles inativos


A varivel TMOUT determina o tempo de inatividade de um shell para que ele seja terminado.
export TMOUT=600
Terminar o bash caso nenhum comando seja executado no perodo de 600 segundos (5 minutos). Veja Uso do
comando readonly para exportar variveis, Seo 38.1.1 como complemento.

38.1.5 Desabilitando o registro de comandos digitados


Todos os comandos que digitamos em uma seo do shell so registrados no arquivo ~/.bash_history, as
seguintes variveis fazem seu controle:
HISTFILE - Nome do arquivo que armazenar o histrico de comandos. O padro ~/.bash_history. Caso
no seja especificado, os comandos no sero gravados aps finalizar o shell.
HISTSIZE - Define o nmero de comandos que o arquivo de histrico poder armazenar, o padro 500.
HISTFILESIZE - Define o nmero mximo de linhas no arquivo de histrico.
Se voc possui muitos usurios em seu sistema, recomendado ajustar estas variveis como somente leitura
para que o usurio no desative o logging por qualquer motivo (veja Uso do comando readonly para exportar
variveis, Seo 38.1.1).

38.1.6 Desabilitando servios de shell para usurios


Existem casos onde o usurio precisa estar cadastrado no sistema mas no precisa ter acesso a uma conta de
login vlida (como um sistema servidor de e-mail ou outros servios). Neste caso a desabilitao dos servios de
shell aumentar um pouco a segurana do sistema, mesmo conseguindo acesso a conta/senha estar impedido de
entrar no sistema (pelo menos ter um pouco mais dificuldade para conseguir isso).
Um programa que muito usado para desabilitar o shell exibindo uma mensagem ao usurio que fez a tentativa
o falselogin. Ele deve ser colocado como o "shell padro" no arquivo /etc/passwd e exibir a mensagem
contida no arquivo /etc/falselogin.conf quando o login para aquele usurio for tentado. Esta operao pode ser
facilitada usando a varivel DSHELL=/usr/bin/falselogin no arquivo /etc/adduser.conf.
Uma forma alternativa de desativar o servio de login de TODOS os usurios (exceto o root e os j logados no
sistema) criar um arquivo chamado /etc/nologin e colocando uma mensagem dentro dele, que ser exibida
quando tentarem efetuar o login no sistema.
OBS: Tome cuidado ao usar esta alternativa, este mtodo deve ser usado somente em caso de EMERGNCIA,
as distribuies Linux usam este mtodo para bloquear o login de outros usurios durante o processo de
inicializao, removendo assim que o processo terminado. Esteja consciente disso.
Em alguns casos, o uso do PAM pra desabilitar os servios de login pode ser mais adequado (veja
Restringindo/Bloqueando o login, Seo 38.2.3).

38.2 Limitao de recursos usando PAM


Plugglable Autentication Modules (Mdulos de autenticao plugveis) so um conjunto de bibliotecas usadas
para fazer autenticao, gerenciamento de contas, controle de recursos dos usurios no sistema, em adio ao
tradicional sistema de acesso baseado em usurios/grupos. Este recurso permite modificar a forma que um
aplicativo autentica e define recursos para o usurio sem necessidade de recompilar o aplicativo principal. Os
recursos que desejamos controlar restries via PAM so especificados individualmente por servios nos
arquivos correspondentes em /etc/pam.d e ento os arquivos correspondentes em /etc/security so usados para
controlar tais restries.
Nesta seo assumirei explicaes dirigidas aos recursos controlados pelos arquivos em /etc/security A maioria
das explicaes so baseadas em testes e nos prprios exemplos dos arquivos de configurao do PAM.

Guia Foca GNU/Linux

336

38.2.1 Descobrindo se um determinado programa tem suporte a PAM


Um mtodo simples de se determinar se um programa binrio possui suporte a PAM executando o comando:
ldd [programa]
Por exemplo:
ldd /bin/login
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4001c000)
libpam.so.0 => /lib/libpam.so.0 (0x40049000)
libpam_misc.so.0 => /lib/libpam_misc.so.0 (0x40051000)
libdl.so.2 => /lib/libdl.so.2 (0x40054000)
libc.so.6 => /lib/libc.so.6 (0x40058000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Caso a biblioteca libpam for listada, o programa tem suporte a PAM compilado. Programas que no possuem
suporte a PAM devero ter o cdigo fonte modificado inserindo as funes para tratamento dos mdulos de
autenticao.

38.2.2 Definindo um policiamento padro restritivo


O Policiamento padro do PAM especificado em /etc/pam.d/other e define o que acontecer caso nenhum dos
arquivos de controle de servio em /etc/pam.d confiram com o servio em questo. Normalmente o mdulo
pam_unix.so usado para fazer o policiamento padro, para deixar o sistema mais seguro, utilize a seguinte
configurao no arquivo /etc/pam.d/other:
auth
required
/usr/lib/security/pam_warn.so
auth
required
/usr/lib/security/pam_deny.so
account
required
/usr/lib/security/pam_deny.so
password required
/usr/lib/security/pam_warn.so
password required
/usr/lib/security/pam_deny.so
session
required
/usr/lib/security/pam_deny.so
O mdulo pam_deny.so responsvel por fazer o bloqueio, e o pam_warn envia avisos ao syslog (facilidade
auth nvel notice) caso servios mdulos PAM que necessitem do servio de autenticao sejam bloqueados
(isto no feito automaticamente pelo pam_deny.so).
OBS: Esta configurao poder causar bloqueio em muitas coisas caso possua mdulos de autenticao mau
configurados. Esteja certo de utilizar o mdulo pam_warn.so (antes do pam_deny.so) nas diretivas restritivas
para entender qual o problema atravs da anlise dos arquivos de logs.
Mais detalhes sobre a configurao de mdulos de autenticao podero ser encontrados nos endereos:
ftp://ftp.us.Kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html
http://www.Kernel.org/pub/linux/libs/pam/pre/doc/rfc86.0.txt.gz.

38.2.3 Restringindo/Bloqueando o login


Isto controlado pelo arquivo /etc/security/access.conf. O formato deste arquivo consistem em trs campos
separados por ":":
Primeiro campo - Garante ("+") ou bloqueia ("-") o acesso caso as condies nos outros campos confiram.
Segundo campo - Contm o login, grupo. O formato usurio@computador pode ser usado para conferir
com usurios que acessam de determinadas mquinas. Caso existam mais de um parmetro, estes devem ser
separados usando espaos. As palavras chave ALL (todos) e EXCEPT (exceo) e console tambm podem
ser usadas.
Terceiro campo - Lista de terminais (tty - na forma listada pelo ttyname), nomes de mquinas, nomes de
domnios (comeando com "."), endereos IP ou FQDN, poro de rede (finalizando com um "."). As
palavras chave ALL (todos) e LOCAL (mquinas na mesma rede) tambm podem ser usadas.
OBS1: - A configurao padro do access.conf garantir o acesso a todos os usurios, atravs de qualquer lugar
(permissiva).
OBS2:: Mesmo se existir uma regra autorizando o acesso ao usurio, as restantes sero verificadas em busca de
uma que bloqueie o acesso do usurio. Se nenhuma regra conferir, o usurio ter acesso garantido.
OBS3: - O nome de grupo somente checado quando nenhum nome de usurio confere com nenhum usurio
logado no sistema.
OBS4: - Grupos/usurios NIS podem ser especificados precedendo o nome do usurio ou grupo por uma "@".
Abaixo uma configurao restrita de /etc/security/access.conf:
#
# Desabilita o login de todos os usurios EXCETO o root no terminal tty1
Guia Foca GNU/Linux

337

-:ALL EXCEPT root:tty1


# Permite o login no console de todos os usurios especificados.
+:gleydson root:console
# Conexes vindas da rede *.debian.org e *.debian.org.br de usurios pertencendo
# ao grupo operadores so consideradas seguras (exceto para o usurio root).
+:operadores EXCEPT root: .debian.org .debian.org.br
# Qualquer outra tentativa de acesso no definida acima bloqueada imediatamente.
-: ALL: ALL

38.2.4 Restries de servios PAM baseados em dia/hora


Estas restries so controladas pelo arquivo /etc/security/time.conf, a sintaxe deste arquivo quatro campos
separados por ";":
Primeiro campo - Nome do servio PAM que ser controlado (um dos servios contidos em /etc/pam.d).
Segundo campo - Lista de nomes de terminais que a regra que aplicar. O sinal "&" tem a funo and, "|"
tem a funo or e "!" especifica uma excesso.
Terceiro campo - Nome de usurios afetados pela regra. O sinal "&" tem a funo and, "|" tem a funo or
e "!" especifica uma excesso.
OBS: O "*" poder ser usado somente no primeiro, segundo ou terceiro campo em uma mesma regra.
Quarto campo - DiaSemana/faixa-de-horas que a restrio se aplicar. O dia da semana especificado em
duas letras:
Mo - Segunda-feira
Tu - Tera-feira
We - Quarta-feira
Th - Quinta-feira
Fr - Sexta-feira
Sa - Sbado
Su - Domingo
Wk - Todos os dias da semana
Wd - Somente sbado e domingo (fim de semana)
Al - Todos os dias
O sinal "!" especifica uma excesso. A faixa de horas especificada aps o dia no formato HHMM-HHMM. Por
exemplo:
MoTuWe0000-2400 - Segundas, teras e quartas
MoFrSu0800-1900- - Segundas, sextas e domingo das 08:00 da manha as 19:00 da noite.
FrFr0500-0600 - No ser realizada na sexta (especificaes repetidas so anuladas)
de 05:00 as 06:00.
WkWe0731-1456 - Todos os dias da semana a partir de Quarta de 07:31 da manh as
14:56 da tarde.
AlMo0000-2400 - Todos os dias da semana, exceto segunda-feira.
Por padro o acesso garantido a todos os usurios. Abaixo um exemplo de restries usando o
/etc/security/time.conf:
# Bloqueia o login do usurio user1 ou user2 em qualquer tty, a restrio
# durante todos os dias de 00:00 as 06:30
login;tty*;user1|user2;!Al0000-0630
# Bloqueia o acesso do usurio root ao servio login nos terminais tty*
# (e no nos terminais ttyp*) nos finais de semana.
login;tty* & !ttyp*;root;!Wd0000-2400
# O usurio 1 no poder efetuar o login as teras feiras de 00:00 as 06:00
login;!tty*;user1;Tu0000-0600
OBS1: Mesmo se existir uma regra autorizando o acesso ao usurio, as restantes sero verificadas em busca de
uma que bloqueie o acesso do usurio. Se nenhuma regra conferir, o usurio ter acesso garantido.
OBS2: Quando as restries de tempo so ativadas no /etc/security/time.conf, o daemon logoutd poder ser
ativado manualmente (atravs de /etc/init.d/logoutd) para monitora as restries neste arquivo, forando o
logout de usurio de acordo com as configuraes do /etc/security/time.conf. Isto ocorrer automaticamente na
prxima vez que iniciar o sistema (a distribuio detecta a presena de restries de tempo no arquivo
/etc/security/time.conf para decidir se deve ou no carregar este daemon).
Quando no est em execuo, os limites de tempo so verificados somente no login do usurio, ele poder
ultrapassar este tempo sem ser desconectado do sistema.
Guia Foca GNU/Linux

338

38.2.5 Permitindo acesso a grupos extras


Este recurso controlado pelo arquivo /etc/security/group.conf. Este arquivo composto por 5 campos
separados por ";" (os 4 primeiros so os mesmos explicados em Restries de servios PAM baseados em
dia/hora, Seo 38.2.4. O 5o campo contm um ou mais grupos (separados por espaos ou vrgulas) que sero
adicionados aos grupos do usurio quando as condies dos campos anteriores conferirem.
OBS: Se o usurio escrever um programa que chama um interpretador de comandos e der a permisso SGID
(chmod g+s programa), ele ter acesso quele grupo na hora que quiser. Restrinja o uso de grupos somente a
usurios de confiana ou crie grupos especficos para evitar problemas.
Exemplo de configurao do arquivo /etc/security/group.conf:
# Permite que o usurio gleydson tenha acesso ao grupo floppy efetuando o login
# entre 08:00 da manha e 19:00 da noite
login;tty*;gleydson;Al0800-1900;floppy
# Todos os usurios podem ter acesso ao grupo games e sound aos sbados e domingos
login;tty*;*;SaSu0000-2400;sound games
# Todos os usurios podem ter acesso ao grupo games e sound todos os dias
# de 18:00 as 05:00 da manh (fora do horrio de expediente ;-)
login;tty*;*;Al1800-0500;sound,games
# Backups so permitidos fora do horrio de expediente (para no sobrecarregar
# a CPU e evitar o uso excessivo de disco).
login;tty*;gleydson;Al1830-2400;backup
OBS:: Mesmo que uma regra confira com o usurio, as outras tambm sero verificadas para garantir acesso
grupos extras.

38.2.6 Limitao de recursos do shell


Estas restries so especificadas no arquivo /etc/security/limits.conf. Seu formato consiste em 4 campos
separados por ou ou mais espaos:
Primeiro campo - Especifica o nome de usurio, um nome de grupo (@grupo) ou um "*" especificando
que as restries nos outros campos se aplicam a todos os grupos e todos os usurios.
Segundo campo - Tipo de restrio:
soft - Limite suave de bloqueio.
hard - Limite rgido de bloqueio.
-- Quando o tipo de restrio no se aplica ao tem que deseja restringir o acesso.
Quando somente o limite "hard" (rgido) especificado, o limite suave assume o mesmo valor.
Terceiro campo - tem que deseja restringir o acesso:
core - Limita o tamanho do arquivo core (KB)
data - Tamanho mximo de arquivo de dados (KB)
fsize - Tamanho mximo de arquivo (KB)
memlock - Tamanho mximo do espao de endereos bloqueado na memria (KB)
nofile - Nmero mximo de arquivos abertos
rss - Tamanho mximo residente (KB)
stack - Tamanho mximo da pilha (KB)
cpu - Tempo mximo de uso da CPU (MIN)
nproc - Nmero mximo de processos
as - Limite de espao de endereos
maxlogins - Nmero mximo de logins
priority - Prioridade de execuo de processos de usurios
Quarto campo - Especifica o valor do campo anterior
Os limites aplicados ao usurio podem ser visualizados atravs do comando ulimit -S -a (para listar limites
suaves - soft) e ulimit -H -a (para listar limites rgidos - hard). Caso o parmetro -S ou -H sejam omitidos, os
limites listados sero os suaves (soft). Um exemplo de /etc/security/limits.conf (retirado da distribuio Debian
GNU/Linux:
*
soft
core
0
*
hard rss
10000
@student hard nproc
20
@faculty
soft
nproc
20
Guia Foca GNU/Linux

339

@faculty
hard nproc
50
ftp
hard nproc
0
@student
maxlogins
4
gleydson
maxlogins
2
OBS: Estas permisses passam a ter efeito no momento que o usurio se conecta ao sistema, e no quando elas
so modificadas no arquivo /etc/security/limits.conf.

38.3 Restries de acesso a programas/diretrios/arquivos usando


grupos
Usurios podem ter o acesso liberado a diretrios/arquivos execuo de programas de acordo com o grupo que
pertencem. Este um recurso valioso na administrao de sistemas Unix que se bem usado, aumenta as
restries de acesso e segurana no acesso/utilizao de programas em um ambiente de trabalho. Usurios de
sistema tendem a usar o usurio root para fazer tarefas como conexo com internet, utilizao da placa de som,
modem, etc. e as vezes nem sabem que isso pode ser feito atravs do mesmo usurio adicionando este a um
grupo especfico.
Esta tarefa pode ser feita com o comando adduser usurio grupo ou editando manualmente os arquivos
/etc/group e /etc/gshadow. Podemos ter as seguintes situaes facilitadas com o uso de grupos:
Usar a placa de som. Os dispositivos usados pela placa de som como /dev/audio, /dev/dsp, /dev/sndstat,
etc. normalmente tem permisso leitura/gravao para o usurio root e grupo audio (cheque com o comando
ls -la /dev/audio). Para autorizar determinados usurios usar a placa de som basta adiciona-los neste grupo:
adduser usuario audio.
Conectar a Internet. Normalmente o utilitrio ppp tem as permisses SUID root e grupo dip. Adicionamos
o usurio a este grupo: adduser usuario dip. Agora ele poder conectar/desconectar a internet sem a
interveno do usurio root.
OBS Certamente o usurio ter acesso aos arquivos de configurao da discagem do ppp e
conseqentemente a senha de conexo internet, e esta senha a mesma usada no e-mail primrio do
provedor (com o mesmo nome da conta). Esta mesma situao pode acontecer com outros programas que
autorize o acesso a grupos, importante que conhea bem as permisses do programa e entender se existem
riscos.
Utilizar o modem. Um bom grupo para permitir a utilizao do modem dialout. O dispositivo utilizado
pelo modem (no seu link) deve ter permisses leitura/gravao para o usurio root e grupo dialout.
Cadastrando o usurio neste grupo autorizar a utilizao do modem: adduser usuario dialout.
Permitir que diversos usurios compartilhem um mesmo diretrio. Isto til quando muitas pessoas esto
desenvolvendo um mesmo projeto. Siga estes passos:
Crie um novo grupo no sistema: groupadd gp1, a opo -g permite selecionar manualmente a GID.
Opcionalmente voc poder usar um grupo j existente no sistema (veja o arquivo /etc/group).
Crie o diretrio que ser usado para armazenar os arquivos deste grupo de usurios: mkdir projeto1).
Mude o dono/grupo do diretrio: chown root.gp1 projeto1/
De permisses de leitura/gravao para o dono/grupo do diretrio, vamos tambm incluir a permisso
SGID para que todos os arquivos criados dentro deste diretrio pertenam ao mesmo grupo e no ao
grupo primrio do usurio, assim todos os usurios tero acesso: chmod 2770 projeto1
Agora cadastre os usurios que devero ter acesso ao diretrio projeto1/ no grupo gp1, somente estes
usurios e o root tero acesso ao diretrio (permisses 2770).
interessante tambm mudar a "umask" do usurio de 022 para 002 (ou equivalente) para que os novos
arquivos criados tenham permisso de leitura/gravao para o grupo gp1. Caso contrrio, lembre-se de
modificar as permisses de seus arquivos manualmente. Um timo comando para fazer isso (sem afetar
diretrios) : find . -type f -user usuario1 -exec chmod 0660 \{\} \;. Este comando parece estranho mas
excelente! um chmod -R 0660 afetaria at os diretrios, imagine o caos.
A maioria das distribuies Linux vem com uma boa poltica de grupos para permitir um controle eficaz de
recurso. Se voc quer saber quais arquivos em seu sistema pertencem a determinado grupo (til para saber o que
o usurio ter acesso se adiciona-lo quele grupo) execute o comando:
find / -group nome_do_grupo

38.4 Dando poderes de root para executar determinados programas


A ferramenta ideal para isto o sudo. Atravs dela possvel permitir um usurio comum executar um comando
como root e registrar quando isto foi feito. possvel selecionar os usurios/grupos que tero acesso e quais
aplicativos que podero ser usados, estas configuraes so feitas no arquivo /etc/sudoers.
Guia Foca GNU/Linux

340

Por exemplo, para o usurio "john" usar o comando shutdown para desligar o computador: sudo shutdown -h
now.
O sudo um programa muito completo, tomaria muitos Kilobytes neste guia. Recomendo dar uma lida na
pgina de manual para entender como as variveis do arquivo de configurao funcionam. Mesmo assim aqui
vai um exemplo simples deste arquivo para iniciar rapidamente o uso do sudo:
# arquivo sudoers.
#
# Edite este arquivo com o comando 'visudo' como root
#
#
# Especificao de mquinas. O primeiro campo (Host_Alias) diz que a varivel
# LOCALSERVER ser um nome/endereo de mquina
Host_Alias LOCALSERVER=192.168.0.1
# Especificao de usurios. O primeiro campo (User_Alias) diz que a varivel
# NETMASTERS armazenar nomes de usurios
User_Alias NETMASTERS=gleydson, goodboy
# Comandos. O primeiro campo (Cmnd_Alias) diz que a varivel
# C_REDE contm comandos do sistema. Mais de um parmetro
# deve ser separado por vrgulas
Cmnd_Alias C_REDE=/sbin/ipchains, /sbin/iptables
# Padres que se aplicam aos usurios da varivel NETMASTERS. O parmetro
# mail_always sempre envia um e-mail ao root avisando sobre o uso do
# sudo
Defaults:NETMASTERS
mail_always
# As linha que comeam com o nome de usurio ou varivel "User_Alias"
# definem o acesso aos recursos. O primeiro campo o usurio, o segundo
# o endereo de acesso (opcionalmente seguido de um sinal "=" para
# especificar opes adicionais) o terceiro o comando ou lista de comandos
#
# O usurio root no tem restries
root ALL=(ALL) ALL
# Permite que os usurios especificados na varivel NETMASTERS
# acessando dos locais em LOCALSERVER utilizem os comandos
# em C_REDE (sem fornecer senha).
NETMASTERS
LOCALSERVER=NOPASSWD: C_REDE
Edite este arquivo com o comando visudo, ele faz algumas checagens para detectar problemas de configurao.

38.5 Restringindo o comando su


Restries de acesso atravs de grupos, bloqueio de acesso, acesso direto sem senha, etc. podem ser aplicados
ao sudo via seu arquivo de configurao PAM /etc/pam.d/su. Abaixo um exemplo explicativo deste arquivo:
# A configurao abaixo requer que o usurio seja membro do
# grupo adm para usar o 'su'.
# auth
required pam_wheel.so group=adm
# Membros do grupo acima no precisam fornecer senha, temos confiana neles.
# auth
sufficient pam_wheel.so trust
# Usurio que pertencem ao grupo "nosu" nunca devero ter acesso ao 'su'
# auth
required pam_wheel.so deny group=nosu
# O root no precisa fornecer senha ao 'su'
auth
sufficient pam_rootok.so
# Ativa as restries PAM de /etc/security/limits.conf
session required pam_limits.so
# Isto ativa as restries PAM de /etc/security/time.conf no
# comando 'su'
account requisite pam_time.so
# Mdulos padres de autenticao Unix
auth
required pam_unix.so
account required pam_unix.so
session required pam_unix.so

Guia Foca GNU/Linux

341

38.6 Restries baseadas em usurio/IP


O servio identd permite identificar os usurios que esto realizando conexes TCP, adicionalmente esta
caracterstica usada por programas para fazer restries para usurios em adio ao endereo de
origem/destino. A sintaxe usada nas diretivas de acesso especificada na forma usurio@endereo. O Servidor
ident, Captulo 34 explica a configurao/utilizao/vulnerabilidades e recomendaes sobre este servio.
Diversos programas que possuem controle de acesso baseado em IP's/hosts aceitam esta especificao, como o
exim, ircd, e o conhecido tcpd.
Segue um exemplo da utilizao do identd com o arquivo hosts.allow:
# Permite o acesso ao servio de telnet somente ao usurio gleydson conectando
# a partir da mquina com IP 192.168.1.1
in.telnetd: gleydson@192.168.1.1
# Permite o acesso ao servio ftp somente ao usurio gleydson conectando de
# qualquer mquina da rede 192.168.1.*
in.ftpd: gleydson@192.168.1.
Note que a utilizao do identd torna a utilizao do servio um pouco mais restrita, somente conhecendo os
"logins" de quem tem acesso ao servio, um cracker conseguir ter acesso ao mesmo servio naquele sistema
(este um dos motivos que recomendado sempre divulgar o mnimo detalhes possveis sobre o sistema para
minimizar riscos de ataques).
Veja mais detalhes sobre o uso do identd em Servidor ident, Captulo 34.

38.7 Desabilitando servios no usados no Inetd


Desative todos os servios que no sero utilizados no arquivo /etc/inetd.conf, isto diminui bastante as
possibilidades de ataques em seu sistema. Os nomes de servios so os parmetros especificados na primeira
coluna do arquivo /etc/inetd.conf (por exemplo, talk, ircd, pop3, auth, smtp).
Para desativar servios neste arquivo, ponha o smbolo "#" no incio das linhas que deseja comentar e execute
um killall -HUP inetd. Alternativamente, o comando update-inetd pode ser usado para facilitar esta tarefa:
update-inetd --disable finger,talk,time,daytime
update-inetd --disable
Este comando envia automaticamente o sinal de reincio (HUP) ao inetd. O servio poder ser novamente
ativado substituindo a opo --disable por --enable ou retirando o trecho "#<off>#" no comeo da linha do
servio do /etc/inetd.conf.

38.8 Evitando o uso de hosts.equiv e .rhosts


O arquivo hosts.equiv contm uma lista de usurios autorizados/desautorizados que podem fazer uso dos
servios "r*" sem fornecer uma senha (como rsh, rcp, rexec, etc), veja /etc/hosts.equiv e /etc/shosts.equiv, Seo
15.8.3.3. muito fcil falsificar um nome de usurio para obter acesso aos privilgios de outro usurio usando
este recurso.
Os arquivos ~/.rhosts, ~/.shosts tem o funcionamento parecido com o hosts.equiv mas contm somente dois
campos, o primeiro especificando o nome do computador (FQDN) e o segundo o nome do usurio que tem
permisso de acesso sem fornecer senha. Ele garantir este acesso ao usurio e mquina remota especificada
neste arquivo. Se for definido somente o nome do computador, o nome de usurio dever ser o mesmo do local
para que o acesso sem senha seja garantido. recomendvel restringir o acesso a estes arquivos somente ao
usurio/grupo quando for realmente necessrio. Um exemplo de ~/.rhosts:
maquina1.dominio.com.br usuario1
maquina2.dominio.com.br usuario2
O uso destes dois mecanismos e dos servios "r*" so desencorajados! (o ltimo por usar transferncia de dados
no criptografadas, veja Servidor ssh, Captulo 36 para uma alternativa melhor). Utilize estes dois mecanismos
somente se deseja facilidade no gerenciamento e se sua rede seja absolutamente confivel e a segurana de
dados no seja prioridade pra voc...

38.9 Restringindo o uso do shutdown


Por padro todos que tem acesso ao console do sistema podem efetuar o reincio do computador pressionando
CTRL+ALT+DEL. Estas teclas de combinao so definidas pela linha
ca:12345:ctrlaltdel:/sbin/shutdown -r now
do arquivo /etc/inittab. A opo -a (access) do shutdown restringe isto, permitindo somente o reincio do sistema
caso um dos usurios cadastrados no arquivo /etc/shutdown.allow estejam logados no console. Caso nenhum
usurio autorizado esteja logado, a mensagem shutdown: no authorized users logged in exibida no console
local.
Guia Foca GNU/Linux

342

O arquivo /etc/shutdown.allow deve conter um usurio por linha e 32 no mximo.


A mesma linha do /etc/inittab pode ser modificada para a seguinte:
ca:12345:ctrlaltdel:/sbin/shutdown -a -t5 -r now
OBS: Se a opo -a seja especificada e o arquivo /etc/shutdown.allow no existe, a opo -a ignorada.

38.10 Restringindo o acesso ao sistema de arquivos /proc


O patch restricted proc fs um dos melhores para realizar esta tarefa. Restringindo o acesso ao sistema de
arquivos /proc evita que o usurio normal tenha acesso aos detalhes sobre processos de outros (com ps aux) ou
acesso a detalhes de processos de outros usurios existentes nos subdiretrios numricos (equivalentes a PID)
em /proc. Abaixo algumas caractersticas do patch restricted proc fs:
pequeno, rpido e faz poucas modificaes no fonte do Kernel.
Seu mtodo de funcionamento baseado nas restries de dono/grupo (nativas de ambiente Unix).
Restringe a visualizao de processos s dos usurios. Adicionalmente ser especificada uma GID para o
diretrio /proc, qualquer usurio que pertena ao grupo especificado poder visualizar todos os processos e
entrar em qualquer diretrio do Kernel (sem restries, como se no tivesse o patch).
Muito estvel e confivel.
Este patch deve ser baixado de http://noc.res.cmu.edu/proc, existem verses para os Kernels da srie 2.2 e 2.4,
baixe e aplique o patch, na configurao do Kernel ative a opo Restricted Proc fs support. Compile e instale
seu Kernel.
No arquivo /etc/fstab inclua um grupo para a montagem do sistema de arquivos /proc (vamos usar o grupo adm
com a GID 4):
# /etc/fstab: informaes estticas do sistemas de arquivos.
#
# <Sist. Arq.> <Ponto Mont.> <tipo> <opes>
<dump> <passo>
proc
/proc
proc defaults,gid=4 0
0
Aps reiniciar o sistema, execute o comando ls -lad /proc note que o grupo do diretrio /proc ser modificado
para adm. Agora entre como um usurio e execute um ps aux, somente seus processos sero listados. Para
autorizar um usurio especfico ver todos os processos (ter acesso novamente ao diretrio /proc), inclua este no
grupo que usou no arquivo /etc/fstab:
adduser usuario adm
Aps efetuar o usurio j estar pertencendo ao grupo adm (confira digitando groups), e poder ver novamente
os processos de todos os usurios com o comando ps aux.
OBS1: Incluir um usurio no grupo adm PERIGOSO, porque este usurio poder ter acesso a
arquivo/diretrios que pertenam a este grupo, como os arquivos/diretrios em /var/log. Se esta no sua
inteno, crie um grupo independente como restrproc para controlar quem ter acesso ao diretrio /proc:
addgroup restrproc.
OBS2: Se a opo gid no for especificada para a montagem de /proc no /etc/fstab, o grupo root ser usado
como padro. NUNCA adicione usurios ao grupo root, use o mtodo da observao acima para permitir outros
usurios ver todos os processos em execuo.
OBS3 Caso o servidor identd esteja sendo usado na mquina servidora, ser necessrio roda-lo com a mesma
GID do diretrio /proc para que continue funcionando. Se ele executado como daemon, adicione a opo -g
GRUPO no script que inicia o servio em /etc/init.d e reinicie o daemon. Caso ele seja iniciado via inetd, faa a
seguinte modificao no arquivo /etc/inetd.conf (assumindo o uso do oidentd):
#:INFO: Info services
auth
stream tcp
nowait.40
nobody.adm
/usr/sbin/oidentd oidend -q -i -t 40
Veja Servidor ident, Captulo 34 para detalhes sobre este servio.

38.11 Limitando o uso de espao em disco (quotas)


O sistema de quotas usado para limitar o espao em disco disponvel a usurios/grupo. O uso de parties
independentes para o diretrio /home e outros montados separadamente no muito eficaz porque muitos
usurios sero prejudicados se a partio for totalmente ocupada e alguns possuem requerimentos de uso maior
do que outros.
O suporte a Quotas deve estar compilado no Kernel (seo FileSystems) e o sistema de arquivos dever ser do
tipo ext2 ou XFS para funcionar.

38.11.1 Instalando o sistema de quotas


Abaixo o passo a passo para a instalao de quotas em seu sistema:
1.
Recompile seu Kernel com suporte a quota. Habilite a opo "Quota support" na seo "FileSystems"
Guia Foca GNU/Linux

343

na configurao de recursos do seu Kernel.


Instale o pacote quota no sistema (apt-get install quota).
Habilite a quota para os sistemas de arquivos que deseja restringir no arquivo /etc/fstab:
/dev/hda1
/boot ext2
defaults
1
1
/dev/hda3
/
ext2
defaults,usrquota
1
2
/dev/hda4
/usr
ext2
defaults,grpquota
1
3
/dev/hda5
/pub ext2
defaults,usrquota,grpquota
1
4
O sistema de arquivos /dev/hda1 no ter suporte a quota, /dev/hda3 ter suporte a quotas de usurios
(usrquota), /dev/hda4 ter suporte a quotas de grupos (grpquota) e /dev/hda5 ter suporte a ambos. Por
padro assumido que os arquivos de controle de quota esto localizados no ponto de montagem da
partio com os nomes quota.user e quota.group.
4.
Agora ser necessrio criar os arquivos quota.user e quota.group no ponto de montagem de cada
partio ext2 acima que utilizar o recurso de quotas. O arquivo quota.user controla as quotas de usurios e
quota.group controla as quotas de grupos.
Crie um arquivo vazio quota.user em / (ter suporte somente a quota de usurios, veja a opo de
montagem no /etc/fstab): touch /quota.user ou echo -n >/quota.user.
Crie um arquivo vazio quota.group em /usr (ter suporte somente a quota de grupos): touch
/usr/quota.group ou echo -n >/usr/quota.group.
Crie um arquivo vazio quota.user e quota.group em /pub (este sistema de arquivos tem suporte a ambos
os tipos de quota): touch /pub/quota.user /pub/quota.group.
Por motivos de segurana, as permisses dos arquivos de controle de quota quota.user e quota.group devem
ser leitura/gravao ao usurio root e sem permisses para grupo/outros usurios: chmod 0600
/quota.user /quota.group.
OBS: Se deseja utilizar o quota verso 1, certifique-se que no existem os arquivos chamados aquota.user e
aquota no diretrio raiz de sua partio. Se eles estiverem disponveis, os utilitrios de quota utilizaro esta
verso como padro. Atualmente o Kernel 2.4 possui somente suporte a quota verso 1. A verso 2 do quota
checa corrompimento dos arquivos de dados de quota e trabalha mais rpido em parties grandes. So
necessrios patches da srie ac (Alan Cox) para usar a verso 2 do quota.
5.
Entre em modo monousurio init 1, desmonte os sistemas de arquivos que utilizaro a quota e monte-os
novamente (isto serve para ativar as opes de quota). Alternativamente, execute umount -a (para desmontar
todos os sistemas de arquivos) e mount -a para remontar todos.
Se voc ativou as quotas para o sistema de arquivos / (como em nosso exemplo) ser necessrio reiniciar o
sistema.
6.
O prximo passo scanear o disco para criar os dados para as parties com suporte a quota (ativadas
no /etc/fstab):
quotacheck -augv
O parmetro -a diz para checar todas as parties com suporte a quota no arquivo /etc/mtab, -u para checar
quotas de usurios, -g para checar grupos e -v para mostrar o progresso da checagem da partio.
Na primeira execuo mostrado uma mensagem de erro de arquivo quota.user/quota.group corrompido,
mas isto normal porque o arquivo anterior tem tamanho zero. Estes nomes tambm servem para o
quotacheck "auto-detectar" a verso do sistema de quota usada no sistema de arquivos.
OBS: Certamente ser necessrio "forar" a remontagem como somente leitura do sistema de arquivos /
com a opo -m para o quotacheck criar as configuraes de quota nesta partio.
7.
Agora resta ativar o suporte as quotas de disco em todas as parties (-a) com recurso de quota
especificado (no /etc/mtab):
quotaon -augv
As opes possuem o mesmo significado do comando quotacheck. O utilitrio quotaoff serve para desativar
quotas de usurios e usa as mesmas opes do quotaon. Estes trs utilitrios somente podem ser usados pelo
usurio root. As opes de quota podem ser especificadas independente para cada sistema de arquivos:
# Ativa o suporte a quota em /pub (somente grupos de usurios no momento).
quotaon -gv /pub
# Ativa as quotas de usurios em /pub
quotaon -uv /pub
# Desativa as quotas de grupos em /pub (deixando somente a de usurios ativa)
quotaoff -gv /pub
A atualizao de quotas durante a gravao/excluso de arquivos feita automaticamente. O utilitrio
quotacheck dever ser executado sempre que o sistema de quotas for desativado (por no haver atualizao
automtica dos dados de uso de disco) ou quando ocorrerem falhas de disco.
Na distribuio Debian o quotacheck disparado sempre que necessrio aps as situaes de checagem de
disco. As quotas de todas as parties tambm so ativadas automaticamente pelo script /etc/init.d/quota e
2.
3.

Guia Foca GNU/Linux

344

/etc/init.d/quotarpc.
Em sistemas que utilizam NFS e possuem sistemas de arquivos exportados em /etc/exports, o daemon
rpc.rquotad dever ser carregado. Sua funo fornecer os detalhes de quota dos sistemas de arquivos locais
exportados para as mquinas clientes.

38.11.2 Editando quotas de usurios/grupos


O programa edquota usado pelo root para editar as quotas de usurios/grupos. Por padro, todos os
usurios/grupos do sistema no possuem quotas. Sua sintaxe a seguinte
edquota [opes] [usurio/grupo]
As opes podem ser:
-u - Edita a quota do usurio especificado (esta a padro).
-g - Edita a quota de grupo especificado.
-r - Permite editar a quota de sistemas de arquivos remotos atravs do daemon rpc.rquotad.
-t - Permite modificar o valor de tolerncia dos limites que ultrapassam soft at que sejam bloqueados.
Durante o tempo de tolerncia, sero enviados somente avisos sobre a quota ultrapassada sem bloquear
totalmente a gravao de arquivos (at que o limite hard seja atingido ou o tempo de tolerncia seja
ultrapassado).
Quando a quota soft do usurio/grupo estourada, a mensagem "warning: user disk quota excedeed" ser
exibida. Quando a quota hard ultrapassada, a gravao atual interrompida e a mensagem "write failed, user
disk limit reatched" mostrada ao usurio. Nenhuma nova gravao que ultrapasse a quota hard permitida Por
exemplo, para modificar a quota do usurio gleydson: edquota gleydson
Disk quotas for user gleydson (uid 1000):
Filesystem
blocks
soft
hard
inodes
soft
hard
/dev/hda5
504944
500100
600000
10868
15000
20000
O editor de textos usado poder ser modificado atravs da varivel $EDITOR. Abaixo a explicao destes
campos:
Filesystem - Sistema de arquivos que ter a quota do usurio/grupo editada. As restries se aplicam
individualmente de acordo com o sistema de arquivos.
blocks - Nmero mximo de blocos (especificado em Kbytes) que o usurio possui atualmente. O usurio
gleydson est usando atualmente 504944 Kbytes.
soft - Restrio mnima de espao em disco usado. Atualmente 500100 Kb.
hard - Limite mximo aceitvel de uso em disco para o usurio/grupo sendo editado. 600000 Kb
atualmente. O sistema de quotas nunca deixar este limite ser ultrapassado.
inodes - Nmero mximo de arquivos que o usurio possui atualmente na partio especificada. O usurio
gleydson possui atualmente 10868 arquivos na partio /pub.
soft - Restrio mnima de nmero de arquivos que o usurio/grupo possui no disco. Atualmente em
37.000.
hard - Restrio mxima de nmero de arquivos que o usurio/grupo possui no disco. Atualmente em
20.000.
Para desativar as restries coloque "0" no campo soft ou hard. Quando o limite soft atingido, o usurio
alertado por ter ultrapassado sua quota com a mensagem "warning: user quota excedeed" (quota do usurio
excedida). O programa setquota uma programa no-interativo para edio de quotas para ser usado
diretamente na linha de comando ou em shell scripts.
Aps ultrapassar o limite soft, comea a contagem do tempo para que este passe a valer como limite hard (o
mximo aceitvel e que nunca poder ser ultrapassado). O comando edquota -t serve para modificar estes
valores na partio especificada:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem
Block grace period Inode grace period
/dev/hda5
2days
7days
Abaixo a explicao destes campos:
Filesystem - Sistema de arquivos que ter o perodo de tolerncia modificado.
Block grade period - Tempo mximo de tolerncia para usurios/grupos que ultrapassaram sua quota soft
de espao em disco antes de passar a valer como hard. No exemplo, o usurio tem 2 dias para excluir
possveis arquivos ou contactar o administrador para redimensionar o tamanho de quota. O valor padro 7
dias.
Guia Foca GNU/Linux

345

Inode grade period - Tempo mximo de tolerncia para usurios/grupos que ultrapassaram sua quota soft
de nmero de arquivos gravados antes de passar a valer como hard. No exemplo, o usurio tem 7 dias para
excluir possveis arquivos ou contactar o administrador para analisar seu tamanho de quota. O valor padro
7 dias.
OBS1: - O comando quotacheck dever ser executado na partio sempre que novas restries/limites forem
editados com o edquota. Isto atualiza os arquivos quota.user e quota.group. Lembre-se de desativar o sistema de
quotas (quotaoff -ugv /partio) antes de executar este comando (para liberar totalmente a partio, quotacheck
remonta a partio somente para leitura quando executado). Por este motivo recomendvel fazer isso em
modo monousurio.
OBS2: Quando o limite soft (suave) excedido, o sistema comear a lhe mostrar mensagens alertando a
passagem do limite (para lhe dar tempo de eliminar arquivos ou no ser pego desprevenido com o bloqueio de
gravao) porque o limite hard (rgido) nunca poder ser ultrapassado.
OBS3: - O tempo de tolerncia restante ao usurio/grupo quando a quota ultrapassada poder ser visualizada
com o comando quota (veja Verificando a quota disponvel ao usurio, Seo 38.11.3).
OBS4: - Quando o usurio exclui seus arquivos e volta a ficar abaixo dos limites soft da quota, o tempo de
tolerncia resetado aos valores padres (especificados por edquota -t.
OBS5: - As quotas de espao em disco podem ser definidas automaticamente para os novos usurios
adicionados ao sistema colocando o espao em disco na varivel QUOTAUSER=numero do arquivo
/etc/adduser.conf. Isto ser equivalente a digitar o comando edquota -q QUOTA novo_usurio.

38.11.3 Modificando a quota de todos os usurios de uma vez


Editar manualmente a quota de cada usurio uma tarefa trabalhosa quando se est instalando quotas e possui
muitos usurios. Existe uma maneira mais fcil de fazer isso usando o prprio edquota e um usurio com a
quota j definida. Por exemplo, instalamos quota em nosso sistema e queremos que todos os 300 usurios
tenham a quota de usurio de 10MB e de grupo de 15MB:
Criamos um usurio com esta quota usando o edquota (como descrito em Editando quotas de usurios/grupos,
Seo 38.11.2). Como exemplo usaremos o usurio teste_user. Use o comando quota teste_user para verificar
se as quotas para este usurio esto corretas.
Criamos um script que modifique a quota padro de todos os usurios do sistema de uma s vez:
#!/bin/sh
cd /home
for USUARIO in *
do
edquota -u ${USUARIO} -p teste_user
done
Pronto, verifique a quota de todos os usurios com o comando repquota -a.

38.11.4 Verificando a quota disponvel ao usurio


Execute o comando quota mostra os limites de usurios/grupos e a tolerncia restante antes do limite soft se
tornar rgido. Abaixo alguns exemplos descritivos deste comando:
quota
Disk quotas for user gleydson (uid 1234):
Filesystem
blocks
quota
limit
grace files
quota limit grace
/dev/hda5
504944*
500100
600000
00:05 10868
0
0
Os campos tem o seguinte significado:
Filesystem - Sistema de arquivos.
blocks - Nmero de blocos usados atualmente na partio (em Kb). O "*" indica que o limite foi
ultrapassado. Atualmente em 504944.
quota - Limite suave (soft) de espao na partio que o usurio/grupo possui. Atualmente 500100. O valor
0 indica que o usurio/grupo no possui restries.
limit - Limite mximo (hard) de espao na partio que o usurio/grupo possui. Atualmente em 600000. O
valor 0 indica que o usurio/grupo no possui restries.
grace - Tolerncia antes que o limite soft passe a valer como hard quando o espao em disco
ultrapassado. Este usurio tem 5 minutos restantes para que isto ocorra. Quando o valor soft volta a ficar
abaixo da quota, a tolerncia resetada.
O parmetro "none" indica que o tempo de tolerncia expirou (caso existam limitaes de quota que foram
ultrapassadas) ou que o usurio/grupo no possui restries. Veja se existe um "*" no campo blocks.
Guia Foca GNU/Linux

346

files - Nmero mximo de arquivos que usurio/grupo possui atualmente na partio. Um "*' indica que o
limite foi ultrapassado. Atualmente em 10868.
quota - Limite suave (soft) de nmero de arquivos na partio que o usurio/grupo possui. Atualmente
ilimitado.
limit - Limite mximo (hard) de nmero de arquivos na partio que o usurio/grupo possui. Atualmente
ilimitado.
grace - Tolerncia antes que o limite soft passe a valer como hard para o nmero de arquivos
ultrapassados. Como no existe quota para nmero de arquivos, no existe tolerncia. A tolerncia
resetada aos valores padres quando o valor soft volta a ficar abaixo da quota.
A quota de outros usurios/grupos podem ser visualizadas especificando as opes -u (padro) e -g na linha de
comando respectivamente. A opo -v permite visualizar quotas em sistemas de arquivos no alocados e -q
mostra somente uma mensagem dizendo se o usurio est ou no dentro de sua quota:
quota -u usuario
quota -uq usuario
quota -g users
Por motivos de segurana, voc no poder visualizar as quotas de outros usurios e grupos que no pertence
(exceto para o usurio root).

38.11.5 Verificando a quota de todos os usurios/grupos do sistema


Quando precisamos verificar o uso de quotas de todos os usurios/grupos do sistema o quota se torna incmodo
e pouco prtico. O comando repquota lista est disponvel ao administrador para facilitar esta tarefa. Sua
listagem organizada por parties listando dados adicionais como grace time e aceita as mesmas opes dos
utilitrios quotaon e quotaoff. Primeiro so listados as restries de usurios e depois de grupos para a partio.
(tolerncia) As opes aceitas por este utilitrio tem o mesmo significado das opes do quotaon e quotaoff:
repquota -aug
*** Report for user quotas on device /dev/hda3
Block grace time: 7days; Inode grace time: 7days
Block limits
File limits
User
used soft
hard grace used soft
hard grace
---------------------------------------------------------------------------------------------------root
-29160 0
0
none 9970 0
0
none
daemon
-64 0
0
22
0
0
0
man
-944 0
0
65
0
0
0
mail
-4960 0
0
823
0
0
0
news
-4 0
0
1
0
0
0
gleydson
-31032 0
0
6956
0
0
0
testuser
-16 0
0
4
0
0
0
anotheruser -16 0
0
4
0
0
0
nobody
-2344 0
0
2
0
0
0
*** Report for user quotas on device /dev/hda5
Block grace time: 2days; Inode grace time: 7days
Block limits
File limits
User
used soft
hard
grace
used soft
hard grace
-------------------------------------------------------------------------------------------------------------root
-16052 0
0
none
6443 0
0
none
gleydson
+4944 500100 600000 none
10868 0
0
*** Report for group quotas on device /dev/hda5
Block grace time: 7days; Inode grace time: 7days
Block limits
File limits
Group
used soft hard grace
used soft
hard grace
---------------------------------------------------------------------------------------------root
-20308 0
0
none
636
0
0 none
src
-11404 0
0
660
0
0
0
users
-1756 0
0
6561
0
0
0
gleydson
-3452 0
0
9307
0
0
0
Guia Foca GNU/Linux

347

Um sinal de "+-" no segundo campo indica quota ultrapassada ou no espao em disco, "-+' em nmero de
arquivos e "++" em ambos. Como vimos acima, o este comando tambm lista o nmero de arquivos e bytes
pertencentes a cada usurio na partio (mesmo no sendo monitorado pelas restries de quota), isto ajuda a
monitorar aes suspeitas com a excedncia de espao em disco de determinados usurios/grupos do sistema.
Um exemplo algum que esteja fora da quota e abusando de seu usurio/grupo para uso excessivo de espao
em disco sem seu conhecimento.
OBS: Este utilitrio pode ser executado por qualquer usurio no sistema e mostrar o uso de quotas de
usurios/grupos que no deveria ter acesso. recomendado deve ter permisses de leitura/gravao somente
para o usurio root e sem permisses para grupo/outros usurios.

38.11.6 Avisando usurios sobre o estouro de quota


Avisos sobre quota ultrapassada podem ser enviadas automaticamente a todos os usurios pelo utilitrio
warnquota. Ele poder ser executado periodicamente atravs do cron (por padro isto feito diariamente na
distribuio Debian pelo script /etc/cron.daily/quota). Dados adicionais sobre o envio das mensagens devem ser
especificados no arquivo /etc/warnquota.conf seu formato o seguinte:
# Programa usado para enviar as mensagens
MAIL_CMD
= "/usr/sbin/sendmail -t"
# Campo de origem da mensagem
FROM
= "root@localhost"
# but they don't have to be:
SUBJECT = Quota excedida
CC_TO
= "root@localhost"
SUPPORT = "root@localhost"
PHONE
= "5555-2525"
#
O e-mail enviado aos usurios (e usurios que pertencem a grupos com a quota excedida) com o seguinte
formato:
From: root@localhost
To: gleydson@debian.gms.com.br
Cc: root@localhost
Reply-To: root@localhost
Subject: Quota Excedida
Date: Sat, 22 Sep 2001 14:27:38 -0400
Hi,
We noticed that you are in violation with the quotasystem
used on this system. We have found the following violations:
Block limits
File limits
Filesystem
used
soft
hard grace used soft hard grace
/dev/hda5 +- 504944 500100 600000 none 10868 0 0
We hope that you will cleanup before your grace period expires.
Basically, this means that the system thinks you are using more disk space
on the above partition(s) than you are allowed. If you do not delete files
and get below your quota before the grace period expires, the system will
prevent you from creating new files.
For additional assistance, please contact us at root@localhost
or via phone at 5555-2525.

38.12 Suporte a senhas ocultas


Veja Shadow Passwords, Seo 32.4.1.

Guia Foca GNU/Linux

348

38.13 Suporte a senhas md5


Veja Senhas MD5, Seo 32.4.2.

38.14 Restries no hardware do sistema


As restries descritas aqui so teis para diminuir as chances de um ataque por acesso fsico ser realizado com
sucesso no sistema que desejamos proteger.
Ter um sistema totalmente seguro praticamente impossvel, mas existem diversas maneiras de se dificultar as
coisas.

38.14.1 BIOS do sistema


Algumas restries podem ser configuradas na para diminuir as chances de se obter acesso root (usando
mtodos conhecidos de recuperao via disquete/CD inicializvel) ou simplesmente aumentar nossa confiana
no sistema:
Coloque uma senha para entrada no Setup da mquina, compartilhe esta senha somente com as pessoas
que tem poder de root (ou seja, pessoal de confiana que administra a mquina).
Mude a seqencia de partida para somente sua unidade de disco rgido que contm o sistema operacional.
As BIOS trazem convenes de DOS para especificar o mtodo de partida, ento Only C quer dizer somente
o primeiro disco rgido, SCSI tentar dispositivos SCSI primeiro, etc. Isso pode variar de acordo com o
modelo de sua BIOS.
Com os dois tens acima qualquer um ficar impedido de inicializar o sistema a partir de um disco de
recuperao ou entrar no Setup para modificar a ordem de procura do sistema operacional para dar a partida via
disquetes.

38.14.2 Retirada da unidade de disquetes


Como no seguro confiar nas restries de senha da BIOS (qualquer um com conhecimentos de hardware e
acesso fsico a mquina pode abrir o gabinete e dar um curto na bateria que mantm os dados na CMOS ou
aterrar o pino de sinal da CMOS), a retirada da unidade de disquetes recomendada, isso dificultar bastante as
coisas.

38.14.3 Placas de rede com eprom de boot


Evite a utilizao de placas de rede com recursos de boot via EPROM no servidor, um servidor dhcp/bootp/tftp
poder ser configurado sem problemas por um cracker na rede (caso a BIOS esteja com a ordem inadequada de
procura de discos) e o ataque se dar com mais "sofisticao" e rapidez.

38.14.4 Protegendo o LILO


A opo passwd=senha e restricted podero ser usadas na seo da imagem que desejamos proteger.
Respectivamente pedem uma senha para a inicializao do sistema e caso argumentos como root=single sejam
usados para conseguir acesso root sem fornecer senha.
E deixe somente as permisses de acesso ao usurio root (caso contrrio sua senha poder ser vista por qualquer
usurio) e modifique os atributos deste arquivo para imutvel para que nem mesmo o root possa modifica-lo:
chattr +i /etc/lilo.conf.

38.14.5 Disco rgido


O disco rgido do servidor poder se retirado como alternativa para se ter acesso aos dados armazenados. Isto
poder ser dificultado com o uso de lacres de disco ou outras maneiras de dificultar mais esta tarefa (mais
parafusos, armazenamento em partes de difcil manipulao do HD, etc) qualquer coisa que possa lhe fazer
ganhar tempo e despertar suspeitas para evitar o sucesso desta alternativa (ousada).
Dados importantes ou confidenciais podero ser armazenados em um sistema de arquivos criptografados e
serem montados somente pelos administradores que possuem acesso fsico ao sistema. O algoritmo Serpent
muito forte na proteo de dados alm de possuir um timo desempenho. Patches de criptografia podero ser
aplicados no Kernel para ativao deste recurso (veja Sistemas de arquivos criptogrfico, Seo 39.4) para
detalhes.
Sensores podem ser ligados na carcaa do HD como forma de disparar um pequeno alarme embutido no
Guia Foca GNU/Linux

349

gabinete do servidor, se voc gosta de eletrnica poder montar um destes facilmente para chamar a ateno
alimentado por fonte/baterias em um circuito de emergncia, e poder acomodar sua caixa em uma segunda
"carcaa de fonte" apenas para desviar suspeitas. Um circuito interno de cmeras tambm uma boa alternativa
para monitorar a movimentao.
Esquemas de segurana dependendo do porte da organizao e dos dados que se desejam proteger devero ser
elaborados e postos em prtica. Todos os mtodos imaginveis devero ser considerados de acordo com as
possibilidades do ambiente.

Guia Foca GNU/Linux

350

Captulo 39

Introduo ao uso de criptografia para transmisso e


armazenamento de dados

Este captulo explica como dados transmitidos em uma rede pode ser capturados, isto ajudar a entender a
vulnerabilidade de servios comuns que no utilizam criptografia para a transmisso de dados e
alternativas/programas equivalentes que fazem transmisso de dados usando mtodos criptogrficos para deixar
a mensagem somente legvel para origem e destino.

39.1 Introduo
Quando enviamos um trfego de nossa mquina para outra (e-mails, mensagens de ICQ, navegao, ftp, etc) os
dados passam por vrias mquinas at atingir o seu destino (isto se chama roteamento). Se algum cracker
instalou algum capturador de pacotes (sniffer) em alguma das mquinas de nossa rota os dados podero
facilmente visualizados.
Crackers normalmente configuram estes programas a procura de campos como "passwd" e outras expresses
que sejam teis para acesso ao seu sistema ou espionagem. Quem gosta de ter sua privacidade violada? A
internet definitivamente uma rede insegura e nem todos os administradores de servidores so responsveis o
suficiente para fazer uma configurao restrita para evitar acesso de pessoas mal intencionadas.
Este captulo mostra (na prtica) como um sniffer funciona para captura de pacotes, isto ajudar a entender
como servios que enviam seus dados em forma texto plano so vulnerveis a isto e alternativas para
transmisso segura de dados. Este captulo tem a inteno de mostrar alternativas seguras de proteo dos dados
que trafegam em sua rede e a segurana de suas instalaes.

39.2 Sniffer
O sniffer (farejador) um programa que monitoram/registram a passagem de dados entre as interfaces de rede
instaladas no computador. Os dados coletados por sniffers so usados para obteno de detalhes teis para
soluo de problemas em rede (quando usado com boas intenes pelo administrador do sistema) ou para
ataques ao sistema (quando usado pelo cracker para obter nomes/senhas e outros detalhes teis para
espionagem).
Os sniffers mais conhecidos para sistemas Linux so tcpdump, ethereal. Este ltimo apresenta uma interface
grfica GTK para fcil operao em mquinas que executam o servidor X. Para explicar o funcionamento de um
sniffer, vou assumir o ethereal instalado (ele no requer modificaes no sistema alm de ser fcil de executar e
fazer pesquisa de expresses especficas). Instale o ethereal com o comando apt-get install ethereal.
Agora vamos a prtica para entender como o sniffer funciona e a importncia da criptografia de dados (s assim
mesmo, no da para entender falando muita teoria.
Conecte-se a Internet
Execute o ethereal como usurio root.
Pressione CTRL+K para abrir a tela de captura de pacotes. Em Interface selecione sua interface de
internet. Nesta tela clique no boto "FILE" e coloque um nome de arquivo que a captura ser gravada.
Opcionalmente marque a opo "Update list of packets in real time" para monitorar a passagem de pacotes
em tempo real.
Clique em "OK". A captura de pacotes ser iniciada
Conecte-se a um site ftp qualquer (digamos ftp.debian.org.br). Entre com o usurio "anonymous" e senha
"minhasenha@segura.com.br"
Finalize a captura de pacotes clicando no boto "STOP"
Agora v em "File"/"Open" e abra o arquivo capturado. Ele est no formato usado pelo sniffer tcpdump como
padro. Procure no campo "INFO" a linha "Request: USER anonymous", logo abaixo voc ver a senha digitada
pelo usurio. Entendeu agora a importncia da criptografia na transferncia segura de dados? no s o
nome/senha pode ser capturado mas toda a sees feitas pelo usurio. Scanners como o tcpdump e ethereal so
flexvelmente configurveis para procurar por dados especficos nas conexes e salva-los para posterior
recuperao.

39.2.1 Detectando a presena de sniffers


Uma caracterstica comum de sniffers mudar o modo de operao das interfaces monitoradas para o "Modo
Promscuo" com o objetivo de analisar todo o trfego que passa por aquele segmento de rede (mesmo no sendo
destinados para aquela mquina).
A entrada/sada de interfaces no modo promscuo monitorada nos logs do sistema:
Guia Foca GNU/Linux

351

Sep 25 16:53:37 myserver Kernel: device eth0 left promiscuous mode


Sep 25 16:53:56 myserver Kernel: device eth0 entered promiscuous mode
Sep 25 16:54:18 myserver Kernel: device eth0 left promiscuous mode
Sep 25 16:54:31 myserver Kernel: device eth0 entered promiscuous mode
O logcheck monitora estas atividades e classificam esta mensagem como prioridade "Violao" (dependendo da
configurao dos seus filtros em /etc/logcheck. Veja logcheck, Seo 17.4.1 para detalhes sobre este programa.
OBS: A utilizao de switches dificulta a captura de pacotes em redes distribudas porque somente os dados
destinados a mquina onde o sniffer est instalado podero ser capturados.

39.3 Alternativas seguras a servios sem criptografia


39.3.1 http
Isto indispensvel em servidores que servem pginas de comrcio eletrnico, banco de dados, sistemas
bancrios, administrao via web ou que tenham dados que oferecem risco, se capturados.
Existem duas alternativas: instalar o servidor Apache-ssl (pacote apache-ssl ou adicionar o mdulo mod-ssl na
instalao padro do Apache. Esta segunda a preferida por ser mais rpida e simples de se administrar, por
usar o servidor Web Apache padro e sua configurao. Veja (veja Uso de criptografia SSL, Seo 33.13) para
detalhes de como configurar um servidor Web para transmisso de dados criptografados.

39.3.2 Transmisso segura de e-mails


A codificao padro usada para o envio de mensagens em muitos clientes de e-mail o MIME/base64. Isto no
oferece muita segurana porque os dados podem ser facilmente descriptografados se pegos por sniffers (veja
Sniffer, Seo 39.2) ou abertos por administradores no confiveis no diretrio de spool do servidor.
A alternativa mais segura para a transmisso de mensagens/arquivos atravs do correio eletrnico usando o
PGP (veja Usando pgp (gpg)para criptografia de arquivos, Seo 39.5) em conjunto com um MUA (Mail User
Agent - cliente de e-mails) que suporte o envio de mensagens criptografadas/assinadas usando PGP. Os dois
programas mais usados em sistemas Unix so o mutt e o sylpheed. O mutt um MUA para modo texto e o
sylpheed para modo grfico. Ambos so muito flexveis, permitem uma grande variedade de configuraes,
personalizaes, possuem agenda de endereos e gerenciam diversas contas de e-mails em um s programa.
Para encriptar/assinar uma mensagem no mutt escreva/responda seu e-mail normalmente, quando aparecer a tela
onde voc tecla "y" para enviar a mensagem, tecle "p" e selecione uma das opes para criptografar/assinar uma
mensagem.
Para fazer a mesma operao no sylpheed, escreva/responda seu e-mail normalmente e clique no menu
"Mensagem" e marque "assinar", "criptografar" ou ambos. A chave pblica dever estar disponvel para tal
operao (veja Adicionando chaves pblicas ao seu chaveiro pessoal, Seo 39.5.8 e Extraindo sua chave
pblica do chaveiro, Seo 39.5.7).

39.3.3 Servidor pop3


A alternativa mais segura a utilizao do protocolo IMAP com suporte a ssl. Nem todos os clientes de e-mail
suportam este protocolo.

39.3.4 Transferncia de arquivos


Ao invs do ftp, use o scp ou o sftp para transferncia segura de arquivos. Veja scp, Seo 36.2.2 e sftp, Seo
36.2.3.

39.3.5 login remoto


Ao invs do uso do rlogin, telnet e rsh utilize o ssh (veja ssh, Seo 36.2.1) ou o telnet com suporte a ssl (veja
Instalao, Seo 35.1.6).

39.3.6 Bate papo via IRC


O programa SILC (Secure Internet Live Conference) um sistema IRC que realiza a criptografia de dados
durante o bate papo entre diversos usurios conectados via rede.

Guia Foca GNU/Linux

352

39.3.7 Transmisso de mensagens via ICQ


O protocolo ICQ padro alm dos dados trafegarem sem nenhuma proteo, operam sobre o protocolo UDP. O
protocolo UDP limitado a pacotes de 512 bytes e no possui muitos campos para a checagem da autenticidade
de endereos. Isto bom para transmitir dados em alta velocidade e consumir menos MTU em sua interface de
rede mas isto facilita a falsificao de pacotes enviados ao destinatrio como se fossem outra pessoa. Outro
ponto fraco que se alguma coisa acontecer com os pacotes UDP, eles sero simplesmente descartados
perdendo a mensagem.
O programa licq (cliente de ICQ para Linux) pode ser compilado com o suporte a ssl para transmisso segura de
dados.

39.4 Sistemas de arquivos criptogrfico


Esta uma forma excelente para armazenamento seguro de seus dados, pois estaro criptografados e sero
somente acessados aps fornecer uma senha que s voc conhece. O sistema usado a montagem de um
arquivo comum como um sistema de arquivos via loopback voc pode escolher um nome de arquivo discreto
para dificultar sua localizao (use a imaginao) e poder ser armazenado at mesmo em parties no-ext2.
Siga estes passos para criar seu sistema de arquivos criptografado (baseado no Loopback-Encripted-Filesystem):
Suporte no Kernel
Baixe o patch criptogrfico de ftp://ftp.Kernel.org/pub/linux/Kernel/crypto de acordo com a sua verso do
Kernel e aplique os patches. Este suporte no pode ser includo nativamente no Kernel devido a restries
de uso e importao de criptografia impostas pelos EUA e outros paises, com este suporte embutido o
Kernel no poderia ser distribuido livremente.
Se o patch para seu Kernel no existir, pegue a verso anterior mais prxima (se no existir o patch para seu
Kernel 2.2.19, pegue a verso 2.2.18 do patch internacional). Isto certamente funcionar.
Opes de compilao do Kernel
Na seo Crypto Support ative Crypto Ciphers e ative o suporte aos ciphers Twofish, blowfish, cast128, e
serpent (estes so distribudos livremente e sem restries). Todos possuem cifragem de 128 bits, exceto o
blowfish que 64 bits. Tambm recomendado ativar os mdulos em Digest algorithms.
Na seo Block Devices: ative o suporte a loopback (necessrio para montar arquivos como dispositivos de
bloco) e Use relative block numbers as basis for transfer functions (isto permite que um backup do sistema
de arquivos criptografado seja restaurado corretamente em outros blocos ao invs dos originais). Ative
tambm o suporte para General encription support e o suporte aos cyphers cast128 e twofish.
No ative as opes de criptografia para a seo "Networking" (a no ser que saiba o que est fazendo).
Recompile e instale seu Kernel .
Crie um arquivo usando os nmeros aleatrios de /dev/urandom:
dd if=/dev/urandom of=/pub/swap-fs bs=1M count=15
Ser criado um arquivo chamado swap-fs (um arquivo de troca tem caractersticas que ajudam a esconder
um sistema de arquivos criptografado que o tamanho e no poder ser montado pelo usurio comum,
evitando desconfianas).
O processo de criao deste arquivo lento, em mdia de 1MB a cada 10 segundos em um Pentium MMX.
Monte o arquivo como um sistema de arquivos loop
losetup -e twofish /dev/loop0 /pub/swap-fs
O algoritmo de criptografia selecionado pela opo -e. Algoritmos recomendados so o serpent e twofish
(ambos possuem cifragem de 128 bits), sendo o serpent o preferido. O gerenciamento do sistema loop
encriptado feito atravs do mdulo loop_gen.
Quando executado pela primeira vez, ser lhe pedida uma senha que ser usada para montagens futuras de
seu sistema de arquivos. Digite-a com ateno pois ela ser lhe pedida apenas uma vez. Para desativar o
sistema de arquivos loop, execute o comando:
losetup -d /dev/loop0
OBS: Se errou a senha ser necessrio desmontar, apagar o arquivo criado e repetir o procedimento.
Crie um sistema de arquivos ext2 para armazenamento de dados
mkfs -t ext2 /dev/loop0 ou mkfs.ext2 /dev/loop0
Monte o sistema de arquivos
Crie um diretrio que ser usado para montagem do seu sistema de arquivos, se preferir monta-lo dentro de
seu diretrio pessoal para armazenar seus arquivos, crie um diretrio com as permisses "0700".
mount /pub/swap-fs /pub/criptofs -t ext2 -o loop
Agora poder gravar seus arquivos dentro deste diretrio normalmente como qualquer outro. O comando df
-hT listar a partio loop como uma partio do tipo ext2 comum.
Guia Foca GNU/Linux

353

Desmontando/Protegendo os dados
Aps usar o sistema de arquivos criptogrfico, desmonte-o e desative o dispositivo loopback:
umount /pub/criptofs
losetup -d /dev/loop0
Remontando o sistema de arquivos criptografado
Execute novamente os comandos:
losetup -e twofish /dev/loop0 /pub/swap-fs
mount /pub/swap-fs /pub/criptofs -t ext2 -o loop
Ser pedida a senha que escolheu e seu sistema de arquivos ser montado em /pub/swap-fs.
Com este sistema, seus dados estaro protegidos mesmo do usurio root.

39.5 Usando pgp (gpg)para criptografia de arquivos


O gpg (GNU pgp, verso livre da ferramenta pgp) permite encriptar dados, assim somente o destinatrio ter
acesso aos dados, adicionalmente poder verificar se a origem dos dados confivel (atravs da assinatura de
arquivos). O sistema PGP se baseia no conceito de chave pblica e privada: Sua chave pblica distribuda
para as pessoas que deseja trocar dados/mensagens e a chave privada fica em sua mquina (ela no pode ser
distribuda). As chaves pblicas e privadas so armazenadas nos arquivos pubring.gpg e secring.gpg
respectivamente, dentro do subdiretrio ~/.gnupg. Veja Criando um par de chaves pblica/privada, Seo 39.5.2
para criar este par de chaves.
Os dados que recebe de outra pessoa so criptografados usando sua chave pblica e somente voc (de posse da
chave privada) poder desencriptar os dados. Quando assina um arquivo usando o pgp, ele faz isto usando sua
chave privada, o destinatrio de posse da chave pblica poder ento confirmar que a origem dos dados
confivel.
O gpg vem largamente sendo usado para transmisso segura de dados via internet. Muitos programas de e-mails
como o mutt e sylpheed incluem o suporte a pgp embutido para envio de mensagens assinadas/encriptadas
(MIME no tem uma codificao segura e no garante que a mensagem vem de quem realmente diz ser). Um
servidor de e-mail no Linux configurado como as mesmas configuraes/endereos do provedor da vtima pode
enganar com sucesso um usurio passando-se por outro.

39.5.1 Instalando o PGP


apt-get install gnupg
Aps instalar o gnupg, execute o comando gpg para criar o diretrio ~/.gnupg que armazenar as chaves pblica
e privada.

39.5.2 Criando um par de chaves pblica/privada


Para gerar um par de chaves pessoais use o comando gpg --gen-key. Ele executar os seguintes passos:
1.
Chave criptogrfica - Selecione DSA e ELGamal a no ser que tenha necessidades especficas.
2.
Tamanho da chave - 1024 bits traz uma boa combinao de proteo/velocidade.
3.
Validade da chave - 0 a chave no expira. Um nmero positivo tem o valor de dias, que pode ser
seguido das letras w (semanas), m (meses) ou y (anos). Por exemplo, "7m", "2y", "60".
Aps a validade, a chave ser considerada invlida.
4.
Nome de usurio - Nome para identificar a chave
5.
email - E-mail do dono da chave
6.
comentrio - Uma descrio sobre a chave do usurio.
7.
Confirmao - Tecle "O" para confirmar os dados ou uma das outras letras para modificar os dados de
sua chave.
8.
Digite a FraseSenha - Senha que ir identific-lo(a) como proprietrio da chave privada. chamada de
FraseSenha pois pode conter espaos e no h limite de caracteres. Para alter-la posteriormente, siga as
instrues em Mudando sua FraseSenha, Seo 39.5.11.
9.
Confirme e aguarde a gerao da chave pblica/privada.

39.5.3 Encriptando dados


Use o comando gpg -e arquivo faz a encriptao de dados:
gpg -e arquivo.txt
Ser pedida a identificao de usurio, digite o nome que usou para criar a chave. O arquivo criado ser
encriptado usando a chave pblica do usurio (~/.gnupg/pubring.gpg) e ter a extenso .gpg adicionada
(arquivo.txt.gpg). Alm de criptografado, este arquivo compactado (recomendvel para grande quantidade de
textos). A opo -a usada para criar um arquivo criptografado com sada ASCII 7 bits:
Guia Foca GNU/Linux

354

gpg -e -a arquivo.txt
O arquivo gerado ter a extenso .asc acrescentada (arquivo.txt.asc) e no ser compactado. A opo -a muito
usada para o envio de e-mails.
Para criptografar o arquivo para ser enviado a outro usurio, voc dever ter a chave pblica do usurio
cadastrado no seu chaveiro (veja Adicionando chaves pblicas ao seu chaveiro pessoal, Seo 39.5.8) e
especificar a opo -r seguida do nome/e-mail/ID da chave pblica:
gpg -r kov -e arquivo.txt
O exemplo acima utiliza a chave pblica de kov para encriptar o arquivo arquivo.txt (somente ele poder
decriptar a mensagem usando sua chave privada).
OBS: recomendvel especificar o nome de arquivo sempre como ltimo argumento.

39.5.4 Descriptando dados com o gpg


Agora vamos fazer a operao reversa da acima, a opo -d usada para decriptar os dados usando a chave
privada:
gpg -d arquivo.txt.asc >arquivo.txt
gpg -d arquivo.txt.gpg >arquivo.txt
Descriptografa os arquivos arquivo.txt.asc e arquivo.txt.gpg recuperando seu contedo original. A sua
"FraseSenha" ser pedida para descriptografar os dados usando a chave privada (~/.gnupg/secring.gpg).

39.5.5 Assinando arquivos


Assinar um arquivo garantir que voc a pessoa que realmente enviou aquele arquivo. Use a opo -s para
assinar arquivos usando sua chave privada:
gpg -s arquivo.txt
A "FraseSenha" ser pedida para assinar os dados usando sua chave privada. Ser gerado um arquivo
arquivo.txt.gpg (assinado e compactado). Adicionalmente a opo --clearsign poder ser usada para fazer uma
assinatura em um texto plano, este um recurso muito usado por programas de e-mails com suporte ao gpg:
gpg -s --clearsign arquivo.txt
Ser criado um arquivo chamado arquivo.txt.asc contendo o arquivo assinado e sem compactao.

39.5.6 Checando assinaturas


A checagem de assinatura consiste em verificar que quem nos enviou o arquivo realmente quem diz ser e se os
dados foram de alguma forma alterados. Voc dever ter a chave pblica do usurio no seu chaveiro para fazer
esta checagem (veja Adicionando chaves pblicas ao seu chaveiro pessoal, Seo 39.5.8). Para verificar os
dados assinados acima usamos a opo --verify:
gpg --verify arquivo.txt.asc
Se a sada for "Assinatura Correta", significa que a origem do arquivo segura e que ele no foi de qualquer
forma modificado.
gpg --verify arquivo.txt.gpg
Se a sada for "Assinatura INCORRETA" significa que ou o usurio que enviou o arquivo no confere ou o
arquivo enviado foi de alguma forma modificado.

39.5.7 Extraindo sua chave pblica do chaveiro


Sua chave pblica deve ser distribuda a outros usurios para que possam enviar dados criptografados ou checar
a autenticidade de seus arquivos. Para exportar sua chave pblica em um arquivo que ser distribudo a outras
pessoas ou servidores de chaves na Internet, use a opo --export:
gpg --export -a -r usuario >chave-pub.txt
A opo -r especifica que chave pblica ser exportada (podem existir vrias no seu chaveiro, alm de sua chave
pblica) podem ser usados o nome do usurio/e-mail/IDchave. A opo -a permite que os dados sejam gravados
usando ASCII 7 bits.

39.5.8 Adicionando chaves pblicas ao seu chaveiro pessoal


Isto necessrio para o envio de dados criptografados e checagem de assinatura do usurio, use a opo
--import:
gpg --import chave-pub-usuario.txt
Assumindo que o arquivo chave-pub-usuario.txt contm a chave pblica do usurio criada em Extraindo sua
chave pblica do chaveiro, Seo 39.5.7. O gpg detecta chaves pblicas dentro de textos e faz a extrao
corretamente. Minha chave pblica pode ser encontrada em Chave Pblica PGP, Seo 40.7 ou
http://pgp.ai.mit.edu.
Guia Foca GNU/Linux

355

39.5.9 Listando chaves de seu chaveiro


Use o comando gpg --list-keys para listar as chaves pblica do seu chaveiro. O comando gpg --list-secret-keys
lista suas chaves privadas.

39.5.10 Apagando chaves de seu chaveiro


Quando uma chave pblica modificada ou por qualquer outro motivo deseja retira-la do seu chaveiro pblico,
utilize a opo --delete-key:
gpg --delete-key usuario
Pode ser especificado o nome de usurio, e-mail IDchave ou qualquer outro detalhe que confira com a chave
pblica do usurio. Ser pedida a confirmao para excluir a chave pblica.
OBS: A chave privada pode ser excluda com a opo --delete-secret-key. Utilize-a com o mximo de ateno
para excluir chaves secretas que no utiliza (caso use mais de uma), a excluso acidental de sua chave secreta
significa como perder a chave de um cofre de banco: voc no poder descriptografar os arquivos enviados a
voc e no poder enviar arquivos assinados.
Mesmo assim se isto acontecer acidentalmente, voc poder recuperar o ltimo backup da chave privada em
~/.gnupg/secring.gpg~.

39.5.11 Mudando sua FraseSenha


Execute o comando gpg --edit-key usurio, quando o programa entrar em modo de comandos, digite passwd.
Ser lhe pedida a "Frase Senha" atual e a nova "Frase Senha". Digite "save" para sair e salvar as alteraes ou
"quit" para sair e abandonar o que foi feito.
O gpg --edit-key permite gerenciar diversos aspectos de suas chaves interessante explora-lo digitando "?" para
exibir todas as opes disponveis.

39.5.12 Assinando uma chave digital


A assinatura de chaves um meio de criar laos de confiana entre usurios PGP. Assinar uma chave de algum
algo srio, voc deve ter noo do que isto significa e das consequencias que isto pode trazer antes de sair
assinando chaves de qualquer um.
O prprio teste para desenvolvedor da distribuio Debian requer como primeiro passo a identificao do
candidato, caso sua chave pgp seja assinada por algum desenvolvedor desta distribuio, imediatamente o teste
de identificao completado. A partir disso voc deve ter uma noo bsica do que isto significa. Para assinar
uma chave siga os seguintes passos:
1.
Importe a chave pblica do usurio (veja Adicionando chaves pblicas ao seu chaveiro pessoal, Seo
39.5.8).
2.
Execute o comando gpg --edit-key usuario (onde usuario o nome do usurio/e-mail/IDchave da chave
pblica importada).
3.
Digite list, e selecione a chave pblica (pub) do usurio com o comando uid [numero_chave]. Para
assinar todas as chaves pblicas do usurio, no selecione qualquer chave com o comando uid.
4.
Para assinar a chave pblica do usurio digite sign, ser perguntado se deseja realmente assinar a chave
do usurio e ento pedida a "FraseSenha" de sua chave privada.
5.
Digite "list", repare que existe um campo chamado trust: n/q no lado direito. O primeiro parmetro do
"trust" indica o valor de confiana do dono e o segundo (aps a /) o valor de confiana calculado
automaticamente na chave. As seguintes possuem o seguinte significado:
-- - Nenhum dono encontrado/confiana no calculada.
e - Chave expirada/falha na checagem de confiana.
q - Quando no conhece o usurio.
n - Quando no confia no usurio ( o padro).
m - Pouca confiana no usurio.
f - Totalmente confivel.
u - Indiscutivelmente confivel. Somente usado para especificar a chave pblica do prprio usurio.
O valor de confiana da chave pode ser modificado com o comando trust e selecionando uma das opes de
confiana. Os valores de confiana para a chave pblica pessoal -/u (no necessrio calcular a
confiana/indiscutivelmente confivel).

Guia Foca GNU/Linux

356

39.5.13 Listando assinaturas digitais


Execute o comando gpg --list-sigs para listas todas as assinaturas existentes no seu chaveiro. Opcionalmente
pode ser especificado um parmetro para fazer referncia a assinatura de um usurio:gpg --list-sigs usuario.
O comando gpg --check-sigs adicionalmente faz a checagem de assinaturas.

Guia Foca GNU/Linux

357

Captulo 40 - CVS
Este captulo explica os requerimentos, instalao, configurao, segurana e diversos modelos de configurao
de acesso para trabalho em grupo utilizados pelo CVS.
No tome-o como uma referncia completa ao uso e configurao do CVS, a pesquisa de sua info page muito
importante.

40.1 Introduo ao CVS


O CVS (Concurrent Version Software) permite que se organizem grupos de trabalho para desenvolvimento de
projetos colaborativos. Um projeto pode ser desde um programa em C, documentao em equipe, etc. O uso do
CVS recomendado para qualquer desenvolvimento de projeto que tenha vrios envolvidos trabalhando ao
mesmo tempo.
Para cada mudana feita no programa, pedido uma descrio dos trabalhos realizados e o sistema registra
todas as modificaes realizadas ao longo do desenvolvimento, permitindo voltar a uma verso anterior ou ver
as mudanas entre elas facilmente.
Imagine uma situao onde voc est desenvolvendo um programa de computador e aps a ltima modificao
ele para de funcionar. Com o CVS possvel ver o que foi modificado e voltar at a verso que estava
funcionando para consertar o problema. No desenvolvimento de documentao e traduo o CVS tambm
desempenha um papel importante, pois com ele o tradutor pode ver o que foi modificado entre a verso do
documento original que ele usou para traduo e uma verso recente, traduzindo apenas as diferenas.
Uma seo de cvs feita de modo interativo atravs do comando cvs. Por exemplo:
logar no sistema - cvs login
baixar um projeto - cvs checkout projeto
Cada comando do cvs ser explicado em detalhes no decorrer deste captulo.

40.1.1 Verso
A verso do CVS documentada no guia a 1.11.1. As explicaes aqui certamente sero compatveis com
verses posteriores deste programa.

40.1.2 Histria
O CVS uma substituio do sistema RCS (Revision Control System) ele possui mais recursos e foi criado
sendo compatvel com o RCS.
A histria do CVS (extraida de sua info page) que ele foi iniciado a partir de um conjunto de scripts shell
escritos por Dick Grune que foram postados ao grupo de notcias comp.sources.unix no volume 6 de Dezembro
de 1986. Na verso atual no esto mais presentes shell scripts porque muitos dos conflitos de resoluo de
algortmos vem deles.
Em Abril de 1989, Brian Berliner fez o design e programou o CVS. Mais tarde, Jeff Polk ajudou Brian com o
design do mdulo CVS.

40.1.3 Contribuindo com o CVS


Atravs da lista de discusso info-cvs. Para se inscrever envie uma mensagem com o subject "subscribe" para
info-cvs-request@gnu.org. Outra alternativa atravs do grupo de noticias (newsgroup) da Usenet
comp.software.config-mgm.

40.1.4 Caractersticas
Abaixo uma lista de caractersticas que tornam o CVS til no gerenciamento de trabalhos em grupo:

Gerenciamento de projeto em equipe

Log de todas as alteraes realizadas

Lock de arquivos, permitindo que somente uma determinada pessoa modifique o arquivo durante o
desenvolvimento do projeto.

Histrico de todas as mudanas feitas, isto permite voltar a uma verso anterior em caso de problemas, e
ver o que houve de errado com o cdigo.

Os projetos podem ser hospedados em repositrios.

Guia Foca GNU/Linux

358

Podem ser criados diversas equipes de trabalho para cada repositrios, e definidos quem ter ou no
acesso ao repositrio individualmente. O desenvolverdor gleydson, por exemplo, pode ter acesso ao projeto
x_beta e no ter acesso a projeto secret_y.

Permisses de acesso individuais de leitura/gravao.

possvel criar um usurio com acesso annimo sem dar uma conta no sistema.

Pode tanto utilizar o banco de dados de contas/senhas do sistema como um banco de dados de
autenticao do prprio CVS.

Permite utilizar diversos "mtodos" de acesso ao servidor: local, pserver, ext, etc. Cada um destes
mtodos ser descrito a seguir.

Permite o acesso via ssh para usurios que j possuam conta na mquina servidora. Este mtodo garante
segurana no envio da senha criptografada (veja Sniffer, Seo 39.2 para detalhes).

Permite visualizar facilmente o que foi modificado entre duas verses de um arquivo.
OBS: O CVS possui algumas limitaes e falhas, uma delas que mais me faz falta um suporte a protocolo
pserver via ssh que resolveria o problema de trfego em texto plano e gerenciamento de grupos com permisses
diferenciadas.

40.1.5 Ficha tcnica

Pacote: cvs
Utilitrios:
cvs - Servidor/ferramenta cliente.
cvsbug - Envia um bug sobre o CVS para a equipe de suporte.
rcs2log - Converte arquivos de log do formato usado pelo RCS para o CVS. Utilizado na migrao
desta ferramenta para o CVS.
cvsconfig - Usado pela Debian para ativar/desativar o servidor pserver. Pode tambm ser usado o dpkgreconfigure cvs para desativar o servidor pserver e suas caractersticas.
cvs-makerepos - Script da Debian que l a lista de repositrios de /etc/cvs-pserver.conf, cria os
repositrios no local apropriado, corrige as permisses do diretrio e adiciona os repositrios no servidor
pserver.
cvs-pserver - Script da Debian responsvel por fazer uma inicializao mais inteligente do servidor de
CVS via pserver, leitura e processamento de repositrios, etc. Normalmente ele chamado a partir do
arquivo /etc/inetd.conf.

40.1.6 Requerimentos de Hardware


Para executar o CVS requerido pelo menos 3 vezes mais memria que o tamanho do maior arquivo usado pelo
projeto (para realizao de diffs entre as atualizaes) e uma boa quantidade de espao em disco.
Na realidade os requerimentos sobre o CVS dependem muito da aplicao que ser desenvolvida.
recomendvel que a mquina tenha memria suficiente para evitar o uso de swap, que degrada bastante a
performance do sistema.

40.1.7 Arquivos de log criados pelo CVS


Problemas na inicializao do CVS so registrados no arquivo /var/log/daemon.log. Os logs de modificaes
feitas nos arquivos de um projeto no CVS so armazenadas no formato arquivo.extenso,v ( adicionado o ",v"
ao final do arquivo para indicar que um arquivo de controle de modificaes do CVS).

40.1.8 Instalao
O CVS pode ser baixado de http://www.cvshome.org/ http://www.loria.fr/~molli/cvs-index.html.
Para pacotes Debian basta apenas executar o comando: apt-get install cvs e seguir as telas de configurao para
ter o pacote CVS instalado e (opcionalmente) com o servidor sendo executado. Voc poder a qualquer
momento reconfigurar o CVS executando: dpkg-reconfigure cvs.
Uma boa documentao de referncia encontrada no pacote cvs-doc.

40.1.9 Iniciando o servidor/reiniciando/recarregando a configurao


A nica configurao requerida quando o CVS executado via pserver. Para isto, necessria a seguinte linha
no arquivo /etc/inetd.conf :
cvspserver stream tcp nowait.200 root /usr/sbin/tcpd /usr/sbin/cvs-pserver
Guia Foca GNU/Linux

359

Note que o parmetro "200" indica quantas vezes o processo CVS poder ser executado por minuto no sistema.
Caso esse nmero seja excedido, o servio ser desabilitado e ser necessrio reiniciar o servidor inetd com o
comando killall -HUP inetd para reativar o servidor CVS pserver (veja /etc/inetd.conf, Seo 4.7.2.1 captulo do
inetd para detalhes). Ajuste este valor de forma adequada ao seu servidor!
Veja o script cvs-pserver sendo executado no final da linha. Ele foi desenvolvido para lidar de forma mais
inteligente com a configurao do servidor CVS pserver.

40.1.10 Opes de linha de comando


As seguintes opes so aceitas pelo CVS.

-z [num] - Utiliza o gzip para fazer a transferncia compactada dos arquivos. O valor especificado pode
ser de 0 a 9, quanto maior o nmero maior o nvel de compactao e uso da CPU.
Exemplo: cvs -z 3 checkout teste

-q - Oculta mensagens sobre recurso de diretrio durante os comandos do CVS.

-d [repositrio] - Permite especificar o repositrio atravs da linha de comando.

-e [editor] - Define qual o editor de textos usado para registrar o texto de commits.

-n - Executa o cvs em modo "simulao" no modificando qualquer arquivo do repositrio.

-t - Mostra mensagens mostrando o processo de execuo de comandos do CVS. bastente til para
aprendizado do cvs usado junto com a opo -n.

-r - Torna os novos arquivos criados somente para leitura. a mesma coisa que especificar a varivel
CVSREAD.

-w - Torna os novos arquivos criados leitura/gravao que o padro.

-x - Utiliza criptografia para a transferncia dos arquivos quando utilizado em conjunto com o
Kerberos.
Voc pode obter detalhes sobre opes sobre um comando em especial do CVS (commit, checkout, etc)
digitando: cvs comando --help. Veja Criando projetos para serem usados no CVS, Seo 40.3 para exemplos
sobre cada uma delas.

40.2 Servidor de CVS - Configurando mtodos de acesso ao repositrio


O CVS uma aplicao cliente/servidor, possuindo diversas maneiras de fazer o acesso seu repositrio (veja
Repositrio, Seo 40.3.1 repositrios). Estes mtodos so os seguintes:

local (local, Seo 40.2.1).

ext (ext, Seo 40.2.3).

pserver (pserver (password server), Seo 40.2.4).

fork (fork, Seo 40.2.2).

GSSAPI (gssapi, Seo 40.2.6).


Eles so explicados em detalhes nas sub-sees a seguir.

40.2.1 local
Acessa o diretrio do repositrio diretamente no disco local. A vantage deste mtodo que no requerido nem
nome nem senha para acesso (voc precisa apenas ter permisses para acesso aos arquivos que deseja trabalhar)
e tambm no preciso nenhuma conexo de rede.
Este mtodo ideal para trabalhar na mquina local ou com os arquivos administrativos do CVS existentes no
diretrio CVSROOT do repositrio. muito til tambm para configurar outros mtodos de acesso, como o
pserver.
Para criar seu repositrio, veja Criando um repositrio, Seo 40.3.2.

40.2.1.1 Configurando o mtodo local


Para utilizar o mtodo de acesso local, basta definir a varivel CVSROOT da seguinte forma (assumindo que o
repositrio esteja instalado em /var/lib/cvs):
export CVSROOT=/var/lib/cvs
ou
export CVSROOT=local:/var/lib/cvs
Depois disso, basta utilizar os comandos normais do cvs sem precisar se autenticar no sistema. Veja os detalhes
de utilizao dos comandos de CVS aps o login na seo Clientes de CVS, Seo 40.5.

40.2.2 fork
Guia Foca GNU/Linux

360

Este mtodo semelhante ao local, mas ele "simula" uma conexo de rede com o servidor. muito usado para
fins de testes.

40.2.2.1 Configurando o mtodo fork


Para utilizar o mtodo de acesso fork, basta definir a varivel CVSROOT da seguinte forma (assumindo que o
repositrio esteja instalado em /var/lib/cvs):
export CVSROOT=fork:/var/lib/cvs
Depois disso, basta utilizar os comandos normais do cvs, sem precisar se autenticar no sistema. Veja os detalhes
de utilizao dos comandos do CVS aps o login em Clientes de CVS, Seo 40.5.

40.2.3 ext
Este mtodo de acesso lhe permite especificar um programa externo que ser usado para fazer uma conexo
remota com o servidor cvs.Este programa definido na varivel CVS_RSH e caso no ela seja especificada o
padro rsh.
Este mtodo requer que o usurio possua um login/senha no banco de dados de autenticao /etc/passwd do
servidor de destino. Suas permisses de acesso ao CVS (leitura/gravao) sero as mesmas definidas neste
arquivo.
O uso do acesso criptografado via ssh possvel definindo o programa ssh na varivel CVS_RSH. Veja os
exemplos a seguir em Configurando o mtodo ext, Seo 40.2.3.1.
Para criar seu repositrio, veja Criando um repositrio, Seo 40.3.2.

40.2.3.1 Configurando o mtodo ext


Defina a varivel CVSROOT da seguinte forma para utilizar este mtodo de acesso (assumindo /var/lib/cvs
como repositrio):
export CVSROOT=:ext:conta@servidor.org.br:/var/lib/cvs
cvs login
A "conta" uma conta de usurio existente no servidor remoto (por exemplo, gleydson) seguido do nome do
servidor remoto (separado por uma "@"). Por exemplo para acessar o servidor cvs.cipsga.org.br usando a conta
michelle:
export CVSROOT=:ext:michelle@cvs.cipsga.org.br:/var/lib/cvs
cvs checkout
OBS: A senha via mtodo de acesso "ext" ser pedida somente uma vez quando for necessrio o primeiro acesso
ao servidor remoto. Veja os detalhes de utilizao dos comandos de CVS aps o login na seo Clientes de
CVS, Seo 40.5. O uso mais frequente do ext para conexes seguras feitas via ssh, feita da seguinte forma:
export CVS_RSH=ssh
export CVSROOT=:ext:michelle@cvs.cipsga.org.br:/var/lib/cvs
cvs checkout
O acesso de leitura/gravao do usurio, definido de acordo com as permisses deste usurio no sistema. Uma
maneira recomendada definir um grupo que ter acesso a gravao no CVS e adicionar usurios que possam
fazer gravaao neste grupo.
OBS1: O acesso via ssh traz a vantagem de que as senhas trafegaro de forma segura via rede, no sendo
facilmente capturadas por sniffers e outros programas de monitorao que possam estar instalados na rota entre
voce e o servidor.
OBS2: possvel especificar a senha na varivel CVSROOT usando a sintaxe semelhante a usada no ftp:
export CVSROOT=:ext:michelle:senha@cvs.cipsga.org.br:/var/lib/cvs
Entretanto isto no recomendado, pois os processos da mquina podero capturar facilmente a senha
(incluindo usurios normais, caso a mquina no esteja com patches de restries de acesso a processos
configurada, que o padro em quase todas as distribuies de Linux).

40.2.4 pserver (password server)


Este um mtodo de acesso remoto que utiliza um banco de dados de usurios senhas para acesso ao
repositrio. A diferena em relao ao mtodo de acesso ext que o pserver roda atravs de um servidor prprio
na porta 2401. O acesso dos usurios (leitura/gravao) no repositrio pode ser feita tanto atravs do banco de
dados de usurios do sistema (/etc/passwd) como atravs de um banco de dados separado por repositrio.
A grande vantagem deste segundo mtodo que cada projeto poder ter membros com acessos diferenciados; o
membro x poder ter acesso ao projeto sgml mas no ao projeto focalinux; ou o usurio y poder ter acesso de
gravao (para trabalhar no projeto focalinux) mas somente acesso de leitura ao projeto sgml.
Guia Foca GNU/Linux

361

Este o mtodo de acesso preferido para a criao de usurios anonimos (uma vez que o administrador de um
servidor que hospede muitos projetos no vai querer abrir um acesso annimo via ext para todos os projetos).
Tambm existe a vantagem que novos membros do projeto e tarefas administrativas so feitas por qualquer
pessoa que possua acesso de gravao aos arquivos do repositrio.

40.2.5 Configurando um servidor pserver


40.2.5.1 Ativando o servidor pserver
Para ativar o pserver (caso ainda no o tenha feito). Execute o comando dpkg-reconfigure cvs e selecione a
opo Ativar o servidor pserver. Uma maneira de fazer isso automaticamente modificando o arquivo
/etc/inetd.conf adicionando a seguinte linha:
# na Debian
cvspserver stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/cvs-pserver
# em outras Distribuies
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/var/lib/cvs pserver
Na Debian, o cvs iniciado atravs do script /usr/sbin/cvs-pserver que checa os binrios e executa o cvs para
todos os repositrios especificados no arquivo /etc/cvs-pserver.conf.
Caso precise adicionar mais repositrios para acesso via pserver ou outro mtodo de acesso, veja Criando um
repositrio, Seo 40.3.2.

40.2.5.2 Servidor pserver usando autenticao do sistema


Para usar o banco de dados de autenticao do sistema (/etc/passwd) para autenticar os usurios remotos,
primeiro tenha certeza que o servidor pserver est ativado (como descrito em Ativando o servidor pserver,
Seo 40.2.5.1. Repetindo o exemplo anterior, a usuria Michelle dever ter uma conta em /etc/passwd para
fazer acesso ao cvs:
export CVSROOT=:pserver:michelle@cvs.cipsga.org.br:/var/lib/cvs
cvs login
Ser pedido a senha da usuria michelle. Entrando com a senha correta, o sistema retornar para o aviso de
comando. Uma mensagem ser mostrada caso a senha entrada seja incorreta. Daqui em diante, o resto da seo
CVS normal e voc ter as permisses de acesso ao repositrio de acordo com as suas permisses de acesso
naquele diretrio.
OBS1: A senha poder ser passada junto com o login da mesma forma como o ftp. Veja a observao em
Configurando o mtodo ext, Seo 40.2.3.1.
OBS2: A desvantagem do mtodo pserver padro que a seo feita em texto plano, desta forma, alguns
cuidados podem ser tomados para tornar o sistema um pouco mais seguro. Um deles dar /bin/false como shell
de usurio (para desativar o login no sistema) ou usar o mtodo de acesso descrito em Servidor pserver usando
autenticao do sistema, Seo 40.2.5.2 em combinao com este. Tenha conciencia das influncias disso se a
mquina for usada para outras tarefas, como um servidor "pop3" por exemplo.

40.2.5.3 Servidor pserver com autenticao prpria


Esta forma de acesso armazena os usurios em um banco de dados prprio, no requerendo a criao de contas
locais no arquivo /etc/passwd. Para criar um servidor deste tipo siga os seguintes procedimentos:

Exporte a varivel CVSROOT apontando para o repositrio que deseja configura. Como isto uma
configurao administrativa, assumo o mtodo de acesso local sendo usada pelo uaurio administrador do
servidor: export CVSROOT=/var/lib/cvs.

Crie um diretrio para trabalhar nos arquivos administrativos do repositrio: mkdir /tmp/repos

Entre no diretrio criado acima e execute o comando: cvs checkout.

Quando terminar de baixar os arquivos, entre no subdiretrio CVSROOT, os arquivos de configurao


do repositrio se encontram l (para detalhes sobre cada um destes arquivos, veja Arquivos administrativos
em CVSROOT, Seo 40.4.

Edite o arquivo config e mude a varivel SystemAuth para no. Isto diz ao servidor pserver no usar os
arquivos de autenticao do sistema, mas a invs disso usar seu banco de dados prprio.

Em algumas instalaes, caso exista o arquivo passwd no repositrio, o pserver automaticamente o


utiliza ao invs do /etc/passd.

Crie um arquivo passwd no diretrio CVSROOT o formato deste arquivo :


usuario:senha:usuario_local
Guia Foca GNU/Linux

362

Onde:
usuario - Nome da conta de usurio que far acesso ao CVS.
senha - Senha que ser usada pelo usurio. Ela dever ser criptografada usando o algortmo crypt.
O comando mkpasswd senha pode ser usado para gerar a senha criptografada. Caso este campo
seja deixado em branco, nenhuma senha de usurio ser utilizada.
usuario_local - Usurio local que ter suas permisses mapeadas ao usurio do CVS. Como a
conta de usurio do cvs no existe no sistema, necessrio que o sistema tenha uma maneira de
saber que nvel de acesso este usurio ter. Uma boa maneira de fazer isso, criando um usurio
local s para o sistema de CVS e desabilitando seu login.
OBS: Mais uma vez tenha em mente os servios que o servidor de CVS executa para saber se isto ter algum
impacto na segurana da instalao.
Exemplos:
gleydsonm:K32dk1234k:cvsuser
anonymous::pooruser
O usurio cvs gleydsonm quando logar no cvs, ter as permisses de acesso do usurio cvsuser do sistema.
OBS: Certifique-se que o usurio local possui permisses de gravao no diretrio do CVS, caso contrrio ele
no poder fazer commits. Lembre-se que as permisses de leitura/gravao do usurio sero controladas
atravs de arquivos do prprio pserver, mas tambm necessria a permisso de gravao do usurio no
repositrio. Isto poder ser feito atravs de grupos de sistema e garante uma dupla camada de segurana.
Para dar direito de leitura ao repositrio, crie um arquivo chamado readers e adicione os nomes de usurios que
tero acesso ao repositrio (um por linha). O nome que dever ser usado o nome do usurio de CVS e no do
sistema (no caso, o usurio gleydsonm segundo o exemplo).
Exemplo:
gleydsonm
anonymous
Para dar direito de gravao ao repositrio, crie um arquivo chamado writers. Seu formato idntico ao arquivo
readers.
Exemplo:
gleydsonm
macan
otavio
hmh
kov
Pronto, o acesso a CVS usando um banco de dados prprio est pronto! basta dar o commit nos arquivos para o
servidor de CVS para t-lo funcionando.
OBS: O arquivo passwd no transferido pelo commit por motivos de segurana, pois ele contm senhas que
podem ser capturadas e usada por pessoas maliciosas. Ser necessrio transferi-lo manualmente para o
repositrio do servidor remoto (voc ter que ser o usurio root ou ter permisses adequadas). .
A configurao do CVS quanto ao acesso restritiva, portanto se um nome de usurio exitir no arquivo readers
e writers o que valer ser o menor nvel de acesso. Vendo os exemplos acima, os usurios gleydsonm e
anonymous tero somente acesso a leitura do repositrio e macan, otavio, hmh, kov acesso de leitura e gravao.

40.2.6 gssapi
Quando o CVS compilado com o suporte a Kerberos 5, ele tenta estabelecer automticamente uma conexo
segura usando este mtodo. Este mtodo funciona somente se o CVS estiver compilado com o suporte a
kerberos (opo --with-gssapi).

40.3 Criando projetos para serem usados no CVS


Esta seo descreve todos os passos necessrios para colocao de um projeto para ser desenvolvido atravs do
CVS, os comandos do cvs, consideraes a repeito dos co mandos e sua utilizao atravs de exemplos
didticos.

Guia Foca GNU/Linux

363

40.3.1 Repositrio
Um repositrio CVS o local que armazena mdulos e tambm os arquivos administrativos (que contm
permisses, etc) so armazenados em um subdiretrio chamado CVSROOT.
O acesso a um repositrio feito atravs de parmetros especificados na varivel CVSROOT ou pela opo -d
repositrio do cvs. Veja Servidor de CVS - configurando mtodos de acesso ao repositrio, Seo 40.2 para ver
exemplos de mtodos de acesso.
O Repositrio pode conter um ou mais mdulos, cada mdulo representa um projeto no servidor, criado aps o
uso do comando import. Segue um exemplo da estrutura de um repositrio CVS:
var/lib
|-- cvs
|-- CVSROOT
|-- projeto1
|-- projeto2
O subdiretrio cvs o repositro (veja o subdiretrio CVSROOT dentro dele) e os diretrios dentro dele
projeto1 e projeto2 so os mdulos criados atravs do comando cvs import ...(veja Adicionando um novo
projeto, Seo 40.3.6).
Para acessar o projeto do CVS, ento definido o repositrio que tem permisses de acesso na varivel
CVSROOT e ento executado um comando (checkout, update, commit, etc) no mdulo que desejamos utilizar:
export CVSROOT=:ext:anonymous@servidor.org.br:/var/lib/cvs (<- Repositrio "cvs")
cvs checkout projeto1 (<- mdulo que desejamos pegar do servidor)
Nas sees seguintes sero explicados cada um dos comandos usados para trabalhar com um projeto no cvs.

40.3.2 Criando um repositrio


Para adicionar um novo repositrio no sistema, edite o arquivo /etc/cvs-pserver.conf e defina o nome de cada
repositrio na varivel CVS_PSERV_REPOS separados por espaos.
Feito isso execute o comando cvs-makerepos para que os diretrios especificados no arquivo /etc/cvspserver.conf sejam criados com as devidas permisses.
Para adicionar manualmente um repositrio (/var/lib/cvs), execute os seguintes passos:

Execute o comando cvs -d /var/lib/cvs init (para criar o repositrio e os arquivos administrativos que
ficam armazenados dentro de CVSROOT.

Mude as permisses do diretrio para sgid com: chmod 2775 /var/lib/cvs.

Mude o dono/grupo com o comando: chown root.src /var/lib/cvs


Opcional: caso utilize o mtodo de acesso pserver ser necessrio adicinar a opo --allow-root=/var/lib/cvs na
linha que inicia o servidor pserver. Este parmetro deve ser usada para cada repositrio adicionado no servidor.
A partir de agora, seu repositrio j est pronto para ser utilizado.

40.3.3 Logando no servidor de CVS via pserver


Quando usado o mtodo de acesso pserver (pserver (password server), Seo 40.2.4), necessrio fazer para
ter acesso ao repositrio. Por exemplo, para acessar o repositrio /var/lib/cvs no servidor servidor.org.br:
export CVSROOT=:pserver:anonymous@servidor.org.br:/var/lib/cvs
cvs login
ou
cvs -d :pserver:anonymous@servidor.org.br:/var/lib/cvs login
Ento ser solicitada a senha para ter acesso ao sistema. Note que toda a seo de cvs ocorre por comandos
interativos que logo aps concluidos retornam para o interpretador de comandos. O restante desta seo
descrever estes comandos e como utiliza-los de maneira eficiente.
OBS: O uso da varivel CVSROOT torna a utilizao bastante prtica necessrio especificar o repositrio,
mtodo de acesso,etc. a todo momento que usar um comando do cvs.

40.3.4 Encerrando uma seo de CVS


Embora que no seja necessrio, aps o uso do cvs recomendvel executar o logout do servidor para encerrar
sua conexo com a mquina remota.
# (assumindo que a varivel CVSROOT est definida)
cvs logout
ou
cvs -d :pserver:anonymous@servidor.org.br:/var/lib/cvs logout
Guia Foca GNU/Linux

364

OBS: Para os paranicos importante encerrar uma seo de CVS, pois ele possui alguns bugs e um spoofing
pode tornar possvel o uso de uma seo deixada aberta.

40.3.5 Baixando arquivos


O comando checkout (ou "co") usado para fazer isto. Para utiliz-lo seguindo os exemplos anteriores:
mkdir /tmp/cvs
cd /tmp/cvs
cvs checkout modulo
cvs -d :pserver:anonymous@servidor.org.br:/var/lib/cvs
Ser criado um subdiretrio chamado modulo que contm todos os arquivos do servidor de CVS remoto.
necessrio apenas que tenha acesso de leitura ao servidor de CVS para executar este comando. Voc pode usar a
opo -z [num] para ativar a compactao na transferncia dos arquivos, isso acelera bastante a transferncia em
conexes lentas: cvs -z 3 checkout modulo.
Tambm possvel especificar apenas subdiretrios de um mdulo para baixa-lo via CVS e a estrutura de
diretrios criada localmente ser idntica ao do servidor remoto.

40.3.6 Adicionando um novo projeto


Use o comando cvs import para adicionar um novo projeto ao CVS. As entradas nos arquivos administrativos
sero criadas e o projeto estar disponvel para utilizao dos usurios. Para adicionar o projeto cvsproj ao cvs:
export CVSROOT=:ext:usuario@servidor.com.br:2401/var/lib/cvs
cvs import /home/projetos/cvsproj nome_modulo cvsproj start
O diretrio /home/projetos/cvsproj contm os arquivos que desejamos adicionar ao servidor de cvs. O parmetro
nome_modulo define o nome do subdiretrio do mdulo que ser adicionado ao repositrio. O parmetro "start"
diz para criar o mdulo.

40.3.7 Sincronizando a cpia remota com a cpia local


Este comando sincroniza a cpia remota do CVS (ou arquivo) com a cpia local que est trabalhando em sua
mquina. Quando se trabalha nativamente no CVS em equipe recomendado a utilizao deste comando pois
algum pode ter modificado o arquivo antes de voce, ento uma incompatibilidade entre sua verso e a nova
poderia causar problemas.
Supondo que tenha acabado de modificar o arquivo main.c do mdulo cvsproj, ento antes de fazer o commit
(Enviando as mudanas para o servidor remoto, Seo 40.3.8) use o update:
cvs update main.c
ou
cvs -d :ext:usuario@servidor.com.br:2401/var/lib/cvs update main.c
Aps alguns segundos, sua cpia local ficar sincronizada com a cpia remota. Caso ele mostre alguma
mensagem de sada, verifique o arquivo para solucionar qualquer conflito e ento envie o arquivo para o
servidor remoto (Enviando as mudanas para o servidor remoto, Seo 40.3.8).
Voc pode fazer o update de mais arquivos usando referncias globais (*, ? ou []).

40.3.8 Enviando as mudanas para o servidor remoto


O comando "commit" (ou "ci"), envia as mudanas feitas nos arquivos locais para o servidor remoto. Um
exemplo de commit no arquivo main.c:
cvs commit main.c
cvs commit main.?
cvs commit *
O editor padro do sistema ser aberto e pedir uma descrio das modificaes para o commit. Esta descrio
ser usada como referncia sobre as atualizaes feitas em cada etapa do desenvolvimento. A mensagem
tambm pode ser especificada usando a opo "-m mensagem", principalmente quando o texto explicando as
alteraes pequeno.
Para mudar o editor de texto padro que ser usado pelo cvs, altere a varivel de ambiente EDITOR ou
especifique o editor que deseja usar na linha de comando com a opo "-e editor":
cvs commit -e vi main.c

40.3.9 Adicionando um arquivo ao mdulo CVS do servidor


Aps criar/copiar o arquivo para seu diretrio de trabalho, use o comando add para fazer isto. O arquivo ser
enviado ao servidor, bastando apenas executa o commit para salvar o arquivo:
cvs add main.h
Guia Foca GNU/Linux

365

cvs commit main.h

40.3.10 Adicionando um diretrio ao mdulo CVS do servidor


O mtodo para adicionar um diretrio com arquivos semelhante ao de adicionar apenas arquivos ao cvs. O
nico ponto que deve se seguido que primeiro deve ser adicionado o diretrio (com o " cvs add") salvar no
servidor remoto ("cvs commit") e depois adicionar os arquivos existentes dentro dele (assim como descrito em
Adicionando um arquivo ao mdulo CVS do servidor, Seo 40.3.9). Para adicionar o diretrio teste e seus
arquivos no servidor cvs remoto:
cvs add teste
cvs commit -m "Adicionado" teste
cvs add teste/*
cd teste
cvs commit -m "Adicionados" .
Os dois primeiros comandos agendam o diretrio teste e fazem o commit no diretrio remoto. Os dois ltimos,
enviam os arquivos existentes dentro deste diretrio para o servidor remoto.

40.3.11 Removendo um arquivo do mdulo CVS remoto


O comando para fazer isto o "remove". Primeiro use o rm para remover o arquivo/diretrio de sua cpia local,
depois execute o remove seguido de commit para confirmar a remoo do arquivo:
cvs remove main.h
cvs commit main.h

40.3.12 Removendo um diretrio do mdulo CVS remoto


Para remover um diretrio, primeiro remova todos os arquivos existentes dentro dele com o comando rm e salve
para o servidor (seguindo os mtodos descritos em Removendo um arquivo do mdulo CVS remoto, Seo
40.3.11). O CVS no remove diretamente diretrios vazios, uma maneira de contornar isto usar o update ou
commit seguido da opo -P para ignorar diretrios vazios. Ento a cpia remota do diretrio ser removida do
servidor:
rm -f teste/*
cvs remove teste/.
cvs commit teste/.
cd ..
cvs checkout modulo
Depois do checkout, o subdiretrio teste ter sido removido.

40.3.13 Dizendo que o mdulo atual no est mais em uso


O comando "release" faz esta funo. Ele no requerido, mas caso voc tenha feito modificaes que ainda
no foram salvas no servidor de cvs (commit), ele alertar de arquivos modificados e perguntar se deseja
continuar. Registrando tambm o abandono das modificaes no histrico do cvs. O comando pode ser
acompanhado de "-d" para remover o mdulo anteriormente baixado com o "commit":
cvs release modulo
cvs release -d modulo
O release retorna os seguintes cdigos quando verifica que as duas cpias (local e remota) no esto
sincronizadas:

U ou P - Existe uma verso nova do arquivo no repositrio. Para corrigir isso, execute o comando
"update".

A - O arquivo no foi adicionado ainda ao repositrio remoto. Se apagar o repositrio local, este arquivo
no ser adicionado. Para corrigir isto, executa o comando "add" do cvs.

R - O arquivo foi removido localmente, mas no foi removido do servidor remoto. Use os
procedimentos em Removendo um arquivo do mdulo CVS remoto, Seo 40.3.11 para corrigir a situao.

M - O arquivo est modificado localmente e no foi salvo ainda no servidor. Use os procedimentos em
Sincronizando a cpia remota com a cpia local, Seo 40.3.7 e Enviando as mudanas para o servidor
remoto, Seo 40.3.8 para salvar o arquivo.

? - O arquivo est em seu diretrio de trabalho mas no tem referncias no repositrio remoto e tambm
no est na lista de arquivos ignorados do CVS.

Guia Foca GNU/Linux

366

40.3.14 Visualizando diferenas entre verses de um arquivo


Com o comando "diff" possvel visualizar que diferenas o arquivo que est sendo editado possui em relao
ao arquivo do repositrio remoto. Outra funcionalidade til do "diff" comparar 2 verses de arquivos do
mesmo repositrio CVS. Exemplos:
cvs diff main.c
Verifica as diferenas entre o arquivo main.c local e remoto.
cvs diff -u -r 1.1 -r 1.2 main.c
Mostra as diferenas em formato unificado para mostrar as diferenas entre as verses 1.1 e 1.2 do arquivo
main.c.

40.3.15 Outros utilitrios para trabalho no repositrio


Alm dos comandos do cvs descritos aqui, existem comandos no pacote cvsutils que auxiliam desde quem est
aprendendo a utilizar o CVS (com o comando cvsdo para simular algumas operaes de adio/remoo de
arquivos) at profissionais que usam o programa no dia a dia (cvsu, cvsco, cvschroot).

40.4 Arquivos administrativos em CVSROOT


Esta seo descreve a funo de cada um dos arquivos administrativos, isto pode ser til na configurao e
personalizao do CVS e de seu repositrio.
Para no alongar muito o captulo, procurei colocar uma breve descrio da funo de cada um deles, o
comentrios e exemplos existentes nos arquivos oferecem uma boa compreenso do seu contedo.

40.4.1 config
Este arquivo segue os padres do arquivos de configurao e possui alguns parmetros que controlam o
comportamento do CVS. Segue uma lista deles:

SystemAuth - Define se ser utilizado a autenticao via /etc/passwd quando o mtodo pserver for
utilizado. Note que se o arquivo passwd for criado no CVSROOT, o SystemAuth ser definido
automaticamente para noo.
Exemplo: SystemAuth=yes.

LockDir - Especifica o diretrio onde sero gravados os arquivos de lock. Caso no seja especificado,
ser usado o diretrio do CVS.
Exemplo: LockDir=/var/lock/cvs

TopLevelAdmin - Permite criar ou no um diretrio chamado CVS no root do diretrio de trabalho


durante o cvs checkout.

LogHistory - Utiliza opes para especificar o que ser registrado nos arquivos de log do CVS.

TOFEWGCMAR ou all - Registra todas as operaes nos logs do cvs.

TMAR - Registra todas as operaes que modificam os arquivos ",v"

40.4.2 modules
Especifica opes e programas externos que sero usados durante a execuo de comandos no repositrio CVS.

40.4.3 cvswrappers
Este arquivo define aes de controle de caractersticas de arquivos, de acordo com seu nome.
Pode ser tambm definidas aes atravs de arquivos .cvswrappers.

40.4.4 commitinfo
Define programas para fazer uma checagem baseada no diretrio e dizer se o commit permitido.

40.4.5 verifymsg
Especifica o programa usado para verificar as mensagens de log.

40.4.6 loginfo
Programa que executado aps o commit. Ele pode ser usado para tratar a mensagem de log e definir onde ela
ser gravada/enviada, etc.
Guia Foca GNU/Linux

367

40.4.7 cvsignore
Tudo que constar neste arquivo no ser gravado (commit) no cvs. Referncias globais podem ser usadas para
especificar estes arquivos. Veja a info page do cvs para detalhes sober seu formato.
Pode tambm ser especificado atravs de arquivos .cvsignore.

40.4.8 checkoutlist
Especifica os arquivos que deseja manter sobre o controle do CVS que se encontram em CVSROOT. Se
adicionar um script adicional, ou qualquer outro arquivo no diretrio CVSROOT ele dever constar neste
arquivo.

40.4.9 history
usado para registrar detalhes do comando history do CVS.

40.5 Clientes de CVS


Esta seo traz alguns programas cliente em modo texto/grfico e visualizadores de repositrios via web. Eles
facilitam o trabalho de controle de reviso por parte de iniciantes e flexibilidade para pessoas mais experientes,
alm de ter uma interface de navegao disponvel para todos os interessados em fazer pesquisas no repositrio.

40.5.1 cvs
Este o cliente Unix padro, bastante poderoso e que opera em modo texto. As explicaes neste captulo do
guia assumem este cliente de cvs, ento as explicaes sobre sua utilizao se encontra em Criando projetos
para serem usados no CVS, Seo 40.3 e os parmetros de linha de comando em Opes de linha de comando,
Seo 40.1.10
altamente recomendvel a leitura caso deseje utilizar um cliente de cvs grfico, pois os conceitos so os
mesmos.

40.5.2 gcvs - Linux


Este um cliente CVS em GTK+Python para Linux que interage externamente com o cliente cvs externo,
possui todas as opes do cvs disponveis atravs de checkboxes nas telas de comando, incluindo suporte a
compactao, visualizador grfico da rvore de releases, histricos, diffs, etc.
Sua instalao bastante fcil, instale o programa com apt-get install gcvs e execute o programa atravs do
menu do sistema ou do terminal, nele siga os seguinte procedimento para comear sua utilizao:
Defina o repositrio CVSROOT atravs do menu Admin/Preferences. Selecione o mtodo de acesso, entre com o
login, servidor e repositrio.
Faa o login no sistema em: Admin, Login.
A partir de agora voc poder explorer o programa e fazer uso das funes habituais do CVS. Para fazer um
checkout, acesse: Create/Checkout.... Ser preciso especificar o nome do diretrio local e o nome do mdulo
que ser baixado.
Para selecionar um repositrio para trabalho, clique no boto "Set" na parte superiora esquerda da janela de
seleo de diretrios.
Aps isto, explore bastante as opes do programa. Todas as funcionalidades do CVS esto organizadas entre os
menus do programa. Caso no entenda bem as funes do programa, leia atentamente Criando projetos para
serem usados no CVS, Seo 40.3 e tambm no deixe de consultar detalhes na info page do cvs.
OBS: Evite a utilizao do repositrio local com o nome de CVS, pois ele ser ocultado pelo programa.

40.5.3 WinCVS - Windows


Este um cliente CVS em Python para Windows equivalente ao gcvs para Linux. Suas funcionalidades e
recomendaes
so
idnticas
aos
do
gcvs.
Este
cliente
pode
ser
baixado
de:
http://telia.dl.sourceforge.net/sourceforge/cvsgui/WinCvs13b9.zip e o Python para Windows de
http://starship.python.net/crew/mhammond/downloads/win32all-148.exe.
Para sua utilizao, as explicaes em gcvs - Linux, Seo 40.5.2 so totalmente vlidas.

40.5.4 MacCVS - Macintosh (PPC)


Idntico ao gcvs, pode ser baixado de http://telia.dl.sourceforge.net/sourceforge/cvsgui/MacCvsX-3.3a1-1.dmg.

40.5.5 viewcvs
Guia Foca GNU/Linux

368

Este um visualizador de repositrios CVS via web, ele precisa apenas de um servidor web instalado com
suporte a CGI. Para instalar, execute o comando apt-get install viewcvs e siga os passos para configurar
programa. Para adequar melhor o viewcvs ao seu sistema, edite o arquivo /etc/viewcvs/viewcvs.conf.
O viewcvs possui uma interface que se parece com a navegao de um diretrio de ftp, recursos como a
extrao de diffs coloridos entre verses de um arquivo selecionado, visualizao de commits (com data, log do
commit, usurio, etc.), classificao da listagem exibida.
OBS:Leve em considerao as implicaes de segurana impostas por aplicativos cgi sendo executados em seu
sistema. Veja Apache, Captulo 12 para explicaes detalhadas sobre o assunto.

40.6 Exemplo de uma seo CVS


Nota: este exemplo apenas didtico, no foi feita nenhuma modificao real no contedo do repositrio do
dillo:
# Definir o CVSROOT
export CVSROOT=:pserver:gleydson@ima.cipsga.org.br:/var/lib/cvs
# entrar no servidor
gleydson@host:/tmp/teste$ cvs login
Logging in to :pserver:gleydson@ima.cipsga.org.br:2401/var/lib/cvs
CVS password: <password>
gleydson@oberon:/tmp/teste$
# Pegar o mdulo "dillo do cvs"
cvs -z 3 co dillo
cvs server: Updating dillo
cvs server: Updating dillo/CVSROOT
U dillo/CVSROOT/checkoutlist
U dillo/CVSROOT/commitinfo
U dillo/CVSROOT/config
U dillo/CVSROOT/cvswrappers
U dillo/CVSROOT/editinfo
U dillo/CVSROOT/loginfo
U dillo/CVSROOT/modules
U dillo/CVSROOT/notify
U dillo/CVSROOT/rcsinfo
U dillo/CVSROOT/taginfo
U dillo/CVSROOT/verifymsg
cvs server: Updating dillo/CVSROOT/Emptydir
cvs server: Updating dillo/dillo
U dillo/dillo/AUTHORS
U dillo/dillo/COPYING
U dillo/dillo/ChangeLog
U dillo/dillo/ChangeLog.old
U dillo/dillo/INSTALL
U dillo/dillo/Makefile.am
U dillo/dillo/Makefile.in
U dillo/dillo/NEWS
U dillo/dillo/README
U dillo/dillo/aclocal.m4
U dillo/dillo/config.h.in
U dillo/dillo/configure
U dillo/dillo/configure.in
U dillo/dillo/depcomp
U dillo/dillo/dillorc
U dillo/dillo/install-sh
U dillo/dillo/missing
U dillo/dillo/mkinstalldirs
U dillo/dillo/stamp-h.in
Guia Foca GNU/Linux

369

cvs server: Updating dillo/dillo/doc


U dillo/dillo/doc/Cache.txt
U dillo/dillo/doc/Cookies.txt
U dillo/dillo/doc/Dillo.txt
U dillo/dillo/doc/Dw.txt
U dillo/dillo/doc/DwImage.txt
U dillo/dillo/doc/DwPage.txt
...
# Modifica o arquivo do projeto
cd /dillo/dillo/doc
vi Cache.txt
# Update no arquivo para atualizar a cpia local com a remota
cvs update Cache.txt
M Cache.txt
gleydson@host:/tmp/teste
# Damos o commit no arquivo
cvs commit Cache.txt
# Saimos do sistema
cvs logout

Guia Foca GNU/Linux

370

Captulo 41 Apndice
Este captulo contm consideraes sobre o guia Foca GNU/Linux.

41.1 Sobre este guia


Esta guia foi criado com a inteno de servir como referncia a usurios Iniciantes e que esto tendo o primeiro
contato com o sistema operacional GNU/Linux, Intermedirios que j conhecem o bsico sobre o
funcionamento deste sistema operacional e j esto acostumados com os comandos, execuo de programas e
diretrios e Avanados que j dominam grande parte do sistema operacional e procuram aprender mais

sobre os seus detalhes e configuraes especiais ou como referncia de consulta rpida


A verso que esta lendo agora foi gerada com as seguintes opes:
Descrio detalhada de comandos
Opes usadas em comandos e programas
Observaes
Exemplos para a melhor compreenso do assunto discutido
Contm o(s) nvel(is) de aprendizado (Iniciante, Intermedirio e Avanado):
O Foca GNU/Linux atualizado frequentemente, por este motivo recomendo que preencha a ficha do aviso de
atualizaes na pgina web em Foca Linux HomePage no fim da pgina principal. Aps preencher a ficha do
aviso de atualizaes, eu te enviarei um e-mail sobre o lanamento de novas verses do guia e o que foi
modificado, desta forma voc poder decidir em copia-la caso a nova verso contm modificaes que
considera importantes.
Verses diferentes deste guia podem ser geradas a partir do cdigo fonte SGML ou obtidas atravs da home
page principal (para detalhes veja Onde encontrar a verso mais nova do guia?, Seo 41.3).

41.2 Referncias de auxlio ao desenvolvimento do guia


As sees sobre comandos/programas foram construdas aps uso, teste e observao das opes dos
comandos/programas, help on line, pginas de manual, info pages e documentao tcnica do sistema.
How-tos do Linux (principalmente o Networking Howto, Security-Howto) ajudaram a formar a base de
desenvolvimento do guia e desenvolver algumas sees (verses Intermedirio e Avanado somente).
Todos os exemplos e sees descritivas do guia so de minha autoria.
Manual de Instalao da Debian GNU/Linux - Os captulos contendo materiais extrados do manual de
instalao da Debian so muito teis e explicativos, seria desnecessrio reescrever um material como este. O
texto claro e didaticamente organizado, o documento aborda detalhes tcnicos teis sobre hardwares em geral
e o Linux ausentes nos manuais de outras distribuies Linux.

41.3 Onde encontrar a verso mais nova do guia?


Novas verses deste guia, avisos de lanamento, outros nveis de aprendizado (Iniciante, Intermedirio e
Avanado), verses para outras distribuies Linux podem ser encontradas em: Foca GNU/Linux Homepage.
Se quiser receber notificaes de novas verses por E-Mail, envie uma mensagem para
gleydson@escelsanet.com.br pedindo para ser includo na lista de atualizaes do guia ou preencha o formulrio
encontrado no final da HomePage do guia (recomendado).

41.4 Colaboradores do Guia


Entre as principais colaboraes at a verso atual, posso citar as seguintes:

Djalma Valois djalma@cipsga.org.br - Pela recente hospedagem do Foca GNU/Linux e do site MetaInfo
do amigo Maan. Estou muito feliz vendo o Foca GNU/Linux fazendo parte de um projeto to positivo como
o CIPSGA para o crescimento e desenvolvimento do software livre nacional.

Bakurih bakurih@yahoo.com - Reviso inicial do documento.

Eduardo Marcel Maan thecore@thecore.com.br - Pelo apoio dado atravs da hospedagem da pgina do
guia no Meta<i>fo (http://www.metainfo.org) nos livrando dos banners da Geocities...

Michelle Ribeiro michellersilva@uol.com.br - Por dispensar parte de seu atencioso tempo enviando
revises e sugestes que esto melhorando bastante a qualidade do guia. Entre eles detalhes que passaram
desapercebidos durante muito tempo no guia e pgina principal.

Augusto Campos brain@matrix.com.br - Descrio sobre a distribuio Suse em Distribuies do Linux,


Seo 1.5 .
Guia Foca GNU/Linux

371

Paulo Henrique Baptista de Oliveira baptista@linuxsolutions.com.br - Pelo apoio moral oferecido durante
os freqentes lanamentos do guia, acompanhamento e divulgao.
Diego Abadan diego@hipernet.ufsc.br - Envio de correes significativas, novos endereos de listas de
discusso.
Alexandre Costa alebyte@uol.com.br - Envio de centenas de patches ortogrficos nas verses Iniciante e
Intermedirio do guia que passaram desapercebidas durante vrias verses do guia...
Christoph Simon ciccio@prestonet.com.br - Pela pesquisa e a gigantesca coletnea de textos sobre o Linux
enviada. Eles esto sendo muito teis tanto para mim quanto no desenvolvimento do guia.
Gustavo Noronha dockov@zaz.com.br - Vem enviando freqentes correes, contribuies construtivas ao
desenvolvimento alm de apoio ao desenvolvimento do guia . Vale a pena destaca-lo por sua atual dedicao
junto a distribuio Debian/GNU, sua traduo e a comunidade Open Source.

41.5 Marcas Registradas


Todas as marcas registradas citadas neste guia so propriedades de seus respectivos autores.

41.6 Futuras verses


Estes so os materiais que pretendo adicionar em futuras verses do guia:
Acrescentar mais detalhes sobre o sistema grfico X-Window.
Entre outros itens que venho estudando para verificar se encaixam no perfil do guia.
Esta uma futura implementao que venho estudando para acompanhar o crescimento do guia. Sugestes so
bem vindas e podem ser enviadas para gleydson@escelsanet.com.br.

41.7 Chave Pblica PGP


Chaves PGP so usadas para criptografar arquivos, e-mails ou qualquer outra coisa que desejamos que
somente uma pessoa tenha acesso. O PGP segue o padro de chave pblica/privada; a chave pblica
distribuida a todos e a chave privada permanece na posse do criador para que ele seja o nico a ter
acesso aos dados criptografados aps digitar a "frase de acesso" correta.
Minha chave PGP segue abaixo, ela tambm pode ser encontrada em http://pgp5.ai.mit.edu. Se voc deseja
saber mais sobre o PGP, recomendo um excelente documento encontrado em http://www.cipsga.org.br
encontrado na seo Apostilas.
-----BEGIN PGP PUBLIC KEY BLOCK----Version: GnuPG v1.0.5 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBDl7WYgRBACsQNtIozvf8XId+xEpF2D1x7nqgFdJyn1QA2VzXg0/OZ9DewXj
qr7ChEIoyyzAmxBSubE/jdtkAb9+2LsE9+OXgzJvBc4luYpv+HG2IXlMPujI9drO
ubLlK6xqPiakBgqBTS74rp/ZEEAGQsr0sug7b8nsXHMk+spyGkjsU8pPWwCgltai
4vfmBDMZMqBYvUoksVxbaKcD/ApAMghgE53KAAKFtwXI0o7K1DJmdZBufCvGDbEB
Y3MVS4BI+aXxoP5zQpEmQ5+lYOZ8RjPL9pNUJa9nOQtjf7Kiw/41BPDtlZXCeRR5
OcQTit0lYRCLGam7FZ22uliwh0h/3lpf4olMff3qeLqv1DECbo8Qsdn6yxynLihE
OA9kA/9K1sqiIl/+gXM3/Sjz8EcrwQNklV3MoaETbDmukbXcOEUjdqfFr1xARM5W
8SKoVrWO5y1oa1e9XcQuK6g8c7KeJsK/GEWYiRwX2X2AqdBC2ZzVfJSmgpguZJHn
ltMdYZhPwZaCsNPdQSlem3UrGupL0pbpT7PqkvyAHBH2itB9X7RKR2xleWRzb24g
TWF6aW9saSBkYSBTaWx2YSAoQ2hhdmUgUEdQIFBlc3NvYWwpIDxnbGV5ZHNvbkBl
c2NlbHNhbmV0LmNvbS5icj6IVgQTEQIAFgUCOXtZiAQLCgQDAxUDAgMWAgECF4AA
CgkQpWvD35hbooFdwgCfQijPTW5VH+Cep1HIBvyuw9uMg7wAoI/RYW0tkjjnhrgH
8+Zqx6AgGlQ/iEYEEBECAAYFAjnlrPAACgkQoUSye+uc2tWZPgCfVgR4lbd8XPBm
bjPupLzB3EYAPI8AoJomkfsgz+NuUZy1mD6pI1Ptc/fDiEYEEBECAAYFAjm4FfUA
CgkQco65AkzGCoF34gCgsVcH4b3s6kfCtjD7iMMhkubnDnUAoL2UiorB3Z/m3f9A
RZiRMhQUclMRiEYEEBECAAYFAjm4ITAACgkQt1anjIgqbEupXgCg1/NjvT562Hgt
/ft5JETOf3yOFywAn1SmK3unyhMU5GU9d49MNM3fNgBttDtHbGV5ZHNvbiBNYXpp
b2xpIGRhIFNpbHZhIChEZXZlbG9wZXIpIDxnbGV5ZHNvbkBkZWJpYW4ub3JnPohX
BBMRAgAXBQI7BR7fBQsHCgMEAxUDAgMWAgECF4AACgkQpWvD35hbooESRACcCliY
yxR02KEBYs8cxKav9L0wlzwAn2Z9DWAbqi9Mv4fqPqZ7mViSMRbeuQENBDl7WasQ
BACxhBiSFOGa8tv7MOn0XVa6WCViBuQs9QJx2ZnMrx/KssRHMsNXnps+i+zVENqr
1Lz5zPpP7eWgrUy6B7/V9R4LV8nwHC1lZrR/1xyJ6G5j9RLSbYInZCLIAFUMlAar
iTThMhvXM+Pf7SXPj+ivrP9EYPSLxqTs1K/dWAbrDK/QiwADBQP9Hgc3EOw+7luB
/bXWssQp70bF9yvZLCGOgIE/rZIbOXumXkPlV7FTDgv+h47Bgcj2KDPEM98LUyxG
Guia Foca GNU/Linux

372

GcJAmrC9gWH7mYEUFNn1bGD+qHRwJ7+xj45NXBJDOBbHzTDS8QhacCRGW1CvRVgP
8ycPDOv/hmGfAJEzqzUkSO1uBcPmmXSIRgQYEQIABgUCOXtZqwAKCRCla8PfmFui
gQHnAJ4kDKHKvG9s9OjGV6RvszTDGE51igCcCZn0rO/Si0ek97bTCIusQzJF/pA=
=TqNJ
-----END PGP PUBLIC KEY BLOCK----Guia Foca GNU/Linux
Verso Iniciante e Intermedirio 5.26 - domingo, 08 de dezembro de 2002
Verso Avanado 6.12 domingo, 08 de dezembro de 2002
Gleydson Mazioli da Silva gleydson@cipsga.org.br

Guia Foca GNU/Linux

373

S-ar putea să vă placă și