You are on page 1of 167

ApostilaDebian

IntermedirioDesktop
Parana
Apostila Debian Intermedirio - Desktop Parana

Direitosautorais:

Essa Apostila est licenciada sob uma Licena Creative Commons AtribuioUso NoComercial
Compartilhamentopelamesmalicena2.0Brazil.Podesercopiada,distribudaemodificada.Paraveruma
cpia desta licena, visite http://creativecommons.org/licenses/byncsa/2.0/br/ ou envie uma carta para
CreativeCommons,559NathanAbbottWay,Stanford,California94305,USA.

2
Documento Apostila Debian Intermedirio - Desktop Parana
Verso 1.9
Data de Reviso 29 de Janeiro de 2010, por Robson Alves Pavan
Equipe Tcnica Mantenedor: Robson Alves Pavan
Revisor: Robson Alves Pavan
Colaboradores:
Robson Alves Pavan
Felipe Camargo de Pauli
Andr Lucas Falco
Andre Luiz de Souza Paula
Coordenao do projeto: Jonsue Trapp Martins
Pginas 168 pginas
ndice
APROFUNDANDO-SE NO APT............................................................................................9
APT (ADVANCED PACKAGE TOOL)................................................................................9
ARQUIVOS DE CONFIGURAO APT.CONF............................................................14
Grupos.........................................................................................................................15
Exemplos:....................................................................................................................15
ARQUIVO DE CONFIGURAO PREFERENCES.....................................................16
DPKG...............................................................................................................................18
Utilizando o dpkg.........................................................................................................18
Aes............................................................................................................................... 19
Opes............................................................................................................................. 21
Exemplos de ocorrncias mais comuns no uso do dpkg.................................................21
COMPILANDO PROGRAMAS A PARTIR DO CDIGO FONTE......................................25
GERENCIANDO DISCOS E PARTIES..........................................................................27
O QUE SO PARTIES...............................................................................................27
OBTENDO INFORMAES SOBRE AS PARTIES..................................................28
PARTICIONANDO DISCO COM CFDISK.......................................................................30
Excluindo uma partio...............................................................................................32
Salvando as alteraes...............................................................................................32
SISTEMA DE ARQUIVOS...............................................................................................32
CRIANDO SISTEMA DE ARQUIVOS..............................................................................33
GERENCIADOR DE PARTIDA GRUB.............................................................................34
TRABALHANDO COM DISCOS E PARTIES............................................................34
INSTALAO DO GRUB................................................................................................35
CUSTOMIZANDO O ARQUIVO MENU.LST...................................................................36
OUTROS PARMETROS DE CONFIGURAO DAS IMAGENS................................41
LINHA DE COMANDO DO GRUB...................................................................................42
RUNLEVEL..........................................................................................................................45
PROCESSO DE BOOT...................................................................................................45
CONHECENDO OS RUNLEVELS..................................................................................45
IDENTIFICANDO O RUNLEVEL EM UTILIZAO........................................................46
O ARQUIVO /ETC/INITTAB.............................................................................................46
ENTENDENDO O FUNCIONAMENTO DOS RUNLEVELS...........................................48
INSERINDO/ REMOVENDO SCRIPTS DO RUNLEVEL................................................49
SISTEMA DE LOGS............................................................................................................51
PRINCIPAIS ARQUIVOS DE LOG..................................................................................51
LENDO UM ARQUIVO DE LOG......................................................................................52
CONFIGURANDO O SYSLOG........................................................................................52
LOGGER..........................................................................................................................55
LOGCHECK.....................................................................................................................56
LOGROTATE...................................................................................................................57
CRON...................................................................................................................................61
COMANDOS........................................................................................................................64
ALIAS...............................................................................................................................64
BC....................................................................................................................................66
LAST................................................................................................................................73
LASTLOG........................................................................................................................75
NEWUSERS....................................................................................................................77
STAT................................................................................................................................77
CONVERT.......................................................................................................................80
CONVMV.........................................................................................................................81
Apostila Debian Intermedirio - Desktop Parana

ICONV..............................................................................................................................82
Identificando a codificao de caractere do arquivo e a do sistema..........................83
PASTE..............................................................................................................................84
CUT..................................................................................................................................85
DD....................................................................................................................................88
FIND.................................................................................................................................90
XARGS............................................................................................................................95
FSCK................................................................................................................................96
FUSER.............................................................................................................................98
LSOF..............................................................................................................................100
PIDOF............................................................................................................................101
NICE..............................................................................................................................102
RENICE.........................................................................................................................104
NOHUP..........................................................................................................................105
LSPCI.............................................................................................................................105
LSUSB...........................................................................................................................107
HWCLOCK.....................................................................................................................109
NMBLOOKUP................................................................................................................110
NSLOOKUP...................................................................................................................114
GERNCIA DE REDES DE COMPUTADORES...............................................................117
CAMADA OSI.................................................................................................................117
PROJEO DA ARQUITETURA TCP/IP SOBRE O MODELO OSI.............................119
EMPACOTAMENTO DE DADOS..................................................................................120
TCP/IP...........................................................................................................................121
CAMADA DE APLICAO............................................................................................122
CAMADA DE TRANSPORTE........................................................................................123
TCP............................................................................................................................124
UDP...........................................................................................................................124
Portas e soquetes......................................................................................................125
CAMADA INTER-REDES..............................................................................................126
IP...............................................................................................................................127
ICMP..........................................................................................................................128
ARP...........................................................................................................................128
CAMADA DE ENLACE..................................................................................................130
Ethernet.....................................................................................................................130
PARMETROS NECESSRIOS...................................................................................131
IP...............................................................................................................................131
Rede..........................................................................................................................132
Gateway.....................................................................................................................132
Nomes.......................................................................................................................132
PRIMEIROS SOCORROS.............................................................................................134
PING..............................................................................................................................135
WGET............................................................................................................................137
IFCONFIG......................................................................................................................138
up...............................................................................................................................140
down..........................................................................................................................140
IFUP E IFDOWN............................................................................................................141
ROUTE..........................................................................................................................142
Sintaxe.......................................................................................................................144
Exemplos...................................................................................................................145

5
Apostila Debian Intermedirio - Desktop Parana

IFTOP............................................................................................................................146
Primeira coluna..........................................................................................................147
Segunda coluna.........................................................................................................148
Terceira coluna..........................................................................................................148
Quarta, quinta e sexta coluna...................................................................................148
TRACEROUTE..............................................................................................................150
ttl (Time To Live)........................................................................................................151
ARP................................................................................................................................152
DIG.................................................................................................................................154
Servidor-de-nome......................................................................................................154
Tipo de pesquisa.......................................................................................................155
Objeto a ser pesquisado...........................................................................................155
Exemplos de sadas..................................................................................................155
MII-TOOL.......................................................................................................................157
Negociao................................................................................................................158
Alterar os modos disponveis....................................................................................159
Mensagens de erro....................................................................................................160
NETSTAT.......................................................................................................................160
Primeira coluna (Protocolo utilizado)........................................................................161
Segunda coluna (Fila de dados a serem recebidos)................................................161
Terceira coluna (Fila de dados a serem enviados)...................................................161
Quarta coluna (Endereo local).................................................................................162
Quinta coluna (Endereo remoto).............................................................................162
Sexta coluna (Estado)...............................................................................................162
Praticando.................................................................................................................162
GERENCIADOR WICD.................................................................................................163
Estrutura do Wicd......................................................................................................164
Funcionamento e configuraes...............................................................................165
REFERNCIAS BIBLIOGRFICAS.................................................................................167

6
ndice de Figuras
Figura 1: Arquivo sources.list......................................................................................................... 10
Figura 2: Tela principal do cfdisk....................................................................................................30
Figura 3: Cfdisk - criando uma nova partio.................................................................................30
Figura 4: Cfdisk - escolhendo o tipo de partio (primria ou lgica).............................................31
Figura 5: Cfdisk - definindo o tamanho da partio........................................................................31
Figura 6: Cfdisk - Selecionando tipo de partio............................................................................32
Figura 7: Exemplo resultado de uso do comando convert..............................................................81
Figura 8: Representao de uma consulta a um servidor WINS..................................................112
Figura 9: Camada OSI.................................................................................................................. 118
Figura 10: Sada do comando IFTOP...........................................................................................147
Figura 11: Janela do Wicd............................................................................................................ 165
Apostila Debian Intermedirio - Desktop Parana

APROFUNDANDO-SE NO APT
No Debian temos basicamente duas formas de se instalar pacotes: (a) atravs das ferra-
mentas de instalao; (b) ou manualmente compilando o pacote. O Debian capaz de trabalhar
com diversas ferramentas de instalao, dentre elas destacamos o APT e o DPKG. Quando fala-
mos em instalao ou desinstalao em qualquer distribuio Linux, sempre esbarramos no termo
pacote em vez de programa. Isso vem da ideia de empacotamento de programas, que um agru-
pamento de dados que contm os arquivos e a estrutura indicativa de onde cada arquivo deve ser
gravado no sistema para que o mesmo funcione corretamente, junto com um conjunto de instru-
es que so executadas antes (preinst) e aps (postinst) a instalao e remoo dos mesmos.

Cada distribuio Linux possui uma extenso representativa para seus pacotes. No Debian
e seus derivados, a extenso utilizada .deb. Outra extenso comumente encontrada .rpm
que oriunda das distribuies derivadas do RedHat. Ainda possvel encontrar arquivos binri-
os, como acontece quando instalamos alguns mdulos proprietrios de interfaces de rede. Estes
possuem uma srie de alternativas em seu corpo, permitindo que o mdulo seja instalado inde-
pendente da distribuio (desde que ela seja suportada).

APT (ADVANCED PACKAGE TOOL)


O APT a principal ferramenta de manipulao de pacotes do Debian. Com ele possvel
instalar, remover, reinstalar, configurar, atualizar, etc... uma ferramenta completa que possui
muitos recursos que so utilizados atravs dos vrios comandos do APT. Os comandos mais utili-
zados so o apt-get e o apt-cache. O APT possui uma ferramenta com interface grfica que
permite a instalao e remoo de pacotes. Ele se chama Gerenciador de Pacotes Synaptic.

Antes de nos aprofundarmos no estudo do APT devemos fazer algumas observaes sobre
alguns pontos com relao a seu uso.

Com exceo dos recursos de pesquisa do APT, todos os demais s podem ser exe-
cutado pelo superusurio (root). Quando tentamos utilizar esses recursos como usurios co-
muns, uma mensagem de erro parecida com E: No foi possvel abrir arquivo de trava
/var/lib/dpkg/lock open (13 Permisso negada) apresentada na tela.

No possvel executar mais de uma instncia simultaneamente. Enquanto uma ins-


tncia estiver sendo executada as tentativas de se iniciar uma outra resultaram em erro,
como E: No foi possvel obter trava /var/lib/dpkg/lock open (11 Recurso temporariamente
indisponvel). comum esse erro acontecer na seguinte situao: algum usurio deixa o
synaptic aberto ou esta efetuando as atualizaes de segurana e tentar instalar algum pa-
cote atravs do APT.

9
Apostila Debian Intermedirio - Desktop Parana

Para o correto funcionamento do APT, os repositrios de onde sero baixados os pa-


cotes devem estar corretamente configurados no arquivo sources.list que se encontra no
diretrio /etc/apt.

A configurao do arquivo sources.list deve ser feita da seguinte forma: primeira-


mente deve ser passado o tipo de pacote que ser instalado, onde o parmetro
deb o define que o repositrio configurado nesta linha trar os pacotes que contm os
componentes que sero instalados, ou seja, os programas e toda estrutura necessria
para seu funcionamento no sistema, e deb-src define os pacotes que contm os cdi-
gos fontes dos pacotes tipo deb. Em seguida devemos definir qual protocolo ser utili -
zado para transferncias dos pacotes (http ou ftp), seguido do endereo (ip ou nome) do
repositrio e do compartilhamento desejado. Aps o endereo, devemos definir a qual
release os pacotes devem pertencer e as sees desejadas (pacotes livres, livres de-
pendentes de proprietrios ou integralmente proprietrios).

Figura 1: Arquivo sources.list

Geralmente quando instalamos um pacote, para que funcione corretamente, ele depende de
outros pacotes (que podem conter bibliotecas ou outros programas). Estes pacotes, os quais ele
depende, chamamos de dependncias. Um pacote pode ter vrias dependncias sendo que paco-
tes diferentes podem vir a ter dependncias em comum e as prprias dependncias podem vir a
ter dependncias, como numa grande teia de pacotes que unidos formam um sistema funcional.

Sabendo que um pacote possui dependncias ao tentarmos instal-lo, para que ele funcio-
ne, precisamos instalar tambm todas as suas dependncias e as dependncias de suas depen-
dncias. Isso torna esse processo muitas vezes complexo e trabalhoso.

O APT considerado por muitos como a melhor ferramenta para gerenciamento de pacotes
principalmente devido a sua capacidade, atravs do apt-get, de quando acionando para instalao
de um pacote, sempre seguir uma determinada ordem que possibilita a instalao dos pacotes e
de todas as dependncias necessrias para que ele funcione. A ordem seguida por ele esta: ve-
rificar se o pacote existe na lista local, resolver as dependncias, solicita ao servidor todos os pa-
cotes necessrios, faz o download, descompacta, configura e instala os pacotes.

1. Verificao de existncia do pacote: Verifica se o pacote indicado para instalao est


disponvel nos repositrios atravs da lista local de pacotes.

2. Resolver dependncias: Caso o pacote exista, verifica quais so as suas dependncias,

10
Apostila Debian Intermedirio - Desktop Parana

a disponibilidade delas e se alguma j est instalada no sistema. Quando encontra depen-


dncias j instaladas, verifica se esto com a verso correta. Em seguida, caso no haja
nenhum conflito com os pacotes instalados e suas dependncias sejam sanadas, ser exi-
bido um relatrio com toda relao de pacotes a serem instalados, removidos e atualiza-
dos, alm de, em alguns casos, mostrar uma relao de pacotes sugeridos ou recomenda-
dos para instalao junto a uma solicitao de confirmao para continuidade do processo
de instalao.

3. Baixar: Ele acessa o repositrio configurado no sources.list e faz o download do pacote e


de suas dependncias para o seu computador, no diretrio /var/cache/apt/archives.

4. Descompactar: O pacote descompactado para iniciar a instalao.

5. Configurar: Todas as configuraes necessrias para que a instalao se d de forma


acertada so realizadas. Estas configuraes muita vezes no interagem com o adminis-
trador. Caso seja necessrio que este informe algo ao instalador, ser perguntado.

6. Instalar: Todos os componentes do pacote so copiados para os diretrios devidos.

Agora iremos ver algumas formas de uso do comando apt-get mostrando seus principais
parmetros:

apt-get update Existe uma lista, que contm uma descrio de todos os pacotes dispo-
nveis para o Debian, disponvel dentro de cada repositrio de pacotes. O apt-get consulta esta
lista para saber o que pode ser instalado. Este comando faz uma comparao entre a lista que
voc tm armazenada e a lista que est no servidor de pacotes. Se a sua for mais velha, ele faz o
download da mais recente. A atualizao de um nico pacote provoca o lanamento de um nova
lista. Este comando sempre deve ser executado antes de se fazer a instalao de algum pacote e
aps efetuar alteraes no arquivo sources.list.

apt-get upgrade Esta a opo responsvel pela atualizao de pacotes. Quando


voc executa este comando, uma lista de pacotes copiada do repositrio para a mquina local
do usurio, onde feita uma comparao entre as verses de softwares existentes no repositrio
e na mquina local. Caso existam verses mais recentes para os programas que o usurio possui
em seu sistema, ento, o APT automaticamente atualizar estes programas no computador do
usurio. No preciso dizer qual pacote voc quer atualizar. Independente de ser apenas um, ou
serem vrios, ele far toda atualizao necessria.

apt-get clean - Aps a instalao de um pacote, no precisamos necessariamente man-


ter o arquivo .deb em nosso sistema (em /var/cache/apt/archives). O processo de instalao
no remove os pacotes baixados! Se voc no remover os pacotes baixados, comear a acumu-
l-los no disco rgido. Com o passar do tempo, isso pode causar um problema de falta de espao.

11
Apostila Debian Intermedirio - Desktop Parana

O apt-get clean faz a remoo de todos os pacotes do diretrio de cache do APT.

apt-get install PACOTE - Executamos este comando para realizar a instalao de paco-
tes no sistema. Se quisermos instalar mais de um programa, basta escrever todos os nomes se-
parados por espao na linha de execuo do comando. Se um pacote precisa de outros para ser
instalado, isto , se ele tem pr-requisitos, eles tambm sero selecionados para instalao auto-
maticamente. Quando voc requisita a instalao de um pacote que no tem dependncias, a ins-
talao comea imediatamente. Caso existam dependncias, elas so mostradas a voc e o pro-
grama aguarda a sua confirmao (s/n) para continuar. Existem vrios motivos para ele esperar
por uma confirmao: a lista de dependncias pode ser muito grande e voc pode no querer ins-
talar todos os pacotes; pode no haver espao em disco suficiente para instalar o programa e/ou
suas dependncias; o pacote ser incompatvel com outro j instalado e exigir que este seja remo-
vido; ou, ainda, o repositrio no uma fonte confivel para o Debian, que acontece quando no
existe na mquina a chave pblica do repositrio de onde vem a atualizao. Existe ainda, um
caso em que h mais de uma verso disponvel para o mesmo pacote. Se um pacote chamado
nome possui uma verso 1.0-0 e 2.0-0, por exemplo, a verso mais nova ser instalada por
padro, entretanto, podemos querer instalar a verso mais antiga (1.0-0), tendo que executar o
comando da seguinte forma:

#aptgetinstallnome=1.00

apt-get dist-upgrade - Possibilita a atualizao completa da distribuio utilizada pelo


usurio. importante que o usurio tenha em mente que a execuo deste comando num sistema
que utilize meta-pacotes customizados, como o caso do Debian Desktop Paran usado na Ce-
lepar, ou verses de software instaladas manualmente (atravs de compilao do cdigo fonte,
por exemplo), podero gerar problemas graves, impossibilitando inclusive o uso posterior do siste-
ma. Para a devida utilizao deste comando, necessrio alterar o arquivo de configurao do
APT, o /etc/apt/sources.list, configurando o mesmo para utilizar os repositrios da nova distribui-
o que ser instalada no sistema.

apt-get remove PACOTE - Remove um ou mais pacotes. Esta operao faz a desinstala-
o de um pacote do sistema e no a remoo do .deb do diretrio de cache do APT. Em alguns
casos, os arquivos de configurao e/ou dados do pacote so mantidos. Isso pode ser bom ou
ruim. Se voc removeu um pacote por acidente, todo o seu trabalho de configurao dele ainda
estar preservado. Preste ateno s mensagens mostradas durante a remoo de um pacote
para saber o que est acontecendo. Observe tambm que, se algum pacote depende do pacote a
ser removido, esse pacote tambm ser removido.

apt-get --purge remove PACOTE - Remove um ou mais pacotes e seus respectivos ar-
quivos de configurao.

12
Apostila Debian Intermedirio - Desktop Parana

apt-get source PACOTE - Possibilita que o cdigo fonte de um programa seja copiado
para mquina local em vez do binrio do programa e seus scripts de configurao, que compem
o pacote do programa propriamente dito. Para baixar arquivos contendo o cdigo fonte de progra-
mas para sua mquina, necessrio configurar adequadamente o arquivo /etc/apt/sources.list.
Para isso, veja o tpico Reconfigurando a lista de pacotes, na sequncia.

apt-get build-dep PACOTE - Este comando tenta satisfazer as dependncias que um de-
terminado pacote contendo cdigo fonte de um programa possui, para ser compilado. Por exem-
plo: suponha que voc deseja recompilar o cdigo fonte do tuxracer (um jogo). Se voc executar
o comando apt-get build-dep tuxracer, o APT tentar instalar todos os pacotes que sejam neces-
srios para compilao do pacote tuxracer. Em algumas situaes, necessrio instalar pacotes
alm daqueles que so trazidos automaticamente pelo comando apt-get build-dep. Isto algo
natural e voc dever se acostumar a estas situaes.

apt-get check - uma ferramenta de diagnstico. Ele atualiza o cache de pacotes e veri-
fica se h alguma dependncia quebrada que necessita ser resolvida (utilizando-se apt-get -f ins-
tall) no sistema.

apt-get install --reinstall PACOTE - Em algumas situaes, precisaremos reinstalar um


pacote j presente no sistema. Para isso, podemos utilizar este o comando que permite fazer isso.
Tome o cuidado de fazer uma cpia dos seus arquivos de configurao para no ter surpresas de-
sagradveis.

Alm do apt-get vamos ver tambm o uso do apt-cache que a ferramenta de pesquisa
do APT. Atravs das ferramentas de pesquisa podemos procurar por pacotes assim como pesqui-
sar informaes mais detalhas sobre um determinado pacote.

apt-cache search NOME - Para procurar por um pacote qualquer, executamos este co-
mando. Ele faz uma pesquisa na lista de pacotes disponveis, procurando pacotes que possuam a
expresso fornecida no argumento NOME. A sada deste comando, apresenta todos os pacotes
que apresentam a palavra fornecida como argumento em parte do nome ou na descrio do paco-
te. Existem formas mais complexas de busca que podem ser mais claras ou mais especficas,
mas geralmente, a utilizao do comando grep para filtrar a sada j suficiente para grande
maioria dos casos.

apt-cache show PACOTE - Uma vez descoberto o nome correto do pacote Debian, voc
pode visualizar todas as informaes sobre o pacote, bem como seu mantenedor, sua verso, sua
descrio, dentre outras informaes relevantes.

apt-cache showsrc PACOTE Tem a mesma funo que o comando apt-cache show,
porm, atua mostrando informaes sobre pacotes fontes.

13
Apostila Debian Intermedirio - Desktop Parana

ARQUIVOS DE CONFIGURAO APT.CONF


O apt possui a possibilidade, como quase todas aplicaes utilizadas no Debian, de ser alte-
rado, personalizado, ou seja, configurado de acordo com o interesse do administrador por meio de
arquivos de configurao. Sempre que uma ferramenta do grupo APT iniciada, ela ir ler os ar-
quivos de configurao para saber qual ser o seu comportamento. Nas verses anteriores ao De-
bian Lenny, essas configuraes eram realizadas no arquivo /etc/apt.conf. A partir da verso
Lenny, distribuio esta que a consistncia do Desktop Paran sob a verso 2.x, foi criado um
diretrio que aloca vrios arquivos de configurao. O diretrio o /etc/apt/apt.conf.d, e dentro de-
les podemos encontrar vrios arquivos. Estes arquivos seguem a mesma sintaxe do antigo apt.-
conf, com a diferena de existir um arquivo para cada configurao diferente. Para que o apt saiba
qual arquivo tem maior prioridade em relao ao outro, o nome dos arquivos deve iniciar com um
nmero de 00 a 99.

T odas as opes que so passadas pelo usurio atravs da linha de comandos sob-
rescrevem as configuraes contidas no arquivo apt.conf.

!!Por motivos estritamente didticos, iremos, a partir de agora, indicar cada ar-
quivo desses que podem ser alocados dentro do diretrio /etc/apt/apt.conf.d

como apt.conf. !!

O arquivo apt.conf organizado sob a forma de rvore em divises funcionais, como por
exemplo: o grupo APT, o grupo Acquire, o grupo DPKG e a seo Dir (para diretrios de
configurao). Sintaticamente, o arquivo pode ser configurado sob as seguintes formas:

APT::Get::AssumeYes"true";
ou
APT{
Get{
AssumeYes"true";
};
};

Nos exemplos acima, podemos perceber que tanto os caracteres ::, quanto { e };, so
utilizados para definir qual o grupo funcional, seo e opes estamos tratando naquele espao
do arquivo de configurao. Em ambos exemplos que citamos (acima), estamos tratando da op-
o Assume-Yes, da seo Get, do grupo funcional APT, contudo, de formas sintaticamente
diferentes, mas produzindo o mesmo resultado.

Linhas que se iniciam com os caracteres //, ou um bloco de texto, que se inicia com /* e
termina com */, so considerados comentrios e so ignorados.

14
Apostila Debian Intermedirio - Desktop Parana

A seguir explicaremos a finalidade de cada grupo funcional, que pode ser configurado atra-
vs do apt.conf:

Grupos
O grupo APT

utilizado para controlar as opes gerais para uso de todas as ferramentas do APT.

O grupo Acquire

diviso funcional usada para configurar as rotinas de download de pacotes e manipuladores


de URI's utilizados pelas ferramentas do APT.

O grupo Dir

Definio de layout de diretrios. Usado para a configurao dos diretrios que sero utiliza-
dos pelo APT.

O grupo Dselect

Configuraes que afetam o uso da ferramenta dselect, quando ela utilizada em conjunto
com o APT.

O grupo DPKG

Configuraes que afetam o uso do dpkg. As opes que fazem parte desta seo, alteram a
forma normal como o dpkg atua, quando invocado pelo APT.

O grupo Debug

Utilizado para configurar opes para depurao no uso das ferramentas do APT.

Cada um destes grupos funcionais possui uma gama prpria de opes, que no discutire-
mos aqui, por ser muito vasta (cabe a vocs, caso Se voc precisar saber qualquer detalhe sobre
as opes que podem ser utilizadas neste arquivo de configurao, estude a documentao oficial
do arquivo, atravs do comando:

#manapt.conf

Exemplos:
Exemplo 01: Configurando um servio de proxy para ser utilizado pelo APT. Esta configura-
o possibilita buscar pacotes de programas na Internet atravs de um servidor proxy existente na
sua rede.

Acquire

15
Apostila Debian Intermedirio - Desktop Parana

{
http
{
Proxyhttp://usuario:senha@proxy.organizacao:8080/;
};
};

Exemplo 02: Configurando a arquitetura e release (verso) padro dos pacotes a serem uti-
lizados pelo sistema.

APT
{
Architecture"i386";
DefaultReleasestable;
};

Exemplo 03: Configurando o diretrio de cache do APT.

Dir/
{
Cache"var/cache/apt/"
{
Archives"archives/";
srcpkgcache"srcpkgcache.bin";
pkgcache"pkgcache.bin";
};
};

Um timo arquivo de exemplos de configurao do apt.conf pode ser encontrado em


/usr/share/doc/apt/examples/configure-index.gz.

U se o comando # cat /etc/apt/apt.conf.d/* para ver todas as configuraes do apt de


uma s vez.

ARQUIVO DE CONFIGURAO PREFERENCES


O arquivo /etc/apt/preferences controla a prioridade de verso de pacotes. possvel man-
ter fontes stable, testing e unstable ao mesmo tempo. Caso tenha inserido no arquivo
/etc/apt/sources.list repositrios de verses diferentes (stable e testing por exemplo) necess-
rio criar o arquivo preferences para que possa na instalao selecionar qual verso ter priorida-
de e de qual verso voc deseja instalar os pacotes.

16
Apostila Debian Intermedirio - Desktop Parana

M uito cuidado quando estiver trabalhando com verses diferentes, uma m instala-
o de pacote pode gerar quebras de pacotes e at mesmo a paralisao do siste-
ma. Isso acontece muito facilmente quando se usa um sistema personalizado, como o
Desktop Paran.

Segue um exemplo para o arquivo preferences:

Package:*Pin:releasea=stablePinPriority:900
Package:*
Pin:releasea=testing
PinPriority:400

Neste exemplo para todos os repositrios stable, a prioridade ser 900 e para testing 400,
ou seja, vale a prioridade mais alta, ento o stable ser a opo default. Sempre que utilizarmos o
comando apt-get com as opes install, update, upgrade, source e dist-upgrade, o pacote
ser do stable.

Para instalar pacotes do testing devemos utilizar o comando:

#aptgetttestinginstall[pacote]

O comando acima s funcionar SE, e somente SE, no sources.list, os repositrios


estiverem com a release definida como testing e stable. No aconselhvel se utili-
zar estes valores, porque caso haja uma alterao de release, um administrador descui -
dado pode acabar instalando pacotes de verses novas em verses antigas. Utilizamos
esta nomenclatura nesta apostila para facilitar eventuais atualizaes da mesma.

O mesmo procedimento se aplica as opes update, upgrade, dist-upgrade ou source.

Podemos definir que um pacote sempre venha da release testing. Para isso, dentro do ar-
quivo /etc/apt/preferences, defina a prioridade especfica de um pacote. Veja o exemplo abaixo:

Package:amule
Pin:releasea=testing
PinPriority:905

O pacote desejado vai ter prioridade maior que o de qualquer outro release, ento o pacote
desejado ser da release testing.

Resumindo: podemos, se tivermos conhecimento suficiente para resolver problemas de de-


pendncias desencontradas, conflitos, estrutura de diretrios e pacotes, e compilao de aplicati-
vos, ter pacotes de vrias releases em um nico sistema. Algumas vezes, existir a facilidade de
se usar o apt para instalao destes pacotes, tendo o arquivo preferences como um forte aliado
nesta tarefa. Podemos priorizar uma release em geral, e configurar excees para pacotes espe-
cficos.

17
Apostila Debian Intermedirio - Desktop Parana

DPKG
O dpkg considerado a base do Sistema de Gerenciamento de Pacotes do Debian e das
distribuies que dele derivam. O dpkg capaz de instalar, remover e fornecer informaes sobre
os pacotes .deb. muito usado por usurios avanados da Debian e desenvolvedores para fins
de instalao, manuteno e construo de pacotes.

Ele tambm utilizado como Back end por ferramentas como apt-get e aptitude, devido
aos fatos de ser muito bom na instalao de pacotes, porm falhar nas tarefas de ser capaz de
buscar pacotes em lugares remotos ou resolver conflitos complexos nas dependncias dos paco-
tes. Assim, estes outros comandos resolvem estes problemas e, na hora de realizar a instalao
em si, chamam-no para o trabalho sujo.

Hoje em dia utilizamos o dpkg principalmente como ferramenta de obteno de informaes


sobre os pacotes instalados no sistema, na manipulao de pacotes (criao e extrao) e na re-
soluo de problemas com pacotes. Para instalao, utilizamos o apt, que, como j dito, chama o
dpkg para realizar a instalao. Os passos seguidos por ele so: (a) desempacotar os arquivos
debian; (b) executar o preinst; (c) alocao dos arquivos nos seus devidos lugares; (d) executar o
postinst.

O s arquivos de configurao e os scripts de instalao ficam dentro do diretrio


/var/lib/dpkg/info/NomeDoAplicativo. Os scripts utilizam a linguagem shell script, na
maioria das vezes. D uma onlhado nos arquivos que l existem.

O dpkg composto por uma srie de ferramentas que desempenham funes especificas
em relao aos pacotes Debian. A seguir iremos fazer uma breve breve descrio do que as prin-
cipais ferramentas fazem.

dpkg - Desempenha a funo em senso estrito do comando;

dpkg-source - Empacota e desempacota os arquivos fontes de um .deb;

dpkg-deb - Empacota e desempacota pacotes binrios;

dpkg-reconfigure - Permite que o usurio execute ajustes nos pacotes j instalados no


sistema. Tambm conhecido como reconfigurador de pacotes. uma das ferramentas mais
utilizadas do conjunto de aplicaes do dpkg.

Utilizando o dpkg
O comando dpkg possui a seguinte sintaxe:

Sintaxe: dpkg <aes> <opes> <pacotes>

18
Apostila Debian Intermedirio - Desktop Parana

Aes
As principais aes so:

-i end<pacote> Instala um pacote no sistema sem resolver dependncias.

--unpack end<pacote> Desempacota um arquivo .deb extraindo o contedo e montando


uma estrutura de diretrios e arquivos de acordo com o esqueleto que foi usado na sua constru-
o. Perceba que no ser descompactado em qualquer lugar, mas sim no lugar pr-definido. Se
o administrador verificar com o dpkg -l o status do arquivo verificar que o pacote possuir a op -
o U. Isto indica que o aplicativo foi somente descompactado, e no instalado da forma padro.

-X end<pacote> <diretrio> Faz a mesma coisa que o comando anterior, porm, em vez
de extrair os arquivos nos seus devidos lugares, ele permite que o usurio escolha um novo desti-
no. A diferena crucial est no fato de o --unpack realizar a criao dos arquivos a partir do barra
(/) e o -X iniciar a partir do diretrio que voc especificar, que ser um barra falso. Voc poder
executar o aplicativo digitando o endereo completo do executvel, ou colocando o binrio dentro
do PATH do usurio que o ir executar.

--configure pacote Ir realizar a configurao de todos os pacotes parcialmente instala-


dos nos sistema (ou seja, que deram pau por algum motivo durante a instalao). Durante a insta-
lao, algum erro pode vir a aparecer, fazendo com que o dpkg seja interrompido. Utilizando este
comando, normalmente os problemas so resolvidos, j que normalmente utilizamos o apt para
instalaes (que sempre procura tomar cuidado com todos os aspectos da instalao para evitar
quase todos os problemas do mundo). Normalmente, os problemas so originados por algo no
relacionado aos scripts de instalao (como queda de luz, problema com permisses, trfego da
rede, mal configurao dos repositrios, etc). Caso o problema seja causado pelos prprios
scripts, o administrador ter que edit-los (preinst e postinst).

-r <pacote> Desinstala um pacote do sistema sem remover os arquivos de configurao


deste, se existirem.

-P <pacote> Faz a remoo completa de um pacote do sistema, incluindo arquivos de da-


dos, de configurao, etc.

-C Auditoria de pacotes mal instalados. Procura por pacotes que foram instalados somente
parcialmente em seu sistema. O legal dele que indica o que pode ser feito para que o problema
seja sanado.

--get-selections <padro> Procura na lista de aplicaes instalados no sistema pela ex-


presso fornecida atravs do argumento padro, ou, no caso deste no ser definido, todos os
pacotes que j passaram pelo sistema. Os pacotes que estejam com o valor install indicam as
aplicaes instaladas, enquanto os que possurem valor deinstall os desinstalados.

19
Apostila Debian Intermedirio - Desktop Parana

--print-architecture Imprime a arquitetura padro utilizada pelos pacotes instalados no


sistema.

-l <pacotes> (ele) Lista todos os pacotes instalados no sistema com suas respectivas in-
formaes, podendo ter status diferentes: estar instalado corretamente com o apt, ter sido apenas
desempacotado, ter tido sua instalao interrompida durante a instalao, etc. muito utilizada
pelos administradores. Opcionalmente, voc poder especificar o nome de um ou mais pacotes
(separados por espaos) para verificar suas informaes.

-s <pacote> Lembre-se deste s como s de show. Exibe as informaes sobre um determi-


nado pacote, podendo este estar j instalado ou ento ter sido instalado uma vez na vida. Estas
informaes so retiradas do arquivo /var/lib/dpkg/available.

-I end<pacote> (i) Exibe uma srie de informaes acerca de um pacote. Sempre, como
pode ser visto na sintaxe, devemos indicar o pacote com o endereo completo. Se o administrador
tentar utilizar apenas o nome do pacote, o erro Arquivo ou diretrio no encontrado ser apre-
sentado na tela. As informaes apresentadas so parecidas com as do parmetro -s, porm o
pacote no precisa ter sido instalado nunca, e temos uma informao adicional: o tamanho do ar-
quivo de controle e uma descrio de o qu o compe e quanto ocupa de espao (conffiles, con-
trol, md5sums, postinst, preinst, posrm e prerm).

-S <arquivo> Permite descobrir qual o pacote que possui algum arquivo. Ele muito in-
teressante, j que o administrador pode utilizar um comando em um computador que no existe
em outro. Para saber o nome do pacote, basta ir at o computador que o possui e verificar, com
esta opo, aquele pacote que o possui. Como j foi dito, ele pode ser usado para qualquer arqui-
vo, no somente um binrio (ex: sources.list).

O resultado ser mostrado da seguinte forma:

pacote: linha que contm o arquivo (diretrios tambm um arquivo)

-L <pacote> Mostra todos os passos executados pelo dpkg na instalao de um pacote na


fase de alocao dos arquivos dentro de seus respectivos diretrios. Veja que o arquivo de confi-
gurao fabiqueta.conf do pacote fabiqueta (pacote fictcio) para ser alocado dentro do diretrio
/etc/fabiqueta, precisa criar o diretrio fabiqueta. Ento a ordem ser:

/
/etc
/etc/fabiqueta
/etc/fabiqueta/fabiqueta.conf

Desta forma, o administrador consegue saber exatamente onde est cada um dos diretrios
e arquivos criados originalmente pelo pacote.

20
Apostila Debian Intermedirio - Desktop Parana

C aso um pacote venha a ser removido, este comando ter sua fonte atualizada e
mostrar apenas aqueles arquivos e diretrios que ainda existem. Para voc verifi-
car o seu funcionamento, instale o pacote tuxpaint, utilize este parmetro, remova com
o dpkg -r e ento verifique novamente a sada do comando com o parmetro -L. Voc
observar que somente os arquivos de configurao permanecem no computador.

-c end<pacote> A sada exatamente a mesma que a do -L1, com a diferena que o -c


verifica todos os diretrios e arquivos que sero criados na instalao do pacote, diferente do -L
que verifica quais arquivos e diretrios existem realmente, ou seja, de aplicaes instaladas. Ele
interessante para que o administrador verifique, caso tenha alguma dvida, se a instalao ir cri-
ar algum diretrio ou arquivo no lugar de um outro j existente.

O u seja: -L para aplicaes instaladas e -c para pacotes .deb de aplicaes no ne-


cessariamente instaladas.

Opes
As opes do comando dpkg tanto podem ser especificadas atravs da linha de comandos,
como atravs do arquivo de configurao do dpkg, o /etc/dpkg/dpkg.cfg. As principais opes
so:

-B Quando um pacote desinstalado do sistema, pode ocorrer que outros pacotes ainda
instalados dependam do que foi removido. Esta opo faz com que estes pacotes tambm sejam
removidos do sistema automaticamente.

--no-act Faz uma simulao de acordo com as aes envolvidas. Por exemplo, voc pode
simular a instalao ou remoo de um pacote para verificar se algum erro ser gerado pelo siste-
ma de gerenciamento de pacotes. Tenha certeza que voc especificou esta opo antes da cita-
o de qualquer ao na linha de comando, caso contrrio, esta opo no ter efeito e a ao
ser desempenhada de fato.

-R Faz com que o dpkg opere no modo recursivo.

--log=arquivo Permite especificar um arquivo onde o dpkg vai realizar os registros das
suas operaes. Por padro isto feito em /var/log/dpkg.log.

Exemplos de ocorrncias mais comuns no uso do dpkg


Vamos exemplificar agora tudo que foi visto. Verifique se seu apt est configurado correta-
mente. Vamos comear fazendo download de um pacote dos repositrios utilizando o dpkg.

#aptgetclean

1 Isso quando o pacote est instalado corretamente, da forma original, j que o -L verifica at pacotes que foram
removidos sem a purificao de arquivos de configurao.

21
Apostila Debian Intermedirio - Desktop Parana

#aptgetupdate
#aptgetinstalldsl

C aso o aplicativo sl j esteja instalado, ser necessrio reinstalar a aplicao utilizan-


do o parmetro -d da mesma forma como mostrado acima.

O pacote foi descarregado dentro do diretrio /var/cache/apt/archives. Entre nele para que
nossas atividades tornem-se mais fceis. Para verificar se a aplicao est funcionando, digite sl
e pressione <Enter>. Um erro aparecer. Isso quer dizer que o pacote .deb foi descarregado no
seu computador, porm no foi instalado (quem fez isso foi o parmetro -d, que indica download
only). Verifique o nome exato do pacote e instale-o.

#lslsl*
rwrr1rootroot251242007120217:47sl_3.0315_i386.deb
#dpkgisl_3.0315_i386.deb
Selecionandopacotepreviamentenoselecionadosl.
(Lendo banco de dados ... 95880 arquivos e diretrios atualmente
instalados).
Desempacotandosl(desl_3.0315_i386.deb)...
Configurandosl(3.0315)...
Processandogatilhosparamandb...
#sl

O trem t funcionando. Ento agora podemos realizar novos testes. Apesar do aplicativo es-
tar funcionando, ser que o sistema sabe que ele est l?

#dpkggetselectionssl
slinstall

Um aplicativo to pequeno, de nada, sem utilidade nenhuma como este, provavelmente no


tem quase nenhum arquivo criado no nosso computador, certo? Verifique:

#dpkgLsl

Parece que o criador do sl tava meio que desempregado e sem ocupao, no mnimo. Tem
muita coisa, e, com o comando anterior, pudemos verificar o que foi criado pelo arquivo de contro-
le do pacote sl. Conseguimos descobrir que at mesmo quem digitar errado o ls esquecendo o
<Caps Lock> ligado vai ser zoado (veja que possui um binrio dentro do /usr/bin chamado LS).

Chega de sl, vamos remov-lo do sistema. Quando instalamos, o pacote .deb teve que ser
apresentado ao dpkg, mas agora que ele j est no sistema, como podemos lembrar, existem lis-
tas que o registraram e agora s precisamos indicar o nome da aplicao, e no do pacote.

#dpkgrsl

22
Apostila Debian Intermedirio - Desktop Parana

(Lendo banco de dados ... 94224 arquivos e diretrios atualmente


instalados).
Removendosl...
Processandogatilhosparamandb...

Removido! E agora vamos verificar novamente se o sistema est realmente alerta:

#dpkggetselectionssl
slpurge

T l. Cad o deinstall? No t l, porque o deinstall s aparece quando temos um aplicati-


vo desinstalado que possui seus arquivos de configurao ainda presentes na estrutura de diret-
rios do sistema. Voc deve estar se perguntando, mas eu no usei o -P de purge. Realmente.
Acontece que o purge aparece quando no existem os arquivos de configurao e a aplicao
est desinstalada. No caso do sl, ele um aplicativo muito simples, por isso, no possui arquivo
de configurao. Ele sempre passa do status install para o status purge. Se ns tivssemos insta-
lado um pacote com arquivos de configurao, utilizando o -r para remov-los, os arquivos sero
mantidos, enquanto com o -P os arquivos de configurao sero removidos.

Como j vimos, foi muito fcil instalar o pacote sl. A instalao possui vrios processos reali-
zados, definidos pelos arquivos de controle, preinst e posinst. Se quisermos realizar a criao de
todos os diretrios da estrutura que o aplicativo ir assumir, e criar todos os arquivos necessrios
para o seu pleno funcionamento, podemos simplesmente extra-lo. Iremos realizar essas ativida-
des de duas formas diferentes. A primeira ser realizar a extrao nos lugares definidos pelo de-
senvolvedor, e a segunda a extrao ser realizada a partir do diretrios especificado pelo admi-
nistrador.

Primeiro caso:

#sl
su:/usr/bin/sl:Arquivooudiretrionoencontrado
#dpkgunpacksl_3.0315_i386.deb
Selecionandopacotepreviamentenoselecionadosl.
(Lendo banco de dados ... 95880 arquivos e diretrios atualmente
instalados).
Desempacotandosl(desl_3.0315_i386.deb)...
Processandogatilhosparamandb...
#
#sl

Como esse pacote no exige que o administrador configure e execute procedimentos mais
complexos, o simples fato de terem sido criados diretrios definidos pelo desenvolvedor j o su-
ficiente para que a aplicao funcione. Utilizando o dpkg -L voc poder verificar que todos os ar-
quivos do pacote foram alocados nos seus respectivos lugares. Podemos inferir, ento, que o --
unpack a etapa de criao de diretrios e alocao de arquivos j falada anteriormente. Mas e

23
Apostila Debian Intermedirio - Desktop Parana

se quiser instalar o pacote em um lugar diferente do especificado pelo desenvolvedor?

# mkdir /Saci/Teste ; dpkg -x sl_3.03-15_i386.deb /Saci/Teste

O comando acima criou o diretrio /Saci/Teste e, logo aps, foi desempacotado o contedo
do sl..... com toda sua estrutura a partir do diretrio /Saci/Teste. Entre no diretrio e verifique com
o comando tree como tudo est.

24
Apostila Debian Intermedirio - Desktop Parana

COMPILANDO PROGRAMAS A PARTIR DO CDIGO FONTE


Embora, atualmente, a maioria dos programas para o GNU/Debian estejam disponveis para
instalao por meio de pacotes, ainda assim, em alguns casos, preciso compilar programas a
partir de seu cdigo fonte. Mas o que compilar um programa? a ao de criar um arquivo ins -
talador a partir do cdigo fonte de uma aplicao adaptando-o ao sistema ao qual ser instalado.
Isso necessrio, porque algumas vezes uma aplicao possui verso criada para uma distribui-
o e no para outra. Podemos baixar o cdigo fonte da aplicao e adapt-la nova verso.
Adaptar indicar ao executvel instalador onde ficam alguns diretrios do sistema (como o
/var/log para arquivos de logs e o /etc para arquivos de configurao, no Debian) que sero ne-
cessrios durante a instalao do aplicativo. Tambm possvel, durante a compilao do progra-
ma, fazer configuraes ativando mdulos que por padro no esto. Ou seja, compilar um pacote
significa adapt-lo a um sistema operacional para qual no foi criado e permitir configuraes na
instalao que visam otimizar o desempenho do aplicativo que instalado.

De modo geral, cdigos fonte so distribudos atravs de arquivos compactados. A grande


maioria destes arquivos possui uma estrutura de diretrios, os arquivos fonte em si, um arquivo de
configurao chamado Makefile, documentao e outros arquivos encapsulados em um arquivo
no formato tar, com compresso de dados, usando gzip (.tar.gz ou .tgz), ou bzip2 (.bz2 ou
.tbz2).

Q uando comearmos a usar o tar, para extrair arquivos compactados com o gzip utili-
zamos o parmetro z, enquanto que para extrair arquivos compactados com o bz2
utilizaremos o parmetro j. Uma forma de lembrar qual utilizar BeiJando o GiZ.

Para iniciar a compilao de um cdigo fonte, a primeira coisa a se fazer obter o cdigo
para ser compilado. Aps o arquivo que contm o cdigo fonte estar disponvel localmente, voc
dever extrair o contedo para um diretrio adequado a compilao (ex.: /comp-louco). Os arqui-
vos-fontes so, no padro Debian, agrupados e compactados em arquivos tarball. Para realizar
nossos testes iremos utilizar um arquivo fonte que possui o cdigo do aplicativo TAL. Para extrair
o seu contedo, use um dos comando abaixo:

tarxvzfnome_do_arquivo.tar.gz
ou
tarxvjfnome_do_arquivo.tar.bz2

Aps a extrao do contedo do arquivo compactado, necessrio entrar no diretrio que


foi criado durante a extrao dos arquivos utilizando o comando cd. O programa mais utilizado,
para compilar cdigos fonte no GNU/Linux o gcc, um compilador C/C++ livre. De maneira ge-
ral, alguns pacotes GNU so necessrios para compilar um programa de cdigo livre. Os mais co-

25
Apostila Debian Intermedirio - Desktop Parana

muns na distribuio Debian, so os pacotes: make, autoconf, gcc, g++ e libc6-dev.

A seguir listaremos os procedimentos gerais para configurao/compilao de cdigos fon-


tes no GNU/Debian, estes procedimentos podem variar um pouco dependendo do cdigo que se
est compilando mais informaes sobre a compilao do cdigo, voc encontrara no arquivo
README.txt descompactado junto com o cdigo fonte.

Executar o arquivo configure Este arquivo um script shell que examina o siste-
ma para verificar se diversas dependncias necessrias para compilar o projeto sero sa-
tisfeitas. Ele deve ser executado digitando-se ./configure dentro do diretrio que contm o
cdigo-fonte do programa a ser compilado. Esse script, tambm pode conter parmetros
que podem ser passados na linha de execuo para configurao de opes especificas,
para consultar a lista de parmetros disponveis, tente executar o script ./configure --help.
Se o script configure no encontrar alguma das dependncias necessrias para compila-
o do programa, um erro gerado e a execuo finalizada automaticamente, gerando
uma mensagem semelhante abaixo:

checkingforSDLversion>=1.2.0...no
configure:error:***SDLversion1.2.0notfound!

Nesse caso, nos falta a biblioteca de desenvolvimento (cabealhos) SDL verso 1.2.0 ou
mais recente. Para resolver este problema, necessrio instalar o pacote libsdl1.2-dev para re-
solver essa dependncia. A maioria das bibliotecas necessrias para a compilao de programas
no GNU/Debian tm o prefixo lib e o sufixo -dev, como por exemplo, libc6-dev, libsdl1.2-dev,
etc. Aps resolvidas todas as dependncias.

Executar o comado make O comando make utiliza as configuraes que foram


criadas pelo script configure para compilar mltiplos arquivos de cdigo fonte de um pro-
jeto. Utiliza tambm um arquivo de descrio (chamado makefile ou Makefile) que est
presente no diretrio onde o cdigo fonte foi extrado. Seu contedo composto de regras
que definem as dependncias entre arquivos fonte e os comandos necessrios para a
compilao. A partir deste arquivo, ele executa sequncias de comandos que so interpre-
tados pelo shell para realizar a compilao de maneira correta.

Em seguida no havendo erros na execuo do comando anterior executar o coman-


do make install o comando utilizado para compilar e em seguida executar o instalador
do programa que acabamos de compilar. Alguns programas no possuem essa facilidade,
nestes casos, o administrador ter tambm o trabalho manual de instalar o programa com-
pilado corretamente, em geral, realizando atividades como copiar arquivos executveis
para diretrios como /usr, e os arquivos de configurao para /etc, etc.

26
Apostila Debian Intermedirio - Desktop Parana

GERENCIANDO DISCOS E PARTIES


Neste captulo, mostraremos como listar e obter informaes a respeito das parties e dis-
cos existentes no sistema, alm de aprendermos a criar, remover e formatar parties.

O QUE SO PARTIES
Parties so divises feitas em um disco de armazenamento para delimitar um determina-
do espao deste para instalao de um sistema de arquivos. Existem trs tipos de parties: pri-
mrias, estendidas e lgicas. Os propsitos fundamentais da criao de parties so 3: (a) maior
segurana atravs da diviso de dados de acordo com a natureza de seus dados (sistema, usu-
rio, de inicializao); (b) diviso de acordo com o tamanho dos dados, afim de melhorar o desem-
penho atravs de sistemas de arquivos especficos; (c) ter mais de um sistema operacional no
mesmo disco.

No existe nenhuma diferena top-down entre parties primria e lgica. A diferena real
entre elas o local onde so alocadas as informaes acerca de uma partio. Isso foi explicado
detalhadamente na apostila de Debian Bsico, sendo interessante voc tirar as teias de aranha
dela e dar uma relembrada. Basicamente, o detalhamento (primeiro e ltimo setor, nmero total de
blocos, etc) de uma partio primria fica dentro do primeiro setor do disco rgido (MBR -Master
Boot Record), enquanto as lgicas ficam fora da MBR. Podemos chamar este detalhamento, ou
definio de uma partio, como cabealho da mesma. Podemos ter 4 cabealhos dentro da
MBR. Estes cabealhos podem ser todos primrios ou ento de 0 a 3 primrios e um estendido. A
partio estendida s indica onde est, dentro do disco rgido e fora da MBR, o cabealho da pri-
meira partio lgica. Ou seja, para que tenhamos pelo menos uma partio lgica, necessrio
se ter uma partio estendida. Como esta trata apenas de um cabealho de ligao, dizemos que
ele define uma partio no utilizvel. Para saber quantas parties utilizveis temos em um dis-
co, precisamos: (a) quando existe parties lgicas, subtrair do nmero da ltima partio lgica o
resultado de 4 menos o nmero de parties primrias; (b) quando no existe parties lgicas,
verificar o nmero de parties primrias, que so todas utilizveis.

Ex: Se temos 2 parties primrias e a ltima partio lgica a partio 12, ento temos:

1242 = 10 parties utilizveis

Aps criada e formatada, a partio passa a ser reconhecida pelo sistema operacional como
um n de dispositivo representado por um arquivo no diretrio /dev. como se uma partio fos-
se um dispositivo diferente, sendo que, na realidade, so apenas divises lgicas do disco, estan-
do todas dentro de apenas um dispositivo fsico. Este arquivo receber automaticamente um
nome e atravs deste possvel identificarmos vrias informaes referentes ao
hardware de armazenamento.

27
Apostila Debian Intermedirio - Desktop Parana

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

/dev/hda1
| | ||
| | | |__ Indica o nmero da partio do HD.
| | |___ Letra que indica o dispositivo (a=primeiro, b=segundo...).
| |_____ Sigla que indica o tipo de dispositivo (hd=ide, sd=scsi ou sata).
|_________ Diretrio onde so armazenados dispositivos do sistema.

T udo isso foi visto na apostila de Debian Bsico, por isso, abordaremos de uma forma
superficial o assunto, somente para que voc possa recordar e tornar vivo tudo que
j sabe.

OBTENDO INFORMAES SOBRE AS PARTIES

Sempre que for realizar qualquer atividade referente a parties, ser muito interessante
que o administrador saiba usar o comando abaixo, que trar as primeiras informaes que possi-
velmente precisaremos para comear a agir e planejar suas tarefas:

#fdiskl
Disk/dev/sda:250.0GB,250059350016bytes
255heads,63sectors/track,30401cylinders
Units=cylindersof16065*512=8225280bytes
Diskidentifier:0x9ebef679

Device Boot Start End Blocks IdSystem


/dev/sda1 1 16 128488+ 83Linux
/dev/sda2 17 1840 14651280 83Linux
/dev/sda3 1841 1962 97996582Linuxswap/Solaris
/dev/sda4 1963 30401 228436267+ 83Linux

Disk/dev/sdb:4005MB,4005560320bytes
16heads,32sectors/track,15280cylinders
Units=cylindersof512*512=262144bytes
Diskidentifier:0xef6cfd35

Device Boot Start End Blocks IdSystem


/dev/sdb1 16 15280 3907648 bW95FAT32

28
Apostila Debian Intermedirio - Desktop Parana

Deduza por si s!

1. Nmero de dispositivos fsicos conectados:


2. Quantidade de parties em cada dispositivo:
3. Capacidade mxima de armazenamento do primeiro dispositivo:
4. Capacidade mxima de armazenamento do segundo dispositivo:
5. Quantidade de cilindros em cada dispositivo:
6. Quantidade de cabeas em cada dispositivo:
7. Arquivo que representa com certeza uma partio de rea de troca:
8. A coluna Id identifica a partio ou o tipo de sistema de arquivos?
9. O sdb1 possui um sistema operacional instalado?
10. Qual a causa de dump de backtrace e kernel panic num servidor proxy com squid no
modo slabe do kernel?

A questo 10 apenas uma piada de mau gosto. para voc sentir que ainda falta cho,
ento continue estudando e crie uma boa base, para que depois voc possa brincar com seu co-
nhecimento durante a soluo de problemas.

Vale ressaltar que caso seu sistema possua discos utilizando tcnicas de RAID via hardwa-
re, quando o comando for executado, os discos sero mostrados de acordo com as configuraes
RAID que estiverem em vigor no seu sistema. Por exemplo, numa configurao em RAID 1
(mirroring), apesar de existirem fisicamente dois discos na mquina, apenas um ser mostrado.

R AID (Redundant Array of Independent Disks) um sistema de linearizao de dis-


cos. um sistema que tem dois objetivos que so atingidos de vrias formas dife-
rentes. Os objetivos so acelerar o armazenamento e carregamento de dados, e aumen-
tar a segurana desse processo, com mtodos de espalhamento de dados em discos di-
ferentes. No link a seguir, existe uma animao que mostra o funcionamento de todos
os tipos de RAID: http://www.acnc.com/raid.html.

Para sabermos quais outras opes temos para utilizao do fdisk, basta digitarmos so-
mente o comando:

#fdisk/dev/sda
ou
#fdisk/dev/hda

Sero listadas algumas informaes sobre o disco e tambm ser aberta a linha de comado
do fdisk, onde digitando a opo m ser exibida uma lista com as opes disponveis para utili-
zao na linha de comando do fdisk.

29
Apostila Debian Intermedirio - Desktop Parana

No iremos ver nesta apostila o funcionamento de recursos do fdisk seno a verificao das
informaes com o parmetro -l. Para realizar modificaes nos sistemas de arquivos e manipu-
lao de parties, usaremos o cfdisk. Podemos obter maiores informaes sobre as opes do
comando fdisk atravs do seu manual (man fdisk).

PARTICIONANDO DISCO COM CFDISK


Para iniciar o particionador como root digite cfdisk seguido do nome do dispositivo a ser
particionado, por exemplo cfdisk /dev/hda. Lembre-se, /dev/hdX utilizado para HD's IDE, j
/dev/sdX usado para discos SCSI, SATA e Pendrives.

Para navegarmos nas opes do cfdisk, devemos utilizar as setas para cima e para baixo
para navegar entre as parties e as setas para esquerda e para direita para selecionar as opes
do menu inferior.

Figura 2: Tela principal do cfdisk

Para criar uma nova partio, deve-se selecionar o espao livre do dispositivo e em seguida
selecionar a opo Nova.

Figura 3: Cfdisk - criando uma nova partio

30
Apostila Debian Intermedirio - Desktop Parana

Ser, ento, necessrio definir se a partio ser primria ou lgica. Utilizando as setas, se-
lecione a opo desejada e pressione o <Enter> do teclado.

Figura 4: Cfdisk - escolhendo o tipo de partio (primria ou


lgica)

A s parties estendidas no so definidas manualmente. Automaticamente, ao definir


a primeira partio como Lgica, a estendida criada e anula-se a possibilidade de
se criar uma nova partio primria, mesmo que exista menos de 3 parties desta.

O prximo passo definir o tamanho desejado para a partio em criao. Sempre deve-
mos definir o tamanho em megabytes.

Figura 5: Cfdisk - definindo o tamanho da partio

31
Apostila Debian Intermedirio - Desktop Parana

Em seguida, devemos selecionar na listagem um dos tipos de parties que desejamos criar
(partio linux, ntfs, fat, etc...). Para selecionar digite o nmero correspondente sobre o j existen-
te e pressione a tecla <Enter>.

Figura 6: Cfdisk - Selecionando tipo de partio

Para concluir a criao da partio, v at a opo <Gravar>, pressione <Enter>, digite yes
por extenso (para evitar gravaes de alteraes por engano) e pressione <Enter> novamente.

Para sair do cfdisk, use a opo Quit do menu inicial.

Excluindo uma partio


Para excluir uma partio, selecione-a e ento v em Excluir. Este procedimento excluir a
partio sem solicitar nenhuma confirmao antes de remov-lo. Aps a excluso, o espao ante-
riormente ocupado pela partio passar a ser espao livre podendo ser reutilizado.

Salvando as alteraes
Devemos tomar muito cuidado sempre antes de selecionar e confirmar a opo gravar,
pois assim confirmarmos esta operao todas as alteraes feitas na tabela de partio sero gra-
vadas no tendo mais como serem desfeitas. Sempre que fizermos qualquer alterao indesejada
na tabela de partio basta sair da aplicao (cfdisk) sem gravar as alteraes.

SISTEMA DE ARQUIVOS
Um sistema de arquivos um conjunto de estruturas lgicas e de rotinas, que permitem ao
sistema operacional controlar o acesso ao disco rgido. Existem diversos sistemas de arquivos di-
ferentes, que vo desde sistemas simples como o FAT16, at sistemas como o NTFS, XFS e Rei-
serFS, que incorporam recursos muito mais avanados.

32
Apostila Debian Intermedirio - Desktop Parana

O sistema de arquivos criado durante o processo de formatao da partio, aps isso


toda a estrutura necessria para leitura/gravao de arquivos e diretrios j esto prontas para se-
rem utilizadas pelo sistema operacional.

CRIANDO SISTEMA DE ARQUIVOS


Podemos tambm criar uma partio sem definir o tipo dela, entretanto, para que uma parti-
o fique funcional, temos obrigatoriamente que criar um sistema de arquivos em seu espao.
Para criar um sistema de arquivos nesse tipo de partio basta utilizar o utilitrio mkfs especifi-
cando o tipo de sistema de arquivos que desejamos utilizar na partio. Abaixo um exemplo de
uso deste utilitrio:

mkfstxfs/dev/hda1

No exemplo acima, criamos um sistema de arquivos do tipo xfs na partio /dev/hda1.


Essa a maneira mais simples de se criar um sistema de arquivos numa partio criada sem um
tipo definido. Tambm podemos usar as extenses do utilitrio mkfs, para realizar a criao de sis-
temas de arquivos especficos. No exemplo abaixo faremos exatamente a mesma operao que a
do exemplo anterior:

mkfs.xfs/dev/hda1

33
Apostila Debian Intermedirio - Desktop Parana

GERENCIADOR DE PARTIDA GRUB


O gerenciador de partida o responsvel por carregar o sistema operacional durante o pro-
cesso de inicializao alm de, nos casos onde houver mais de um sistema operacional, permitir
que seja feita a escolha de qual sistema operacional dever ser carregado. Este programa geral-
mente fica gravado ou numa no setor de boot de uma partio ativa ou na Master Boot Record
(MBR) do disco.

O GRUB (Grand Unified Boot Loader) o gerenciador de partida padro do Debian. Ele
um dos mais poderosos e funcionais gerenciadores de partida, capaz de inicializar vrios siste-
mas operacionais como Windows (9x, ME, NT, 2000, XP e Vista), Dos, Linux, GNU Hurd, *BSD,
OS/2 etc. Podemos destacar tambm o suporte aos sistemas de arquivos EXT2, EXT3 e Rei-
serFS, FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no *BSD), minix (MINIX OS)
etc.

A o instalarmos uma mquina com dual boot, com os sistemas operacionais Linux e
Windows, devemos sempre instalar primeiro o sistema operacional Windows. Pois o
mesmo, durante sua instalao, grava suas informaes de inicializao na MBR do dis-
co sobrescrevendo todas as configuraes nela existentes, consequentemente apagan-
do o GRUB e suas configuraes fazendo que o Linux, mesmo instalado, seja ignorado
e iniciado diretamente o sistema operacional Windows.

O GRUB utiliza o padro Multiboot o que o torna capaz de carregar diversas imagens de ini-
cializao (uma por vez) e mdulos. Alm de permitir buscar imagens do Kernel pela rede, por ca-
bos seriais, suporta discos rgidos IDE, SATA e SCSI, informar a quantidade total de memria
RAM ao sistema, tem interface voltada para linha de comandos ou menus de escolha, alm de su-
portar sistemas sem discos e terminais remotos.

Os principais arquivos utilizados pelo GRUB para inicializao do sistema encontram-se


dentro dos diretrios /boot e /boot/grub. Dentro do diretrio /boot encontramos os arquivos de
kernel que so os responsveis pelo carregamento do mesmo na memria. Dentro do diretrio
/boot/grub, encontramos os arquivos dos quais so carregados os parmetros com as configura-
es para inicializao do sistema, dentre esses arquivos destacamos o menu.lst que o arqui-
vo que nos possibilita customizar as configuraes do GRUB.

TRABALHANDO COM DISCOS E PARTIES


O GRUB trabalha com uma notao para apontar discos e parties, diferente da que esta-
mos acostumados a ver em sistemas operacionais Linux. Para o GRUB independente do tipo de
disco (IDE, SATA ou SCSI) ele sempre ser representado pela sigla hd. O primeiro disco ser
representado pelo nmero 0 o segundo pelo nmero 1 e assim por diante. As parties so
representadas da mesma forma que os discos a primeira partio criada ser representada pelo

34
Apostila Debian Intermedirio - Desktop Parana

nmero 0 a segunda pelo nmero 1 e assim por diante. Abaixo segue tabela comparativa,
atravs dela fica mais fcil visualizar as diferenas acima descritas:

Disco IDE Disco SCSI ou SATA Disquete


Dispositivo Dispositivo Dispositivo Dispositivo Dispositivo Dispositivo
no Linux no GRUB no Linux no GRUB no Linux no GRUB
/dev/hda (hd0) /dev/sda (hd0) # Disco SCSI ID 0

/dev/hda1 (hd0,0) /dev/sda1 (hd0,0) # Disco SCSI ID 0, partio 1

/dev/hda2 (hd0,1) /dev/sda2 (hd0,1) # Disco SCSI ID 0, partio 2


/dev/fd0 (fd0)
/dev/hdb (hd1) /dev/sdb (hd1) # Disco SCSI ID 1

/dev/hdb1 (hd1,0) /dev/sdb1 (hd1,0) # Disco SCSI ID 1, partio 1

/dev/hdb2 (hd1,1) /dev/sdb2 (hd1,1) # Disco SCSI ID 1, partio 2

INSTALAO DO GRUB
Aps instalado o GRUB dificilmente precisaremos reinstal-lo. As alteraes ou adies de
novos sistemas a serem carregados como opo para inicializao so feitas atravs de altera-
es no arquivo de configurao menu.lst, com o comando:

#vim /boot/grub/menu.lst

Normalmente, durante a instalao do GNU/Debian voc ser questionado se deseja ou no


instalar o GRUB, se selecionada a opo de sua instalao automaticamente todos os sistemas
operacionais instalados na mquina sero listados e configurados pelo GRUB para estarem dispo-
nveis como opes de sistemas que podem ser inicializados.

Algumas situaes podem vir a apagar o GRUB da MBR do disco, por exemplo, como foi
descrito anteriormente, uma mquina com dual-boot onde a instalao do sistema operacional
Windows foi efetuada posterior a instalao do Linux. Nesses casos para podermos restaurar o
GRUB e voltarmos a utilizar o sistema operacional Linux instalado, podemos, dentre as vrias al-
ternativas para restaurao do grub, executar o comando abaixo por exemplo:

#grubinstall/dev/hda

Este comando grava o GRUB no MBR do primeiro disco rgido IDE do sistema e cria o dire-
trio /boot/grub, onde estaro os arquivos necessrios para o seu funcionamento. interessante
tambm, executar o comando:

#updategrub

Este comando atualiza dinamicamente a lista de sistemas que podem ser carregados du-
rante a inicializao da mquina, e os adiciona ao arquivo menu.lst automaticamente, conforme
a instalao corrente.

35
Apostila Debian Intermedirio - Desktop Parana

N o entanto, para podermos executar os comando apresentados anteriormente para


instalar o grub na MBR e para atualizar o arquivo menu.lst, precisamos primeiro
iniciar a mquina a partir de um CD, pendrive, ou algum outro dispositivo que possua
um sistema operacional que carregue um kernel que disponibilize um shell linux, montar
a partio com o diretrio /boot, montar as parties /proc e /dev, transformarmos a
partio montada no nosso / e s ento podemos utilizar aqueles comandos para res-
taurar o grub (instal-lo na MBR e atualiz-lo)2.
Na linha de comando usar os seguintes comandos:
(para montar a partio com diretrio /boot)
#mounttext3/dev/sda2*/mnt

(para reconhecer o HD necessrio montar o /dev e o /proc)


#mountobind/dev/mnt/dev
#mountobind/proc/mnt/proc

(para que a partio montada vire o /)


#chroot/mnt/bin/bash

(para instalar o GRUB)


#grubinstall

(para atualizar o GRUB para que aparea a instalao do Windows)


#updategrub

* Neste momento deve ser indicada a partio que contenha o diretrio /boot

CUSTOMIZANDO O ARQUIVO MENU.LST


No arquivo menu.lst podemos fazer dois tipos de configuraes: as configuraes globais
que afetam o funcionamento do GRUB de forma mais genrica e as configuraes especificas que
afetaram somente as imagens a serem inicializadas. Abaixo mostraremos um exemplo do arquivo
menu.lst configurado onde sero inseridos comentrios explicando cada um dos parmetros
configurados.

#menu.lstSee:grub(8),infogrub,updategrub(8)
#grubinstall(8),grubfloppy(8),
#grubmd5crypt,/usr/share/doc/grub
#and/usr/share/doc/grubdoc/.
###################################################################

##defaultnum
# A opo default serve para que possamos escolher qual kernel (sistema) ser iniciado. Para isso
basta passar como parmetro o nmero correspondente ao sistema a ser iniciado. A contagem para
representao dos sistemas feita atravs da ordem de apario do parmetro title neste arqui -
vo, deforma que a primeira ocorrncia corresponder ao nmero 0 a segunda ao nmero 1 e assim

2 Uma boa opo de cd bootavel que podemos utilizar para isso o SYSTEMRESCUECD

36
Apostila Debian Intermedirio - Desktop Parana

por diante.
# possvel tambm especificar 'saved' como argumento da opo default. Nesse caso ser consi -
derado como opo padro aquela que apresentar junto s suas configuraes a opo 'savedde -
fault'.

Default 0

###################################################################

##timeoutsec
#Aopotimeoutpermiteadefiniootempo,emsegundos,queo
menudoGRUBficardisponvelparaescolhadosistemaaserinicia
doantesdeiniciarautomaticamenteaopodefinidacomopadro.

Timeout 5

###################################################################

##Prettycolours
# A opo color permite que faamos customizaes das cores no menu do GRUB, atravs do co -
mando 'color a/b c/d'. Onde 'a' representa cor das opes, o 'b' representa a cor do fundo, o 'c' re -
presenta as letras sob o cursor e o 'd' representa acor do cursor. As cores que podem ser aplicadas
so: black (preto), blue (azul), green (verde), cyan (ciano), red (vermelho), magenta (prpura),
brown (marron) e ligth-gray (cinza claro). Ainda so possvel aplicar as cores das fontes ('a' e 'c') as
cores: dark-gray (cinza-escuro), ligth-blue (azul-claro), ligth-green (verde-claro), ligth-cyan (ciano-
claro), ligth-red (vermelho-claro), ligth-magenta (prpura-clara), yellow (amarelo) e white (branco).

colorcyan/bluewhite/blue

###################################################################
##password['md5']passwd
# A opo password permite a definio de uma senha que dever ser informada para que seja pos-
svel a edio das opes de inicializao dos sistemas assim como a utilizao da linha de comando
do GRUB atravs do menu para escolha do sistema a ser iniciado.
# possvel definirmos esta senha de duas formas sem criptografia ou com criptografia. A desvan -
tagem de utilizarmos a senha sem estar criptografada que qualquer usurio com permisso de lei-
tura no arquivo menu.lst poder descobrir qual a senha setada.
Para definirmos uma senha no criptografada basta inserimos a senha desejada logo aps a opo
password, como mostra o exemplo abaixo.

#passwordsenha

#Para definirmos uma senha criptografada basta inserirmos aps a opo password o parmetro '--
md5' seguido da senha j criptografada, como mostra o exemplo abaixo:

#passwordmd5$1$gLhU0/$aW78kHK1QfV3P2b2znUoe/3

###################################################################

3 Para criptografarmos uma senha para utilizao no GRUB basta entrarmos na linha de comando do GRUB e
digitarmos o comando md5crypt digitarmos a senha desejada e copiarmos o resultado criptografado apresentado
para o arquivo de configurao (menu.lst).

37
Apostila Debian Intermedirio - Desktop Parana

##fallbacknum
# Com esta opo podemos definir um segunda opo do menu do GRUB para ser carregada caso a
inicializao do kernel definido como default falhar. Para o correto funcionamento deste parmetro
o mesmo deve ser utilizado junto com o parmetro 'hidenmenu'.

fallback1

###################################################################

##hidenmenu=opo
# Este parmetro oculta a exibio do menu do GRUB de forma que exibida apenas uma mensa -
gem com opo para visualizao do menu de cordo com o tempo definido no parmetro 'timeout'
e esgotado o tempo automaticamente iniciada a opo default.

hidenmenu=true

###################################################################

#Putstaticbootstanzasbeforeand/orafterAUTOMAGICKERNELLIST

## Abaixo encontraremos a seo de opes default, esta seo nunca deve ser descomentada. Os
parmetros passados nesta seo sero utilizados na configurao do GRUB quando for executado
o comando 'update-grub' ou quando for instalada alguma atualizao de segurana do GRUB.

####StartDefaultOptions##
##defaultkerneloptions
## default kernel options for automagic boot options
##Ifyouwantspecialoptionsforspecifickernelsusekopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
##e.g.kopt=root=/dev/hda1ro
##kopt_2_6_8=root=/dev/hdc1ro
##kopt_2_6_8_2_686=root=/dev/hdc2ro
#kopt=root=/dev/hda4rovga=791quietsplash
##defaultgrubrootdevice
##e.g.groot=(hd0,0)
#groot=(hd0,1)
## should updategrub create alternative automagic boot options
##e.g.alternative=true
##alternative=false
#alternative=true
##shouldupdategrublockalternativeautomagicbootoptions
##e.g.lockalternative=truelockalternative=false
##lockalternative=falseadditionaloptionstousewiththedefault
##bootoption,butnotwiththealternativese.g
##defoptions=vga=791resume=/dev/hda5
#defoptions=
##shouldupdategrublockoldautomagicbootoptions
##e.g.lockold=false
##lockold=true
#lockold=false

38
Apostila Debian Intermedirio - Desktop Parana

##XenhypervisoroptionstousewiththedefaultXenbootoption
#xenhopt=
##XenLinuxkerneloptionstousewiththedefaultXenbootoption
#xenkopt=console=tty0
##altoptionboottargetsoption
##multiplealtoptionslinesareallowed
##e.g.altoptions=(extramenusuffix)extrabootoptions
##altoptions=(singleuser)single
#altoptions=(singleusermode)single
##controlshowmanykernelsshouldbeputintothemenu.lst
##onlycountsthefirstoccurenceofakernel,notthe
##alternativekerneloptions
##e.g.howmany=all
##howmany=7
#howmany=all
##shouldupdategrubcreatememtest86bootoption
##e.g.memtest86=true
##memtest86=false
#memtest86=true
##shouldupdategrubadjustthevalueofthedefaultbootedsystem
##canbetrueorfalse
#updatedefaultentry=false

####EndDefaultOptions##

# Logo aps s opes padro comeam as configuraes especficas dos sistemas operacionais
que sero disponibilizados como opo para boot.
Abaixo temos listado como opo de sistema para inicializao o Debian com kernel 2.6.18-6-686.
E logo abaixo temos esse mesmo sistema mas configurado para ser inicializado no modo single-
mode (somente um usurio) que o mesmo sistema operacional com o mesmo kernel com que
inicializado com parmetros, de kernel, diferentes.

# Os parmetros abaixo representam:


# - title: define a forma de identificao que o sistema operacional (kernel) assumir no menu
do GRUB durante a seleo do sistema a ser iniciado. Neste parmetro podemos inserir como argu-
mento qualquer texto que nos ajude a identificar o sistema operacional que ser carregado. Ressal-
tamos que sempre deve ser evitado o uso de caracteres especiais.
# - root: nesta opo indicamos em qual partio encontram-se os arquivos de inicializao (in-
dicamos qual a partio que contm o '/boot').
- kernel: nesta opo passamos qual o kernel dever ser iniciado e logo aps devemos indicar
qual a partio que contm o diretrio '/', aps isso podemos passar alguns argumentos para o ker -
nel, que sero carregados durante sua inicializao. No exemplo abaixo estamos utilizando os argu -
mentos: 'ro' que faz com que seja carregado como somente leitura e 'vga=791' que define a resolu -
o que ser utilizada pelo shell nesse caso 1024x768 com 65.536 cores.
- initrd: nesta opo especificamos qual a imagem que ser utilizada como Initial RAM no
incio do boot do sistema.4
- savedefault: salva uma informao de que no ultimo boot foi utilizado este bloco de confi-
guraes e a partir de ento ser considerada como opo padro para inicializao no GRUB se na

4 Durante a inicializao a imagem do kernel descompactada numa rea de RAM disk (uma emulao de disco em
memria RAM).

39
Apostila Debian Intermedirio - Desktop Parana

opo 'default' estiver configurada com o argumento 'saved'.

title DebianGNU/Linux,kernel2.6.186686
root (hd0,1)
kernel /vmlinuz2.6.186686root=/dev/hda4rovga=791
initrd /initrd.img2.6.186686
savedefault
title DebianGNU/Linux,kernel2.6.186686(singleusermode)
root (hd0,1)
kernel /vmlinuz2.6.186686root=/dev/hda4rovga=791single
initrd /initrd.img2.6.186686

###ENDDEBIANAUTOMAGICKERNELSLIST
###################################################################

# As configuraes abaixo funcionam apenas como um separador que separa as opes de carrega-
mento do Debian das opes dos demais sistemas operacionais disponveis.

title Otheroperatingsystems:
root

###################################################################

# Abaixo (fora da seo DEBIAN AUTOMAGIC KERNELS LIST) encontramos as configuraes dos
sistemas operacionais no-linux. Essas configuraes so escritas neste arquivo atravs do pacote
os-prober que detecta todos os sistemas operacionais instalados e repassa essas informaes ao
gerenciador de boot (GRUB). Por serem detectadas automaticamente dificilmente temos a necessi-
dade de edio dessas configuraes.
# Para configurarmos um sistema operacional windows no GRUB devemos utilizar os seguintes
parmetros de configurao:
# - title: define a forma de identificao que o sistema operacional (kernel) assumir no menu
do GRUB durante a seleo do sistema a ser iniciado.
# - root: para indicarmos em qual partio o Windows esta instalado.
# - makeactive: para tornar a partio com o Windows ativa (o Windows s pode ser iniciado se
sua partio for uma partio ativa).
# - chainloder +1: faz com que seja feita a leitura do primeiro setor da partio carregando o
gerenciador de boot do windows.

title MicrosoftWindowsXPProfessional
root (hd0,0)
savedefault
makeactive
chainloader +1

OUTROS PARMETROS DE CONFIGURAO DAS IMAGENS


rootnoverify = Idntico ao parmetro anterior (root), mas no tenta montar a partio-alvo,
o que necessrio para alguns sistemas como o DOS e o MS Windows.

module = Faz com que algum mdulo necessrio para o boot seja carregado. Lembre-se

40
Apostila Debian Intermedirio - Desktop Parana

que estes no so mdulos do kernel (mdulos de som, rede, etc.) e sim mdulos necessrios ao
boot de alguns sistemas, como por exemplo os utilizados pelo GNU Hurd.

lock = Quando voc desejar controlar se uma pessoa pode ou no iniciar um sistema que
esteja listado nas opes do menu de boot, voc pode utilizar esta opo que faz com que a se-
nha especificada com o parmetro password seja solicitada no momento em que o usurio ten-
tar carregar a imagem em questo.

pause = Emite uma mensagem na tela e espera uma tecla ser pressionada.

hide e unhide = Esconde/mostra uma partio respectivamente. Estas duas opes, so


necessrias quando houver mais de uma verso do DOS ou do Windows na mquina em parti-
es diferentes, j que estes sistemas detectam automaticamente a partio. Vamos a um simples
exemplo para ilustrar uma situao bem comum: Suponha que o Windows esteja instalado na pri-
meira partio primria do primeiro disco rgido (hd0,0) e o DOS na segunda partio primria
(hd0,1). Quando quisermos carregar estes sistemas, devemos ajustar o arquivo /boot/grub/me-
nu.lst, adicionando as seguintes configuraes:

#Porodoarquivo/boot/grub/menu.lst
titleWindows
hide(hd0,1)
unhide(hd0,0)
rootnoverify(hd0,0)
chainloader+1
makeactive

titleDos
hide(hd0,0)
unhide(hd0,1)
rootnoverify(hd0,1)
chainloader+1
makeactive

map = Alguns sistemas no permitem ser iniciados quando no esto no primeiro disco
(DOS, Windows 9x etc). Para resolver esta e outras situaes deste tipo, o GRUB tem um coman-
do 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
/boot/grub/menu.lst do GRUB:

titleWindows

41
Apostila Debian Intermedirio - Desktop Parana

unhide(hd1,0)
rootnoverify(hd1,0)
chainloader+1
map(hd1)(hd0)
makeactive

Isso faz com que o disco (hd1), onde Windows/DOS est instalado, seja apresentado a
este sistema como (hd0), um artifcio que permitir que estes sistemas sejam carregados normal-
mente.

Atravs do menu do GRUB possvel alterar as configuraes para inicializao do sistema


que estiver selecionado pressionando a tecla <e>. Sero exibidos os parmetros de configurao
para inicializao daquele sistema, para alterar esses parmetros basta selecion-los e novamen-
te novamente pressionar a tecla <e>, aps feitas as alteraes desejadas basta pressionar a tecla
<enter> e para dar boot com as alteraes efetuadas basta digitar a letra <b>.

LINHA DE COMANDO DO GRUB


O GRUB possui tambm o recurso de linha de comandos. Na linha de comando podemos
utilizar maioria dos comandos usados no arquivo de configurao /boot/grub/menu.lst, alm ou-
tros comandos que so exclusivos para uso na linha de comado.

Temos duas formas de acessar o menu do GRUB:

Com o sistema operacional carregado digitando, na linha de comando como root

#grub

Pressionando a tecla <c> enquanto aparece a tela do menu de seleo do GRUB.

C aso o parmetro password tenha sido especificado no arquivo /boot/grub/me-


nu.lst, para que seja poder acessar o menu de comandos assim como as demais
opes possveis ser necessrio pressionar a tecla <p> e entrar com a senha vlida.

Abaixo iremos fazer uma breve descrio de alguns comandos que podemos utilizar na linha
de comando do GRUB, onde s detalharemos os comandos mais relevantes.

cat - Este comando permite verificar o contedo de um arquivo qualquer, o qual deve es-
tar gravado em um dispositivo ligado a sua mquina. Embora seja um recurso til, nenhuma
permisso de acesso verificada e qualquer pessoa que tenha acesso linha de comandos
do GRUB, poder listar o contedo de arquivos importantes do seu sistema. Para contornar
este problema, configure adequadamente o parmetro password no arquivo /boot/grub/me-
nu.lst. No esquea que ainda possvel utilizar um disquete com o GRUB para iniciar a m-
quina, o que permite usar a linha de comandos pelo disquete.

42
Apostila Debian Intermedirio - Desktop Parana

Para testar o comando cat siga os passos descritos a seguir: deixe o arquivo menu.lst so-
mente com permisso de leitura e escrita para o dono (grupo e outros no devem ter nenhum tipo
de permisso), com um usurio comum tente listar o contedo do arquivo menu.lst com o co-
mando cat da linha de comando do sistema operacional (dever ser exibida mensagem de per-
misso negada). Em seguida como root digite o comando grub para entrar na linha de comandos
do GRUB, e seguida utilize, para listar o contedo do arquivo menu.lst, o comando cat passan-
do, com a sintaxe do GRUB, qual a partio e o caminho onde se encontra o arquivo menu.lst e
perceba que o contedo do arquivo ser exibido. Veja abaixo um exemplo de execuo dos co-
mandos descritos nesse procedimento.

#chmod600/boot/grub/menu.lst
#surobsonp
$cat/boot/grub/menu.lst
cat:/boot/grub/menu.lst:Permissonegada
$exit
#grub
grub>cat(hd0,0)/grub/menu.lst

cmp - Este comando utilizado para comparar dois arquivos.

grub>cmp(hd0,0)/arquivo1(hd0,0)/arquivo2

configfile - Carrega um arquivo de configurao do GRUB. Com este comando ser


aberto o menu do GRUB e decorrido o tempo configurado no arquivo menu.lst, caso nenhuma
tecla seja pressionada, ocorrer uma tentativa de inicializao da opo definida na opo de-
fault, ser apresentada mensagem de erro de inconsistncia na estrutura do sistema de arqui-
vos e retornar ao menu do GRUB ento basta digitar c para retornar a linha de comando.

grub>configfile(hd0,0)/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 com-
pleto do caminho para o arquivo e a partio onde o mesmo est localizado.

geometry - Mostra informaes sobre a geometria reconhecida para seu dispositivo de


armazenamento principal, e permite que voc defina uma geometria personalizada, caso esta
esteja sendo reconhecida de forma errada.

help um comando para ver a ajuda sobre a utilizao de outros comandos.

grub>helpcmp

43
Apostila Debian Intermedirio - Desktop Parana

install - Instala o GRUB, embora no seja recomendado o uso deste comando direta-
mente, j que possvel cometer erros facilmente e sobrescrever a tabela de parties de seu
disco.

setup - Este comando configura e instala o GRUB automaticamente. Para instalao do


GRUB atravs deste comando precisamos, antes, indicar em qual partio esto os arquivos
de inicializao (qual a partio /boot) para depois podermos utilizar o comando setup para
efetuarmos a instalao.

grub>root=(hd0,0)
grub>setup=(hd0)

quit - Abandona a linha de comandos do GRUB.

reboot - Reinicia o computador.

boot - Efetua o carregamento atravs das opes definidas via linha de comando. Supo-
nha um sistema operacional Linux instalado com o /boot (os seus arquivos de inicializao)
na partio /dev/sda1 (hd0,0) e o diretrio / na partio /dev/sda2 (hd0,1) utilizando o kernel
2.6.18-6-686. Levando em conta essas configuraes podemos passar os seguintes coman-
dos na linha de comandos para efetuar o boot (a inicializao do sistema) pela linha de co-
mando do GRUB.

grub>root(hd0,0)
grub>kernel/vmlinuz2.6.186686root=/dev/sda1rovga=6
grub>initrd/initrd.img2.6.186686
grub>boot

44
Apostila Debian Intermedirio - Desktop Parana

RUNLEVEL

PROCESSO DE BOOT
Antes de aprendermos sobre runlevel vale a pena entendermos um pouco como funciona o
processo de inicializao do computador.

Ao ligarmos o computador, a BIOS executa uma srie de operaes antes de iniciar o boot
do sistema operacional conforme sequncia abaixo:

1. Computador ligado pelo interruptor iniciando a energizao dos circuitos eltricos;

2. BIOS executa vrias operaes;

3. BIOS l o setor de boot (MBR);

4. Executa o programa encontrado (no Debian, por padro, o GRUB);

5. Carrega o kernel;

6. O kernel executa o init (PID=1. Isso mesmo, o init uma aplicao);

7. O init l o arquivo /etc/inittab;

8. O init executa os scripts de acordo com o inittab;

9. Sistema pronto para uso.

Os runlevels so iniciados quando o kernel executa o init, que o primeiro processo a ser
executado e tem o PID igual a um. Uma caracterstica especfica deste processo que ele no
pode ser finalizado foradamente. O init l o arquivo /etc/inittab, onde esto definidos os primeiros
parmetros a serem configurados, como por exemplo, qual o runlevel, quais scripts devem ser
executados por quais runlevels, quantos terminais virtuais ns teremos disponveis em nossa m-
quina, etc.

CONHECENDO OS RUNLEVELS
Runlevels, ou nveis de execuo, constituem uma maneira de controlar como a mquina
ser utilizada. Cada runlevel configurado para que um determinado nmero de processos espe-
cficos estejam em execuo. Convencionalmente temos 7 (sete) nveis de runlevels do 0 ao 6,
onde, por padro no Debian, o nvel zero (0) utilizado para realizar o desligamento (shutdown)
normal da mquina; o nvel 6 usado para reinicializar (reboot) o sistema; o nvel 1 (modo mono
usurio) o modo no qual o Kernel do Linux s carrega os recursos necessrios para o funciona-
mento bsico do SO e disponibiliza apenas acesso ao superusurio do sistema (root), de modo
geral, para que este possa realizar a manuteno de algum ponto falho do sistema. Os runlevels 2
a 5 so utilizados para carga dos diferentes servios providos pelo sistema, e possuem uma ca-

45
Apostila Debian Intermedirio - Desktop Parana

racterstica comum entre si: atuarem no modo multiusurio.

Atravs do comando init podemos alterar o nvel de execuo atual do sistema operacio-
nal. Para isso, devemos usar o comando init seguido de um nmero (de 0 a 6) representando o
runlevel desejado. Abaixo um exemplo de uso do comando para alterar o nvel de execuo atual
do sistema:

#init3

N os sistemas Debian, aps a instalao do sistema operacional, os runlevels de 2 a 5


so todos iguais e apenas iniciam aplicaes. Ento, executando o comando acima,
o script ir verificar que todos os servios j esto carregados e no far nada.

IDENTIFICANDO O RUNLEVEL EM UTILIZAO


Temos basicamente duas formas de se identificar o runlevel carregado. Uma delas atravs
do comando:

#psaux|grepinit

A sada deste comando ser algo como:

root10.00.01984688?Ss07:450:01init[2]
root47450.00.03264816pts/0S+09:580:00grepinit

Neste exemplo, o nvel de execuo atual do SO o 2, representado pela indicao init [2]
presente na primeira linha da sada do comando. Outra forma de se identificar o runlevel carrega-
do atravs do comando runlevel, como no exemplo abaixo:

#runlevel

A sada deste comando ser algo como:

N2

O N 2 da sada do comando runlevel, indica que o nvel de execuo atual do sistema o


2, se voc mudar o nvel para outro qualquer, o nvel anterior ser mostrado no lugar do N exibi-
do na sada acima. Desta forma possvel verificar qual foi o ltimo e o corrente.

O ARQUIVO /ETC/INITTAB
Durante o processo de inicializao, o init utiliza durante sua execuo o arquivo /etc/init-
tab para configurar cada runlevel do sistema. Este o principal arquivo de configurao do boot
do sistema. Nele so especificadas diversas opes que definiro o perfil do sistema.

A configurao deste arquivo, apesar de algumas variaes, obedece basicamente o se-

46
Apostila Debian Intermedirio - Desktop Parana

guinte padro:

id:runlevel:ao:diretrio

id - identificador "exclusivo" para cada linha do arquivo. Deve estar limitado a 2 ca-
racteres.

runlevel - identifica em qual runlevel esta linha deve ser executada. Pode definir um
ou mais de um runlevels.
ao - identifica a ao a ser tomada. O campo ao pode ter um dos seguintes va-
lores:
respawn - O processo ser reiniciado assim que for finalizado;
wait - O processo ser executado quando o sistema entrar no runlevel especi-
ficado e o sistema aguardar a finalizao deste processo;
once - O processo ser executado quando o sistema entrar no runlevel espe-
cificado;
boot - O processo ser executado durante o boot do sistema;
bootwait - O processo ser executado durante o boot do sistema, que aguar-
dar a sua finalizao para continuar;
off - No faz nada;
initdefault - especifica o runlevel que o sistema dever entrar aps o boot do
sistema. Caso este parmetro no seja informado, o init ir questionar qual o runle-
vel a ser utilizado. O campo processo ignorado.
sysinit - O processo ser executado durante o boot do sistema, antes de qual-
quer referencia dos parmetros boot ou bootwait. O campo runlevel ignorado;
powerwait - O processo ser executado quando o init receber uma mensagem
de falha na alimentao eltrica da mquina. O init aguardar a finalizao deste
processo;
powerfail - Idntico ao powerfail, com a diferena de que o init no aguardar
a finalizao deste processo;
powerokwait - O processo ser executado quando o init for informado de que
a alimentao eltrica foi restabelecida;
powerfailnow - O processo ser executado quando o init for informado de que
a alimentao eltrica da mquina (bateria, no-break) est quase vazia, e que a
energia est falhando.
ctrlaltdel - O processo ser executado quando o init receber o sinal SIGINT,
que significa que a sequencia de teclas <Ctrl>+<Alt>+<Del> foi pressionada;
kbrequest - O processo ser executado quando o init receber um sinal do dri-

47
Apostila Debian Intermedirio - Desktop Parana

ver do teclado informando que uma sequencia especial de teclas foi pressionada. A
documentao para esta funo ainda no est completa, para maiores informa-
es veja o pacote kbd-x-xx.

Diretrio caminho completo do diretrio onde se encontram os scripts a serem exe-


cutados.
Analisando as principais linhas de configurao do arquivo /etc/inittab.

# /etc/inittab: init(8) configuration.


# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# A linha abaixo esta definindo o runlevel padro.


id:2:initdefault:

# Primeira ao a ser executada durante o processo de boot, com inicializao dos scripts de carre -
gamento do kernel.
si::sysinit:/etc/init.d/rcS

# O que ser carregado no modo mono-usurio


~~:S:wait:/sbin/sulogin

# Runlevel 0 desligar a mquina.


# Runlevel 1 modo mono-usurio (single-user).
# Runlevels 2-5 Modo Multiusurio (multi-user).
# Runlevel 6 reinicializao do sistema.
# As linhas abaixo configuram cada runlevel para serem executados quando o sistema entrar no
runlevel especifico.
l0:0:wait:/etc/init.d/rc0
l1:1:wait:/etc/init.d/rc1
l2:2:wait:/etc/init.d/rc2
l3:3:wait:/etc/init.d/rc3
l4:4:wait:/etc/init.d/rc4
l5:5:wait:/etc/init.d/rc5
l6:6:wait:/etc/init.d/rc6

# Inicializando os terminais (tty)


1:2345:respawn:/sbin/getty38400tty1
2:23:respawn:/sbin/getty38400tty2
3:23:respawn:/sbin/getty38400tty3
4:23:respawn:/sbin/getty38400tty4
5:23:respawn:/sbin/getty38400tty5
6:23:respawn:/sbin/getty38400tty6

ENTENDENDO O FUNCIONAMENTO DOS RUNLEVELS


Ao carregamos um runlevel simplesmente executamos um conjunto de scripts localizados
no /etc/ini.d/ com uma determinada sequencia de prioridade, atravs de links simblicos existentes

48
Apostila Debian Intermedirio - Desktop Parana

nos diretrios /etc/rc?.d.

Na distribuio GNU/Debian, os diretrios /etc/rc[0-6].d contm as ligaes simblicas para


arquivos em /etc/init.d, que so acionados pelo init no nvel de execuo correspondente. Por
exemplo, o arquivo S10sysklogd em /etc/rc2.d, um link simblico para /etc/init.d/sysklogd.

O nome desses links simblicos seguem um padro atravs do qual definido se o link sim-
blico iniciar ou interromper a execuo de um servio em /etc/init.d, alm indicar a prioridade
para execuo do script. Segue abaixo descrio sobre os padres de nomenclatura dos links.

Se um link iniciado com a letra K (kill), quer dizer que o servio ser interrompido na-
quele nvel de execuo. O que ele faz na verdade, executar o script do servio em questo
em /etc/init.d seguido da opo stop.

Se um link iniciado com a letra S (start), quer dizer que o servio ser iniciado naquele
nvel de execuo. Isto far com que o script do servio em questo em /etc/init.d seja invo-
cado seguido da opo start.

Por ordem, os links com a letra K so executado primeiro seguido pelos que iniciam pela
letra S. A ordem com que so executados, depende tambm do valor numrico que acompanha
o link, quanto menor o nmero antes ser executado, por exemplo, os seguintes arquivos so exe-
cutados em sequencia:

S10sysklogd

S12kerneld

S20inetd

S20linuxlogo

S20logoutd

S20lprng

S89cron

S99xdm

Note, que os arquivos que iniciam com o mesmo nmero (S20*), so executados por ordem
alfabtica.

INSERINDO/ REMOVENDO SCRIPTS DO RUNLEVEL


A forma mais indicada para inserir ou remover scripts nos runlevels utilizando a ferramenta
update-rc.d. Para reconfigurarmos um script de inicializao ou um novo script incluso no diretrio
/etc/init.d que deve ser iniciado automaticamente basta usar:

49
Apostila Debian Intermedirio - Desktop Parana

#updaterc.dnomestart/stopNNrunlevel.(...)

Onde nome o nome do script em /etc/init.d, a opo start para iniciar ou stop para parar o
processo, NN faz referncia ordem de execuo (prioridade) e o runlevel em que deseja incluir
ou reconfigurar o scrip. O ponto faz parte da sintaxe do comando para separar as configuraes
realizadas atravs do update-rc.d, tambm havendo a necessidade de se colocar um ponto no fi-
nal do comando. A Seguir alguns exemplos de uso:

Vamos imaginar que criamos o script firewall.sh no /etc/init.d. Queremos que ele seja
iniciado (argumento "start" passado) no runlevel de boot padro (2) e fechado (argumento "stop")
quando se desliga ou reinicia (runlevels 0 e 6) e queremos que ele seja um dos ltimos processos
a ser iniciado/parado. Para isso devemos utilizar o comando update-rc.d com a seguinte sintaxe:

#updaterc.dfirewall.shstart972.stop970.stop976.

Uma forma mais fcil de se utilizar o update-rc.d com a utilizao das configuraes pa-
dro, ou seja, iniciar nos runlevels 2, 3, 4 e 5 e finalizar nos 0, 1 e 6. Para isso basta usar o co -
mando:

#updaterc.dsshdefaults

Tambm possvel utilizar a opo defaults do comando update-rc.d alterando sua priorida-
de de execuo. Para isso basta aps o parmetro defaults informar tambm o numero referente
a prioridade desejada.

#updaterc.dsshdefaults37

Para removermos um servio basta utilizarmos o comando update-rc.d com a sintaxe a se-
guir:

#updaterc.dfsshremove

Utilizando junto ao comando update-rc.d o parmetro -n somente ser mostrado na tela o re-
sultado do comando, no sendo gravada nenhuma alterao nos runlevels.

#updaterc.dnsshdefaults

50
Apostila Debian Intermedirio - Desktop Parana

SISTEMA DE LOGS
Arquivo de Log, uma designao dada aos arquivos que so utilizados pelos programas
do sistema para registrar suas atividades. Estes registros, em geral, so compostos por mensa-
gens informativas, de alerta e de erro, geradas pelos programas durante sua execuo. Estes ar-
quivos possuem informaes muito teis para o administrador do sistema. Atravs deles poss-
vel verificar o funcionamento do sistema, o comportamento dos programas, prevenir e corrigir er-
ros e auditar o ambiente operacional.

O Debian conta com uma estrutura central para armazenamento e funcionamento do siste-
ma de logs, onde os arquivos de log so guardados comumente no diretrio /var/log, e um servi-
o especial denominado syslog faz de forma unificada todo o registro de atividades do sistema
(kernel e outros programas).

A partir da verso lenny do DEBIAN os antigos daemons do syslog, syslogd - Linux system
logging utilities e klogd - Kernel Log Daemon, foram substitudos por um nico daemon o rsyslog.

As vezes temos que administrar uma grande quantidade de computadores (geralmente ser-
vidores) ficando difcil o acompanhamento das logs em cada uma das mquinas. Para facilitar
este controle podemos criar um servidor de logs, configurando uma mquina para receber os re-
gistros de log de todas as outras mquinas da rede, podendo inclusive ser configurado um banco
de dados para armazenamento das logs (este procedimento de configurao de um servidor de
log no ser abordado nesta apostila).

PRINCIPAIS ARQUIVOS DE LOG


Dentro do diretrio /var/log, podemos encontrar uma variedade de arquivos de log. Dentre
eles, alguns merecem destaque:

Nome do Arquivo Descrio

um arquivo de log geral do sistema. Guarda desde algumas


messages mensagens do kernel at registros enviados pelos programas do usu-
rio.

Usado principalmente para registrar atividades do kernel e de


syslog alguns servios do sistema. o mais importante arquivo de log de um
ambiente Linux, juntamente com /var/log/messages.

Usado para guardar informaes sobre a autenticao de usu-


auth.log
rios no sistema.

wtmp um arquivo binrio, que guarda a contabilidade de tempo de

51
Apostila Debian Intermedirio - Desktop Parana

acesso ao sistema por parte dos usurios. Para verificar o contedo


deste arquivo, necessrio o uso do comando last.

Xorg.[nmero].log Guarda informaes relacionadas ao servidor X.

Mensagens do Kernel no momento de inicializao do sistema.


dmesg
Pode ser lido, atravs do comando de nome homnimo.

possui informaes com maior nvel de detalhes do que em


debug /var/log/syslog e /var/log/messages. Interessante para verificao
de problemas no sistema.

LENDO UM ARQUIVO DE LOG


O contedo dos arquivos de log sempre seguiro o seguinte padro:

Data|Hora|mquina|Daemon|Mensagem

Sendo que o campo mquina o nome do computador que registrou a mensagem (a m-


quina pode atuar como um servidor de logs registrando mensagens de diversos computadores em
sua rede). O campo daemon, indica qual programa gravou a mensagem e o campo mensagem
contem as informaes referentes quela log.

CONFIGURANDO O SYSLOG
As configuraes do syslog so feitas atravs de seu arquivo de configurao /etc/rsys-
log.conf. Neste arquivo podemos definir quais as facilidades e quais nveis geraro registros de
log alm de definir o destino da log. Sua sintaxe para configurao a seguinte:

facilidade.nvel destino

Onde facilidade faz referncia ao programa ou servio que ir gerar a mensagem, nvel faz
referncia importncia da mensagem e destino ao local que ser enviada a sada da log. Podendo
esta sada ser um arquivo, uma tty, um pipe (se iniciado por um "|"), um computador remoto (se
iniciado por uma "@"), ou para determinados usurios do sistema (especificando os logins separa-
dos por vrgula) ou para todos os usurios que esto usando o SO ou atravs do comando wall
(usando o caractere "*"). Segue abaixo uma relao das facilidades e nveis possveis:

Facilidades:

auth - Mensagens de segurana/autorizao ( recomendvel usar authpriv ao invs


deste).

authpriv - Mensagens de segurana/autorizao (privativas).

cron - Daemons de agendamento (cron e at).

52
Apostila Debian Intermedirio - Desktop Parana

daemon - Outros daemons do sistema que no possuem facilidades especficas.

ftp - Daemon de FTP do sistema.

kern - Mensagens do kernel.

lpr - Sub-sistema de impresso.

local0 a local7 - Reservados para uso local.

mail - Sub-sistema de e-mail.

news - Sub-sistema de notcias da USENET.

security - Sinnimo para a facilidade auth (evite us-la).

syslog - Mensagens internas geradas pelo syslogd.

user - Mensagens genricas de nvel do usurio.

uucp - Sub-sistema de UUCP.

O caractere * (asterisco) - Confere com todas as facilidades.

A lguns sinalizadores de facilidades como o security, emitem um alerta sonoro no


sistema e enviam uma mensagem para console, como forma de alerta ao adminis-
trador e usurios que esto utilizando o sistema.

Nveis:

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.

none - Nenhuma prioridade.

O caractere * (asterisco) - Confere com todos os nveis.

Alm destes nveis, os seguintes sinnimos esto disponveis:

53
Apostila Debian Intermedirio - Desktop Parana

error - Sinnimo para o nvel err.

panic - Sinnimo para o nvel emerg.

warn - Sinnimo para o nvel warning.

A o selecionarmos um determinado nvel alm do nvel selecionando tambm sero


registradas as mensagens de todos os nveis de maior prioridade.

possvel configurar mais de uma facilidade para cada nvel para isso basta separar as faci-
lidades por , (vrgula) e aps listar todas as facilidades utilizar o . (ponto) para separar as facili-
dades do nvel desejado. possvel tambm configurar vrias facilidades com nveis diferentes
para um mesmo destino, para isso basta separ-las por ; (ponto e vrgula). Conforme mostram
os exemplos abaixo.

auth,authpriv.* /var/log/auth.log

No exemplo acima temos duas facilidades (auth e authpriv separadas por vrgula) registran-
do suas mensagens de todos os nveis (representados pelo caracter coringa *) no arquivo
/var/log/auth.log.

syslog.*;auth,authpriv.notice /var/log/syslog

Neste outro exemplo, temos todos os nveis da facilidade syslog e a partir do nvel notice
das facilidades auth e authpriv sendo registradas no arquivo /var/log/syslog.

*.* /dev/tty8

No exemplo acima temos todas as facilidades em todos os nveis sendo registradas na tty8.
Neste caso se acessarmos a tty8 veremos que as logs estaro sendo exibidas em tempo real (as-
sim que so geradas) mas no estaro sendo gravadas em nenhum arquivo para uma consulta
posterior.

S empre utilize a tecla <TAB> ao invs da barra de espaos para separar os parme-
tros do arquivo /etc/rsyslog.conf.

Existem ainda 4 caracteres que garantem funes especiais: "*", "=", "!" e "-". A seguir uma
breve descrio da funo que cada um deles desempenha:

O caractere * - Todas as mensagens da facilidade especificada sero redirecionadas.

O caractere = - Somente o nvel especificado ser registrado.

O caractere ! - Todos os nveis especificados e de maior importncia NO sero re-


gistrados.

54
Apostila Debian Intermedirio - Desktop Parana

O caractere - - Pode ser usado para desativar a sincronizao de escrita imediata do


arquivo de log. Tem a vantagem de obter maior desempenho, porm, como a gravao no
sncrona, caso o sistema seja desligado abruptamente, voc perder a informao das ativida-
des que ainda no foram salvas no arquivo.

Os caracteres especiais "=" e "!" podem ser combinados numa mesma regra.

LOGGER
Este comando permite enviar uma mensagem para os arquivos de log do sistema. A mensa-
gem enviada aos arquivos, atravs do daemon rsyslog, ou via soquete do sistema, possvel
especificar dados como prioridade, nvel, nome de identificao do processo, etc. Seu uso muito
til em scripts ou em outros eventos do sistema.

Para podermos utilizarmos o comando logger num scrip precisamos primeiro configurar no
arquivo /etc/syslog.conf uma facilidade para receber as mensagens geradas pelo scrip. Como vi-
mos anteriormente as facilidades local0 a local7, so reservadas para usurios, ento basta confi-
gurarmos estas facilidades para gravarem suas mensagens num determinado arquivo, como mos-
tramos abaixo.

local3.* /var/log/robsonlog.log

A configurao acima faz com que as mensagens da facilidade local3 sejam gravadas no ar-
quivo robsonlog.log, agora para o nosso scrip registrar suas logs neste arquivo basta utilizarmos
nele o comando logger. Segue abaixo cdigo do script testelogger.sh que foi criado para testar-
mos o uso do comando logger.

#!/bin/bash
logger -t $0 -p local3.warning teste usando comando logger num
scrip

Neste comando do logger foram utilizados dois parmetros: o -t que permite adicionar uma
tag (marcao) mensagem, nesse caso utilizamos a varivel $0 que em shell script retorna o
nome do arquivo com o script, o outro parmetro foi o -p. que permite definir o recurso do syslog
que desejo utilizar, qual o nvel que representa e a mensagem desejada para envio. Com isso o
syslog j se encarrega de escrever no arquivo de log colocando essas mensagens e a data da
execuo. A sada desse comando no arquivo de log :

Jan2809:29:40debianVMtestelogger.sh:testeusandocomandologger
numscript

A sintaxe para utilizao do comando logger ?

55
Apostila Debian Intermedirio - Desktop Parana

logger[opes][mensagem]

Onde:

mensagem

a mensagem que ser enviada ao daemon rsyslog para ser gravada num dos respec-
tivos arquivos de log presentes no sistema.

opes

-i Registra o PID (nmero identificador) do processo.

-s Envia a mensagem para a sada padro (STDOUT) e para o servio rsyslog.

-f [arquivo] Envia o contedo do arquivo especificado como mensagem ao rsyslog.

-t [nome] Especifica o nome do processo responsvel pelo log que ser exibido antes do
PID na mensagem do syslogd.

-p [prioridade] Especifica a prioridade da mensagem. Deve-se utilizar a notao facilida-


de.nvel. Verifique os tipos de prioridade/nveis existentes no Linux no arquivo de configurao
/etc/syslog.conf. O valor padro que utilizado caso este parmetro no seja especificado
user.notice.

-u [soquete] Envia a mensagem para o soquete especificado ao invs do rsyslog. til


para enviar mensagens atravs da rede para um servidor de log.

LOGCHECK
um programa usado para enviar um e-mail periodicamente ao administrador do sistema
(atravs do cron ou outro servio com a mesma funo) alertando sobre os eventos que ocorre-
ram desde a ltima execuo do programa. Esta ferramenta pode ser muito til se personalizada
adequadamente para alertar ao administrador de eventos estranhos. O Logcheck pode ser total-
mente personalizado assim enviar mensagens baseadas em eventos encontrados nos logs e
passveis de ateno.

As mensagens do logcheck so tratadas por arquivos em /etc/logcheck e organizadas em


categorias antes de serem enviadas por e-mail, isto garante muita praticidade na interpretao
dos eventos ocorridos no sistema. O tipo de mensagem que ser includa/ignorada nos logs envia-
dos pela ferramenta, podem ser ajustadas pelo administrador do sistema atravs desses
arquivos/diretrios presentes em /etc/logcheck. Nomes de arquivos/diretrios contendo a palavra
"ignore" so usados para armazenar expresses regulares que NO sero enviadas pelo log-
check.

A instalao padro inclui perfis para eventos ignorados e violaes de polticas para trs di-

56
Apostila Debian Intermedirio - Desktop Parana

ferentes configuraes (workstation, server e paranoid), sendo que "server" (servidor) o nvel pa-
dro, paranoid (paranoico) somente recomendado para mquinas de alta segurana executando
poucos servios quanto forem possveis e workstation (estao de trabalho) para mquinas relati-
vamente no crticas.

Para mais informaes, leia /usr/share/doc/logcheck/README.Debian. Detalhes sobre como


escrever regras esto explicados em /usr/share/doc/logcheck-database/README.logcheck-data-
base.gz.

LOGROTATE
Usado para fazer a rotao dos arquivos de log do sistema. A rotao de log processo que
consiste em guardar o arquivo de log que est sendo utilizado atualmente pelo sistema e fazer
com que os daemons passem a utilizar um novo arquivo para armazenar os novos registros das
atividades do sistema. Este processo tambm conhecido como arquivamento de log.

As tarefas do logrotate so programadas via cron ou outro servio de agendamento dispo-


nvel no sistema. Opcionalmente, os arquivos de log antigos podero ser compactados para dimi-
nuir a utilizao de espao em disco ou enviados por e-mail. A rotao dos arquivos de log propor-
ciona maior agilidade quando precisamos encontrar algum detalhe til, o que seria mais difcil e
demorado usando um arquivo de log muito extenso.

O arquivo principal de configurao do logrotate o /etc/logrotate.conf, segue abaixo


exemplo de configurao do arquivo.

#### As configuraes abaixo, afetam globalmente o funcionamento do logrotate:


# Faz a rotao do arquivos de log semanalmente
weekly

# Mantm as ltimas 4 cpias de logs anteriores
rotate4

# Erros de no existncia dos logs so enviados por e-mail ao usurio root
mailroot

#Crianovosarquivosdelog(vazios)apsrotacionarosantigos
create

# O parmetro compress utilizado para fazer a compresso dos arquivos antigos. O parmetro
delaycompress usado para que o primeiro log seja mantido
compress
delaycompress

# Executam os scripts em prerotate e postrotate a cada vez que os logs forem arquivados
nosharedscripts

57
Apostila Debian Intermedirio - Desktop Parana


# Definimos um diretrio que poder conter definies individuais de rotao de log para cada ser -
vio do sistema. Contudo, alertamos que diversas configuraes individuais podem deixar a inter -
pretao deste arquivo confusa
include/etc/logrotate.d

# Define opes especficas para a rotao mensal de /var/log/wtmp. As opes definidas indivi-
dualmente como neste exemplo, sobrepem as opes globais definidas anteriormente. As defini-
es para /var/log/wtmp, implicam que caso o arquivo atinja 5MB (size 5M) ele ser arquivado,
ser criado um novo arquivo com permisso 0664 e pertencer ao usurio root e o grupo utmp
(create 0664 root utmp)e ser mantida somente uma cpia do log anterior (rotate 1).
/var/log/wtmp{
monthly
create0664rootutmp
size5M
rotate1
}

# Define opes especficas para a rotao mensal de /var/log/btmp. Neste caso, o parmetro
missingok far com que sejam gerados alertas informando ao administrador que o arquivo no
existe.
/var/log/btmp{
missingok
monthly
create0664rootutmp
rotate1
}

# Define opes especficas para a rotao semanal de /var/log/lastlog.
/var/log/lastlog{
missingok
weekly
create0664rootutmp
rotate1
}

# Define opes especficas para a rotao diria de /var/log/messages. Neste caso, o ser arquivo
ao atingir o tamanho de 1Mb (size 1M), ento o novo arquivo ser criado com as mesmas per-
misses do arquivo anterior. O comando killall -1 syslogd ser executado aps a rotao (postro -
tate)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 (rotate 10) do arqui-
vo /var/log/messages compactadas (o parmetro compress foi especificado globalmente neste ar-
quivo de configurao).
/var/log/messages{
daily
size1M
sharedscripts
postrotate
/sbin/killall1syslogd
endscript

58
Apostila Debian Intermedirio - Desktop Parana

rotate10
}

# Define opes especficas para a rotao mensal dos arquivos em /var/log/mirror/*. A falta des-
ses arquivos no precisa ser notificada ao administrador (missingok), mesmo assim o parmetro
"nomail" evitar isto de qualquer forma. Os logs rotacionados no sero compactados (nocom-
press) e sero mantidas as ltimas 7 cpias (rotate 7) dos arquivos.
/var/log/mirror/*{
montly
nomail
missingok
nocompress
rotate7
}
# Fim do arquivo de configurao

Abaixo as opes que voc pode utilizar no logrotate.conf.

compress - comprimir os logs.

co-mpresscmd - comprimir os logs com especificao do comando a utilizar. O pa-


dro gzip.

uncompresscmd - definir o comando para descomprimir os logs. O padro gunzip.

compressext - especifica a extenso usada para o arquivo de log comprimido.

compressoptions - para possibilitar incluir opes aos comandos de compresso.


Por exemplo: gzip -5. O padro a compresso mxima (-9).

copy - copia o log sem modificar o original.

copytruncate - copia o log e move o original para outro lugar.

create [mode owner group] - Este o comando usado para a criao de um novo
arquivo de log vazio aps a rotao. Voc pode alterar as permisses, o dono do arquivo e
o grupo.

daily - rotacionar diariamente.

delaycompres - Atrasa a compresso do log para a prxima rotao.

extension [ext] - Inclui uma extenso para o arquivo de log. Se a compresso usada
for a padro, a extenso ser .gz.

ifempty - Rotaciona os logs mesmo quando vazios.

include [file or directory] - Indica outros arquivos de configurao ou diretrios que


tenham arquivos de configurao para o logrotate.

59
Apostila Debian Intermedirio - Desktop Parana

mail - envia um email com logs extintos.

mailfirst - envia um email com os logs rotacionados.

maillast - envia um email com os logs que sero rotacionados, os logs originais.

missingok - no enviar mensagem de erro no caso de um arquivo de log no existir.

monthly - rotaciona os logs mensalmente.

nocompress/nocopy/nocopytruncate/nocreate/nodelaycompress/nomail- negati-
vas aos comandos correspondentes.

nomissingok/noolddir/nosharedscripts/notifempty - negativas aos comandos cor-


respondentes.

olddir [directory] - guardar as verses rotacionadas em outro diretrio.

postrotate/endscript - comandos a serem executados aps a rotao do log.

prerotate/endscript - comandos a serem executados antes da rotao do log, caso


o log seja rotacionado.

firstaction/endscript - comandos a serem executados imediatamente antes dos pre-


rotates comandos.

lastaction/endscript - comandos a serem executados depois daqueles invocados


atravs do -postrotate.

rotate - comando para rotacionar os logs.

size - rotacionar os logs quando ultrapassarem o tamanho indicado.

sharedscripts - postrotate e prerotate sero executados para cada log que tenha a
mesma identificao. Este comando faz com que sejam executados apenas uma vez.

start - inclui um nmero para a base dos logs rotacionados, por exemplo: start 0 -
log.0.

tabooext [+] list - mudar a lista de extenses taboo.

weekly - rotacionar semanalmente.

60
Apostila Debian Intermedirio - Desktop Parana

CRON
O cron um servio, carregado durante o processo de boot, que possibilita a programao
de execuo de processos e comandos para serem realizadas periodicamente5. um recurso fun-
damental para automatizao da administrao do sistema e em outros casos onde se faz neces-
srio o agendamento de execuo de uma determina atividade.

Podemos utilizar o cron basicamente para duas finalidades: para permitir aos usurios o
agendamento da realizao das suas tarefas desejadas; e para o agendamento de tarefas do sis-
tema diariamente, semanalmente ou mensalmente.

No processo de instalao do sistema so criados, por padro, alguns diretrios especiais


que usados na configurao de tarefas a serem executas pelo cron. So estes diretrios:

/etc/cron.d
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

Com exceo do diretrio /etc/cron.d, podemos utilizar esses diretrios para incluir tarefas
a serem executadas no intervalo de tempo conforme o nome de cada diretrio (daily = dirio,
hourly = horaria, monthly = semanal e weekly = mensal). Para isto basta copiarmos o script dese-
jado com permisso de execuo dentro de um dos diretrios conforme periodicidade desejada
para execuo do script. Por exemplo, se colocarmos um script dentro do diretrio /etc/cron.-
hourly esse script ser executados de hora em hora.

O s horrios e datas de execuo desse script dentro desses diretrios, apesar de co-
munmente no haver a necessidade, podem ser alterados no arquivo /etc/crontab.

Uma outra forma de utilizao do cron atravs da edio do arquivo /etc/crontab. Atravs
deste arquivo podemos agendar uma tarefa para ser executada especificando o exato momento
que queremos para execuo assim como qual usurio ir execut-la.

C omumente este arquivo s utilizado para agendamento de tarefas a serem execu-


tadas pelo root.

Para agendar uma nova tarefa, basta editar o arquivo /etc/crontab com qualquer editor de
texto (como o pico ou vi) e definir as configuraes desejadas para execuo da tarefa. Para
isso deve ser obedecido o seguinte formato em sua sintaxe:

5 O que possibilita a execuo dos comandos nas datas e horrios especificados o daemon do cron, que acionado
de minuto em minuto para verificao da existncia de novas atividades a serem executadas.

61
Apostila Debian Intermedirio - Desktop Parana

[minutos] [horas] [dias do ms] [ms] [dias da semana] [usurio] [comando]

Conforme mostramos no exemplo abaixo:

52 18 1 * * root runparts report


/etc/cron.montly
| | | | | | |
| | | | | | \_Comandoqueserexecutado
| | | | | |
| | | | | \_UIDqueexecutarocomando
| | | | |
| | | | \_Diadasemana(07)
|| | | |
| | | \_Ms(112)
| | |
| | \_DiadoMs(131)
| |
| \_Hora(023)
|
\_Minuto(059)

O preenchimento de cada campo feito da seguinte maneira:

Minutos: informe nmeros de 0 a 59;

Horas: informe nmeros de 0 a 23;

Dias do ms: informe nmeros de 0 a 31;

Ms: informe nmeros de 1 a 12;

Dias da semana: informe nmeros de 0 a 7;

UID (Usurio): o usurio que vai executar o comando (no necessrio especifi-
c-lo se o arquivo do prprio usurio for usado);

Comando: a tarefa que deve ser executada.

N os comandos a serem executados podem ser usados os parmetros normais de uti-


lizao na linha de comando.

A ordem dos valores indica o nome correspondente do campo. Por exemplo, no campo ms,
1 a 12 quer dizer de "Janeiro a Dezembro". No caso de dias da semana, 0 a 6 quer dizer de "Do -
mingo a Sbado". O nmero 7 tambm pode ser usado. Neste caso, assim como o nmero 0, o 7
equivale ao dia de "Domingo".

O caractere * utilizado para especificar constncia na execuo, por exemplo se no lugar


de especificao do horrio utilizarmos * a tarefa ser executada de hora em hora.

62
Apostila Debian Intermedirio - Desktop Parana

Tambm pode informar intervalos no preenchimento, separando os nmeros de incio e fim


atravs de (hfen), assim como utilizar vrgula para uma listagem de nmeros. Por exemplo, se
quisermos que uma determinada tarefa seja executada pelo root s 9 horas e 30 minutos dos dias
10, 12, 25, 26, 27, 28 e 29 de todos os meses independente de qual seja o dia da semana deve-
mos configurar o arquivo /etc/crontab da seguinte forma:

**10,12,2529**rootcomando
|||||||
||||||Comando
|||||Usurio
||||DiadaSemana
|||Ms
||Dias
|Hora
Minuto

Aps criarmos um novo agendamento de tarefa a ser realizada no necessrio reiniciar o


daemon do cron, porque ele verifica seus arquivos a cada minuto.

N
do.
unca podemos esquecer de incluir uma linha em branco no final do arquivo, pois
caso contrrio o ltimo comando listado no arquivo /etc/crontab no ser executa-

Atravs do comando crontab tambm podemos editar o arquivo individual do usurio para
agendamento de tarefas. Para isso basta digitarmos o comando:

crontabe

Ser aberta uma janela onde poderemos configurar as tarefas de acordo com a nossa ne-
cessidade. A Sintaxex a ser utilizada para essa configurao a mesma utilizada para configurar
o arquivo /etc/crontab (vista anteriormente) apenas no sendo necessrio especificar o usurio,
pois nesse caso caso a tarefa ser executada pelo usurio dono do arquivo.

Para visualizarmos as tarefas agendadas para o usurio basta utilizarmos o comando:

contabl

Para removermos o arquivo individual do crontab, removendo assim todas as tarefas agen-
dadas, atravs do comando:

crontabr

Para removermos somente uma tarefa devemos fazer atravs da edio (contrab -e) do ar-
quivo.

63
Apostila Debian Intermedirio - Desktop Parana

COMANDOS

ALIAS
Sintaxe: alias <apelido>='<comando_linux>'

N o deve existir espaos antes e depois do = e, caso o <comando_linux> tenha


mais de uma palavra, ele deve vir entre aspas simples.

Muitas vezes durante execuo de determinadas tarefas atravs da linha de comando nos
deparamos com comandos extensos em que temos que utilizar vrios parmetros, e dependendo
do que estamos fazendo ainda temos que repetir este comando com todos estes parmetros com
uma certa frequncia. Para facilitar esse tipo de situao podemos utilizar o comando alias.

Este comando permite criarmos uma espcie de apelido para os comando e programas.
Com ele podemos atribuir um apelido para um comando que receba diversos parmetros e a partir
de ento fazermos a chamada do comando atravs do apelido criado.

Por exemplo, eu sempre utilizo o comando ls com os parmetros -lh para exibir o conte-
do dos diretrios em forma de lista com o tamanho dos arquivos exibidos num formato mais inteli-
gvel. Ao invs de sempre digitar o comando e os parmetros posso criar um alias que facilite o
uso do comando atravs do comando abaixo mostrado.

aliasll='lslh'

Aps executarmos este comando poderemos listar o contedos de um diretrio em forma de


lista e com o exibio do tamanho dos arquivos de forma inteligvel com o agora comando ll.Este
comando criado atravs do alias poder ser usado no bash que estiver em execuo, caso
este bash seja fechado ou um outro seja aberto, dentro do prprio bash, o comando (apelido)
criado deixar de existir.

Para removermos um alias criado devemos utilizar o comando unalias <nome do alias>
como mostra o exemplo abaixo:

unaliasll

Para removermos todos os alias criado de uma s vez basta utilizarmos o comando com o
parmetro -a, como no exemplo abaixo:

unaliasa

Para criarmos um alias de forma definitiva, que no precise ser refeito quando um novo
bash for iniciado devemos configur-lo atravs de um dos arquivos de configurao do bash.

64
Apostila Debian Intermedirio - Desktop Parana

Temos trs tipos de alias definitivos possveis do configurao:

O alias que configurado somente para o usurio corrente atravs do arquivo


.bashrc que encontra-se no home de cada usurio6. Segue abaixo trecho do arquivo de
configurao .bachrc individual dos usurios.

#Aliasdefinitions.
#Youmaywanttoputallyouradditionsintoaseparatefilelike
#~/.bash_aliases,insteadofaddingthemheredirectly.
#See/usr/share/doc/bashdoc/examplesinthebashdocpackage.

#if[f~/.bash_aliases];then
#.~/.bash_aliases
#fi

#enablecolorsupportoflsandalsoaddhandyaliases
if[x/usr/bin/dircolors];then
eval"`dircolorsb`"
aliasls='lscolor=auto'
aliasdir='dircolor=auto'
aliasvdir='vdircolor=auto'

aliasgrep='grepcolor=auto'
aliasfgrep='fgrepcolor=auto'
aliasegrep='egrepcolor=auto'
fi

#somemorelsaliases
aliasll='lslh'
aliasla='lsA'
aliasl='lsCF'

O alias que configurado para todos os usurios do sistema atravs do arquivo


/etc/bash.bashrc. Segue abaixo trecho do arquivo bash.bachrc de configurao para to-
dos os usurios.

#enablebashcompletionininteractiveshells
if[f/etc/bash_completion];then
./etc/bash_completion
fi

#aliasparatodososusurios
aliasaa='echo"funcionou"'
aliasinstala='sudoaptgetinstall'

O alias que configurado para o root atravs do arquivo .bashrc que encontra-se

6 Em alguns casos o arquivo .bashrc pode no existir no home de algum usurio, sendo ento necessria sua
criao.

65
Apostila Debian Intermedirio - Desktop Parana

dentro da pasta /root7. Segue abaixo trecho do arquivo .bachrc do root.

#enablecolorsupportoflsandalsoaddhandyaliases
if[x/usr/bin/dircolors];then
eval"`dircolorsb`"
aliasls='lscolor=auto'
aliasdir='dircolor=auto'
aliasvdir='vdircolor=auto'

aliasgrep='grepcolor=auto'
aliasfgrep='fgrepcolor=auto'
aliasegrep='egrepcolor=auto'
fi

#somemorelsaliases
aliasll='lsl'
aliasla='lsA'
aliasl='lsCF'

#Somemorealiastoavoidmakingmistakes:
aliasrm='rmi'
aliascp='cpi'
aliasmv='mvi'

P ara configurarmos um alias nos arquivos de configurao devemos utilizar a mes-


ma sintaxe utilizada na linha de comando.

BC
O comando bc utilizado para realizar clculos. Pode ser utilizado por linha de comando ou
atravs de sua interface interativa. O bc no exatamente uma calculadora mas sim uma lingua-
gem para clculos, que lembra vagamente a linguagem C. Algumas de suas caractersticas so:
permitir apresentar os resultados dos clculos com at 99 dgitos decimais antes e depois do pon-
to decimal, no haver a necessidade de uma interface grfica para sua utilizao, sua sintaxe ser
bem simples quase idntica a sintaxe utilizada na funo calculadora do google para clculos sim-
ples, permite utilizar construes como 'if', 'for', 'while', permite interao com o usurio alm de
permitir o uso de "programas" escritos para o 'bc' como se usssemos um shell script.

Para podermos acessar a interface iterativa do comando bc basta na linha de comando digi-
tar o comando, ser aberta a sua interface que utilizaremos para realizao dos clculos como
mostra o exemplo a seguir:

7 Assim como ocorre com o arquivo .bashrc dos usurios, este arquivo pode ser criado caso o mesmo no exista
para o root.

66
Apostila Debian Intermedirio - Desktop Parana

Abaixo seguem as principais operaes bsicas do bc:

Adio (+), subtrao (-), multiplicao (*) e diviso (/).

% (resto da diviso)

^ (potenciao)

sqrt(x) (raiz quadrada de x)

last (ltimo resultado)

quit para sair

$bc
bc1.06
Copyright19911994,1997,1998,2000FreeSoftwareFoundation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
600*400
240000
last+500
240500
last1600
238900
last/20
11945
last^4
20358445623150625
sqrt(last)
142683025
2/3
0
quit

Se repararmos o resultado da ltima operao (2/3=0) temos a impresso de que h algo er-
rado, mas na verdade o que aconteceu que simplesmente no foi carregada uma biblioteca de
operaes matemticas que permite o calculo com nmeros decimais. Para carregarmos esta bi-
blioteca para utilizao com o comando bc basta utilizarmos o parmetro -l.

$bcl
bc1.06
Copyright19911994,1997,1998,2000FreeSoftwareFoundation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
2/3

67
Apostila Debian Intermedirio - Desktop Parana

.66666666666666666666

Podemos tambm definir o nmero de casas decimais que sero usadas com a opo sca-
le.

$bcl
bc1.06.94
Copyright19911994,1997,1998,2000,2004,2006FreeSoftwareFoun
dation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
scale=2
2/3
.66
scale=4;2/3
.6666

A o utilizarmos o comando bc com o parmetro -l alguns comandos matemticos tam-


bm ficam disponveis, so eles;

- s(x): o seno de x (x em radianos)

- c(x): o cosseno de x (x em radianos)

a(x): o inverso da tangente de x (retorna radianos). Se y = tangente de x (tg x), a(y)=x

l(x): o logaritmo natural de x. (ln x)

e(x): a funo exponencial ( e^x ) (exp x)

possvel definirmos funes a partir das definies matemticas, no entanto essas defini-
es sero perdidas que a interface do bc for finalizada. Segue abaixo exemplo abaixo de defini-
o de funo.

$bcl
bc1.06.94
Copyright19911994,1997,1998,2000,2004,2006FreeSoftwareFoun
dation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
definetan(x){returns(x)/c(x)}
tan(1)
1.55740772465490223050
defineln(n){returnl(n);}
definelog(n){returnln(n)/ln(10);}
log(10)
1.00000000000000000000

68
Apostila Debian Intermedirio - Desktop Parana

Para evitarmos o transtorno de termos de sempre termos que refazer as definies toda vez
que iniciamos a utilizao do bc, podemos utilizar o recurso de carregar essas definies de um
arquivo criado por ns. Para isso crie um arquivo com as definies que voc queira implementar.

$vimdefmat.bc

#!/usr/bin/bcl
#inciraasdefiniesdesejadas
defineln(n){returnl(n);}
definelog(n){returnln(n)/ln(10);}
definetan(x){returnsin(x)/cos(x);}

D permisso de execuo ao arquivo criado.

$chmod+xdefmat.bc

Em segida basta utilizar o comando bc indicando que o arquivo criado deve ser carregado.
As funes definidas no arquivo j estaro carregadas e prontas para serem utilizadas.

$bcldefmat.bc
bc1.06.94
Copyright19911994,1997,1998,2000,2004,2006FreeSoftwareFoun
dation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
log(10)
1.00000000000000000000

Como podemos perceber o bc pode ser utilizado como uma calculadora programvel capaz
de trabalhar com a utilizao de funes, definio de variveis, laos de repetio, estruturas
condicionais, etc. A baixo mostraremos um pouco dos conceitos bsicos para utilizao desse re-
curso de programao.

Podemos definir variveis e atribuir um determinado valor a elas atravs do comando:

var=valor

No exemplo acima que o contedo da varivel 'var' como sendo 'valor' que representa um
valor numrico qualquer. Por exemplo: var = 5 define o valor de var como sendo 5.

Uma outra expresso que podemos utilizar :

var+=valor:

Onde da mesma forma que vimos anteriormente 'var' representa o nome da varivel e 'va-
lor' representa um valor numrico qualquer . Essa expresso equivale a:

69
Apostila Debian Intermedirio - Desktop Parana

var=var+valor

Como mostramos no exemplo abaixo

var=10
var+=20

Efetuando as expresses mostradas acima o valor da varivel var fica igual a 30.

A lm da atribuio += para somar ainda podemos utilizar -= para subtrair, *= para


multiplicar e /= para dividir.

Temos tambm os operadores de comparao:

== que define igualdade

x==y

!= que define diferena

x!=y

< que define menor que

x<y

<= que define menor ou igual

x<=y

> que define maior que

x>y

>= que define maior ou igual

x>=y

Temos tambm os operadores &&, || e !. para entendermos estes vamos considerar que
e1 e e2 so 2 expresses numricas.

e1&&e2

Neste caso ser retornado o valor 1 se as 2 expresses forem diferentes de zero. Ou seja
retornar verdadeiro caso ambas as expresses sejam verdadeiras.

e1||e2

70
Apostila Debian Intermedirio - Desktop Parana

Neste caso retornar 1 se qualquer uma das 2 expresses forem diferentes de zero. Ou
seja retornar verdadeiro caso qualquer uma das duas expresses seja verdadeira.

!e1

Neste caso retornar 1 se o resultado da expresso for 0. Ou seja se a expresso for falsa
retornar 1.

Temos que tomar muito cuidado quando criamos as expresses, por exemplo na expresso
x=2<7 ela no equivale a x=(2<7) mas sim a (x=3)<5.

possvel ainda utilizar valores inseridos pelo usurio atravs do comando read() . Como
mostra o exemplo a seguir:

x=read()

O comando acima faz com que o valor digitado pelo usurio seja armazenado na varivel x.

Como vimos anteriormente possvel definir funes para utilizao no bc, para isso basta
utilizarmos o comando define. Para isso devemos utilizar o comando define e entre { } (cha-
ves) que servem para definir o inicio e final do bloco de cdigo que ser executado de uma s vez,
dentro das chaves devemos colocar a combinao de operaes que desejamos.

Dentre os vrios elemento que podemos utilizar num define destacamos:

auto : que serve para definir uma varivel local.

print : que mostra mensagens especificada na tela. (equivalente ao printf em C)

return : que retorna um valor. Esta opo deve ser usada no final da funo, para re-
tornar seu resultado final.

Alm de podermos utilizar as estruturas de condicionamento e repetio.

If: uma estrutura que efetua um teste lgico e de acordo com o resultado do teste executa
uma determinada ao, sua sintaxe :

if (expresso) operao1 else operao2

Se o resultado de 'expresso' no for 0 (falso), ser executada a operao1, seno (se o re-
sultado for falso) ser executa a operao2 (se presente). Segue abaixo um exemplo de utilizao
do if.

if(d>=0){
return(b+sqrt(d))/(2*a);
}

while: uma estrutura de repetio que efetua um teste lgico e executa uma operao at

71
Apostila Debian Intermedirio - Desktop Parana

encontrar o valor 0 (falso) no teste lgico, sua sintaxe :

while (expresso) operao

Nesta estrutura enquanto o resultado do teste lgico realizado na expresso der como resul-
tado 0 (falso), ser executa operao. Tambm pode-se sair do loop executando um comando
'break' dentro dele. Abaixo segue um exemplo:

ultvalor=read()
while(ultvalor!=0){
ultvalor=read()
dados+=ultvalor
contagem+=1
}

No exemplo antes de iniciar o lao de repetio (loop) estamos criando e atribuindo a vari-
vel ultvalor um valor que ser digitado pelo usurio. Em seguida, na estrutura while estamos tes-
tando se o valor digitado pelo usurio for diferente de zero, se este valor for diferente de zero ser
executado o bloco de cdigo existente dentro das chaves e novamente ir efetuar o mesmo teste
lgico at que o usurio digite o nmero 0 (zero), quando isso acontecer o loop ser encerrado
e as demais linhas de cdigo da funo sero executadas.

for: uma outra estrutura de repetio onde a varivel de controle do loop inicializad e in-
crementada junto aos teste lgico, sua sintaxe :

for (inicializao; condio; incremento) { operao }

Nesta estrutura podemos definir, antes de entrar no loop o estado da varivel de contro deo
mesmo esse processo o de inicializao, logo em seguida feito o teste lgico que retornar um
valor 1 (verdadeiro) ou 0 (falso) e enquanto o resultado deste teste lgico for 1 (verdadeiro) sero
executadas as operaes, no incremento podemos definir como vai ser modificado o valor da vari-
vel utilizada no teste do loop. Abaixo segue um exemplo:

for(cont=1;cont<=10;cont++){
printcont
dados+=cont
}

No exemplo acima temos a estrutura de repetio for onde a varivel cont iniciada com o
valor 1 e feito o teste lgico se a varivel cont menor ou igual a 10, enquanto o resultado deste
teste for 1 (verdadeiro) ser executado o bloco de cdigo existente dentro das chaves, aps a
execuo de tudo que houver dentro das chaves ser executado o incremento cont++ que so-
mar 1 ao valor da varivel cont (cont = cont+1) e em seguida efetuar novamente o teste lgico e
novamente executara o bloco de cdigo existente entre as chaves at que a condio testada seja
falsa (neste caso at que cont seja maior que 10).

72
Apostila Debian Intermedirio - Desktop Parana

Uma outra forma de se utilizar o comando bc atravs da linha de comando concatenando-


o sada do comando echo. Como mostram os exemplos abaixo.

$echo"2*93"|bc
15

$echo"log(10)"|bcldefmat.bc
1.00000000000000000000

$x=$(echo"3*5"|bc)
$echo$x
15

Conhecemos um pouco sobre o comando bc vimos como usar os comandos bsicos. Muito
mais poderia ser visto com relao as possibilidades de funes para uso com o bc mas o apro-
fundamento nesta parte depende, do conhecimento em programao e da necessidade de cada
um. Apesar de aparentemente ser um comando no muito interessante pode ser bem til como
uma calculadora programvel e em shell scripts.

LAST
O comando last mostra um registro entrada e sada dos usurios, que so registrados no ar-
quivo binrio de log /var/log/wtmp.

Sintaxe: last <opes>

Quando utilizamos o comando last, por padro exibida a listagem, que vai do mais recente
para o mais antigo, dos registros de entrada e sada de usurios com os seguintes campos:

Nome do usurio

Terminal onde ocorreu o evento

O hostname (para conexes remotas) ou a console (para conexes locais).

A data em que ocorreu o evento (login/logout), a hora de incio do evento (login) e a


hora de finalizao do evento (logout).

Tempo (em Horas:Minutos) que o usurio esteve conectado ao sistema.

C aso o usurio ainda esteja logado no sistema ao invs de trazer a hora de finaliza -
o do evento (hora em que ocorreu o logout) e o tempo que o usurio permaneceu
logado (durao do evento) ser exibida a mensagem still logged in.

73
Apostila Debian Intermedirio - Desktop Parana

Podemos utilizar o comando last passando um argumento, que ser pesquisado como uma
expresso regulares durante a listagem, por exemplo, podemos passar o nome de um determina-
do usurio.

#lastrobsonp
robsonp pts/4 :0.0 TueSep1510:56stillloggedin
robsonp pts/3 :0.0 MonSep1418:45stillloggedin
robsonp pts/3 :0.0 Mon Sep 14 17:01 17:01 (00:00)
robsonp pts/3 :0.0 MonSep1411:1211:12 (00:00)
robsonp pts/2 :0.0 MonSep1409:38stillloggedin
robsonp pts/1 :0.0 MonSep1409:06stillloggedin
robsonp pts/0 :0.0 FriSep1117:41stillloggedin
robsonp tty7 :0 FriSep1116:43stillloggedin
robsonp tty7 :0 FriSep1116:4316:43 (00:00)
robsonp pts/0 10.15.15.32 FriSep 4 08:56 08:57 (00:00)
robsonp pts/0 :0.0 Thu Sep 3 18:15 18:26 (00:10)
robsonp pts/0 10.15.15.32 WedSep 209:2009:25(00:04)
robsonp pts/0 10.15.15.32 Wed Sep 2 09:16 09:17 (00:01)
robsonp tty1 TueSep118:0018:00(00:00)
wtmpbeginsTueSep114:54:312009

No exemplo acima temos todas as atividades de login e logout do usurio robsonp. Na pri-
meira coluna informa o nome do usurio, a segunda informa o terminal acessado, a terceira mos-
tra o hostname/ip das conexes remotas e a console das conexes locais, a quarta coluna apre-
senta o dia da semana, o ms, o dia, a hora de incio e de trmino da conexo 8, e a ltima coluna
trs o tempo total de durao da seo. Podemos ainda utilizar o comando last com os seguintes
parmetros:

-n [num] mostra na listagem somente nmero de linhas passada com o parmetro, a partir
do incio da listagem.

-R faz com que no seja exibido, na listagem, o campo hostname.

-a faz com que o campo hostname seja exibido na ltima coluna.

-d consulta o DNS para resolver os IP remotos exibindo assim, quando possvel, o nome
DNS, no lugar do endereo IP.

-i fora para que seja mostrado o endereo IP ao invs do nome DNS nas conexes remo-
tas.

Segue abaixo alguns exemplos de utilizao do comando last.

#lastarobsonp
robsonp pts/4 TueSep1510:56stillloggedin :0.0
robsonp pts/3 MonSep1418:45stillloggedin :0.0

8 As conexes no encerradas apresentam a mensagem still logged in no lugar da hora de encerramento e do tempo
de acesso.

74
Apostila Debian Intermedirio - Desktop Parana

robsonp pts/3 MonSep1417:0117:01(00:00) :0.0


robsonp pts/3 MonSep1411:1211:12(00:00) :0.0
robsonp pts/2 MonSep1409:38stillloggedin :0.0
robsonp pts/1 MonSep1409:06stillloggedin :0.0
robsonp pts/0 FriSep1117:41stillloggedin :0.0
robsonp tty7 FriSep1116:43stillloggedin :0
robsonp tty7 FriSep1116:4316:43(00:00) :0
robsonp pts/0 FriSep408:5608:57(00:00) 10.15.15.32
robsonp pts/0 ThuSep318:1518:26(00:10) :0.0
robsonp pts/0 WedSep209:2009:25(00:04) 10.15.15.32
robsonp pts/0 WedSep209:1609:17(00:01) 10.15.15.32

wtmpbeginsTueSep114:54:312009

No exemplo acima foi usado o parmetro -a para que a coluna com os hostnames fosse
apresentada como a ltima coluna da listagem, facilitando assim sua identificao.

#lastn2robsonp
robsonp pts/4 TueSep1510:56stillloggedin :0.0
robsonp pts/3 MonSep1418:45stillloggedin :0.0
wtmp begins TueSep114:54:312009

No exemplo acima utilizamos a opo -n 2 para que s fossem exibidas as 2 (duas) primei-
ras linas da listagem.

#lastRrobsonp
robsonp pts/4 TueSep1510:56stillloggedin
robsonp pts/3 MonSep1418:45stillloggedin
robsonp pts/3 MonSep1417:0117:01(00:00)
robsonp pts/3 MonSep1411:1211:12(00:00)
robsonp pts/2 MonSep1409:38stillloggedin
robsonp pts/1 MonSep1409:06stillloggedin
robsonp pts/0 FriSep1117:41stillloggedin
robsonp tty7 FriSep1116:43stillloggedin
robsonp tty7 FriSep1116:4316:43(00:00)
robsonp pts/0 FriSep408:5608:57(00:00)
robsonp pts/0 ThuSep318:1518:26(00:10)
robsonp pts/0 WedSep209:1609:17(00:01)

wtmpbeginsTueSep114:54:312009

No exemplo acima utilizamos o parmetro -R para que fosse excluda, na exibio da lista-
gem, a coluna com os hostnames. Esta opo muito utilizada nos casos onde s h conexes
locais na mquina.

LASTLOG
Este comando mostra informaes referentes ao ultimo login dos usurios cadastrados no

75
Apostila Debian Intermedirio - Desktop Parana

sistema. Essas informaes vem numa listagem que apresenta o nome usado no login, o termi-
nal onde ocorreu a conexo e a hora da ltima conexo. Para obteno dessas informaes o co-
mando lastlog pesquisa no arquivo /var/log/lastlog.

Sintaxe: lastlog <opes> <argumentos do parmetro>9

N os casos o usurio nunca chegou a efetuar login na mquina, mostrada, na colu-


na de ultima conexo, a mensagem ** Nunca logou**.

#lastlog
NomedeUsurioPortaDeltimo
robsonppts/010.15.15.32SexSet408:56:3403002009
faustomarinho**Nuncalogou**
rodrigosl**Nuncalogou**
fcamargopts/3ecelepar11940SexSet1111:09:3803002009
jmmoura**Nuncalogou**

No exemplo acima temos a sada do comando lastalog sem ter sido passado nenhum par-
metro, o resultado uma listagem dos usurios cadastrados para login na mquina em uso, com o
terminal onde ocorreu o login, o hostsname a partir de onde foi feito o login e a data e hora do lti-
mo login.

Podemos passar como parmetros para este comando as opes:

-u <usurio> exibe informaes referentes apenas ao usurio especificado. Tambm


possvel passarmos como argumento para este parmetro um nmero de UID ou um range de
UID's a ser consultado.

-t <dias> exibe informaes referentes aos ltimos logins dos usurios nos ltimos x dia.
Onde x representa o nmero passado junto ao parmetro -t.

-b <dias> exibe somente as informaes referentes ao ltimo login dos usurios cadastra-
dos mais antigos que a quantidade de dias especificadas junto ao parmetro -b.

Segue abaixo um exemplo de utilizao do comando lastlog.

#lastlogu10002000
NomedeUsurioPortaDeltimo
anapalmeira**Nuncalogou**
bpedrassani**Nuncalogou**
capaverde**Nuncalogou**
carmenb**Nuncalogou**
celia**Nuncalogou**
dsvieira**Nuncalogou**

9 Os argumentos s precisam serem passados se o parmetro utilizado requerer.

76
Apostila Debian Intermedirio - Desktop Parana

edeval**Nuncalogou**

No exemplo acima esto sendo listados as informaes referentes aos usurios que possu-
em UID que vo de 1000 (mil) a 2000 (dois mil). Neste caso todos os usurios listados nunca efe-
tuaram login na mquina em uso.

NEWUSERS
Com o comando newusers podemos criar vrios usurios de uma nica vez, atravs de uma
relao de usurios existentes num arquivo. Ao utilizarmos este comando, o usurio inserido no
arquivo passwd, a senha criptografada e inserida no arquivo shadown e o diretrio pessoal do
usurio (/home/<usurio>) criado.

Sintaxe: newusers <arquivo>

O arquivo com os usurios a serem criados que ser apontado para uso com o comando
newusers deve ter a seguinte estrutura:

user_name:senha:uid:gid:comentrio:diretorio_pessoal:/bin/bash
Segue abaixo um exemplo de arquivo Usuarios.txt configurado corretamente para insero
de vrios usurios:

joao:filho:1010:1010::/home/joao:/bin/bash
maria:naosei:1011:1011::/home/maria:/bin/bash
administrador:@dminstrador:1012:1012::/home/administrador:/bin/bash

Para usarmos o comando newusers para insero dos usurios constantes no arquivo aci-
ma descrito (Usuarios.txt) basta usarmos o comando abaixo:

#newusersusuario.txt

Executando este comando os usurios nele contidos sero criados, e inseridos nos grupos
no arquivo referenciados, caso os grupos no existam os mesmo sero criados, e o diretrio pes-
soal do usurio tambm ser criado.

STAT
O comando stat uma ferramenta extremamente til para extrair informaes de arquivo e
sistemas de arquivos.

Sintaxe: stat [opes] [arquivo]

As opes do comando stat so:

-L esta opo faz com que o link seja seguido para exibio das informaes, ou seja,
quando utilizamos esta opo na consulta de um link so exibidas as informaes referentes ao

77
Apostila Debian Intermedirio - Desktop Parana

arquivo que o link referencia.

-f esta opo faz com que sejam exibidas as informaes referentes ao sistema de arqui-
vos no qual pertence o arquivo consultado invs de trazer informaes sobre o arquivo.

-t esta opo faz com que as informaes sejam exibidas de forma concisa.

-c '<opes>' esta opo permite que seja passados parmetros para definio do forma-
to da sada deste comando, inserindo sempre uma nova linha ao trmino da exibio das informa-
es.

--printf ',opes>' esta opo similar a opo anterior (-c), diferente apenas no fato de
que esta opo permite a utilizao de caracteres de escape e de que aps a exibio das infor-
maes, por padro, no inserida uma nova linha.

A seguir temos as principais opes que podem ser passadas como parmetro com as op-
es -c e --printf, essas opes no so vlidas para exibio de informaes referentes a sis-
temas de arquivos.

%a Exibe as permisses do arquivo no modo octal

%A Exibe as permisses do arquivo no modo texto

%b Exibe o nmero de blocos utilizados para alocao do arquivo

%B Exibe, em bytes, o tamanho dos blocos listados pela opo %b

%F Exibe informaes sobre o tipo de arquivo

%g Exibe o GID do arquivo

%G Exibe o nome de do grupo do arquivo

%h Exibe o nmero de hardlinks

%i Exibe o nmero do Inode do arquivo

%n Exibe o nome do arquivo especificado no comando

Exibe o nome do arquivo especificado no comando exibindo,para os links sim-


%N
blicos, informaes sobre o arquivo de referncia

%s Exibe o tamanho do arquivo em bytes

%u Exibe o UID do dono da pasta

%U Exibe o nome do dono do arquivo

%x Exibe a data e hora do ltimo acesso ao arquivo

%y Exibe a data e hora da ltima alterao realizada no arquivo

78
Apostila Debian Intermedirio - Desktop Parana

A seguir temos as principais opes que podem ser passadas como parmetro om as op-
es -fc e -f --printf na obteno de informaes sobre o sistema de arquivos.

%b Exibe o total de blocos de dados no sistema de arquivos

%f Exibe o total de blocos livres no sistema de arquivos

Exibe o comprimento mximo para os nomes de arquivos e pastas suportado


%l
pelo sistema de arquivos

%T Exibe o tipo do sistema de arquivos

A seguir temos alguns exemplos de utilizao do comando stat:

~#statlinkSimbolico
File:`linkSimbolico'>`test'
Size:4Blocks:0IOBlock:4096link
simblico
Device:802h/2050dInode:51764907Links:1
Access:(0777/lrwxrwxrwx) Uid:( 0/ root) Gid:( 0/
root)
Access:2009101411:08:41.3936620800300
Modify:2009101410:41:18.3376619200300
Change:2009101410:41:18.3376619200300
~#statLlinkSimbolico
File:`linkSimbolico'
Size:28Blocks:8IOBlock:4096arquivo
comum
Device:802h/2050dInode:51476276Links:1
Access:(0644/rwrr) Uid:( 0/ root) Gid:( 0/
root)
Access:2009091416:53:48.0269422400300
Modify:2009091416:53:34.2309431600300
Change:2009091416:53:34.2309431600300

Nos exemplos acima estamos, primeiro, utilizando o comando stat para exibir as informa-
es referentes ao arquivo linkSimbolico e, baseado nas informaes retornadas, percebemos
que se trata de um link simblico. No segundo comando utilizamos a opo -L para que fossem
exibidas as informaes referentes ao arquivo que o link simblico esta apontando.

~#statflinkSimbolico
File:"linkSimbolico"
ID:80200000000Namelen:255Type:xfs
Blocksize:4096Fundamentalblocksize:4096
Blocks:Total:3903243Free:2527451Available:2527451
Inodes:Total:15623168Free:15468876

Neste outro exemplo, utilizamos a opo -f para que fossem exibidas as informaes refe-
rentes ao sistema de arquivos que o arquivo linkSimbolico pertence, ao invs de trazer as infor-

79
Apostila Debian Intermedirio - Desktop Parana

maes referentes ao arquivo.

~#statc'Arquivo=%n;Permisses=%a;Dono=%U;Grupo=%G'teste
Arquivo=teste;Permisses=644;Dono=robsonp;Grupo=root

No exemplo acima, utilizamos o comando stat com o parmetro -c para personalizarmos a


sada do comando sendo que o %n para mostrar o nome do arquivo, %a para mostrar as per-
misses no modo octal, %U para mostrar o dono do arquivo e %G mostrar o grupo do arquivo.

~# stat printf 'Arquivo=%n\nPermisses=%a\nDono=%U\nGrupo=%G\n'


teste
Arquivo=teste
Permisses=644
Dono=robsonp
Grupo=root

No exemplo acima, utilizamos o comando stat de forma similar ao exemplo anterior s desta
vez alterando o parmetro -c por --printf e inserindo o caractere de escape \n para que as in-
formaes fossem exibidas uma em cada linha. Tanto neste exemplo quanto no anterior optei por
escrever, antes de passar o parmetro, um texto indicativo da informao apresentada. Esse texto
indicativo opcional.

CONVERT
Este comando faz parte do pacote imageMagick, ele possibilita a converso de imagem en-
tre os principais formatos de imagem (.png , .jpg, .gif, ...). Alm converter as imagem o convert
possibilita a aplicao de uma grande quantidade de efeitos e at mesmo a criao de imagens.
Sua sintaxe :

$convert<arquivoorigem><opes><arquivodestino>

Abaixo mostraremos algumas das vrias possibilidades que o comando nos traz.

Imagine a seguinte situao, voc tem uma pasta com vrias imagens, por exemplo, no for-
mato .jpg e voc deseja criar um catlogo em PDF para apresentao dessas imagens de forma
mais organizada. Com o comando convet conseguirmos criar este catlogo de forma simples e r-
pida, para isso basta, na pasta onde esto as figuras, digitarmos na linha de comando:

$convert*.jpgcatalogo.pdf

Uma outra possibilidade para este comando seria na verso de entre os principais formatos
de imagens por exemplo, para convertermos um arquivo .jpg para .png basta:

80
Apostila Debian Intermedirio - Desktop Parana

$convertarquivo.jpgnovoArquivo.png

Tambm possvel utilizarmos o comando convert para redimensionarmos uma imagem


atravs da opo -resize. Para reduzirmos o tamanho de uma imagem na metade basta:

$convertarquivo.pngresize50%arquivoreduzido.png

Figura 7: Exemplo resultado de uso do comando convert


Para obtermos mais informaes sobre as possibilidades de uso do comando convert po-
dem ser encontradas no manual do comando.

CONVMV
Existem diferentes tipos de padres de codificao de caracteres que podem ser aplicados
aos arquivos. Sendo os dois mais utilizados o iso-8859-1 e UTF-8. Alguns sistemas operacionais
mais antigos (windows xp e kurumin so alguns deles) utilizam o sistema de codificao, reconhe-
cido pelos padres internacionais como sendo do ocidente europeu, iso-8859-1 (este padro tam-
bm usado no Brasil), mas um novo padro comeou a ser utilizado por vrias distribuies e
sistemas operacionais (debian, ubuntu e Windows Vista so exemplos) esse novo padro o
UTF-8, que considerado por muitos como a nova padronizao internacional. E justamente a
co-existncia desses dois padres de codificao que acabam causando os problemas com ca-
racteres especiais (palavras acentuadas no corpo e no nome dos arquivos). Um arquivo criado
sobre codificao iso-8859-1 aparece com caracteres acentuados totalmente errados em um sis-
tema configurado para entender a codificao UTF-8, e vice-versa.

O comando convmv serve para resolvermos esse problema de codificao do nome dos
arquivos. Pois com ele, podemos converter o nome dos arquivos do formato iso-8859-1 para
UTF-8 ou vice e versa. Sua sintaxe :

$convmv<opes><arquivosoudiretrios>

Para podermos converter o nome de um arquivo ou diretrio devemos dizer qual a codifica-
o atual, qual a codificao desejada e qual o arquivo ou diretrio. Como mostra o exemplo abai-
xo:

$convmvfiso88591tutf8relat?orio.txt

No exemplo acima a opo -f o parmetro utilizado para passar qual a codificao atual,
e o parmetro -t permite passarmos para qual codificao queremos alterar o arquivo. Quando

81
Apostila Debian Intermedirio - Desktop Parana

inserirmos o nome do arquivo substitumos o caractere estranho pelo caractere coringa ?. Caso
tivssemos completado o nome do arquivo pressionando a tecla <tab> poderamos tambm ter
deixado o nome do arquivo com caractere que aparecer no terminal.

O Comando acima descrito gerar a seguinte sada:

Startingadryrunwithoutchanges...mv"./relatrio.txt""./rela
trio.txt" No changes to your files done. Use notest to finally
renamethefiles.

Essa sada nos mostra que a alterao pode ser feita sem erros. Aps isso para gravar a al-
terao no arquivo basta repetirmos o comando utilizando a opo --noteste, como mostra
exemplo abaixo.

$convmvfiso88591tutf8relat?rio.txtnotest

ICONV
Como vimos anteriormente quando estudamos o comando convmv, existem vrios padres
de codificao de caracteres o que pode causar problemas na exibio de caracteres especiais
como acentuaes, cedilha, etc.... Com o comando iconv podemos converter a codificao de ca-
ractere de um arquivo para a mesma codificao utilizada no sistema, resolvendo assim o proble-
ma de exibio dos caracteres especiais.

Sintaxe: iconv -f <codificao de origem> -t <codificao de sada> <arquivo>

Quando utilizamos o comando iconv exibido na tela o contedo do arquivo especificado no


comando com a aplicao da codificao de caractere especificada no comando, mas no feita
nenhuma alterao no arquivo original. A seguir segue a visualizao, atravs do terminal, de um
arquivo com a codificao iso-8859-1 num sistema que utiliza a codificao UTF-8.

$cattexto
Debian simultaneamente o nome de uma distribuio no comercial
livre(gratuitaedecdigofonteaberto)deGNU/Linux(amplamente
utilizada)edeumgrupodevoluntriosqueomantmvoltadomun
do. Uma vez que o Debian se baseia fortemente no projecto GNU,
usualmentechamadoDebianGNU/Linux.ODebianespecialmenteconhe
cidopeloseusistemadegestodepacotes,chamadoAPT,quepermi
te:atualizaesrelativamentefceisapartirdeversesrealmente
antigas;instalaesquasesemesforodenovospacoteseremoes
limpasdospacotesantigos.AtualmenteoDebianStable,seencontra
naverso5.0,codinome"Lenny".ODebianStableprocurasempreman
terospacotesmaisestveis,assim,elemantmoGnome2.22eoKDE
3.5porpadro.Ograndefatodeleconterpacotesmaisantigos,ga
rantindoaestabilidade,ograndefocoparaservidores.

Agora vamos utilizar o comando iconv para visualizao do arquivo na codificao correta.

$iconvfiso88591tUTF8texto

82
Apostila Debian Intermedirio - Desktop Parana

Debian simultaneamente o nome de uma distribuio no comercial


livre(gratuitaedecdigofonteaberto)deGNU/Linux(amplamente
utilizada)edeumgrupodevoluntriosqueomantmvoltadomun
do. Uma vez que o Debian se baseia fortemente no projecto GNU,
usualmentechamadoDebianGNU/Linux.ODebianespecialmenteconhe
cidopeloseusistemadegestodepacotes,chamadoAPT,quepermi
te:atualizaesrelativamentefceisapartirdeversesrealmente
antigas;instalaesquasesemesforodenovospacoteseremoes
limpasdospacotesantigos.AtualmenteoDebianStable,seencontra
naverso5.0,codinome"Lenny".ODebianStableprocurasempreman
terospacotesmaisestveis,assim,elemantmoGnome2.22eoKDE
3.5porpadro.Ograndefatodeleconterpacotesmaisantigos,ga
rantindoaestabilidade,ograndefocoparaservidores.

Acima temos a visualizao apresentada anteriormente com a codificao de caractere


como iso-8859-1 convertida para codificao UTF-8. No entanto essa alterao de codificao
no foi gravada no arquivo, simplesmente foi exibida na tela. Para armazenarmos essa alterao
de codificao precisamos utilizar o parmetro -o <nome do arquivo> ou redirecionar para um
novo arquivo. Como mostra os exemplos abaixo:

$iconvfiso88591tUTF8textootexto_utf8
ou
$iconvfiso88591tUTF8texto>texto_utf8

Identificando a codificao de caractere do arquivo e a do sistema


Para identificarmos qual a codificao de caractere de um arquivo podemos utilizar o co-
mando file.

#filetexto.txt
texto.txt:UTF8Unicodetext,withverylonglines

No exemplo acima percebemos que o arquivo texto.txt utiliza a codificao de caractere


UTF-8.

#filetexto
texto:ISO8859text,withverylonglines

No exemplo acima percebemos que o arquivo texto utiliza a codificao de caractere ISO-
8859-1.

Para identificarmos qual a codificao de caracteres que esta sendo utilizada pelo nosso sis-
tema operacional podemos utilizar o comando locale. O antigo charset padro do Linux era o ISO-
8859-1 (tambm conhecido como Latin1). Por isso, quando encontrarmos os parmetros de confi-
gurao pt_BR ou pt_BR.ISO8859-1 so representaes para a codificao de caractere ISO-
8859-1. Se aparecer algo como pt_BR.UTF-8 representa que a codificao de caractere UTF-8.

#locale

83
Apostila Debian Intermedirio - Desktop Parana

LANG=pt_BR.UTF8
LANGUAGE=pt_BR:pt:en
LC_CTYPE="pt_BR.UTF8"
LC_NUMERIC="pt_BR.UTF8"
LC_TIME="pt_BR.UTF8"
LC_COLLATE="pt_BR.UTF8"
LC_MONETARY="pt_BR.UTF8"
LC_MESSAGES="pt_BR.UTF8"
LC_PAPER="pt_BR.UTF8"
LC_NAME="pt_BR.UTF8"
LC_ADDRESS="pt_BR.UTF8"
LC_TELEPHONE="pt_BR.UTF8"
LC_MEASUREMENT="pt_BR.UTF8"
LC_IDENTIFICATION="pt_BR.UTF8"
LC_ALL=

No exemplo acima podemos perceber que a codificao de caracteres utilizada pelo sistema
o UTF-8.

PASTE
Este comando mescla o contedo de dois arquivos em colunas verticais, ou seja, mescla os
arquivos deixando seus contedos lado a lado.

Sintaxe: paste [arquivo 1] [arquivo 2]

A seguir temos opes mais usadas do comando paste:

-d '<caractere>' esta opo separa as colunas com o smbolo (caractere) especificado


dentro das aspas.

-s esta opo faz com que a concatenao seja feita em linhas ao invs de colunas, ou
seja, o contedo dos arquivos sero exibidos em linhas ao invs de colunas.

Temos a seguir alguns exemplos de utilizao do comando paste:

#pasteab
12a
23b
45c
1d
40e
37f

No exemplo acima temos o arquivo a cujo contedo : 12, 23, 45, 1, 40, 37 e um arquivo
b cujo contedo : a, b, c, d, e, f. Utilizamos o comando paste para exibir de forma concatenada
o contedo dos arquivos.

84
Apostila Debian Intermedirio - Desktop Parana

#pasted'@'nomesemail
pedro@yahoo.com.br
marta@gmail.com
vera@hotmail.com
maria@celepar.pr.gov.br

No exemplo acima temos um arquivo nomes que tem como contedo uma relao de no-
mes, e o arquivo email que tem como contedo vrios provedores de e-mail. Foi utilizado o co-
mando paste com o parmetro -d para inserir o caractere @ como separador de colunas.

#pastesa
12234514037

No exemplo acima usamos o mesmo arquivo a utilizado anteriormente, mas desta vez pas-
samos o parmetro -s para que o seu contedo fosse exibido em forma de linha e no de coluna.

#cata|paste
122345
14037

No exemplo acima temos uma outra possibilidade de uso do comando paste. Neste caso es-
tamos utilizando o comando cat para visualizarmos o contedo do arquivo a e concatenamos a
sada desse comando para uso com o comando paste. Foi feito uso do - (trao) possibilita definir
o numero de colunas desejada para exibio do contedo do arquivo. Neste caso utilizamos 3
(trs) - (traos) para que o contedo do arquivo a fosse exibido em 3 (trs) colunas.

CUT
Este comando muito til e, em geral, seu uso ocorre de forma concatenada com outros co-
mandos. O cut permite cortar trechos de colunas de um determinado arquivo ou de uma sada.

Na utilizao do do cut devemos sempre passar algum parmetro determinado o que de-
ver ser exibido de cada coluna consultada, essa determinao pode ser feita, basicamente, pelo
nmero de campos, pelo nmero de bytes ou pelo nmero de caracteres a serem exibidos. A sin-
taxe bsica deste comando :

cutopes...[arquivo]...

Antes de entendermos melhor a utilizao do comando cut vamos conhecer as principais


opes disponveis para utilizao como parmetro do comando.

-b BI-BF: para delimitarmos atravs pelo nmero de bytes, onde BI representa byte inicial e
BF o byte final.

-c CI-CF: para delimitarmos atravs pelo nmero de caracteres, onde Ci representa caracte-
re inicial e CF caractere final.

85
Apostila Debian Intermedirio - Desktop Parana

-d <caractere>: para determinarmos qual caractere ser considerado como delimitador


de campo, onde devemos representar entre aspas duplas ou simples qual ser o caractere delimi-
tador.

-f FI-FF: para determinarmos os campos desejados, onde FI representa campo (coluna) ini-
cial e FF campo (coluna) final.

A s expresses utilizadas com os parmetros acima podem ser utilizadas, tambm


com as seguintes variaes (nas descries a seguir consideraremos N para um
nmero qualquer, utilizaremos como exemplo a opo -f mas estas variaes podem
ser utilizadas tambm para as opes: -b e -c)
-f 2-5,9-11,15: neste exemplo estamos mandando exibir as colunas de 2 a 5 e de 9 a
11 e o 15
-f 5-: neste exemplo estamos mandando exibir todas as colunas a partir da quinta.
-f -3: neste exemplo estamos mandando exibir todas as colunas a partir da primeira
at a terceira.

E m nenhuma das expresses acima citadas obrigatrio o uso das aspas (sendo
que tambm poderiam ter sido utilizadas aspas simples), mas por uma questo de
melhor visualizao do comando sugiro as mesmas sempre sejam utilizadas.

Agora vamos ver alguns exemplos para melhor entendermos a utilizao do comando cut.

Vamos imaginar que por algum motivo estratgico foi solicitado que gerssemos uma lista
de todos os usurios que possam logar numa determinada mquina cuja autenticao local.

Sabemos que as informaes sobre os usurios cadastrados localmente no sistema esto


no arquivo /etc/passwd e que nele tem vrias informaes no relevantes ao que necessitamos
relatar. Para eliminarmos as informaes no desejadas vamos utilizar o comando cut.

Vamos analisar uma linha do passwd para entendermos melhor a sintaxe utilizado com o co-
mando cut. Segue abaixo linha do arquivo /etc/passwd.

parana:x:1000:1000:DesktopParana,,,:/home/parana:/bin/bash

Atravs do exemplo acima podemos reparar que em cada linha do arquivo passwd sempre
temos 7 campos separados por : (dois pontos), ou seja temos um padro na separao (delimita-
o) dos campos. Visto isso esta na hora de usarmos o comando cut para separamos da exibi-
o as colunas no desejadas.

C omo citado anteriormente para usar o comando cut precisamos sempre passar al-
gum parmetro, para isso devemos ter em mente basicamente duas coisas:
-1 Onde vamos cortar, ou seja, qual padro ser utilizado para cortar? (Neste momento
definimos qual das opes ser mais indicada para nossa necessidade, devemos cor-
tar a partir de um determinado nmero de caracteres, devemos cortar por um determina-
do nmero de campos, etc...).

86
Apostila Debian Intermedirio - Desktop Parana

-2 Depois de cortar, o que vamos mostrar? (Aps definido o padro a ser utilizado bas-
ta indicar o que deve ser exibido).

Para o nosso exemplo o mais indicado utilizarmos a delimitao de campos uma vez que
os temos bem definidos atravs dos : (dois pontos). A informao que precisamos esta na primeira
coluna, ou seja, no primeiro campo do arquivo /etc/passwd, considerando isso, podemos utilizar
o comando da seguinte forma:

$cutd:f1/etc/passwd

No comando acima utilizamos o parmetro -d para identificarmos o caractere que delimita-


ria os campos (Corte em cima dos : (d = delimitador)), em seguida utilizamos o parmetro -f
para indicarmos o que deveria ser exibido, no caso somente a primeira coluna (Mostre apenas o
campo (f - field - campo) 1 (um) do arquivo passwd).

V ale observarmos que para que o comando cut funcione corretamente com os par-
metros acima utilizados todas as linhas do arquivo de origem dos dados devem ter o
delimitador definido, no nosso caso todas as linhas devem ter : (dois pontos).

Imagine agora uma outra situao onde voc precisa listar o nome e a verso todos os pa-
cotes que esto completamente instalados em seu sistema. Para ter o resultado esperado ns te-
remos que listar todos os pacotes instalados, filtrar aqueles que esto totalmente instalados e em
seguida recortar as informaes indesejveis e exibir somente o nome e a verso dos pacotes ins-
talados completamente.

Para listarmos todos os pacotes instalados basta utilizarmos o comando:

$dpkgl|grep^ii

Agora nos deparamos com um problema pois utilizando o comando cut conseguimos fazer
exibir ou o nome do pacote ou a sua verso mas no ambas as informaes como necessitamos.
Para resolvermos esta situao basta utilizarmos o cut para armazenarmos estas informaes
em arquivos diferentes e depois unirmos seus contedos.

$dpkgl|grep^ii|cutd''f3>arq1

Com o comando acima ns gravamos o nome dos arquivos completamente instalados no ar-
quivo arq1. Pois com o parmetro -d' ' estamos definindo que o (espao) o delimitador de
campo (coluna) e com o parmetro -f3 estamos definindo que deve ser exibida a terceira coluna.

$dpkgl|grep^ii|cutc42|cutd''f1>arq2

Com o comando acima gravamos as verses dos pacotes instalados no arquivo arq2. Note

87
Apostila Debian Intermedirio - Desktop Parana

que para isso usamos primeiro o parmetro -c 42 para exibir todo o contedo a partir do 42 (qua-
dragsimo segundo) caractere, pois o nmero de (espaos) que temos do final de cada nome
de pacote at o inicio do nmero das verses no homogneo o impossibilita o uso das opes
de campos. Em seguida utilizamos o comando cut com os parmetros -d' ' para definir o delimi-
tador como (espao) e -f1 Para exibirmos somente a primeira coluna (a coluna da verses).

Agora basta unirmos ambos os arquivos num s uma das opes que temos para fazer isso
utilizando comando paste, que estudaremos mais detalhadamente a seguir. Para concluso do
nosso exemplo basta utilizarmos o comando:

$pasted''arq1arq2>lista

O resultado desse comando ser um arquivo com o nome lista que contm a nossa rela-
o com o nome dos pacotes e suas verses. Como mostra abaixo trecho do arquivo.

xnest2:1.4.210
xsane0.9961
xsanecommon0.9961
xserverxorg1:7.3+18
xserverxorgcore2:1.4.210
xserverxorginputall1:7.3+18
xserverxorginputevdev1:2.0.81

DD
A forma mais comum de utilizao do comando dd para copiar blocos de dados de um
dispositivo de armazenamento, tambm podemos utilizar este programa para efetuar algumas
converses em arquivos.

Quando utilizamos o comando dd para efetuarmos uma cpia de um dispositivo e armaze-


namento, todos os dados so copiados a nvel de bloco, no interessando o tipo do sistema de ar-
quivos utilizado no dispositivo. A sintaxe do comando :

ddif=<origem>of=<destino><opes>

Como mostra o exemplo acima aps o comando dd temos o parmetro if= onde especifi-
camos a origem que pode ser um dispositivo (partio) ou um arquivo, em seguida temos o par-
mero of= que assim como o parmetro anterior pode receber a especificao de um dispositivo
ou de um arquivo. Logo aps passamos as opes do comando, sendo que a especificao das
opes facultativa.

Este comando muito til em algumas situaes prticas como por exemplo para limparmos
os dados da MBR, fazermos cpias fiis de uma partio ou at mesmo de um disco inteiro, etc.

Dentre as opes disponveis para serem passada com o comando dd destacamos as op-

88
Apostila Debian Intermedirio - Desktop Parana

es:

bs: atravs desta opo podemos definir o tamanho do bloco que ser copiado, caso esta
opo no seja passada com o comando, ser adotado como tamanho de bloco o valor
padro e 4k. Quando definimos um tamanho de boco obrigatoriamente temos que passar
tambm o parmetro count.

count: esta opo permite determinar a quantidade de blocos que sero copiados. Desta
forma se quisermos copiar uma partio de 10GB, onde definimos que o tamanho do bloco
de 1GB, para copiarmos toda a partio deveramos definir a quantidade de blocos a se-
rem copiados como 10.

conv: este parmetro serve para efetuarmos a converso de arquivos ou parties, junto
com esta opo devemos passar um argumento que definir que tipo de converso ser
realizada. As principais opes so: ascii para converter de EBCDIC para ASCII ; ebcdic
para converter de ASCII para EBCDIC ; lcase para alterar as letras de maisculas para mi-
nsculas e ucase para alterar as letras de minsculas para maisculas .

Segue abaixo alguns exemplos de utilizao do co,mando d.

Para fazermos um backup da MBR podemos utilizar o comando abaixo listado.

ddif=/dev/sdaof=/home/parana/MBR.bkpbs=512count=1

A linha de comando do exemplo acima esta fazendo uma cpia da MBR do disco sda
no arquivo MBR.bkp. O parmetro bs esta especificando o tamanho do bloco a ser copiado e o
parmetro count esta especificando o nmero de blocos a serem copiados.

Para restaurarmos este backup basta efetuarmos este mesmo comando s que trocando o
argumento passado para o of com o argumento passado para o if, como mostra o exemplo
abaixo.

ddif=/home/parana/MBR.bkpof=/dev/sdabs=512count=1

No exemplo acima estamos especificando atravs do parmetro if que a otrigem o arqui-


vo MBR.bkp, com o parmetro of estamos especificando que o destino o dispositivo sda, e
com os parmetros bs e count estamos especificando, respectivamente, o tamanho do bloco a
e a quantidade e blocos a serem copiados.

Uma outra possibilidade seria se quisssemos na restaurao manter as informaes refe-


rentes tabela de partio. Neste caso bastaria, no comando para restaurao, especificar o ta-
manho de bloco como 446k, espao da MBR utilizado para armazenar as informaes de boot.
Como mostra o exemplo abaixo.

89
Apostila Debian Intermedirio - Desktop Parana

ddif=/home/parana/MBR.bkpof=/dev/sdabs=446count=1

T anto o gerenciador de boot quanto a tabela de particionamento do HD so salvos no


primeiro setor do HD, a famosa trilha MBR, que contm apenas 512 bytes. Destes,
446 bytes so reservados para o setor de boot, enquanto os outros 66 bytes guardam a
tabela de partio. (Site Guia do Hardware: fazendo-backup-recuperando-mbr-tabela-
particoes)

Se quisermos limpar a MBR podemos utilizar o seguinte comando:

ddif=/dev/zeroof=/dev/sdabs=512count=1

No exemplo acima estamos preenchendo com o valor zero os primeiros 512 bytes (a MBR)
do disco. O parmetro if=/dev/zero vai preencher o destino indicado, no nosso caso a MBR, com
valores zero.

Um outro uso, no muito comum, para o comando dd com a utilizao das opes de
converso. Imagine por exemplo que temos um arquivo onde o seu contedo esta todo em letras
maisculas e por algum motivo precisamos que este contedo esteja em letras minsculas, pode-
mo utilizar o comando a seguir para fazer a converso.

ddif=arquivoMaiusculaof=arquivoMinusculaconv=lcase

Neste exemplo estamos especificando o arquivo a ser convertido no parmetro if, e no


parmetro of estamos definindo o arquivo que ser criado com seu contedo com letras mins-
culas. A opo conv especifica que ser realizada uma converso e o parmetro lcase especi-
fica que a converso a ser realizada das letras maisculas existentes dentro do documento para
minsculas.

Se voc quiser aprofundar seu conhecimento na utilizao do comando dd consulte seu


manual.

FIND
Como foi visto no curso bsico a principal utilizao do comando find para localizao de
arquivos dentro de um sistema de arquivos. H diversos critrios que podemos usar para melhor
lapidar a busca como por exemplo: nome, tipo, data de modificao, tamanho, proprietrio, etc. Vi-
mos tambm que possvel especificar o local da pesquisa, sendo que quando este no infor-
mado, a pesquisa feita no diretrio atual (que estamos dentro) e seus subdiretrios. A sintaxe
bsica do comando find :

Sintaxe: find <a partir de que local> [parmetro] <dados para os parmetro>

Sendo que conforme a sintaxe apresentada s podemos definir um local para pesquisa, po-

90
Apostila Debian Intermedirio - Desktop Parana

demos usar quantos parmetros forem necessrios para melhor refinar a pesquisa e podemos
passar, de acordo com o parmetro utilizado, uma representao de dados para pesquisa. Segue
abaixo, para reviso, tabela com os parmetros apresentados no mdulo bsico deste curso.

Parmetros Descrio
-name <info> Procura um arquivo ou diretrio que possua estritamente o mesmo nome com a
mesma caixa dos caracteres (case sensitive).
Exemplo: #find / -name Tio Macal <ENTER>
Se existir algum arquivo ou diretrio com o nome tio macal, no ser mostrado
no resultado.
-iname Procura um arquivo ou diretrio que possua estritamente o mesmo nome, mas
permite que a caixa dos caracteres seja diferente (no case sensitive).
Exemplo: #find / -iname Tio Macal <ENTER>
Se existir algum arquivo ou diretrio com o nome tio macal, ele ser mostrado
no resultado.
-size Procura arquivos que possuam um determinado tamanho. Voc pode definir o
tamanho exato do arquivo (o problema que, devido aos arredondamentos dos
nmeros reais, que so quebrados, muito difcil voc encontrar um arquivo pelo
tamanho certo), ou definir se devero ser mostrados arquivos maiores ou menores
que o valor dado ao parmetro.
Exemplo: #find /boot -size +5M <ENTER>
Voc poder procurar por KB (use o k minsculo), MB (use o M) e o GB (use o G).
-maxdepth Define o nmero mximo de nveis que o comando find dever descer para fazer
sua pesquisa. O diretrio que foi definido com ponto inicial assumir o valor de
nvel 1. Cada nvel abaixo dever ser incrementado pelo nmero um.
Exemplo: O arquivo oi.txt est dentro de /curso/1/2/3/4/.
$find /curso/1 -maxdepth 4 -name oi.txt <ENTER> Ir encontrar
/curso/1/2/3/4/oi.txt
$find /curso/ -maxdepth 4 -name oi.txt <ENTER> No ir encontrar, porque ele
parar no diretrio /curso/1/2/3.
-mindepth Define quantos nveis abaixo o comando find dever descer a partir do local
definido como ponto inicial da pesquisa. O nmero que voc coloca ao lado do
parmetro o nmero de nveis abaixo, contando um no diretrio especificado,
que o find dever iniciar a pesquisa.
Exemplo: agora temos o arquivo eita.txt dentro do diretrios /curso/1/2/.
$find /curso/1 -mindepth 3 -name eita.txt <ENTER> Nada ser encontrado.
$find /curso/1 -mindepth 2 -name eita.txt <ENTER> Encontrar.
/curso/1/2/eita.txt
-type Permite que voc pesquise arquivos que sejam somente do tipo que voc venha a
especificar, como diretrios, arquivos especiais de bloco, caracteres, links,
socketes, etc. Voc s poder colocar uma letra por vez.
b = arquivos especiais de bloco
c = arquivos especiais de caractere
d = diretrios
l = link simblico
s = arquivo especial de soquete
p = arquivo especial de pipe
f = arquivos regulares (arquivos normais)
Exemplo: No exemplo abaixo, pedimos ao find que procure todos os arquivos pipe
do computador:
# find / -type p

91
Apostila Debian Intermedirio - Desktop Parana

Parmetros Descrio
/var/lib/gdm/.gdmfifo
/dev/xconsole
/dev/initctl
Podemos acrescentar como parmetro do comando find as opes:

-exec <comando> '{}' \; - este parmetro possibilita a execuo de um comando diretamen-


te no resultado da pesquisa efetuada. Logo aps o parmetro -exec devemos passar o comando
a ser executado, com seus parmetros, logo em seguida, entre aspas simples, devemos abrir e
fechar chaves (que representam o resultado da pesquisa que ser utilizado com o comando) e por
fim ; para especificar o fim do comando a ser executado, lembrando que antes do caractere es-
pecial ; deve ser utilizada a \ para denotar a utilizao do caractere especial ; na linha de co-
mando.

Por exemplo, imagine que temos um servidor com que esta com a partio que contm as
pastas compartilhas da rede quase cheia, e por isso, h a necessidade de limpar (excluir) alguns
arquivos para liberar espao. Detectamos que o compartilhamento de rede publico o que apre-
senta situao mais critica, ento com o comando find identificamos os arquivos que esto utili-
zando mais espao e descobrimos que existem vrios arquivos de mp3 que esto indevidamente
gravados na rede. Nesse caso podemos utilizar o comando find para localizar e j remover todos
os arquivos de mp3 existentes no compartilhamento atravs do comando:

#find/comp/publicotypefiname'*mp3'execrmf'{}'\;

No comando acima especificamos o local de pesquisa como a pasta onde temos o comparti-
lhamento publico especificamos com o parmetro -type que s deveriam ser pesquisados ar-
quivos regulares, com o parmetro -iname especificamos que deveriam ser pesquisados os ar-
quivos que seu nome terminasse com o termo mp3 e atravs do parmetro -exec pudemos
passar o comando rm -f para excluir os arquivos encontrados como resultado da pesquisa.

-and (a) este parmetro possibilita a concatenao de parmetros no refinamento da pes-


quisa, possibilitando a utilizao de dois ou mais critrios como filtro.

Por exemplo, se quisermos localizar todos os arquivos, no nosso /home, que comecem com
a letra a e sejam maiores que 300KB. O comando ficaria:

~$findtypefiname'a*'andtypefsize+300k

O comando acima far com que sejam pesquisados todos os arquivos que comecem com a
letra a (atravs dos parmetros: -type para definir que a pesquisa ser realizada somente entre
os arquivos regulares e -iname para especificar que so os arquivos em que seu nome comece
com a letra a) e que seu tamanho seja maior que 300KB (os parmetros; -type para definir que

92
Apostila Debian Intermedirio - Desktop Parana

a pesquisa ser realizada somente entre os arquivos regulares e -size para especificar somente
os arquivos maiores que 300KB ).

Q uando utilizamos o parmetro -exec junto com o parmetro -and, devemos utili-
z-lo aps o -and pois caso contrrio o comando especificado para execuo atra-
vs do parmetro -exec s ser aplicado ao resultado da pesquisa de acordo com os
primeiros critrios estabelecidos, no sendo consideradas as especificaes de pesqui-
sa definidas aps o parmetro -and.

~$findtypefiname'a*'andtypefsize+100kexecrmf
{}\;

No exemplo acima estamos excluindo da pasta pessoal todos os arquivos que comecem
com a letra a e tenham o tamanho maior que 100 KB. Se tivssemos utilizado o comando da se-
guinte forma:

~$findtypefiname'a*'execrmf{}\;andtypefsize
+100k

Com esse comando teramos apagado todos os arquivos que iniciassem com a letra a e a
informao de que deveria ter o tamanho maior que 100KB seria ignorada.

-or (o) este parmetro permite que sejam utilizados para pesquisa mais de um critrio
para pesquisa simultaneamente.

Por exemplo, se quisermos pesquisar todos os arquivos da minha pasta pessoal que come-
cem com as letras a e b. Para isso o comando ficaria:

~$findtypefiname'a*'ortypefiname'b*'

No exemplo acima o find pesquisou primeiro os arquivos que comeavam com a letra a e
depois os que comeavam com a letra b.

O find trabalha de forma independente com as expresses definidas antes e aps o


parmetro or. Dessa forma quando utilizamos o parmetro -exec junto com o
parmetro -or, devemos especific-lo para cada uma das expresses em que quere-
mos executar o comando.

~$findiname'a*'oriname'b*'execchmod700{}\;

No exemplo acima s sero alteradas as permisses dos arquivos 10 que iniciarem com a le-
tra b, os que iniciarem com aletra a no sofrero nenhuma alterao.

~$findiname'a*'exec700{}\;oriname'b*'execchmod700{}\;

10 Neste caso como no foi especificado o tipo de arquivo atravs do parmetro -type a alterao de permisso
afetar todos os tipos de arquivos que comecem com a letra b, como por exemplo diretrios, links, etc...

93
Apostila Debian Intermedirio - Desktop Parana

No exemplo acima esta sendo aplicada a alterao de permisso a todos os arquivos da mi-
nha pasta pessoa que comecem com as letras 'a' e b.

-atime <Nmero de dias> procura por arquivos que tenham seu ultimo acesso conforme
o nmero de dias passados com o parmetro. Tambm possvel definir para serem mostrados
arquivos com o ultimo acesso superior (+) ou inferior (-) ao nmero de dias passado ao parmetro.

$find/home/robsonp/documentos/atime+2

No exemplo acima sero listados todos os arquivos que tiveram seu ltimo acesso a mais
de 2 (dois) dias.

-ctime <Nmero de dias> - procura por arquivos que tenham sido alterados o nmero de
dias que foi passados com o parmetro. Tambm possvel definir para serem mostrados todos
os arquivos alterados o nmero de dias especificados com o parmetro em relao data atual.
Inserindo antes do nmero de dias + para superio ou - para inferior ao nmero de dias passado
ao parmetro.

$find/home/robsonp/documentosctime1

No exemplo acima sero listados todos os arquivos que foram alterados a menso de 1 (um)
dia.

-printf <opes> - permite especificarmos os termos que sero exibidos no resultado da


pesquisa. Como por exemplo, podemos usar para imprimir somente o nome do arquivo pesquisa-
do e a sua data de alterao, como mostramos a seguir:

~$findctime1printf"%f%c\n"

As opes mais usadas com o parmetro -printf so:

%p mostra o nome do arquivo com o caminho

%m mostra a permisso do arquivo no modo octal

%M Mostra a permisso do arquivo como mostrado com o comando ls

%f mostra o nome do arquivo sem o caminho

%g mostra o nome do grupo do arquivo

%G mostra o gid

%U mostra o uid

%h mostra o nome dos diretrios em que o arquivo esta dentro

%u mostra o nome do dono do arquivo

94
Apostila Debian Intermedirio - Desktop Parana

%c mostra a data de alterao do arquivo

%a mostra tempo de acesso

%AD imprime a data tipo ms/dia/ano (data de acesso)

%AH imprime a hora

%AT hh/mm/ss

%A+ data e tempo separados pro "+"

%Ax mostra a data de representao conforme a localidade (dd/mm/aaaa)

%n Mostra o nmero de hardlinks existentes para um arquivo11

XARGS
O comando xargs utiliza o resultado de um comando enviado sada padro e o utiliza
como argumento na execuo de um outro comando, uma ou quantas outras vezes forem neces-
srias.

O comando xargs no funciona corretamente, podendo apresentar problemas, quan-


do, na sada padro, forem apresentados nomes de arquivos contendo (espao
em branco).

Sintaxe: xargs [opes] [comando]

A seguir temos alguns exemplos de utilizao do comando xargs.

~#lsqw|xargsrmf

No exemplo acima estamos usando o comando xargs para excluir todos os arquivos existen-
tes no diretrio corrente que tenham os mesmos nomes de arquivos que foram retornados pelo
comando ls no diretrio qw. Caso na listagem apresentada na sada padro contenha algum
nome de arquivo no existente no diretrio corrente ser apresentada uma mensagem de erro avi-
sando que o arquivo no pode ser removido por no existir.

Vamos imaginar agora uma outra situao onde queremos remover todos os arquivos do di-
retrio corrente, pertencentes a um determinado usurio. Poderamos, para isso, usar um coman-
do find, da seguinte maneira:

$find.typefuserrobsonpexecrmf{}\;

Com isso, seriam apagados todos os arquivos do usurio robsonp, mas fazendo desta forma
seriam removidos no s os arquivos do usurio robsonp contidos no diretrio corrente, sem afe-

11 Se s existir uma referncia para o contedo do arquivo ser mostrado com este parmetro o valor 1 (um), pois cada
referncia ao contedo de um arquivo considerada pelo sistema como um hardlink.

95
Apostila Debian Intermedirio - Desktop Parana

tar as subpastas, mas tambm os de todos os outros subdiretrios existentes a partir do diretrio
correntes.

Uma opo para solucionar este problema seria a utilizao sa seguinte linha de comando:

$lsl|grep"robsonp"|cutc44|xargsrm

Neste caso, o grep filtraria os arquivos listados com o comando ls -l que pertenciam ao
usurio robsonp. Com o comando cut pegamos somente o nome dos arquivos, que foram passa-
dos ao comando xargs, que fez a ponte para remoo atravs do comando rm. Evitando assim
que fossem removidos os arquivos do usurio robsonp existentes nos subdiretrios.

E ste exemplo foi utilizado com o fim didtico de apresentar a utilizao do comando
xargs, pois possvel realizar esta operao do exemplo somente com o comando
find e seus parmetros12, para isso utilizaramos o comando find com os seguintes par-
metros:
find . -maxdepht 1 -type f -user robsonp -exec rm -f {} \;

FSCK
Sintaxe: fsck <opes> <partio>

O fsck checa a consistncia e repara possveis danos num sistema de arquivos. Muitas ve-
zes, acaba sendo automaticamente executado nos sistemas de arquivos e nem nos damos conta
do que esta acontecendo.

Sempre que por algum motivo ocorra um desligamento incorreto (anormal) do computador,
gerando a deteco de inconsistncia no sistema de arquivos, far com que na prxima vez em
que o sistema for iniciado ser executado o fsck e, na maioria dos casos, automaticamente corrigi-
r os problemas encontrados, tais como corrigir blocos defeituosos, etc.... Mas nos casos com
maiores danos necessrio que seja feita uma checagem manual.

possvel que quando temos um problema de inconsistncia num sistema de arquivos o


sistema operacional no seja inicializado apresentando durante o processo de boot uma mensa-
gem de erro do fsck. Nesse caso ser necessrio logar no sistema no modo single user ou atravs
de um live cd para, atravs da linha de comando executar o fsck para correo dos erros.

recomendado que a partio com o sistema de arquivos em que ser efetuada a


restaurao com o comando fsck esteja desmontada. O sucesso na recuperao dos
arquivos atravs do fsck depende diretamente do sistema de arquivos e sua forma de
funcionamento.

Quando utilizamos o fsck temos como retorno um cdigo que representa o resultado de sua
12 No existe uma real necessidade da utilizao do comando xargs, para execuo de comandos junto ao comando
find.

96
Apostila Debian Intermedirio - Desktop Parana

execuo. Esses cdigos so a soma das seguintes opes:

0 - nenhum erro.

1 - erros do sistema de arquivos corrigidos.

2 - o sistema deve ser reiniciado.

4 - erros do sistema de arquivos no corrigidos.

8 - erro operacional.

16 - erro de uso ou de sintaxe.

128 - erro de biblioteca compartilhada.

Os principais parmetros do fsck so:

-t: esta opo utilizada para especificar qual sistema de arquivos ser checado.

-a: esta opo faz com que os defeitos sejam reparados automaticamente.

-A: utiliza as informaes contidas no arquivo /etc/fstab e tenta verificar todos os sistemas
de arquivos, nele configurados, de uma vez.

-r: esta opo faz com que quando seja encontrada alguma falha, seja solicitada confirma-
o para sua recuperao.

-V: quando utilizamos esta opo a sada do comando fsck apresentada de forma mais de-
talhada.

-N: faz com que seja exibido qual seria o resultado da execuo do comando fsck sem que
as alteraes sejam efetuadas no sistema de arquivos. Simplesmente mostra uma prvia do seria
feito.

-M: esta opo faz com que o fsck no seja executado em parties montadas, retornando
para elas o cdigo de sada 0 (nenhum erro).

-y: esta opo fora para que todas as perguntas durante o processo de restaurao rece-
bam a resposta sim, sem a necessidade da interao do usurio.

Segue a baixo um exemplo de utilizao do fsck.

# fsck -A -N
fsck 1.41.3 (12-Oct-2008)
[/sbin/fsck.xfs (1) -- /] fsck.xfs /dev/sda2
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 /dev/sda1
[/sbin/fsck.xfs (1) -- /home] fsck.xfs /dev/sda4

No exemplo acima o fsck no chegou restaurar as parties listadas. Ele simplesmente re-

97
Apostila Debian Intermedirio - Desktop Parana

tornou que os erros dos sistemas de arquivos seriam corrigidos com exito. No exemplo a seguir o
fsck executado somente para partio sda4.

# fsck -t xfs /dev/sda4 -N


fsck 1.41.3 (12-Oct-2008)
[/sbin/fsck.xfs (1) -- /home] fsck.xfs /dev/sda4

FUSER
Este comando possibilita que sejam visualizados os processos que esto sendo executados
em um determinado diretrio ou arquivo. Alm de visualizar o processo, ele permite tambm que
sejam visualizadas e executadas outras aes como por exemplo visualizar o dono do processo
ou at mesmo matar o processo em execuo. A sintaxe do comando :

Sintaxe: fuser <opes> <Arquivo/Diretrio>

Quando utilizamos o comando fuser sem passarmos nenhuma opo, somente apontando
para um diretrio ou arquivo, temos como retorno o PID de todos os processos em execuo. Na
exibio padro deste comando temos como retorno o PID de cada processo seguido por uma le-
tra, que indica o tipo de acesso, sendo as mais comumente entradas13:

c : diretrio atual (a partir do qual o processo foi inicializado).

e : arquivo sendo executado pelo processo.

r : diretrio raiz do sistema (ponto de inicializao do processo).

A seguir, sero apresentadas as principais opes para utilizao com o comando fuser.

-u: quando utilizada esta opo feita uma identificao do usurio dono de cada um dos
processos listados.

-k: quando utilizamos esta opo alm de exibirmos os processos do arquivo ou diretrios
especificado, efetuada a operao de encerramento de cada um dos processos, ou seja, os pro-
cessos so matados.

-i: esta opo faz com que seja solicitada uma confirmao antes de matar os processos
atravs da opo -k.

-n: esta opo permite visualizar o processo que esta usando uma determinada porta TCP
ou UDP

-v: esta opo faz com que os processos sejam exibidos como uma lista com quatro colunas
com a primeira trs o nome do usurio dono do processo, a segunda coluna trs o PID do proces-
so, a terceira coluna trs as informaes de acesso e a quarta coluna trs o comando que iniciou

13 Mais informaes sobre as letras de identificao de acesso podem ser obtidas no manual do comando (man fuser).

98
Apostila Debian Intermedirio - Desktop Parana

o processo. Segue abaixo exemplo de retorno da utilizao do comando fuser com o parmero -v.

#fuserv/bin/bash
USERPIDACCESSCOMMAND
/bin/bash:robsonp4547...e.soffice
robsonp4808...e.bash
root4830...e.bash
robsonp6671...e.bash
root6693...e.bash
robsonp7600...e.bash
root7622...e.bash

possvel tambm utilizarmos o comando fuser para verificarmos o contedo em mais de


um diretrio simultaneamente. Como mostram os exemplos abaixo:

#fuser/bin/bash/usr/bin/soffice
/bin/bash: 4547e 4808e 4830e 6671e 6693e 7600e
7622e7976e
/usr/bin/soffice:4547

No exemplo acima esto sendo listados todos processos vinculados aos arquivos bash e so-
fice. Se executarmos esse mesmo comando passando o parmetro -u como opo junto com o
cada PID apresentado vir tambm o nome do usurio dono do processo.

#fuseru/bin/bash/usr/bin/soffice
/bin/bash: 4547e(robsonp) 4808e(robsonp) 4830e(root)
6671e(robsonp)6693e(root)7600e(robsonp)7622e(root)7976e(rob
sonp)
/usr/bin/soffice:4547(robsonp)

Tambm podemos utilizar dos caracteres especiais para designarmos mais de um diretrio
ou arquivo para exibio dos processos. Como mostra exemplo abaixo:

#fuser/home/*
/home/robsonp: 3126c 3186c 3205c 3207c 3209c 3286c
3288c3289c3349c3452c
/home/teste:3464c3465c

A seguir esse mesmo exemplo s que desta vez com a utilizao do parmetro -v para uma
exibio mais completa.

#fuser/home/*v
USERPIDACCESSCOMMAND
/home/robsonp:robsonp3126..c..xsessionmanag
robsonp3186..c..gnomesettings
robsonp3205..c..metacity
robsonp3207..c..gnomepanel
robsonp3209..c..nautilus

99
Apostila Debian Intermedirio - Desktop Parana

robsonp3286..c..gnometerminal
robsonp3288..c..gnomeptyhelpe
robsonp3289..c..bash
robsonp3349..c..bash
robsonp3452..c..bash
/home/teste:teste3464..c..su
teste3465..c..bash

A seguir um exemplo onde usamos o comando fuser para verificar os processos que esto
utilizando a porta TCP 631.

#fuserntcp22
22/tcp:2217

LSOF
O comando lsof lista todos arquivos, de todos os tipos, que esto abertos por todos os pro-
cessos em execuo no sistema.

Sintaxe: lsof <opes> <argumentos do parmetro>14

Como vimos a utilizao do comando lsof exibe uma lista de todos os arquivos abertos pelos
processos em execuo, essa listagem por padro apresenta nove colunas com as seguintes in-
formaes:

COMMAND nesta coluna sero listados os primeiros 9 (nove) caracteres do nome do co-
mando associado ao processo em execuo que esta utilizando o arquivo listado.

PID como o prprio ttulo j diz, esta coluna lista o PID dos processos.

USER nesta coluna sero listados os nomes dos usurios que iniciaram os processos.

FD nesta coluna apresentado um cdigo que descreve o tipo do arquivo.

TYPE nesta coluna listado o tipo de n associado com o arquivo.

DEVICE nesta coluna mostrado um nmero de dispositivo separado por vrgula para n
de dispositivo de caractere, n de dispositivo de bloco, arquivos regulares e diretrios.

SIZE nesta coluna listado o tamanho do arquivo em bytes.

NODE nesta coluna listado nmero do n de um arquivo local, ou o nmero do inode de


um arquivo em NFS, ou o tipo de protocolo de Internet

NAME nesta coluna apresentado o nome para identificao de cada arquivo.

As principais opes que podem ser passadas como parmetro do comando lsof so:

14 Os argumentos s precisam serem passados se o parmetro utilizado requerer.

100
Apostila Debian Intermedirio - Desktop Parana

+D <diretrio> faz com que lsof procure por todas as instncias do diretrio especificado
no argumento homnimo que esto sendo utilizadas pelos processos do sistema.

-N utilizado para verificar recursos (arquivos, diretrios, etc) que esto sendo utilizados em
uma estrutura de rede baseada em NFS.

-p <PID> permite especificar o PID de um determinado processo para listar todos os recur-
sos (arquivos, diretrios, etc) utilizados por ele.

-u <usurio/UID, ...> verificar os recursos (arquivos, diretrios, etc) em uso por usurios.
Pode-se especificar mltiplos usurios pelo nome de login no sistema ou UID, separados por vr-
gula. preciso ser administrador do sistema para verificar os recursos de outros usurios.

-U permite verificar todos os soquetes Unix que esto em uso no momento.

-g <GID> mostra os arquivos abertos pelo grupo especificado como argumento.

-i <argumento>15 mostra os arquivos abertos por processo referentes s conexes de


rede.

Segue abaixo alguns exemplos de uso do comando lsof :

#lsofurobsonp|head

O comando acima lista todos os arquivos abertos por processos cujo dono o usurio rob-
sonp.

#lsofi:22

O comando acima mostra todos os arquivos referentes a conexes feitas pela porta 22.

PIDOF
O comando pidof retorna o(s) PID(s) de um processo em execuo.

Sintaxe: pidof [opes] [processo]

As opes do comando pidof so:

-s esta opo faz com que seja exibido somente o primeiro PID encontrado.

-x esta opo retorna o PID do shell que est executando o script.

-o [PID] esta opo omite um determinado PID da listagem de sada do comando.

Para exemplificar o uso do comando pidof imagine a seguinte situao: Um servidor esta
com problema numa placa de rede, de forma que necessria sua substituio. efetua sua
substituio e reconfigurao tudo certinho. Mas devido a isso o acesso internet de todo mundo

15 Neste caso, o argumento opcional.

101
Apostila Debian Intermedirio - Desktop Parana

parou de funcionar pelo SQUID. Esse problema j havia ocorrido outras vezes e s foi necessrio
reiniciar o SQUID e tudo volta a funcionar. No entanto ao tentar finalizar o servio (com o comando
/etc/init.d squid stop) temos um retorno de erro dizendo que no possvel finalizar o servio.
Nesse caso podemos utilizar o comando pidof para identificarmos o PID do processo squid e fina-
liz-lo com o comando kill.

#kill9$(pidofgedit)

Outros exemplos de utilizao do comando pidof so:

#pidofbash
17095132261320410651899571115358

No exemplo acima estamos listando os PIDs iniciados pelo bash.

#pidofsbash
17095

Agora repetimos o exemplo anterior mas desta vez passando o parmetro -s para que s
seja exibido o primeiro PID.

NICE
Como sabemos qualquer coisa que executamos, no sistema operacional Debian, gera um
processo e atravs deste processo que feito o controle de utilizao de recursos do computador
(utilizao do processador), em outras palavras, atravs dos processos que feito o controle e a
organizao da fila de processamento.

O simples fato de inicializarmos o sistema operacional j suficiente para criao de vrios


processos e devido ao fato de sempre termos uma enorme quantidade de processos ativos so
necessrios meios que permitam control-los. Para isso, os processos contam com um conjunto
de caractersticas, dentre as quais:

Proprietrio do processo;

Estado do processo (em espera, em execuo, etc);

Prioridade de execuo;

Recursos de memria.

Neste momento vamos nos focar em enter melhor o controle da prioridade de execuo dos
processos, para isso vamos entender como funciona o processamento das informaes. Quando
falamos que um sistema operacional multitarefa, no quer dizer que o processador da mquina

102
Apostila Debian Intermedirio - Desktop Parana

esteja processando duas ou mais tarefas ao mesmo tempo 16. O que acontece que o sistema
operacional estipula um determinado perodo de tempo em que uma determina tarefa processa-
da e passado esse intervalo de tempo, essa tarefa interrompida e volta para uma fila de proces -
samento e a tarefa da vez, na fila, processada e assim por diante at a concluso do processa-
mento de todas as tarefas, esse ciclo acontece numa velocidade to rpida que d impresso de
que todas as tarefas foram processadas simultaneamente.

Nessa fila de tarefas a serem processadas ns encontramos os processos, e esses proces-


sos podem ter prioridade em relao aos outros em sua execuo. Nesses casos dizemos um
processo tem um nvel de gentileza inferior aos demais. Todo processo em execuo assume um
determinado nvel de prioridade, que por padro zero.

Quando um processo gentil, significa que ele "oferece a gentileza" de permitir que um pro-
cesso com prioridade maior seja executado antes dele. Esses nveis de gentileza, tambm chama-
dos de nice, so determinados atravs de nmeros, onde quanto mais alto for o valor nice, mais
gentil o processo, ou seja, menor sua prioridade de execuo. O intervalo de nmeros usados
no nice o intervalo de nmeros inteiros entre -20 e 19.

O comando nice permite nos permite executar uma determinado processo com sua priorida-
de de execuo alterada, seja ela maior ou menor que sua prioridade padro.

Sintaxe: nice <opes> <comando>

Quando utilizamos o comando nice passando como opo o parmetro -n <valor>, onde o
valor corresponde ao nvel desejado, adiciona o valor especificado prioridade padro de exe-
cuo no sistema para o processo iniciado. Se utilizarmos o comando nice sem passarmos o
parmetro especificando o nvel de prioridade de execuo, ser atribuda ao comando a priorida-
de execuo 10 (dez).

A penas o administrador do sistema, o usurio root, pode definir uma prioridade de


execuo negativa para um processo.

Se utilizarmos somente o comando nice sem passarmos nenhum argumento, exibida a pri-
oridade de execuo de processos padro em uso atualmente no sistema operacional.

$nice
0

No exemplo acima a prioridade de execuo de processos padro em uso no sistema 0


(zero).

Imagine que temos, em nossa mquina, um determinado processo usando 95% do proces-

16 O processador s capaz de processar uma informao por vez.

103
Apostila Debian Intermedirio - Desktop Parana

samento e que este processo ficar rodando por um longo perodo de tempo, e que nesse pero-
do, por algum motivo, voc precise editar o arquivo arquivo.cfg. Ao tentar usar o editor vim para
alterar o arquivo, voc percebe que o editor est extremamente lento. Para evitar essa situao,
possvel executar o editor de texto com o nvel de prioridade de execuo maior do que a do pro-
cesso que esta ocupando 95% do processamento. Para isso basta utilizar o comando abaixo:

#nicen20vimarquivo.cfg

No exemplo acima o comando nice esta sendo usado para dar prioridade mxima para o
processo gerado pelo comando vim na edio do arquivo arquivo.cfg.

RENICE
O comando renice tem a mesma funo que o comando nice, alterar a prioridade de execu-
o de um determinado processo. A diferena que utilizamos o comando nice para alterar a prio-
ridade de execuo dos processos que esto sendo iniciados, enquanto o comando renice utili-
zado para alterara a prioridade de execuo de processos que j esto em execuo.

Sintaxe: renice <prioridade> <opes>

As opes do comando renice so:

-u esta opo permite que seja especificado um usurio de forma que sejam alteradas as
prioridades de execuo de todos os processos desse usurio.

-g esta opo permite que seja especificado um um grupo de forma que sejam alteradas
as prioridades de execuo de todos os processos desse grupo.

-p esta opo permite que seja especificado o PID do(s) processo(s) que sero alteradas
as prioridade de execuo17.

#renice04546

No exemplo acima esta sendo alterada a prioridade de execuo do processo com PID 4546
para 0 (zero).

#renice5urootp49306123

No exemplo acima esto sendo alteradas as prioridades de execuo para -5 (menos cinco)
de todos os processos do usurio root e dos processos com PID 4930 e 6123.

NOHUP
Algumas vezes precisamos executar um comando em background para que continuarmos

17 No obrigatrio o uso da opo -p para passar o PID de um processo para alterao de sua prioridade de
execuo do comando renice.

104
Apostila Debian Intermedirio - Desktop Parana

usando o terminal, em alguns casos pode ser que a execuo desse comando demore e por al-
gum motivo ns podemos precisar encerrar a seo. Nesse caso ao encerrarmos a seo o pro-
cesso que estava em execuo em segundo plano receber um sinal para ser encerrado e no
terminar sua execuo.

S empre que um usurio efetua logout, encerra uma seo, enviado um sinal ( SIG-
HUP ) que termina ou reinicia um processo a todos os processos que este usurio
iniciou, ou seja, que ele seja dono.

Nos casos em que precisamos que um processo seja executado mesmo que sua a seo de
origem seja encerrada, ou seja, mesmo que ns efetuemos logout, podemos utilizar o comando
nohup frente do comando que dever ficar em execuo. Pois o comando nohup faz com que
sejam ignorados os sinais de interrupo de conexo durante a execuo do comando especifica-
do (torna esse comando imune ao sinal SIGHUP). Possibilitando que o comando continue em exe-
cuo mesmo aps o usurio se desconectar do sistema.

Se a sada padro para o comando uma tty, esta sada e o erro padro so redirecionados
para o arquivo nohup.out que ser criado no diretrio onde o comando foi executado, se por al-
gum motivo ele no conseguir criar ou escrever neste arquivo, ele redirecionar para um arquivo
nohup.out que ser criado no home do usurio corrente.

C aso nenhum destes dois arquivos possam ser criados (ou alterados se j existem),
o comando no executado.

Sintaxe: nohup [comando]

Segue abaixo um exemplo de utilizao do comando nohup:

#nohupfind/typefinamesources,list&
[1]16581

LSPCI
Atravs do comando lspci podemos obter informaes detalhadas sobre os barramentos
PCI / AMR / CNR / AGP e os dispositivos que esto plugados nestes barramentos.

Sintaxe: lspci <opes>

Na maioria das vezes identificado o nome correto do controlador de cada dispositivo co-
nectado aos barramentos PCI / AMR / CNR / AGP do computador, no entanto, em alguns casos os
dispositivos podem ser mostrados como Unknow Device, informando que o dispositivo no foi re-
conhecido. Nesses casos podemos usar o script update-pciids, que far o download de um
novo arquivo de definies para ser utilizado pelo comando lspci.

105
Apostila Debian Intermedirio - Desktop Parana

N os casos onde o acesso a Internet passa por um servio de Proxy, necessrio


ajustar a varivel de ambiente http_proxy com as configuraes do proxy (passar
hostname ou IP, a porta e se necessrio usurio e senha) 18 para que assim o script up-
date-pciids consiga acessar a internet funcione corretamente.

A utilizao do comando lspci pode ser incrementada com as opes listadas a seguir:

-v esta opo faz com que sejam exibidas informaes mais detalhadas sobre cada com-
ponente presente no barramento PCI do computador. O grau de detalhamento apresentado por
esta opo pode ser aumentado atravs da repetio duas (-vv) ou trs (-vvv) vezes da letra v.

-n esta opo exibe o cdigo do fabricante e do dispositivo ao invs de exibir seus nomes.

-nn esta opo exibe o cdigo do fabricante e do dispositivo, alm de seus nomes.

-b esta opo faz com que sejam exibidas informaes sobre o hardware e os nmeros de
IRQ utilizados por eles (interessante para descobrir conflitos).

-t esta opo exibe as informaes no formato de arvore.

-d <cd. fabricante>:<cd. Dispositivo> esta opo exibe somente informaes dos dis-
positivos de um determinado fabricante (argumento cd. fabricante), ou ainda de forma mais res-
tritiva, de um determinado dispositivo de um determinado fabricante (definindo os argumentos
cd. fabricante e cd. Dispositivo).

A seguir temos alguns exemplos de utilizao do comando lspci.

#lspci
00:00.0 RAM memory: nVidia Corporation MCP61 Memory Controller(rev
a1)
00:01.0ISAbridge:nVidiaCorporationMCP61LPCBridge(reva2)
00:01.1SMBus:nVidiaCorporationMCP61SMBus(reva2)
00:01.2 RAM memory: nVidia Corporation MCP61 Memory Controller(rev
a2)
00:02.0USBController:nVidiaCorporationMCP61USBController(rev
a3)
00:02.1USBController:nVidiaCorporationMCP61USBController(rev
a3)
00:04.0PCIbridge:nVidiaCorporationMCP61PCIbridge(reva1)
00:05.0Audiodevice:nVidiaCorporationMCP61HighDefinitionAudio
00:06.0IDEinterface:nVidiaCorporationMCP61IDE(reva2)
00:07.0Bridge:nVidiaCorporationMCP61Ethernet(reva2)
00:08.0 IDE interface:nVidia Corporation MCP61 SATA Controller(rev
a2)
00:09.0 PCI bridge:nVidia Corporation MCP61 PCI Express bridge(rev
a2)
00:0b.0 PCI bridge:nVidia Corporation MCP61 PCI Express bridge(rev

18 Uma forma de efetuar essa configuraes atravs do comando export a linha de comando para isso ficaria parecida
com a apresentada no exemplo a seguir: (export HTTP_PROXY='usurio:senha@poxy:porta').

106
Apostila Debian Intermedirio - Desktop Parana

a2)
00:0c.0 PCI bridge:nVidia Corporation MCP61 PCI Express bridge(rev
a2)

No exemplo acima temos a utilizao simples do comando lspci onde como sada tivemos
as informaes listadas acima.

#lspciv
00:00.0RAMmemory:nVidiaCorporationMCP61MemoryController(rev
a1)
Subsystem:ASUSTeKComputerInc.Device8234
Flags:busmaster,66MHz,fastdevsel,latency0
Capabilities:[44]HyperTransport:SlaveorPrimaryInterfa
ce
Capabilities:[dc]HyperTransport:MSIMappingEnable+Fi
xed

00:01.0ISAbridge:nVidiaCorporationMCP61LPCBridge(reva2)
Subsystem:ASUSTeKComputerInc.Device8234
Flags:busmaster,66MHz,fastdevsel,latency0
I/Oportsat0900[size=256]

00:01.1SMBus:nVidiaCorporationMCP61SMBus(reva2)
Subsystem:ASUSTeKComputerInc.Device8234
Flags:66MHz,fastdevsel,IRQ10
I/Oportsat0e00[size=64]
I/Oportsat0600[size=64]
I/Oportsat0700[size=64]
Capabilities:[44]PowerManagementversion2
Kerneldriverinuse:nForce2_smbus
Kernelmodules:i2cnforce2

No exemplo acima temos a utilizao do comando lspci com a utilizao do parmetro -v


para uma visualizao mais detalhada como visto acima.

LSUSB
O comando lsusb lista os dispositivos USB conectados ao computador, mostrando em que
posio do USB o dispositivo se encontra, qual sua identificao (ID), marca e modelo.

Sintaxe: lsusb <opes>

Para uma visualizao mais incrementada das informaes retornadas por este comando
podemos utilizar as seguintes opes:

-v esta opo exibe as informaes dos dispositivos USB conectados ao sistema de forma
mais detalhada.

-s [barramento]:[dispositivo] esta opo permite visualizar informao especifica sobre

107
Apostila Debian Intermedirio - Desktop Parana

o dispositivo conectado a um determinado barramento USB, ou sobre todos os dispositivos pluga-


dos a um determinado barramento (especificando somente o argumento barramento).

#lsusb
Bus002Device002:ID15d9:0a37
Bus002Device001:ID1d6b:0001LinuxFoundation1.1roothub
Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothub

No exemplo acima estamos utilizando o comando lsusb sem passar a ele nenhum parme-
tro, onde temos como retorno a sada acima que mostras que, nesse caso, no h nenhum dispo-
sitivo conectado s entradas USB.

#lsusbv

Bus002Device002:ID15d9:0a37
DeviceDescriptor:
bLength18
bDescriptorType1
bcdUSB1.10
bDeviceClass0(DefinedatInterfacelevel)
bDeviceSubClass0
bDeviceProtocol0
bMaxPacketSize08
idVendor0x15d9
idProduct0x0a37
bcdDevice1.00
iManufacturer0
iProduct1USBMouse
iSerial0
bNumConfigurations1
ConfigurationDescriptor:
bLength9
bDescriptorType2
wTotalLength34
bNumInterfaces1
bConfigurationValue1
iConfiguration0
bmAttributes0xa0
(BusPowered)
RemoteWakeup
MaxPower100mA
InterfaceDescriptor:
bLength9
bDescriptorType4
bInterfaceNumber0
bAlternateSetting0
bNumEndpoints1
bInterfaceClass3HumanInterfaceDevice

108
Apostila Debian Intermedirio - Desktop Parana

bInterfaceSubClass1BootInterfaceSubclass
bInterfaceProtocol2Mouse
iInterface0
HIDDeviceDescriptor:
bLength9
bDescriptorType33
bcdHID1.10
bCountryCode0Notsupported
bNumDescriptors1
bDescriptorType34Report
wDescriptorLength52
ReportDescriptors:
**UNAVAILABLE**
EndpointDescriptor:
bLength7
bDescriptorType5
bEndpointAddress0x81EP1IN
bmAttributes3
TransferTypeInterrupt
SynchTypeNone
UsageTypeData
wMaxPacketSize0x00041x4bytes
bInterval10
DeviceStatus:0x0000
(BusPowered)

Acima segue um exemplo de sada mais detalhada do comando lsusb com o parmetro -v.

HWCLOCK
Este comando permite acessar o relgio da BIOS, possibilitando sua consulta alm de ajus-
tes nos horrios do sistema e da mquina.

Sintaxe: hwclock <opes>

Os parmetros para utilizao deste comando so:

-r ou --show : para exibir a data e a hora do relgio da mquina (BIOS).

-w ou --systohc : para copiar a hora do sistema para o relgio da mquina.

-s ou --hctosys : para copiar a hora da mquina para a hora do sistema.

--set --date=novadata : para modificar a data e a hora do relgio da mquina.

Por exemplo, para alterarmos o relgio da mquina para a seguinte data e hora: 14/07/1981
s 11:30. Devemos utilizar o comando hwclock da seguinte maneira.

# hwclock --set --date="07/14/1981 11:30"


# hwclock -r

109
Apostila Debian Intermedirio - Desktop Parana

Ter 14 Jul 1981 11:30:04 BRT -0.857784 segundos

No exemplo acima usamos primeiramente o comando hwclock para alterar a data e hora do
relgio da mquina (BIOS) e em seguida confirmamos a alterao efetuada usando novamente o
comando hwclock com o parmetro -r para visualizarmos a data e hora do relgio da mquina.

NMBLOOKUP
Antes de aprendermos a utilizao do comando nmblookup vamos conhecer um pouco sob-
re o NetBIOS sobre TCP/IP como servio de resoluo de nomes e sobre o servio WINS.

Podemos definir NetBIOS como uma interface de programa desenvolvida para permitir a co-
municao entre mquinas numa determinada rede. Em redes microsoft, por exemplo, o comparti-
lhamento de arquivos baseado no sistema de troca de mensagens do NetBIOS, chamado de
SMB (Server Message Block).

O NetBIOS disponibiliza o que chamamos de nomes NetBIOS, que atravs da resoluo


desses nomes possibilita a comunicao entre mquinas numa rede sem a necessidade de uso
de seu endereo IP. Essa resoluo de nomes NetBIOS, significa o mapeamento bem-sucedido
de um nome NetBIOS para um endereo IP.

Esse nome NetBIOS o nome atribudo a um determinado recurso da rede (a um computa-


dor, impressora, etc), ele representa um endereo de 16 bytes que usado para sua identificao
na rede. Ele pode ser um nome exclusivo, atribudo a um recurso especifico, ou um nome de gru-
po. Por exemplo, uma determinada mquina X numa rede, que utiliza o endereo IP 10.15.15.123,
pode receber o nome NetBIOS ecelepar91122 que ser utilizado para identificar esta mquina na
rede, esse nome representa exclusivamente a mquina X que possui o endereo IP 10.15.15.123.
Essa mesma mquina pode fazer parte do grupo WORKGROUP, nesse caso, este grupo (nome
NetBIOS) no representa unicamente a mquina X mas todas as mquinas que fazem parte deste
grupo.

U m nome NetBIOS possui 16 (dezesseis) posies de caracteres para sua formao.


Sendo que pode-se ter no mximo 15 (quinze) caracteres e no mnimo 1 (um) ca-
ractere para a definio do nome. Nos casos onde no forem usados os 15 (quinze) ca -
racteres possveis no nome NetBIOS, as posies no utilizadas sero automaticamente
completadas com espaos em branco. O 16 (decimo sexto) caractere do nome NetBI-
OS reservado para identificar a funcionalidade que est instalada no dispositivo de
rede registrado.

Numa rede comum o compartilhamento de arquivos e impressoras, e geralmente utiliza-


mos, para conectarmos mquina que compartilha o recurso desejado (arquivo ou impressora)
utilizamos o nome NetBIOS para isso. Mas antes de poder estabelecer uma conexo de comparti-
lhamento de arquivos ou impresso, necessria a criao de uma conexo TCP. E para se esta-

110
Apostila Debian Intermedirio - Desktop Parana

belecer uma conexo TCP, o nome NetBIOS deve ser resolvido para um endereo IP. Temos dife-
rentes mecanismos para resoluo de nomes NetBIOS, sendo que estes mecanismos variam de
acordo com o tipo de n de NetBIOS configurado. Segue abaixo uma lista de ns de NetBIOS:

Tipo de n Descrio
O n B usa consultas de nomes NetBIOS atravs de difuso (broadcast)
na resoluo de nomes. O n B tem dois grandes problemas: (1) As
N B (difuso) difuses perturbam todos os ns na rede. e (2) Os roteadores geralmente
no encaminham difuses, portanto, apenas os nomes NetBIOS na rede
local podem ser resolvidos.
O n P usa um servidor de nomes NetBIOS (NBNS), como, por exemplo,
um servidor WINS para resolver os nomes NetBIOS. Ou seja, o n P ao
N P (ponto a ponto)
invs de usar difuses faz uma consulta diretamente no servidor de
nomes (servidor WINS).
O n M uma combinao do n B e do n P. Por padro, um n M
funciona como um n B, resolvendo os nomes NetBIOS por difuso, e
N M (composto)
quando ele no consegue resolver o nome por difuso, ele efetua uma
consulta ao servidor de nomes (servidor WINS usando o n P.
O n H uma combinao do n P e do n B. Por padro, um n H
funciona como um n P, efetuando uma consulta num servidor de nomes
N H (hbrido) (servidor WINS), quando ele no consegue resolver o nome NetBIOS
dessa forma, ele usa uma difuso para resoluo do nome. (Este
atualmente o tipo de n mais utilizado).

Agora que sabemos o que e quais as formas para resoluo de nomes NetBIOs, vamos
conhecer um pouco sobre o servio WINS (Servio de cadastramento na internet do Windows).
Este servio disponibiliza um banco de dados distribudo para registrar e consultar mapeamentos
dinmicos de nomes NetBIOS para computadores e grupos usados na rede. Os registros de
WINS so efetuados automaticamente a cada vez que os clientes iniciam e ingressam na rede.

E ssa atualizao automtica do banco de dados WINS, evita que alteraes dinmi-
cas de endereo desatualizem o banco de dados

A seguir temos uma ilustrao que facilitar o entendimento da resoluo de nomes NetoBI-
OS atravs de uma consulta num servidor WINS.

111
Apostila Debian Intermedirio - Desktop Parana

Figura 8: Representao de uma consulta a um servidor WINS.

Neste exemplo, o Computador A registra seu nome de NetBIOS, ecelepar90112, no servidor


WINS. Enquanto o Computador B primeiramente efetuou, passando o nome NetBIOS da mquina
que deseja acessar, uma consulta ao Servidor WINS para localizar o endereo IP do Computador
A, em seguida, o Servidor WINS retornou para o Computador B o endereo IP do Computador A
para que ento o Computador B pudesse se conectar ao Computador A.

Agora que entendemos como funciona a resoluo de nomes NetBIOS atravs de um servi-
dor WINS, vamos aprender a utilizar o comando nmblookup que uma ferramenta muito til para
verificarmos o correto funcionamento dessa resoluo de nomes, pois este comando, dentre suas
funes, possibilita a consulta de um endereo IP atravs de seu hostname.

Sintaxe: nmblookup <opes> <host / endereo IP>

As opes do comando nmblookup so:

-U esta opo utilizada para passarmos o endereo IP do servidor WINS a ser consulta-
do.

-R esta opo utilizada para passarmos o nome NetBIOS ou SAMBA da mquina que
ser pesquisada.

-B esta opo utilizada para passarmos qual o broadcast ser utilizado para resoluo
do nome NetBIOS por difuso.

-d <Nvel> esta opo utilizada para, dependendo do nvel passado como argumento,
aumentar o detalhamento das informaes retornadas pelo comando nmblookup. O nvel a ser
passado como argumento dessa opo deve ser um valor inteiro compreendido entre 0 (zero) e
10 (dez), sendo que quanto maior o nvel mais detalhada a sada. Quando este parmetro no
passado o comando nmblookup assume o nvel 0 (zero) no retorno das informaes pesquisadas.

112
Apostila Debian Intermedirio - Desktop Parana

-T esta opo utilizada para que seja exibido o nome DNS da mquina antes do endere-
o IP.

A seguir veremos alguns exemplos da utilizao do comando nmblookup.

#nmblookupU10.15.20.85Recelepar10159T
queryingecelepar10159on10.15.20.85
ecelepar10159.celepar.parana,10.15.17.35ecelepar10159<00>

No exemplo acima estamos efetuando a consulta do nome NetBIOS ecelepar10159 no


servidor WINS com endereo IP 10.15.20.85, mostrando tambm o nome DNS da mquina (ece-
lepar10159.celepar.parana).

#nmblookupU10.15.20.85Recelepar12153
queryingecelepar12153on10.15.20.85
10.15.17.135ecelepar12153<00>

No exemplo acima estamos efetuando a consulta do nome NetBIOS ecelepar12153 no


servidor WINS com endereo IP 10.15.20.85 .

#nmblookupRecelepar10159B10.15.19.255
queryingecelepar10159on10.15.19.255
10.15.17.35ecelepar10159<00>

No exemplo acima estamos efetuando a consulta do nome NetBIOS ecelepar10159, mas


desta vez por difuso atravs do broadcast 10.15.19.255.

#nmblookupU10.15.20.85Recelepar91199d2
added interface eth0 ip=fe80::21e:8cff:fec0:297d%eth0
bcast=fe80::ffff:ffff:ffff:ffff%eth0netmask=ffff:ffff:ffff:ffff::
added interface vmnet1 ip=fe80::250:56ff:fec0:1%vmnet1
bcast=fe80::ffff:ffff:ffff:ffff%vmnet1netmask=ffff:ffff:ffff:ffff::
added interface vmnet8 ip=fe80::250:56ff:fec0:8%vmnet8
bcast=fe80::ffff:ffff:ffff:ffff%vmnet8netmask=ffff:ffff:ffff:ffff::
added interface vmnet1 ip=172.16.224.1 bcast=172.16.224.255
netmask=255.255.255.0
added interface vmnet8 ip=192.168.7.1 bcast=192.168.7.255
netmask=255.255.255.0
added interface eth0 ip=10.15.17.186 bcast=10.15.19.255
netmask=255.255.252.0
queryingecelepar91199on10.15.20.85
Gotapositivenamequeryresponsefrom10.15.20.85(172.16.224.1)
172.16.224.1ecelepar91199<00>

No exemplo acima estamos efetuando a consulta do nome NetBIOS ecelepar91199 no ser-


vidor WINS com endereo IP 10.15.20.85 , com detalhamento da sada do comando nmblookup
com nvel de detalhamento 2.

113
Apostila Debian Intermedirio - Desktop Parana

E m mquinas que possuem mais de uma interface de rede, o resultado do comando


nmblookup mostrar o endereo IP da primeira interface de rede a registrar-se. Para
verificar o endereo IP de uma interface de rede especfica necessrio fazer a consulta
por difuso, especificando o broadcast utilizado pela interface de rede desejada.

NSLOOKUP
Para entendermos a utilizao deste comando precisamos ter noo de o que , e para que
serve um servidor DNS. De uma forma simplificada, podemos definir um servidor DNS (Domain
Name System como o responsvel por efetuar a resoluo de nomes, ou seja, identificar mqui-
nas atravs de nomes em vez de endereos de IP.

Numa rede baseada no modelo OSI que utilize o protocolo TCP/IP, a conexo entre dois
equipamentos acontece atravs do endereamento IP19. Imagine ento que quisssemos acessar
o site do google, por exemplo, se no tivssemos configurado um servidor DNS, para acessar o
site, ao invs de digitarmos o endereo www.google.com teramos que digitar um de seus ende-
reos IPs. Para possibilitar essa navegao atravs de um nome amigvel, o DNS atribui nomes
a servios de rede e computadores, organizado de acordo com uma hierarquia de domnios.

O comando nslookup obtm informaes de um servidor DNS, e as informaes obtidas


com o comando nslookup podem ser utilizadas para a resoluo de problemas relacionados com
o DNS.

Sintaxe: nslookup [-opes] [nome ou -] [servidor]

O comando nslookup pode ser utilizados de duas formas: interativa e no-interativa. A forma
no-interativa consiste na utilizao do comando para realizao de uma nica consulta a ser rea-
lizada conforme os parmetros passados. A forma interativa ocorre quando utilizamos o comando
nslookup sem passarmos nenhum parmetro, nesse caso ser aberta uma interface onde poss-
vel realizar vrias consultas com diferentes critrios de pesquisa, para sair dessa interface interati-
va basta digitarmos exit ou utilizarmos as teclas <Ctrl>+<d>. Segue abaixo alguns exemplos de
utilizao do comando nslookup.

#nslookupecelepar91199
Server:10.15.16.6
Address:10.15.16.6#53

Nonauthoritativeanswer:
Name:ecelepar91199.celepar.parana
Address:10.15.17.186

No exemplo acima estamos usando o comando nslookup para consulta do endereo IP da

19 Esse conceito de que a conexo feita atravs do endereo IP, uma simplificao feita com o fim de contextualizar
a necessidade do uso do endereo IP na conexo.

114
Apostila Debian Intermedirio - Desktop Parana

estao de trabalho ecelepar91199. Nesse comando, como no foi especificado nenhum servidor
DNS a ser consultado, a consulta foi realizada no servidor DNS configurado como primrio no ar-
quivo resolv.conf.

S possvel consultarmos o endereo IP de uma mquina, passando somente o


nome, sem especificar o domnio ao qual a mquina pertence, se o arquivo resolv.-
conf tiver a linha de configurao do domnio da internet setada (search celepar.para-
na).

#nslookupecelepar9119910.15.16.8
Server:10.15.16.8
Address:10.15.16.8#53

Nonauthoritativeanswer:
Name:ecelepar91199.celepar.parana
Address:10.15.17.186

Neste outro exemplo, temos a mesma situao do exemplo anterior mudando somente o
fato de que desta vez apontamos no comando que o servidor DNS que deveria ser consultado era
o 10.15.16.8.

#nslookup
>ecelepar91199
Server:10.15.16.6
Address:10.15.16.6#53

Nonauthoritativeanswer:
Name:ecelepar91199.celepar.parana
Address:10.15.17.186
>www.coxanautas.com.br
Server:10.15.16.6
Address:10.15.16.6#53

Nonauthoritativeanswer:
www.coxanautas.com.brcanonicalname=coxanautas.com.br.
Name:coxanautas.com.br
Address:209.200.237.80
>exit

No exemplo acima, estamos utilizando o comando nslookup no modo interativo, dessa forma
podemos efetuar quantas consultas forem necessrias. Neste caso estamos efetuando apenas
duas consultas, a do hostname ecelepar91199 e a do endereo www.coxanautas.com.br.
Como no especificamos um servidor para consulta foi utilizada a configurao do do arquivo re-
solv.conf e consultado p servidor primrio nele especificado. Aps efetuadas as consultas deseja-
das samos da interface do comando nslookup digitando exit.

115
Apostila Debian Intermedirio - Desktop Parana

#nslookup10.15.16.8
>expresso.pr.gov.br
Server:10.15.16.8
Address:10.15.16.8#53

Nonauthoritativeanswer:
Name:expresso.pr.gov.br
Address:200.189.113.38
>exit

No exemplo acima temos uma situao parecida com a descrita anteriormente s que desta
vez especificamos em qual servidor DNS deveria ser realizada a consulta.

116
Apostila Debian Intermedirio - Desktop Parana

GERNCIA DE REDES DE COMPUTADORES


Iremos agora depurar uma rede. Voc possui uma rede problemtica e precisa, urgentemen-
te, faz-la voltar a funcionar. Pode ser um host isolado, como pode ser uma rede completa. Antes
de qualquer coisa, o administrador da rede dever parar e pensar quais so as possveis causas
do problema e seguir um mtodo para chegar a uma soluo de forma mais rpida e eficaz.

Existem vrios comandos que permitem que um administrador depure uma rede problemti-
ca, sendo que cada um trabalha em uma ou mais camadas da pilha de protocolos TCP/IP, estru-
turado parcialmente de acordo com o modelo OSI.

O TCP/IP foi desenhado segundo uma arquitetura de pilha, onde diversas camadas de
software interagem somente com as camadas acima e abaixo. H diversas semelhanas com o
modelo conceitual OSI da ISO, mas o TCP/IP anterior formalizao deste modelo e portanto
possui algumas diferenas.

Antes de estudarmos os comandos, precisamos entender superficialmente (j que no se


trata de um curso de cincia, e sim tcnico) o que este modelo e como ele est estruturado na
maioria das redes que conhecemos. Logicamente que, como um bom administrador, cabe a voc
aprofundar-se no assunto para ter um maior domnio e destreza dos comandos e depuraes,
mas o que ser visto neste curso ser o suficiente para serem resolvidos muitos problemas co-
muns.

CAMADA OSI
O modelo OSI/RM (Open Systems Interconnect Reference Model Modelo de Referncia
de Sistemas de Interconexo Aberta), ou simplesmente OSI, um modelo que define as diretrizes
(caminhos, indicaes e modelos) a serem seguidas pelos protocolos que pretendem definir re-
gras que faam com que sistemas operacionais consigam utilizar qualquer arquitetura de rede.
Perceba que o modelo OSI em si no nem um, nem um grupo de protocolos, mas sim o ca-
minho que os desenvolvedores de protocolos devero seguir para que haja uma total interoperabi-
lidade entre sistemas e hardware. O projeto de criar o protocolo OSI foi abandonado e este mode-
lo usado atualmente para fins didticos, totalmente terico e didtico.

O modelo OSI consiste em uma pilha de camadas, sendo que cada uma delas tem uma fun-
o especfica. Para que uma informao possa ser transmitida, ela precisar passar pelas pilhas
(camadas adjacentes do remetente e destinatrio) seguindo uma direo e um sentido. Sempre
dever ser respeitada a ordem das camadas. Para uma informao ser enviada, ela deve come-
ar da camada superior e ir para as camadas mais abaixo. Para receber uma informao, o senti-
do ser o contrrio. Se existirem cinco camadas num protocolo utilizado para estabelecer uma co-
nexo entre dois computadores, as aplicaes de ambos, para trocar dados, tero que propeli-los

117
Apostila Debian Intermedirio - Desktop Parana

de forma que as 10 camadas sejam transpostas. A camada mais ao topo do remetente preparar
um segmento de dados que somente a mesma camada do destinatrio entender. O mesmo
acontece com a segunda camada, e todas as outras. A conversao dentro da pilha feita, en-
to, horizontalmente, enquanto o fluxo vertical. Vejamos agora quais so as camadas:

Figura 9: Camada OSI


Com relao a figura a cima:

Item 5 Camada de sesso: Disponibiliza servios como pontos de controle peridicos a partir
dos quais a comunicao pode ser restabelecida em caso de pane na rede.
Item 2 Altere Possui recursos de confirmao de chegada dos dados Realiza o controle de
acesso e transmisso no meio fsico

118
Apostila Debian Intermedirio - Desktop Parana

PROJEO DA ARQUITETURA TCP/IP SOBRE O MODELO OSI


O OSI s um modelo de referncia, e no necessariamente os protocolos utilizados pela
maioria das redes estruturadas hoje coincidem com ele. O protocolo TCP/IP uma pilha de proto-
colos mais enxuta e prtica. No toa que o protocolo mais utilizado em todo o mundo. Veja-
mos uma projeo da pilha TCP/IP sobre as camadas do modelo OSI.

Existem as aplicaes de rede que repousam sobre a camada de aplicao, tanto no mo-
delo OSI, quanto na arquitetura TCP/IP. Devido ao intuito deste curso, no iremos nos aprofundar
nas camadas de apresentao e aplicao j que elas tm funes diferentes e abstratas de acor-
do com o protocolo utilizado. Basta sabermos que tarefas de encriptao de dados, assim como
outras atividades adicionais que devem ser realizadas dependendo do aplicativo, que no esto
abrangidos em nenhuma outra camada, so realizadas nelas. Podemos dizer que, no protocolo
TCP/IP, a camada de aplicao abrange as trs primeiras do modelo OSI. Depois disso, os dados
precisam iniciar o processo de comunicao com outros computadores. O primeiro passo da co-
municao propriamente dita acontece na camada de transporte. Os dados precisam ser identifi-
cados para que, posteriormente, o protocolo saiba quem solicitou o qu e possa devolv-lo ao
aplicativo certo. Isso a multiplexao, que faz com que vrios dados de aplicaes diferentes
passem a ser um fluxo uniforme e homogneo de dados atravessando o meio fsico. Somente na
camada de transporte do destino que esses dados lineares voltaro a ser divididos de acordo
com a aplicao que os aguarda. Nesta camada tambm definido se a conexo vai ser feita com
controle de congestionamento, fluxo e confiabilidade de entrega (TCP), ou se, no lugar des-
tas exigncias, ser priorizada a velocidade (UDP). Depois disso, temos a identificao de desti-
no e origem e o trabalho de roteamento dos dados. No TCP/IP, esta camada recebe o nome de
inter-redes, e nela que a geratriz dos dados reside, o IP (camada de rede). ele quem faz o
endereamento do destino e identificao do remetente do pacote. Continuando com o TCP/IP,
nesta mesma camada temos o ICMP que um protocolo de auxlio ao IP. Este protocolo ajuda
com mensagens de erro, controle de fluxo, etc. Esta camada possui os endereamentos lgicos,
mas para que os dados consigam fluir de forma correta, preciso que o IP seja convertido no seu
endereo MAC (camada de link). Depois disso, por fim, temos a camada de fsica, que nada
mais do que o meio utilizado para se propagar os sinais que representam os dados.

Sempre que um dado vai ser enviado, ele vai descendo pela pilha de protocolos at chegar
camada de link (ou enlace) que gera o sinal a ser transmitido. Durante a estada nesta camada,
aps a fase de encapsulamento, os dados recebem o nome de quadros ou frames. Este frames
so compostos por um cabealho que contm informaes sobre o computador de destino e de
origem, informaes sobre o tamanho do quadro e um checksum (CRC), que verifica se est tudo
certo (se todos os quadros chegaram).

119
Apostila Debian Intermedirio - Desktop Parana

EMPACOTAMENTO DE DADOS
Os dados, no decorrer de sua jornada (pilhas abaixo ou acima), vo sendo empacotados e
desempacotados a toda hora. Isso acontece por alguns motivos, sendo dois os principais: (a) line-
arizar os dados em um sinal binrio simples para que eles possam ser transmitidos pelos meios f-
sicos e depois retornar esses sinais nos mesmo dados iniciais; (b) e permitir que haja um isola-
mento das aplicaes em relao plataforma, permitindo que os dados sejam transmitidos inde-
pendente do sistema operacional ou da arquitetura dos dispositivos em comunicao.

O primeiro motivo claro. O meio fsico s entende cdigo binrio atravs da configurao
da tenso de cada bit. Quando se tem um zero a tenso x, quando se tem um 1 a tenso y. O
protocolo que trabalha na camada de enlace (ou link) o responsvel por criar a tabela de bits
para que o meio, da camada fsica, transmita cada um deles de uma interface a outra numa or -
dem exata. A preocupao da camada fsica essa: garantir que aquela tabela de tenses x e
tenses y seja transmitida para seu destino exatamente na ordem da tabela criada pela camada
de enlace (transerncia bruta dos dados). Como somente com cdigos binrios o meio fsico pode
saber o destino das informaes? simples. Todas as interfaces que pertencem a mesma rede
esto conectadas fisicamente (em contato atravs de fios, fibras ou ar, em caso de wireless) umas
s outras. Toda vez que um dado deve ser transmitido, o remetente envia os dados para todas as
interfaces locais, mas somente aquela que o destino que aceita o sinal. A interface de destino
sabe que ela a de destino, porque neste sinal temos os cabealhos com informaes de identifi-
cao. Vejamos os trs agrupamentos de dados que temos na pilha de protocolo TCP/IP:

Cabealho Cabealho Cabealho Dados de Ethernet


Ethernet IP UDP Aplicaes CRC
14 bytes 20 bytes 8 bytes 100 bytes 4 bytes
Camada de
Transporte SEGMENTO UDP
Camada de
Rede PACOTE IP
Camada de
Enlace QUADRO (FRAME) ETHERNET
Tabela 1: Empacotamento de dados
Um aplicativo qualquer (como um navegador) que necessite se comunicar com uma interfa-
ce remota, no precisa saber como a rede funciona. Para isso, ele ir se conectar a uma interface
disponvel na camada de aplicao da pilha TCP/IP. Um protocolo que permite que o navegador
se encaixe na pilha TCP/IP o http. Os dados que devem ser trafegados so enviados do apli-
cativo para o protocolo da camada de aplicao. A camada de aplicao envia estes dados para a
camada de transporte, que comea o processo de quebra de informaes em pedaos menores e
insero de cabealhos. Estes pedaos com cabealhos embutidos recebem a denominao de

120
Apostila Debian Intermedirio - Desktop Parana

segmentos, que so enviados para a camada de rede que faz processo igual a camada anterior,
criando os pacotes. Os pacotes possuem nos seus cabealhos os IPa das interfaces de origem e
IPs da interfaces de destino. Os pacotes so enviados para a camada de enlace, que tambm vai
criar seu prprio agrupamento e dar a ele o nome de quadro (ou frame). Dentro desta camada
existe o protocolo ARP, que so as regras que, entre vrias atividades, convertem um endereo IP
em endereo fsico (MAC ADDRESS) e vice-versa. MAC ADDRESS um endereo nico que to-
das as interfaces de rede possuem. Existe um instituto regulamentador de normas tcnicas que
controla a emisso destes endereos para que ele nunca se repita em nenhum lugar do mundo.
Uma empresa que fabrica estas interfaces precisa comprar uma faixa de endereos fsicos para
atribuir s suas peas20. Ento apesar dos IPs poderem ser iguais em redes diferentes, os MAC
ADDRESS nunca sero. Um computador mantm uma tabela dinmica contendo os MAC AD-
DRESS de todas as interfaces de sua rede que se comunicaram recentemente. Se a conexo ti-
ver que ser com uma interface de outra rede, o MAC ADDRESS endereado ser do roteador. En-
to o MAC ADDRESS inserido dentro do cabealho e agora sim a interface de destino saber
que aquelas informaes so destinadas a ela.

Voltando a inundao de dados enviados toda rede (conhecida como broadcast). Os fra-
mes so criados na camada de enlace. Eles so compostos do pacote IP (que para eles uma
caixa preta) e um cabealho contendo o MAC ADDRESS e marcas de onde cada frame comea e
termina. Estes limites so criados pelo protocolo LLC (Logical Link Control Layer - Camada de
controle de link lgico) residente da camada de enlace. Ele cria uma tabela com as tenses que a
camada fsica dever usar para definir os 1 e 0s, e indica o tempo certo que cada bit ter. Desta
forma, todos os dados so enviados para toda rede, todas as interfaces locais recebem os frames
e os convertem em pacotes IPs. verificado no cabealho deste IP se o endereo do destinatrio
corresponde com o prprio endereo. Se sim, os dados so enviados para cima at chegar a apli-
cao.

TCP/IP
O TCP/IP foi criado e implementado, sendo o conjunto de protocolo mais utilizado hoje em
redes de computadores. A internet utiliza-o, sendo assim, podemos perceber a dimenso de sua
adoo. Este protocolo cria uma interface de programao uniforme que permite que diversos ti-
pos de hardware, independentes de suas tecnologias, consigam transportar dados e que exista in-
teroperabilidade entre sistemas hbridos. Vejamos como ele constitudo:

Camadas Exemplos de protocolos


Camada de aplicao FTP - WWW - SMTP - POP - IMAP - TELNET

20 Por isso, cuidado com as placas clonadas. Provavelmente elas clonaram algum endereo existente sem pagar por ele.
Se duas placas tiverem o mesmo MAC ADDRESS haver conflito e a comunicao ser prejudicada.

121
Apostila Debian Intermedirio - Desktop Parana

Camada de transporte TCP - UDP


Camada inter-redes IP - ICMP - ARP - RARP
Camada de interface de rede ETHERNET, TOKEN-RING, sem-fio, ATM

CAMADA DE APLICAO
A camada de aplicao fornecida pelo programa que deseja se encaixar pilha. Existem
vrios protocolos utilizados nesta camada. O navegador de internet uma aplicao, mas no po-
demos confundi-lo com a aplicao responsvel pelo encaixe na pilha, que no caso o http. Um
programa utilizado pelo usurio final pode escolher um dos protocolos (servio ou aplicativo) que
fazem parte da camada de aplicao mais adequado s suas necessidades. Navegadores, como
IE, Mozilla Firefox, Opera e Epiphany utilizam o protocolo http, https e FTP na camada de aplica-
o. Aplicativos como Nautilus, Filezilla FTP Transport e SmartFTP utilizam o protocolo FTP.

Vejamos os principais protocolos da camada de aplicao:

HTTP (hiper text transport protocol - protocolo de transporte de texto rico) permite que haja
transferncia de pginas pelas redes de computadores. O rico indica que as informaes so
transmitidas com informaes a respeito da formatao e recursos adicionais, permitindo que o
texto do outro lado chegue sem ser como simples texto puro.

FTP (file transport protocol - protocolo de transporte de arquivo) um conjunto de regras e


instrues que permite que haja transferncia rpida de arquivos entre computadores distintos.

SMTP (simple mail transport protocol - protocolo de transporte simples de e-mail) um con-
junto de regras e instrues que faz com que uma mensagem seja convertida em texto simples e
possibilita que seja definido, atravs de um endereo de e-mail, que esta mensagem seja identifi-
cada e enviada para um destinatrio especfico.

IMAC (internet message access protocol - protocolo de acesso a mensagem pela internet)
um protocolo mais completo de envio e recebimento de mensagens que permite que o usurio te-
nha mais recursos disponveis, como manter suas mensagens no servidor depois de receb-las.

TELNET um protocolo simples que cria uma conexo entre computadores distintos e que
possibilita a troca de informaes atravs de linha de comando. Para configurar modens e impres-
soras sem display prprio, utiliza-se este recurso.

SSH (security shell) cria uma conexo entre interfaces distintas e possibilita que remotamen-
te um cliente acesse o shell (terminal) de um servidor. Os dados so criptografados, dando mais
segurana troca de informaes.

A camada de aplicao da pilha TCP/IP abrange trs camadas do modelo OSI (aplicao,
apresentao e sesso). Assim, podemos dizer que nesta camada os dados a serem transmitidos

122
Apostila Debian Intermedirio - Desktop Parana

so inicialmente diferentes, mas nela comeam o processo de linearizao, para que as informa-
es a serem transmitidas se tornem uma srie de informaes uniformes e de padro igual para
que as prximas camadas se preocupem apenas com as suas atividades de transmisso pela
rede. Antes da converso, eles definem com quem a conexo ser realizada, estruturam os dados
num formato prprio do protocolo (compactando-os, criptografando-os, etc), e depois converte-os
numa sequncia de dados que deve ser transmitida pelo meio fsico da rede.

importante observar que a comunicao feita entre as camadas iguais. A camada


de aplicao do cliente se comunica com a camada de aplicao do servidor, e assim
por diante. Isto quer dizer, que os dados da camada de aplicao so como vrias cai-
xas pretas para as camadas abaixo. As camadas abaixo vo simplesmente adicionando
cabealhos a estas caixas.

Imagine uma empresa, a Pilintra's Corporation, sediada no Paran, que deseja enviar enco-
mendas para suas filias pelo Brasil. A transportadora do Paran utilizada para esse fim pode ser
comparada a uma rede local. Ela tem abrangncia estadual, tendo que sempre repassar a tarefa
para outra transportadora quando muda de estado. A nova transportadora ser uma rede remota.
A empresa Pilintra's Corporation pode ser equiparada a uma aplicao, como o Firefox, por exem-
plo. Quando a empresa precisa enviar uma encomenda, esta levada at um balco de coleta da
transportadora para que ela inicie o processo de transporte. Neste balco feita a coleta da enco-
menda, registro do remetente e destinatrio e necessidades do transporte. A encomenda pode ser
compactada ou precisa ser colocada numa caixa com indicao frgil? Deve ser registrada, com
seguro ou seja o que Deus quiser? Depois da coleta ser realizada, caso seja necessrio compac-
tao, discrio, ou qualquer exigncia do cliente, os funcionrios atrs do balco iniciaro o pro-
cesso de preparao para o transporte.

CAMADA DE TRANSPORTE
Dentro desta camada temos os protocolos TCP e UDP, que definem as regras de envio de
segmentos de dados criados pela camada de aplicao. Os dados j so iguais, independente de
terem sido criptografados, compactados, serem ricos, texto puro, ou seja, no importa a estrutura
dos dados, agora tudo no passa de uma srie de dados que devem ser transmitidos de uma in-
terface outra. Esta camada responsvel por identificar quais so os aplicativos responsveis
por cada informao trafegada. Este controle feito atravs de portas ou soquetes. Se o protocolo
ssh, da camada de aplicao, estiver enviando alguma informao de uma interface outra, ele
dever criar sua estrutura, convert-la em dados lineares e enviar o resultado para a camada de
transporte que se encarregar de identific-la atravs de uma porta. Porta um espao na mem-
ria que permitem que algum dado transmitido seja enviado aplicao certa. Quando o segmento
de dados criado (TCP ou UDP) adicionado ao cabealho o endereo da porta de destino, ou
espao na memria do computador remoto que os dados devero ser armazenados. Desta forma,

123
Apostila Debian Intermedirio - Desktop Parana

uma aplicao sabe exatamente quais dados devem ser interpretados por ela. Vejamos um exem-
plo. A porta padro do ssh 22, ou seja, o espao na memria que possui o endereo da porta 22
associado ao aplicativo ssh. Sempre que alguma informao chegar pela rede e possuir a porta
22 como destino, os dados sero enviados a este espao e, automaticamente, sero enviados
para o aplicativo ssh que conseguir converter aquela caixa preta em dados vlidos e teis.

TCP
O TCP (transport control protocol) responsvel, assim como o UDP, pela criao do seg-
mento de informaes a ser enviado interface distinta e o controle de identificao dos dados
que os segmentos representam.

S egmento a unidade de transmisso do TCP e UDP. Ele constitudo pelo cabea -


lho TCP ou UDP e os dados vindos das camadas superiores, que no so tocados
por eles. Nesta camada temos os segmentos, na camada de rede temos os pacotes e
na de enlace os quadros.

Ele tem como principais atividades:

Confiabilidade: toda vez que um segmento chega camada de transporte do destinatrio,


uma mensagem de resposta chamada ACK (acknowledgment confirmao) enviada ao reme-
tente para que este possa enviar o prximo segmento. Se aps um determinado tempo, o ACK
no chegar, o remetente envia novamente o segmento perdido. Todos os segmentos so identifi-
cados no primeiro byte de suas estruturas com nmeros sequenciais. Isto permite que haja o con-
trole de quais segmentos chegaram e quais foram perdidos.

Controle de fluxo: caso o ACK seja recebido pelo remetente, nesta mensagem o destina-
trio registra a informao que permite que o remetente saiba como est o buffer de armazena-
mento da pilha TCP/IP, permitindo que o remetente envie o prximo segmento ou atrase um pou-
co a remessa. Isto faz com que os dados trafeguem pela rede somente se houver a quase certeza
de que eles sero recebidos, diminuindo o trfego de quadros no meio fsico.

Multiplexao: associa cada segmento a uma porta, permitindo, assim, que a interface de
destino saiba qual processo deve receber determinado segmento. Este recurso permite que vrios
dados de aplicativos distintos trafeguem como se tivessem a mesma origem, independente do
hardware abaixo e software acima estejam sendo utilizados.

UDP
O UDP (user datagram protocol - protocolo de datagramas de usurios) basicamente a in-
terface entre a camada de aplicao e o protocolo IP. Ele no tem controle nenhum, e a nica coi-
sa que faz a multiplexao, associando os dados a algum aplicativo determinado. Por ser bas-

124
Apostila Debian Intermedirio - Desktop Parana

tante simples, ele bem mais rpido que o protocolo TCP, porm no prov garantia nenhuma de
que os segmentos iro chegar ao seu destino. Recursos como vdeos expressos da internet, como
aqueles vistos no youtube, em grande parte utilizam este protocolo de conexo. Escolha essa, de-
vido ao fato de o qu importar nesse tipo de tarefa a velocidade, tendo as informaes perdidas
substitudas por pixels pretos, que diminuem a qualidade das imagens, mas melhora muito a velo-
cidade de download.

Portas e soquetes
As portas e soquetes so espaos reservados na memria principal que ao receberem infor-
maes realizam alguma sincronia com um servio (recebendo dados) ou com a camada de tras-
porte (enviando dados). Toda vez que um servio precisa enviar algo a um computador remoto,
ele envia uma requisio de conexo e espera para verificar se isso ser possvel. Digamos que
um computador A precisar se conectar por ssh a um computador remoto B. O servio ssh deve
estar instalado nas duas mquinas e rodando (ser um processo). Os dois processos ficam vincula-
dos porta 22. O servidor (computador B) fica escutando a porta 22, ou seja, verificando se
aquele espao especfico da memria recebe alguma informao. Quando o cliente (que chama-
remos de computador A) precisa se conectar ao servidor, ele envia a requisio sua porta 22.
Esta requisio possui, tambm, o nmero de uma porta no cliente que estar disponvel para se
estabelecer uma conexo (por exemplo, a porta 55555). Esta requisio desce a pilha de protoco-
los TCP/IP, transmitida pelo meio fsico e ento chega porta 22 do computador B (o servidor).
O processo ssh que estava escutando esta porta, converte os dados em informao inteligvel a
ele e, se verificar que possvel a realizao da conexo, envia uma mensagem ao cliente infor-
mando que a conexo poder ser realizada e estabelece um soquete, que nada mais que o es-
tabelecimento da porta 22 do servidor com a porta disponibilizada no cliente (no nosso casso
555555) como forma de comunicao entre os computadores. Agora o ssh do servidor continua
escutando a porta 22 por novas conexes e por requisies quaisquer, e sabe que sempre que re-
quisies vindas do computador A devem ser enviadas porta 55555 do mesmo. Quando a cone-
xo finalizar, o soquete (conexo especfica) ser desfeito e a porta 55555 do computador A volta-
r a estar disponvel.

P erceba bem que porta um espao da memria que pode ser utilizado por um ser-
vio, enquanto soquete um vnculo (conexo estabelecida) entre interfaces dife-
rentes que utiliza portas para comunicar-se uma com a outra. Uma porta no depende
de um soquete, j um soquete depende de portas.

Numa transportadora, os protocolos TCP e UDP identificam os portes a serem utilizados na


sada e entrega. Tudo que sair do porto 22 da transportadora local, deve ser entregue ao porto
22 da transportadora remota ou um outro especificado previamente. Cada porta representa uma

125
Apostila Debian Intermedirio - Desktop Parana

empresa contratante da transportadora. Do porto 22 saem as encomendas da Celepar, enquanto


do porto 33 saem as encomendas da Copel. Usando o protocolo TCP, um funcionrio da trans-
portadora local liga para a remota perguntando se pode enviar os dados e quantos caminhes de-
vem sair. Toda vez que um caminho chega, a sede receptora liga informando que a encomenda
chegou e quantos caminhes podem sair da transportadora sem causar tumulto na recepo. Isso
ir acontecer em ambas mos, tanto da local para a remoto, como da remoto para a local. Com o
UDP, a transportadora manda toda a encomenda, independente da quantidade de caminhes ne-
cessrios para isso, de uma s vez. Se houver fila ou se algum caminho tombar na estrada, nem
os motoristas nem a transportadora remota iro avisar a local. A carga ser perdida e a empresa
contratante (aplicao) quem dever arcar com a perda.

CAMADA INTER-REDES
Cinco computadores conectados a um hub formam uma rede com topologia de barramento.
Esta topologia mantm em contato fsico todos os computadores. O hub nada mais do que um
super T que conecta todos os computadores. Quando um deles quer enviar alguma informao
para outro, todos os outros iro receber os pacotes, mas somente aquele que o destinatrio
quem ir desempacot-lo por completo. Para saber qual o endereo do destinatrio, necess-
rio saber o seu IP. O IP convertido em MAC pela camada mais abaixo e somente aquele destino
que possua o endereo de MAC definido no pacote quem ir aceit-lo. Em vez de trabalharmos
com o endereo de MAC, trabalhamos com o IP, que tratado e inserido no pacote na camada In-
ter-Redes. A partir desta camada, a plataforma e hardware de comunicao podem ser qualquer
que tenha suporte ao protocolo TCP/IP. Isso quer dizer que esta camada responsvel por criar
uma barreira entre aplicaes-plataforma e arquitetura dos aparelhos de comunicao. Assim, fa-
cilmente podemos ter comunicao entre um computador Windows e Linux, e tambm entre com-
putadores conectados ao hub por um cabo ou por um dispositivo wireless.

Outra funo importantssima desta camada a de roteamento. No caso estabelecido ante-


riormente, tnhamos uma rede com cinco computadores. E se quisermos ligar esta rede a outra
rede que contm mais cinco computadores? Somos induzidos a entender que estamos conecta-
dos a duas redes. E se quisermos conectar a nossa rede a essa outra e mais internet? Sera-
mos induzidos a pensar que estamos conectados a trs redes. Errado. A partir do momento que
temos acesso segunda rede e internet, temos acesso a apenas uma rede, ou a uma inter-re-
de. Apesar da primeira ser diferente da segunda, e da internet ter milhes de redes que a compe,
dizemos que estamos conectados a apenas uma rede ampla. Isto se deve aos roteadores. Estes
equipamentos, que podem ser ou computadores com mais de uma placa de rede, ou ento equi-
pamentos prprios e dedicados roteamento, so os pontos de ligaes entre uma rede e outra.
Podemos conectar a nossa primeira rede um roteador, que fisicamente est conectado primeira
rede e segunda. Toda vez que precisamos enviar uma informao para a segunda rede, ela ser

126
Apostila Debian Intermedirio - Desktop Parana

enviada para esse roteador que enviar os dados para o computador da segunda rede. Se conec-
tarmos a esse roteador um cabo da internet, que normalmente provido por um provedor de inter-
net, podemos acessar em ambas redes a internet.

Os roteadores possuem tabelas de roteamento, para saberem o que fazer caso a conexo a
um determinado computador seja solicitada. Normalmente os roteadores de provedores possuem
bastante informaes e conseguem definir um trajeto bastante reto at o destino, mesmo que o
computador esteja em outro continente. Quem cuida de todo o roteamento de pacotes a camada
inter-redes da pilha TCP/IP. Ele verifica qual o IP de destino e, atravs de regras especficas, in-
dica qual o caminho a ser tomado: uma interface conectada diretamente a ele ou um prximo ro-
teador que estar conectado a uma nova rede.

Resumindo, esta camada tem dois objetivos principais:

Isolar aplicaes e plataformas do hardware e softwares de rede;

Criar uma rede nica estendida a partir de vrias outras, atravs dos roteadores.

IP
O IP um dos protocolos da camada de rede que implementa o endereamento de um host
na rede que possua uma interface capaz de enviar e receber datagramas IP. Sob a verso 4, ele
composto de 32 bits, sendo 8 para cada octeto. Um octeto pode assumir um valor de 0 a 255, to-
talizando 256 possibilidades por octeto. Veja o exemplo abaixo:

100.15.1.213Para sabermos qual a rede lgica a qual este IP pertence devemos confron-
t-lo mascara de rede. Existem as seguintes classes de rede:

Classe Range Mscara Padro Formato


REDE . HOSTS . HOSTS . HOSTS
Classe A 1.0.0.0 255.0.0.0
126.255.255.255
REDE . REDE . HOSTS . HOSTS
Classe B 255.255.0.0
128.0.0.0
191.255.255.255
REDE . REDE . REDE . HOSTS
Classe C 192.0.0.0 255.255.255.0
224.0.0.0
10.0.0.0 169.0.0.0
Privados
127.0.0.0 (localhost) x.x.x.0 (rede)
Reservad x.x.x.255 (broadcast)
os
Se a mscara for a padro (255.0.0.0) a rede do host ser a 100.0.0.0 de classe A.

ICMP
Internet Control Message Protocol - Protocolo de Controle de Mensagem na Internet

Como o prprio nome diz, ele um protocolo que define vrias mensagens de controle mui-

127
Apostila Debian Intermedirio - Desktop Parana

to teis dentro do protocolo TCP/IP. Quando pingamos um computador, ou seja, quando enviamos
uma pergunta a um host remoto para verificar se ele est disponvel na rede, o protocolo ICMP
quem responde dizendo Opa, t funcionandinho aqui!. Existem alguns tipos de pacotes deste
protocolo de controle, vejamos os principais:

Eco, que a pergunta de disponibilidade da interface e a sua resposta;

Verificao de tangibilidade de redes, hosts, protocolos e portas;

Verificao de existncia de redes e hosts;

Aviso de erro na rota de destino;

Impossibilidade de comunicao devido a atos administrativos (filtros como firewall);

Solicitao de estampa de tempo e resposta a esta solicitao (para verificao do tempo


levado pelo pacote para envio e recebimento);

Tempo de espera de resposta excedido.

ARP
Address Resolution Protocol - Protocolo de Resoluo de Endereos

ARP um sistema de indexao que possui um banco de dados, onde so armazenadas


associaes entre endereos de alto nvel (IP) e endereos fsicos (MAC Address). O nome do co-
mando que manipula o ARP recebe o mesmo nome.

A conexo entre os computadores realizada atravs de uma multiplexao de dados, ou


seja, informaes que precisam ser enviadas de um computador a outro so divididos em vrios
pacotes e cada um deles recebe vrias informaes em cabealhos para que possam chegar a
um destino e serem reorganizados e montados na sua forma original. Numa rede bem configura-
da, existem computadores com IPs diferentes e roteadores que ajudam os pacotes a chegarem
em seus destinos. Mas IPs so endereos lgicos, que abstraem o endereo fsico de cada uma
das interfaces (ns) da rede. Os endereos fsicos so nicos e definidos pelos fabricantes das in-
terfaces. Como nenhum n no mundo todo pode ter o mesmo endereo fsico, o nmero de bytes
utilizado para defini-los bastante grande. O IP surge com a ideia de tornar mais fcil a configura-
o da rede, possibilitando a existncia de um padro que facilite a instalao e o gerenciamento
de ambientes complexos (numa mesma rede teremos 10.0.0.1, 10.0.0.2, etc). S que o IP en-
tendido pelo computador apenas nas camadas mais altas dos protocolos de comunicao, tendo
que ser convertido em endereo fsico nas camadas mais baixas. Esta converso ser feita com a
ajuda do ARP (Address Resolution Protocol Protocolo de resoluo de endereos). Este proto-
colo possui uma srie de regras e instrues que indicam como os computadores devem descob-

128
Apostila Debian Intermedirio - Desktop Parana

rir o endereo fsico de computadores da rede; como devem se comportar quando souberem que
outro computador esto os procurando; e criam uma tabela (cache) com associaes entre IPs e
MAC Address para serem utilizados no futuro, otimizando o processo.

A pesquisa de um endereo fsico feita da seguinte forma: o computador que deseja des-
cobrir qual o endereo fsico de um determinado IP, ir fazer um broadcast com pacotes ARP.
Estes pacotes ARP sero ignorados por todos, exceto por aquele computador que utiliza o IP pes-
quisado. Este ir, ento, enviar um pacote ARP para o requisitante com algumas informaes a
seu respeito, entre elas o seu endereo fsico. Ento sempre teremos dois pacotes ARP, sendo
um de pesquisa e o outro de resposta enviado pelo computador que est sendo procurado. Tanto
o computador que procura, quanto o que foi encontrado, mantm em cache a associao do IP
com o MAC Address do outro, para que no caso de uma nova conexo, o processo seja realizado
de uma forma mais rpida.

O cache apagado aps algum tempo. Este processo chamado de Aging.

Quando a distncia est fora da abrangncia da transportadora contratada, ela repassa a


encomenda para outra. Pode existir uma transportadora especializada em cada estado, e uma
que transporta encomendas para distncias maiores, como outro continente. A nica exigncia
que as transportadoras tenham contato. Imagine uma encomenda que vai ser enviada do RS para
o PR. A Tch transportes (RS) enviar a encomenda para a Barriga Verde Express (SC) que,
por sua vez, finalmente entregar a encomenda para a Vina on Roads (PR). Caso precise enviar
uma encomenda para a Jamaica, ser necessrio utilizar a transportadora Internetional, que s
possui posto em So Paulo. Ento a encomenda dever ser enviada da mesma forma como no
exemplo anterior, com o adendo de trajeto PR para SP, SP para Jamaica. Para a empresa que
contratou o servio de transporte, mandar para outra cidade ou outro pas parece ter a mesma na-
tureza de entrega, uma entrega direta ao seu destinatrio, j que ela no sabe que haver troca
entre transportadoras. Isso quer dizer que ela induzida a imaginar que a conexo RS e Jamaica
direta, mas, na verdade, por debaixo dos panos, a rede de transporte heterognea (vrias re-
des, ou transportadoras, compondo uma nica rede de transporte). Mas e como saber qual o
trajeto a ser seguido? Atravs da identificao do endereo do remetente e destinatrio (forneci-
dos pela empresa - aplicao) e das tabelas de roteamento, indicando qual o caminho a ser se-
guido para que uma encomenda chegue ao seu destino. Toda essa gerncia e manipulao rea-
lizada pela camada Inter-Redes.

CAMADA DE ENLACE
Esta camada responsvel em transportar os pacotes da camada inter-redes em quadros
pelo meio fsico. Um quadro a unidade da camada de enlace. Todos os pacotes so divididos e,

129
Apostila Debian Intermedirio - Desktop Parana

ento, so anexados a eles um novo cabealho. Este cabealho contm bits que indicam o incio
de um quadro e o fim. Normalmente existe um logartmo (no sei o que isso, mas acho que est
errado) inserido no quadro que permite que a camada de enlace do destinatrio saiba qual o ta-
manho do quadro, mas isso depende da tecnologia utilizada pelos equipamentos e meios fsicos.

Ethernet
Ethernet o protocolo utilizado pela maioria das redes de computadores existentes na atua-
lidade, mas j est sendo trocada pelas tecnologias utilizadas pelas redes wireless. Todas as in-
terfaces esto em contato e todos os quadros so enviados para todos, cabendo a cada uma de-
las verificar se so as responsveis por ele. Este protocolo tem como unidade de transporte o fra-
me, ou quadro. Um quadro composto por vrios compartimentos que possuem naturezas distin-
tas. So eles:

Prembulo;
End de Destino;
End de Origem;
Tipo;
Dados;
FCS.
O prembulo composto por 8 bytes. Quer saber quais so as informaes contidas dentro
deste compartimento? No? Ento no leia abaixo:

10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011

Este compartimento indica que um quadro ir comear. Quando uma interface recebe essas
informaes, a camada de enlace dela interpretar esses dados como o incio de um quadro. De-
pois da assinatura 11 inicia-se o segundo compartimento.

Os 2 seguintes compartimentos so facilmente entendidos. O tipo o protocolo utilizado


pelo meio fsico. No nosso caso, ser o protocolo Ethernet. O compartimento Dados reservado
para as informaes a serem transmitidas. E, por fim, o FCS (Frame Check Sequence Sequn-
cia para Checagem de Quadro) um algoritmo que permite que a camada de enlace saiba se to-
dos os bits do quadro foram recebidos. Isto feito atravs de clculos matemticos.

Vamos verificar tudo que foi visto at agora. Estamos no Paran e o nome da nossa empre-
sa Pilintra's Corporation (aplicao). A filial do Rio de Janeiro liga para ns pedindo uma enco-
menda e indica que ela pode ser enviada ao porto 50000, da transportadora do rio, que foi aluga-
do exclusivamente para recebimento da encomenda. Ns temos um porto exclusivo na transpor-
tadora local para enviar encomendas, que o 10. Este porto est sob a superviso de um fiscal,

130
Apostila Debian Intermedirio - Desktop Parana

que verifica se as encomendas foram enviadas e espera uma confirmao de recebimento vinda
de qualquer um dos destinos. Fecha-se a um soquete, que a associao do porto com confir-
mao 10 da transportadora local (porta TCP) com o porto 50000 da transportadora remota. As
transportadoras local e remota so as redes distintas que trabalham sobre as mesmas regras e
metodologia de entrega, ou seja, mesmo protocolo (TCP/IP). Vamos at o tal balco de recepo
(camada de aplicao) e deixamos nossa encomenda indicando qual ser o destino (a filial da
Pilintra's Corporation no Rio no porto 50000). A encomenda vai para o porto 10 e, de l, aco-
modada dentro do caminho. O motorista recebe o endereo de destino da encomenda, e perce-
be que est fora de sua abrangncia. Ele possui uma tabela de empresas conveniadas que pode-
r entregar a encomenda (tabela de roteamento), e descobre que ter que enviar para uma
transportadora de So Paulo. Para encaminhamento da encomenda, eles precisam de um posto
de troca (gateway) entre as duas transportadoras (duas redes distintas), que fica bem na divisa
dos estados. Atravs do caminho (quadro) e das rodovias (meio fsico), a encomenda chega
at o posto, local onde feito o encaminhamento da encomenda e do endereo de destino. O
mesmo acontece entre SP e RJ. Quando a transportadora do RJ recebe a encomenda, descobre
que a entrega est dentro de sua abrangncia. Leva o caminho at o porto 50000 e descarrega
a encomenda. O fiscal do RJ liga para o fiscal do PR e fala: Chegou, velho! - E encaminha para o
balco de entrega com identificao do destinatrio. O funcionrio da Pilintra's Corporation vai at
o balco e pega a encomenda. A transmisso foi realizada com sucesso.

PARMETROS NECESSRIOS
Para que um host possa pertencer a uma rede, necessrio que ele possua um caminho f-
sico que o ligue rede e alguns parmetros configurados que fazem com que ele identifique ou-
tras interfaces conectadas a esse meio fsico e vice-versa. Todos os parmetros devem possuir
um valor, porm todos tm um valor padro, tendo que, caso seja a vontade do administrador, va-
lores diferentes serem definidos atravs de arquivos de configurao, scripts ou comandos.

IP
O IP a identificao lgica de uma interface. a sua identidade em uma rede. Podemos
obt-lo atravs de um sevidor DHCP ou ento fixando-o um endero no arquivo

Arquivo de configurao: /etc/network/interfaces

Independente da forma escolhida, o arquivo acima deve ser configurado, j que a ativao
da procura de parmetros atravs de um servidor DHCP feita nele. Outra forma de se configurar
este parmetro atravs do comando ifconfig, porm ele funcionar apenas enquanto o servio
networking no for reiniciado.

131
Apostila Debian Intermedirio - Desktop Parana

Rede
A rede que o seu host faz parte pode ser definida atravs do comando interfaces, e a for-
ma mais indicada.

Arquivo de configurao: /etc/network/interfaces

C aso a rede no seja explicitada e o sistema de obteno de parmetros de rede no


seja DHCP, o sistema ir confrontar a mscara padro 255.255.255.0 sobre o IP
atribudo interface para definir a rede. Digamos que o IP seja 10.15.20.200, a rede
ser 10.15.20.0.

Tambm possvel definir uma mscara utilizando o comando ifconfig, porm a alterao
ser temporria (ser visto na pgina 138).

Gateway
Para se definir um gateway para que todas as vezes que o computador for ligado ele seja
definido, possvel se inserir um script de inicializao dentro de um dos rc's alocados dentro
/etc/init.d ou do diretrio /etc/network/if-up.d ou ento configurar no arquivo interfaces explicitando
qual ser o gateway.

Arquivo de configurao: /etc/network/interfaces

Tambm possvel inserir uma rota temporria utilizando o comando route (veremos na p-
gina 142).

Nomes
Computadores trabalham com bits (zeros e uns); a interface de programas criados para con-
figurao da rede trabalham com nmeros; e usurios e administradores, em suas atividades roti-
neiras, trabalham com nomes. Para se trabalhar com nomes, so necessrios servios que faam
a converso de um formato em outro. Antigamente, todos os computadores conectados internet
tinham um arquivo como o hosts, este abaixo:

Arquivo de configurao: /etc/hosts

Neste arquivo existiam todos os nomes utilizados pelas pessoas associados a um endereo
IP. Toda vez que um nome era digitado automaticamente um gerenciador de nomes recebia o
nome e transformava em um IP. A converso de IP para bits era feita pelos protocolos de rede.
Toda vez que algum criava um novo local na rede, enviava o IP e dados adicionais desse local
para um grupo de pessoas que ficavam responsveis por criar um hosts completo e enviar para
todos que estiverem cadastrados em uma lista de e-mails. No comeo funcionava bem, mas com
o tempo uma fila de solicitao de incluso de nomes comeou a crescer muito, e as atualizaes

132
Apostila Debian Intermedirio - Desktop Parana

deste arquivo muito frequente. Para evitar os problemas causados pelo inchao da internet foi cri-
ado o DNS (Domain Name Server - Servidor de nomes de domnio). Este servio substituiu o ar-
quivo local de nomes, servindo como um servidor de converso de nomes. Toda vez que um
nome deve ser convertido em um IP, o DNS consultado e ele retorna o endereo.

Mesmo com os complexos servios de converso de nomes existentes hoje, o arquivo hosts
permanece na maioria dos sistemas Unix-Like.

Dentro deste arquivo possvel associar nomes a IPs sem a necessidade de se consultar
um DNS. Dentro deles temos, por padro, o nome localhost. Este nome significa Terminal Local,
ou seja, o computador em que o usurio est. Ele muito til em vrias tarefas, como testar a in -
terface de rede do seu computador. Para isso o usurio pode pingar para localhost em vez do seu
prprio IP ($ ping localhost), ou ento configurar o CUPS pelo navegador, digita na caixa de ende-
reo http://localhost:631.

Vejamos um exemplo do hosts:

127.0.0.1localhostsafadim
127.0.1.1ecelepar11940.celeparslecelepar11940

Sintaxe: IP nome1 nome2 nome3 nome(n)

Observaes importantes

Todas os campos DEVEM ser separados por espaos (pode ser um, vrios ou TABs);

Os nomes DEVEM comear com um caractere alfabtico;

Os nomes DEVEM finalizar com um caractere alfanumrico;

So permitidos os caracteres alfanumricos, ponto (.) e o hfen (-).

Alm destes nomes, necessrio configurar um servidor DNS para que os endereos da in-
ternet possam ser convertidos. O simples www.google.com.br no poder ser acessado se o re-
solv.conf no estiver configurado com um servidor DNS vlido.

Arquivo de configurao: /etc/resolv.conf

Os DNS devem ser configurados da seguinte forma:

nameserver10.15.16.610.15.16.8

Sintaxe: nameserver DNS1 DNS2 DNS3 DNS(n)

133
Apostila Debian Intermedirio - Desktop Parana

Pode ser usado um nome em vez de um endereo IP.

PRIMEIROS SOCORROS
Antes de qualquer coisa, pensemos o que necessrio fazer para tentar identificar os princi-
pais problemas em uma rede de computadores:

O cabo da internet est conectado corretamente? (verificar se a luz da placa de rede


est acesa e se o seu ponto est funcionando, colocando-o em um outro computador, e colocando
o cabo do outro computador no que apresentou problema originalmente. Utilizar o comando mii-to-
ol para verificar se o protocolo de comunicao da camada fsica foi negociada pgina 157);

possvel pingar para endereos locais e externos? (pingar significa jogar um pacote
para um computador e ver se ele manda-o de volta. Se ele mandar, que est respondendo, es-
tando acessvel. Tentar vrios tipos de hosts interessante para saber se o problema no rotea-
mento de dados. Pode-se ter comunicao na rede, mas quando tentado sair da rede pelo rotea-
dor, algo pode acontecer de errado. Para verificar se as interfaces esto funcionando corretamen-
te e se a conexo com o host pode ser estabelecida, utiliza-se o comando ping pgina 134);

O servio referente rede est rodando corretamente? (reiniciar o servio da rede


uma boa pedida para verificar se ele no estava apenas travado ou ento para receber as primei-
ras informaes de problemas. Para isso execute o comando /etc/init.d/networking restart, logi-
camente que como superusurio);

A interface utilizada para se conectar rede est configurada apropriadamente? (de-


ve-se verificar se a interface est ativa - ifconfig e route - e se os principais arquivos de configura-
o de uma rede esto configurados corretamente - /etc/network/interfaces - /etc/resolv.conf -
/etc/hosts - /etc/network);

Outros servios conseguem se conectar rede? (o navegador pode estar com problema,
mas o ssh consegue se conectar? possvel acessar um local da rede por ftp? As vezes o proble-
ma uma configurao de uma aplicao, e no de configurao do sistema);

Este um bom exemplo de como se comportar diante de um problema de rede. Agora que
j abordamos vrios conceitos necessrios para um bom administrador de redes, vamos verificar
o funcionamento de alguns comandos que devem fazer parte do seu canivete suo.

PING
O ping o comando mais simples e til que voc pode imaginar. Ele simplesmente pergunta
a uma interface remota se ela est acessvel. quase igual a quando voc est num hospital e
aperta o boto da enfermeira sem necessidade nenhuma, s para ver ela entrando desesperada

134
Apostila Debian Intermedirio - Desktop Parana

no seu quarto e ter a segurana de que ela est acessvel e atenta s suas requisies (com a
grande vantagem que as repostas ao comando ping no desacreditam e param de responder na
quinta chamada).

O comando ping utiliza o protocolo ICMP como colaborador principal. Como j vimos, o
ICMP est na camada de rede, junto ao protocolo IP, e auxilia-o em vrias atividades. Como este
protocolo est na camada 3 do protocolo TCP/IP, o ping no realiza troca de dados de aplicativos,
e sim envia um pacote de teste que possui um cabealho com o IP, atributos ICMP e marcas de
tempo para fazer seus clculos posteriormente. Todo o resto do pacote um monte de informa-
es binrias que servem s para preencher a estrutura do frame. O cabealho do IP possui 20
bytes, contendo informaes sobre os IPs da origem e destino das solicitaes. A parte especfica
do ICMP possui 8 bytes. O padro de um pacote com cabealho de 8 bytes mais 56 bytes adici-
onais, com informaes adicionais e bits aleatrios. Se houver resposta, ele verifica o tempo de
resposta e mostra ao usurio.

Os campos mostrados pelo comando ping so os seguintes:

PING<host>(IP_do_HOST)tam1(tam2)bytesofdata.
Tam3bytesfrom<host>(IP_do_HOST):icmp_seq=nttl=ntime=n.nnnms

Os ns so as principais informaes que o comando ping nos trazem. Eles ficam dentro do
cabealho ICMP e so chamados de TTL (Time To Live - Tempo de Vida) e TIME (tempo). Toda
vez que um pacote enviado, ele pode ser considerado perdido e aparece uma mensagem de
erro. Existem vrios motivos para que um pacote se perca, sendo um deles ser excedido o nme-
ro mximo de hops, ou seja, o nmero mximo de roteadores para chegar ao seu destino. O n-
mero padro de no mximo 61 hopes para chegar ao destino. J no caso de haver uma respos-
ta, ser verificado atravs do cabealho ICMP o tempo de sada e de chegada, e calculado o tem-
po que o pacote levou para ir e voltar do destinatrio. Esta informao mostrada em TIME.

A unidade utilizada pelo ping o ms e o acrnimo de milissegundo 1,0 x 10 -3 s ou


0,001 s.

icmp_seq traz uma informao muito valiosa para o administrador: o nmero de sequncia
do pacote que est sendo enviado. Se 10 pacotes forem enviados e apenas o 1, 4 e 10 chegarem,
isso quer dizer que muitos problemas esto acontecendo no caminho, ocasionados provavelmente
por algum dos roteadores. Se isto acontecer, interessante usar o comando traceroute para veri-
ficar onde esto os problemas.

A s informaes de hora e data de sada e chegada dos pacotes ficam num campo
(quadro) chamado timeval, que fica fora dos cabealhos. Assim, se o usurio definir

135
Apostila Debian Intermedirio - Desktop Parana

um pacote menor que o quadro do timeval, que de 8 bytes, a informao TIME no


aparecer.

Vejamos alguns exemplos da utilizao do ping:

1.Verificando se um host remoto est acessvel pelo IP:

~$ping10.15.15.1
PING10.15.15.1(10.15.15.1)56(84)bytesofdata.
64bytesfrom10.15.15.1:icmp_seq=1ttl=61time=0.453ms

O comando ping ininterrupto. Para finalizar a sua execuo, pressione o conjunto


de teclas <CTRL><C>.

2.Verificando se um host remoto est acessvel pelo nome:

~$pingwww.uglypeople.com
PINGwww.uglypeople.com(67.55.69.153)56(84)bytesofdata.
64bytesfrom67.55.69.153:icmp_seq=2ttl=57time=127ms

3.Verificando quais hosts esto disponveis em uma rede (use o broadcast da rede):

~$pingb10.15.15.255
WARNING:pingbroadcastaddress
PING10.15.19.255(10.15.15.255)56(84)bytesofdata.
64bytesfrom10.15.15.57:icmp_seq=1ttl=255time=0.217ms
64bytesfrom10.15.15.18:icmp_seq=1ttl=64time=0.459ms(DUP!)
64bytesfrom10.15.15.3:icmp_seq=1ttl=64time=0.505ms(DUP!)

Caso um computador no esteja acessvel, as seguintes mensagens podero ser mostra-


das na tela:

Mensagem Significado
Network unreacheable Rede de destino intangvel, ou seja, o pacote atingiu o mximo de
pulos de roteadores e no conseguiu encontrar a rede desejada.
Host unreacheable Igual ao anterior, mas em vez de rede, no foi possvel atingir um
host.
Protocol unreacheable O protocolo utilizado pelo cliente est desativado no host remoto.
Port unreacheable A porta pela qual o cliente tenta se comunicar com o host remoto
no possui nenhum servio associado.
Destination network A rede a qual o cliente est tentando se conectar no
unknown reconhecida. Isso quer dizer que no existe na tabela de
roteamento uma sada que o leve rede desejada.
Destination network Igual mensagem anterior, porm o que no se conhece e no
unknown se existe caminho indicado um host.

136
Apostila Debian Intermedirio - Desktop Parana

WGET
Para realizar downloads de arquivos da internet no necessrio se ter uma interface grfi-
ca, apenas o endereo do qu se quer baixar. O wget faz download de arquivos, pacotes e pgi-
nas completas de uma forma no interativa. Objetividade o lema do wget. Coloque o endereo
exato do que vai ser feito download, d um <Enter> e espere a barra chegar a 100%, isto o que
o wget tem a lhe dizer. Outra vantagem da utilizao do wget que ele no interativo, j que no
requer que o usurio que iniciou o processo fique cuidando do descarregamento, podendo at
mesmo se fazer logoff do sistema sem danos ao download. Logicamente que ele deve ser roda-
do em segundo plano atravs do parmetro -b, ou com o e comercial (&) ou manipulando-o
com o comando bg. O wget tambm recomea quantas vezes forem necessrias o download
caso ocorra algum problema (desde que o servidor tenha este recurso). Tudo isto automaticamen-
te.

Prtico e completo, este o WGET!! Revejamos suas caractersticas:

1.Objetividade (coloque um <Enter> e pronto);

2.Rapidez (processo 100% dedicado ao download);

3.Autonomia (no necessrio se ter um usurio logado);

4.Gerenciamento de download (permite que se reinicie o download quantas vezes for de-
sejado).

Voc poder trabalhar com os seguintes protocolos: http, https e ftp. Isso quer dizer que os
endereos devem comear com algum desses termos para que o wget saiba quais sero as re-
gras utilizadas durante a transferncia.

-b (de background) Inicia o wget direto em background.


-q (de quiet) No mostra a sada padro do wget (mensagens e barra de progres-
so de download)
-i <arquivo> Busca dentro de um arquivo de texto puro endereos para fazer
download. Estes endereos devero estar cada um em uma linha prpria.
-r (recursivo) Faz o download no s de uma pgina, mas de todas as pginas que
estiverem dentro do mesmo domnio do site especificado.

$wgethttp://www.celepar.pr.gov.br
2009030416:05:54http://www.celepar.pr.gov.br/
Resolvendowww.celepar.pr.gov.br...200.189.113.212
Aconectarwww.celepar.pr.gov.br|200.189.113.212|:80...conectado!
HTTPrequisioenviada,aguardandoresposta...200OK
Tamanho:naoespecificado[text/html]
Agravarem:'index.html.7'

[ <=>

137
Apostila Debian Intermedirio - Desktop Parana

]33.246.K/sem0,07s

2009030416:05:54(457KB/s)'index.html.7'gravado[33246]

C aso seja necessrio passar por um proxy para chegar internet, necessrio confi-
gur-lo no arquivo /etc/profile.

IFCONFIG
Este comando j foi visto no mdulo bsico deste curso, porm de forma superficial. Ele
mostra ao administrador as informaes acerca de uma (ou todas) interface de rede. possvel,
tambm, mudar alguns parmetros da rede atravs dele, mas estas alteraes sero vlidas so-
mente enquanto o computador permanecer ligado ou enquanto algum daemon de rede no atuali-
zar os parmetros de acordo com os seus respectivos arquivos de configurao. Ou seja, as confi-
guraes sempre so temporrias.

O comando pode ser usado sem nenhuma informao adicional. Feito isso, o resultado ser
todas as interfaces de rede ativas no sistema. Se o administrador desejar verificar todas as interfa-
ces, inclusive as ocultas, dever executar o comando com o parmetro -a (de ALL - TODOS em
ingls).

$sudoifconfig
eth0Linkencap:EthernetEndereodeHW00:22:15:9e:c1:10
inet end.: 10.15.17.26 Bcast:10.15.19.255
Masc:255.255.252.0
endereoinet6:fe80::222:15ff:fe9e:c110/64Escopo:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Mtrica:1
RXpackets:6899938errors:0dropped:0overruns:0frame:0
TXpackets:517361errors:0dropped:0overruns:0carrier:0
colises:0txqueuelen:1000
RXbytes:2916776889(2.7GiB) TXbytes:158556252(151.2
MiB)
IRQ:216EndereodeE/S:0xc000

Existem vrios campos mostrados pelo ifconfig. Vejamos quais so eles:

Link encap Encapsulamento da comunicao


Mostra qual o tipo de encapsulamento de dados adotado pela camada de
enlace.
Endereo de Endereo de HW - Endereo de Hardware
HW Mostra qual o endereo fsico da interface (o MAC address).

138
Apostila Debian Intermedirio - Desktop Parana

inet end Interface Net Endereo - Endereo da interface de rede


Mostra qual o IP atribudo interface.
Bcast Broadcast
Mostra qual o endereo que a interface usar quando quiser enviar
mensagens de broadcast.
Masc Mscara
Mostra qual a mscara da rede a qual a interface pertence.
BROADCAST Informa que a interface suporta broadcast.
MULTICAST Informa que a interface suporta multicast.
MTU Maxime Transfer Unit - Unidade mxima de transferncia
Informa qual o tamanho mximo de dados trafegados em cada quadro
(frame) no meio fsico utilizado pela interface (quadros so os
agrupamentos criados na camada de enlace do protocolo TCP/IP).
RX Packages Received - Pacotes recebidos livres de erros
Mostra a quantidade de pacotes recebidos da rede atravs da interface
indicada.
Errors: Pacotes enviados a esta interface que no chegaram.
Dropped: Pacotes negados por esta interface.
Overruns: Pacotes no recebidos por terem chegado antes do kernel ter
indicado que eles poderiam ser enviados.
frame: Pacotes que tiveram problema no momento de sua montagem,
devido a falta de algum quadro.
TX Packages Transmitted - Pacotes transmitidos livres de erros
Mostra a quantidade de pacotes enviados para a rede atravs da interface
indicada.
Errors: Pacotes transmitidos por esta interface que no chegaram ao
destino.
Dropped: Pacotes transmitidos negados pela interface de destino.
Overruns: Pacotes transmitidos no recebidos por terem chegado antes do
kernel do destinatrio ter indicado que eles poderiam ser enviados.
Carrier: Nmero de vezes que a via de transmisso (o transportador) foi
desabilitada, como um cabo de rede que foi retirado ou ento um switch
que foi desligado.
colises Nmero de pacotes colididos na rede. Sempre que um computador quer
enviar algum dado pelo meio fsico, ele escuta este e verifica se o caminho
est livre. Se estiver, ele manda seu quadro. Pode ser que dois
computadores escutem a rede, verifiquem a disponibilidade de transmisso
e enviem ao mesmo tempo um quadro. Isto far com que os quadros
colidam e ambos tenham que enviar novamente.

IRQ Interrupt Request - Requisio de Interrupo


Mostra qual o endereo IRQ 21 utilizado pela interface. possvel verificar
este endereo, e at alter-lo, atravs do arquivo /proc/interrups.
Endereo Endereo de Entrada e Sada
de E/S O IRQ a identificao, aqui temos o endereo fsico na memria principal
referente ao espao especfico de pedido de interrupo.

21 IRQ um sinal que indica a necessidade de determinado dispositivo de utilizar o processador. Cada endereo IRQ
um endereo fixo na memria. Quando um dispositivo precisa enviar dados para serem processados, ele envia um
sinal ao espao fixo associado a ele, fazendo com que o processador saiba que dever receber dados dele e process-
los. Como os IRQ tm prioridades altas, o processador deve interromper tudo para processar os dados.

139
Apostila Debian Intermedirio - Desktop Parana

O lenny traz o suporte a IPv6 nativamente. Podemos verificar o endereo atribudo


interface aps inet6. Ainda no existem muitos servios rodando com este protoco-
lo, mas provavelmente ele ir substituir o IPv4. Se voc quiser estud-lo, existem vrias
fontes na internet a respeito.

Existem alguns flags que trabalham com o ifconfig e o permitem realizar configuraes tem-
porrias no seu computador.

A pesar de serem configuraes temporrias, possvel definir o ifconfig para ser ro-
dado no boot do computador.

up
Faz com que a interface de rede torne-se acessvel camada inter-rede. Sem isto, o proto-
colo TCP/IP no sabe de sua existncia.

Sempre devemos indicar qual interface deve ser ativada em relao camada inter-rede (e
automaticamente ao sistema) e depois indicar o flag up.

#ifconfigeth0up

Se desejado, o administrador poder definir os parmetros de rede da interface. Vamos criar


um alias de interface para que voc possa testar:

#ifconfigeth0:0192.168.1.100netmask255.255.0.0up

Agora, executando o comando ifconfig ser possvel ver que a interface foi ativada:

eth0:0Linkencap:EthernetEndereodeHW00:22:15:9e:c1:10
inet end.: 192.168.1.100 Bcast:192.168.255.255
Masc:255.255.0.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Mtrica:1
IRQ:216EndereodeE/S:0xc000

O UP e o RUNNING indicam que a interface est ativada e j em atividade. O UP in-


dica que a interface est disponvel, com identificao IP e conectada camada in-
ter-rede, e o RUNNING indica que a placa est aceitando pacotes da rede e enviar da-
dos, caso solicitado.

down
Far o inverso que o flag up faz. Desativa a interface, ou seja, torna a interface inacessvel
pela camada inter-rede. Fazendo isso, todas as entradas na tabela de roteamento que referencia-

140
Apostila Debian Intermedirio - Desktop Parana

rem esta interface sero apagadas.

P ara enxergar todas as interfaces que no esto ativas, necessrio utilizar o par-
metro -a.

A utomaticamente, aps derrubar uma interface, qualquer entrada dela na tabela de


roteamento ser apagada.

IFUP E IFDOWN
Tem diferena destes comandos com o ifconfig? Sim! Estes comandos usam o ifconfig e os
scripts que ficam dentro de diretrios prprios deles.

IFUP: Executa o IFCONFIG <Interface> UP e todos os scripts que ficam dentro do diretrio
/etc/network/if-up.d.

IFDOWN: Executa o IFCONFIG <Interface> DOWN e todos os scripts que ficam dentro do
diretrio /etc/network/if-down.d.

Toda vez que o ifup executado ou uma interface a qual deseja-se ativar deve ser especifi-
cada, ou ento o parmetro -a (de auto) deve ser definido. O parmetro -a ir ativar TODAS as
interfaces que estiverem setadas com AUTO. O mesmo pode ser feito com o idown, com a dife-
rena que todas as interfaces sero derrubadas, independente de estarem ou no setadas como
auto.

Veja os exemplos de utilizao. Dentro do arquivo /etc/network/interfaces, irei definir a se-


guinte interface de rede:

ifaceeth0:LOUCOinetstatic
address10.0.0.10
netmask255.0.0.0

Repare que no estou colocando a linha auto eth0:LOUCO.

Agora irei reiniciar o servio de rede:

#invokerc.dnetworkingrestart

Executando o ifconfig posso verificar que o alias est ativo:

#ifconfig
eth0:LOUCOLinkencap:EthernetEndereodeHW00:22:15:9e:c1:10
inetend.:10.0.0.10Bcast:10.255.255.255Masc:255.0.0.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Mtrica:1
IRQ:216EndereodeE/S:0xc000

Podemos perceber que a interface est funcionando. Agora iremos executar o comando

141
Apostila Debian Intermedirio - Desktop Parana

para desativar TODAS as interfaces ativas:

#ifdowna

Todas as interfaces vo ser desativadas. Agora iremos entrar no arquivo /etc/network/interfa-


ces e iremos inserir o alias eth0:LOUCO na mo. As seguintes linhas sero inseridas:

autoeth0:LOUCO
ifaceeth0:LOUCOinetstatic
address10.0.0.10
netmask255.0.0.0

P ara criar o alias necessrio se utilizar uma interface existente. No meu caso usei a
interface eth0 e criei um alias chamando-a de eth0:LOUCO, podendo ser qualquer
nome aps os dois pontos. Outro detalhe que deve ser observado quanto a diretiva do
eth0. Ele no pode estar setado como allow-hotplug. Se estiver, troque por auto eth0.

Verifique com ifconfig se existem alguma interface ativa. Ver que no existe nenhuma. Ago-
ra execute o comando abaixo:

#ifupa

Todas as interfaces estaro ativas, inclusive o alias eth0:LOUCO (sempre verifique com o if-
config). Agora volte ao arquivo /etc/network/interfaces e comente a linha do alias que contm auto
eth0:LOUCO. Agora execute os dois comandos abaixo:

#ifdowna
#ifupa
#ifconfig

Voc ver que somente a placa eth0 est ativa, isso porque o alias est sem a opo auto.
Para ativ-la ser necessrio especificar a interface utilizando # ifup eth0:LOUCO.

ROUTE
O comando route manipula ou simplesmente mostra as informaes contidas na tabela de
roteamento do kernel de seu computador. A tabela de roteamento indica os caminhos possveis
que cada pacote a ser enviado dever seguir para chegar interface remota. um mapa que pos-
sui regras de navegao pela rede. o GPS dos pacotes. Cada interface tem sua prpria tabela
de roteamento. Se existirem duas interfaces em um mesmo computador, ambos podem estar co-
nectados a redes diferentes e servirem de roteadores de pacotes entre elas. Vejamos a cara de
uma tabela de roteamento:

$routen
TabeladeRoteamentoIPdoKernel

142
Apostila Debian Intermedirio - Desktop Parana

Destino Roteador MscaraGen. OpesMtricaRef Uso


Iface
10.15.17.22 10.15.16.1 255.255.255.255 UGH00 0 eth0
10.15.16.0 0.0.0.0255.255.252.0U 000eth0
192.168.0.00.0.0.0255.255.0.0 U000eth1
0.0.0.010.15.16.10.0.0.0UG 000eth0

No caso acima, temos 4 regras e elas so atendidas pela prioridade. Quanto mais acima
mais prioritria.

1.A primeira linha define que todos os pacotes que tenham como destino o computador es-
pecfico 10.15.17.22 devero ser enviados ao roteador 10.15.16.1 atravs da interface eth0;

2.A segunda linha define que todos os pacotes que tenham como destino a rede 10.15.15.0
com mscara 255.255.252.0 devem ser enviados por broadcast para todas as interfaces que te-
nham conexo fsica direta com a interface eth0;

3.A terceira linha define que todos os pacotes que so enviados para a rede 192.168.0.0
com mscara 255.255.0.0 devem ser enviados por broadcast para todas as interfaces que tenham
conexo fsica direta com a interface eth1;

4.Caso nenhuma das regras anteriores forem atendidas, a a regra padro, indicada por
0.0.0.0 no destino (como se fosse um coringa que indica Qualquer endereo), atendida. Na
quarta linha, qualquer pacote destinado a endereos que no se encaixem nas regras anteriores
devem ser enviados ao roteador 10.15.16.1.

Em opes podemos verificar algumas letras. O U indica que a regra est UP, ou seja, ATI-
VA; o G indica que o destino um roteador e no um broadcast s escuras; e o H indica que o
destino um HOST, ou seja, a regra se aplicar a um computador especfico, e no a uma rede
inteira (indicao existente para diferenciar da opo mais comum, que como destino a rede).

Vale frisar que sempre que as regras so atendidas na seguinte ordem:

1 Cache de roteamento;
2 Tabela de roteamento do kernel, tendo as primeira linhas prioridade em relao s anteri-
ores.

E esta ordem no editvel. Quem as define o prprio gerenciador de roteamento. Veja-


mos outros campos que aparecem na sada deste comando:
Colunas Descrio
Mtrica Mostra o nmero de saltos necessrio para chegar ao destino. Antigamente, o
roteamento de pacotes era feito na unha. Hoje em dia temos roteadores que
fazem este trabalho. Ento sempre que um host no estiver na rede local, ele
enviado para um roteador que saber o que fazer. Como o destino ser um
roteador conectado interface de destino, no haver nenhum salto. Sendo
assim, hoje em dia muito difcil se encontrar algum valor de mtrica diferente

143
Apostila Debian Intermedirio - Desktop Parana

de zero.
Ref Tambm obsoleto, este campo mostra o nmero de interfaces que referenciam
um destino. Isto era interessante para saber se um destino que estivesse a
alguns hopes de distncia possua alguma interface (caminho alternativo)
apontando para ele.
Uso Ao utilizar o parmetro -C com o route, possvel visualizar o CACHE de
roteamento. Todos os caminhos realizados so armazenados l at o
reiniciamento do computador. Se um mesmo destino for definido por algum
servio de rede, o gerenciador de roteamento verificar que a entrada j existe
no cache, permitindo que ele seja encontrado da forma mais eficaz. Neste
campo verificamos quantas vezes cada uma das entradas do cache so
utilizadas.
Iface (Interface) Indica a qual interface a regra se aplica.

Agora vamos verificar como configurar a tabela de roteamento. Cabe observar que o traba-
lho de roteamento feito por softwares especficos dos roteadores, por isso, iremos configurar
apenas duas opes: pacotes destinados a computadores da rede local e computadores de redes
remotas.

Sintaxe
Voc sempre precisar digitar o nome do comando

1 route

e depois dizer qual a operao desejada

2a add (adicionar uma nova rota) OU

2b del (remover uma rota existente)

Ento deve-se definir se o destino vai ser

3a -host (um computador especfico)

Ex: -host 192.168.15.15

3b -net (uma rede definida)

Ex: -net 10.15.15.15 netmask 255.255.255.0 (define a rede 10.15.15.0/24)


Ex: -net 10.15.15.0 netmask 255.255.255.0 (define a mesma rede)

S empre que o alvo -net for usado, devemos utilizar o complemento netmask. Se for
utilizado o alvo -host esta informao no deve ser passada.

3c default (qualquer computador do mundo que no especificado em outras regras -


pode ser substitudo por -net 0.0.0.0)

Aps isso, tem-se que configurar para quem dever ser enviado o pacote caso o campo

144
Apostila Debian Intermedirio - Desktop Parana

Destino seja atendido.

4a gw (gateway - roteador)

Ex: gw 10.15.15.1 (define que os pacotes devem ser enviados para o roteador
10.15.15.1)
4b NADA (no define roteador)

Agora, se assim desejar, podem ser inseridos parmetros e a interface a qual ter a regra
definida.

5 dev (device - interface que adotar a regra)

Ex: dev eth0 (define a regra para a interface eth0)

E sta opo obrigatria para definir uma regra para a rede local. Isso assim porque
se existirem mais de uma interface de rede, ser necessrio indicar qual delas est
conectada fisicamente rede.

Principais parmetros:

Parmetro Descrio
-C (cache) Mostra o cache de roteamentos j realizados desde que o computador foi
ligado.
-n No mostra nomes dos destinos ou roteadores. Dependendo do seu
DNS, esta opo torna mais rpida a consulta.

Exemplos
Ento vamos para nossos exemplos. Vamos comear com uma tabela completamente zera-
da:

#routen
TabeladeRoteamentoIPdoKernel
DestinoRoteadorMscaraGen.OpesMtricaRef
UsoIface

Nada. Agora iremos criar uma regra dizendo que sempre que um pacote que for destinado a
rede local 10.1.1.0 seja enviado por broadcast para todos os computadores conectados a menos
de um salto de distncia. Usaremos os seguintes nmeros vistos anteriormente:

1=porserconfiguraoderotadepacotes;
2a=porsereventodeadioderota;
3b=portercomodestinoumarede(aredelocal);
4b=porquenoiremosdefinirumroteador;

145
Apostila Debian Intermedirio - Desktop Parana

5=porqueobrigatrionaconfiguraodepacotesdestinadosredelocal.

#routeaddnet10.1.1.0netmask255.255.255.0deveth0
#routen
TabeladeRoteamentoIPdoKernel
Destino Roteador MscaraGen. OpesMtricaRef Uso
Iface
10.1.1.0 0.0.0.0 255.255.255.0U 0 0 0
eth0

Agora j conseguiremos pingar, por exemplo, para qualquer computador da rede. Para pin-
gar uma pgina da internet, precisaremos de um roteador que nos conecte a ela. No meu caso, o
roteador que me conecta ao mundo o 10.1.1.1. Vejamos como configurar um roteador para qual-
quer computador de uma rede externa.

1=porserconfiguraoderotadepacotes;
2a=porsereventodeadioderota;
3c=porsetratardeumaredeespecficaconfiguradano/etc/networks;
4a=porqueumroteadorserdefinidoparatentarencontrararededesejada;
5=regrasseroaplicadasprimeirainterfaceativadapelosistema.

#routeadddefaultgw10.1.1.1
#routen
TabeladeRoteamentoIPdoKernel
Destino Roteador MscaraGen. OpesMtricaRef Uso
Iface
10.0.0.0 0.0.0.0 255.255.255.0U 0 0 0
eth0
0.0.0.0 10.1.1.0 0.0.0.0 UG 0 0 0
eth0

E se tivssemos uma segunda interface de rede e quisssemos configurar um roteador e a


rede local a qual ela est conectada? Repetiramos os dois processos anteriores, s mudando as
interfaces e os endereos. A rede local hipottica seria 192.168.16.0

#routeaddnet192.168.16.0netmask255.255.252.0deveth1
#routeadddefaultgw192.168.16.1deveth1

O seu computador estaria ligado, se fosse como mostrado acima, em duas redes distintas.
Se ele tiver um software especfico de roteamento pode vir a se tornar um roteador.

IFTOP
parecido com o comando que visualiza os processos carregados na memria, s que este
verifica o trfego de rede de uma interface especfica. Ele fica escutando e delatando tudo que
sua interface est fazendo. possvel definir qual interface deseja-se escutar, mas no neces-

146
Apostila Debian Intermedirio - Desktop Parana

srio. Caso no seja especificada a interface, a primeira encontrada a que ser verificada.

O iftop no vem instalado por padro. O pacote para instalao o iftop.

A sada do comando ter a seguinte cara:

Figura 10: Sada do comando IFTOP


O iftop meio espaoso, e percebe-se isso pelo fato dele utilizar toda a tela. No possvel
utilizar o terminal enquanto ele estiver rodando, j que ele roda em modo foreground22.

No topo da tela temos as taxas de transferncia, que variam de 0kbps (quilo bytes por se-
gundo) a 977kbps. As interaes que estiverem com maior taxa de trfego ficaro mais acima na
lista. A tela ser atualizada a cada 2 segundos com novas informaes de conexes e taxas de
transferncias.

Abaixo da escala de taxas de transferncia temos seis colunas com campos diferentes. Ve-
jamos cada uma deles:

Primeira coluna
Endereo da primeira interface do par da conexo.

P ode ser mostrado como nome, IP e pode ser habilitada a opo de mostrar a qual
porta UDP ou servio o pacote pertence (isto feito atravs do parmetro -p).

22 Primeiro plano.

147
Apostila Debian Intermedirio - Desktop Parana

Segunda coluna
Indicao do sentido da comunicao entre o par de interfaces. Se o sentido for da interface
da esquerda para a interface da direta, a indicao ser =>. O contrrio ser <=. Sempre teremos
as duas vias da comunicao. Na primeira linha de cada interface temos a taxa de transferncia
dela para o destino, e na linha seguinte a taxa de transferncia do destino para a origem.

Terceira coluna
Endereo da outra interface que est ou recebendo ou enviando algum pacote. Fecha o par
da linha.

Quarta, quinta e sexta coluna


Taxa de transferncia do pacote que passou pela interface. So trs colunas pois existe a
taxa de transferncia entre as duas interfaces mostradas nas colunas 1 e 3 em funo de trs in-
tervalos diferentes: 2, 10 e 40 segundos.

Na parte inferior da tela existe um resumo das atividades de rede da interface que est sen-
do analisada. Existem disponveis para consulta as seguintes informaes:

TX Informa a quantidade de dados que foram enviados pela interface que est sendo
analisada.
cumm Total de dados enviados desde o incio da execuo do IFTOP.
peak Pico: Maior taxa de transferncia de dados enviados nos ltimos 40
segundos.
rates Taxas: Mostra a taxa de transferncia total dos pacotes enviados da
interface nos ltimos 2, 10 e 40 segundos.
RX Informa a quantidade de dados que foram enviados pela interface que est sendo
analisada.
cumm Total de dados recebidos desde o incio da execuo do IFTOP.
peak Pico: Maior taxa de transferncia de dados recebidos nos ltimos 40
segundos.
rates Taxas: Mostra a taxa de transferncia total dos pacotes recebidos da
interface nos ltimos 2, 10 e 40 segundos.
TOTAL Mostra o total de cada coluna mostrada anteriormente.
cumm Total de dados transmitidos (recebidos e enviados) pela interface.
peak Pico: Soma das maiores taxas de transferncia dos dados enviados e
recebidos.
rates Taxa: Mostra a taxa de transferncia total dos pacotes recebidos e
enviados da interface nos ltimos 2, 10 e 40 segundos.

Alguns parmetros interessantes que podem ser usados durante a execuo do comando:

148
Apostila Debian Intermedirio - Desktop Parana

Parmetro Descrio
H (mais.) H de Help - Ajuda: ir informar-lhe quais so os principais parmetros do iftop.
P (mais.) P de Paralisar: paralisa a tela no momento de sua ativao. Para desparalisar,
deve-se clicar novamente sobre as teclas <SHIFT><P>.
o (mins.) o de Ordem: este parmetro congela a ordem das interfaces, mas no para a
atualizao do monitoramento. O que est na primeira linha continuar na
primeira linha e com atualizaes normais das taxas de velocidade de
transmisso; a segunda linha ficar sempre na segunda linha e assim por
diante.
p (mins.) p de Porta: paralisa
SeD Habilita a opo de visualizao de portas ou servios que so responsveis
(maus.) pelos pacotes.
S de Source (origem): habilita a visualizao da porta que est sendo
utilizada pela interface de origem.
D de Destino: habilita a visualizao da porta que est sendo utilizada pela
interface de destino.
t t de Tipo: altera o tipo de visualizao. Existem quatro. Para alternar basta
pressionar seguidamente a mesma tecla.
1: mostra a taxa de transferncia do par de interface em duas vias;
2: mostra a taxa de transferncia do par de interface em uma linha;
3: mostra a taxa de transferncia somente da origem ao destino;
4: mostra a taxa de transferncia somente do destino origem.
jek Vo uma tela para cima e para baixo, respectivamente. Interessante de ser
usado quando a tela est congelada (atravs do parmetro o).
l l de Locate - Localize: localiza alguma interface especfica.
Para procurar algum endereo, por exemplo, pressione a tecla <l> para que
aparea Screen filter> no topo da tela. Escreva o nome da interface e
pressione sobre <ENTER>. Para voltar a visualizao normal pressione
novamente <l>, apague o que tiver aps Screen filter> e pressione <ENTER>
novamente.
No afeta os subtotais que aparecem na parte inferior da tela.

Agora que voc j est hacker no iftop, vamos praticar. Iremos executar o iftop j com a op-
o de nomes suprimidos ativada.

#iftopn

Perceba que existem muitas linhas que so de broadcast. Toda vez que um computador
qualquer da sua rede faz um broadcast por qualquer motivo, voc recebe o pacote e verifica se
ele lhe pertence. Estas entradas aparecem no iftop. Tirando estas entradas, temos apenas cone-
xes com outros computadores, sendo voc o cliente ou servidor. Abra um novo terminal e execu-
te o comando:

$ping<oseugateway>s2048

149
Apostila Debian Intermedirio - Desktop Parana

S e voc no souber qual o gateway do computador em que est, ento complicou.


Releia o comando route. Caso esteja com preguia, copie o comando a seguir sem
entender nada route -n | grep 'UG[ \t]' | awk '{print $2}' .

Agora volte para o terminal que o iftop est e tente encontrar a linha que tenha o seu IP e o
gateway digitado como par. Para facilitar digite <l>, digite o ip do gateway e pressione <Enter>.

10.15.17.100 =>10.15.16.18.22Kb5.75Kb1.44Kb
<=8.22Kb5.75Kb1.44Kb

Veja que o filtro fez com que somente as linhas que contm o que foi usado como critrio de
filtro de tela aparece. Por estarmos pingando, um pacote enviado e deve ser respondido, sendo
que a transmisso se d em ambos os lados de forma igual. O computador 10.15.17.100 est en-
viando dados para o computador 10.15.16.1 enquanto este est enviado para aquele tambm, e
podemos ver os dados na linha de baixo. Do meu computador para o gateway, nos ltimos 2 se-
gundos a taxa de transferncia foi de 8.22kb, no ltimos 10 segundos foi de 5.78kb e nos ltimos
40 segundos a taxa mdia foi de 1.44kb. Do destino para a minha interface foi a mesma coisa.
Este comando muito interessante para saber quem est conectado sua mquina e quanto da
sua interface ele est exigindo. Num servidor apache utilizamos muito este comando para saber-
mos quem est conectado ele e se a banda est dando conta de atender a todas as requisies.

TRACEROUTE
Ir mostrar o caminho na rede percorrido pelos pacotes at chegar ao computador de desti-
no. Este caminho traado atravs dos hopes transpostos pelos pacotes. Se forem necessrios
2 roteadores at chegar ao servidor, sero mostrados 3 pontos (2 roteadores mais o servidor). To-
das as interfaces destes ns so identificados pelo IP

$traceroute10.15.17.186
tracerouteto10.15.17.186(10.15.17.186),30hopsmax,40bytepackets
110.15.17.186(10.15.17.186)4.549ms4.559ms4.554ms
$traceroutewww.google.com.br
traceroute to www.google.com.br (209.85.193.99), 30 hops max, 40 byte
packets
110.15.16.1(10.15.16.1)1.087ms1.478ms1.788ms
210.15.55.252(10.15.55.252)1.186ms1.226ms1.282ms
3 brinf99.google.com(209.85.193.99) 2.413ms 4.006ms4.044
ms

No curso Debian Bsico, o comando route indica qual o roteador utilizado para acessar re-
des externas. Neste curso iremos estud-lo mais aprofundadamente, mas por enquanto vejamos
um exemplo simples de seu resultado:

150
Apostila Debian Intermedirio - Desktop Parana

$sudorouten
TabeladeRoteamentoIPdoKernel
DestinoRoteadorMscaraGen.OpesMtricaRefUsoIfa
ce
10.15.16.00.0.0.0255.255.252.0 U 0 0 0eth0
0.0.0.010.15.16.10.0.0.0 UG 00 0eth0

Veja acima que existem duas regras configuradas no computador utilizado para demonstrar
o traceroute: (a) se o computador que se deseja conectar estiver na rede 10.15.16.0 com mscara
255.255.252.0 (do IP 10.15.16.0 a 10.15.19.255), ento no ser necessrio intermdio de rotea-
dor, podendo a requisio ser mandado diretamente ao IP servidor; (b) qualquer outro computador
dever ter a conexo estabelecida atravs do roteador 10.15.16.1. Beleza! Agora veja que, com o
comando traceroute, o IP 10.15.17.186 estava na rede 10.15.16.0, 255.255.252.0, por isso o cami-
nho percorrido pelos pacotes reto, direto, havendo apenas um passo. J o IP do google
209.85.193.99, que est fora da rede do computador usado para o teste. Por isso, primeiro deve-
se passar pelo roteador (10.15.16.1) e a os pacotes vo passando por outros roteadores at che-
gar ao computador requisitado (209.85.193.99, cujo nome br-in-f99.google.com).

tracerouteto10.15.17.186(10.15.17.186),30hopsmax,40bytepackets
110.15.17.186(10.15.17.186)4.549ms4.559ms4.554ms

Para entender o que est sendo mostrado acima, vamos utilizar um equipamento especial
para gravar o que o traceroute fala enquanto executa o comando.

Tranandorotadainterfacedestecomputador aocomputadordedestino,
que10.15.17.186,sendoqueireipassarpornomximo30roteadores23.Seat
lningumsouberdessecomputador,desisto.Meumeiodetransporteter40by
tes(incluindome).Vamosl!Opa,estecomputadorrequisitadoestnestarede
mesmo,jvoulistloaquiechegadetrabalho.

1hopeparachegaraocomputadordedestino.Em3testes,leveinaprimeira,
segundaeterceiravez,4.549ms,4.559mse4.554msrespectivamenteparaire
voltar.

ttl (Time To Live)


Os hopes (ou saltos) so os ns de rede transpostos pelos pacotes. Eles servem para defi-
nir um limite de saltos que o pacote poder dar at chegar ao seu destino. Normalmente no se
precisa de mais de 5 saltos para se chegar ao destino. Se isso acontecer, o roteamento deste pa-

23 Mas se o mximo de 30 hopes, o certo no seria 29 roteadores mais o servidor? Mas para o roteador tanto faz,
afinal, pode ser que o servidor seja um roteador.

151
Apostila Debian Intermedirio - Desktop Parana

cote est errado, podendo at estar em looping (ser jogado de um roteador para o outro infinita-
mente). Para calcular a quantidade de saltos, os pacotes enviados pelo traceroute possuem em
seus cabealhos um parmetro ttl com o valor inicial indicado na linha inicial do comando.

tracerouteto10.15.17.186(10.15.17.186),30hopsmax,40bytepackets

O nmero mximo de hops 30. Para verificar se o nmero de saltos foi excedido, a cada
n de rede que o pacote passa, o valor ttl diminudo em um. Se o computador alvo estiver na
mesma rede do requisitante, ao chegar ao destino, este ir diminuir o valor do ttl em um e enviar
dois pacotes origem. O primeiro enviado pelo protocolo ICMP dizendo que o alvo foi atingido
(tambm responsvel por indicar que o alvo no foi atingido) e o segundo com as informaes
de ttl, data hora, etc. Se o pacote precisar passar por roteadores, cada um deles diminuir o valor
do ttl em um, at chegar na interface que receber o ttl com valor 1. Ele ir enviar uma mensagem
atravs do protocolo ICMP informando que o alvo est inalcanvel.

ARP
O Address Resolution Protocol (protocolo de resoluo de endereo), mais conhecido ape-
nas pelo seu acrnimo ARP, o conjunto de instrues residente camada de enlace da pilha
TCP/IP que faz a resoluo de IPs e endereos fsicos (MACs), mantendo uma tabela com as as-
sociaes utilizadas. Como j vimos, o que trafega no meio fsico da rede so os quadros, ou fra-
mes. Estas unidades de dados so pacotes, criados pelo protocolo IP, fragmentados e com cabe-
alhos contendo o endereo fsico de suas origens e destinos. S que os computadores no tm
como saber qual o endereo fsico dos destinos sem ser atravs de um questionamento a toda
rede. Eles fazem a pergunta atravs de um broadcast.

Quem responde por este IP? - pergunta a origem.

Sei l - responde o computador A - Muito menos eu - responde o computador B.

, seus loucos, sou eu o responsvel por essa treta a! - apresenta-se o computador C - e


meu endereo fsico este aqui: 01:22:15:8e:f1:16 .

O computador A, irritado, resolve se impr e evitar futuros incmodos:

, velho. V se agora para de perguntar quem o C porque tenho muita coisa para fazer
para ficar dando ateno desnecessria voc!

Desde ento criou-se o ARP. Ele uma tabela contendo todos os endereos fsicos que res-
pondem por IPs utilizados recentemente, justamente para que aps a primeira pergunta, a origem
no tenha que se preocupar novamente em pesquisar o endereo fsico de seu destino e para que
a rede seja descongestionada de broadcast desnecessrios.

152
Apostila Debian Intermedirio - Desktop Parana

O comando que manipula a tabela ARP recebe o mesmo nome do protocolo: arp. Com ele
possvel adicionar ou remover entradas tabela, ou simplesmente visualiz-la.

Ao digitar apenas arp e pressionarmos <Enter>, a tabela com as associaes mostrada.

#arp
AddressHWtypeHWaddressFlagsMask Ifa
ce
10.15.16.1ether00:0f:23:c0:5d:ff C eth0
10.15.16.6ether00:00:5e:00:01:16 C eth0
10.15.16.2ether00:50:da:1f:95:4d C eth0
10.15.18.6ether00:11:d8:f7:57:62 C eth0

A primeira coluna contm os endereos IPs de interfaces s quais o seu computador se co-
nectou recentemente. A segunda tem o protocolo utilizado na camada fsica (quase sempre
ser ether, de ethernet). A terceira mostra qual o endereo fsico da interface. A quarta coluna
possui algumas flags (caracteres denotativas) que informam:

C - Completa (que a associao est completa);

M - Permanente (que a associao permanente).

A ssociao permanente quer dizer at a reinicializao do computador ou at a reini -


cializao das interfaces de rede atravs do ifdown e ifup (executa os scripts do
ifup.d).

Para apagar uma entrada da lista, usa-se o parmetro -d. Veja abaixo:

#arpn
AddressHWtypeHWaddress FlagsMask Ifa
ce
10.15.17.109ether 00:1c:25:4a:f3:0a Cbr0
#arpd10.15.17.109
#arpn
AddressHWtypeHWaddress FlagsMask Ifa
ce
10.15.17.109 (incompleto) br0

V eja que a flag C sumiu. Isso porque o kernel no sabe mais qual endereo responde
por 10.15.17.109.

Para adicionar ou alterar uma entrada, precisaremos apenas utilizar o parmetro -s junto
do IP e do endereo fsico. A sintaxe a seguinte:

arp -s <IP> <MAC(com dois pontos separando os octetos)>

#arps10.15.17.10900:1c:25:4a:f3:0a

153
Apostila Debian Intermedirio - Desktop Parana

#arpn
AddressHWtype HWaddress FlagsMaskIface
10.15.17.109 ether 00:1c:25:4a:f3:0a CM br0

Existem alguns parmetros importantes a serem vistos. Vejamos quais:

Parmetro Descrio
-n (numrico) Mostra os IPs em vez de nomes.
-H Permite especificar outros protocolos da camada de enlace. O padro o
ether de ethernet. Outras opes so:

-i (interface) Permite que o administrador especifique a qual interface ir criar a


associao. Se um computador possuir duas interfaces eth (eth0 e eth1), e
for associado a eth0 um MAC f de um IP a, quando a eth1 quiser saber
qual endereo fsico responde ao IP a, ele ter que fazer um broadcast
para a rede e o computador responsvel dever enviar novamente seu
MAC f.

DIG
O comando dig o acrnimo da frase que sintetiza sua funo, que em ingls Domain In-
formation Groper (pesquisa s escuras de informaes de um domnio). Exatamente! A funo do
dig procurar meio que s escuras, ou seja, sem certeza de que receber resposta, em uma lista
pblica (algo como uma lista telefnica) informaes a respeito de um nome ou endereo de host,
domnio ou ento as configuraes da prpria lista pblica. Esta lista nada mais do que um DNS
(um servidor do sistema de domnios de nomes). Sempre desejaremos saber o que um servidor
de nomes sabe a respeito de algum dos objetos citados acima (host, domnio, servidor), utilizamos
este comando que imergir rede (local ou internet) adentro e trar uma resposta. O dig precisa,
ento, destes campos mais o tipo de pesquisa a ser realizada para lhe entregar um resultado til.
Iremos abordar o assunto DNS no mdulo avanado deste curso, por isso, bastar-nos-, por en-
quanto, saber que o dig ir permitir que consigamos as seguintes informaes:

Um IP a partir de um nome;

Um nome a partir de um IP.

A sintaxe deste comando a seguinte:

dig @servidor-de-nome tipo-de-pesquisa objeto-a-ser-pesquisado

Servidor-de-nome
Pode ou no ser especificado o nome ou endereo do servidor a ser indagado sobre um ob-
jeto. A especificao pode ser feita atravs de um nmero IP verso 4 (denotado por octetos sepa-
rados por pontos) ou ento um nmero IP verso 6 (denotado por nmeros hexadecimais separa-

154
Apostila Debian Intermedirio - Desktop Parana

dos por vrgulas). Caso o servidor no seja especificado, o aplicativo dig ir realizar a pesquisa no
servidor definido no arquivo /etc/resolv.conf.

Tipo de pesquisa
Indica o que se pretende indagar ao servidor, qual o nome a partir de um endereo ou qual
o endereo a partir de um nome? O padro se ter um endereo (Address) a partir de um
nome, que, no caso, definido utilizando-se a letra A ou omitindo esta informao. Para o inverso,
utilizamos o parmetro -x.

Objeto a ser pesquisado


Nome, endereo IPv4, IPv6, ou servidor. Neste curso basta que voc saiba que ter que in-
dicar o que ser resolvido: ou um IP passado para se retornar um nome ou um nome passado
para se retornar um endereo.

Exemplos de sadas
No nosso exemplo, iremos indagar ao nosso DNS padro qual o endereo da mquina
que responde pelo endereo www.google.com.br. O comando para realizar a consulta fcil, po-
rm a sada pode parecer um pouco complicada. Veja abaixo uma explicao acerca de cada uma
das partes (as partes esto identificadas com nmeros e a explicao est aps a sada):

#digwww.google.com.br

;<<>>DiG9.5.1P3<<>>www.google.com.br (1)
;;globaloptions:printcmd
;;Gotanswer:
;;>>HEADER<<opcode:QUERY,status:NOERROR,id:52760
;;flags:qrrdra;QUERY:1,ANSWER:6,AUTHORITY:6,ADDITIONAL:6

;;QUESTIONSECTION: (2)
;www.google.com.br.INA

;;ANSWERSECTION: (3)
www.google.com.br.92370INCNAMEwww.google.com.
www.google.com.262286INCNAMEwww.l.google.com.
www.l.google.com.61INA64.233.163.99
www.l.google.com.61INA64.233.163.103
www.l.google.com.61INA64.233.163.104
www.l.google.com.61INA64.233.163.147

;;AUTHORITYSECTION: (4)
l.google.com.2983INNSa.l.google.com.
l.google.com.2983INNSg.l.google.com.
l.google.com.2983INNSe.l.google.com.

155
Apostila Debian Intermedirio - Desktop Parana

l.google.com.2983INNSb.l.google.com.
l.google.com.2983INNSd.l.google.com.
l.google.com.2983INNSf.l.google.com.

;;ADDITIONALSECTION: (5)
g.l.google.com.6218INA74.125.95.9
d.l.google.com.6159INA74.125.77.9
b.l.google.com.6035INA74.125.45.9
e.l.google.com.6218INA209.85.137.9
a.l.google.com.6035INA74.125.53.9
f.l.google.com.6035INA72.14.203.9

;;Querytime:2msec (6)
;;SERVER:10.15.16.6#53(10.15.16.6)
;;WHEN:MonSep2110:20:272009
;;MSGSIZErcvd:339

1. Na primeira parte temos apenas alguns informaes bsicas sobre o comando e o tipo
de pesquisa. O nmero 9.5.1-P3 indica a verso do DIG. Em global options indicado
a forma como a sada se dar. O padro a impresso na tela. Existe a possibilidade
de se alterar esta sada, mas devido a desnecessidade desta alterao, cabe a voc
consultar o menu do comando caso deseje alterar esta opo;

2. QUESTION SECTION: indica qual foi a indagao realizada. No nosso exemplo, esta-
mos indagando qual o endereo IP do nome www.google.com.br. O IN indica que o
endereo pertence a Internet;

3. ANSWER SECTION: indica quais foram os resultados de endereos que respondem


pelo nome. Perceba que vrios endereos apareceram. Isso quer dizer que, para um
mesmo nome, vrios servidores respondem para evitar que haja um congestionamento
em apenas um. Eles so redundantes, o que quer dizer que quando um atualizado,
todos so. Caso um deles venha a sair do ar, existem outros que continuaro realizan-
do o trabalho de servir servios do google. O CNAME um apelido (vem de Change
Name) e indica que o endereo que est esquerda um apelido do que est direi-
ta. Podemos concluir que existem 4 endereos que respondem pelo nome pesquisado,
mas isso no acontece diretamente. Quando digitamos www.google.com.br, verifica-
do que ele um apelido de www.google.com., e abaixo vemos que www.google.com.
um apelido de www.l.google.com., que, da sim, o nome oficial do google, cujo servi-
dores so listados (todo os que comeam com 64);

4. AUTHORITY SECTION: Neste campo temos os domnios responsveis pelo nome


principal (www.l.google.com.br). Existem vrios DNS por quais a pesquisa pode ser re-
alizada. Perceba que ns temos as flags IN e NS. O IN indica que a consulta foi feita

156
Apostila Debian Intermedirio - Desktop Parana

na Internet, e o NS indica qual o no nome do servidor (Name Server) que respons-


vel pela converso do nome da esquerda em um endereo;

5. ADDITIONAL SECTION: Campo adicional que apenas tem funo de informar ao ad-
ministrador qual o endereo dos servidores com autoridade sobre a resoluo do
nome principal;

6. QUERY TIME: Tempo de pesquisa informado em milissegundos (10 -3 s); SERVER: Ser-
vidor e porta utilizada para o incio da pesquisa; WHEN: Data e hora da consulta. MSG
SIZE: tamanho da mensagem recebida.

MII-TOOL
A maioria das redes utiliza o protocolo Ethernet para transferncia de dados pelo meio fsico.
As redes Ethernet permitem que possam ser enviados ou recebidos as seguintes quantidades de
informao a cada segundo:

Velocidade da porta Descrio


10baseT-HD 10 megabit half duplex
10baseT-FD 10 megabit full duplex
100baseTx-HD 100 megabit half duplex
100baseTx-FD 100 megabit full duplex
Tabela retirada do site http://linux-ip.net/html/tools-mii-tool.html

Vamos converter as unidades para nos situarmos no nosso mundo:

1 megabit (Mb) igual a 1 MILHO de 1 BIT (b) = 1 MILHO DE BITS (1.000.000 bits)

1 BYTE (B) igual a 8 BITS (b), ento 1 Mb = 125kB (quilobytes)

Caso 1: 100 megabit = 100 vezes 1 Mb = 100 vezes 125kB = 12,5MB

Caso 2: 10 gigabit = 10 vezes 100 vezes 1Mb = 1.000 vezes 125kB = 125MB

No caso 1, temos que uma placa 100base Tx pode enviar ou receber 12,5MB a cada se-
gundo. Um DVD completo de 4GB levaria 5 minutos e 20 segundos para ser enviado ou recebido
pela rede.

No caso 2, temos que uma placa 10gigabit que pode enviar ou receber 125MB a cada se-
gundo. O mesmo DVD do exemplo acima seria enviado ou recebido pela rede em 32 segundos.

Ainda existe a possibilidade de se ter uma transmisso e uma recepo de um quadro ao


mesmo tempo durante um ciclo. No caso 1, teramos ento 200Mb por ciclo (100Mb para envio, e
100Mb para recebimento). O half (metade) e full (completo) duplex indicam se existe esta trans-

157
Apostila Debian Intermedirio - Desktop Parana

misso e recepo simultneas de quadros. Uma placa de 100base Tx-HD (o HD de Half Du-
plex) envia ou recebe dados numa ordem de 100Mb por segundo. Isto resulta em no mximo
100Mb por segundo trafegados. J as placas 100 base Tx-FD transmitem e recebem quadros si-
multaneamente numa ordem de 100Mb por segundo cada uma das tarefas. Isto resulta em uma
taxa de transmisso mxima entre as interfaces de 200Mb por segundo.

Negociao
Toda vez que uma interface cria um link (uma ligao) entre ela e outra interface 24, desde
que tenha este recurso disponvel (as placas mais modernas possuem), executa o processo de
negociao para estabelecer o melhor modo de transmisso possvel. Esta negociao autom-
tica e realizada pelos protocolos da camada de enlace. As interfaces definem a opo mais rpida
de comunicao. Imagine um computador tendo como melhor opo publicada o modo 10base
Tx-FD tentando comunicar-se com um computador com interface que possui como melhor opo
publicada o modo 100base Tx-FD. Ser verificado que a melhor opo, dentre as possibilidades,
a primeira, e ser realizada a comunicao entre as duas interfaces com o ele. Isto s ser poss-
vel se o meio permitir, existindo cabos prprios para HD (cabo de par tranado, que separa o meio
de envio e de recebimento). Se existirem no caminho entre os computadores cabos coaxiais ou
ento hubs, automaticamente no ser possvel ser realizada a conexo por FULL DUPLEX, j
que estas arquiteturas propiciam um meio de transmisso nico. Nestes meios, se quadros distin-
tos forem enviados ao mesmo tempo, eles iro colidir um no outro e haver perda de dados. Nes-
te caso, mesmo com interfaces 100base TxFD, 1000baseTxFD ou at mesmo 10gigabit, a cone-
xo ser feita atravs do melhor modo HD (um ciclo para enviar e outro para receber).

Para visualizar tais informaes, o usurio s precisa executar como superusurio ou com
auxlio do sudo o comando mii-tool:

$sudomiitool
eth0:negotiated100baseTxFD,linkok
eth1:nolink

No exemplo acima, podemos verificar que existem duas interfaces de rede conectadas ao
meu sistema: eth0 e eth1. A primeira interface negociou com o switch a qual ela est conectada o
modo 100baseTx-FD. Ou seja, ele transmitir, sempre que possvel, com a velocidade de 100 me-
gabits por segundo e poder transmitir e receber quadros simultaneamente (FD - Full Duplex), ou
seja, ter uma taxa de transmisso mxima entre as interfaces de 200Mbps (o ps quer dizer per
second - por segundo). Se o administrador desejar, ele pode alterar este valor utilizando o mii-tool.

24 pode ser um outro computador atravs de uma topologia de barramento ou anel, ou ento a um hub, switch ou
roteador atravs de uma topologia estrela

158
Apostila Debian Intermedirio - Desktop Parana

O bserve que no exemplo acima, apesar da taxa mxima de transmisso ser de


200Mbps, no possvel se fazer download ou upload utilizando esta taxa. S ser
possvel enviar a 100Mbps e ao mesmo tempo receber a 100Mbps. como se tivsse-
mos em uma rodovia ps feriado. A mo que volta da praia fica congestionada e a que
vai completamente vazia.

E por que se pode conectar dois computadores, um com interface 10FD, o outro com 100FD
utilizando a opo 10FD e no com 100FD? Por que normalmente as interfaces que tm tecnolo-
gia mais avanada abrangem as tecnologias mais simples tambm. Utilizando o parmetro -v
podemos verificar mais informaes a respeito das interfaces, entre elas quais so as modos (tec-
nologias) disponveis:

#miitoolv
eth0:negotiated100baseTxFD,linkok //Onegociadocomomeio
productinfo:vendor00:00:00,model0rev0
basicmode:autonegotiationenabled //Autonegociaohabi
litada
basicstatus:autonegotiationcomplete,linkok //Negociao
completa
capabilities:100baseTxFD100baseTxHD10baseTFD10baseTHD
advertising:100baseTxFD100baseTxHD10baseTFD10baseTHD
linkpartner:100baseTxFD100baseTxHD10baseTFD10baseTHD

E o qu que so estes capabilities, advertising e link partner? Isso a fcil. Em capabili-


ties so apresentados todos os modos que a placa tem condio de trabalhar. O advertising mos-
tra quais so os modos que a sua placa dir s outras interfaces que ela trabalha. Se o adminis-
trador tiver interesse, ele pode forar um tipo de conexo indicando apenas um modo disponvel.
E para finalizar, o link partner indica quais so os modos que a interface a qual a sua est conec-
tada trabalha. Se a sua interface tiver o modo 1000base Tx-FD, mas estiver conectada em um
switch que s tem suporte ao modo 10base Tx-HD, a conexo ser estabelecida com este ltimo
modo. Para verificar isto, basta utilizar, ento, este comando com o parmetro -v e verificar os
modos do link parter (parceiro de comunicao).

Alterar os modos disponveis


Toda vez que existe uma conexo fsica entre duas interfaces, os protocolos da camada de
enlace iro negociar qual o melhor modo de transmisso. Para isso, preciso que cada uma
das interfaces digam quais so os modos os quais possuem suporte. Este dizer um evento
chamado publicar. O que publicado no necessariamente o que a interface realmente tem su-
porte. O administrador pode definir apenas alguns dos modos que a interface possui. Veja como
definir modos especficos.

#miitooladvertise10baseTHD,10baseTFD

159
Apostila Debian Intermedirio - Desktop Parana

restartingautonegotiation...
#

Agora somente os trs modos sero publicados. Os outros modos no sero utilizados. Para
separar os modos necessrio separ-los com uma vrgula. No se preocupe com a ordem.

S e o administrador quiser ou verificar as informaes de negociao de uma interface


do seus sistema especfica, basta indicar qual a interface a ser alterada: # mii-tool
eth0 --advertise 10baseT-HD,100baseTx-HD

Mensagens de erro
Abaixo temos algumas mensagens de erro que podem ser apresentadas pelo mii-tool:

SIOCGMIIPHY on eth? failed: Invalid argument

O administrador ou executa o comando mii-tool sozinho (aparecendo todas as inter-


faces disponveis) ou define uma interface de rede. Se a interface definida estiver desativada (de-
sassociada da camada inter-rede), ento o comando retornar o erro mostrado. Isso nos mostra
que s podemos verificar as informaes de autonegociao em interfaces ativas.

SIOCGMIIPHY on eth? failed: Operation not permitted

O comando foi executado por um usurio normal. Somente o superusurio pode


executar o miit-tool.
SIOCGMIIPHY on eth? failed: No such device

Se o comando for executado informando-se a interface, mas esta no existir, este


comando ser mostrado.

SIOCGMIIPHY on eth? failed: Operation not supported

Indica que ou a sua interface ou a interface a qual ela est tentando se conectar
no respondem aos pacotes que permitem que o mii-tool verifique estas informaes.

NETSTAT
Este um comando muito verstil de consulta de informaes de rede. No se consegue al-
terar nada, porm pode-se visualizar muita coisa importante para um bom gerenciamento de um
computador. Ele tem uma funo padro, que verificar as conexes feitas nas portas UDP e
TCP, porm permite que o administrador consiga realizar vrios outros tipos de consultas. Veja o
que pode ser visualizado com ele:

As conexes feitas pelas portas UDP e TCP;

Tabela de roteamento;

160
Apostila Debian Intermedirio - Desktop Parana

Estatsticas de trfego das interfaces;

Conexes mascaradas (criadas por NAT);

#netstat
ConexesInternetAtivas(servidoreseestabelecidas)
ProtoRecvQSendQEndereoLocalEndereoRemotoEstado

Acima temos um exemplo das sadas do netstat caso seja evocado na sua forma padro.
Ele ir mostrar todas as conexes de estabelecidas nas portas TCP, UDP e soquetes, nesta or-
dem. A sada mostrada acima referente conexes TCP e UDP. Se voc estiver fazendo um ssh
em outro computador, aparecer que a porta 22 (se o ssh estiver utilizando a porta padro) est
sendo usado por este servio.

Cada uma das colunas traz uma informao diferente das conexes estabelecidas pelo seu
computador.

Primeira coluna (Protocolo utilizado)


Informa qual o protocolo utilizado para fazer a identificao do servio da camada de apli-
cao. Os protocolos so UDP, TCP e UNIX.

O protocolo UNIX no faz parte da pilha TCP/IP. Ele um protocolo prprio do kernel
linux e tem funo de disponibilizar um meio de comunicao entre processos do
sistema, ou seja, indica que a conexo local e feita por soquetes.

tcp6deindica que quem est tratando de identificar a quais processos os segmentos


dados pertencem o protocolo TCP, porm, na camada inter-redes, o res -
ponsvel por realmente criar o pacote com informaes de roteamento o IPv6.

Segunda coluna (Fila de dados a serem recebidos)


Um quadro de dados chega camada de enlace, que o joga para a camada inter-redes, que
junto vrios quadros e e cria um pacote que jogado para a camada de transporte, local este que
o protocolo pertinente ir indicar qual servio deve buscar as informaes. Se for um protocolo
TCP ou UDP, o servio conectado porta que recebeu dados deve ir busc-los. Caso no faa
isso, aparecer nesta coluna o total de bytes que esto esperando pelo pai.

Terceira coluna (Fila de dados a serem enviados)


Sempre que dados esto esperando para serem enviados na camada de transporte (espe-
rando, por exemplo, que o buffer de dados do destinatrio seja liberado - controle de fluxo do
TCP), ser mostrado o total de bytes na fila.

161
Apostila Debian Intermedirio - Desktop Parana

T anto nesta quanto na segunda coluna, o ideal que o nmero de bytes tenda sem-
pre a zero. Se isto no acontecer, pode estar havendo algum problema na mdia de
comunicao, na interface de destino, ou nos aplicativos instalados no seu computador,
fazendo com que as informaes a serem transmitidas fiquem sempre paradas.

Quarta coluna (Endereo local)


O netstat, nesta primeira parte (TCP e UDP) sempre mostrar a conexo feita por um par de
interfaces. Estas conexes, logicamente, so feitas entre o sistema em que o administrador est e
uma interface remota. Nesta coluna mostrado o endereo da interface local.

Quinta coluna (Endereo remoto)


Nesta coluna mostrado o endereo do computador remoto do par da conexo. Se deseja-
do, pressionando o parmetro -p junto ao comando, possvel verificar quais so as portas ou
servios que esto sendo utilizadas na conexo.

O s nomes de servios so resolvidos pelo arquivo /etc/services, que atribui um nome


s portas bem conhecidas. Se apenas um nmero aparecer, esta porta no est es-
pecificada no arquivo citado. Para forar a sada de nmero em vez de nomes, usa-se o
parmetro -n junto ao comando.

Sexta coluna (Estado)


Mostra o estado da conexo. Se existir uma conexo, ser mostrado o valor ESTABELECI-
DA. Utilizando o parmetro -a junto ao comando, todas as portas abertas sero mostradas. As
que esto com conexes estabelecidas, aparecem como dito antes. Se a porta estiver somente
escutando a rede, ou seja, livre e pronta a receber conexes, o valor desta coluna ser OUA.
Existe a possibilidade de se ter mais dois valores nesta coluna: ESPERANDO SINCRONIA e ES-
PERANDO PARA ENVIAR. Em ambos os casos a fila de dados ser diferente de zero, j que no
primeiro caso a porta do computador em que o administrador estiver estar esperando que os
aplicativos busquem informaes, enquanto no segundo caso, a porta contm dados a espera
para enviar dados a alguma interface remota, que provavelmente est indisponvel ou com buffer
de dados recheado e transbordando.

Praticando
Conecte-se ao seu prprio computador por ssh (utilize um usurio comum):

$sshlocalhost

162
Apostila Debian Intermedirio - Desktop Parana

S e a conexo no se der, voc j possui conhecimento suficiente para faz-lo funcio-


nar. Verifique se sua interface esta ativada, se a porta do ssh est aberta e se o ar -
quivo de configurao sshd_config est configurado de forma a permitir que o seu usu-
rio se conecte.

Agora execute o comando netstat como superusurio e use um filtro para trazer apenas as
linhas que contiverem o servio ssh. Abaixo utilizei os parmetros a para

#netstatap|grepssh
tcp 00*:ssh *:* OUA
23009/sshd
tcp 00localhost:53439localhost:sshESTABELECIDA24217/ssh
tcp 00localhost:sshlocalhost:53439ESTABELECIDA24218/sshd:fcamar
tcp6 00[::]:ssh[::]:* OUA
23009/sshd

Veja que o ssh, servio da camada de aplicao, utiliza o protocolo TCP da camada de
transporte para realizar a identificao de seus dados e atar o par de interfaces em uma conexo
confivel. Das quatro linhas, a primeira e a ltima esto apenas em estado de escuta. A primeira,
caso requisitada, utilizar o protocolo IPv4, enquanto a segunda ir realizar conexo com IPv6. As
duas do miolo representam uma conexo entre dois pontos com confiabilidade. A linha abaixo:

tcp 00localhost:53439localhost:ssh ESTABELECIDA24217/ssh

esta linha mostra que o computador cliente que se conecta ao computador servidor est uti-
lizando uma porta aleatria, que no exemplo 53439. Todos os dados enviados ao computador de
destino vo para a porta padro do ssh do servidor (22).

tcp 00localhost:sshlocalhost:53439ESTABELECIDA24218/sshd:
fcamar

A outra linha indica o servidor, j que temos uma conexo do localhost no localhost. Normal-
mente quando voc estiver se conectando a algum computador remoto, a situao ser como na
segunda linha, quando algum se conectar ao seu computador, a situao ser como na terceira
linha. Nela, o computador local utilizar a porta padro do ssh (22) para receber dados

exibe o estado da porta TCP e UDP ativas

As portas permitem distinguir a quais aplicativos cada pacote pertence.

MTU (Maxime transfer unit - Unidade de transferncia mxima) define qual o tamanho m-
ximo de um frame.

GERENCIADOR WICD
Acrnimo de Wired and Wireless Network Connection Daemon (gerenciador de conexes a

163
Apostila Debian Intermedirio - Desktop Parana

redes cabeadas e sem fio), este gerenciador vem tentar facilitar a vida do administrador unificando
todas informaes da rede e das interfaces de um sistema num nico programa grfico. interes-
sante para configuraes rpidas ou visualizaes de informaes de uma forma mais amigvel,
porm no substitui os comandos de rede vistos anteriormente, j que um administrador de redes
dever frequentemente trabalhar em sistemas servidores, que quase nunca possuem suporte gr-
fico. Abaixo temos um screenshot do wicd:

Figura 11: Janela do Wicd


O Wicd tentar sempre conectar a todas as redes que estiverem disponveis e que o admi-
nistrador indicar que ele dever tentar. O Wicd, por si s, dar preferncia para redes cabeadas,
que so mais confiveis e estveis. Se no existir nenhuma rede deste tipo, mas tiver uma rede
wirelesss, ele procurar aquela que tiver o melhor sinal e tentar se conectar. obvio que o admi-
nistrador pode configurar uma rede qualquer como padro, mas este o comportamento do wicd
nos casos em que a rede padro no esteja disponvel.

Estrutura do Wicd
Wicd composto de duas partes principais: o daemon (gerenciador residente na memria),
que roda com privilgios de superusurio; e a interface do usurio, que roda com privilgios nor-
mais do usurio conectado interface grfica. Ambos rodam em processos diferentes e se comu-
nicam atravs do D-Bus.

D bus uma interface utilizada como meio de comunicao entre aplicativos desktop.
O D indica Desktop e o BUS indica um meio de transmisso. Um bom exemplo o
plugin do Rhytmbox que instalado no Pidgin. Este plugin usa o Dbus para colocar em
comunicao ambas aplicaes, permitindo que a msica que estiver tocando seja mos-

164
Apostila Debian Intermedirio - Desktop Parana

trada num campo O que estou ouvindo no Pidgin.

O daemon responsvel por criar e configurar conexes a redes, ler e escrever arquivos de
configurao e de log, e monitorar os status das conexes. O trabalho destinado ao daemon di-
vido entre dois processos: (1) wicd-daemon.py e (2) monitor.py.

E xecute o ps aux utilizando os filtros adequados para confirmar que os dois esto ro-
dando em seu computador.

Todo monitoramento dos status das conexes e a tarefa de reconexo automtica a redes
realizada pelo monitor.py. Todo o resto do trabalho realizado pelo wicd-daemon.py.

A interface grfica j faz parte do wicd-client, que constitudo por um cone no painel, uma
janela principal de configurao e suas abas funcionais. Ele no passa de uma interface daemon-
usurio, no sendo fundamental para o funcionamento da rede. Periodicamente o wicd-client per-
gunta ao processo correspondente como andam as coisas para que ele possa atualizar as infor-
maes em sua janela. Esta comunicao feita atravs do Dbus. Outra forma dele ser atualiza-
do por sinais enviados pelo Dbus diretamente a ele. Normalmente informaes j estabelecidas
so perguntadas pelo cliente, enquanto erros e eventos novos so avisados pelos daemon. Quan-
do configuraes so realizadas pelo assistente cliente, as novas informaes so enviadas aos
dameon e estes aplicam as alteraes e realizam todos os procedimentos necessrios, como rei-
nicializao dos servios envolvidos e alterao dos arquivos de configurao, para que as mu-
danas perdurem.

Funcionamento e configuraes
O assistente principal ser aberto, e nele todas as redes disponveis aparecero. Iremos ver
tarefas teis que podem ser realizadas por ele. Cada interface que o usurio tiver em seu compu-
tador ter um perfil prprio com suas configuraes. Pode-se configurar um dos perfis como Pa-
dro. Isto far com que a conexo do seu computador utilize-a prioritariamente.

Desconectar-se de uma rede especfica: selecione a rede a qual deseja se desconectar e


clique sobre o boto <Desconectar>;

Desconectar-se de todas as redes: clique sobre o boto na aba superior <Discconnect


All>;

Conectar a uma rede especfica: selecione a rede a qual deseja se conectar e clique sobre
o boto <Conectar>;

Criar um novo perfil: clique sobre o boto <Adicionar> e defina o nome ao perfil;

Configurar parmetros essenciais de uma rede: selecione o perfil que deseja configurar e

165
Apostila Debian Intermedirio - Desktop Parana

clique sobre o boto <Propriedades>;

Excluir um perfil existente: selecione o perfil a ser excludo utilizando o menu suspenso e
depois clique sobre o boto <Excluir>.

PREFERNCIAS GLOBAIS

Clicando sobre o boto <Preferences> a janela de configurao aberta e possvel reali-


zar configuraes que sero aplicadas em todas as conexes e perfis existentes no seu computa-
dor. Vejamos o que mais interessante:

Always switch to a wired connection when available: se existirem pelo menos duas co-
nexes, uma wired (cabeada) e outra wireless (sem cabo), ser dado preferncia rede cabeada,
que normalmente mais estvel;

User global DNS servers: permite que os DNS sejam definidos e utilizados por todas as
conexes do seu computador;

Automatic Reconnection: reconecta automaticamente a uma rede que caiu quando ela es-
tiver UP novamente;

Notifications: com ele, mensagens na rea de notificao informaro as mudanas de sta-


tus das redes disponveis.

166
Apostila Debian Intermedirio - Desktop Parana

REFERNCIAS BIBLIOGRFICAS
Mota Filho, Joo Eriberto; Descobrindo o Linux. So Paulo:NOVATEC, 2006

W. Murhammer, Martin; at all. TCP/IP Tutorial e Tcnico. So Paulo: MAKRON Books, 2000.

Nemeth, Evi. Manual do Administrador do Sistema UNIX. Rio Grande do Sul: ARTMED
EDITORA S.A., 2002.

S. Tanenbaum, Andrew. Computer Networks. New Jersey: PRENTICE HALL, 1988.

http://www.faqs.org/docs/linux_network/x-087-2-iface.ifconfig.html

http://linux-ip.net

http://www.jonny.eng.br

http://www.vivaolinux.com.br/artigo/Entendendo-o-processo-de-boot/?pagina=1

http://debian-br.sourceforge.net/docs/sgml/pratico/online/ch-init.html

http://pt.wikipedia.org/wiki/Log_de_dados

http://under-linux.org/b160-usando-syslog-em-shell-script-com-logger

http://www.cyberciti.biz/tips/howto-linux-unix-write-to-syslog.html

http://focalinux.cipsga.org.br/guia/avancado/ch-log.html

http://www.debian.org/doc/manuals/securing-debian-howto/ch4.pt-br.html

http://www.debian-administration.org/articles/56

http://www.vivaolinux.com.br/artigo/Usando-cron-e-crontab-para-agendar-tarefas/?pagina=2

http://www.debian.org/releases/stable/s390/ch08s03.html.pt_BR

http://sergioaraujo.pbwiki.com/Guia+de+comandos+Linux

http://www.basicallytech.com/blog/index.php?/archives/23-command-line-calculations-using-
bc.html

http://www.vivaolinux.com.br/artigo/BC-A-sua-calculadora-programavel-no-Linux?pagina=1

http://www.guiadohardware.net/dicas/fazendo-backup-recuperando-mbr-tabela-particoes.h-
tml

http://www.vivaolinux.com.br/artigo/Checando-seu-sistema-de-arquivos-com-fsck/

http://www.uniriotec.br/~morganna/guia/fsck.html

http://pt.wikipedia.org/wiki/Fsck

167
Apostila Debian Intermedirio - Desktop Parana

http://linuxcommand.org/man_pages/fsck8.html

http://www.htmlstaff.org/guiafoca/intermediario/ch-cmdc.htm

http://www.uniriotec.br/~morganna/guia/last.html

http://pt.wikibooks.org/wiki/Guia_foca_Linux/Iniciante%2BIntermedi
%C3%A1rio/Comandos_para_manipula%C3%A7%C3%A3o_de_contas/last

http://www.uniriotec.br/~morganna/guia/lastlog.html

http://pt.wikibooks.org/wiki/Guia_foca_Linux/Iniciante%2BIntermedi
%C3%A1rio/Comandos_para_manipula%C3%A7%C3%A3o_de_contas/lastlog

http://www.vivaolinux.com.br/dica/O-comando-lsof/

http://danielmiessler.com/study/lsof/

http://br-net.org/post/lsof-o-canivete-suico

http://www.akadia.com/services/lsof_intro.html

http://tecinfofsj.forums-free.com/comando-lspci-t7.html

http://www.devin.com.br/comandos-informacoes-do-sistema/

http://www.dicas-l.com.br/dicas-l/20060531.php

http://www.ime.usp.br/~ueda/ldoc/rb.html

http://www.uniriotec.br/~morganna/guia/nice.html

http://www.infowester.com/linprocessos.php

http://www.juliobattisti.com.br/artigos/windows/tcpip_p35.asp

http://paginas.fe.up.pt/~mgi97018/nslookup.html

http://paginas.fe.up.pt/~mgi97018/nslookup.html

http://www.ime.usp.br/~ueda/ldoc/rb.html

http://www.uniriotec.br/~morganna/guia/nohup.html

168

You might also like