Você está na página 1de 223

1 SUMRIO

1. INTRODUO........................................................................................................ 7 1.1. O LINUX .......................................................................................................... 7 1.2. ALGUMAS CARACTERSTICAS DO LINUX................................................... 9 1.3. DISTRIBUIES LINUX ............................................................................... 10 1.3.1. Caractersticas de algumas distribuies: ............................................. 11 1.4. O ADMINISTRADOR DE SISTEMAS............................................................ 14 2. INSTALAO DO SISTEMA ................................................................................ 15 3. ARQUITETURA DO SISTEMA ............................................................................. 30 3.1. ARQUIVOS.................................................................................................... 30 3.2. ARQUIVOS ESPECIAIS................................................................................ 31 3.2.1. Links ...................................................................................................... 32 3.2.1.1. Links diretos................................................................................ 32 3.2.1.2. Links Simblicos ......................................................................... 32 3.2.2. Dispositivos ........................................................................................... 32 3.3. EXTENSO DE ARQUIVOS ......................................................................... 33 3.4. DIRETRIO................................................................................................... 34 3.4.1. Estrutura bsica de diretrios do Sistema Linux.................................... 34 3.5. COMANDOS NO LINUX................................................................................ 35 3.5.1. Comandos Internos ............................................................................... 35 3.5.2. Comandos Externos .............................................................................. 36 3.5.3. Aviso de comando (Prompt) .................................................................. 36 3.5.4. Interpretador de comandos.................................................................... 36 3.5.4.1. Interativa ..................................................................................... 37 3.5.4.2. No-interativa.............................................................................. 37 4. COMANDOS INICIAIS.......................................................................................... 38 5. DOCUMENTAO DO LINUX ............................................................................. 44 5.1. PGINAS DE MANUAL................................................................................. 44 5.2. DOCUMENTOS HOWTO'S........................................................................... 45 5.3. PGINAS INTERNET DE REFERNCIA...................................................... 45 5.4. LISTAS DE DISCUSSO .............................................................................. 46 6. METACARACTERES E REDIRECIONADORES ................................................. 47 CETAM

2 6.1. METACARACTERES .................................................................................... 47 6.2. REDIRECIONAMENTOS E PIPE .................................................................. 48 7. COMANDOS TEIS ............................................................................................. 51 8. PERMISSES DE ACESSO A ARQUIVOS E DIRETRIOS .............................. 56 8.1. DONOS, GRUPOS E OUTROS USURIOS................................................. 56 8.3. TIPOS DE PERMISSES DE ACESSO ....................................................... 57 8.3.1. Modo de permisso octal....................................................................... 57 8.3.2. Permisses de Acesso Especiais.......................................................... 58 8.4. COMANDOS PARA MANIPULAR PERMISSES ........................................ 59 9. GERENCIAMENTO DE USURIOS E GRUPOS................................................. 62 9.1 COMANDOS PARA GERNCIA USURIOS ................................................ 62 10. LOCALIZAO DE ARQUIVOS......................................................................... 67 11. SISTEMA DE ARQUIVOS .................................................................................. 69 11.1. JOURNALING ............................................................................................. 70 11.2. IDENTIFICAO DE DISCOS E PARTIES EM SISTEMAS LINUX ...... 70 11.3 COMANDOS DE MANIPULAO DE SISTEMAS DE ARQUIVOS............. 71 11.4. O ARQUIVO FSTAB.................................................................................... 75 12. SISTEMA DE GERENCIAMENTO DE PACOTES ............................................. 78 12.1. PACOTES ................................................................................................... 78 12.1.1. Instalar pacotes ................................................................................... 78 12.1.2. Listar pacotes existentes no sistema ................................................... 79 12.1.3. Removendo pacotes do sistema ......................................................... 79 12.1.4. Mostrar descrio do pacote ............................................................... 80 12.1.5. Procura de pacotes atravs do nome de um arquivo .......................... 80 12.1.6. Status do pacote.................................................................................. 80 12.1.7. Procurando pacotes com problemas de instalao ............................. 81 12.1.8. Mostrando a lista de pacotes do sistema............................................. 81 12.1.9. Obtendo uma lista de pacotes para instalar no sistema ...................... 81 12.1.10. Configurando pacotes desconfigurados ............................................ 82 12.1.11. Listando arquivos de um pacote........................................................ 82 12.2 APT............................................................................................................... 82 12.2.1. O arquivo /etc/apt/sources.list ............................................................. 83 12.2.2. Utilizando CDs oficiais/no-oficiais/terceiros com o apt ...................... 85 CETAM

3 12.2.2.1. Instalando novos pacotes ......................................................... 86 12.2.2.2. Removendo pacotes instalados ................................................ 86 12.2.2.3. Atualizando sua distribuio ..................................................... 87 12.2.2.4 A escolha da distribuio a ser usada ....................................... 88 12.2.2.5. Removendo pacotes baixados pelo apt .................................... 89 12.2.2.6. Verificando pacotes corrompidos.............................................. 89 12.2.2.7. Corrigindo problemas de dependncias e outros erros............. 89 12.3. PROCURANDO UM PACOTE QUE CONTM DETERMINADO ARQUIVO ............................................................................................................................. 89 12.4. COMPILAO DO CDIGO FONTE PARA A DEBIAN ............................. 91 13. EDITOR DE TEXTO ........................................................................................... 92 13.1. VI ................................................................................................................. 92 13.2. MODO DE COMANDO................................................................................ 92 13.3. MODO DE INSERO................................................................................ 93 13.3.1. Comandos de edio........................................................................... 93 13.3.2. Copiar, colar e excluir.......................................................................... 93 13.3.3. Movimentao por caractere ............................................................... 94 13.3.4. Salvar e sair......................................................................................... 94 14. PROCESSO DE INICIALIZAO....................................................................... 95 14.1 ETAPAS DO BOOT ...................................................................................... 95 14.2. O PROCESSO INIT..................................................................................... 96 14.3. NVEIS DE EXECUO.............................................................................. 96 14.4. ARQUIVOS DE INICIALIZAO ................................................................. 98 14.5. PERSONALIZANDO O PROCESSO DE INICIALIZAO.......................... 98 14.6. GERENCIANDO SCRIPTS DE INICIALIZAO......................................... 99 15. GERENCIADORES DE PARTIDA .................................................................... 101 15.1. LILO........................................................................................................... 101 15.1.1. Criando o arquivo de configurao do LILO ...................................... 101 15.1.3. Opes usadas no LILO.................................................................... 105 15.1.4. Um exemplo do arquivo de configurao lilo.conf ............................. 108 15.2. GRUB ........................................................................................................ 109 15.2.1. Como o GRUB trabalha com discos e parties ............................... 109 15.2.2. Instalando o GRUB............................................................................ 110 CETAM

4 15.2.3. Opes do arquivo de configurao .................................................. 111 15.2.4. Parmetros enviados diretamente ao kernel ..................................... 115 16. GERENCIAMENTO DE PROCESSOS............................................................. 118 16.1. EXECUTANDO UM COMANDO/PROGRAMA.......................................... 118 16.1.1. Tipos de Execuo de comandos/programas.................................... 119 16.2. COMANDOS DE GERENCIAMENTO DE PROCESSOS ......................... 120 16.3 CONTROLE DE EXECUO DE PROCESSOS ....................................... 122 16.3.1. Interrompendo a execuo de um processo...................................... 122 16.3.2. Parando momentaneamente a execuo de um processo................ 122 16.3.3. Comandos para manipulao de processos...................................... 122 16.3.4. Sinais do Sistema .............................................................................. 125 17. O KERNEL........................................................................................................ 127 17.1. MDULOS ................................................................................................ 127 17.1.2. Adicionar suporte a Hardwares e outros dispositivos no kernel ........ 131 17.2. RECOMPILANDO O KERNEL .................................................................. 132 17.3. ARQUIVOS RELACIONADOS COM O KERNEL E MDULOS ............... 134 18. CONFIGURAO DE HARDWARE................................................................. 136 18.1. LISTANDO HARDWARES EM UM COMPUTADOR................................. 136 18.2. HARDWARES ESPECFICOS OU "FOR WINDOWS".............................. 136 18.3. CONFIGURAES DE DISPOSITIVOS................................................... 138 18.3.1. Configurando uma placa de rede ...................................................... 138 18.3.2. Configurando uma placa de SOM no GNU/Linux .............................. 139 18.3.3. Configurando uma placa de som usando o padro OSS .................. 139 19. X WINDOW....................................................................................................... 142 19.1. A ORGANIZAO DO AMBIENTE GRFICO X WINDOW...................... 142 19.2. EXEMPLO DO ARQUIVO XF86CONFIG-4 ............................................ 143 19.3. GERENCIADORES DE LOGIN GRFICO................................................ 147 20. GERENCIAMENTO DE QUOTA ...................................................................... 149 20.1. CRIANDO ARQUIVOS DE QUOTA........................................................... 149 20.2. HABILITANDO O SISTEMA DE QUOTA................................................... 150 20.2.1. Atribuido quotas a usurios ............................................................... 151 20.2.2. Listando as quotas ............................................................................ 151 21. CONFIGURAES DO TCP/IP ....................................................................... 153 CETAM

5 21.1. INTERFACE DE REDE ............................................................................. 153 21.2. CONFIGURANDO AS INTERFACES DE REDE ....................................... 153 21.2.1. A interface loopback .......................................................................... 153 21.2.2. Atribuindo um endereo de rede a uma interface (ifconfig) ............... 154 21.3. ROTEAMENTO ......................................................................................... 155 21.3.1. Configurando uma rota no Linux ....................................................... 156 21.4. ARQUIVOS DE CONFIGURAO DA REDE........................................... 157 21.5. COMANDOS TEIS EM REDES .............................................................. 160 22. NFS................................................................................................................... 165 22.1. CONCEITOS INICIAIS .............................................................................. 165 22.2. INSTALANDO O SERVIDOR NFS ............................................................ 166 22.2.1. O arquivo /etc/exports ....................................................................... 166 22.2.3. Configurao do cliente NFS............................................................. 167 22.3. OS COMANDOS MOUNT E UMOUNT ..................................................... 168 22.4. O ARQUIVO /ETC/FSTAB......................................................................... 168 23. SAMBA ............................................................................................................. 170 23.1. INSTALAO DO SAMBA ........................................................................ 170 23.2. CONHECENDO OS PARMETROS......................................................... 174 23.2.1. Seo [global].................................................................................... 174 23.2.2. Sees [shares]................................................................................. 178 24. CUPS................................................................................................................ 180 24.1. INSTALANDO O CUPS ............................................................................. 180 24.1.1. Configurando o arquivo "cupsd.conf" ................................................ 180 24.1.2. Configurando o CUPS pelo navegador ............................................. 182 24.1.2.1. Configurao de impressora ................................................... 184 25. NIS.................................................................................................................... 185 25.1. CONCEITOS INICIAIS .............................................................................. 185 25.2. CONFIGURAO DO SERVIDOR NIS .................................................... 185 25.2.1 Instalando o nis .................................................................................. 185 25.3 CONFIGURAO DO CLIENTE NIS......................................................... 186 25.3.1 Instalando o nis .................................................................................. 186 Definir o nome do domnio NIS. ............................................................. 186 26. LDAP (LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL) ......................... 188 CETAM

6 26.1. CARACTERISTICAS ................................................................................. 188 26.2. ESTRUTURA LDAP .................................................................................. 189 26.3. INSTALAO LDAP.................................................................................. 189 26.4. OPENLDAP ............................................................................................... 190 26.4.1. Arquivos de configurao do OPENLDAP......................................... 190 26.4.2. Configurao do Openldap................................................................ 190 26.4.3. Carregando o servio do Openldap................................................... 191 26.4.4. Como fazer a indexo da base LDAP ............................................... 191 26.5. AUTENTICANDO CLIENTE NO LDAP...................................................... 192 26.4.4.1. Criar arquivo ldap.auth com o conteudo. ................................ 193 26.5. FERRAMENTA DE ADMINISTRAO WEB PARA O OPENLDAP ......... 194 27. RESOLVEDOR DE NOMES (DNS) .................................................................. 195 27.1. O QUE UM NOME? ............................................................................... 195 27.2. INSTALAO............................................................................................ 197 27.2.1. O arquivo /etc/bind/named.conf......................................................... 197 27.2.2. Zona do DNS..................................................................................... 198 27.2.3 Zona reversa ...................................................................................... 199 28. SERVIDOR WEB.............................................................................................. 201 28.1. CARACTERSTICAS DO APACHE ........................................................... 201 28.2. INSTALAO............................................................................................ 202 28.2.1. Iniciando o servidor/reiniciando/recarregando a configurao........... 202 28.2.3. Adicionando uma pgina no Apache ................................................. 204 28.2.4. Virtual Hosts ...................................................................................... 205 29. SERVIDOR FTP ............................................................................................... 220 29.1. INSTALAO............................................................................................ 220

CETAM

7 1. INTRODUO

Em 1965, os laboratrios Bell da AT&T, juntamente com a companhia General Eletric e o projeto MAC do MIT (Massachusetts Institute of Technology), somaram esforos para desenvolver um novo sistema operacional chamado MULTICS. Como o MULTICS no atingiu seus propsitos, os Laboratrios Bell saram do projeto. Ken Thompson, cientista da AT&T e ex-membro do grupo MULTICS, comeou ento a desenvolver um novo sistema, aproveitando a experincia ganha. O novo sistema, inicialmente escrito em assembly num computador PDP-7, foi batizado de UNIX. No incio, o Unix era distribudo gratuitamente pela AT&T para as universidades, Mais tarde, porm, percebendo o sucesso do Unix no meio comercial, a AT&T logo passou a disponibiliz-lo por um preo muito alto. Aos longos dos anos, vrias verses do Unix surgiram, tanto comerciais como Solaris, IRIX, HP-UX, AIX, e livres, como FREEBSD e Linux. 1.1. O LINUX O Linux um clone de Unix criado como uma alternativa barata e funcional para quem no est disposto a pagar o alto preo de um sistema Unix comercial ou no tem um computador suficientemente rpido. Em 1983, Richard Stallman fundou a Free Software Foundation (FSF), cujo projeto, GNU, tinha por finalidade criar um clone melhorado e livre do sistema operacional Unix, mas que no utilizasse seu cdigo-fonte. O desafio do GNU era enorme. Havia a necessidade de desenvolver o kernel, utilitrios de programao, de administrao do sistema, de rede, comandospadro etc. Porm, no final da dcada de 1980, o projeto tinha fracassado: apenas os utilitrios de programao e os comandos-padro estavam prontos. Linux Benedict Torvalds era aluno da Universidade de Helsinque, na Finlndia, no final da dcada de 1980. Ele percebeu que o Intel 80386 era o nico microprocessador disponvel na poca capaz de executar um clone Unix. Alm disso, ainda que o 80386 no fosse barato, ele era o nico disponvel. A sua opo por esse microprocessador foi uma escolha correta, pois garantiu a ele, CETAM

8 posteriormente, o grande nmero de voluntrios que tornou o desenvolvimento do Linux vivel at hoje. Em 1991, Linus iniciou seu projeto particular, inspirado no seu interesse pelo Minix. Ele limitou-se a criar, em suas prprias palavras, um Minix melhor que o Minix. E depois de algum tempo de trabalho em seu projeto solitrio, conseguiu criar um kernel capaz de executar os utilitrios de programao e os comandospadro do Unix clonados pelo projeto GNU. Reconhecendo que no conseguiria continuar a desenvolver sozinho o Linux, ele enviou a seguinte mensagem para a lista de discusso comp.os.minix: Voc suspira por melhores dias do Minix-1.1, quando homens sero homens e escrevero seus prprios device drivers? Voc est sem um bom projeto e est morrendo por colocar as mos em um S.O. no qual voc possa modificar de acordo com suas necessidades? Voc est achando frustrante quando tudo trabalha em Minix? Chega de atravessar noites para obter programas que trabalhem corretos? Ento esta mensagem pode ser exatamente para voc. Como mencionei h um ms, estou trabalhando em uma verso independente de um S.O. similar ao Minix para computadores AT-386. Ele est, finalmente, prximo do estgio em que poder ser utilizado (embora possa no ser o que voc esteja esperando), e eu estou disposto a colocar as fontes para ampla distribuio. Ele est na verso 0.02... contudo, eu tive xito rodando bash, gcc, gnumake, gnu-sed, compresso etc. nele. Em 5 de outubro de 1991, Linus Torvalds lanou a primeira verso oficial do Linux: o Linux 0.02. A partir dessa data, muitos programadores no mundo inteiro tm colaborado e ajudado a fazer do Linux o sistema operacional que atualmente. O Linux um sistema operacional de cdigo aberto distribudo gratuitamente pela Internet. Seu cdigo fonte liberado como Free Software (software livre) o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele est proibido de fazer a comercializao do sistema. Isto quer dizer que voc no precisa pagar nada para usar o Linux, e no crime fazer cpias para instalar em outros computadores, ns inclusive incentivamos voc a fazer isto. Ser um sistema de cdigo aberto pode explicar o desempenho, estabilidade e velocidade em que novos recursos so adicionados ao sistema. O sistema segue o padro POSIX que o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo o Linux voc no encontrar muita dificuldade

CETAM

9 em operar um sistema do tipo UNIX, FREEBSD, HPUX, SUNOS, etc., bastando apenas aprender alguns detalhes encontrados em cada sistema. O cdigo fonte aberto permite que qualquer pessoa veja como o sistema funciona (til para aprendizado), corrija alguma problema ou faa alguma sugesto sobre sua melhoria, esse um dos motivos de seu rpido crescimento, do aumento da compatibilidade de perifricos (como novas placas sendo suportadas logo aps seu lanamento) e de sua estabilidade. Outro ponto em que ele se destaca o suporte que oferece a placas, CDRoms e outros tipos de dispositivos de ltima gerao e mais antigos (a maioria deles j ultrapassados e sendo completamente suportados pelo sistema

operacional). Este um ponto forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanos tecnolgicos com as mquinas que possui. O suporte ao sistema tambm se destaca como sendo o mais eficiente e rpido do que qualquer programa comercial disponvel no mercado. Existem centenas de consultores especializados espalhados ao redor do mundo. Voc pode se inscrever em uma lista de discusso e relatar sua dvida ou alguma falha, e sua mensagem ser vista por centenas de usurios na Internet e algum ir te ajudar ou avisar as pessoas responsveis sobre a falha encontrada para devida correo.

1.2. ALGUMAS CARACTERSTICAS DO LINUX Multitarefa real; Multiusurio; Suporte a nomes extensos de arquivos e diretrios (255 caracteres); Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc; Proteo entre processos executados na memria RAM; Modularizao - O GNU/Linux somente carrega para a memria o que usado durante o processamento, liberando totalmente a memria assim que o programa/dispositivo finalizado; Devido modularizao, os drivers dos perifricos e recursos do sistema podem ser carregados e removidos completamente da memria RAM a CETAM

10 qualquer momento. Os drivers (mdulos) ocupam pouco espao quando carregados na memria RAM (cerca de 6Kb para a Placa de rede NE 2000, por exemplo); No h a necessidade de se reiniciar o sistema aps a modificar a configurao de qualquer perifrico ou parmetros de rede. Somente necessrio reiniciar o sistema no caso de uma instalao interna de um novo perifrico, falha em algum hardware (queima do processador, placa me, etc.); Acessa sem problemas discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SUNOS, Amiga, Atari, Mac, etc; Utiliza permisses de acesso a arquivos, diretrios e programas em execuo na memria RAM; Rede TCP/IP mais rpida que no Windows e tem sua pilha

constantemente melhorada. O GNU/Linux tem suporte nativo a redes TCP/IP e no depende de uma camada intermediria como o Winsock. Em acessos via modem a Internet, a velocidade de transmisso 10% maior; Suporte a dispositivos infravermelho; Suporte a rede via rdio amador; Suporte a dispositivos Plug-and-Play; Suporte a dispositivos USB; Vrios tipos de firewalls de alta qualidade e com grande poder de segurana de graa; Roteamento esttico e dinmico de pacotes; Ponte entre Redes; Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc.).

1.3. DISTRIBUIES LINUX

S o kernel GNU/Linux no suficiente para se ter um sistema funcional, mas o principal. CETAM

11 Existem grupos de pessoas, empresas e organizaes que decidem distribuir o Linux junto com outros programas essenciais (como por exemplo, editores grficos, planilhas, bancos de dados, ambientes de programao, formatao de documentos, firewalls, etc.). Este o significado bsico de distribuio. Cada distribuio tem sua caracterstica prpria, como o sistema de instalao, o objetivo, a localizao de programas, nomes de arquivos de configurao, etc. A escolha de uma distribuio pessoal e depende das necessidades de cada um. Algumas distribuies bastantes conhecidas so: Slackware, Debian, Red Hat, Mandriva, Suse, Monkey, todas usando o SO Linux como kernel principal (o Debian uma distribuio independente de kernel e pode ser executada sob outros kernels, como o GNU hurd). A escolha de sua distribuio deve ser feita com muita ateno, no adianta muita coisa perguntar em canais de IRC sobre qual a melhor distribuio, ser levado pelas propagandas, pelo vizinho, etc. O melhor caminho para a escolha da distribuio, acredito eu, seria perguntar as caractersticas de cada uma e porque essa pessoa gosta dela ao invs de perguntar qual a melhor, porque quem lhe responder isto estar usando uma distribuio que se encaixa de acordo com suas necessidades e esta mesma distribuio pode no ser a melhor para lhe atender.

1.3.1. Caractersticas de algumas distribuies:


Debian

http://www.debian.org - Distribuio desenvolvida e atualizada atravs do esforo de voluntrios espalhados ao redor do mundo, seguindo o estilo de desenvolvimento GNU/Linux. Por este motivo, foi adotada como a distribuio oficial do projeto GNU. Possui suporte a lngua Portuguesa, a nica que tem suporte a 10 arquiteturas diferentes (i386, Alpha, Sparc, PowerPc, Macintosh, Arm, etc.) e aproximadamente 15 sub-arquiteturas. A instalao da distribuio pode ser feita tanto atravs de disquetes, cd-rom, ftp, nfs ou atravs da combinao de vrios destes em cada etapa de instalao.

CETAM

12 Acompanha mais de 4350 programas distribudos em forma de pacotes divididos em 14 CDs ou 2 DVDs, entre binrios e cdigo fonte , cada um destes programas so mantidos e testados pela pessoa responsvel por seu

empacotamento. Os pacotes so divididos em diretrios de acordo com sua categoria e gerenciados atravs de um avanado sistema de gerenciamento de pacotes (o dpkg) facilitando a instalao e atualizao de pacotes. Possui tanto ferramentas para administrao de redes e servidores quanto para desktops, estaes multimdia, jogos, desenvolvimento, web, etc. A atualizao da distribuio ou de pacotes individuais pode ser feita facilmente atravs de dois comandos, no requerendo adquirir um novo CD para usar a ltima verso da distribuio. a nica distribuio no comercial onde todos podem contribuir com seu conhecimento para o seu desenvolvimento. Para gerenciar os voluntrios, conta com centenas de listas de discusso envolvendo determinados desenvolvedores das mais diversas partes do mundo. So feitos extensivos testes antes do lanamento de cada verso para atingir um alto grau de confiabilidade. As falhas encontradas nos pacotes podem ser relatadas atravs de um sistema de tratamento de falhas que encaminha a falha encontrada diretamente ao responsvel para avaliao e correo. Qualquer um pode receber a lista de falhas ou sugestes sobre a distribuio cadastrando-se em uma das listas de discusso que tratam especificamente da soluo de falhas encontradas na distribuio (disponvel na pgina principal da distribuio). Os pacotes podem ser instalados atravs de tarefas contendo selees de pacotes de acordo com a utilizao do computador (servidor Web, desenvolvimento, TeX, jogos, desktop, etc.), Perfis contendo selees de pacotes de acordo com o tipo de usurio (programador, operador, etc.), ou atravs de uma seleo individual de pacotes, garantindo que somente os pacotes selecionados sero instalados fazendo uma instalao enxuta. Existe um time de desenvolvedores com a tarefa especfica de monitorar atualizaes de segurana em servios (apache, sendmail, e todos os outros pacotes) que possam comprometer o servidor, deixando-o vulnervel a ataques. Assim que uma falha descoberta, enviada uma alerta (DSA - Debian Security Alert) e disponibilizada uma atualizao para correo das diversas verses da Debian. Isto geralmente feito em menos de 48 horas desde a descoberta da falha CETAM

13 at a divulgao da correo. Como quase todas as falhas so descobertas nos programas, este mtodo tambm pode ser usado por administradores de outras distribuies para manterem seu sistema seguro e atualizado. O suporte ao usurio e desenvolvimento da distribuio feitos atravs de listas de discusses e canais IRC. Existe uma lista de consultores habilitados a dar suporte e assistncia a sistemas Debian ao redor do mundo na rea consultores do site principal da distribuio.

Slackware

http://www.slackware.com - Distribuio desenvolvida por Patrick Volkerding, desenvolvida para alcanar facilidade de uso e estabilidade como prioridades principais. Foi a primeira distribuio a ser lanada no mundo e costuma trazer o que h de mais novo enquanto mantm uma certa tradio, provendo simplicidade, facilidade de uso e com isso flexibilidade e poder. Desde a primeira verso lanada em Abril de 1993, o Projeto Slackware Linux tem buscado produzir a distribuio Linux mais UNIX-like, ou seja, mais parecida com UNIX. O Slackware segue os padres Linux como o Linux File System Standard, que um padro de organizao de diretrios e arquivos para as distribuies. Enquanto as pessoas diziam que a Red Hat era a melhor distribuio para o usurio iniciante, o Slackware o melhor para o usurio mais experientes, ou seja programadores, administradores, etc.

Suse

http://www.suse.com - Distribuio comercial Alem com a coordenao sendo feita atravs dos processos administrativos dos desenvolvedores e de seu brao norte-americano. O foco da Suse o usurio com conhecimento tcnico no Linux (programador, administrador de rede, etc.) e no o usurio iniciante no Linux. Possui suporte as arquiteturas Intel x86 e Alpha. Sua instalao pode ser feita via CD-ROM ou DVD (foi a primeira distribuio com instalao atravs de DVD).

CETAM

14 Uma mdia de 1500 programas distribudos em cinco CD-ROMs. O sistema de gerenciamento de pacotes o RPM padronizado. A seleo de pacotes durante a instalao pode ser feita atravs da seleo do perfil de mquina (developer, estao kde, grficos, estao gnome, servidor de rede, etc.) ou atravs da seleo individual de pacotes. A atualizao da distribuio pode ser feita atravs do CD-ROM de uma nova verso ou baixando pacotes de ftp://ftp.suse.com/. Usurios registrados ganham direito a suporte de instalao via e-mail. A base de dados de suporte tambm excelente e est disponvel na web para qualquer usurio independente de registro.

1.4. O ADMINISTRADOR DE SISTEMAS

O administrador de sistemas o tcnico responsvel por instalar, configurar e manter funcionando um ou mais servidores. Sua funo vital para o andamento normal do trabalho em qualquer empresa que tenha computadores em rede local. Apesar de quase nunca aparecer, sem o cuidado e dedicao de um administrador, uma empresa pode simplesmente parar. A responsabilidade de um administrador imensa: dados, aplicativos, usurios e conectividade. Tudo o que a empresa precisa para funcionar est sob seu comando. Tudo tem que simplesmente funcionar, todos os dias da semana, o ano todo, a obrigao do administrador. Por isso esse mantenedor da infra-estrutura corporativa geralmente lembrado apenas quando algo falha, e nessas horas preciso ter calma para lidar com a impacincia e irritao alheia. Um administrador precisa compreender o funcionamento e dominar as ferramentas de gerenciamento e configurao do sistema. ele o responsvel tanto pela configurao inicial como, principalmente, pela manuteno do bom funcionamento do sistema.

CETAM

15 2. INSTALAO DO SISTEMA

Neste mdulo iremos utilizar como ferramenta didtica o sistema operacional Linux e a distribuio adotada ser o Debian. Neste captulo iremos demonstrar a instalao deste sistema operacional de arquitetura aberta. Antes de iniciar o processo de instalao propriamente dito, muito importante tomar alguns cuidados, de forma a garantir a integridade da instalao. Em primeiro lugar deve-se conhecer bem o hardware onde o sistema ser instalado, o ideal ter uma lista de todos os dispositivos (monitor, teclado, mouse, placa de vdeo, etc.), possuir os manuais seria o ideal. Se j houver outro sistema operacional na mquina e houver interesse em mant-lo, deve-se ter extremo cuidado no momento de criar as parties para o Linux, um erro pode comprometer definitivamente a partio onde j existe o outro sistema operacional, por isso altamente recomendvel fazer backup dos arquivos mais importantes antes de iniciar a instalao. Checar o tamanho em disco outro fator importante. O Debian pode ser obtido direto da internet, porm mais conveniente ter os CDs de instalao. A forma mais comum de iniciar a instalao iniciar a mquina j com o disco 1 na unidade de CD-ROM, dessa forma, ao ligar a mquina o instalador j se iniciar automaticamente.

Figura 1: Tela inicial de instalao

CETAM

16 Na figura 1, verificamos a tela inicial de instalao onde poderemos apenas pressionar a tecla enter, e instalar o kernel 2.4, ou apertar F1 para mais opes.

Figura 2: Mais opes

Na figura 2, temos mais opes como modo expert, neste mdulo ir digitar linux26 e pressionar enter para instalarmos com o kernel 2.6.

Figura 3: Escolha da lngua.

Na figura 3, temos a opo de escolhermos a linguagem que utilizaremos para realizar a instalao do sistema.

CETAM

17

Figura 4: Escolha do layout do teclado

Na figura 4, temos a opo de escolhermos o layout do teclado que iremos utilizar (Dica: teclados com geralmente so abnt2 e sem Americano ).

Figura 5: Escolha o nome da mquina

Na figura 5, se o seu instalador chegou nesta tela, porque sua rede deve ter um servidor DHCP, caso no haja, voc dever entrar em contato com o seu administrador de rede e verificar as configuraes necessrias para sua mquina. Caso voc no consiga estas informaes na hora da instalao, voc poder continuar sem configurar a rede.

CETAM

18

Figura 6: Digite o seu domnio

Na figura 6, Nesta tela voc entra com o domnio que sua mquina pertence.

Figura 7: Escolha do modo de particionar o disco

Na figura 7, nesta tela iremos escolher o tipo de particionamento, se formos utilizar o disco completo, caso no haja nada instalado em nosso disco rgido, caso contrrio melhor utilizar a edio manual da tabela de parties.

CETAM

19

Figura 8: Tela de particionamento do disco

Na figura 8, nesta tela iremos comear o particionamento do nosso disco rgido, muito cuidado com esta etapa, pois se voc estiver com outro sistema operacional instalado na mquina, poder apag-lo acidentalmente, caso voc tenha dvidas poder usar o particionamento assistido. No nosso caso iremos selecionar o nosso disco rgido como demonstra a figura e pressionaremos a tecla enter.

Figura 9: Tela de criar partio

Na figura 9, iremos criar uma nova partio.

CETAM

20

Figura 10: Tela definir tamanho da partio

Na figura 10, iremos definir o tamanho da nossa partio.

Figura 11: Tela definir tipo de partio.

Na figura 11, iremos definir o tipo da nossa partio.

CETAM

21

Figura 12: Tela definir onde a partio ser criada.

Na figura 12, iremos definir onde a partio ser criada.

Figura 13: Tela definir o tipo de arquivos

Na figura 13, iremos definir tipo de arquivos que iremos utilizar em nossa partio (iremos usar ext3).

CETAM

22

Figura 14: Tela finalizao da criao de parties.

Na figura 14, nesta tela finalizaremos a criao das parties, notem que deveremos criar no mnimo duas parties, sendo uma de swap e outra para o sistema propriamente dito.

Figura 15: Tela instalao do GRUB.

Na figura 15, nesta tela responderemos sim para instalao do GRUB na MBR do disco rgido.

CETAM

23

Figura 16: Tela de inicio da segunda parte da instalao.

Figura 16 nos informa que o nosso sistema operacional j est instalado e agora iremos concluir a configurao bsica do mesmo.

Figura 17: Tela de configurao do fuso horrio

A figura 17, onde iremos definir se iremos configurar o nosso sistema operacional para usar o horrio baseado no horrio mundial (GMT), ou se usaremos o horrio local.

CETAM

24

Figura 18: Continuao da configurao do fuso horrio

A figura 18, escolha o fuso horrio mais adequado a sua realidade.

Figura 19: Tela onde voc define a senha do superusurio

A figura 19, nesta tela onde definir a senha do superusurio (root).

CETAM

25

Figura 20: Tela para criar conta de usurio comum

Figura 20, nesta tela o sistema ir perguntar se voc deseja criar uma conta de usurio comum, para utilizar o sistema pois usar conta de superusurio para tarefas rotineiras no aconselhvel.

Figura 21: Tela continuao da criao de usurio

Figura 21, nesta tela voc entrar com o nome completo do usurio que ser cadastrado.

CETAM

26

Figura 22: Tela continuao da criao de usurio

Figura 22, nesta tela voc entrar com o login do usurio que ser cadastrado.

Figura 23: Tela continuao da criao de usurio

Figura 23, nesta tela voc entrar com a senha do usurio que ser cadastrado.

CETAM

27

Figura 24: Tela de escolha de perfis

Figura 24, O Debian trs na sua instalao alguns perfis pr-configurados, como exemplo: Desktop, Servidor Web e outros, se voc estiver instalando um desktop aconselho a voc escolher somente os perfis de Ambiente Desktop e servidor de impresso, caso voc esteja instalando um servidor escolha somente o perfil do servidor que voc deseja instalar, por exemplo: Servidor DNS., est opo s ir instalar o necessrio para seu servidor DNS funcionar, assim poupando recursos de hardware.

Figura 25: Tela de configurao do ambiente grfico

Figura 25, Se voc optou por instalar o Ambiente Desktop, ser necessria a configurao do ambiente grfico, nesta tela voc deve escolher o drive compatvel com sua placa de vdeo. (Dica: se estiver duvida na sua escolha opte por escolher o

CETAM

28 driver vesa, a maioria das placas de vdeo mais nova funciona com esse driver, porm os recursos sero limitados).

Figura 26: Continuao da configurao do ambiente grfico

Figura 26, O sistema pergunta se voc deseja que seja detectado o mouse automaticamente, por padro responda sim.

Figura 27: Continuao da configurao do ambiente grfico

Figura 27, O sistema pergunta se voc deseja que seja detectado o monitor automaticamente, por padro responda no.

CETAM

29

Figura 28: Continuao da configurao do ambiente grfico

Figura 28, O sistema pergunta se voc est usando um monitor LCD, se voc estiver usando notebook ou um monitor de cristal liquido, responda sim.

Figura 29: Continuao da configurao do ambiente grfico

Figura 29, Voc deve escolher o mtodo para selecionar as caractersticas de seu monitor. Aconselhvel usar o mtodo simple. Escolha a opo mais prxima da sua realidade e continue. A partir daqui sua instalao dever ocorrer normalmente, caso o sistema pergunte se voc deseja configurar o servidor de e-mail exim, responda que sem configurao no momento e deixe o sistema terminar a instalao, caso ocorra tudo bem, seu sistema operacional Debian GNU/Linux iniciar o ambiente grfico e estar pronto para ser utilizado.

CETAM

30 3. ARQUITETURA DO SISTEMA 3.1. ARQUIVOS

O GNU/Linux Case Sensitivo, ou seja, ele diferencia letras maisculas e minsculas nos arquivos. O arquivo historia completamente diferente de Historia. Esta regra tambm vlida para os comandos e diretrios. Prefira, sempre que possvel, usar letras minsculas para identificar seus arquivos, pois quase todos os comandos do sistema esto em minsculas. Um arquivo oculto no GNU/Linux identificado por um "." no inicio do nome (por exemplo, .bashrc). Arquivos ocultos no aparecem em listagens normais de diretrios, deve ser usado o comando ls -a para tambm listar arquivos ocultos. Quando um novo arquivo criador, o sistema de arquivos do Linux guarda suas informaes em um inode (estrutura particular do sistema operacional), que conter informaes como: Proprietrio e grupo do arquivo; Tipo do arquivo; Permisso do arquivo; Data e hora da criao, e tambm da ltima modificao; Nmero de links deste arquivo; Tamanho do arquivo; Um endereo, definido a localizao real dos dados do arquivo.

A nica informao que no includa no inode o nome do arquivo/diretrio, que armazenado em diretrios de arquivos especiais. Comparando os nomes dos arquivos e o nmero dos inodes, o sistema pode construir uma estrutura em rvore, na qual o usurio pode compreender. A maioria dos arquivos do sistema so chamados de arquivos regulares. Eles contm dados convencionais, como por exemplo, arquivos texto, arquivos de programas e imagens. Entretanto, outros arquivos so diferenciados dentro do sistema, dependendo da sua funo: Diretrios: arquivos que so listas de outros arquivos;

CETAM

31 Arquivos especiais: arquivos que so usados como mecanismo para a conexo com dispositivos (portas de I/O, discos e etc). A maioria destes arquivos reside em /dev;

Links: um sistema GNU/Linux pode fazer um arquivo (regular) ou diretrio ficar visvel em vrios locais na rvore de diretrios do sistema, criando links. Os arquivos especiais e links sero tratados com detalhes mais adiante, devido a sua importncia.

Sockets: so mecanismos usados como forma de comunicao entre processos de rede, protegido pelo controle de acesso do sistema de arquivos.

Pipes: similares aos sockets, fornecendo maneiras dos processos se comunicarem uns com os outros, porm no utilizam o conceito de rede.

Com o comando ls -l, podemos verificar o tipo de arquivos, analisando o primeiro caractere no conjunto de caracteres iniciais. Atributos de arquivos d l b Arquivo regular Diretrio Link simblico Dispositivos orientados a bloco (disco, memria, CDROM). Dispositivos orientados a caracteres (modem, porta serial) Socket Pipe

Descrio

c s p

3.2. ARQUIVOS ESPECIAIS

Como j mencionado, no GNU/Linux praticamente tudo representado por arquivos. Entretanto, alguns tipos de arquivos so tratados de modo especial, no CETAM

32 sentido de que so diferentes do que geralmente se encontra em outros sistemas operacionais diferentes do Unix/Linux. Sero vistos dois tipos de arquivos especiais, bastante particulares: links e arquivos de dispositivos.

3.2.1. Links

Links so referncias, atalhos ou conexes lgicas entre arquivos ou diretrios. Atravs de um link, possvel ter diferentes referncias a um mesmo arquivo. Eles so criados para que possam ficar visveis em vrios locais na estrutura de diretrios do sistema, dependendo da necessidade de sua criao. Estas referncias podem ser de dois tipos: links diretos (hard links) ou links simblicos (symbolic links ou symlinks).

3.2.1.1. Links diretos So nada mais, nada menos, do que diferentes nomes para um mesmo arquivo. Em outras palavras, uma determinada poro de dados em disco pode ter vrios nomes apontando para ela. Qualquer modificao em um deles refletida em todos os outros. No possvel criar hard links para diretrios, e tambm impossvel criar hard links entre sistemas de arquivos, devido ao esquema de inodes usados por eles.

3.2.1.2. Links Simblicos Um link simblico ou simlink como um atalho para um arquivo. Ele consiste de um arquivo pequeno, contento apenas um apontador para um nome de arquivo, ou seja, ao invs de apontar para uma poro de dados em disco, o link simblico aponta para um nome de arquivo, incluindo seu caminho.

3.2.2. Dispositivos
Os dispositivos, geralmente anexados em sua mquina ou includos na CPU, so apresentados pelo sistema como uma entrada do diretrio /dev. A vantagem CETAM

33 desta maneira como o sistema Linux trata dispositivos que nem o usurio, nem o sistema precisam se preocupar muito sobre a especificao dos dispositivos. interessante que o usurio tenha uma idia dos principais arquivos de dispositivos presentes no diretrio /dev e portanto, alguns deles esto descritos a seguir. Arquivo cdrom console cua* Dispositivo acessado Drive de CD-ROM Entrada especial para o console atualmente usado Portas seriais Entradas para a maioria dos drives de disquete, sendo fd* que o padro /dev/fd0H1440 (drive para disquetes de 1.44 MB) hd[a-t][1-16] lp* mem midi* modem mouse usb/ Suporte a HDs IDE, indicando o tipo de disco IDE [a-t] e o nmero da partio [1-16] Impressoras Memria Entrada para MIDI player Modens Mouse, incluindo suporte a mouses PS2 e seriais. Diretrio para acesso a dispositivos USB.

3.3. EXTENSO DE ARQUIVOS A extenso serve para identificar o tipo do arquivo. A extenso so as letras aps um ." no nome de um arquivo, explicando melhor: relatrio.txt - O .txt indica que o contedo um arquivo texto. script.sh - Arquivo de Script (interpretado por /bin/sh). system.log - Registro de algum programa no sistema. arquivo.gz - Arquivo compactado pelo utilitrio gzip. index.html - Pgina de Internet (formato Hypertexto). A extenso de um arquivo tambm ajuda, a saber, o que precisamos fazer para abri-lo. Por exemplo, o arquivo relatrio.txt um texto simples e podemos ver CETAM

34 seu contedo atravs do comando cat, j o arquivo index.html contm uma pgina de Internet e precisaremos de um navegador para poder visualiz-lo (como o lynx, Mozilla ou o Firefox). A extenso (na maioria dos casos) no requerida pelo sistema operacional GNU/Linux, mas conveniente o seu uso para determinarmos facilmente o tipo de arquivo e que programa precisar usar para abri-lo.

3.4. DIRETRIO Diretrio o local utilizado para armazenar conjuntos arquivos para melhor organizao e localizao. O diretrio, como o arquivo, tambm " Case Sensitivo" (diretrio /teste completamente diferente do diretrio /Teste). No podem existir dois arquivos com o mesmo nome em um diretrio, ou um subdiretrio com um mesmo nome de um arquivo em um mesmo diretrio. Um diretrio nos sistemas Linux/UNIX so especificados por uma " /" e no uma "\" como feito no DOS ou Windows.

3.4.1. Estrutura bsica de diretrios do Sistema Linux


O sistema GNU/Linux possui a seguinte estrutura bsica de diretrios: /bin Contm arquivos e programas do sistema que so usados com freqncia pelos usurios. Contm arquivos necessrios para a inicializao do sistema. Ponto de montagem da unidade de CD-ROM Contm arquivos usados para acessar dispositivos (perifricos) existentes no computador. Arquivos de configurao de seu computador local. Ponto de montagem de unidade de disquetes. Diretrios contendo os arquivos dos usurios.

/boot /cdrom /dev /etc /floppy /home

/lib

Bibliotecas compartilhadas pelos programas do sistema e mdulos do kernel. CETAM

35 /mnt Diretrio para pontos de montagem temporrios. Sistema de arquivos do kernel. Este diretrio no existe em seu disco rgido, ele colocado l pelo kernel e /proc usado por diversos programas que fazem sua leitura, verificam configuraes do sistema ou modificar o funcionamento de dispositivos do sistema atravs da alterao em seus arquivos. /root Diretrio do superusurio Diretrio de programas usados pelo superusurio (root) /sbin para administrao e controle do funcionamento do sistema. /tmp Diretrio para armazenamento de arquivos temporrios criados por programas. Contm maior parte de seus programas. Normalmente acessvel somente como leitura. Contm maior parte dos arquivos que so gravados com /var frequncia pelos programas do sistema, e-mails, spool de impressora, cache, etc.

/usr

3.5. COMANDOS NO LINUX

3.5.1. Comandos Internos

So comandos que esto localizados dentro do interpretador de comandos (normalmente o shell usado) e no no disco. Eles so carregados na memria RAM do computador junto com o interpretador de comandos. Quando executa um comando, o interpretador de comandos verifica primeiro se ele um comando interno caso no seja verificado se um comando externo.

Exemplos de comandos internos so: cd, exit, echo, bg, fg, source, help

CETAM

36

3.5.2. Comandos Externos


So comandos que esto localizados no disco. Os comandos so procurados no disco usando a varivel PATH e executados assim que encontrados.

3.5.3. Aviso de comando (Prompt)


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

3.5.4. Interpretador de comandos


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

CETAM

37 Os comandos podem ser enviados de duas maneiras para o interpretador:

3.5.4.1. Interativa

Os comandos so digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usurio para executar uma tarefa, ou prximo comando.

3.5.4.2. No-interativa

So usados arquivos de comandos criados pelo usurio (scripts) para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um e dependendo do trmino do comando, o script pode checar qual ser o prximo comando que ser executado e dar continuidade ao processamento. Este sistema til quando temos que digitar por vrias vezes seguidas um mesmo comando ou para compilar algum programa complexo. O shell bash possui ainda outra caracterstica interessante: A completao dos nomes. Isto feito pressionando-se a tecla TAB. Por exemplo, se digitar "ls tes" e pressionar <tab>, o bash localizar todos os arquivos que iniciam com "tes" e completar o restante do nome. Caso a completao de nomes encontre mais do que uma expresso que satisfaa a pesquisa, ou nenhuma, emitido um beep. Se voc apertar novamente a tecla TAB imediatamente depois do beep, o interpretador de comandos ir listar as diversas possibilidades que satisfazem a pesquisa, para que voc possa escolher a que lhe interessa. A completao de nomes funciona sem problemas para comandos internos.

Exemplo: ech (pressione TAB), ls /vm (pressione TAB).

CETAM

38 4. COMANDOS INICIAIS

Neste captulo, iremos revisar alguns comandos visto em mdulos anteriores.

ls - Lista os arquivos de um diretrio. ls [opes] [caminho/arquivo] ... Caminho/arquivo - Diretrio/arquivo que ser listado. Opes: -a, --all = Lista todos os arquivos (inclusive os ocultos) de um diretrio. -d, --directory = Lista os nomes dos diretrios ao invs do contedo. -F = Insere um caractere aps arquivos executveis ('*'), diretrios ('/'), soquete ('='), link simblico ('@') e pipe ('|'). Seu uso til para identificar de forma fcil tipos de arquivos nas listagens de diretrios. -h, --human-readable = Mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes. -l = Usa o formato longo para listagem de arquivos. Lista as permisses, data de modificao, donos, grupos, etc.

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

cd - Entra em um diretrio. Voc precisa ter a permisso de execuo para entrar no diretrio. cd [diretrio] Diretrio - diretrio que deseja entrar.

Exemplos: Usando cd sem parmetros ou cd ~, voc retornar ao seu diretrio de usurio (diretrio home). CETAM

39 cd /, retornar ao diretrio raz. cd -, retornar ao diretrio anteriormente acessado. cd .., sobe um diretrio. cd ../[diretrio], sobe um diretrio e entra imediatamente no prximo (por exemplo, quando voc est em /usr/sbin, voc digita cd ../bin, o comando cd retorna um diretrio (/usr) e entra imediatamente no diretrio bin (/usr/bin). shutdown - Desliga/reinicia o computador imediatamente ou aps determinado tempo (programvel) de forma segura. Todos os usurios do sistema so avisados que o computador ser desligado. Este comando somente pode ser executado pelo usurio root ou quando usada a opo -a pelos usurios cadastrados no arquivo /etc/shutdown.allow que estejam logados no console virtual do sistema. shutdown [opes] Opes: -h - Inicia o processo para desligamento do computador. -r - Reinicia o sistema

Exemplos: shutdown -h now - Desligar o computador imediatamente. shutdown -r now - Reinicia o computador imediatamente. shutdown -r 15:00 O sistema ser reiniciado s 15:00 horas - Faz o computador ser reiniciado (init 6) s 15:00 horas enviando a mensagem O sistema ser reiniciado s 15:00 horas a todos os usurios conectados ao sistema. shutdown -r 20 - Faz o sistema ser reiniciado aps 20 minutos. halt - Diz ao sistema que ele dever desligar imediatamente.

reboot - O comando reboot chama o comando shutdown e ao final deste reinicia o sistema. mkdir - Cria um diretrio no sistema. Um diretrio usado para armazenar arquivos de um determinado tipo. O diretrio pode ser entendido como uma pasta CETAM

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

rmdir - Remove um diretrio do sistema. Este comando faz exatamente o contrrio do mkdir. O diretrio a ser removido deve estar vazio e voc deve ter permisso de gravao para remov-lo. rmdir [caminho/diretrio] [caminho1/diretrio1] Caminho - Caminho do diretrio que ser removido. Diretrio - Nome do diretrio que ser removido. necessrio que esteja um nvel acima do diretrio(s) que ser(o) removido(s). Para remover diretrios que contenham arquivos, use o comando rm com a opo -r.

Por exemplo, para remover o diretrio /tmp/teste voc deve estar no diretrio tmp e executar o comando rmdir teste.

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

CETAM

41 rm - Apaga arquivos. Tambm pode ser usado para apagar diretrios e subdiretrios vazios ou que contenham arquivos. rm [opes][caminho][arquivo/diretrio] [caminho1][arquivo1/diretrio1] Caminho - Localizao do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretrio atual. Arquivo/diretrio - Arquivo que ser apagado. Opes: -i, --interactive - Pergunta antes de remover, esta ativada por padro. -v, --verbose - Mostra os arquivos na medida que so removidos. -r, --recursive - Usado para remover arquivos em subdiretrios. Esta opo tambm pode ser usada para remover subdiretrios. -f, --force - Remove os arquivos sem perguntar. Use com ateno o comando rm, uma vez que os arquivos e diretrios forem apagados, eles no podero ser mais recuperados.

Exemplos: rm teste.txt - Apaga o arquivo teste.txt no diretrio atual. rm *.txt - Apaga todos os arquivos do diretrio atual que terminam com .txt. rm *.txt teste.novo - Apaga todos os arquivos do diretrio atual que terminam com .txt e tambm o arquivo teste.novo. rm -rf /tmp/teste/* - Apaga todos os arquivos e sub-diretrios do diretrio /tmp/teste mas mantm o sub-diretrio /tmp/teste. rm -rf /tmp/teste - Apaga todos os arquivos e sub-diretrios do diretrio /tmp/teste, inclusive /tmp/teste.

cp - Copia arquivos. cp [opes] [origem] [destino] Origem - Arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas" (veja Curingas, Seo 2.12). Destino - O caminho ou nome de arquivo onde ser copiado. Se o destino for um diretrio, os arquivos de origem sero copiados para dentro do diretrio. Opes -i, --interactive - Pergunta antes de substituir um arquivo existente. CETAM

42 -f, --force - No pergunta, substitui todos os arquivos caso j exista. -r - Copia arquivos dos diretrios e subdiretrios da origem para o destino. recomendvel usar -R ao invs de -r. -R, --recursive - Copia arquivos e subdiretrios (como a opo -r) e tambm os arquivos especiais FIFO e dispositivos. -v, --verbose - Mostra os arquivos enquanto esto sendo copiados. -s, --simbolic-link - Cria link simblico ao invs de copiar. -l, --link - Faz o link no destino ao invs de copiar os arquivos. -p, --preserve - Preserva atributos do arquivo, se for possvel. -u, --update - Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. -x - No copia arquivos que esto localizados em um sistema de arquivos diferente de onde a cpia iniciou. O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino tero o mesmo contedo aps a cpia.

Exemplos: cp teste.txt teste1.txt - Copia o arquivo teste.txt para teste1.txt. cp teste.txt /tmp - Copia o arquivo teste.txt para dentro do diretrio /tmp. cp * /tmp - Copia todos os arquivos do diretrio atual para /tmp. cp /bin/* . - Copia todos os arquivos do diretrio /bin para o diretrio em que nos encontramos no momento. cp -R /bin /tmp - Copia o diretrio /bin e todos os arquivos/sub-diretrios existentes para o diretrio /tmp. cp -R /bin/* /tmp - Copia todos os arquivos do diretrio /bin (exceto o

diretrio /bin) e todos os arquivos/sub-diretrios existentes dentro dele para /tmp. cp -R /bin /tmp - Copia todos os arquivos e o diretrio /bin para /tmp.

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

43 Opes: -f, --force - Substitui o arquivo de destino sem perguntar. -i, --interactive - Pergunta antes de substituir. o padro. -v, --verbose - Mostra os arquivos que esto sendo movidos. -u, --update - Move somente arquivos antigos, ou novos arquivos. O comando mv copia um arquivo da ORIGEM para o DESTINO (semelhante ao cp), mas aps a cpia, o arquivo de ORIGEM apagado.

Exemplos: mv teste.txt teste1.txt - Muda o nome do arquivo teste.txt para teste1.txt. mv teste.txt /tmp - Move o arquivo teste.txt para /tmp. Lembre-se que o arquivo de origem apagado aps ser movido. mv teste.txt teste.new (supondo que teste.new j exista) - Copia o arquivo teste.txt por cima de teste.new e apaga teste.txt aps terminar a cpia.

CETAM

44 5. DOCUMENTAO DO LINUX

5.1. PGINAS DE MANUAL

As pginas de manual acompanham quase todos os programas GNU/Linux. Elas trazem uma descrio bsica do comando/programa e detalhes sobre o funcionamento de opo. Uma pgina de manual visualizada na forma de texto nico com rolagem vertical. Tambm documenta parmetros usados em alguns arquivos de configurao. A utilizao da pgina de manual simples, digite: man [seo] [comando/arquivo] seo - a seo de manual que ser aberta, se omitido, mostra a primeira seo sobre o comando encontrada (em ordem crescente). Comando/arquivo Comando/arquivo que deseja pesquisar. A navegao dentro das pginas de manual feita usando-se as teclas: q - Sai da pgina de manual PageDown ou f - Rola 25 linhas abaixo PageUP ou w - Rola 25 linhas acima SetaAcima ou k - Rola 1 linha acima SetaAbaixo ou e - Rola 1 linha abaixo r - Redesenha a tela (refresh) p ou g - incio da pgina h - Ajuda sobre as opes da pgina de manual s - Salva a pgina de manual em formato texto no arquivo especificado (por exemplo: /tmp/ls). Cada seo da pgina de manual contm explicaes sobre uma determinada parte do sistema. As sees so organizadas em diretrios separados e localizadas no diretrio /usr/man. Os programas/arquivos so classificados nas seguintes sees: Programas executveis ou comandos internos; Chamadas do sistema (funes oferecidas pelo kernel); Chamadas de Bibliotecas (funes dentro de bibliotecas do CETAM

45 sistema); do comando: Texto Negrito - Deve ser digitado exatamente como mostrado [bla bla bla] - Qualquer coisa dentro de [ ] so opcionais Arquivos especiais (normalmente encontrados no diretrio /dev); Formatos de arquivos e convenes (/etc/inittab, por exemplo); Jogos; Pacotes de macros e convenes (por exemplo, man); Comandos de Administrao do sistema (normalmente usados pelo root); Rotinas do kernel (no padres).

As pginas de manual contm algumas regras para facilitar a compreenso

Exemplo: man ls.

5.2. DOCUMENTOS HOWTO'S

So documentos em formato texto, html, etc, que explicam como fazer determinada tarefa ou como um programa funciona. Normalmente so feitos na linguagem SGML e convertidos para outros formatos (como o texto, HTML, Pos Script) depois de prontos. Estes trazem explicaes detalhadas desde como usar o bash at sobre como funciona o modem ou como montar um servidor internet completo. Os HOWTOs podem ser encontrados no diretrio do projeto de documentao do GNU/Linux (LDP) em ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/ ou traduzidos para o Portugus pelo LDP-BR em http://br.tldp.org/projetos/howto/traduzidos.php . Caso tenham optado por instalar o pacote de HOWTO's de sua distribuio GNU/Linux, eles podem ser encontrados em: /usr/doc/how-to.

5.3. PGINAS INTERNET DE REFERNCIA Existem boas pginas Internet Nacionais e Internacionais sobre o GNU/Linux e assuntos relacionados com este sistema. A maioria trazem documentos e CETAM

46 explicaes sobre configurao, instalao, manuteno, documentao, suporte, etc. Estas pginas podem ser encontradas atravs de ferramentas de busca. Entre outras pginas, posso citar as seguintes: http://www.linux.trix.net/ http://www.linuxsecurity.com.br/ http://br.tldp.org/ http://www.underlinux.com.br/ 5.4. LISTAS DE DISCUSSO

So grupos de usurios que trocam mensagens entre si, resolvem dvidas, ajudam na configurao de programas, instalao, etc. considerado o melhor suporte ao GNU/Linux pois qualquer participante pode ser beneficiar das solues discutidas. Existem milhares de listas de discusses sobre o GNU/Linux espalhadas pelo mundo, em Portugus existem algumas dezenas. Abaixo segue uma relao de listas de discusso em Portugus com endereo de inscrio, e o que voc deve fazer para ser cadastrado: linux-br@unicamp.br

Para se inscrever nesta lista, envie uma mensagem para: linux-brrequest@unicamp.br contendo a palavra subscribe no assunto da mensagem e aguarde o recebimento da confirmao da inscrio. Apenas responda a mensagem de confirmao para se inscrever. Para se descadastrar envie uma mensagem para o mesmo endereo, mas use a palavra unsubscribe. dicas-l@unicamp.br

Para se inscreve nesta lista de discusso, envie uma mensagem para: dicasl-request@unicamp.br contendo a palavra subscribe no corpo da mensagem e aguarde o recebimento da confirmao da inscrio. Apenas responda a mensagem de confirmao para confirmar sua inscrio na lista. Para se descadastrar envie uma mensagem para o mesmo endereo, mas use a palavra unsubscribe.

CETAM

47 6. METACARACTERES E REDIRECIONADORES

6.1. METACARACTERES

Metacaracteres ou curingas um recurso usado para especificar um ou mais arquivos ou diretrios do sistema de uma s vez. Este um recurso permite que voc faa a filtragem do que ser listado, copiado, apagado, etc. So usados 4 tipos de curingas no GNU/Linux: "*" - Faz referncia a um nome completo/restante de um arquivo/diretrio. "?" - Faz referncia a uma letra naquela posio. [padro] - Faz referncia a uma faixa de caracteres de um arquivo/diretrio. Padro pode ser: [a-z][0-9] - Faz referncia a caracteres de a at z seguido de um caracter de 0 at 9. [a,z][1,0] - Faz a referncia aos caracteres a e z seguido de um caracter 1 ou 0 naquela posio. [a-z,1,0] - Faz referncia aos caracteres de a at z ou 1 ou 0 naquela posio. A procura de caracteres "Case Sensitive" assim se voc deseja que sejam localizados todos os caracteres alfabticos voc deve usar [a-z,A-Z]. Caso a expresso seja seguida de um ^, faz referncia a qualquer caracter exceto o da expresso. Por exemplo, [^abc] faz referncia a qualquer caracter exceto a, b e c. {padres} - Faz referncia a diversos padres de um arquivo/diretrio. {ab,01} - Faz referncia a sequncia de caracteres ab ou 01 {a-z1,10} Faz referencia a sequncia de caracteres de a at z seguido do caractere 1 ou a sequncia de caracter 1 e 0. Lembrando que os 4 tipos de curingas ("*", "?", "[ ]", "{ }") podem ser usados juntos. Para entender melhor vamos a prtica: Vamos dizer que tenha 5 arquivo no diretrio /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new. Caso deseje listar todos os arquivos do diretrio /usr/teste voc pode usar o coringa "*" para especificar todos os arquivos do diretrio: CETAM

48 cd /usr/teste e ls * ou ls /usr/teste/*. No tem muito sentido usar o comando ls com "*" porque todos os arquivos sero listados se o ls for usado sem nenhum Curinga. Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com exceo de teste4.new, teste5.new, podemos usar inicialmente 3 mtodos: Usando o comando ls *.txt que pega todos os arquivos que comeam com qualquer nome e terminam com .txt. Usando o comando ls teste?.txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caractere no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt tambm faria a mesma coisa, mas se tambm tivssemos um arquivo chamado teste10.txt este tambm seria listado. Usando o comando ls teste[1-3].txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caractere entre o nmero 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtm uma filtragem mais exata, pois o coringa ? especifica qualquer caractere naquela posio e [ ] especifica nmeros, letras ou intervalo que ser usado. Agora para listar somente teste4.new e teste5.new podemos usar os seguintes mtodos: ls *.new que lista todos os arquivos que terminam com .new ls teste?.new que lista todos os arquivos que comeam com teste, contenham qualquer caractere na posio do coringa ? e terminem com .new. ls teste[4,5].* que lista todos os arquivos que comeam com teste contenham nmeros de 4 e 5 naquela posio e terminem com qualquer extenso. Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O uso de curingas ser til ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta uma caracterstica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de vrias maneiras diferentes.

6.2. REDIRECIONAMENTOS E PIPE

> - Redireciona a sada de um programa/comando/script para algum dispositivo ou arquivo ao invs do dispositivo de sada padro (tela). Quando CETAM

49 usado com arquivos, este redirecionamento cria ou substitui o contedo do arquivo. Por exemplo, voc pode usar o comando ls para listar arquivos e usar ls > listagem para enviar a sada do comando para o arquivo listagem. Use o comando cat para visualizar o contedo do arquivo listagem. O mesmo comando pode ser redirecionado para o segundo console /dev/tty2 usando: ls >/dev/tty2, o resultado do comando ls ser mostrado no segundo console (pressione ALT e F2 para mudar para o segundo console e ALT e F1 para retornar ao primeiro). >> - Redireciona a sada de um programa/comando/script para algum dispositivo ou final de arquivo ao invs do dispositivo de sada padro (tela). A diferena entre este redirecionamento duplo e o simples, se caso for usado com arquivos, adiciona a sada do comando ao final do arquivo existente ao invs de substituir seu contedo. . Por exemplo, voc pode acrescentar a sada do comando ls ao arquivo listagem do captulo anterior usando ls / >>listagem. Use o comando cat para visualizar o contedo do arquivo listagem. < - Direciona a entrada padro de arquivo/dispositivo para um comando. Este comando faz o contrrio do anterior, ele envia dados ao comando. Voc pode usar o comando cat <teste.txt para enviar o contedo do arquivo teste.txt ao comando cat que mostrar seu contedo ( claro que o mesmo resultado pode ser obtido com cat teste.txt, mas este exemplo serviu para mostrar a funcionalidade do <). << - Este redirecionamento serve principalmente para marcar o fim de exibio de um bloco. Este especialmente usado em conjunto com o comando cat, mas tambm tem outras aplicaes. Por exemplo:

cat << final este arquivo ser mostrado at que a palavra final seja localizada no inicio da linha final

CETAM

50 | (pipe) - Envia a sada de um comando para a entrada do prximo comando para continuidade do processamento. Os dados enviados so processados pelo prximo comando que mostrar o resultado do processamento. Por exemplo: ls la | more, este comando faz a listagem longa de arquivos que enviado ao comando more (que tem a funo de efetuar uma pausa a cada 25 linhas do arquivo). Outro exemplo o comando "locate find | grep bin/", neste comando todos os caminhos/arquivos que contm find na listagem sero mostrados (inclusive man pages, bibliotecas, etc.), ento enviamos a sada deste comando para grep bin/ para mostrar somente os diretrios que contm binrios. Mesmo assim a listagem ocupe mais de uma tela, podemos acrescentar o more: locate find|grep bin/|more. Podem ser usados mais de um comando de redirecionamento (<, >, |) em um mesmo comando.

CETAM

51 7. COMANDOS TEIS cat - Mostra o contedo de um arquivo binrio ou texto. cat [opes] [diretrio/arquivo] [diretrio1/arquivo1] Diretrio/arquivo - Localizao do arquivo que deseja visualizar o contedo. Opes: -n, --number - Mostra o nmero das linhas enquanto o contedo do arquivo mostrado. -s, --squeeze-blank - No mostra mais que uma linha em branco entre um pargrafo e outro. O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamente arquivos compactados com gzip.

Exemplo: cat /usr/doc/copyright/GPL

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

Exemplo: tac /usr/doc/copyright/GPL. more - Permite fazer a paginao de arquivos ou da entrada padro. O comando more pode ser usado como comando para leitura de arquivos que cupem mais de uma tela. Quando toda a tela ocupada, o more efetua uma pausa e permite que voc pressione Enter ou espao para continuar avanando no arquivo sendo visualizado. Para sair do more pressione q. more [arquivo] Arquivo - o arquivo que ser paginado. Para visualizar diretamente arquivos texto compactados pelo gzip, gz use o comando zmore.

Exemplos: more /etc/passwd, cat /etc/passwd | more. CETAM

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

Exemplos: less /etc/passwd, cat /etc/passwd | less

head - Mostra as linhas iniciais de um arquivo texto. head [opes] Opes: -n [numero] - Mostra o [numero] de linhas do inicio do arquivo. Caso no for especificado, o head mostra as 10 primeiras linhas.

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

tail - Mostra as linhas finais de um arquivo texto. tail [opes] Opes: -n [numero] - Mostra o [numero] de linhas do final do arquivo. Caso no for especificado, o tail mostra as 10 primeiras linhas.

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

wc - Conta o nmero de palavras, bytes e linhas em um arquivo ou entrada padro. Se as opes forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes. wc [opes] [arquivo] CETAM

53 Arquivo - arquivo que ser verificado pelo comando wc. Opes: -c, --bytes - Mostra os bytes do arquivo. -w, --words - Mostra a quantidade de palavras do arquivo. -l, --lines - Mostra a quantidade de linhas do arquivo. A ordem da listagem dos parmetros nica, e modificando a posio das opes no modifica a ordem que os parmetros so listados.

Exemplo: wc /etc/passwd - Mostra a quantidade de linhas, palavras e letras (bytes) no arquivo /etc/passwd. wc -w /etc/passwd - Mostra a quantidade de palavras. wc -l /etc/passwd - Mostra a quantidade de linhas. wc -l -w /etc/passwd - Mostra a quantidade de linhas e palavras no arquivo /etc/passwd.

cut - Mostra sees de cada linha do arquivo dependendo das opes passadas ao programa. cut [opes] [arquivo] Arquivo - arquivo que ser verificado pelo comando cut. Opes: -c, --characters [numero] - Mostra somente o [nmero] de caracteres no arquivo. Tabs e espaos so tratados como qualquer caractere. -f, --field [campos] - Mostra somente a lista de [campos]. -d, --delimite [delimitador] - Para uso com a opo -f, os campos so separados pelo primeiro caractere em [delimitador] ao invs de tabulaes. Devem ser especificadas opes para o funcionamento deste comando. Os bytes, campos e delimitadores podem ser especificados atravs de intervalos de caracteres (usando a-z), atravs de vrgulas (a, b, d) ou da combinao entre eles. cut -d: -f1,3 /etc/passwd Assume que o delimitador o :, e pega a primeira e a terceira coluna do arquivo /etc/passwd. cut -c 1,3-10 /etc/passwd - Pega o primeiro caracter e terceiro ao dcimo caracter de cada linha do arquivo /etc/passwd. CETAM

54 sort - Organiza as linhas de um arquivo texto ou da entrada padro. A organizao feita por linhas e as linhas so divididas em campos que a ordem que as palavras aparecem na linha separadas por um delimitador (normalmente um espao). sort [opes] [arquivo] Arquivo - o nome do arquivo que ser organizado. Caso no for especificado, ser usado o dispositivo de entrada padro (normalmente o teclado ou um "|"). Opes: -b - Ignora linhas em branco. -d - Somente usam letras, dgitos e espaos durante a organizao. -f - Ignora a diferena entre maisculas e minsculas. -r - Inverte o resultado da comparao. -t caractere - Usa caractere como delimitador durante a organizao de linhas. Por padro usado um espao em branco como delimitador de caracteres. Exemplos: sort texto.txt - Organiza o arquivo texto.txt em ordem crescente. sort texto.txt -r - Organiza o contedo do arquivo texto.txt em ordem decrescente. cat texto.txt | sort - Faz a mesma coisa que o primeiro exemplo, s que neste caso a sada do comando cat redirecionado a entrada padro do comando sort. sort -f texto.txt - Ignora diferenas entre letras maisculas e minsculas durante a organizao.

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

55 -i, --ignore-case - Ignora diferena entre maisculas e minsculas no texto procurado e arquivo. -n, --line-number - Mostra o nome de cada linha encontrada pelo grep. Se no for especificado o nome de um arquivo ou se for usado um hfen "-", grep procurar a string no dispositivo de entrada padro. O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisar diretamente em arquivos compactados com gzip, os comandos e opes so as mesmas.

Exemplos: grep "capitulo" texto.txt ps ax | grep inetd

CETAM

56 8. PERMISSES DE ACESSO A ARQUIVOS E DIRETRIOS

A permisso de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas no autorizado. A permisso de acesso do GNU/Linux tambm impede que um programa mal intencionado, por exemplo, apague um arquivo que no deve, envie arquivos para outra pessoa ou fornea acesso da rede para que outros usurios invadam o sistema. O sistema GNU/Linux muito seguro e como qualquer outro sistema seguro e confivel impede que usurios iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e causem danos irreversveis em seus arquivos, seu micro ou sua empresa.

8.1. DONOS, GRUPOS E OUTROS USURIOS. O princpio da segurana no sistema de arquivos GNU/Linux definir o acesso aos arquivos por donos, grupos e outros usurios: Dono - a pessoa que criou o arquivo ou o diretrio. O nome do dono do arquivo/diretrio o mesmo do usurio usado para entrar no sistema GNU/Linux. Somente o dono pode modificar as permisses de acesso do arquivo. As permisses de acesso do dono de um arquivo somente se aplicam ao dono do arquivo/diretrio. A identificao do dono tambm chamada de user id (UID). A identificao de usurio e o nome do grupo que pertence armazenado respectivamente nos arquivos /etc/passwd e /etc/group. Estes so arquivos textos comuns e podem ser editados em qualquer editor de texto, mas tenha cuidado para no modificar o campo que contm a senha do usurio encriptada. Grupo - Para permitir que vrios usurios diferentes tivessem acesso a um mesmo arquivo, este recurso foi criado. Cada usurio pode fazer parte de um ou mais grupos e ento acessar arquivos que pertenam ao mesmo grupo que o seu. Por padro, quando um novo usurio criado, o grupo ele pertencer ser o mesmo de seu grupo primrio (exceto pelas condies que explicarei adiante). A identificao do grupo chamada de gid (group id). Um usurio pode pertencer a um ou mais grupos. CETAM

57 Outros - a categoria de usurios que no so donos ou no pertencem ao grupo do arquivo.

8.3. TIPOS DE PERMISSES DE ACESSO Quanto aos tipos de permisses que se aplicam ao dono, grupo e outros usurios, temos trs permisses bsicas: r - Permisso de leitura para arquivos. Caso for um diretrio, permite listar seu contedo (atravs do comando ls, por exemplo). w - Permisso de gravao para arquivos. Caso for um diretrio, permite a gravao de arquivos ou outros diretrios dentro dele. Para que um arquivo/diretrio possa ser apagado, necessrio o acesso a gravao. x - Permite executar um arquivo (caso seja um programa executvel). Caso seja um diretrio, permite que seja acessado atravs do comando cd. As permisses de acesso a um arquivo/diretrio podem ser visualizadas com o uso do comando ls -la. As trs letras (r w x) so agrupadas da seguinte forma:

- r w x r w x r w x usuario users teste u g o

A primeira letra diz qual o tipo do arquivo. Caso tiver um "d" um diretrio, um "l" um link a um arquivo no sistema, um "-" quer dizer que um arquivo comum.

8.3.1. Modo de permisso octal


Ao invs de utilizar os modos de permisso +r, -r, etc, pode ser usado o modo octal para se alterar a permisso de acesso a um arquivo. O modo octal um conjunto de oito nmeros onde cada nmero define um tipo de acesso diferente. Um modo fcil de entender como as permisses de acesso octais funcionam, atravs da seguinte tabela: 1 = Executar 2 = Gravar 4 = Ler CETAM

58 E para as permisses de acesso especiais: 1000 = Ajusta o bit stickbit na execuo 2000 = Ajusta o bit setgid na execuo 4000 = Ajusta o bit setuid na execuo

8.3.2. Permisses de Acesso Especiais


Em adio as trs permisses bsicas (rwx), existem permisses de acesso especiais (stST) que afetam arquivos executveis e diretrios: s - Quando usado na permisso de acesso do Dono, ajusta a identificao efetiva do usurio do processo durante a execuo de um programa, tambm chamado de bit setuid. No tem efeito em diretrios. Quando s usado na permisso de acesso do Grupo, ajusta a identificao efetiva do grupo do processo durante a execuo de um programa, chamado de bit setgid. identificado pela letra s no lugar da permisso de execuo do grupo do arquivo/diretrio. Em diretrios, fora que os arquivos criados dentro dele pertenam ao mesmo grupo do diretrio, ao invs do grupo primrio que o usurio pertence. Ambos setgid e setuid podem aparecer ao mesmo tempo no mesmo arquivo/diretrio. A permisso de acesso especial s somente pode aparecer no campo Dono e Grupo. S - Idntico a "s". Significa que no existe a permisso "x" (execuo ou entrar no diretrio) naquele lugar. Um exemplo o chmod 2760 em um diretrio. t - Salva a imagem do texto do programa no dispositivo swap, assim ele ser carregado mais rapidamente quando executado, tambm chamado de stick bit. Em diretrios, impede que outros usurios removam arquivos dos quais no so donos. Isto chamado de colocar o diretrio em modo append-only. Um exemplo de diretrio que se encaixa perfeitamente nesta condio o /tmp, todos os usurios devem ter acesso para que seus programas possam criar os arquivos temporrios l, mas nenhum pode apagar arquivos dos outros. A permisso especial t, pode ser especificada somente no campo outros usurios das permisses de acesso. T - Idntico a "t". Significa que no existe a permisso "x" naquela posio (por exemplo, em um chmod 1776 em um diretrio). CETAM

59 8.4. COMANDOS PARA MANIPULAR PERMISSES chmod - Muda a permisso de acesso a um arquivo ou diretrio. Com este comando voc pode escolher se usurio ou grupo ter permisses para ler, gravar, executar um arquivo ou arquivos. Sempre que um arquivo criado, seu dono o usurio que o criou e seu grupo o grupo do usurio (exceto para diretrios configurados com a permisso de grupo "s", ser visto adiante). chmod [opes] [permisses] [diretrio/arquivo] Diretrio/arquivo - Diretrio ou arquivo que ter sua permisso mudada. Opes: -R, --recursive - Muda permisses de acesso do diretrio/arquivo no diretrio atual e subdiretrios. ugoa+-= rwxXst ugoa - Controla que nvel de acesso ser mudado. Especificam, em ordem, usurio (u), grupo (g), outros (o), todos (a). + - = - (+) coloca a permisso, (-) retira a permisso do arquivo e (=) define a permisso exatamente como especificado. rwx (r) permisso de leitura do arquivo. (w) permisso de gravao. (x) permisso de execuo (ou acesso a diretrios). chmod no muda permisses de links simblicos, as permisses devem ser mudadas no arquivo alvo do link. Tambm podem ser usados cdigos numricos octais para a mudana das permisses de acesso a arquivos/diretrios. DICA: possvel copiar permisses de acesso do arquivo/diretrio, por exemplo, se o arquivo teste.txt tiver a permisso de acesso r-xr----- e voc digitar chmod o=u, as permisses de acesso dos outros usurios (o) sero idnticas ao do dono (u). Ento a nova permisso de acesso do arquivo teste.txt ser r-xr--r-x Exemplos de permisses de acesso: chmod g+r * - Permite que todos os usurios que pertenam ao grupo dos arquivos (g) tenham (+) permisses de leitura (r) em todos os arquivos do diretrio atual. chmod o-r teste.txt - Retira (-) a permisso de leitura (r) do arquivo teste.txt para os outros usurios (usurios que no so donos e no pertencem ao grupo do arquivo teste.txt). CETAM

60 chmod uo+x teste.txt - Inclui (+) a permisso de execuo do arquivo teste.txt para o dono e outros usurios do arquivo. chmod a+x teste.txt - Inclui (+) a permisso de execuo do arquivo teste.txt para o dono, grupo e outros usurios. chmod a=rw teste.txt - Define a permisso de todos os usurios exatamente (=) para leitura e gravao do arquivo teste.txt. chmod 764 teste - Os nmeros so interpretados da direita para a esquerda como permisso de acesso aos outros usurios (4), grupo (6), e dono (7). O exemplo acima faz os outros usurios (4) terem acesso somente leitura (r) ao arquivo teste, o grupo (6) ter a permisso de leitura e gravao (w), e o dono (7) ter permisso de leitura, gravao e execuo (rwx) ao arquivo teste. chmod 40 teste - O exemplo acima define a permisso de acesso dos outros usurios (0) como nenhuma, e define a permisso de acesso do grupo (4) como somente leitura (r). Note usei somente dois nmeros e ento a permisso de acesso do dono do arquivo no modificada (leia as permisses de acesso da direita para a esquerda!). Para detalhes veja a lista de permisses de acesso em modo octal no inicio desta seo. chmod 751 teste - O exemplo acima define a permisso de acesso dos outros usurios (1) para somente execuo (x), o acesso do grupo (5) como leitura e execuo (rx) e o acesso do dono (7) como leitura, gravao e execuo (rwx). chmod 4751 teste - O exemplo acima define a permisso de acesso dos outros usurios (1) para somente execuo (x), acesso do grupo (5) como leitura e execuo (rx), o acesso do dono (7) como leitura, gravao e execuo (rwx) e ajusta o bit setgid (4) para o arquivo teste.

chgrp - Muda o grupo de um arquivo/diretrio. chgrp [opes] [grupo] [arquivo/diretrio] Grupo - Novo grupo do arquivo/diretrio. Arquivo/diretrio - Arquivo/diretrio que ter o grupo alterado. Opes: -v, --verbose - Mostra todas as mensagens e arquivos sendo modificados. -R, --recursive - Altera os grupos de arquivos/sub-diretrios do diretrio atual. CETAM

61 chown - Muda dono de um arquivo/diretrio. Opcionalmente pode tambm ser usado para mudar o grupo. chown [opes] [dono.grupo] [diretrio/arquivo] dono.grupo - Nome do dono.grupo que ser atribudo ao diretrio/arquivo. O grupo opcional. Diretrio/arquivo - Diretrio/arquivo que o dono.grupo ser modificado. Opes: -v, --verbose - Mostra os arquivos enquanto so alterados. -R, --recursive - Altera dono e grupo de arquivos no diretrio atual e subdiretrios. Voc deve ter permisses de gravao no diretrio/arquivo para alterar seu dono/grupo.

Exemplos: chown joao teste.txt - Muda o dono do arquivo teste.txt para joao. chown joao.users teste.txt - Muda o dono do arquivo teste.txt para joao e seu grupo para users. chown -R joao.users * - Muda o dono/grupo dos arquivos do diretrio atual e sub-diretrios para joao/users (desde que voc tenha permisses de gravao no diretrios e sub-diretrios).

CETAM

62 9. GERENCIAMENTO DE USURIOS E GRUPOS

O GNU/Linux e um sistema operacional multiusurio, portanto e necessrio que todos os usurios sejam cadastrados e tenham permisses de acesso diferenciadas. Gerenciar usurios pode se tornar um pesadelo se no houver um planejamento prvio de como tudo funcionar. Quanto maior o nmero de usurios e quanto mais possibilidades de uso do sistema, mais complicado fica a gerncia.

9.1 COMANDOS PARA GERNCIA USURIOS adduser - O comando adduser adiciona um usurio ao sistema. Somente o superusurio poder utilizar este comando. Por padro, quando um novo usurio adicionado, criado um grupo com o mesmo nome do usurio. Ser criado um diretrio home com o nome do usurio (a no ser que o novo usurio criado seja um usurio do sistema) e este receber uma identificao. A identificao do usurio (UID) escolhida ser a primeira disponvel no sistema especificada de acordo com a faixa de UIDS de usurios permitidas no arquivo de configurao /etc/adduser.conf. Este o arquivo que contm os padres para a criao de novos usurios no sistema. adduser [opes] [usurio] Opes: --disable-passwd - no executa o programa passwd para escolher a senha e somente permite o uso da conta aps o usurio escolher uma senha. --force-badname - desativa a checagem de senhas ruins durante a adio do novo usurio. Por padro o adduser checa se a senha pode ser facilmente adivinhada. -uid [num] - cria um novo usurio com a identificao [num] ao invs de procurar o prximo UID disponvel. -gid [num] - faz com que o usurio seja parte do grupo [gid] ao invs de pertencer a um novo grupo que ser criado com seu nome. Isto til caso deseje permitir que grupos de usurios possam ter acesso a arquivos comuns.

CETAM

63 --home [dir] - usa o diretrio [dir] para a criao do diretrio home do usurio ao invs de usar o especificado no arquivo de configurao /etc/adduser.conf. --ingroup [nome] - quando adicionar um novo usurio no sistema, coloca o usurio no grupo [nome] ao invs de criar um novo grupo. --system - cria um usurio de sistema ao invs de um usurio normal. Os dados do usurio so colocados no arquivo /etc/passwd aps sua criao e os dados do grupo so colocados no arquivo /etc/group. OBSERVAO: Caso esteja usando senhas ocultas (shadow passwords), as senhas dos usurios sero colocadas no arquivo /etc/shadow e as senhas dos grupos no arquivo /etc/gshadow. Isto aumenta mais a segurana do sistema porque somente o usurio root pode ter acesso a estes arquivos, ao contrrio do arquivo /etc/passwd que possui os dados de usurios e devem ser lidos por todos.

addgroup - Adiciona um novo grupo de usurios no sistema. addgroup [grupo]

passwd - Permite que se troque a senha de determinado usurio. Um usurio somente pode alterar a senha de sua conta, mas o superusurio (root) pode alterar a senha de qualquer conta de usurio, inclusive a data de validade da conta, etc. Os dados da conta do usurio como nome, endereo, telefone, tambm podem ser alterados com este comando. passwd [usurio] [opes] Usurio - Nome do usurio que ter sua senha alterada. Opes: -x [dias] - especifica o nmero mximo de dias que a senha poder ser usada. Aps terminar o prazo, a senha dever ser modificada. -i - desativa a conta caso o usurio no tenha alterado sua senha aps o tempo especificado por -x. -n [dias] - especifica o nmero mnimo de dias para a senha ser alterada. O usurio no poder mudar sua senha at que [dias] sejam atingidos desde a ltima alterao de senha.

CETAM

64 -w [num] - nmero de dias antecedentes que o usurio receber o alerta para mudar sua senha. O alerta ocorre [num] dias antes do limite da opo -x, avisando aos usurios quantos dias restam para a troca de sua senha. -l [nome] - bloqueia a conta do usurio [nome]. Deve ser usada pelo root. O bloqueio da conta feito acrescentando um caractere a senha para que no confira com a senha original. -u [nome] - desbloqueia a conta de um usurio bloqueada com a opo -l. -s [nome] - mostra o status da conta do usurio [nome]. A primeira parte o nome do usurio seguido de l (conta bloqueada), np (sem senha), ou p (com senha), a terceira parte a data da ltima modificao da senha, a quarta parte a perodo mnimo, mximo, alerta e o perodo de inatividade para a senha. Procure sempre combinar letras maisculas, minsculas, e nmeros ao escolher suas senhas. No recomendado escolher palavras normais como sua senha, pois podem ser vulnerveis a ataques de dicionrios cracker. Outra recomendao utilizar senhas ocultas em seu sistema (shadow password). Voc deve ser o dono da conta para poder modificar a senhas. O usurio root pode modificar/apagar a senha de qualquer usurio.

Exemplo: passwd aluno.

OBSERVAAO: para trocar a senha do root basta digitar apenas o comando passwd. userdel - Apaga um usurio do sistema. Quando usado, este comando apaga todos os dados da conta especificado dos arquivos de contas do sistema. userdel [-r] [usurio] -r - apaga tambm o diretrio HOME do usurio. OBS: Note que uma conta de usurio no poder ser removida caso ele estiver no sistema, pois os programas podem precisar ter acesso aos dados dele (como UID, GID) no /etc/passwd. groupdel - Apaga um grupo do sistema. Quando usado, este comando apaga todos os dados do grupo especificado dos arquivos de contas do sistema. CETAM

65 groupdel [grupo] OBSERVAO: Voc no pode remover o grupo primrio de um usurio. Remova o usurio primeiro.

gpasswd - Para incluir um usurio a um grupo, e assim permitir que ele acesse os arquivos/diretrios que pertencem quele grupo. usa-se o comando: gpasswd [opcoes] [usuario] [grupo] usurio - o usurio que desejamos ver a identificao, grupos primrios e complementares. grupo um grupo j cadastrado no sistema. opes: -a adiciona o usurio ao grupo. -d retira o usurio do grupo. -A defini o administrador do grupo.

Exemplo: gpasswd -a aluno root

OBSERVAO: o usurio especificado j deve estar adicionado no sistema. Id - Mostra a identificao atual do usurio, grupo primrio e outros grupos que pertence. id [opes] [usurio] usurio - o usurio que desejamos ver a identificao, grupos primrios e complementares. Opes: -g, --group - mostra somente a identificao do grupo primrio. -G, --groups - mostra a identificao de outros grupos que pertence. -n, --name - mostra o nome do usurio e grupo ao invs da identificao numrica. -u, --user - mostra somente a identificao do usurio (user ID). -r, --real - mostra a identificao real de usurio e grupo, ao invs da efetiva. Esta opo deve ser usada junto com uma das opes: -u, -g, ou -G.

CETAM

66 Caso no sejam especificadas opes, id mostrar todos os dados do usurio.

Exemplo: id, id --user, id -r -u.

CETAM

67 10. LOCALIZAO DE ARQUIVOS

find - Procura por arquivos/diretrios no disco. find pode procurar arquivos atravs de sua data de modificao, tamanho, etc atravs do uso de opes. find, ao contrrio de outros programas, usa opes longas atravs de um "-". find [diretrio] [opes/expresso] Diretrio - Inicia a procura neste diretrio, percorrendo seu sub-diretrios. Opes/expresso -name [expresso] - Procura pelo nome [expresso] nos nomes de arquivos e diretrios processados. -user [nome] - Procura por arquivos que possuam a identificao de nome do usurio igual a [nome]. -perm [modo] - Procura por arquivos que possuam os modos de permisso [modo]. Os [modo] de permisso pode ser numrico (octal) ou literal. -type [tipo] Procura por arquivos pelo tipo do arquivo. Caso tiver um "d" um diretrio, um "l" um link a um arquivo no sistema, um "-" quer dizer que um arquivo comum, etc.

Exemplo: find / -name grep - Procura no diretrio raiz e sub-diretrios um arquivo/diretrio chamado grep. updatedb - Este comando procura em todos os sistemas de arquivos e caminhos de rede especificados no arquivo /etc/updatedb.conf para criar a base de dados. Se no existir o arquivo /etc/updatedb.conf, o sistema procurar em todos os sistemas de arquivos montados. A base de dados criada poder ser consultada atravs do comando locate.

locate - O comando locate localiza todas as ocorrncias de critrio nos sistemas de arquivos e caminhos de rede, previamente rastreados pelo comando updatedb. locate critrio CETAM

68 Exemplos: locate documento.txt Procura na base de dados anteriormente gerada pelo comando updatedb, todas as ocorrncias de documento.txt.

whereis - Localiza o arquivo que contm uma pgina de manual. A pesquisa feita usando-se os caminhos de pginas de manuais configuradas no sistema (normalmente o arquivo /etc/manpath.config). whereis [comando]

Exemplo: whereis ls, whereis cd. which - Mostra a localizao de um arquivo executvel no sistema. A pesquisa de arquivos executveis feita atravs do path do sistema. which [comando]

Exemplos: which ls, which shutdown, which which.

CETAM

69 11. SISTEMA DE ARQUIVOS

criado durante a "formatao" da partio de disco. Aps a formatao toda a estrutura para leitura/gravao de arquivos e diretrios pelo sistema operacional estar pronta para ser usada. Normalmente este passo feito durante a instalao de sua distribuio GNU/Linux. Cada sistema de arquivos tem uma caracterstica em particular mas seu propsito o mesmo: Oferecer ao sistema operacional a estrutura necessria para ler/gravar os arquivos/diretrios. Entre os sistemas de arquivos existentes posso citar: ext2 - Usado em parties Linux Nativas para o armazenamento de arquivos. identificado pelo cdigo 83. Seu tamanho deve ser o suficiente para acomodar todos os arquivos e programas que deseja instalar no GNU/Linux. ext3 - O sistema de arquivos ext3 faz parte da nova gerao extended file system do Linux, sendo que seu maior benefcio o suporte a journaling. Ele tambm identificado pelo tipo 83 e totalmente compatvel com o ext2 em estrutura. O journal mantm um log de todas as operaes no sistema de arquivos, caso acontea uma queda de energia eltrica (ou qualquer outra anormalidade que interrompa o funcionamento do sistema), o fsck verifica o sistema de arquivos no ponto em que estava quando houve a interrupo, evitando a demora para checar todo um sistema de arquivos (que pode levar minutos em sistemas de arquivos muito grandes). reiserfs - Este um sistema de arquivos alternativo ao ext2/3 que tambm possui suporte a journaling. Entre suas principais caractersticas, esto que ele possui tamanho de blocos variveis, suporte a arquivos maiores que dois gigabytes (esta uma das limitaes do ext3) e o acesso mhash a rvore de diretrios um pouco mais rpida que o ext3. Para utilizar reiserfs, tenha certeza que seu kernel possui o suporta habilitado (na seo File Systems) e instale o pacote reiserfsprogs CETAM

70 que contm utilitrios para formatar, verificar este tipo de partio. Swap - Usado em parties Linux Swap para oferecer memria virtual ao sistema. Note que altamente recomendado o uso de uma partio Swap no sistema (principalmente se voc tiver menos que 16MB de memria RAM). Este tipo de partio identificado pelo cdigo 82. FAT16 - Usado no DOS e oferece suporte at discos de 2GB FAT32 - Tambm usado no DOS e oferece suporte a discos de at 2TB.

11.1. JOURNALING

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

11.2. IDENTIFICAO DE DISCOS E PARTIES EM SISTEMAS LINUX

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

CETAM

71 A identificao de discos rgidos no GNU/Linux feita da seguinte forma: /dev/hda1 | | | | | | | |_Diretrio onde so armazenados os dispositivos existentes no sistema. | || | | |_Nmero que identifica o nmero da partio no disco rgido. | | | |_Letra que identifica o disco rgido (a=primeiro, b=segundo, etc...). | |_Sigla que identifica o tipo do disco rgido (hd=ide, sd=SCSI, xt=XT).

Abaixo algumas identificaes de discos e parties em sistemas Linux: /dev/fd0 - Primeira unidade de disquetes. /dev/fd1 - Segunda unidade de disquetes. /dev/hda - Primeiro disco rgido na primeira controladora IDE do micro. /dev/hda1 - Primeira partio do primeiro disco rgido IDE. /dev/hdb - Segundo disco rgido na primeira controladora IDE do micro. /dev/hdb1 - Primeira partio do segundo disco rgido IDE. /dev/sda - Primeiro disco rgido na primeira controladora SCSI. /dev/sda1 - Primeira partio do primeiro disco rgido SCSI. /dev/sdb - Segundo disco rgido na primeira controladora SCSI. /dev/sdb1 - Primeira partio do segundo disco rgido SCSI. /dev/sr0 - Primeiro CD-ROM SCSI. /dev/sr1 - Segundo CD-ROM SCSI.

importante entender como os discos e parties so identificadas no sistema, pois ser necessrio usar os parmetros corretos para mont-las.

11.3 COMANDOS DE MANIPULAO DE SISTEMAS DE ARQUIVOS fdisk - um edito da tabela de parties do Linux. fdisk [opes] [dispositivo] Opes: CETAM

72 -u Na listagem de tabelas de parties, alterna a exibio de informaes em setores ou cilindros. -l Lista a tabela das parties correntes. Dispositivo O dispositivo onde sero criadas as parties Linux, geralmente HD. cfdisk - Outro editor da tabela de parties do Linux. cfdisk [dispositivo] Dispositivo O dispositivo onde sero criadas as parties Linux, geralmente HD. mkfs - O mkfs constri um sistema de arquivos em um dispositivo, por exemplo numa partio de um disco rgido. Na verdade o mkfs um front-end que chama a verso apropriada do mkfs, de acordo com o tipo especificado pela opo -t. Por exemplo, na criao de um sistema de arquivo ext3 (-t ext3), utilizado o comando mkfs.ext3. Sistemas de arquivos MS-DOS utilizam mkfs.msdos. mkfs [opes] [opo_de_fs] dispositivo Opes: -t Especifica o tipo de sistema de arquivos a ser criado. Se no especificado, ser criado um sistema de arquivos ext2 (padro). -c Verifica a integridade do dispositivo durante a criao do sistema de arquivos. Opo_de_fs escolha do tipo de sistema de arquivos. Dispositivo O dispositivo onde sero criadas as parties Linux, geralmente HD.

Exemplo: mkfs -t ext3 /dev/hda1 Cria um sistema de arquivos(file system) do tipo ext3 no dispositivo /dev/hda1.

CETAM

73 df - Mostra o espao livre/ocupado de cada partio. df [opes] Opes: -h, --human-readable - Mostra o espao livre/ocupado em MB, KB, GB ao invs de blocos. -l - Somente lista sistema de arquivos locais. -T - Lista o tipo de sistema de arquivos de cada partio

Exemplos: df, df -h, df -t vfat. du - Mostra o espao ocupado por arquivos e sub-diretrios do diretrio atual. du [opes] Opes: -a, --all - Mostra o espao ocupado por todos os arquivos. -c, --total - Faz uma totalizao de todo espao listado. -D - No conta links simblicos. -h, --human - Mostra o espao ocupado em formato legvel por humanos (Kb, Mb) ao invs de usar blocos. -H - Como o anterior mas usa 1000 e no 1024 como unidade de clculo.

Exemplo: du -h, du -hc. mount - Voc pode acessar uma partio de disco usando o comando mount. mount [opes] [dispositivo] [ponto de montagem] Opes: -t [tipo] - Tipo do sistema de arquivos usado pelo dispositivo. So aceitos os sistemas de arquivos: ext2 - Para parties GNU/Linux usando o Extended File System verso 2 (a mais comum). ext3 - Para parties GNU/Linux usando o Extended File System verso 3, com suporte a journaling. CETAM

74 reiserfs - Para parties reiserfs, com suporte a journaling. vfat - Para parties Windows 95 que utilizam nomes extensos de arquivos e diretrios. msdos - Para parties DOS normais. iso9660 - Para montar unidades de CD-ROM. o padro. umsdos - Para montar uma partio DOS com recursos de parties EXT2, como permisses de acesso, links, etc. -r - Caso for especificada, monta a partio somente para leitura. -w - Caso for especificada, monta a partio como leitura/gravao. o padro. -a Monta todos os sistemas de arquivos listados em /etc/fstab. Dispositivo - identificao da unidade de disco/partio que deseja acessar (como /dev/hda1 (disco rgido) ou /dev/fd0 (primeira unidade de disquetes). Ponto de montagem - Diretrio de onde a unidade de disco/partio ser acessada. O diretrio deve estar vazio para montagem de um sistema de arquivo. Normalmente usado o diretrio /mnt para armazenamento de pontos de montagem temporrios. Caso voc digitar mount sem parmetros, sero mostrados os sistemas de arquivos atualmente montados no sistema. Esta mesma listagem pode ser vista em /etc/mtab. A remontagem de partio tambm muito til, especialmente aps reparos nos sistema de arquivos do disco rgido. Veja alguns exemplos de remontagem abaixo. necessrio permisses de root para montar parties, a no ser que tenha especificado a opo user no arquivo /etc/fstab. Exemplo de Montagem: Montar uma partio Windows (vfat) de /dev/hda1 em /mnt somente para leitura: mount -r -t vfat /dev/hda1 /mnt. Montar a primeira unidade de disquetes /dev/fd0 em /floppy: mount -t vfat /dev/fd0 /floppy. Montar uma partio DOS localizada em um segundo disco rgido /dev/hdb1 em /mnt: mount -t msdos /dev/hdb1 /mnt. Remontar a partio raz como somente leitura: mount -o remount,rw / Remontar a partio raz como leitura/gravao (a opo -n usada porque CETAM

75 o mount no conseguir atualizar o arquivo /etc/mtab devido ao sistema de arquivos / estar montado como somente leitura atualmente: mount -n -o remount,rw /. umount - Para desmontar um sistema de arquivos montado com o comando mount, use o comando umount. Voc deve ter permisses de root para desmontar uma partio. umount [dispositivo/ponto de montagem] Voc pode tanto usar umount /dev/hda1 como umount /mnt para desmontar um sistema de arquivos /dev/hda1 montado em /mnt. Observao: O comando umount executa o sync automaticamente no momento da desmontagem para garantir que todos os dados ainda no gravados sero salvos. ln - Cria links para arquivos e diretrios no sistema. ln [opes] [origem] [link] Origem - Diretrio ou arquivo de onde ser feito o link. Link - Nome do link que ser criado. Opes: -s - Cria um link simblico. Usado para criar ligaes com o arquivo/diretrio de destino. -d - Cria um hard link para diretrios. Somente o root pode usar esta opo. Exemplos: ln -s /dev/ttyS1 /dev/modem - Cria o link /dev/modem para o arquivo /dev/ttyS1. ln -s /tmp ~/tmp - Cria um link ~/tmp para o diretrio /tmp.

11.4. O ARQUIVO FSTAB

O arquivo /etc/fstab permite que as parties do sistema sejam montadas facilmente especificando somente o dispositivo ou o ponto de montagem. Este arquivo contm parmetros sobre as parties que so lidas pelo comando mount. Cada linha deste arquivo contm a partio que desejamos montar, o ponto de montagem, o sistema de arquivos usado pela partio e outras opes. fstab tem a CETAM

76 seguinte forma:

Sistema de arquivos Ponto de Montagem Tipo /dev/hda1 /dev/hda2 /dev/hda3 /dev/hdg / /boot /dos /cdrom ext2 ext2 msdos

Opes defaults defaults

dump ordem 0 0 1 2 0 0

defaults,noauto,rw 0 0

iso9660 defaults,noauto

Onde: Sistema de Arquivos - Partio que deseja montar. Ponto de montagem - Diretrio do GNU/Linux onde a partio montada ser acessada. Tipo - Tipo de sistema de arquivos usado na partio que ser montada. Para parties GNU/Linux use ext2, para parties DOS (sem nomes extensos de arquivos) use msdos, para parties Win 95 (com suporte a nomes extensos de arquivos) use vfat, para unidades de CD-ROM use iso9660. Opes - Especifica as opes usadas com o sistema de arquivos: defaults - Utiliza valores padres de montagem. noauto - No monta os sistemas de arquivos durante a inicializao (til para CD-ROMS e disquetes). ro - Monta como somente leitura. user - Permite que usurios montem o sistema de arquivos (no recomendado por motivos de segurana). sync recomendado para uso com discos removveis (disquetes, zip drives, etc) para que os dados sejam gravados imediatamente na unidade (caso no seja usada, voc deve usar o comando sync, antes de retirar o disquete da unidade. Ordem - Define a ordem que os sistemas de arquivos sero verificados na inicializao do sistema. Se usar 0, o sistema de arquivos no verificado. O sistema de arquivos raz que dever ser verificado primeiro o raz "/" (a no ser que voc tenha um sistema de arquivos de outro tipo que no montado dentro do diretrio raz e possui seu suporte embutido no kernel). Aps configurar o /etc/fstab, basta digitar o comando mount /dev/hdg ou mount /cdrom para que a unidade de CD-ROM seja montada. Voc deve ter notado CETAM

77 que no necessrio especificar o sistema de arquivos da partio pois o mount verificar se ele j existe no /etc/fstab e caso existir, usar as opes especificadas neste arquivo. Para maiores detalhes veja as pginas de manual fstab e mount.

CETAM

78 12. SISTEMA DE GERENCIAMENTO DE PACOTES

O dpkg (Debian Package) o programa responsvel pelo gerenciamento de pacotes em sistemas Debian. Sua operao feita em modo texto e funciona atravs de comandos, assim caso deseje uma ferramenta mais amigvel para a seleo e instalao de pacotes, prefira o dselect ou o apt. dpkg muito usado por usurios avanados da Debian e desenvolvedores para fins de instalao, manuteno e construo de pacotes.

12.1. PACOTES

Pacotes

Debian so

programas

colocados

dentro

de

um arquivo

identificados pela extenso .deb incluindo arquivos necessrios para a instalao do programa, um sistemas de listagem/checagem de dependncias, scripts de automatizao para remoo parcial/total do pacote, listagem de arquivos, etc.

Um nome de pacote tem a forma nome-verso_reviso.deb

12.1.1. Instalar pacotes


dpkg -i [NomedoPacote]

Para instalar um pacote em seu sistema. Talvez ele pea que seja instalado algum pacote que depende para seu funcionamento. preciso especificar o nome completo do pacote (com a verso e reviso).

Dependncias

Dependncias so pacotes requeridos para a instalao de outro pacote. Na Debian cada pacote contm um programa com certa funo. Por exemplo, se voc tentar instalar o pacote de edio de textos supertext que usa o programa sed, voc precisar verificar se o pacote sed est instalado em seu sistema antes de tentar CETAM

79 instalar o supertext, caso contrrio, o pacote supertext pedir o sed e no funcionar corretamente. Note que o pacote supertext apenas um exemplo e no existe (pelo menos at agora). O programa dselect faz o trabalho de checagem de dependncias automaticamente durante a instalao dos pacotes. A colocao de cada programa em seu prprio pacote parece ser uma dificuldade a mais para a instalao manual de certo programa. Mas para os desenvolvedores que mantm os mais de 4300 pacotes existentes na distribuio Debian, um ponto fundamental, porque no preciso esperar uma nova verso do supertext ser lanada para instalar a verso mais nova do pacote sed. Por este motivo tambm uma vantagem para o usurio.

12.1.2. Listar pacotes existentes no sistema


dpkg -l [pacote]

Na listagem de pacotes tambm ser mostrado o "status" de cada um na coluna da esquerda, acompanhado do nome do pacote, verso e descrio bsica. Caso o nome do [pacote] seja omitido, todos os pacotes sero listados. recomendado usar "dpkg -l | less" para ter um melhor controle da listagem (pode ser longa dependendo da quantidade de programas instalados).

12.1.3. Removendo pacotes do sistema


dpkg -r [NomedoPacote]

Para remover um pacote do sistema completamente. Somente necessrio digitar o nome e verso do pacote que deseja remover, no sendo necessrio a reviso do pacote. O comando dpkg -r no remove os arquivos de configurao criados pelo programa. dpkg --purge [NomedoPacote ]

Para remover um pacote e todos os diretrios e arquivos de configurao CETAM

80 criados. No necessrio especificar a reviso do pacote. O comando dpkg--purge pode ser usado aps uma remoo normal do pacote (usando dpkg -r). Caso voc usar diretamente o comando dpkg --purge, dpkg primeiro remover o pacote normalmente e aps removido apagar todos os arquivos de configurao. Note que o dpkg --purge somente remove arquivos de configurao conhecidos pelo pacote. Em especial, os arquivos de configurao criados para cada usurio do sistema devem ser removidos manualmente. Seria pedir demais que o dpkg tambm conhecesse os usurios de nosso sistema.

12.1.4. Mostrar descrio do pacote


dpkg -I [NomedoPacote]

Para mostrar a descrio do pacote. Entre a descrio so mostradas as dependncias do pacote, pacotes sugeridos, recomendados, descrio do que o pacote faz tamanho e nmero de arquivos que contm.

12.1.5. Procura de pacotes atravs do nome de um arquivo


dpkg -S [arquivo]

Para saber de qual pacote existente no sistema o arquivo pertence.

12.1.6. Status do pacote


dpkg -s [pacote]

Para verificar o status de um pacote em seu sistema, se esta ou no instalado, configurado, tamanho, dependncias, maintainer, etc. Se o pacote estiver instalado no sistema, o resultado ser parecido com o do comando dpkg -c [pacote]. Este comando equivalente ao dpkg --status. CETAM

81

12.1.7. Procurando pacotes com problemas de instalao


dpkg -C

A checagem de pacotes com este tipo de problema pode ser feita atravs deste comando. Sero listados todos os pacotes com algum tipo de problema, verifique os detalhes do pacote com "dpkg -s" para decidir como corrigir o problema.

12.1.8. Mostrando a lista de pacotes do sistema


dpkg --get-selections

Para obter uma lista de seleo dos pacotes em seu sistema. A listagem mostrada na sada padro, que pode ser facilmente redirecionada para um arquivo usando dpkg --get-selections >dpkg.lista. A listagem obtida com este comando muito til para repetir os pacotes usados no sistema usando o dpkg --set-selections.

12.1.9. Obtendo uma lista de pacotes para instalar no sistema


dpkg --set-selections < arquivo

Para obter a lista de pacotes que sero instalados no sistema. O uso do dpkg --get-selections e dpkg --set-selections muito til durante uma necessidade de reinstalao do sistema GNU/Linux ou repetir a instalao em vrias mquinas sem precisar selecionar algumas dezenas entre os milhares de pacotes no dselect. Aps obter a lista com dpkg --get-selections, use dpkg --set-selections <arquivo e ento entre no dselect e escolha a opo INSTALL, todos os pacotes obtidos via dpkg --set-selections sero automaticamente instalados.

CETAM

82

12.1.10. Configurando pacotes desconfigurados


Pacotes esto desconfigurados quando, por algum motivo, a instalao do mesmo no foi concluda com sucesso. Pode ter faltado alguma dependncia, acontecido algum erro de leitura do arquivo de pacote, etc. Quando um erro deste tipo acontece, os arquivos necessrios pelo pacote podem ter sido instalados, mas os scripts de configurao ps-instalao no so executados.

dpkg --configure [NomedoPacote]

Para configurar um pacote. O NomedoPacote no precisa conter a reviso do pacote e extenso.

12.1.11. Listando arquivos de um pacote


dpkg -c arquivo

Para obter a listagem dos arquivos contidos no pacote. necessrio digitar o nome completo do pacote. O comando dpkg -c til para listarmos arquivos de pacotes que no esto instalados no sistema. Para obter a listagem de arquivos de pacotes j instalados no sistema, use o comando: dpkg -L arquivo. necessrio digitar somente o nome do pacote (sem a reviso e extenso).

12.2 APT

O apt sistema de gerenciamento de pacotes de programas que possui resoluo automtica de dependncias entre pacotes, mtodo fcil de instalao de pacotes, facilidade de operao, permite atualizar facilmente sua distribuio, etc. Ele funciona atravs de linha de comando e ainda no existe nenhuma interface amigvel para uso deste programa, mesmo assim sua operao muito fcil. O apt pode utilizar tanto com arquivos locais como remotos na instalao ou atualizao, desta maneira possvel atualizar toda a sua distribuio Debian via ftp CETAM

83 ou http com apenas dois simples comandos! recomendvel o uso do mtodo apt no programa dselect, pois ele permite a ordem correta de instalao de pacotes e checagem e resoluo de dependncias, etc. Devido a sua facilidade de operao, o apt o mtodo preferido para os usurios manipularem pacotes da Debian. O apt exclusivo da distribuio Debian e distribuies baseadas nela e tem por objetivo tornar a manipulao de pacotes poderosa por qualquer pessoa e tem dezenas de opes que podem ser usadas em sua execuo ou configuradas no arquivo /etc/apt/apt.conf. Explicarei aqui como fazer as aes bsicas com o apt, portanto se desejar maiores detalhes sobre suas opes, veja a pgina de manual apt-get.

12.2.1. O arquivo /etc/apt/sources.list


Este arquivo contm os locais onde o apt encontrar os pacotes, a distribuio que ser verificada (stable, testing, unstable, Woody, Sarge) e a seo que ser copiada (main, non-free, contrib, non-US). Sarge(Debian 3.1) o nome da verso stable. Se desejar usar sempre uma distribuio estvel como a Sarge, modifique o arquivo sources.list e coloque Sarge como distribuio. Caso voc desejar estar sempre atualizado, mas uma pessoa cuidadosa e deseja ter sempre a ltima distribuio estvel da Debian, coloque stable como verso. Assim que a nova verso for lanada, os links que apontam de stable para Sarge sero alterados apontando para a nova verso e voc ter seu sistema atualizado. Abaixo um exemplo simples de arquivo /etc/apt/sources.list com explicao das sees:

deb http://www.debian.org/debian stable main contrib non-free deb http://nonus.debian.org/debian-non-US stable non-US

Voc pode interpretar cada parte da seguinte maneira: deb - Identifica um pacote da Debian. A palavra deb-src identifica o cdigo CETAM

84 fonte. http://www.debian.org/debian - Mtodo de acesso aos arquivos da Debian, site e diretrio principal. O caminho pode ser http://, ftp://, file:/. stable - Local onde sero procurados arquivos para atualizao. Voc pode tanto usar o nome de sua distribuio ou sua classificao (stable, testing ou unstable. Note que unstable recomendada somente para desenvolvedores, mquinas de testes e se voc tem conhecimentos para corrigir problemas. Nunca utilize unstable em ambientes de produo ou servidores crticos, use a stable. main contrib non-us - Sees que sero verificadas no site remoto. Note que tudo especificado aps o nome da distribuio ser interpretado como sendo as sees dos arquivos (main, non-free, contrib, non-US). As linhas so processadas na ordem que esto no arquivo, ento recomendvel colocar as linhas que fazem referncia a pacotes locais primeiro e mirrors mais perto de voc para ter um melhor aproveitamento de banda. O caminho percorrido pelo apt para chegar aos arquivos ser o seguinte:

http://www.debian.org/debian/dists/stable/main/binary-i386 http://www.debian.org/debian/dists/stable/non-free/binary-i386 http://www.debian.org/debian/dists/stable/contrib/binary-i386

Voc

notou

que

diretrio

dists

foi

adicionado

entre

http://www.debian.org/debian e stable, enquanto as sees main, non-free e contrib so processadas separadamente e finalizando com o caminho binary-[arquitetura], onde [arquitetura] pode ser i386, alpha, sparc, powerpc, arm, etc. dependendo do seu sistema. Entendendo isto, voc poder manipular o arquivo sources.list facilmente. OBS: Caso tenha mais de uma linha em seu arquivo sources.list de onde um pacote pode ser instalado, ele ser baixado da primeira encontrada no arquivo. recomendvel colocar primeiro repositrios locais ou mais perto de voc, como recomendado nesta seo. Um modelo de arquivo sources.list Voc pode copiar o modelo do sources.list abaixo para ser usado em sua distribuio Stable ou personaliza-lo modificando a distribuio utilizada e CETAM

85 servidores:

# Arquivos principais da stable deb ftp://ftp.debian.org.br/debian stable main non-free contrib

# Non-US da Stable deb contrib ftp://ftp.debian.org.br/debian-non-US stable/non-US main non-free

# Atualizaes propostas para Stable main e non-US deb ftp://ftp.debian.org.br/debian dists/proposed-updates/ deb ftp://ftp.debian.org.br/debian-non-US dists/proposed-updates/

# Atualizaes de segurana da Stable deb ftp://nonus.debian.org/debian-security stable/updates main

O apt utiliza uma lista de pacotes para verificar se os pacotes existentes no sistema precisam ou no ser atualizados. A lista mais nova de pacotes copiada atravs do comando.

apt-get update.

Este comando pode ser usado com alguma freqncia se estiver usando a distribuio stable e sempre se estiver usando a unstable (os pacotes so modificados com muita freqncia). Sempre utilize o apt-get update antes de atualizar toda a distribuio.

12.2.2. Utilizando CDs oficiais/no-oficiais/terceiros com o apt


Para usar CDs da Debian ou de programas de terceiros, use o seguinte comando com cada um dos CDs que possui:

apt-cdrom add CETAM

86 Este comando adicionar automaticamente uma linha para cada CD no arquivo /etc/apt/sources.list e atualizar a lista de pacotes em /var/state/apt/lists. Por padro, a unidade acessada atravs de /cdrom usada. Use a opo -d /dev/scd? para especificar um outra unidade de Cds. Durante a instalao de um novo programa, o apt pede que o CD correspondente seja inserido na unidade e pressionado <Enter> para continuar. O mtodo acesso do apt atravs de CDs inteligente o bastante para instalar todos os pacotes necessrios daquele CD, instalar os pacotes do prximo CD e iniciar a configurao aps instalar todos os pacotes necessrios.

12.2.2.1. Instalando novos pacotes

apt-get install [pacotes]

Para instalar novos pacotes em sua distribuio. Podem ser instalados mais de um pacote ao mesmo tempo separando os nomes por espaos. Somente preciso especificar o nome do pacote (sem a verso e reviso). Se precisar, o apt instalar automaticamente as dependncias necessrias para o funcionamento correto do pacote. Quando pacotes alm do solicitado pelo usurio so requeridos para a instalao, o apt mostrar o espao total que ser usado no disco e perguntar ao usurio se ele deseja continuar. Aps a instalao, o pacote ser automaticamente configurado pelo dpkg para ser executado corretamente em seu sistema. 12.2.2.2. Removendo pacotes instalados

apt-get remove [pacotes]

Para remover completamente um pacote do sistema. Podem ser removidos mais de um pacote ao mesmo tempo separando os nomes dos pacotes com espaos. O apt-get remove completamente o pacote mas mantm os arquivos de configurao, exceto se for adicionada a opo --purge. preciso especificar CETAM

87 somente o nome do pacote (sem a verso e reviso).

12.2.2.3. Atualizando sua distribuio

O apt tem uma grande caracterstica: Atualizar toda a sua distribuio de uma forma inteligente e segura. O apt l a listagem de pacotes disponveis no servidor remoto, verifica quais esto instalados e suas verses, caso a verso do pacote seja mais nova que a j instalada em seu sistema, o pacote ser imediatamente atualizado. A cpia dos arquivos pelo apt pode ser feita via FTP, HTTP ou atravs de uma cpia local dos arquivos no disco rgido (um mirror local). Em nenhuma circunstncia os pacotes existentes em seu sistema sero removidos ou sua configurao apagada durante um upgrade na distribuio. Os arquivos de configurao em /etc que foram modificados so identificados e podem ser mantidos ou substitudos por verses existentes nos pacotes que esto sendo instalado, esta escolha feita por voc. Se estiver atualizando a Debian Potato (2.2) para Woody (3.0) (ou verso superior), execute os seguintes comandos antes de iniciar a atualizao:

export LANG=C export LC_ALL=C export LC_MESSAGES=C

Para retornar as variveis de localizao ao valor padro (ingls). Isto necessrio por causa de modificaes no sistema de locales, e os excessos de mensagens de erro do perl causaram alguns problemas em meus testes. Aps isto, a atualizao da distribuio Debian pode ser feita atravs de dois simples comandos:

apt-get update apt-get -f dist-upgrade

#Para atualizar a lista de pacotes (obrigatrio) #Para atualizar a distribuio

A opo -f faz com que o apt verifique e corrija automaticamente problemas CETAM

88 de dependncias entre pacotes. Recomendo executa o comando apt-get -f --dry-run dist-upgrade | less para ver o que vai acontecer sem atualizar a distribuio, se tudo ocorrer bem, retire o --dry-run e v em frente.

12.2.2.4 A escolha da distribuio a ser usada

Para a mesma verso que utiliza - Para quem deseja manter os pacotes sempre atualizados entre revises, copiar pacotes que contm correes para falhas de segurana (veja a pgina web em http://www.br.debian.org para acompanhar o boletim de segurana). Para uma distribuio stable - Mesmo que o acima, mas quando uma nova distribuio for lanada, o link simblico de stable ser apontado para prxima distribuio, atualizando instantaneamente seu sistema. Para a distribuio testing - Atualiza para a futura distribuio Debian que ser lanada, como a unstable, mas seus pacotes passam por um perodo de testes de duas semanas na unstable antes de serem copiados para esta. unstable - Verso em desenvolvimento, recomendada somente para desenvolvedores ou usurios que conhecem a fundo o sistema GNU/Linux e saibam resolver eventuais problemas que apaream. A unstable uma distribuio em constante desenvolvimento e pode haver pacotes problemticos ou com falhas de segurana. Aps o perodo de desenvolvimento, a distribuio unstable se tornar frozen. frozen - Verso congelada, nenhum pacote novo aceito e somente so feitas correes de falhas. Aps todas as falhas estarem corrigidas, a distribuio frozen se tornar stable. A distribuio que ser usada na atualizao pode ser especificada no arquivo /etc/apt/sources.list (veja a seo correspondente acima). Caso o mtodo de atualizao usado seja via HTTP ou FTP, ser necessrio usar o comando apt-get clean para remover os pacotes copiados para seu sistema.

CETAM

89 12.2.2.5. Removendo pacotes baixados pelo apt

apt-get clean

Para apagar qualquer arquivo baixado durante uma atualizao ou instalao de arquivos com o apt. Os arquivos e baixados residem em

/var/cache/apt/archives

(download

completo)

/var/cache/apt/archives/partial

(arquivos sendo baixados - parciais). Este local de armazenamento especialmente usado com o mtodo http e ftp para armazenamento de arquivos durante o download para instalao (todos os arquivos so primeiro copiados para serem instalados e configurados). O apt-get clean automaticamente executado caso seja usado o mtodo de acesso apt do dselect.

12.2.2.6. Verificando pacotes corrompidos

apt-get check

Para verificar arquivos corrompidos. A correo feita automaticamente. A lista de pacotes tambm atualizada quando utiliza este comando.

12.2.2.7. Corrigindo problemas de dependncias e outros erros

apt-get -f install

Para que o apt-get verifique e corrija problemas com dependncias de pacotes e outros problemas conhecidos.

12.3. PROCURANDO UM PACOTE QUE CONTM DETERMINADO ARQUIVO

Suponha que algum programa esteja lhe pedindo o arquivo perlcc e voc no tem a mnima idia de que pacote instalar no seu sistema. O utilitrio auto-apt pode resolver esta situao. Primeiro instale o pacote auto-apt e execute o comando CETAM

90 auto-apt update para que ele copie o arquivo Contents-i386.gz que ser usado na busca desses dados.

Agora, basta executar o comando:

auto-apt search perlcc

Para que ele retorne o resultado:

usr/bin/perlcc interpreters/perl

O pacote que contm este arquivo o perl e se encontra na seo interpreters dos arquivos da Debian. Para uma pesquisa que mostra mais resultados (como auto-apt search a2ps), interessante usar o grep para filtrar a sada:

auto-apt search a2ps | grep bin/

usr/bin/psmandup usr/bin/pdiff text/a2ps

text/a2ps

usr/bin/psset text/a2ps usr/bin/composeglyphs text/a2ps usr/bin/a2psj text/a2ps-perl-ja usr/bin/a2ps text/a2ps

usr/bin/fixps text/a2ps usr/bin/ogonkify text/a2ps

usr/bin/fixnt text/a2ps usr/bin/card text/a2ps

usr/bin/texi2dvi4a2ps text/a2ps

Sero mostrados somente os binrios diretrios de documentao, manpages, etc. no sero mostradas.

CETAM

91 12.4. COMPILAO DO CDIGO FONTE PARA A DEBIAN

O Debian como qualquer distribuio de Linux, possui o diretrio /usr/local que segundo a FHS o local apropriado para colocao de programas que no fazem parte da distribuio, que seria no caso o de fontes compiladas manualmente. Um dos grandes trabalhos de quem pega o cdigo fonte para compilao a instalao de bibliotecas de desenvolvimento para a compilao ocorrer com sucesso. O auto-apt facilita magicamente o processo de compilao da seguinte forma: durante o passo ./configure no momento que pedida uma bibliotecas, dependncia, etc. o auto-apt para o processo, busca por pacotes no repositrio da Debian, pergunta qual pacote ser instalado (caso tenha mais de uma opo), instala e retorna o ./configure do ponto onde havia parado. Para fazer isso, execute o comando:

auto-apt run ./configure

E ele se encarregar do resto.

CETAM

92 13. EDITOR DE TEXTO

13.1. VI O vi o editor de texto padro dos sistemas UNIX, os administradores disponibilizam habitualmente de outros editores tais como nano, mcedit, etc..., mais quem sabe trabalhar com o vi pode editar texto em qualquer sistema UNIX, ou qualquer distribuio GNU/Linux. Segue-se uma explicao sumria das

capacidades mais elementares do vi que sero, alis, as estritamente necessrias para a edio de pequenos arquivos de texto. O vi possui dois principais modos de operao:

Insero Comando

Tal como sugerido o modo de insero permite a insero de texto. O modo de comando permite a navegao e edio do texto: saltar para linhas, mover o cursor ao longo do texto, eliminar caracteres ou linhas, substituio, etc.. e o modo de linha para salvar alteraes ou sair do vi.

Abrindo um arquivo com o vi

[root@lab08~] # vi arquivo

Se nenhum arquivo for informado, o vi abre com um buffer vazio. Caso o arquivo especificado no exista, o mesmo ser criado automaticamente.

13.2. MODO DE COMANDO Esc - inicia o modo de comando; Quando o vi iniciado, ele geralmente est em modo de comando. A partir dele ser possvel:

Entrar no modo de Insero; Emitir comandos de edio; CETAM

93

Mover o cursor para uma posio diferente do arquivo; Entrar no modo de Linha.

13.3. MODO DE INSERO

i - Inicia o modo de insero;

Para entrar no modo de insero digite i ou a, o vi mostra um aviso de troca de modos no canto inferior esquerdo. Agora voc pode digitar o texto de maneira normal. Quando tiver terminado retorne para o modo de comando apertando a tecla Esc.

13.3.1. Comandos de edio

Tecla a A o O

Funo Acrescenta depois do cursor Acrescenta ao fim da linha Insere uma linha acima do curso Insere uma linha abaixo do cursor

13.3.2. Copiar, colar e excluir

Tecla y yG p x dd dG

Funo Copia a linha atual para o buffer Copia da linha atual ate o fim do arquivo Insere o ltimo texto copiado depois do cursor. Excluir a posicao atual do cursor Exclui a linha atual Exclui da linha atual ate o fim do arquivo CETAM

94

13.3.3. Movimentao por caractere

Tecla h l barra de espao j k

Funo Esquerda direita direita Pra baixo Pra cima

OBSERVAO: Voc pode tambm utilizar as teclas de navegao.

13.3.4. Salvar e sair


Tecla :x :wq :w :q :q! Funo Salvar o arquivo e fecha o vi Salvar o arquivo e fecha o vi Salvar o arquivo Fecha o arquivo Fecha o arquivo (descartando a edio)

CETAM

95 14. PROCESSO DE INICIALIZAO

14.1 ETAPAS DO BOOT

Power

Bios

MBR

Kernel

Init

Sistema Ok!

Todos os sistemas operacionais comeam o processo de inicializao executando o cdigo existente na BIOS (Basic Input/Output System), que deve ser configurada para procurar por dispositivos de boot, que podem ser unidades de disquetes, cdroms, disco rgido ou placa de redes. Quando o dispositivo de boot um disco rgido, a BIOS busca pelo MBR (Master Boot Record), neste reside um programa loader cujo a tarefa carregar o sistema operacional propriamente dito. O processo de inicializao do GNU/Linux comea com o kernel carregando a si prprio para a memria. Isso coloca no lugar toda a manipulao de memria, drives de arquivo e dispositivo e tudo aquilo que for necessrio para a operao bsica do sistema. Elas so inicializadas pelo processo init.

CETAM

96 14.2. O PROCESSO INIT Depois que o kernel do Linux termina de ser carregado na memria, ele chama o processo init. O processo init o primeiro processo a existir no sistema, ou seja, o pai de todos os outros processos. Como o nome sugere este processo inicializa o sistema, ativando vrios daemons, processos e programas que voc necessita para usar o sistema. O arquivo de configurao /etc/inittab especifica para o init que o primeiro script a ser executado deve ser o /etc/init.d/rcS. O processo init tambm chamado quando o sistema encerrado ou reinicializado. O arquivo /etc/inittab define no s o nivel de execuo padro, mas tambm o que ser executado em cada nvel de execuo e pode definir nveis de execues adicionais. As configuraes so da seguinte forma: identificao:nveis de execuo:ao:processo

identificao uma sequncia nica de 1 a 4 caracteres, que so encarregados de identificar entradas no inittab. nveis de execuo so todos os nveis de execuo onde aquela opo ser carregada. ao a descrio do evento que dever ser realizado nos nveis de execuo citados. processo especifica o processo a ser executado.

14.3. NVEIS DE EXECUO

Depois de completar o processo de inicializao, o init executa todos os scripts de inicializao em um diretrio especificado pelo nvel de execuo padro. Como a maioria dos Unixes compatveis com System V, o GNU/Linux possui sete nveis de execuo:

0 halt (parar o sistema) 1 single-user (modo mono usurio) CETAM

97

2-5 multi-user ( vrios modos multiusurios) 6 reboot (reinicia o sistema)

O nvel de execuo atual do sistema pode ser visualizado atravs do comando runlevel e modificado atravs dos programas init ou telinit. Quando executado, o runlevel l o arquivo /var/run/utmp e adicionalmente lista o nvel de execuo anterior ou a letra N em seu lugar (caso ainda no tenha ocorrido a mudana do nvel de execuo do sistema). Sistemas Debian vem com o valor id=2, o que inidica que o nvel de execuo padro ser dois quando o estado multiusurio for iniciado. No Debian, os diretrios /etc/rc0.d /etc/rc6.d contm os links simblicos para arquivos em /etc/init.d que so acionados pelo nvel de execuo correspondente. Por exemplo, o arquivo S10sysklogd em /etc/rc2.d, um link simblico para /etc/init.d/sysklogd. O que aconteceria se voc removesse o arquivo /etc/rc2.d/S10sysklogd? Simplesmente o daemon sysklogd deixaria de ser executado no nvel de execuo dois do sistema. O Debian segue o seguinte padro para definir se um link simblico em /etc/rc[0-6].d iniciar ou interromper a execuo de um servio em /etc/init.d, que o seguinte: Se um link iniciado com a letra K (kill), quer dizer que o servio ser interrompido naquele nvel de execuo. Se um link iniciado com a letra S (start), quer dizer que o servio ser iniciado naquele nvel de execuo. Primeiro os links com a letra K so executado e depois os S. A ordem que os links so executados depende do valor numrico que acompanha o link, por exemplo, os seguintes arquivos so executados em seqncia:

S10sysklogd S12kerneld S20inetd S20linuxlogo S20logoutd S20lprng CETAM

98 S89cron S99xdm

Note que os arquivos que iniciam com o mesmo nmero (S20*) so executados alfabeticamente.

14.4. ARQUIVOS DE INICIALIZAO

Os arquivos de inicializao da distribuio Debian esto localizados no diretrio /etc/init.d. Cada daemon (servio) ou configurao especfica possui um arquivo de onde pode ser ativado/desativado. Os sistemas residentes neste diretrio no so ativados diretamente, mas sim atravs de links existentes nos diretrios /etc/rc?.d onde cada diretrio consiste em um nvel de execuo do sistema. Por padro, voc pode usar as seguintes palavras chaves com os arquivos de configurao:

start - Inicia o daemon ou executa a configurao stop - Interrompe a execuo de um daemon ou desfaz a configurao

feita anteriormente (se possvel).

restart - Reinicia a execuo de um daemon. equivalente ao uso de

stop e start, mas se aplicam somente a alguns daemons e configuraes, que permitem a interrupo de execuo e reinicio.

Por exemplo, para reconfigurar as interfaces de rede do computador, podem utilizar os seguintes comandos:

cd /etc/init.d ./networking restart

14.5. PERSONALIZANDO O PROCESSO DE INICIALIZAO

Para voc definir no Debian que servios iro iniciar ou quais servios iro parar ou no ser iniciados em um determinado nvel de execuo, so renomear o link com S para iniciar e K para parar ou no iniciar. CETAM

99 Exemplo: /etc/rc2.d/S20exim4 est definido para iniciar, mas eu no quero, ento devo renomear este link usando o comando mv da seguinte forma.

mv S20exim4 K20exim4

Na prxima inicializao da mquina este servio no ser mais iniciado

14.6. GERENCIANDO SCRIPTS DE INICIALIZAO O update-rc.d uma ferramenta de gerenciamento de scripts de inicializao. Para remover todos os links de um script, por exemplo faz-se:

# update-rc.d -f remove nome

Onde nome o nome do script em /etc/init.d. Isso necessrio para se criar uma configurao diferente da que foi feita anteriormente. Se voc quer reconfigurar um script de inicializao ou acaba de incluir um script seu em /etc/init.d e quer inici-lo, basta usar:

# update-rc.d nome start NN runlevel . (...)

Por exemplo: vamos imaginar que acaba de ser colocado o script maintaince.sh no /etc/init.d. Voc quer que ele seja iniciado (argumento start passado) no runlevel de boot padro (2) e fechado (argumento stop) quando se desliga ou reinicia (runlevels 0 e 6) e quer que ele seja um dos ltimos a ser iniciado/parado. Faz-se ento:

# update-rc.d maintaince.sh start 97 2 . stop 97 0 . stop 97 6 .

CETAM

100 Como se pode ver, as configuraes so separadas por um ponto (.) e h um tambm no final da linha de comando. Para somente testar o que ser feito adicione um -n depois do nome do comando. Para facilitar as coisas, pode-se usar o update-rc.d com as configuraes padro. Ou seja: iniciar nos runlevels 2, 3, 4 e 5 e finalizar nos 0, 1 e 6. Basta usar:

# update-rc.d nome defaults

O update-rc.d assume a ordem de execuo como 20, isso pode ser trocado passando o nmero logo aps a palavra defaults. Para usar ordem de execuo diferente para iniciar e desligar basta passar dois nmeros aps a palavra defaults o primeiro ser a ordem de incio e o segundo de finalizao do script.

CETAM

101 15. GERENCIADORES DE PARTIDA

Gerenciadores de Partida so programas que carregam um sistema operacional e/ou permite escolher qual ser iniciado. Normalmente este programas so gravados no setor de boot (inicializao) da partio ativa ou no master boot record (MBR) do disco rgido.

15.1. LILO

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

15.1.1. Criando o arquivo de configurao do LILO


Os dados para a criao do novo setor de boot que armazenar o gerenciador de partida so lidos do arquivo /etc/lilo.conf. Este arquivo pode ser criado em qualquer editor de textos (como o vi). Normalmente ele criado durante a instalao de sua distribuio GNU/Linux, mas por algum motivo pode ser preciso modific-lo ou personaliza-lo (para incluir novos sistemas operacionais, mensagens, alterar o tempo de espera para a partida automtica, etc.). O arquivo /etc/lilo.conf dividido em duas sees: Geral e Imagens. A seo Geral vem no inicio do arquivo e contm opes que sero usadas na inicializao do Lilo e parmetros que sero passados ao kernel. A seo Imagens contm opes especificas identificando qual a partio que contm o sistema operacional, como ser montado inicialmente o sistema de arquivos, tabela de partio, o arquivo que ser carregado na memria para inicializar o sistema, etc.

CETAM

102 Abaixo um modelo do arquivo /etc/lilo.conf para sistemas que s possuem o GNU/Linux instalado:

boot=/dev/hda1 compact install=/boot/boot.b map=/boot/map vga=normal delay=20 lba32 image=/vmlinuz root=/dev/hda1 label=Linux read-only

Para criar um novo gerenciador de partida atravs do arquivo /etc/lilo.conf, execute o comando lilo. No exemplo acima, o gerenciador de partida ser instalado em /dev/hda1, utilizar um setor de boot compacto (compact), modo de vdeo VGA normal (80x25), esperar 2 segundos antes de processar automaticamente a primeira seo image e carregar o kernel /vmlinux de /dev/hda1. Para mostrar o aviso de boot:, voc dever ligar as teclas Caps Lock ou Scroll Lock na partida ou pressionar a tecla Shift durante os dois segundos de pausa. Outro mtodo incluir a opo prompt na seo global para que o aviso de boot: seja mostrado automaticamente aps carregar o Lilo. Abaixo uma configurao para computadores com mais de um sistema operacional (Usando GNU/Linux e DOS):

boot=/dev/hda1 compact lba32 install=/boot/boot.b map=/boot/map CETAM

103 vga=normal delay=20 prompt

image=/vmlinuz root=/dev/hda1 label=linux read-only

other=/dev/hda2 table=/dev/hda label=dos

O exemplo acima idntico ao anterior, o que foi acrescentado foi a opo prompt na seo geral (para que seja mostrado imediatamente o aviso de boot: no momento em que o LILO for carregado), e includa uma imagem de disco DOS localizado em /dev/hda2. No momento da inicializao mostrada a mensagem boot: e caso seja digitado DOS e pressionado ENTER, o sistema iniciar o DOS. Caso a tecla Enter seja pressionada sem especificar a imagem, a primeira ser carregada (neste caso o GNU/Linux). Voc pode substituir a palavra GNU/Linux da opo label por o nmero 1 e DOS por 2, desta forma o nmero pode ser digitado para iniciar o sistema operacional. Isto muito til para construir um menu usando a opo message. A seo Geral vem do inicio do arquivo at a palavra delay=20. A partir do primeiro aparecimento da palavra image, other ou range, tudo o que vier abaixo ser interpretado como imagens de inicializao. Por padro, a imagem carregada a especificada por default ou a primeira que aparece no arquivo (caso default no seja especificado). Para carregar o outro sistema (o DOS), digite o nome da imagem de disco no aviso de boot: (especificada em label) que ser carregada. Voc tambm pode passar parmetros manualmente ao kernel digitando o nome da imagem de disco e uma opo do kernel ou atravs do arquivo /etc/lilo.conf.

CETAM

104

15.1.2. O LILO pode inicializar os seguintes tipos de imagens:


Imagens do kernel de um arquivo. Normalmente usado para iniciar o GNU/Linux pelo disco rgido e especificado pelo parmetro image. Imagens do kernel de um dispositivo de bloco (como um disquete). Neste caso o nmero de setores a serem lidos devem ser especificados na forma PRIMEIRO-LTIMO ou PRIMEIRO+NMERO de setores a serem lidos. necessrio especificar o parmetro image e range, por exemplo:

image=/dev/fd0 range=1+512

Todas as opes do kernel podem ser usadas na inicializao por dispositivo. O setor de boot de outro sistema operacional (como o DOS, OS/2, etc). O setor de partida armazenado junto com a tabela de partio no arquivo /boot/map. necessrio especificar o parmetro OTHER=dispositivo ou OTHER=arquivo e a inicializao atravs de um setor de partida possui algumas opes especiais como o TABLE (para especificar a tabela de partio) e o MAP-DRIVE (identificao da unidade de discos pelo sistema operacional). Veja o exemplo desta configurao abaixo:

other=/dev/hda2 table=/dev/hda label=DOS map-drive=0x80 to = 0x81 map-drive=0x81 to = 0x80

Observaes:

Caso o gerenciador de partida seja instalado no MBR do disco rgido (boot=/dev/hda), o setor de boot do antigo sistema operacional ser CETAM

105 substitudo, retire uma cpia do setor de boot para um disquete usando o comando dd if=/dev/hda of=/floppy/mbr bs=512 count=1 no GNU/Linux para salvar o setor de boot em um disquete e dd if=/floppy/mbr of=/dev/hda bs=446 count=1 para restaura-lo. No DOS voc pode usar o comando fdisk /mbr para criar um novo Master Boot Record.

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

A limitao de 1024 cilindros do Lilo no existe mais a partir da verso 21.4.3 (recomendada, por conter muitas correes) e superiores.

A reinstalao, formatao de sistemas DOS e Windows pode substituir o setor de partida do HD e assim o gerenciador de partida, tornando impossvel a inicializao do GNU/Linux. Antes de reinstalar o DOS ou Windows, verifique se possui um disquete de partida do GNU/Linux.

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

15.1.3. Opes usadas no LILO


As opes esto divididas em duas partes: As usadas na seo Global e as da seo Imagens do arquivo lilo.conf.

Global

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

boot=dispositivo - Define o nome do dispositivo onde ser gravado o setor de partida do LILO (normalmente usada a partio ativa ou o CETAM

106 Master Boot Record - MBR). Caso no seja especificado, o dispositivo montado como a partio raiz ser usado.

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

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

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

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

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

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

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

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

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

107 verbose=[num] - Ativa mensagens sobre o processamento do LILO. Os nmeros podem ser especificados de 1 a 5, quanto maior o nmero, maior a quantidade de detalhes mostrados.

timeout=[num] - Ajusta o tempo mximo de espera (em dcimos de segundos) de digitao no teclado. Se nenhuma tecla pressionada no tempo especificado, a primeira imagem automaticamente carregada. Igualmente a digitao de senha interrompida se o usurio estiver inativo por este perodo.

Adicionalmente as opes de imagem do kernel append, ramdisk, read-only, read-write, root e vga podem ser especificadas na seo global. Opes por Imagem As opes por imagem iniciam com uma das seguintes opes: image, other ou range. Opes usadas por cada imagem:

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

especificadas por other=.

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

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

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

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

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

restricted - A senha somente pedida para iniciar a imagem se o sistema for iniciado no modo single.

CETAM

108

15.1.4. Um exemplo do arquivo de configurao lilo.conf


Abaixo um exemplo do arquivo /etc/lilo.conf que poder ser usado em instalaes GNU/Linux com o DOS.

boot=/dev/hda1 compact install=/boot/boot.b map=/boot/map

#Instala o LILO em /dev/hda1

message=/etc/lilo.message #mensagem que ser mostrada na tela default=1 vga=normal delay=20 lba32 prompt #Carrega a Imagem especificada por label=1 como padro #usa o modo de video 80x25 ao iniciar o Linux #aguarda 2 segundos antes de iniciar a imagem padro #permite quebrar o limite de 1024 cilindros na inicializao #mostra o aviso de "boot:" logo que o LILO carregado

image=/vmlinuz

#especifica o arquivo que contm a primeira imagem

root=/dev/hda1 #partio onde a imagem acima esta localizada label=1 read-only #identificao da imagem de disco #monta inicialmente como somente leitura

password=12345 #Usa a senha 12345 restricted #somente quando iniciar com o parmetro single

other=/dev/hda2 table=/dev/hda label=2

#especifica outro sistema que ser carregado #a tabela de partio dele est em /dev/hda

#identificao desta imagem de disco #pede a senha antes de iniciar este sistema

password=12345

Voc pode usar o exemplo acima como base para construir sua prpria configurao personalizada do /etc/lilo.conf mas no se esquea de modificar as

CETAM

109 tabelas de parties para seu sistema. Se voc usa o Windows NT 4.0, Windows NT 5.0 (Windows 2000) ou o OS/2, recomendo ler o DOS+Windows+OS/2-HOWTO. Aps criar seu arquivo /etc/lilo.conf , execute o comando lilo e se tudo ocorrer bem, o LILO ser instalado.

15.2. GRUB

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

15.2.1. Como o GRUB trabalha com discos e parties


O GRUB trabalha com uma notao diferente para apontar discos e parties sendo necessrio algumas explicaes antes de prosseguir. Veja a tabela comparativa:

CETAM

110 No Linux /dev/hda /dev/hda1 /dev/hda2 No GRUB (hd0) (hd0,0) (hd0,1)

/dev/hdb /dev/hdb1 /dev/hdb2

(hd1) (hd1,0) (hd1,1)

/dev/sda /dev/sda1 /dev/sda2

(hd0) # Disco SCSI ID 0 (hd0,0) # Disco SCSI ID 0, partio 1 (hd0,1) # Disco SCSI ID 0, partio 2

/dev/sdb /dev/sdb1 /dev/sdb2

(hd1) # Disco SCSI ID 1 (hd1,0) # Disco SCSI ID 1, partio 1 (hd1,1) # Disco SCSI ID 1, partio 2

/dev/fd0

(fd0)

OBS: Os discos IDE e SCSI so referenciados ambos como (hd?) pelo GRUB. No h distino entre os discos e de modo geral a identificao de unidades IDE menor do que qualquer tipo de drive SCSI, salvo se voc alterar a seqncia de inicializao (boot) na BIOS.

15.2.2. Instalando o GRUB


A instalao do GRUB ao contrrio da instalao do LILO, s precisa ser executada uma nica vez. Caso seja necessria alguma mudana como, por exemplo, adicionar uma nova imagem, esta pode ser feita apenas editando o arquivo de configurao menu.lst. Um mtodo simples de adicionar o GRUB para gerenciar seu MBR (Master Boot Record) rodando o seguinte comando (como superusurio):

CETAM

111 # /sbin/grub-install /dev/hda

Este comando grava o GRUB no MBR do primeiro disco e cria o diretrio /boot/grub onde estaro os arquivos necessrios para o seu funcionamento. Neste ponto o GRUB j est instalado e quando voc reiniciar seu computador ir se deparar com uma linha de comandos, onde ter que carregar a imagem do kernel manualmente. Mais adiante ser explorada a utilizao desta linha de comando que muito eficiente. Provavelmente voc achar mais interessante copiar o arquivo de configurao de exemplos do GRUB e otimiz-lo s suas necessidades. Note que isto no exclui a possibilidade de utilizar a linha de comando, apenas cria uma interface de menus onde voc pode configurar vrias opes de boot de uma forma organizada, automatizada e funcional. Copie este arquivo para o diretrio /boot/grub com o seguinte comando:

# cp /usr/share/doc/grub/examples/menu.lst /boot/grub

Por ser um arquivo de exemplos ser necessrio aperfeioar-lo de acordo com suas necessidades.

15.2.3. Opes do arquivo de configurao


Este arquivo dividido em parmetros Globais, que afetam o arquivo todo e parmetros que s tem efeito para as imagens do sistema que ser carregado. Algumas opes podem ser passadas para o kernel do Linux no momento do boot, algumas delas tambm sero detalhadas. Parmetros Globais

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

default

Define

qual

ser a

opo padro

que deve ser

automaticamente selecionada quando nenhuma outra for especificada CETAM

112 em um tempo definido por timeout.

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

color = Permite que voc escolha as cores usadas no menu de boot. password = Permite que voc especifique uma senha. Est ser solicitada sempre que houver necessidade de realizar uma funo que no seja carregar as imagens disponveis, como por exemplo acessar a linha de comandos do GRUB. Voc pode utilizar tambm o parmetro password para esconder um arquivo que contenha outras

configuraes, como um menu.lst secreto. O arquivo pode ter um nome qualquer.

Ex.: password = senha (hd0,0)/boot/grub/secret.conf

Voc pode ter vrias entradas do parmetro "password" em um mesmo arquivo sendo que uma delas usada para bloquear o acesso as imagens/linha de comandos e as outras usadas para carregar arquivos de opes do GRUB. Quando voc digitar p para entrar com a senha, voc pode digitar a senha que protege as imagens/linha de comandos ou a que utilizada para carregar os arquivos de opes.

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

Parmetros que afetam apenas as imagens title = Define um texto que ser apresentado no menu de boot para identificar o sistema a ser inicializado.

root = Determina qual a partio raiz do sistema a ser inicializada. rootnoverify = Idntica a opo root, mas no tenta montar a partioalvo, o que necessrio para alguns sistemas como Dos e Windows.

kernel = Nesta opo voc informa qual o kernel vai ser inicializado. CETAM

113 Voc pode passar parmetros diretamente para o kernel tambm.

Ex.: kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6

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

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

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

makeactive = Torna a partio ativa. Este comando est limitado a parties primrias dos discos.

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

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

CETAM

114 title Windows hide (hd0,1) unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive

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

map = Alguns sistemas no permitem ser inicializados quando no esto no primeiro disco (Dos, Win 9x, etc.). Para resolver esta e outras situaes o GRUB tem um comando que permite enganar tal sistema mapeando as unidades de disco do modo como lhe for mais conveniente.

Imagine que voc tenha o primeiro disco (hd0) com o GNU/Linux instalado e em um outro disco (hd1) com o Windows/Dos instalado. O Windows/Dos no permitem serem inicializados desta forma e como soluo voc poderia usar a seguinte entrada no arquivo de configuraes do GRUB:

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

CETAM

115 Isso faz com que o disco (hd1), onde esta o Windows/Dos, seja apresentado a este sistema como (hd0) "enganado" o mesmo e possibilitando o boot.

15.2.4. Parmetros enviados diretamente ao kernel


Pode ser necessrio passar alguns parmetros para o kernel no momento do boot, voc pode passar os parmetros da seguinte maneira:

# Exemplo de entrada no 'menu.lst'. title Linux 2.4.16 root (hd0,0) kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6 mem=512M ramdisk=0

Neste exemplo, a linha com o comando "kernel" usada para indicar qual imagem deve ser carregada. As opes que seguem (vga, mem e ramdisk) so parmetros que devem ser passados diretamente ao kernel do sistema a ser carregado.

Um exemplo de arquivo de configurao

# Exemplo de arquivo de configurao do GRUB. # Note que voc pode usar o caracter '#' para fazer comentrios.

# Se aps 30 segundos nenhuma tecla for pressionada, carrega a imagem padro. timeout 30

# Define a primeira imagem como padro. default 0

# Caso a imagem padro no funcione carrega a imagem definida aqui. fallback 1

CETAM

116 # Define as cores que sero usadas no menu. color light-cyan/black white/blue

# Permite utilizar uma senha. password minha-senha-secreta password minha-senha (hd0,0)/boot/grub/secret.conf

# Para boot com o GNU/Hurd title GNU/Hurd root (hd0,0) kernel /boot/gnumach.gz root=hd0s1 module /boot/serverboot.gz

# Para boot com o GNU/Linux title Linux 2.4.16 # Pede a senha configurada em "password" antes de carregar esta imagem. lock root (hd0,0) # Atente as opes passadas diretamente para o kernel (vga, mem, etc.). kernel (hd0,0)/boot/vmlinuz-2.4.16 vga=6 mem=512M ramdisk=0

# Para boot com o Mach (obtendo o kernel de um disquete) title Utah Mach4 multiboot root (hd0,2) pause Insira o disquete agora!!! kernel (fd0)/boot/kernel root=hd0s3 module (fd0)/boot/bootstrap

# Para boot com FreeBSD title FreeBSD 3.4 root (hd0,2,a) kernel /boot/loader CETAM

117 # Para boot com OS/2 title OS/2 root (hd0,1) makeactive chainloader +1 chainloader /boot/chain.os2

# Para boot com Windows 9x, ME, NT, 2000, XP. title Windows 9x, ME, NT, 2000, XP unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive

CETAM

118 16. GERENCIAMENTO DE PROCESSOS

16.1. EXECUTANDO UM COMANDO/PROGRAMA

Para executar um comando, necessrio que ele tenha permisses de execuo e que esteja no caminho de procura de arquivos. No aviso de comando #(root) ou $(usurio), digite o nome do comando e tecle Enter. O programa/comando executado e receber um nmero de identificao (chamado de PID - Process Identification), este nmero til para identificar o processo no sistema e assim ter um controle sobre sua execuo. Todo o programa recebe uma identificao de usurio (UID) quando executado o que determina quais sero suas permisses de acesso durante sua execuo. O programa normalmente usa o UID do usurio que o executou ou o usurio configurado pelo bit de permisso de acesso SUID caso estiver definido. Existem tambm programas que so executados como root e modificam sua identificao de usurio para algum que tenha menos privilgios no sistema (como o Apache, por exemplo).

Exemplos de comandos: ls, df, pwd.

path - Path o caminho de procura dos arquivos/comandos executveis. O path (caminho) armazenado na varivel de ambiente PATH. Voc pode ver o contedo desta varivel com o comando echo $PATH. Por exemplo, o caminho /usr/local/bin:/usr/bin:/bin:/usr/bin/X11 significa que se voc digitar o comando ls, o interpretador de comandos iniciar a procura do programa ls no diretrio /usr/local/bin, caso no encontre o arquivo no diretrio /usr/local/bin ele inicia a procura em /usr/bin, at que encontre o arquivo procurado. Caso o interpretador de comandos chegue at o ltimo diretrio do path e no encontre o arquivo/comando digitado, mostrada a seguinte mensagem:

bash: ls: command not found (comando no encontrado).

CETAM

119 O caminho de diretrios vem configurado na instalao do Linux, mas pode ser alterado no arquivo /etc/profile. Caso deseje alterar o caminho para todos os usurios, este arquivo o melhor lugar, pois ele lido por todos os usurios no momento do login. Caso um arquivo/comando no esteja localizado em nenhum dos diretrios do path, voc deve execut-lo usando um ./ na frente do comando. Se deseja alterar o path para um nico usurio, modifique o arquivo .bash_profile em seu diretrio de usurio (home).

16.1.1. Tipos de Execuo de comandos/programas


Um programa pode ser executado de duas formas:

Primeiro Plano - Tambm chamado de foreground. Quando voc

deve esperar o trmino da execuo de um programa para executar um novo comando. Somente mostrado o aviso de comando aps o trmino de execuo do comando/programa.

Segundo Plano - Tambm chamado de background. Quando

voc no precisa esperar o trmino da execuo de um programa para executar um novo comando. Aps iniciar um programa em background, mostrado um nmero PID (identificao do Processo) e o aviso de comando novamente mostrado, permitindo o uso normal do sistema.

O programa executado em background continua sendo executado internamente. Aps ser concludo, o sistema retorna uma mensagem de pronto acompanhado do nmero PID do processo que terminou. Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caractere "&" aps o final do comando. OBS: Mesmo que um usurio execute um programa em segundo plano e saia do sistema, o programa continuar sendo executado at que seja concludo ou finalizado pelo usurio que iniciou a execuo (ou pelo usurio root).

CETAM

120 Exemplo: find / -name boot.b &

O comando ser executado em segundo plano e deixar o sistema livre para outras tarefas. Aps o comando find terminar, ser mostrado uma mensagem.

16.2. COMANDOS DE GERENCIAMENTO DE PROCESSOS ps - Algumas vezes til ver quais processos esto sendo executados no computador. O comando ps faz isto, e tambm nos mostra qual usurio executou o programa, hora que o processo foi iniciado, etc. ps [opes] Opes: a - Mostra os processos criados por voc e de outros usurios do sistema. x - Mostra processos que no so controlados pelo terminal. u - Mostra o nome de usurio que iniciou o processo e hora em que o processo foi iniciado. m - Mostra a memria ocupada por cada processo em execuo. f - Mostra a rvore de execuo de comandos (comandos que so chamados por outros comandos). e - Mostra variveis de ambiente no momento da inicializao do processo. w - Mostra a continuao da linha atual na prxima linha ao invs de cortar o restante que no couber na tela. --sort:[coluna] - Organiza a sada do comando ps de acordo com a coluna escolhida. Voc pode usar as colunas pid, utime, ppid, rss, size, user, priority. Pode ser especificada uma listagem em ordem inversa especificando --sort:[coluna]. Para mais detalhes e outras opes, veja a pgina de manual. As opes acima podem ser combinadas para resultar em uma listagem mais completa. Voc tambm pode usar pipes "|" para filtrar a sada do comando ps. Ao contrrio de outros comandos, o comando ps no precisa do hfen "-" para especificar os comandos. Isto porque ele no utiliza opes longas e no usa parmetros.

Exemplos: ps, ps ax | grep inetd, ps auxf, ps auxw. CETAM

121 top - Mostra os programas em execuo ativos, parados, tempo usado na CPU, detalhes sobre o uso da memria RAM, Swap, disponibilidade para execuo de programas no sistema, etc. top um programa que continua em execuo mostrando continuamente os processos que esto rodando em seu computador e os recursos utilizados por eles. Para sair do top, pressione a tecla q. top [opes] Opes: -d [tempo] - Atualiza a tela aps o [tempo] (em segundos). -s - Diz ao top para ser executado em modo seguro. -i - Inicia o top ignorando o tempo de processos zumbis. -c - Mostra a linha de comando ao invs do nome do programa. A ajuda sobre o top pode ser obtida dentro do programa pressionando a tecla h ou pela pgina de manual (man top). Algumas teclas teis: Espao - Atualiza imediatamente a tela. CTRL+L - Apaga e atualiza a tela. h - Mostra a tela de ajuda do programa. mostrado todas as teclas que podem ser usadas com o top. i - Ignora o tempo ocioso de processos zumbis. q - Sai do programa. k - Finaliza um processo - semelhante ao comando kill. Voc ser perguntado pelo nmero de identificao do processo (PID). Este comando no estar disponvel caso esteja usando o top com a opo -s. n - Muda o nmero de linhas mostradas na tela. Se 0 for especificado, ser usada toda a tela para listagem de processos.

CETAM

122 16.3 CONTROLE DE EXECUO DE PROCESSOS

16.3.1. Interrompendo a execuo de um processo


Para cancelar a execuo de algum processo rodando em primeiro plano, basta pressionar as teclas CTRL+C. A execuo do programa ser cancelada e ser mostrado o aviso de comando.

16.3.2. Parando momentaneamente a execuo de um processo


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

16.3.3. Comandos para manipulao de processos


jobs - Mostra os processos que esto parados ou rodando em segundo plano. Processos em segundo plano so iniciados usando o smbolo "&" no final da linha de comando ou atravs do comando bg. O nmero de identificao de cada processo parado ou em segundo plano (job), usado com os comandos fg e bg. Um processo interrompido pode ser finalizado usando-se o comando kill %[num], onde [num] o nmero do processo obtido pelo comando jobs.

fg - Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Voc deve usar o comando jobs para pegar o nmero do processo rodando em segundo plano ou interrompida, este nmero ser passado ao comando fg para ativa-lo em primeiro plano. fg [nmero] Onde nmero o nmero obtido atravs do comando jobs. CETAM

123 Caso seja usado sem parmetros, o fg utilizar o ltimo programa interrompido (o maior nmero obtido com o comando jobs).

Exemplo: fg 1.

bg - Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, necessrio primeiro interromper a execuo do comando com CTRL+ Z, ser mostrado o nmero da tarefa interrompida, use este nmero com o comando bg para iniciar a execuo do comando em segundo plano. bg [nmero] Onde: nmero do programa obtido com o pressionamento das teclas CTRL+Z ou atravs do comando jobs. kill - Permite enviar um sinal a um comando/programa. Caso seja usado sem parmetros, o kill enviar um sinal de trmino ao processo sendo executado. kill [opes] [sinal] [nmero] Nmero - o nmero de identificao do processo obtido com o comando ps. Tambm pode ser o nmero aps o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida. Sinal - Sinal que ser enviado ao processo. Se omitido usa -15 como padro. Opes: -9 - Envia um sinal de destruio ao processo ou programa. Ele terminado imediatamente sem chances de salvar os dados ou apagar os arquivos temporrios criados por ele. Voc precisa ser o dono do processo ou o usurio root para termina-lo ou destru-lo. Voc pode verificar se o processo foi finalizado atravs do comando ps. Os tipos de sinais aceitos pelo GNU/Linux so explicados em detalhes em Sinais do Sistema.

Exemplo: kill 500, kill -9 500, kill %1.

CETAM

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

Exemplo: nice -n -19 find / -name apropos.

renice - Altera a prioridade de processos que j esto sendo executados. renice [ajuste] [opes] [alvo] Ajuste Ajuste da prioridade do processo que pode variar entre -20 (alta prioridade) e 19 (baixa prioridade). Usurios comuns somente podem usar valores positivos. Opes: -g O reajuste de prioridade ser aplicado nos processos executados pelo grupo especificado. -p O reajuste de prioridade ser aplicado em um ID de processo. -u O reajuste de prioridade ser aplicado nos processos executados pelo usurio especificado

Exemplo: renice +1 987 renice +10 -u daemon root renice -10 -p 32

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

125 Opes: -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 - No faz quebra de linha -n - Classifica pelo nmero PID ao invs do nome. -p - Mostra o nmero PID entre parnteses aps o nome do processo. -u - Mostra tambm o dono do processo. -U - Usa o conjunto de caracteres Unicode para o desenho da rvore.

16.3.4. Sinais do Sistema


O GNU/Linux suporta os sinais listados abaixo. Alguns nmeros de sinais so dependentes de arquitetura. Primeiro, os sinais descritos no POSIX 1:

Sinal HUP

Valor 1

Ao A

Comentrio Travamento detectado no terminal de controle ou finalizao do processo controlado.

INT QUIT ILL ABRT FPE KILL

2 3 4 6 8 9

A C C C C AEF

Interrupo do processo controlado Sair atravs do teclado Instruo Ilegal Sinal de abortar enviado pela funo abort Exceo de ponto flutuante Sinal de destruio do processo

CETAM

126 Sinal SEGV PIPE Valor 11 13 Ao C A Comentrio Referncia invlida de memria Pipe Quebrado: escreveu para o pipe sem leitores ALRM 14 A Sinal do temporizador da chamada do sistema alarm TERM USR1 USR2 CHLD CONT STOP TSTP TTIN 15 30,10,16 31,12,17 20,17,18 19,18,25 17,19,23 18,20,24 21,21,26 DEF D D A A A B Sinal de trmino Sinal definido pelo usurio 1 Sinal definido pelo usurio 2 Processo filho parado ou terminado Continuar a execuo, se interrompido Interromper processo Interromper digitao no terminal Entrada do terminal para o processo em segundo plano TTOU 22,22,27 D Sada do terminal para o processo em segundo plano

As letras da coluna Ao tm o seguinte significado: A - A ao padro terminar o processo. B - A ao padro ignorar o sinal. C - A ao padro terminar o processo e mostrar o core. D - A ao padro parar o processo. E - O sinal no pode ser pego. F - O sinal no pode ser ignorado. CETAM

127 17. O KERNEL

o sistema operacional, ele que controla os dispositivos e demais perifricos do sistema (como memria, placas de som, vdeo, discos rgidos, disquetes, sistemas de arquivos, redes e outros recursos disponveis). Muitos confundem isto e chamam a distribuio de sistema operacional. Isto errado! O kernel faz o controle dos perifricos do sistema e para isto ele deve ter o seu suporte includo. Para fazer uma placa de som Sound Blaster funcionar, por exemplo, necessrio que o kernel oferea suporte a este placa e voc deve configurar seus parmetros com comandos especficos para ativar a placa e faze-la funcionar corretamente. Existe um documento que contm quais so os perifricos suportados/ no suportados pelo GNU/Linux, ele se chama Hardware-HOWTO. Suas verses so identificadas por nmeros como 2.0.36, 2.0.38, 2.1.10, 2.2.12, as verses que contm um nmero par entre o primeiro e segundo ponto so verses estveis e que contm nmeros mpares neste mesmo local so verses instveis (em desenvolvimento). Usar verses instveis no quer dizer que ocorrer travamentos ou coisas do tipo, mas algumas partes do kernel podem no estar testadas o suficiente ou alguns controladores podem ainda estar incompletos para obter pleno funcionamento. Se operar sua mquina em um ambiente crtico, prefira pegar verses estveis do kernel. Aps inicializar o sistema, o kernel e seus arquivos podem ser acessados ou modificados atravs do ponto de montagem /proc.

17.1. MDULOS

So partes do kernel que so carregadas somente quando so solicitadas por algum aplicativo ou dispositivo e descarregadas da memria quando no so mais usadas. Este recurso til por 2 motivos: Evita a construo de um kernel grande (esttico) que ocupe grande parte da memria com todos os drivers compilados e permite que partes do kernel ocupem a memria somente quando forem necessrios. Os mdulos do kernel esto localizados no diretrio

/lib/modules/verso_do_kernel/* (onde verso_do_kernel a verso atual do kernel CETAM

128 em seu sistema, caso seja 2.2.10 o diretrio que contm seus mdulos ser /lib/modules/2.2.10. Os mdulos so carregados automaticamente quando solicitados atravs do programa kmod ou manualmente atravs do arquivo /etc/modules , insmod ou modprobe. Ateno: No compile o suporte ao seu sistema de arquivos raz como mdulo, isto o tornar inacessvel. kmod Este o programa usado para carregar os mdulos

automaticamente quando so requeridos pelo sistema. Ele um daemon que funciona constantemente fazendo a monitorao, quando verifica que algum dispositivo ou programa est solicitando o suporte a algum dispositivo, ele carrega o mdulo correspondente.

lsmod - Lista quais mdulos esto carregados atualmente pelo kernel. O nome lsmod uma contrao de ls+mdulos - Listar Mdulos. A listagem feita pelo lsmod uma alternativa ao uso do comando cat /proc/modules.

A sada deste comando tem a seguinte forma: Module nls_iso8859_1 nls_cp437 ne 8390 6156 8390 Size Pages 8000 1 3744 2 2 1 1 0 [ne] Used by 1 (autoclean) 1 (autoclean)

A coluna Module indica o nome do mdulo que est carregado, a coluna Used mostra quais mdulos esto usando aquele recurso. O parmetro (autoclean) no final da coluna indica que o mdulo foi carregado manualmente (pelo insmod ou modprobe) ou atravs do kmod e ser automaticamente removido da memria quando no for mais usado. No exemplo acima os mdulos ne e 8390 no tem o parmetro (autoclean) porque foram carregados pelo arquivo /etc/modules. Isto significa que no sero removidos da memria caso estiverem sem uso.

CETAM

129 insmod - Carrega um mdulo manualmente. Para carregar mdulos que dependem de outros mdulos para que funcione, voc duas opes: Carregar os mdulos manualmente ou usar o modprobe que verifica e carrega as dependncias correspondentes. insmod [mdulo] [opes_mdulo] Onde: Mdulo - o nome do mdulo que ser carregado. Opes_mdulo - opes que sero usadas pelo mdulo. Variam de mdulo para mdulo, alguns precisam de opes outros no, tente primeiro carregar sem opes, caso seja mostrada uma mensagem de erro verifique as opes usadas por ele. Para detalhes sobre que opes so suportadas por cada mdulo, veja a sua documentao no cdigo fonte do kernel em /usr/src/linux/Documentation

Exemplo: insmod ne io=0x300 irq=10 rmmod - Remove mdulos carregados no kernel. Para ver os nomes dos mdulos atualmente carregados no kernel digite lsmod e verifique na primeira coluna o nome do mdulo. Caso um mdulo tenha dependncias e voc tentar remover suas dependncias, uma mensagem de erro ser mostrada alertando que o mdulo est em uso.

Exemplo: rmmod ne modprobe - Carrega um mdulo e suas dependncias manualmente. Este comando permite carregar diversos mdulos e dependncias de uma s vez. O comportamento do modprobe modificado pelo arquivo /etc/modules.conf . modprobe [mdulo] [opes_mdulo] Onde: Mdulo - o nome do mdulo que ser carregado. opes_mdulo - opes que sero usadas pelo mdulo. Variam de mdulo para mdulo, alguns precisam de opes outros no, tente primeiro carregar sem opes, caso seja mostrada uma mensagem de erro verifique as opes usadas por

CETAM

130 ele. Para detalhes sobre que opes so suportadas por cada mdulo, veja a sua documentao no cdigo fonte do kernel em /usr/src/linux/Documentation Nem todos os mdulos so carregados corretamente pelo modprobe, o plip, por exemplo, mostra uma mensagem sobre porta I/O invlida mas no caso seja carregado pelo insmod.

Exemplos: modprobe ne io=0x300 irq=10 modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpuio=0x330

depmod - Verifica a dependncia de mdulos. As dependncias dos mdulos so verificadas pelos scripts em /etc/init.d usando o comando depmod -a e o resultado gravado no arquivo /lib/modules/versao_do_kernel/modules.dep. Esta checagem serve para que todas as dependncias de mdulos estejam corretamente disponveis na inicializao do sistema. O comportamento do depmod pode ser modificado atravs do arquivo /etc/modules.conf . possvel criar a dependncia de mdulos imediatamente aps a compilao do kernel digitando depmod -a [verso_do_kernel].

Exemplo: depmod -a

modconf - Este programa permite um meio mais fcil de configurar a ativao de mdulos e opes atravs de uma interface atravs de menus. Selecione a categoria de mdulos atravs das setas acima e abaixo e pressione enter para selecionar os mdulos existentes. Sero pedidas as opes do mdulo (como DMA, IRQ, I/O) para que sua inicializao seja possvel, estes parmetros so especficos de cada mdulo e devem ser vistos na documentao do cdigo fonte do kernel no diretrio /usr/src/linux/Documentation. Note que tambm existem mdulos com auto-deteco mas isto deixa o sistema um pouco mais lento, porque ele far uma varredura na faixa de endereos especificados pelo mdulo para achar o dispositivo. As opes so desnecessrias em alguns tipos de mdulos. As modificaes feitas por este programa so gravadas no diretrio /etc/modutils em arquivos separados como /etc/modutils/alias - alias de mdulos, /etc/modutils/modconf - opes usadas por mdulos, /etc/modutils/paths - Caminho CETAM

131 onde os mdulos do sistema so encontrados. Dentro de /etc/modutils ainda encontrado um subdiretrio chamado arch que contm opes especficas por arquiteturas. A sincronizao dos arquivos gerados pelo modconf com o

/etc/modules.conf feita atravs do utilitrio update-modules. Ele normalmente executado aps modificaes nos mdulos feitas pelo modconf.

17.1.2. Adicionar suporte a Hardwares e outros dispositivos no kernel


Quando seu hardware no funciona, mas voc tem certeza que suportado pelo GNU/Linux, preciso seguir alguns passos para faz-lo funcionar corretamente: Verifique se o kernel atual foi compilado com suporte ao seu dispositivo. Tambm possvel que o suporte ao dispositivo esteja compilado como mdulo. D o comando dmesg para ver as mensagens do kernel durante a inicializao e verifique se aparece alguma coisa referente ao dispositivo que deseja instalar (alguma mensagem de erro, etc). Caso no aparecer nada possvel que o driver esteja compilado como mdulo, para verificar isto entre no diretrio

/lib/modules/versao_do_kernel e veja se encontra o mdulo correspondente ao seu dispositivo (o mdulo da placa NE 2000 tem o nome de ne.o e o da placa Sound Blaster de sb.o, por exemplo). Caso o kernel no tiver o suporte ao seu dispositivo, voc precisar recompilar seu kernel ativando seu suporte. Caso seu hardware esteja compilado no kernel, verifique se o mdulo correspondente est carregado (com o comando lsmod). Caso no estiver, carregue-o com o modprobe (por exemplo, modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpuio=0x330). O uso deste comando dever ativar seu hardware imediatamente, neste caso configure o mdulo para ser carregado automaticamente atravs do programa modconf ou edite os arquivos relacionados com os mdulos. Caso no tenha sucesso, ser retornada uma mensagem de erro.

CETAM

132 17.2. RECOMPILANDO O KERNEL

Ser que vou precisar recompilar o meu kernel? Voc deve estar se perguntando agora. A seguir alguns motivos para esclarecer suas dvidas: Melhora o desempenho do kernel. O kernel padro que acompanha as distribuies GNU/Linux foi feito para funcionar em qualquer tipo de sistema e garantir seu funcionamento e inclui suporte a praticamente tudo. Isto pode gerar desde instabilidade at uma grade pausa do kernel na inicializao quando estiver procurando pelos dispositivos que simplesmente no existem em seu computador! A compilao permite escolher somente o suporte aos dispositivos existentes em seu computador e assim diminuir o tamanho do kernel, desocupar a memria RAM com dispositivos que nunca usar e assim voc ter um desempenho bem melhor do que teria com um kernel pesado. Incluir suporte a alguns hardwares que esto desativados no kernel padro (SMP, APM, Firewall, drivers experimentais, etc). Se aventurar em compilar um kernel (sistema operacional) personalizado em seu sistema. Sero necessrios uns 70Mb de espao em disco disponvel para copiar e descompactar o cdigo fonte do kernel e alguns pacotes de desenvolvimento como o gcc, cpp, binutils, gcc-i386-gnu, bin86, make, dpkg-dev, perl, kernel-package (os trs ltimos somente para a distribuio Debian). Na distribuio Debian, o melhor mtodo atravs do kernel-package que faz tudo para voc (menos escolher o que ter o no o suporte no kernel) e gera um pacote .deb que poder ser usado para instalar o kernel em seu sistema ou em qualquer outro que execute a Debian ou distribuies baseadas (Corel Linux, Libranet, etc). Devido a sua facilidade, a compilao do kernel atravs do kernelpackage muito recomendado para usurios iniciantes e para aqueles que usam somente um kernel no sistema. Siga estes passos para recompilar seu kernel atravs do kernel-package: Descompacte o cdigo fonte do kernel (atravs do arquivo linux-2.2.XX) para o diretrio /usr/src. Caso use os pacotes da Debian eles tero o nome de kernelsource-2.2.XX, para detalhes de como instalar um pacote, veja Instalar pacotes.

CETAM

133 Aps isto, entre no diretrio onde o cdigo fonte do kernel foi instalado com cd /usr/src/linux. Como usurio root, digite make config. Voc tambm pode usar make menuconfig (configurao atravs de menus) ou make xconfig (configurao em modo grfico), mas precisar de pacotes adicionais para que estes dois funcionem corretamente. Sero feitas perguntas sobre se deseja suporte a tal dispositivo, etc. Pressione Y para incluir o suporte diretamente no kernel, M para incluir o suporte como mdulo ou N para no incluir o suporte. Note que nem todos os drives podem ser compilados como mdulos. Escolha as opes que se encaixam em seu sistema, se estiver em dvida sobre a pergunta digite ? e tecle Enter para ter uma explicao sobre o que aquela opo faz. Se no souber do que se trata, recomendo incluir a opo (pressionando Y ou M). Este passo pode levar entre 5 minutos e 1 Hora (usurios que esto fazendo isto pela primeira vez tendem a levar mais tempo lendo e conhecendo os recursos que o GNU/Linux possui, antes de tomar qualquer deciso). No se preocupe se esquecer de incluir o suporte a alguma coisa, voc pode repetir o passo make menuconfig (todas as suas escolhas so gravadas no arquivo .config), recompilar o kernel e instalar em cima do antigo a qualquer hora que quiser. Aps o make menuconfig chegar ao final, digite make-kpkg clean para limpar construes anteriores do kernel. Agora compile o kernel digitando make-kpkg --revision=teste.1.0

kernel_image. A palavra teste pode ser substituda por qualquer outra que voc quiser e nmero da verso 1.0 serve apenas como controle de suas compilaes (pode ser qualquer nmero). Observao: No inclua hfens (-) no parmetro --revision, use somente pontos. Agora aps compilar, o kernel ser gravado no diretrio superior (..) com um nome do tipo kernel-image-2.2.10-i386_teste.1.0.deb. Basta voc digitar dpkg -i kernel-image-2.2.10-i386_teste.1.0.deb e o dpkg far o resto da instalao do kernel para voc e perguntar se deseja criar um disquete de inicializao (recomendvel). Reinicie seu computador, seu novo kernel iniciar e voc j perceber a primeira diferena pela velocidade que o GNU/Linux iniciado (voc inclui somente CETAM

134 suporte aos dispositivos em seu sistema). O desempenho dos programas tambm melhorar, pois cortou o suporte a dispositivos/funes que seu computador no precisa. Caso alguma coisa sair errada, coloque o disquete que gravou no passo anterior e reinicie o computador para fazer as correes.

17.3. ARQUIVOS RELACIONADOS COM O KERNEL E MDULOS /etc/modules

A funo deste arquivo carregar mdulos especificados na inicializao do sistema e mant-los carregado todo o tempo. til para mdulos de placas de rede que precisam ser carregados antes da configurao de rede feita pela distribuio e no podem ser removidos quando a placa de rede estiver sem uso (isto retiraria seu computador da rede). Seu contedo uma lista de mdulos (um por linha) que sero carregados na inicializao do sistema. Os mdulos carregados pelo arquivo /etc/modules pode ser listados usando o comando lsmod. Se o parmetro auto estiver especificado como um mdulo, o kmod ser ativado e carregar os mdulos somente em demanda, caso seja especificado noauto o programa kmod ser desativado. O kmod ativado por padro nos nveis de execuo 2 ao 5. Ele pode ser editado em qualquer editor de textos comum ou modificado automaticamente atravs do utilitrio modconf.

modules.conf

O arquivo /etc/modules.conf permite controlar as opes de todos os mdulos do sistema. Ele consultado pelos programas modprobe e depmod. As opes especificadas neste arquivo facilitam o gerenciamento de mdulos, evitando a digitao de opes atravs da linha de comando. Note que recomendado o uso do utilitrio modconf para configurar quaisquer mdulos em seu sistema e o utilitrio update-modules para sincronizao CETAM

135 dos arquivos gerados pelo modconf em /etc/modutils com o /etc/modules.conf (geralmente isto feito automaticamente aps o uso do modconf). Por este motivo no recomendvel modifica-lo manualmente, a no ser que seja um usurio experiente e saiba o que est fazendo.

Por exemplo: adicionando as linhas: alias sound sb options sb io=0x220 irq=5 dma=1 dma16=5 mpuio=0x330

Permitir que seja usado somente o comando modprobe sb para ativar a placa de som.

CETAM

136 18. CONFIGURAO DE HARDWARE

18.1. LISTANDO HARDWARES EM UM COMPUTADOR

Administradores e tcnicos ao configurar uma mquina precisaro saber quais os hardwares ela possui, perifricos e at mesmo a reviso de dispositivos e clock para configurar as coisas e ver a necessidade de atualizaes de dispositivos atuais. Dispositivos PCI/AMR/CNR podem ser listados executando o comando cat /proc/pci. Outra forma de listar tais dispositivos usando o lspci, se voc precisa de mais detalhes como o mapeamento de memria, use lspci -vv. O mapeamento de memria de dispositivos podem ser mostrados com o comando cat /proc/ioports, ou usando o comando lsdev. O barramento USB e dispositivos conectados a ele podem ser listados com o comando lsusb ou com cat /proc/bus/usb/devices. Hardwares disponveis na mquina, como placa me, clock multiplicador, discos, placas diversas, verses e nmeros seriais de dispositivos podem ser mostrados atravs do comando lshw. Use lshw -html para produzir a listagem em formato HTML, bem interessante para relatrios.

18.2. HARDWARES ESPECFICOS OU "FOR WINDOWS"

Uma tendncia que perturba a proliferao de modens e impressoras especficas para Windows. Em muitos casos estes so especialmente fabricados para operar com o Sistema Operacional Microsoft Windows e costumam ter a legenda WinModem, for Windows, ou feito especialmente para computadores baseados no Windows. Geralmente estes dispositivos so feitos retirando os processadores embutidos daquele hardware e o trabalho deles feitos por drives do Windows que so executados pelo processador principal do computador. Esta estratgia torna o hardware menos caro, mas o que poupado no passado para o usurio e este hardware pode at mesmo ser mais caro quanto dispositivos equivalentes que possuem inteligncia embutida. CETAM

137 Voc deve evitar o hardware baseado no Windows por duas razes: 1. O primeiro que aqueles fabricantes no tornam os recursos disponveis para criar um driver para Linux. Geralmente, o hardware e a interface de software para o dispositivo proprietria, e a documentao no disponvel sem o acordo de no revelao, se ele estiver disponvel. Isto impede seu uso como software livre, desde que os escritores de software grtis descubram o cdigo fonte destes programas. 2. A segunda razo que quando estes dispositivos tem os processadores embutidos removidos, o sistema operacional deve fazer o trabalho dos processadores embutidos, freqentemente em prioridade de tempo real, e assim a CPU no esta disponvel para executar programas enquanto ela esta controlando estes dispositivos. Um exemplo tpico disso so os Modens for Windows; Alm da carga jogada na CPU, o dispositivo no possui o chip UART 16550, que essencial para uma boa taxa de transferncia do modem. O que alguns dispositivos fazer a emulao deste chip exigindo no mnimo uma CPU Pentium de 166 MHZ para operar adequadamente nesta taxa de transmisso. Mesmo assim, devido a falta do chip UART, um modem destes iniciar uma transmisso de arquivo a 57.600, a tendncia sua taxa de transferncia ir caindo na medida em que um arquivo transferido (at se estabilizar em 21/25 Kbps). Assim o usurio tpico do Windows no obtm um multi-processamento to intensivo como um usurio do GNU/Linux, o fabricante espera que aquele usurio do Windows simplesmente no note a carga de trabalho que este hardware pe naquela CPU. No entanto, qualquer sistema operacional de multi-processamento, at mesmo Windows 95 / 98 ou NT, so prejudicados quando fabricantes de perifricos retiram o processador embutido de suas placas e colocam o processamento do hardware na CPU. Voc pode ajudar a reverter esta situao encorajando estes fabricantes a lanarem a documentao e outros recursos necessrios para ns desenvolvermos drives para estes hardwares, mas a melhor estratgia simplesmente evitar estes tipos de hardwares at que ele esteja listado no HOWTO de hardwares compatveis com GNU/Linux. CETAM

138 Note que hoje j existem muitos drives para WinModems e outros hardwares for Windows para o GNU/Linux. Veja a lista de hardwares compatveis no HARDWARE-HOWTO ou procure o driver no site do fabricante de seu dispositivo. Mesmo assim a dica evitar hardwares for Windows e comprar hardwares inteligentes onde cada um faz sua funo sem carregar a CPU.

18.3. CONFIGURAES DE DISPOSITIVOS

18.3.1. Configurando uma placa de rede


Para configurar sua placa de rede no GNU/Linux siga os passos a seguir: 1. Identifique se sua placa de rede ISA ou PCI. Caso seja ISA, pode ser preciso alterar a configurao de jumpers ou plug-and-play, evitando conflitos de hardware ou o no funcionamento da placa. 2. Identifique a marca/modelo de sua placa. O programa lshw til para isto. Caso sua placa seja PCI ou CNR, execute o comando lspci e veja a linha "Ethernet". 3. Em ltimo caso, abra a mquina e procure a marca na prpria placa. Quase todos os fabricantes colocam a marca da placa no prprio circuito impresso ou no CI principal da placa (normalmente o maior). 4. Depois de identificar a placa, ser preciso carregar o mdulo correspondente para ser usada no GNU/Linux. Em algumas instalaes padres o suporte j pode estar embutido no kernel, neste caso, voc poder pular este passo. Para carregar um mdulo, digite o comando modprobe modulo. Em placas ISA, geralmente preciso passar a IRQ e porta de I/O como argumentos para alocar os recursos corretamente. O modprobe tentar auto-detectar a configurao em placas ISA, mas ela poder falhar por algum motivo. Por exemplo, para uma NE 2000: modprobe ne io=0x300 irq=10. Para evitar a digitao destes parmetros toda vez que a mquina for iniciada recomendvel coloca-lo no arquivo /etc/modules.conf da seguinte forma:

options ne io=0x300 irq=10 CETAM

139 A partir de agora, voc pode carregar o mdulo de sua placa NE 2000 apenas com o comando modprobe ne. O parmetro io=0x300 irq=10 ser automaticamente adicionado. Em sistemas Debian, o local correto para colocar as opes de um mdulo em arquivos separados localizados dentro de /etc/modutils. Crie um arquivo chamado /etc/modutils/ne e coloque a linha:

options ne io=0x300 irq=10

Depois disso, execute o comando update-modules para o sistema gerar um novo arquivo /etc/modules.conf com todos os mdulos de /etc/modutils e substituir o anterior. Aps carregar o mdulo de sua placa de rede, resta apenas configurar seus parmetros de rede para coloc-la em rede.

18.3.2. Configurando uma placa de SOM no GNU/Linux


A configurao de dispositivos de udio no GNU/Linux no uma coisa complicada, se resumindo na configurao de recursos de IRQ (caso a placa seja ISA), carregar o seu respectivo mdulo com seus parmetros e ajustar o mixer. Atualmente existem 2 padres de som no sistema GNU/Linux: OSS (Open Sound System) e ALSA (Advanced Linux Sound Architecture). O OSS o primeiro padro existente no sistema GNU/Linux e embutido por padro no kernel. O ALSA mais novo, suporta full duplex e outros recursos adicionais, alm de manter a compatibilidade com OSS. O ALSA um padro mais moderno e garante mais desempenho para a CPU da mquina, principalmente para a exibio de vdeos, etc.

18.3.3. Configurando uma placa de som usando o padro OSS


O padro OSS o presente por padro desde que o suporte a som foi includo no kernel. Para configurar uma placa de som para usar este sistema de som, primeiro compile seu kernel com o suporte ao mdulo de sua placa de som. Caso seja uma placa ISA, voc provavelmente ter que habilitar a seo "Open CETAM

140 Sound System" para ver as opes disponveis (entre elas, a Sound Blaster e compatveis). Uma olhada na ajuda de cada mdulo deve ajud-lo a identificar quais placas cada opo do kernel suporta. Caso seu kernel seja o padro de uma distribuio GNU/Linux, provavelmente ter o suporte a todas as placas de som possveis. Siga o passo a passo abaixo para configurar sua placa de som no sistema: Primeiro descubra se sua placa de som ISA. Caso seja, verifique se os seus recursos esto alocados corretamente. Caso seja PCI, AMR execute o comando lspci, procure pela linha "Multimedia" e veja o nome da placa. Voc tambm poder executar o comando lshw para descobrir qual placa voc possui. Carregue o mdulo da placa de som com o comando modprobe mdulo. Na Debian, voc pode executar o comando modconf para navegar visualmente entre os mdulos disponveis e carregar os mdulos necessrios. Algumas placas (principalmente ISA) requerem que seja especificado o recurso de hardware sejam passados para seu mdulo, ou simplesmente voc quer especificar isto para manter o uso de hardware sobre seu controle. Alguns dos parmetros mais usados em placas Sound Blaster so os seguintes:

modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x388

Para evitar ter que passar estes parmetros todas as vezes para o mdulo, voc poder coloca-los no arquivo /etc/modules.conf da seguinte forma:

options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330

Assim, quando der o comando modprobe sb ele ser carregado com as opes acima. Na distribuio Debian, voc dever criar um arquivo chamado /etc/modutils/sb contendo a linha acima, depois execute o update-modules para "juntar" todos os arquivos do /etc/modutils e criar o /etc/modules.conf. Aps carregar o mdulo correto de sua placa de som, seu sistema de som dever estar funcionando. Se voc utiliza uma distribuio GNU/Linux, os dispositivos de som como /dev/audio, /dev/dsp, /dev/mixer estaro criados e ento

CETAM

141 poder passar para o prximo passo. Caso no existam, entre no diretrio /dev e execute o comando MAKEDEV udio. O prximo passo consiste em instalar um programa para controle de volume, tonalidade e outros recursos de sua placa de som. O recomendado o aumix por ser simples, pequeno e funcional, e permitindo restaurar os valores dos nveis de volumes na inicializao (isso evita que tenha que ajustar o volume toda vez que iniciar o sistema). Caso o aumix aparea na tela, sua placa de som j est funcionando! Caso acesse o sistema como usurio, no se esquea de adicionar seu usurio ao grupo udio para ter permisso de usar os dispositivos de som.

CETAM

142 19. X WINDOW

um sistema grfico de janelas que roda em uma grande faixa de computadores, mquinas grficas e diferentes tipos de mquinas e plataformas Unix. Pode tanto ser executado em mquinas locais como remotas atravs de conexo em rede.

19.1. A ORGANIZAO DO AMBIENTE GRFICO X WINDOW

Em geral o ambiente grfico X Window dividido da seguinte forma: O Servidor X - o programa que controla a exibio dos grficos na tela, mouse e teclado. Ele se comunica com os programas cliente atravs de diversos mtodos de comunicao. O servidor X pode ser executado na mesma mquina que o programa cliente esta sendo executado de forma transparente ou atravs de uma mquina remota na rede. O gerenciador de Janelas - o programa que controla a aparncia da aplicao. Os gerenciadores de janelas (window managers) so programas que atuam entre o servidor X e a aplicao. Voc pode alternar de um gerenciador para outro sem fechar seus aplicativos. Existem vrios tipos de gerenciadores de janelas disponveis no mercado entre os mais conhecidos posso citar o Window Maker (feito por um Brasileiro), o After Step, Gnome, KDE, twm (este vem por padro quando o servidor X instalado), Enlightenment, IceWm, etc. A escolha do seu gerenciador de janelas pessoal, depende muito do gosto de cada pessoa e dos recursos que deseja utilizar. A aplicao cliente - o programa sendo executado. Esta organizao do ambiente grfico X traz grandes vantagens de gerenciamento e recursos no ambiente grfico UNIX, uma vez que tem estes recursos voc pode executar seus programas em computadores remotos, mudar totalmente a aparncia de um programa sem ter que fecha-lo (atravs da mudana do gerenciador de janelas), etc. CETAM

143 O GNU/Linux utiliza uma verso do X Window denominada Xfree86. Para instalar o ambiente grfico no Debian, devem-se instalar os pacotes padres do xfree86.

apt-get install x-window-system

tarefa de o administrador configurar o ambiente XFree86, uma vez que os usurios no possuem permisso para alterar estas configuraes. Para configurar o ambiente grfico. dpkg-reconfigure xserver-xfree86

Todas as configuraes so gravadas no arquivo /etc/X11/XF86Config-4 que o arquivo de configurao do XFree86. Os administradores mais experientes podem editar diretamente o arquivo, ao invs de usar utilitrios, porm esta prtica no recomendada por ser um procedimento mais propenso a erros e falhas de hardware. Este arquivo dividido em sees sendo que cada seo possui configuraes especificas de cada tipo de dispositivo.

InputDevice descrio dos dispositivos de entrada (mouse,teclado) Monitor descrio do monitor. Device descrio da placa de vdeo. Screen configurao da tela. ServerLayout descrio do identificador de todos os dispositivos.

19.2. EXEMPLO DO ARQUIVO XF86CONFIG-4

Section "Files" FontPath FontPath FontPath FontPath FontPath "unix/:7100" "/usr/lib/X11/fonts/misc" "/usr/lib/X11/fonts/cyrillic" "/usr/lib/X11/fonts/100dpi/:unscaled" "/usr/lib/X11/fonts/75dpi/:unscaled" CETAM

144 FontPath FontPath FontPath FontPath FontPath EndSection "/usr/lib/X11/fonts/Type1" "/usr/lib/X11/fonts/CID" "/usr/lib/X11/fonts/Speedo" "/usr/lib/X11/fonts/100dpi" "/usr/lib/X11/fonts/75dpi"

Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "speedo" Load "type1" Load "vbe" EndSection

Section "InputDevice" Identifier Driver Option Option Option Option EndSection "Generic Keyboard" "keyboard" "CoreKeyboard" "XkbRules" "xfree86" "XkbModel" "pc105" "XkbLayout" "us_intl"

CETAM

145 Section "InputDevice" Identifier Driver Option Option Option Option Option EndSection "Configured Mouse" "mouse" "CorePointer" "Device" "Protocol" "/dev/psaux" "ImPS/2"

"Emulate3Buttons" "true" "ZAxisMapping" "4 5"

Section "InputDevice" Identifier Driver Option Option Option Option Option EndSection "Generic Mouse" "mouse" "SendCoreEvents" "true" "Device" "Protocol" "/dev/input/mice" "ImPS/2"

"Emulate3Buttons" "true" "ZAxisMapping" "4 5"

Section "Device" Identifier Driver EndSection "Generic Video Card" "sis"

Section "Monitor" Identifier HorizSync "Generic Monitor" 28-50

VertRefresh 43-75 Option EndSection "DPMS"

CETAM

146 Section "Screen" Identifier Device Monitor DefaultDepth 24 SubSection "Display" Depth Modes EndSubSection SubSection "Display" Depth Modes EndSubSection SubSection "Display" Depth Modes EndSubSection SubSection "Display" Depth Modes EndSubSection SubSection "Display" Depth Modes EndSubSection SubSection "Display" Depth Modes EndSubSection EndSection 24 "1024x768" "800x600" "640x480" 16 "1024x768" "800x600" "640x480" 15 "1024x768" "800x600" "640x480" 8 "1024x768" "800x600" "640x480" 4 "1024x768" "800x600" "640x480" 1 "1024x768" "800x600" "640x480" "Default Screen" "Generic Video Card" "Generic Monitor"

CETAM

147 Section "ServerLayout" Identifier Screen "Default Layout" "Default Screen"

InputDevice "Generic Keyboard" InputDevice "Configured Mouse" InputDevice "Generic Mouse" EndSection

Section "DRI" Mode 0666 EndSection

O sistema grfico X pode ser iniciado de duas maneiras: Automtica - Usando o programa xdm que um programa que roda no ambiente grfico X e apresenta uma tela pedindo nome e senha para entrar no sistema (login). Aps entrar no sistema, o X executar um dos gerenciadores de janelas configurados. Manual - Atravs do comando startx. Neste caso o usurio deve entrar com seu nome e senha para entrar no modo texto e ento executar um dos comandos acima. Aps executar um dos comandos acima, o servidor X ser iniciado e executar um dos gerenciadores de janelas configurados no sistema.

19.3. GERENCIADORES DE LOGIN GRFICO

Este programa recebe o nome e a senha do usurio e, depois de feita a autenticao, inicia uma sesso grfica para o mesmo. Os gerenciadores grficos existentes no GNU/Linux so:

XDM (X Display Manager) do prprio XFree86 GDM (Gnome Desktop Manager) do gnome KDM (KDE Display Manager) do KDE

CETAM

148 Para mudar o gerenciador padro edite o arquivo /etc/X11/default-displaymanager com as seguintes opes: Para usar o XDM /usr/bin/X11/xdm Para usar o GDM /usr/bin/gdm Para usar o KDM /usr/bin/kdm

CETAM

149 20. GERENCIAMENTO DE QUOTA

No GNU/Linux quotas de disco so aplicadas por partio. Se houver somente uma partio no disco (a partio /, por exemplo), as quotas somente se aplicaro a ela por inteiro. No h como definir quotas para diretrios especficos, a no ser que eles sejam pontos de montagem de uma outra partio. Um sistema de arquivos tambm pode trabalhar com quotas. Um sistema de quotas permite que o administrador determine o numero mximo de inodes ou blocos do disco, disponibilizados para um usurio ou grupo. A idia por trs disso e que os usurios so forados a permanecerem sob seu limite de consumo, no sendo permitido a eles consumir de forma ilimitada o espao em disco do sistema. A quota gerenciada seguindo uma base por usurio e por sistema de arquivo onde um usurio pode criar arquivo, ento a quota tem de ser estabelecida para cada sistema de arquivo separadamente.

20.1. CRIANDO ARQUIVOS DE QUOTA

O administrador deve criar dois arquivos, quota.user e quota.group dentro do diretrio definido para utilizacao de quota no sistema. Estes dois arquivos devem estar vazios, use o comando touch para cri-los e depois de prontos altere a permisso de acesso dos dois arquivos atravs do chmod, na linha do prompt digite:

[root@lab08~] # touch /home/quota.user [root@lab08~] # touch /home/quota.group [root@lab08~] # chmod 600 /home/quota.user [root@lab08~] # chmod 600 /home/quota.group

OBSERVAAO: Este arquivo deve ser criado na partio onde ser definida a quota, importante definir corretamente suas permisses para que os usurios comuns nao tenham acesso ao arquivo. Os arquivos quota.user serve para definir quota para os usuarios e o quota.group define quota para os grupos. Fica a critrio do administrador definir a partio onde ser definida a quota. CETAM

150 20.2. HABILITANDO O SISTEMA DE QUOTA

Para habilitar e preciso editar o arquivo /etc/fstab e na linha da sua partio onde ser habilitado o sistema de quota adicionar "usrquota", "grpquota" (Figura 20.1).

Figura 20.1: Configurao do fstab.

OBSERVAAO: O sistema de quotas s ser habilitado depois que o sistema de arquivos especificado em /etc/fstab for montado, caso contrrio o sistema de quotas no funcionar.

quotacheck - O comando quotacheck e utilizado para verificar as quotas existentes no sistema. Para verificar com o quotacheck as quotas existentes no sistema, digite na linha do prompt o seguinte comando: [root@lab08~] # quotacheck -avug quotaon - Para iniciar servio de quota, utilize o comando: [root@lab08~] # quotacheck -avug quotaoff - Para parar servio de quota, utilize o comando: [root@lab08~] # quotaoff -avug

OBSERVAAO: Para desativar o sistema de quotas, alm de executar o comando quotaoff, e necessrio editar o arquivo /etc/fstab, removendo o parmetro usrquota/grpquota do sistema de arquivos. CETAM

151

20.2.1. Atribuido quotas a usurios


Para adicionar quota a um usurio digite o comando:

[root@lab08~] # edquota -u <usuario>

O seguinte arquivo ir aparecer na tela depois de digitado este comando:

Figura 20.2: Setando quota para usurio.

Essa tela serve para voc limitar a quota do usurio, sendo que a escala a seguinte, 1.000 quer dizer 1Mb e 10.000 querdizer 10Mb. Os parmetros que devem ser configurados pelo administrador so: Soft especifica a quantidade mxima de utilizao de um sistema de arquivos que um usurio possui. Hard - especifica o limite absoluto de utilizao de um sistema de arquivos que jamais poder ser ultrapassado pelo usurio.

20.2.2. Listando as quotas


Para listar as quotas digite o seguinte comando: quota -u <usurio> possvel, tambm, definir por quanto tempo o usurio pode permanecer entre soft limit e o hard limit. Este perodo de tolerncia chamado de grace period. O grace period definido com o comando edquota -t. Este perodo pode ser

CETAM

152 definido em sec (segundos), min (minutos), day (dias), week (semanas), e month (meses), e definido por sistemas de arquivos, e no por usurios ou grupos. 20.2.3. Exibindo um sumrio do sistema de cotas

repquota a

Mostra as informaes de quotas para os sistemas de arquivos indicados.

CETAM

153 21. CONFIGURAES DO TCP/IP

21.1. INTERFACE DE REDE

As interfaces de rede no GNU/Linux esto localizadas no diretrio /dev e a maioria so criadas dinamicamente pelos softwares quando requisitadas. Este o caso das interfaces ppp e plip que so criadas dinamicamente pelos softwares. Abaixo a identificao de algumas interfaces de rede no Linux (a ? significa um nmero que identifica as interfaces seqencialmente, iniciando em 0): eth? - Placa de rede Ethernet e WaveLan. ppp? - Interface de rede PPP (protocolo ponto a ponto). slip? - Interface de rede serial eql - Balanceador de trfego para mltiplas linhas plip? - Interface de porta paralela arc?e, arc?s - Interfaces Arcnet sl?, ax? - Interfaces de rede AX25 (respectivamente para kernels 2.0.xx e 2.2.xx. fddi? - Interfaces de rede FDDI. dlci??, sdla? - Interfaces Frame Relay, respectivamente para para dispositivos de encapsulamento DLCI e FRAD. nr? - Interface Net Rom rs? - Interfaces Rose st? - Interfaces Strip (Starmode Radio IP) tr? - Token Ring

21.2. CONFIGURANDO AS INTERFACES DE REDE

21.2.1. A interface loopback

A interface loopback um tipo especial de interface que permite fazer conexes com voc mesmo. Todos os computadores que usam o protocolo TCP/IP utilizam esta interface e existem vrias razes porque precisa fazer isto, por CETAM

154 exemplo, voc pode testar vrios programas de rede sem interferir com ningum em sua rede. Por conveno, o endereo IP 127.0.0.1 foi escolhido especificamente para a loopback, assim se abrir uma conexo telnet para 127.0.0.1, abrir uma conexo para o prprio computador local. A configurao da interface loopback simples e voc deve ter certeza que fez isto (mas note que esta tarefa normalmente feita pelos scripts padres de inicializao existentes em sua distribuio).

ifconfig lo 127.0.0.1

Caso a interface loopback no esteja configurada, voc poder ter problemas quando tentar qualquer tipo de conexo com as interfaces locais, tendo problemas at mesmo com o comando ping.

21.2.2. Atribuindo um endereo de rede a uma interface (ifconfig)


Aps configurada fisicamente, a interface precisa receber um endereo IP para ser identificada na rede e se comunicar com outros computadores, alm de outros parmetros como o endereo de broadcast e a mscara de rede. O comando usado para fazer isso o ifconfig (interface configure). Para configurar a interface de rede Ethernet (eth0) com o endereo 192.168.1.1, mscara de rede 255.255.255.0, podemos usar o comando:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up

O comando acima ativa a interface de rede. A palavra up pode ser omitida, pois a ativao da interface de rede o padro. Para desativar a mesma interface de rede, basta usar o comando:

ifconfig eth0 down

Digitando ifconfig so mostradas todas as interfaces ativas no momento, pacotes enviados, recebidos e colises de datagramas. Para mostrar a configurao CETAM

155 somente da interface eth0, use o comando: ifconfig eth0. Em sistemas Debian, o arquivo correto para especificar os dados das interfaces o /etc/network/interfaces.

21.3. ROTEAMENTO

Roteamento quando uma mquina com mltiplas conexes de rede decide onde entregar os pacotes IP que recebeu, para que cheguem ao seu destino. Todos os computadores na Internet tm dois dispositivos de rede, um a interface loopback (explicada acima) o outro um usado para falar com o resto da rede, talvez uma ethernet, talvez uma interface serial PPP ou SLIP. Cada computador mantm uma lista de regras especiais de roteamento, chamada tabela de roteamento. Esta tabela contm colunas que tipicamente contm no mnimo trs campos, o primeiro o endereo de destino, o segundo o nome da interface que o datagrama deve ser roteado e o terceiro opcionalmente o endereo IP da outra mquina que levar o datagrama em seu prximo passo atravs da rede. No GNU/Linux voc pode ver a tabela de roteamento usando um dos seguintes comandos:

cat /proc/net/route route -n netstat -r

O processo de roteamento muito simples: um datagrama (pacote IP) recebido, o endereo de destino (para quem ele ) examinado e comparado com cada item da tabela de roteamento. O item que mais corresponder com o endereo selecionado e o datagrama direcionado a interface especificada. Se o campo gateway estiver preenchido, ento o datagrama direcionado para aquele computador pela interface especificada, caso contrrio o endereo de destino assumido sendo uma rede suportada pela interface.

CETAM

156

21.3.1. Configurando uma rota no Linux


A configurao da rota feita atravs da ferramenta route. Para adicionar uma rota para a rede 192.168.1.0 acessvel atravs da interface eth0 basta digitar o comando:

# route add -net 192.168.1.0 eth0

Para apagar a rota acima da tabela de roteamento, basta substituir a palavra add por del. A palavra net quer dizer que 192.168.1.0 um endereo de rede, para especificar uma mquina de destino, basta usar a palavra host. Endereos de mquina de destino so muito usadas em conexes de rede apenas entre dois pontos (como ppp, plip, slip). Por padro, a interface especificada como ltimo argumento. Caso a interface precise especific-la em outro lugar, ela dever ser precedida da opo -dev. Para adicionar uma rota padro para um endereo que no se encontre na tabela de roteamento, utiliza-se o gateway padro da rede. Atravs do gateway padro possvel especificar um computador que os pacotes de rede sero enviados caso o endereo no confira com os da tabela de roteamento. Para especificar o computador 192.168.1.1 como gateway padro usamos:

# route add default gw 192.168.1.1 eth0

O gateway padro pode ser visualizado atravs do comando route -n e verificando o campo gateway. A opo gw acima, especifica que o prximo argumento um endereo IP. O computador gateway est conectado a duas ou mais redes ao mesmo tempo. Quando seus dados precisam ser enviados para computadores fora da rede, eles so enviados atravs do computador gateway e o gateway os encaminham ao endereo de destino. Desta forma, a resposta do servidor tambm enviada atravs do gateway para seu computador.

CETAM

157 A nossa configurao ficaria assim: route add -net 192.168.1.0 eth0 route add default gw 192.168.1.1 eth0

21.4. ARQUIVOS DE CONFIGURAO DA REDE /etc/network/interfaces

O arquivo /etc/network/interfaces o arquivo de configurao das placas de redes. No exemplo, a configurao de ip esttico. No caso de dhcp troca a palavra static por dhcp e retira o resto.

auto lo eth0

iface lo inet loopback

iface eth0 inet static address 192.168.1.155 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 /etc/resolv.conf

O /etc/resolv.conf o arquivo de configurao principal do cdigo do resolvedor de nomes. Seu formato um arquivo texto simples com um parmetro por linha e o endereo de servidores DNS externos so especificados nele. Existem trs palavras chaves normalmente usadas que so: domain - Especifica o nome do domnio local. search - Especifica uma lista de nomes de domnio alternativos ao procurar por um computador, separados por espaos. A linha search pode conter no mximo 6 domnios ou 256 caracteres.

CETAM

158 nameserver - Especifica o endereo IP de um servidor de nomes de domnio para resoluo de nomes. Podem ser usadas vrias vezes.

Como exemplo, o /etc/resolv.conf se parece com isto: domain maths.wu.edu.au search maths.wu.edu.au wu.edu.au nameserver 192.168.10.1 nameserver 192.168.12.1

Este exemplo especifica que o nome de domnio a adicionar ao nome no qualificado (i.e. hostnames sem o domnio) maths.wu.edu.au e que se o computador no for encontrado naquele domnio ento a procura segue para o domnio wu.edu.au diretamente. Duas linhas de nomes de servidores foram especificadas, cada uma pode ser chamada pelo cdigo resolvedor de nomes para resolver o nome. /etc/host.conf

O arquivo /etc/host.conf o local onde possvel configurar alguns tens que gerenciam o cdigo do resolvedor de nomes. Em quase todas as situaes, o exemplo seguinte funcionar:

order hosts,bind multi on

Este arquivo de configurao diz ao resolvedor de nomes para checar o arquivo /etc/hosts (parmetro hosts) antes de tentar verificar um servidor de nomes (parmetro bind) e retornar um endereo IP vlido para o computador procurado e multi on retornar todos os endereos IP resolvidos no arquivo /etc/hosts ao invs do primeiro. Os seguintes parmetros podem ser adicionados para evitar ataques de IP spoofing:

CETAM

159 nospoof on spoofalert on

O parmetro nospoof on ativa a resoluo reversa do nome da biblioteca resolv (para checar se o endereo pertence realmente quele nome) e o spoofalert on registra falhas desta operao no syslog. /etc/hosts

O arquivo /etc/hosts faz o relacionamento entre um nome de computador e endereo IP local. Recomendado para IPs constantemente acessados e para colocao de endereos de virtual hosts (quando deseja referir pelo nome ao invs de IP). A incluso de um computador neste arquivo dispenda a consulta de um servidor de nomes para obter um endereo IP, sendo muito til para mquinas que so acessadas frequentemente. A desvantagem de fazer isto que voc mesmo precisar manter este arquivo atualizado e se o endereo IP de algum computador for modificado, esta alterao dever ser feita em cada um dos arquivos hosts das mquinas da rede. Em um sistema bem gerenciado, os nicos endereos de computadores que aparecero neste arquivo sero da interface loopback e os nomes de computadores.

# /etc/hosts 127.0.0.1 192.168.0.1 localhost loopback this.host.name

Voc pode especificar mais que um nome de computador por linha como demonstrada pela primeira linha, a que identifica a interface loopback. OBSERVAO: Caso encontre problemas de lentido para resolver nomes e at para executar os aplicativos (como o mc, etc), verifique se existem erros neste arquivo de configurao. Estes sintomas se confundem com erros de memria ou outro erro qualquer de configurao de hardware, e somem quando a interface de rede desativada (a com o IP no loopback). Isto causado somente pela m configurao do arquivo CETAM

160 /etc/hosts. O bom funcionamento do Unix depende da boa ateno do administrador de sistemas para configurar os detalhes de seu servidor. /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 contra endereos de redes. Seu formato se difere por dois campos por linha e seus campos so identificados como: Nome_da_Rede Endereo_da_Rede

Abaixo um exemplo de como se parece este arquivo: loopnet 127.0.0.0

localnet 192.168.1.0 amprnet 44.0.0.0

Quando usar comandos como route, se um destino uma rede e esta rede se encontra no arquivo /etc/networks, ento o comando route mostrar o nome da rede ao invs de seu endereo.

21.5. COMANDOS TEIS EM REDES ping - Verifica se um computador est disponvel na rede. Este comando muito utilizado por alguns programas de conexo e administradores para verificar se uma determinada mquina est conectada na rede e tambm para verificar o tempo de resposta de cada mquina da rede. O ping envia pacotes ICMS

ECHO_REQUEST para um computador, este quando recebe o pacote envia uma resposta ao endereo de origem avisando que est disponvel na rede. ping [opes][IP/DNS] IP/DNS - Endereo IP ou nome DNS do endereo. Opes: -c [num] - Envia num pacotes ao computador de destino.

CETAM

161 -f - Flood ping. Envia novos pacotes antes de receber a resposta do pacote anterior. Para cada requisio enviada, um "." mostrado na tela e para cada resposta recebida, um backspace mostrado. Somente o usurio root pode utilizar esta opo e pode te auxiliar muito na deteco de erros de transmisso de pacotes em interfaces das mquinas em sua rede. -i [seg] - Aguarda [seg] segundos antes de enviar cada pacote. -q - No mostra as requisies enquanto so enviadas, somente mostra as linhas de sumrio no inicio e trmino do programa. -s [tamanho] - Especifica o tamanho do pacote que ser enviado. -v, --verbose - Sada detalhada, tanto os pacotes enviados como recebidos so listados.

Exemplo: ping 192.168.1.1, ping www.br.debian.org. telnet - Permite acesso a um computador remoto. mostrada uma tela de acesso correspondente ao computador local onde deve ser feita a autenticao do usurio para entrar no sistema. Muito til, mas devem ser tomados cuidados ao disponibilizar este servio para evitar riscos de segurana. telnet [opes] [ip/dns] [porta] ip/dns - Endereo IP do computador de destino ou nome DNS. Porta - onde ser feita a conexo. Por padro, a conexo feita na porta 23. Opes: -8 - Requisita uma operao binria de 8 bits. Isto fora a operao em modo binrio para envio e recebimento. Por padro, telnet no usa 8 bits. -a - Tenta um login automtico, enviando o nome do usurio lido da varivel de ambiente USER. -d - Ativa o modo de debug. -r - Ativa a emulao de rlogin. -l [usurio] - Faz a conexo usando [usurio] como nome de usurio.

Exemplo: telnet 192.168.1.1, telnet 192.168.1.1 23.

CETAM

162 netstat - Mostra conexes de rede, tabela de roteamento, estatsticas de interfaces, conexes masquerade, e mensagens. netstat [opes] Opes: -i [interface] - Mostra estatsticas da interface [interface]. -M, --masquerade - Se especificado, tambm lista conexes masquerade. -n, --numeric - Usa endereos numricos ao invs de tentar resolver nomes de hosts, usurios e portas. -c, --continuos - Mostra a listagem a cada segundo at que a CTRL+C seja pressionado. Se no for especificada nenhuma opo, os detalhes das conexes atuais sero mostrados.

traceroute - Mostra o caminho percorrido por um pacote para chegar ao seu destino. Este comando mostra na tela o caminho percorrido entre os Gateways da rede e o tempo gasto de retransmisso. Este comando til para encontrar computadores defeituosos na rede caso o pacote no esteja chegando ao seu destino. traceroute [opes] [host/IP de destino] host/IP destino - o endereo para onde o pacote ser enviado (por exemplo, www.debian.org). Caso o tamanho do pacote no seja especificado, enviado um pacote de 38 bytes. Opes: -l - Mostra o tempo de vida do pacote (ttl) -m [num] - Ajusta a quantidade mxima 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 [end] - Usa o endereo IP/DNS [end] como endereo de origem para computadores com mltiplos endereos IPs ou nomes. -v - Mostra mais detalhes sobre o resultado do traceroute. CETAM

163 -w [num] - Configura o tempo mximo que aguardar por uma resposta. O padro 3 segundos.

Exemplos: traceroute www.debian.org, traceroute www.linux.org.

ftp - Permite a transferncia de arquivos do computador remoto/local e vice versa. O file transfer protocol o sistema de transmisso de arquivos mais usado na Internet. requerida a autenticao do usurio para que seja permitida a conexo. Muitos servidores ftp disponibilizam acesso annimo aos usurios, com acesso restrito. Uma vez conectado a um servidor ftp, voc pode usar a maioria dos comandos do GNU/Linux para oper-lo. ftp [ip/dns] Abaixo alguns dos comandos mais usados no FTP: ls - Lista arquivos do diretrio atual. cd [diretrio] - Entra em um diretrio. get [arquivo] - Copia um arquivo do servidor ftp para o computador local. O arquivo gravado, por padro, no diretrio onde o programa ftp foi executado. hash [on/off] - Por padro esta opo est desligada. Quando ligada, faz com que o caracter "#" seja impresso na tela indicando o progresso do download. mget [arquivos] - Semelhante ao get, mas pode copiar diversos arquivos e permite o uso de curingas. send [arquivo] - Envia um arquivo para o diretrio atual do servidor FTP (voc precisa de uma conta com acesso a gravao para fazer isto). prompt [on/off] - Ativa ou desativa a pergunta para a cpia de arquivo. Se estiver como off assume sim para qualquer pergunta.

Exemplo: ftp ftp.br.debian.org.

Observao: Podemos configurar uma placa de rede atravs do utilitrio etherconf.

CETAM

164 Para instalar a primeira vez

# apt-get install etherconf

Para reconfigurar # dpkg-reconfigure etherconf

CETAM

165 22. NFS

22.1. CONCEITOS INICIAIS

O uso de redes de computadores tem como principal vantagem o compartilhamento de informaes e resursos. O compartilhamento de informaes pode ser feito de vrias maneiras, como por exemplo, ftp e web. J o compartilhamento de recursos, como por exemplo, discos pode ser realizado atravs do NFS. O NFS um acrnimo para Network File System, ou seja, Sistema de Arquivos de Rede. Ele foi criado para permitir o acesso transparente a discos remotos e um protocolo de nvel aplicativo baseado em RPC (Remote Prodedure Call Chamada de Procedimento Remoto). O RPC um mecanismo bsico para a construo de aplicaes cliente-servidor e consiste e um conjunto de ferramentas e bibliotecas. Quando um programa faz uma chamada I/O (Input/Output) a um arquivo NFS, ela interceptada pelo sistema de arquivos NFS e enviada pelo processo atravs da rede ao servidor remoto. O NFS um sistema cliente-servidor. O cliente utiliza os diretrios remotos como se eles fossem parte de seu sistema de arquivos local; o servidor torna os diretrios acessveis ao usurio. Conectar um diretrio remoto ao sistema de arquivos local chamado de montagem. Oferecer o compartilhamento de um diretrio chamado de exportao. Atravs do NFS possvel uma maior centralizao da administrao de discos; podem-se ter diretrios em uma nica mquina, o servidor NFS, e eles podem estar compartilhados em todos os sistemas conectados rede. Alm disso, o NFS abre a possibilidade de existirem clientes sem disco. Um NFS bem configurado ser totalmente transparente ao usario. No relevante saber em qual servidor um diretrio realmente est, basta que os programas funcionem corretamente sem que ele tenha que realizar qualquer tipo de configurao especial. Existem duas implementaes de servidor NFS. A original a user-level e usa-se apenas para chamadas RPC, tornando fcil fazer o mapeamento de usurio e permisses de grupo, e funciona com DNS (Domain Name System Sistema de CETAM

166 Nomes de Domnio) e NIS (Network Information Service Servio de Informao da Rede). Esta implementao tem deficincias considerveis de desempenho, numerosas cpias entre a rea de usurio e rea de kernel so requeridas e mecanismo de locking para proteo de arquivos de atualizaes mltiplas simultneas no so supridas. A segunda gerao a kernel-level, ou knfs, que uma verso melhorada da user-level e tem desempenho superior. Ela executada na rea do kernel e efetua suas chamadas RPC de dentro do prprio kernel, e no tem que mover memria entre o kernel e a rea do usurio. Assim, suas operaes de memria so mais eficientes e o contexto de switching evitado.

22.2. INSTALANDO O SERVIDOR NFS

apt-get install nfs-kernel-server

22.2.1. O arquivo /etc/exports


O /etc/exports o arquivo de configurao do servidor NFS. Ele controla diretrios que so exportados e que tipo de acesso permitido. O formato geral das entradas neste arquivo o seguinte:

diretrio

computador (opo)

diretrio - Refere-se ao nome do caminho completo do diretrio a ser exportado. Se o diretrio no for seguido por um computador ou uma opo todos os computadores tm acesso de leitura ao diretrio. computador - Refere-se ao nome da(s) mquina(s) que tm acesso ao diretrio a ser exportado. Se nenhum computador for fornecido, o diretrio ser exportado a todos os computadores. Os valores vlidos so: Nomes de computadores individuais, como por exemplo:

callisto.beta.andromeda Grupos de computadores, como por exemplo: *.beta.andromeda, onde todos os computadores deste domnio tero acesso. CETAM

Pares

de

endereo

IP/mscara

de

rede,

como

por

167 exemplo,

10.3.0.0/255.255.255.0, onde cada computador pertencente a esta rede ter acesso. Opo: Define o tipo de acesso a ser concedido. Os trs valores mais encontrados so: ro: especifica que os clientes podem apenas ler o diretrio. Esta a permisso padro quando nenhuma opo fornecida. rw: especifica que os clientes tm acesso de leitura e escrita no diretrio. no_root_squash: normalmente no se deseja que um usurio root de uma mquina cliente seja tratado como root quando acessar arquivos no servidor NFS. Por isso, a UID 0 normalmente mapeada para um ID diferente: anonymous ou nobody. Este modo de operao, chamado root squashing, o padro e pode ser desabilitado com a opo no_root_squash. Um exemplo prtico do arquivo /etc/exports mostrado abaixo, onde se deseja que /mnt/cetus/local, o qual est localizado na mquina cetus, se torne disponvel para a mquina carina:

/mnt/cetus/local

carina(rw)

As linhas acima fornecem carina acesso de leitura e gravao (rw) para /mnt/cetus/local. Aps reinicialize o servio do nfs ou use o comando exportfs -r para atualizar o sistema.

22.2.3. Configurao do cliente NFS


Para fazer a configurao de um cliente NFS necessrio saber o nome do servidor e os diretrios que ele exporta. O comando showmount lista os diretrios que o servidor exporta e os clientes que tm permisso para montar esses diretrios; por exemplo: # showmount --exports cetus /usr/doc /usr/man *.andromeda *.andromeda CETAM

168 Agora ser necessrio montar qualquer um dos diretrios oferecidos por cetus, onde se tem permisso, para depois comear a us-lo.

22.3. OS COMANDOS MOUNT E UMOUNT

A montagem dos arquivos feita atravs do comando mount; ele identifica o sistema de arquivo remoto que se quer acessar e o diretrio local pelo qual ele ser acessado. O diretrio local apenas o nome de diretrio vazio, que criado para montar o diretrio NFS remoto e chamado de ponto de montagem. Juntando tudo isso, possvel montar os diretrios exportados pelo cetus com os comandos:

# mount -t nfs cetus:/usr/doc /usr/doc # mount -t nfs cetus:/usr/man /usr/man # mount -t nfs cetus:/mnt/cetus/local /home/cetus

Nos exemplos citados pressupe-se que os diretrios /usr/doc, /usr/man e /home/cetus existam no cliente antes do comando mount ser executado. Criar repositrios centrais para pginas de manual e documentao uma sugesto para salvar o armazenamento no sistema cliente. J o comando umount utilizado para desmontar um diretrio montado no sistema de arquivos local. Para desmontar o diretrio /home/cetus digite:

# umount /home/cetus 22.4. O ARQUIVO /ETC/FSTAB

Se o comando mount for executado com a opo -a, ele far com que o GNU/Linux monte todos os sistemas de arquivos listados em /etc/fstab. Muitos sistemas GNU/Linux j incluem o comando mount com o parmetro -a nos arquivos de inicializao para montar os sistemas de arquivos NFS durante a inicializao do sistema.

CETAM

169 A partir do exemplo mostrado anteriormente, esta seria a entrada no arquivo fstab:

# dispositivo cetus:/usr/doc cetus:/usr/man cetus:/mnt/cetus/local

pt.mont /usr/doc /usr/man

tipo nfs nfs

opes

dump ordem verif. 0 0 0

defaults,user 0 defaults,user 0 defaults,user 0

/home/cetus nfs

CETAM

170 23. SAMBA

Com o SAMBA possvel compartilhar diretrios, impressoras, acessar arquivos na rede exatamente como em redes Microsoft. Mas neste caso, seu servidor um GNU/Linux rodando uma aplicao especfica. Permite

compatibilidade com estaes Windows (Win95/98/2000/XP) e servidores WinNT 4.0 e 2000server. Entre servidores e estaes Linux a compatibilidade total. O SAMBA 100% configurvel, com a grande vantagem de centralizar esta configurao em um nico arquivo, o smb.conf. Sem dvida muito interessante ter a possibilidade de restaurar toda a configurao que disponibiliza seu Servidor de Arquivos (inclusive as permisses de acesso) atravs do backup de apenas 1 arquivo, em casos de desastre. Porm isso no quer dizer que no seja necessrio o backup de outros arquivos de configurao. Nele que so descritos os compartilhamentos, permisses de acesso, impressoras, dentre outras configuraes disponveis. Quando instalado, o SAMBA disponibiliza os seguintes componentes: smbd nmbd smbclient smbmount smbumount smbpasswd testparm O servidor SAMBA. O Servidor de nomes NetBios Cliente SMB para sistemas Unix. Monta compartilhamentos da rede localmente. Desmonta diretrios montados via Samba. Alterar senhas (encriptadas) de usurios smb. Verifica o arquivo smb.conf

23.1. INSTALAO DO SAMBA # apt-get install samba

smbclient - Da mesma forma que o SAMBA permite que o Linux atue como servidor para estaes Linux e redes Microsoft, ele tambm permite atuar como estao de trabalho para acessar servidores de ambos os sistemas, sem que nenhuma configurao seja necessria no servidor. Com o smbclient possvel acessar dados em um servidor Windows (lembra o comando net, mas a sintaxe CETAM

171 utilizada similar aos de FTP). Ele pode ser usado para receber e enviar arquivos, listar diretrios, navegar pelos diretrios, renomear e apagar arquivos, entre outros. Diretrios compartilhados por um servidor SAMBA so acessados da mesma forma. Para verificar quais compartilhamentos esto disponveis em um

determinado Host, execute:

$smbclient -L host_desejado

A resposta ser uma lista de servios, ou seja, nomes de dispositivos ou impressoras que podem ser compartilhados com os usurios na rede. A menos que o servidor SMB no tenha itens de segurana configurados, ser solicitada uma senha antes de mostrar as informaes. Exemplo:

smbclient -L servidor1

Para acessar uma pasta compartilhada, basta especificar o caminho na rede, conforme abaixo:

#smbclient //maquina/pasta1 senha <enter>

smbmount - A aplicao smbmount vem inclusa no pacote do SAMBA (samba-client) com a funo de possibilitar a montagem de um compartilhamento de outra mquina localmente.

exemplo: mount -t smbfs -o username=usuario,password=senha //estacao/pasta /local

O diretrio /local deve ser criado antecipadamente.

Com o smbmount a mesma operao acima ficaria:

smbmount //estacao/pasta /local -o username=usuario,password=senha

CETAM

172 Para estaes Win9x/Me, onde o nome do usurio no informado, utilize apenas o parmetro "-o password=senha". Caso o compartilhamento no utilize senha, utilize "-o password=".

smbumount - Utilizado para desmontar os diretrios montados atravs do smbmount. Em alguns casos o comando mount tambm pode ser usado. smbpasswd - O SAMBA permite tambm que as estaes troquem suas senhas de logon, utilizando o smbpasswd. Ele age de forma similar ao comando passwd, mas as senhas so armazenadas no arquivo smbpasswd. possvel ainda alterar a senha dos usurios em um servidor Primrio de um Domnio NT (PDC). Utilizado pelo superusurio, ele permite que contas sejam adicionados ou removidos e atributos sejam alterados. Mantenha o "localhost" especificado no parmetro "allow hosts" para seu perfeito funcionamento.

Exemplo: # smbpasswd -a root

preciso que j tenha sido criado um login de usurio na conta unix, para que possa ser adicionado um usurio ao SAMBA

testparm - L o arquivo smb.conf e apresenta possveis mensagens de erro. Execute-o aps configurar seu Samba para ter certeza de que todos os parmetros esto corretos. O smb.conf dividido basicamente em trs partes: a configurao do servidor SAMBA (parmetros na seo [global], [printers] e [netlogon]), a configurao dos diretrios/pastas pessoais dos usurios (parmetros na seo [homes]) e as demais sees que correspondem aos diretrios compartilhados. Cada seo representada entre colchetes [seo], e os parmetros so seguidos do sinal de igual (=) e o valor ou termo correspondente. Confira abaixo um exemplo do smb.conf para um servidor Samba como PDC da rede:

CETAM

173 [global] comment = Servidor SAMBA workgroup = EMPRESA security = user os level = 100 announce as = NT Server domain logons = yes logon script = %U.bat logon path = //%L/Profiles/%U domain master = yes local master = yes preferred master = yes guest account = nobody encrypt passwords = yes # wins server = 192.168.0.2 wins support = yes debug level = 3 log file = /var/log/samba_log.%u null passwords = no unix password sync = yes socket options = IPTOS_LOWDELAY TCP_NODELAY printcap name = /etc/printcap

[homes] comment = Pastas dos Usuarios public = no browseable = yes writeable = yes hosts deny = 192.168.0.250 [printers] comment = Impressoras Linux public = no browseable = yes CETAM

174 printable = yes read only = yes create mode = 0700 path = /var/spool/samba admin users = admin, usuario1

[netlogon] comment = Compartilhamento de Scripts path = /etc/scripts public = no browseable = yes writeable = no

[publico] comment = Pasta Publica path = /home/publico public = yes browseable = yes writeable = yes

23.2. CONHECENDO OS PARMETROS

23.2.1. Seo [global]


Define as configuraes globais do SAMBA. A relao abaixo apresenta a explicao dos parmetros do exemplo: comment - Comentrio para este Host na Rede. workgroup - Especifica o Domnio ou Workgroup a que o Host pertence na Rede. security - Por padro o SAMBA utiliza a segurana em nvel de usurio (security = user), com opes: security = share - Senhas de acesso sero solicitadas por cada recurso compartilhado e no por usurio, ou seja, cada diretrio ou impressora poder ter CETAM

175 uma senha nica conhecida pelos usurios autorizados. Esta opo geralmente usada p/ estaes de trabalho Linux, onde em diversos casos simplifica o acesso a dados locais quando necessrio. security = user - As permisses so dadas de acordo com o login do usurio, ou atravs dos grupos (@grupo). security = server - O SAMBA tentar validar a senha do usurio enviando os dados para outro servidor SMB, como outro servidor SAMBA ou um servidor Windows. Deve-se incluir o parmetro password server = x.x.x.x na seo [global] do smb.conf. security = domain - Usado se o Host for adicionado a um Domnio Windows atravs do comando smbpasswd. Neste caso as informaes de usurio e senha sero enviadas para o PDC da rede, exatamente como o servidor NT faria. Note que necessrio que a conta do usurio exista tanto no Linux quanto no servidor primrio. os level - Este parmetro no obrigatrio se voc no possui um servidor Linux ou Windows na rede, mas deve ser usado caso tenha um ou mais. A varivel um nmero de 1 a 255, onde 65 a mesma varivel utilizada pelo servidor Windows. Especifique um nmero maior que este (como 100 por exemplo) para garantir que o servidor SAMBA seja eleito na escolha de validao do login das estaes. announce as - Permite especificar o tipo de servidor NetBios (nmbd) que ser divulgado na rede. As opes aceitas pelo SAMBA: "NT Server", "NT Workstation", "Win95". domain logons - Usado para validar o login na rede, apenas para estaes Windows. logon script Indica qual arquivo de logon script ser executado para os usurios. A varivel %u corresponde ao usurio na rede. Deve tambm ser criado um compartilhamento de nome [netlogon] apontando para o diretrio dos scripts. logon path - Indica o caminho do perfil remoto do usurio. A varivel %L corresponde ao nome do servidor NetBios (que pode ser o prprio SAMBA). O logon path til quando usurios costumam efetuar logon em mais de um Host na rede, pois seu perfil trazido com o logon. No caso do exemplo, o diretrio "Profiles" deve conter os scripts (em formato Microsoft usando NET USE e etc) e os scripts devem ser criados com o notepad do Windows, por exemplo, a fim de conservar o formato do arquivo. CETAM

176 domain master - Indica se o Host ser o Domain Master Browser da rede inteira (WAN). local master - Indica se o Host ser o Master Browser da rede local. preferred master - Este parmetro fora a eleio do SAMBA como Master Browser para o workgroup. recomendvel utilizar este parmetro em conjunto com o "domain master = yes" para garantir a eleio. Mas tome cuidado: se voc possui uma rede com servidores Windows e SAMBA e j possui um servidor como Domain Master, no use esta opo e deixe o parmetro "os level = 65" para haver equilbrio. guest account - O SAMBA trabalha melhor em redes Microsoft com a existncia de uma conta guest (visitante em ingls). Por padro a conta usada nobody (a mesma utilizada pelo Apache). wins server - Indica qual o servidor de Wins da rede. Se o prprio Host for o servidor de Wins ento no utilize este parmetro, pois haver um loop e o sistema travar! wins support - Permite ao SAMBA ser o servidor de Wins na rede. Isto significa que o SAMBA ter uma tabela com o ambiente completo da rede, garantindo que as estaes tenham acesso a estas informaes e ganho em velocidade para encontrar e acessar os compartilhamentos e impressoras. O Wins Server deve ser especificado na configurao de rede (TCP/IP) das estaes, indicando o endereo IP do servidor. keep alive - Como mquinas rodando Windows tendem a travar com o passar do tempo, este parmetro usado para verificar o estado da conexo, evitando trfego desnecessrio na rede. Tambm pode ser usado para estaes Linux. debug level - Parmetro usado para dar flexibilidade a configurao do sistema. Permite ao SAMBA trabalhar corretamente com algumas situaes de erro, por exemplo. winpopup command - Especifica qual comando ser executado quando o servidor receber mensagens Winpopup. Aqui, muitas opes podem ser usadas de acordo com a preferncia do Administrador. Se sua rede utiliza mensagens deste tipo, interessante definir um comando para o parmetro, evitando assim possveis mensagens de erro para quem enviou a mensagem ao servidor. CETAM

177 log file - Indica o arquivo de log do SAMBA. A varivel %u corresponde ao nome de logon do usurio. O samba por padro gera arquivos de log em /var/log/samba que indicam, por exemplo, os horrios de logon dos usurios, quem acessou determinado arquivo, etc. Esteja atento para estas informaes para consultas quando necessrio. null passwords - Indica se ser ou no possvel que usurios tenham senha nula de logon (logon sem senha). unix password sync - Se este parmetro for ativado (= yes) ento clientes SMB (como estaes Windows) podero trocar sua senha de login. socket options - Este parmetro permite configuraes extras para o protocolo, possibilitando uma melhor performance do servidor em lidar com os pacotes na rede. printing - Indica qual o sistema de impresso padro utilizado pelo Linux. printcap name - Indica o arquivo para busca das definies das impressoras. load printers - Disponibiliza as impressoras para a rede. hosts allow - Indica quais mquinas tem acesso ao servidor SAMBA. Podese utilizar o endereo IP ou o nome da mquina. Para garantir acesso a toda uma rede, por exemplo, escreva: "hosts allow = 192.168.1.". Este parmetro deve ser usado preferencialmente nas demais sees, mas tambm pode ser usado na seo Global. hosts deny - Como em "hosts allow", mas para restringir o acesso ao servidor SAMBA. Seo [homes] - Define os parmetros para as pastas pessoais dos usurios na rede (home dir): comment - Comentrio para este compartilhamento. public - Tambm conhecido como "guest ok", permite ou no acesso de outros usurios. browseable - Define se o compartilhamento ser ou no visvel para o Ambiente de Rede. Estaes Windows95 verso 4.00.950-C no aceitam esta opo, onde uma possvel soluo utilizar o nome do compartilhamento seguido de $ (teste$ por exemplo), como se faz no Windows. writeable - Indica se o usurio poder ou no escrever em sua pasta pessoal (home dir). CETAM

178

23.2.2. Sees [shares]


Correspondem aos compartilhamentos presentes na rede. Os parmetros abaixo so apenas alguns dos possveis que podem ser utilizados: comment - Comentrio para o compartilhamento. path - Caminho do diretrio compartilhado. valid users - Este parmetro usado para destacar quem ter acesso ao compartilhamento na rede. importante destacar que estaes Win95/98/Me tm diferenas entre si que em muitas situaes representam um problema para acesso e segurana. Acontece algumas vezes de voc definir o "write list" e o "read list" corretamente, mas mesmo assim usurios do "read list" conseguem escrever no compartilhamento (!). Para resolver este problema, inclua o "valid users" indicando os usurios que tm acesso e em seguida inclua o "write list" e o "read list" conforme sua necessidade. writeable - Indica se ser ou no possvel criar ou excluir arquivos ou diretrios do compartilhamento. public / guest ok - Indica se ser ou no permitido o acesso de outros usurios. browseable - Define se o compartilhamento ser ou no visvel para o Ambiente de Rede do Windows (apresentado na rede). write list - Define os usurios e/ou grupos com acesso de escrita no compartilhamento. Para mais de um usurio, separe os nomes por vrgula (user1, user2, etc) e para grupos utilize @ antes do nome do grupo. read list - Como em write list, mas define quem ter permisso de apenas leitura. force create mode - Diz ao SAMBA para forar o tipo de permisso dos arquivos criados (o mesmo que usar o chmod). Esta permisso tem menor prioridade que os parmetros write list e read list. force directory mode - O mesmo que force create mode, mas para os diretrios criados no compartilhamento. admin users - Indica quais so os usurios com permisso completa para o compartilhamento (permisso de root). copy - Permite copiar os parmetros de outra seo, como um template, por CETAM

179 exemplo, til se utiliza compartilhamentos semelhantes. Para alterar parmetros basta inform-los na seo atual. hosts deny - Como em "hosts allow", mas para restringir o acesso ao compartilhamento. hosts allow - Indica quais mquinas podem acessar o compartilhamento. Pode-se utilizar endereo IP ou o nome da mquina. Para garantir acesso a toda uma rede classe C, por exemplo, escreva: "hosts allow = 192.168.1.".

Abaixo temos variveis que podem ser usadas em parmetros: %S Nome do Servio (compartilhamento) atual. %u Nome do usurio. %g Nome do grupo. %H Nome do diretrio pessoal do usurio (home dir). %m Nome da mquina cliente fornecido pelo Netbios. %L Nome do servidor Netbios, permitindo que a configurao desejada seja alterada de acordo com o cliente que vai acessar o sistema. %M Nome Internet da mquina cliente. %a Sistema Operacional da mquina remota, onde os reconhecidos so WfW, Win95, Win2000. %I O endereo IP da mquina cliente. %T Data e horrio. Para que o Samba seja iniciado digite o seguinte comando: # /etc/init.d/samba start Para parar o Samba # /etc/init.d/samba stop

CETAM

180 24. CUPS

A impresso em Unix/Linux no sofre grandes transformaes h muito tempo. Podemos encontrar ainda em uso o lpd (line printer daemon), soluo com inmeras limitaes e no compatvel com o IPP (Internet Printing Protocol), que a base de gerenciamento de jobs (servios) e filas de impresso, ficando limitado a certa quantidade de impressoras. Com o Common Unix Printing System (CUPS) podemos introduzir uma soluo de impresso universal para a rede. O CUPS um gerenciador de impresso que pode ser utilizado via web (HTTP), atravs do qual podemos adicionar excluir, alterar e configurar impressoras, bem como administrar jobs de impresso de uma ou de todas as impressoras compartilhadas na rede. Proporciona, ainda, aos usurios de Unix/Linux uma impresso eficiente e confivel, por ser compatvel com o IPP em modo nativo e por possuir interface para LPD, SMB (Server Message Block) e JetDirect. O CUPS oferece navegao pelas impressoras da rede e usa arquivos PostScript Printer Description (PPD).

24.1. INSTALANDO O CUPS

# apt-get install cupsys foomatic-bin foomatic-db # apt-get install cupsys-bsd cupsys-driver-gimpprint

24.1.1. Configurando o arquivo "cupsd.conf"

Para que outras mquinas de sua rede possam acessar o servidor de impresso CUPS, ser necessrio liberar o acesso ao mesmo. Para isso, so necessrias algumas alteraes no arquivo /etc/cups/cupsd.conf . Existem muitas configuraes neste arquivo, aqui esto descritas apenas algumas delas. Para uma melhor otimizao, preciso uma anlise mais detalhada das opes deste arquivo.

CETAM

181 Para abrir o arquivo: # vi /etc/cups/cupsd.conf Na linha ServerName, coloque o nome de sua mquina, ServerName nomedamquina Na linha: HostNameLookups ative a opo colocando ON Se houver necessidade de se criar um grupo para realizar as operaes de gerenciamento de impressoras, adicionar na linha SystemGroup o nome do grupo criado. SystemGroup nomedogrupo Na linha Allow From 192.168.0.0/255.255.255.0, substitua pelo IP de sua rede, iniciando pela identificao de sua rede. Allow From 192.168.* Na linha Restrict Access to Local Domain, colocar o IP da rede para acesso de configurao em qualquer ponto da rede. Allow From 172.16.* Se houver mais de um servidor CUPS em sua rede, talvez seja necessrio que de um s servidor voc tenha acesso s outras impressoras instaladas, mas somente para efeitos de gerenciamento. Nas linhas Browse Address e Browse Allow, acrescente o endereo IP dos outros servidores. BrowseAddress 192.168.X.Y BrowseAllow from 192.168.X.Y Onde X.Y indica o endereo IP dos servidores. Aps efetuadas as alteraes e salvo o arquivo cupsd.conf, devemos reinicializar o servio.

CETAM

182

24.1.2. Configurando o CUPS pelo navegador

O CUPS responde pela porta padro 631. Utilizando qualquer browser, basta especificar na barra de endereos a seguinte localizao: http://localhost:631 (se as configuraes no arquivo cupsd.conf forem efetuadas digitando em vez de localhost o endereo IP do servidor, ter o mesmo efeito, sempre seguido da porta do CUPS - 631). Isto abrir uma janela em seu navegador, de qualquer ponto da rede (Figura 24.1).

Figura 24.1: Configurao do CUPS via browse.

O prximo passo configurarmos um compartilhamento de impressora em um Servidor de Impresso via browser. Clicando sobre a opo Administration (esta rea restrita ao administrador, aparecer uma caixa de dilogo pedindo para que seja informado um login, que ser "root" e sua senha). Na janela existem vrias opes de administrao. Clique em Add Printer para acrescentar um novo compartilhamento de impressora. Em seguida, dever ser informado o nome do compartilhamento ou da fila de impresso (Name), a localizao (Location) e uma descrio deste

compartilhamento (Description). Sempre, aps o trmino de cada operao, necessrio clicar em continue. CETAM

183 Escolher um dispositivo (Device) para o compartilhamento. Este pode ser portas paralelas, seriais, filas de impresses remotas de outros servidores de impresso, impressoras compartilhadas com o LPD e existe possibilidade de imprimir para arquivo. Aps a seleo do dispositivo pelo administrador, como uma impresso remota ou arquivo, o CUPS pedir informaes adicionais sobre este compartilhamento (Figura 24.2).

Figura 24.2: Configurao do dispositivo.

Aps informaes de fila e dispositivo do novo compartilhamento, devemos escolher a marca e o modelo da impressora compartilhada. Definindo essas informaes, a impressora compartilhada foi adicionada com sucesso, onde o nome do compartilhamento escolhido um link que leva at as informaes desse compartilhamento. Todas as operaes anteriores podero ser executadas de qualquer estao de trabalho, desde que esta esteja acessando via web o servidor de impresso onde a impressora ser compartilhada. Automaticamente, esse compartilhamento de impressora ser enviado para toda a rede, onde todos os terminais e outros servidores de impresso a reconhecero automaticamente, no havendo

necessidade de fazer configuraes especficas.

CETAM

184 Para listar todas as impressoras compartilhadas, clique sobre a opo Printers localizada na barra de menu superior (Figura 24.3).

Figura 24.3: Menu Superior

24.1.2.1. Configurao de impressora

Podem-se alterar algumas configuraes da impressora, como tamanho do papel e resoluo. Para isso, aponte o browser para o endereo do Servidor de Impresso, liste as impressoras clicando em Printers e clique sobre a opo Configure Printer do compartilhamento desejado (Figura 24.4). Ao listarmos as impressoras, todas as impressoras encontradas sero apresentadas, mesmo que pertenam a outros servidores. O boto Configure Printer tambm estar presente nessas impressoras. Porm, as alteraes no tero efeito, pois o compartilhamento pertence a outro servidor de impresso.

Figura 24.4: Configurao da impressora.

Para apagar uma impressora, clique na opo Printers para listar as impressoras compartilhadas e clique sobre a opo Delete Printer (Figura 24.4). Apenas as impressoras compartilhadas no Servidor de Impresso que o administrador est logado podem ser apagadas. Para as impressoras remotas, pode-se apag-las, porm no ter nenhum efeito. Deve-se estar logado no servidor que elas foram inseridas para realmente poder apag-las. CETAM

185 25. NIS

25.1. CONCEITOS INICIAIS um servio de rede que permite centralizar diversas informaes em um servidor para que sejam distrudas pelos clientes da rede a partir deste ponto nico, facilitando a administrao da rede. Tipicamente estas informaes incluem: Contas de usurios; Atributos de usurios; Outras informaes.

As mquinas cliente que consultam o servidor NIS so ditas participantes de um domnio NIS. Este domnio tem um nome qualquer, e no deve ser confundido com o domnio de servidores DNS, pois so completamente separados e tm propsitos diferentes. 25.2. CONFIGURAO DO SERVIDOR NIS

Cada uma das bases disponveis atravs do servidor NIS chamada de mapa. Estes mapas so gerados por ferramentas instaladas no servidor NIS a partir de arquivos do sistema j existentes. Por exemplo, o mapa de usurios gerado a partir do arquivo /etc/passwd e o mapa de grupos a partir do arquivo de grupos (/etc/group).

25.2.1 Instalando o nis


# apt-get install nis

Edite o arquivo /etc/init.d/nis mudando o valor da varivel NISSERVER para master.

NISSERVER=master

CETAM

186 # /etc/init.d/nis restart

Devemos criar a base de dados do servidor NIS, para isso usamos o comando, ypinit.

# /usr/lib/yp/ypinit -m

Entre com o nome do servidor nis e pressione crtl-D.

Para testarmos o servidor precisaremos de um cliente NIS, que pode ser o prprio servidor.

25.3 CONFIGURAO DO CLIENTE NIS

25.3.1 Instalando o nis


Para instalar o cliente usa-se o mesmo pacote do servidor. # apt-get install nis Definir o nome do domnio NIS. Ex: Laboratorio

Configuraes dos arquivos Acrescentar no final dos arquivos /etc/passwd, /etc/shadow e /etc/group o sinal de +.

Editar o arquivo yp.conf Acrescentando no final do arquivo ypserver <ip do servidor nis>

Restartar o servio de NIS /etc/init.d/nis restart

CETAM

187 Mapear o home do servidor usando o arquivo fstab. Acrescentar no final do arquivo Ip ou nome do servidor:/home /home nfs rw 0 0

No shell digite mount -a

Agora tente logar na mquina usando um usurio cadastrado no NIS.

CETAM

188 26. LDAP (LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL)

Como o nome sugere, ele um protocolo leve para acessar servios de diretrios. O LDAP roda sobre TCP/IP ou outros servios de transferncias baseados em conexo, implementa uma estrutura comum e neutra de plataforma para servios de informaes do tipo necessrio por sistemas operacionais e aplicaes. Apesar de servios similares existirem, nenhum to largamente adotado ou implementado em tantas plataformas e aplicaes. LDAP um protocolo ABERTO, definido e padronizado pela RFC 1777. Sua funo estabelecer conexes e trocar informaes com um Servio de Diretrios. No caso o DIRETRIO contm informaes sobre: usurios, senhas, permisses, chaves de criptografia e demais informaes necessrias.

26.1. CARACTERISTICAS

Controle

Centralizado

de

Usurios:

As

contas

de

usurios

so

independentes do aplicativo usado, ou seja, no ser mais necessrio criar contas de e-mail no servidor de correio, contas de usurio no servidor da rede e contas de aplicativos em cada sistema que a organizao utiliza. Todos os usurios so cadastrados uma nica vez no servidor de autenticao, permitindo que as demais aplicaes consultem as informaes de usurio, senha, permisses e etc. O mesmo mecanismo funciona tambm nas operaes de edio e remoo de usurios, bastando alter-las em um nico lugar.

CETAM

189 26.2. ESTRUTURA LDAP

Figura 25.1: Estrutura LDAP.

c= Country o= Organization ou= Unit Organizational cn= common name dn= distiguished name 26.3. INSTALAO LDAP Os pacotes necessrios para a instalao do LDAP so: #apt-get install slapd #apt-get install ldaputils

CETAM

190 26.4. OPENLDAP

Aps instalar o Openldap, ser chamada a configurao do servidor ldap. Deve-se escolher como a base do LDAP ser criada. Deve ser escolhido o padro para o SUFIXO do LDAP, esse sufixo ser utilizado nas pesquisas e autenticao no diretrio ldap. Indique uma senha para o administrador, ele ser o usurio responsvel por fazer as alteraes no diretrio.

26.4.1. Arquivos de configurao do OPENLDAP


/etc/ldap/slapd.conf Configurao do servidor LDAP /etc/ldap/lapd.conf /etc/ldap/schema Configurao do cliente LDAP Diretrio onde estao todos os schemas do LDAP

26.4.2. Configurao do Openldap


Editando o arquivo de configurao do Openldap: # vi /etc/ldap/slapd.conf # Opcoes Globais

include include include include

/usr/local/etc/openldap/schema/core.schema /usr/local/etc/openldap/schema/cosine.schema /usr/local/etc/openldap/schema/inetorgperson.schema /usr/local/etc/openldap/schema/nis.schema

pidfile argsfile

/usr/local/var/run/slapd.pid /usr/local/var/run/slapd.args

loglevel

256

allow

bind_v2

CETAM

191 # Opcoes do Banco de Dados

database suffix rootdn

bdb "c=BR" "cn=Manager,c=BR"

rootpw directory

{SSHA}kA5ulipNuhCY3eWxpwvDVuUOmZ3+IGJB /usr/local/var/openldap-data

# ACL's

access to attrs="userPassword" by dn="cn=Manager,c=BR" write by * auth

access to * by dn="cn=Manager,c=BR" write by * read

# Indices de pesquisa

index index

objectClass cn,sn,mail

eq eq,sub

26.4.3. Carregando o servio do Openldap


Para iniciar o daemon do LDAP basta apenas execut-lo: # /etc/init.d/slapd start

26.4.4. Como fazer a indexo da base LDAP


# slapindex

CETAM

192 til quando voc tem uma base pronta e quer export-la para outro servidor, basta voc copiar o diretrio de onde esteja a base e no novo servidor executar este comando para que a base seja reindexada.

26.5. AUTENTICANDO CLIENTE NO LDAP

Bibliotecas necessrias

# apt-get install libnss-ldap # apt-get install libpam-ldap

OBS: Na instalaao dos pacotes no requer autenticao e no requer gravao pelo dono.

# cd /etc # cp libnss-ldap.conf # vi libnss-ldap.conf # vi pam_ldap.conf localhost <ip do servidorLDAP> base dc=BR pam_ldap.conf

OBS: Configurar nos dois arquivos somente o localhost do servidor LDAP e a base do LDAP.

# cd /etc # vi nisswitch.conf

passwd: group: shadow:

compat ldap compat ldap compat ldap

CETAM

193 26.4.4.1. Criar arquivo ldap.auth com o conteudo. # cd /etc/pam.d # vi ldap.auth auth auth auth auth required pam_securetty.so required pam_nologin.so sufficient pam_ldap.so required pam_unix_auth.so use_first_pass

account sufficient pam_ldap.so account required pam_unix_acct.so password sufficient pam_ldap.so password required pam_unix_passwd.so use_first_pass md5 shadow session required pam_mkhomedir.so session required pam_unix_session.so

Editar arquivo login, comentando as seguintes linhas 31, 52,53,75 #cd /etc/pam.d #vi login

@include common-auth @include common-account @include common-session @include common-passwd

ainda no arquivo login adicionar a seguinte linha @include ldap.auth

Editar arquivo do ambiente grfico #vi /etc/pam.d/gdm Comentar todas as linhas e adicionar o arquivo ldap.auth @include ldap.auth

CETAM

194 26.5. FERRAMENTA DE ADMINISTRAO WEB PARA O OPENLDAP

Agora que o LDAP est rodando, poderemos manipular nossos usurios via WEB utilizando ferramentas Opensource, portanto, iremos utilizar PHPLDAPADMIN. O phpldapadmin uma interface web onde podemos visualizar e administrar o banco do Openldap, assim como sua estrutura de objetos. No entanto, nada to poderoso se comparado aos comandos em modo texto. Ele usar a porta 389 do protocolo IP aberta pelo slapd. Apesar de ser configurvel esta diretiva. # tar xzvf phpldapadmin-0.9.4b.tar.gz -C /var/www/ # cd /var/www/ # mv phpldapadmin-0.9.4b ldap # cd /var/www/ldap # cp config.php.example config.php

Editamos o arquivo config.php, e alterar as seguintes linhas (a princpio)

# vi config.php $servers[$i]['host'] = 'localhost'; $servers[$i]['base'] = 'cn=Manager,dc=br' $servers[$i]['login_dn'] = 'dc=br';

Para utilizar a ferramenta phpadmin ser necessrio instalar os seguintes pacotes no seu servidor

#apt-get install apache #apt-get install php4 #apt-get install php4-ldap

OBS: ser necessrio configurar o apache para carregar os mdulos do php4 no arquivo httpd.conf localizado no diretorio /etc/apache.

CETAM

195 27. RESOLVEDOR DE NOMES (DNS)

DNS significa Domain Name System (sistema de nomes de domnio). O DNS converte os nomes de mquinas para endereos IPs que todas as mquinas da Internet possuem. Ele faz o mapeamento do nome para o endereo e do endereo para o nome e algumas outras coisas. Um mapeamento simplesmente uma associao entre duas coisas, neste caso um nome de computador, como www.cipsga.org.br, e o endereo IP desta mquina (ou endereos) como 200.245.157.9. O DNS foi criado com o objetivo de tornar as coisas mais fceis para o usurio, permitindo assim, a identificao de computadores na Internet ou redes locais atravs de nomes ( como se tivssemos apenas que decorar o nome da pessoa ao invs de um nmero de telefone). A parte responsvel por traduzir os nomes como www.nome.com.br em um endereo IP chamada de resolvedor de nomes. O resolvedor de nomes pode ser um banco de dados local (controlador por um arquivo ou programa) que converte automaticamente os nomes em endereos IP ou atravs de servidores DNS que fazem a busca em um banco de dados na Internet e retornam o endereo IP do computador desejado. Um servidor DNS mais difundido na Internet o bind.

27.1. O QUE UM NOME?

Voc deve estar acostumado com o uso dos nomes de computadores na Internet, mas pode no entender como eles so organizados. Os nomes de domnio na Internet uma estrutura hierrquica, ou seja, eles tm uma estrutura semelhante aos diretrios de seu sistema. Um domnio uma famlia ou grupo de nomes. Um domnio pode ser colocado em um subdomnio. Um domnio principal um domnio que no um subdomnio. Os domnios principais so especificados na RFC-920. Alguns exemplos de domnios principais comuns so:

CETAM

196 COM - Organizaes Comerciais EDU - Organizaes Educacionais GOV - Organizaes Governamentais MIL - Organizaes Militares ORG - Outras Organizaes NET - Organizaes relacionadas com a Internet

Identificador do Pas - So duas letras que representam um pas em particular. Cada um dos domnios principais tem subdomnios. Os domnios principais baseados no nome do pas so freqentemente divididos em subdomnios baseado nos domnios .com, .edu, .gov, .mil e .org. Assim, por exemplo, voc pode finaliz-lo com: com.au e gov.au para organizaes comerciais e governamentais na Austrlia; note que isto no uma regra geral, as organizaes de domnio atuais dependem da autoridade na escolha de nomes de cada domnio. Quando o endereo no especifica o domnio principal, como o endereo www.unicamp.br, isto quer dizer que uma organizao acadmica. O prximo nvel da diviso representa o nome da organizao. Subdomnios futuros variam em natureza, freqentemente o prximo nvel do subdomnio baseado na estrutura departamental da organizao, mas ela pode ser baseada em qualquer critrio considerado razovel e significante pelos administradores de rede para a organizao. A poro mais a esquerda do nome sempre o nome nico da mquina chamado hostname, a poro do nome a direita do hostname chamado nome de domnio e o nome completo chamado nome do domnio completamente qualificado (Fully Qualified Domain Name). Usando o computador www.debian.org.br como exemplo:

br - Pas onde o computador se encontra org - Domnio principal debian - Nome de Domnio www - Nome do computador

CETAM

197 A localizao do computador www.debian.org.br atravs de servidores DNS na Internet obedece exatamente a seqncia de procura acima. Os administradores do domnio debian.org.br podem cadastrar quantos sub-domnios e computadores quiserem (como www.non-us.debian.org.br ou cvs.debian.org.br).

27.2. INSTALAO

O servidor de nomes que est incluso na maioria das distribuies Linux o Bind.

# apt-get install bind9 dnsutils

O Bind quando instalado j fica preconfigurado para ser um servidor de nomes somente para cache, onde o mesmo deve ser capaz de encontrar as respostas s pesquisas de nomes e endereos e deve guardar as respostas para a prxima pesquisa em que sejam necessrias. Desta maneira o tempo de espera diminuir significativamente, especialmente com se tem uma conexo lenta.

27.2.1. O arquivo /etc/bind/named.conf


Para configuramos um servidor de nomes primeiramente vamos criar nossas zonas dentro do named.conf

// prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; };

zone "localhost" { type master; file "/etc/bind/db.local"; }; CETAM

198 zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; };

zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; };

zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; };

zone meudominio.com.br { type master; file /etc/bind/db.meudominio ; };

zone 0.168.192.in-addr.arpa { type master; file /etc/bind/rev.meudominio ; };

Depois devemos criar os arquivos de zonas.

27.2.2. Zona do DNS.


# vi /etc/bind/db.meudominio

CETAM

199 $TTL @ IN SOA meudominio.com.br. 2004090201 ; serial 3M ; refresh 15M ; retry 1W ; expiry 1 D ); @ @ ns mail www ftp webmail IN IN NS ns.meudominio.com.br. root.meudominio.com.br. (

MX 5 mail.meudominio.com.br. IN IN IN IN IN A A A A 192.168.0.235 192.168.0.254 192.168.0.201 192.168.0.202 mail.meudominio.com.br

CNAME

27.2.3 Zona reversa


# vi rev.meudominio

$TTL @ IN SOA meudominio.com.br. 2004090201 ; serial 3M ; refresh 15M ; retry 1W ; expiry 1 D ); @ @ IN IN NS ns.meudominio.com.br. root.meudominio.com.br. (

MX 5 mail.meudominio.com.br. PTR ns PTR mail PTR www PTR ftp IN CNAME mail.meudominio.com.br. CETAM

235 IN 254 IN 201 IN 202 IN webmail

200 Pronto, agora s reiniciar o servio do bind com o comando.

# /etc/init.d/bind9 restart

Depois temos que configurar o cliente de nossa mquina para fazer consultas ao nosso servidor de nomes.

# vi /etc/resolv.conf seach [seudominio] nameserver [ipdoseuservidor]

Para testarmos se funcionou podemos usar o comando dig.

# dig www.meudominio.com.br # dig 192.168.0.201

ou com o comando host -v .

# host -v www.meudominio.com.br # host -v 192.168.0.201

CETAM

201 28. SERVIDOR WEB

O servidor web um programa responsvel por disponibilizar pginas, fotos, ou qualquer outro tipo de objeto ao navegador do cliente. Ele tambm pode operar recebendo dados do cliente, processando e enviando o resultado para que o cliente possa tomar a ao desejada (como em aplicaes CGI's, banco de dados web, preenchimento de formulrios, etc). O Apache um servidor Web extremamente configurvel, robusto e de alto desempenho desenvolvido por uma equipe de voluntrios (conhecida como Apache Group) buscando criar um servidor web com muitas caractersticas e com cdigo fonte disponvel gratuitamente via Internet. Segundo a Netcraft

(http://www.netcraft.com/survey/), o Apache mais usado que todos os outros servidores web do mundo juntos.

28.1. CARACTERSTICAS DO APACHE

Abaixo esto algumas caractersticas que fazem esse servidor web o preferido entre os administradores de sistemas:

Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc.

Suporte a autorizao de acesso podendo ser especificadas restries de acesso separadamente para cada endereo/arquivo/diretrio

acessado no servidor.

Autenticao requerendo um nome de usurio e senha vlidos para acesso a alguma pgina/sub-diretrio/arquivo (suportando criptografia via Crypto e MD5).

Negociao de contedo, permitindo a exibio da pgina Web no idioma requisitado pelo Cliente Navegador.

Suporte a tipos mime. Personalizao de logs. Mensagens de erro. Suporte a virtual hosting ( possvel servir 2 ou mais pginas com endereos/ portas diferentes atravs do mesmo processo ou usar mais CETAM

202 de um processo para controlar mais de um endereo).


Suporte a IP virtual hosting. Suporte a name virtual hosting. Suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexivelmente configurveis).

Suporte a proxy e redirecionamentos baseados em URLs para endereos Internos.

Suporte a criptografia via SSL,Certificados digitais Mdulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem necessidade de recompilao do programa.

28.2. INSTALAO

# apt-get install apache apache-doc

28.2.1. Iniciando o servidor/reiniciando/recarregando a configurao.


O Apache pode ser executado tanto pelo servidor Inetd ou como um Daemon. A inicializao de programas pelo Inetd uma boa estratgia quando voc precisa de um controle de acesso bsico (o fornecido pelo tcpd), e o servio pouco usado na mquina. A segurana de um servio iniciado pelo inetd pode ser substituda e melhorada por um firewall bem configurado, garantindo facilidades extras como um relatrio de trfego para a porta do servidor web, por exemplo. Mesmo assim se o servidor Apache estiver rodando como daemon e estiver ocioso, ele ser movido para swap liberando a memria RAM para a execuo de outros programas. Neste captulo ser assumido seu funcionamento do Apache como Daemon, que o mtodo de funcionamento recomendado para sites de grande trfego onde ele freqentemente requisitado e considerado um servio crtico. O mtodo padro para iniciar programas como daemons na Debian atravs dos diretrios /etc/rc?.d. Cada diretrio deste contm os programas que sero executados/interrompidos no nvel de execuo "?" (rc1.d/, rc2.d/ ...). O CETAM

203 contedo destes diretrios so links para os scripts originais em /etc/init.d/programa, o nosso programa alvo /etc/init.d/apache. O /etc/init.d/apache aceita os seguintes parmetros:

start - Inicia o Apache stop - Finaliza o Apache restart - Reinicia o Apache, efetuando uma pausa de 5 segundos

entre a interrupo do seu funcionamento e reinicio.

reload - Recarrega os arquivos de configurao do Apache, as

alteraes entram em funcionamento imediatamente.

reload-modules - Recarrega os mdulos. Basicamente feito um

restart no servidor.

force-reload - Faz a mesma funo que o reload

Para reiniciar o Apache usando o /etc/init.d/apache, digite:

# ./etc/init.d/apache restart ou # cd /etc/init.d;./apache restart

Na realidade, o que o /etc/init.d/apache faz interagir diretamente com o shell script apachectl. O apachectl recebe os parmetros enviados pelo usurio e converte para sinais que sero enviados para o binrio apache. Da mesma forma ele verifica os cdigos de sada do apache e os transforma em mensagens de erro legveis para o usurio comum. Os seguintes comandos so aceitos pelo apachectl:

httpd -server/start - Inicia o Apache stop - Finaliza o Apache (enviando um sinal TERM) restart - Reinicia o Apache (enviando um sinal HUP) graceful - Recarrega os arquivos de configurao do Apache (enviando um sinal USR1)

fullstatus - Mostra o status completo do servidor Apache (requer o lynx e o mdulo mod_status carregado).

status - Mostra o status do processo do servidor Apache (requer o lynx e CETAM

204 o mdulo mod_status carregado).

configtest - Verifica se a sintaxe dos arquivos de configurao est OK (executa um apache -t).

28.2.3. Adicionando uma pgina no Apache


Existem dois tipos de pginas que podem ser adicionadas ao Apache: a pgina raiz e sub-pginas.

Pgina Raiz

A pgina raiz especificada atravs da diretiva DocumentRoot e ser mostrada quando se entrar no domnio principal, como http://focalinux.cipsga.org.br. Na configurao padro do Apache, DocumentRoot aponta para o diretrio /var/www. Este diretrio ser assumido como raiz caso os diretrios no sejam iniciados por uma /:

home/focalinux - Aponta para /var/www/home/focalinux /home/focalinux - Aponta para /home/focalinux

Este diretrio deve conter um arquivo de ndice vlido (especificado pela diretiva DocumentIndex no srm.conf) e permisses de acesso vlidas no arquivo access.conf para autorizar o acesso as pginas em /var/www.

Sub-pginas

Sub-pginas so armazenadas abaixo do diretrio da Pgina raiz, como http://focalinux.cipsga.org.br/download. Elas podem ser um subdiretrio da pgina principal em /var/www ou serem criadas atravs da diretiva Alias no arquivo srm.conf. Caso seja um subdiretrio, as permisses de acesso de /var/www sero herdadas para este subdiretrio, mas tambm podero ser modificadas com a especificao de uma nova diretiva de acesso. Atravs da diretiva Alias a pgina pode estar localizada em outro diretrio do disco (at mesmo outro sistema de arquivos) e as permisses de acesso devero ser definidas para aquela pgina. CETAM

205 Para criar um endereo http://focalinux.cipsga.org.br/iniciante que aponta para o diretrio /home/focalinux/download/iniciante no disco local, basta usar a seguinte diretiva no srm.conf:

Alias /iniciante /home/focalinux/download/iniciante

Pode ser necessrio permitir o acesso a nova pgina caso o servidor tenha uma configurao restritiva por padro. Aps isto, faa o servidor httpd reler os arquivos de configurao ou reinici-lo. estar Aps isto, acessvel a pgina via

/home/focalinux/download/iniciante http://focalinux.cipsga.org.br/iniciante.

OBS: Caso inclua uma / no diretrio que ser acessvel via URL, o endereo somente estar disponvel caso voc entre com / no final da URL:

Alias /doc/ /usr/doc/

diretrio

/doc

somente o uso

poder de

ser

acessado

usando

http://focalinux.cipsga.org.br/doc/,

http://focalinux.cipsga.org.br/doc

retornar uma mensagem de URL no encontrada.

28.2.4. Virtual Hosts


Virtual Hosts (sites virtuais) um recurso que permite servir mais de um site no mesmo servidor. Podem ser usadas diretivas especficas para o controle do site virtual, como nome do administrador, erros de acesso a pgina, controle de acesso e outros dados teis para personalizar e gerenciar o site. Adcionamos a diretiva NameVirtualHost para dizer qual o endereo IP do servidor que est servindo os virtual hosts . Veja o exemplo de configurao:

CETAM

206 NameVirtualHost 200.200.200.10

<VirtualHost www.site.com.br > ServerAdmin admin@site.com.br ServerName www.site.com.br DocumentRoot /var/www/site.com.br ErrorLog /var/log/apache/site.com.br-error.log AccessLog /var/log/apache/site.com.br-access.log </VirtualHost>

A diretiva NameVirtualHost diz que ser usado virtual hosts baseados em nome servidos pela mquina com IP 200.200.200.10. Os parmetros dentro do bloco das diretivas <VirtualHost > so especficas somente no site virtual especificado, caso contrrio os valores padres definidos no arquivo de configurao sero usados. Digite apache -S para ver suas configuraes de virtual hosts atual. Se sua inteno criar um grande nmero de virtual hosts que sero servidos pela mesma mquina, o uso da expanso %0 e diretivas VirtualDocumentRoot e

VirtualScriptAlias so recomendados: NameVirtualHost 200.200.200.10

<VirtualHost www.site1.com.br> VirtualDocumentRoot /var/www/%0 VirtualScriptAlias /var/www/%0/cgi-bin AccessLog log/apache/site1/access.log ErrorLog log/apache/site1/error.log </VirtualHost> ATENO importante que os endereos especificados nas diretivas ServerName (www.site1.com.br) resolvam o endereo IP da diretiva VirtualHost (200.200.200.10). Isto deve ser feito via DNS ou nos arquivos /etc/hosts.

CETAM

207 Exemplo de arquivo de configurao do Apache comentado: ## ## httpd.conf -- Arquivo de configurao do servidor httpd Apache ## # # Baseado nos arquivos de configurao originais do servidor NCSA por Rob # McCool. # Modificado para distribuio junto ao guia Foca GNU/Linux Avanado # http://focalinux.cipsga.org.br/ <gleydson@cipsga.org.br> # # Este o arquivo de configurao principal do servidor Apache. Ele contm as # diretivas de configurao que do ao servidor suas instrues. # Veja <http://www.apache.org/docs/> para informaes detalhadas sobre as # diretivas. # # NO leia simplesmente as instrues deste arquivo sem entender o que # significam # e o que fazem, se no tiver certeza do que est fazendo consulte a # documentao # on-line ou leia as sees apropriadas do guia. Voc foi avisado. # # Aps este arquivo ser processado, o servidor procurar e processar o arquivo # /etc/apache/srm.conf e ento /etc/apache/access.conf # a no ser que voc tenha modificado o nome dos arquivos acima atravs das # diretivas ResourceConfig e/ou AccessConfig neste arquivo. # # Configurao e nomes de arquivos de log: Se os nomes de arquivos que # especificar para os arquivos de controle do servidor iniciam com uma # "/", o servidor usar aquele caminho explicitamente. Se os nomes *no* # iniciarem com uma "/", o valor de ServerRoot adicionado -- assim # "logs/foo.log" com ServerRoot ajustado para "/usr/local/apache" ser # interpretado pelo servidor como "/usr/local/apache/logs/foo.log". CETAM

208 # # Originalmente por Rob McCool # modificado por Gleydson Mazioli da Silva para o guia Foca GNU/Linux

# Carga dos Mdulos de Objetos Compartilhados: # Para voc ser capaz de usa a funcionalidade de um mdulo que foi construdo # como um mdulo compartilhado, ser necessrio adicionar as linhas # 'LoadModule' correspondente a sua localizao, assim as diretivas que os # mdulos contm estaro disponveis _antes_ de serem usadas. # Exemplo:

# # ServerType pode ser inetd, ou standalone. O modo Inetd somente suportado # nas plataformas Unix. O modo standalone inicia o servidor como um daemon. #

ServerType standalone

# Se estiver executando a partir do inetd, v at a diretiva "ServerAdmin".

# Port: A porta que o servidor standalone escutar. Para portas < 1023, ser # necessrio o servidor funcionando como root inicialmente.

Port 80

# # HostnameLookups: Registra os nomes DNS dos clientes ou apenas seus endereos # IP's # ex., www.apache.org (on) ou 204.62.129.132 (off). # O valor padro off porque permitir menos trfego na rede. Ativando # esta opo significa que cada acesso de um cliente resultar em # NO MNIMO uma requisio de procura ao servidor de nomes (DNS). CETAM

209 #

HostnameLookups off

# Caso desejar que o servidor http seja executado como um usurio ou grupo # diferente voc deve executar o httpd inicialmente como root e ele modificar # sua ID para a especificada.

# User/Group: O nome (ou #nmero) do usurio/grupo que executar o servidor # httpd. # No SCO (ODT 3) use "User nouser" e "Group nogroup" # No HPUX voc pode no ser capaz de usar memria compartilhada como nobody, e # sugerido que seja criado um usurio www e executar o servidor httpd como # este usurio, adequando as permisses onde necessrias.

User www-data Group www-data

# ServerAdmin: Seu endereo de e-mail, onde os problemas com o servidor devem # ser enviadas. Este endereo aparecer nas mensagens de erro do servidor. ServerAdmin gleydson@cipsga.org.br

# # ServerRoot: O topo da rvore de diretrios onde os arquivos de configurao # do servidor, erros, e log so mantidos. # # NOTA: Se tiver a inteno de colocar isto em um sistema de arquivos montado # em um servidor NFS (ou outra rede) ento por favor leia a documentao do # LockFile # (disponvel em <http://www.apache.org/docs/mod/core.html#lockfile >); # e se salvar de vrios problemas. # CETAM

210 # No adicione uma barra no fim do caminho do diretrio. #

ServerRoot /etc/apache

# BindAddress: Voc pode usar esta opo em virtual hosts. Esta # opo usada para dizer ao servidor que endereo IP escutar. Ele pode # conter ou "*", um endereo IP, ou um nome de domnio completamente # qualificado FQDN). Veja tambm a diretiva VirtualHost.

BindAddress *

# # Suporte a Objetos Compartilhados Dinamicamente (DSO - Dynamic Shared Object) # # Para ser capaz de usar a funcionalidade de um mdulo que foi compilado como # um mdulo DSO, voc ter que adicionar as linhas 'LoadModule' correspondentes # nesta localizao, assim as diretivas contidas nela estaro disponveis # _antes_ de serem usadas. Por favor leia o arquivo README.DSO na distribuio # 1.3 do Apache para mais detalhes sobre o mecanismo DSO e execute o comando # "apache -l" para a lista de mdulos j compilados (estaticamente linkados e # assim sempre disponveis) em seu binrio do Apache. # # Please keep this LoadModule: line here, it is needed for installation. # LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so # LoadModule env_module /usr/lib/apache/1.3/mod_env.so LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so # LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule status_module /usr/lib/apache/1.3/mod_status.so # LoadModule info_module /usr/lib/apache/1.3/mod_info.so CETAM

211 # LoadModule includes_module /usr/lib/apache/1.3/mod_include.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule php3_module /usr/lib/apache/1.3/libphp3.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so # LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so # LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so # LoadModule action_module /usr/lib/apache/1.3/mod_actions.so # LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so # LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so # LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so # LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so # LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so # LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so # LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so # LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so # LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so # LoadModule sys_auth_module /usr/lib/apache/1.3/mod_auth_sys.so # LoadModule put_module /usr/lib/apache/1.3/mod_put.so # LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so # LoadModule allowdev_module /usr/lib/apache/1.3/mod_allowdev.so # LoadModule auth_mysql_module /usr/lib/apache/1.3/mod_auth_mysql.so # LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so # LoadModule eaccess_module /usr/lib/apache/1.3/mod_eaccess.so # LoadModule roaming_module /usr/lib/apache/1.3/mod_roaming.so CETAM

212 # # ExtendedStatus: Controla de o Apache gerar detalhes completos de status # (ExtendedStatus On) ou apenas detalhes bsicos (ExtendedStatus Off) quando o # manipulador (handler) "server-status" for usado. O padro Off. # ExtendedStatus on

# # ErrorLog: A localizao do arquivo de log de erros. # Se no estiver especificando a diretiva ErrorLog dentro de <VirtualHost>, # as mensagens de erros relativas aos hosts virtuais sero registradas neste # arquivo. Se definir um arquivo de log de erros para <VirtualHost>, as # mensagens relativas ao servidor controlados por ela sero registradas l e # no neste arquivo. # ErrorLog /var/log/apache/error.log

# # LogLevel: Controla o nmero de mensagens registradas no ErrorLog. # Facilidades possveis incluem: debug, info, notice, warn, error, crit, # alert, emerg. # Veja as facilidades na seo do guia sobre o syslog para detalhes # LogLevel warn

# As seguintes diretivas definem alguns formatos de nomes que sero usadas com a # diretiva CustomLog (veja abaixo).

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %v" full LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %P %T" debug CETAM

213 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # # A localizao e formato do arquivo de log de acesso (definida pela diretiva # LogFormat acima). # Se no definir quaisquer arquivos de log de acesso dentro de um # <VirtualHost>, elas sero registradas aqui. Se for definida dentro # de <VirtualHost> o arquivo de log de acesso ser registrado no # arquivo especificado na diretiva e no aqui. # #CustomLog /var/log/apache/access.log common

# Se voc desejar ter um arquivo de log separado para o agent (navegador usado) # e referer, descomente as seguintes diretivas. #CustomLog /var/log/apache/referer.log referer #CustomLog /var/log/apache/agent.log agent

# Se preferir um arquivo de log simples, com os detalhes de acesso, agent, e # referer (usando o formato combined da diretiva LogFile acima), use a seguinte # diretiva.

CustomLog /var/log/apache/access.log combined

# # Incluir uma linha contendo a verso do servidor e um nome de host virtual # para as pginas geradas pelo servidor (documentos de erro, listagens # de diretrios FTP, sada dos mdulos mod_status e mod_info, etc., exceto # para documentos gerados via CGI). Use o valor "EMail" para tambm incluir # um link mailto: para o ServerAdmin. Escolha entre "On", "Off" ou "EMail". # CETAM

214 ServerSignature On

# # PidFile: O arquivo que o servidor gravar os detalhes sobre seu PID quando # iniciar. # PidFile /var/run/apache.pid

# # ScoreBoardFile: Arquivo usado para armazenar detalhes do processo interno do # servidor. Nem todas as arquiteturas requerem esta diretiva, mas se a sua # requerer (voc saber porque este arquivo ser criado quando executar o # Apache) ento voc *dever* ter certeza que dois processos do Apache no # utilizam o mesmo arquivo ScoreBoardFile. # ScoreBoardFile /var/run/apache.scoreboard

# # Na configurao padro, o servidor processar este arquivo, o # srm.conf e o access.conf neste ordem. Voc pode fazer o servidor # ignorar estes arquivos usando "/dev/null". # ResourceConfig /etc/apache/srm.conf AccessConfig /etc/apache/access.conf

# # A diretiva LockFile define o caminho do lockfile usado quando o servidor # Apache for compilado com a opo USE_FCNTL_SERIALIZED_ACCEPT ou # USE_FLOCK_SERIALIZED_ACCEPT. Esta diretiva normalmente deve ser deixada em # seu valor padro. A razo principal de modifica-la no caso do diretrio de # logs for montado via um servidor NFS< pois o arquivo especificado em LockFile # DEVE SER ARMAZENADO EM UM DISCO LOCAL. O PID do processo do CETAM

215 servidor # principal automaticamente adicionado neste arquivo. # LockFile /var/run/apache.lock

# ServerName permite ajustar o nome de host que ser enviado # aos clientes, caso for diferente do nome real (por exemplo, se desejar usar # www ao invs do nome real de seu servidor). # # Nota: Voc no pode simplesmente inventar nomes e esperar que funcionem. O # nome que definir dever ser um nome DNS vlido para sua mquina.

ServerName debian.meudominio.org

# UseCanonicalName: Com esta opo ligada, se o Apache precisar construir uma # URL de referncia (uma url que um retorno do servidor a uma requisio) ele # usar ServerName e Port para fazer o "nome cannico". Com esta opo # desligada, o Apache usar computador:porta que o cliente forneceu, quando # possvel. # Isto tambm afeta SERVER_NAME e SERVER_PORT nos scripts CGIs. # # Dependendo de sua configurao, principalmente em virtual hosts, # recomendvel deix-la desativada ou com o valor DNS. O valor DNS obtm o nome # do servidor atravs de uma requisio DNS reversa do endereo IP (muito til # para virtual hosts baseados em IP). UseCanonicalName off

# CacheNegotiatedDocs: Por padro, o Apache envia Pragma: no-cache com cada # documento que foi negociado na base do contedo. Isto permite dizer a # servidores proxy para no fazerem cache do documento. Descomentando a # seguinte linha desativa esta caracterstica, e os proxyes sero capazes # de fazer cache dos documentos. CETAM

216 #CacheNegotiatedDocs

# Timeout: O nmero de segundos antes de receber e enviar um time out

Timeout 300

# KeepAlive: Se vai permitir ou no conexes persistentes (mais que uma # requisio por conexo). Mude para "Off" para desativar. KeepAlive On

# MaxKeepAliveRequests: O nmero mximo de requisies que sero permitidas # durante uma conexo persistente. Mude para 0 para permitir uma quantidade # ilimitada. Ns recomendamos deixar este nmero alto, para obter a mxima # performance

MaxKeepAliveRequests 100

# KeepAliveTimeout: Nmero de segundos que aguardar a prxima requisio

KeepAliveTimeout 15

# Regulagem do tamanho de pool do servidor. Ao invs de fazer voc adivinhar # quantos processos servidores precisar, o Apache adapta dinamicamente # de acordo com a carga que ele v --- isto , ele tenta manter o nmero de # processos o bastante para manipular a carga atual, mas alguns poucos # servidores esparsos para manipular requisies transientes (ex. requisies # simultneas mltiplas de um navegador Netscape simples).

# Ele faz isto verificando periodicamente quantos servidores esto # aguardando por uma requisio. Se l existe menos que MinSpareServers, # ele cria um novo processo. Se existe mais que MaxSpareServers, ele # fecha alguns processos. Os valores abaixo esto adequados para muitos CETAM

217 # sites

MinSpareServers 5 MaxSpareServers 10

# Nmero de servidores que sero iniciados --- deve conter um valor razovel.

StartServers 5

# Limita o nmero total de servidores rodando, i.e., limita o nmero de # clientes que podem conectar simultaneamente --- se este limite sempre # atingido, os clientes podem sero BARRADOS, assim este valor NO DEVE SER # MUITO PEQUENO. # Ele tem a inteno principal de ser um freio para manter um em execuo com # uma performance aceitvel de acordo com os requerimentos de construo e # carga calculada no servidor.

MaxClients 150

# # MaxRequestsPerChild: O nmero de requisies que cada processo tem permisso # de processar antes do processo filho ser finalizado. O filho ser finalizado # para evitar problemas aps uso prolongado quando o Apache (e talvez as # bibliotecas que utiliza) tomar memria e outros recursos. Na maioria dos # sistemas, isto realmente no necessrio, exceto para alguns (como o # Solaris) que possuem ponteiros notveis em suas bibliotecas. Para estas # plataformas, ajuste para algo em torno de 10000 ou algo assim; uma # configurao de 0 significa ilimitado. # # NOTA: Este valor no inclui requisies keepalive aps a requisio # # inicial por conexo. Por exemplo, se um processo filho manipula uma requisio inicial e 10 requisies "keptalive" subseqentes, CETAM

218 # # MaxRequestsPerChild 30 ele somente contar 1 requisio neste limite.

# Listen: Permite fazer o Apache escutar um IP determinado e/ou porta, em # adio a padro. Veja tambm o comando VirtualHost

# Listen 3000 # Listen 12.34.56.78:80

# VirtualHost: Permite o daemon responder a requisies para mais que um # endereo IP do servidor, se sua mquina estiver configurada para aceitar # pacotes para mltiplos endereos de rede. Isto pode ser feito com a opo de # aliasing do ifconfig ou atravs de patches do kernel como o de VIF. # Qualquer diretiva httpd.conf ou srm.conf pode ir no comando VirtualHost. # Veja tambm a entrada BindAddress.

#<VirtualHost host.some_domain.com> #ServerAdmin webmaster@host.some_domain.com #DocumentRoot /var/www/host.some_domain.com #ServerName host.some_domain.com #ErrorLog /var/log/apache/host.some_domain.com-error.log #TransferLog /var/log/apache/host.some_domain.com-access.log #</VirtualHost>

# VirtualHost: Se voc quiser manter mltiplos domnios/nomes de mquinas em # sua mquina voc pode ajustar o contedo de VirtualHost para eles. # Por favor veja a documentao em <http://www.apache.org/docs/vhosts/> # para mais detalhes antes de tentar configurar seus hosts virtuais. # Voc pode usar a opo de linha de comando '-S' para verificar sua # configurao de hosts virtuais. CETAM

219 # # Se desejar usar hosts virtuais baseados em nome, ser necessrio definir no # mnimo um endereo IP (e nmero de porta) para eles. # #NameVirtualHost 12.34.56.78:80 #NameVirtualHost 12.34.56.78

# # Exemplo de um Host Virtual: # Praticamente qualquer diretiva do Apache pode entrar na condicional # VirtualHost. # #<VirtualHost ip.address.of.host.some_domain.com> # # # # # ServerAdmin webmaster@host.some_domain.com DocumentRoot /www/docs/host.some_domain.com ServerName host.some_domain.com ErrorLog logs/host.some_domain.com-error.log CustomLog logs/host.some_domain.com-access.log common

#</VirtualHost>

#<VirtualHost _default_:*> #</VirtualHost>

CETAM

220 29. SERVIDOR FTP

O FTP File Transfer Protocol (protocolo de transferncia de ficheiros) continua a ser, desde a sua criao nos anos 70, nos primrdios j longnquos da Internet, o principal protocolo utilizado para transferir ficheiros entre computadores ligados Internet. Tudo comea com um servidor de FTP, uma aplicao pela qual um dado computador consegue disponibilizar ficheiros (qualquer tipo de ficheiros) atravs deste protocolo. A porta padro utilizada pelo FTP a 21. Quando um usurio tenta fazer a conexo, o servidor FTP utiliza uma camada padro ao sistema para verificar o nome e a senha do usurio, utilizando para isso o arquivo de senhas do sistema.

29.1. INSTALAO

O servidor FTP que utilizaremos o proftpd. para instal-lo basta executar o seguinte comando abaixo:

# apt-get install proftpd

Exemplo de um arquivo /etc/proftpd.conf comentado.

# Arquivo exibido no momento da conexao DisplayConnect /etc/proftpd.banner # Nao exibe informacoes sobre que tipo de servidor esta rodando ServerIdent off # Nome do servidor ServerName Debian" # Modo no qual o servidor ira rodar (standalone ou inetd) ServerType standalone # Como nao temos VirtualHosts, este servidor (principal) sera o padrao DefaultServer on # Porta para o socket de controle Port 21 CETAM

221 # Umask padrao para arquivos uploaded Umask 022 # Maximo de processos filho (cada conexao utiliza um processo) MaxInstances 30 # Maximo de usuarios autenticados (incluindo anonimos) e mensagem MaxClients 20 "Desculpe, o numero maximo de clientes foi atingido" # Maximo de usuarios autenticados (incluindo anonimos) por IP MaxClientsPerHost 4 "Desculpe, maximo de 4 conexoes por cliente" # Usuario sob o qual o servidor ira rodar User ftp # Grupo sob o qual o servidor ira rodar Group ftp # Os usuarios nao poderao sair de seu diretorio home (chrooted) DefaultRoot ~ # Nao permite o login do usuario root RootLogin off # Nao requer que os usuarios tenham um shell valido (definido # em /etc/shells) RequireValidShell off # Nao bloqueia usuarios baseando-se no arquivo /etc/ftpusers UseFtpUsers off # Tempo maximo em segundos para login TimeoutLogin 120 # Tempo maximo em segundos conectado mas sem qualquer comando ou # troca de dados TimeoutIdle 600 # Tempo maximo em segundos sem transferencia de dados (arquivos, # listagens de diretorios) TimeoutNoTransfer 900 # Tempo maximo em segundos com uma transferencia parada, travada TimeoutStalled 900 # Numero maximo de tentativas de login MaxLoginAttempts 3 CETAM

222 # Nao tenta descobrir o hostname do cliente UseReverseDNS off # Nao tenta efetuar consulta do username remoto (ident - RFC1413) IdentLookups off # Arquivo de log geral SystemLog /var/log/proftpd/system.log # Arquivo de log das transferencias TransferLog /var/log/proftpd/transfer.log # Especifica o modo de transferencia padrao (ascii ou binary) DefaultTransferMode binary # Permite que arquivos sejam sobrescritos (caso seja feito upload # de um arquivo ja existente) AllowOverwrite on # Abre o contexto de usuarios anonimos, especificando a raiz do # FTP anonimo <Anonymous /home/ftp> # Usuario sob o qual cada instancia de FTP anonimo deve rodar User ftp # Grupo sob o qual cada instancia de FTP anonimo deve rodar Group ftp # Define o login anonymous como sinonimo (alias) do login ftp UserAlias anonymous ftp # Numero maximo de usuarios anonimos MaxClients 10 # Limita qualquer gravacao neste contexto (por exemplo upload # de arquivo) <Limit WRITE> DenyAll </Limit> # Fecha o contexto de usuarios anonimos </Anonymous>

CETAM

223 O arquivo ftpusers utilizado para determinar quais usurios no acessar o servidor ftp. Esses usurios so definidos um por linha.

Dentre os utilitrios inclusos no pacote do Proftpd, merecem destaque:

ftpwho: Lista as conexes atuais do servidor, indicando tempo de conexo, arquivo sendo transmitido, usurio e etc. ftptop: Lista as conexes atuais do servidor, ordenando-as por grau de atividade. Interface semelhante ao tradicional comando top.

CETAM