Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
IntermedirioDesktop
Parana
Apostila Debian Intermedirio - Desktop Parana
Direitosautorais:
Essa Apostila est licenciada sob uma Licena Creative Commons AtribuioUso NoComercial
Compartilhamentopelamesmalicena2.0Brazil.Podesercopiada,distribudaemodificada.Paraveruma
cpia desta licena, visite http://creativecommons.org/licenses/byncsa/2.0/br/ ou envie uma carta para
CreativeCommons,559NathanAbbottWay,Stanford,California94305,USA.
2
Documento Apostila Debian Intermedirio - Desktop Parana
Verso 1.9
Data de Reviso 29 de Janeiro de 2010, por Robson Alves Pavan
Equipe Tcnica Mantenedor: Robson Alves Pavan
Revisor: Robson Alves Pavan
Colaboradores:
Robson Alves Pavan
Felipe Camargo de Pauli
Andr Lucas Falco
Andre Luiz de Souza Paula
Coordenao do projeto: Jonsue Trapp Martins
Pginas 168 pginas
ndice
APROFUNDANDO-SE NO APT............................................................................................9
APT (ADVANCED PACKAGE TOOL)................................................................................9
ARQUIVOS DE CONFIGURAO APT.CONF............................................................14
Grupos.........................................................................................................................15
Exemplos:....................................................................................................................15
ARQUIVO DE CONFIGURAO PREFERENCES.....................................................16
DPKG...............................................................................................................................18
Utilizando o dpkg.........................................................................................................18
Aes............................................................................................................................... 19
Opes............................................................................................................................. 21
Exemplos de ocorrncias mais comuns no uso do dpkg.................................................21
COMPILANDO PROGRAMAS A PARTIR DO CDIGO FONTE......................................25
GERENCIANDO DISCOS E PARTIES..........................................................................27
O QUE SO PARTIES...............................................................................................27
OBTENDO INFORMAES SOBRE AS PARTIES..................................................28
PARTICIONANDO DISCO COM CFDISK.......................................................................30
Excluindo uma partio...............................................................................................32
Salvando as alteraes...............................................................................................32
SISTEMA DE ARQUIVOS...............................................................................................32
CRIANDO SISTEMA DE ARQUIVOS..............................................................................33
GERENCIADOR DE PARTIDA GRUB.............................................................................34
TRABALHANDO COM DISCOS E PARTIES............................................................34
INSTALAO DO GRUB................................................................................................35
CUSTOMIZANDO O ARQUIVO MENU.LST...................................................................36
OUTROS PARMETROS DE CONFIGURAO DAS IMAGENS................................41
LINHA DE COMANDO DO GRUB...................................................................................42
RUNLEVEL..........................................................................................................................45
PROCESSO DE BOOT...................................................................................................45
CONHECENDO OS RUNLEVELS..................................................................................45
IDENTIFICANDO O RUNLEVEL EM UTILIZAO........................................................46
O ARQUIVO /ETC/INITTAB.............................................................................................46
ENTENDENDO O FUNCIONAMENTO DOS RUNLEVELS...........................................48
INSERINDO/ REMOVENDO SCRIPTS DO RUNLEVEL................................................49
SISTEMA DE LOGS............................................................................................................51
PRINCIPAIS ARQUIVOS DE LOG..................................................................................51
LENDO UM ARQUIVO DE LOG......................................................................................52
CONFIGURANDO O SYSLOG........................................................................................52
LOGGER..........................................................................................................................55
LOGCHECK.....................................................................................................................56
LOGROTATE...................................................................................................................57
CRON...................................................................................................................................61
COMANDOS........................................................................................................................64
ALIAS...............................................................................................................................64
BC....................................................................................................................................66
LAST................................................................................................................................73
LASTLOG........................................................................................................................75
NEWUSERS....................................................................................................................77
STAT................................................................................................................................77
CONVERT.......................................................................................................................80
CONVMV.........................................................................................................................81
Apostila Debian Intermedirio - Desktop Parana
ICONV..............................................................................................................................82
Identificando a codificao de caractere do arquivo e a do sistema..........................83
PASTE..............................................................................................................................84
CUT..................................................................................................................................85
DD....................................................................................................................................88
FIND.................................................................................................................................90
XARGS............................................................................................................................95
FSCK................................................................................................................................96
FUSER.............................................................................................................................98
LSOF..............................................................................................................................100
PIDOF............................................................................................................................101
NICE..............................................................................................................................102
RENICE.........................................................................................................................104
NOHUP..........................................................................................................................105
LSPCI.............................................................................................................................105
LSUSB...........................................................................................................................107
HWCLOCK.....................................................................................................................109
NMBLOOKUP................................................................................................................110
NSLOOKUP...................................................................................................................114
GERNCIA DE REDES DE COMPUTADORES...............................................................117
CAMADA OSI.................................................................................................................117
PROJEO DA ARQUITETURA TCP/IP SOBRE O MODELO OSI.............................119
EMPACOTAMENTO DE DADOS..................................................................................120
TCP/IP...........................................................................................................................121
CAMADA DE APLICAO............................................................................................122
CAMADA DE TRANSPORTE........................................................................................123
TCP............................................................................................................................124
UDP...........................................................................................................................124
Portas e soquetes......................................................................................................125
CAMADA INTER-REDES..............................................................................................126
IP...............................................................................................................................127
ICMP..........................................................................................................................128
ARP...........................................................................................................................128
CAMADA DE ENLACE..................................................................................................130
Ethernet.....................................................................................................................130
PARMETROS NECESSRIOS...................................................................................131
IP...............................................................................................................................131
Rede..........................................................................................................................132
Gateway.....................................................................................................................132
Nomes.......................................................................................................................132
PRIMEIROS SOCORROS.............................................................................................134
PING..............................................................................................................................135
WGET............................................................................................................................137
IFCONFIG......................................................................................................................138
up...............................................................................................................................140
down..........................................................................................................................140
IFUP E IFDOWN............................................................................................................141
ROUTE..........................................................................................................................142
Sintaxe.......................................................................................................................144
Exemplos...................................................................................................................145
5
Apostila Debian Intermedirio - Desktop Parana
IFTOP............................................................................................................................146
Primeira coluna..........................................................................................................147
Segunda coluna.........................................................................................................148
Terceira coluna..........................................................................................................148
Quarta, quinta e sexta coluna...................................................................................148
TRACEROUTE..............................................................................................................150
ttl (Time To Live)........................................................................................................151
ARP................................................................................................................................152
DIG.................................................................................................................................154
Servidor-de-nome......................................................................................................154
Tipo de pesquisa.......................................................................................................155
Objeto a ser pesquisado...........................................................................................155
Exemplos de sadas..................................................................................................155
MII-TOOL.......................................................................................................................157
Negociao................................................................................................................158
Alterar os modos disponveis....................................................................................159
Mensagens de erro....................................................................................................160
NETSTAT.......................................................................................................................160
Primeira coluna (Protocolo utilizado)........................................................................161
Segunda coluna (Fila de dados a serem recebidos)................................................161
Terceira coluna (Fila de dados a serem enviados)...................................................161
Quarta coluna (Endereo local).................................................................................162
Quinta coluna (Endereo remoto).............................................................................162
Sexta coluna (Estado)...............................................................................................162
Praticando.................................................................................................................162
GERENCIADOR WICD.................................................................................................163
Estrutura do Wicd......................................................................................................164
Funcionamento e configuraes...............................................................................165
REFERNCIAS BIBLIOGRFICAS.................................................................................167
6
ndice de Figuras
Figura 1: Arquivo sources.list......................................................................................................... 10
Figura 2: Tela principal do cfdisk....................................................................................................30
Figura 3: Cfdisk - criando uma nova partio.................................................................................30
Figura 4: Cfdisk - escolhendo o tipo de partio (primria ou lgica).............................................31
Figura 5: Cfdisk - definindo o tamanho da partio........................................................................31
Figura 6: Cfdisk - Selecionando tipo de partio............................................................................32
Figura 7: Exemplo resultado de uso do comando convert..............................................................81
Figura 8: Representao de uma consulta a um servidor WINS..................................................112
Figura 9: Camada OSI.................................................................................................................. 118
Figura 10: Sada do comando IFTOP...........................................................................................147
Figura 11: Janela do Wicd............................................................................................................ 165
Apostila Debian Intermedirio - Desktop Parana
APROFUNDANDO-SE NO APT
No Debian temos basicamente duas formas de se instalar pacotes: (a) atravs das ferra-
mentas de instalao; (b) ou manualmente compilando o pacote. O Debian capaz de trabalhar
com diversas ferramentas de instalao, dentre elas destacamos o APT e o DPKG. Quando fala-
mos em instalao ou desinstalao em qualquer distribuio Linux, sempre esbarramos no termo
pacote em vez de programa. Isso vem da ideia de empacotamento de programas, que um agru-
pamento de dados que contm os arquivos e a estrutura indicativa de onde cada arquivo deve ser
gravado no sistema para que o mesmo funcione corretamente, junto com um conjunto de instru-
es que so executadas antes (preinst) e aps (postinst) a instalao e remoo dos mesmos.
Cada distribuio Linux possui uma extenso representativa para seus pacotes. No Debian
e seus derivados, a extenso utilizada .deb. Outra extenso comumente encontrada .rpm
que oriunda das distribuies derivadas do RedHat. Ainda possvel encontrar arquivos binri-
os, como acontece quando instalamos alguns mdulos proprietrios de interfaces de rede. Estes
possuem uma srie de alternativas em seu corpo, permitindo que o mdulo seja instalado inde-
pendente da distribuio (desde que ela seja suportada).
Antes de nos aprofundarmos no estudo do APT devemos fazer algumas observaes sobre
alguns pontos com relao a seu uso.
Com exceo dos recursos de pesquisa do APT, todos os demais s podem ser exe-
cutado pelo superusurio (root). Quando tentamos utilizar esses recursos como usurios co-
muns, uma mensagem de erro parecida com E: No foi possvel abrir arquivo de trava
/var/lib/dpkg/lock open (13 Permisso negada) apresentada na tela.
9
Apostila Debian Intermedirio - Desktop Parana
Geralmente quando instalamos um pacote, para que funcione corretamente, ele depende de
outros pacotes (que podem conter bibliotecas ou outros programas). Estes pacotes, os quais ele
depende, chamamos de dependncias. Um pacote pode ter vrias dependncias sendo que paco-
tes diferentes podem vir a ter dependncias em comum e as prprias dependncias podem vir a
ter dependncias, como numa grande teia de pacotes que unidos formam um sistema funcional.
Sabendo que um pacote possui dependncias ao tentarmos instal-lo, para que ele funcio-
ne, precisamos instalar tambm todas as suas dependncias e as dependncias de suas depen-
dncias. Isso torna esse processo muitas vezes complexo e trabalhoso.
O APT considerado por muitos como a melhor ferramenta para gerenciamento de pacotes
principalmente devido a sua capacidade, atravs do apt-get, de quando acionando para instalao
de um pacote, sempre seguir uma determinada ordem que possibilita a instalao dos pacotes e
de todas as dependncias necessrias para que ele funcione. A ordem seguida por ele esta: ve-
rificar se o pacote existe na lista local, resolver as dependncias, solicita ao servidor todos os pa-
cotes necessrios, faz o download, descompacta, configura e instala os pacotes.
10
Apostila Debian Intermedirio - Desktop Parana
Agora iremos ver algumas formas de uso do comando apt-get mostrando seus principais
parmetros:
apt-get update Existe uma lista, que contm uma descrio de todos os pacotes dispo-
nveis para o Debian, disponvel dentro de cada repositrio de pacotes. O apt-get consulta esta
lista para saber o que pode ser instalado. Este comando faz uma comparao entre a lista que
voc tm armazenada e a lista que est no servidor de pacotes. Se a sua for mais velha, ele faz o
download da mais recente. A atualizao de um nico pacote provoca o lanamento de um nova
lista. Este comando sempre deve ser executado antes de se fazer a instalao de algum pacote e
aps efetuar alteraes no arquivo sources.list.
11
Apostila Debian Intermedirio - Desktop Parana
apt-get install PACOTE - Executamos este comando para realizar a instalao de paco-
tes no sistema. Se quisermos instalar mais de um programa, basta escrever todos os nomes se-
parados por espao na linha de execuo do comando. Se um pacote precisa de outros para ser
instalado, isto , se ele tem pr-requisitos, eles tambm sero selecionados para instalao auto-
maticamente. Quando voc requisita a instalao de um pacote que no tem dependncias, a ins-
talao comea imediatamente. Caso existam dependncias, elas so mostradas a voc e o pro-
grama aguarda a sua confirmao (s/n) para continuar. Existem vrios motivos para ele esperar
por uma confirmao: a lista de dependncias pode ser muito grande e voc pode no querer ins-
talar todos os pacotes; pode no haver espao em disco suficiente para instalar o programa e/ou
suas dependncias; o pacote ser incompatvel com outro j instalado e exigir que este seja remo-
vido; ou, ainda, o repositrio no uma fonte confivel para o Debian, que acontece quando no
existe na mquina a chave pblica do repositrio de onde vem a atualizao. Existe ainda, um
caso em que h mais de uma verso disponvel para o mesmo pacote. Se um pacote chamado
nome possui uma verso 1.0-0 e 2.0-0, por exemplo, a verso mais nova ser instalada por
padro, entretanto, podemos querer instalar a verso mais antiga (1.0-0), tendo que executar o
comando da seguinte forma:
#aptgetinstallnome=1.00
apt-get remove PACOTE - Remove um ou mais pacotes. Esta operao faz a desinstala-
o de um pacote do sistema e no a remoo do .deb do diretrio de cache do APT. Em alguns
casos, os arquivos de configurao e/ou dados do pacote so mantidos. Isso pode ser bom ou
ruim. Se voc removeu um pacote por acidente, todo o seu trabalho de configurao dele ainda
estar preservado. Preste ateno s mensagens mostradas durante a remoo de um pacote
para saber o que est acontecendo. Observe tambm que, se algum pacote depende do pacote a
ser removido, esse pacote tambm ser removido.
apt-get --purge remove PACOTE - Remove um ou mais pacotes e seus respectivos ar-
quivos de configurao.
12
Apostila Debian Intermedirio - Desktop Parana
apt-get source PACOTE - Possibilita que o cdigo fonte de um programa seja copiado
para mquina local em vez do binrio do programa e seus scripts de configurao, que compem
o pacote do programa propriamente dito. Para baixar arquivos contendo o cdigo fonte de progra-
mas para sua mquina, necessrio configurar adequadamente o arquivo /etc/apt/sources.list.
Para isso, veja o tpico Reconfigurando a lista de pacotes, na sequncia.
apt-get build-dep PACOTE - Este comando tenta satisfazer as dependncias que um de-
terminado pacote contendo cdigo fonte de um programa possui, para ser compilado. Por exem-
plo: suponha que voc deseja recompilar o cdigo fonte do tuxracer (um jogo). Se voc executar
o comando apt-get build-dep tuxracer, o APT tentar instalar todos os pacotes que sejam neces-
srios para compilao do pacote tuxracer. Em algumas situaes, necessrio instalar pacotes
alm daqueles que so trazidos automaticamente pelo comando apt-get build-dep. Isto algo
natural e voc dever se acostumar a estas situaes.
apt-get check - uma ferramenta de diagnstico. Ele atualiza o cache de pacotes e veri-
fica se h alguma dependncia quebrada que necessita ser resolvida (utilizando-se apt-get -f ins-
tall) no sistema.
Alm do apt-get vamos ver tambm o uso do apt-cache que a ferramenta de pesquisa
do APT. Atravs das ferramentas de pesquisa podemos procurar por pacotes assim como pesqui-
sar informaes mais detalhas sobre um determinado pacote.
apt-cache search NOME - Para procurar por um pacote qualquer, executamos este co-
mando. Ele faz uma pesquisa na lista de pacotes disponveis, procurando pacotes que possuam a
expresso fornecida no argumento NOME. A sada deste comando, apresenta todos os pacotes
que apresentam a palavra fornecida como argumento em parte do nome ou na descrio do paco-
te. Existem formas mais complexas de busca que podem ser mais claras ou mais especficas,
mas geralmente, a utilizao do comando grep para filtrar a sada j suficiente para grande
maioria dos casos.
apt-cache show PACOTE - Uma vez descoberto o nome correto do pacote Debian, voc
pode visualizar todas as informaes sobre o pacote, bem como seu mantenedor, sua verso, sua
descrio, dentre outras informaes relevantes.
apt-cache showsrc PACOTE Tem a mesma funo que o comando apt-cache show,
porm, atua mostrando informaes sobre pacotes fontes.
13
Apostila Debian Intermedirio - Desktop Parana
T odas as opes que so passadas pelo usurio atravs da linha de comandos sob-
rescrevem as configuraes contidas no arquivo apt.conf.
!!Por motivos estritamente didticos, iremos, a partir de agora, indicar cada ar-
quivo desses que podem ser alocados dentro do diretrio /etc/apt/apt.conf.d
como apt.conf. !!
O arquivo apt.conf organizado sob a forma de rvore em divises funcionais, como por
exemplo: o grupo APT, o grupo Acquire, o grupo DPKG e a seo Dir (para diretrios de
configurao). Sintaticamente, o arquivo pode ser configurado sob as seguintes formas:
APT::Get::AssumeYes"true";
ou
APT{
Get{
AssumeYes"true";
};
};
Nos exemplos acima, podemos perceber que tanto os caracteres ::, quanto { e };, so
utilizados para definir qual o grupo funcional, seo e opes estamos tratando naquele espao
do arquivo de configurao. Em ambos exemplos que citamos (acima), estamos tratando da op-
o Assume-Yes, da seo Get, do grupo funcional APT, contudo, de formas sintaticamente
diferentes, mas produzindo o mesmo resultado.
Linhas que se iniciam com os caracteres //, ou um bloco de texto, que se inicia com /* e
termina com */, so considerados comentrios e so ignorados.
14
Apostila Debian Intermedirio - Desktop Parana
A seguir explicaremos a finalidade de cada grupo funcional, que pode ser configurado atra-
vs do apt.conf:
Grupos
O grupo APT
utilizado para controlar as opes gerais para uso de todas as ferramentas do APT.
O grupo Acquire
O grupo Dir
Definio de layout de diretrios. Usado para a configurao dos diretrios que sero utiliza-
dos pelo APT.
O grupo Dselect
Configuraes que afetam o uso da ferramenta dselect, quando ela utilizada em conjunto
com o APT.
O grupo DPKG
Configuraes que afetam o uso do dpkg. As opes que fazem parte desta seo, alteram a
forma normal como o dpkg atua, quando invocado pelo APT.
O grupo Debug
Utilizado para configurar opes para depurao no uso das ferramentas do APT.
Cada um destes grupos funcionais possui uma gama prpria de opes, que no discutire-
mos aqui, por ser muito vasta (cabe a vocs, caso Se voc precisar saber qualquer detalhe sobre
as opes que podem ser utilizadas neste arquivo de configurao, estude a documentao oficial
do arquivo, atravs do comando:
#manapt.conf
Exemplos:
Exemplo 01: Configurando um servio de proxy para ser utilizado pelo APT. Esta configura-
o possibilita buscar pacotes de programas na Internet atravs de um servidor proxy existente na
sua rede.
Acquire
15
Apostila Debian Intermedirio - Desktop Parana
{
http
{
Proxyhttp://usuario:senha@proxy.organizacao:8080/;
};
};
Exemplo 02: Configurando a arquitetura e release (verso) padro dos pacotes a serem uti-
lizados pelo sistema.
APT
{
Architecture"i386";
DefaultReleasestable;
};
Dir/
{
Cache"var/cache/apt/"
{
Archives"archives/";
srcpkgcache"srcpkgcache.bin";
pkgcache"pkgcache.bin";
};
};
16
Apostila Debian Intermedirio - Desktop Parana
M uito cuidado quando estiver trabalhando com verses diferentes, uma m instala-
o de pacote pode gerar quebras de pacotes e at mesmo a paralisao do siste-
ma. Isso acontece muito facilmente quando se usa um sistema personalizado, como o
Desktop Paran.
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.
#aptgetttestinginstall[pacote]
Podemos definir que um pacote sempre venha da release testing. Para isso, dentro do ar-
quivo /etc/apt/preferences, defina a prioridade especfica de um pacote. Veja o exemplo abaixo:
Package:amule
Pin:releasea=testing
PinPriority:905
O pacote desejado vai ter prioridade maior que o de qualquer outro release, ento o pacote
desejado ser da release testing.
17
Apostila Debian Intermedirio - Desktop Parana
DPKG
O dpkg considerado a base do Sistema de Gerenciamento de Pacotes do Debian e das
distribuies que dele derivam. O dpkg capaz de instalar, remover e fornecer informaes sobre
os pacotes .deb. muito usado por usurios avanados da Debian e desenvolvedores para fins
de instalao, manuteno e construo de pacotes.
Ele tambm utilizado como Back end por ferramentas como apt-get e aptitude, devido
aos fatos de ser muito bom na instalao de pacotes, porm falhar nas tarefas de ser capaz de
buscar pacotes em lugares remotos ou resolver conflitos complexos nas dependncias dos paco-
tes. Assim, estes outros comandos resolvem estes problemas e, na hora de realizar a instalao
em si, chamam-no para o trabalho sujo.
O dpkg composto por uma srie de ferramentas que desempenham funes especificas
em relao aos pacotes Debian. A seguir iremos fazer uma breve breve descrio do que as prin-
cipais ferramentas fazem.
Utilizando o dpkg
O comando dpkg possui a seguinte sintaxe:
18
Apostila Debian Intermedirio - Desktop Parana
Aes
As principais aes so:
-X end<pacote> <diretrio> Faz a mesma coisa que o comando anterior, porm, em vez
de extrair os arquivos nos seus devidos lugares, ele permite que o usurio escolha um novo desti-
no. A diferena crucial est no fato de o --unpack realizar a criao dos arquivos a partir do barra
(/) e o -X iniciar a partir do diretrio que voc especificar, que ser um barra falso. Voc poder
executar o aplicativo digitando o endereo completo do executvel, ou colocando o binrio dentro
do PATH do usurio que o ir executar.
-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.
19
Apostila Debian Intermedirio - Desktop Parana
-l <pacotes> (ele) Lista todos os pacotes instalados no sistema com suas respectivas in-
formaes, podendo ter status diferentes: estar instalado corretamente com o apt, ter sido apenas
desempacotado, ter tido sua instalao interrompida durante a instalao, etc. muito utilizada
pelos administradores. Opcionalmente, voc poder especificar o nome de um ou mais pacotes
(separados por espaos) para verificar suas informaes.
-I end<pacote> (i) Exibe uma srie de informaes acerca de um pacote. Sempre, como
pode ser visto na sintaxe, devemos indicar o pacote com o endereo completo. Se o administrador
tentar utilizar apenas o nome do pacote, o erro Arquivo ou diretrio no encontrado ser apre-
sentado na tela. As informaes apresentadas so parecidas com as do parmetro -s, porm o
pacote no precisa ter sido instalado nunca, e temos uma informao adicional: o tamanho do ar-
quivo de controle e uma descrio de o qu o compe e quanto ocupa de espao (conffiles, con-
trol, md5sums, postinst, preinst, posrm e prerm).
-S <arquivo> Permite descobrir qual o pacote que possui algum arquivo. Ele muito in-
teressante, j que o administrador pode utilizar um comando em um computador que no existe
em outro. Para saber o nome do pacote, basta ir at o computador que o possui e verificar, com
esta opo, aquele pacote que o possui. Como j foi dito, ele pode ser usado para qualquer arqui-
vo, no somente um binrio (ex: sources.list).
/
/etc
/etc/fabiqueta
/etc/fabiqueta/fabiqueta.conf
Desta forma, o administrador consegue saber exatamente onde est cada um dos diretrios
e arquivos criados originalmente pelo pacote.
20
Apostila Debian Intermedirio - Desktop Parana
C aso um pacote venha a ser removido, este comando ter sua fonte atualizada e
mostrar apenas aqueles arquivos e diretrios que ainda existem. Para voc verifi-
car o seu funcionamento, instale o pacote tuxpaint, utilize este parmetro, remova com
o dpkg -r e ento verifique novamente a sada do comando com o parmetro -L. Voc
observar que somente os arquivos de configurao permanecem no computador.
Opes
As opes do comando dpkg tanto podem ser especificadas atravs da linha de comandos,
como atravs do arquivo de configurao do dpkg, o /etc/dpkg/dpkg.cfg. As principais opes
so:
-B Quando um pacote desinstalado do sistema, pode ocorrer que outros pacotes ainda
instalados dependam do que foi removido. Esta opo faz com que estes pacotes tambm sejam
removidos do sistema automaticamente.
--no-act Faz uma simulao de acordo com as aes envolvidas. Por exemplo, voc pode
simular a instalao ou remoo de um pacote para verificar se algum erro ser gerado pelo siste-
ma de gerenciamento de pacotes. Tenha certeza que voc especificou esta opo antes da cita-
o de qualquer ao na linha de comando, caso contrrio, esta opo no ter efeito e a ao
ser desempenhada de fato.
--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.
#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
O pacote foi descarregado dentro do diretrio /var/cache/apt/archives. Entre nele para que
nossas atividades tornem-se mais fceis. Para verificar se a aplicao est funcionando, digite sl
e pressione <Enter>. Um erro aparecer. Isso quer dizer que o pacote .deb foi descarregado no
seu computador, porm no foi instalado (quem fez isso foi o parmetro -d, que indica download
only). Verifique o nome exato do pacote e instale-o.
#lslsl*
rwrr1rootroot251242007120217:47sl_3.0315_i386.deb
#dpkgisl_3.0315_i386.deb
Selecionandopacotepreviamentenoselecionadosl.
(Lendo banco de dados ... 95880 arquivos e diretrios atualmente
instalados).
Desempacotandosl(desl_3.0315_i386.deb)...
Configurandosl(3.0315)...
Processandogatilhosparamandb...
#sl
O trem t funcionando. Ento agora podemos realizar novos testes. Apesar do aplicativo es-
tar funcionando, ser que o sistema sabe que ele est l?
#dpkggetselectionssl
slinstall
#dpkgLsl
Parece que o criador do sl tava meio que desempregado e sem ocupao, no mnimo. Tem
muita coisa, e, com o comando anterior, pudemos verificar o que foi criado pelo arquivo de contro-
le do pacote sl. Conseguimos descobrir que at mesmo quem digitar errado o ls esquecendo o
<Caps Lock> ligado vai ser zoado (veja que possui um binrio dentro do /usr/bin chamado LS).
Chega de sl, vamos remov-lo do sistema. Quando instalamos, o pacote .deb teve que ser
apresentado ao dpkg, mas agora que ele j est no sistema, como podemos lembrar, existem lis-
tas que o registraram e agora s precisamos indicar o nome da aplicao, e no do pacote.
#dpkgrsl
22
Apostila Debian Intermedirio - Desktop Parana
#dpkggetselectionssl
slpurge
Como j vimos, foi muito fcil instalar o pacote sl. A instalao possui vrios processos reali-
zados, definidos pelos arquivos de controle, preinst e posinst. Se quisermos realizar a criao de
todos os diretrios da estrutura que o aplicativo ir assumir, e criar todos os arquivos necessrios
para o seu pleno funcionamento, podemos simplesmente extra-lo. Iremos realizar essas ativida-
des de duas formas diferentes. A primeira ser realizar a extrao nos lugares definidos pelo de-
senvolvedor, e a segunda a extrao ser realizada a partir do diretrios especificado pelo admi-
nistrador.
Primeiro caso:
#sl
su:/usr/bin/sl:Arquivooudiretrionoencontrado
#dpkgunpacksl_3.0315_i386.deb
Selecionandopacotepreviamentenoselecionadosl.
(Lendo banco de dados ... 95880 arquivos e diretrios atualmente
instalados).
Desempacotandosl(desl_3.0315_i386.deb)...
Processandogatilhosparamandb...
#
#sl
Como esse pacote no exige que o administrador configure e execute procedimentos mais
complexos, o simples fato de terem sido criados diretrios definidos pelo desenvolvedor j o su-
ficiente para que a aplicao funcione. Utilizando o dpkg -L voc poder verificar que todos os ar-
quivos do pacote foram alocados nos seus respectivos lugares. Podemos inferir, ento, que o --
unpack a etapa de criao de diretrios e alocao de arquivos j falada anteriormente. Mas e
23
Apostila Debian Intermedirio - Desktop Parana
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
Q uando comearmos a usar o tar, para extrair arquivos compactados com o gzip utili-
zamos o parmetro z, enquanto que para extrair arquivos compactados com o bz2
utilizaremos o parmetro j. Uma forma de lembrar qual utilizar BeiJando o GiZ.
Para iniciar a compilao de um cdigo fonte, a primeira coisa a se fazer obter o cdigo
para ser compilado. Aps o arquivo que contm o cdigo fonte estar disponvel localmente, voc
dever extrair o contedo para um diretrio adequado a compilao (ex.: /comp-louco). Os arqui-
vos-fontes so, no padro Debian, agrupados e compactados em arquivos tarball. Para realizar
nossos testes iremos utilizar um arquivo fonte que possui o cdigo do aplicativo TAL. Para extrair
o seu contedo, use um dos comando abaixo:
tarxvzfnome_do_arquivo.tar.gz
ou
tarxvjfnome_do_arquivo.tar.bz2
25
Apostila Debian Intermedirio - Desktop Parana
Executar o arquivo configure Este arquivo um script shell que examina o siste-
ma para verificar se diversas dependncias necessrias para compilar o projeto sero sa-
tisfeitas. Ele deve ser executado digitando-se ./configure dentro do diretrio que contm o
cdigo-fonte do programa a ser compilado. Esse script, tambm pode conter parmetros
que podem ser passados na linha de execuo para configurao de opes especificas,
para consultar a lista de parmetros disponveis, tente executar o script ./configure --help.
Se o script configure no encontrar alguma das dependncias necessrias para compila-
o do programa, um erro gerado e a execuo finalizada automaticamente, gerando
uma mensagem semelhante abaixo:
checkingforSDLversion>=1.2.0...no
configure:error:***SDLversion1.2.0notfound!
Nesse caso, nos falta a biblioteca de desenvolvimento (cabealhos) SDL verso 1.2.0 ou
mais recente. Para resolver este problema, necessrio instalar o pacote libsdl1.2-dev para re-
solver essa dependncia. A maioria das bibliotecas necessrias para a compilao de programas
no GNU/Debian tm o prefixo lib e o sufixo -dev, como por exemplo, libc6-dev, libsdl1.2-dev,
etc. Aps resolvidas todas as dependncias.
26
Apostila Debian Intermedirio - Desktop Parana
O QUE SO PARTIES
Parties so divises feitas em um disco de armazenamento para delimitar um determina-
do espao deste para instalao de um sistema de arquivos. Existem trs tipos de parties: pri-
mrias, estendidas e lgicas. Os propsitos fundamentais da criao de parties so 3: (a) maior
segurana atravs da diviso de dados de acordo com a natureza de seus dados (sistema, usu-
rio, de inicializao); (b) diviso de acordo com o tamanho dos dados, afim de melhorar o desem-
penho atravs de sistemas de arquivos especficos; (c) ter mais de um sistema operacional no
mesmo disco.
No existe nenhuma diferena top-down entre parties primria e lgica. A diferena real
entre elas o local onde so alocadas as informaes acerca de uma partio. Isso foi explicado
detalhadamente na apostila de Debian Bsico, sendo interessante voc tirar as teias de aranha
dela e dar uma relembrada. Basicamente, o detalhamento (primeiro e ltimo setor, nmero total de
blocos, etc) de uma partio primria fica dentro do primeiro setor do disco rgido (MBR -Master
Boot Record), enquanto as lgicas ficam fora da MBR. Podemos chamar este detalhamento, ou
definio de uma partio, como cabealho da mesma. Podemos ter 4 cabealhos dentro da
MBR. Estes cabealhos podem ser todos primrios ou ento de 0 a 3 primrios e um estendido. A
partio estendida s indica onde est, dentro do disco rgido e fora da MBR, o cabealho da pri-
meira partio lgica. Ou seja, para que tenhamos pelo menos uma partio lgica, necessrio
se ter uma partio estendida. Como esta trata apenas de um cabealho de ligao, dizemos que
ele define uma partio no utilizvel. Para saber quantas parties utilizveis temos em um dis-
co, precisamos: (a) quando existe parties lgicas, subtrair do nmero da ltima partio lgica o
resultado de 4 menos o nmero de parties primrias; (b) quando no existe parties lgicas,
verificar o nmero de parties primrias, que so todas utilizveis.
Ex: Se temos 2 parties primrias e a ltima partio lgica a partio 12, ento temos:
Aps criada e formatada, a partio passa a ser reconhecida pelo sistema operacional como
um n de dispositivo representado por um arquivo no diretrio /dev. como se uma partio fos-
se um dispositivo diferente, sendo que, na realidade, so apenas divises lgicas do disco, estan-
do todas dentro de apenas um dispositivo fsico. Este arquivo receber automaticamente um
nome e atravs deste possvel identificarmos vrias informaes referentes ao
hardware de armazenamento.
27
Apostila Debian Intermedirio - Desktop Parana
/dev/hda1
| | ||
| | | |__ Indica o nmero da partio do HD.
| | |___ Letra que indica o dispositivo (a=primeiro, b=segundo...).
| |_____ Sigla que indica o tipo de dispositivo (hd=ide, sd=scsi ou sata).
|_________ Diretrio onde so armazenados dispositivos do sistema.
T udo isso foi visto na apostila de Debian Bsico, por isso, abordaremos de uma forma
superficial o assunto, somente para que voc possa recordar e tornar vivo tudo que
j sabe.
Sempre que for realizar qualquer atividade referente a parties, ser muito interessante
que o administrador saiba usar o comando abaixo, que trar as primeiras informaes que possi-
velmente precisaremos para comear a agir e planejar suas tarefas:
#fdiskl
Disk/dev/sda:250.0GB,250059350016bytes
255heads,63sectors/track,30401cylinders
Units=cylindersof16065*512=8225280bytes
Diskidentifier:0x9ebef679
Disk/dev/sdb:4005MB,4005560320bytes
16heads,32sectors/track,15280cylinders
Units=cylindersof512*512=262144bytes
Diskidentifier:0xef6cfd35
28
Apostila Debian Intermedirio - Desktop Parana
Deduza por si s!
A questo 10 apenas uma piada de mau gosto. para voc sentir que ainda falta cho,
ento continue estudando e crie uma boa base, para que depois voc possa brincar com seu co-
nhecimento durante a soluo de problemas.
Vale ressaltar que caso seu sistema possua discos utilizando tcnicas de RAID via hardwa-
re, quando o comando for executado, os discos sero mostrados de acordo com as configuraes
RAID que estiverem em vigor no seu sistema. Por exemplo, numa configurao em RAID 1
(mirroring), apesar de existirem fisicamente dois discos na mquina, apenas um ser mostrado.
Para sabermos quais outras opes temos para utilizao do fdisk, basta digitarmos so-
mente o comando:
#fdisk/dev/sda
ou
#fdisk/dev/hda
Sero listadas algumas informaes sobre o disco e tambm ser aberta a linha de comado
do fdisk, onde digitando a opo m ser exibida uma lista com as opes disponveis para utili-
zao na linha de comando do fdisk.
29
Apostila Debian Intermedirio - Desktop Parana
No iremos ver nesta apostila o funcionamento de recursos do fdisk seno a verificao das
informaes com o parmetro -l. Para realizar modificaes nos sistemas de arquivos e manipu-
lao de parties, usaremos o cfdisk. Podemos obter maiores informaes sobre as opes do
comando fdisk atravs do seu manual (man fdisk).
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.
Para criar uma nova partio, deve-se selecionar o espao livre do dispositivo e em seguida
selecionar a opo Nova.
30
Apostila Debian Intermedirio - Desktop Parana
Ser, ento, necessrio definir se a partio ser primria ou lgica. Utilizando as setas, se-
lecione a opo desejada e pressione o <Enter> do teclado.
O prximo passo definir o tamanho desejado para a partio em criao. Sempre deve-
mos definir o tamanho em megabytes.
31
Apostila Debian Intermedirio - Desktop Parana
Em seguida, devemos selecionar na listagem um dos tipos de parties que desejamos criar
(partio linux, ntfs, fat, etc...). Para selecionar digite o nmero correspondente sobre o j existen-
te e pressione a tecla <Enter>.
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.
Salvando as alteraes
Devemos tomar muito cuidado sempre antes de selecionar e confirmar a opo gravar,
pois assim confirmarmos esta operao todas as alteraes feitas na tabela de partio sero gra-
vadas no tendo mais como serem desfeitas. Sempre que fizermos qualquer alterao indesejada
na tabela de partio basta sair da aplicao (cfdisk) sem gravar as alteraes.
SISTEMA DE ARQUIVOS
Um sistema de arquivos um conjunto de estruturas lgicas e de rotinas, que permitem ao
sistema operacional controlar o acesso ao disco rgido. Existem diversos sistemas de arquivos di-
ferentes, que vo desde sistemas simples como o FAT16, at sistemas como o NTFS, XFS e Rei-
serFS, que incorporam recursos muito mais avanados.
32
Apostila Debian Intermedirio - Desktop Parana
mkfstxfs/dev/hda1
mkfs.xfs/dev/hda1
33
Apostila Debian Intermedirio - Desktop Parana
O GRUB (Grand Unified Boot Loader) o gerenciador de partida padro do Debian. Ele
um dos mais poderosos e funcionais gerenciadores de partida, capaz de inicializar vrios siste-
mas operacionais como Windows (9x, ME, NT, 2000, XP e Vista), Dos, Linux, GNU Hurd, *BSD,
OS/2 etc. Podemos destacar tambm o suporte aos sistemas de arquivos EXT2, EXT3 e Rei-
serFS, FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no *BSD), minix (MINIX OS)
etc.
A o instalarmos uma mquina com dual boot, com os sistemas operacionais Linux e
Windows, devemos sempre instalar primeiro o sistema operacional Windows. Pois o
mesmo, durante sua instalao, grava suas informaes de inicializao na MBR do dis-
co sobrescrevendo todas as configuraes nela existentes, consequentemente apagan-
do o GRUB e suas configuraes fazendo que o Linux, mesmo instalado, seja ignorado
e iniciado diretamente o sistema operacional Windows.
O GRUB utiliza o padro Multiboot o que o torna capaz de carregar diversas imagens de ini-
cializao (uma por vez) e mdulos. Alm de permitir buscar imagens do Kernel pela rede, por ca-
bos seriais, suporta discos rgidos IDE, SATA e SCSI, informar a quantidade total de memria
RAM ao sistema, tem interface voltada para linha de comandos ou menus de escolha, alm de su-
portar sistemas sem discos e terminais remotos.
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:
INSTALAO DO GRUB
Aps instalado o GRUB dificilmente precisaremos reinstal-lo. As alteraes ou adies de
novos sistemas a serem carregados como opo para inicializao so feitas atravs de altera-
es no arquivo de configurao menu.lst, com o comando:
#vim /boot/grub/menu.lst
Algumas situaes podem vir a apagar o GRUB da MBR do disco, por exemplo, como foi
descrito anteriormente, uma mquina com dual-boot onde a instalao do sistema operacional
Windows foi efetuada posterior a instalao do Linux. Nesses casos para podermos restaurar o
GRUB e voltarmos a utilizar o sistema operacional Linux instalado, podemos, dentre as vrias al-
ternativas para restaurao do grub, executar o comando abaixo por exemplo:
#grubinstall/dev/hda
Este comando grava o GRUB no MBR do primeiro disco rgido IDE do sistema e cria o dire-
trio /boot/grub, onde estaro os arquivos necessrios para o seu funcionamento. interessante
tambm, executar o comando:
#updategrub
Este comando atualiza dinamicamente a lista de sistemas que podem ser carregados du-
rante a inicializao da mquina, e os adiciona ao arquivo menu.lst automaticamente, conforme
a instalao corrente.
35
Apostila Debian Intermedirio - Desktop Parana
* Neste momento deve ser indicada a partio que contenha o diretrio /boot
#menu.lstSee:grub(8),infogrub,updategrub(8)
#grubinstall(8),grubfloppy(8),
#grubmd5crypt,/usr/share/doc/grub
#and/usr/share/doc/grubdoc/.
###################################################################
##defaultnum
# A opo default serve para que possamos escolher qual kernel (sistema) ser iniciado. Para isso
basta passar como parmetro o nmero correspondente ao sistema a ser iniciado. A contagem para
representao dos sistemas feita atravs da ordem de apario do parmetro title neste arqui -
vo, deforma que a primeira ocorrncia corresponder ao nmero 0 a segunda ao nmero 1 e assim
2 Uma boa opo de cd bootavel que podemos utilizar para isso o SYSTEMRESCUECD
36
Apostila Debian Intermedirio - Desktop Parana
por diante.
# possvel tambm especificar 'saved' como argumento da opo default. Nesse caso ser consi -
derado como opo padro aquela que apresentar junto s suas configuraes a opo 'savedde -
fault'.
Default 0
###################################################################
##timeoutsec
#Aopotimeoutpermiteadefiniootempo,emsegundos,queo
menudoGRUBficardisponvelparaescolhadosistemaaserinicia
doantesdeiniciarautomaticamenteaopodefinidacomopadro.
Timeout 5
###################################################################
##Prettycolours
# A opo color permite que faamos customizaes das cores no menu do GRUB, atravs do co -
mando 'color a/b c/d'. Onde 'a' representa cor das opes, o 'b' representa a cor do fundo, o 'c' re -
presenta as letras sob o cursor e o 'd' representa acor do cursor. As cores que podem ser aplicadas
so: black (preto), blue (azul), green (verde), cyan (ciano), red (vermelho), magenta (prpura),
brown (marron) e ligth-gray (cinza claro). Ainda so possvel aplicar as cores das fontes ('a' e 'c') as
cores: dark-gray (cinza-escuro), ligth-blue (azul-claro), ligth-green (verde-claro), ligth-cyan (ciano-
claro), ligth-red (vermelho-claro), ligth-magenta (prpura-clara), yellow (amarelo) e white (branco).
colorcyan/bluewhite/blue
###################################################################
##password['md5']passwd
# A opo password permite a definio de uma senha que dever ser informada para que seja pos-
svel a edio das opes de inicializao dos sistemas assim como a utilizao da linha de comando
do GRUB atravs do menu para escolha do sistema a ser iniciado.
# possvel definirmos esta senha de duas formas sem criptografia ou com criptografia. A desvan -
tagem de utilizarmos a senha sem estar criptografada que qualquer usurio com permisso de lei-
tura no arquivo menu.lst poder descobrir qual a senha setada.
Para definirmos uma senha no criptografada basta inserimos a senha desejada logo aps a opo
password, como mostra o exemplo abaixo.
#passwordsenha
#Para definirmos uma senha criptografada basta inserirmos aps a opo password o parmetro '--
md5' seguido da senha j criptografada, como mostra o exemplo abaixo:
#passwordmd5$1$gLhU0/$aW78kHK1QfV3P2b2znUoe/3
###################################################################
3 Para criptografarmos uma senha para utilizao no GRUB basta entrarmos na linha de comando do GRUB e
digitarmos o comando md5crypt digitarmos a senha desejada e copiarmos o resultado criptografado apresentado
para o arquivo de configurao (menu.lst).
37
Apostila Debian Intermedirio - Desktop Parana
##fallbacknum
# Com esta opo podemos definir um segunda opo do menu do GRUB para ser carregada caso a
inicializao do kernel definido como default falhar. Para o correto funcionamento deste parmetro
o mesmo deve ser utilizado junto com o parmetro 'hidenmenu'.
fallback1
###################################################################
##hidenmenu=opo
# Este parmetro oculta a exibio do menu do GRUB de forma que exibida apenas uma mensa -
gem com opo para visualizao do menu de cordo com o tempo definido no parmetro 'timeout'
e esgotado o tempo automaticamente iniciada a opo default.
hidenmenu=true
###################################################################
#Putstaticbootstanzasbeforeand/orafterAUTOMAGICKERNELLIST
## Abaixo encontraremos a seo de opes default, esta seo nunca deve ser descomentada. Os
parmetros passados nesta seo sero utilizados na configurao do GRUB quando for executado
o comando 'update-grub' ou quando for instalada alguma atualizao de segurana do GRUB.
####StartDefaultOptions##
##defaultkerneloptions
## default kernel options for automagic boot options
##Ifyouwantspecialoptionsforspecifickernelsusekopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
##e.g.kopt=root=/dev/hda1ro
##kopt_2_6_8=root=/dev/hdc1ro
##kopt_2_6_8_2_686=root=/dev/hdc2ro
#kopt=root=/dev/hda4rovga=791quietsplash
##defaultgrubrootdevice
##e.g.groot=(hd0,0)
#groot=(hd0,1)
## should updategrub create alternative automagic boot options
##e.g.alternative=true
##alternative=false
#alternative=true
##shouldupdategrublockalternativeautomagicbootoptions
##e.g.lockalternative=truelockalternative=false
##lockalternative=falseadditionaloptionstousewiththedefault
##bootoption,butnotwiththealternativese.g
##defoptions=vga=791resume=/dev/hda5
#defoptions=
##shouldupdategrublockoldautomagicbootoptions
##e.g.lockold=false
##lockold=true
#lockold=false
38
Apostila Debian Intermedirio - Desktop Parana
##XenhypervisoroptionstousewiththedefaultXenbootoption
#xenhopt=
##XenLinuxkerneloptionstousewiththedefaultXenbootoption
#xenkopt=console=tty0
##altoptionboottargetsoption
##multiplealtoptionslinesareallowed
##e.g.altoptions=(extramenusuffix)extrabootoptions
##altoptions=(singleuser)single
#altoptions=(singleusermode)single
##controlshowmanykernelsshouldbeputintothemenu.lst
##onlycountsthefirstoccurenceofakernel,notthe
##alternativekerneloptions
##e.g.howmany=all
##howmany=7
#howmany=all
##shouldupdategrubcreatememtest86bootoption
##e.g.memtest86=true
##memtest86=false
#memtest86=true
##shouldupdategrubadjustthevalueofthedefaultbootedsystem
##canbetrueorfalse
#updatedefaultentry=false
####EndDefaultOptions##
# Logo aps s opes padro comeam as configuraes especficas dos sistemas operacionais
que sero disponibilizados como opo para boot.
Abaixo temos listado como opo de sistema para inicializao o Debian com kernel 2.6.18-6-686.
E logo abaixo temos esse mesmo sistema mas configurado para ser inicializado no modo single-
mode (somente um usurio) que o mesmo sistema operacional com o mesmo kernel com que
inicializado com parmetros, de kernel, diferentes.
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
title DebianGNU/Linux,kernel2.6.186686
root (hd0,1)
kernel /vmlinuz2.6.186686root=/dev/hda4rovga=791
initrd /initrd.img2.6.186686
savedefault
title DebianGNU/Linux,kernel2.6.186686(singleusermode)
root (hd0,1)
kernel /vmlinuz2.6.186686root=/dev/hda4rovga=791single
initrd /initrd.img2.6.186686
###ENDDEBIANAUTOMAGICKERNELSLIST
###################################################################
# As configuraes abaixo funcionam apenas como um separador que separa as opes de carrega-
mento do Debian das opes dos demais sistemas operacionais disponveis.
title Otheroperatingsystems:
root
###################################################################
# Abaixo (fora da seo DEBIAN AUTOMAGIC KERNELS LIST) encontramos as configuraes dos
sistemas operacionais no-linux. Essas configuraes so escritas neste arquivo atravs do pacote
os-prober que detecta todos os sistemas operacionais instalados e repassa essas informaes ao
gerenciador de boot (GRUB). Por serem detectadas automaticamente dificilmente temos a necessi-
dade de edio dessas configuraes.
# Para configurarmos um sistema operacional windows no GRUB devemos utilizar os seguintes
parmetros de configurao:
# - title: define a forma de identificao que o sistema operacional (kernel) assumir no menu
do GRUB durante a seleo do sistema a ser iniciado.
# - root: para indicarmos em qual partio o Windows esta instalado.
# - makeactive: para tornar a partio com o Windows ativa (o Windows s pode ser iniciado se
sua partio for uma partio ativa).
# - chainloder +1: faz com que seja feita a leitura do primeiro setor da partio carregando o
gerenciador de boot do windows.
title MicrosoftWindowsXPProfessional
root (hd0,0)
savedefault
makeactive
chainloader +1
module = Faz com que algum mdulo necessrio para o boot seja carregado. Lembre-se
40
Apostila Debian Intermedirio - Desktop Parana
que estes no so mdulos do kernel (mdulos de som, rede, etc.) e sim mdulos necessrios ao
boot de alguns sistemas, como por exemplo os utilizados pelo GNU Hurd.
lock = Quando voc desejar controlar se uma pessoa pode ou no iniciar um sistema que
esteja listado nas opes do menu de boot, voc pode utilizar esta opo que faz com que a se-
nha especificada com o parmetro password seja solicitada no momento em que o usurio ten-
tar carregar a imagem em questo.
pause = Emite uma mensagem na tela e espera uma tecla ser pressionada.
#Porodoarquivo/boot/grub/menu.lst
titleWindows
hide(hd0,1)
unhide(hd0,0)
rootnoverify(hd0,0)
chainloader+1
makeactive
titleDos
hide(hd0,0)
unhide(hd0,1)
rootnoverify(hd0,1)
chainloader+1
makeactive
map = Alguns sistemas no permitem ser iniciados quando no esto no primeiro disco
(DOS, Windows 9x etc). Para resolver esta e outras situaes deste tipo, o GRUB tem um coman-
do que permite enganar tal sistema mapeando as unidades de disco do modo como lhe for mais
conveniente.
Imagine que voc tenha o primeiro disco (hd0) com o GNU/Linux instalado e em um outro
disco (hd1) com o Windows/DOS instalado. O Windows/DOS no permitem serem inicializados
desta forma, e como soluo, voc poderia usar a seguinte entrada no arquivo de configuraes
/boot/grub/menu.lst do GRUB:
titleWindows
41
Apostila Debian Intermedirio - Desktop Parana
unhide(hd1,0)
rootnoverify(hd1,0)
chainloader+1
map(hd1)(hd0)
makeactive
Isso faz com que o disco (hd1), onde Windows/DOS est instalado, seja apresentado a
este sistema como (hd0), um artifcio que permitir que estes sistemas sejam carregados normal-
mente.
#grub
Abaixo iremos fazer uma breve descrio de alguns comandos que podemos utilizar na linha
de comando do GRUB, onde s detalharemos os comandos mais relevantes.
cat - Este comando permite verificar o contedo de um arquivo qualquer, o qual deve es-
tar gravado em um dispositivo ligado a sua mquina. Embora seja um recurso til, nenhuma
permisso de acesso verificada e qualquer pessoa que tenha acesso linha de comandos
do GRUB, poder listar o contedo de arquivos importantes do seu sistema. Para contornar
este problema, configure adequadamente o parmetro password no arquivo /boot/grub/me-
nu.lst. No esquea que ainda possvel utilizar um disquete com o GRUB para iniciar a m-
quina, o que permite usar a linha de comandos pelo disquete.
42
Apostila Debian Intermedirio - Desktop Parana
Para testar o comando cat siga os passos descritos a seguir: deixe o arquivo menu.lst so-
mente com permisso de leitura e escrita para o dono (grupo e outros no devem ter nenhum tipo
de permisso), com um usurio comum tente listar o contedo do arquivo menu.lst com o co-
mando cat da linha de comando do sistema operacional (dever ser exibida mensagem de per-
misso negada). Em seguida como root digite o comando grub para entrar na linha de comandos
do GRUB, e seguida utilize, para listar o contedo do arquivo menu.lst, o comando cat passan-
do, com a sintaxe do GRUB, qual a partio e o caminho onde se encontra o arquivo menu.lst e
perceba que o contedo do arquivo ser exibido. Veja abaixo um exemplo de execuo dos co-
mandos descritos nesse procedimento.
#chmod600/boot/grub/menu.lst
#surobsonp
$cat/boot/grub/menu.lst
cat:/boot/grub/menu.lst:Permissonegada
$exit
#grub
grub>cat(hd0,0)/grub/menu.lst
grub>cmp(hd0,0)/arquivo1(hd0,0)/arquivo2
grub>configfile(hd0,0)/grub/menu.lst
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.
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.
grub>root=(hd0,0)
grub>setup=(hd0)
boot - Efetua o carregamento atravs das opes definidas via linha de comando. Supo-
nha um sistema operacional Linux instalado com o /boot (os seus arquivos de inicializao)
na partio /dev/sda1 (hd0,0) e o diretrio / na partio /dev/sda2 (hd0,1) utilizando o kernel
2.6.18-6-686. Levando em conta essas configuraes podemos passar os seguintes coman-
dos na linha de comandos para efetuar o boot (a inicializao do sistema) pela linha de co-
mando do GRUB.
grub>root(hd0,0)
grub>kernel/vmlinuz2.6.186686root=/dev/sda1rovga=6
grub>initrd/initrd.img2.6.186686
grub>boot
44
Apostila Debian Intermedirio - Desktop Parana
RUNLEVEL
PROCESSO DE BOOT
Antes de aprendermos sobre runlevel vale a pena entendermos um pouco como funciona o
processo de inicializao do computador.
Ao ligarmos o computador, a BIOS executa uma srie de operaes antes de iniciar o boot
do sistema operacional conforme sequncia abaixo:
5. Carrega o kernel;
Os runlevels so iniciados quando o kernel executa o init, que o primeiro processo a ser
executado e tem o PID igual a um. Uma caracterstica especfica deste processo que ele no
pode ser finalizado foradamente. O init l o arquivo /etc/inittab, onde esto definidos os primeiros
parmetros a serem configurados, como por exemplo, qual o runlevel, quais scripts devem ser
executados por quais runlevels, quantos terminais virtuais ns teremos disponveis em nossa m-
quina, etc.
CONHECENDO OS RUNLEVELS
Runlevels, ou nveis de execuo, constituem uma maneira de controlar como a mquina
ser utilizada. Cada runlevel configurado para que um determinado nmero de processos espe-
cficos estejam em execuo. Convencionalmente temos 7 (sete) nveis de runlevels do 0 ao 6,
onde, por padro no Debian, o nvel zero (0) utilizado para realizar o desligamento (shutdown)
normal da mquina; o nvel 6 usado para reinicializar (reboot) o sistema; o nvel 1 (modo mono
usurio) o modo no qual o Kernel do Linux s carrega os recursos necessrios para o funciona-
mento bsico do SO e disponibiliza apenas acesso ao superusurio do sistema (root), de modo
geral, para que este possa realizar a manuteno de algum ponto falho do sistema. Os runlevels 2
a 5 so utilizados para carga dos diferentes servios providos pelo sistema, e possuem uma ca-
45
Apostila Debian Intermedirio - Desktop Parana
Atravs do comando init podemos alterar o nvel de execuo atual do sistema operacio-
nal. Para isso, devemos usar o comando init seguido de um nmero (de 0 a 6) representando o
runlevel desejado. Abaixo um exemplo de uso do comando para alterar o nvel de execuo atual
do sistema:
#init3
#psaux|grepinit
root10.00.01984688?Ss07:450:01init[2]
root47450.00.03264816pts/0S+09:580:00grepinit
Neste exemplo, o nvel de execuo atual do SO o 2, representado pela indicao init [2]
presente na primeira linha da sada do comando. Outra forma de se identificar o runlevel carrega-
do atravs do comando runlevel, como no exemplo abaixo:
#runlevel
N2
O ARQUIVO /ETC/INITTAB
Durante o processo de inicializao, o init utiliza durante sua execuo o arquivo /etc/init-
tab para configurar cada runlevel do sistema. Este o principal arquivo de configurao do boot
do sistema. Nele so especificadas diversas opes que definiro o perfil do sistema.
46
Apostila Debian Intermedirio - Desktop Parana
guinte padro:
id:runlevel:ao:diretrio
id - identificador "exclusivo" para cada linha do arquivo. Deve estar limitado a 2 ca-
racteres.
runlevel - identifica em qual runlevel esta linha deve ser executada. Pode definir um
ou mais de um runlevels.
ao - identifica a ao a ser tomada. O campo ao pode ter um dos seguintes va-
lores:
respawn - O processo ser reiniciado assim que for finalizado;
wait - O processo ser executado quando o sistema entrar no runlevel especi-
ficado e o sistema aguardar a finalizao deste processo;
once - O processo ser executado quando o sistema entrar no runlevel espe-
cificado;
boot - O processo ser executado durante o boot do sistema;
bootwait - O processo ser executado durante o boot do sistema, que aguar-
dar a sua finalizao para continuar;
off - No faz nada;
initdefault - especifica o runlevel que o sistema dever entrar aps o boot do
sistema. Caso este parmetro no seja informado, o init ir questionar qual o runle-
vel a ser utilizado. O campo processo ignorado.
sysinit - O processo ser executado durante o boot do sistema, antes de qual-
quer referencia dos parmetros boot ou bootwait. O campo runlevel ignorado;
powerwait - O processo ser executado quando o init receber uma mensagem
de falha na alimentao eltrica da mquina. O init aguardar a finalizao deste
processo;
powerfail - Idntico ao powerfail, com a diferena de que o init no aguardar
a finalizao deste processo;
powerokwait - O processo ser executado quando o init for informado de que
a alimentao eltrica foi restabelecida;
powerfailnow - O processo ser executado quando o init for informado de que
a alimentao eltrica da mquina (bateria, no-break) est quase vazia, e que a
energia est falhando.
ctrlaltdel - O processo ser executado quando o init receber o sinal SIGINT,
que significa que a sequencia de teclas <Ctrl>+<Alt>+<Del> foi pressionada;
kbrequest - O processo ser executado quando o init receber um sinal do dri-
47
Apostila Debian Intermedirio - Desktop Parana
ver do teclado informando que uma sequencia especial de teclas foi pressionada. A
documentao para esta funo ainda no est completa, para maiores informa-
es veja o pacote kbd-x-xx.
# 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
48
Apostila Debian Intermedirio - Desktop Parana
O nome desses links simblicos seguem um padro atravs do qual definido se o link sim-
blico iniciar ou interromper a execuo de um servio em /etc/init.d, alm indicar a prioridade
para execuo do script. Segue abaixo descrio sobre os padres de nomenclatura dos links.
Se um link iniciado com a letra K (kill), quer dizer que o servio ser interrompido na-
quele nvel de execuo. O que ele faz na verdade, executar o script do servio em questo
em /etc/init.d seguido da opo stop.
Se um link iniciado com a letra S (start), quer dizer que o servio ser iniciado naquele
nvel de execuo. Isto far com que o script do servio em questo em /etc/init.d seja invo-
cado seguido da opo start.
Por ordem, os links com a letra K so executado primeiro seguido pelos que iniciam pela
letra S. A ordem com que so executados, depende tambm do valor numrico que acompanha
o link, quanto menor o nmero antes ser executado, por exemplo, os seguintes arquivos so exe-
cutados em sequencia:
S10sysklogd
S12kerneld
S20inetd
S20linuxlogo
S20logoutd
S20lprng
S89cron
S99xdm
Note, que os arquivos que iniciam com o mesmo nmero (S20*), so executados por ordem
alfabtica.
49
Apostila Debian Intermedirio - Desktop Parana
#updaterc.dnomestart/stopNNrunlevel.(...)
Onde nome o nome do script em /etc/init.d, a opo start para iniciar ou stop para parar o
processo, NN faz referncia ordem de execuo (prioridade) e o runlevel em que deseja incluir
ou reconfigurar o scrip. O ponto faz parte da sintaxe do comando para separar as configuraes
realizadas atravs do update-rc.d, tambm havendo a necessidade de se colocar um ponto no fi-
nal do comando. A Seguir alguns exemplos de uso:
Vamos imaginar que criamos o script firewall.sh no /etc/init.d. Queremos que ele seja
iniciado (argumento "start" passado) no runlevel de boot padro (2) e fechado (argumento "stop")
quando se desliga ou reinicia (runlevels 0 e 6) e queremos que ele seja um dos ltimos processos
a ser iniciado/parado. Para isso devemos utilizar o comando update-rc.d com a seguinte sintaxe:
#updaterc.dfirewall.shstart972.stop970.stop976.
Uma forma mais fcil de se utilizar o update-rc.d com a utilizao das configuraes pa-
dro, ou seja, iniciar nos runlevels 2, 3, 4 e 5 e finalizar nos 0, 1 e 6. Para isso basta usar o co -
mando:
#updaterc.dsshdefaults
Tambm possvel utilizar a opo defaults do comando update-rc.d alterando sua priorida-
de de execuo. Para isso basta aps o parmetro defaults informar tambm o numero referente
a prioridade desejada.
#updaterc.dsshdefaults37
Para removermos um servio basta utilizarmos o comando update-rc.d com a sintaxe a se-
guir:
#updaterc.dfsshremove
Utilizando junto ao comando update-rc.d o parmetro -n somente ser mostrado na tela o re-
sultado do comando, no sendo gravada nenhuma alterao nos runlevels.
#updaterc.dnsshdefaults
50
Apostila Debian Intermedirio - Desktop Parana
SISTEMA DE LOGS
Arquivo de Log, uma designao dada aos arquivos que so utilizados pelos programas
do sistema para registrar suas atividades. Estes registros, em geral, so compostos por mensa-
gens informativas, de alerta e de erro, geradas pelos programas durante sua execuo. Estes ar-
quivos possuem informaes muito teis para o administrador do sistema. Atravs deles poss-
vel verificar o funcionamento do sistema, o comportamento dos programas, prevenir e corrigir er-
ros e auditar o ambiente operacional.
O Debian conta com uma estrutura central para armazenamento e funcionamento do siste-
ma de logs, onde os arquivos de log so guardados comumente no diretrio /var/log, e um servi-
o especial denominado syslog faz de forma unificada todo o registro de atividades do sistema
(kernel e outros programas).
A partir da verso lenny do DEBIAN os antigos daemons do syslog, syslogd - Linux system
logging utilities e klogd - Kernel Log Daemon, foram substitudos por um nico daemon o rsyslog.
As vezes temos que administrar uma grande quantidade de computadores (geralmente ser-
vidores) ficando difcil o acompanhamento das logs em cada uma das mquinas. Para facilitar
este controle podemos criar um servidor de logs, configurando uma mquina para receber os re-
gistros de log de todas as outras mquinas da rede, podendo inclusive ser configurado um banco
de dados para armazenamento das logs (este procedimento de configurao de um servidor de
log no ser abordado nesta apostila).
51
Apostila Debian Intermedirio - Desktop Parana
Data|Hora|mquina|Daemon|Mensagem
CONFIGURANDO O SYSLOG
As configuraes do syslog so feitas atravs de seu arquivo de configurao /etc/rsys-
log.conf. Neste arquivo podemos definir quais as facilidades e quais nveis geraro registros de
log alm de definir o destino da log. Sua sintaxe para configurao a seguinte:
facilidade.nvel destino
Onde facilidade faz referncia ao programa ou servio que ir gerar a mensagem, nvel faz
referncia importncia da mensagem e destino ao local que ser enviada a sada da log. Podendo
esta sada ser um arquivo, uma tty, um pipe (se iniciado por um "|"), um computador remoto (se
iniciado por uma "@"), ou para determinados usurios do sistema (especificando os logins separa-
dos por vrgula) ou para todos os usurios que esto usando o SO ou atravs do comando wall
(usando o caractere "*"). Segue abaixo uma relao das facilidades e nveis possveis:
Facilidades:
52
Apostila Debian Intermedirio - Desktop Parana
Nveis:
53
Apostila Debian Intermedirio - Desktop Parana
possvel configurar mais de uma facilidade para cada nvel para isso basta separar as faci-
lidades por , (vrgula) e aps listar todas as facilidades utilizar o . (ponto) para separar as facili-
dades do nvel desejado. possvel tambm configurar vrias facilidades com nveis diferentes
para um mesmo destino, para isso basta separ-las por ; (ponto e vrgula). Conforme mostram
os exemplos abaixo.
auth,authpriv.* /var/log/auth.log
No exemplo acima temos duas facilidades (auth e authpriv separadas por vrgula) registran-
do suas mensagens de todos os nveis (representados pelo caracter coringa *) no arquivo
/var/log/auth.log.
syslog.*;auth,authpriv.notice /var/log/syslog
Neste outro exemplo, temos todos os nveis da facilidade syslog e a partir do nvel notice
das facilidades auth e authpriv sendo registradas no arquivo /var/log/syslog.
*.* /dev/tty8
No exemplo acima temos todas as facilidades em todos os nveis sendo registradas na tty8.
Neste caso se acessarmos a tty8 veremos que as logs estaro sendo exibidas em tempo real (as-
sim que so geradas) mas no estaro sendo gravadas em nenhum arquivo para uma consulta
posterior.
S empre utilize a tecla <TAB> ao invs da barra de espaos para separar os parme-
tros do arquivo /etc/rsyslog.conf.
Existem ainda 4 caracteres que garantem funes especiais: "*", "=", "!" e "-". A seguir uma
breve descrio da funo que cada um deles desempenha:
54
Apostila Debian Intermedirio - Desktop Parana
Os caracteres especiais "=" e "!" podem ser combinados numa mesma regra.
LOGGER
Este comando permite enviar uma mensagem para os arquivos de log do sistema. A mensa-
gem enviada aos arquivos, atravs do daemon rsyslog, ou via soquete do sistema, possvel
especificar dados como prioridade, nvel, nome de identificao do processo, etc. Seu uso muito
til em scripts ou em outros eventos do sistema.
Para podermos utilizarmos o comando logger num scrip precisamos primeiro configurar no
arquivo /etc/syslog.conf uma facilidade para receber as mensagens geradas pelo scrip. Como vi-
mos anteriormente as facilidades local0 a local7, so reservadas para usurios, ento basta confi-
gurarmos estas facilidades para gravarem suas mensagens num determinado arquivo, como mos-
tramos abaixo.
local3.* /var/log/robsonlog.log
A configurao acima faz com que as mensagens da facilidade local3 sejam gravadas no ar-
quivo robsonlog.log, agora para o nosso scrip registrar suas logs neste arquivo basta utilizarmos
nele o comando logger. Segue abaixo cdigo do script testelogger.sh que foi criado para testar-
mos o uso do comando logger.
#!/bin/bash
logger -t $0 -p local3.warning teste usando comando logger num
scrip
Neste comando do logger foram utilizados dois parmetros: o -t que permite adicionar uma
tag (marcao) mensagem, nesse caso utilizamos a varivel $0 que em shell script retorna o
nome do arquivo com o script, o outro parmetro foi o -p. que permite definir o recurso do syslog
que desejo utilizar, qual o nvel que representa e a mensagem desejada para envio. Com isso o
syslog j se encarrega de escrever no arquivo de log colocando essas mensagens e a data da
execuo. A sada desse comando no arquivo de log :
Jan2809:29:40debianVMtestelogger.sh:testeusandocomandologger
numscript
55
Apostila Debian Intermedirio - Desktop Parana
logger[opes][mensagem]
Onde:
mensagem
a mensagem que ser enviada ao daemon rsyslog para ser gravada num dos respec-
tivos arquivos de log presentes no sistema.
opes
-t [nome] Especifica o nome do processo responsvel pelo log que ser exibido antes do
PID na mensagem do syslogd.
LOGCHECK
um programa usado para enviar um e-mail periodicamente ao administrador do sistema
(atravs do cron ou outro servio com a mesma funo) alertando sobre os eventos que ocorre-
ram desde a ltima execuo do programa. Esta ferramenta pode ser muito til se personalizada
adequadamente para alertar ao administrador de eventos estranhos. O Logcheck pode ser total-
mente personalizado assim enviar mensagens baseadas em eventos encontrados nos logs e
passveis de ateno.
A instalao padro inclui perfis para eventos ignorados e violaes de polticas para trs di-
56
Apostila Debian Intermedirio - Desktop Parana
ferentes configuraes (workstation, server e paranoid), sendo que "server" (servidor) o nvel pa-
dro, paranoid (paranoico) somente recomendado para mquinas de alta segurana executando
poucos servios quanto forem possveis e workstation (estao de trabalho) para mquinas relati-
vamente no crticas.
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.
57
Apostila Debian Intermedirio - Desktop Parana
# Definimos um diretrio que poder conter definies individuais de rotao de log para cada ser -
vio do sistema. Contudo, alertamos que diversas configuraes individuais podem deixar a inter -
pretao deste arquivo confusa
include/etc/logrotate.d
# Define opes especficas para a rotao mensal de /var/log/wtmp. As opes definidas indivi-
dualmente como neste exemplo, sobrepem as opes globais definidas anteriormente. As defini-
es para /var/log/wtmp, implicam que caso o arquivo atinja 5MB (size 5M) ele ser arquivado,
ser criado um novo arquivo com permisso 0664 e pertencer ao usurio root e o grupo utmp
(create 0664 root utmp)e ser mantida somente uma cpia do log anterior (rotate 1).
/var/log/wtmp{
monthly
create0664rootutmp
size5M
rotate1
}
# Define opes especficas para a rotao mensal de /var/log/btmp. Neste caso, o parmetro
missingok far com que sejam gerados alertas informando ao administrador que o arquivo no
existe.
/var/log/btmp{
missingok
monthly
create0664rootutmp
rotate1
}
# Define opes especficas para a rotao semanal de /var/log/lastlog.
/var/log/lastlog{
missingok
weekly
create0664rootutmp
rotate1
}
# Define opes especficas para a rotao diria de /var/log/messages. Neste caso, o ser arquivo
ao atingir o tamanho de 1Mb (size 1M), ento o novo arquivo ser criado com as mesmas per-
misses do arquivo anterior. O comando killall -1 syslogd ser executado aps a rotao (postro -
tate)para que o daemon syslogd funcione corretamente, mas somente uma vez durante a rotao
de vrios arquivos de logs (sharedscripts). Sero mantidas as 10 ltimas cpias (rotate 10) do arqui-
vo /var/log/messages compactadas (o parmetro compress foi especificado globalmente neste ar-
quivo de configurao).
/var/log/messages{
daily
size1M
sharedscripts
postrotate
/sbin/killall1syslogd
endscript
58
Apostila Debian Intermedirio - Desktop Parana
rotate10
}
# Define opes especficas para a rotao mensal dos arquivos em /var/log/mirror/*. A falta des-
ses arquivos no precisa ser notificada ao administrador (missingok), mesmo assim o parmetro
"nomail" evitar isto de qualquer forma. Os logs rotacionados no sero compactados (nocom-
press) e sero mantidas as ltimas 7 cpias (rotate 7) dos arquivos.
/var/log/mirror/*{
montly
nomail
missingok
nocompress
rotate7
}
# Fim do arquivo de configurao
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.
extension [ext] - Inclui uma extenso para o arquivo de log. Se a compresso usada
for a padro, a extenso ser .gz.
59
Apostila Debian Intermedirio - Desktop Parana
maillast - envia um email com os logs que sero rotacionados, os logs originais.
nocompress/nocopy/nocopytruncate/nocreate/nodelaycompress/nomail- negati-
vas aos comandos correspondentes.
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.
60
Apostila Debian Intermedirio - Desktop Parana
CRON
O cron um servio, carregado durante o processo de boot, que possibilita a programao
de execuo de processos e comandos para serem realizadas periodicamente5. um recurso fun-
damental para automatizao da administrao do sistema e em outros casos onde se faz neces-
srio o agendamento de execuo de uma determina atividade.
Podemos utilizar o cron basicamente para duas finalidades: para permitir aos usurios o
agendamento da realizao das suas tarefas desejadas; e para o agendamento de tarefas do sis-
tema diariamente, semanalmente ou mensalmente.
/etc/cron.d
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
Com exceo do diretrio /etc/cron.d, podemos utilizar esses diretrios para incluir tarefas
a serem executadas no intervalo de tempo conforme o nome de cada diretrio (daily = dirio,
hourly = horaria, monthly = semanal e weekly = mensal). Para isto basta copiarmos o script dese-
jado com permisso de execuo dentro de um dos diretrios conforme periodicidade desejada
para execuo do script. Por exemplo, se colocarmos um script dentro do diretrio /etc/cron.-
hourly esse script ser executados de hora em hora.
O s horrios e datas de execuo desse script dentro desses diretrios, apesar de co-
munmente no haver a necessidade, podem ser alterados no arquivo /etc/crontab.
Uma outra forma de utilizao do cron atravs da edio do arquivo /etc/crontab. Atravs
deste arquivo podemos agendar uma tarefa para ser executada especificando o exato momento
que queremos para execuo assim como qual usurio ir execut-la.
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
UID (Usurio): o usurio que vai executar o comando (no necessrio especifi-
c-lo se o arquivo do prprio usurio for usado);
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".
62
Apostila Debian Intermedirio - Desktop Parana
**10,12,2529**rootcomando
|||||||
||||||Comando
|||||Usurio
||||DiadaSemana
|||Ms
||Dias
|Hora
Minuto
N
do.
unca podemos esquecer de incluir uma linha em branco no final do arquivo, pois
caso contrrio o ltimo comando listado no arquivo /etc/crontab no ser executa-
Atravs do comando crontab tambm podemos editar o arquivo individual do usurio para
agendamento de tarefas. Para isso basta digitarmos o comando:
crontabe
Ser aberta uma janela onde poderemos configurar as tarefas de acordo com a nossa ne-
cessidade. A Sintaxex a ser utilizada para essa configurao a mesma utilizada para configurar
o arquivo /etc/crontab (vista anteriormente) apenas no sendo necessrio especificar o usurio,
pois nesse caso caso a tarefa ser executada pelo usurio dono do arquivo.
contabl
Para removermos o arquivo individual do crontab, removendo assim todas as tarefas agen-
dadas, atravs do comando:
crontabr
Para removermos somente uma tarefa devemos fazer atravs da edio (contrab -e) do ar-
quivo.
63
Apostila Debian Intermedirio - Desktop Parana
COMANDOS
ALIAS
Sintaxe: alias <apelido>='<comando_linux>'
Muitas vezes durante execuo de determinadas tarefas atravs da linha de comando nos
deparamos com comandos extensos em que temos que utilizar vrios parmetros, e dependendo
do que estamos fazendo ainda temos que repetir este comando com todos estes parmetros com
uma certa frequncia. Para facilitar esse tipo de situao podemos utilizar o comando alias.
Este comando permite criarmos uma espcie de apelido para os comando e programas.
Com ele podemos atribuir um apelido para um comando que receba diversos parmetros e a partir
de ento fazermos a chamada do comando atravs do apelido criado.
Por exemplo, eu sempre utilizo o comando ls com os parmetros -lh para exibir o conte-
do dos diretrios em forma de lista com o tamanho dos arquivos exibidos num formato mais inteli-
gvel. Ao invs de sempre digitar o comando e os parmetros posso criar um alias que facilite o
uso do comando atravs do comando abaixo mostrado.
aliasll='lslh'
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
#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'
#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
#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'
BC
O comando bc utilizado para realizar clculos. Pode ser utilizado por linha de comando ou
atravs de sua interface interativa. O bc no exatamente uma calculadora mas sim uma lingua-
gem para clculos, que lembra vagamente a linguagem C. Algumas de suas caractersticas so:
permitir apresentar os resultados dos clculos com at 99 dgitos decimais antes e depois do pon-
to decimal, no haver a necessidade de uma interface grfica para sua utilizao, sua sintaxe ser
bem simples quase idntica a sintaxe utilizada na funo calculadora do google para clculos sim-
ples, permite utilizar construes como 'if', 'for', 'while', permite interao com o usurio alm de
permitir o uso de "programas" escritos para o 'bc' como se usssemos um shell script.
Para podermos acessar a interface iterativa do comando bc basta na linha de comando digi-
tar o comando, ser aberta a sua interface que utilizaremos para realizao dos clculos como
mostra o exemplo a seguir:
7 Assim como ocorre com o arquivo .bashrc dos usurios, este arquivo pode ser criado caso o mesmo no exista
para o root.
66
Apostila Debian Intermedirio - Desktop Parana
% (resto da diviso)
^ (potenciao)
$bc
bc1.06
Copyright19911994,1997,1998,2000FreeSoftwareFoundation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
600*400
240000
last+500
240500
last1600
238900
last/20
11945
last^4
20358445623150625
sqrt(last)
142683025
2/3
0
quit
Se repararmos o resultado da ltima operao (2/3=0) temos a impresso de que h algo er-
rado, mas na verdade o que aconteceu que simplesmente no foi carregada uma biblioteca de
operaes matemticas que permite o calculo com nmeros decimais. Para carregarmos esta bi-
blioteca para utilizao com o comando bc basta utilizarmos o parmetro -l.
$bcl
bc1.06
Copyright19911994,1997,1998,2000FreeSoftwareFoundation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
2/3
67
Apostila Debian Intermedirio - Desktop Parana
.66666666666666666666
Podemos tambm definir o nmero de casas decimais que sero usadas com a opo sca-
le.
$bcl
bc1.06.94
Copyright19911994,1997,1998,2000,2004,2006FreeSoftwareFoun
dation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
scale=2
2/3
.66
scale=4;2/3
.6666
possvel definirmos funes a partir das definies matemticas, no entanto essas defini-
es sero perdidas que a interface do bc for finalizada. Segue abaixo exemplo abaixo de defini-
o de funo.
$bcl
bc1.06.94
Copyright19911994,1997,1998,2000,2004,2006FreeSoftwareFoun
dation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
definetan(x){returns(x)/c(x)}
tan(1)
1.55740772465490223050
defineln(n){returnl(n);}
definelog(n){returnln(n)/ln(10);}
log(10)
1.00000000000000000000
68
Apostila Debian Intermedirio - Desktop Parana
Para evitarmos o transtorno de termos de sempre termos que refazer as definies toda vez
que iniciamos a utilizao do bc, podemos utilizar o recurso de carregar essas definies de um
arquivo criado por ns. Para isso crie um arquivo com as definies que voc queira implementar.
$vimdefmat.bc
#!/usr/bin/bcl
#inciraasdefiniesdesejadas
defineln(n){returnl(n);}
definelog(n){returnln(n)/ln(10);}
definetan(x){returnsin(x)/cos(x);}
$chmod+xdefmat.bc
Em segida basta utilizar o comando bc indicando que o arquivo criado deve ser carregado.
As funes definidas no arquivo j estaro carregadas e prontas para serem utilizadas.
$bcldefmat.bc
bc1.06.94
Copyright19911994,1997,1998,2000,2004,2006FreeSoftwareFoun
dation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
log(10)
1.00000000000000000000
Como podemos perceber o bc pode ser utilizado como uma calculadora programvel capaz
de trabalhar com a utilizao de funes, definio de variveis, laos de repetio, estruturas
condicionais, etc. A baixo mostraremos um pouco dos conceitos bsicos para utilizao desse re-
curso de programao.
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.
var+=valor:
Onde da mesma forma que vimos anteriormente 'var' representa o nome da varivel e 'va-
lor' representa um valor numrico qualquer . Essa expresso equivale a:
69
Apostila Debian Intermedirio - Desktop Parana
var=var+valor
var=10
var+=20
Efetuando as expresses mostradas acima o valor da varivel var fica igual a 30.
x==y
x!=y
x<y
x<=y
x>y
x>=y
Temos tambm os operadores &&, || e !. para entendermos estes vamos considerar que
e1 e e2 so 2 expresses numricas.
e1&&e2
Neste caso ser retornado o valor 1 se as 2 expresses forem diferentes de zero. Ou seja
retornar verdadeiro caso ambas as expresses sejam verdadeiras.
e1||e2
70
Apostila Debian Intermedirio - Desktop Parana
Neste caso retornar 1 se qualquer uma das 2 expresses forem diferentes de zero. Ou
seja retornar verdadeiro caso qualquer uma das duas expresses seja verdadeira.
!e1
Neste caso retornar 1 se o resultado da expresso for 0. Ou seja se a expresso for falsa
retornar 1.
Temos que tomar muito cuidado quando criamos as expresses, por exemplo na expresso
x=2<7 ela no equivale a x=(2<7) mas sim a (x=3)<5.
possvel ainda utilizar valores inseridos pelo usurio atravs do comando read() . Como
mostra o exemplo a seguir:
x=read()
O comando acima faz com que o valor digitado pelo usurio seja armazenado na varivel x.
Como vimos anteriormente possvel definir funes para utilizao no bc, para isso basta
utilizarmos o comando define. Para isso devemos utilizar o comando define e entre { } (cha-
ves) que servem para definir o inicio e final do bloco de cdigo que ser executado de uma s vez,
dentro das chaves devemos colocar a combinao de operaes que desejamos.
return : que retorna um valor. Esta opo deve ser usada no final da funo, para re-
tornar seu resultado final.
If: uma estrutura que efetua um teste lgico e de acordo com o resultado do teste executa
uma determinada ao, sua sintaxe :
Se o resultado de 'expresso' no for 0 (falso), ser executada a operao1, seno (se o re-
sultado for falso) ser executa a operao2 (se presente). Segue abaixo um exemplo de utilizao
do if.
if(d>=0){
return(b+sqrt(d))/(2*a);
}
while: uma estrutura de repetio que efetua um teste lgico e executa uma operao at
71
Apostila Debian Intermedirio - Desktop Parana
Nesta estrutura enquanto o resultado do teste lgico realizado na expresso der como resul-
tado 0 (falso), ser executa operao. Tambm pode-se sair do loop executando um comando
'break' dentro dele. Abaixo segue um exemplo:
ultvalor=read()
while(ultvalor!=0){
ultvalor=read()
dados+=ultvalor
contagem+=1
}
No exemplo antes de iniciar o lao de repetio (loop) estamos criando e atribuindo a vari-
vel ultvalor um valor que ser digitado pelo usurio. Em seguida, na estrutura while estamos tes-
tando se o valor digitado pelo usurio for diferente de zero, se este valor for diferente de zero ser
executado o bloco de cdigo existente dentro das chaves e novamente ir efetuar o mesmo teste
lgico at que o usurio digite o nmero 0 (zero), quando isso acontecer o loop ser encerrado
e as demais linhas de cdigo da funo sero executadas.
for: uma outra estrutura de repetio onde a varivel de controle do loop inicializad e in-
crementada junto aos teste lgico, sua sintaxe :
Nesta estrutura podemos definir, antes de entrar no loop o estado da varivel de contro deo
mesmo esse processo o de inicializao, logo em seguida feito o teste lgico que retornar um
valor 1 (verdadeiro) ou 0 (falso) e enquanto o resultado deste teste lgico for 1 (verdadeiro) sero
executadas as operaes, no incremento podemos definir como vai ser modificado o valor da vari-
vel utilizada no teste do loop. Abaixo segue um exemplo:
for(cont=1;cont<=10;cont++){
printcont
dados+=cont
}
No exemplo acima temos a estrutura de repetio for onde a varivel cont iniciada com o
valor 1 e feito o teste lgico se a varivel cont menor ou igual a 10, enquanto o resultado deste
teste for 1 (verdadeiro) ser executado o bloco de cdigo existente dentro das chaves, aps a
execuo de tudo que houver dentro das chaves ser executado o incremento cont++ que so-
mar 1 ao valor da varivel cont (cont = cont+1) e em seguida efetuar novamente o teste lgico e
novamente executara o bloco de cdigo existente entre as chaves at que a condio testada seja
falsa (neste caso at que cont seja maior que 10).
72
Apostila Debian Intermedirio - Desktop Parana
$echo"2*93"|bc
15
$echo"log(10)"|bcldefmat.bc
1.00000000000000000000
$x=$(echo"3*5"|bc)
$echo$x
15
Conhecemos um pouco sobre o comando bc vimos como usar os comandos bsicos. Muito
mais poderia ser visto com relao as possibilidades de funes para uso com o bc mas o apro-
fundamento nesta parte depende, do conhecimento em programao e da necessidade de cada
um. Apesar de aparentemente ser um comando no muito interessante pode ser bem til como
uma calculadora programvel e em shell scripts.
LAST
O comando last mostra um registro entrada e sada dos usurios, que so registrados no ar-
quivo binrio de log /var/log/wtmp.
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
C aso o usurio ainda esteja logado no sistema ao invs de trazer a hora de finaliza -
o do evento (hora em que ocorreu o logout) e o tempo que o usurio permaneceu
logado (durao do evento) ser exibida a mensagem still logged in.
73
Apostila Debian Intermedirio - Desktop Parana
Podemos utilizar o comando last passando um argumento, que ser pesquisado como uma
expresso regulares durante a listagem, por exemplo, podemos passar o nome de um determina-
do usurio.
#lastrobsonp
robsonp pts/4 :0.0 TueSep1510:56stillloggedin
robsonp pts/3 :0.0 MonSep1418:45stillloggedin
robsonp pts/3 :0.0 Mon Sep 14 17:01 17:01 (00:00)
robsonp pts/3 :0.0 MonSep1411:1211:12 (00:00)
robsonp pts/2 :0.0 MonSep1409:38stillloggedin
robsonp pts/1 :0.0 MonSep1409:06stillloggedin
robsonp pts/0 :0.0 FriSep1117:41stillloggedin
robsonp tty7 :0 FriSep1116:43stillloggedin
robsonp tty7 :0 FriSep1116:4316:43 (00:00)
robsonp pts/0 10.15.15.32 FriSep 4 08:56 08:57 (00:00)
robsonp pts/0 :0.0 Thu Sep 3 18:15 18:26 (00:10)
robsonp pts/0 10.15.15.32 WedSep 209:2009:25(00:04)
robsonp pts/0 10.15.15.32 Wed Sep 2 09:16 09:17 (00:01)
robsonp tty1 TueSep118:0018:00(00:00)
wtmpbeginsTueSep114:54:312009
No exemplo acima temos todas as atividades de login e logout do usurio robsonp. Na pri-
meira coluna informa o nome do usurio, a segunda informa o terminal acessado, a terceira mos-
tra o hostname/ip das conexes remotas e a console das conexes locais, a quarta coluna apre-
senta o dia da semana, o ms, o dia, a hora de incio e de trmino da conexo 8, e a ltima coluna
trs o tempo total de durao da seo. Podemos ainda utilizar o comando last com os seguintes
parmetros:
-n [num] mostra na listagem somente nmero de linhas passada com o parmetro, a partir
do incio da listagem.
-d consulta o DNS para resolver os IP remotos exibindo assim, quando possvel, o nome
DNS, no lugar do endereo IP.
-i fora para que seja mostrado o endereo IP ao invs do nome DNS nas conexes remo-
tas.
#lastarobsonp
robsonp pts/4 TueSep1510:56stillloggedin :0.0
robsonp pts/3 MonSep1418:45stillloggedin :0.0
8 As conexes no encerradas apresentam a mensagem still logged in no lugar da hora de encerramento e do tempo
de acesso.
74
Apostila Debian Intermedirio - Desktop Parana
No exemplo acima foi usado o parmetro -a para que a coluna com os hostnames fosse
apresentada como a ltima coluna da listagem, facilitando assim sua identificao.
#lastn2robsonp
robsonp pts/4 TueSep1510:56stillloggedin :0.0
robsonp pts/3 MonSep1418:45stillloggedin :0.0
wtmp begins TueSep114:54:312009
No exemplo acima utilizamos a opo -n 2 para que s fossem exibidas as 2 (duas) primei-
ras linas da listagem.
#lastRrobsonp
robsonp pts/4 TueSep1510:56stillloggedin
robsonp pts/3 MonSep1418:45stillloggedin
robsonp pts/3 MonSep1417:0117:01(00:00)
robsonp pts/3 MonSep1411:1211:12(00:00)
robsonp pts/2 MonSep1409:38stillloggedin
robsonp pts/1 MonSep1409:06stillloggedin
robsonp pts/0 FriSep1117:41stillloggedin
robsonp tty7 FriSep1116:43stillloggedin
robsonp tty7 FriSep1116:4316:43(00:00)
robsonp pts/0 FriSep408:5608:57(00:00)
robsonp pts/0 ThuSep318:1518:26(00:10)
robsonp pts/0 WedSep209:1609:17(00:01)
wtmpbeginsTueSep114:54:312009
No exemplo acima utilizamos o parmetro -R para que fosse excluda, na exibio da lista-
gem, a coluna com os hostnames. Esta opo muito utilizada nos casos onde s h conexes
locais na mquina.
LASTLOG
Este comando mostra informaes referentes ao ultimo login dos usurios cadastrados no
75
Apostila Debian Intermedirio - Desktop Parana
sistema. Essas informaes vem numa listagem que apresenta o nome usado no login, o termi-
nal onde ocorreu a conexo e a hora da ltima conexo. Para obteno dessas informaes o co-
mando lastlog pesquisa no arquivo /var/log/lastlog.
#lastlog
NomedeUsurioPortaDeltimo
robsonppts/010.15.15.32SexSet408:56:3403002009
faustomarinho**Nuncalogou**
rodrigosl**Nuncalogou**
fcamargopts/3ecelepar11940SexSet1111:09:3803002009
jmmoura**Nuncalogou**
No exemplo acima temos a sada do comando lastalog sem ter sido passado nenhum par-
metro, o resultado uma listagem dos usurios cadastrados para login na mquina em uso, com o
terminal onde ocorreu o login, o hostsname a partir de onde foi feito o login e a data e hora do lti-
mo login.
-t <dias> exibe informaes referentes aos ltimos logins dos usurios nos ltimos x dia.
Onde x representa o nmero passado junto ao parmetro -t.
-b <dias> exibe somente as informaes referentes ao ltimo login dos usurios cadastra-
dos mais antigos que a quantidade de dias especificadas junto ao parmetro -b.
#lastlogu10002000
NomedeUsurioPortaDeltimo
anapalmeira**Nuncalogou**
bpedrassani**Nuncalogou**
capaverde**Nuncalogou**
carmenb**Nuncalogou**
celia**Nuncalogou**
dsvieira**Nuncalogou**
76
Apostila Debian Intermedirio - Desktop Parana
edeval**Nuncalogou**
No exemplo acima esto sendo listados as informaes referentes aos usurios que possu-
em UID que vo de 1000 (mil) a 2000 (dois mil). Neste caso todos os usurios listados nunca efe-
tuaram login na mquina em uso.
NEWUSERS
Com o comando newusers podemos criar vrios usurios de uma nica vez, atravs de uma
relao de usurios existentes num arquivo. Ao utilizarmos este comando, o usurio inserido no
arquivo passwd, a senha criptografada e inserida no arquivo shadown e o diretrio pessoal do
usurio (/home/<usurio>) criado.
O arquivo com os usurios a serem criados que ser apontado para uso com o comando
newusers deve ter a seguinte estrutura:
user_name:senha:uid:gid:comentrio:diretorio_pessoal:/bin/bash
Segue abaixo um exemplo de arquivo Usuarios.txt configurado corretamente para insero
de vrios usurios:
joao:filho:1010:1010::/home/joao:/bin/bash
maria:naosei:1011:1011::/home/maria:/bin/bash
administrador:@dminstrador:1012:1012::/home/administrador:/bin/bash
Para usarmos o comando newusers para insero dos usurios constantes no arquivo aci-
ma descrito (Usuarios.txt) basta usarmos o comando abaixo:
#newusersusuario.txt
Executando este comando os usurios nele contidos sero criados, e inseridos nos grupos
no arquivo referenciados, caso os grupos no existam os mesmo sero criados, e o diretrio pes-
soal do usurio tambm ser criado.
STAT
O comando stat uma ferramenta extremamente til para extrair informaes de arquivo e
sistemas de arquivos.
-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
-f esta opo faz com que sejam exibidas as informaes referentes ao sistema de arqui-
vos no qual pertence o arquivo consultado invs de trazer informaes sobre o arquivo.
-t esta opo faz com que as informaes sejam exibidas de forma concisa.
-c '<opes>' esta opo permite que seja passados parmetros para definio do forma-
to da sada deste comando, inserindo sempre uma nova linha ao trmino da exibio das informa-
es.
--printf ',opes>' esta opo similar a opo anterior (-c), diferente apenas no fato de
que esta opo permite a utilizao de caracteres de escape e de que aps a exibio das infor-
maes, por padro, no inserida uma nova linha.
A seguir temos as principais opes que podem ser passadas como parmetro com as op-
es -c e --printf, essas opes no so vlidas para exibio de informaes referentes a sis-
temas de arquivos.
78
Apostila Debian Intermedirio - Desktop Parana
A seguir temos as principais opes que podem ser passadas como parmetro om as op-
es -fc e -f --printf na obteno de informaes sobre o sistema de arquivos.
~#statlinkSimbolico
File:`linkSimbolico'>`test'
Size:4Blocks:0IOBlock:4096link
simblico
Device:802h/2050dInode:51764907Links:1
Access:(0777/lrwxrwxrwx) Uid:( 0/ root) Gid:( 0/
root)
Access:2009101411:08:41.3936620800300
Modify:2009101410:41:18.3376619200300
Change:2009101410:41:18.3376619200300
~#statLlinkSimbolico
File:`linkSimbolico'
Size:28Blocks:8IOBlock:4096arquivo
comum
Device:802h/2050dInode:51476276Links:1
Access:(0644/rwrr) Uid:( 0/ root) Gid:( 0/
root)
Access:2009091416:53:48.0269422400300
Modify:2009091416:53:34.2309431600300
Change:2009091416:53:34.2309431600300
Nos exemplos acima estamos, primeiro, utilizando o comando stat para exibir as informa-
es referentes ao arquivo linkSimbolico e, baseado nas informaes retornadas, percebemos
que se trata de um link simblico. No segundo comando utilizamos a opo -L para que fossem
exibidas as informaes referentes ao arquivo que o link simblico esta apontando.
~#statflinkSimbolico
File:"linkSimbolico"
ID:80200000000Namelen:255Type:xfs
Blocksize:4096Fundamentalblocksize:4096
Blocks:Total:3903243Free:2527451Available:2527451
Inodes:Total:15623168Free:15468876
Neste outro exemplo, utilizamos a opo -f para que fossem exibidas as informaes refe-
rentes ao sistema de arquivos que o arquivo linkSimbolico pertence, ao invs de trazer as infor-
79
Apostila Debian Intermedirio - Desktop Parana
~#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 de forma similar ao exemplo anterior s desta
vez alterando o parmetro -c por --printf e inserindo o caractere de escape \n para que as in-
formaes fossem exibidas uma em cada linha. Tanto neste exemplo quanto no anterior optei por
escrever, antes de passar o parmetro, um texto indicativo da informao apresentada. Esse texto
indicativo opcional.
CONVERT
Este comando faz parte do pacote imageMagick, ele possibilita a converso de imagem en-
tre os principais formatos de imagem (.png , .jpg, .gif, ...). Alm converter as imagem o convert
possibilita a aplicao de uma grande quantidade de efeitos e at mesmo a criao de imagens.
Sua sintaxe :
$convert<arquivoorigem><opes><arquivodestino>
Abaixo mostraremos algumas das vrias possibilidades que o comando nos traz.
Imagine a seguinte situao, voc tem uma pasta com vrias imagens, por exemplo, no for-
mato .jpg e voc deseja criar um catlogo em PDF para apresentao dessas imagens de forma
mais organizada. Com o comando convet conseguirmos criar este catlogo de forma simples e r-
pida, para isso basta, na pasta onde esto as figuras, digitarmos na linha de comando:
$convert*.jpgcatalogo.pdf
Uma outra possibilidade para este comando seria na verso de entre os principais formatos
de imagens por exemplo, para convertermos um arquivo .jpg para .png basta:
80
Apostila Debian Intermedirio - Desktop Parana
$convertarquivo.jpgnovoArquivo.png
$convertarquivo.pngresize50%arquivoreduzido.png
CONVMV
Existem diferentes tipos de padres de codificao de caracteres que podem ser aplicados
aos arquivos. Sendo os dois mais utilizados o iso-8859-1 e UTF-8. Alguns sistemas operacionais
mais antigos (windows xp e kurumin so alguns deles) utilizam o sistema de codificao, reconhe-
cido pelos padres internacionais como sendo do ocidente europeu, iso-8859-1 (este padro tam-
bm usado no Brasil), mas um novo padro comeou a ser utilizado por vrias distribuies e
sistemas operacionais (debian, ubuntu e Windows Vista so exemplos) esse novo padro o
UTF-8, que considerado por muitos como a nova padronizao internacional. E justamente a
co-existncia desses dois padres de codificao que acabam causando os problemas com ca-
racteres especiais (palavras acentuadas no corpo e no nome dos arquivos). Um arquivo criado
sobre codificao iso-8859-1 aparece com caracteres acentuados totalmente errados em um sis-
tema configurado para entender a codificao UTF-8, e vice-versa.
O comando convmv serve para resolvermos esse problema de codificao do nome dos
arquivos. Pois com ele, podemos converter o nome dos arquivos do formato iso-8859-1 para
UTF-8 ou vice e versa. Sua sintaxe :
$convmv<opes><arquivosoudiretrios>
Para podermos converter o nome de um arquivo ou diretrio devemos dizer qual a codifica-
o atual, qual a codificao desejada e qual o arquivo ou diretrio. Como mostra o exemplo abai-
xo:
$convmvfiso88591tutf8relat?orio.txt
No exemplo acima a opo -f o parmetro utilizado para passar qual a codificao atual,
e o parmetro -t permite passarmos para qual codificao queremos alterar o arquivo. Quando
81
Apostila Debian Intermedirio - Desktop Parana
inserirmos o nome do arquivo substitumos o caractere estranho pelo caractere coringa ?. Caso
tivssemos completado o nome do arquivo pressionando a tecla <tab> poderamos tambm ter
deixado o nome do arquivo com caractere que aparecer no terminal.
Startingadryrunwithoutchanges...mv"./relatrio.txt""./rela
trio.txt" No changes to your files done. Use notest to finally
renamethefiles.
Essa sada nos mostra que a alterao pode ser feita sem erros. Aps isso para gravar a al-
terao no arquivo basta repetirmos o comando utilizando a opo --noteste, como mostra
exemplo abaixo.
$convmvfiso88591tutf8relat?rio.txtnotest
ICONV
Como vimos anteriormente quando estudamos o comando convmv, existem vrios padres
de codificao de caracteres o que pode causar problemas na exibio de caracteres especiais
como acentuaes, cedilha, etc.... Com o comando iconv podemos converter a codificao de ca-
ractere de um arquivo para a mesma codificao utilizada no sistema, resolvendo assim o proble-
ma de exibio dos caracteres especiais.
$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
$iconvfiso88591tUTF8textootexto_utf8
ou
$iconvfiso88591tUTF8texto>texto_utf8
#filetexto.txt
texto.txt:UTF8Unicodetext,withverylonglines
#filetexto
texto:ISO8859text,withverylonglines
No exemplo acima percebemos que o arquivo texto utiliza a codificao de caractere ISO-
8859-1.
Para identificarmos qual a codificao de caracteres que esta sendo utilizada pelo nosso sis-
tema operacional podemos utilizar o comando locale. O antigo charset padro do Linux era o ISO-
8859-1 (tambm conhecido como Latin1). Por isso, quando encontrarmos os parmetros de confi-
gurao pt_BR ou pt_BR.ISO8859-1 so representaes para a codificao de caractere ISO-
8859-1. Se aparecer algo como pt_BR.UTF-8 representa que a codificao de caractere UTF-8.
#locale
83
Apostila Debian Intermedirio - Desktop Parana
LANG=pt_BR.UTF8
LANGUAGE=pt_BR:pt:en
LC_CTYPE="pt_BR.UTF8"
LC_NUMERIC="pt_BR.UTF8"
LC_TIME="pt_BR.UTF8"
LC_COLLATE="pt_BR.UTF8"
LC_MONETARY="pt_BR.UTF8"
LC_MESSAGES="pt_BR.UTF8"
LC_PAPER="pt_BR.UTF8"
LC_NAME="pt_BR.UTF8"
LC_ADDRESS="pt_BR.UTF8"
LC_TELEPHONE="pt_BR.UTF8"
LC_MEASUREMENT="pt_BR.UTF8"
LC_IDENTIFICATION="pt_BR.UTF8"
LC_ALL=
No exemplo acima podemos perceber que a codificao de caracteres utilizada pelo sistema
o UTF-8.
PASTE
Este comando mescla o contedo de dois arquivos em colunas verticais, ou seja, mescla os
arquivos deixando seus contedos lado a lado.
-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.
#pasteab
12a
23b
45c
1d
40e
37f
No exemplo acima temos o arquivo a cujo contedo : 12, 23, 45, 1, 40, 37 e um arquivo
b cujo contedo : a, b, c, d, e, f. Utilizamos o comando paste para exibir de forma concatenada
o contedo dos arquivos.
84
Apostila Debian Intermedirio - Desktop Parana
#pasted'@'nomesemail
pedro@yahoo.com.br
marta@gmail.com
vera@hotmail.com
maria@celepar.pr.gov.br
No exemplo acima temos um arquivo nomes que tem como contedo uma relao de no-
mes, e o arquivo email que tem como contedo vrios provedores de e-mail. Foi utilizado o co-
mando paste com o parmetro -d para inserir o caractere @ como separador de colunas.
#pastesa
12234514037
No exemplo acima usamos o mesmo arquivo a utilizado anteriormente, mas desta vez pas-
samos o parmetro -s para que o seu contedo fosse exibido em forma de linha e no de coluna.
#cata|paste
122345
14037
No exemplo acima temos uma outra possibilidade de uso do comando paste. Neste caso es-
tamos utilizando o comando cat para visualizarmos o contedo do arquivo a e concatenamos a
sada desse comando para uso com o comando paste. Foi feito uso do - (trao) possibilita definir
o numero de colunas desejada para exibio do contedo do arquivo. Neste caso utilizamos 3
(trs) - (traos) para que o contedo do arquivo a fosse exibido em 3 (trs) colunas.
CUT
Este comando muito til e, em geral, seu uso ocorre de forma concatenada com outros co-
mandos. O cut permite cortar trechos de colunas de um determinado arquivo ou de uma sada.
Na utilizao do do cut devemos sempre passar algum parmetro determinado o que de-
ver ser exibido de cada coluna consultada, essa determinao pode ser feita, basicamente, pelo
nmero de campos, pelo nmero de bytes ou pelo nmero de caracteres a serem exibidos. A sin-
taxe bsica deste comando :
cutopes...[arquivo]...
-b BI-BF: para delimitarmos atravs pelo nmero de bytes, onde BI representa byte inicial e
BF o byte final.
-c CI-CF: para delimitarmos atravs pelo nmero de caracteres, onde Ci representa caracte-
re inicial e CF caractere final.
85
Apostila Debian Intermedirio - Desktop Parana
-f FI-FF: para determinarmos os campos desejados, onde FI representa campo (coluna) ini-
cial e FF campo (coluna) final.
E m nenhuma das expresses acima citadas obrigatrio o uso das aspas (sendo
que tambm poderiam ter sido utilizadas aspas simples), mas por uma questo de
melhor visualizao do comando sugiro as mesmas sempre sejam utilizadas.
Agora vamos ver alguns exemplos para melhor entendermos a utilizao do comando cut.
Vamos imaginar que por algum motivo estratgico foi solicitado que gerssemos uma lista
de todos os usurios que possam logar numa determinada mquina cuja autenticao local.
Vamos analisar uma linha do passwd para entendermos melhor a sintaxe utilizado com o co-
mando cut. Segue abaixo linha do arquivo /etc/passwd.
parana:x:1000:1000:DesktopParana,,,:/home/parana:/bin/bash
Atravs do exemplo acima podemos reparar que em cada linha do arquivo passwd sempre
temos 7 campos separados por : (dois pontos), ou seja temos um padro na separao (delimita-
o) dos campos. Visto isso esta na hora de usarmos o comando cut para separamos da exibi-
o as colunas no desejadas.
C omo citado anteriormente para usar o comando cut precisamos sempre passar al-
gum parmetro, para isso devemos ter em mente basicamente duas coisas:
-1 Onde vamos cortar, ou seja, qual padro ser utilizado para cortar? (Neste momento
definimos qual das opes ser mais indicada para nossa necessidade, devemos cor-
tar a partir de um determinado nmero de caracteres, devemos cortar por um determina-
do nmero de campos, etc...).
86
Apostila Debian Intermedirio - Desktop Parana
-2 Depois de cortar, o que vamos mostrar? (Aps definido o padro a ser utilizado bas-
ta indicar o que deve ser exibido).
Para o nosso exemplo o mais indicado utilizarmos a delimitao de campos uma vez que
os temos bem definidos atravs dos : (dois pontos). A informao que precisamos esta na primeira
coluna, ou seja, no primeiro campo do arquivo /etc/passwd, considerando isso, podemos utilizar
o comando da seguinte forma:
$cutd:f1/etc/passwd
V ale observarmos que para que o comando cut funcione corretamente com os par-
metros acima utilizados todas as linhas do arquivo de origem dos dados devem ter o
delimitador definido, no nosso caso todas as linhas devem ter : (dois pontos).
Imagine agora uma outra situao onde voc precisa listar o nome e a verso todos os pa-
cotes que esto completamente instalados em seu sistema. Para ter o resultado esperado ns te-
remos que listar todos os pacotes instalados, filtrar aqueles que esto totalmente instalados e em
seguida recortar as informaes indesejveis e exibir somente o nome e a verso dos pacotes ins-
talados completamente.
$dpkgl|grep^ii
Agora nos deparamos com um problema pois utilizando o comando cut conseguimos fazer
exibir ou o nome do pacote ou a sua verso mas no ambas as informaes como necessitamos.
Para resolvermos esta situao basta utilizarmos o cut para armazenarmos estas informaes
em arquivos diferentes e depois unirmos seus contedos.
$dpkgl|grep^ii|cutd''f3>arq1
Com o comando acima ns gravamos o nome dos arquivos completamente instalados no ar-
quivo arq1. Pois com o parmetro -d' ' estamos definindo que o (espao) o delimitador de
campo (coluna) e com o parmetro -f3 estamos definindo que deve ser exibida a terceira coluna.
$dpkgl|grep^ii|cutc42|cutd''f1>arq2
Com o comando acima gravamos as verses dos pacotes instalados no arquivo arq2. Note
87
Apostila Debian Intermedirio - Desktop Parana
que para isso usamos primeiro o parmetro -c 42 para exibir todo o contedo a partir do 42 (qua-
dragsimo segundo) caractere, pois o nmero de (espaos) que temos do final de cada nome
de pacote at o inicio do nmero das verses no homogneo o impossibilita o uso das opes
de campos. Em seguida utilizamos o comando cut com os parmetros -d' ' para definir o delimi-
tador como (espao) e -f1 Para exibirmos somente a primeira coluna (a coluna da verses).
Agora basta unirmos ambos os arquivos num s uma das opes que temos para fazer isso
utilizando comando paste, que estudaremos mais detalhadamente a seguir. Para concluso do
nosso exemplo basta utilizarmos o comando:
$pasted''arq1arq2>lista
O resultado desse comando ser um arquivo com o nome lista que contm a nossa rela-
o com o nome dos pacotes e suas verses. Como mostra abaixo trecho do arquivo.
xnest2:1.4.210
xsane0.9961
xsanecommon0.9961
xserverxorg1:7.3+18
xserverxorgcore2:1.4.210
xserverxorginputall1:7.3+18
xserverxorginputevdev1:2.0.81
DD
A forma mais comum de utilizao do comando dd para copiar blocos de dados de um
dispositivo de armazenamento, tambm podemos utilizar este programa para efetuar algumas
converses em arquivos.
ddif=<origem>of=<destino><opes>
Como mostra o exemplo acima aps o comando dd temos o parmetro if= onde especifi-
camos a origem que pode ser um dispositivo (partio) ou um arquivo, em seguida temos o par-
mero of= que assim como o parmetro anterior pode receber a especificao de um dispositivo
ou de um arquivo. Logo aps passamos as opes do comando, sendo que a especificao das
opes facultativa.
Este comando muito til em algumas situaes prticas como por exemplo para limparmos
os dados da MBR, fazermos cpias fiis de uma partio ou at mesmo de um disco inteiro, etc.
Dentre as opes disponveis para serem passada com o comando dd destacamos as op-
88
Apostila Debian Intermedirio - Desktop Parana
es:
bs: atravs desta opo podemos definir o tamanho do bloco que ser copiado, caso esta
opo no seja passada com o comando, ser adotado como tamanho de bloco o valor
padro e 4k. Quando definimos um tamanho de boco obrigatoriamente temos que passar
tambm o parmetro count.
count: esta opo permite determinar a quantidade de blocos que sero copiados. Desta
forma se quisermos copiar uma partio de 10GB, onde definimos que o tamanho do bloco
de 1GB, para copiarmos toda a partio deveramos definir a quantidade de blocos a se-
rem copiados como 10.
conv: este parmetro serve para efetuarmos a converso de arquivos ou parties, junto
com esta opo devemos passar um argumento que definir que tipo de converso ser
realizada. As principais opes so: ascii para converter de EBCDIC para ASCII ; ebcdic
para converter de ASCII para EBCDIC ; lcase para alterar as letras de maisculas para mi-
nsculas e ucase para alterar as letras de minsculas para maisculas .
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
89
Apostila Debian Intermedirio - Desktop Parana
ddif=/home/parana/MBR.bkpof=/dev/sdabs=446count=1
ddif=/dev/zeroof=/dev/sdabs=512count=1
No exemplo acima estamos preenchendo com o valor zero os primeiros 512 bytes (a MBR)
do disco. O parmetro if=/dev/zero vai preencher o destino indicado, no nosso caso a MBR, com
valores zero.
Um outro uso, no muito comum, para o comando dd com a utilizao das opes de
converso. Imagine por exemplo que temos um arquivo onde o seu contedo esta todo em letras
maisculas e por algum motivo precisamos que este contedo esteja em letras minsculas, pode-
mo utilizar o comando a seguir para fazer a converso.
ddif=arquivoMaiusculaof=arquivoMinusculaconv=lcase
FIND
Como foi visto no curso bsico a principal utilizao do comando find para localizao de
arquivos dentro de um sistema de arquivos. H diversos critrios que podemos usar para melhor
lapidar a busca como por exemplo: nome, tipo, data de modificao, tamanho, proprietrio, etc. Vi-
mos tambm que possvel especificar o local da pesquisa, sendo que quando este no infor-
mado, a pesquisa feita no diretrio atual (que estamos dentro) e seus subdiretrios. A sintaxe
bsica do comando find :
Sintaxe: find <a partir de que local> [parmetro] <dados para os parmetro>
Sendo que conforme a sintaxe apresentada s podemos definir um local para pesquisa, po-
90
Apostila Debian Intermedirio - Desktop Parana
demos usar quantos parmetros forem necessrios para melhor refinar a pesquisa e podemos
passar, de acordo com o parmetro utilizado, uma representao de dados para pesquisa. Segue
abaixo, para reviso, tabela com os parmetros apresentados no mdulo bsico deste curso.
Parmetros Descrio
-name <info> Procura um arquivo ou diretrio que possua estritamente o mesmo nome com a
mesma caixa dos caracteres (case sensitive).
Exemplo: #find / -name Tio Macal <ENTER>
Se existir algum arquivo ou diretrio com o nome tio macal, no ser mostrado
no resultado.
-iname Procura um arquivo ou diretrio que possua estritamente o mesmo nome, mas
permite que a caixa dos caracteres seja diferente (no case sensitive).
Exemplo: #find / -iname Tio Macal <ENTER>
Se existir algum arquivo ou diretrio com o nome tio macal, ele ser mostrado
no resultado.
-size Procura arquivos que possuam um determinado tamanho. Voc pode definir o
tamanho exato do arquivo (o problema que, devido aos arredondamentos dos
nmeros reais, que so quebrados, muito difcil voc encontrar um arquivo pelo
tamanho certo), ou definir se devero ser mostrados arquivos maiores ou menores
que o valor dado ao parmetro.
Exemplo: #find /boot -size +5M <ENTER>
Voc poder procurar por KB (use o k minsculo), MB (use o M) e o GB (use o G).
-maxdepth Define o nmero mximo de nveis que o comando find dever descer para fazer
sua pesquisa. O diretrio que foi definido com ponto inicial assumir o valor de
nvel 1. Cada nvel abaixo dever ser incrementado pelo nmero um.
Exemplo: O arquivo oi.txt est dentro de /curso/1/2/3/4/.
$find /curso/1 -maxdepth 4 -name oi.txt <ENTER> Ir encontrar
/curso/1/2/3/4/oi.txt
$find /curso/ -maxdepth 4 -name oi.txt <ENTER> No ir encontrar, porque ele
parar no diretrio /curso/1/2/3.
-mindepth Define quantos nveis abaixo o comando find dever descer a partir do local
definido como ponto inicial da pesquisa. O nmero que voc coloca ao lado do
parmetro o nmero de nveis abaixo, contando um no diretrio especificado,
que o find dever iniciar a pesquisa.
Exemplo: agora temos o arquivo eita.txt dentro do diretrios /curso/1/2/.
$find /curso/1 -mindepth 3 -name eita.txt <ENTER> Nada ser encontrado.
$find /curso/1 -mindepth 2 -name eita.txt <ENTER> Encontrar.
/curso/1/2/eita.txt
-type Permite que voc pesquise arquivos que sejam somente do tipo que voc venha a
especificar, como diretrios, arquivos especiais de bloco, caracteres, links,
socketes, etc. Voc s poder colocar uma letra por vez.
b = arquivos especiais de bloco
c = arquivos especiais de caractere
d = diretrios
l = link simblico
s = arquivo especial de soquete
p = arquivo especial de pipe
f = arquivos regulares (arquivos normais)
Exemplo: No exemplo abaixo, pedimos ao find que procure todos os arquivos pipe
do computador:
# find / -type p
91
Apostila Debian Intermedirio - Desktop Parana
Parmetros Descrio
/var/lib/gdm/.gdmfifo
/dev/xconsole
/dev/initctl
Podemos acrescentar como parmetro do comando find as opes:
Por exemplo, imagine que temos um servidor com que esta com a partio que contm as
pastas compartilhas da rede quase cheia, e por isso, h a necessidade de limpar (excluir) alguns
arquivos para liberar espao. Detectamos que o compartilhamento de rede publico o que apre-
senta situao mais critica, ento com o comando find identificamos os arquivos que esto utili-
zando mais espao e descobrimos que existem vrios arquivos de mp3 que esto indevidamente
gravados na rede. Nesse caso podemos utilizar o comando find para localizar e j remover todos
os arquivos de mp3 existentes no compartilhamento atravs do comando:
#find/comp/publicotypefiname'*mp3'execrmf'{}'\;
No comando acima especificamos o local de pesquisa como a pasta onde temos o comparti-
lhamento publico especificamos com o parmetro -type que s deveriam ser pesquisados ar-
quivos regulares, com o parmetro -iname especificamos que deveriam ser pesquisados os ar-
quivos que seu nome terminasse com o termo mp3 e atravs do parmetro -exec pudemos
passar o comando rm -f para excluir os arquivos encontrados como resultado da pesquisa.
Por exemplo, se quisermos localizar todos os arquivos, no nosso /home, que comecem com
a letra a e sejam maiores que 300KB. O comando ficaria:
~$findtypefiname'a*'andtypefsize+300k
O comando acima far com que sejam pesquisados todos os arquivos que comecem com a
letra a (atravs dos parmetros: -type para definir que a pesquisa ser realizada somente entre
os arquivos regulares e -iname para especificar que so os arquivos em que seu nome comece
com a letra a) e que seu tamanho seja maior que 300KB (os parmetros; -type para definir que
92
Apostila Debian Intermedirio - Desktop Parana
a pesquisa ser realizada somente entre os arquivos regulares e -size para especificar somente
os arquivos maiores que 300KB ).
Q uando utilizamos o parmetro -exec junto com o parmetro -and, devemos utili-
z-lo aps o -and pois caso contrrio o comando especificado para execuo atra-
vs do parmetro -exec s ser aplicado ao resultado da pesquisa de acordo com os
primeiros critrios estabelecidos, no sendo consideradas as especificaes de pesqui-
sa definidas aps o parmetro -and.
~$findtypefiname'a*'andtypefsize+100kexecrmf
{}\;
No exemplo acima estamos excluindo da pasta pessoal todos os arquivos que comecem
com a letra a e tenham o tamanho maior que 100 KB. Se tivssemos utilizado o comando da se-
guinte forma:
~$findtypefiname'a*'execrmf{}\;andtypefsize
+100k
Com esse comando teramos apagado todos os arquivos que iniciassem com a letra a e a
informao de que deveria ter o tamanho maior que 100KB seria ignorada.
-or (o) este parmetro permite que sejam utilizados para pesquisa mais de um critrio
para pesquisa simultaneamente.
Por exemplo, se quisermos pesquisar todos os arquivos da minha pasta pessoal que come-
cem com as letras a e b. Para isso o comando ficaria:
~$findtypefiname'a*'ortypefiname'b*'
No exemplo acima o find pesquisou primeiro os arquivos que comeavam com a letra a e
depois os que comeavam com a letra b.
~$findiname'a*'oriname'b*'execchmod700{}\;
No exemplo acima s sero alteradas as permisses dos arquivos 10 que iniciarem com a le-
tra b, os que iniciarem com aletra a no sofrero nenhuma alterao.
~$findiname'a*'exec700{}\;oriname'b*'execchmod700{}\;
10 Neste caso como no foi especificado o tipo de arquivo atravs do parmetro -type a alterao de permisso
afetar todos os tipos de arquivos que comecem com a letra b, como por exemplo diretrios, links, etc...
93
Apostila Debian Intermedirio - Desktop Parana
No exemplo acima esta sendo aplicada a alterao de permisso a todos os arquivos da mi-
nha pasta pessoa que comecem com as letras 'a' e b.
-atime <Nmero de dias> procura por arquivos que tenham seu ultimo acesso conforme
o nmero de dias passados com o parmetro. Tambm possvel definir para serem mostrados
arquivos com o ultimo acesso superior (+) ou inferior (-) ao nmero de dias passado ao parmetro.
$find/home/robsonp/documentos/atime+2
No exemplo acima sero listados todos os arquivos que tiveram seu ltimo acesso a mais
de 2 (dois) dias.
-ctime <Nmero de dias> - procura por arquivos que tenham sido alterados o nmero de
dias que foi passados com o parmetro. Tambm possvel definir para serem mostrados todos
os arquivos alterados o nmero de dias especificados com o parmetro em relao data atual.
Inserindo antes do nmero de dias + para superio ou - para inferior ao nmero de dias passado
ao parmetro.
$find/home/robsonp/documentosctime1
No exemplo acima sero listados todos os arquivos que foram alterados a menso de 1 (um)
dia.
~$findctime1printf"%f%c\n"
%G mostra o gid
%U mostra o uid
94
Apostila Debian Intermedirio - Desktop Parana
%AT hh/mm/ss
XARGS
O comando xargs utiliza o resultado de um comando enviado sada padro e o utiliza
como argumento na execuo de um outro comando, uma ou quantas outras vezes forem neces-
srias.
~#lsqw|xargsrmf
No exemplo acima estamos usando o comando xargs para excluir todos os arquivos existen-
tes no diretrio corrente que tenham os mesmos nomes de arquivos que foram retornados pelo
comando ls no diretrio qw. Caso na listagem apresentada na sada padro contenha algum
nome de arquivo no existente no diretrio corrente ser apresentada uma mensagem de erro avi-
sando que o arquivo no pode ser removido por no existir.
Vamos imaginar agora uma outra situao onde queremos remover todos os arquivos do di-
retrio corrente, pertencentes a um determinado usurio. Poderamos, para isso, usar um coman-
do find, da seguinte maneira:
$find.typefuserrobsonpexecrmf{}\;
Com isso, seriam apagados todos os arquivos do usurio robsonp, mas fazendo desta forma
seriam removidos no s os arquivos do usurio robsonp contidos no diretrio corrente, sem afe-
11 Se s existir uma referncia para o contedo do arquivo ser mostrado com este parmetro o valor 1 (um), pois cada
referncia ao contedo de um arquivo considerada pelo sistema como um hardlink.
95
Apostila Debian Intermedirio - Desktop Parana
tar as subpastas, mas tambm os de todos os outros subdiretrios existentes a partir do diretrio
correntes.
Uma opo para solucionar este problema seria a utilizao sa seguinte linha de comando:
$lsl|grep"robsonp"|cutc44|xargsrm
Neste caso, o grep filtraria os arquivos listados com o comando ls -l que pertenciam ao
usurio robsonp. Com o comando cut pegamos somente o nome dos arquivos, que foram passa-
dos ao comando xargs, que fez a ponte para remoo atravs do comando rm. Evitando assim
que fossem removidos os arquivos do usurio robsonp existentes nos subdiretrios.
E ste exemplo foi utilizado com o fim didtico de apresentar a utilizao do comando
xargs, pois possvel realizar esta operao do exemplo somente com o comando
find e seus parmetros12, para isso utilizaramos o comando find com os seguintes par-
metros:
find . -maxdepht 1 -type f -user robsonp -exec rm -f {} \;
FSCK
Sintaxe: fsck <opes> <partio>
O fsck checa a consistncia e repara possveis danos num sistema de arquivos. Muitas ve-
zes, acaba sendo automaticamente executado nos sistemas de arquivos e nem nos damos conta
do que esta acontecendo.
Sempre que por algum motivo ocorra um desligamento incorreto (anormal) do computador,
gerando a deteco de inconsistncia no sistema de arquivos, far com que na prxima vez em
que o sistema for iniciado ser executado o fsck e, na maioria dos casos, automaticamente corrigi-
r os problemas encontrados, tais como corrigir blocos defeituosos, etc.... Mas nos casos com
maiores danos necessrio que seja feita uma checagem manual.
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
0 - nenhum erro.
8 - erro operacional.
-t: esta opo utilizada para especificar qual sistema de arquivos ser checado.
-a: esta opo faz com que os defeitos sejam reparados automaticamente.
-A: utiliza as informaes contidas no arquivo /etc/fstab e tenta verificar todos os sistemas
de arquivos, nele configurados, de uma vez.
-r: esta opo faz com que quando seja encontrada alguma falha, seja solicitada confirma-
o para sua recuperao.
-V: quando utilizamos esta opo a sada do comando fsck apresentada de forma mais de-
talhada.
-N: faz com que seja exibido qual seria o resultado da execuo do comando fsck sem que
as alteraes sejam efetuadas no sistema de arquivos. Simplesmente mostra uma prvia do seria
feito.
-M: esta opo faz com que o fsck no seja executado em parties montadas, retornando
para elas o cdigo de sada 0 (nenhum erro).
-y: esta opo fora para que todas as perguntas durante o processo de restaurao rece-
bam a resposta sim, sem a necessidade da interao do usurio.
# fsck -A -N
fsck 1.41.3 (12-Oct-2008)
[/sbin/fsck.xfs (1) -- /] fsck.xfs /dev/sda2
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 /dev/sda1
[/sbin/fsck.xfs (1) -- /home] fsck.xfs /dev/sda4
No exemplo acima o fsck no chegou restaurar as parties listadas. Ele simplesmente re-
97
Apostila Debian Intermedirio - Desktop Parana
tornou que os erros dos sistemas de arquivos seriam corrigidos com exito. No exemplo a seguir o
fsck executado somente para partio sda4.
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 :
Quando utilizamos o comando fuser sem passarmos nenhuma opo, somente apontando
para um diretrio ou arquivo, temos como retorno o PID de todos os processos em execuo. Na
exibio padro deste comando temos como retorno o PID de cada processo seguido por uma le-
tra, que indica o tipo de acesso, sendo as mais comumente entradas13:
A seguir, sero apresentadas as principais opes para utilizao com o comando fuser.
-u: quando utilizada esta opo feita uma identificao do usurio dono de cada um dos
processos listados.
-k: quando utilizamos esta opo alm de exibirmos os processos do arquivo ou diretrios
especificado, efetuada a operao de encerramento de cada um dos processos, ou seja, os pro-
cessos so matados.
-i: esta opo faz com que seja solicitada uma confirmao antes de matar os processos
atravs da opo -k.
-n: esta opo permite visualizar o processo que esta usando uma determinada porta TCP
ou UDP
-v: esta opo faz com que os processos sejam exibidos como uma lista com quatro colunas
com a primeira trs o nome do usurio dono do processo, a segunda coluna trs o PID do proces-
so, a terceira coluna trs as informaes de acesso e a quarta coluna trs o comando que iniciou
13 Mais informaes sobre as letras de identificao de acesso podem ser obtidas no manual do comando (man fuser).
98
Apostila Debian Intermedirio - Desktop Parana
o processo. Segue abaixo exemplo de retorno da utilizao do comando fuser com o parmero -v.
#fuserv/bin/bash
USERPIDACCESSCOMMAND
/bin/bash:robsonp4547...e.soffice
robsonp4808...e.bash
root4830...e.bash
robsonp6671...e.bash
root6693...e.bash
robsonp7600...e.bash
root7622...e.bash
#fuser/bin/bash/usr/bin/soffice
/bin/bash: 4547e 4808e 4830e 6671e 6693e 7600e
7622e7976e
/usr/bin/soffice:4547
No exemplo acima esto sendo listados todos processos vinculados aos arquivos bash e so-
fice. Se executarmos esse mesmo comando passando o parmetro -u como opo junto com o
cada PID apresentado vir tambm o nome do usurio dono do processo.
#fuseru/bin/bash/usr/bin/soffice
/bin/bash: 4547e(robsonp) 4808e(robsonp) 4830e(root)
6671e(robsonp)6693e(root)7600e(robsonp)7622e(root)7976e(rob
sonp)
/usr/bin/soffice:4547(robsonp)
Tambm podemos utilizar dos caracteres especiais para designarmos mais de um diretrio
ou arquivo para exibio dos processos. Como mostra exemplo abaixo:
#fuser/home/*
/home/robsonp: 3126c 3186c 3205c 3207c 3209c 3286c
3288c3289c3349c3452c
/home/teste:3464c3465c
A seguir esse mesmo exemplo s que desta vez com a utilizao do parmetro -v para uma
exibio mais completa.
#fuser/home/*v
USERPIDACCESSCOMMAND
/home/robsonp:robsonp3126..c..xsessionmanag
robsonp3186..c..gnomesettings
robsonp3205..c..metacity
robsonp3207..c..gnomepanel
robsonp3209..c..nautilus
99
Apostila Debian Intermedirio - Desktop Parana
robsonp3286..c..gnometerminal
robsonp3288..c..gnomeptyhelpe
robsonp3289..c..bash
robsonp3349..c..bash
robsonp3452..c..bash
/home/teste:teste3464..c..su
teste3465..c..bash
A seguir um exemplo onde usamos o comando fuser para verificar os processos que esto
utilizando a porta TCP 631.
#fuserntcp22
22/tcp:2217
LSOF
O comando lsof lista todos arquivos, de todos os tipos, que esto abertos por todos os pro-
cessos em execuo no sistema.
Como vimos a utilizao do comando lsof exibe uma lista de todos os arquivos abertos pelos
processos em execuo, essa listagem por padro apresenta nove colunas com as seguintes in-
formaes:
COMMAND nesta coluna sero listados os primeiros 9 (nove) caracteres do nome do co-
mando associado ao processo em execuo que esta utilizando o arquivo listado.
PID como o prprio ttulo j diz, esta coluna lista o PID dos processos.
USER nesta coluna sero listados os nomes dos usurios que iniciaram os processos.
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.
As principais opes que podem ser passadas como parmetro do comando lsof so:
100
Apostila Debian Intermedirio - Desktop Parana
+D <diretrio> faz com que lsof procure por todas as instncias do diretrio especificado
no argumento homnimo que esto sendo utilizadas pelos processos do sistema.
-N utilizado para verificar recursos (arquivos, diretrios, etc) que esto sendo utilizados em
uma estrutura de rede baseada em NFS.
-p <PID> permite especificar o PID de um determinado processo para listar todos os recur-
sos (arquivos, diretrios, etc) utilizados por ele.
-u <usurio/UID, ...> verificar os recursos (arquivos, diretrios, etc) em uso por usurios.
Pode-se especificar mltiplos usurios pelo nome de login no sistema ou UID, separados por vr-
gula. preciso ser administrador do sistema para verificar os recursos de outros usurios.
#lsofurobsonp|head
O comando acima lista todos os arquivos abertos por processos cujo dono o usurio rob-
sonp.
#lsofi:22
O comando acima mostra todos os arquivos referentes a conexes feitas pela porta 22.
PIDOF
O comando pidof retorna o(s) PID(s) de um processo em execuo.
-s esta opo faz com que seja exibido somente o primeiro PID encontrado.
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
101
Apostila Debian Intermedirio - Desktop Parana
parou de funcionar pelo SQUID. Esse problema j havia ocorrido outras vezes e s foi necessrio
reiniciar o SQUID e tudo volta a funcionar. No entanto ao tentar finalizar o servio (com o comando
/etc/init.d squid stop) temos um retorno de erro dizendo que no possvel finalizar o servio.
Nesse caso podemos utilizar o comando pidof para identificarmos o PID do processo squid e fina-
liz-lo com o comando kill.
#kill9$(pidofgedit)
#pidofbash
17095132261320410651899571115358
#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.
Proprietrio do processo;
Prioridade de execuo;
Recursos de memria.
Neste momento vamos nos focar em enter melhor o controle da prioridade de execuo dos
processos, para isso vamos entender como funciona o processamento das informaes. Quando
falamos que um sistema operacional multitarefa, no quer dizer que o processador da mquina
102
Apostila Debian Intermedirio - Desktop Parana
esteja processando duas ou mais tarefas ao mesmo tempo 16. O que acontece que o sistema
operacional estipula um determinado perodo de tempo em que uma determina tarefa processa-
da e passado esse intervalo de tempo, essa tarefa interrompida e volta para uma fila de proces -
samento e a tarefa da vez, na fila, processada e assim por diante at a concluso do processa-
mento de todas as tarefas, esse ciclo acontece numa velocidade to rpida que d impresso de
que todas as tarefas foram processadas simultaneamente.
Quando um processo gentil, significa que ele "oferece a gentileza" de permitir que um pro-
cesso com prioridade maior seja executado antes dele. Esses nveis de gentileza, tambm chama-
dos de nice, so determinados atravs de nmeros, onde quanto mais alto for o valor nice, mais
gentil o processo, ou seja, menor sua prioridade de execuo. O intervalo de nmeros usados
no nice o intervalo de nmeros inteiros entre -20 e 19.
O comando nice permite nos permite executar uma determinado processo com sua priorida-
de de execuo alterada, seja ela maior ou menor que sua prioridade padro.
Quando utilizamos o comando nice passando como opo o parmetro -n <valor>, onde o
valor corresponde ao nvel desejado, adiciona o valor especificado prioridade padro de exe-
cuo no sistema para o processo iniciado. Se utilizarmos o comando nice sem passarmos o
parmetro especificando o nvel de prioridade de execuo, ser atribuda ao comando a priorida-
de execuo 10 (dez).
Se utilizarmos somente o comando nice sem passarmos nenhum argumento, exibida a pri-
oridade de execuo de processos padro em uso atualmente no sistema operacional.
$nice
0
Imagine que temos, em nossa mquina, um determinado processo usando 95% do proces-
103
Apostila Debian Intermedirio - Desktop Parana
samento e que este processo ficar rodando por um longo perodo de tempo, e que nesse pero-
do, por algum motivo, voc precise editar o arquivo arquivo.cfg. Ao tentar usar o editor vim para
alterar o arquivo, voc percebe que o editor est extremamente lento. Para evitar essa situao,
possvel executar o editor de texto com o nvel de prioridade de execuo maior do que a do pro-
cesso que esta ocupando 95% do processamento. Para isso basta utilizar o comando abaixo:
#nicen20vimarquivo.cfg
No exemplo acima o comando nice esta sendo usado para dar prioridade mxima para o
processo gerado pelo comando vim na edio do arquivo arquivo.cfg.
RENICE
O comando renice tem a mesma funo que o comando nice, alterar a prioridade de execu-
o de um determinado processo. A diferena que utilizamos o comando nice para alterar a prio-
ridade de execuo dos processos que esto sendo iniciados, enquanto o comando renice utili-
zado para alterara a prioridade de execuo de processos que j esto em execuo.
-u esta opo permite que seja especificado um usurio de forma que sejam alteradas as
prioridades de execuo de todos os processos desse usurio.
-g esta opo permite que seja especificado um um grupo de forma que sejam alteradas
as prioridades de execuo de todos os processos desse grupo.
-p esta opo permite que seja especificado o PID do(s) processo(s) que sero alteradas
as prioridade de execuo17.
#renice04546
No exemplo acima esta sendo alterada a prioridade de execuo do processo com PID 4546
para 0 (zero).
#renice5urootp49306123
No exemplo acima esto sendo alteradas as prioridades de execuo para -5 (menos cinco)
de todos os processos do usurio root e dos processos com PID 4930 e 6123.
NOHUP
Algumas vezes precisamos executar um comando em background para que continuarmos
17 No obrigatrio o uso da opo -p para passar o PID de um processo para alterao de sua prioridade de
execuo do comando renice.
104
Apostila Debian Intermedirio - Desktop Parana
usando o terminal, em alguns casos pode ser que a execuo desse comando demore e por al-
gum motivo ns podemos precisar encerrar a seo. Nesse caso ao encerrarmos a seo o pro-
cesso que estava em execuo em segundo plano receber um sinal para ser encerrado e no
terminar sua execuo.
S empre que um usurio efetua logout, encerra uma seo, enviado um sinal ( SIG-
HUP ) que termina ou reinicia um processo a todos os processos que este usurio
iniciou, ou seja, que ele seja dono.
Nos casos em que precisamos que um processo seja executado mesmo que sua a seo de
origem seja encerrada, ou seja, mesmo que ns efetuemos logout, podemos utilizar o comando
nohup frente do comando que dever ficar em execuo. Pois o comando nohup faz com que
sejam ignorados os sinais de interrupo de conexo durante a execuo do comando especifica-
do (torna esse comando imune ao sinal SIGHUP). Possibilitando que o comando continue em exe-
cuo mesmo aps o usurio se desconectar do sistema.
Se a sada padro para o comando uma tty, esta sada e o erro padro so redirecionados
para o arquivo nohup.out que ser criado no diretrio onde o comando foi executado, se por al-
gum motivo ele no conseguir criar ou escrever neste arquivo, ele redirecionar para um arquivo
nohup.out que ser criado no home do usurio corrente.
C aso nenhum destes dois arquivos possam ser criados (ou alterados se j existem),
o comando no executado.
#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.
Na maioria das vezes identificado o nome correto do controlador de cada dispositivo co-
nectado aos barramentos PCI / AMR / CNR / AGP do computador, no entanto, em alguns casos os
dispositivos podem ser mostrados como Unknow Device, informando que o dispositivo no foi re-
conhecido. Nesses casos podemos usar o script update-pciids, que far o download de um
novo arquivo de definies para ser utilizado pelo comando lspci.
105
Apostila Debian Intermedirio - Desktop Parana
A utilizao do comando lspci pode ser incrementada com as opes listadas a seguir:
-v esta opo faz com que sejam exibidas informaes mais detalhadas sobre cada com-
ponente presente no barramento PCI do computador. O grau de detalhamento apresentado por
esta opo pode ser aumentado atravs da repetio duas (-vv) ou trs (-vvv) vezes da letra v.
-n esta opo exibe o cdigo do fabricante e do dispositivo ao invs de exibir seus nomes.
-nn esta opo exibe o cdigo do fabricante e do dispositivo, alm de seus nomes.
-b esta opo faz com que sejam exibidas informaes sobre o hardware e os nmeros de
IRQ utilizados por eles (interessante para descobrir conflitos).
-d <cd. fabricante>:<cd. Dispositivo> esta opo exibe somente informaes dos dis-
positivos de um determinado fabricante (argumento cd. fabricante), ou ainda de forma mais res-
tritiva, de um determinado dispositivo de um determinado fabricante (definindo os argumentos
cd. fabricante e cd. Dispositivo).
#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
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.
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.
107
Apostila Debian Intermedirio - Desktop Parana
#lsusb
Bus002Device002:ID15d9:0a37
Bus002Device001:ID1d6b:0001LinuxFoundation1.1roothub
Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothub
No exemplo acima estamos utilizando o comando lsusb sem passar a ele nenhum parme-
tro, onde temos como retorno a sada acima que mostras que, nesse caso, no h nenhum dispo-
sitivo conectado s entradas USB.
#lsusbv
Bus002Device002:ID15d9:0a37
DeviceDescriptor:
bLength18
bDescriptorType1
bcdUSB1.10
bDeviceClass0(DefinedatInterfacelevel)
bDeviceSubClass0
bDeviceProtocol0
bMaxPacketSize08
idVendor0x15d9
idProduct0x0a37
bcdDevice1.00
iManufacturer0
iProduct1USBMouse
iSerial0
bNumConfigurations1
ConfigurationDescriptor:
bLength9
bDescriptorType2
wTotalLength34
bNumInterfaces1
bConfigurationValue1
iConfiguration0
bmAttributes0xa0
(BusPowered)
RemoteWakeup
MaxPower100mA
InterfaceDescriptor:
bLength9
bDescriptorType4
bInterfaceNumber0
bAlternateSetting0
bNumEndpoints1
bInterfaceClass3HumanInterfaceDevice
108
Apostila Debian Intermedirio - Desktop Parana
bInterfaceSubClass1BootInterfaceSubclass
bInterfaceProtocol2Mouse
iInterface0
HIDDeviceDescriptor:
bLength9
bDescriptorType33
bcdHID1.10
bCountryCode0Notsupported
bNumDescriptors1
bDescriptorType34Report
wDescriptorLength52
ReportDescriptors:
**UNAVAILABLE**
EndpointDescriptor:
bLength7
bDescriptorType5
bEndpointAddress0x81EP1IN
bmAttributes3
TransferTypeInterrupt
SynchTypeNone
UsageTypeData
wMaxPacketSize0x00041x4bytes
bInterval10
DeviceStatus:0x0000
(BusPowered)
Acima segue um exemplo de sada mais detalhada do comando lsusb com o parmetro -v.
HWCLOCK
Este comando permite acessar o relgio da BIOS, possibilitando sua consulta alm de ajus-
tes nos horrios do sistema e da mquina.
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.
109
Apostila Debian Intermedirio - Desktop Parana
No exemplo acima usamos primeiramente o comando hwclock para alterar a data e hora do
relgio da mquina (BIOS) e em seguida confirmamos a alterao efetuada usando novamente o
comando hwclock com o parmetro -r para visualizarmos a data e hora do relgio da mquina.
NMBLOOKUP
Antes de aprendermos a utilizao do comando nmblookup vamos conhecer um pouco sob-
re o NetBIOS sobre TCP/IP como servio de resoluo de nomes e sobre o servio WINS.
Podemos definir NetBIOS como uma interface de programa desenvolvida para permitir a co-
municao entre mquinas numa determinada rede. Em redes microsoft, por exemplo, o comparti-
lhamento de arquivos baseado no sistema de troca de mensagens do NetBIOS, chamado de
SMB (Server Message Block).
110
Apostila Debian Intermedirio - Desktop Parana
belecer uma conexo TCP, o nome NetBIOS deve ser resolvido para um endereo IP. Temos dife-
rentes mecanismos para resoluo de nomes NetBIOS, sendo que estes mecanismos variam de
acordo com o tipo de n de NetBIOS configurado. Segue abaixo uma lista de ns de NetBIOS:
Tipo de n Descrio
O n B usa consultas de nomes NetBIOS atravs de difuso (broadcast)
na resoluo de nomes. O n B tem dois grandes problemas: (1) As
N B (difuso) difuses perturbam todos os ns na rede. e (2) Os roteadores geralmente
no encaminham difuses, portanto, apenas os nomes NetBIOS na rede
local podem ser resolvidos.
O n P usa um servidor de nomes NetBIOS (NBNS), como, por exemplo,
um servidor WINS para resolver os nomes NetBIOS. Ou seja, o n P ao
N P (ponto a ponto)
invs de usar difuses faz uma consulta diretamente no servidor de
nomes (servidor WINS).
O n M uma combinao do n B e do n P. Por padro, um n M
funciona como um n B, resolvendo os nomes NetBIOS por difuso, e
N M (composto)
quando ele no consegue resolver o nome por difuso, ele efetua uma
consulta ao servidor de nomes (servidor WINS usando o n P.
O n H uma combinao do n P e do n B. Por padro, um n H
funciona como um n P, efetuando uma consulta num servidor de nomes
N H (hbrido) (servidor WINS), quando ele no consegue resolver o nome NetBIOS
dessa forma, ele usa uma difuso para resoluo do nome. (Este
atualmente o tipo de n mais utilizado).
Agora que sabemos o que e quais as formas para resoluo de nomes NetBIOs, vamos
conhecer um pouco sobre o servio WINS (Servio de cadastramento na internet do Windows).
Este servio disponibiliza um banco de dados distribudo para registrar e consultar mapeamentos
dinmicos de nomes NetBIOS para computadores e grupos usados na rede. Os registros de
WINS so efetuados automaticamente a cada vez que os clientes iniciam e ingressam na rede.
E ssa atualizao automtica do banco de dados WINS, evita que alteraes dinmi-
cas de endereo desatualizem o banco de dados
A seguir temos uma ilustrao que facilitar o entendimento da resoluo de nomes NetoBI-
OS atravs de uma consulta num servidor WINS.
111
Apostila Debian Intermedirio - Desktop Parana
Agora que entendemos como funciona a resoluo de nomes NetBIOS atravs de um servi-
dor WINS, vamos aprender a utilizar o comando nmblookup que uma ferramenta muito til para
verificarmos o correto funcionamento dessa resoluo de nomes, pois este comando, dentre suas
funes, possibilita a consulta de um endereo IP atravs de seu hostname.
-U esta opo utilizada para passarmos o endereo IP do servidor WINS a ser consulta-
do.
-R esta opo utilizada para passarmos o nome NetBIOS ou SAMBA da mquina que
ser pesquisada.
-B esta opo utilizada para passarmos qual o broadcast ser utilizado para resoluo
do nome NetBIOS por difuso.
-d <Nvel> esta opo utilizada para, dependendo do nvel passado como argumento,
aumentar o detalhamento das informaes retornadas pelo comando nmblookup. O nvel a ser
passado como argumento dessa opo deve ser um valor inteiro compreendido entre 0 (zero) e
10 (dez), sendo que quanto maior o nvel mais detalhada a sada. Quando este parmetro no
passado o comando nmblookup assume o nvel 0 (zero) no retorno das informaes pesquisadas.
112
Apostila Debian Intermedirio - Desktop Parana
-T esta opo utilizada para que seja exibido o nome DNS da mquina antes do endere-
o IP.
#nmblookupU10.15.20.85Recelepar10159T
queryingecelepar10159on10.15.20.85
ecelepar10159.celepar.parana,10.15.17.35ecelepar10159<00>
#nmblookupU10.15.20.85Recelepar12153
queryingecelepar12153on10.15.20.85
10.15.17.135ecelepar12153<00>
#nmblookupRecelepar10159B10.15.19.255
queryingecelepar10159on10.15.19.255
10.15.17.35ecelepar10159<00>
#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>
113
Apostila Debian Intermedirio - Desktop Parana
NSLOOKUP
Para entendermos a utilizao deste comando precisamos ter noo de o que , e para que
serve um servidor DNS. De uma forma simplificada, podemos definir um servidor DNS (Domain
Name System como o responsvel por efetuar a resoluo de nomes, ou seja, identificar mqui-
nas atravs de nomes em vez de endereos de IP.
Numa rede baseada no modelo OSI que utilize o protocolo TCP/IP, a conexo entre dois
equipamentos acontece atravs do endereamento IP19. Imagine ento que quisssemos acessar
o site do google, por exemplo, se no tivssemos configurado um servidor DNS, para acessar o
site, ao invs de digitarmos o endereo www.google.com teramos que digitar um de seus ende-
reos IPs. Para possibilitar essa navegao atravs de um nome amigvel, o DNS atribui nomes
a servios de rede e computadores, organizado de acordo com uma hierarquia de domnios.
O comando nslookup pode ser utilizados de duas formas: interativa e no-interativa. A forma
no-interativa consiste na utilizao do comando para realizao de uma nica consulta a ser rea-
lizada conforme os parmetros passados. A forma interativa ocorre quando utilizamos o comando
nslookup sem passarmos nenhum parmetro, nesse caso ser aberta uma interface onde poss-
vel realizar vrias consultas com diferentes critrios de pesquisa, para sair dessa interface interati-
va basta digitarmos exit ou utilizarmos as teclas <Ctrl>+<d>. Segue abaixo alguns exemplos de
utilizao do comando nslookup.
#nslookupecelepar91199
Server:10.15.16.6
Address:10.15.16.6#53
Nonauthoritativeanswer:
Name:ecelepar91199.celepar.parana
Address:10.15.17.186
19 Esse conceito de que a conexo feita atravs do endereo IP, uma simplificao feita com o fim de contextualizar
a necessidade do uso do endereo IP na conexo.
114
Apostila Debian Intermedirio - Desktop Parana
estao de trabalho ecelepar91199. Nesse comando, como no foi especificado nenhum servidor
DNS a ser consultado, a consulta foi realizada no servidor DNS configurado como primrio no ar-
quivo resolv.conf.
#nslookupecelepar9119910.15.16.8
Server:10.15.16.8
Address:10.15.16.8#53
Nonauthoritativeanswer:
Name:ecelepar91199.celepar.parana
Address:10.15.17.186
Neste outro exemplo, temos a mesma situao do exemplo anterior mudando somente o
fato de que desta vez apontamos no comando que o servidor DNS que deveria ser consultado era
o 10.15.16.8.
#nslookup
>ecelepar91199
Server:10.15.16.6
Address:10.15.16.6#53
Nonauthoritativeanswer:
Name:ecelepar91199.celepar.parana
Address:10.15.17.186
>www.coxanautas.com.br
Server:10.15.16.6
Address:10.15.16.6#53
Nonauthoritativeanswer:
www.coxanautas.com.brcanonicalname=coxanautas.com.br.
Name:coxanautas.com.br
Address:209.200.237.80
>exit
No exemplo acima, estamos utilizando o comando nslookup no modo interativo, dessa forma
podemos efetuar quantas consultas forem necessrias. Neste caso estamos efetuando apenas
duas consultas, a do hostname ecelepar91199 e a do endereo www.coxanautas.com.br.
Como no especificamos um servidor para consulta foi utilizada a configurao do do arquivo re-
solv.conf e consultado p servidor primrio nele especificado. Aps efetuadas as consultas deseja-
das samos da interface do comando nslookup digitando exit.
115
Apostila Debian Intermedirio - Desktop Parana
#nslookup10.15.16.8
>expresso.pr.gov.br
Server:10.15.16.8
Address:10.15.16.8#53
Nonauthoritativeanswer:
Name:expresso.pr.gov.br
Address:200.189.113.38
>exit
No exemplo acima temos uma situao parecida com a descrita anteriormente s que desta
vez especificamos em qual servidor DNS deveria ser realizada a consulta.
116
Apostila Debian Intermedirio - Desktop Parana
Existem vrios comandos que permitem que um administrador depure uma rede problemti-
ca, sendo que cada um trabalha em uma ou mais camadas da pilha de protocolos TCP/IP, estru-
turado parcialmente de acordo com o modelo OSI.
O TCP/IP foi desenhado segundo uma arquitetura de pilha, onde diversas camadas de
software interagem somente com as camadas acima e abaixo. H diversas semelhanas com o
modelo conceitual OSI da ISO, mas o TCP/IP anterior formalizao deste modelo e portanto
possui algumas diferenas.
CAMADA OSI
O modelo OSI/RM (Open Systems Interconnect Reference Model Modelo de Referncia
de Sistemas de Interconexo Aberta), ou simplesmente OSI, um modelo que define as diretrizes
(caminhos, indicaes e modelos) a serem seguidas pelos protocolos que pretendem definir re-
gras que faam com que sistemas operacionais consigam utilizar qualquer arquitetura de rede.
Perceba que o modelo OSI em si no nem um, nem um grupo de protocolos, mas sim o ca-
minho que os desenvolvedores de protocolos devero seguir para que haja uma total interoperabi-
lidade entre sistemas e hardware. O projeto de criar o protocolo OSI foi abandonado e este mode-
lo usado atualmente para fins didticos, totalmente terico e didtico.
O modelo OSI consiste em uma pilha de camadas, sendo que cada uma delas tem uma fun-
o especfica. Para que uma informao possa ser transmitida, ela precisar passar pelas pilhas
(camadas adjacentes do remetente e destinatrio) seguindo uma direo e um sentido. Sempre
dever ser respeitada a ordem das camadas. Para uma informao ser enviada, ela deve come-
ar da camada superior e ir para as camadas mais abaixo. Para receber uma informao, o senti-
do ser o contrrio. Se existirem cinco camadas num protocolo utilizado para estabelecer uma co-
nexo entre dois computadores, as aplicaes de ambos, para trocar dados, tero que propeli-los
117
Apostila Debian Intermedirio - Desktop Parana
de forma que as 10 camadas sejam transpostas. A camada mais ao topo do remetente preparar
um segmento de dados que somente a mesma camada do destinatrio entender. O mesmo
acontece com a segunda camada, e todas as outras. A conversao dentro da pilha feita, en-
to, horizontalmente, enquanto o fluxo vertical. Vejamos agora quais so as camadas:
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
Existem as aplicaes de rede que repousam sobre a camada de aplicao, tanto no mo-
delo OSI, quanto na arquitetura TCP/IP. Devido ao intuito deste curso, no iremos nos aprofundar
nas camadas de apresentao e aplicao j que elas tm funes diferentes e abstratas de acor-
do com o protocolo utilizado. Basta sabermos que tarefas de encriptao de dados, assim como
outras atividades adicionais que devem ser realizadas dependendo do aplicativo, que no esto
abrangidos em nenhuma outra camada, so realizadas nelas. Podemos dizer que, no protocolo
TCP/IP, a camada de aplicao abrange as trs primeiras do modelo OSI. Depois disso, os dados
precisam iniciar o processo de comunicao com outros computadores. O primeiro passo da co-
municao propriamente dita acontece na camada de transporte. Os dados precisam ser identifi-
cados para que, posteriormente, o protocolo saiba quem solicitou o qu e possa devolv-lo ao
aplicativo certo. Isso a multiplexao, que faz com que vrios dados de aplicaes diferentes
passem a ser um fluxo uniforme e homogneo de dados atravessando o meio fsico. Somente na
camada de transporte do destino que esses dados lineares voltaro a ser divididos de acordo
com a aplicao que os aguarda. Nesta camada tambm definido se a conexo vai ser feita com
controle de congestionamento, fluxo e confiabilidade de entrega (TCP), ou se, no lugar des-
tas exigncias, ser priorizada a velocidade (UDP). Depois disso, temos a identificao de desti-
no e origem e o trabalho de roteamento dos dados. No TCP/IP, esta camada recebe o nome de
inter-redes, e nela que a geratriz dos dados reside, o IP (camada de rede). ele quem faz o
endereamento do destino e identificao do remetente do pacote. Continuando com o TCP/IP,
nesta mesma camada temos o ICMP que um protocolo de auxlio ao IP. Este protocolo ajuda
com mensagens de erro, controle de fluxo, etc. Esta camada possui os endereamentos lgicos,
mas para que os dados consigam fluir de forma correta, preciso que o IP seja convertido no seu
endereo MAC (camada de link). Depois disso, por fim, temos a camada de fsica, que nada
mais do que o meio utilizado para se propagar os sinais que representam os dados.
Sempre que um dado vai ser enviado, ele vai descendo pela pilha de protocolos at chegar
camada de link (ou enlace) que gera o sinal a ser transmitido. Durante a estada nesta camada,
aps a fase de encapsulamento, os dados recebem o nome de quadros ou frames. Este frames
so compostos por um cabealho que contm informaes sobre o computador de destino e de
origem, informaes sobre o tamanho do quadro e um checksum (CRC), que verifica se est tudo
certo (se todos os quadros chegaram).
119
Apostila Debian Intermedirio - Desktop Parana
EMPACOTAMENTO DE DADOS
Os dados, no decorrer de sua jornada (pilhas abaixo ou acima), vo sendo empacotados e
desempacotados a toda hora. Isso acontece por alguns motivos, sendo dois os principais: (a) line-
arizar os dados em um sinal binrio simples para que eles possam ser transmitidos pelos meios f-
sicos e depois retornar esses sinais nos mesmo dados iniciais; (b) e permitir que haja um isola-
mento das aplicaes em relao plataforma, permitindo que os dados sejam transmitidos inde-
pendente do sistema operacional ou da arquitetura dos dispositivos em comunicao.
O primeiro motivo claro. O meio fsico s entende cdigo binrio atravs da configurao
da tenso de cada bit. Quando se tem um zero a tenso x, quando se tem um 1 a tenso y. O
protocolo que trabalha na camada de enlace (ou link) o responsvel por criar a tabela de bits
para que o meio, da camada fsica, transmita cada um deles de uma interface a outra numa or -
dem exata. A preocupao da camada fsica essa: garantir que aquela tabela de tenses x e
tenses y seja transmitida para seu destino exatamente na ordem da tabela criada pela camada
de enlace (transerncia bruta dos dados). Como somente com cdigos binrios o meio fsico pode
saber o destino das informaes? simples. Todas as interfaces que pertencem a mesma rede
esto conectadas fisicamente (em contato atravs de fios, fibras ou ar, em caso de wireless) umas
s outras. Toda vez que um dado deve ser transmitido, o remetente envia os dados para todas as
interfaces locais, mas somente aquela que o destino que aceita o sinal. A interface de destino
sabe que ela a de destino, porque neste sinal temos os cabealhos com informaes de identifi-
cao. Vejamos os trs agrupamentos de dados que temos na pilha de protocolo TCP/IP:
120
Apostila Debian Intermedirio - Desktop Parana
segmentos, que so enviados para a camada de rede que faz processo igual a camada anterior,
criando os pacotes. Os pacotes possuem nos seus cabealhos os IPa das interfaces de origem e
IPs da interfaces de destino. Os pacotes so enviados para a camada de enlace, que tambm vai
criar seu prprio agrupamento e dar a ele o nome de quadro (ou frame). Dentro desta camada
existe o protocolo ARP, que so as regras que, entre vrias atividades, convertem um endereo IP
em endereo fsico (MAC ADDRESS) e vice-versa. MAC ADDRESS um endereo nico que to-
das as interfaces de rede possuem. Existe um instituto regulamentador de normas tcnicas que
controla a emisso destes endereos para que ele nunca se repita em nenhum lugar do mundo.
Uma empresa que fabrica estas interfaces precisa comprar uma faixa de endereos fsicos para
atribuir s suas peas20. Ento apesar dos IPs poderem ser iguais em redes diferentes, os MAC
ADDRESS nunca sero. Um computador mantm uma tabela dinmica contendo os MAC AD-
DRESS de todas as interfaces de sua rede que se comunicaram recentemente. Se a conexo ti-
ver que ser com uma interface de outra rede, o MAC ADDRESS endereado ser do roteador. En-
to o MAC ADDRESS inserido dentro do cabealho e agora sim a interface de destino saber
que aquelas informaes so destinadas a ela.
Voltando a inundao de dados enviados toda rede (conhecida como broadcast). Os fra-
mes so criados na camada de enlace. Eles so compostos do pacote IP (que para eles uma
caixa preta) e um cabealho contendo o MAC ADDRESS e marcas de onde cada frame comea e
termina. Estes limites so criados pelo protocolo LLC (Logical Link Control Layer - Camada de
controle de link lgico) residente da camada de enlace. Ele cria uma tabela com as tenses que a
camada fsica dever usar para definir os 1 e 0s, e indica o tempo certo que cada bit ter. Desta
forma, todos os dados so enviados para toda rede, todas as interfaces locais recebem os frames
e os convertem em pacotes IPs. verificado no cabealho deste IP se o endereo do destinatrio
corresponde com o prprio endereo. Se sim, os dados so enviados para cima at chegar a apli-
cao.
TCP/IP
O TCP/IP foi criado e implementado, sendo o conjunto de protocolo mais utilizado hoje em
redes de computadores. A internet utiliza-o, sendo assim, podemos perceber a dimenso de sua
adoo. Este protocolo cria uma interface de programao uniforme que permite que diversos ti-
pos de hardware, independentes de suas tecnologias, consigam transportar dados e que exista in-
teroperabilidade entre sistemas hbridos. Vejamos como ele constitudo:
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 APLICAO
A camada de aplicao fornecida pelo programa que deseja se encaixar pilha. Existem
vrios protocolos utilizados nesta camada. O navegador de internet uma aplicao, mas no po-
demos confundi-lo com a aplicao responsvel pelo encaixe na pilha, que no caso o http. Um
programa utilizado pelo usurio final pode escolher um dos protocolos (servio ou aplicativo) que
fazem parte da camada de aplicao mais adequado s suas necessidades. Navegadores, como
IE, Mozilla Firefox, Opera e Epiphany utilizam o protocolo http, https e FTP na camada de aplica-
o. Aplicativos como Nautilus, Filezilla FTP Transport e SmartFTP utilizam o protocolo FTP.
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.
SMTP (simple mail transport protocol - protocolo de transporte simples de e-mail) um con-
junto de regras e instrues que faz com que uma mensagem seja convertida em texto simples e
possibilita que seja definido, atravs de um endereo de e-mail, que esta mensagem seja identifi-
cada e enviada para um destinatrio especfico.
IMAC (internet message access protocol - protocolo de acesso a mensagem pela internet)
um protocolo mais completo de envio e recebimento de mensagens que permite que o usurio te-
nha mais recursos disponveis, como manter suas mensagens no servidor depois de receb-las.
TELNET um protocolo simples que cria uma conexo entre computadores distintos e que
possibilita a troca de informaes atravs de linha de comando. Para configurar modens e impres-
soras sem display prprio, utiliza-se este recurso.
SSH (security shell) cria uma conexo entre interfaces distintas e possibilita que remotamen-
te um cliente acesse o shell (terminal) de um servidor. Os dados so criptografados, dando mais
segurana troca de informaes.
A camada de aplicao da pilha TCP/IP abrange trs camadas do modelo OSI (aplicao,
apresentao e sesso). Assim, podemos dizer que nesta camada os dados a serem transmitidos
122
Apostila Debian Intermedirio - Desktop Parana
so inicialmente diferentes, mas nela comeam o processo de linearizao, para que as informa-
es a serem transmitidas se tornem uma srie de informaes uniformes e de padro igual para
que as prximas camadas se preocupem apenas com as suas atividades de transmisso pela
rede. Antes da converso, eles definem com quem a conexo ser realizada, estruturam os dados
num formato prprio do protocolo (compactando-os, criptografando-os, etc), e depois converte-os
numa sequncia de dados que deve ser transmitida pelo meio fsico da rede.
Imagine uma empresa, a Pilintra's Corporation, sediada no Paran, que deseja enviar enco-
mendas para suas filias pelo Brasil. A transportadora do Paran utilizada para esse fim pode ser
comparada a uma rede local. Ela tem abrangncia estadual, tendo que sempre repassar a tarefa
para outra transportadora quando muda de estado. A nova transportadora ser uma rede remota.
A empresa Pilintra's Corporation pode ser equiparada a uma aplicao, como o Firefox, por exem-
plo. Quando a empresa precisa enviar uma encomenda, esta levada at um balco de coleta da
transportadora para que ela inicie o processo de transporte. Neste balco feita a coleta da enco-
menda, registro do remetente e destinatrio e necessidades do transporte. A encomenda pode ser
compactada ou precisa ser colocada numa caixa com indicao frgil? Deve ser registrada, com
seguro ou seja o que Deus quiser? Depois da coleta ser realizada, caso seja necessrio compac-
tao, discrio, ou qualquer exigncia do cliente, os funcionrios atrs do balco iniciaro o pro-
cesso de preparao para o transporte.
CAMADA DE TRANSPORTE
Dentro desta camada temos os protocolos TCP e UDP, que definem as regras de envio de
segmentos de dados criados pela camada de aplicao. Os dados j so iguais, independente de
terem sido criptografados, compactados, serem ricos, texto puro, ou seja, no importa a estrutura
dos dados, agora tudo no passa de uma srie de dados que devem ser transmitidos de uma in-
terface outra. Esta camada responsvel por identificar quais so os aplicativos responsveis
por cada informao trafegada. Este controle feito atravs de portas ou soquetes. Se o protocolo
ssh, da camada de aplicao, estiver enviando alguma informao de uma interface outra, ele
dever criar sua estrutura, convert-la em dados lineares e enviar o resultado para a camada de
transporte que se encarregar de identific-la atravs de uma porta. Porta um espao na mem-
ria que permitem que algum dado transmitido seja enviado aplicao certa. Quando o segmento
de dados criado (TCP ou UDP) adicionado ao cabealho o endereo da porta de destino, ou
espao na memria do computador remoto que os dados devero ser armazenados. Desta forma,
123
Apostila Debian Intermedirio - Desktop Parana
uma aplicao sabe exatamente quais dados devem ser interpretados por ela. Vejamos um exem-
plo. A porta padro do ssh 22, ou seja, o espao na memria que possui o endereo da porta 22
associado ao aplicativo ssh. Sempre que alguma informao chegar pela rede e possuir a porta
22 como destino, os dados sero enviados a este espao e, automaticamente, sero enviados
para o aplicativo ssh que conseguir converter aquela caixa preta em dados vlidos e teis.
TCP
O TCP (transport control protocol) responsvel, assim como o UDP, pela criao do seg-
mento de informaes a ser enviado interface distinta e o controle de identificao dos dados
que os segmentos representam.
Controle de fluxo: caso o ACK seja recebido pelo remetente, nesta mensagem o destina-
trio registra a informao que permite que o remetente saiba como est o buffer de armazena-
mento da pilha TCP/IP, permitindo que o remetente envie o prximo segmento ou atrase um pou-
co a remessa. Isto faz com que os dados trafeguem pela rede somente se houver a quase certeza
de que eles sero recebidos, diminuindo o trfego de quadros no meio fsico.
Multiplexao: associa cada segmento a uma porta, permitindo, assim, que a interface de
destino saiba qual processo deve receber determinado segmento. Este recurso permite que vrios
dados de aplicativos distintos trafeguem como se tivessem a mesma origem, independente do
hardware abaixo e software acima estejam sendo utilizados.
UDP
O UDP (user datagram protocol - protocolo de datagramas de usurios) basicamente a in-
terface entre a camada de aplicao e o protocolo IP. Ele no tem controle nenhum, e a nica coi-
sa que faz a multiplexao, associando os dados a algum aplicativo determinado. Por ser bas-
124
Apostila Debian Intermedirio - Desktop Parana
tante simples, ele bem mais rpido que o protocolo TCP, porm no prov garantia nenhuma de
que os segmentos iro chegar ao seu destino. Recursos como vdeos expressos da internet, como
aqueles vistos no youtube, em grande parte utilizam este protocolo de conexo. Escolha essa, de-
vido ao fato de o qu importar nesse tipo de tarefa a velocidade, tendo as informaes perdidas
substitudas por pixels pretos, que diminuem a qualidade das imagens, mas melhora muito a velo-
cidade de download.
Portas e soquetes
As portas e soquetes so espaos reservados na memria principal que ao receberem infor-
maes realizam alguma sincronia com um servio (recebendo dados) ou com a camada de tras-
porte (enviando dados). Toda vez que um servio precisa enviar algo a um computador remoto,
ele envia uma requisio de conexo e espera para verificar se isso ser possvel. Digamos que
um computador A precisar se conectar por ssh a um computador remoto B. O servio ssh deve
estar instalado nas duas mquinas e rodando (ser um processo). Os dois processos ficam vincula-
dos porta 22. O servidor (computador B) fica escutando a porta 22, ou seja, verificando se
aquele espao especfico da memria recebe alguma informao. Quando o cliente (que chama-
remos de computador A) precisa se conectar ao servidor, ele envia a requisio sua porta 22.
Esta requisio possui, tambm, o nmero de uma porta no cliente que estar disponvel para se
estabelecer uma conexo (por exemplo, a porta 55555). Esta requisio desce a pilha de protoco-
los TCP/IP, transmitida pelo meio fsico e ento chega porta 22 do computador B (o servidor).
O processo ssh que estava escutando esta porta, converte os dados em informao inteligvel a
ele e, se verificar que possvel a realizao da conexo, envia uma mensagem ao cliente infor-
mando que a conexo poder ser realizada e estabelece um soquete, que nada mais que o es-
tabelecimento da porta 22 do servidor com a porta disponibilizada no cliente (no nosso casso
555555) como forma de comunicao entre os computadores. Agora o ssh do servidor continua
escutando a porta 22 por novas conexes e por requisies quaisquer, e sabe que sempre que re-
quisies vindas do computador A devem ser enviadas porta 55555 do mesmo. Quando a cone-
xo finalizar, o soquete (conexo especfica) ser desfeito e a porta 55555 do computador A volta-
r a estar disponvel.
P erceba bem que porta um espao da memria que pode ser utilizado por um ser-
vio, enquanto soquete um vnculo (conexo estabelecida) entre interfaces dife-
rentes que utiliza portas para comunicar-se uma com a outra. Uma porta no depende
de um soquete, j um soquete depende de portas.
125
Apostila Debian Intermedirio - Desktop Parana
CAMADA INTER-REDES
Cinco computadores conectados a um hub formam uma rede com topologia de barramento.
Esta topologia mantm em contato fsico todos os computadores. O hub nada mais do que um
super T que conecta todos os computadores. Quando um deles quer enviar alguma informao
para outro, todos os outros iro receber os pacotes, mas somente aquele que o destinatrio
quem ir desempacot-lo por completo. Para saber qual o endereo do destinatrio, necess-
rio saber o seu IP. O IP convertido em MAC pela camada mais abaixo e somente aquele destino
que possua o endereo de MAC definido no pacote quem ir aceit-lo. Em vez de trabalharmos
com o endereo de MAC, trabalhamos com o IP, que tratado e inserido no pacote na camada In-
ter-Redes. A partir desta camada, a plataforma e hardware de comunicao podem ser qualquer
que tenha suporte ao protocolo TCP/IP. Isso quer dizer que esta camada responsvel por criar
uma barreira entre aplicaes-plataforma e arquitetura dos aparelhos de comunicao. Assim, fa-
cilmente podemos ter comunicao entre um computador Windows e Linux, e tambm entre com-
putadores conectados ao hub por um cabo ou por um dispositivo wireless.
126
Apostila Debian Intermedirio - Desktop Parana
enviada para esse roteador que enviar os dados para o computador da segunda rede. Se conec-
tarmos a esse roteador um cabo da internet, que normalmente provido por um provedor de inter-
net, podemos acessar em ambas redes a internet.
Os roteadores possuem tabelas de roteamento, para saberem o que fazer caso a conexo a
um determinado computador seja solicitada. Normalmente os roteadores de provedores possuem
bastante informaes e conseguem definir um trajeto bastante reto at o destino, mesmo que o
computador esteja em outro continente. Quem cuida de todo o roteamento de pacotes a camada
inter-redes da pilha TCP/IP. Ele verifica qual o IP de destino e, atravs de regras especficas, in-
dica qual o caminho a ser tomado: uma interface conectada diretamente a ele ou um prximo ro-
teador que estar conectado a uma nova rede.
Criar uma rede nica estendida a partir de vrias outras, atravs dos roteadores.
IP
O IP um dos protocolos da camada de rede que implementa o endereamento de um host
na rede que possua uma interface capaz de enviar e receber datagramas IP. Sob a verso 4, ele
composto de 32 bits, sendo 8 para cada octeto. Um octeto pode assumir um valor de 0 a 255, to-
talizando 256 possibilidades por octeto. Veja o exemplo abaixo:
100.15.1.213Para sabermos qual a rede lgica a qual este IP pertence devemos confron-
t-lo mascara de rede. Existem as seguintes classes de rede:
ICMP
Internet Control Message Protocol - Protocolo de Controle de Mensagem na Internet
Como o prprio nome diz, ele um protocolo que define vrias mensagens de controle mui-
127
Apostila Debian Intermedirio - Desktop Parana
to teis dentro do protocolo TCP/IP. Quando pingamos um computador, ou seja, quando enviamos
uma pergunta a um host remoto para verificar se ele est disponvel na rede, o protocolo ICMP
quem responde dizendo Opa, t funcionandinho aqui!. Existem alguns tipos de pacotes deste
protocolo de controle, vejamos os principais:
ARP
Address Resolution Protocol - Protocolo de Resoluo de Endereos
128
Apostila Debian Intermedirio - Desktop Parana
rir o endereo fsico de computadores da rede; como devem se comportar quando souberem que
outro computador esto os procurando; e criam uma tabela (cache) com associaes entre IPs e
MAC Address para serem utilizados no futuro, otimizando o processo.
A pesquisa de um endereo fsico feita da seguinte forma: o computador que deseja des-
cobrir qual o endereo fsico de um determinado IP, ir fazer um broadcast com pacotes ARP.
Estes pacotes ARP sero ignorados por todos, exceto por aquele computador que utiliza o IP pes-
quisado. Este ir, ento, enviar um pacote ARP para o requisitante com algumas informaes a
seu respeito, entre elas o seu endereo fsico. Ento sempre teremos dois pacotes ARP, sendo
um de pesquisa e o outro de resposta enviado pelo computador que est sendo procurado. Tanto
o computador que procura, quanto o que foi encontrado, mantm em cache a associao do IP
com o MAC Address do outro, para que no caso de uma nova conexo, o processo seja realizado
de uma forma mais rpida.
CAMADA DE ENLACE
Esta camada responsvel em transportar os pacotes da camada inter-redes em quadros
pelo meio fsico. Um quadro a unidade da camada de enlace. Todos os pacotes so divididos e,
129
Apostila Debian Intermedirio - Desktop Parana
ento, so anexados a eles um novo cabealho. Este cabealho contm bits que indicam o incio
de um quadro e o fim. Normalmente existe um logartmo (no sei o que isso, mas acho que est
errado) inserido no quadro que permite que a camada de enlace do destinatrio saiba qual o ta-
manho do quadro, mas isso depende da tecnologia utilizada pelos equipamentos e meios fsicos.
Ethernet
Ethernet o protocolo utilizado pela maioria das redes de computadores existentes na atua-
lidade, mas j est sendo trocada pelas tecnologias utilizadas pelas redes wireless. Todas as in-
terfaces esto em contato e todos os quadros so enviados para todos, cabendo a cada uma de-
las verificar se so as responsveis por ele. Este protocolo tem como unidade de transporte o fra-
me, ou quadro. Um quadro composto por vrios compartimentos que possuem naturezas distin-
tas. So eles:
Prembulo;
End de Destino;
End de Origem;
Tipo;
Dados;
FCS.
O prembulo composto por 8 bytes. Quer saber quais so as informaes contidas dentro
deste compartimento? No? Ento no leia abaixo:
Este compartimento indica que um quadro ir comear. Quando uma interface recebe essas
informaes, a camada de enlace dela interpretar esses dados como o incio de um quadro. De-
pois da assinatura 11 inicia-se o segundo compartimento.
Vamos verificar tudo que foi visto at agora. Estamos no Paran e o nome da nossa empre-
sa Pilintra's Corporation (aplicao). A filial do Rio de Janeiro liga para ns pedindo uma enco-
menda e indica que ela pode ser enviada ao porto 50000, da transportadora do rio, que foi aluga-
do exclusivamente para recebimento da encomenda. Ns temos um porto exclusivo na transpor-
tadora local para enviar encomendas, que o 10. Este porto est sob a superviso de um fiscal,
130
Apostila Debian Intermedirio - Desktop Parana
que verifica se as encomendas foram enviadas e espera uma confirmao de recebimento vinda
de qualquer um dos destinos. Fecha-se a um soquete, que a associao do porto com confir-
mao 10 da transportadora local (porta TCP) com o porto 50000 da transportadora remota. As
transportadoras local e remota so as redes distintas que trabalham sobre as mesmas regras e
metodologia de entrega, ou seja, mesmo protocolo (TCP/IP). Vamos at o tal balco de recepo
(camada de aplicao) e deixamos nossa encomenda indicando qual ser o destino (a filial da
Pilintra's Corporation no Rio no porto 50000). A encomenda vai para o porto 10 e, de l, aco-
modada dentro do caminho. O motorista recebe o endereo de destino da encomenda, e perce-
be que est fora de sua abrangncia. Ele possui uma tabela de empresas conveniadas que pode-
r entregar a encomenda (tabela de roteamento), e descobre que ter que enviar para uma
transportadora de So Paulo. Para encaminhamento da encomenda, eles precisam de um posto
de troca (gateway) entre as duas transportadoras (duas redes distintas), que fica bem na divisa
dos estados. Atravs do caminho (quadro) e das rodovias (meio fsico), a encomenda chega
at o posto, local onde feito o encaminhamento da encomenda e do endereo de destino. O
mesmo acontece entre SP e RJ. Quando a transportadora do RJ recebe a encomenda, descobre
que a entrega est dentro de sua abrangncia. Leva o caminho at o porto 50000 e descarrega
a encomenda. O fiscal do RJ liga para o fiscal do PR e fala: Chegou, velho! - E encaminha para o
balco de entrega com identificao do destinatrio. O funcionrio da Pilintra's Corporation vai at
o balco e pega a encomenda. A transmisso foi realizada com sucesso.
PARMETROS NECESSRIOS
Para que um host possa pertencer a uma rede, necessrio que ele possua um caminho f-
sico que o ligue rede e alguns parmetros configurados que fazem com que ele identifique ou-
tras interfaces conectadas a esse meio fsico e vice-versa. Todos os parmetros devem possuir
um valor, porm todos tm um valor padro, tendo que, caso seja a vontade do administrador, va-
lores diferentes serem definidos atravs de arquivos de configurao, scripts ou comandos.
IP
O IP a identificao lgica de uma interface. a sua identidade em uma rede. Podemos
obt-lo atravs de um sevidor DHCP ou ento fixando-o um endero no arquivo
Independente da forma escolhida, o arquivo acima deve ser configurado, j que a ativao
da procura de parmetros atravs de um servidor DHCP feita nele. Outra forma de se configurar
este parmetro atravs do comando ifconfig, porm ele funcionar apenas enquanto o servio
networking no for reiniciado.
131
Apostila Debian Intermedirio - Desktop Parana
Rede
A rede que o seu host faz parte pode ser definida atravs do comando interfaces, e a for-
ma mais indicada.
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.
Tambm possvel inserir uma rota temporria utilizando o comando route (veremos na p-
gina 142).
Nomes
Computadores trabalham com bits (zeros e uns); a interface de programas criados para con-
figurao da rede trabalham com nmeros; e usurios e administradores, em suas atividades roti-
neiras, trabalham com nomes. Para se trabalhar com nomes, so necessrios servios que faam
a converso de um formato em outro. Antigamente, todos os computadores conectados internet
tinham um arquivo como o hosts, este abaixo:
Neste arquivo existiam todos os nomes utilizados pelas pessoas associados a um endereo
IP. Toda vez que um nome era digitado automaticamente um gerenciador de nomes recebia o
nome e transformava em um IP. A converso de IP para bits era feita pelos protocolos de rede.
Toda vez que algum criava um novo local na rede, enviava o IP e dados adicionais desse local
para um grupo de pessoas que ficavam responsveis por criar um hosts completo e enviar para
todos que estiverem cadastrados em uma lista de e-mails. No comeo funcionava bem, mas com
o tempo uma fila de solicitao de incluso de nomes comeou a crescer muito, e as atualizaes
132
Apostila Debian Intermedirio - Desktop Parana
deste arquivo muito frequente. Para evitar os problemas causados pelo inchao da internet foi cri-
ado o DNS (Domain Name Server - Servidor de nomes de domnio). Este servio substituiu o ar-
quivo local de nomes, servindo como um servidor de converso de nomes. Toda vez que um
nome deve ser convertido em um IP, o DNS consultado e ele retorna o endereo.
Mesmo com os complexos servios de converso de nomes existentes hoje, o arquivo hosts
permanece na maioria dos sistemas Unix-Like.
Dentro deste arquivo possvel associar nomes a IPs sem a necessidade de se consultar
um DNS. Dentro deles temos, por padro, o nome localhost. Este nome significa Terminal Local,
ou seja, o computador em que o usurio est. Ele muito til em vrias tarefas, como testar a in -
terface de rede do seu computador. Para isso o usurio pode pingar para localhost em vez do seu
prprio IP ($ ping localhost), ou ento configurar o CUPS pelo navegador, digita na caixa de ende-
reo http://localhost:631.
127.0.0.1localhostsafadim
127.0.1.1ecelepar11940.celeparslecelepar11940
Observaes importantes
Todas os campos DEVEM ser separados por espaos (pode ser um, vrios ou TABs);
Alm destes nomes, necessrio configurar um servidor DNS para que os endereos da in-
ternet possam ser convertidos. O simples www.google.com.br no poder ser acessado se o re-
solv.conf no estiver configurado com um servidor DNS vlido.
nameserver10.15.16.610.15.16.8
133
Apostila Debian Intermedirio - Desktop Parana
PRIMEIROS SOCORROS
Antes de qualquer coisa, pensemos o que necessrio fazer para tentar identificar os princi-
pais problemas em uma rede de computadores:
possvel pingar para endereos locais e externos? (pingar significa jogar um pacote
para um computador e ver se ele manda-o de volta. Se ele mandar, que est respondendo, es-
tando acessvel. Tentar vrios tipos de hosts interessante para saber se o problema no rotea-
mento de dados. Pode-se ter comunicao na rede, mas quando tentado sair da rede pelo rotea-
dor, algo pode acontecer de errado. Para verificar se as interfaces esto funcionando corretamen-
te e se a conexo com o host pode ser estabelecida, utiliza-se o comando ping pgina 134);
Outros servios conseguem se conectar rede? (o navegador pode estar com problema,
mas o ssh consegue se conectar? possvel acessar um local da rede por ftp? As vezes o proble-
ma uma configurao de uma aplicao, e no de configurao do sistema);
Este um bom exemplo de como se comportar diante de um problema de rede. Agora que
j abordamos vrios conceitos necessrios para um bom administrador de redes, vamos verificar
o funcionamento de alguns comandos que devem fazer parte do seu canivete suo.
PING
O ping o comando mais simples e til que voc pode imaginar. Ele simplesmente pergunta
a uma interface remota se ela est acessvel. quase igual a quando voc est num hospital e
aperta o boto da enfermeira sem necessidade nenhuma, s para ver ela entrando desesperada
134
Apostila Debian Intermedirio - Desktop Parana
no seu quarto e ter a segurana de que ela est acessvel e atenta s suas requisies (com a
grande vantagem que as repostas ao comando ping no desacreditam e param de responder na
quinta chamada).
O comando ping utiliza o protocolo ICMP como colaborador principal. Como j vimos, o
ICMP est na camada de rede, junto ao protocolo IP, e auxilia-o em vrias atividades. Como este
protocolo est na camada 3 do protocolo TCP/IP, o ping no realiza troca de dados de aplicativos,
e sim envia um pacote de teste que possui um cabealho com o IP, atributos ICMP e marcas de
tempo para fazer seus clculos posteriormente. Todo o resto do pacote um monte de informa-
es binrias que servem s para preencher a estrutura do frame. O cabealho do IP possui 20
bytes, contendo informaes sobre os IPs da origem e destino das solicitaes. A parte especfica
do ICMP possui 8 bytes. O padro de um pacote com cabealho de 8 bytes mais 56 bytes adici-
onais, com informaes adicionais e bits aleatrios. Se houver resposta, ele verifica o tempo de
resposta e mostra ao usurio.
PING<host>(IP_do_HOST)tam1(tam2)bytesofdata.
Tam3bytesfrom<host>(IP_do_HOST):icmp_seq=nttl=ntime=n.nnnms
Os ns so as principais informaes que o comando ping nos trazem. Eles ficam dentro do
cabealho ICMP e so chamados de TTL (Time To Live - Tempo de Vida) e TIME (tempo). Toda
vez que um pacote enviado, ele pode ser considerado perdido e aparece uma mensagem de
erro. Existem vrios motivos para que um pacote se perca, sendo um deles ser excedido o nme-
ro mximo de hops, ou seja, o nmero mximo de roteadores para chegar ao seu destino. O n-
mero padro de no mximo 61 hopes para chegar ao destino. J no caso de haver uma respos-
ta, ser verificado atravs do cabealho ICMP o tempo de sada e de chegada, e calculado o tem-
po que o pacote levou para ir e voltar do destinatrio. Esta informao mostrada em TIME.
icmp_seq traz uma informao muito valiosa para o administrador: o nmero de sequncia
do pacote que est sendo enviado. Se 10 pacotes forem enviados e apenas o 1, 4 e 10 chegarem,
isso quer dizer que muitos problemas esto acontecendo no caminho, ocasionados provavelmente
por algum dos roteadores. Se isto acontecer, interessante usar o comando traceroute para veri-
ficar onde esto os problemas.
A s informaes de hora e data de sada e chegada dos pacotes ficam num campo
(quadro) chamado timeval, que fica fora dos cabealhos. Assim, se o usurio definir
135
Apostila Debian Intermedirio - Desktop Parana
~$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
~$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!)
Mensagem Significado
Network unreacheable Rede de destino intangvel, ou seja, o pacote atingiu o mximo de
pulos de roteadores e no conseguiu encontrar a rede desejada.
Host unreacheable Igual ao anterior, mas em vez de rede, no foi possvel atingir um
host.
Protocol unreacheable O protocolo utilizado pelo cliente est desativado no host remoto.
Port unreacheable A porta pela qual o cliente tenta se comunicar com o host remoto
no possui nenhum servio associado.
Destination network A rede a qual o cliente est tentando se conectar no
unknown reconhecida. Isso quer dizer que no existe na tabela de
roteamento uma sada que o leve rede desejada.
Destination network Igual mensagem anterior, porm o que no se conhece e no
unknown se existe caminho indicado um host.
136
Apostila Debian Intermedirio - Desktop Parana
WGET
Para realizar downloads de arquivos da internet no necessrio se ter uma interface grfi-
ca, apenas o endereo do qu se quer baixar. O wget faz download de arquivos, pacotes e pgi-
nas completas de uma forma no interativa. Objetividade o lema do wget. Coloque o endereo
exato do que vai ser feito download, d um <Enter> e espere a barra chegar a 100%, isto o que
o wget tem a lhe dizer. Outra vantagem da utilizao do wget que ele no interativo, j que no
requer que o usurio que iniciou o processo fique cuidando do descarregamento, podendo at
mesmo se fazer logoff do sistema sem danos ao download. Logicamente que ele deve ser roda-
do em segundo plano atravs do parmetro -b, ou com o e comercial (&) ou manipulando-o
com o comando bg. O wget tambm recomea quantas vezes forem necessrias o download
caso ocorra algum problema (desde que o servidor tenha este recurso). Tudo isto automaticamen-
te.
4.Gerenciamento de download (permite que se reinicie o download quantas vezes for de-
sejado).
Voc poder trabalhar com os seguintes protocolos: http, https e ftp. Isso quer dizer que os
endereos devem comear com algum desses termos para que o wget saiba quais sero as re-
gras utilizadas durante a transferncia.
$wgethttp://www.celepar.pr.gov.br
2009030416:05:54http://www.celepar.pr.gov.br/
Resolvendowww.celepar.pr.gov.br...200.189.113.212
Aconectarwww.celepar.pr.gov.br|200.189.113.212|:80...conectado!
HTTPrequisioenviada,aguardandoresposta...200OK
Tamanho:naoespecificado[text/html]
Agravarem:'index.html.7'
[ <=>
137
Apostila Debian Intermedirio - Desktop Parana
]33.246.K/sem0,07s
2009030416:05:54(457KB/s)'index.html.7'gravado[33246]
C aso seja necessrio passar por um proxy para chegar internet, necessrio confi-
gur-lo no arquivo /etc/profile.
IFCONFIG
Este comando j foi visto no mdulo bsico deste curso, porm de forma superficial. Ele
mostra ao administrador as informaes acerca de uma (ou todas) interface de rede. possvel,
tambm, mudar alguns parmetros da rede atravs dele, mas estas alteraes sero vlidas so-
mente enquanto o computador permanecer ligado ou enquanto algum daemon de rede no atuali-
zar os parmetros de acordo com os seus respectivos arquivos de configurao. Ou seja, as confi-
guraes sempre so temporrias.
O comando pode ser usado sem nenhuma informao adicional. Feito isso, o resultado ser
todas as interfaces de rede ativas no sistema. Se o administrador desejar verificar todas as interfa-
ces, inclusive as ocultas, dever executar o comando com o parmetro -a (de ALL - TODOS em
ingls).
$sudoifconfig
eth0Linkencap:EthernetEndereodeHW00:22:15:9e:c1:10
inet end.: 10.15.17.26 Bcast:10.15.19.255
Masc:255.255.252.0
endereoinet6:fe80::222:15ff:fe9e:c110/64Escopo:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Mtrica:1
RXpackets:6899938errors:0dropped:0overruns:0frame:0
TXpackets:517361errors:0dropped:0overruns:0carrier:0
colises:0txqueuelen:1000
RXbytes:2916776889(2.7GiB) TXbytes:158556252(151.2
MiB)
IRQ:216EndereodeE/S:0xc000
138
Apostila Debian Intermedirio - Desktop Parana
21 IRQ um sinal que indica a necessidade de determinado dispositivo de utilizar o processador. Cada endereo IRQ
um endereo fixo na memria. Quando um dispositivo precisa enviar dados para serem processados, ele envia um
sinal ao espao fixo associado a ele, fazendo com que o processador saiba que dever receber dados dele e process-
los. Como os IRQ tm prioridades altas, o processador deve interromper tudo para processar os dados.
139
Apostila Debian Intermedirio - Desktop Parana
Existem alguns flags que trabalham com o ifconfig e o permitem realizar configuraes tem-
porrias no seu computador.
A pesar de serem configuraes temporrias, possvel definir o ifconfig para ser ro-
dado no boot do computador.
up
Faz com que a interface de rede torne-se acessvel camada inter-rede. Sem isto, o proto-
colo TCP/IP no sabe de sua existncia.
Sempre devemos indicar qual interface deve ser ativada em relao camada inter-rede (e
automaticamente ao sistema) e depois indicar o flag up.
#ifconfigeth0up
#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
down
Far o inverso que o flag up faz. Desativa a interface, ou seja, torna a interface inacessvel
pela camada inter-rede. Fazendo isso, todas as entradas na tabela de roteamento que referencia-
140
Apostila Debian Intermedirio - Desktop Parana
P ara enxergar todas as interfaces que no esto ativas, necessrio utilizar o par-
metro -a.
IFUP E IFDOWN
Tem diferena destes comandos com o ifconfig? Sim! Estes comandos usam o ifconfig e os
scripts que ficam dentro de diretrios prprios deles.
IFUP: Executa o IFCONFIG <Interface> UP e todos os scripts que ficam dentro do diretrio
/etc/network/if-up.d.
IFDOWN: Executa o IFCONFIG <Interface> DOWN e todos os scripts que ficam dentro do
diretrio /etc/network/if-down.d.
Toda vez que o ifup executado ou uma interface a qual deseja-se ativar deve ser especifi-
cada, ou ento o parmetro -a (de auto) deve ser definido. O parmetro -a ir ativar TODAS as
interfaces que estiverem setadas com AUTO. O mesmo pode ser feito com o idown, com a dife-
rena que todas as interfaces sero derrubadas, independente de estarem ou no setadas como
auto.
ifaceeth0:LOUCOinetstatic
address10.0.0.10
netmask255.0.0.0
#invokerc.dnetworkingrestart
#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
#ifdowna
autoeth0:LOUCO
ifaceeth0:LOUCOinetstatic
address10.0.0.10
netmask255.0.0.0
P ara criar o alias necessrio se utilizar uma interface existente. No meu caso usei a
interface eth0 e criei um alias chamando-a de eth0:LOUCO, podendo ser qualquer
nome aps os dois pontos. Outro detalhe que deve ser observado quanto a diretiva do
eth0. Ele no pode estar setado como allow-hotplug. Se estiver, troque por auto eth0.
Verifique com ifconfig se existem alguma interface ativa. Ver que no existe nenhuma. Ago-
ra execute o comando abaixo:
#ifupa
Todas as interfaces estaro ativas, inclusive o alias eth0:LOUCO (sempre verifique com o if-
config). Agora volte ao arquivo /etc/network/interfaces e comente a linha do alias que contm auto
eth0:LOUCO. Agora execute os dois comandos abaixo:
#ifdowna
#ifupa
#ifconfig
Voc ver que somente a placa eth0 est ativa, isso porque o alias est sem a opo auto.
Para ativ-la ser necessrio especificar a interface utilizando # ifup eth0:LOUCO.
ROUTE
O comando route manipula ou simplesmente mostra as informaes contidas na tabela de
roteamento do kernel de seu computador. A tabela de roteamento indica os caminhos possveis
que cada pacote a ser enviado dever seguir para chegar interface remota. um mapa que pos-
sui regras de navegao pela rede. o GPS dos pacotes. Cada interface tem sua prpria tabela
de roteamento. Se existirem duas interfaces em um mesmo computador, ambos podem estar co-
nectados a redes diferentes e servirem de roteadores de pacotes entre elas. Vejamos a cara de
uma tabela de roteamento:
$routen
TabeladeRoteamentoIPdoKernel
142
Apostila Debian Intermedirio - Desktop Parana
No caso acima, temos 4 regras e elas so atendidas pela prioridade. Quanto mais acima
mais prioritria.
1.A primeira linha define que todos os pacotes que tenham como destino o computador es-
pecfico 10.15.17.22 devero ser enviados ao roteador 10.15.16.1 atravs da interface eth0;
2.A segunda linha define que todos os pacotes que tenham como destino a rede 10.15.15.0
com mscara 255.255.252.0 devem ser enviados por broadcast para todas as interfaces que te-
nham conexo fsica direta com a interface eth0;
3.A terceira linha define que todos os pacotes que so enviados para a rede 192.168.0.0
com mscara 255.255.0.0 devem ser enviados por broadcast para todas as interfaces que tenham
conexo fsica direta com a interface eth1;
4.Caso nenhuma das regras anteriores forem atendidas, a a regra padro, indicada por
0.0.0.0 no destino (como se fosse um coringa que indica Qualquer endereo), atendida. Na
quarta linha, qualquer pacote destinado a endereos que no se encaixem nas regras anteriores
devem ser enviados ao roteador 10.15.16.1.
Em opes podemos verificar algumas letras. O U indica que a regra est UP, ou seja, ATI-
VA; o G indica que o destino um roteador e no um broadcast s escuras; e o H indica que o
destino um HOST, ou seja, a regra se aplicar a um computador especfico, e no a uma rede
inteira (indicao existente para diferenciar da opo mais comum, que como destino a rede).
1 Cache de roteamento;
2 Tabela de roteamento do kernel, tendo as primeira linhas prioridade em relao s anteri-
ores.
143
Apostila Debian Intermedirio - Desktop Parana
de zero.
Ref Tambm obsoleto, este campo mostra o nmero de interfaces que referenciam
um destino. Isto era interessante para saber se um destino que estivesse a
alguns hopes de distncia possua alguma interface (caminho alternativo)
apontando para ele.
Uso Ao utilizar o parmetro -C com o route, possvel visualizar o CACHE de
roteamento. Todos os caminhos realizados so armazenados l at o
reiniciamento do computador. Se um mesmo destino for definido por algum
servio de rede, o gerenciador de roteamento verificar que a entrada j existe
no cache, permitindo que ele seja encontrado da forma mais eficaz. Neste
campo verificamos quantas vezes cada uma das entradas do cache so
utilizadas.
Iface (Interface) Indica a qual interface a regra se aplica.
Agora vamos verificar como configurar a tabela de roteamento. Cabe observar que o traba-
lho de roteamento feito por softwares especficos dos roteadores, por isso, iremos configurar
apenas duas opes: pacotes destinados a computadores da rede local e computadores de redes
remotas.
Sintaxe
Voc sempre precisar digitar o nome do comando
1 route
S empre que o alvo -net for usado, devemos utilizar o complemento netmask. Se for
utilizado o alvo -host esta informao no deve ser passada.
Aps isso, tem-se que configurar para quem dever ser enviado o pacote caso o campo
144
Apostila Debian Intermedirio - Desktop Parana
4a gw (gateway - roteador)
Ex: gw 10.15.15.1 (define que os pacotes devem ser enviados para o roteador
10.15.15.1)
4b NADA (no define roteador)
Agora, se assim desejar, podem ser inseridos parmetros e a interface a qual ter a regra
definida.
E sta opo obrigatria para definir uma regra para a rede local. Isso assim porque
se existirem mais de uma interface de rede, ser necessrio indicar qual delas est
conectada fisicamente rede.
Principais parmetros:
Parmetro Descrio
-C (cache) Mostra o cache de roteamentos j realizados desde que o computador foi
ligado.
-n No mostra nomes dos destinos ou roteadores. Dependendo do seu
DNS, esta opo torna mais rpida a consulta.
Exemplos
Ento vamos para nossos exemplos. Vamos comear com uma tabela completamente zera-
da:
#routen
TabeladeRoteamentoIPdoKernel
DestinoRoteadorMscaraGen.OpesMtricaRef
UsoIface
Nada. Agora iremos criar uma regra dizendo que sempre que um pacote que for destinado a
rede local 10.1.1.0 seja enviado por broadcast para todos os computadores conectados a menos
de um salto de distncia. Usaremos os seguintes nmeros vistos anteriormente:
1=porserconfiguraoderotadepacotes;
2a=porsereventodeadioderota;
3b=portercomodestinoumarede(aredelocal);
4b=porquenoiremosdefinirumroteador;
145
Apostila Debian Intermedirio - Desktop Parana
5=porqueobrigatrionaconfiguraodepacotesdestinadosredelocal.
#routeaddnet10.1.1.0netmask255.255.255.0deveth0
#routen
TabeladeRoteamentoIPdoKernel
Destino Roteador MscaraGen. OpesMtricaRef Uso
Iface
10.1.1.0 0.0.0.0 255.255.255.0U 0 0 0
eth0
Agora j conseguiremos pingar, por exemplo, para qualquer computador da rede. Para pin-
gar uma pgina da internet, precisaremos de um roteador que nos conecte a ela. No meu caso, o
roteador que me conecta ao mundo o 10.1.1.1. Vejamos como configurar um roteador para qual-
quer computador de uma rede externa.
1=porserconfiguraoderotadepacotes;
2a=porsereventodeadioderota;
3c=porsetratardeumaredeespecficaconfiguradano/etc/networks;
4a=porqueumroteadorserdefinidoparatentarencontrararededesejada;
5=regrasseroaplicadasprimeirainterfaceativadapelosistema.
#routeadddefaultgw10.1.1.1
#routen
TabeladeRoteamentoIPdoKernel
Destino Roteador MscaraGen. OpesMtricaRef Uso
Iface
10.0.0.0 0.0.0.0 255.255.255.0U 0 0 0
eth0
0.0.0.0 10.1.1.0 0.0.0.0 UG 0 0 0
eth0
#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.
No topo da tela temos as taxas de transferncia, que variam de 0kbps (quilo bytes por se-
gundo) a 977kbps. As interaes que estiverem com maior taxa de trfego ficaro mais acima na
lista. A tela ser atualizada a cada 2 segundos com novas informaes de conexes e taxas de
transferncias.
Abaixo da escala de taxas de transferncia temos seis colunas com campos diferentes. Ve-
jamos cada uma deles:
Primeira coluna
Endereo da primeira interface do par da conexo.
P ode ser mostrado como nome, IP e pode ser habilitada a opo de mostrar a qual
porta UDP ou servio o pacote pertence (isto feito atravs do parmetro -p).
22 Primeiro plano.
147
Apostila Debian Intermedirio - Desktop Parana
Segunda coluna
Indicao do sentido da comunicao entre o par de interfaces. Se o sentido for da interface
da esquerda para a interface da direta, a indicao ser =>. O contrrio ser <=. Sempre teremos
as duas vias da comunicao. Na primeira linha de cada interface temos a taxa de transferncia
dela para o destino, e na linha seguinte a taxa de transferncia do destino para a origem.
Terceira coluna
Endereo da outra interface que est ou recebendo ou enviando algum pacote. Fecha o par
da linha.
Na parte inferior da tela existe um resumo das atividades de rede da interface que est sen-
do analisada. Existem disponveis para consulta as seguintes informaes:
TX Informa a quantidade de dados que foram enviados pela interface que est sendo
analisada.
cumm Total de dados enviados desde o incio da execuo do IFTOP.
peak Pico: Maior taxa de transferncia de dados enviados nos ltimos 40
segundos.
rates Taxas: Mostra a taxa de transferncia total dos pacotes enviados da
interface nos ltimos 2, 10 e 40 segundos.
RX Informa a quantidade de dados que foram enviados pela interface que est sendo
analisada.
cumm Total de dados recebidos desde o incio da execuo do IFTOP.
peak Pico: Maior taxa de transferncia de dados recebidos nos ltimos 40
segundos.
rates Taxas: Mostra a taxa de transferncia total dos pacotes recebidos da
interface nos ltimos 2, 10 e 40 segundos.
TOTAL Mostra o total de cada coluna mostrada anteriormente.
cumm Total de dados transmitidos (recebidos e enviados) pela interface.
peak Pico: Soma das maiores taxas de transferncia dos dados enviados e
recebidos.
rates Taxa: Mostra a taxa de transferncia total dos pacotes recebidos e
enviados da interface nos ltimos 2, 10 e 40 segundos.
Alguns parmetros interessantes que podem ser usados durante a execuo do comando:
148
Apostila Debian Intermedirio - Desktop Parana
Parmetro Descrio
H (mais.) H de Help - Ajuda: ir informar-lhe quais so os principais parmetros do iftop.
P (mais.) P de Paralisar: paralisa a tela no momento de sua ativao. Para desparalisar,
deve-se clicar novamente sobre as teclas <SHIFT><P>.
o (mins.) o de Ordem: este parmetro congela a ordem das interfaces, mas no para a
atualizao do monitoramento. O que est na primeira linha continuar na
primeira linha e com atualizaes normais das taxas de velocidade de
transmisso; a segunda linha ficar sempre na segunda linha e assim por
diante.
p (mins.) p de Porta: paralisa
SeD Habilita a opo de visualizao de portas ou servios que so responsveis
(maus.) pelos pacotes.
S de Source (origem): habilita a visualizao da porta que est sendo
utilizada pela interface de origem.
D de Destino: habilita a visualizao da porta que est sendo utilizada pela
interface de destino.
t t de Tipo: altera o tipo de visualizao. Existem quatro. Para alternar basta
pressionar seguidamente a mesma tecla.
1: mostra a taxa de transferncia do par de interface em duas vias;
2: mostra a taxa de transferncia do par de interface em uma linha;
3: mostra a taxa de transferncia somente da origem ao destino;
4: mostra a taxa de transferncia somente do destino origem.
jek Vo uma tela para cima e para baixo, respectivamente. Interessante de ser
usado quando a tela est congelada (atravs do parmetro o).
l l de Locate - Localize: localiza alguma interface especfica.
Para procurar algum endereo, por exemplo, pressione a tecla <l> para que
aparea Screen filter> no topo da tela. Escreva o nome da interface e
pressione sobre <ENTER>. Para voltar a visualizao normal pressione
novamente <l>, apague o que tiver aps Screen filter> e pressione <ENTER>
novamente.
No afeta os subtotais que aparecem na parte inferior da tela.
Agora que voc j est hacker no iftop, vamos praticar. Iremos executar o iftop j com a op-
o de nomes suprimidos ativada.
#iftopn
Perceba que existem muitas linhas que so de broadcast. Toda vez que um computador
qualquer da sua rede faz um broadcast por qualquer motivo, voc recebe o pacote e verifica se
ele lhe pertence. Estas entradas aparecem no iftop. Tirando estas entradas, temos apenas cone-
xes com outros computadores, sendo voc o cliente ou servidor. Abra um novo terminal e execu-
te o comando:
$ping<oseugateway>s2048
149
Apostila Debian Intermedirio - Desktop Parana
Agora volte para o terminal que o iftop est e tente encontrar a linha que tenha o seu IP e o
gateway digitado como par. Para facilitar digite <l>, digite o ip do gateway e pressione <Enter>.
10.15.17.100 =>10.15.16.18.22Kb5.75Kb1.44Kb
<=8.22Kb5.75Kb1.44Kb
Veja que o filtro fez com que somente as linhas que contm o que foi usado como critrio de
filtro de tela aparece. Por estarmos pingando, um pacote enviado e deve ser respondido, sendo
que a transmisso se d em ambos os lados de forma igual. O computador 10.15.17.100 est en-
viando dados para o computador 10.15.16.1 enquanto este est enviado para aquele tambm, e
podemos ver os dados na linha de baixo. Do meu computador para o gateway, nos ltimos 2 se-
gundos a taxa de transferncia foi de 8.22kb, no ltimos 10 segundos foi de 5.78kb e nos ltimos
40 segundos a taxa mdia foi de 1.44kb. Do destino para a minha interface foi a mesma coisa.
Este comando muito interessante para saber quem est conectado sua mquina e quanto da
sua interface ele est exigindo. Num servidor apache utilizamos muito este comando para saber-
mos quem est conectado ele e se a banda est dando conta de atender a todas as requisies.
TRACEROUTE
Ir mostrar o caminho na rede percorrido pelos pacotes at chegar ao computador de desti-
no. Este caminho traado atravs dos hopes transpostos pelos pacotes. Se forem necessrios
2 roteadores at chegar ao servidor, sero mostrados 3 pontos (2 roteadores mais o servidor). To-
das as interfaces destes ns so identificados pelo IP
$traceroute10.15.17.186
tracerouteto10.15.17.186(10.15.17.186),30hopsmax,40bytepackets
110.15.17.186(10.15.17.186)4.549ms4.559ms4.554ms
$traceroutewww.google.com.br
traceroute to www.google.com.br (209.85.193.99), 30 hops max, 40 byte
packets
110.15.16.1(10.15.16.1)1.087ms1.478ms1.788ms
210.15.55.252(10.15.55.252)1.186ms1.226ms1.282ms
3 brinf99.google.com(209.85.193.99) 2.413ms 4.006ms4.044
ms
No curso Debian Bsico, o comando route indica qual o roteador utilizado para acessar re-
des externas. Neste curso iremos estud-lo mais aprofundadamente, mas por enquanto vejamos
um exemplo simples de seu resultado:
150
Apostila Debian Intermedirio - Desktop Parana
$sudorouten
TabeladeRoteamentoIPdoKernel
DestinoRoteadorMscaraGen.OpesMtricaRefUsoIfa
ce
10.15.16.00.0.0.0255.255.252.0 U 0 0 0eth0
0.0.0.010.15.16.10.0.0.0 UG 00 0eth0
Veja acima que existem duas regras configuradas no computador utilizado para demonstrar
o traceroute: (a) se o computador que se deseja conectar estiver na rede 10.15.16.0 com mscara
255.255.252.0 (do IP 10.15.16.0 a 10.15.19.255), ento no ser necessrio intermdio de rotea-
dor, podendo a requisio ser mandado diretamente ao IP servidor; (b) qualquer outro computador
dever ter a conexo estabelecida atravs do roteador 10.15.16.1. Beleza! Agora veja que, com o
comando traceroute, o IP 10.15.17.186 estava na rede 10.15.16.0, 255.255.252.0, por isso o cami-
nho percorrido pelos pacotes reto, direto, havendo apenas um passo. J o IP do google
209.85.193.99, que est fora da rede do computador usado para o teste. Por isso, primeiro deve-
se passar pelo roteador (10.15.16.1) e a os pacotes vo passando por outros roteadores at che-
gar ao computador requisitado (209.85.193.99, cujo nome br-in-f99.google.com).
tracerouteto10.15.17.186(10.15.17.186),30hopsmax,40bytepackets
110.15.17.186(10.15.17.186)4.549ms4.559ms4.554ms
Para entender o que est sendo mostrado acima, vamos utilizar um equipamento especial
para gravar o que o traceroute fala enquanto executa o comando.
Tranandorotadainterfacedestecomputador aocomputadordedestino,
que10.15.17.186,sendoqueireipassarpornomximo30roteadores23.Seat
lningumsouberdessecomputador,desisto.Meumeiodetransporteter40by
tes(incluindome).Vamosl!Opa,estecomputadorrequisitadoestnestarede
mesmo,jvoulistloaquiechegadetrabalho.
1hopeparachegaraocomputadordedestino.Em3testes,leveinaprimeira,
segundaeterceiravez,4.549ms,4.559mse4.554msrespectivamenteparaire
voltar.
23 Mas se o mximo de 30 hopes, o certo no seria 29 roteadores mais o servidor? Mas para o roteador tanto faz,
afinal, pode ser que o servidor seja um roteador.
151
Apostila Debian Intermedirio - Desktop Parana
cote est errado, podendo at estar em looping (ser jogado de um roteador para o outro infinita-
mente). Para calcular a quantidade de saltos, os pacotes enviados pelo traceroute possuem em
seus cabealhos um parmetro ttl com o valor inicial indicado na linha inicial do comando.
tracerouteto10.15.17.186(10.15.17.186),30hopsmax,40bytepackets
O nmero mximo de hops 30. Para verificar se o nmero de saltos foi excedido, a cada
n de rede que o pacote passa, o valor ttl diminudo em um. Se o computador alvo estiver na
mesma rede do requisitante, ao chegar ao destino, este ir diminuir o valor do ttl em um e enviar
dois pacotes origem. O primeiro enviado pelo protocolo ICMP dizendo que o alvo foi atingido
(tambm responsvel por indicar que o alvo no foi atingido) e o segundo com as informaes
de ttl, data hora, etc. Se o pacote precisar passar por roteadores, cada um deles diminuir o valor
do ttl em um, at chegar na interface que receber o ttl com valor 1. Ele ir enviar uma mensagem
atravs do protocolo ICMP informando que o alvo est inalcanvel.
ARP
O Address Resolution Protocol (protocolo de resoluo de endereo), mais conhecido ape-
nas pelo seu acrnimo ARP, o conjunto de instrues residente camada de enlace da pilha
TCP/IP que faz a resoluo de IPs e endereos fsicos (MACs), mantendo uma tabela com as as-
sociaes utilizadas. Como j vimos, o que trafega no meio fsico da rede so os quadros, ou fra-
mes. Estas unidades de dados so pacotes, criados pelo protocolo IP, fragmentados e com cabe-
alhos contendo o endereo fsico de suas origens e destinos. S que os computadores no tm
como saber qual o endereo fsico dos destinos sem ser atravs de um questionamento a toda
rede. Eles fazem a pergunta atravs de um broadcast.
, velho. V se agora para de perguntar quem o C porque tenho muita coisa para fazer
para ficar dando ateno desnecessria voc!
Desde ento criou-se o ARP. Ele uma tabela contendo todos os endereos fsicos que res-
pondem por IPs utilizados recentemente, justamente para que aps a primeira pergunta, a origem
no tenha que se preocupar novamente em pesquisar o endereo fsico de seu destino e para que
a rede seja descongestionada de broadcast desnecessrios.
152
Apostila Debian Intermedirio - Desktop Parana
O comando que manipula a tabela ARP recebe o mesmo nome do protocolo: arp. Com ele
possvel adicionar ou remover entradas tabela, ou simplesmente visualiz-la.
#arp
AddressHWtypeHWaddressFlagsMask Ifa
ce
10.15.16.1ether00:0f:23:c0:5d:ff C eth0
10.15.16.6ether00:00:5e:00:01:16 C eth0
10.15.16.2ether00:50:da:1f:95:4d C eth0
10.15.18.6ether00:11:d8:f7:57:62 C eth0
A primeira coluna contm os endereos IPs de interfaces s quais o seu computador se co-
nectou recentemente. A segunda tem o protocolo utilizado na camada fsica (quase sempre
ser ether, de ethernet). A terceira mostra qual o endereo fsico da interface. A quarta coluna
possui algumas flags (caracteres denotativas) que informam:
Para apagar uma entrada da lista, usa-se o parmetro -d. Veja abaixo:
#arpn
AddressHWtypeHWaddress FlagsMask Ifa
ce
10.15.17.109ether 00:1c:25:4a:f3:0a Cbr0
#arpd10.15.17.109
#arpn
AddressHWtypeHWaddress FlagsMask Ifa
ce
10.15.17.109 (incompleto) br0
V eja que a flag C sumiu. Isso porque o kernel no sabe mais qual endereo responde
por 10.15.17.109.
Para adicionar ou alterar uma entrada, precisaremos apenas utilizar o parmetro -s junto
do IP e do endereo fsico. A sintaxe a seguinte:
#arps10.15.17.10900:1c:25:4a:f3:0a
153
Apostila Debian Intermedirio - Desktop Parana
#arpn
AddressHWtype HWaddress FlagsMaskIface
10.15.17.109 ether 00:1c:25:4a:f3:0a CM br0
Parmetro Descrio
-n (numrico) Mostra os IPs em vez de nomes.
-H Permite especificar outros protocolos da camada de enlace. O padro o
ether de ethernet. Outras opes so:
DIG
O comando dig o acrnimo da frase que sintetiza sua funo, que em ingls Domain In-
formation Groper (pesquisa s escuras de informaes de um domnio). Exatamente! A funo do
dig procurar meio que s escuras, ou seja, sem certeza de que receber resposta, em uma lista
pblica (algo como uma lista telefnica) informaes a respeito de um nome ou endereo de host,
domnio ou ento as configuraes da prpria lista pblica. Esta lista nada mais do que um DNS
(um servidor do sistema de domnios de nomes). Sempre desejaremos saber o que um servidor
de nomes sabe a respeito de algum dos objetos citados acima (host, domnio, servidor), utilizamos
este comando que imergir rede (local ou internet) adentro e trar uma resposta. O dig precisa,
ento, destes campos mais o tipo de pesquisa a ser realizada para lhe entregar um resultado til.
Iremos abordar o assunto DNS no mdulo avanado deste curso, por isso, bastar-nos-, por en-
quanto, saber que o dig ir permitir que consigamos as seguintes informaes:
Um IP a partir de um nome;
Servidor-de-nome
Pode ou no ser especificado o nome ou endereo do servidor a ser indagado sobre um ob-
jeto. A especificao pode ser feita atravs de um nmero IP verso 4 (denotado por octetos sepa-
rados por pontos) ou ento um nmero IP verso 6 (denotado por nmeros hexadecimais separa-
154
Apostila Debian Intermedirio - Desktop Parana
dos por vrgulas). Caso o servidor no seja especificado, o aplicativo dig ir realizar a pesquisa no
servidor definido no arquivo /etc/resolv.conf.
Tipo de pesquisa
Indica o que se pretende indagar ao servidor, qual o nome a partir de um endereo ou qual
o endereo a partir de um nome? O padro se ter um endereo (Address) a partir de um
nome, que, no caso, definido utilizando-se a letra A ou omitindo esta informao. Para o inverso,
utilizamos o parmetro -x.
Exemplos de sadas
No nosso exemplo, iremos indagar ao nosso DNS padro qual o endereo da mquina
que responde pelo endereo www.google.com.br. O comando para realizar a consulta fcil, po-
rm a sada pode parecer um pouco complicada. Veja abaixo uma explicao acerca de cada uma
das partes (as partes esto identificadas com nmeros e a explicao est aps a sada):
#digwww.google.com.br
;<<>>DiG9.5.1P3<<>>www.google.com.br (1)
;;globaloptions:printcmd
;;Gotanswer:
;;>>HEADER<<opcode:QUERY,status:NOERROR,id:52760
;;flags:qrrdra;QUERY:1,ANSWER:6,AUTHORITY:6,ADDITIONAL:6
;;QUESTIONSECTION: (2)
;www.google.com.br.INA
;;ANSWERSECTION: (3)
www.google.com.br.92370INCNAMEwww.google.com.
www.google.com.262286INCNAMEwww.l.google.com.
www.l.google.com.61INA64.233.163.99
www.l.google.com.61INA64.233.163.103
www.l.google.com.61INA64.233.163.104
www.l.google.com.61INA64.233.163.147
;;AUTHORITYSECTION: (4)
l.google.com.2983INNSa.l.google.com.
l.google.com.2983INNSg.l.google.com.
l.google.com.2983INNSe.l.google.com.
155
Apostila Debian Intermedirio - Desktop Parana
l.google.com.2983INNSb.l.google.com.
l.google.com.2983INNSd.l.google.com.
l.google.com.2983INNSf.l.google.com.
;;ADDITIONALSECTION: (5)
g.l.google.com.6218INA74.125.95.9
d.l.google.com.6159INA74.125.77.9
b.l.google.com.6035INA74.125.45.9
e.l.google.com.6218INA209.85.137.9
a.l.google.com.6035INA74.125.53.9
f.l.google.com.6035INA72.14.203.9
;;Querytime:2msec (6)
;;SERVER:10.15.16.6#53(10.15.16.6)
;;WHEN:MonSep2110:20:272009
;;MSGSIZErcvd:339
1. Na primeira parte temos apenas alguns informaes bsicas sobre o comando e o tipo
de pesquisa. O nmero 9.5.1-P3 indica a verso do DIG. Em global options indicado
a forma como a sada se dar. O padro a impresso na tela. Existe a possibilidade
de se alterar esta sada, mas devido a desnecessidade desta alterao, cabe a voc
consultar o menu do comando caso deseje alterar esta opo;
2. QUESTION SECTION: indica qual foi a indagao realizada. No nosso exemplo, esta-
mos indagando qual o endereo IP do nome www.google.com.br. O IN indica que o
endereo pertence a Internet;
156
Apostila Debian Intermedirio - Desktop Parana
5. ADDITIONAL SECTION: Campo adicional que apenas tem funo de informar ao ad-
ministrador qual o endereo dos servidores com autoridade sobre a resoluo do
nome principal;
6. QUERY TIME: Tempo de pesquisa informado em milissegundos (10 -3 s); SERVER: Ser-
vidor e porta utilizada para o incio da pesquisa; WHEN: Data e hora da consulta. MSG
SIZE: tamanho da mensagem recebida.
MII-TOOL
A maioria das redes utiliza o protocolo Ethernet para transferncia de dados pelo meio fsico.
As redes Ethernet permitem que possam ser enviados ou recebidos as seguintes quantidades de
informao a cada segundo:
1 megabit (Mb) igual a 1 MILHO de 1 BIT (b) = 1 MILHO DE BITS (1.000.000 bits)
Caso 2: 10 gigabit = 10 vezes 100 vezes 1Mb = 1.000 vezes 125kB = 125MB
No caso 1, temos que uma placa 100base Tx pode enviar ou receber 12,5MB a cada se-
gundo. Um DVD completo de 4GB levaria 5 minutos e 20 segundos para ser enviado ou recebido
pela rede.
No caso 2, temos que uma placa 10gigabit que pode enviar ou receber 125MB a cada se-
gundo. O mesmo DVD do exemplo acima seria enviado ou recebido pela rede em 32 segundos.
157
Apostila Debian Intermedirio - Desktop Parana
misso e recepo simultneas de quadros. Uma placa de 100base Tx-HD (o HD de Half Du-
plex) envia ou recebe dados numa ordem de 100Mb por segundo. Isto resulta em no mximo
100Mb por segundo trafegados. J as placas 100 base Tx-FD transmitem e recebem quadros si-
multaneamente numa ordem de 100Mb por segundo cada uma das tarefas. Isto resulta em uma
taxa de transmisso mxima entre as interfaces de 200Mb por segundo.
Negociao
Toda vez que uma interface cria um link (uma ligao) entre ela e outra interface 24, desde
que tenha este recurso disponvel (as placas mais modernas possuem), executa o processo de
negociao para estabelecer o melhor modo de transmisso possvel. Esta negociao autom-
tica e realizada pelos protocolos da camada de enlace. As interfaces definem a opo mais rpida
de comunicao. Imagine um computador tendo como melhor opo publicada o modo 10base
Tx-FD tentando comunicar-se com um computador com interface que possui como melhor opo
publicada o modo 100base Tx-FD. Ser verificado que a melhor opo, dentre as possibilidades,
a primeira, e ser realizada a comunicao entre as duas interfaces com o ele. Isto s ser poss-
vel se o meio permitir, existindo cabos prprios para HD (cabo de par tranado, que separa o meio
de envio e de recebimento). Se existirem no caminho entre os computadores cabos coaxiais ou
ento hubs, automaticamente no ser possvel ser realizada a conexo por FULL DUPLEX, j
que estas arquiteturas propiciam um meio de transmisso nico. Nestes meios, se quadros distin-
tos forem enviados ao mesmo tempo, eles iro colidir um no outro e haver perda de dados. Nes-
te caso, mesmo com interfaces 100base TxFD, 1000baseTxFD ou at mesmo 10gigabit, a cone-
xo ser feita atravs do melhor modo HD (um ciclo para enviar e outro para receber).
Para visualizar tais informaes, o usurio s precisa executar como superusurio ou com
auxlio do sudo o comando mii-tool:
$sudomiitool
eth0:negotiated100baseTxFD,linkok
eth1:nolink
No exemplo acima, podemos verificar que existem duas interfaces de rede conectadas ao
meu sistema: eth0 e eth1. A primeira interface negociou com o switch a qual ela est conectada o
modo 100baseTx-FD. Ou seja, ele transmitir, sempre que possvel, com a velocidade de 100 me-
gabits por segundo e poder transmitir e receber quadros simultaneamente (FD - Full Duplex), ou
seja, ter uma taxa de transmisso mxima entre as interfaces de 200Mbps (o ps quer dizer per
second - por segundo). Se o administrador desejar, ele pode alterar este valor utilizando o mii-tool.
24 pode ser um outro computador atravs de uma topologia de barramento ou anel, ou ento a um hub, switch ou
roteador atravs de uma topologia estrela
158
Apostila Debian Intermedirio - Desktop Parana
E por que se pode conectar dois computadores, um com interface 10FD, o outro com 100FD
utilizando a opo 10FD e no com 100FD? Por que normalmente as interfaces que tm tecnolo-
gia mais avanada abrangem as tecnologias mais simples tambm. Utilizando o parmetro -v
podemos verificar mais informaes a respeito das interfaces, entre elas quais so as modos (tec-
nologias) disponveis:
#miitoolv
eth0:negotiated100baseTxFD,linkok //Onegociadocomomeio
productinfo:vendor00:00:00,model0rev0
basicmode:autonegotiationenabled //Autonegociaohabi
litada
basicstatus:autonegotiationcomplete,linkok //Negociao
completa
capabilities:100baseTxFD100baseTxHD10baseTFD10baseTHD
advertising:100baseTxFD100baseTxHD10baseTFD10baseTHD
linkpartner:100baseTxFD100baseTxHD10baseTFD10baseTHD
#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.
Mensagens de erro
Abaixo temos algumas mensagens de erro que podem ser apresentadas pelo mii-tool:
Indica que ou a sua interface ou a interface a qual ela est tentando se conectar
no respondem aos pacotes que permitem que o mii-tool verifique estas informaes.
NETSTAT
Este um comando muito verstil de consulta de informaes de rede. No se consegue al-
terar nada, porm pode-se visualizar muita coisa importante para um bom gerenciamento de um
computador. Ele tem uma funo padro, que verificar as conexes feitas nas portas UDP e
TCP, porm permite que o administrador consiga realizar vrios outros tipos de consultas. Veja o
que pode ser visualizado com ele:
Tabela de roteamento;
160
Apostila Debian Intermedirio - Desktop Parana
#netstat
ConexesInternetAtivas(servidoreseestabelecidas)
ProtoRecvQSendQEndereoLocalEndereoRemotoEstado
Acima temos um exemplo das sadas do netstat caso seja evocado na sua forma padro.
Ele ir mostrar todas as conexes de estabelecidas nas portas TCP, UDP e soquetes, nesta or-
dem. A sada mostrada acima referente conexes TCP e UDP. Se voc estiver fazendo um ssh
em outro computador, aparecer que a porta 22 (se o ssh estiver utilizando a porta padro) est
sendo usado por este servio.
Cada uma das colunas traz uma informao diferente das conexes estabelecidas pelo seu
computador.
O protocolo UNIX no faz parte da pilha TCP/IP. Ele um protocolo prprio do kernel
linux e tem funo de disponibilizar um meio de comunicao entre processos do
sistema, ou seja, indica que a conexo local e feita por soquetes.
161
Apostila Debian Intermedirio - Desktop Parana
T anto nesta quanto na segunda coluna, o ideal que o nmero de bytes tenda sem-
pre a zero. Se isto no acontecer, pode estar havendo algum problema na mdia de
comunicao, na interface de destino, ou nos aplicativos instalados no seu computador,
fazendo com que as informaes a serem transmitidas fiquem sempre paradas.
Praticando
Conecte-se ao seu prprio computador por ssh (utilize um usurio comum):
$sshlocalhost
162
Apostila Debian Intermedirio - Desktop Parana
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:
esta linha mostra que o computador cliente que se conecta ao computador servidor est uti-
lizando uma porta aleatria, que no exemplo 53439. Todos os dados enviados ao computador de
destino vo para a porta padro do ssh do servidor (22).
tcp 00localhost:sshlocalhost:53439ESTABELECIDA24218/sshd:
fcamar
A outra linha indica o servidor, j que temos uma conexo do localhost no localhost. Normal-
mente quando voc estiver se conectando a algum computador remoto, a situao ser como na
segunda linha, quando algum se conectar ao seu computador, a situao ser como na terceira
linha. Nela, o computador local utilizar a porta padro do ssh (22) para receber dados
MTU (Maxime transfer unit - Unidade de transferncia mxima) define qual o tamanho m-
ximo de um frame.
GERENCIADOR WICD
Acrnimo de Wired and Wireless Network Connection Daemon (gerenciador de conexes a
163
Apostila Debian Intermedirio - Desktop Parana
redes cabeadas e sem fio), este gerenciador vem tentar facilitar a vida do administrador unificando
todas informaes da rede e das interfaces de um sistema num nico programa grfico. interes-
sante para configuraes rpidas ou visualizaes de informaes de uma forma mais amigvel,
porm no substitui os comandos de rede vistos anteriormente, j que um administrador de redes
dever frequentemente trabalhar em sistemas servidores, que quase nunca possuem suporte gr-
fico. Abaixo temos um screenshot do wicd:
Estrutura do Wicd
Wicd composto de duas partes principais: o daemon (gerenciador residente na memria),
que roda com privilgios de superusurio; e a interface do usurio, que roda com privilgios nor-
mais do usurio conectado interface grfica. Ambos rodam em processos diferentes e se comu-
nicam atravs do D-Bus.
D bus uma interface utilizada como meio de comunicao entre aplicativos desktop.
O D indica Desktop e o BUS indica um meio de transmisso. Um bom exemplo o
plugin do Rhytmbox que instalado no Pidgin. Este plugin usa o Dbus para colocar em
comunicao ambas aplicaes, permitindo que a msica que estiver tocando seja mos-
164
Apostila Debian Intermedirio - Desktop Parana
O daemon responsvel por criar e configurar conexes a redes, ler e escrever arquivos de
configurao e de log, e monitorar os status das conexes. O trabalho destinado ao daemon di-
vido entre dois processos: (1) wicd-daemon.py e (2) monitor.py.
E xecute o ps aux utilizando os filtros adequados para confirmar que os dois esto ro-
dando em seu computador.
Todo monitoramento dos status das conexes e a tarefa de reconexo automtica a redes
realizada pelo monitor.py. Todo o resto do trabalho realizado pelo wicd-daemon.py.
A interface grfica j faz parte do wicd-client, que constitudo por um cone no painel, uma
janela principal de configurao e suas abas funcionais. Ele no passa de uma interface daemon-
usurio, no sendo fundamental para o funcionamento da rede. Periodicamente o wicd-client per-
gunta ao processo correspondente como andam as coisas para que ele possa atualizar as infor-
maes em sua janela. Esta comunicao feita atravs do Dbus. Outra forma dele ser atualiza-
do por sinais enviados pelo Dbus diretamente a ele. Normalmente informaes j estabelecidas
so perguntadas pelo cliente, enquanto erros e eventos novos so avisados pelos daemon. Quan-
do configuraes so realizadas pelo assistente cliente, as novas informaes so enviadas aos
dameon e estes aplicam as alteraes e realizam todos os procedimentos necessrios, como rei-
nicializao dos servios envolvidos e alterao dos arquivos de configurao, para que as mu-
danas perdurem.
Funcionamento e configuraes
O assistente principal ser aberto, e nele todas as redes disponveis aparecero. Iremos ver
tarefas teis que podem ser realizadas por ele. Cada interface que o usurio tiver em seu compu-
tador ter um perfil prprio com suas configuraes. Pode-se configurar um dos perfis como Pa-
dro. Isto far com que a conexo do seu computador utilize-a prioritariamente.
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
Excluir um perfil existente: selecione o perfil a ser excludo utilizando o menu suspenso e
depois clique sobre o boto <Excluir>.
PREFERNCIAS GLOBAIS
Always switch to a wired connection when available: se existirem pelo menos duas co-
nexes, uma wired (cabeada) e outra wireless (sem cabo), ser dado preferncia rede cabeada,
que normalmente mais estvel;
User global DNS servers: permite que os DNS sejam definidos e utilizados por todas as
conexes do seu computador;
Automatic Reconnection: reconecta automaticamente a uma rede que caiu quando ela es-
tiver UP novamente;
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.
http://www.faqs.org/docs/linux_network/x-087-2-iface.ifconfig.html
http://linux-ip.net
http://www.jonny.eng.br
http://www.vivaolinux.com.br/artigo/Entendendo-o-processo-de-boot/?pagina=1
http://debian-br.sourceforge.net/docs/sgml/pratico/online/ch-init.html
http://pt.wikipedia.org/wiki/Log_de_dados
http://under-linux.org/b160-usando-syslog-em-shell-script-com-logger
http://www.cyberciti.biz/tips/howto-linux-unix-write-to-syslog.html
http://focalinux.cipsga.org.br/guia/avancado/ch-log.html
http://www.debian.org/doc/manuals/securing-debian-howto/ch4.pt-br.html
http://www.debian-administration.org/articles/56
http://www.vivaolinux.com.br/artigo/Usando-cron-e-crontab-para-agendar-tarefas/?pagina=2
http://www.debian.org/releases/stable/s390/ch08s03.html.pt_BR
http://sergioaraujo.pbwiki.com/Guia+de+comandos+Linux
http://www.basicallytech.com/blog/index.php?/archives/23-command-line-calculations-using-
bc.html
http://www.vivaolinux.com.br/artigo/BC-A-sua-calculadora-programavel-no-Linux?pagina=1
http://www.guiadohardware.net/dicas/fazendo-backup-recuperando-mbr-tabela-particoes.h-
tml
http://www.vivaolinux.com.br/artigo/Checando-seu-sistema-de-arquivos-com-fsck/
http://www.uniriotec.br/~morganna/guia/fsck.html
http://pt.wikipedia.org/wiki/Fsck
167
Apostila Debian Intermedirio - Desktop Parana
http://linuxcommand.org/man_pages/fsck8.html
http://www.htmlstaff.org/guiafoca/intermediario/ch-cmdc.htm
http://www.uniriotec.br/~morganna/guia/last.html
http://pt.wikibooks.org/wiki/Guia_foca_Linux/Iniciante%2BIntermedi
%C3%A1rio/Comandos_para_manipula%C3%A7%C3%A3o_de_contas/last
http://www.uniriotec.br/~morganna/guia/lastlog.html
http://pt.wikibooks.org/wiki/Guia_foca_Linux/Iniciante%2BIntermedi
%C3%A1rio/Comandos_para_manipula%C3%A7%C3%A3o_de_contas/lastlog
http://www.vivaolinux.com.br/dica/O-comando-lsof/
http://danielmiessler.com/study/lsof/
http://br-net.org/post/lsof-o-canivete-suico
http://www.akadia.com/services/lsof_intro.html
http://tecinfofsj.forums-free.com/comando-lspci-t7.html
http://www.devin.com.br/comandos-informacoes-do-sistema/
http://www.dicas-l.com.br/dicas-l/20060531.php
http://www.ime.usp.br/~ueda/ldoc/rb.html
http://www.uniriotec.br/~morganna/guia/nice.html
http://www.infowester.com/linprocessos.php
http://www.juliobattisti.com.br/artigos/windows/tcpip_p35.asp
http://paginas.fe.up.pt/~mgi97018/nslookup.html
http://paginas.fe.up.pt/~mgi97018/nslookup.html
http://www.ime.usp.br/~ueda/ldoc/rb.html
http://www.uniriotec.br/~morganna/guia/nohup.html
168