Escolar Documentos
Profissional Documentos
Cultura Documentos
Direitos autorais:
Essa Apostila est licenciada sob uma Licena Creative Commons Atribuio-Uso No-Comercial-Compartilhamento pela mesma licena 2.0 Brazil. Pode ser copiada, distribuda e modificada. Para ver uma cpia desta licena, visite http://creativecommons.org/licenses/by-nc-sa/2.0/br/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
PG.: 2
Documento Apostila de Debian Avanado Verso 2.2-1 Data da 01/09/2008 Reviso Equipe Jonsue Trapp Martins Tcnica Andr Luiz de Souza Paula David Alves Frana Paulo Csar de Oliveira Peter Andreas Entschev Pginas 124
ndice
1. Introduo.............................................................................................................10 2. Instalando o GNU/Debian....................................................................................11 3. Como Instalar Programas...................................................................................17
3.1. APT.........................................................................................................................................17 3.1.1. Reconfigurando a lista de pacotes...................................................................................19 3.1.2. Aps reconfigurar a lista de pacotes................................................................................19 3.1.3. O arquivo de configurao apt.conf...............................................................................20 3.1.4. O arquivo de configurao preferences........................................................................21 3.2. dpkg........................................................................................................................................22 3.3. Compilando Programas a Partir do Cdigo Fonte..............................................................22 3.3.1. Arquivos tarball................................................................................................................22
7. Sistema de Logs...................................................................................................36
7.1. Principais Arquivos de Log..................................................................................................36 7.2. Formato dos Arquivos de Log..............................................................................................36
PG.: 4
7.3. Daemons de Log do Sistema................................................................................................37 7.3.1. O daemon syslogd...........................................................................................................37 7.3.2. O daemon klogd..............................................................................................................38 7.3.3. Configurando o syslog.conf.............................................................................................39 7.4. Ferramentas para Arquivos de Log......................................................................................41 7.4.1. logger...............................................................................................................................41 7.4.2. logcheck..........................................................................................................................42 7.4.3. logrotate...........................................................................................................................42
8. Comandos Avanados.........................................................................................46
8.1. Comandos de Uso Geral.......................................................................................................46 8.1.1. cron.................................................................................................................................46 8.1.2. dd....................................................................................................................................48 8.1.3. diff....................................................................................................................................48 8.1.4. dpkg.................................................................................................................................50 8.1.5. export...............................................................................................................................52 8.1.6. find...................................................................................................................................53 8.1.7. fsck..................................................................................................................................53 8.1.8. last...................................................................................................................................55 8.1.9. lastlog..............................................................................................................................56 8.1.10. lsof.................................................................................................................................56 8.1.11. lspci...............................................................................................................................57 8.1.12. lsusb..............................................................................................................................58 8.1.13. mount.............................................................................................................................59 8.1.14. nice................................................................................................................................59 8.1.15. renice.............................................................................................................................60 8.1.16. nohup.............................................................................................................................61 8.1.17. pidof...............................................................................................................................61 8.1.18. pstree.............................................................................................................................61 8.1.19. shred..............................................................................................................................62 8.1.20. stat.................................................................................................................................63 8.1.21. sync...............................................................................................................................64 8.1.22. tar..................................................................................................................................64 8.1.23. watch.............................................................................................................................66 8.1.24. which.............................................................................................................................67 8.2. Comandos de Rede...............................................................................................................68 8.2.1. arp...................................................................................................................................68 8.2.2. dig....................................................................................................................................69 8.2.3. ifconfig.............................................................................................................................70 8.2.4. ifup e ifdown.....................................................................................................................71
PG.: 5
8.2.5. mii-tool.............................................................................................................................72 8.2.6. netstat..............................................................................................................................73 8.2.7. ntpdate.............................................................................................................................74 8.2.8. route................................................................................................................................75 8.2.9. tcpdmatch........................................................................................................................77 8.2.10. traceroute......................................................................................................................78 8.2.11. wget...............................................................................................................................79
9. Arquivos de Configurao..................................................................................81
9.1. Interfaces de Rede.................................................................................................................81 9.2. Interface de loopback........................................................................................................81 9.3. Servios e Portas TCP/IP......................................................................................................82 9.4. Arquivos de Configurao....................................................................................................82 9.4.1. /etc/network/interfaces.....................................................................................................82 9.4.2. /etc/hostname..................................................................................................................84 9.4.3. /etc/hosts.........................................................................................................................84 9.4.4. /etc/host.conf...................................................................................................................84 9.4.5. /etc/networks...................................................................................................................85 9.4.6. /etc/resolv.conf................................................................................................................85 9.4.7. /etc/nsswitch.conf............................................................................................................86 9.4.8. /etc/services.....................................................................................................................86 9.4.9. /etc/protocols...................................................................................................................86 9.4.10. /etc/alternatives/.............................................................................................................86 9.4.11. /etc/default/rcS...............................................................................................................87 9.4.12. /etc/pam.d/.....................................................................................................................87 9.4.13. /etc/security/..................................................................................................................87 9.4.14. /etc/security/access.conf................................................................................................87 9.4.15. /etc/security/limits.conf...................................................................................................88 9.4.16. /etc/fstab........................................................................................................................88 9.4.17. /etc/hosts.allow..............................................................................................................89 9.4.18. /etc/hosts.deny...............................................................................................................90 9.4.19. /etc/inetd.conf................................................................................................................91 9.4.20. /etc/inittab......................................................................................................................91 9.4.21. /etc/mtab........................................................................................................................92 9.4.22. /etc/issue.......................................................................................................................92 9.4.23. /etc/issue.net..................................................................................................................92 9.4.24. /etc/motd........................................................................................................................93
10.3. Planejando a Implementao..............................................................................................95 10.4. Conhecendo os conceitos do iptables..............................................................................95 10.4.1. O que so regras?.........................................................................................................95 10.4.2. O que so chains?.........................................................................................................95 10.4.3. O que so tabelas?........................................................................................................95 10.5. Manipulando Chains............................................................................................................96 10.5.1. Adicionando regras........................................................................................................96 10.5.2. Listando regras..............................................................................................................97 10.5.3. Apagando uma regra.....................................................................................................98 10.5.4. Inserindo uma regra.......................................................................................................99 10.5.5. Substituindo uma regra..................................................................................................99 10.5.6. Criando um novo chain..................................................................................................99 10.5.7. Renomeando um chain criado pelo usurio.................................................................100 10.5.8. Limpando as regras de um chain.................................................................................100 10.5.9. Apagando um chain criado pelo usurio......................................................................101 10.5.10. Zerando o contador de bytes dos chains...................................................................101 10.5.11. Especificando o policiamento padro de um chain....................................................101 10.5.12. Especificando um endereo de origem/destino.........................................................102 10.5.13. Especificando a interface de origem/destino.............................................................102 10.5.14. Especificando um protocolo.......................................................................................103 10.5.15. Especificando portas de origem/destino....................................................................103
12. Anexos...............................................................................................................115
12.1. NFS - Network File System...............................................................................................115 12.2. Shell Scripts.......................................................................................................................116 12.2.1. O primeiro script..........................................................................................................116 12.2.2. Os primeiros erros.......................................................................................................116 12.2.3. Melhorando seu primeiro script....................................................................................117 12.2.4. Expresses aritmticas................................................................................................117
PG.: 7
12.2.5. Recebendo argumentos do shell.................................................................................117 12.2.6. Estruturas de controle..................................................................................................118 12.2.7. Funes.......................................................................................................................121 12.2.8. sed...............................................................................................................................121
PG.: 8
ndice de Figuras
Figura 1 - Definindo as opes de instalao do GNU/Debian.............................................................11 Figura 2 - Tela de configurao das parties do disco........................................................................13 Figura 3 - Finalizando a configurao das parties.............................................................................14 Figura 4 - Menu principal do utilitrio cfdisk..........................................................................................25
PG.: 9
1. Introduo
Este documento, foi elaborado especialmente para o curso de Debian avanado ministrado pela Coordenao de Planejamento, Pesquisa e Capacitao CPPC, aos tcnicos da rea de informtica da Celepar e seus clientes. O objetivo que desejamos alcanar com este material, aprofundar os conhecimentos sobre conceitos e funcionalidades da distribuio GNU/Debian, como forma de capacitar o pessoal de tcnico, para realizao de atividades geralmente vistas como mais complexas, como por exemplo, a compilao do kernel do sistema. Esta apostila foi gerada tendo como base o Guia Foca GNU/Linux Avanado, de Gleydson Mazioli da Silva, que pode ser acessado em http://focalinux.cipsga.org.br/guia/avancado/index.htm. A Gerncia de Gesto de Ambientes GGA, por meio da Coordenao de Planejamento, Pesquisa e Capacitao CPPC, espera que voc possa aproveitar o contedo deste material para ampliar mais o seu conhecimento do Sistema Operacional GNU/Linux, e em especial, da distribuio Debian.
PG.: 10
2. Instalando o GNU/Debian
Para ter acesso a todas as opes de instalao do GNU/Debian, devemos utilizar o modo expert da instalao. Esta tambm, a opo recomendada para a instalao de servidores, visto que somente ela, d acesso a funcionalidades que so mascaradas pela instalao padro. Siga os passos abaixo para realizar a instalao do Sistema Operacional: 1. Verifique as configuraes de setup (BIOS) do equipamento, deixando o CD-ROM como primeiro dispositivo de boot. 2. D um boot com o CD do Debian Bussiness Card, faa o download no seguinte endereo: http://www.repositorios.eparana.parana/images/debian/etch/i386/debian-40r1-i386businesscard.iso
3. Escreva expert vga=788 (sem as aspas) na tela inicial do CD do Debian (tela abaixo) e em seguida pressione <ENTER>. A figura a seguir, representa esta parte da instalao:
Figura 1 - Definindo as opes de instalao do GNU/Debian. 4. No menu principal do instalador do GNU/Debian, escolha a opo Choose Language e pressione <ENTER>. Na tela seguinte, escolha a opo Portuguese (Brazil) Portugus do Brasil e pressione <ENTER>. 5. A prxima tela, pedir que voc escolha um pas, territrio ou rea, escolha a opo Brasil e pressione <ENTER>. 6. A seguir a tela Escolha um locale aparecer. Escolha a opo pt_BR e pressione <ENTER> para gerar a codificao de caracteres necessria apenas para o nosso idioma. 7. Prosseguindo a instalao, ser apresentada mais uma tela permitindo que o usurio escolha outros locales, isto no necessrio, basta ento pressionar a tecla <TAB> e em seguida <ENTER>, para continuar. 8. Aps a configurao do idioma do sistema, necessrio configurar o teclado, atravs da opo Selecione um layout de teclado. Pressione <ENTER> sobre esta opo, que consta do menu principal do instalador. 9. Na tela que solicitar o Tipo de teclado, selecione a opo Teclado estilo PC (AT ou PS/2) e pressione <ENTER>. 10. A seguir, na tela Mapa de teclado a ser usado, escolha o layout de teclado adequado para seu computador. Lembre-se, teclados que possuem devero escolher a opo Portugus Brasileiro (br-abnt2).
PG.: 11
11. A instalao voltar para o menu principal. Escolha agora a opo Detectar e montar CDROM e pressione <ENTER>. 12. No questionamento sobre os Mdulos a serem carregados, apenas escolha a opo <Continuar> e pressione <ENTER>. 13. A prxima pergunta sobre os mdulos para cartes PCMCIA, geralmente utilizados em notebooks, responda No a esta pergunta para prosseguir a instalao. 14. Num processo normal, a prxima tela informar que o CDROM foi detectado com sucesso. Basta escolher a opo <Continuar> e pressionar <ENTER>. 15. No menu principal, escolha a opo Carregar componentes do instalador do CD e pressione a tecla <ENTER> 16. A tela seguinte, permitir que voc escolha que componentes deseja carregar. No necessrio marcar nenhum componente, basta ir at a opo <Continuar> e pressionar <ENTER>. 17. Novamente no menu principal, acesse o item Detectar hardware de rede, pressionando a tecla <ENTER> sobre ele. 18. Aps o processo automtico de deteco do hardware, pressione <ENTER> sobre o item Configurar a rede do menu principal do instalador. 19. Na seqencia uma srie de perguntas sero feitas pelo instalador para realizar a configurao da rede da maquina. A primeira dessa srie de perguntas Configurar a rede automaticamente por DHCP ?, responda No para que possamos configurar opes do protocolo TCP/IP manualmente. 20. Aps o 19 passo, voc ser questionado sobre o endereo IP da maquina, informe o endereo no formato padro, por exemplo: 10.15.22.15 21. Em seguida, necessrio informar a mascara de rede. Informe a mascara a ser usada, conforme o exemplo: 255.255.255.0 22. A prxima informao necessria, o endereo do gateway (roteador) padro da rede. Informe o endereo no mesmo formato j citado no passo 20 desta seo. 23. Continuando a instalao, agora hora de informar os servidores de nomes (DNS) da rede. Informe os endereos IP dos servidores separados por espao, caso deseje informar mais de um servidor, conforme o exemplo ao lado: 10.15.22.4 10.15.21.5 24. Ser mostrada ento uma tela, que exibir os dados fornecidos para as questes a partir do passo 20, confira os dados e se estiver tudo correto, acione a opo Sim e pressione <ENTER>. Caso voc tenha fornecido alguma informao incorreta, acione a opo No e pressione <ENTER> para que voc possa digitar as informaes novamente. 25. Confirmando positivamente o questionamento do passo 24, ser apresentada uma tela que solicitar ao usurio que fornea um nome para a maquina (hostname). Informe um nome para a maquina de acordo com os padres da organizao a que a maquina pertence. Lembre-se, manter padres uma atitude importante para a administrao de redes. 26. A prxima questo, sobre o domnio (DNS) ao qual a maquina pertence. Informe o domnio em questo, no mesmo formato do exemplo a seguir: celepar.parana 27. Nesse momento comea a configurao dos repositrios para instalao remota de pacotes. Pressione <ENTER> sobre a opo Selecione um espelho para o repositrio Debian do menu principal de instalao. 28. Na pergunta Protocolo para download de arquivos, selecione http e pressione <ENTER>. 29. Na questo Pas do espelho do repositrio Debian, selecione a opo Fornecer informao manualmente e pressione <ENTER>. 30. A seguir em Nome da maquina do espelho do repositrio Debian, informe o espelho do repositrio da Celepar, fornecendo o parmetro: www.repositorios.eparana.parana
PG.: 12
31. A prxima pergunta, sobre o diretrio do Debian nesta maquina espelho. Deixe conforme o padro sugerido /debian/ e pressione <ENTER>. 32. Agora a questo sobre o proxy http. No caso da rede interna do Estado, presente na maioria do clientes da Celepar, no necessrio fornecer endereo de um servidor proxy para endereos da intranet. Por essa razo, basta pressionar <ENTER> para prosseguir a instalao. 33. Na pergunta Verso do Debian a ser instalada, opte sempre pela opo Stable e pressione <ENTER>. 34. Voltando ao menu principal de instalao, pressione <ENTER> sobre a opo Detectar discos. 35. Aps a deteco automtica do hardware, pressione <ENTER> sobre a opo Particionar discos. 36. O mtodo de particionamento a ser escolhido, deve ser a opo Manual. Caso a tela mostrada, no apresente um indicativo de ESPAO LIVRE no disco ao qual se deseja particionar, conforme a figura abaixo exemplifica (listra vermelha), necessrio criar uma tabela de parties no disco em questo.
Figura 2 - Tela de configurao das parties do disco. Para criar uma nova tabela de parties, pressione <ENTER> sobre o nome que faz referncia ao disco em questo, Vmware Virtual IDE Hard Drive no exemplo da figura acima, e responda Sim a pergunta sobre se deseja criar uma nova tabela de parties. A seguir escolha o tipo de tabela de parties do msdos e pressione <ENTER> para encerrar a configurao. 37. Selecione a indicao de ESPAO LIVRE no disco ao qual se deseja particionar e pressione a tecla <ENTER>, para iniciar a criao de uma nova partio. Lembre-se, a criao de parties deve sempre respeitar o projeto de instalao definido para a maquina que est sendo configurada. 38. No dilogo seguinte Como usar este espao livre, selecione a opo Criar nova partio e pressione <ENTER>. 39. A seguir, especifique o tamanho em Megabytes ou Gigabytes que ser designado para a partio que est sendo configurada. Valores vlidos, so por exemplo: 128 Mb ou 1 GB 40. O Tipo da nova partio dever ser prioritariamente Primria para parties do sistema como /boot, / ou reas de troca. Outras parties como /home, /var, /srv, entre outras, podero usar a opo Lgica. 41. Na pergunta Localizao para nova partio, responda sempre Inicio e pressione <ENTER>.
PG.: 13
42. A tela de configurao da partio ser exibida, nela voc poder ajustar o ponto de montagem, sistema de arquivos e outras opes. Para realizar a configurao de cada um destes itens, basta pressionar a tecla <ENTER> sobre cada uma das opes e ajustar as opes de acordo com a necessidade. Feitas as configuraes necessrias, escolha a opo Finalizar a configurao da partio. Repita os passos do 37 ao 42, para criao das demais parties necessrias de acordo com o projeto de instalao da maquina. Abaixo, citamos um exemplo de particionamento genrico que pode ser usado para instalao:
Tamanho 128 MB
Usar como Sistema de arquivos EXT3 com journalling Sistema de arquivos XFS com journalling rea de troca Sistema de arquivos XFS com journalling Sistema de arquivos XFS com journalling
Funo Partio para arquivos de boot Partio raiz rea para swap de memria Partio para arquivos do usurio Partio para arquivos de dados dos servios de rede
/ swap /home
/var
desligado
43. Aps criar todas as parties necessrias escolha a opo Finalizar o particionamento e gravar as mudanas no disco, conforme a figura abaixo:
44. Um dilogo de confirmao ir ser exibido Gravar estas mudanas nos discos ?, responda Sim. 45. Novamente no menu principal do instalador, pressione <ENTER> sobre o item Configurar fuso horrio. 46. Na pergunta Selecione uma cidade em seu fuso horrio, escolha So Paulo e
PG.: 14
pressione a tecla <ENTER>. 47. Voc ser enviado novamente ao menu principal do instalador, pressione <ENTER> sobre o item Configurar relgio agora. 48. Quando o instalador perguntar se o relgio do sistema est configurado para UTC selecione a opo Sim e pressione <ENTER>. 49. O prximo passo, a configurao de usurios. Selecione o item Configurar usurios e senhas e pressione <ENTER>. 50. Responda Sim pergunta Habilitar senhas sombra (shadow) ?. 51. Em Permitir login como root ?, responda Sim novamente. 52. O prximo passo exige que voc defina uma senha para a conta do root. 53. Informe novamente, a mesma senha j fornecida para o usurio root para confirmao. 54. Agora necessrio criar uma conta de usurio comum. Responda Sim a questo Criar uma conta de usurio normal agora ?. 55. Em Nome completo para o novo usurio, digite celepar e pressione a tecla <ENTER>. 56. Em Nome de usurio para sua conta, digite novamente celepar e pressione a tecla <ENTER>. 57. No passo seguinte, escolha uma senha para o usurio que est sendo criado, digite-a no campo apropriado e 58. Informe a senha novamente para verificao, a mesma digitada no passo acima, e pressione a tecla <ENTER>. 59. De volta ao menu principal do instalador, selecione a opo Instalar o sistema bsico e pressione a tecla <ENTER>. 60. Aguarde o trmino da instalao dos pacotes base e quando for questionado sobre o kernel que deve ser instalado escolha a opo linux-image-2.6- juntamente com a arquitetura mais adequada a seu processador. Por exemplo, para computadores com CPU AMD Athlon, voc deve escolher linux-image-2.6-k7, j para processador Intel Pentium IV, o interessante escolher linux-image-2.6-P4, e assim por diante. 61. O prximo passo, perguntar Ferramenta a ser utilizada para gerar o initrd de inicializao, escolha a opo initramfs-tools e pressione a tecla <ENTER>. 62. No menu principal do instalador escolha Configurar o gerenciador de pacotes e pressione a tecla <ENTER>. 63. Na questo Usar programas no-livres, responda Sim. 64. O APT far uma atualizao da lista de pacotes nesse momento. Caso aparea um erro com relao ao repositrio security, com a mensagem "No foi possvel acessar as atualizaes de segurana", escolha <Continuar>, e pressione a tecla <ENTER>. 65. Novamente no menu principal, escolha a opo Selecionar e instalar o software e pressione a tecla <ENTER>. 66. Na pergunta Participar do concurso de utilizao de pacotes ?, responda No. 67. Na tela de seleo de pacotes para instalao, desmarque todas as opes, escolha <Continuar>, e pressione a tecla <ENTER>. 68. O prximo passo, instalar o gerenciador de boot. No menu principal escolha a opo Instalar o GRUB em um disco rgido e pressione a tecla <ENTER>. 69. Em seguida, quando questionado se deseja instalar o gerenciador GRUB no registro principal de inicializao, responda Sim. Este passo pode demorar um certo tempo, tenha pacincia. 70. A prxima tela pergunta se voc deseja colocar uma senha no GRUB. Deixe o campo em branco (sem digitar nada) e pressione a tecla <ENTER>.
PG.: 15
71. Bom chegamos ao final da instalao. De volta ao menu principal do instalador, escolha a ltima opo ainda no visitada Finalizar a instalao e pressione a tecla <ENTER>. Quando a mensagem informando que a instalao acabou aparecer, pressione <Continuar>. Seu computador ser reiniciado. Alguns procedimentos logo aps o computador ter reiniciado: 1) Faa logon como root no sistema. 2) Edite as configuraes do APT atravs do comando "vim /etc/apt/sources.list" e deixe como abaixo: deb www.repositorios.eparana.parana/debian/ etch main contrib non-free deb www.repositorios.eparana.parana/celepar/ etch main contrib non-free deb www.repositorios.eparana.parana/security/ etch/updates main contrib non-free 3) Execute o comando "apt-get update" para atualizar a lista de pacotes. 4) Execute o comando "apt-get install basico-servidor". 5) Execute o comando "apt-get clean". 7) Execute o comando "apt-get --purge remove $(deborphan)".
PG.: 16
3.1. APT
O principal instalador de pacotes do GNU/Debian uma ferramenta do APT, o apt-get. Na maioria das vezes em que precisarmos instalar ou remover um pacote, este utilitrio que utilizaremos. freqente falarmos em pacotes em vez de programas, quando o assunto instalao. Isso vem da idia de empacotamento de programas, que a forma como cada distribuio organiza os programas que a constituem. No Debian, cada pacote termina com a extenso .deb, nas distribuies derivadas do RedHat a extenso .rpm. Alguns pontos sobre como usar o apt-get devem ser ressaltados: Apenas o usurio root pode instalar ou remover pacotes. Somente uma instncia pode ser executada. A segunda tentativa de iniciar, simultaneamente, a instalao de um pacote ir gerar uma mensagem de erro.
Para instalar um pacote, o apt-get obedece a seguinte ordem: Resolve dependncias: Verifica se o pacote requerido est disponvel para instalao e quais as suas dependncias. Caso no haja nenhum conflito com os pacotes instalados e suas dependncias sejam sanadas mostrado um relatrio para o usurio solicitando que confirme as alteraes que sero realizadas. Baixa: Ele acessa o mirror que voc configurou e faz o download do pacote e suas dependncias para o seu computador. O diretrio /var/cache/apt/archives recebe os pacotes baixados. Descompacta: O pacote descompactado para iniciar a instalao. Configura: Dependendo do pacote, antes de instalar, necessrio perguntar sobre algum tipo de preferncia ao usurio. Instala: Todos os componentes do pacote so copiados para os diretrios devidos. As principais aes que executaremos com este comando so: apt-get update - Existe uma lista, que contm uma descrio de todos os pacotes disponveis para o Debian, disponvel dentro de cada repositrio de pacotes. O apt-get consulta esta lista, para saber o que pode ser instalado. Este comando faz uma comparao entre a lista que voc tem armazenada e a lista que est no servidor de pacotes. Se a sua lista for mais velha, ele faz o download da mais recente. A atualizao de um nico pacote provoca o lanamento de um nova lista. apt-get upgrade Esta a opo responsvel pela atualizao de pacotes. Quando voc executa este comando, uma lista de pacotes copiada do repositrio para a maquina local do usurio, onde feita uma comparao entre as verses de software existentes no repositrio e na maquina local, caso existam verses mais recentes para os programas que o usurio possu em seu sistema, ento, o APT automaticamente atualizar estes programas no computador do usurio. No preciso dizer qual pacote voc quer atualizar, independente de ser apenas um, ou serem vrios, ele far toda atualizao necessria. apt-get clean - Aps a instalao de um pacote, no precisamos necessariamente, manter o arquivo .deb em nosso sistema (em /var/cache/apt/archives). O processo de instalao no remove os pacotes baixados! Se voc no remover os pacotes baixados, comear a acumul-los no disco rgido. Com o passar do tempo isso pode causar um problema de falta de espao. O apt-get clean faz a remoo de todos os pacotes no diretrio de cache do APT.
PG.: 17
apt-get install PACOTE - Executamos este comando para realizar a instalao de pacotes no sistema. Se quisermos instalar mais de um programa, basta escrever todos os nomes, separados por espao na linha de execuo do comando. Se um pacote precisa de outros para ser instalado, isto , se ele tem pr-requisitos, eles tambm sero selecionados para instalao automaticamente. Quando voc requisita a instalao de um pacote que no tem dependncias, o download comea imediatamente. Caso existam dependncias, elas so mostradas a voc e o programa aguarda a sua confirmao (Y/n) para continuar. Existem vrios motivos para ele esperar por uma confirmao: a lista de dependncias pode ser muito grande e voc pode no querer instalar todos os pacotes, pode no haver espao em disco suficiente para instalar o programa e/ou suas dependncias, o pacote ser incompatvel com outro j instalado e exigir que este seja removido, ou ainda, o repositrio no uma fonte confivel para o Debian, que acontece quando no existe na mquina a chave pblica do repositrio de onde vem a atualizao. Existe ainda, um caso em que h mais de uma verso disponvel para o mesmo pacote, se um pacote chamado nome possu 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: apt-get install nome=1.0-0 apt-get dist-upgrade - Possibilita a atualizao completa da distribuio utilizada pelo usurio. importante que usurio tenha em mente, que a execuo deste comando num sistema que utilize meta-pacotes customizados, como o caso do Debian Desktop Paran usado na Celepar, ou verses de software instaladas manualmente (atravs de compilao do cdigo fonte, por exemplo), podero gerar problemas graves, impossibilitando inclusive o uso posterior do sistema. Para a devida utilizao deste comando, necessrio a edio do arquivo de configurao do APT, o /etc/apt/sources.list, configurando o mesmo para utilizar os repositrios da nova distribuio que ser instalada no sistema. apt-get remove PACOTE - Remove um ou mais pacotes. Esta operao faz a desinstalao de um pacote do sistema e no a remoo do .deb do diretrio de cache do APT. Em alguns casos, os arquivos de configurao e/ou dados do pacote so mantidos. Isso pode ser bom ou ruim. Se voc removeu um pacote por acidente, todo o seu trabalho de configurao dele ainda estar preservado. Preste ateno s mensagens mostradas durante a remoo de um pacote para saber o que est acontecendo. Observe tambm que se algum pacote depende do pacote a ser removido, esse pacote tambm ser removido. apt-get --purge remove PACOTE - Remove um ou mais pacotes e seus respectivos arquivos de configurao. apt-get source PACOTE - Possibilita que o cdigo fonte de um programa seja copiado para maquina 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 fonte de programas para sua maquina, necessrio configurar adequadamente o arquivo /etc/apt/sources.list, para isso veja o tpico Reconfigurando a lista de pacotes, na seqncia. apt-get build-dep PACOTE - Este comando, tenta satisfazer as dependncias, que um determinado pacote contendo cdigo fonte de um programa possu, para ser compilado. Por exemplo, suponha que voc deseja recompilar o cdigo fonte do tuxracer (um joguinho), se voc executar o comando apt-get build-dep tuxracer, o APT tentar instalar todos os pacotes que sejam necessrios para compilao do pacote tuxracer. Em algumas situaes, necessrio instalar pacotes alm daqueles que so trazidos automaticamente pelo comando apt-get build-dep. Isto algo natural e voc dever se acostumar a estas situaes. apt-get check uma ferramenta de diagnostico. Ele atualiza o cache de pacotes e verifica se h alguma dependncia quebrada que necessita ser resolvida (utilizando-se apt-get -f install) no sistema. apt-get install --reinstall PACOTE - Em algumas situaes, precisaremos reinstalar um pacote j presente no sistema. Este o comando que permite fazer isso. Tome o cuidado de fazer uma cpia dos seus arquivos de configurao para no ter surpresas desagradveis.
PG.: 18
Voc deve estar se perguntando, como fazer para saber o que instalar, ou qual o nome de um determinado programa (pacote) no Debian. Para responder a essas dvidas, vamos apresent-lo aos dois programas criados para resolver este problema, e seus parmetros: apt-cache search NOME - Para procurar por um pacote qualquer, executamos este comando. Ele faz uma pesquisa na lista de pacotes disponveis, procurando pacotes que possuam a expresso fornecida no argumento NOME. A sada deste comando, apresenta todos os pacotes que apresentam a palavra fornecida como argumento em parte do nome ou na descrio do pacote. Existem formas mais complexas de busca que podem ser mais claras ou mais especficas, mas geralmente, a utilizao do comando grep para filtrar a sada j suficiente para grande maioria dos casos. apt-cache show PACOTE - Uma vez descoberto o nome correto do pacote Debian, voc pode visualizar todas as informaes sobre o pacote, bem como seu mantenedor, sua verso, sua descrio, dentre outras informaes relevantes. apt-cache showsrc PACOTE Tem a mesma funo que apt-cache show, porm, atua mostrando informaes sobre pacotes fontes. synaptic uma interface grfica para a instalao de pacotes. Ela tambm utilizada em outras distribuies, o Ubuntu uma delas.
Na configurao descrita acima, estamos apontando o APT para os repositrios internos da Celepar. A ordem das linhas faz diferena, o primeiro servidor a ser consultado o da primeira linha e assim por diante. Assim, devemos colocar o que est mais prximo no incio do arquivo. Tambm no pode haver espao entre o incio da linha e a palavra deb. Cada linha representa uma lista que dever ser copiada para o seu sistema. Se voc encontrar alguma linha que comece com deb-src, poder coment-la acrescentando o smbolo # no incio da linha. Este tipo de linha, serve para baixar o cdigo fonte de um programa. Lembre-se que os pacotes com extenso .deb, j foram compilados para uma arquitetura especfica, por isso, s baixar e instalar. Quando voc necessitar compilar um programa, e neste caso precisar do seu cdigo fonte, uma linha como a que mostrada abaixo deve ser inserida no arquivo de configurao do APT:
deb-src http://www.repositorios.eparana.parana/debian/ etch main
PG.: 19
O grupo Acquire diviso funcional usada para configurar as rotinas de download de pacotes e manipuladores de URI's utilizados pelas ferramentas do APT. O grupo Dir Definio de layout de diretrios. Usado para a configurao dos diretrios que sero utilizados pelo APT. O grupo Dselect Configuraes que afetam o uso da ferramenta dselect, quando ela utilizada em conjunto com o APT. O grupo DPKG Configuraes que afetam o uso do dpkg. As opes que fazem parte desta seo, alteram a forma normal como o dpkg atua, quando invocado pelo APT. O grupo Debug Utilizado para configurar opes para depurao no uso das ferramentas do APT.
Cada um destes grupos funcionais, possu uma gama prpria de opes, que no discutiremos aqui, por ser muito vasta. 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 man apt.conf.
PG.: 20
Exemplos: Exemplo 01: Configurando um servio de proxy para ser utilizado pelo APT. Esta configurao, possibilita buscar pacotes de programas na Internet atravs de um servidor proxy existente na sua rede. Acquire { http { Proxy http://usuario:senha@proxy.organizacao:8080/; }; }; Exemplo 02: Configurando a arquitetura e release (verso) padro dos pacotes a serem utilizados pelo sistema. APT { Architecture "i386"; Default-Release stable; }; Exemplo 03: Configurando o diretrio de cache do APT. Dir / { Cache "var/cache/apt/" { Archives "archives/"; srcpkgcache "srcpkgcache.bin"; pkgcache "pkgcache.bin"; }; }; Um timo arquivo de exemplos de configurao do apt.conf pode ser encontrado em /usr/share/doc/apt/examples/configure-index.gz.
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, distPG.: 21
upgrade, o pacote ser do stable. Para instalar pacotes do testing devemos utilizar o comando: # apt-get -t testing install [pacote] O mesmo procedimento se aplica as opes update, upgrade, dist-upgrade ou source. Podemos definir que um pacote sempre venha da release testing, para isso dentro do arquivo /etc/apt/preferences, por exemplo: Package: amule Pin: release a=testing Pin-Priority: 905 O pacote desejado vai ter prioridade maior que o de qualquer outro release, ento o pacote desejado ser da release testing.
3.2. dpkg
importante lembrar do comando dpkg. Ele tambm instala, remove e reconfigura pacotes. O dpkg vem aos poucos perdendo usurios para o APT, uma vez que este ltimo, proporciona maiores facilidades de utilizao, sendo a mais significativa dessas facilidades, o fato de instalar o software e suas dependncias automaticamente, algo que ainda no possvel com o dpkg. Mesmo com o avano do APT, muito importante estudar e entender o funcionamento e as opes que o dpkg possu. Isto porque, o dpkg continua sendo a principal ferramenta de obteno de informaes sobre os pacotes instalados no sistema, e em vrios casos, de resoluo de problemas com pacotes. Por essa razo, explicamos o uso desta ferramenta e de suas principais opes na seo Comandos de Uso Geral, do captulo Comandos Avanados, deste documento.
pacotes: make, autoconf, gcc, g++ e libc6-dev. Abaixo listamos os procedimentos gerais para configurao/compilao de cdigos fontes no GNU/Debian. Lembre-se que este procedimento pode variar um pouco dependendo do cdigo que se est compilando. O arquivo configure Este arquivo um script shell que examina o sistema para verificar se diversas dependncias necessrias para compilar o projeto sero satisfeitas. Ele deve ser executado digitando-se ./configure dentro do diretrio que contm o cdigo-fonte do programa a ser compilado. Esse script, tambm pode conter parmetros que podem ser passados na linha de execuo para configurao de opes especificas, para consultar a lista de parmetros disponveis, tente executar o script ./configure --help. Se o script configure no encontrar alguma das dependncias necessrias para compilao do programa, um erro gerado e a execuo finalizada automaticamente, gerando uma mensagem semelhante abaixo: checking for SDL - version >= 1.2.0... no configure: error: *** SDL version 1.2.0 not found! Nesse caso, nos falta a biblioteca de desenvolvimento (cabealhos) SDL verso 1.2.0 ou mais recente. Caso quisssemos resolver este problema, precisaramos instalar o pacote libsdl1.2-dev para resolver essa dependncia. A maioria das bibliotecas necessrias para a compilao de programas no GNU/Debian tm o prefixo lib e o sufixo -dev, como por exemplo, libc6-dev, libsdl1.2-dev, etc. make O comando make utiliza as configuraes que foram criadas pelo script configure para compilar mltiplos arquivos de cdigo fonte de um projeto. Utiliza tambm um arquivo de descrio (chamado makefile ou Makefile) que est presente no diretrio onde o cdigo fonte foi extrado. Seu contedo composto de regras que definem as dependncias entre arquivos fonte e os comandos necessrios para a compilao. A partir deste arquivo, ele executa seqncias de comandos que so interpretados pelo shell para realizar a compilao de maneira correta. make install o comando utilizado para compilar e em seguida executar o instalador do programa que acabamos de compilar. Alguns programas no possuem essa facilidade, nestes casos, o administrador ter tambm o trabalho manual de instalar o programa compilado corretamente, em geral, realizando atividades como copiar arquivos executveis para diretrios como /usr, e os arquivos de configurao para /etc, etc.
PG.: 23
Disk /dev/hdb: 80.0 GB, 80020396032 bytes 255 heads, 63 sectors/track, 8420 cylinders Units = cylinders of 16065 * 512 = 16025280 bytes Device /dev/hdb1 /dev/hdb2 Boot Start 1 63 End 62 8420 Blocks Id 497983+ 82 729007+ 83 System Linux swap / Solaris Linux
Como podemos ver atravs do exemplo acima, vrias informaes podem ser obtidas facilmente, como: nmeros de discos rgidos que o sistema possu, tamanho dos discos, nome de cada dispositivo, parties que cada disco tem e seus respectivos atributos, enfim, uma srie de dados que ajudam o administrador a administrar seus dispositivos de armazenamento. Vale ressaltar que caso seu sistema possua discos utilizando tcnicas de RAID via hardware, quando o comando for executado, os discos sero mostrados de acordo com as configuraes RAID que estiverem em vigor no seu sistema. Por exemplo, numa configurao em RAID 1 (mirroring), apesar de existirem fisicamente dois discos na maquina, apenas um ser mostrado com fdisk -l. Nos prximos tpicos, explicaremos como utilizar outro utilitrio de particionamento de discos. Caso voc tenha despertado interesse pelo uso do fdisk, d uma olhada em sua documentao com o comando man fdisk.
PG.: 24
As opes que utilizaremos no cfdisk esto descritas abaixo: Nova Cria uma nova partio, primria ou lgica, definida por um tamanho menor ou igual ao tamanho disponvel no HD. A partio primria, o tipo de partio bsica, definida por apenas um tipo de sistema de arquivos em que nenhuma sub-partio pode ser criada (por padres internacionais, apenas 4 parties primrias podem ser criadas por HD). Uma partio lgica, uma partio primria, em que vrias subparties podem ser criadas (extendendo-se o limite de 4 parties por HD). Excluir Remove uma partio j existente no disco, deixando a rea do HD que continha a partio com espao livre, para que uma ou mais parties possam ser criadas em seu lugar. Tipo Exibe uma lista com os tipos de partio que podem ser criados e ao final define o tipo de partio a ser usado. Inicializvel Define uma partio inicializvel (bootvel). Gravar Salva as alteraes feitas na tabela de parties do disco. Ajuda Exibe a ajuda do cfdisk.
PG.: 25
No exemplo acima, criamos um sistema de arquivos do tipo xfs na partio /dev/hda1. Essa a maneira mais simples de se criar um sistema de arquivos em uma partio, aps ela ter sido criada sem um tipo definido. Tambm podemos usar as extenses do utilitrio mkfs, para realizar a criao de sistemas de arquivos especficos. Abaixo um exemplo de utilizao de extenses que faz exatamente a mesma operao que o exemplo citado anteriormente: mkfs.xfs /dev/hda1
PG.: 27
OBS: Os discos IDE, SCSI e SATA so referenciados ambos como (hd?) pelo GRUB.
/sbin/grub-install /dev/hda Este comando grava o GRUB no MBR do primeiro disco rgido IDE do sistema e cria o diretrio /boot/grub, onde estaro os arquivos necessrios para o seu funcionamento. interessante executar o comando update-grub, que atualiza dinamicamente a lista de sistemas que podem ser carregados durante a inicializao da maquina, e os adiciona ao arquivo menu.lst automaticamente, conforme a instalao corrente. Tambm conveniente, ler o arquivo de configurao de exemplo do GRUB e otimiz-lo s suas necessidades. Para checar este arquivo, utilize o seguinte comando: vim /usr/share/doc/grub/examples/menu.lst
timeout = Define um tempo (em segundos) de espera. Se nenhuma tecla for pressionada, carrega a imagem padro. default = Define qual ser a opo padro que deve ser automaticamente selecionada quando nenhuma outra for especificada em um tempo definido pelo parmetro timeout. fallback = Caso ocorra algum erro inesperado e a opo padro no possa ser carregada, este parmetro define qual a outra opo deve ser utilizada. color = Permite que voc escolha as cores usadas no menu de boot. password = Permite que voc especifique uma senha. Est ser solicitada sempre que houver necessidade de realizar uma funo que no seja carregar as imagens disponveis, como por exemplo acessar a linha de comandos do GRUB. Voc pode
PG.: 29
utilizar tambm o parmetro password para esconder um arquivo que contenha outras configuraes, como um arquivo menu.lst secreto. O arquivo pode ter um nome qualquer. Ex.: password = senha (hd0,0)/boot/grub/secret.conf possvel ter vrias entradas do parmetro password em um mesmo arquivo de configurao, sendo que uma delas usada para bloquear o acesso as imagens/linha de comandos, e as outras, usadas para carregar arquivos de opes do GRUB. Durante a inicializao do sistema, voc poder digitar a tecla p para entrar com a senha que protege as imagens ou linha de comandos do GRUB, conforme a sua configurao. hiddenmenu = Est opo faz com que o menu de opes no seja mostrado, e a inicializao seja feita pela imagem definida pelo parmetro default, depois de expirado o tempo no parmetro timeout. O usurio pode requisitar o menu com as opes pressionando a tecla <ESC> antes que o tempo definido em timeout expire.
title = Define um texto que ser apresentado no menu de boot para identificar o sistema a ser inicializado. root = Determina qual a partio raiz do sistema a ser inicializado. rootnoverify = Idntico ao parmetro anterior (root), mas no tenta montar a partio-alvo, o que necessrio para alguns sistemas como o DOS e o MS Windows. kernel = Nesta opo, voc informa qual o kernel que ser inicializado. Tambm possvel passar parmetros diretamente para o kernel que ser carregado. Ex.: kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=791 module = Faz com que algum mdulo necessrio para o boot seja carregado. Lembre-se que estes no so mdulos do kernel (mdulos de som, rede, etc.) e sim mdulos necessrios ao boot de alguns sistemas, como por exemplo os utilizados pelo GNU Hurd. lock = Quando voc desejar controlar se uma pessoa pode ou no iniciar um sistema que esteja listado nas opes do menu de boot, voc pode utilizar esta opo que faz com que a senha especificada com o parmetro password seja solicitada no momento em que o usurio tentar carregar a imagem em questo. pause = Emite uma mensagem na tela e espera uma tecla ser pressionada. makeactive = Torna a partio ativa. Este comando est limitado as parties primrias dos discos. chainloader = Alguns sistemas como o Windows ou o Dos, armazenam seu prprio gerenciador de boot no incio da partio em que ele est instalado. Para efetuar a carga destes sistemas atravs do GRUB, voc precisa pedir para que o gerenciador de inicializao de tal sistema seja carregado e faa seu trabalho, iniciando o sistema em questo. hide e unhide = Esconde/mostra uma partio respectivamente. Estas duas opes, so necessrias quando houver mais de uma verso do DOS ou do Windows na mquina em parties diferentes, j que estes sistemas detectam automaticamente a partio. Vamos a um simples exemplo para ilustrar uma situao bem comum: Suponha que o Windows esteja instalado na primeira partio primria do primeiro disco rgido (hd0,0) e o DOS na segunda partio primria (hd0,1). Quando quisermos carregar estes sistemas, devemos ajustar o arquivo /boot/grub/menu.lst, adicionando as seguintes configuraes: # Poro do arquivo /boot/grub/menu.lst title Windows hide (hd0,1) unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive title Dos
PG.: 30
hide (hd0,0) unhide (hd0,1) rootnoverify (hd0,1) chainloader +1 makeactive map = Alguns sistemas no permitem ser iniciados quando no esto no primeiro disco (DOS, Windows 9x etc). Para resolver esta e outras situaes deste tipo, o GRUB tem um comando que permite enganar tal sistema mapeando as unidades de disco do modo como lhe for mais conveniente. Imagine que voc tenha o primeiro disco (hd0) com o GNU/Linux instalado e em um outro disco (hd1) com o Windows/DOS instalado. O Windows/DOS no permitem serem inicializados desta forma, e como soluo, voc poderia usar a seguinte entrada no arquivo de configuraes /boot/grub/menu.lst do GRUB: title Windows unhide (hd1,0) rootnoverify (hd1,0) chainloader +1 map (hd1) (hd0) makeactive Isso faz com que o disco (hd1), onde Windows/DOS est instalado, seja apresentado a este sistema como (hd0), um artifcio que permitir que estes sistemas sejam carregados normalmente.
tecla para completar nomes de comandos, bem como, parmetros de alguns comandos. Alguns comandos disponveis: cat - Este comando permite verificar o contedo de um arquivo qualquer, o qual deve estar gravado em um dispositivo ligado a sua mquina. Embora seja um recurso til, nenhuma permisso de acesso verificada e qualquer pessoa que tenha acesso a linha de comandos do GRUB, poder listar o contedo de arquivos importantes do seu sistema. Para contornar este problema, configure adequadamente o parmetro password no arquivo /boot/grub/menu.lst. No esquea que ainda possvel utilizar um disquete com o GRUB para iniciar a mquina, o que permite usar a linha de comandos pelo disquete. Ex: grub> cat (hd0,0)/etc/passwd cmp - Este comando utilizado para comparar dois arquivos. Ex: grub> cmp (hd0,0)/arquivo1 (hd0,0)/arquivo2 configfile - Carrega um arquivo de configurao do GRUB. Ex: grub> configfile (hd0,0)/boot/grub/menu.lst displayapm - Mostra informaes sobre APM. displaymem - Mostra informaes sobre a memria RAM. find - Permite encontrar um arquivo. A sada deste comando disponibiliza o nome completo do caminho para o arquivo e a partio onde o mesmo est localizado. Ex: grub> find stage1 geometry - Mostra informaes sobre a geometria reconhecida para seu dispositivo de armazenamento principal, e permite que voc defina uma geometria personalizada, caso esta esteja sendo reconhecida de forma errada. help um comando para ver a ajuda sobre a utilizao de outros comandos. Ex: help cmp install - Instala o GRUB, embora no seja recomendado o uso deste comando diretamente, j que possvel cometer erros facilmente e sobrescrever a tabela de parties de seu disco. Ex: install (fd0)/grub/stage1 d (fd0) (fd0)/grub/stage2 p (fd0)/grub/menu.lst setup - Voc pode usar este comando para instalar o GRUB. Note que sua sintaxe menos complexa do que a usada pelo comando install. Ex: grub> root = (hd0,0) grub> setup = (hd0) quit - Abandona a linha de comandos do GRUB. reboot - Reinicia o computador. boot - Efetua o carregamento atravs das opes definidas via linha de comando. Suponha um sistema Linux instalado em (hd0,0), podemos passar os seguintes comandos na linha de comandos para efetuar o boot de uma imagem do GNU/Linux: Ex: grub> root (hd0,0) grub> kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6 grub> boot Muitos outros comandos esto disponveis tanto na linha de comandos do GRUB quanto no arquivo de configurao /boot/grub/menu.lst. Um estudo mais aprofundado pode ser feito, lendo a documentao oficial do GRUB com o comando man grub.
relacionados ao SO em questo. (Os detalhes contidos na seo, foram desenvolvidos por Alexandre Costa alebyte@bol.com.br como contribuio ao guia FOCA GNU/Linux, e tambm, retirados das pginas do manual oficial do GRUB, e editados pela equipe da CELEPAR.)
PG.: 33
o responsvel pelo controle do processo de inicializao do sistema. O init utiliza o arquivo / etc/inittab durante sua execuo, para configurar cada runlevel do sistema. tambm neste arquivo que se encontra a configurao do nvel de execuo padro do sistema, que pode ser verificado atravs da linha que contm a designao :initdefault: deste arquivo (/etc/inittab). No GNU/Debian o arquivo /etc/inittab possuir uma linha com a seguinte definio: id:2:initdefault: A linha acima, indica que o nvel de execuo padro do sistema o 2. Podemos alterar este parmetro, para ajustar o nvel padro de execuo de um sistema Linux qualquer. Na distribuio GNU/Debian, os diretrios /etc/rc[0-6].d contm as ligaes simblicas para arquivos em /etc/init.d, que so acionados pelo init no nvel de execuo correspondente. Por exemplo, o arquivo S10sysklogd em /etc/rc2.d, um link simblico para /etc/init.d/sysklogd. Ento, o que aconteceria se voc removesse o arquivo /etc/rc2.d/S10sysklogd ? Simplesmente, o servio sysklogd deixaria de ser executado no nvel de execuo 2 do seu sistema. O GNU/Debian, possu o seguinte padro para definir se uma ligao simblica em /etc/rc[0-6].d iniciar ou interromper a execuo de um servio em /etc/init.d: Se um link iniciado com a letra K (kill), quer dizer que o servio ser interrompido naquele nvel de execuo. O que ele faz na verdade, executar o script do servio em questo em /etc/init.d seguido da opo stop. Se um link iniciado com a letra S (start), quer dizer que o servio ser iniciado naquele nvel de execuo. Isto far com que o script do servio em questo em /etc/init.d seja invocado seguido da opo start. Por ordem, os links com a letra K so executado primeiro seguido pelos que iniciam pela letra S. A ordem com que so executados, depende tambm do valor numrico que acompanha o link, por exemplo, os seguintes arquivos so executados em seqncia: S10sysklogd S12kerneld S20inetd S20linuxlogo S20logoutd S20lprng S89cron S99xdm Note, que os arquivos que iniciam com o mesmo nmero (S20*), so executados por ordem alfabtica. Para inserir ou remover scripts nos runlevels interessante utilizar a ferramenta updaterc.d, que a maneira correta (eu at diria: essa a forma mais elegante) para controlar o uso dos scripts de inicializao: Exemplos de uso: # update-rc.d ssh defaults Insere o servio ssh (/etc/ini.d/ssh) em todos os runlevels para iniciar e parar de foma correta dependendo de cada runlevel. # update-rc.d ssh start 20 2 . Insere o servio ssh (/etc/ini.d/ssh) apenas no runlevel 2 para iniciar. # update-rc.d -f ssh remove Remove o servio ssh (/etc/ini.d/ssh) de todos os runlevels em que est registrado.
PG.: 35
7. Sistema de Logs
Arquivo de Log, uma designao dada aos arquivos que so utilizados pelos programas do sistema para registrar suas atividades. Este registros, em geral, so compostos por mensagens informativas, de alerta e de erro, geradas pelos programas, durante sua execuo. Estes arquivos possuem informaes muito teis para o administrador do sistema. Atravs deles, possvel verificar o funcionamento do sistema, o comportamento dos programas, prevenir e corrigir erros e auditar o ambiente operacional. No Linux, h uma estrutura central para armazenamento e funcionamento do sistema de logs. Neste SO, os arquivos de log, so guardados comumente no diretrio /var/log, e um servio especial denominado syslog, que pode fazer de forma unificada, todo o registro de atividades do sistema (kernel e outros programas).
syslog
auth.log wtmp
para monitorao de logs o logcheck, veremos mais detalhes sobre ele nas prximas sees.
PG.: 37
-d Ativa o modo de depurao do syslog. O syslog permanecer operando em primeiro plano e mostrar as mensagens no terminal atual. Na distribuio GNU/Debian, o daemon syslogd iniciado atravs do script /etc/init.d/sysklogd.
-k [arquivo] Especifica o arquivo que contm os smbolos do kernel. Exemplos deste arquivo esto localizados em /boot/System.map-xx.xx.xx. O registro dos smbolos em um arquivo de log ao invs dos nmero que so informados pelo kernel por padro, tornam a depurao de um problema mais simples, j que os smbolo so mais descritivos do que os nmeros. Faz com que o daemon leia e registre todas as mensagens encontradas nos buffers do kernel, e aps esta operao, o daemon encerrado. Ativa o modo parania. Isto far com que o klogd somente carregue detalhes sobre os mdulos, quando os caracteres Oops forem detectados nas mensagens do kernel. recomendvel ter sempre a ltima verso do klogd e evitar a utilizao desta opo em ambientes crticos. -s o kernel. -x Esconde traduo EIP, assim ele no l o arquivo /boot/System.map-xx-xx-xx. Fora a utilizao da interface de chamadas do sistema para comunicao com -p -o
PG.: 38
Alm destes nveis, os seguintes sinnimos esto disponveis: error - Sinnimo para o nvel err. panic - Sinnimo para o nvel emerg. warn - Sinnimo para o nvel warning.
O sinalizador destino, define o destino das mensagens, pode ser um arquivo, um pipe (se iniciado por um "|"), um computador remoto (se iniciado por uma "@"), ou para determinados usurios do sistema (especificando os logins separados por vrgula) ou para todos os usurios que esto usando o SO via o comando wall (usando o caractere "*"). Conjuntos de sinalizadores de facilidades e nveis podem ser agrupadas separando-as por pelo caractere ";". Observaes: Sempre utilize a tecla <TAB> ao invs da barra de espaos para separar os parmetros do arquivo /etc/syslog.conf. Alguns sinalizadores de facilidades como o security, emitem um alerta
PG.: 39
sonoro no sistema e enviam uma mensagem para a console, como forma de alerta ao administrador e usurios que esto utilizando o sistema. Existem ainda 4 caracteres que garantem funes especiais: "*", "=", "!" e "-". A seguir uma breve descrio da funo que cada um deles desempenha: O caractere * - Todas as mensagens da facilidade especificada sero redirecionadas. O caractere = - Somente o nvel especificado ser registrado. O caractere ! - Todos os nveis especificados e de maior importncia NO sero registrados. O caractere - - Pode ser usado para desativar a sincronizao de escrita imediata do arquivo de log. Tem a vantagem de obter maior desempenho, porm, como a gravao no sncrona, caso o sistema seja desligado abruptamente, voc perder a informao das atividades que ainda no foram salvas no arquivo. Os caracteres especiais "=" e "!" podem ser combinados em uma mesma regra. Veja abaixo um exemplo de um arquivo /etc/syslog.conf padro de um sistema GNU/Debian: # # Primeiro alguns arquivos de log padres. Registrados por facilidade: # auth,authpriv.* *.*;auth,authpriv.none cron.* daemon.* kern.* lpr.* mail.* user.* uucp.* /var/log/auth.log -/var/log/syslog /var/log/cron.log -/var/log/daemon.log -/var/log/kern.log -/var/log/lpr.log /var/log/mail.log -/var/log/user.log -/var/log/uucp.log
# # Registro de logs do sistema de mensagens. Divididos para facilitar # a criao de scripts para manipular estes arquivos. # mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err # Registro para o sistema de news INN # news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice # # Alguns arquivos de registro "pega-tudo". # So usadas "," para especificar mais de uma prioridade (por # exemplo, "auth,authpriv.none") e ";" para especificar mais de uma # facilidade.nvel que ser gravada naquele arquivo. # Isto permite deixar as regras consideravelmente menores e mais legveis # *.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug
PG.: 40
-/var/log/messages
# # Emergncias so enviadas para qualquer um que estiver logado no sistema. # Isto feito atravs da especificao do "*" como destino das mensagens e so # enviadas atravs do comando wall. # *.emerg * # # interessante ter as mensagens mostradas no console, # mas somente em consoles que no so utilizadas. Caso voc queira esta # funcionalidade, descomente as 4 linhas abaixo: #daemon,mail.*;\ # news.=crit;news.=err;news.=notice;\ # *.=debug;*.=info;\ # *.=notice;*.=warn /dev/tty8 # O pipe /dev/xconsole usado pelo utilitrio "xconsole". Para us-lo, # voc deve executar o "xconsole" com a opo "-file": # # $ xconsole -file /dev/xconsole [...] # # NOTA: Ajuste as regras abaixo, ou ficar maluco se tiver um um site # muito acessado. # daemon.*;mail.*;\ news.crit;news.err;news.notice;\ *.=debug;*.=info;\ *.=notice;*.=warn /dev/xconsole # A linha baixo envia mensagens importantes para a console em que # estamos trabalhando (principalmente para quem gosta de ter # controle total sobre o que est acontecendo com seu sistema). *.err;kern.debug;auth.notice;mail.crit /dev/console
7.4.1. logger
Este comando permite enviar uma mensagem para os arquivos de log do sistema. A mensagem enviada aos arquivos, atravs do daemon syslogd, 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. logger [opes] [mensagem] Onde: mensagem
PG.: 41
a mensagem que ser enviada ao daemon syslogd para ser gravada num dos respectivos arquivos de log presentes no sistema. opes -i Registra o PID (nmero identificador) do processo. -s Envia a mensagem para a sada padro (STDOUT) e para o servio syslogd.
-f [arquivo] Envia o contedo do arquivo especificado como mensagem ao syslogd. -t [nome] Especifica o nome do processo responsvel pelo log que ser exibido antes do PID na mensagem do syslogd. -p [prioridade] Especifica a prioridade da mensagem. Deve-se utilizar a notao facilidade.nvel. Verifique os tipos de prioridade/nveis existentes no Linux no arquivo de configurao /etc/syslog.conf. O valor padro que utilizado caso este parmetro no seja especificado user.notice. -u [soquete] Envia a mensagem para o soquete especificado ao invs do syslogd. til para enviar mensagens atravs da rede para um servidor de log. Exemplo: logger -i -t GGA Teste teste teste logger -i -s -f /tmp/mensagem -p user.info
7.4.2. logcheck
um programa usado para enviar um e-mail periodicamente ao administrador do sistema (atravs do cron ou outro servio com a mesma funo) alertando sobre os eventos que ocorreram desde a ltima execuo do programa. As mensagens do logcheck, so tratadas por arquivos em /etc/logcheck e organizadas em categorias, antes de serem enviadas por e-mail, isto garante muita praticidade na interpretao dos eventos ocorridos no sistema. necessrio um servio SMTP configurado (exim, sendmail, etc) para que o e-mail elaborado por esta ferramenta possa ser enviado ao administrador. As categorias so organizadas por ordem de importncia (da mais para menos importante), e vo desde avisos sobre atividades ilcitas sendo executadas no sistema (providncias devem ser tomadas imediatamente para resolver a situao) at eventos anormais do sistema (mensagens de inicializao, mensagens dos daemons do sistema, etc.). O tipo de mensagem que ser includa/ignorada nos logs enviados pela ferramenta, podem ser ajustadas pelo administrador do sistema atravs dos arquivos/diretrios presentes em /etc/logcheck. Nomes de arquivos/diretrios contendo a palavra "ignore" so usados para armazenar expresses regulares que NO sero enviadas pelo logcheck. permitido o uso de expresses regulares perl/sed para especificar as mensagens nos arquivos de log. Para maiores detalhes sobre esta ferramenta, consulte o manual do comando: man logcheck
7.4.3. logrotate
Usado para fazer a rotao dos arquivos de log do sistema. A rotao de log
PG.: 42
processo que consiste em guardar o arquivo de log que est sendo utilizado atualmente pelo sistema e fazer com que os daemons passem a utilizar um novo arquivo para armazenar os novos registros das atividades do sistema. Este processo tambm conhecido como arquivamento de log. As tarefas do logrotate so programadas via cron ou outro servio de agendamento disponvel no sistema. Opcionalmente, os arquivos de log antigos podero ser compactados para diminuir a utilizao de espao em disco ou enviados por e-mail. A rotao dos arquivos de log proporciona maior agilidade quando precisamos encontrar algum detalhe til, o que seria mais difcil e demorado usando um arquivo de log muito extenso. A rotao de log, feita de acordo com o tamanho mximo que um determinado arquivo de log pode atingir, mas a opo -f da ferramenta pode ser usada para "forar" uma rotao no sistema de log. O arquivo principal de configurao do logrotate o /etc/logrotate.conf. Abaixo um modelo de configurao deste arquivo: #### As configuraes abaixo, afetam globalmente o funcionamento do logrotate: # Faz a rotao do arquivos de log semanalmente weekly # Mantm as ltimas 4 cpias de logs anteriores rotate 4 # Erros de no existncia dos logs so enviados por e-mail ao usurio root mail root # Cria novos arquivos de log (vazios) aps rotacionar os antigos create # O parmetro compress utilizado para fazer a compresso dos arquivos # antigos. O parmetro delaycompress usado para que o primeiro log # seja mantido compress delaycompress # Executam os scripts em prerotate e postrotate a cada vez que os logs # forem arquivados nosharedscripts # Definimos um diretrio que poder conter definies individuais de rotao # de log para cada servio do sistema. Contudo, alertamos que diversas # configuraes individuais podem deixar a interpretao deste arquivo confusa include /etc/logrotate.d # Define opes especficas para a rotao mensal de /var/log/wtmp. As opes # definidas individualmente como neste exemplo, sobrepem as opes globais # definidas anteriormente. # As definies para /var/log/wtmp, implicam que caso o arquivo atinja 5MB # (size 5M) ele ser arquivado, ser criado um novo arquivo com permisso # 0664 e pertencer ao usurio root e o grupo utmp (create 0664 root utmp) # e ser mantida somente uma cpia do log anterior (rotate 1). /var/log/wtmp { monthly create 0664 root utmp size 5M rotate 1
PG.: 43
} # 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 create 0664 root utmp rotate 1 } # Define opes especficas para a rotao semanal de /var/log/lastlog. /var/log/lastlog { missingok weekly create 0664 root utmp rotate 1 } # Define opes especficas para a rotao diria de /var/log/messages. # Neste caso, o ser arquivo ao atingir o tamanho de 1Mb (size 1M), ento o # novo arquivo ser criado com as mesmas permisses do arquivo anterior. # O comando killall -1 syslogd ser executado aps a rotao (postrotate) # para que o daemon syslogd funcione corretamente, mas somente uma vez # durante a rotao de vrios arquivos de logs (sharedscripts). # Sero mantidas as 10 ltimas cpias (rotate 10) do arquivo /var/log/messages # compactadas (o parmetro compress foi especificado globalmente neste # arquivo de configurao). /var/log/messages { daily size 1M sharedscripts postrotate /sbin/killall -1 syslogd endscript rotate 10 } # Define opes especficas para a rotao mensal dos arquivos em # /var/log/mirror/*. A falta desses arquivos no precisa ser notificada # ao administrador (missingok), mesmo assim o parmetro "nomail" evitar # isto de qualquer forma. Os logs rotacionados no sero compactados # (nocompress) e sero mantidas as ltimas 7 cpias (rotate 7) dos arquivos. /var/log/mirror/* { montly nomail missingok nocompress rotate 7 } # Fim do arquivo de configurao Qualquer definio de parmetro especificado nos arquivos individuais de configurao, substituir as definies anteriores. Quando o nmero mximo de arquivos de log mantidos pela opo rotate atingida, os arquivos eliminados sero enviados para o usurio especificado na opo mail. A utilizao da diretiva nomail evita isso. Quando for utilizar coringas para se referir a determinados arquivos dentro de um diretrio, no utilize a sintaxe "log-xxx-*", porque isto foraria a compresso de arquivos
PG.: 44
".gz" j comprimidos, gerando arquivos do tipo .gz.gz... e derrubando o processamento da sua mquina gerada por um loop de compactao e enchendo as entradas de diretrio. Ao invs disso, utilize a sintaxe log-xxx-*.log, ou outra, modificando a configurao do programa que gera os logs. Observao: importante enviar um sinal HUP ao programa que grava um determinado arquivo de log critico para que no ocorram problemas aps a rotao, isto pode ser feito usando o parmetro postrotate.
PG.: 45
8. Comandos Avanados
Pretendemos abordar neste tpico, a utilizao de alguns comandos do ambiente GNU/Linux que so de grande importncia no dia-a-dia do administrador de sistemas. Tome o cuidado necessrio com relao a execuo destes comandos em ambientes de produo.
usurio O usurio especificado ser usado para executar o comando (o usurio dever existir). comando Comando que ser executado. Podem ser usados parmetros normais usados na linha de comando. Os campos do arquivo, so separados por um ou mais espaos ou tabulaes. Um caractere * (asterisco), pode ser usado nos campos de data e hora para especificar todo o intervalo disponvel. O caractere - (hfen), serve para especificar perodos de execuo (incluindo o nmero inicial/final). O caractere , (vrgula), serve para especificar uma listagem de nmeros. Passos podem ser especificados atravs do caractere / (barra). Veja os exemplos no final desta seo. O arquivo gerado em /var/spool/cron/crontabs/[usurio] pelo comando crontab, tem o mesmo formato do /etc/crontab exceto por no possuir o campo usurio (UID), pois o nome do arquivo j identifica o usurio no sistema. Para editar um arquivo de usurio em /var/spool/cron/crontabs ao invs de editar o arquivo /etc/crontab use o comando crontab -e, para listar as tarefas daquele usurio use crontab -l e para apagar o arquivo de tarefas do usurio crontab -r (adicionalmente, voc pode remover somente uma tarefa atravs do crontab -e, apagando a linha correspondente). Observao: No esquea de incluir uma linha em branco no final do arquivo, caso contrrio o ltimo comando no ser executado. O cron define o valor de algumas variveis automaticamente durante sua execuo; a varivel SHELL definida como /bin/sh, PATH como /usr/bin:/bin, LOGNAME, MAILTO e HOME so definidas atravs do arquivo /etc/passwd. Os valores padres destas variveis, podem ser substitudos especificando um novo valor nos arquivos do cron. Exemplos de um arquivo /etc/crontab: SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin 00 10 * * * root sync # Executa o comando sync, como usurio root, todo dia as 10:00 hs. 00 06 * * 1 root updatedb # Executa o comando updatedb, como usurio root, toda segunda-feira as 06:00. 10,20,40 * * * * marcius banner # Executa o comando banner, como usurio marcius, todos os dias e a toda a hora em 10, 20 e 40 minutos. */10 * * * * root fetchmail # Executa o comando fetchmail, como root, de 10 em 10 minutos todos os dias. 15 0 25 12 * root echo "Feliz Natal ;-)"|mail john # Envia um e-mail as 0:15 todo o dia 25/12 para john, utilizando o usurio root desejando feliz natal ;-0.
PG.: 47
30 5 * * 1-6 root tar -czf /backup/backup.tar.gz /home # Executa o comando tar -czf /backup/backup.tar.gz /home automaticamente as 5:30 de segunda-feira a sbado, usando para isto o usurio root.
8.1.2. dd
O comando dd utilizado para copiar blocos de dados de um dispositivo de armazenamento. Com o dd, todos os dados so copiados a nvel de bloco, no interessando o tipo do sistema de arquivos utilizado no dispositivo. um utilitrio muito til para criar cpias fiis (imagens) a partir de um dispositivo de armazenamento para outro ou para arquivos. Exemplos de uso: dd if=/dev/zero of=/var/arquivo_paginacao bs=1M count=256
Onde: O parmetro if seguido pelo argumento /dev/zero, informa a origem dos dados, neste caso, o dispositivo gerador de bits com valor 0 (zero) do sistema. O parmetro of seguido pelo argumento /var/arquivo_paginacao, informa o destino dos dados copiados, aqui, o arquivo arquivo_paginacao, que receber todos os bits com valor 0 (zero) gerados pela origem (parmetro if). O parmetro bs que permite definir o tamanho do bloco a ser copiado. Neste exemplo, o bloco tem 1 Megabyte (1024 Kb) de tamanho. necessrio ateno na definio deste parmetro, para maiores detalhes consulte a documentao do dd (man dd). O parmetro count informa o nmero de blocos que sero copiados. No exemplo acima, sero copiados 256 blocos de 1 Megabyte cada, criando um arquivo de 256 Megabytes de tamanho total e com todos os bits de dados contendo o valor 0 (zero). Vamos a um outro exemplo: dd if=/dev/hdb of=/dev/hdc bs=1G count=4
Onde: O parmetro if, define a origem dos dados a serem copiados, neste caso, a partir do dispositivo /dev/hdb. Por sua vez o parmetro of, define o destino dos dados, /dev/hdc, outro dispositivo de armazenamento. Sero copiados blocos de dados com 1 Gigabyte de tamanho, definido atravs do parmetro bs. O nmero de blocos a serem copiados, 4 no exemplo acima, foi definido atravs do parmetro count.
8.1.3. diff
Compara dois arquivos e mostra as diferenas entre eles. O comando diff usado somente para a comparao de arquivos em formato texto. As diferenas encontradas, podem ser redirecionadas para um arquivo, que posteriormente poder ser usado pelo comando patch, para alterar um arquivo que no contm as diferenas. Isto til para grandes arquivos de texto, j que possvel copiar somente as modificaes (geradas atravs do diff, que so muito pequenas) e aplicar no arquivo para atualiz-lo (atravs do patch) evitando um grande trabalho manual. Este um sistema de atualizao muito usado na atualizao dos cdigos fonte do kernel do GNU/Linux. diff [diretrio1/arquivo1] [diretrio2/arquivo2] [opes] Onde: diretrio1/arquivo1 diretrio2/arquivo2 Arquivos e/ou diretrios que sero comparados. opes -lines [num]
PG.: 48
Gera a diferena em um certo nmero de linhas de contexto definido pelo argumento num. Por padro o diff gera um arquivo com 2 linhas que o mnimo necessrio para o correto funcionamento do comando patch. -a Compara os dois arquivos como arquivos texto. -b -B Ignora linhas em branco inseridas ou apagadas nos arquivos. -i -H Usa anlise heurstica para verificar os arquivos. -N Em uma comparao de diretrios, se o arquivo apenas existe em um diretrio, trata-o como presente mas vazio no outro diretrio. -P Em uma comparao de diretrios, se o arquivos apenas existe no segundo diretrio, trata-o como presente mas vazio no primeiro diretrio. Informa somente se os arquivos possuem diferenas entre si, no mostra as diferenas entre eles. -r Compara diretrios e sub-diretrios existentes recursivamente. -q Ignora diferenas entre maisculas e minsculas nos arquivos. Ignora espaos em branco como diferenas.
-S [arquivo] Inicia a comparao de diretrios pelo arquivo definido em [nome]. -t Aumenta a tabulao das diferenas encontradas.
Use o comando zdiff para comparar diretamente arquivos compactados pelo utilitrio gzip. Use o comando sdiff para visualizar as linhas diferentes entre os dois arquivos em formato texto simples. Exemplos: diff texto.txt texto1.txt Compara o arquivo texto.txt com texto1.txt e exibe suas diferenas na tela. diff -Bt texto.txt texto1.txt Compara o arquivo texto.txt com texto1.txt, ignorando linhas em branco e aumentando o espao de tabulao na apresentao das diferenas encontradas. diff texto.txt texto1.txt > texto.diff Compara o arquivo texto.txt com texto1.txt e gera um arquivo chamado texto.diff contendo a diferena entre eles. Este arquivo poder ser usado pelo comando patch para aplicar as diferenas existente entre os dois no arquivo texto.txt. diff -r /usr/src/linux-2.2.13 /usr/src/linux-2.2.14 > patch-2.2.14.diff
PG.: 49
Compara recursivamente os diretrios e sub-diretrios de linux-2.2.13 e linux-2.2.14 e grava as diferenas entre eles no arquivo patch-2.2.14.diff.
8.1.4. dpkg
O dpkg um programa de computador que a base do Sistema de Gerenciamento de Pacotes da distribuio GNU/Debian. Foi criado por Ian Jackson em 1993. O dpkg, similar ao RPM, que utilizada em outras distribuies como o Red Hat, usado para construir, instalar, testar, remover e fornecer informaes sobre os pacotes Debian. O dpkg composto por uma srie de ferramentas, que desempenham funes especificas em relao aos pacote Debian. A nossa inteno aqui, no explicar as opes que cada uma delas possu, e sim, apenas fornecer uma breve descrio do que cada uma delas faz. As ferramentas so: dpkg-source - Empacota e desempacota os arquivos fontes de um pacote Debian. dpkg-deb - Empacota e desempacota pacotes binrios. dpkg-reconfigure - Permite que o usurio execute ajustes nos pacotes j instalados no sistema, tambm conhecido como reconfigurador de pacotes. uma das ferramentas mais utilizadas do conjunto de aplicaes do dpkg. Vamos nos concentrar agora, no utilitrio dpkg em si. Vamos explorar melhor sua sintaxe de uso e suas principais aes e opes. Na linha abaixo, mostrado a sintaxe padro de uso deste utilitrio: dpkg [aes] [opes] [pacotes] Onde: pacotes Juntamente com algumas opes do dpkg, necessrio informar o nome de um (ou mais) pacote para que a ao definida por aquela opo possa ser desempenhada. Por exemplo, no uso da opo -i que faz a instalao de um pacote, preciso informar qual o pacote que dever ser instalado. aes: -i pacote Instala um pacote no sistema. --unpack pacote Desempacota um pacote, extraindo-o do formato .deb e montando uma estrutura de diretrios e arquivos de acordo com o esqueleto que foi usado na sua construo. --configure pacote Realiza a reconfigurao de um pacote que j est instalado no sistema. A reconfigurao consiste no ato de desempacotar os arquivos do pacote original, fazer a cpia de segurana dos arquivos de configurao do pacote instalado atualmente e executar o script postinst provido pelo pacote original. Tem o mesmo efeito que o comando dpkg-reconfigure. -r pacote Desinstala um pacote do sistema. Dependendo da configurao dos scripts de remoo do pacote, arquivos de dados e configurao podero permanecer no sistema. --update-avail Atualiza a lista que contm a descrio dos pacotes disponveis no sistema (mostrada com o comando dpkg -s pacote). A lista armazenada no arquivo /var/lib/dpkg/available. -A pacote Atualiza a lista que contm a descrio dos pacotes disponveis no sistema,
PG.: 50
adicionando a informaes sobre o pacote informado atravs do argumento homnimo. --clear-avail Limpa o arquivo que contm a lista com a descrio dos pacotes instalados no sistema. Evite usar esta ao. -C Procura por pacotes que foram instalados somente parcialmente em seu sistema. Muito interessante para resoluo de problemas. --get-selections padro Procura na lista de pacotes instalados no sistema pela expresso fornecida atravs do argumento padro. --print-architecture Imprime a arquitetura padro utilizada pelos pacotes instalados no sistema. -P pacote Faz a remoo completa de uma pacote do sistema, incluindo arquivos de dados, de configurao, etc. Use esta opo com cautela. -l [pacotes] Lista todos os pacotes instalados no sistema com suas respectivas informaes. uma opo das mais utilizadas pelos administradores. Opcionalmente, voc poder especificar o nome de um ou mais pacotes (separados por espaos) para verificar suas informaes. -s pacote Exibe as informaes sobre um determinado pacote. Estas informaes so retiradas do arquivo /var/lib/dpkg/available. -S padro Pesquisa pelos arquivos que um determinado pacote possu no sistema, de acordo com a expresso fornecida pelo argumento padro. -L pacote Permite visualizar todos arquivos relacionados ao pacote especificado. -b diretrio [nome] Permite construir um pacote Debian, por meio de um diretrio que esteja organizado sob a forma padro do Debian para construo de pacotes, e opcionalmente, especificar um nome para o pacote gerado. -c pacote Lista o contedo de um pacote. -I pacote Exibe informaes sobre um determinado pacote. -X pacote diretrio Extra e exibe o contedo de um pacote especificado atravs do argumento homnimo, para dentro do diretrio fornecido pelo usurio. 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. --abort-after=nmero Ajusta o nmero de erros que podero ocorrer antes da execuo do dpkg ser
PG.: 51
encerrada. -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. --ignore-depends=pacote Faz com que as dependencias para a instalao de um pacote sejam ignoradas. Atualmente, o dpkg emite alertas sobre as dependencias de instalao no resolvidas de um pacote. Esta opo faz com esses alertas sejam sumariamente ignorados e a instalao do pacote prossiga. Evite utilizar esta opo, ela gera problemas de pacotes quebrados no sistema, ou seja, pacotes que no tem todas suas dependncias resolvidas. --no-act Faz uma simulao de acordo com as aes envolvidas. Por exemplo, voc pode simular a instalao ou remoo de um pacote para verificar se algum erro ser gerado pelo sistema de gerenciamento de pacotes. Tenha certeza que voc especificou esta opo antes da citao de qualquer ao na linha de comando, caso contrrio, esta opo no ter efeito e a ao ser desempenhada de fato. -R Faz com que o dpkg opere no modo recursivo. -G Informa ao dpkg para no instalar um pacote caso uma verso mais recente do pacote em questo j esteja instalada no sistema. -E No realiza a instalao de um pacote cuja a mesma verso j se encontra instalada no sistema. --log=arquivo Permite especificar um arquivo onde o dpkg vai realizar os registros das suas operaes. Por padro isto feito em /var/log/dpkg.log. Exemplos: dpkg -i tuxracer-1.20.deb Instala o pacote tuxracer. dpkg -r tuxracer Remove o pacote tuxracer do sistema. dpkg -P mysql-server-4.1-5 Remove completamente o pacote mysql-server do sistema, inclusive seus arquivos de dados e de configurao. dpkg -l Lista todos os pacotes instalados no sistema.
8.1.5. export
Exibe, configura e remove uma varivel de ambiente. Variveis de ambiente so diferentes das variveis de shell, que podem ser configuradas/removidas com os comandos set e unset respectivamente. Variveis de ambiente, so utilizadas para guardar dados volteis relacionados a sesso do usurio no sistema. Por exemplo, a varivel USERNAME possu o nome do usurio que iniciou a sesso, j a varivel EDITOR, guarda o caminho e o nome para o
PG.: 52
editor de textos padro do shell. Variveis de ambiente tambm podem ser definidas atravs do arquivo de configurao /etc/environment. export [opes] [varivel=valor] Onde: varivel=valor Nome da varivel de ambiente que se deseja configurar e seu respectivo valor. Caso a varivel no exista, ela ser criada e receber o valor discriminado aps o sinal de igualdade, caso j exista, somente receber o valor definido aps o sinal de igual. opes: -f [varivel/funo] Caso a opo -f seja informada, significa que o usurio est informando uma funo shell e no uma varivel. -n [varivel/funo] Remove uma varivel/funo de ambiente. Exemplos: export Exibe as variveis de ambiente do usurio. export teste=Linux Cria a varivel de ambiente teste caso ela no exista, e ajusta seu valor para Linux. export -n teste Remove a varivel de ambiente teste.
8.1.6. find
O comando find pode ser utilizado no s para procurar arquivos e diretrios, mas tambm, para executar outros comandos em conjunto com o resultado da pesquisa realizada. Veja o exemplo abaixo: find . -name "*.txt" -type f -exec wc -l {} \;
Onde: O caractere . o diretrio atual em que o usurio se encontra. O parmetro -name seguido do argumento *.txt, informa ao comando find para procurar por qualquer arquivo/diretrio que contenha qualquer nome (uso do caractere coringa *) seguido pela expresso .txt. O parmetro -type f, faz com que o comando find procure somente por arquivos. O parmetro -exec seguido pelo argumento wc -l { } \;, informa ao comando find que ele dever executar o que foi fornecido como argumento (o comando wc -l, neste caso) para cada resultado da busca realizada (os caracteres { }). Os caracteres \; no final do argumento, sinalizam o trmino do comando.
8.1.7. fsck
O utilitrio de sistema fsck (de "File System Check" ou "File System Consistency Check"), uma ferramenta usada para checar a consistncia de um sistema de arquivos no no GNU/Linux. Em geral, o fsck executado na inicializao do sistema, quando detectado que um sistema de arquivos est num estado inconsistente, indicando um desligamento anormal, como um travamento ou desligamento de energia. Tipicamente, o fsck disponibiliza opes para reparar sistemas de arquivos danificados: interativamente (o usurio tem que decidir como consertar problemas especficos), permitir ao fsck resolver
PG.: 53
problemas especficos (assim o usurio no precisa responder nenhuma questo), ou rever os problemas que precisam ser resolvidos num sistema de arquivos sem realmente resolv-los. O utilitrio tambm pode ser executado manualmente pelo administrador do sistema se este acreditar que h um problema com um determinado sistema de arquivos. Para esta atividade, sempre muito importante desmontar o sistema de arquivos em questo, antes de iniciar o procedimento de checagem. O fsck possu extenses para cada tipo especfico de sistema de arquivos suportados pelo SO. Assim, o executvel fsck.reiserfs apropriado para checagens do sistema de arquivos ReiserFS, j o fsck.ext3, adequado ao EXT3, e assim por diante. Alguns sistemas de arquivos como o XFS por exemplo, possuem extenses do fsck virtuais (no realizam a checagem de fato), devido as suas particularidades tcnicas (o XFS por exemplo, faz isso durante a montagem do sistema de arquivos, caso seja necessrio). importante que o administrador do sistema, procure a extenso correta para o sistema de arquivos ao qual deseja verificar ou os utilitrios adequados para desempenhar essa funo em cada um deles. fsck[.extenso] [opes] [sistema arquivos] Onde: extenso a extenso adequada ao sistema de arquivos que ser checado. Normalmente, as extenses possuem o mesmo nome que o sistema de arquivos em questo. sistema de arquivos o sistema de arquivos que dever ser checado. Por exemplo, /dev/hda2, /dev/sda5, etc. Mais de um sistema de arquivos pode ser informado com este argumento, separados por espaos. opes: Explicaremos aqui alguns opes gerais do fsck, j que cada extenso poder conter opes de modo peculiar. -s Permite visualizar a checagem de vrios sistemas de arquivos por vez no modo interativo. -t tipo Permite especificar o tipo do sistema de arquivos a ser checado, por exemplo, ext3 para o sistema de arquivos EXT3. -A Tenta realizar a checagem de todos os sistemas de arquivos que esto marcados para verificao no arquivo /etc/fstab. Para maiores detalhes sobre o arquivo /etc/fstab, consulte a seo com o nome do arquivo no captulo Arquivos de configurao. -C Exibe o progresso da checagem. -N No executada, apenas mostra o que seria feito. -P Quando a opo -A especificada, faz a checagem do sistema de arquivos raiz (/) em paralelo com outros sistemas de arquivos. Este tipo de checagem no muito seguro de ser praticado, evite-o. -R Quando se est checando todos os sistemas de arquivos com a opo -A, esta opo faz com que a checagem do sistema de arquivos raiz (/) seja evitada.
PG.: 54
-T No exibe o ttulo do programa durante o inicio da checagem. -V Exibe mais detalhes sobre as atividades que esto sendo realizadas pelo fsck. Exemplos: fsck.reiserfs /dev/hda2 Realiza a checagem do sistema de arquivos /dev/hda2, utilizando a extenso para o tipo de sistema de arquivos ReiserFS. fsck -t ext3 -C /dev/sda4 Realiza a checagem do sistema de arquivos /dev/sda4, utilizando a extenso para o tipo de sistema de arquivos EXT3 e exibindo o progresso da verificao.
8.1.8. last
Mostra uma listagem de entrada e sada de usurios no sistema. So mostrados os seguintes campos na listagem: Nome do usurio; Terminal onde ocorreu a conexo/desconexo; O nome da maquina (caso a conexo tenha ocorrido remotamente) ou console (caso tenha ocorrido localmente); A data em que o usurio entrou e saiu do sistema (login/logout), a hora (login/down) e caso ainda esteja utilizando o sistema, a mensagem Still logged in; O Tempo no formato Horas:Minutos em que esteve conectado ao sistema. A listagem mostrada em ordem inversa, ou seja, da data mais atual para a mais antiga. A listagem feita pelo comando last obtida do arquivo de log /var/log/wtmp. last [opes] opes -n [num] Mostra [num] linhas. Caso no seja usada, todas as linhas so mostradas. -R -a Mostra o hostname (nome da maquina) na ltima coluna. Ser muito til se combinada com a opo -d. -d Usa o DNS para resolver o IP de sistemas remotos para nomes DNS. Mostra as entradas de desligamento do sistema e alteraes do nvel de execuo do sistema. O comando last, pode ser seguido de um argumento que ser pesquisado como uma expresso regular durante a listagem, contudo, este argumento deve s ser vlido se representar um nome de usurio, uma console ou se for a palavra reboot. Exemplos: last Mostra a listagem geral de acessos ao sistema. last -a
PG.: 55
-x
Mostra a listagem geral incluindo o nome da mquina. last marcius Mostra somente atividades do usurio marcius. last reboot Mostra os registros das reinicializaes do sistema. last tty1 Mostra todas as atividades no console tty1.
8.1.9. lastlog
Mostra qual foi a ltima vez que os usurios cadastrados no sistema fizeram login (entraram no sistema). mostrado o nome usado no login, o terminal onde ocorreu a conexo e a hora da ltima conexo. Estes dados so obtidos atravs da pesquisa e formatao do arquivo /var/log/lastlog. Caso o usurio nunca tenha feito login no sistema consultado, mostrada a mensagem ** Never logged in **. Este utilitrio muito importante para vigiarmos os acessos dos usurios ao sistema, mas para essa atividade ser efetiva, temos que observar que os registros de log presentes em /var/log/laslog podem no estar completos devido as atividades de arquivamento do logrotate, e isso, deve ser levado em considerao quando os registros de acessos forem consultados. lastlog [opes] opes -t [dias] Mostra somente os usurios que se conectaram ao sistema nos ltimos dias. Utilize o argumento dias para definir a quantidade de dias antes da data atual que devero ser exibidos. -u [usurio] Mostra somente detalhes de acesso com relao ao usurio definido pelo argumento usurio. Exemplos: lastlog Exibe a listagem completa de acessos ao sistema por usurio. lastlog -t 3 Exibe a lista de acesso dos ltimos 3 dias. lastlog -u marcius Exibe os registros de acesso do usurio marcius.
8.1.10. lsof
O utilitrio lsof lista os arquivos, diretrios, pipes, bibliotecas, entre outros recursos do sistema, que esto sendo utilizados por um determinado processo. um comando muito interessante de se utilizar, quando somos impedidos de desmontar um determinado volume no sistema, pois permite averiguar qual processo est utilizando o recurso em questo. lsof [opes] [nome] Onde: nome Define o nome do arquivo, diretrio, pipe, biblioteca, etc, que se deseja verificar se est sendo ou no utilizado por um determinado processo.
PG.: 56
opes: +D [diretrio] Faz com que lsof procure por todas as instncias do diretrio especificado no argumento homnimo que esto sendo utilizadas pelos processos do sistema. -N Utilizado para verificar recursos (arquivos, diretrios, etc) que esto sendo utilizados em uma estrutura de rede baseada em NFS. -p [PID] Permite especificar o PID de um determinado processo para listar todos os recursos (arquivos, diretrios, etc) utilizados por ele. -u [usurio/UID, ...] Verificar os recursos (arquivos, diretrios, etc) em uso por usurios. Pode-se especificar mltiplos usurios pelo nome de login no sistema ou UID, separados por vrgula. preciso ser administrador do sistema para verificar os recursos de outros usurios. -U Permite verificar todos os soquetes Unix que esto em uso no momento. -T[sinalizadores] Esta opo verifica o status das conexes TCP/IP, assim como o comando netstat. O parmetro -T possu alguns sinalizadores que permitem filtrar os resultados do comando lsof, para mais detalhes consulte a documentao com o comando man. -S [segundos] Permite especificar o tempo limite em segundos para funes (lstat, readlink e stat) do kernel. O menor valor que pode ser especificado 2, o padro 15, caso no seja definido um valor, o padro utilizado. Muito cuidado com este parmetro, pois ele afeta o comportamento de funes importantes do sistema. Exemplos: lsof /var Lista todos os recursos (arquivos, diretrios, pipes, etc) que esto em uso no diretrio /var. lsof +D /var/log Lista todos os processos e os respectivos recursos (arquivos, diretrios, pipes, etc) que esto sendo utilizados no diretrio /var/log. lsof -p 2042 Lista todos os recursos (arquivos, diretrios, pipes, etc) utilizados pelo processo com PID 2042. lsof -u marcius,ze Lista todos os recursos (arquivos, diretrios, pipes, etc) utilizados pelos usurios marcius e ze no sistema.
8.1.11. lspci
Permite verificar informaes detalhadas sobre o barramento PCI e AGP e os dispositivos que esto plugados nestes barramentos. Na maioria das vezes, este utilitrio consegue reconhecer e exibir o nome correto do controlador de cada dispositivo conectado ao barramento PCI/AGP do computador, em alguns casos contudo, os dispositivos podem ser mostrados como Unknow Device denotando o desconhecimento dispositivo. Para tentar contornar este tipo de situao, voc pode usar o script updatePG.: 57
pciids, que far o download de um novo arquivo de definies para ser utilizado pelo utilitrio lspci. Em casos onde o acesso a Internet feito via servio de Proxy, necessrio ajustar a varivel de ambiente http_proxy com o uso do comando export para que update-pciids funcione corretamente. lspci [opes] opes: -v Exibe informaes detalhadas sobre cada componente presente no barramento PCI do computador. -vv Exibe informaes ainda mais detalhadas do que se usado o parmetro -v. -vvv Exibe todas as informaes disponveis a respeito do hardware conectado ao barramento PCI da maquina. -n Exibe o cdigo do fabricante e do dispositivo ao invs dos respectivos nomes. -nn Exibe o cdigo do fabricante e do dispositivo, alm dos respectivos nomes. -b Exibe a informao sobre o hardware e os respectivos nmeros de IRQ utilizados por cada um dos componentes. Interessante para descobrir conflitos. Exibe informao no formato de arvore. Interessante utilizar em conjunto com o parmetro -v. -d [cd. fabricante]:[cd. dispositivo] Exibe somente informaes dos dispositivos de um determinado fabricante (argumento cd. fabricante), ou ainda de forma mais restritiva, de um determinado dispositivo de um determinado fabricante (definindo os argumentos cd. fabricante e cd. dispositivo). Exemplos: lspci Exibe informaes sobre os barramentos PCI/AGP e os dispositivos que esto conectados a estes barramentos. lspci -v Exibe mais detalhes sobre os barramentos PCI/AGP e os dispositivos conectados a eles. lspci -n Exibe o cdigo do fabricante e dos dispositivos conectados aos barramentos PCI/AGP do computador. lspci -d 10ec:8139 Exibe informaes a respeito do dispositivo com cdigo 8139 do fabricante com cdigo 10ec. -t
8.1.12. lsusb
Permite listar os dispositivos USB conectados ao computador. til para exibir informao sobre os dispositivos removveis do sistema.
PG.: 58
lsusb [opes] opes: -v Exibe informaes detalhadas dos dispositivos USB conectados ao sistema. -s [barramento]:[dispositivo] Permite visualizar informao especifica sobre o dispositivo conectado a um determinado barramento USB do computador ou sobre todos os dispositivos plugados a um determinado barramento (especificando somente o argumento barramento). -D [dispositivo] Faz com que, ao invs do comando lsusb verificar o diretrio /proc/bus/usb para obter informaes sobre os dispositivos USB conectados ao computador, ele exiba informaes especificas de acordo com o argumento dispositivo fornecido pelo usurio. O argumento dispositivo deve ser definido como, por exemplo, /proc/bus/usb/001/001. Exemplos: lsusb Exibe informaes a respeito de todos os dispositivos USB conectados ao sistema. lsusb -v Exibe informao detalhada, sobre todos os dispositivos conectados aos barramentos USB disponveis na maquina. lsusb -s 002:001 Mostra informaes sobre o primeiro dispositivo USB (argumento 001) conectado ao segundo barramento (argumento 002) USB da maquina. lsusb -D /proc/bus/usb/001/002 Mostra informaes especificas sobre o segundo dispositivo conectado ao primeiro barramento USB da maquina.
8.1.13. mount
O mount um utilitrio usado para disponibilizar, algo tambm conhecido como montar, um determinado sistema de arquivos. Algumas vezes, temos a necessidade de alterar as opes da montagem de um sistema de arquivos que j se encontra disponvel (montado) no sistema, sendo esta uma operao muito til para manuteno do sistema de arquivos, nessas ocasies, a execuo do comando com a opo remount pode ser necessria. Veja o exemplo abaixo: mount -t ext3 /dev/hda2 /boot -o remount,ro
Onde: O parmetro -t seguido do argumento ext3, informa o tipo do sistema de arquivos a ser disponibilizado, neste caso o ext3. O argumento /dev/hda2 o sistema de arquivos que se deseja montar. O argumento /boot o ponto de montagem deste sistema de arquivos. O parmetro -o permite que as opes de montagem sejam informadas, neste caso, os argumentos remount,ro que fazem com que o sistema de arquivos seja remontado (remount) em modo somente leitura (ro).
8.1.14. nice
Configura a prioridade da execuo de um programa. Para reajustar a prioridade de um programa j em execuo, utilize o comando renice, para maiores detalhes, consulte as informaes sobre o renice na seqencia desta seo. nice [opes] [comando]
PG.: 59
Onde: comando Comando/programa que ter sua prioridade ajustada. opes: -n [numero] Configura a prioridade que o programa ser executado. Se um programa for executado com maior prioridade, ele usar mais recursos do sistema para seu processamento, caso tenha uma prioridade baixa, ele permitir que outros programas tenham preferncia no uso dos recursos. A prioridade de execuo de um programa pode ser ajustada de -20 (a mais alta) at 19 (a mais baixa). Por padro, os programas so executados com prioridade igual a 10. Para ajustar prioridades altas, abaixo de 0 (zero), necessrio ter poderes de administrador do sistema (usurio root). Exemplos: nice -n -19 find / -name apropos Configura a prioridade de execuo do comando find para -19 (muito alta). nice -n -1 top Configura a prioridade de execuo do comando top para -1 (alta).
8.1.15. renice
Este utilitrio altera a prioridade de um ou mais programas em execuo. necessrio ter poderes de administrador do sistema (usurio root) para conceder prioridade mais alta do que a atual a um determinado processo. O comando renice, necessita do PID (Process Identification Number) do processo que se deseja alterar a prioridade. Voc tambm pode informar o UID (User Identification Number) do usurio ao renice, dessa forma, voc poder reajustar a prioridade de todos os programas daquele usurio. renice [prioridade] [opes] Onde: prioridade o nmero que define a nova prioridade do processo, pode variar de -20 (prioridade mais alta) 19 (prioridade mais baixa). opes -g Permite especificar um ou mais grupos, para alterar a prioridade de todos os processos, que estejam sendo executados sob a permisso destes grupos. -u Permite especificar um ou mais usurios, para alterar a prioridade de todos os processos, que estejam sendo executados sob a permisso destes usurios. -p Permite especificar um ou mais PID para que a prioridade dos processos com estes nmeros de identificao sejam alterados. Exemplos: renice 0 1335 Altera a prioridade do processo com PID 1335 para 0 (zero). renice -5 987 -u root marcius -p 900 800 Faz com que os processos com PID 987, 900 e 800 e todos os processos dos usurios root e marcius tenham sua prioridade alterada para -5.
PG.: 60
renice -1 -g cppc Altera a prioridade de todos os processos que estejam sendo executados sob permisso do grupo cppc para -1.
8.1.16. nohup
Executa um comando ignorando os sinais de interrupo. O comando poder ser executado at mesmo em segundo plano, caso o usurio que tenha iniciado a execuo do comando tenha sado do sistema. nohup [comando] As mensagens de sada do comando nohup so direcionadas para o arquivo ~/nohup.out. Exemplos: nohup find / -uid 0 >/tmp/rootfiles.txt & nohup updatedb &
8.1.17. pidof
Retorna o PID do processo especificado. pidof [opes] [nome] Onde: nome Nome do processo que se deseja obter o nmero PID. opes -s Retorna somente o primeiro PID encontrado. -x Retorna o PID do shell que est executando o script.
-o [PID] Omite um determinado PID da listagem de sada do comando. Exemplos: pidof nmbd Retorna o PID do processo chamado nmbd. pidof smbd nmbd sshd bash -o 2355 Retorna uma lista de PID com exceo do PID 2355.
8.1.18. pstree
Mostra a estrutura de processos em execuo no sistema em forma de rvore. pstree [opes] [pid] Onde: pid Nmero do processo que ter sua rvore listada. Se omitido, lista todos os processos. opes
PG.: 61
-a Mostra opes passadas na linha de comando. -c Mostra toda a estrutura (inclusive sub-processos do processo pai).
-G Usa caracteres grficos no desenho da rvore de processos. -h Destaca o processo atual e seus antecessores.
-H [PID] Destaca o processo especificado. -l -n Classifica pelo nmero PID ao invs do nome. -p -u Mostra tambm o dono do processo. -U Usa o conjunto de caracteres Unicode para o desenho da rvore. Mostra o nmero PID entre parnteses aps o nome do processo. No faz quebra de linha.
Exemplos: pstree Mostra a arvore de processos. pstree -Ap Mostra a arvore de processos identada por caracteres ASCII e juntamente com cada processo o nmero de seu PID.
8.1.19. shred
um utilitrio para ocultao de contedo. Com ele possvel sobrescrever o contedo de um arquivo de modo que sua recuperao seja extremamente complexa e na maioria das vezes impossvel. Opcionalmente, tambm possvel excluir o arquivo. Quando se trata de dados confidenciais, necessrio tomar as devidas precaues no momento de apagar uma informao, e em muitos casos, os administradores recorrem a scripts que envolvem o dispositivo gerador de bits aleatrios /dev/random, o que torna a operao mais trabalhosa. Nestes casos, o uso do comando shred pode ser bastante prtico e muito til. shred [opes] arquivo Onde: arquivo o arquivo alvo da operao de shred. opes: -f o modo fora bruta. Muda inclusive a permisso do arquivo, se necessrio, para permitir a escrita de dados no arquivo.
PG.: 62
-n nmero Escreve aleatoriamente o arquivo o nmero de vezes definido pelo argumento nmero. O padro 25 vezes. -s tamanho Permite especificar o tamanho que o arquivo dever ter aps sobrescrito. O tamanho pode ser definido usando os sinalizadores K para kilobytes, M megabytes e G gigabytes. -u Sobrescreve a informao contida no arquivo e o remove aps o trmino dessa operao. -x No arredonda o tamanho do arquivo at o prximo bloco de dados cheio. Est uma ao padro para arquivos no-regulares. -z Aps sobrescrever o arquivo, preenche o mesmo com bits de valor zero para evitar a deteco do uso do comando shred. Exemplos: shred teste.txt Sobrescreve os dados contidos no arquivo teste.txt. shred -s 1M teste.txt Sobrescreve os dados contidos no arquivo teste.txt, sendo que ao final da operao o arquivo ter 1 megabyte de tamanho. shred -u -z teste.txt Sobrescreve, ajusta todos os bits do arquivo teste.txt com valor zero e depois o apaga.
8.1.20. stat
Mostra informaes detalhadas sobre um inode (arquivo do ponto de vista do SO). As informaes exibidas pelo utilitrio so: nmero do dispositivo, numero inode, direitos de acesso, nmeros de links absolutos, ID's de usurio e grupo, tipo de dispositivo para o inode, tamanho total em bytes, nmero de blocos alocados, tamanho do bloco, data e hora do ltimo acesso, ltima modificao e alterao e o contexto de segurana. stat [opes] arquivos Onde: arquivos So os arquivos aos quais desejamos obter as informaes. opes: -c formato Exibe a sada conforme especificado no argumento formato. -f Exibe informaes sobre o sistema de arquivos onde o arquivo est localizado e no sobre o arquivo em si. -L Esta informao serve para obter informaes de um arquivo que referenciado por um link simblico. Voc deve utilizar esta opo, apontando para um link simblico em vez de um arquivo comum.
PG.: 63
-t
Imprime a sada na forma concisa. til para analise por outros programas.
Exemplos: stat teste.txt Exibe informaes detalhadas sobre o inode do arquivo teste.txt. stat -L meulinksimbolico Exibe informao sobre meulinksimbolico. o arquivo referenciado pelo link simblico
stat -f teste.txt Mostra informaes a respeito do sistema de arquivo sob o qual o arquivo teste.txt armazenado.
8.1.21. sync
Fora a gravao dos dados que esto no cache de disco (em memria) fisicamente nos dispositivos de armazenamento. O cache um mecanismo de acelerao que permite que os dados sejam armazenados temporariamente na memria ao invs de serem imediatamente gravados no dispositivo de armazenamento, quando o sistema estiver ocioso, realizada a persistncia dos dados no dispositivo de armazenamento. O GNU/Linux procura utilizar toda memria RAM disponvel para o cache de programas acelerando seu desempenho de leitura/gravao. O sync bastante til quando temos que desligar o sistema emergencialmente e no podemos executar o desligamento no modo normal (com o comando halt ou shutdown), a execuo do sync nestes casos, evita a perda de dados. sync
8.1.22. tar
Muitas pessoas imaginam que o tar seja um poderoso compactador, isto no verdade. Na realidade, este utilitrio um arquivador, ou seja, possu a capacidade de reunir vrios arquivos/diretrios num mesmo arquivo, sendo a compactao deste arquivo uma opo para o usurio. O tar pode atuar juntamente com os compactadores: gzip (.gz), bzip2 (.bz2) e compress (.Z). Este um comando extremamente til na gerao de cpias de segurana. tar [opes] [arquivo-destino] [arquivos-origem] Onde: arquivo-destino o nome do arquivo de destino. Normalmente especificado com a extenso .tar, caso seja usado somente o arquivamento, ou .tar.gz/.tgz, caso seja usada a compactao. arquivos-origem Especifica quais arquivos/diretrios sero compactados. Opes: -c, --create Cria um novo arquivo .tar. -t, --list Lista o contedo de um arquivo .tar.
PG.: 64
-u, --update Atualiza arquivos compactados no arquivo .tar. -f, --file [arquivo] Usa o argumento [arquivo] especificado para gerao do arquivo .tar. -j, --bzip2 Usa o programa bzip2 para processar os arquivos do tar. -l, --one-file-system No processa arquivos em um sistema de arquivos diferentes de onde o tar foi executado. -M, --multi-volume Cria/lista/descompacta arquivos em mltiplos volumes. O uso de arquivos em mltiplos volumes, permite que uma grande cpia de arquivos que no cabe em uma nica mdia como um disquete, por exemplo, seja dividida em mais de uma mdia. -o Grava o arquivo no formato VT7 ao invs do ANSI. -O, --to-stdout Descompacta arquivos para a sada padro (monitor) ao invs de gravar em um arquivo. --remove-files Apaga os arquivos de origem aps serem processados pelo tar. -R, --record-number Mostra o nmero de registros dentro de um arquivo tar em cada mensagem. --totals Mostra o total de bytes gravados com a opo --create. -v Mostra os nomes dos arquivos enquanto so processados. -V [nome] Define o nome do volume em que arquivo tar ser guardado. til para utilizao com fitas de backup. -W, --verify Tenta verificar o arquivo gerado pelo tar aps grav-lo. -x Extra arquivos gerados pelo tar. -X [arquivo] Tenta apagar o arquivo informado como argumento em [arquivo], dentro de um arquivo compactado .tar. -Z -z Usa o programa gzip durante o processamento dos arquivos. --use-compress-program [programa]
PG.: 65
Usa o programa de compresso definido no argumento [programa] durante o processamento dos arquivos. A extenso precisa ser especificada no arquivo de destino para sua correta identificao:
Arquivos gerados pelo tar precisam ter a extenso .tar; Caso seja usada a opo -j para compactao, a extenso dever ser .tar.bz2; Caso seja usada a opo -z para compactao, a extenso dever ser .tar.gz ou .tgz; Caso seja usada a opo -Z para a compactao, a extenso dever ser .tar.Z ou .tgZ.
importante saber qual o tipo de compactador usado durante a gerao do arquivo tar, pois ser necessrio especificar a opo apropriada para descompact-lo. Uma dica importante a de usar o comando file no arquivo tar para descobrir com que utilitrio ele foi compactado. Exemplos: tar -cf index.txt.tar index.txt Cria um arquivo chamado index.txt.tar que armazenar o arquivo index.txt. Voc pode notar usando o comando ls -lh, que o arquivo foi somente arquivado sem compactao, isto til para juntar diversos arquivos em um s. tar -xf index.txt.tar Extra o arquivo index.txt do arquivo tar index.txt.tar. tar -czf index.txt.tar.gz index.txt O mesmo que o exemplo de arquivamento anterior, s que agora usado compactao a opo -z (compactao atravs do programa gzip). Voc agora pode notar digitando ls -lh que o arquivo index.txt foi compactado e depois arquivado no arquivo index.txt.tar.gz. tar -cvf /dev/st0 /home Faz o arquivamento dos diretrios que se encontram em /home (diretrios pessoais dos usurios) no dispositivo de fita /dev/st0 (drive de fita SCSI). tar -xzf index.txt.tar.gz Descompacta e extra o arquivo index.txt a partir do arquivo index.txt.tar.gz. tar -t index.txt.tar Lista o contedo de um arquivo .tar. tar -tz index.txt.tar.gz Lista o contedo de um arquivo .tar.gz.
8.1.23. watch
Executa um comando de forma repetida, por padro a cada 2 segundos, e exibe a sada do comando em tela cheia. O watch tambm permite monitorar a diferena entre os resultados obtidos com os comandos executados, algo realmente til para avaliao de resultados. watch [opes] comando Onde: comando o comando que se deseja utilizar e que o watch ir executar repetidamente. interessante especificar o comando utilizando aspas, como por exemplo, ls -lh /tmp.
PG.: 66
opes: -d, --differences[=cumulative] Reala as diferenas encontradas na sada do comando executado. Se o parmetro cumulative for especificado, o watch ir mostrar de forma realada tudo o que foi alterado desde a primeira execuo do comando. -n segundos Define o intervalo de tempo em segundos, atravs do argumento homnimo, em que o watch dever executar o comando especificado pelo usurio. -t No exibir o cabealho do comando watch. Exemplos: watch -n 5 cat teste.txt Executa o comando cat teste.txt a cada 5 segundos e exibe a sada na tela. watch -t -n 3 differences=cumulative cat -n teste.txt Executa o comando cat -n teste.txt a cada 3 segundos, no exibindo o cabealho do watch e marcando as alteraes sofridas pelo arquivo desde a primeira execuo do comando.
8.1.24. which
Lista o caminho completo do comando que est sendo executado. Utilizado principalmente por scripts shell. Para realizar a busca pelo comando a ser executado, o which usar a varivel de ambiente PATH. which [opes] comando Onde: comando o comando que desejamos saber qual o caminho completo para o executvel. Deve ser informado sem o uso de qualquer parmetro. opes: -a Exibe todos os caminhos em que o comando especificado foi encontrado e no s o primeiro (a partir de onde ele prioritariamente executado). Exemplos: which -a ls Imprime na tela, todos os caminhos encontrados para o executvel ls.
PG.: 67
interface informada atravs do argumento fornecido. No caso de adicionar uma entrada a tabela, esta opo far com que aquela interface, seja associada ao endereo que est sendo configurado (como na opo -D). -n Exibe os endereos IP, em vez dos nomes, de cada entrada da tabela de cache
ARP.
-s endereo/IP MAC [pub] Adiciona uma entrada permanente na tabela cache ARP para a maquina a qual foi fornecido o argumento endereo/IP. O parmetro pub pode ser utilizado para criar uma entrada de proxy ARP. Exemplos: arp Exibe o contedo completo da tabela cache ARP. arp -a 10.15.15.15 Exibe a entrada correspondente ao endereo 10.15.15.15. Caso no haja nenhuma entrada na tabela que corresponda ao endereo fornecido, um erro ser reportado ao usurio. arp -n Mostra as entradas da tabela cache ARP usando endereos IP em vez de nomes no formato DNS. arp -s 10.15.15.15 00:01:a0:5f:55:ab -i eth0 Cria uma entrada permanente na tabela cache ARP, para a maquina com endereo 10.15.15.15, associando esta maquina ao endereo fsico 00:01:a0:5f:55:ab e a interface de rede eth0.
8.2.2. dig
usado para realizar pesquisas em servidores DNS. mais flexvel e exibe informaes mais detalhadas que o obsoleto nslookup. muito utilizado para descobrir problemas relacionados a estrutura de resoluo de nomes DNS numa rede. O comando dig, utiliza todos servidores DNS cadastrados no arquivo /etc/resolv.conf para realizar as pesquisas efetuadas pelo usurio. dig [servidor] [opes] [alvo] Onde: servidor o nome ou endereo IP do servidor DNS que deve ser consultado para realizar a pesquisa pelo domnio que se deseja pesquisar. alvo o domnio ou endereo IP que se deseja pesquisar (ex.: www.debian.org). opes: -b endereo Especifica o IP da maquina de origem sob o qual a pesquisa deve ser realizada. til para maquinas com mltiplos endereos IP. -f arquivo Faz com o dig opere no modo batch. Dessa forma, possvel especificar um arquivo (pelo argumento arquivo) que contenha as pesquisas que devem ser feitas pelo comando dig. O arquivo deve ser organizado da mesma forma como uma pesquisa dig feita atravs da linha de comandos.
PG.: 69
-p porta Especifica uma porta para acesso ao servidor DNS para realizar a consulta. Por padro, a porta 53 utilizada. -x endereo Realiza a pesquisa reversa, ou seja, permite que o usurio especifique um endereo TCP/IP para que este seja resolvido, um nome correspondente para aquele endereo ser retornado como resultado. Exemplos: dig 10.15.61.248 -p 53 www.debian.org Pesquisa quais so os servidores que respondem pelo domnio www.debian.org, atravs do servidor DNS 10.15.61.248 usando a porta 53. dig -x 10.15.61.248 Faz a pesquisa reversa para o endereo 10.15.61.248.
8.2.3. ifconfig
O utilitrio ifconfig, utilizado para configurar e exibir informaes sobre as interfaces de rede do computador. Diferentemente do mii-tool (veja este comando mais adiante), ele permite verificar e ajustar os protocolos de rede que o sistema ir utilizar para se comunicar em rede. Durante o processo de boot da maquina, ifconfig invocado para configurar as interfaces de rede do computador de acordo com as configuraes gravadas no arquivo /etc/network/interfaces. ifconfig [-v] [-a] [-s] [interface] [opes] Onde: interface a interface de rede que desejamos consultar ou modificar. interface de rede so a eth0, etho:0, eth1, etc.
Exemplos de
opes: -a Disponibiliza informao sobre todas as interfaces atualmente disponveis. -s Exibe uma tabela resumida sobre envio/recebimento de dados nas interfaces, funciona analogamente ao comando netstat -i (veja mais detalhes sobre este comando mais adiante). -v Mostra informaes mais detalhadas, principalmente em algumas situaes de erro especificas. up um sinalizador que faz com que a interface alvo seja ativada, ou seja, faz com que ela fique disponvel para que o sistema possa utiliz-la. down Assim como up um sinalizador, porm, tem funo inversa a deste, sendo down, responsvel pela desativao de uma interface de rede. [-]arp Ativa ou desativa (usando o sinal de -) o uso do protocolo ARP na interface. [-]promisc Ativa ou desativa (usando o sinal de -) o modo de transmisso de pacotes de rede promscuo.
PG.: 70
[-]allmulti Ativa ou desativa (usando o sinal de -) o modo de transmisso de pacotes de rede multicast. metric nmero Este parmetro ajusta a mtrica de rede, definida pelo argumento nmero, para a interface alvo. mtu nmero Este parmetro ajusta a Unidade Mxima de Transferncia (MTU) da interface. netmask endereo Ajusta o endereo da mascara da sub-rede, definido pelo argumento endereo, do protocolo TCP/IP. irq endereo Ajusta o endereo de IRQ do dispositivo em questo. Opo utilizada para placas de rede antigas que no suportam mudana dinmica de IRQ. io_addr endereo Configura o endereo de IO do dispositivo. mem_start endereo Configura uma rea de memria compartilhada para ser usada pelo dispositivo. [-]broadcast [endereo] Permite ajustar o endereo de broadcast da interface ou ativar e desativar (usando o sinal de -) o sinalizador IFF_BROADCAST. multicast Configura a interface para o uso do modo de transmisso de pacotes de rede multicast. address endereo Configura o endereo TCP/IP da interface, atravs do argumento endereo. Exemplos: ifconfig Exibe informaes de todas as interfaces de rede ativas do computador. ifconfig -v eth0 Exibe informaes sobre a interface eth0. ifconfig eth0 192.168.1.1 netmask 255.255.255.0 Configura e ativa a interface de rede eth0, com endereo de rede 192.168.1.1 e mascara de sub-rede 255.255.255.0.
opes: -a Ativa/desativa todas as interfaces de rede definidas com a clusula auto no arquivo /etc/network/interfaces. --force Fora a ativao/desativao da interface de acordo com as opes definidas pelo usurio. -i arquivo Permite que a configurao de ativao/desativao das interfaces sejam feitas com base num arquivo diferente de /etc/network/interfaces. Utilize o argumento arquivo para definir qual ser o arquivo de configurao alternativo a ser usado. Exemplos: ifup -a Ativa todas as interfaces de rede da maquina, que contm a clusula auto em sua configurao no arquivo /etc/network/interfaces. ifdown -i arquivo_configuracao.conf Desativa as interfaces de rede de acordo com as configuraes do arquivo alternativo arquivo_configuracao.conf. ifup eth0 Ativa a interface de rede eth0. ifdown eth1 Desativa a interface de rede eth1.
8.2.5. mii-tool
O mii-tool uma ferramenta muito verstil, que possibilita ao administrador do sistema obter vrias informaes a respeito das interfaces de rede que o computador possu, bem como, modificar o estado da conexo fsica de rede (link) de cada uma delas. necessrio ter privilgios de administrador do sistema para poder usar esta ferramenta. mii-tool [opes] [interface] Onde: interface a interface de rede que desejamos consultar ou modificar. interface de rede so a eth0, eth1, etc. opes: -v Exibe informaes com maior nvel de detalhamento. -R Reconfigura a interface com as opes padro para aquele dispositivo. -r Reinicia a negociao pela taxa de transferncia de dados da interface. -w Monitora mudana de status em um link numa determinada interface. -l Utilizado em conjunto com -w, grava as mudanas de status do link de uma
PG.: 72
Exemplos de
interface no arquivo de log do sistema /var/log/syslog. -F Desabilita o modo de auto-negociao e possibilita que o administrador defina a velocidade de transferncia de dados da interface. Os modos a serem definidos manualmente podem ser: 1000baseTx-FD, 1000baseTx-HD, 100baseTx-FD, 100baseTxHD, 10baseT-FD, ou 10baseT-HD. Exemplos: mii-tool -v eth0 Exibe informaes detalhadas sobre a interface de rede eth0. mii-tool -w eth0 Monitora a mudana da taxa de transferncia de dados na interface de rede eth0. mii-tool eth0 -F 100baseTx-FD Define a velocidade de transferncia de dados da interface de rede eth0 para 100baseTx-FD.
8.2.6. netstat
Mostra o status das conexes de rede, tabelas de roteamento, estatsticas das interfaces, conexes mascaradas e mensagens. netstat [opes] opes: -i [interface] Mostra estatsticas da interface [interface]. -M, --masquerade Se especificado, tambm lista conexes mascaradas (IP Masquerading). -n, --numeric Usa endereos numricos ao invs de tentar resolver nomes das maquinas, usurios e portas. -p Exibe o PID, nome do programa e o respectivo soquete que est sendo utilizado para comunicao. -c, --continuos Mostra a listagem atualizada a cada segundo at que as teclas <CTRL> + <C> sejam pressionadas. Se no for especificada nenhuma opo, os detalhes das conexes atuais sero mostradas. Exemplos: netstat Exibe o status de todas as conexes de rede da maquina. netstat -p Exibe as informaes de conexo do sistema, exibindo o PID, o nome de cada executvel e o soquete especifico utilizado para comunicao.
PG.: 73
8.2.7. ntpdate
Ajusta a data e a hora do computador local via NTP (Network Time Protocol). O utilitrio ntpdate, possibilita consultar um servidor NTP para sincronizar a data e hora local do computador. de grande valia para manter a data e a hora sempre corretas, evitando problemas em registros de log, bancos de dados e outros servios que dependem dos dados do calendrio e relgio do sistema. O ntpdate pode ser executado manualmente, via uma tarefa agendada pelo cron, via scripts, principalmente durante o boot do sistema, ou ainda, atravs de um daemon dedicado quando se necessita do mximo de preciso e otimizao. Em geral, para estaes e servidores de rede que no necessitem de muita preciso (dcimos de segundos, por exemplo), utiliza-se scripts de boot e tarefas agendas no cron para manter a data e a hora do computador ajustadas corretamente. ntpdate [opes] servidor Onde: servidor a maquina que prov o servio NTP para a rede, de modo que outros computadores possam sincronizar seu calendrio e relgio local com o desse servidor. opes: -a chave Permite especificar uma chave criptogrfica para realizar a autenticao no servidor NTP. Tanto cliente como o servidor devem possuir chaves correspondentes entre si. Por padro, a funo de autenticao desabilitada. -k arquivo Possibilita que o administrador especifique um arquivo contendo a chave criptogrfica para realizar autenticao no servidor NTP. Por padro, o arquivo /etc/ntp.keys utilizado para esta funo. -p nmero Define o nmero de amostras de tempo que devem ser adquiridas de cada servidor NTP para realizar o calculo do tempo. Pode ser utilizado um nmero de amostras de 1 8, o padro 4. -q Faz somente a pesquisa pela data e hora no servidor NTP sem alterar o calendrio e o relgio do computador local. -s Faz com que a sada do comando ntpdate seja redirecionada para o arquivo de log do sistema (/var/log/syslog) ao invs da sada padro. Especialmente interessante, quando o ajuste da hora e data feito via agendamento com o cron. -t segundos Especifica o tempo em que o cliente NTP aguardar por uma resposta de um servidor. O tempo especificado em mltiplos de 0.2 segundos, sendo o tempo de espera padro, 1 segundo. -u Fora a utilizao de portas no-privilegiadas para comunicao com um servidor NTP. til em situaes onde o servidor NTP encontra-se protegido por um firewall, por exemplo. Portas de comunicao TCP no-privilegiadas so as portas de 1024 65535. Exemplos: ntpdate -s ntp.pr.gov.br
PG.: 74
Sincroniza a data e a hora do computador local usando o servidor NTP ntp.pr.gov.br e direciona a sada do comando ntpdate para o arquivo de log do sistema. ntpdate -q ntp.pr.gov.br Faz uma pesquisa para saber a data e a hora corrente no servidor NTP ntp.pr.gov.br. ### Exemplo de agendamento do ntpdate via cron ### 0**** root ntpdate -s ntp.pr.gov.br ### Fim do exemplo ### Agenda a execuo do ntpdate para sincronizao com o servidor NTP ntp.pr.gov.br, a cada hora do dia, em todos os dias da semana, direcionando a sada do comando para o arquivo de log do sistema. Para realizar a sincronizao do calendrio e da hora durante a inicializao do sistema, possvel acrescentar a seguinte linha ao final do arquivo /etc/init.d/bootmisc.sh, por exemplo: ntpdate -s ntp.pr.gov.br No esquea de ajustar o endereo do servidor NTP conforme sua necessidade. Para clientes da CELEPAR, recomendvel o uso do servidor que citamos nos exemplos (ntp.pr.gov.br).
8.2.8. route
O comando route permite adicionar e remover rotas TCP/IP na tabela de roteamento do Linux. Para modificar a tabela de roteamento, necessrio privilgios de administrador do sistema. O roteamento de pacotes, tcnica que permite guiar os dados transmitidos pela rede atravs de outras interfaces de rede ou roteadores (equipamento dedicado ao roteamento) com o objetivo de atingir um destino numa rede diferente daquela em que o computador de origem faz parte. route [add/del] [opo] [endereo] Onde: add/del Permite adicionar (parmetro add) ou remover (del) uma rota esttica TCP/IP. endereo Para alguns parmetros que utilizamos com o comando route, necessrio fornecer um endereo TCP/IP relativo a funo da opo a ser usada. Por exemplo, a opo net, exige que seja informado um endereo de rede como 192.168.1.0. opes: -A Permite verificar ou modificar a tabela de roteamento especificando a famlia do protocolo a ser alterado. Exemplos de famlia para serem utilizadas com este parmetro so: inet (IPv4, o padro), inet6 (IPv6), ax25 (AX.25), netrom (NET/ROM AMPR), ipx (Novell IPX), ddp (Appletalk) e x25 (X.25). -F Altera informaes contidas na Base de Informaes de Repasse do Kernel (Kernel FIB), que na verdade, a tabela de roteamento padro do sistema. Este o padro para as operaes do comando route. -C Modifica o cache de roteamento do Kernel (mantido em memria). -n Exibe os endereos no formato numrico ao invs de tentar resolver nomes.
PG.: 75
-e Mostra a tabela de roteamento no formato do comando netstat. target endereo Permite especificar tanto um host (maquina ou equipamento de rede) ou uma rede de destino. Pode ser especificado numericamente ou atravs de nomes. -net endereo Permite especificar a rede de destino atravs do uso do argumento endereo. -host endereo Permite especificar um host (maquina ou equipamento de rede) de destino atravs do uso do argumento endereo. netmask mascara Permite especificar uma mascara de sub-rede, usando o argumento mascara, para o host ou rede de destino que est sendo configurado. gw roteador Permite definir o endereo do roteador padro da interface, atravs do uso da clusula default antes do parmetro em questo, ou do roteador que d acesso rede que est se estabelecendo a rota, atravs do uso do argumento roteador. metric nmero Define a mtrica de rede a ser utilizada para uma determinada rota. mss nmero Permite especificar o Tamanho Mximo do Segmento (MSS) para a rota. Este parmetro pode ser utilizado quando se deseja trafegar pacotes de rede do menor tamanho possvel e quando a operao de negociao do tamanho MTU (Maximum Transfer Unit) no funciona corretamente para aquela rede. reject Configura um bloqueio para uma determinada rota. No o mesmo funcionamento que um firewall possu. Esta clusula quando informada, simplesmente faz com que a procura por uma determinada rota falhe, ou seja, como se a rota para uma determinada rede ou host no existisse realmente. dev interface Permite especificar a interface de rede para onde os pacotes devero ser direcionados para atingirem a rede ou host de destino. Exemplos: route Exibe a tabela de roteamento do Kernel. A coluna chamada Opes, mostrada quando executamos o comando dessa forma, possu os seguintes smbolos e os respectivos significados: U = A rota est ativa. H = O destino um host e no uma rede. G = Usar roteador. R = Reintegrar rota para roteamento dinmico. D = Rota instalada dinamicamente por um daemon. M = Rota modificada ou redirecionada por um daemon. A = Instalada por addrconf. C = Entrada em cache. ! = Rota rejeitada. route add -net 192.56.76.0 netmask 255.255.255.0 dev eth1
PG.: 76
Adiciona uma rota para a rede 192.56.76.0 com mascara classe C, atravs do dispositivo de rede (interface) eth1. route add default gw 192.168.0.1 dev eth0 Adiciona o roteador padro para a rede a qual o computador faz parte, utilizando a interface eth0. route add -net 224.0.0.0 netmask 240.0.0.0 gw 192.168.1.1 metric 0 dev eth1 Adiciona uma rota para a rede 224.0.0.0 com mascara 240.0.0.0, atravs do roteador 192.168.1.1, estabelecendo a mtrica mnima (valor zero) para se alcanar esta rede usando a interface eth1. route del -net 10.0.0.0 netmask 255.0.0.0 Exclui a rota para a rede 10.0.0.0 com mascara 255.0.0.0 da tabela de roteamento. route add -net 10.0.0.0 netmask 255.0.0.0 reject Faz com que pesquisa por rotas para a rede 10.0.0.0 com mascara 255.0.0.0, sejam rejeitadas, como se a rota no existisse de fato, porm, no exclu a rota da tabela de roteamento do Kernel. route del -net 10.0.0.0 netmask 255.0.0.0 reject Apaga a rota rejeitada para a rede 10.0.0.0 com mascara 255.0.0.0. Quando uma rota esta rejeitada, para apag-la necessrio usar a clusula reject.
8.2.9. tcpdmatch
Simula uma tentativa de conexo via TCP/IP ao sistema. Esta ferramenta bastante til para verificao de segurana da maquina local. O tcpdmatch checa as regras existentes nos arquivos de configurao /etc/hosts.allow e /etc/hosts.deny para determinar se uma tentativa de conexo originada de um determinado endereo IP, maquina ou domnio obter sucesso no acesso a determinado daemon que esteja sendo executado na maquina. As checagens do tcpdmatch, no levam em considerao as protees proporcionadas por firewalls como o iptables. tcpdmatch [opes] daemon endereo Onde: daemon o executvel principal do servio que se deseja verificar a possibilidade de acesso. Exemplos de daemons so: sshd, ftpd, mysqld, etc. endereo o endereo IP, nome da maquina ou domnio de origem da conexo. Serve para simular uma conexo de entrada direcionada para a maquina local. opes: -d Faz com que tcpdmatch considere as configuraes dos arquivos hosts.allow e hosts.deny do diretrio local em vez dos que esto presentes sob o diretrio /etc. -i arquivo Permite especificar um arquivo de configurao alternativo nos moldes do inetd.conf, em vez do arquivo padro localizado sob o diretrio /etc. Exemplos: tcpdmatch sshd 192.168.1.4 Testa se a tentativa de conexo ao daemon SSH sshd vinda do endereo
PG.: 77
192.168.1.4 ser ou no aceita pelo sistema. tcpdmatch -d ftpd 10.15.61.5 Verifica se a tentativa de conexo ao daemon FTP ftpd vinda do endereo 10.15.61.5 ser ou no aceita pelo sistema, levando em considerao os arquivos hosts.allow e hosts.deny presentes no diretrio atual.
8.2.10. traceroute
Mostra o caminho percorrido por um pacote de rede at chegar ao seu destino. Este comando, mostra na tela o caminho percorrido entre os roteadores de rede e o tempo gasto de retransmisso. til para deteco de problemas de rede. traceroute [opes] [hostname/IP de destino] Onde: hostname/IP destino o endereo para onde o pacote ser enviado, por exemplo, www.debian.org. Caso o tamanho do pacote no seja especificado, o utilitrio assumir o tamanho padro de pacote (40 bytes). opes: -l Mostra o tempo de vida do pacote (ttl). -m [num] Ajusta a quantidade mximas de ttl dos pacotes. O padro 30. -n Mostra os endereos numericamente ao invs de usar resoluo DNS. -p [porta] Ajusta a porta que ser usada para o teste. A porta padro 33434. -r Pula as tabelas de roteamento e envia o pacote diretamente ao computador conectado a rede. -s [endereo] Usa o endereo IP/DNS definido pelo argumento endereo, como origem para o envio de pacotes em computadores com mltiplos endereos IP ou nomes de maquina. -v Mostra mais detalhes sobre o resultado do traceroute. -w [num] Configura o tempo mximo de aguardo por uma resposta. O padro 3 segundos. Exemplos: traceroute www.debian.org Mostra o caminho percorrido pelos pacotes de rede desde a maquina de origem (computador local) at a maquina de destino (www.debian.org). traceroute -v -w 5 www.uol.com.br Exibe mais informaes sobre a rota seguida pelos pacotes enviados pela maquina de origem at a maquina de destino e configura o tempo limite de espera por resposta para 5 segundos.
PG.: 78
8.2.11. wget
Realiza o download de forma no-interativa de arquivos da Web. um utilitrio muito utilizado em scripts shell para baixar arquivos de um servidor HTTP remoto. Os arquivos copiados via wget sero disponibilizados no diretrio corrente em que usurio estava quando invocou o utilitrio. O wget trabalha em background (segundo plano) e tem a capacidade de executar o download de arquivos via HTTP/HTTPS (inclusive via servidores Proxy) e FTP, mesmo que o usurio que iniciou o download no esteja mais usando o sistema. Para sua configurao, wget utiliza globalmente o arquivo /etc/wgetrc, e alternativamente, os usurios podem manter suas opes particulares no arquivo .wgetrc contido em seu diretrio pessoal (caso ele no exista, pode ser a partir da cpia de /etc/wgetrc). wget [opes] [url] Onde: url - o endereo do arquivo que se deseja fazer o download. Deve ser informado no formato Web (ex.: http://www.servidor.com.br/arquivo.txt). opes: -a arquivo Faz com que toda a sada de wget seja salva de forma incremental no arquivo de log determinado pelo argumento arquivo. Caso o arquivo no exista, ele ser criado. -b Faz com que o utilitrio seja executado em segundo plano. -c Continua o download de um arquivo parcialmente baixado para o computador. Para que esta opo possa ser utilizada, necessrio que o servidor FTP ou HTTP suporte a tcnica de Range Header. -d Ativa a depurao do comando. til para solucionar problemas. --delete-after Exclu cada arquivo baixado no computador local logo aps o trmino do download dos mesmos. til para fazer o carregamento do cache de objetos de um servidor Proxy, por exemplo. --follow-ftp Baixar arquivos presentes nos links FTP dos documentos HTML processados por wget. Por padro este tipo de operao desabilitada. -i arquivo Permite que o usurio especifique um arquivo contendo as URL's que devem ser baixadas por wget. Os endereos Web citados em conjunto com a invocao do comando, tem precedncia sobre as URL's contidas no arquivo. O arquivo deve conter uma URL por linha. -l nvel Define at em que nvel de diretrio uma cpia recursiva deve ser feita. -m Permite fazer o espelhamento de um site inteiro para o computador local. -nd No recriar a estrutura de diretrios quando estiver fazendo uma cpia recursiva.
PG.: 79
-o arquivo Direciona as sadas de wget para o arquivo determinado no argumento homnimo. O arquivo no usado de forma incremental como na opo -a. --proxy-user=usurio Permite que um usurio do servio de Proxy seja informado, para ser usado para baixar os arquivos. Esta opo, depende do ajuste da varivel de ambiente http_proxy ou do parmetro homnimo nos arquivos de configurao do wget (/etc/wgetrc ou ~/.wgetrc). --proxy-passwd=senha Especifica uma senha para o usurio definido atravs da opo --proxy-user. -r Ativa a cpia recursiva dos dados. -w segundos Especifica o tempo em segundos entre as tentativas que so feitas para baixar os arquivos. Voc pode usar o sinalizador m para informar o tempo em minutos, h para horas ou d para dias. --waitretry=segundos Especifica o tempo em segundos em que wget tentar novamente baixar um arquivo aps uma falha no download. O padro no esperar e prosseguir com o processamento da prxima URL. Exemplos: wget http://ocs.eparana.parana/index.html Faz a cpia do arquivo index.html a partir do site http://ocs.eparana.parana. wget -m http://ocs.eparana.parana Faz a cpia recursiva de todo o contedo do site http://ocs.eparana.parana. wget proxy-user=marcius proxy-passwd=velhinha http://zig.com/linux.tar.gz Faz a cpia do arquivo linux.tar.gz a partir do site http://zig.com atravs do servio de Proxy HTTP, especificando usurio e senha para acesso a Internet atravs deste servio. wget --waitretry=15 ftp://10.15.22.205/tnsnames.ora Realiza o download do arquivo tnsnames.ora a partir do site FTP 10.15.22.205, usando o tempo de 15 segundos entre as tentativas falhas de baixar o arquivo.
PG.: 80
9. Arquivos de Configurao
Este tpico, tem o objetivo de fundamentar alguns dos principais conceitos de rede e servios que utilizam este recurso. Alm disso, comentaremos sobre os arquivos de configurao mais importantes do sistema.
problemas quando tentar se conectar a qualquer servio de rede que esteja sendo executado localmente.
O mtodo static usado para configurar um endereo IPv4 fixo para a interface. As opes que podem ser usadas com este mtodo, so as seguintes: Parmetros obrigatrios: address endereo Endereo IP da Interface de rede (por exemplo, 192.168.1.50). netmask mscara Mscara de rede a ser utilizada pela interface (por exemplo, 255.255.255.0). Parmetros opcionais: broadcast endereo Endereo de broadcast da rede (por exemplo, 192.168.1.255). network endereo Endereo da rede (por exemplo, 192.168.0.0). gateway endereo Endereo do roteador padro (por exemplo, 192.168.1.1). O roteador o equipamento de rede responsvel por conectar o seu computador a outras redes. O mtodo dhcp Este mtodo usado para obter automaticamente os parmetros de configurao do protocolo de rede, atravs de um servidor DHCP da rede, usando as ferramentas: dhclient, pump ou dpcpcp (os dois ltimos somente kernels 2.0.x e 2.2.x). Abaixo, os parmetros que podem ser utilizados: hostname nome Nome da estao de trabalho que ser requisitado. (pump, dhcpcd). leasehours horas Tempo de concesso da configurao a ser usada pelo computador local em horas (pump). leasetime segundos Tempo de concesso da configurao a ser usada pelo computador local em segundos (dhcpcd). vendor vendedor Uma expresso (string) de identificao do vendedor (dhcpcd). client identificao Uma expresso (string) de identificao do cliente (dhcpcd). O mtodo bootp Este mtodo usado para obter um endereo via bootp: bootfile arquivo Faz com que o servidor fornea o arquivo de inicializao especificado no argumento arquivo para as estaes da rede que fizerem uma requisio bootp a ele. server endereo Especifica o endereo do servidor bootp. hwaddr endereo Ao invs de usar o endereo de hardware (MAC) real do servidor, utiliza o alternativo fornecido pelo argumento endereo. Algumas opes se aplicam a todo tipo de interface: noauto No configura automaticamente a interface quando o ifup ou ifdown so
PG.: 83
executados com a opo -a (normalmente usada durante a inicializao ou desligamento do sistema). pre-up comando Executa um comando antes da inicializao da interface. up comando Executa um comando aps a interface ser iniciada. pre-down comando Executa um comando antes de desativar a interface. down comando Executa um comando aps desativar a interface. Os comandos que so executados atravs das opes up, pre-up, pre-down e down, podem ser utilizados vrias vezes na mesma interface, mas eles so executados na seqncia em que so usados. Outra informao importante, que se um dos comandos falhar, nenhum dos restantes executado. Para forar a execuo dos demais, adicione o artifcio || true, ao final da linha de comando em questo.
9.4.2. /etc/hostname
Arquivo lido pelo utilitrio hostname para definir o nome de sua estao de trabalho.
9.4.3. /etc/hosts
O arquivo /etc/hosts, faz a associao entre um nome de computador e um endereo IP. Basicamente tem a mesma funo do servio DNS, porm, atua somente localmente. Atualmente, este arquivo utilizado para configuraes de resoluo de nomes muito especificas e de escopo local (ex.: maquinas virtuais), e ainda, para aqueles servios e programas que no suportam a resoluo de nomes via servio DNS (ex.: algumas verses do Lotus Notes). A incluso de um computador neste arquivo dispensa a consulta a um servidor de nomes para obter um endereo IP, sendo muito til para mquinas que so acessadas freqentemente e que no tem seu endereo IP constantemente modificado. A desvantagem de usar este recurso, que voc mesmo precisar manter este arquivo atualizado. Em um ambiente de rede bem planejado e que no possu particularidades com relao a resoluo de nomes, o nico endereo que aparecer neste arquivo, referenciar o nome do computador local, como no exemplo a seguir: # Exemplo de arquivo /etc/hosts 127.0.0.1 localhost ecelepar00001.celepar.parana Voc pode especificar mais que um nome de computador por linha como demonstrado no exemplo acima. OBS: Caso encontre problemas de lentido para resolver nomes e at para executar alguns aplicativos (como o gdm, por exemplo), verifique se existem erros neste arquivo de configurao.
9.4.4. /etc/host.conf
O arquivo /etc/host.conf o local onde possvel configurar alguns itens que alteram a forma como a resoluo de nomes feita no sistema. De modo geral, o exemplo abaixo serve para a maioria dos ambientes: #Exemplo do arquivo /etc/host.conf order hosts,bind multi on
PG.: 84
De acordo com nosso exemplo, a ordem de resoluo de nomes (parmetro order hosts,bind) ser feita primeiro atravs da consulta do arquivo /etc/hosts, e em seguida, uma pesquisa no servio DNS. O parmetro multi on, faz com que todos os endereos IP correspondentes ao nome pesquisado sejam retornados ao programa que emitiu a solicitao. H ainda outros parmetros que podem ser configurados para as finalidades mais variadas. Para maiores detalhes sobre estas configuraes, consulte o manual man host.conf.
9.4.5. /etc/networks
O arquivo /etc/networks tem uma funo similar ao arquivo /etc/hosts. Ele contm um banco de dados simples de nomes de redes com seus respectivos endereos. O formato deste arquivo : Nome_da_Rede Endereo_da_Rede Abaixo, um exemplo de configurao deste arquivo: #Exemplo de arquivo /etc/networks loopnet 127.0.0.0 celepar 10.15.20.0 nasa 200.192.45.0 A configurao de redes nomeadas feita atravs do /etc/networks, particularmente interessante, quando utilizamos comandos como o route. Isto porque, este comando poder exibir o nome das redes em vez dos endereos correspondentes, o que torna a sada do comando muito mais amigvel.
9.4.6. /etc/resolv.conf
O /etc/resolv.conf o arquivo de configurao principal do mecanismo de resoluo de nomes do GNU/Linux. um arquivo texto simples, com um parmetro por linha, e que contm o endereo de servidores DNS que sero usados pelo sistema. Existem trs palavras chaves normalmente usadas na configurao deste arquivo: domain Especifica o domnio DNS ao qual a maquina pertence. search Especifica uma lista de nomes de domnio alternativos ao procurar por um computador, separados por espaos. A linha do parmetro search, pode conter no mximo 6 domnios ou 256 caracteres. nameserver Especifica o endereo IP de um servidor de nomes de domnio para resoluo de nomes (DNS). Pode-se especificar mltiplos servidores com esta opo. Como exemplo, o /etc/resolv.conf se parece com isto: domain celepar.parana search celepar.parana pr.gov.br nameserver 10.15.61.248 nameserver 10.15.61.246 Neste exemplo, o nome de domnio que ir complementar o nome da maquina o celepar.parana. Quando uma pesquisa for realizada para localizar uma maquina por seu nome, primeiramente o sufixo celepar.parana ser acrescido ao nome a ser pesquisado, caso a maquina no seja encontrada, o sufixo pr.gov.br ser acrescentado, e a pesquisa ser reenviada aos servidores DNS especificados com a opo nameserver, na tentativa de resolver o nome e obter o endereo IP da maquina em questo.
PG.: 85
9.4.7. /etc/nsswitch.conf
a evoluo do /etc/hosts.conf. Possibilita que a ordem de procura para resoluo de nomes seja customizada para cada servio. Ele utilizado nas ltimas distribuies por diversas bibliotecas em vez de /etc/hosts.conf.
9.4.8. /etc/services
O arquivo /etc/services um banco de dados simples que associa um nome a uma porta de comunicao utilizada pelos protocolos TCP/UDP. um arquivo texto de formato muito simples, cada linha representa um servio. Cada item, dividido em trs campos separados por qualquer nmero de espaos em branco (tab ou espaos). Os campos so: nome porta/protocolo apelido # comentrio nome Uma palavra simples que representa o nome do servio sendo descrito. porta/protocolo Este campo dividido em dois sub-campos, veja detalhes abaixo: porta Um nmero que define o nmero da porta em que o servio estar disponvel. Muitos dos servios comuns tem designados um nmero de servio. Estes esto descritos no RFC-1340. protocolo Este sub-campo, pode ser ajustado para TCP ou UDP. importante notar que o item 18/tcp diferente do item 18/udp, e que no existe razo tcnica para o mesmo servio usar estas duas portas distintas. Normalmente, se um servio est disponvel em ambos os protocolos TCP e UDP, voc precisar especificar ambos. apelidos Outros nomes podem ser usados para se referir a entrada deste servio. comentrio Qualquer texto aparecendo em uma linha aps um caractere "#", ignorado e tratado como comentrio.
9.4.9. /etc/protocols
O arquivo /etc/protocols mapeia nmeros de identificao de protocolos em nomes de protocolos. Isto usado por programadores para permiti-los especificar protocolos por nomes em seus programas, e tambm, por alguns programas tal como tcpdump, possibilitando estes a mostrar nomes em vez de nmeros em sua sada. A sintaxe geral deste arquivo : nome_protocolo nmero_identificador apelidos #Comentrios
9.4.10. /etc/alternatives/
um diretrio que contm links para diversos aplicativos padres utilizados pelo sistema. Dentre eles so encontrados links para os editores do sistema, programas clientes de terminal padro, gerenciadores grficos, entre outros. Por exemplo, se voc desejar usar o editor jed ao invs do vi, remova o link editor com o comando rm editor, localize o arquivo executvel do jed com o comando which jed e crie um link para ele neste diretrio usando ln -s /usr/bin/jed editor. De
PG.: 86
agora em diante o editor padro usado pela maioria dos aplicativos ser o jed.
9.4.11. /etc/default/rcS
Contm variveis padres que alteram o comportamento de inicializao dos scripts contidos em /etc/rcS.d/. Por exemplo, se quiser menos mensagens na inicializao do sistema, ajuste o valor da varivel VERBOSE para o valor no. Para detalhes sobre as variveis que podem ser configuradas neste arquivo, consulte a documentao oficial do rcS com o comando man rcS 5. Recomendamos fortemente que voc estude primeiro qual funo de cada varivel antes de modific-las, pois isto pode evitar transtornos graves no funcionamento do sistema.
9.4.12. /etc/pam.d/
Este diretrio possui arquivos de configurao de diversos mdulos PAM existentes em seu sistema. Os mdulos PAM, desempenham os servios de autenticao do sistema. H vrios arquivos neste diretrio, cada um deles corresponde a um servio que depende do esquema de autenticao dos mdulos PAM.
9.4.13. /etc/security/
Este diretrio contm arquivos para controle de segurana e limitadores de uso de recursos que sero aplicados aos usurios do sistema. O funcionamento de muitos dos arquivos deste diretrio depende de modificaes nos arquivos do diretrio /etc/pam.d/ para habilitar as funes de controle, acesso e restries.
9.4.14. /etc/security/access.conf
lido no momento do login do usurio e permite definir quem ter acesso ao sistema e a partir de onde (terminais, endereos de rede, etc). O formato deste arquivo so 3 campos separados pelo caractere :, cada linha contendo uma regra de acesso. O primeiro campo deve conter o caractere + ou -, para definir se aquela regra permitir (+) ou bloquear (-) o acesso do usurio. O segundo campo deve conter uma lista de nomes de usurios (inclusive no formato usurio@computador), grupos, a palavra ALL (todos usurios/grupos) ou EXCEPT (com exceo para usurios/grupos). O terceiro campo deve conter uma lista de terminais tty (para acessos locais), nomes de computadores, nomes de domnios (iniciando com um .), endereo IP de computadores ou endereo IP de redes (finalizando com .) de origem. Tambm podem ser usadas as palavras ALL (qualquer maquina), LOCAL (mquinas da rede local, cujo nome no possu o caractere .) e EXCEPT (com exceo para maquina). Abaixo um exemplo do arquivo access.conf: # Somente o root poder usar tty1 # -:ALL EXCEPT root:tty1 # bloqueia o acesso ao console a todos usurios exceto marcius e joselito. # -:ALL EXCEPT marcius joselito:console # Bloqueia acessos remotos de contas privilegiadas (grupo gga-suporte), com #exceo das tentativas de conexes vindas de maquinas da rede local ou que #fazem parte do domnio celepar.parana. # -:gga-suporte:ALL EXCEPT LOCAL .celepar.parana
PG.: 87
# Algumas contas, no tem permisso de acessar o sistema de nenhum lugar: # -:playmobil ze karioka:ALL # Todas as outras contas que no se encaixam nas regras acima, podem acessar o # sistema de qualquer lugar.
9.4.15. /etc/security/limits.conf
Define limites de uso dos recursos do sistema para cada usurio ou grupos de usurios. Os recursos so descritos em linhas da seguinte forma: #<dominio> <tipo> <item> <valor> O campo domnio, pode ser um nome de usurio, um grupo (especificado sob a forma @grupo) ou o caractere coringa * que significa todos usurios e grupos. O campo tipo, pode assumir o valor soft para os limites mnimos, hard para os limites mximos ou - quando nenhum destes dois tipos aplicvel (como na utilizao do item maxlogins, por exemplo). O campo item, pode assumir os seguintes valores: core - limita o tamanho do arquivo core em Kilobytes; data - tamanho mximo de dados em Kilobytes; fsize - Tamanho mximo de arquivos que podem ser criados/modificados em Kilobytes; memlock - Espao mximo de endereos bloqueados na memria em Kilobytes; nofile - Nmero mximo de arquivos abertos; rss - Tamanho mximo dos programas residentes na memria virtual em Kilobytes; stack - Tamanho mximo de pilha em Kilobytes; cpu - Tempo mximo usado na CPU em minutos; nproc - Nmero mximo de processos; as - Limite de espao de endereos; maxlogins - Nmero mximo de acessos realizados por este usurio; priority - Prioridade que os programas deste usurio sero executados. Abaixo, exemplificamos o arquivo entendimento: #<dominio> <tipo> <item> * soft core * hard rss @estagiarios hard nproc @usuarios hard fsize @estagiarios hard nofile ftp hard nproc @estagiarios maxlogins /etc/security/limits.conf, <valor> 0 10000 20 4096 50 0 10 para melhor
9.4.16. /etc/fstab
Contm detalhes para a montagem dos sistemas de arquivos do sistema. um arquivo de configurao de extrema importncia no sistema. Este arquivo utilizado pelos comandos mount e swapon, para disponibilizar os dados e a rea de paginao do sistema. Abaixo, citamos um exemplo do arquivo /etc/fstab: # /etc/fstab: static file system information. # # <sistema> <ponto montagem> <tipo> <opes> <dump> <ordem> proc /proc proc defaults 0 0 /dev/hda3 / xfs defaults 0 1 /dev/hda2 /boot ext3 defaults 0 2
PG.: 88
2 0 0 0
No exemplo acima, podemos verificar que o arquivo /etc/fstab, composto pelas seguintes colunas: Sistema Corresponde ao sistema de arquivos que se deseja montar. Esta coluna conter parties de disco, dispositivos como CD-ROM, drive de disquetes, etc, e uma rea especial da memria para abrigar o sistema de arquivos do Kernel o /proc. Ponto de montagem o diretrio sob o qual, o sistema de arquivos definido no parmetro anterior, ser disponibilizado para utilizao tanto do sistema bem como dos usurios. Tipo o tipo do sistema de arquivos usado pelos dispositivos para armazenar os dados. Sempre deve-se utilizar o tipo de sistema de arquivos correto para o dispositivo a ser montado, caso contrrio, o sistema de arquivos no ser montado. Exemplos de tipos de sistemas de arquivo so: ext2, ext3, reiserfs, fat, ntfs, udf, iso9660, xfs, swap, entre outros. Opes a coluna onde podemos definir as opes de montagem do sistema de arquivos. As opes variam de acordo com o tipo de sistema de arquivos a ser montado, mas existem tambm, opes globais que podem ser usadas em qualquer tipo de sistema de arquivos (ex.: noauto, user, owner, comment, etc). As opes globais mais utilizadas so: noauto - Para impedir que o sistema de arquivos seja montado automaticamente, durante o processo de inicializao ou atravs do comando mount -a. user Para possibilitar que usurios comuns possam montar os sistemas de arquivos marcados com esta opo. Lembre-se que somente o usurio root tem permisso para montar sistemas de arquivos. Dump Esta uma opo utilizada pelo utilitrio dump, para determinar quais os sistemas de arquivos devem ser processados por este utilitrio. O valor 0 (zero), significa que aquele sistema de arquivos no necessita do dump. Caso voc tenha interesse sobre o funcionamento do dump, acesse sua pgina do manual atravs do comando man dump. Ordem Especifica a ordem de checagem feita durante a inicializao do sistema pelo utilitrio fsck nos sistemas de arquivos. O sistema de arquivos raiz (/) sempre dever ter como ordem de checagem o valor 1 por sua importncia, os demais sistemas de arquivos devem possuir um valor maior ou igual a 2. O valor 0 (zero) significa que o sistema de arquivos no dever ser checado.
9.4.17. /etc/hosts.allow
um dos arquivos de controle de acesso a servios de rede do GNU/Linux, assim como /etc/hosts.deny. As regras contidas neste arquivo so utilizadas pelo daemon tcpd, mais conhecido como TCP Wrapper, para fazer a liberao do acesso ao sistema orientada a servios. O arquivo /etc/hosts.allow, tem a funo de permitir o acesso de um determinado endereo IP ou nome de maquina, aos daemons que controlam os servios que so executados no computador local. Por exemplo, voc poder cadastrar a maquina 10.15.15.15, no arquivo /etc/hosts.allow, para que ela possa acessar o daemon
PG.: 89
sshd. Para testar as regras contidas neste arquivo, voc poder usar o utilitrio tcpdmatch. O formato deste arquivo de configurao, demonstrado a seguir: daemons : maquinas [:comando] Onde: daemons So os servios que voc deseja liberar o acesso a uma determinada maquina ou a um conjunto delas. Exemplos de daemons so: sshd, ftpd, indentd, etc. maquinas o endereo IP, nome da maquina, ou em alguns casos, o domnio (iniciado pelo caractere .), que ter acesso aos daemons especificados pelo parmetro explicado anteriormente. comandos um parmetro opcional que permite especificar um comando que ser executado pelo shell /bin/sh, quando uma conexo recebida corresponder a uma determinada regra existente. Particularmente interessante quando o computador est sofrendo um ataque. Voc poder utilizar caracteres coringas como * e ? para especificar nomes e endereos de maquinas, alm das palavras chave ALL, LOCAL, UNKNOWN, KNOWN, PARANOID e EXCEPT. As palavras chave ALL e EXCEPT, tambm podem ser usadas no parmetro daemons. Para entender o significado de cada uma das palavras chave, consulte a documentao atravs do comando man hosts.allow. Exemplos: ALL: ALL Libera o acesso a todos os daemons do sistema a qualquer maquina/domnio. sshd:10.15.15.15 ecelepar00001 Libera o acesso ao daemon SSH sshd para as maquinas 10.15.15.15 e ecelepar00001. sshd ftpd: 10.* EXCEPT 10.15.15.15 necessrio muito cuidado na observao desta regra. Ela libera o acesso aos daemons SSH sshd e FTP ftpd para todas as maquinas da rede 10.0.0.0/8, com exceo para 10.15.15.15, que ainda assim, pode ter seu acesso garantido, caso no exista uma regra explicita em /etc/hosts.deny, impedindo seu acesso ao sistema, j que por padro, o acesso aos servios liberado.
9.4.18. /etc/hosts.deny
um dos arquivos de controle de acesso a servios de rede do GNU/Linux, assim como /etc/hosts.allow. Todas as regras contidas neste arquivo, tem o objetivo de proibir o acesso de uma ou mais maquinas a um determinado daemon da maquina local, funo contrria daquela desempenhada por /etc/hosts.allow. O formato como o arquivo deve ser configurado e os parmetros que podem ser usados na sua configurao, so exatamente os mesmos de /etc/hosts.allow (veja o tpico daquele arquivo para mais detalhes). importante frisar aos leitores deste documento que, por padro, o acesso as daemons da maquina local via rede so liberados, embora isso possa no ser possvel por configuraes particulares que o usurio fez em cada um deles. Portanto, caso se queira negar o acesso a determinado daemon, necessrio configurar apropriadamente este arquivo.
PG.: 90
Exemplos: ALL: ALL Probe o acesso a qualquer daemon da maquina local a qualquer computador. sshd : 10.* EXCEPT 10.15.15.15 Probe o acesso ao daemon SSH sshd a qualquer maquina da rede 10.0.0.0/8 com exceo da maquina 10.15.15.15. mysqld : * EXCEPT 10.* Probe o acesso ao daemon do MySQL mysqld a todas as maquinas, com exceo as maquinas da rede 10.0.0.0/8.
9.4.19. /etc/inetd.conf
O arquivo /etc/inetd.conf o arquivo de configurao do daemon inetd (Internet Daemon), tambm conhecido como super servidor. Para saber qual funo do daemon inetd, necessrio entender o processo de comunicao numa rede TCP/IP, mesmo que de modo muito simplificado. Assim, para que uma maquina possa disponibilizar qualquer servio nesse tipo de rede, necessrio que um daemon permanea continuamente escutando a rede, atravs de uma porta de comunicao, para que possa receber as solicitaes destinadas aquele servio. Toda troca de informao entre duas maquinas, ocorre pela utilizao de um endereo de rede e uma porta. Ento, quanto mais servios uma maquina tem que disponibilizar, maior o nmero de portas que ela dever usar, e maior tambm, ser seu consumo de recursos (CPU, memria, etc), j que necessita manter estes daemons executando permanentemente no sistema. A idia trazida pelo inetd, otimizar e simplificar todo este processo. Para isso, os servios a serem disponibilizados pela maquina, ao invs de utilizarem daemons especficos, utilizaram apenas o inetd, que redirecionar as requisies de forma apropriada somente para o servio correspondente, racionalizando o consumo de recursos da maquina e evitando que vrias portas fiquem abertas, o que pode gerar problemas de segurana. Para usufruir de toda esta facilidade, necessrio simplesmente o ajuste adequado do arquivo de configurao do inetd, o /etc/inetd.conf. O formato deste arquivo, exposto abaixo: <servio> <tipo_soquete> <protocolo> <flags> <usurio> <daemon> <parmetros> A seguir, uma linha de exemplo de configurao do arquivo: #<servio> <tipo_soquete> <protocolo> <flags> <usurio> <daemon> <parmetros> netbios-ssn stream tcp nowait root /usr/sbin/tcpd /usr/sbin/smbd Mesmo que voc no tenha a necessidade de disponibilizar nenhum servio na rede, importante editar este arquivo para desabilitar os servios providos via inetd, comentando (com o caractere #) o inicio das linhas do arquivo que correspondem a configurao de um servio. importante entender tambm, que servios com elevados nmeros de acessos, devem ser configurados para trabalhar com daemons prprios e no com o inetd, devido ao ganho de desempenho que ser obtido nesse modo de operao. O arquivo /etc/inetd.conf, possu muitas opes de configurao, caso voc necessite saber mais elas, consulte a documentao com o comando man inetd.conf.
9.4.20. /etc/inittab
Este o arquivo de configurao utilizado pelo programa init para a inicializao do sistema, para maiores sobre este assunto, consulte a seo Sistema de Boot e Runlevels presente neste documento. O formato deste arquivo, mostrado na linha abaixo: identificao:nveis_execuo:ao:processo
PG.: 91
Agora, vamos mostrar um exemplo funcional do arquivo /etc/inittab, e comentarmos sobre suas caractersticas principais. Os comentrios iniciam-se com o caractere # e so ignoradas pelo programa init: ## Indica o nvel de execuo padro do sistema id:3:initdefault: # System initialization. ## Indica o diretrio de scripts a ser executado, ## dependendo do nvel de execuo configurado. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Trap CTRL-ALT-DELETE ## A seqncia de teclas indica o comando descrito, ## ou seja, reinicializa o sistema. ca::ctrlaltdel:/sbin/shutdown -t3 -r now ## Se por algum motivo a energia cair, o sistema ## agenda o desligamento do sistema para 2 minutos ## a partir do momento da queda de energia. pf::powerfail:/sbin/shutdown -f -h +2 "Falta de energia: Sistema desligando" ## Se a fora for restaurada antes de ser executado ## o comando anterior a este ser cancelado. pr:12345:powerokwait:/sbin/shutdown -c "Cancelando o desligamento" # Run gettys in standard runlevels ## Executa terminais em nveis de execuo padro, ## utilizados para conexes da console. 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
9.4.21. /etc/mtab
Contm uma lista dos sistemas de arquivos montados atualmente no sistema. Seu contedo idntico ao do arquivo virtual /proc/mounts. O comando mount executado sem parmetros, exibe o contedo de /etc/mtab.
9.4.22. /etc/issue
Contm um texto ou mensagem que ser mostrada antes do login do sistema.
9.4.23. /etc/issue.net
Mesma utilidade do arquivo /etc/issue, mas mostrado antes do login numa sesso telnet. Outra diferena, que este arquivo aceita os seguintes tipos de variveis:
PG.: 92
%t - Mostra o terminal (tty) atual. %h - Mostra o nome de domnio qualificado (FQDN). %D - Mostra o nome do domnio NIS. %d - Mostra a data e hora atual. %s - Mostra o nome do Sistema Operacional. %m - Mostra o tipo de hardware do computador. %r - Mostra a reviso do Sistema Operacional. %v - Mostra a verso do Sistema Operacional. %% - Mostra um simples sinal de porcentagem (%).
9.4.24. /etc/motd
Exibe um texto ou mensagem aps usurio se conectar com sucesso ao sistema. Tambm usado pelo telnet, ftp, e outros servidores que requerem autenticao do usurio (nome e senha).
PG.: 93
10.1. Introduo
O iptables foi introduzido a partir verso 2.4 do Kernel do GNU/Linux, com o objetivo de substituir o ipchains que era utilizado pelas verses 2.2. Este novo firewall, tem como vantagem ser muito estvel (assim como o ipchains e ipfwadm), confivel, permitir muita flexibilidade na programao de suas regras, mais opes disponveis para o controle de trfego e melhor organizao devido a organizao aprimorada das etapas de roteamento. O iptables um firewall em nvel de pacotes (veja mais detalhes sobre este conceito na seo Tipos de Firewall) e funciona baseado em endereos/portas de origem/destino. Ele desempenha suas funes atravs da comparao de regras, organizadas e armazenadas em tabelas internas, para saber se um pacote tem ou no permisso para adentrar a rede/maquina que est sendo protegida. Em configuraes mais restritivas, o pacote bloqueado e registrado para que o administrador do sistema tenha condies de avali-lo posteriormente. O iptables tambm pode ser usado para modificar e monitorar o trfego da rede, fazer NAT (IP masquerading e source/destination NAT), redirecionamento e marcao de pacotes, modificar a prioridade de pacotes que entram e saem do seu sistema, contagem de bytes, dividir trfego entre mquinas e criar protees contra vrias tcnicas de ataque (anti-spoofing, syn flood, DoS, etc). As possibilidades oferecidas pelos recursos de filtragem iptables e a sua eficcia, dependem em grande parte dos conhecimentos do administrador do sistema em relao aos conceitos de funcionamento das redes TCP/IP e da manipulao precisa das regras que so utilizadas pela ferramenta para fazer a validao de cada pacote que trafega pela rede/maquina protegida por este firewall. necessrio portanto, que o administrador seja consciente e tenha claro em sua mente o que deseja quais servios sero protegidos, quais so os endereos que sero aceitos/bloqueados, quais portas tero redirecionamento, etc.
De forma simplificada, existem dois tipos de firewall a saber: Nvel de aplicao - Este tipo de firewall, analisa o contedo do pacote para tomar suas decises de filtragem. Firewalls deste tipo, so mais intrusivos (pois analisam o contedo de tudo que passa por ele) e permitem um controle relacionado com o contedo do trfego. Alguns firewalls em nvel de aplicao combinam recursos bsicos existentes em firewalls em nvel de pacotes combinando as funcionalidade de controle de trfego/controle de acesso em uma s ferramenta. Nvel de pacotes - Este tipo de firewall toma as decises baseadas nos parmetros do pacote, como porta/endereo de origem/destino, estado da conexo, e outros parmetros do pacote. O firewall ento pode barrar o pacote (DROP) ou aceit-lo (ACCEPT). O iptables um excelente firewall que se encaixa nesta categoria.
PG.: 94
OUTPUT - Consultado para os pacotes que saem da mquina FORWARD - Consultado para os pacotes que so redirecionados para outra interface de rede ou outra mquina. Os chains INPUT e OUTPUT so verificados somente para conexes que se originam na maquina local. nat Usada para pacotes que necessitam criar outra conexo (IP masquerading, source/destination NAT, Port Forwarding e Proxy transparente so alguns exemplos). Possu 3 chains padres: PREROUTING - Consultado quando os pacotes precisam ser modificados logo que chegam. o chain ideal para realizao de DNAT e redirecionamento de portas. OUTPUT - Consultado quando os pacotes gerados localmente precisam ser modificados antes de serem roteados. Este chain somente consultado para conexes que se originam de endereos IP de interfaces locais. POSTROUTING - Consultado quando os pacotes precisam ser modificados aps o tratamento de roteamento. o chain ideal para realizao de SNAT e IP Masquerading. mangle Utilizada para alteraes especiais de pacotes (como modificar o Tipo de Servio (TOS) ou outros detalhes). Possu 5 chains padres: INPUT - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain INPUT da tabela filter. FORWARD - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain FORWARD da tabela filter. PREROUTING - Consultado quando os pacotes precisam ser modificados antes de ser enviados para o chain PREROUTING da tabela nat. POSTROUTING - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain POSTROUTING da tabela nat. OUTPUT - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain OUTPUT da tabela nat.
Agora verificamos novamente com o comando ping as respostas dadas pela maquina local: #ping 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes --- 127.0.0.1 ping statistics --2 packets transmitted, 0 packets received, 100% packet loss Desta vez a mquina no respondeu, pois todos os pacotes com o destino 127.0.0.1 so rejeitados. A opo -A usada para adicionar novas regras ao final do conjunto de regras de cada chain. Alm de -j DROP que serve para rejeitar os pacotes, podemos tambm usar -j ACCEPT para aceitar pacotes. A opo -j chamada de alvo da regra ou somente alvo, pois define o destino do pacote que atravessa a regra. OBS1: - O acesso a interface loopback (127.0.0.1) no deve ser de forma alguma bloqueado permanentemente, pois muitos aplicativos utilizam soquetes TCP para realizarem conexes localmente, caso do gerenciador de janelas X-Windows System. OBS2: - A tabela filter ser usada por padro caso nenhuma tabela seja especificada atravs da opo -t.
target DROP
destination localhost
Os campos exibidos, possuem o seguinte significado: Chain INPUT Nome do chain listado. (policy ACCEPT 78 packets, 5820 bytes) Policiamento padro do chain, neste caso, o padro aceitar os pacotes (policy ACCEPT). Esta linha tambm apresenta o nmero de pacotes, 78 no exemplo, e o nmero de bytes que atravessaram essa regra. pkts Quantidade de pacotes que atravessaram a regra. bytes Quantidade de bytes que atravessaram a regra. Pode ser referenciado com K (Kilobytes), M (Megabytes), G (Gigabytes). target O alvo da regra, o destino do pacote. Pode ser ACCEPT, DROP ou outro chain. Veja Especificando um alvo, Seo 10.3.6 para detalhes sobre a especificao de um alvo. prot Protocolo especificado pela regra. Pode assumir os valores udp, tcp, icmp ou all. opt Opes extras passadas a regra. Normalmente "!". in Interface de entrada (de onde os dados chegam).
out Interface de sada (para onde os dados vo). source Endereo de origem. destination Endereo de destino. outras opes: Estas opes normalmente aparecem quando so usadas a opo -x: dpt ou dpts - Especifica a porta ou faixa de portas de destino. reject-with icmp-port-unreachable - Significa que foi usado o alvo REJECT naquela regra.
grande nmero de regras por chains, neste caso a segunda opo a mais apropriada, veja: 2. Usamos a mesma sintaxe para criar a regra no chain, mas trocamos a opo A por -D: iptables -t filter -D INPUT -d 127.0.0.1 -j DROP Ento a regra correspondentes no chain INPUT da tabela filter ser automaticamente apagada (confira listando o chain com a opo "-L"). Caso o chain possua vrias regras semelhantes, somente a primeira ser apagada. OBS: No possvel apagar os chains padres do iptables (INPUT, OUTPUT...).
iptables -t filter -N internet Para inserir regras no chain internet, basta especifica-lo aps a opo -A: iptables -t filter -A internet -s 200.200.200.200 127.0.0.1 -j DROP E ento criamos um desvio (opo -j) do chain INPUT para o chain internet: iptables -t filter -A INPUT -j internet Se uma mquina com o endereo 200.200.200.200 tentar acessar sua mquina (127.0.0.1), o iptables consultar as seguintes regras: INPUT ---------------------------------------------------------------| Regra1: -s 192.168.1.15 -d 127.0.0.1 -j DROP | |---------------------------------------------------------------| | Regra 2: -j internet | ---------------------------------------------------------------internet --------------------------------------------------------------------| Regra1: -s 200.200.200.200 -d 127.0.0.1 -j DROP | --------------------------------------------------------------------O pacote que possu o endereo de origem 200.200.200.200, passa pela primeira regra do chain INPUT, a segunda regra deste mesmo chain, direciona o fluxo de checagem para o chain internet. No chain internet, a primeira regra confere com o endereo de origem 200.200.200.200 e o pacote ser bloqueado. Aps o processamento da nica regra existente neste chain (internet), o fluxo de checagem redirecionado ao chain anterior (INPUT), e como no h mais nenhuma regra para ser verificada, o processamento finalizado. -d
PG.: 100
enquadre aquele pacote (usado em regras permissivas). DROP rejeita os pacotes caso nenhuma regra do chain se enquadre (usado em regras restritivas). O policiamento padro de um chain, pode ser exibido atravs do uso do comando iptables -L, conforme o exemplo abaixo: # iptables -L INPUT Chain INPUT (policy ACCEPT) target prot opt source DROP icmp -- anywhere destination localhost
No exemplo acima, o policiamento padro de INPUT ACCEPT (policy ACCEPT), o que significa que qualquer pacote que no seja rejeitado pelas regras contidas neste chain, sero por padro aceitos pelo sistema. Para alterar o policiamento padro deste chain usamos o comando: iptables -t filter -P INPUT DROP NOTA: Os policiamentos PERMISSIVOS (ACCEPT), normalmente so usados em conjunto com regras restritivas no chain correspondente (tudo bloqueado e o que sobrar liberado), j os policiamentos RESTRITIVOS (DROP), so usados em conjunto com regras permissivas no chain correlato (tudo liberado e o que sobrar bloqueado pelo policiamento padro).
nunca poder ser especificada em um chain como o INPUT. referncia: Tabela Chain Interface Entrada (-i) filter INPUT OUTPUT FORWARD nat PREROUTING OUTPUT POSTROUTING mangle PREROUTING OUTPUT SIM NO SIM SIM NO NO SIM NO
O caminho do pacote na interface ser determinado pelo tipo da interface e pela posio dos chains nas etapas de seu roteamento. O chain OUTPUT da tabela filter somente poder conter a interface de sada (veja a tabela acima). No caso do chain FORWARD da mesma tabela, podemos perceber que este o nico que aceita a especificao de ambas as interfaces, este um timo chain para controlar o trfego que passa entre as diferentes interfaces de rede do firewall. Por exemplo, para bloquear o acesso do trfego de qualquer mquina com o endereo IP 200.123.123.10, que venha da interface ppp0 (uma placa de fax-modem), podemos utilizar o seguinte comando: iptables -t filter -A INPUT -s 200.123.123.10 -i ppp0 -j DROP A mesma regra pode ser especificada de uma forma um pouco diferente: iptables -t filter -A INPUT -s 200.123.123.10 -i ppp+ -j DROP O sinal de "+" funciona como um coringa, assim a regra ter efeito em qualquer interface de ppp0 a ppp9. As interfaces ativas no momento podem ser listadas com o comando ifconfig. Tambm permitido, especificar uma regra que faa referncia a uma interface que ainda no existe, isto interessante, para conexes intermitentes como o PPP (acesso a Internet via modem). Vamos a outro exemplo, suponha agora que queremos bloquear a passagem de trfego da interface ppp0 para a interface eth1 (uma de nossas redes internas). Podemos fazer isso usando o seguinte comando: iptables -t filter -A FORWARD -i ppp0 -o eth1 -j DROP
Uma faixa de portas pode ser especificada atravs do formato PortaOrigem:PortaDestino, conforme exemplificado logo abaixo: iptables -t filter -A OUTPUT -d 200.200.200.200 -p tcp --dport 0:1024 -j DROP No exemplo acima, qualquer pacote com destino 200.200.200.200 na faixa de portas de 0 a 1024 do protocolo TCP ser bloqueado pelo firewall. Caso o argumento relativo a porta de origem de uma faixa de portas no seja especificado, o valor 0 (zero) assumido por padro, caso o argumento no especificado seja a porta de destino, ento, o valor 65535 assumido por padro.
PG.: 104
apt-get install libncurses5-dev Agora, podemos modificar algumas opes do arquivo de configurao /etc/kernelpkg.con, do pacote kernel-package, para personalizar a compilao do novo ncleo. Para editar este arquivo, pode-se usar o comando vi /etc/kernel-pkg.conf. Abaixo, os parmetro que alteramos neste arquivo para exemplo. As linhas que iniciam com o caractere # so comentrios e no possuem funcionalidade alguma: ### Arquivo /etc/kernel-pkg.conf ### #Nome do mantenedor do Kernel maintainer := Marcius Marcelo Roger #E-mail do mantenedor email := marcius@celepar.pr.gov.br #Prioridade desta reviso do Kernel. Normalmente utilizamos prioridade baixa (valor Low) priority := Low Depois de realizar as mudanas, necessrio salvar o arquivo de configurao.
No comando acima, os parmetros utilizados tem o seguinte significado: --append-to-version Acrescenta a palavra que voc indicar (no exemplo, "-personalizado") verso do pacote criado. til para diferenciar seu Kernel recompilado de um "oficial"; --initrd Indica que junto com o Kernel, deve ser criado um arquivo "initrd", que o padro da Debian (e o modo mais flexvel). Para mais informaes, "man 4 initrd"; --us e --uc Estas opes fazem com que o pacote seja criado sem uma assinatura GPG e sem modificaes do arquivo changelog, respectivamente. Se desejar entender melhor estas questes, "man dpkg-buildpackage"; kernel_image a ao que o utilitrio make-kpkg vai executar, ou seja, com essa ao, ele cria um pacote no formato Debian com a imagem do Kernel, para que voc possa instal-lo facilmente em seu sistema depois. H outras aes possveis, caso voc esteja curioso, veja a documentao "man make-kpkg". V tomar um caf e relaxe. Essa operao um tanto demorada. Tenha um pouco de pacincia e aguarde o seu trmino. Ao final da compilao, caso o sistema pergunte algo conforme o pargrafo seguinte (por causa do parmetro --initrd): Warning: You are using the initrd option, that may not work unless you have applied the initrd cramfs patch to the kernel, or modified mkinitrd not to use cramfs by default. The cramfs initrd patch, is included in the Debian supplied kernel sources, but is not present in pristine kernel sources. By default, I assume you know what you are doing, and I apologize for being so annoying. Should I abort[Ny]? s digitar "n", e em seguida pressionar <ENTER> para continuar. Agora s instalar o pacote que foi criado pelo utilitrio make-kpkg durante a compilao do cdigo fonte do ncleo. O pacote criado no diretrio um nvel acima a partir de onde foi compilado, ou seja, ele se encontra em /usr/src. Para instalar o pacote execute cada um dos comandos abaixo: cd /usr/src dpkg -i linux-image-2.6.18-5-personalizado_i386.deb Pronto! O sistema j cria e configura automaticamente os arquivos e o gerenciador de boot para inicializao do SO a partir do novo ncleo. Agora basta reiniciar o sistema e testar seu novo Kernel. Caso ocorra algum problema durante este processo, basta reiniciar o computador e iniciar o sistema a partir da imagem antiga do Kernel (a que j existia antes da compilao). Boa sorte !
PG.: 107
-s Redireciona as mensagens de erro para o mecanismo de log do sistema (syslog). -v Imprime a lista com todos os mdulos processados. -A Faz a atualizao rpida do arquivo de dependncias. Para isso, utiliza a data e hora e verifica as mudanas recentes no diretrio
PG.: 108
/lib/modules/VERSO_DO_KERNEL_UTILIZADA. -C arquivo Utiliza um arquivo de configurao alternativo em vez de /etc/modules.conf. Tambm possvel usar as configuraes a partir da varivel de ambiente MODULECONF -F arquivo Usa um arquivo de smbolos alternativo para construir as dependncias. Geralmente, se usa uma cpia do arquivo System.map de um outro sistema ou a sada de /proc/ksyms. Exemplos: depmod -a Constri um arquivo de dependncias usando todos os mdulos disponveis no sistema. depmod -n Gera o arquivo de dependncias e o imprime na sada padro (tela). depmod -v /lib/modules/2.6.18-5-k7/kernel/drivers/char/drm/drm.ko Gera as dependncias do mdulo drm.ko e exibe detalhes sobre este procedimento para o usurio.
11.3.2. insmod
Carrega um mdulo do kernel em tempo de execuo. O utilitrio insmod, no resolve dependncias no momento da carregamento de um mdulo. Por essas e outras facilidades, muitos usurios deixaram de usar insmod e passaram a usar o comando modprobe. insmod arquivo [parmetros] Onde: arquivo o arquivo mdulo que se deseja carregar. parmetros So os parmetros do mdulo que esto disponveis para serem utilizados no momento do carregamento do mdulo. Nem todos os mdulos possuem parmetros de carregamento. Exemplos: insmod /lib/modules/2.6.18-5-k7/kernel/drivers/char/drm/drm.ko Carrega o mdulo drm, armazenado no arquivo drm.ko. insmod /lib/modules/2.6.18-5-k7/kernel/drivers/char/drm/drm.ko cards_limit=2 Carrega o mdulo drm, armazenado no arquivo drm.ko, com o parmetro limitador do nmero de placas de vdeo.
11.3.3. lsmod
um comando que lista todos os mdulos carregados pelo kernel, apresentando informaes como: nome do mdulo, tamanho (em unidades de 4 Kb), nmero de mdulos dependentes, e se for o caso, nome dos mdulos dependentes. A mesma informao pode ser obtida em /proc/modules. O comando lsmod no possu parmetros, sendo muito simples de usar. lsmod
PG.: 109
11.3.4. modinfo
O utilitrio modinfo extra informaes de mdulos do kernel do Linux, para exibilas ao administrador do sistema. Em geral, para se utilizar este comando, fornecido o caminho e o nome de um arquivo mdulo e o modinfo retornar as informaes sobre o mdulo em questo. Algumas vezes, o administrador poder fazer a busca pelo nome oficial do mdulo ao invs do nome do arquivo que utilizado para armazen-lo, neste caso, modinfo consultar o diretrio /lib/modules/VERSO_DO_KERNEL_UTILIZADA, assim como comando modprobe, para tentar detectar a qual arquivo aquele nome de mdulo se refere, e se possvel, extrair informao a partir dele. Por padro, as informaes mostradas pelo comando modinfo so: nome do mdulo, descrio, autor, licena, dependncias e parmetros. modinfo [opes] arquivo/nome Onde: arquivo/nome Representa o caminho completo do arquivo do mdulo que se deseja consultar, ou apenas, o nome oficial do mdulo em questo. opes: -F campo Exibe apenas a informao contida no argumento campo na tela. Argumentos vlidos para utilizao em campo, so: author, description, license, param, depends, alias, param, depends e filename. -a Lista o nome do autor do mdulo. -d Exibe a descrio do mdulo. -l Exibe a licena. -p Exibe os parmetros para utilizao daquele mdulo. -n O nome do arquivo. Exemplos: modinfo -F author thermal Exibe o nome do autor do mdulo thermal. modinfo /lib/modules/2.6.18-5-k7/kernel/drivers/acpi/thermal.ko Exibe todas as informaes disponveis sobre o arquivo mdulo thermal.ko.
11.3.5. modprobe
Adiciona ou remove mdulos do kernel em tempo de execuo. O modprobe um utilitrio inteligente, capaz de resolver as dependncias de um mdulo que est sendo adicionado ou removido. Assim como acontece com o utilitrio modinfo, voc poder especificar o caminho completo mais o nome do arquivo mdulo, ou apenas, o nome oficial do mdulo para carregar/descarreg-lo com o modprobe. Caso seja informado um nome de mdulo ao invs de um nome de arquivo, o utilitrio ir fazer uma busca no diretrio /lib/modules/VERSO_DO_KERNEL_UTILIZADA, para tentar carregar/descarregar o mdulo em questo.
PG.: 110
Em alguns sistemas, o modprobe pode possuir um arquivo de configurao, o /etc/modprobe.conf, e na maioria das vezes, a estrutura de diretrios /etc/modprobe.d/ estar presente, para organizar e facilitar a configurao de um dado conjunto de mdulos daquela maquina. Um mdulo carregado atravs do modprobe, no ser automaticamente carregado na prxima inicializao da maquina. Voc poder especificar os mdulos a serem carregados durante a inicializao do sistema, atravs do arquivo /etc/modules. modprobe [opes] arquivo/nome Onde: arquivo/nome Representa o caminho completo do arquivo do mdulo que se deseja carregar/descarregar, ou apenas, o nome oficial do mdulo em questo. opes: -v Exibe mensagens sobre o que modprobe est fazendo. -C arquivo Ignora as configuraes do arquivo /etc/modprobe.conf e utiliza as configuraes providas por um arquivo alternativo, definido atravs do argumento arquivo, e tambm as definies contidas na varivel de ambiente MODPROBE_OPTIONS. -c Exibe o contedo do arquivo de configurao /etc/modprobe.conf. No utilize esta opo em conjunto com as demais. -i, --ignore-install, --ignore-remove Essa opo faz com que qualquer comando install ou remove do arquivo de configurao /etc/modprobe.conf, seja ignorada. -q Faz com mensagens geradas durante a execuo de modprobe no sejam exibidas para o usurio. -r, --remove Esta opo faz com que um mdulo do kernel seja descarregado. Caso o mdulo contenha dependncias, e caso elas tambm no estejam sendo utilizadas por outros mdulos, elas tambm sero descarregadas. Voc pode especificar mais de um mdulo para ser descarregado na mesma linha de execuo de modprobe, ao contrrio do que acontece na ao de carregamento. -l expresso Lista todos os mdulos contidos no diretrio /lib/modules/VERSO_DO_KERNEL_UTILIZADA, que conferem com o padro fornecido atravs do argumento expresso. O uso de caracteres coringa tambm so permitidos para formar a expresso a ser pesquisada. -a Carrega todos os mdulos contidos na linha de execuo do comando. -t diretrio Restringe a busca, quando a opo -l usada, somente ao diretrio especificado pelo usurio. -s Esta opo faz com que todas as mensagens de erro geradas pela execuo do modprobe, sejam redirecionadas ao mecanismo de log do sistema.
PG.: 111
--set-version verso Permite que o usurio defina uma verso do kernel a ser utilizada no momento da instalao de um mdulo, ao invs de obter esta informao automaticamente atravs do utilitrio uname (este o padro). --show-depends mdulo Exibe os arquivos mdulo correspondente a cada dependncia que este possu, incluindo o prprio arquivo correspondente ao mdulo em questo. Exibe informao relevante para ser utilizada com o comando insmod. -o nome Permite renomear um mdulo j carregado. Isto til somente no caso de testes, em geral feito por desenvolvedores, j que no possvel carregar mdulos que possuem o mesmo nome. Exemplos: modprobe sis Carrega o mdulo sis, utilizado para placas de vdeo SIS. modprobe -l ther* Lista todos os arquivos de mdulos que iniciam com a expresso ther. modprobe -s -a sis thermal floppy Carrega os mdulos sis, thermal e floppy e redireciona os erros para o sistema de log do Linux (syslog). modprobe -r floppy Descarrega o mdulo floppy. modprobe show-depends thermal Exibe as dependncias para o mdulo thermal, incluindo o prprio arquivo do mdulo em questo. modprobe -o disquete floppy Renomeia o mdulo carregado floppy com o nome disquete.
11.3.6. rmmod
um programa para remover um mdulo carregado da memria (descarregar o mdulo). Muitos usurios tem optado por utilizar o comando modprobe -r em vez de rmmod, pela eficincia e facilidade de uso do primeiro comando. rmmod [opes] mdulo Onde: mdulo o nome oficial do mdulo que se deseja descarregar (remover da memria, desconectar do kernel). opes: -v Imprime as aes que esto sendo realizadas pelo rmmod. -f Opo extremamente perigosa. Fora a remoo de um mdulo do kernel, mesmo que este, esteja sendo utilizado por outros mdulos. S use esta opo em casos emergenciais. -w
PG.: 112
Faz com que rmmod isole o mdulo em questo, e aguarde at que todos os recursos do sistema no necessitem mais utiliz-lo, e faa a remoo segura do mdulo da memria. -s Envia os erros encontrados durante a operao ao mecanismo de log do sistema (syslog). Exemplos: rmmod drm Remove o mdulo drm da memria (descarrega o mdulo). rmmod -w sis Aguarda at que nenhum outro recurso esteja utilizando o mdulo sis, para descarreg-lo da memria de forma segura. rmmod -f floppy Fora o descarregamento do mdulo do kernel denominado floppy.
11.3.7. sysctl
O utilitrio sysctl uma interface que permite examinar e alterar dinamicamente parmetros do Kernel do GNU/Linux. Geralmente, esses parmetros (identificados como objetos na MIB Management Information Base) so usados para ajustes como limitar o tamanho do segmento da memria compartilhada, o nmero de threads que o SO pode utilizar, o nmero mximo de processos executados pelo sistema, alterar funcionalidades como IP forwarding, restries de segurana para o superusurio (root) e nveis de depurao. A grande vantagem de se alterar parmetros do Kernel via sysctl, que isto evita em muitos casos, a recompilao do ncleo do sistema. O sysctl a ferramenta mais importante do sistema para se fazer ajustes finos de funcionalidades (tunning), e por isso, necessrio que o administrador do sistema domine o uso deste utilitrio, tanto para sanar problemas como para melhorar o desempenho do sistema. sysctl [opes] [varivel] [=valor] Onde: varivel a opo que define a varivel a ser consultada/alterada com o uso de sysctl. valor Esse parmetro s pode ser utilizado com a opo anterior (varivel), e permite estipular o novo valor que dever ser assumido pela varivel que est sendo alterada. opes: -n Esta opo evita que o nome da varivel seja impressa juntamente com seu valor, esta a forma padro da sada do sysctl (ex.: kernel.hostname = ecelepar00001), sendo que somente o valor da varivel ser impresso quando -n for informado. -e Ignora erros quando a varivel informada no existe. -N Imprime o nome da varivel em vez do seu valor. Funciona de modo contrrio a opo -n. -q Por padro, quando um valor alterado, sysctl exibe a alterao realizada na tela. Use esta opo caso voc no deseje este tipo de comportamento.
PG.: 113
-w Use esta opo para alterar o valor de uma varivel. -p [arquivo] Permite carregar as opes para o sysctl atravs de um arquivo, definido atravs do argumento homnimo ou atravs de /etc/sysctl.conf sem nenhum argumento for fornecido. -a Imprime todas as variveis disponveis no sistema. -A Imprime todas as variveis disponveis no sistema de forma tabulada. Exemplos: sysctl -a Imprime todas as variveis do sistema que o administrador poder modificar. sysctl kernel.hostname Imprime o valor da varivel kernel.hostname no formato padro usado por sysctl. sysctl -w kernel.hostname=maquina Ajusta o valor da varivel kernel.hostname para maquina.
PG.: 114
12. Anexos
12.1. NFS - Network File System
- Servio de rede que permite o compartilhamento transparente de sistemas de arquivos ou diretrios entre os ns de uma rede. Utiliza a implementao de RPC (Remote Procedure Call), cujos protocolos so descritos usando XDR (eXternal Data Representation). Para exemplificar o uso vamos apenas criar um exemplo para que rapidamente possa estar utilizando esse recurso. Em nosso exemplo teremos apenas um cliente e um servidor com os endereos abaixo: Servidor: 10.15.15.32 Cliente: 10.15.15.45
No servidor proceda da seguinte forma: Para poder utilizar o nfs necessrio instalar os pacotes abaixo: # apt-get install nfs-common nfs-kernel-server portmap O arquivo /etc/exports determina os sistemas de arquivos a serem exportados e abaixo est um exemplo da sintaxe a ser utilizada: /mnt/publico -rw 10.15.15.45 Para que nosso exemplo possa funcionar corretamente, crie no servidor a pasta /mnt/publico com os comandos abaixo: # mkdir /mnt/publico # chmod 777 /mnt/publico Reinicie os servios abaixo para garantir o acesso: # /etc/init.d/nfs-kernel-server restart # /etc/init.d/nfs-common restart # /etc/init.d/portmap restart
Na estao cliente faa do seguinte comando para testar se o sistema de arquivos est disponvel: # mkdir /mnt/publico # sudo mount -t nfs 10.15.15.32:/mnt/publico /mnt/publico # mount No resultado do comando mount dever aparecer a seguinte linha: 10.15.15.32:/mnt/publico on /mnt/publico type nfs (rw,addr=10.15.15.32)
PG.: 115
Permisso negada
PG.: 116
Este erro ocorrer caso voc esteja tentando executar um arquivo, o qual no possua permisso de execuo (permisso x, concedida com o comando chmod), ou caso voc no possua permisses efetivas para executar o arquivo, ou seja, no seja o dono do arquivo, nem faa parte do grupo de acesso e a permisso para outros no conceda permisso de execuo. Erro de sintaxe Isso acontecer caso seu arquivo seja encontrado, voc possua as devidas permisses para execut-lo, mas o arquivo contenha erros de sintaxe no uso dos comandos que voc inseriu. Lembre-se, os comandos devem ser utilizados com 100% de acurcia em relao a sua sintaxe, para que o script possa ser executado sem erros.
Muitas vezes, preciso que o usurio informe parmetros que vo nortear a execuo de um script. Nestes casos, podemos capturar os argumentos enviados pelo usurio atravs da linha de execuo do script, para us-los de alguma forma no decorrer do fluxo de execuo do prprio script. Por exemplo, suponha que o usurio tenha executado o script com o comando abaixo: # ./meu_script Marcius Malta O nosso script est preparado para tratar os argumentos que foram enviados via linha de comando. Ele primeiro imprimir o primeiro e o segundo argumento, e depois, unir e imprimir os dois. Veja como ele foi organizado para isto: #!/bin/bash #Imprime o valor do primeiro parmetro. echo -e Primeiro parmetro: $1 \n #Imprime o valor do segundo parmetro. echo -e Segundo parmetro: $2 \n #Junta e imprime os parmetros. echo -e $1 $2 Como resultado, a terceira linha do script dever mostrar a frase Primeiro parmetro: Marcius quando executada, a quinta linha Segundo parmetro: Malta e a ltima linha, Marcius Malta.
A estrutura if O if a estrutura de testes condicionais. Ele semelhante ao if utilizado na linguagem C/C++. Abaixo a sintaxe de uso: if TESTE then comandos elif TESTE comandos else comandos
PG.: 118
fi Exemplos: Exemplo 01: Testa se o arquivo chamado meu_texto.txt existe. #!/bin/bash #Testa se o arquivo chamado meu_texto.txt existe. #Note que os espaos utilizados so obrigatrios. if [ -e /home/usuario/meu_texto.txt ] #Note tambm, que o then fica numa linha prpria. then echo O arquivo existe. else echo O arquivo no existe. fi Exemplo 02: Testa se um nmero maior do que outro. #!/bin/bash #Testa se o arquivo chamado meu_texto.txt existe. #Note que os espaos utilizados so obrigatrios. if [ 5 -gt 4 ] #Note tambm, que o then fica numa linha prpria. then echo Sim, 5 maior do que 4. else echo No, 5 no maior do que 4. fi Exemplo 03: Faz dois testes numricos usando o E lgico. #!/bin/bash #Testa se o arquivo chamado meu_texto.txt existe. #Testando se as duas condies so verdadeiras. if [ 5 -eq 5 ] && [ 3 -gt 5 ] #Note tambm, que o then fica numa linha prpria. then echo Sim, as duas condies so verdadeiras. else echo No, pelo menos uma condio est errada. fi A estrutura while O while uma das estruturas de repetio utilizadas em shell scripts. Abaixo, a sintaxe de uso: while TESTE do comandos done
Exemplos: Exemplo 01: Imprime a frase Isto um teste sete vezes. #!/bin/bash #Inicializa a varivel var com valor 0 (zero). var="0" while #Testa se o valor de var menor do que 7. [ $var -lt 7 ] do echo "Isto um teste"
PG.: 119
#Incrementa o valor da varivel var var=$(($var + 1)) done A estrutura for uma outra estrutura de repetio, assim como while. A seguir, a sintaxe de utilizao: for VARIVEL in LISTA do comandos done
ou, podemos utilizar o formato ANSI C/C++: for ((EXPRESSO1;EXPRESSO2;EXPRESSO3)) Exemplos: Exemplo 01: Imprime a frase Isto um teste sete vezes. #!/bin/bash #Inicializa a varivel var com valor 0 (zero). var="0" #Usa o comando seq para gerar uma seqncia de 7 repeties. for var in $(seq 7) do echo "Isto um teste" done A estrutura case uma estrutura de deciso, ainda mais sofisticada que if. A seguir, a sintaxe de utilizao: case VARIVEL in VALOR1) comandos;; VALOR2) comandos;; VALOR3) comandos;; *) comandos;; esac
Exemplos: Exemplo 01: Detecta o nmero digitado pelo usurio ou retorna uma mensagem de erro. #!/bin/bash echo "Digite um nmero entre 0 e 2:" #L a varivel numero a partir da entrada do usurio. read numero #Determina o valor da varivel atravs da estrutura de controle. case $numero in 0) echo "O numero zero foi digitado.";; 1) echo "O numero um foi digitado.";; 2) echo "O numero dois foi digitado.";; *) #Caso o valor no corresponda a nenhuma das opes: echo "Voc digitou um caractere invlido.";;
PG.: 120
esac
12.2.7. Funes
Funes so aglomerados de comandos que podem ser definidos para uso posterior em qualquer parte do cdigo. Praticamente todas as linguagens usam funes que ajudam a organizar o cdigo. Vejamos a sintaxe de uma funo: nome_da_funcao() { comandos } O corpo das funes devem construdos sempre antes de serem utilizados, caso contrrio, o sistema retornar um erro do tipo command not found, que significa que a funo em questo no pode ser encontrada. Exemplo: #!/bin/bash #Corpo da funo mostra_data. mostra_data(){ date } #Corpo da funo mostra_calendario. mostra_calendario(){ cal } echo "Digite 1 para exibir a data, ou 2, para o calendrio:" #L a varivel numero a partir da entrada do usurio. read numero #Determina o valor da varivel atravs da estrutura de controle. case $numero in 1) #Chama a funo mostra_data. mostra_data;; 2) #Chama a funo mostra_calendario. mostra_calendario;; *) #Caso o valor no corresponda a nenhuma das opes: echo "Voc digitou uma opo invlida.";; esac
12.2.8. sed
O utilitrio sed um editor de streams. Um programa desta natureza, usado para realizar transformaes num arquivo de texto ou num pipe (fluxo de dados). Sed bastante til para fazer trocas de letras, palavras ou linhas inteiras de texto. uma ferramenta largamente utilizada em scripts shell. Embora a principio, o uso deste utilitrio parea simples, ele um dos programas mais poderosos do mundo Linux. possvel realizar operaes que demandariam um grande esforo manual e um trabalho de edio de dados muito complexo, atravs de um script sed. sed [opes] [script] [arquivo/pipe] Onde: script um conjunto de comandos do sed e dados, que definem o que ser alterado no arquivo definido pelo argumento que denominamos arquivo.
PG.: 121
arquivo/pipe a fonte dos dados que desejamos modificar. opes: -e [script] Opo utilizada para executar um script (comandos e dados) sed, presente na prpria cadeia de execuo do comando (in line script). -f [arquivo] Permite especificar um arquivo que contenha um script (comandos e dados) sed. Esta uma opo interessante, quando necessrio executar muitas operaes do sed sobre um mesmo arquivo. -i Utiliza o prprio arquivo fonte de dados para gravar as alteraes.
-n Modo silencioso, impede que os resultados dos comandos do sed sejam impressos na sada padro (monitor). Por padro, caso no seja utilizado o parmetro i, sed imprimir o resultado da execuo de seus comandos para sada padro. Caso n seja utilizado em conjunto com -e, somente a sada decorrente do script a ser executado pelo segundo parmetro ser exibida na sada padro. Comandos Internos H ainda, comandos internos do sed que so usados para desempenhar as diversas funes com relao a edio de streams. Estes comandos so utilizados para compor os scripts sed. Abaixo uma breve descrio sobre os principais comandos que o utilitrio possu: q Permite que o usurio informe em qual linha do processamento da fonte dos dados (arquivo ou pipe) o sed deve encerrar sua execuo. Este parmetro deve ser precedido de um nmero indicando a linha em que o processamento ser encerrado. d I Torna a busca pelo padro independente de maisculas e minsculas. Imprime uma linha. Pode ser precedido por um nmero indicando o nmero da linha que se deseja imprimir na sada padro (monitor). Caso o parmetro de linha de comando -n no tenha sido utilizado, imprime o contedo da fonte de dados (arquivo ou pipe). Comando de substituio. Faz com que um determinado padro (expresso) seja substitudo por outro. Trabalha de acordo com o formato, incluindo as aspas: s/string original/string de substituio/ um dos comandos sed mais utilizados. Este comando, possu uma lista de parmetros e sinalizadores, abaixo demonstramos alguns dos mais importantes: \L Torna a string (cadeia de caracteres) minsculo at que \U ou \E seja encontrado na seqencia. \l Torna o prximo caractere da seqencia minsculo. \U
PG.: 122
Torna a string (cadeia de caracteres) maiscula at que \L ou \E seja encontrado na seqencia. \u Torna o prximo caractere da seqencia maisculo. \E Para a converso de strings (cadeia de caracteres) iniciada por \L ou \ U. \n Insere uma nova linha na string (cadeia de caracteres). \t Insere um espao de tabulao na string (cadeia de caracteres). \ Caractere de escape. necessrio quando desejamos inserir algum caractere especial, como / (barra) por exemplo, ou quando necessitamos usar um parmetro, como \n (nova linha) exemplificando, dentro de uma string (cadeia de caracteres). g Substitu todas as ocorrncias do padro encontrado na fonte de dados por uma nova expresso. i Ignora maisculas e minsculas na busca pelo padro (expresso) a ser substitudo. [nmero] Um nmero que indica qual das ocorrncias encontradas, e que confere com o padro informado, ser substituda. O escopo de atuao deste sinalizador uma linha. p Imprime linhas de uma fonte de dados (arquivo ou pipe) que esto sendo substitudas. Exemplos: sed n teste.txt Imprime o contedo do arquivo teste.txt na sada padro (monitor). sed -n 2,4p teste.txt Imprime da segunda quarta linha do arquivo teste.txt na sada padro (monitor). sed s/z/marcius/ teste.txt Substitu a primeira ocorrncia da string z de cada linha por marcius, presente no arquivo teste.txt. sed -e 2q -e s/z/marcius/ teste.txt Processa o arquivo teste.txt at o inicio da segunda linha, substituindo a primeira ocorrncia da string z por marcius. sed s/z/marcius/2 teste.txt Substitu a segunda ocorrncia da string z de cada linha, pela string marcius, presente no arquivo teste.txt. sed /^$/d teste.txt Apaga as linhas em branco do arquivo teste.txt. sed /z/d teste.txt Apaga as linhas que contenham a string z do arquivo teste.txt. sed -i s/samba/rede/ teste.txt Substitu a primeira ocorrncia da string samba de cada linha por rede, e grava esta alterao no arquivo teste.txt.
PG.: 123
sed /CPPC/Id teste.txt > teste_modificado.txt Apaga todas as linhas que contenham a string CPPC, independentemente de maisculas e minsculas, gravando o resultado no arquivo teste_modificado.txt. sed -nf sed.scp teste.txt ### Arquivo sed.scp ### #!/usr/bin/sed -nf s/palavra/frase completa/p 3,5p ### Fim do script ### Exemplo de uso do sed por meio de um arquivo de script. O script acima, faz a substituio da string palavra por frase completa, caso esta substituio ocorra em algum lugar do arquivo alvo, a linha em questo ser exibida na tela. O ultimo comando (3,5p) tem a funo de imprimir da terceira a quinta linha da fonte de dados. Todas as linhas que comeam com o caractere #, so comentrios. Para mais informaes sobre sed, consulte: http://www.gnu.org/software/sed/manual/sed.html http://www.student.northpark.edu/pemente/sed/sed1line.txt http://www.zago.eti.br/script/sed.html
PG.: 124