Sie sind auf Seite 1von 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.

Documento Verso Data de Reviso Equipe Tcnica

Apostila Debian Intermedirio - Desktop Parana 1.9 29 de Janeiro de 2010, por Robson Alves Pavan 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 168 pginas

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

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 ferramentas 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 falamos 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 agrupamento 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 instrues 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 binrios, 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 independente 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 utilizados 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 executado pelo superusurio (root). Quando tentamos utilizar esses recursos como usurios comuns, 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 instncia 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 pacote atravs do APT.

Apostila Debian Intermedirio - Desktop Parana

Para o correto funcionamento do APT, os repositrios de onde sero baixados os pacotes devem estar corretamente configurados no arquivo sources.list que se encontra no diretrio /etc/apt.

configurao do arquivo sources.list deve ser feita da seguinte forma: primeiramente 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 cdigos 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 dependentes 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 pacotes 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 funcione, precisamos instalar tambm todas as suas dependncias e as dependncias de suas dependncias. 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: verificar se o pacote existe na lista local, resolver as dependncias, solicita ao servidor todos os pacotes 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 dependncias 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 exibido um relatrio com toda relao de pacotes a serem instalados, removidos e atualizados, alm de, em alguns casos, mostrar uma relao de pacotes sugeridos ou recomendados 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 administrador. 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 disponveis 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 manter 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 acumul-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 pacotes no sistema. Se quisermos instalar mais de um programa, basta escrever todos os nomes separados 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 automaticamente. Quando voc requisita a instalao de um pacote que no tem dependncias, a instalao comea imediatamente. Caso existam dependncias, elas so mostradas a voc e o programa 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 instalar 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 removido; 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 Celepar, ou verses de software instaladas manualmente (atravs de compilao do cdigo fonte, por exemplo), podero gerar problemas graves, impossibilitando inclusive o uso posterior do sistema. 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 distribuio que ser instalada no sistema. apt-get remove PACOTE - Remove um ou mais pacotes. Esta operao faz a desinstalao 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 arquivos 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 programas 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 determinado pacote contendo cdigo fonte de um programa possui, para ser compilado. Por exemplo: 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 necessrios 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 verifica se h alguma dependncia quebrada que necessita ser resolvida (utilizando-se apt-get -f install) 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 desagradveis. 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 pesquisar informaes mais detalhas sobre um determinado pacote. apt-cache search NOME - Para procurar por um pacote qualquer, executamos este comando. 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 pacote. 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 alterado, 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 arquivos de configurao para saber qual ser o seu comportamento. Nas verses anteriores ao Debian 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 deles 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.

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

!!Por motivos estritamente didticos, iremos, a partir de agora, indicar cada arquivo 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 opo 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 atravs 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 utilizados 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 discutiremos 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 configurao 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 utilizados 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.

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 manter 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) necessrio criar o arquivo preferences para que possa na instalao selecionar qual verso ter prioridade e de qual verso voc deseja instalar os pacotes.

16

Apostila Debian Intermedirio - Desktop Parana

uito cuidado quando estiver trabalhando com verses diferentes, uma m instalao de pacote pode gerar quebras de pacotes e at mesmo a paralisao do sistema. 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]

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 utilizar 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 arquivo /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 dependncias desencontradas, conflitos, estrutura de diretrios e pacotes, e compilao de aplicativos, 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 especficos.

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 pacotes. 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 resoluo 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.

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 principais 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 construo. 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 destino. 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 instalados nos sistema (ou seja, que deram pau por algum motivo durante a instalao). Durante a instalao, 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 dados, 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 expresso 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 informaes, 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 determinado 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 apresentado 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 arquivo de controle e uma descrio de o qu o compe e quanto ocupa de espao (conffiles, control, md5sums, postinst, preinst, posrm e prerm). -S <arquivo> Permite descobrir qual o pacote que possui algum arquivo. Ele muito interessante, 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 arquivo, 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 configurao 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

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 verificar 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 criar algum diretrio ou arquivo no lugar de um outro j existente.

O
Opes

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

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 sistema de gerenciamento de pacotes. Tenha certeza que voc especificou esta opo antes da citao 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 corretamente. 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

aso o aplicativo sl j esteja instalado, ser necessrio reinstalar a aplicao utilizando 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 estar 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 controle 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 listas 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 aplicativo desinstalado que possui seus arquivos de configurao ainda presentes na estrutura de diretrios 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 instalado 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 realizados, 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 atividades de duas formas diferentes. A primeira ser realizar a extrao nos lugares definidos pelo desenvolvedor, e a segunda a extrao ser realizada a partir do diretrios especificado pelo administrador. 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 suficiente para que a aplicao funcione. Utilizando o dpkg -L voc poder verificar que todos os arquivos 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 distribuio 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 necessrios durante a instalao do aplicativo. Tambm possvel, durante a compilao do programa, 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).

uando comearmos a usar o tar, para extrair arquivos compactados com o gzip utilizamos 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 arquivos-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 geral, 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 fontes 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 satisfeitas. 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 compilao 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 resolver 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 projeto. 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 interpretados 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 compilado 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 discos 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 determinado espao deste para instalao de um sistema de arquivos. Existem trs tipos de parties: primrias, 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, usurio, de inicializao); (b) diviso de acordo com o tamanho dos dados, afim de melhorar o desempenho 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 primeira 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 disco, 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 fosse um dispositivo diferente, sendo que, na realidade, so apenas divises lgicas do disco, estando 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.

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 possivelmente 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 /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 Start 1 17 1841 1963 End 16 1840 1962 30401 Blocks IdSystem 128488+ 83Linux 14651280 83Linux 97996582Linuxswap/Solaris 228436267+ 83Linux

Disk/dev/sdb:4005MB,4005560320bytes 16heads,32sectors/track,15280cylinders Units=cylindersof512*512=262144bytes Diskidentifier:0xef6cfd35 Device Boot /dev/sdb1 Start End Blocks 16 15280 3907648 IdSystem 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 conhecimento durante a soluo de problemas. Vale ressaltar que caso seu sistema possua discos utilizando tcnicas de RAID via hardware, 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.

AID (Redundant Array of Independent Disks) um sistema de linearizao de discos. um sistema que tem dois objetivos que so atingidos de vrias formas diferentes. Os objetivos so acelerar o armazenamento e carregamento de dados, e aumentar a segurana desse processo, com mtodos de espalhamento de dados em discos diferentes. 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 somente 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 utilizao 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 manipulao 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, selecione a opo desejada e pressione o <Enter> do teclado.

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

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 devemos 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 existente 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 anteriormente 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 gravadas 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 diferentes, que vo desde sistemas simples como o FAT16, at sistemas como o NTFS, XFS e ReiserFS, 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 serem utilizadas pelo sistema operacional.

CRIANDO SISTEMA DE ARQUIVOS


Podemos tambm criar uma partio sem definir o tipo dela, entretanto, para que uma partio 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 especificando 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 sistemas 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 processo 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 geralmente 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 sistemas 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 ReiserFS, FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no *BSD), minix (MINIX OS) etc.

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 disco sobrescrevendo todas as configuraes nela existentes, consequentemente apagando 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 inicializao (uma por vez) e mdulos. Alm de permitir buscar imagens do Kernel pela rede, por cabos 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 suportar 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 configuraes para inicializao do sistema, dentre esses arquivos destacamos o menu.lst que o arquivo 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 estamos 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 Dispositivo no Linux /dev/hda /dev/hda1 /dev/hda2 /dev/hdb /dev/hdb1 /dev/hdb2 Dispositivo no GRUB (hd0) (hd0,0) (hd0,1) (hd1) (hd1,0) (hd1,1) Dispositivo no Linux /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 (hd0) (hd0,0) (hd0,1) (hd1) (hd1,0) (hd1,1) Disco SCSI ou SATA Dispositivo no GRUB # Disco SCSI ID 0 # Disco SCSI ID 0, partio 1 # Disco SCSI ID 0, partio 2 # Disco SCSI ID 1 # Disco SCSI ID 1, partio 1 # Disco SCSI ID 1, partio 2 /dev/fd0 (fd0) Disquete Dispositivo no Linux Dispositivo no GRUB

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 alteraes 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 disponveis 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 alternativas 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 diretrio /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 durante a inicializao da mquina, e os adiciona ao arquivo menu.lst automaticamente, conforme a instalao corrente.

35

Apostila Debian Intermedirio - Desktop Parana

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 restaurar 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 (cianoclaro), 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 possvel 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 leitura 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 singlemode (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 argumento qualquer texto que nos ajude a identificar o sistema operacional que ser carregado. Ressaltamos que sempre deve ser evitado o uso de caracteres especiais. # - root: nesta opo indicamos em qual partio encontram-se os arquivos de inicializao (indicamos 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 configuraes 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 carregamento do Debian das opes dos demais sistemas operacionais disponveis. title root Otheroperatingsystems:

################################################################### # 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 necessidade 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 senha especificada com o parmetro password seja solicitada no momento em que o usurio tentar 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 parties 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 primeira 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/menu.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 comando que permite enganar tal sistema mapeando as unidades de disco do modo como lhe for mais conveniente. Imagine que voc tenha o primeiro disco (hd0) com o GNU/Linux instalado e em um outro disco (hd1) com o Windows/DOS instalado. O Windows/DOS no permitem serem inicializados desta forma, e como soluo, voc poderia usar a seguinte entrada no arquivo de configuraes /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 normalmente. 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 novamente 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 outros 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.

aso o parmetro password tenha sido especificado no arquivo /boot/grub/menu.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/menu.lst. No esquea que ainda possvel utilizar um disquete com o GRUB para iniciar a mquina, 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 somente 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 comando cat da linha de comando do sistema operacional (dever ser exibida mensagem de permisso 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 passando, 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 comandos 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 default, ser apresentada mensagem de erro de inconsistncia na estrutura do sistema de arquivos 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 comandos na linha de comandos para efetuar o boot (a inicializao do sistema) pela linha de comando 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 mquina, 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 especficos 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 funcionamento 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 ca45

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 operacional. 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

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 carregado 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 exibido 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/inittab 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 se46

Apostila Debian Intermedirio - Desktop Parana

guinte padro:
id:runlevel:ao:diretrio

id - identificador "exclusivo" para cada linha do arquivo. Deve estar limitado a 2 caracteres. 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 valores: respawn - O processo ser reiniciado assim que for finalizado; wait - O processo ser executado quando o sistema entrar no runlevel especificado e o sistema aguardar a finalizao deste processo; once - O processo ser executado quando o sistema entrar no runlevel especificado; boot - O processo ser executado durante o boot do sistema; bootwait - O processo ser executado durante o boot do sistema, que aguardar 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 runlevel a ser utilizado. O campo processo ignorado. sysinit - O processo ser executado durante o boot do sistema, antes de qualquer 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 dri47

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 informaes veja o pacote kbd-x-xx. Diretrio caminho completo do diretrio onde se encontram os scripts a serem executados. 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 simblico 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 invocado 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 executados 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 final 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 padro, 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 prioridade 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 seguir:
#updaterc.dfsshremove

Utilizando junto ao comando update-rc.d o parmetro -n somente ser mostrado na tela o resultado 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 mensagens informativas, de alerta e de erro, geradas pelos programas durante sua execuo. Estes arquivos possuem informaes muito teis para o administrador do sistema. Atravs deles possvel verificar o funcionamento do sistema, o comportamento dos programas, prevenir e corrigir erros e auditar o ambiente operacional. O Debian conta com uma estrutura central para armazenamento e funcionamento do sistema de logs, onde os arquivos de log so guardados comumente no diretrio /var/log, e um servio 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 servidores) 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 registros 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 usurio. 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. auth.log wtmp Usado para guardar informaes sobre a autenticao de usurios no sistema. 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 dmesg Guarda informaes relacionadas ao servidor X. Mensagens do Kernel no momento de inicializao do sistema. 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 mquina pode atuar como um servidor de logs registrando mensagens de diversos computadores em sua rede). O campo daemon, indica qual programa gravou a mensagem 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/rsyslog.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 separados 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).
52

authpriv - Mensagens de segurana/autorizao (privativas). cron - Daemons de agendamento (cron e at).

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
Nveis:

lguns sinalizadores de facilidades como o security, emitem um alerta sonoro no sistema e enviam uma mensagem para console, como forma de alerta ao administrador e usurios que esto utilizando o sistema.

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.

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 facilidades por , (vrgula) e aps listar todas as facilidades utilizar o . (ponto) para separar as facilidades 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) registrando 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 (assim que so geradas) mas no estaro sendo gravadas em nenhum arquivo para uma consulta posterior.

empre utilize a tecla <TAB> ao invs da barra de espaos para separar os parmetros 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 atividades 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 mensagem 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 vimos anteriormente as facilidades local0 a local7, so reservadas para usurios, ento basta configurarmos estas facilidades para gravarem suas mensagens num determinado arquivo, como mostramos abaixo.
local3.* /var/log/robsonlog.log

A configurao acima faz com que as mensagens da facilidade local3 sejam gravadas no arquivo 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 testarmos 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 respectivos 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 facilidade.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 ocorreram 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 totalmente 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 enviados 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 logcheck. A instalao padro inclui perfis para eventos ignorados e violaes de polticas para trs di56

Apostila Debian Intermedirio - Desktop Parana

ferentes configuraes (workstation, server e paranoid), sendo que "server" (servidor) o nvel padro, paranoid (paranoico) somente recomendado para mquinas de alta segurana executando poucos servios quanto forem possveis e workstation (estao de trabalho) para mquinas relativamente 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-database.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 disponvel no sistema. Opcionalmente, os arquivos de log antigos podero ser compactados para diminuir a utilizao de espao em disco ou enviados por e-mail. A rotao dos arquivos de log proporciona 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 individualmente como neste exemplo, sobrepem as opes globais definidas anteriormente. As definies 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 permisses 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 arquivo /var/log/messages compactadas (o parmetro compress foi especificado globalmente neste arquivo 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 desses arquivos no precisa ser notificada ao administrador (missingok), mesmo assim o parmetro "nomail" evitar isto de qualquer forma. Os logs rotacionados no sero compactados (nocompress) 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 padro 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- negativas aos comandos correspondentes. nomissingok/noolddir/nosharedscripts/notifempty - negativas aos comandos correspondentes. 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 prerotates 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 fundamental para automatizao da administrao do sistema e em outros casos onde se faz necessrio 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 sistema 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 desejado 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.

s horrios e datas de execuo desse script dentro desses diretrios, apesar de comunmente 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.

omumente este arquivo s utilizado para agendamento de tarefas a serem executadas 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 especific-lo se o arquivo do prprio usurio for usado); Comando: a tarefa que deve ser executada.

os comandos a serem executados podem ser usados os parmetros normais de utilizao 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 devemos 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 necessidade. 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 agendadas, atravs do comando:
crontabr

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

63

Apostila Debian Intermedirio - Desktop Parana

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

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 contedo dos diretrios em forma de lista com o tamanho dos arquivos exibidos num formato mais inteligvel. 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 todos 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
BC

ara configurarmos um alias nos arquivos de configurao devemos utilizar a mesma sintaxe utilizada na linha de comando.

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 linguagem 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 ponto 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 simples, 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 digitar 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 errado, 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 biblioteca 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 scale.
$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

o utilizarmos o comando bc com o parmetro -l alguns comandos matemticos tambm 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 definies sero perdidas que a interface do bc for finalizada. Segue abaixo exemplo abaixo de definio 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 recurso 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 'valor' 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
x==y

lm da atribuio += para somar ainda podemos utilizar -= para subtrair, *= para multiplicar e /= para dividir.

Temos tambm os operadores de comparao: == que define igualdade

!= 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 { } (chaves) 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 retornar 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 resultado 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 resultado 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 varivel ultvalor um valor que ser digitado pelo usurio. Em seguida, na estrutura while estamos testando 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 incrementada 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 varivel 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 somar 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 concatenandoo 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 aprofundamento 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 arquivo 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.

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 determinado 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 primeira coluna informa o nome do usurio, a segunda informa o terminal acessado, a terceira mostra o hostname/ip das conexes remotas e a console das conexes locais, a quarta coluna apresenta 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 remotas. Segue abaixo alguns exemplos de utilizao do comando last.
#lastarobsonp robsonp pts/4 robsonp pts/3

TueSep1510:56stillloggedin MonSep1418:45stillloggedin

:0.0 :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 robsonp robsonp robsonp robsonp robsonp robsonp robsonp robsonp robsonp robsonp

pts/3 MonSep1417:0117:01(00:00) :0.0 pts/3 MonSep1411:1211:12(00:00) :0.0 pts/2 MonSep1409:38stillloggedin :0.0 pts/1 MonSep1409:06stillloggedin :0.0 pts/0 FriSep1117:41stillloggedin :0.0 tty7 FriSep1116:43stillloggedin :0 tty7 FriSep1116:4316:43(00:00) :0 pts/0 FriSep408:5608:57(00:00) 10.15.15.32 pts/0 ThuSep318:1518:26(00:10) :0.0 pts/0 WedSep209:2009:25(00:04) 10.15.15.32 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 robsonp pts/3 MonSep1418:45stillloggedin wtmp begins TueSep114:54:312009

:0.0 :0.0

No exemplo acima utilizamos a opo -n 2 para que s fossem exibidas as 2 (duas) primeiras 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 listagem, 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 terminal onde ocorreu a conexo e a hora da ltima conexo. Para obteno dessas informaes o comando lastlog pesquisa no arquivo /var/log/lastlog. Sintaxe: lastlog <opes> <argumentos do parmetro>9

os casos o usurio nunca chegou a efetuar login na mquina, mostrada, na coluna 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 parmetro, 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 ltimo 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 cadastrados 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 possuem UID que vo de 1000 (mil) a 2000 (dois mil). Neste caso todos os usurios listados nunca efetuaram 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 acima 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 pessoal 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 arquivos 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 formato da sada deste comando, inserindo sempre uma nova linha ao trmino da exibio das informaes. --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 informaes, por padro, no inserida uma nova linha. A seguir temos as principais opes que podem ser passadas como parmetro com as opes -c e --printf, essas opes no so vlidas para exibio de informaes referentes a sistemas de arquivos. %a %A %b %B %F %g %G %h %i %n %N %s %u %U %x %y Exibe as permisses do arquivo no modo octal Exibe as permisses do arquivo no modo texto Exibe o nmero de blocos utilizados para alocao do arquivo Exibe, em bytes, o tamanho dos blocos listados pela opo %b Exibe informaes sobre o tipo de arquivo Exibe o GID do arquivo Exibe o nome de do grupo do arquivo Exibe o nmero de hardlinks Exibe o nmero do Inode do arquivo Exibe o nome do arquivo especificado no comando Exibe o nome do arquivo especificado no comando exibindo,para os links simblicos, informaes sobre o arquivo de referncia Exibe o tamanho do arquivo em bytes Exibe o UID do dono da pasta Exibe o nome do dono do arquivo Exibe a data e hora do ltimo acesso ao arquivo 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 opes -fc e -f --printf na obteno de informaes sobre o sistema de arquivos. %b %f %l %T Exibe o total de blocos de dados no sistema de arquivos Exibe o total de blocos livres no sistema de arquivos Exibe o comprimento mximo para os nomes de arquivos e pastas suportado pelo sistema de arquivos 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 informaes 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 referentes ao sistema de arquivos que o arquivo linkSimbolico pertence, ao invs de trazer as infor79

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 permisses 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 informaes 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 entre 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 formato .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 rpida, 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 podem 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, reconhecido pelos padres internacionais como sendo do ocidente europeu, iso-8859-1 (este padro tambm 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 caracteres 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 sistema 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 codificao atual, qual a codificao desejada e qual o arquivo ou diretrio. Como mostra o exemplo abaixo:
$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 alterao 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 caractere de um arquivo para a mesma codificao utilizada no sistema, resolvendo assim o problema 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 comando 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 ISO8859-1. Para identificarmos qual a codificao de caracteres que esta sendo utilizada pelo nosso sistema operacional podemos utilizar o comando locale. O antigo charset padro do Linux era o ISO8859-1 (tambm conhecido como Latin1). Por isso, quando encontrarmos os parmetros de configurao pt_BR ou pt_BR.ISO8859-1 so representaes para a codificao de caractere ISO8859-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 nomes, e o arquivo email que tem como contedo vrios provedores de e-mail. Foi utilizado o comando 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 passamos 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 estamos 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 comandos. 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 dever 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 sintaxe 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 caractere 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 delimitador. -f FI-FF: para determinarmos os campos desejados, onde FI representa campo (coluna) inicial e FF campo (coluna) final.

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.

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 comando 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 (delimitao) dos campos. Visto isso esta na hora de usarmos o comando cut para separamos da exibio as colunas no desejadas.

omo citado anteriormente para usar o comando cut precisamos sempre passar algum 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 cortar a partir de um determinado nmero de caracteres, devemos cortar por um determinado 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 basta 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 delimitaria 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).

ale observarmos que para que o comando cut funcione corretamente com os parmetros 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 pacotes que esto completamente instalados em seu sistema. Para ter o resultado esperado ns teremos 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 instalados 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 arquivo 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 (quadragsimo 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 delimitador 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 relao 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 armazenamento, todos os dados so copiados a nvel de bloco, no interessando o tipo do sistema de arquivos 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 especificamos a origem que pode ser um dispositivo (partio) ou um arquivo, em seguida temos o parmero 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 op88

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 serem 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 minsculas 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 arquivo 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 referentes tabela de partio. Neste caso bastaria, no comando para restaurao, especificar o tamanho 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

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-tabelaparticoes)

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, podemo 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 minsculas. A opo conv especifica que ser realizada uma converso e o parmetro lcase especifica 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. Vimos tambm que possvel especificar o local da pesquisa, sendo que quando este no informado, 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. 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). 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. 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 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

-size

-maxdepth

-mindepth

-type

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 diretamente 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 especial ; deve ser utilizada a \ para denotar a utilizao do caractere especial ; na linha de comando. 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 apresenta situao mais critica, ento com o comando find identificamos os arquivos que esto utilizando 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 compartilhamento publico especificamos com o parmetro -type que s deveriam ser pesquisados arquivos regulares, com o parmetro -iname especificamos que deveriam ser pesquisados os arquivos 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 pesquisa, 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 ).

uando utilizamos o parmetro -exec junto com o parmetro -and, devemos utiliz-lo aps o -and pois caso contrrio o comando especificado para execuo atravs do parmetro -exec s ser aplicado ao resultado da pesquisa de acordo com os primeiros critrios estabelecidos, no sendo consideradas as especificaes de pesquisa 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 seguinte 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 comecem 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.

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 queremos executar o comando.

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

No exemplo acima s sero alteradas as permisses dos arquivos 10 que iniciarem com a letra 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 minha 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 pesquisado e a sua data de alterao, como mostramos a seguir: ~$findctime1printf"%f%c\n" As opes mais usadas com o parmetro -printf so: %p %m %M %f %g %G %U %h %u mostra o nome do arquivo com o caminho mostra a permisso do arquivo no modo octal Mostra a permisso do arquivo como mostrado com o comando ls mostra o nome do arquivo sem o caminho mostra o nome do grupo do arquivo mostra o gid mostra o uid mostra o nome dos diretrios em que o arquivo esta dentro mostra o nome do dono do arquivo

94

Apostila Debian Intermedirio - Desktop Parana

%c %a %AD %AH %AT %A+ %Ax %n

mostra a data de alterao do arquivo mostra tempo de acesso imprime a data tipo ms/dia/ano (data de acesso) imprime a hora hh/mm/ss data e tempo separados pro "+" mostra a data de representao conforme a localidade (dd/mm/aaaa) 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 necessrias.

comando xargs no funciona corretamente, podendo apresentar problemas, quando, 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 existentes 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 avisando que o arquivo no pode ser removido por no existir. Vamos imaginar agora uma outra situao onde queremos remover todos os arquivos do diretrio corrente, pertencentes a um determinado usurio. Poderamos, para isso, usar um comando 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 afe11 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 passados 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
FSCK

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 parmetros: find . -maxdepht 1 -type f -user robsonp -exec rm -f {} \;

Sintaxe: fsck <opes> <partio> O fsck checa a consistncia e repara possveis danos num sistema de arquivos. Muitas vezes, 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 corrigir 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 mensagem 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 ser efetuada a restaurao com o comando fsck esteja desmontada. O sucessoque recuperao dos na 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 confirmao para sua recuperao. -V: quando utilizamos esta opo a sada do comando fsck apresentada de forma mais detalhada. -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 recebam 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 re97

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 letra, 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 processos 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 processo, 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 sofice. 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 processos 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 informaes: COMMAND nesta coluna sero listados os primeiros 9 (nove) caracteres do nome do comando 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 recursos (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 vrgula. 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 robsonp.
#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 finaliz-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 processada 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 processamento 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 processos 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 processo com prioridade maior seja executado antes dele. Esses nveis de gentileza, tambm chamados 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 prioridade 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 execuo 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 prioridade execuo 10 (dez).

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 prioridade 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 proces16 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 perodo, 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 processo 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 execuo de um determinado processo. A diferena que utilizamos o comando nice para alterar a prioridade de execuo dos processos que esto sendo iniciados, enquanto o comando renice utilizado 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 algum motivo ns podemos precisar encerrar a seo. Nesse caso ao encerrarmos a seo o processo que estava em execuo em segundo plano receber um sinal para ser encerrado e no terminar sua execuo.

empre que um usurio efetua logout, encerra uma seo, enviado um sinal ( SIGHUP ) 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 especificado (torna esse comando imune ao sinal SIGHUP). Possibilitando que o comando continue em execuo 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 algum motivo ele no conseguir criar ou escrever neste arquivo, ele redirecionar para um arquivo nohup.out que ser criado no home do usurio corrente.

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 conectado 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 reconhecido. 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

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 update-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 componente 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 dispositivos de um determinado fabricante (argumento cd. fabricante), ou ainda de forma mais restritiva, 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 plugados 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 parmetro, onde temos como retorno a sada acima que mostras que, nesse caso, no h nenhum dispositivo 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 ajustes 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 sobre 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 comunicao entre mquinas numa determinada rede. Em redes microsoft, por exemplo, o compartilhamento 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 computador, 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 grupo. 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.

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) caractere 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 NetBIOS reservado para identificar a funcionalidade que est instalada no dispositivo de rede registrado.

Numa rede comum o compartilhamento de arquivos e impressoras, e geralmente utilizamos, 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 compartilhamento de arquivos ou impresso, necessria a criao de uma conexo TCP. E para se esta110

Apostila Debian Intermedirio - Desktop Parana

belecer uma conexo TCP, o nome NetBIOS deve ser resolvido para um endereo IP. Temos diferentes 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 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.

N B (difuso)

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). N M (composto) 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 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 (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).

N H (hbrido)

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.

ssa atualizao automtica do banco de dados WINS, evita que alteraes dinmicas de endereo desatualizem o banco de dados

A seguir temos uma ilustrao que facilitar o entendimento da resoluo de nomes NetoBIOS 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 servidor 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 consultado. -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 endereo 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 (ecelepar10159.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 servidor 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

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 mquinas 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 endereos 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 realizada conforme os parmetros passados. A forma interativa ocorre quando utilizamos o comando nslookup sem passarmos nenhum parmetro, nesse caso ser aberta uma interface onde possvel realizar vrias consultas com diferentes critrios de pesquisa, para sair dessa interface interativa 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 arquivo resolv.conf.

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.parana).

#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 resolv.conf e consultado p servidor primrio nele especificado. Aps efetuadas as consultas desejadas 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, urgentemente, 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 problemtica, sendo que cada um trabalha em uma ou mais camadas da pilha de protocolos TCP/IP, estruturado 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 comuns.

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 regras 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 caminho que os desenvolvedores de protocolos devero seguir para que haja uma total interoperabilidade entre sistemas e hardware. O projeto de criar o protocolo OSI foi abandonado e este modelo 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 funo 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 comear da camada superior e ir para as camadas mais abaixo. Para receber uma informao, o sentido ser o contrrio. Se existirem cinco camadas num protocolo utilizado para estabelecer uma conexo 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, ento, 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 protocolos mais enxuta e prtica. No toa que o protocolo mais utilizado em todo o mundo. Vejamos 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 modelo 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 acordo 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 comunicao propriamente dita acontece na camada de transporte. Os dados precisam ser identificados 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 destas exigncias, ser priorizada a velocidade (UDP). Depois disso, temos a identificao de destino 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) linearizar os dados em um sinal binrio simples para que eles possam ser transmitidos pelos meios fsicos e depois retornar esses sinais nos mesmo dados iniciais; (b) e permitir que haja um isolamento das aplicaes em relao plataforma, permitindo que os dados sejam transmitidos independente 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 identificao. Vejamos os trs agrupamentos de dados que temos na pilha de protocolo TCP/IP: Cabealho Cabealho Cabealho Ethernet IP UDP 14 bytes 20 bytes 8 bytes Camada de Transporte Camada de Rede Camada de Enlace Dados de Aplicaes 100 bytes Ethernet CRC 4 bytes

SEGMENTO UDP PACOTE IP QUADRO (FRAME) ETHERNET

Tabela 1: Empacotamento de dados


Um aplicativo qualquer (como um navegador) que necessite se comunicar com uma interface 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 aplicativo 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 todas 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 ADDRESS de todas as interfaces de sua rede que se comunicaram recentemente. Se a conexo tiver que ser com uma interface de outra rede, o MAC ADDRESS endereado ser do roteador. Ento 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 frames 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 aplicao.

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 tipos de hardware, independentes de suas tecnologias, consigam transportar dados e que exista interoperabilidade entre sistemas hbridos. Vejamos como ele constitudo: Camadas Camada de aplicao Exemplos de protocolos 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 Camada inter-redes Camada de interface de rede

TCP - UDP IP - ICMP - ARP - RARP 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 podemos 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 aplicao. 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 conjunto 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 identificada 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 tenha 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 impressoras sem display prprio, utiliza-se este recurso. SSH (security shell) cria uma conexo entre interfaces distintas e possibilita que remotamente 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 informaes 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 comunicao feita as camadas iguais. A camada de aplicaoobservar que acomunica com camadaentreaplicao so como vriasassim do cliente se a camada de aplicao do servidor, e por diante. Isto quer dizer, que os dados da de caixas 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 encomendas 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 exemplo. 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 encomenda, 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 compactao, discrio, ou qualquer exigncia do cliente, os funcionrios atrs do balco iniciaro o processo 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 interface 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 memria 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 exemplo. 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 segmento de informaes a ser enviado interface distinta e o controle de identificao dos dados que os segmentos representam.

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 remetente 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 identificados no primeiro byte de suas estruturas com nmeros sequenciais. Isto permite que haja o controle de quais segmentos chegaram e quais foram perdidos. Controle de fluxo: caso o ACK seja recebido pelo remetente, nesta mensagem o destinatrio registra a informao que permite que o remetente saiba como est o buffer de armazenamento da pilha TCP/IP, permitindo que o remetente envie o prximo segmento ou atrase um pouco 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 interface entre a camada de aplicao e o protocolo IP. Ele no tem controle nenhum, e a nica coisa 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, devido 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 velocidade de download.

Portas e soquetes
As portas e soquetes so espaos reservados na memria principal que ao receberem informaes realizam alguma sincronia com um servio (recebendo dados) ou com a camada de trasporte (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 vinculados 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 chamaremos 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 protocolos 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 informando que a conexo poder ser realizada e estabelece um soquete, que nada mais que o estabelecimento 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 requisies vindas do computador A devem ser enviadas porta 55555 do mesmo. Quando a conexo finalizar, o soquete (conexo especfica) ser desfeito e a porta 55555 do computador A voltar a estar disponvel.

erceba bem que porta um espao da memria que pode ser utilizado por um servio, enquanto soquete um vnculo (conexo estabelecida) entre interfaces diferentes 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 transportadora local liga para a remota perguntando se pode enviar os dados e quantos caminhes devem 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 necessrios 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, necessrio 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 Inter-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, facilmente podemos ter comunicao entre um computador Windows e Linux, e tambm entre computadores conectados ao hub por um cabo ou por um dispositivo wireless. Outra funo importantssima desta camada a de roteamento. No caso estabelecido anteriormente, 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 conectados a duas redes. E se quisermos conectar a nossa rede a essa outra e mais internet? Seramos 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-rede. 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 equipamentos 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 conectarmos a esse roteador um cabo da internet, que normalmente provido por um provedor de internet, 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, indica qual o caminho a ser tomado: uma interface conectada diretamente a ele ou um prximo roteador 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, totalizando 256 possibilidades por octeto. Veja o exemplo abaixo: 100.15.1.213Para sabermos qual a rede lgica a qual este IP pertence devemos confront-lo mascara de rede. Existem as seguintes classes de rede: Classe Classe A Classe B 128.0.0.0 191.255.255.255 Classe C 192.0.0.0 224.0.0.0 Privados 255.255.255.0
REDE . REDE . REDE . HOSTS

Range 1.0.0.0 126.255.255.255

Mscara Padro 255.0.0.0 255.255.0.0

Formato
REDE . HOSTS . HOSTS . HOSTS

REDE . REDE . HOSTS . HOSTS

10.0.0.0 169.0.0.0

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 mui127

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 comando 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 configurada, 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 interfaces. 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 configurao 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 entendido 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 protocolo 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 descobrir 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 pesquisado. 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 natureza 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 redes, 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 (fornecidos pela empresa - aplicao) e das tabelas de roteamento, indicando qual o caminho a ser seguido para que uma encomenda chegue ao seu destino. Toda essa gerncia e manipulao realizada 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 tamanho 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 atualidade, mas j est sendo trocada pelas tecnologias utilizadas pelas redes wireless. Todas as interfaces esto em contato e todos os quadros so enviados para todos, cabendo a cada uma delas verificar se so as responsveis por ele. Este protocolo tem como unidade de transporte o frame, ou quadro. Um quadro composto por vrios compartimentos que possuem naturezas distintas. 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. Depois 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 Sequncia para Checagem de Quadro) um algoritmo que permite que a camada de enlace saiba se todos 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 empresa Pilintra's Corporation (aplicao). A filial do Rio de Janeiro liga para ns pedindo uma encomenda e indica que ela pode ser enviada ao porto 50000, da transportadora do rio, que foi alugado exclusivamente para recebimento da encomenda. Ns temos um porto exclusivo na transportadora 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 confirmao 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, acomodada dentro do caminho. O motorista recebe o endereo de destino da encomenda, e percebe que est fora de sua abrangncia. Ele possui uma tabela de empresas conveniadas que poder 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 fsico que o ligue rede e alguns parmetros configurados que fazem com que ele identifique outras 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, valores 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 forma mais indicada.

Arquivo de configurao: /etc/network/interfaces

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 pgina 142).

Nomes
Computadores trabalham com bits (zeros e uns); a interface de programas criados para configurao da rede trabalham com nmeros; e usurios e administradores, em suas atividades rotineiras, 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 criado o DNS (Domain Name Server - Servidor de nomes de domnio). Este servio substituiu o arquivo 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 endereo 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 internet possam ser convertidos. O simples www.google.com.br no poder ser acessado se o resolv.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 principais 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-tool 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, estando acessvel. Tentar vrios tipos de hosts interessante para saber se o problema no roteamento de dados. Pode-se ter comunicao na rede, mas quando tentado sair da rede pelo roteador, algo pode acontecer de errado. Para verificar se as interfaces esto funcionando corretamente 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 primeiras informaes de problemas. Para isso execute o comando /etc/init.d/networking restart, logicamente que como superusurio); A interface utilizada para se conectar rede est configurada apropriadamente? (deve-se verificar se a interface est ativa - ifconfig e route - e se os principais arquivos de configurao 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 problema 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 informaes 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 adicionais, 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 nmero mximo de hops, ou seja, o nmero mximo de roteadores para chegar ao seu destino. O nmero padro de no mximo 61 hopes para chegar ao destino. J no caso de haver uma resposta, ser verificado atravs do cabealho ICMP o tempo de sada e de chegada, e calculado o tempo que o pacote levou para ir e voltar do destinatrio. Esta informao mostrada em TIME.

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 verificar onde esto os problemas.

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

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 mostradas na tela: Mensagem Network unreacheable Host unreacheable Protocol unreacheable Port unreacheable Destination unknown Destination unknown Significado Rede de destino intangvel, ou seja, o pacote atingiu o mximo de pulos de roteadores e no conseguiu encontrar a rede desejada. Igual ao anterior, mas em vez de rede, no foi possvel atingir um host. O protocolo utilizado pelo cliente est desativado no host remoto. A porta pela qual o cliente tenta se comunicar com o host remoto no possui nenhum servio associado.

network A rede a qual o cliente est tentando se conectar no reconhecida. Isso quer dizer que no existe na tabela de roteamento uma sada que o leve rede desejada. network Igual mensagem anterior, porm o que no se conhece e no 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 grfica, apenas o endereo do qu se quer baixar. O wget faz download de arquivos, pacotes e pginas 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 rodado 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 automaticamente. 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 desejado). 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 regras utilizadas durante a transferncia. -b (de background) -q (de quiet) so de download) Inicia o wget direto em background. No mostra a sada padro do wget (mensagens e barra de progres-

-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
IFCONFIG

aso seja necessrio passar por um proxy para chegar internet, necessrio configur-lo no arquivo /etc/profile.

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 somente enquanto o computador permanecer ligado ou enquanto algum daemon de rede no atualizar os parmetros de acordo com os seus respectivos arquivos de configurao. Ou seja, as configuraes 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 interfaces, 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 Bcast Masc

Interface Net Endereo - Endereo da interface de rede Mostra qual o IP atribudo interface. Broadcast Mostra qual o endereo que a interface usar quando quiser enviar mensagens de broadcast. Mscara Mostra qual a mscara da rede a qual a interface pertence. Informa que a interface suporta multicast. 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). 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. 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. 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. 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 de Entrada e Sada O IRQ a identificao, aqui temos o endereo fsico na memria principal referente ao espao especfico de pedido de interrupo.

BROADCAST Informa que a interface suporta broadcast. MULTICAST MTU

RX

TX

colises

IRQ

Endereo de E/S

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 processlos. Como os IRQ tm prioridades altas, o processador deve interromper tudo para processar os dados.
139

Apostila Debian Intermedirio - Desktop Parana

lenny traz o suporte a IPv6 nativamente. Podemos verificar o endereo atribudo interface aps inet6. Ainda no existem muitos servios rodando com este protocolo, 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 temporrias no seu computador.

A
up

pesar de serem configuraes temporrias, possvel definir o ifconfig para ser rodado no boot do computador.

Faz com que a interface de rede torne-se acessvel camada inter-rede. Sem isto, o protocolo 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
down

UP e o RUNNING indicam que a interface est ativada e j em atividade. O UP indica que a interface est disponvel, com identificao IP e conectada camada inter-rede, e o RUNNING indica que a placa est aceitando pacotes da rede e enviar dados, caso solicitado.

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 A

ara enxergar todas as interfaces que no esto ativas, necessrio utilizar o parmetro -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 especificada, 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 diferena 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 seguinte 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/interfaces 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

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. Agora execute o comando abaixo:
#ifupa

Todas as interfaces estaro ativas, inclusive o alias eth0:LOUCO (sempre verifique com o ifconfig). 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 possui 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 conectados 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 especfico 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 tenham 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, ATIVA; 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 anteriores. E esta ordem no editvel. Quem as define o prprio gerenciador de roteamento. Vejamos outros campos que aparecem na sada deste comando: Colunas Mtrica Descrio 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. 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. (Interface) Indica a qual interface a regra se aplica.

Uso

Iface

Agora vamos verificar como configurar a tabela de roteamento. Cabe observar que o trabalho 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 2b add (adicionar uma nova rota) del (remover uma rota existente) OU

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
3c

empre que o alvo -net for usado, devemos utilizar o complemento netmask. Se for utilizado o alvo -host esta informao no deve ser passada.

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 10.15.15.1) 4b NADA (no define roteador) gw (gateway - roteador) Ex: gw 10.15.15.1 (define que os pacotes devem ser enviados para o 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)

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 -C (cache) -n Descrio Mostra o cache de roteamentos j realizados desde que o computador foi ligado. 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 zerada:
#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 pingar 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 qualquer 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 segundo) 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. Vejamos cada uma deles:

Primeira coluna
Endereo da primeira interface do par da conexo.

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 intervalos diferentes: 2, 10 e 40 segundos. Na parte inferior da tela existe um resumo das atividades de rede da interface que est sendo 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 rates RX Pico: Maior taxa de transferncia de dados enviados nos ltimos 40 segundos. Taxas: Mostra a taxa de transferncia total dos pacotes enviados da interface nos ltimos 2, 10 e 40 segundos.

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 rates Pico: Maior taxa de transferncia de dados recebidos nos ltimos 40 segundos. 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 rates Pico: Soma das maiores taxas de transferncia dos dados enviados e recebidos. 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 de Porta: paralisa Habilita a opo de visualizao de portas ou servios que so responsveis 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 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. Vo uma tela para cima e para baixo, respectivamente. Interessante de ser usado quando a tela est congelada (atravs do parmetro o). 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.

p (mins.) SeD (maus.)

jek l

Agora que voc j est hacker no iftop, vamos praticar. Iremos executar o iftop j com a opo 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 conexes com outros computadores, sendo voc o cliente ou servidor. Abra um novo terminal e execute o comando:
$ping<oseugateway>s2048

149

Apostila Debian Intermedirio - Desktop Parana

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 enviando 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 segundos 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 sabermos 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 destino. 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). Todas 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 redes 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 roteador, 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 caminho 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 devese passar pelo roteador (10.15.16.1) e a os pacotes vo passando por outros roteadores at chegar 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 definir 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 pa23 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 infinitamente). 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 apenas 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 associaes utilizadas. Como j vimos, o que trafega no meio fsico da rede so os quadros, ou frames. Estas unidades de dados so pacotes, criados pelo protocolo IP, fragmentados e com cabealhos 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 respondem 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 ce 10.15.16.1ether00:0f:23:c0:5d:ff C 10.15.16.6ether00:00:5e:00:01:16 C 10.15.16.2ether00:50:da:1f:95:4d C 10.15.18.6ether00:11:d8:f7:57:62 C

Ifa eth0 eth0 eth0 eth0

A primeira coluna contm os endereos IPs de interfaces s quais o seu computador se conectou 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).

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 ce 10.15.17.109ether 00:1c:25:4a:f3:0a #arpd10.15.17.109 #arpn AddressHWtypeHWaddress FlagsMask ce 10.15.17.109 (incompleto) Ifa br0

FlagsMask

Ifa

Cbr0

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 10.15.17.109 ether

HWaddress FlagsMaskIface 00:1c:25:4a:f3:0a CM br0

Existem alguns parmetros importantes a serem vistos. Vejamos quais: Parmetro -n (numrico) -H Descrio Mostra os IPs em vez de nomes. Permite especificar outros protocolos da camada de enlace. O padro o ether de ethernet. Outras opes so: 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.

-i (interface)

DIG
O comando dig o acrnimo da frase que sintetiza sua funo, que em ingls Domain Information 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 enquanto, 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 objeto. A especificao pode ser feita atravs de um nmero IP verso 4 (denotado por octetos separados por pontos) ou ento um nmero IP verso 6 (denotado por nmeros hexadecimais separa154

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 indicar 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, porm 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, estamos 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 realizando 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 direita. Podemos concluir que existem 4 endereos que respondem pelo nome pesquisado, mas isso no acontece diretamente. Quando digitamos www.google.com.br, verificado 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 servidores 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 realizada. 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 responsvel pela converso do nome da esquerda em um endereo; 5. ADDITIONAL SECTION: Campo adicional que apenas tem funo de informar ao administrador 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: Servidor 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 10baseT-HD 10baseT-FD 100baseTx-HD 100baseTx-FD 10 megabit half duplex 10 megabit full duplex 100 megabit half duplex 100 megabit full duplex Descrio

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 segundo. 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 segundo. 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 Duplex) 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 simultaneamente 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 automtica 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 possvel 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 distintos forem enviados ao mesmo tempo, eles iro colidir um no outro e haver perda de dados. Neste caso, mesmo com interfaces 100base TxFD, 1000baseTxFD ou at mesmo 10gigabit, a conexo 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 megabits 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

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 tivssemos 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 tecnologia 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 (tecnologias) 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 capabilities so apresentados todos os modos que a placa tem condio de trabalhar. O advertising mostra quais so os modos que a sua placa dir s outras interfaces que ela trabalha. Se o administrador 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 conectada 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 suporte. 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.

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 interfaces disponveis) ou define uma interface de rede. Se a interface definida estiver desativada (desassociada 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 alterar 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:
160

As conexes feitas pelas portas UDP e TCP; Tabela de roteamento;

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 ordem. 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 aplicao. Os protocolos so UDP, TCP e UNIX.

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. indica que quem est processos os segmentos tcp6de dados pertencem tratando de identificar a quaiscamada inter-redes, o res o protocolo TCP, porm, na 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 (esperando, 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

anto nesta quanto na segunda coluna, o ideal que o nmero de bytes tenda sempre 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 desejado, pressionando o parmetro -p junto ao comando, possvel verificar quais so as portas ou servios que esto sendo utilizadas na conexo.

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 especificada 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 ESTABELECIDA. 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 ESPERANDO 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

e a conexo no se der, voc j possui conhecimento suficiente para faz-lo funcionar. 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 usurio 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 utilizando 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. Normalmente 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 mximo 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. interessante 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 grfico. 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 administrador 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 administrador 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 normais do usurio conectado interface grfica. Ambos rodam em processos diferentes e se comunicam atravs do D-Bus.

D
164

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-

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 divido entre dois processos: (1) wicd-daemon.py e (2) monitor.py.

xecute o ps aux utilizando os filtros adequados para confirmar que os dois esto rodando 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 daemonusurio, no sendo fundamental para o funcionamento da rede. Periodicamente o wicd-client pergunta ao processo correspondente como andam as coisas para que ele possa atualizar as informaes em sua janela. Esta comunicao feita atravs do Dbus. Outra forma dele ser atualizado 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. Quando 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 reinicializao dos servios envolvidos e alterao dos arquivos de configurao, para que as mudanas 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 computador ter um perfil prprio com suas configuraes. Pode-se configurar um dos perfis como Padro. 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 realizar configuraes que sero aplicadas em todas as conexes e perfis existentes no seu computador. Vejamos o que mais interessante: Always switch to a wired connection when available: se existirem pelo menos duas conexes, 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 estiver UP novamente; Notifications: com ele, mensagens na rea de notificao informaro as mudanas de status 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-usingbc.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.html 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

Das könnte Ihnen auch gefallen