You are on page 1of 169

Conceitos, Instalao e Administrao de Sistemas Linux

Todos os direitos reservados para Alfamdia LTDA. AVISO DE RESPONSABILIDADE As informaes contidas neste material de treinamento so distribudas NO ESTADO EM QUE SE ENCONTRAM, sem qualquer garantia, expressa ou implcita. Embora todas as precaues tenham sido tomadas na preparao deste material, a Alfamdia LTDA. no tm qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instrues contidas neste material ou pelo software de computador e produtos de hardware aqui descritos.

Novembro 2011 Alfamdia LTDA http://www.alfamidia.com.br

2011 Alfamidia LTDA.

Conceitos, Instalao e Administrao de Sistemas Linux UNIDADE 1. HISTRIA DO LINUX ............................................................................................................. 5 UNIX .................................................................................................................................................................. 5 LINUX ................................................................................................................................................................. 5 GNU .................................................................................................................................................................. 6 FSF (FREE SOFTWARE FOUNDATION) ................................................................................................................ 6 DISTRIBUIES LINUX ....................................................................................................................................... 7 UNIDADE 2. INSTALAO DO LINUX .................................................................................................... 10 REQUISITOS DE HARDWARE ............................................................................................................................. 10 COMPATIBILIDADE DE HARDWARE .................................................................................................................. 10 INSTALANDO O UBUNTU LINUX 10.04 .............................................................................................................. 11 GERENCIAMENTO DE DISCOS NO LINUX ........................................................................................................... 20 CONFIGURAO DE PLACAS DE EXPANSO...................................................................................................... 20 CONFIGURAO DE DISPOSITIVOS USB ........................................................................................................... 21 UNIDADE 3. INICIANDO E FINALIZANDO O USO DO SISTEMA ..................................................... 23 CONSIDERAES INICIAIS ................................................................................................................................ 23 LOGIN ............................................................................................................................................................... 23 CONSOLES VIRTUAIS ........................................................................................................................................ 24 COMANDOS EM MODO TEXTO .......................................................................................................................... 24 O QUE SHELL? ................................................................................................................................................ 24 CONFIGURAO DO SHELL ............................................................................................................................... 24 SAIR DO SHELL ................................................................................................................................................. 37 REINICIALIZANDO O LINUX .............................................................................................................................. 37 DESLIGANDO O LINUX ...................................................................................................................................... 37 UNIDADE 4. DISPOSITIVOS, SISTEMAS DE ARQUIVOS GNU/LINUX ............................................ 38 CRIAO DE PARTIES E SISTEMAS DE ARQUIVOS......................................................................................... 38 CRIAO DE SISTEMAS DE ARQUIVOS .............................................................................................................. 39 UNIDADE 5. MANUTENO DA INTEGRIDADE DE SISTEMAS DE ARQUIVOS ......................... 41 CHECANDO O SISTEMA DE ARQUIVOS .............................................................................................................. 41 EXAMINANDO E CORRIGINDO O SISTEMA DE ARQUIVOS .................................................................................. 41 UNIDADE 6. ADMINISTRAO DE COTAS DE DISCO ....................................................................... 44 INTRODUO .................................................................................................................................................... 44 LIMITES DE QUOTAS ......................................................................................................................................... 44 CRIANDO E GERENCIANDO QUOTAS .................................................................................................................. 48 COMANDOS PARA MANIPULAO DE ARQUIVOS .............................................................................................. 55 COMANDOS DE BUSCA ..................................................................................................................................... 67 UNIDADE 7. FLUXOS, CANALIZAO (PIPES) E REDIRECIONAMENTOS DE SADA. ............. 71 REDIRECIONAMENTO ........................................................................................................................................ 71 CANALIZAO (PIPE)........................................................................................................................................ 71 UNIDADE 8. GERENCIAMENTO DE PROCESSOS ................................................................................ 73 TAREFAS EM PRIMEIRO E SEGUNDO PLANO ..................................................................................................... 74 MODIFICAR A PRIORIDADE DE EXECUO DE UM PROCESSO ........................................................................... 75 UNIDADE 9. COMPACTADORES .............................................................................................................. 77 COMPILAR E INSTALAR PROGRAMAS................................................................................................................ 81 UNIDADE 10. ADMINISTRANDO USURIOS E GRUPOS ...................................................................... 83 ADICIONANDO UM NOVO GRUPO A UM USURIO............................................................................................... 85 UNIDADE 11. PERMISSES DE ACESSO A ARQUIVOS E DIRETRIOS .......................................... 87 DONOS, GRUPOS E OUTROS USURIOS .............................................................................................................. 87 TIPOS DE PERMISSES DE ACESSO .................................................................................................................... 88 ETAPAS PARA ACESSO A UM ARQUIVO/DIRETRIO ............................................................................................ 89
2011 Alfamidia Prow 3

Conceitos, Instalao e Administrao de Sistemas Linux EXEMPLOS PRTICOS DE PERMISSES DE ACESSO............................................................................................. 89 EXEMPLO DE ACESSO A UM DIRETRIO ............................................................................................................. 90 MODO DE PERMISSO OCTAL............................................................................................................................ 95 A CONTA ROOT ................................................................................................................................................. 98 UNIDADE 12. GERENCIAMENTO DE PACOTES..................................................................................... 99 PACOTES ........................................................................................................................................................ 105 INSTALAR PACOTES ........................................................................................................................................ 105 O UTILITRIO APT........................................................................................................................................... 108 UNIDADE 13. USANDO O EDITOR VI ...................................................................................................... 115 CONCEITOS. .................................................................................................................................................... 115 INICIANDO O VI ............................................................................................................................................... 115 INSERINDO TEXTO .......................................................................................................................................... 116 APAGANDO TEXTO ......................................................................................................................................... 117 MODIFICANDO TEXTO..................................................................................................................................... 118 COMANDOS PARA MOVIMENTAR O CURSOR .................................................................................................... 119 SALVANDO ARQUIVOS E SAINDO DO VI ........................................................................................................... 120 EDITANDO OUTRO ARQUIVO ........................................................................................................................... 120 INCLUINDO OUTROS ARQUIVOS ...................................................................................................................... 121 RODANDO COMANDOS DO SHELL.................................................................................................................... 121 AJUDA NO VI .................................................................................................................................................. 122 UNIDADE 14. EXPRESSO REGULARES ................................................................................................ 123 TERMINOLOGIA .............................................................................................................................................. 123 METACARACTERES ......................................................................................................................................... 125 REPRESENTANTES .......................................................................................................................................... 125 QUANTIFICADORES......................................................................................................................................... 130 NCORAS ....................................................................................................................................................... 134 OUTROS .......................................................................................................................................................... 136 LINGUAGENS DE PROGRAMAO.................................................................................................................... 139 DIFERENAS DE METACARACTERES ENTRE APLICATIVOS .............................................................................. 142 RESUMO DOS METACARACTERES E SEUS DETALHES ...................................................................................... 143 CARACTERES ASCII IMPRIMVEIS .................................................................................................................. 144 UNIDADE 15. BACKUP ................................................................................................................................ 145 UNIDADE 16. RAID ....................................................................................................................................... 147 ESPELHAMENTO ............................................................................................................................................. 148 OUTROS SISTEMAS RAID ............................................................................................................................... 148 IMPLEMENTAO ........................................................................................................................................... 149 UNIDADE 17. LOGS ...................................................................................................................................... 151 INTRODUO .................................................................................................................................................. 151 LOGS BSICOS................................................................................................................................................. 151 LOGS GERADOS POR ALGUNS SERVIOS DE REDE ............................................................................................ 154 UNIDADE 18. INICIALIZAO ................................................................................................................. 158 INICIALIZAO DO SISTEMA ........................................................................................................................... 158 UNIDADE 19. O KERNEL DO LINUX ........................................................................................................ 164 UNIDADE 20. SERVIOS DE IMPRESSO .............................................................................................. 168 UNIDADE 21. O X11 SERVER ..................................................................................................................... 169

2011 Alfamidia Prow

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 1. Histria do Linux


Unix
A origem do Unix tem ligao com o sistema operacional Multics, projetado na dcada de 1960. Esse projeto era realizado pelo Massachusets Institute of Technology (MIT), pela General Eletric (GE) e pelos laboratrios Bell (Bell Labs) e American Telephone na Telegraph (AT&T). A inteno era de que o Multics tivesse caractersticas de tempo compartilhado (vrios usurios compartilhando os recursos de um nico computador), sendo assim o sistema mais arrojado da poca. Em 1969, j existia uma verso do Multics rodando num computador GE645. Ken Thompsom era um pesquisador do Multics e trabalhava na Bell Labs. No entanto, a empresa se retirou do projeto tempos depois, mas ele continuou seus estudos no sistema. Desde ento, sua ideia no era continuar no Multics original e sim criar algo menor, mas que conservasse as ideias bsicas do sistema. A partir da, comea a saga do sistema Unix. Brian Kernighan, tambm pesquisador da Bell Labs, foi quem deu esse nome. Em 1973, outro pesquisador da Bell Labs, Dennis Ritchie, reescreveu todo o sistema Unix numa linguagem de alto nvel, chamada C, desenvolvida por ele mesmo. Por causa disso, o sistema passou a ter grande aceitao por usurios externos Bell Labs. Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanas particulares e lanou o System III. Em 1983, aps mais uma srie de modificaes, foi lanado o conhecido Unix System IV, que passou a ser vendido. At hoje esse sistema usado no mercado, tornando-se o padro internacional do Unix. Esse sistema comercializado por empresas como IBM, HP, Sun, etc.

Linux
A histria comea com um jovem chamado Linus Torvalds nasceu em 28 de dezembro de 1969 em Helsinki na Finlndia e sua famlia era uma das poucas cuja linguagem adotada como principal era o Sueco ao invs do Finlands. Embora fosse filho de jornalistas, Linus comeou a demonstrar seu interesse pelo mundo geek cedo, obtendo sempre grande destaque em campos como a Matemtica e Fsica. Em 1988, Linus ingressou na Universidade de Helsinki no curso de Cincias da Computao. Aps montar um computador no qual passou a adotar o Minix (um sistema operacional baseado no Unix, porm gratuito). Devido a observar as dificuldades deste sistema (especialmente com relao ao uso de terminal para conexo), Linus resolveu criar um programa para a emulao de terminal que funcionasse independente do Minix. Em 1991, com relao aos sistemas operacionais, voc tinha poucas escolhas. O DOS exercia sua soberania absoluta com relao aos computadores pessoais, at por uma questo de falta de escolha. Por mais que os Macs existissem seus preos eram astronmicos, fato que tornava quase impossvel a aquisio de um deles para um usurio final. Alm deles, havia o Unix que certamente era ainda mais caro do que um Mac e adotado quase exclusivamente por grandes empresas. Nessa altura, o cdigo do Unix, que uma vez foi

2011 Alfamidia Prow

Conceitos, Instalao e Administrao de Sistemas Linux

utilizado como material de estudo em universidades, j se encontrava proprietrio e no mais para conhecimento pblico. Nesse clima, um professor holands chamado Andrew S. Tanenbaum criou um sistema operacional baseado no Unix, o Minix. Montado para funcionar com a linha de processadores Intel 8086. Como primariamente, o Minix tinha objetivos acadmicos (o ensino do funcionamento de um SO em universidades), ele estava longe de resolver todos os problemas de um usurio final, porm seu cdigo-fonte era disponibilizado por Tanenbaum. Nesse ponto da histria, o estudante Linus Torvalds, frustrado com as carncias do Minix comeou a idealizar como seria bom ter um SO que, alm de gratuito, pudesse efetuar tarefas como emulao de terminal e transferncia e armazenamento de arquivos. Ento, em 25 de agosto de 1991, Linus anunciou por meio de um email na Usenet (a Unix User Network) que estava desenvolvendo um sistema operacional. O famoso e-mail relata que ele estava criando um sistema operacional desde abril do mesmo ano, porm que no intencionava torn-lo uma coisa realmente grande e profissional como o GNU (SO de cdigo aberto baseado no Unix), Linus pretendia chamar sua criao de Freax, porm trocou para Linux ao aceitar esta sugesto de um de seus amigos.

GNU
Um fato importante de conhecer saber o que GNU. GNU um projeto que comeou em 1984, criado por Richard Stallman, com o objetivo de desenvolver um sistema operacional compatvel com os de padro Unix. O Linux em si, s um kernel. Linus Torvalds, na mesma poca que escrevia o cdigo-fonte do kernel, comeou a usar programas da GNU para fazer seu sistema. Gostando da ideia, resolveu deixar seu kernel dentro da mesma licena. Mas, o kernel por si s, no usvel. O kernel a parte mais importante, pois o ncleo e serve de comunicador entre o usurio e o computador. Por isso, com o uso de variantes dos sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional.

FSF (Free Software Foundation)


Por volta de 1983, Richard Stallman criava a Free Software Foundation (FSF), uma fundao sem fins lucrativos, que lutava contra as restries de cpia e alteraes de software, em outras palavras, incentivava a criao de programas livres para cpia e alterao, para isso a FSF criou a licena GNU e um conjunto de ferramentas prprias para esse fim. Em 1991, a FSF estava criando um sistema operacional chamado Hurd, mas ainda em fase inicial. Por volta dessa mesma poca Linus Torvalds resolveu disponibilizar o cdigo-fonte do Linux sob a licena GNU a fim de conseguir ajuda de outros desenvolvedores. Muitos desenvolvedores se interessaram e comearam a adicionar novos recursos rapidamente, mas ficou limitado a este crculo tcnico, pois ainda estava em fase embrionria no sendo possvel a utilizao em larga escala. Em 5 de outubro de 1991, a primeira verso oficial do Linux foi divulgada, a verso 0.02, desde ento o nmero de desenvolvedores cresceu rapidamente.

2011 Alfamidia Prow

Conceitos, Instalao e Administrao de Sistemas Linux

Distribuies Linux
Logo que Linus Torvalds disponibilizou, o seu Kernel Linux sob uma licena para software livre, mais precisamente sob a GNU General Public License (Licena Pblica Geral), ou GNU GPL (da FSF), o Projeto GNU, que j havia construdo todo um conjunto de softwares que compunham um sistema operacional, adotou-o como kernel para seu Sistema Operacional GNU, por sua vez tambm foi distribudo como software livre, para que pudesse ser modificado, melhorado, adaptado, e redistribudo com as modificaes. Muitos programadores individuais, grupos de programadores e organizaes de todo o mundo, passaram a realizar essas modificaes e redistribuir essas verses do Sistema GNU/Linux modificado, so as chamadas "Distribuies GNU/Linux", ou "Distros Linux". Portanto, uma distribuio Linux composta do kernel Linux e um conjunto varivel de software, dependendo de seus propsitos. Essa coleo de software livre criada e mantida por indivduos, grupos e organizaes de todo o mundo. As primeiras distribuies surgiram ainda em 1992, como MCC Interim Linux, o Yggdrasi e o SLS Linux, que aps uma reformulao originou o Slackware, em julho de 1993. Ainda em 1993 surgiu o Debian, e em 1994 o Red Hat. Essas trs grandes famlias de distribuies GNU/Linux, Slackware, Debian e Red Hat, deram origem a outras distros, muitas das quais foram continuadas, deram origem a outras distros, e outras foram descontinuadas.

Red Hat
A empresa americana Red Hat, caracterizada com uma pessoa "sombra" com um chapu vermelho, foi uma das pioneiras no tratamento srio do Linux. Desde o incio ela uma das principais distribuies mundiais, e tem influncias em todos os lugares. Sua equipe no apenas ajuda na distribuio em si, mas tambm no prprio Linux (como o caso do kernel-hacker Alan Cox). Esta distribuio deu origem a muitas outras. Criadora do RPM, o gerenciador de pacotes mais usado atualmente no Linux, a Red Hat atualmente tm uma distribuio mais voltada para o mercado de servidores. Mas isso no quer dizer que ela no seja boa tambm para uso domstico. Voc encontra nela uma facilidade de manuseio, pacotes atualizados. http://www.redhat.com

Slackware
Podemos dizer que o Slackware uma das mais famosas distribuies para Linux, o seu criador, Patrick Volkerding, lanou a primeira verso da distribuio em Abril de 1992, e desde ento segue uma filosofia bem rgida: manter a distribuio o mais parecido com o UNIX possvel. As prioridades da distribuio so: estabilidade e simplicidade, e isso que a torna uma das mais populares distribuies disponveis.

2011 Alfamidia Prow

Conceitos, Instalao e Administrao de Sistemas Linux

Ele possui uma interface de instalao bem amigvel, alm de uma srie de scripts que ajudam na instalao e desinstalao de pacotes. O Slackware pode ser uma alternativa tanto para usurios iniciantes como os j experientes. As opes de instalao permitem que o usurio possa instalar em sua mquina uma distribuio que tem como caractersticas uma grande variedade de desktops (gerenciadores de janelas como o Gnome, KDE, Window Maker, Enlightenment, fvwm), ou como um poderoso servidor com todos os recursos necessrios (utilitrios de rede, servidores http, noticias, e-mail, ftp, etc). Os pacotes sempre esto em atualizao, mantidos por uma verso especial da distribuio: o slackware-current. Isto desfaz o mito de que o Slackware no uma distribuio "dinmica". Todos aqueles aplicativos esto disponveis, e so atualizados regularmente. http://www.slackware.com

Debian
Talvez a filosofia do Debian seja o ponto que mais chama ateno nesta popular distribuio. No incio, antes do Linux ser lanado oficialmente por Linus Torvalds, o projeto GNU j tinha vrias ferramentas Unix-like disponveis. O que faltava era um kernel, e ento quando Linus Torvalds lanou o seu kernel Linux, resolveram ento criar o GNU/Linux. O Debian GNU/Linux uma distribuio que segue toda esta filosofia do projeto GNU, oficialmente contendo apenas pacotes com programas de cdigo-fonte livre, feito por voluntrios espalhados pelo mundo, e sem fins lucrativos alguns. Apesar de atualmente o Debian ser usado com o kernel Linux, ele se intitula como um sistema operacional que pode usar no apenas o kernel do Linux em si, mas outros kernels como o Hurd (projeto de kernel livre feito fora do escopo do Linux). Isso o faz o "Sistema Operacional Universal", pois o principal objetivo deles fazer um sistema que rode em todos os lugares e com vrios kernels. E claro, isso tudo na filosofia GNU. O Debian tem uma quantidade incrvel de pacotes pr-compilados para vrios tipos de arquitetura. Alm do mais, ele o pai do apt, a ferramenta de atualizao de pacotes automtica, feita pela internet. Mas h quem diga que o Debian ainda tem muito que melhorar: Uma instalao complicada e ideologismo demasiados so alguns pontos fracos que muita gente encontra nesta distribuio. http://www.debian.org

Ubuntu
Ubuntu um sistema de cdigo aberto construdo em volta do ncleo Linux baseado no Debian, sendo o sistema operacional de cdigo aberto mais popular do mundo. patrocinado pela Canonical Ltd (dirigida por Jane Silber). O Ubuntu diferencia-se do Debian por ser lanado semestralmente, por disponibilizar suporte tcnico nos dezoito meses seguintes ao lanamento de cada verso (exceto nas verses LTS, ou seja, Long Term Support) (em ingls) e pela filosofia em torno de sua concepo. A proposta do Ubuntu oferecer um sistema operacional que qualquer pessoa possa utilizar sem dificuldades,
2011 Alfamidia Prow 8

Conceitos, Instalao e Administrao de Sistemas Linux

independentemente de nacionalidade, nvel de conhecimento ou limitaes fsicas. O sistema deve ser constitudo totalmente de software gratuito e livre, alm de isenta de qualquer taxa. A Comunidade Ubuntu ajuda-se mutuamente, no havendo distino de novatos ou veteranos; a informao deve ser compartilhada para que se possa ajudar quem quer que seja, independentemente do nvel de dificuldade. Os fs do Ubuntu so conhecidos como ubuntistas, ubunteiros ou ubunteros. O sistema operacional Ubuntu est em primeiro lugar no Distrowatch (www.distrowatch.com), pgina especializada em catalogar o desempenho e uso dos muitos sistemas operacionais com ncleo Linux.

2011 Alfamidia Prow

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 2. Instalao do Linux


Requisitos de Hardware
Para dimensionar o hardware correto para instalao do Linux devemos inicialmente saber qual distribuio que iremos trabalhar, pois cada distribuio pode exigir diferentes configuraes. Tomamos como base a distribuio Ubuntu 10.04.

Requisitos mnimos para instalao do Ubuntu 10.04 Lucid Lynx Processador: 700mhz; Memria RAM: 512MB; Disco: 4GB; Placa Grfica: qualquer placa grfica (funcionamento do sistema de efeitos visuais poder estar condicionado conforme a placa grfica) Requisitos Recomendados: Processador: 1.2GHz; Memria RAM: 1GB; Disco: 10GB Placa Grfica: nVidia

Compatibilidade de Hardware
O Ubuntu conta com uma grande quantidade de drivers e uma grande aceitao dos fabricantes de hardware existe poucos casos de incompatibilidades de hardware no mercado em relao a esta distribuio. Uma boa prtica que antes de penar em uma instalao de um novo sistema operacional a verificao da lista de compatibilidade, de cada distribuio, para evitar transtornos e perda de tempo. A lista de compatibilidade de hardware do Ubuntu pode ser encontrada em www.ubuntu.com/certification/catalog, esta lista se encontra em constante atualizao, j que seu sistema operacional est em constante desenvolvimento.

2011 Alfamidia Prow

10

Conceitos, Instalao e Administrao de Sistemas Linux

Instalando o Ubuntu Linux 10.04


Se gravar a imagem do Linux Ubuntu em um CD, dever utilizar um programa prprio de gravao de imagens, utilize um programa prprio para fazer o Burn da imagem no disco (exemplo: Nero 9/Nero 10, Alcohol 120%) Neste momento o Windows 7 consegue gravar imagem em disco, sem utilizao de programa algum. Configure a BIOS de forma que o computador inicialize pelo CD ou pela Pen. Reinicie o computador para ele inicialize ou pelo CD ou pela pen. Se tudo correr bem, ir aparecer uma janela semelhante seguinte:

Caso no carregue est tela voc deve pressionar ESC, o Ubuntu iria iniciar sozinho, direcionando para o modo de instalao.

2011 Alfamidia Prow

11

Conceitos, Instalao e Administrao de Sistemas Linux

Escolha o idioma desejado conforme a tela abaixo.

Quando clicar na tecla Enter para selecionar a linguagem, ir aparecer o seguinte menu onde dever escolher a opo Experimente o Ubuntu sem instalar", esta opo a mais indicada pois caso haja algum tipo de incompatibilidade de hardware provavelmente ir ser detectada.

Ao selecionar esta opo, o Ubuntu ir carregar-se, depois de algum tempo de espera, o usurio poder instalar o novo Ubuntu Lucid Lynx, e tambm experiment-lo, verificar se tudo compatvel e inclusive acessar a Internet.

2011 Alfamidia Prow

12

Conceitos, Instalao e Administrao de Sistemas Linux

Na prxima tela voc dever dar dois cliques em Instalar Ubuntu 10.04 LTS

Clique no boto Avanar para prosseguir.

2011 Alfamidia Prow

13

Conceitos, Instalao e Administrao de Sistemas Linux

Neste prximo passo, deve-se selecionar o teclado correto. Este passo muito importante, pois existem muitos modelos de teclados e muitos deles tm poucas diferenas, mas que so importantes no dia-a-dia.

Neste passo, a opo selecionada abaixo recomendada para aqueles que tm outro sistema operacional no PC. Outra opo a formatao do disco, e utilizar apenas o Ubuntu, claro que desta forma voc perder tudo que voc tinha anteriormente.

2011 Alfamidia Prow

14

Conceitos, Instalao e Administrao de Sistemas Linux

O Ubuntu ir analisar o seu disco e ir apresentar as parties que criou no passo anterior caso tenha usado a segunda opo. Quando o Ubuntu apresentar as parties, dever selecionar as devidas parties e definir os seus atributos, clicando no boto Modificar:

A partio / deve ser do tipo de sistema de arquivo ext4 com um tamanho em torno de 10GB.

2011 Alfamidia Prow

15

Conceitos, Instalao e Administrao de Sistemas Linux

A partio /home dever ser a maior pelo motivo de ser o diretrio que mais cresce em um sistema Linux, algo em torno de 50 GB, lembrando que isso tudo isso em caso de utilizarmos um HD de bom tamanho, caso contrario poderamos trabalhar com os quesitos mnimos.

No final deste procedimento, a lista de parties dever ter as caractersticas das parties semelhantes s da imagem abaixo, voc poder criar uma partio de swap em torno de 400 Mb. Depois de verificar se tudo est correto, clique no boto Avanar!

2011 Alfamidia Prow

16

Conceitos, Instalao e Administrao de Sistemas Linux

No passo seguinte, dever digitar o seu nome, o usurio, que servir depois para fazer o login no Ubuntu. Depois de preencher esses dados, clique no boto Avanar para prosseguir ao passo seguinte.

No passo seguinte serve para importar arquivos que existam em outros sistemas operacionais. Se quiser migrar algum desses dados listados, basta pr um visto e clicar no boto Avanar

2011 Alfamidia Prow

17

Conceitos, Instalao e Administrao de Sistemas Linux

No passo final, voc deve rever todas as opes que escolheu e, caso precise de uma proxy, permite defini-la, essas opes esto disponveis atravs do boto Avanado. Para comear a instalao do Ubuntu clique Instalar.

Enquanto a instalao est em processamento, pode navegar na Internet, ou mesmo jogar algum jogo disponvel por este Ubuntu no menu Aplicaes Jogos.

2011 Alfamidia Prow

18

Conceitos, Instalao e Administrao de Sistemas Linux

Quando a instalao estiver concluda com sucesso, ser apresentada a janela abaixo e pedir para reiniciar o Ubuntu para puder utilizar o seu novo Ubuntu!

Depois de ter o Ubuntu instalado, voc deve instalar todos os codecs necessrios para poder ouvir quase qualquer tipo de msica e de vdeo, bem como qualquer arquivo compactado que lhe possa aparecer. Este Ubuntu, ainda no tem a mquina virtual Java para poder abrir determinadas aplicaes desse tipo nem o Adobe Flash para poder ver vdeos no Youtube.

2011 Alfamidia Prow

19

Conceitos, Instalao e Administrao de Sistemas Linux

Gerenciamento de Discos no Linux


CSI (scuzzy)
H dois tipos de dispositivos SCSI: 8 bit: 8 dispositivos incluindo o controlador. 16 bit: 16 dispositivos incluindo o controlador. Dispositivos SCSI so identificados atravs de um conjunto de trs nmeros chamado SCSI_ID: 1 O Canal SCSI. Cada adaptador SCSI suporta um canal de dados no qual so anexados os dispositivos SCSI. So numerados a partir de zero. 2 O ID do dispositivo. A cada dispositivo atribudo um nmero ID nico altervel atravs de jumpers. A gama de Ids vai de 0 a 7 em controladores de 8 bit e de 0 a 15 em controladores de 16 bit. O ID do controlador costuma ser 7. 3 O nmero lgico da unidade (LUN). usado para determinar diferentes dispositivos dentro de um mesmo alvo SCSI. Pode indicar uma partio em um disco ou um dispositivo de fita especfico em um dispositivo multi-fita. Hoje no muito utilizado pois adaptadores SCSI esto mais baratos e podem comportar mais alvos por barramento. Todos dispositivos SCSI so listados em /proc/scsi/scsi:
# cat /proc/scsi/scsi Attached devices: Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: RW/DVD GCC-4521B Rev: 1.00 Type: CD-ROM ANSI SCSI revision: 02

O comando scsi_info usa as informaes deste arquivo para mostrar o SCSI_ID e o modelo do dispositivo solicitado:
# scsi_info /dev/scd0 SCSI_ID="0,0,0" HOST="1" MODEL="HL-DT-ST RW/DVD GCC-4521B" FW_REV="1.00"

Por padro, o dispositivo SCSI de boot o de ID 0, o que pode ser alterado na BIOS SCSI. Se existirem tanto dispositivos SCSI quanto IDE, a ordem do boot precisa ser especificada na BIOS da mquina.

Configurao de Placas de Expanso


A configurao de placas de expanso diversas engloba os aspectos abordados nos captulos anteriores, mais um conhecimento mais slido sobre coldplug, hotplug e inspeo de hardware. Em linhas gerais, coldplug significa a impossibilidade de se conectar dispositivo sem a necessidade de desligar a mquina. Exemplos de dispositivos coldplug so placas PCI, ISA e dispositivos IDE. Na
2011 Alfamidia Prow

20

Conceitos, Instalao e Administrao de Sistemas Linux

maioria dos computadores, CPU e pentes de memria so coldplug. Porm, alguns servidores de alta performance suportam hotplug para esses componentes. Hotplug o sistema que permite conectar novos dispositivos mquina em funcionamento e us-los imediatamente, como no caso de dispositivos USB. O sistema Hotplug foi incorporado ao ncleo do modelo de driver do kernel 2.6, assim qualquer barramento ou classe pode disparar eventos hotplug quando um dispositivo conectado ou desconectado. Assim que um dispositivo conectado ou desconectado, o hotplug dispara um evento correspondente, geralmente trabalhando junto do subsistema udev, que atualiza os arquivos de dispositivos em /dev. O hotplug precisa estar liberado no kernel, atravs da opo CONFIG_HOTPLUG. Dessa forma, haver o arquivo /proc/sys/kernel/hotplug contendo o caminho para o programa hotplug (normalmente em /sbin/hotplug). A ao tomada pelo hotplug depender do nome do agente passado pelo kernel (nomes de agentes podem ser usb, pci, net, etc.). Para cada agente existe um script correspondente em /etc/hoplug/, que se encarrega de configurar corretamente o dispositivo no sistema. Mesmo alguns dispositivos coldplug so configurados pelo sistema hotplug. Na hora do boot, o script /etc/init.d/hotplug (ou /etc/rc.d/rc.hotplug no slackware) dispara os agentes em /etc/hotplug/ para configurar aqueles dispositivos presentes antes da mquina ser ligada.

Configurao de Dispositivos USB


Dispositivos para interface USB (Universal Serial Bus) so divididos em classes: Display Devices Communication Devices Audio Devices Mass Storage Devices Human Interface Devices (HID) porta USB operada por um controlador (Host Controller): OHCI (compaq) UHCI (intel) EHCI (USB v2.0)

2011 Alfamidia Prow

21

Conceitos, Instalao e Administrao de Sistemas Linux

Uma vez conectados, os dispositivos USB podem ser inspecionados com o comando lsusb.
# lsusb Bus 002 Device 003: ID 05a9:a511 OmniVision Technologies, Inc. OV511+ WebCam Bus 002 Device 002: ID 0f2d:9308 ViPower, Inc. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000

As informaes detalhadas sobre os dispositivos USB conectadas so armazenadas no arquivo /proc/bus/usb/devices. O controle dos dispositivos USB feito pelo hotplug. Etapas executadas quando uma cmera USB conectada ao computador: Os mdulos USB do kernel identificam o evento USB e a ID vendor:product. Esses dados so passados para /sbin/hotplug (ou outro, se o indicado em /proc/sys/kernel/hotplug no for o padro) O agente USB respectivo (/etc/hotplug/usb.agent) associa o dispositivo ao produto correspondente. A relao entre dispositivo e mdulo consta no arquivo /etc/hotplug/usb.distmap.

O primeiro estgio envolve procedimentos do kernel, enquanto o segundo e terceiro estgio envolvem o mecanismo do hotplug. O mapa USB correto precisa estar disponvel para iniciar corretamente o dispositivo.

2011 Alfamidia Prow

22

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 3. Iniciando e Finalizando o uso do Sistema


Consideraes Iniciais
Diferenciao entre letras maisculas e minsculas (case sensitive): todos os shells do Linux fazem esta diferenciao, isto significa que os nomes dos arquivos devem ser especificados com exatido, ou seja, o arquivo denominado Manual.txt um arquivo diferente do arquivo denominado manual.txt.. Histrico do shell: o shell padro do Linux, bash, grava os ltimos 1000 comandos em uma lista denominada .bash_history no diretrio home do usurio. Dessa forma as operaes por linha de comando ganham em agilidade. A fim de percorrer o .bash_history, use as teclas do cursor para cima e para baixo. Tecla Tab: outro recurso do bash o autopreenchimento de comandos . Vejamos o exemplo abaixo: 1. Digite as primeiras letras do nome de um comando, neste exemplo ser utilizado o comando date. [root@localhost /root]# da

2. Pressione a tecla Tab e o shell ir completar o nome do comando. [root@localhost /root]# date

Curingas: o Linux permite o uso de curingas tanto para sobreposio de uma sequncia de caracteres (*), quanto para uma nica posio (?). 1. Acessando o diretrio boot da raiz, utilizando o curinga para sobreposio de uma sequncia de caracteres. root@localhost /]#cd bo* 2. Acessando o diretrio boot da raiz, utilizando o curinga de sobreposio nica. [root@localhost /root]#cd boo?

Login
Para que o usurio tenha acesso ao sistema necessrio que ele possua uma conta, ou seja, um login e senha. 1. No prompt de logon digite o nome da conta e pressione a tecla enter.
Localhost login: root Password: *******

2. No prompt da senha digite a sua senha e pressione a tecla enter. 3. Caso o processo de logon tenha sido realizado com xito, surge na tela uma mensagem do sistema conforme o exemplo abaixo:
2011 Alfamidia Prow 23

Conceitos, Instalao e Administrao de Sistemas Linux Last login: Thu Feb 8 14:06:27 on tty1

4. Logo aps o surgimento desta mensagem o shell do usurio disponibilizado.


[root@localhost /root]#

Consoles Virtuais
O Linux permite o acesso diversas vezes e de forma independente, com diferentes usurios, atravs do uso de consoles virtuais. Estes consoles oferecem um meio de executar diferentes shells ao mesmo tempo. O Linux suporta pelo menos 6 consoles virtuais. Vejamos como proceder para utilizar consoles virtuais: 1. Depois de obter acesso ao sistema, mantenha pressionada a tecla Alt e pressione as teclas F2, F3, F4, F5 ou F6. 2. Repita o processo de login, para cada console, a fim de iniciar as operaes. Para alternar entre consoles basta manter pressionada a tecla Alt + a tecla de funo apropriada.

Comandos em Modo Texto O que shell?


Shell, ou interpretador de comandos o programa executado logo aps o login, cuja tarefa interpretar e executar os comandos do usurio. Por exemplo, quando o usurio digita no console " ls" e pressiona a tecla Enter, o shell l essa string e verifica se existe algum comando interno (embutido no prprio shell) com esse nome. Se houver, ele executa esse comando interno. Caso contrrio, ele vai procurar no PATH por algum programa que tenha esse nome. Se encontrar, ele executa esse programa, caso contrrio, ele retorna uma mensagem de erro. Para cada terminal ou console aberto, existe um shell sendo executado. Ao digitar o comando "ps" (process status), podemos verificar que um dos programas rodando o shell do usurio:
PID 13299 13300 13337 TTY pts/1 pts/1 pts/1 TIME 00:00:00 00:00:00 00:00:00 CMD su bash ps

Existem diversos tipos de shell: bash, csh, ksh, ash, etc. O mais utilizado atualmente o bash (GNU Bourne-Again SHell).

Configurao do Shell
Variveis de Ambiente do Shell
O shell carrega vrios arquivos localizados em diferentes diretrios no sistema, denominados: arquivos de recursos, perfil e login. Os arquivos de perfil contm as variveis de ambiente, as quais so definies e valores que o shell ou outros programas reconhecem depois do acesso.
2011 Alfamidia Prow 24

Conceitos, Instalao e Administrao de Sistemas Linux

Exibir variveis de ambiente


Para exibir o valor de uma determinada varivel ou uma lista das variveis de ambiente atualmente definidas, podemos utilizar o comando printenv conforme o exemplo abaixo: Exemplos:
[leonardo@localhost root]# printenv PATH

Se digitarmos apenas printenv, teremos uma lista com o valor das variveis do ambiente. Outra forma de exibir as variveis de ambiente atravs do comando env, que ao contrrio do comando printenv no exibe o valor de uma s varivel. Variveis de ambiente: EDITOR Editor padro do sistema HISTSIZE O nmero de linhas de comando memorizadas HOME O diretrio home do usurio atual HOSTTYPE A arquitetura do sistema em uso LOGNAME Nome do usurio atual MAIL O diretrio que contm as mensagens de correio eletrnico recebidas OSTYPE O sistema operacional em uso PATH O caminho (ou caminhos) a procurar os comandos PS1 Definio do prompt da linha de comando SHELL Nome do shell atualmente em uso SHLVL O nmero de shell atualmente em execuo TERM O tipo de terminal em uso USER O nome do usurio atual

Definir uma varivel de ambiente


Para definir uma varivel de ambiente no shell bash necessrio utilizar o comando export, obedecendo a seguinte sintaxe: NOME_VARIAVEL="valor";export NOME_VARIAVEL. Exemplos:
[leonardo@localhost root]# EDITOR ="/bin/vi" ; export EDITOR

Outra forma de definir variveis de ambiente a partir da linha de comando de qualquer shell usar o comando env, conforme a seguinte sintaxe: env NOME_VARIAVEL=valor

Excluir uma varivel de ambiente


Para excluir uma varivel de ambiente digite: unset NOME_VARIAVEL

A varivel PATH
Essa varivel define o diretrio ou diretrios onde o shell pode encontrar os programas executveis, caso a varivel no tenha sido definida corretamente ser necessrio digitar todo o caminho para o programa. Exemplos:
[leonardo@localhost root]# echo $PATH /sbin:/bin [leonardo@localhost root]# env PATH=$PATH:/home [leonardo@localhost root]# echo $PATH /sbin:/bin:/home
2011 Alfamidia Prow 25

Conceitos, Instalao e Administrao de Sistemas Linux

Estas instrues sobre como adicionar caminhos ao PATH so vlidas temporariamente, at sair do terminal. Para adicionar um caminho ao PATH de forma definitiva, para todo o sistema, necessrio editar o arquivo /etc/profile, para isso acesse o sistema como root.

Personalizando o prompt da linha de comando


A varivel de prompt do shell padro bash, PS1, definida no /etc/profile. A definio de prompt usa caracteres especiais reconhecidos pelo shell bash, conforme este exemplo:
PS1="[\u@\h \W]\\$"

Esta linha deve existir, tambm, no arquivo .bash_profile. A varivel PS1 deve ser acrescentada linha de exportao no .bash_profile, desta forma:
export USERNAME ENV PATH PS1

Caracteres do prompt do shell bash: \! Exibe o nmero de histrico do comando \# Exibe o nmero desse comando \\$ Exibe # para root ou $ para usurio comum. \W Exibe o nome bsico do diretrio de trabalho atual \[ Indica a sequncia dos caracteres no imprimveis \\ Imprime uma barra invertida \] Finaliza a sequncia de caracteres no imprimveis \d Usa a data no prompt \h Usa o nome de host do computador no prompt \n Exibe uma nova linha de prompt \s Exibe o nome do shell \t Exibe a hora \u Exibe o nome atual do usurio \w Exibe o diretrio atual de trabalho Exemplos: [leonardo@localhost root]# PS1='\d \t: ';export PS1 Sun Feb 18 18:45:07:

Alias
So redefinies de comandos inseridas, pelo root, no arquivo /etc/bashrc que permitem maior agilidade no uso dos comandos. Exemplos: alias cp="cp -i" alias mv="mv -i"

2011 Alfamidia Prow

26

Conceitos, Instalao e Administrao de Sistemas Linux

Criar o arquivo e colocar nele os comandos


Use o nano, VI ou outro editor de textos de sua preferncia para colocar todos os comandos dentro do arquivo. A primeira linha do script deve ser:
#!/bin/bash

Para que ao ser executado, o sistema saiba que o shell quem ir interpretar estes comandos. Para tornar o script um arquivo executvel:
chmod +x sistema

Problemas na execuo do script


"Comando no encontrado" O shell no encontrou o seu script. Verifique se o comando que voc est chamando tem exatamente o mesmo nome do seu script. Lembre-se que no Unix/Linux as letras maisculas e minsculas so diferentes, ento o comando "SISTEMA" diferente do comando "sistema". Caso o nome esteja correto, verifique se ele est no PATH do sistema. O comando "echo $PATH" mostra quais so os diretrios conhecidos, mova seu script para dentro de um deles, ou chame-o passando o caminho completo. Se o script estiver no diretrio corrente, chame-o com um "./" na frente, assim:
prompt$ ./sistema

Caso contrrio, especifique o caminho completo desde o diretrio raiz: prompt$ /tmp/scripts/sistema "Permisso Negada" O shell encontrou seu script, mas ele no executvel. Use o comando chmod +x seu-script para torn-lo um arquivo executvel. "Erro de Sintaxe" O shell encontrou e executou seu script, porm ele tem erros. Um script s executado quando sua sintaxe est 100% correta. Verifique os seus comandos, geralmente o erro algum IF ou aspas que foram abertos e no foram fechados. A prpria mensagem informa o nmero da linha onde o erro foi encontrado.

2011 Alfamidia Prow

27

Conceitos, Instalao e Administrao de Sistemas Linux

O primeiro shell script.


Nesse ponto, voc j sabe o bsico necessrio para fazer um script em shell do zero e execut-lo. Mas apenas colocar os comandos em um arquivo no torna este script til. Vamos fazer algumas melhorias nele para que fique mais compreensvel. Executar os trs comandos seguidos resulta em um bolo de texto na tela, misturando as informaes e dificultando o entendimento. preciso trabalhar um pouco a sada do script, tornando-a mais legvel. O comando "echo" serve para mostrar mensagens na tela. Que tal anunciar cada comando antes de execut-lo?
#!/bin/bash echo "Data e Horrio:" date echo echo "Uso do disco:" df echo echo "Usurios conectados:" w

Para usar o echo, basta colocar o texto entre "aspas". Se nenhum texto for colocado, uma linha em branco mostrada. Para o script ficar mais completo, vamos colocar uma interao mnima com o usurio, pedindo uma confirmao antes de executar os comandos.
#!/bin/bash echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA test "$RESPOSTA" = "n" && exit echo "Data e Horrio:" date echo echo "Uso do disco:" df echo echo "Usurios conectados:" w

O comando "read" leu o que o usurio digitou e guardou na varivel RESPOSTA. Logo em seguida, o comando "test" verificou se o contedo dessa varivel era "n". Se afirmativo, o comando "exit" foi chamado e o script foi finalizado. Nessa linha h vrios detalhes importantes: O contedo da varivel acessado colocando-se um cifro "$" na frente O comando test til para fazer vrios tipos de verificaes em textos e arquivos O operador lgico "&&", s executa o segundo comando caso o primeiro tenha sido OK. O operador inverso o "||

Com o tempo, o script vai crescer, mais comandos vo ser adicionados e quanto maior, mais difcil encontrar o ponto certo onde fazer a alterao ou corrigir algum erro. Para poupar horas de estresse, e facilitar as manutenes futuras, preciso deixar o cdigo visualmente mais agradvel e espaado, e colocar comentrios esclarecedores.
#!/bin/bash # sistema - script que mostra informaes sobre o sistema
2011 Alfamidia Prow 28

Conceitos, Instalao e Administrao de Sistemas Linux # Autor: Fulano da Silva # Pede uma confirmao do usurio antes de executar echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA # Se ele digitou 'n', vamos interromper o script test "$RESPOSTA" = "n" && exit # O date mostra a data e a hora correntes echo "Data e Horrio:" date echo # O df mostra as parties e quanto cada uma ocupa no disco echo "Uso do disco:" df echo # O w mostra os usurios que esto conectados nesta mquina echo "Usurios conectados:" w

Basta iniciar a linha com um "#" e escrever o texto do comentrio em seguida. Estas linhas so ignoradas pelo shell durante a execuo. O cabealho com informaes sobre o script e seu autor tambm importante para ter-se uma viso geral do que o script faz, sem precisar decifrar seu cdigo. Tambm possvel colocar comentrios no meio da linha # como este

Variveis
As variveis so a base de qualquer script. dentro delas que os dados obtidos durante a execuo do script sero armazenados. Para definir uma varivel, basta usar o sinal de igual "=" e para ver seu valor, usa-se o "echo":
prompt$ prompt$ um dois prompt$ um dois prompt$ VARIAVEL="um dois tres" echo $VARIAVEL tres echo $VARIAVEL $VARIAVEL tres um dois tres

No podem haver espaos ao redor do igual "=" Ainda possvel armazenar a sada de um comando dentro de uma varivel. Ao invs de aspas, o comando deve ser colocado entre "$(...)", veja:
prompt$ prompt$ Hoje : prompt$ prompt$ prompt$ HOJE=$(date) echo "Hoje : $HOJE" Sb Abr 24 18:40:00 BRT 2004 unset HOJE echo $HOJE

E finalmente, o comando "unset" apaga uma varivel. Para ver quais as variveis que o shell j define por padro, use o comando "env". Diferente de outras linguagens de programao, o shell no usa os parnteses para separar o comando de seus argumentos, mas sim o espao em branco. O formato de um comando sempre:
COMANDO OPES PARMETROS

2011 Alfamidia Prow

29

Conceitos, Instalao e Administrao de Sistemas Linux

O comando "cat" mostra o contedo de um arquivo. O comando "cat -n sistema" mostra o nosso script, com as linhas numeradas. O "-n" a opo para o comando, que o instrui a numerar linhas, e "sistema" o ltimo argumento, o nome do arquivo. O "read" um comando do prprio shell, j o "date"" um executvel do sistema. Dentro de um script, no faz diferena usar um ou outro, pois o shell sabe como executar ambos. Assim, toda a gama de comandos disponveis no Unix/Linux pode ser usada em scripts! H vrios comandos que foram feitos para serem usados com o shell, so como ferramentas. Alguns deles:
Comando cat cut date find grep head printf rev sed seq sort tail tr uniq wc Funo Mostra arquivo Extrai campo Mostra data Encontra arquivos Encontra texto Mostra Incio Mostra texto Inverte texto Edita texto Conta Nmeros Ordena texto Mostra Final Transforma texto Remove duplicatas Conta Letras Opes -n, -s -d, -f, -c -d, +'...' -name, -iname,-type,f, -exec -i, -v, -r, -qs, -w,-x -n, -c nenhuma nenhuma -n,s/isso/aquilo/, d -s, -f -n, -f, -r, -k -t, -o -n, -c, -f -d, -s, A-Z a-z -i, -d, -u -c, -w, -l, -L

Use "man comando" ou "comando --help" para obter mais informaes sobre cada um deles. E o melhor, em shell possvel combinar comandos, aplicando-os em sequncia, para formar um comando completo. Usando o pipe "|" possvel canalizar a sada de um comando diretamente para a entrada de outro, fazendo uma cadeia de comandos. Exemplo:
prompt$ cat /etc/passwd | grep root | cut -c1-10 root:x:0:0 operator:x prompt$

O comando test
O canivete suo dos comandos do shell o "test", que consegue fazer vrios tipos de testes em nmeros, textos e arquivos. Ele possui vrias opes para indicar que tipo de teste ser feito, algumas delas:

lt -gt -le -ge -eq -ne

Testes em variveis Nm. menor que (LessThan) Nm. maior que (GreaterThan) Nm. menor igual (LessEqual) Nm. maior igual (GreaterEqual) Nm. igual (EQual) Nm. diferente (NotEqual)

-d -f -r -s -w -nt

Testes em arquivos um diretrio um arquivo normal O arquivo tem permisso de leitura O tamanho do arquivo maior que zero O arquivo tem permisso de escrita O arquivo mais recente (NewerThan)
30

2011 Alfamidia Prow

Conceitos, Instalao e Administrao de Sistemas Linux

= != -n -z

String igual String diferente String no nula String nula

-ot -ef -a -o

O arquivo mais antigo (OlderThan) O arquivo o mesmo (EqualFile) E lgico (AND) OU lgico (OR)

Exerccio: script que testa arquivos


Tente fazer o script "testa-arquivos", que pede ao usurio para digitar um arquivo e testa se este arquivo existe. Se sim, diz se um arquivo ou um diretrio. Exemplo de uso:
prompt$ testa-arquivos Digite o arquivo: /naoexiste O arquivo '/naoexiste' no foi encontrado prompt$ testa-arquivos Digite o arquivo: /tmp /tmp um diretrio prompt$ testa-arquivos Digite o arquivo: /etc/passwd /etc/passwd um arquivo prompt$

Conceitos avanados
At agora vimos o bsico, o necessrio para se fazer um script de funcionalidade mnima. A seguir, conceitos novos que ampliaro as fronteiras de seus scripts!

Recebimento de opes e parmetros


Assim como os comandos do sistema que possuem opes e parmetros, os scripts tambm podem ser preparados para receber dados via linha de comando. Dentro do script, algumas variveis especiais so definidas automaticamente, em especial, "$1" contm o primeiro argumento recebido na linha de comando, "$2" o segundo, e assim por diante. Veja o script "argumentos":
#!/bin/sh # argumentos - mostra o valor das variveis especiais echo "O nome deste script : $0" echo "Recebidos $# argumentos: $*" echo "O primeiro argumento recebido foi: $1" echo "O segundo argumento recebido foi: $2"

Ele serve para demonstrar o contedo de algumas variveis especiais, acompanhe:


prompt$ ./argumentos um dois trs O nome deste script : ./argumentos Recebidos 3 argumentos: um dois trs O primeiro argumento recebido foi: um O segundo argumento recebido foi: dois

O acesso direto, basta referenciar a varivel que o valor j estar definido. Assim possvel criar scripts que tenham opes como --help, --version e outras.

2011 Alfamidia Prow

31

Conceitos, Instalao e Administrao de Sistemas Linux

Expresses aritmticas
O shell tambm sabe fazer contas. A construo usada para indicar uma expresso aritmtica "$((...))", com dois parnteses.
prompt$ 6 prompt$ 8 prompt$ prompt$ 88 prompt$ prompt$ 45 echo $((2*3)) echo $((2*3-2/2+3)) NUM=44 echo $((NUM*2)) NUM=$((NUM+1)) echo $NUM

If, for e while


Assim como qualquer outra linguagem de programao, o shell tambm tem estruturas para se fazer condicionais e loop. As mais usadas so if, for e while.
if COMANDO for VAR in LISTA while COMANDO then do do comandos comandos comandos else done done comandos fi

Diferente de outras linguagens, o if testa um comando e no uma condio. Porm como j conhecemos qual o comando do shell que testa condies, s us-lo em conjunto com o if. Por exemplo, para saber se uma varivel maior ou menor do que 10 e mostrar uma mensagem na tela informando:
if test "$VARIAVEL" -gt 10 then echo " maior que 10" else echo " menor que 10" fi

H um atalho para o test , que o comando [. Ambos so exatamente o mesmo comando, porm usar o [ deixa o if mais parecido com o formato tradicional de outras linguagens:
if [ "$VARIAVEL" -gt 10 ] then echo " maior que 10" else echo " menor que 10" fi

Se usar o [, tambm preciso fech-lo com o ], e sempre devem ter espaos ao redor. recomendado evitar esta sintaxe para diminuir suas chances de erro. J o while um lao que executado enquanto um comando retorna OK. Novamente o test bom de ser usado. Por exemplo, para segurar o processamento do script enquanto um arquivo de lock no removido:
2011 Alfamidia Prow 32

Conceitos, Instalao e Administrao de Sistemas Linux

while test -f /tmp/lock do echo "Script travado..." sleep 1 done

E por fim, o for percorre uma lista de palavras, pegando uma por vez:
for numero in um dois trs quatro cinco do echo "Contando: $numero" done

Uma ferramenta muito til para usar com o for o seq, que gera uma sequncia numrica. Para fazer o loop andar 10 passos, pode-se fazer:
for passo in $(seq 10)

O mesmo pode ser feito com o while, usando um contador:


i=0 while test $i -le 10 do i=$((i+1)) echo "Contando: $i" done

E temos ainda o loop infinito, com condicional de sada usando o "break:


while : do if test -f /tmp/lock then echo "Aguardando liberao do lock..." sleep 1 else break fi done

Exerccios
A melhor parte finalmente chegou, agora a sua vez de se divertir. Seguem alguns exerccios que podem ser resolvidos usando o que foi aprendido at aqui. Alguns exigiro pesquisa e necessitaro de algumas ferramentas que foram apenas citadas, mas no aprendidas. O shelleiro tambm tem que aprender a se virar sozinho!

relacao.sh
Recebe dois nmeros como parmetro e mostra a relao entre eles. Exemplo:
prompt$ ./relacao.sh 3 5
2011 Alfamidia Prow 33

Conceitos, Instalao e Administrao de Sistemas Linux 3 menor que 5 prompt$ ./relacao.sh 5 3 5 maior que 3 prompt$ ./relacao.sh 5 5 5 igual a 5 prompt$

zerador.sh
Recebe um nmero como parmetro e o diminui at chegar a zero, mostrando na tela cada passo, em uma mesma linha. Exemplo:
prompt$ ./zerador.sh 5 5 4 3 2 1 0 prompt$ ./zerador.sh 10 10 9 8 7 6 5 4 3 2 1 0 prompt$

substring.sh
Recebe duas palavras como parmetro e verifica se a primeira palavra est contida dentro da segunda. S mostra mensagem informativa em caso de sucesso, do contrrio no mostra nada. Exemplo:
prompt$ ./substring.sh ana banana ana est contida em banana prompt$ ./substring.sh banana maria prompt$ ./substring.sh banana prompt$ ./substring.sh prompt$

Pesquise sobre o comando grep

juntatudo.sh
Mostra na tela "grudados" todos os parmetros recebidos na linha de comando, como uma nica palavra. Exemplo:
prompt$ ./juntatudo.sh a b c d e f verde azul abcdefverdeazul prompt$

Pesquise sobre o comando tr

2011 Alfamidia Prow

34

Conceitos, Instalao e Administrao de Sistemas Linux

users.sh
Do arquivo /etc/passwd, mostra o usurio e o nome completo de cada usurio do sistema (campos 1 e 5) separados por um TAB. Exemplo:
prompt$ ./users.sh ftp FTP User nobody Nobody named Domain name server xfs X Font Server mysql MySQL server aurelio Aurelio Marinho Jargas prompt$

Pesquise sobre o comando cut

shells.sh
Do arquivo /etc/passwd, mostra todos os shells (ltimo campo) que os usurios usam. No mostrar linhas repetidas. Exemplo:
prompt$ ./shells.sh /bin/bash /bin/false /bin/sync /sbin/halt /sbin/shutdown prompt$

Pesquise sobre o comando uniq

parametros.sh
Mostra na tela todos os parmetros recebidos na linha de comando, contando-os. Exemplo:
prompt$ ./parametros.sh a b c d e f Parmetro 1: a Parmetro 2: b Parmetro 3: c Parmetro 4: d Parmetro 5: e Parmetro 6: f prompt$

Pesquise sobre o comando shift

2011 Alfamidia Prow

35

Conceitos, Instalao e Administrao de Sistemas Linux

Respostas dos exerccios


Resista tentao de olhar as respostas antes de tentar fazer os exerccios! na prtica que se consolida os conhecimentos aprendidos, no pule este passo. Seja forte, insista, no desista!

testa-arquivos
#!/bin/bash echo -n "Digite o arquivo: " read ARQUIVO test -d "$ARQUIVO" && echo "$ARQUIVO um diretrio" test -f "$ARQUIVO" && echo "$ARQUIVO um arquivo" test -f "$ARQUIVO" -o -d "$ARQUIVO" || echo "O arquivo '$ARQUIVO' no foi encontrado" echo

relacao.sh
#!/bin/bash if test $1 -eq $2 then echo "$1 igual a $2" elif test $1 -lt $2 then echo "$1 menor que $2" else echo "$1 maior que $2" fi

zerador.sh
#!/bin/bash i=$1 while test $i -ge 0 do echo -n "$i " i=$((i-1)) done echo

substring.sh
#!/bin/bash test $# -ne 2 && exit echo $2 | grep -qs $1 && echo "$1 est contida em $2"

juntatudo.sh
#!/bin/bash echo $* | tr -d ' '

2011 Alfamidia Prow

36

Conceitos, Instalao e Administrao de Sistemas Linux

users.sh
#!/bin/bash cat /etc/passwd | cut -d : -f 1,5 | tr : '\t'

shells.sh
#!/bin/bash cat /etc/passwd | cut -d : -f 7 | sort | uniq

parametros.sh
#!/bin/bash i=0 while test "$1" do i=$((i+1)) echo "Parmetro $i: $1" shift done

Sair do Shell
Para finalizar o shell, basta utilizar os comandos exit, logout ou Ctrl + D. Quando o encerramento do sistema tem inicio, todos os sistemas de arquivos (exceto o raiz) so desmontados, os processos de usurio so finalizados, servidores so encerrados e finalmente o sistema de arquivo raiz desmontado. Proceda da forma adequada caso contrrio pode-se corromper o sistema de arquivos.

Reinicializando o Linux
Para reinicializar o sistema use o comando reboot ou shutdown com as opes r now, conforme o exemplo abaixo:
[root@localhost /root]# reboot shutdown r now

ou
[root@localhost /root]#

Desligando o Linux
Para desligar o sistema use comando poweroff ou shutdown com as opes h now, conforme o exemplo abaixo:
[root@localhost /root]# poweroff halt shutdown h now

Ou
[root@localhost /root]#

Ou [root@localhost /root]#

2011 Alfamidia Prow

37

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 4. Dispositivos, Sistemas de Arquivos GNU/Linux


Criao de Parties e Sistemas de Arquivos
Discos IDE podem conter at 4 parties fsicas, das quais uma pode ser estendida. A partio estendida pode ser dividida em parties lgicas. Pode haver um mximo de 46 parties num disco IDE e 16 num disco SCSI.

Fdisk
O fdisk o programa padro para manipular parties no GNU/Linux. Com a opo -l lista os dispositivos e as parties existentes:
# fdisk -l Disk /dev/hda: 10.0 GB, 10005037568 bytes 255 heads, 63 sectors/track, 1216 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Dispositivo /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 Boot * Start End 1 153 154 173 174 782 783 1216 Blocks 1228941 160650 4891792+ 3486105 Id b 82 83 83 System W95 FAT32 Linux swap Linux Linux

Disk /dev/hdb: 2111 MB, 2111864832 bytes 64 heads, 63 sectors/track, 1023 cylinders Units = cilindros of 4032 * 512 = 2064384 bytes Dispositivo /dev/hdb1 Boot Start 1 End 1023 Blocks 2062336+ Id c System W95 FAT32 (LBA)

Para manipular parties, o fdisk deve ser iniciado tendo como argumento o dispositivo em questo:
# fdisk /dev/hda

Uma vez dentro do fdisk, certas letras correspondero a comandos. Alguns comandos bastante utilizados: p Lista as parties n Cria uma nova partio interativamente t Muda a identificao da partio d Apaga uma partio q Sai do fdisk sem gravar as alteraes w Sai do fdisk e grava as alteraes m Mostra a ajuda de comandos Por padro, o fdisk cria novas parties identificadas como parties nativas de GNU/Linux, cujo cdigo hexadecimal 83 (0x83). O cdigo de identificao de parties do tipo swap 82 (0x82).

2011 Alfamidia Prow

38

Conceitos, Instalao e Administrao de Sistemas Linux

Criao de Sistemas de Arquivos


Durante muito tempo o sistema de arquivos mais utilizado no GNU/Linux foi o ext2 (second extended). No entanto, hoje muito se usa sistemas de arquivos journalling, como o ext3 e o ReiserFS. Por padro, o ext2 consiste em blocos de 1024 bytes. H trs tipos de blocos.

Superblocks
Repetem-se a cada 8193 blocos. Contm informaes sobre o tamanho dos blocos, inodes livres, data da ltima montagem, etc.

inodes
Indicadores para os blocos de dados. Os 12 primeiros blocos de dados aps o inode so acessados sequencialmente. Se os dados excederem 12 blocos, blocos inode indiretos agem como espelho. Cada inode tem 256 bytes e contm a informao de usurio, grupo, permisses e data referente aos dados associados.

Blocos de dados
Os blocos que contm os arquivos e diretrios propriamente ditos. A diferena para um sistema de arquivos journalling que um sistema com essa capacidade registra de antemo todas as alteraes que ir realizar no disco. Dessa forma, erros de gravao (normalmente ocasionados por queda de energia ou desligamento incorreto) podem ser mais facilmente diagnosticados e sanados. possvel fazer a converso de ext2 para ext3 sem perda de dados. O comando mkfs cria sistemas de arquivos em parties. A opo -t indica o tipo do sistema de arquivos: Criar uma partio ext2 na partio /dev/hda3:
# mkfs -t ext2 /dev/hda3

H tambm comandos especficos para cada sistema de arquivos: mkfs.ext2, mke2fs, mkfs.ext3, mkfs.xfs, mkreiserfs, mkfs.vfat.

mkdosfs

Partio Swap
Aps a partio swap ser criada pelo fdisk, ela precisa ser formatada com o comando mkswap: Formata como swap a partio /dev/hda2:
# mkswap /dev/hda2

Aps criada e formatada, uma partio swap precisa ser ativada para ser usada como memria swap.

2011 Alfamidia Prow

39

Conceitos, Instalao e Administrao de Sistemas Linux

O comando swapon -a ativa todas parties swap que constarem em /etc/fstab. As entradas referentes a parties swap em /etc/fstab no tem ponto de montagem. Exemplo de entrada de partio swap em /etc/fstab:
/dev/hda2 swap swap defaults 0 0

Normalmente, todas as parties swap contidas em /ect/fstab so ativadas pelos scripts de inicializao do sistema. Para ativar ou desativar essa partio manual manualmente, usa-se swapon /dev/hda2 ou swapoff /dev/hda2, respectivamente. Informaes sobre parties swap ativas so armazenadas em /proc/swaps. Exemplo de /proc/swaps:
Filename /dev/hda2 Type partition Size Used Priority 160640 32632 -1

2011 Alfamidia Prow

40

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 5. Manuteno da Integridade de Sistemas de Arquivos


Checando o Sistema de Arquivos
O comando fsck deve ser executado em parties que apresentarem erros ou em dispositivos que foram desligados incorretamente. A partio dever estar desmontada ou montada como somente leitura (ro) para a verificao. Como o comando mkfs, o fsck possui a opo -t para especificar o tipo do sistema de arquivos e um comando especfico para cada partio: fsck.ext2 ou e2fsck, fsck.ext3, fsck.xfs, reiserfsck e dosfsck.

Examinando e corrigindo o Sistema de Arquivos


debugfs
Depurador interativo de sistemas de arquivos. Examina sistemas ext2 e ext3. Muda diretrios, examina dados de inodes, apaga arquivos, cria links, mostra o log de journalling ext3, etc. usado em casos extremos, geralmente aps o fsck ter falhado.

dumpe2fs
Mostra informaes de grupo de blocos e de superblocks.

tune2fs
Configura parmetros ajustveis em sistemas de arquivos ext2, como rtulo e limites de montagem antes de checar automaticamente.

df
Mostra o espao disponvel em cada dispositivo. A anlise feita diretamente no dispositivo. Por padro, mostra o espao em unidades de 1kb. A opo -h usa medidas apropriadas para tornar a sada mais inteligvel.

du
Mostra o espao ocupado. Sem argumentos, mostra o uso de cada diretrio no sistema. Um diretrio especfico pode ser indicado atravs da opo -s. A opaco -h usa medidas apropriadas para tornar a sada mais inteligvel.

2011 Alfamidia Prow

41

Conceitos, Instalao e Administrao de Sistemas Linux

Montagem e Desmontagem dos Sistemas de Arquivos


/etc/fstab
Durante os procedimentos de carregamento do sistema, o arquivo /etc/fstab que determina os pontos de montagem dos dispositivos. Cada linha corresponde a um dispositivo, contendo os seguintes termos separados por tabulaes ou espaos: 1. Dispositivo 2. Ponto de montagem ( swap se for uma partio de swap) 3. Tipo de sistema de arquivos 4. Opes 5. Dump (0 ou 1). Determina se dispositivo dever ser considerado pelo comando dump. Se ausente, 0 considerado. 6. fsck (1 ou 2). Determina a ordem da checagem feita pelo fsck durante o boot. Para a partio raiz (/), deve ser 1. Se ausente, 0 presumido e a checagem no ser feita no boot. Para permitir que usurios comuns montem e desmontem dispositivos geralmente, o caso de dispositivos removveis deve-se incluir a opaco users para o respectivo dispositivo. Exemplo: /dev/cdrom /mnt/cdrom auto noauto,users,ro 0 0 A palavra auto na posio referente ao sistema de arquivos indica que o sistema de arquivos deve ser identificado automaticamente.

mount
O comando mount usado sem argumentos mostra os dispositivos montados e outros detalhes, como ponto de montagem e tipo do sistema de arquivos. Tambm usado para montar dispositivos manualmente: O comando do exemplo acima monta o dispositivo /dev/cdrom contendo mdia com sistema de arquivos iso9660 no diretrio /mnt/cdrom, com permisso somente-leitura (ro). Para montar manualmente um dispositivo que conste em /etc/fstab, basta fornecer para o comando mount a localizao do dispositivo ou do diretrio alvo. Para desmontar um dispositivo, o comando umount utilizado tendo como argumento o dispositivo ou o diretrio alvo a ser desmontado. Usado com a opcao -a, o comando mount montar todos os dispositivos em /etc/fstab (exceto os marcados com a opo noauto).

Opes de montagem
As opes de montagem so as mesmas para /etc/fstab e para mount diretamente. Se mais de uma opo for fornecida, devero ser separadas por vrgula. rw ou ro Gravvel ou somente leitura noauto No e montado automaticamente users O dispositivo poder ser montado e desmontado por usurios comuns
2011 Alfamidia Prow 42

Conceitos, Instalao e Administrao de Sistemas Linux

user Apenas quem montou ter permisso de desmontar owner As permisses do dispositivo montado se adequaro ao usurio que o montou usrquota Habilita o uso de quotas de disco para usurio grpquota Habilita o uso de quotas de disco para grupo remount Remonta um dispositivo montado com outras opes. til para remontar um dispositivo como somente leitura, por exemplo.

2011 Alfamidia Prow

43

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 6. Administrao de Cotas de Disco


Introduo
No Linux podemos definir quotas de espao em disco por usurio ou grupos de usurios. Estas quotas garantem um limite de espao em disco, se este limite for ultrapassado, o usurio ou grupo de usurios no ser capaz de criar novos arquivos at que os mesmos sejam apagados ou a quota seja redimensionada. Desta maneira, esse recurso se torna indispensvel para aplicaes que envolvem ambientes multiusurios, servidores etc. Antes de partimos para a prtica, necessrio saber se o suporte a quotas foi compilado no Kernel do sistema.

Limites de Quotas
Cada sistema de arquivos pode ter cinco tipos de limites de quotas, que so especificados em blocos (blocks) de 1024 bytes cada:

Hard Limit (Limite Fsico) por usurio:


o mximo de espao em disco que um usurio pode ter na partio configurada com quotas de disco. Uma vez que este limite de quota ultrapassado, o usurio no poder gravar arquivos na partio.

Soft Limit (Limite Temporrio) por usurio:


Indica a quantidade mxima de espao temporria em disco numa partio. Quando este limite ultrapassado, o usurio informado que seu espao em disco est terminando e o Grace Period acionado. O usurio ainda poder gravar arquivos at o Grace Period terminar ou at que o Hard Limit seja alcanado.

Hard Limit para grupo de usurios:


o mximo de espao em disco que um grupo de usurios pode ter. Quando esse limite ultrapassado, nenhum usurio poder gravar arquivos em disco mesmo que tenham espao disponvel.

Soft Limit para grupo de usurios:


2011 Alfamidia Prow 44

Conceitos, Instalao e Administrao de Sistemas Linux

Indica a quantidade mxima de espao temporria em disco numa partio. Quando este limite ultrapassado, o grupo de usurios informado que seu espao em disco est terminando e o Grace Period acionado. Os usurios ainda podero gravar arquivos at o Grace Period terminar ou at que o Hard Limit por grupo seja alcanado.

Layout de Discos em Sistemas x86 Comandos para gerncia de quotas


quota
O comando quota usado para visualizar informaes sobre as quotas de espao em disco configuradas para um determinado usurio ou grupo de usurios.

Opes: -u - Mostra a quota definida para um determinado usurio; -g - Mostra a quota definida para um determinado grupo de usurios; -v - Mostra as quotas mesmo que nenhuma esteja definida; -q - Mostra somente quando a rota for excedida; -i - Ignora pontos de montagem montados pelo automounter; -l - Mostra apenas quotas de sistemas de arquivos locais; Somente o superusurio pode visualizar as informaes de quotas de outros usurios, sendo que um usurio comum s pode ver a sua quota e a quota do grupo que ele pertence.

$ quota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks quota limit grace /dev/sdb2 2740* 1000 2000

files 60

quota 0

limit 0

grace

quotaon
O comando quotaon habilita o gerenciamento prvio de todas as quotas de disco configuradas em um ou mais sistemas de arquivos. Opes:

2011 Alfamidia Prow

45

Conceitos, Instalao e Administrao de Sistemas Linux

-a -- Habilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab; -v - Mostra uma mensagem para cada sistema de arquivos com quotas habilitadas; -u - Habilita o gerenciamento de quotas de usurios em um determinado dispositivo; -g - Habilita o gerenciamento de quotas de grupos em um determinado dispositivo;

# quotaon -aguv /dev/sdb2 [/mnt/particao1]: group quotas turned on /dev/sdb2 [/mnt/particao1]: user quotas turned on

Vamos supor que eu necessite habilitar as quotas de grupo somente do sistema de arquivos localizado no diretrio /home:
# quotaon -gv /home

quotaoff
O comando quotaoff desabilita o gerenciamento de quotas de usurios ou grupos em um ou mais sistemas de arquivos. Opes: -a - Desabilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab; -v - Mostra uma mensagem para cada sistema de arquivos com quotas desabilitadas; -u - Desabilita o gerenciamento de quotas de usurios em um determinado dispositivo; -g - Desabilita o gerenciamento de quotas de grupos em um determinado dispositivo;

# quotaoff -aguv /dev/sdb2 [/mnt/particao1]: group quotas turned off /dev/sdb2 [/mnt/particao1]: user quotas turned off

quotacheck
Faz uma checagem nos sistemas de arquivos configurados com gerenciamento de quotas, compila e atualiza os bancos de dados de quotas (usrquota e grpquota). recomendado que o quotacheck seja executado toda vez que o sistema inicializado ou periodicamente (dia, semana, ms), via cron.
2011 Alfamidia Prow 46

Conceitos, Instalao e Administrao de Sistemas Linux

Desta maneira, ele garante que o banco de dados esteja no seu mais recente estado. importante saber que as quotas para um determinado dispositivo devem ser desabilitadas antes do uso do comando quotacheck, seno as informaes coletadas da base de dados ficaro em memria e os arquivos com a base de dados no sero atualizados. Opes: -a - Checa todas as quotas configuradas para os sistemas de arquivos mencionados no arquivo /etc/fstab; -g grupo - Cria a base de dados para um determinado grupo; -u user - Cria a base de dados para um determinado usurio; -v - Mostra todas as informaes executadas pelo quotacheck;

# quotaoff -a # quotacheck -avug # quotaon -a

edquota
O comando edquota um utilitrio usado somente pelo superusurio para edio de quotas de usurios e grupos. O editor vi o editor padro usado com o edquota para editar os arquivos quota.user e quota.group. Opes: -r - Edita quotas em dispositivos remotos, um bom exemplo so os dispositivos que usam NFS; -u - Edita as quotas de usurios; -g - Edita as quotas de grupos de usurios; -p user - Copia as configuraes de uma quota de usurio padro para criar outra; -F format-name - Edita as quotas para um formato especfico (vfsold, vfsv0, rpc e xfs); -f filesystem - Realiza operaes especificas para um nico sistema de arquivos; -T - Edita o tempo limite de uso de quotas de usurios/grupos quando o softlimit excedido; -t - Edita o perodo de graa para os Soft Limits para cada sistema de arquivos; Observe a edio da quota do usurio mark:
# edquota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks soft hard inodes /dev/sdb2 2740 3000 5000 60

soft 0

hard 0

2011 Alfamidia Prow

47

Conceitos, Instalao e Administrao de Sistemas Linux

Agora, vamos mudar o perodo de soft limit de todos os usurios:


# edquota -tu Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sdb2 5days 3days

Podemos usar dias, horas, minutos ou segundos para configurar o Soft Limit, no exemplo acima, o perodo de graa para espao em disco est configurado para 5 dias e 3 dias para armazenamento de arquivos.

repquota
O comando repquota gera um relatrio do uso das quotas de discos de usurios e grupos de um determinado dispositivo. Opes: -a - Exibe um relatrio de todas as quotas dos sistemas de arquivos que esto contidos no arquivo /etc/mtab; -v - Cria um cabealho descritivo para o relatrio de quotas; -u - Cria um relatrio de utilizao por usurio; -g - Cria um relatrio de utilizao por grupo; -c - Faz cache das entradas para relatrio e traduz os UIDs/GIDs para nomes em uma grande amostra de usurios. um bom procedimento quando usado com o arquivo /etc/passwd; -C - Faz cach das entradas para relatrio individualmente. um bom procedimento quando os usurios esto armazenados em um banco de dados; -t - Trunca o nome de usurios ou grupos com mais de 9 caracteres; -n - No traduz UIDs/GIDs para nomes; -i - Ignora os pontos de montagem montados pelo automounter; -s - Testa para relatar o espao e o nmero de inodes usados; -F - Exibe um relatrio de quotas para um determinado formato. Esses formatos podem ser: vfsold, vfsv0 e xfs;

Criando e gerenciando quotas


Nesse tpico, abordaremos todos os procedimentos para a criao e gerenciamento de quotas.
2011 Alfamidia Prow

48

Conceitos, Instalao e Administrao de Sistemas Linux

Edite e insira no arquivo /etc/fstab a linha abaixo:


/dev/sda8 /home ext3 defaults,usrquota,grpquota 1 2

Crie os arquivos quota.user e quota.group e d permisso de acesso somente para o root no diretrio /home:
# touch /home/quota.user /home/quota.group # chmod 600 /home/quota.user /home/quota.group

Estes dois arquivos so os bancos de dados de quotas de usurios e grupos. Nesse exemplo, estamos utilizando quota verso-1, caso algum esteja usando a verso-2, os nomes dos arquivos devem ser aquota.user e aquota.group. Agora devemos reiniciar o sistema para que as configuraes de quota entrem em vigor. # shutdown -r now Aps a reinicializao do sistema, use o comando quotacheck para inicializar os bancos de dados: # quotacheck -avug Adicione as quotas de usurios:
# edquota -u mark Disk quotas for user mark (uid Filesystem blocks soft /dev/sda8 28 9000 /dev/sdb2 2740 3000

1000): hard 10000 5000

inodes 7 60

soft 4000 0

hard 5000 0

Adicione as quotas de grupo:


# edquota -g santos Disk quotas for group Filesystem blocks /dev/sda8 0 /dev/sdb2 16

santos (gid 1001): soft hard inodes 100000 120000 0 300000 350000 0

soft 0 4

hard 0 0

Adicione o tempo limite que os usurios e grupos podero ter as suas quotas excedidas:
# edquota -t Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sda8 7days 7days /dev/sdb2 7days 7days

2011 Alfamidia Prow

49

Conceitos, Instalao e Administrao de Sistemas Linux

Crie um script para iniciar e verificar o sistema de quotas toda vez que ele inicializado. Este script deve ser criado no diretrio que o sistema utiliza para inicializar os servios automaticamente, normalmente o diretrio /etc/init.d:
# vi quotas.sh #!/bin/bash # Checa e ativa o sistema de quotas if [ -x /usr/sbin/quotacheck ] then echo "Checando sistema de quotas. " /usr/sbin/quotacheck -avug echo " Sistema de Quotas OK." fi if [ -x /usr/sbin/quotaon ] then echo "Ativando sistema de quotas." /usr/sbin/quotaon -avug fi

Adicione o comando quotacheck no cron para que seja executado semanalmente:


# crontab -e 0 3 * * 0 /usr/sbin/quotacheck -avug

Ou se preferir, adicione um script no diretrio /etc/cron.weekly:


# vi checaquotas.sh #!/bin/bash /usr/sbin/quotacheck -avug

No esquea de dar permisso de execuo ao arquivo: # chmod 760 checaquotas.sh Execute o comando "repquota -v /home" para visualizar o relatrio de quotas:
# repquota -v /home

2011 Alfamidia Prow

50

Conceitos, Instalao e Administrao de Sistemas Linux

Estrutura de Diretrios
Um sistema de arquivos a coleo de arquivos e a hierarquia de diretrios em um sistema. Primeiro, mude para o diretrio root digitando o comando cd /
[root@bwpx01 ~]# cd /

Para mostrar uma lista do seu contedo digite o comando ls l.


[root@bwpx01 /]# ls -l total 195 drwxr-xr-x 2 root root drwxr-xr-x 4 root root drwxr-xr-x 8 cduser cduser drwxr-xr-x 16 root root drwxr-xr-x 105 root root drwxr-xr-x 133 root root drwxr-xr-x 11 root root drwxr-xr-x 7 root root drwx-----2 root root drwxr-xr-x 2 root root drwxr-xr-x 2 root root drwxr-xr-x 3 root root drwxr-xr-x 2 root root drwxr-xr-x 8 root root dr-xr-xr-x 357 root root drwxr-x--9 root root drwxr-xr-x 2 root root drwxr-xr-x 2 root root drwxr-xr-x 2 root root drwxr-xr-x 11 root root drwxr-xr-x 3 root root drwxrwxrwt 9 root root drwxr-xr-x 18 root root drwxr-xr-x 23 root root 4096 1024 4096 7760 12288 4096 4096 12288 16384 4096 0 4096 0 4096 0 4096 12288 4096 4096 0 4096 4096 4096 4096 Jul Jul Sep Aug Sep Aug Jul Jul Jul Oct Aug Jul Aug Jul Aug Aug Jul Jul Oct Aug Jul Sep Apr Jul 29 29 2 10 14 27 29 30 29 1 10 30 10 30 10 24 29 29 1 10 29 15 26 29 17:52 12:08 17:07 17:54 11:40 19:02 17:50 11:35 11:15 2009 17:50 14:34 17:50 11:51 17:49 11:36 17:52 11:19 2009 17:49 11:50 09:03 09:06 16:01 bin boot cdunix dev etc home lib lib64 lost+found media misc mnt net opt proc root sbin selinux srv sys tftpboot tmp usr var

/bin
/bin uma abreviatura para "binrios", ou executveis. nesse diretrio onde residem a maioria dos programas essencias do sistema. Use o comando "ls -l /bin" para listar os arquivos.
[root@bwpx01 /]# ls /bin alsacard dbus-uuidgen alsaunmute dd arch df awk dmesg basename dnsdomainname bash doexec cat domainname chgrp dumpkeys chmod echo chown ed cp egrep cpio env csh ex cut false date fgrep dbus-cleanup-sockets gawk dbus-daemon gettext dbus-monitor grep dbus-send gtar gunzip gzip hostname igawk ipcalc kbd_mode kill ksh ksh93 link ln loadkeys loadkeys.static logger login ls mail mailx mkdir mknod mktemp more mount mountpoint mv netstat nice nisdomainname pgawk ping ping6 ps pwd raw red redhat_lsb_init rm rmdir rpm rvi rview sed setfont setserial sh sleep sort stty su sync tar taskset tcptraceroute tcsh touch tracepath tracepath6 traceroute traceroute6 tracert true umount uname unicode_start unicode_stop unlink usleep vi view ypdomainname zcat zsh

2011 Alfamidia Prow

51

Conceitos, Instalao e Administrao de Sistemas Linux

Esses so os arquivos que contm programas. Quando voc executa cp, est executando o programa /bin/cp.

/dev
Os arquivos em /dev so conhecidos como controladores de dispositivo (device drivers) e so usados para acessar os dispositivos ou recursos do sistema, como discos rgidos, modems, memria, etc. Por exemplo, da mesma forma que voc pode lear dados de um arquivo, pode tambm ler da entrada do mouse, lendo /dev/mouse. Os arquivos que comeam com fd so os controladores de disquete. fd0 o primeiro drive, e fd1 o segundo. Note que h mais controladores de dispositivo para drivers do que mencionamos. Eles representam tipos especficos de discos. Por exemplo, fd1H1440 acessa discos de 3.5'' de alta densidade no drive 1. Aqui temos uma lista de alguns dos controladores de dispositivos mais usados. Note que mesmo que voc no tenha algum dos dispositivos listados, ter entradas em dev de qualquer forma. /dev/console faz referncia ao console do sistema, quer dizer, ao monitor conectado em seu sistema. Os dispositivos /dev/ttyS e /dev/cua so usados para acessar as portas seriais. Por exemplo, /dev/ttyS0 faz referncia a "COM1", sob o MS-DOS. Os dispositivos /dev/cua so "callout" e so usados em conjunto com um modem. Os nomes dos dispositivos que comeam por hd acessam a discos rgidos. /dev/hda se refere a todo o primeiro disco, enquanto que /dev/hda1 se refere a primeira partio em /dev/hda. Os nomes de dispositivo que comenam com sd so dispositivos SCSI. Se voc tem um disco rgido SCSI, no lugar de acess-lo com /dev/hda, vai acess-lo com /dev/sda. As fitas SCSI so acessadas via dispositivos st e os CD-ROM SCSI via sr. Os nomes que comenam por lp acessam as portas paralelas. /dev/lp0 se refere a "LPT1" no mundo MS-DOS. /dev/null usado como "buraco negro", qualquer dado enviado a este dispositivo desaparece. Para que pode ser til isto?. Bem, se deseja suprimir a sada para a tela de um comando, pode enviar a sada para /dev/null. Falaremos mais sobre isto depois. Os nomes que comeam por /dev/tty se referem a "consoles virtuais" de seu sistema (acessveis mediante as teclas Alt-F1, Alt-F2, etc). /dev/tty1 se refere a primeira VC, /dev/tty2 a segunda, etc. Os nomes de dispositivo que comeam com /dev/pty so "pseudoterminais". So usados para proporcionar um "terminal" a sesses remotas. Por exemplo, se sua mquina est em uma rede, o telnet de entrada usar um dos dispositivos /dev/pty.

/etc
/etc contm uma srie de arquivos de configurao do sistema. Isto inclui o /etc/passwd (a base de dados de usurios), o /etc/rc (instrues de inicializao do sistema), etc.

/sbin
/sbin usado para armazenar programas esenciis do sistema, usados pelo administrador do sistema.

2011 Alfamidia Prow

52

Conceitos, Instalao e Administrao de Sistemas Linux

/home
/home contm os diretrios "home" dos usurios. Por exemplo, /home/larry o diretrio do usurio "larry". Em um sistema recm instalado, esse diretrio estar vazio.

/lib
/lib contm as imagens das bibliotecas compartilhadas. Esses arquivos contm cdigo que muitos programas compartilham. Ao invs de cada programa ter uma cpia prpria das funes compartilhadas, elas so guardadas em um lugar comum, o /lib. Isso faz com que os programas executveis sejam menores e reduzam o espao usado em disco.

/proc
/proc um "sistema de arquivos virtual". Os arquivos que esto no /proc residem verdadeiramente na memria, e no no disco. Esses arquivos se referem a vrios processos que rodam no sistema e permitem obter informao sobre programas e processos que esto rodando num dado momento.

/tmp
Muitos programas tm necessidade de gerar alguma informao temporria e de guardar essa informao em um arquivo temporrio. O lugar para esses arquivos o /tmp.

/usr
/usr um diretrio muito importante. Contm uma srie de subdiretrios que por sua vez contm alguns dos mais importantes e teis programas e arquivos de configurao usados no sistema. Os vrios diretrios descritos acima so essenciais para o sistema operar, mas a maioria dos itens no /usr so opcionais. Entretanto, so esses itens opcionais que tornam o sistema til e interessante. Sem o /usr, voc teria um sistema tedioso que suportaria somente programas como cp e ls. O /usr contm a maioria dos pacotes grandes de software e os arquivos de configurao que os acompanham.

/usr/X11R6
/usr/X11R6 contm o sistema X Window se voc o instalou el sistema X Window se voc o instalou. O sistema X Window um ambiente grfico poderoso que proporciona um grande nmero de ferramentas e programas grficos, mostrados em janelas na sua tela. Se voc est familiarizado com os ambientes MS Windows ou Macintosh, o X Window lhe ser muito familiar. O diretrio /usr/X11R6 contm todos os executveis do X Window, arquivos de configurao e suporte.

/usr/bin
/usr/bin contm a maioria dos programas executveis no encontrados em outras partes, como no /bin.

/usr/etc
Como o /etc, contm diferentes arquivos de configurao e programas do sistema, /usr/etc contm inclusive mais que o anterior. Em geral, os arquivos que se encontram em /usr/etc no so essenciais para o sistema, diferentemente dos que se encontram no /etc.

2011 Alfamidia Prow

53

Conceitos, Instalao e Administrao de Sistemas Linux

/usr/include
/usr/include contm os arquivos include para o compilador C. Esse arquivos (a maioria dos quais termina com .h, de "header") declaram estruturas de dados, subrotinas e constantes usadas no desenvolvimento de programas em C. Os arquivos que se encontram em /usr/include/sys geralmente so usados quando programando no nvel do sistema UNIX. Se voc est familiarizado com programao C, encontrar arquivos como stdio.h, o qual declara funes como printf().

/usr/g++-include
/usr/g++-include contm arquivos de incluso para o computador C++ (muito parecido ao /usr/include).

/usr/lib
/usr/lib contm as bibliotecas "stub" e "static" equivalentes aos arquivos encontrados em /lib. Ao compilar um programa, ele "linkado" com as bibliotecas que se encontram em /usr/lib, as quais direcionam o programa para o /lib, quando precisa buscar o cdigo real da biblioteca. Alm disso, vrios programas armazenam arquivos de configurao no /usr/lib.

/usr/local
/usr/local muito parecido ao /usr. Ele contm programas e arquivos no essenciais ao sistema, mas que tornam o sistema mais divertido e excitante. Em geral, os programas que se encontram em /usr/local so especficos do seu sistema, isto , o diretrio /ussr/local difere bastante entre os sistemas UNIX. Aqui encontrar grandes programas, como o TeX (sistema de formatao de documentos) e Emacs (editor grande e poderoso), se os instalar.

/usr/man
Esse diretrio contm as pginas de manual. H dois subdiretrios para cada seo de pgina de manual (use o comando "man man" para detalhes). Por exemplo, /usr/man/man1 contm os fontes (isto , o original no formatado) para as pginas de manual na seo 1, e /usr/man/cat1 contm as pginas de manual formatadas para a seo 1.

/usr/src
/usr/src contm o cdigo fonte (programas a compilar) de vrios programas do sistema. subdiretrio mais importante o /usr/src/linux, que contm o cdigo fonte do kernel do Linux. O

/var
/var contm diretrios que freqntemente mudam de tamanho ou tendem a crescer. Muitos desses diretrios residiam antes em /usr, mas desde que estamos tratando de deixar o /usr inalterado, os diretrios que mudam de tamanho foram levados para o /var. Alguns deles so:

/var/adm
/var/adm contm vrios arquivos de interesse para o administrador do sistema, especificamente histricos do sistema, que armazenam erros ou problemas com o sistema. Outros arquivos guardam logins do sistema, assim como tentativas frustradas. O captulo 4 abordar este assunto.
2011 Alfamidia Prow 54

Conceitos, Instalao e Administrao de Sistemas Linux

/var/spool
/var/spool contm arquivos que vo ser passados a outros programas. Por exemplo, se sua mquina est conectada a uma rede, o correio de entrada ser armazenado em /var/spool/mail at que voc o leia ou apague. Artigos novos dos News, tanto os que entram quanto os que saem, se encontram em /var/spool/news, etc.

Comandos para manipulao de Arquivos


O comando rm
Remove arquivos. Tambm pode ser usado para apagar diretrios, vazios ou no. Note que no UNIX quando um arquivo removido, ele no mais recupervel (como no MS-DOS, onde voc pode usar o "undelete", ou no Windows, com a lixeira). Sintaxe: rm [opes] [caminho][arquivo/diretrio] onde: caminho - Localizao do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretrio atual. arquivo/diretrio - Arquivo/diretrio que ser apagado. opes - Modificam o comportamento do comando: -i --interactive Confirma antes de remover, esta ativada por padro. -f --force Remove os arquivos sem confirmao. -r --recursive Usado para remover arquivos em sub-diretrios. Esta opo tambm pode ser usada para remover sub-diretrios. Exemplos: rm teste.txt rm *.txt rm *.txt teste.novo

Remove o arquivo teste.txt do diretrio atual. Remove todos os arquivos do diretrio atual que terminam com .txt. Remove todos os arquivos do diretrio atual que terminam com .txt e tambm o arquivo teste.novo. Remove todos os arquivos e sub-diretrios do diretrio /tmp/teste mas mantm o sub-diretrio /tmp/teste. Remove todos os arquivos e sub-diretrios do diretrio /tmp/teste, inclusive /tmp/teste.

rm -rf /tmp/teste/* rm -rf /tmp/teste

O comando cp
Copia arquivos.
2011 Alfamidia Prow 55

Conceitos, Instalao e Administrao de Sistemas Linux

Sintaxe: cp [opes] [origem] [destino] onde: origem - Arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas". 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 - Modificam o comportamento do comando: -f --force No confirma, substitui arquivos caso j existam. -i interactive Confirma antes de substituir arquivos existentes. -u update Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. -r Copia arquivos e sub-diretrios, com exceo de arquivos especiais FIFO e dispositivos. -R --recursive Copia arquivos e sub-diretrios, inclusive arquivos especiais FIFO e dispositivos. -p --preserve Preserva atributos do arquivo, se for possvel. O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino tero o mesmo contedo aps a cpia. Exemplos: cp teste teste1 cp teste /tmp cp * /tmp cp /bin/* . cp -R /bin /tmp cp -R /bin/* /tmp Copia o arquivo teste para teste1 Copia o arquivo teste para dentro do diretrio /tmp. Copia todos os arquivos do diretrio atual para /tmp. Copia todos os arquivos do diretrio /bin para o diretrio atual. Copia o diretrio /bin e todos os arquivos/sub-diretrios existentes para o diretrio /tmp. Copia todos os arquivos do diretrio /bin (exceto o prprio diretrio /bin) e todos os arquivos/sub-diretrios existentes dentro dele para /tmp. Copia todos os arquivos e o diretrio /bin para /tmp.

cp -R /bin /tmp

O comando 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. Sintaxe: mv [opes] [origem] [destino] Onde:
2011 Alfamidia Prow 56

Conceitos, Instalao e Administrao de Sistemas Linux

origem - Arquivo/diretrio de origem. destino - Local onde ser movido ou novo nome do arquivo/diretrio. opes - Modificam o comportamento do comando: -f --force Substitui o arquivo de destino sem perguntar. -i --interactive Pergunta antes de substituir. o padro. -u --update Move somente arquivos antigos, ou novos arquivos. Exemplos: mv teste teste1 mv teste /tmp Muda o nome do arquivo teste para teste1. Move o arquivo teste do diretrio atual para /tmp.

O comando ln
Cria um novo link para arquivos e diretrios. O link o mecanismo usado para fazer referncia a um arquivo ou diretrio. Sintaxe:
ln [opes] [origem] [link]

Onde: origem - Diretrio ou arquivo de onde ser feito o link. Link - Nome do novo link que ser criado. Opes - Modificam o comportamento do comando: -s -d Cria um link simblico. Usado para criar ligaes com o arquivo/diretrio de destino. Cria um hard link para diretrios. Somente o root pode usar esta opo.

Existem 2 tipos de links: hardlink (rgidos) e Simblics.

Hardlinks
O comando "ln" usado para criar mltiplos links para um arquivo. Por exemplo, digamos que voc tenha um arquivo chamado "foo" em um diretrio. Usando "ls -i", voc pode ver o nmero do "inode" para este arquivo.
/home/larry# ls -i foo 22192 foo /home/larry#

Aqui, "foo" tem o nmero de inode 22192 no sistema de arquivos. Voc pode criar outro link para o arquivo "foo", chamado, por exemplo, "bar", como segue:
2011 Alfamidia Prow 57

Conceitos, Instalao e Administrao de Sistemas Linux

/home/larry# ln foo bar

Com o comando "ls -i", voc pode ver que os dois arquivos tem o mesmo inode.
/home/larry# ls -i foo 22192 bar 22192 foo /home/larry#

Agora, especificando tanto "foo" quanto "bar", voc ter acesso ao mesmo arquivo. Se voc fizer mudanas a "foo", essas mudanas aparecem em "bar" tambm. Para todos os propsitos, "foo" e "bar" so o mesmo arquivo. Esses links so conhecidos como links rgidos (hardlink), porque criam um link direto para um inode. Note que voc s pode fazer hard links para arquivos se os links estiverem no mesmo sistema de arquivos. Links simblicos (veja abaixo) no tm esta restrio. Quando voc exclui um arquivo com "rm", voc est, na verdade, apagando um link para o arquivo. Se voc usar o comando
/home/larry# rm foo

somente o link chamado foo excludo, bar ainda vai existir. Um arquivo realmente excludo do sistema somente quando no h mais links para ele. Usualmente, arquivos s tem um link. Assim, usando o comando "rm" exclui o arquivo. Entretanto, se um arquivo tem mltiplos links, usando o comando "rm" excluir somente um link. Para excluir o arquivo, voc tem que excluir todos os links para o mesmo. O comando "ls -l" mostra o nmero de links para um arquivo (entre outras informaes).
/home/larry# ls -l foo bar -rw-r--r-2 root root -rw-r--r-2 root root /home/larry#

12 Aug 5 16:51 bar 12 Aug 5 16:50 foo

A segunda coluna na listagem, "2", especifica o nmero de links para o arquivo. Com isso claro, um diretrio , na verdade, somente um arquivo contendo a informao sobre as associaes link para inode. Alm disso, cada diretrio contm, no mnimo, dois links rgidos: "." (um link apontando para si mesmo), e ".." (um link apontando para o diretrio superior). No diretrio root (/), o link ".." aponta novamente para /. (Em outras palavras, o diretrio superior do diretrio root o prprio diretrio root).

Links Simblicos
Links simblicos, ou symlinks, so outro tipo de link, e so diferentes dos links rgidos. Um link simblico permite que voc d outro nome a um arquivo, mas no faz o link ao arquivo por inode. O comando "ln -s" cria um link simblico para um arquivo.
/home/larry# ln -s foo bar

Foi criado um link simblico chamado "bar" que aponta para o arquivo "foo". Se voc usa o "ls -i", voc ver que os dois arquivos tm, de fato, inodes diferentes.
/home/larry# ls -i foo bar 22195 bar 22192 foo /home/bar#
2011 Alfamidia Prow 58

Conceitos, Instalao e Administrao de Sistemas Linux

Entretanto, usando o "ls -l", vemos que o arquivo "bar" um ponteiro simblico para "foo".
/home/larry# ls -l foo bar lrwxrwxrwx 1 root root -rw-r--r-1 root root /home/larry# 3 Aug 5 16:51 bar -> foo 12 Aug 5 16:50 foo

As permisses de arquivo num link simblico no so usadas (sempre aparecem como rwxrwxrwx). Elas so determinadas pelas permisses no arquivo alvo do link simblico (em nosso exemplo, o arquivo foo). Funcionalmente, links rgidos e links simblicos so similares, mas h diferenas. Voc pode, por exemplo, criar um link simblico para um arquivo que no existe; o mesmo no funciona para links rgidos. Links simblicos so processados pelo kernel diferentemente de links rgidos. somente uma diferena tcnica, mas algumas vezes importante. Links simblicos so teis porque identificam o arquivo para o qual apontam. Com links rgidos, no h uma maneira fcil de determinar quais arquivos esto "linkados" para o mesmo inode. Links so usados em muitos lugares no sistema Linux. Links simblicos so especialmente importante para bibliotecas compartilhadas no /lib. Observaes:

Se for usado o comando rm com um link, somente o link ser removido. Se for usado o comando cp com um link, o arquivo original ser copiado ao invs do link. Se for usado o comando mv com um link, a modificao ser feita no link. Se for usado um comando de visualizao (como o cat), o arquivo original ser visualizado.

Exemplos: ln -s /dev/ttyS1 /dev/modem Cria o link simblico /dev/modem para o arquivo /dev/ttyS1. Cria um link ~/tmp para o diretrio /tmp.

ln -s /tmp ~/tmp

O comando cat
Oficialmente usado para concatenar arquivos, mas tambm pode ser usado para mostrar o contedo completo de um ou mais arquivos. Sintaxe:
cat [opes] [diretrio/arquivo] [diretrio1/arquivo1]

Onde diretrio/arquivo: Localizao do arquivo que se deseja visualizar o contedo.

opes: Modificam o comportamento do comando: -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. Use o comando zcat para ver diretamente arquivos compactados com gzip.

2011 Alfamidia Prow

59

Conceitos, Instalao e Administrao de Sistemas Linux

Exemplo: cat /usr/doc/copyright/GPL

O comando tac
Mostra o contedo de um arquivo binrio ou texto (como o cat) s que em ordem inversa. Sintaxe:
tac [opes] [diretrio/arquivo] [diretrio1/arquivo1]

diretrio/arquivo: Localizao do arquivo que se deseja visualizar o contedo opes: Modificam o comportamento do comando: -s [string] Usa o [string] como separador de registros. Exemplo: tac /usr/doc/copyright/GPL

2011 Alfamidia Prow

60

Conceitos, Instalao e Administrao de Sistemas Linux

O comando more
Permite fazer a paginao de arquivos ou da entrada padro. O comando more pode ser usado como comando para leitura de arquivos que ocupem 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. Sintaxe: more [arquivo] Onde: 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

O comando 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. Sintaxe:
less [arquivo]

Onde: Arquivo - o arquivo que ser paginado. Para visualizar diretamente arquivos texto compactados pelo gzip (.gz) use o comando zless. Exemplos: less /etc/passwd cat /etc/passwd | less

2011 Alfamidia Prow

61

Conceitos, Instalao e Administrao de Sistemas Linux

O comando head
Mostra as linhas iniciais de um arquivo texto. Sintaxe: head [opes] [arquivo] Onde: arquivo - o arquivo que ser mostrado. opes - Modificam o comportamento do comando: -c [numero] -[numero] Mostra o [numero] de bytes do inicio do arquivo. Mostra o [numero] de linhas do inicio do arquivo. Caso no seja especificado, mostra as 10 primeiras linhas.

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

O comando tail
Mostra as linhas finais de um arquivo texto. Sintaxe: tail [opes] [arquivo] Onde: arquivo - o arquivo que ser mostrado. opes - Modificam o comportamento do comando: -c [numero] Mostra o [numero] de bytes do final do arquivo. -[numero] Mostra o [numero] de linhas do final do arquivo. Caso no seja especificado, mostra as 10 ltimas linhas. Exemplos: tail teste.txt tail -n 20 teste.txt

2011 Alfamidia Prow

62

Conceitos, Instalao e Administrao de Sistemas Linux

O comando touch
Muda a data e hora que um arquivo foi alterado. Tambm pode ser usado para criar arquivos vazios. Caso o touch seja usado com arquivos que no existam, por padro ele criar estes arquivos. Sintaxe: touch [opes] [arquivos] Onde: arquivos - Arquivos que tero sua data/hora modificados. Opes - Modificam o comportamento do comando: -a -m -c -t --time=atime --time=mtime --no-create MMDDhhmm[AA.ss] Faz o touch mudar somente a data e hora do acesso ao arquivo. Faz o touch mudar somente a data e hora da modificao. No cria arquivos vazios, caso os arquivos no existam. Usa Minutos (MM), Dias (DD), Horas (hh), minutos (mm) e opcionalmente o Ano (AA) e segundos (ss) para modificao dos arquivos, ao invs da data e hora atual.

Exemplos: touch teste Cria o arquivo teste, caso ele no exista. touch t 10011230 teste Altera da data e hora do arquivo para 01/10 e 12:30. touch -t 120112301999.30 teste Altera da data e hora do arquivo para 01/12/1999 e 12:30:30.

2011 Alfamidia Prow

63

Conceitos, Instalao e Administrao de Sistemas Linux

O comando 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. Sintaxe: wc [opes] [arquivo] Onde: Arquivo - Arquivo que ser verificado pelo comando wc. Opes - Modificam o comportamento do comando: -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 das estatsticas nica, e modificando a posio das opes no modifica a ordem que os dados 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 -lw /etc/passwd Mostra a quantidade de linhas e palavras.

2011 Alfamidia Prow

64

Conceitos, Instalao e Administrao de Sistemas Linux

O comando 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). Sintaxe: sort [opes] [arquivo] Onde: 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 -d -f -r -n Ignora linhas em branco. Somente usa letras, dgitos e espaos durante a organizao. Ignora a diferena entre maisculas e minsculas. Inverte o resultado da comparao. Caso estiver organizando um campo que contm nmeros, os nmeros sero organizados na ordem aritmtica. -c Verifica se o arquivo j esta organizado. Caso no estiver, retorna a mensagem "disorder on arquivo". -i Ignora os caracteres fora da faixa octal ASCII 040-0176 durante a organizao. -t caracter Usa caracter como delimitador durante a organizao de linhas. Por padro usado um espao em branco como delimitador de caracteres. +num1 -num2 Especifica qual o campo dentro na linha que ser usado na organizao. O(s) campo(s) usado(s) para organizao estar entre +num1 e +num2. O delimitador padro utilizado um espao em branco (use a opo -t para especificar outro). A contagem iniciada em "0". Caso no for especificada, a organizao feita no primeiro campo. Caso -num2 no seja especificado, a organizao ser feita usando a coluna +num1 at o fim da linha. -k num1, num2 Esta uma alternativa ao mtodo acima para especificar as chaves de organizao. O uso idntico, mas o delimitador iniciado em "1". 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.


sort +1 -3 texto.txt

2011 Alfamidia Prow

65

Conceitos, Instalao e Administrao de Sistemas Linux

Organiza o arquivo texto.txt usando como referncia a segunda at a quarta palavra (segundo ao quarto campo) que constam naquela linha.
sort -t : +2 -3 passwd

Organiza o arquivo passwd usando como referncia a terceira at a quarta palavra (terceiro ao quarto campo). Note que a opo -t especifica o caracter ":" como delimitador de campos ao invs do espao. Neste caso, o que estiver aps ":" ser considerado o prximo campo.

O comando diff
Compara dois arquivos e mostra as diferenas entre eles. O comando diff usado somente para a comparao de arquivos em formato texto. As diferenas encontradas podem ser redirecionadas para um arquivo que poder ser usado pelo comando patch para aplicar as alteraes em um arquivo que no contm as diferenas. Isto til para grandes textos porque possvel copiar somente as modificaes (geradas atravs do diff, que so muito pequenas) e aplicar no arquivo para atualiza-lo (atravs do patch) ao invs de copiar a nova verso. Este um sistema de atualizao muito usado na atualizao dos cdigo fonte do kernel do GNU/Linux. Sintaxe: diff [diretrio1/arquivo1] [diretrio2/arquivo2] [opes] Onde: diretrio1/arquivo1 diretrio2/arquivo2 Arquivos /diretrios que sero comparados. Normalmente usado como primeiro arquivo/diretrio o mais antigo e o mais novo como segundo. Opes: -lines [num] Gera a diferena com [num] linhas de contexto. Por padro o diff gera um arquivo com 2 linhas que o mnimo necessrio para o correto funcionamento do patch. -a Compara os dois arquivos como arquivos texto. -b -B -I -H -N -P -q Ignora espaos em branco como diferenas. Ignora linhas em branco inseridas ou apagadas nos arquivos. Ignora diferenas entre maisculas e minsculas nos arquivos. Usa anlise heurstica para verificar os arquivos. Em uma comparao de diretrios, se o arquivo apenas existe em um diretrio, trata-o como presente mas vazio no outro diretrio. Em uma comparao de diretrios, se o arquivos apenas existe no segundo diretrio, trata-o como presente mas vazio no primeiro diretrio. Mostra somente se os dois arquivos possuem diferenas. No mostra as diferenas entre eles.

-r Compara diretrios e sub-diretrios existentes. -S [nome] Inicia a comparao de diretrios pelo arquivo [nome]. til quando cancelamos uma comparao. -t Aumenta a tabulao das diferenas encontradas. -u Usa o formato de comparao unificado. Use o comando zdiff para comparar diretamente arquivos compactados pelo utilitrio gzip
2011 Alfamidia Prow 66

Conceitos, Instalao e Administrao de Sistemas Linux

Use o comando sdiff para visualizar as linhas diferentes entre os dois arquivos em formato texto simples. Exemplos:
diff texto.txt texto1.txt

Compara o arquivo texto.txt com texto1.txt e exibe suas diferenas na tela.


diff -Bu texto.txt texto1.txt

Compara o arquivo texto.txt com texto1.txt ignorando linhas em branco diferentes entre os dois arquivos e usando o formato unificado.
diff texto.txt texto1.txt >texto.diff

Compara o arquivo texto.txt com texto1.txt e gera um arquivo chamdo texto.diff contendo a diferena entre eles. Este arquivo poder ser usado pelo patch para aplicar as diferenas existente entre os dois no arquivo texto.txt.
diff -r /usr/src/linux-2.2.13 /usr/src/linux-2.2.14 >patch-2.2.14.diff

Compara o diretrio e sub-diretrios linux-2.2.13 e linux-2.2.14 e grava as diferenas entre eles no arquivo patch-2.2.14.diff.

Comandos de Busca
O comando grep
Procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padro. Sintaxe: grep [expresso] [arquivo] [opes] Onde: Expresso - Expresso regular que ser procurada no texto. Se tiver mais de 2 palavras voc deve identifica-la com aspas "" caso contrrio o grep assumir que a segunda palavra o arquivo! Arquivo - Arquivo onde ser feita a procura. Opes: -A -B -f -h -i -n -U [nmero] [nmero] [arquivo] --no-filename --ignore-case --line-number --binary Mostra o [nmero] de linhas aps a linha encontrada pelo grep. Mostra o [nmero] de linhas antes da linha encontrada pelo grep. Especifica que o texto que ser localizado, esta no arquivo [arquivo]. No mostra os nomes dos arquivos durante a procura. Ignora diferena entre maisculas e minsculas no texto procurado e arquivo. Mostra o nome de cada linha encontrada pelo grep. Trata o arquivo que ser procurado como binrio.

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
2011 Alfamidia Prow 67

Conceitos, Instalao e Administrao de Sistemas Linux

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 grep "capitulo" texto.txt -A 2 -B 2

O comando find
Procura por arquivos/diretrios no disco. O comando find pode procurar arquivos atravs de sua data de modificao, tamanho, etc atravs do uso de opes. O find, ao contrrio de outros programas, usa opes longas atravs de um "-". Sintaxe: find [diretrio] [opes/expreso] Onde: 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. -depth Processa os sub-diretrios primeiro antes de processar os arquivos do diretrio principal. -maxdepth [num] Faz a procura at [num] sub-diretrios dentro do diretrio que est sendo pesquisado. -mindepth [num] No faz nenhuma procura em diretrios menores que [num] nveis. -mount, -xdev No faz a pesquisa em sistemas de arquivos diferentes daquele de onde o comando find foi executado. -amin [num] Procura por arquivos que foram acessados [num] minutos atrs. Caso for antecedido por "-", procura por arquivos que foram acessados entre [num] minutos atrs at agora. -atime [num] Procura por arquivos que foram acessados [num] dias atrs. Caso for antecedido por "-", procura por arquivos que foram acessados entre [num] dias atrs e a data atual. -gid [num] Procura por arquivos que possuam a identificao numrica do grupo igual a [num]. -group [nome] Procura por arquivos que possuam a identificao de nome do grupo igual a [nome]. -uid [num] Procura por arquivos que possuam a identificao numrica do usurio igual a [num].

2011 Alfamidia Prow

68

Conceitos, Instalao e Administrao de Sistemas Linux

-user [nome] -inum [num] -links [num] -mmin [num]

-mtime [num]

-nouser -nogroup -perm [modo] -used [num] -size [num]

Procura por arquivos que possuam a identificao de nome do usurio igual a [nome]. Procura por arquivos que esto localizados no inodo [num]. Procura por arquivos que possuem [num] links como referncia. Procura por arquivos que tiveram seu contedo modificado h [num] minutos. Caso for antecedido por "-", procura por arquivos que tiveram seu contedo modificado entre [num] minutos atrs at agora. Procura por arquivos que tiveram seu contedo modificado h [num] dias. Caso for antecedido por "-", procura por arquivos que tiveram seu contedo modificado entre [num] dias atrs at agora. Procura por arquivos que no correspondam a identificao do usurio atual. Procura por arquivos que no correspondam a identificao do grupo do usurio atual. Procura por arquivos que possuam os modos de permisso [modo]. Os [modo] de permisso pode ser numrico (octal) ou literal. O arquivo foi acessado [num] vezes antes de ter seu status modificado. Procura por arquivos que tiverem o tamanho [num]. [num] pode ser antecedido de "+" ou "-" para especificar um arquivo maior ou menor que [num]. A opo -size pode ser seguida de: Especifica o tamanho em blocos de 512 bytes. o padro caso [num] no seja acompanhado de nenhuma letra. Especifica o tamanho em bytes. Especifica o tamanho em Kbytes. Procura por arquivos do [tipo] especificado.

b -

c k -type [tipo]

Os seguintes tipos so aceitos: b - bloco c - caracter d - diretrio p - pipe f - arquivo regular l - link simblico s - sockete

A maior parte dos argumentos numricos podem ser precedidos por "+" ou "-". Para detalhes sobre outras opes e argumentos, consulte a pgina de manual. Exemplos: find / -name grep Procura no diretrio raz e sub-diretrios um arquivo/diretrio chamado grep. find / -name grep -maxdepth 3 Procura no diretrio raz e sub-diretrios at o 3o. nvel, um arquivo/diretrio chamado grep. find . -size +1000k
2011 Alfamidia Prow 69

Conceitos, Instalao e Administrao de Sistemas Linux

Procura no diretrio atual e sub-diretrios um arquivo com tamanho maior que 1000 kbytes (1Mbyte). find / -mmin 10 Procura no diretrio raz e sub-diretrios um arquivo que foi modificado h 10 minutos atrs. find / -links 4 Procura no diretrio raz e sub-diretrios, todos os arquivos que possuem 4 links como referncia.

O comando which
Mostra a localizao de um arquivo executvel no sistema. A pesquisa de arquivos executveis feita atravs do path do sistema.

Sintaxe: which [comando] Exemplos:


which ls which shutdown which which

O comando 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). Sintaxe: whereis [comando] Exemplos:
whereis ls whereis cd

2011 Alfamidia Prow

70

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 7. Fluxos, Canalizao (pipes) e Redirecionamentos de Sada.


Processos Unix geralmente abrem trs descritores padro de arquivos, que os permitem processar entrada e sada de dados. Estes descritores podem ser redirecionados de e para outros arquivos ou processos. Por padro, o descritor de entrada (stdin) o teclado e os descritores de sada padro (stdout) e sada de erro (stderr) so a tela do computador. Os valores numricos para esses descritores so 0 para stdin, 1 para stdout e 2 para stderr. Os descritores tambm podem ser acessados atravs dos dispositivos virtuais /dev/stdin, /dev/stdout e /dev/stderr. O fluxo dos dados para redirecionamentos e canalizaes (pipes) numa linha de comando vai da esquerda para a direita.

Redirecionamento
Para redirecionar a sada padro de um comando para um arquivo, utiliza-se o smbolo > aps o mesmo, que deve indicar o arquivo a ser criado com os dados referidos: $ cat texto_simples > clone_texto_simples Se o arquivo existir previamente, ser sobrescrito. Para adicionar os valores sem apagar o contedo existente, usa-se >>. Para redirecionar o contedo de um arquivo para a entrada padro de um comando, usa-se <. Neste caso, o fluxo dos dados segue da direita para a esquerda. especialmente til para utilizar com comandos como o tr que no l arquivos diretamente:
$ tr ' ' '-' < clone_texto_simples texto-simples criado-com-cat

O contedo redirecionado por padro e o de stdout. Para especificar stderr usa-se 2>. Para redirecionar ambos simultaneamente, usa-se &>.

Canalizao (pipe)
possvel enviar a sada de um comando para a entrada de outro comando simultaneamente, utilizando o carcter de canalizao |. preciso que o programa de origem dos dados os direcione para a sada padro. Isso varia para cada programa, e geralmente se da passando o argumento de destino como um trao - ou simplesmente ocultando o argumento de sada. Da mesma forma, alguns programas precisam que seja especificada a origem dos dados atravs de stdin. Todas essas informaes podem ser obtidas consultando o manual do programa. Exemplo:
$ cdparanoia -d /dev/cdrom 3 - | oggenc - -o 03.ogg

Extrair a terceira musica de um CD com o programa cdparanoia canalizando o udio atravs do programa oggenc para armazenar a msica no formato Ogg Vorbis.
$ cat /etc/passwd | tee cpia_passwd

Redirecionar simultaneamente a sada tanto para um arquivo quanto para stdout(tela), atravs do comando tee. Para tal, canaliza-se a sada do comando para o comando tee e a este um nome de arquivo para armazenar a sada: O contedo de /etc/passwd ser mostrado na tela e copiado no arquivo cpia_passwd.

2011 Alfamidia Prow

71

Conceitos, Instalao e Administrao de Sistemas Linux

possvel tambm usar a sada de um comando como argumento para outro, usando aspas invertidas:
$ ls -dl `cat /etc/ld.so.conf` drwxr-xr-x 5 root root 7464 2006-01-14 17:35 /usr/X11R6/lib drwxr-xr-x 2 root root 712 2006-03-17 12:26 /usr/i486-slackware-linux/lib drwxr-xr-x 2 root root 688 2005-10-29 22:53 /usr/lib/qt/lib drwxr-xr-x 16 root root 7272 2006-03-21 02:49 /usr/local/lib $ ls -dl $(cat /etc/ld.so.conf) drwxr-xr-x 5 root root 7464 2006-01-14 17:35 /usr/X11R6/lib drwxr-xr-x 2 root root 712 2006-03-17 12:26 /usr/i486-slackware-linux/lib drwxr-xr-x 2 root root 688 2005-10-29 22:53 /usr/lib/qt/lib drwxr-xr-x 16 root root 7272 2006-03-21 02:49 /usr/local/lib

Resultado idntico e conseguido usando $(): O comando xargs desempenha funo parecida, passando os dados que recebe via stdin como argumento para um segundo comando. Exemplo do xargs acompanhando a execuo do find:
$ find /usr/X11R6/bin/ -name 'xt*' | xargs -rwxr-xr-x 1 root bin 268928 2006-01-14 -rwxr-xr-x 1 root bin 13076 2006-01-14 -rwxr-xr-x 1 root bin 6536 2006-01-14 -rwxr-xr-x 1 root bin 4320 2006-01-14 -rwxr-xr-x 1 root bin 7704 2006-01-14 -rwxr-xr-x 1 root bin 5880 2006-01-14 -rwxr-xr-x 1 root bin 4196 2006-01-14 -rwxr-xr-x 1 root bin 5856 2006-01-14 ls -l 17:35 17:35 17:35 17:35 17:35 17:35 17:35 17:35

/usr/X11R6/bin/xterm /usr/X11R6/bin/xtrapchar /usr/X11R6/bin/xtrapin /usr/X11R6/bin/xtrapinfo /usr/X11R6/bin/xtrapout /usr/X11R6/bin/xtrapproto /usr/X11R6/bin/xtrapreset /usr/X11R6/bin/xtrapstats

Neste exemplo, xargs tomou cada caminho passado por find e repassou como argumento para o comando ls -l.

2011 Alfamidia Prow

72

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 8. Gerenciamento de Processos


Em linhas gerais, um processo um programa em execuo. Cada processo possui um nmero nico de identificao chamado PID. Este nmero pode ser usado para mudar a prioridade de um processo ou para finaliza-lo. O processo que inicia um outro processo chamado o processo pai (parente process) do segundo, assim como o segundo e chamado processo filho (child process) do primeiro.

pstree
Mostra processos ativos em formato de rvore genealgica (processos filhos ligados aos respectivos processos pais). Opes comuns: -p Inclui PIDs dos processos. -h Lista apenas os processos do usurio atual.

ps
Mostra os processos de maneira detalhada. Opes comuns: ux Mostra todos processos do usurio. aux Mostra todos processos no sistema. -u Mostra apenas processos cujo dono seja o indicado pela opo -u. -g Mostra apenas processos cujo grupo seja o indicado pela opo -g.

top
Monitora continuamente os processos, mostrando informaes como uso de memria e CPU de cada processo. A tecla h fornece ajuda sobre o uso do programa. Pode ser usado para alterar a prioridade de um processo

pidof
Retorna o numero PID para o programa solicitado, se o programa estiver em execuo. PID do daemon crond:
# pidof crond 2404

2011 Alfamidia Prow

73

Conceitos, Instalao e Administrao de Sistemas Linux

kill
Envia sinais de controle para processos. O sinal padro quando nenhum sinal e informado SIGTERM, de valor numrico 15, que pede ao programa em questo para finalizar. O processo no necessariamente obedece ao sinal, a menos que o sinal seja SIGKILL. Em alguns casos, o sinal SIGHUP pode ser interpretado como ordem para o processo reler seu(s) arquivo(s) de configurao. Exemplo de kill:
# kill -SIGTERM 4902

Envia o sinal SIGTERM para o processo de PID 4902 Sinais comuns: SIGHUP Termina ou reinicia o processo. Valor numrico 1. SIGINT Interrompe o processo, igual a Ctrl+c. Valor numrico: 2. SIGQUIT Fecha o processo. Valor numrico: 3. SIGKILL Forca a finalizao o processo. Valor numrico: 9. SIGTERM Pede ao processo para finalizar. Valor numrico: 15.

killall
Tem funo igual a de kill, porm usa o nome do processo no lugar do PID. Com a opo l lista os sinais possveis.
# killall -SIGHUP cupsd

Neste exemplo, o daemon cupsd ir reler seus arquivos de configurao.

Tarefas em Primeiro e Segundo Plano


Aps iniciado um programa no shell, este na maioria das vezes assumir o controle de stdin e stdout, ou seja, ficar em primeiro plano. Para interromper o programa e voltar ao prompt do shell, usa-se a combinao de teclas Ctrl+z. Feito isso, para continuar a execuo do programa em segundo plano, ou seja, mantendo o prompt do bash em primeiro plano, usa-se o comando bg (background). Para continuar a execuo do programa em primeiro plano usa-se o comando fg (foreground).
$ ogg123 -q 03-geraldo_vandr-fica_mal_com_deus.ogg

Ctrl+z pressionado
[1]+ Stopped ogg123 -q 03-geraldo_vandr-fica_mal_com_deus.ogg $ bg 1 [1]+ ogg123 -q 03-geraldo_vandr-fica_mal_com_deus.ogg & $

O nmero mostrado antes do comando identifica a tarefa. Este nmero passado para fg e bg para especificar a tarefa desejada. Se houver apenas uma tarefa na sesso atual, fg e bg podem ser usados sem argumentos. Para usar o nome do programa no lugar de seu numero de tarefa, basta precede-lo por %?:
2011 Alfamidia Prow 74

Conceitos, Instalao e Administrao de Sistemas Linux

$ bg %?ogg123

O comando jobs lista as tarefas existentes na sesso atual do bash. especialmente til quando h mais de uma tarefa em andamento. possvel iniciar programas diretamente em segundo plano, adicionando o smbolo & ao seu final.
$ ogg123 -q 10-geraldo_vandr-berimbau.ogg & [2] 5375

Os nmeros mostrados correspondem ao nmero da tarefa e ao PID, respectivamente. O nmero de uma tarefa pode ser usado como argumento do comando kill desde que precedido do smbolo %:
$ kill %2

Quando um usurio sai do sistema, um sinal SIGHUP e enviado a todos os processos a ele pertencentes. Para que esse sinal no interrompa o processo do usurio aps este sair do sistema, o comando deve ser invocado atravs do nohup:
$ nohup wget ftp://transferncia/muito/demorada.tar.bz2 & nohup: appending output to `nohup.out'

As sadas stdout e stderr sero redirecionadas para o arquivo nohup.out, criado no mesmo diretrio em que o comando foi executado.

Modificar a Prioridade de Execuo de um Processo


Nmeros nice (NI) so usados para alterar a prioridade de CPU e balancear seu uso num ambiente multiusurio. Todo processo comum iniciado com uma prioridade padro (0). Nmeros nice vo de 19 (menor prioridade) a -20 (prioridade maior). Apenas o superusuario (root) pode diminuir um nmero nice de um processo para abaixo de zero. possvel iniciar um comando com uma prioridade diferente da padro atravs do comando nice. Por padro, nice muda a prioridade para 10.
$ nice -n 15 tar czf home_backup.tar.gz /home

Inicia o comando tar com nmero nice de prioridade 15. Para alterar a prioridade de um processo em andamento, o renice usado. A opo -p indica o PID do processo em questo.
# renice -10 -p 2997 2997: prioridade antiga = 0; prioridade nova = -10

2011 Alfamidia Prow

75

Conceitos, Instalao e Administrao de Sistemas Linux

As opes -g e -u permitem alterar todos os processos do grupo ou do usurio, respectivamente.


# renice +5 -g users

Neste exemplo, todos os processos de usurios do grupo users tiveram suas prioridades (nmero nice) alteradas para +5. Prioridades podem ser modificadas interativamente atravs do programa top. Quando na tela de processos, basta apertar a tecla r e indicar o numero PID do processo.

2011 Alfamidia Prow

76

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 9. Compactadores
gzip
praticamente o compactador padro do GNU/Linux, possui uma tima taxa de compactao e velocidade. A extenso dos arquivos compactados pelo gzip a .gz, na verso para DOS, Windows NT usada a extenso .z. gzip [opes] [arquivos] Onde: arquivos Especifica quais arquivos sero compactados pelo gzip. Curingas podem ser usados para especificar vrios arquivos de uma s vez. -Descompacta um arquivo. - Fora a compactao, compactando at mesmo links. - Lista o contedo de um arquivo compactado pelo gzip. - Compacta diretrios e sub-diretrios. - Descompacta o arquivo para a sada padro. - Testa o arquivo compactado pelo gzip. -Ajustam a taxa de compactao/velocidade da compactao. Quanto melhor a taxa menor a velocidade de compactao e vice versa. A opo --fast permite uma compactao rpida e tamanho do arquivo maior. A opo --best permite uma melhor compactao e uma velocidade menor.

Opes -d, --decompress [arquivo] -f -l [arquivo] -r -c [arquivo] -t [arquivo] -[num], --fast, --best

O uso da opo -[nmero] permite especificar uma compactao individualmente usando nmeros entre 1 (menor compactao) e 9 (melhor compactao). til para buscar um bom equilibro entre taxa de compactao/velocidade (especialmente em computadores muito lentos). Quando um arquivo compactado pelo gzip, automaticamente acrescentada a extenso .gz ao seu nome. O gzip tambm reconhece arquivos compactados pelos programas zip, compress, compress -H e pack. As permisses de acesso dos arquivos so tambm armazenadas no arquivo compactado. Exemplos:
gzip -9 texto.txt

Compacta o arquivo texto.txt usando a compactao mxima (compare o tamanho do arquivo compactado usando o comando ls -la).
gzip -d texto.txt.gz Descompacta o arquivo texto.txt.

Tambm pode-se utilizar o :


gunzip texto.txt.gz

2011 Alfamidia Prow

77

Conceitos, Instalao e Administrao de Sistemas Linux gzip -c texto.txt.gz Descompacta o arquivo texto.txt para a tela gzip -9 *.txt

Compacta todos os arquivos que terminam com .txt


gzip -t texto.txt.gz Verifica o arquivo texto.txt.gz.

bzip2
um novo compactador que vem sendo cada vez mais usado porque consegue atingir a melhor compactao em arquivos texto se comparado aos j existentes (em conseqncia sua velocidade de compactao tambm menor; quase duas vezes mais lento que o gzip). Suas opes so praticamente as mesmas usadas no gzip e voc tambm pode usa-lo da mesma forma. A extenso dos arquivos compactados pelo bzip2 a .bz2

bzip2 [opes] [arquivos] Onde:


arquivos Especifica quais arquivos sero compactados pelo bzip2. Caso seja usado um -, ser assumido a entrada padro. Curingas podem ser usados para especificar vrios arquivos de uma s vez. Opes -d, --decompress [arquivo] - Descompacta um arquivo. -f - Fora a compactao, compactando at mesmo links. -l [arquivo] - Lista o contedo de um arquivo compactado pelo bzip2. -r - Compacta diretrios e sub-diretrios. -c [arquivo] - Descompacta o arquivo para a sada padro. -t [arquivo] - Testa o arquivo compactado pelo bzip2. -[num], --fast, --best - Ajustam a taxa de compactao/velocidade da compactao. Quanto melhor a taxa menor a velocidade de compactao e vice versa. A opo -fast permite uma compactao rpida e tamanho do arquivo maior. A opo --best permite uma melhor compactao e uma velocidade menor. O uso da opo -[nmero] permite especificar uma compactao individualmente usando nmeros entre 1 (menor compactao) e 9 (melhor compactao). til para buscar um bom equilibro entre taxa de compactao/velocidade (especialmente em computadores muito lentos). Quando um arquivo compactado pelo bzip2, automaticamente acrescentada a extenso .bz2 ao seu nome. As permisses de acesso dos arquivos so tambm armazenadas no arquivo compactado. Exemplos:
2011 Alfamidia Prow 78

Conceitos, Instalao e Administrao de Sistemas Linux bzip2 -9 texto.txt Compacta o arquivo texto.txt usando a compactao mxima (compare o tamanho do arquivo

compactado usando o comando ls -la).


bzip2 -d texto.txt.bz2 Descompacta o arquivo texto.txt bzip2 -c texto.txt.bz2 Descompacta o arquivo texto.txt para a sada padro (tela) bzip2 -9 *.txt

Compacta todos os arquivos que terminam com .txt


bzip2 -t texto.txt.bz2 Verifica o arquivo texto.txt.bz2.

tar
Na verdade o tar no um compactador e sim um "arquivador" (ele junta vrios arquivos em um s), mas pode ser usado em conjunto com um compactar (como o gzip ou zip) para armazena-los compactados. O tar tambm muito usado para cpias de arquivos especiais ou dispositivos do sistema. comum encontrar arquivos com a extenso .tar, .tar.gz, .tgz, .tar.bz2, .tar.Z, .tgZ, o primeiro um arquivo normal gerado pelo tar e todos os outros so arquivos gerados atravs tar junto com um programa de compactao (gzip (.gz), bzip2 (.bz2) e compress (.Z). tar [opes] [arquivo-destino] [arquivos-origem]

Onde:
arquivo-destino o nome do arquivo de destino. Normalmente especificado com a extenso .tar caso seja usado somente o arquivamento ou .tar.gz/.tgz caso seja usada a compactao (usando a opo -z). arquivos-origem Especifica quais arquivos/diretrios sero compactados.

2011 Alfamidia Prow

79

Conceitos, Instalao e Administrao de Sistemas Linux

opes -c, --create -t, --list -u, --update -f, --file [HOST:]F

Cria um novo arquivo .tar Lista o contedo de um arquivo .tar Atualiza arquivos compactados no arquivo .tar Usa o arquivo especificado para gravao ou o dispositivo /dev/rmt0. -j, --bzip2 Usa o programa bzip2 para processar os arquivos do tar -l, --one-file-system No processa arquivos em um sistema de arquivos diferentes de onde o tar foi executado. -M, --multi-volume Cria/lista/descompacta arquivos em mltiplos volumes. O uso de arquivos em mltiplos volumes permite que uma grande cpia de arquivos que no cabe em um disquete, por exemplo, seja feita em mais de um disquete. --remove-files Apaga os arquivos de origem aps serem processados pelo tar. -v Mostra os nomes dos arquivos enquanto so processados. x Extrai arquivos gerados pelo tar -z Usa o programa gzip durante o processamento dos arquivos.

A extenso precisa ser especificada no arquivo de destino para a identificao correta:


Arquivos gerados pelo tar precisam ter a extenso .tar Caso seja usada a opo -j para compactao, a extenso dever ser .tar.bz2 Caso seja usada a opo -z para compactao, a extenso dever ser .tar.gz ou .tgz

importante saber qual qual o tipo de compactador usado durante a gerao do arquivo .tar pois ser necessrio especificar a opo apropriada para descompacta-lo. Exemplos:
tar -cf index.txt.tar index.txt

Cria um arquivo chamado index.txt.tar que armazenar o arquivo index.txt. Voc pode notar digitando ls -la que o arquivo index.txt foi somente arquivado (sem compactao), isto til para juntar diversos arquivos em um s.
tar -xf index.txt.tar

Desarquiva o arquivo index.txt criado pelo comando acima.


tar -czf index.txt.tar.gz index.txt

O mesmo que o exemplo de arquivamento anterior, s que agora usado a opo -z (compactao atravs do programa gzip). Voc agora pode notar digitando ls -la que o arquivo index.txt foi compactado e depois arquivado no arquivo index.txt.tar.gz (voc tambm pode chama-lo de index.txt.tgz que tambm identifica um arquivo .tar compactado pelo gzip)
tar -xzf index.txt.tar.gz
2011 Alfamidia Prow 80

Conceitos, Instalao e Administrao de Sistemas Linux

Descompacta e desarquiva o arquivo index.txt.tar.gz criado com o comando acima.


gzip -dc index.tar.gz | tar -xf

Faz o mesmo que o comando acima s que de uma forma diferente: Primeiro descompacta o arquivo index.txt.tar.gz e envia a sada do arquivo descompactado para o tar que desarquivar o arquivo index.txt. tar -cjf index.txt.tar.bz2 index.txt Arquiva o arquivo index.txt em index.txt.tar.bz2 compactando atravs do bzip2 (opo j). tar -xjf index.txt.tar.bz2 Descompacta e desarquiva o arquivo index.txt.tar.bz2 criado com o comando acima. bzip2 -dc index.txt.tar.bz2 | tar -xf Faz o mesmo que o comando acima s que de uma forma diferente: Primeiro descompacta o arquivo index.txt.tar.bz2 e envia a sada do arquivo descompactado para o tar que desarquivar o arquivo index.txt. tar -t index.txt.ta Lista o contedo de um arquivo .tar. tar -tz index.txt.tar.gz Lista o contedo de um arquivo .tar.gz.

Compilar e Instalar Programas


O primeiro passo para instalar um programa em cdigo fonte distribudo no formato tar e extra-lo:
$ tar xjvf sylpheed-2.0.4.tar.bz2

Este comando criara o diretrio ./sylpheed-2.0.4/, contendo o cdigo fonte do programa e as ferramentas de configurao. A configurao pr-compilao feita dentro desse diretrio, por um script chamado configure. Este script coleta informaes sobre a arquitetura do sistema, caminhos de comandos, bibliotecas compartilhadas, caractersticas de funcionamento do programa, etc. Em geral, o configure pode ser invocado sem argumentos na forma: $ ./configure Uma opcao bastante utilizada --prefix , que informa em qual diretrio base o programa dever ser instalado. Por exemplo:
2011 Alfamidia Prow 81

Conceitos, Instalao e Administrao de Sistemas Linux

$ ./configure --prefix=/opt

Indica que o diretorio base da instalao ser /opt. O script configure possui muitas opes de personalizao da instalao. A lista descritiva completa das opes pode ser vista usando:
$ ./configure --help

As informaes coletadas pelo script configure so armazenadas em um arquivo no mesmo diretrio chamado makefile. Este arquivo pode ser editado para alterar as opes de instalao, como a varivel prefix, que desempenha a mesma funo do argumento --prefix do script configure, e outras variveis que indicam a localizao de bibliotecas, comandos, caractersticas do programa, etc. Terminada a configurao, o programa pode ser compilado atravs do comando make. Make criara as bibliotecas e arquivos executveis conforme as opes existentes no makefile. Apos o termino da compilao, que pode levar algum tempo dependendo do tamanho e tipo do programa, o programa esta pronto para ser instalado .
# make install

Se o diretrio base de instalao no estiver no diretrio pessoal do usurio, esse comando devera ser executado com permisses de super usurio (root). Mesmo estando o diretrio base de instalao fora do diretrio pessoal do usurio, e recomendado executar ./configure e make como usurio comum.

2011 Alfamidia Prow

82

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 10. Administrando Usurios e Grupos


adduser
Adiciona um usurio ou grupo no sistema. 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/grupo] Onde: usurio/grupo Nome do novo usurio que ser adicionado ao sistema. 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. --group Cria um novo grupo ao invs de um novo usurio. A criao de grupos tambm pode ser feita pelo comando addgroup. -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. Caso estiver criando um novo grupo com adduser, a identificao do novo grupo ser [num]. --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. --quiet No mostra mensagens durante a operao. --system
2011 Alfamidia Prow 83

Conceitos, Instalao e Administrao de Sistemas Linux

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. As opes usadas so as mesmas do adduser. addgroup [usurio/grupo] [opes]

passwd
Muda a senha do usurio ou grupo. 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 donos de grupos tambm podem alterar a senha do grupo com este comando. Os dados da conta do usurio como nome, endereo, telefone, tambm podem ser alterados com este comando. passwd [usurio/grupo] [opes] Onde: usurio opes -g Nome do usurio/grupo que ter sua senha alterada. Se especificada, a senha do grupo ser alterada. Somente o root ou o administrador do grupo pode alterar sua senha. A opo -r pode ser usada com esta para remover a senha do grupo. A opo -R pode ser usada para restringir o acesso do grupo para outros usurios. Especifica o nmero mximo de dias que a senha poder ser usada. Aps terminar o prazo, a senha dever ser modificada. Desativa a conta caso o usurio no tenha alterado sua senha aps o tempo especificado por -x. 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. 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 ao usurios quantos dias restam para a troca de sua senha. Bloqueia a conta do usurio [nome]. Deve ser usada pelo root. O bloqueio da conta feito acrescentando um caracter a senha para que no confira com a senha original. Desbloqueia a conta de um usurio bloqueada com a opo -l.
2011 Alfamidia Prow

-x [dias] -i -n [dias] -w [num]

-l [nome] -u [nome]

84

Conceitos, Instalao e Administrao de Sistemas Linux

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

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] Onde: -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. groupdel [grupo] Tenha certeza que no existem arquivos/diretrios criados com o grupo apagado atravs do comando find. OBS: Voc no pode remover o grupo primrio de um usurio. Remova o usurio primeiro.

Adicionando um novo grupo a um usurio


Para incluir um novo grupo a um usurio, e assim permitir que ele acesse os arquivos/diretrios que pertencem quele grupo, voc deve estar como root e editar o arquivo /etc/group. Este arquivo possui o seguinte formato:
2011 Alfamidia Prow 85

Conceitos, Instalao e Administrao de Sistemas Linux

NomedoGrupo:senha:GID:usurios Onde: NomedoGrupo o nome daquele grupo de usurios. senha Senha para ter acesso ao grupo. Caso esteja utilizando senhas ocultas para grupos, as senhas estaro em /etc/gshadow. GID Identificao numrica do grupo de usurio. usuarios Lista de usurios que tambm fazem parte daquele grupo. Caso exista mais de um nome de usurio, eles devem estar separados por vrgula. Deste modo para acrescentar o usurio "joao" ao grupo audio para ter acesso aos dispositivos de som do Linux, acrescente o nome no final da linha: "audio:x:100:joao". Pronto, basta digitar logout e entrar novamente com seu nome e senha, voc estar fazendo parte do grupo audio (confira digitando groups ou id). Outros nomes de usurios podem ser acrescentados ao grupo audio bastando separar os nomes com vrgula.

id
Mostra a identificao atual do usurio, grupo primrio e outros grupos que pertence. id [opes] [usurio] Onde: 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. Caso no sejam especificadas opes, id mostrar todos os dados do usurio. Exemplo: id, id --user, id -r -u.

2011 Alfamidia Prow

86

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 11.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 autorizados. 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 servidor ou sua empresa. Esta seo pode se tornar um pouco difcil de se entender, ento recomendo ler e ao mesmo tempo pratic-la para uma tima compreenso. No se preocupe, tambm coloquei exemplos para ajuda-lo a entender o sistema de permisses de acesso do ambiente GNU/Linux.

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 so armazenadas 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 (que pode estar armazenada neste arquivo caso no estiver usando senhas ocultas).

2011 Alfamidia Prow

87

Conceitos, Instalao e Administrao de Sistemas Linux

grupo

Outros

Para permitir que vrios usurios diferentes tivessem acesso a um mesmo arquivo (j que somente o dono poderia ter acesso ao 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 (mesmo que estes arquivos tenham outro dono). Por padro, quando um novo usurio criado, o grupo ele pertencer ser o mesmo de seu grupo primrio. a categoria de usurios que no so donos ou no pertencem ao grupo do arquivo.

Cada um dos tipos acima possuem trs tipos bsicos de permisses de acesso que sero vistas na prxima seo.

Tipos de Permisses de acesso


Quanto aos tipos de permisses que se aplicam ao dono, grupo e outros usurios, temos 3 permisses bsicas: r Permisso de leitura para arquivos. Caso for um diretrio, permite listar seu contedo (atravs do comando ls, por exemplo). 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. 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 3 letras (rwx) so agrupadas da seguinte forma: -rwxrwxrwx gleydson users teste

Veja o que significa cada uma das 10 letras acima, da esquerda para direita. 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, etc. Da segunda a quarta letra (rwx) dizem qual a permisso de acesso ao dono do arquivo. Neste caso gleydson ele tem a permisso de ler (r - read), gravar (w - write) e executar (x - execute) o arquivo teste. Da quinta a stima letra (rwx) diz qual a permisso de acesso ao grupo do arquivo. Neste caso todos os usurios que pertencem ao grupo users tem a permisso de ler (r), gravar (w), e tambm executar (x) o arquivo teste. Da oitava a dcima letra (rwx) diz qual a permisso de acesso para os outros usurios. Neste caso todos os usurios que no so donos do arquivo teste tem a permisso para ler, gravar e executar o programa.

2011 Alfamidia Prow

88

Conceitos, Instalao e Administrao de Sistemas Linux

Etapas para acesso a um arquivo/diretrio


O acesso a um arquivo/diretrio feito verificando primeiro se o usurio que acessar o arquivo o seu dono, caso seja, as permisses de dono do arquivo so aplicadas. Caso no seja o dono do arquivo/diretrio, verificado se ele pertence ao grupo correspondente, caso pertena, as permisses do grupo so aplicadas. Caso no pertena ao grupo, so verificadas as permisses de acesso para os outros usurios que no so donos e no pertencem ao grupo correspondente ao arquivo/diretrio. Aps verificar aonde o usurio se encaixa nas permisses de acesso do arquivo (se ele o dono, pertence ao grupo, ou outros usurios), verificado se ele ter permisso de acesso para o que deseja fazer (ler, gravar ou executar o arquivo), caso no tenha, o acesso negado, mostrando uma mensagem do tipo: "Permission denied" (permisso negada). O que isto que dizer que mesmo que voc seja o dono do arquivo e definir o acesso do dono (atravs do comando chmod) como somente leitura (r) mas o acesso dos outros usurios como leitura e gravao, voc somente poder ler este arquivo mas os outros usurios podero ler/grava-lo. As permisses de acesso (leitura, gravao, execuo) para donos, grupos e outros usurios so independentes, permitindo assim um nvel de acesso diferenciado. Lembre-se: Somente o dono pode modificar um arquivo/diretrio!

Exemplos prticos de permisses de acesso


Exemplo de acesso a um arquivo
Abaixo um exemplo e explicao das permisses de acesso a um arquivo no GNU/Linux (obtido com o comando ls -la, explicarei passo a passo cada parte: -rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste -rwxr-xr-Estas so as permisses de acesso ao arquivo teste. Um conjunto de 10 letras que especificam o tipo do arquivo, permisso do dono do arquivo, grupo do arquivo e outros usurios.

2011 Alfamidia Prow

89

Conceitos, Instalao e Administrao de Sistemas Linux

Veja a explicao detalhada sobre cada uma abaixo: -rwxr-xr-- A primeira letra (do conjunto das 10 letras) determina o tipo do arquivos. Se a letra for um d um diretrio, e voc poder acessa-lo usando o comando cd. Caso for um l um link simblico para algum arquivo ou diretrio no sistema. Um - significa que um arquivo normal. -rwxr-xr-- Estas 3 letras (da segunda a quarta do conjunto das 10 letras) so as permisses de acesso do dono do arquivo teste. O dono (neste caso gleydson) tem a permisso para ler (r), gravar (w) e executar (x) o arquivo teste. -rwxr-xr-- Estas 3 letras (da quinta a stima do conjunto das 10 letras) so as permisses de acesso dos usurios que pertencem ao grupo user do arquivo teste. Os usurios que pertencem ao grupo user tem a permisso somente para ler (r) e executar (x) o arquivo teste no podendo modifica-lo ou apaga-lo. -rwxr-xr-- Estas 3 letras (da oitava a dcima) so as permisses de acesso para usurios que no so donos do arquivo teste e que no pertencem ao grupo user. Neste caso, estas pessoas somente tero a permisso para ver o contedo do arquivo teste. Gleydson Nome do dono do arquivo teste. user Nome do grupo que o arquivo teste pertence. Teste Nome do arquivo.

Exemplo de acesso a um diretrio


Abaixo um exemplo com explicaes das permisses de acesso a um diretrio no GNU/Linux: drwxr-x--- 2 gleydson user 1024 nov 4 17:55 exemplo drwxr-x--Permisses de acesso ao diretrio exemplo. um conjunto de 10 letras que especificam o tipo de arquivo, permisso do dono do diretrio, grupo que o diretrio pertence e permisso de acesso a outros usurios. Veja as explicaes abaixo: A primeira letra (do conjunto das 10) determina o tipo do arquivo. Neste caso um diretrio porque tem a letra d. Estas 3 letras (da segunda a quarta) so as permisses de acesso do dono do diretrio exemplo. O dono do diretrio (neste caso gleydson) tem a permisso para listar arquivos do diretrio (r), gravar arquivos no diretrio (w) e entrar no diretrio (x). Estas 3 letras (da quinta a stima) so as permisses de acesso dos usurios que pertencem ao grupo user. Os usurios que pertencem ao grupo user tem a permisso somente para listar arquivos do diretrio (r) e entrar no diretrio (x) exemplo.

drwxr-x--drwxr-x---

drwxr-x---

2011 Alfamidia Prow

90

Conceitos, Instalao e Administrao de Sistemas Linux

drwxr-x---

Gleydson user
exemplo

Estas 3 letras (da oitava a dcima) so as permisses de acesso para usurios que no so donos do diretrio exemplo e que no pertencem ao grupo user. Com as permisses acima, nenhum usurio que se encaixe nas condies de dono e grupo do diretrio tem a permisso de acessa-lo. Nome do dono do diretrio exemplo. Nome do grupo que diretrio exemplo pertence. Nome do diretrio.

OBSERVAES:

O usurio root no tem nenhuma restrio de acesso ao sistema. Se voc tem permisses de gravao no diretrio e tentar apagar um arquivo que voc no tem permisso de gravao, o sistema perguntar se voc confirma a excluso do arquivo apesar do modo leitura. Caso voc tenha permisses de gravao no arquivo, o arquivo ser apagado por padro sem mostrar nenhuma mensagem de erro (a no ser que seja especificada a opo -i com o comando rm). Por outro lado, mesmo que voc tenha permisses de gravao em um arquivo mas no tenha permisses de gravao em um diretrio, a excluso do arquivo ser negada.

Isto mostra que levado mais em considerao a permisso de acesso do diretrio do que as permisses dos arquivos e subdiretrios que ele contm. Este ponto muitas vezes ignorado por muitas pessoas e expem seu sistema a riscos de segurana. Imagine o problema que algum usurio que no tenha permisso de gravao em um arquivo mas que a tenha no diretrio pode causar em um sistema mal administrado.

Permisses e Propriedade de Arquivos

Em adio as trs permisses bsicas (rwx), existem permisses de acesso especiais (stX) 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.

2011 Alfamidia Prow

91

Conceitos, Instalao e Administrao de Sistemas Linux

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). X - Se voc usar X ao invs de x, a permisso de execuo somente afetada se o arquivo j tiver permisses de execuo. Em diretrios ela tem o mesmo efeito que a permisso de execuo x.

Exemplo da permisso de acesso especial X: Crie um arquivo teste (digitando touch teste) e defina sua permisso para rw-rw-r chmod ug=rw,o=r teste ou chmod 664 teste Use o comando chmod a+X teste digite ls -l Veja que as permisses do arquivo no foram afetadas. Agora digite chmod o+x teste digite ls -l voc colocou a permisso de execuo para os outros usurios. Use novamente o comando chmod a+X teste
2011 Alfamidia Prow

92

Conceitos, Instalao e Administrao de Sistemas Linux

digite ls -l Veja que agora a permisso de execuo foi concedida a todos os usurios, pois foi verificado que o arquivo era executvel (tinha permisso de execuo para outros usurios). Agora use o comando chmod a-X teste Ele tambm funcionar e remover as permisses de execuo de todos os usurios, porque o arquivo teste tem permisso de execuo (confira digitando ls -l). Agora tente novamente
chmod a+X teste

Voc deve ter reparado que a permisso de acesso especial X semelhante a x, mas somente faz efeito quanto o arquivo j tem permisso de execuo para o dono, grupo ou outros usurios. Em diretrios, a permisso de acesso especial X funciona da mesma forma que x, at mesmo se o diretrio no tiver nenhuma permisso de acesso (x).

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] Onde: diretrio/arquivo Diretrio ou arquivo que ter sua permisso mudada. opes -v, --verbose Mostra todos os arquivos que esto sendo processados. -f, --silent No mostra a maior parte das mensagens de erro. -c, --change Semelhante a opo -v, mas s mostra os arquivos que tiveram as permisses alteradas. -R, --recursive Muda permisses de acesso do diretrio/arquivo no diretrio atual e subdiretrios.

2011 Alfamidia Prow

93

Conceitos, Instalao e Administrao de Sistemas Linux

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

O 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. 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). uo+x teste.txt Inclui (+) a permisso de execuo do arquivo teste.txt para o dono e outros usurios do arquivo. a+x teste.txt Inclui (+) a permisso de execuo do arquivo teste.txt para o dono, grupo e outros usurios. a=rw teste.txt Define a permisso de todos os usurios exatamente (=) para leitura e gravao do arquivo teste.txt.

chmod

chmod chmod chmod

chgrp
Muda o grupo de um arquivo/diretrio. chgrp [opes] [grupo] [arquivo/diretrio] Onde: grupo arquivo/diretrio opes -c, --changes -f, --silent -v, --verbose -R, --recursive

Novo grupo do arquivo/diretrio. Arquivo/diretrio que ter o grupo alterado. Somente mostra os arquivos/grupos que forem alterados. No mostra mensagens de erro para arquivos/diretrios que no puderam ser alterados. Mostra todas as mensagens e arquivos sendo modificados. Altera os grupos de arquivos/subdiretrios do diretrio atual.
2011 Alfamidia Prow 94

Conceitos, Instalao e Administrao de Sistemas Linux

chown
Muda dono de um arquivo/diretrio. Opcionalmente pode tambm ser usado para mudar o grupo. chown [opes] [dono.grupo] [diretrio/arquivo] onde: dono.grupo diretrio/arquivo opes -v, --verbose -f, --supress -c, --changes -R, --recursive Nome do dono.grupo que ser atribudo ao diretrio/arquivo. O grupo opcional. Diretrio/arquivo que o dono.grupo ser modificado.

Mostra os arquivos enquanto so alterados. No mostra mensagens de erro durante a execuo do programa. Mostra somente arquivos que forem alterados. Altera dono e grupo de arquivos no diretrio atual e subdiretrios.

O dono.grupo pode ser especificado usando o nome de grupo ou o cdigo numrico correspondente ao grupo (GID). Voc deve ter permisses de gravao no diretrio/arquivo para alterar seu dono/grupo.
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 subdiretrios para joao/users (desde que voc tenha permisses de gravao nos diretrios e subdiretrios).

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. mais flexvel gerenciar permisses de acesso usando o modo octal ao invs do comum, pois voc especifica diretamente a permisso do dono, grupo, outros ao invs de gerenciar as permisses de cada um separadamente. Abaixo a lista de permisses de acesso octal:

0 - Nenhuma permisso de acesso. Equivalente a -rwx. 1 - Permisso de execuo (x). 2 - Permisso de gravao (w). 3 - Permisso de gravao e execuo (wx).
2011 Alfamidia Prow 95

Conceitos, Instalao e Administrao de Sistemas Linux

4 - Permisso de leitura (r). 5 - Permisso de leitura e execuo (rx). 6 - Permisso de leitura e gravao (rw). 7 - Permisso de leitura, gravao e execuo. Equivalente a +rwx.

O uso de um destes nmeros define a permisso de acesso do dono, grupo ou outros usurios. Um modo fcil de entender como as permisses de acesso octais funcionam, atravs da seguinte tabela:
1 = Executar 2 = Gravar 4 = Ler * Para Dono e Grupo, multiplique as permisses acima por x100 e x10.

e para as permisses de acesso especiais:


1000 = Salva imagem do texto no dispositivo de troca 2000 = Ajusta o bit setgid na execuo 4000 = Ajusta o bit setuid na execuo

Basta agora fazer o seguinte:


Somente permisso de execuo, use 1. Somente a permisso de leitura, use 4. Somente permisso de gravao, use 2. Permisso de leitura/gravao, use 6 (equivale a 2+4 / Gravar+Ler). Permisso de leitura/execuo, use 5 (equivale a 1+4 / Executar+Ler). Permisso de execuo/gravao, use 3 (equivale a 1+2 / Executar+Gravar). Permisso de leitura/gravao/execuo, use 7 (equivale a 1+2+4 / Executar+Gravar+Ler). Salvar texto no dispositivo de troca, use 1000. Ajustar bit setgid, use 2000. Ajustar bip setuid, use 4000. Salvar texto e ajustar bit setuid, use 5000 (equivale a 1000+4000 / Salvar texto + bit setuid). Ajustar bit setuid e setgid, use 6000 (equivale a 4000+2000 / setuid + setgid).

Vamos a prtica com alguns exemplos:


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. Outro exemplo:
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.
2011 Alfamidia Prow 96

Conceitos, Instalao e Administrao de Sistemas Linux 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.

umask
A umask (user mask) so 3 nmeros que definem as permisses iniciais do dono, grupo e outros usurios que o arquivo/diretrio receber quando for criado ou copiado. Digite umask sem parmetros para retornar o valor de sua umask atual. A umask tem efeitos diferentes caso o arquivo que estiver sendo criado for binrio (um programa executvel) ou texto . Veja a tabela a seguir para ver qual a mais adequada a sua situao:

--------------------------------------------| | ARQUIVO | DIRETRIO | | UMASK |----------------------| | | | Binrio | Texto | | |------------------------------|------------| | 0 | r-x | rw| rwx | | 1 | r-| rw| rw| | 2 | r-x | r-| r-x | | 3 | r-| r-| r-| | 4 | --x | -w| -wx | | 5 | --| -w| -w| | 6 | --x | --| --x | | 7 | --| --| --| --------------------------------------------Um arquivo texto criado com o comando umask 012;touch texto.txt receber as permisses -rw-rw-r--, pois 0 (dono) ter permisses rw-, 1 (grupo), ter permisses rw- e 2 (outros usurios) tero permisses r--. Um arquivo binrio copiado com o comando umask 012;cp /bin/ls /tmp/ls receber as permisses -r-xr--r-x (confira com a tabela acima). Por este motivo preciso um pouco de ateno antes de escolher a umask, um valor mal escolhido poderia causar problemas de acesso a arquivos, diretrios ou programas no sendo executados. O valor padro da umask na maioria das distribuies atuais 022. A umask padro no sistema Debian a 022 .
2011 Alfamidia Prow 97

Conceitos, Instalao e Administrao de Sistemas Linux

A umask de grande utilidade para programas que criam arquivos/diretrios temporrios, desta forma pode-se bloquear o acesso de outros usurios desde a criao do arquivo, evitando recorrer ao chmod.

A conta root
A conta root tambm chamada de super usurio, este um login que no possui restries de segurana. A conta root somente deve ser usada para fazer a administrao do sistema, e usada o menor tempo possvel. Qualquer senha que criar dever conter de 6 a 8 caracteres, e tambm poder conter letras maisculas e minsculas, e tambm caracteres de pontuao. Tenha um cuidado especial quando escolher sua senha root, porque ela a conta mais poderosa. Evite palavras de dicionrio ou o uso de qualquer outros dados pessoais que podem ser adivinhados. Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Voc normalmente nunca deve distribuir sua conta root, a no ser que esteja administrando um computador com mais de um administrador do sistema. Utilize uma conta de usurio normal ao invs da conta root para operar seu sistema. Porque no usar a conta root? Bem, uma razo para evitar usar privilgios root por causa da facilidade de se cometer danos irreparveis como root. Outra razo que voc pode ser enganado e rodar um programa Cavalo de Tria -- que um programa que obtm poderes do super usurio para comprometer a segurana do seu sistema sem que voc saiba.

2011 Alfamidia Prow

98

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 12.Gerenciamento de Pacotes


rpm
A maioria dos pacotes rpm e nomeada no formato: nome-verso-release.arquitetura.rpm

Modos Maior e Menor


Algumas abreviaes de opes so parecidas, mas realizam diferentes aes dependendo de sua posio na linha de comando. A distino e feita a partir da primeira opo da esquerda para a direita. O primeiro argumento passado ao comando rpm e chamada argumento modo maior. As demais so as opes de modo menor. Opes de modo maior para o rpm: -i -U -F -V -q -e Ou --install. Ou --update. Ou --freshen. Ou --verify. Ou --query. Ou --erase. Instala o pacote Atualiza ou instala o pacote Atualiza o pacote apenas se o mesmo estiver instalado Verifica o tamanho, MDB, permisses, tipo, integridade, etc. Investiga pacotes e arquivos Desinstala o pacote

Opes de modo menor para o rpm a Aplica em todos os pacotes instalados c Com q lista arquivos de configurao d Com q lista arquivos de documentao f Com q verifica qual pacote instalou o arquivo referido h Mostra progresso visual da instalao i Com q lista informaes sobre o pacote l Com q lista todos os arquivos e diretrios do pacote p Com q indica que a investigao e realizada no arquivo .rpm v Modo descritivo

2011 Alfamidia Prow

99

Conceitos, Instalao e Administrao de Sistemas Linux

Outras opes --nodeps --force --test --requires --whatrequires Instala o pacote sem checar as dependncias Forca a instalao/atualizao Mostra como seria a instalao, mas no instala. Com q, mostra as exigncias para o pacote especificado. Com q, mostra quais dependem do pacote especificado.

Assinaturas de Pacotes
E possvel checar a assinatura de todo pacote distribudo como parte de um projeto. Se a distribuio For Fedora, por exemplo, as chaves so incorporadas ao banco de dados do rpm com o comando.
# rpm --import /usr/share/rhn/RPM-GPG-KEY-FEDORA

Assim, todo pacote copiado do servidor fedora pode ser checado:


# rpm --checksig <nome do pacote>

Integridade do Pacote
A integridade do pacote e checada usando a opo -V. A opo -Va checa todos os pacotes. A anlise feita tendo como referencia os arquivos originais do pacote. Significado dos caracteres retornados pela verificao: . Teste bem sucedido ? O teste no pode ser realizado S O tamanho do arquivo mudou M A permisso ou o tipo do arquivo mudou 5 A soma MD5 do arquivo e diferente D O dispositivo foi modificado L O link simblico foi modificado U O dono do arquivo mudou G O grupo do arquivo mudou T A data do arquivo mudou

2011 Alfamidia Prow

100

Conceitos, Instalao e Administrao de Sistemas Linux

Arquivos e Diretrios Pertinentes ao rpm


/etc/rpmrc o arquivo de configurao do rpm e do rpmbuild. Contem informaes sobre a arquitetura do sistema e os caminhos para macros e diretrios utilizados no manejo de pacotes. Este arquivo tambm encontrado em /usr/lib/rpm/ /usr/lib/rpm/* Diretrio contendo as macros necessrias para o manejo de pacotes. /var/lib/rpm/ Diretrio onde se situam as bases de dados do rpm

Exemplos de uso do rpm


Instalar um pacote:
# rpm -ivh xyz.rpm

Instalar todos os pacotes iniciados por xyz


# rpm -ivh xyz*

Atualizar um pacote:
# rpm -Uvh xyz.rpm

Desinstalar pacote chamado xyz


# rpm -e xyz

Mostra os arquivos contidos no pacote


# rpm -qlp xyz.rpm

Mostra que pacote instalou o arquivo abc.efg


# rpm -qf abc.efg

2011 Alfamidia Prow

101

Conceitos, Instalao e Administrao de Sistemas Linux

yum
O yum o gerenciador de pacotes usado por padro no Fedora, assumindo o papel que no Debian e no Ubuntu desempenhado pelo apt-get. O yum foi originalmente desenvolvido pela equipe do Yellow Dog (uma distribuio baseada no Red Hat, destinada a computadores com chips PowerPC) e foi sistematicamente aperfeioado pela equipe da Red Hat, at finalmente assumir o posto atual. Ele trabalha de forma bastante similar ao apt, baixando os pacotes a partir dos repositrios especificados nos arquivos de configurao, junto com as dependncias necessrias. Assim como o apt-get, ele capaz de solucionar conflitos automaticamente e pode ser tambm usado para atualizar o sistema. Essencialmente, o yum e o apt solucionaram o antigo problema das dependncias (um pacote precisa de outro, que por sua vez precisa de um terceiro) que atormentava os usurios de distribuies mais antigas. Existem muitas diferenas entre o Fedora e o Debian, uma delas o formato dos pacotes utilizados: o Fedora utiliza pacotes .rpm, enquanto o debian utiliza pacotes .deb. Ambos tambm utilizam repositrios separados, com pacotes construdos especificamente para cada uma das duas distribuies, de forma que existem algumas diferenas nos nomes dos pacotes e tambm em muitos dos arquivos de configurao do sistema.

Configurao
No yum , voc tem que configurar um arquivo onde estaro as URLs (repositrios) para os pacotes. Esse arquivo, que no apt-get o sources.list, aqui no yum (Fedora) o yum.conf. Nele voc adiciona a entrada das URLs. Exemplo:
# vi /etc/yum.conf [fedora-us-3-core] name=Fedora Core 3 -Fedora US baseurl=http://SERVERNAME/fedora/fedora/$releasever/$basearch/RPMS.os [fedora-us-3-updates] name=Fedora Core 3 Updates -Fedora US baseurl=http://SERVERNAME/fedora/fedora/$releasever/$basearch/RPMS.updates

mirror

mirror

Com

um

repositrio

configurado

voc

pode

comear

brincar!

Alguns comandos do yum:


yum list - Lista todos os pacotes disponveis; yum check-update ou yum list updates - Verifica se h pacotes disponveis para um update ; yum update - Faz o update de seu sistema; yum install <package(s)> - Instala um pacote especfico e suas dependncias; yum info <package> - Apresenta informaes bsicas de um determinado pacote.

2011 Alfamidia Prow

102

Conceitos, Instalao e Administrao de Sistemas Linux

Para instalar um pacote, use o comando "yum install", como em:


# yum install evince

Para remov-lo posteriormente, use o "yum remove" como em:


# yum remove evince

Diferente do apt-get, onde voc precisa rodar o "apt-get update" antes de cada instalao para atualizar a lista de pacotes, o yum atualiza automaticamente cada vez que uma instalao solicitada, checando os repositrios, baixando os headers dos pacotes e calculando as dependncias antes de confirmar a instalao. Naturalmente, a praticidade tambm tem seu preo, j que torna a instalao de pacotes usando o yum seja mais demorada que usando o apt-get, j que ele precisa baixar e processar todas as informaes antes mesmo de confirmar a instalao do pacote e comear o download. Voc pode evitar isso de duas maneiras. A primeira editar o arquivo " /etc/yum.conf" e descomentar a linha "metadata_expire=90m" no final do arquivo, alterando o "90m" (que corresponde a 90 minutos) por um valor maior, como em:
metadata_expire=3d

Isso far com que os dados sejam preservados por at trs dias (uma configurao aceitvel para um desktop), fazendo com que as operaes do yum passem a ser bem mais rpidas. A segunda opo adicionar a opo "-C" aos comandos de instalao quando estiver com pressa, o que faz com que o yum ignore a atualizao e simplesmente utilize as informaes armazenadas no cache da ltima vez que foi executado, como em:
# yum -C install k3b

Outro truque o parmetro "groupinstall", que permite instalar grupos inteiros de pacotes de uma s vez. Para instalar o XFCE, por exemplo, voc usaria o:
# yum groupinstall xfce

A partir da, ele ficar disponvel a partir da tela de login, de maneira similar ao que temos ao instalar o pacote "xubuntu-desktop" no Ubuntu. O yum possui tambm um recurso de busca, que bastante til quando voc est procurando por um pacote, mas no sabe o nome exato, ou em casos de pacotes que possuem nomes diferentes em relao a outras distribuies. Use o comando "yum search", seguido por alguma palavra ou expresso que faa parte do nome do pacote ou da descrio, como em:
# yum search lame

Ele retorna um relatrio contendo todos os pacotes relacionados, incluindo o texto de descrio de cada um. Isso resulta geralmente em uma lista relativamente longa. Para fazer uma busca mais restrita, procurando apenas nos nomes dos pacotes, use o parmetro "list", como em:

2011 Alfamidia Prow

103

Conceitos, Instalao e Administrao de Sistemas Linux # yum list lame

Ele bem menos falador, retornando apenas os pacotes que possuem "lame" no nome, sem pesquisar nas descries. Uma terceira opo a "provides", que mostra pacotes que incluem um determinado arquivo, pesquisando no no nome ou na descrio, mas sim no contedo dos pacotes. Ela bastante til em casos em que voc precisa de alguma ferramenta ou biblioteca que faz parte de outro pacote maior, como no caso do mcedit (um editor de texto simples, preferido por muitos por ter atalhos fceis de usar), que faz parte do pacote "mc":
# yum provides mcedit

Para atualizar um pacote j instalado, use o comando "yum update", como em:
# yum update totem

O comando "yum install" tambm pode ser usado para atualizar pacotes. A diferena entre o "install" e o "update" que o "update" se limita a atualizar pacotes j instalados. Ao perceber que o pacote solicitado no est instalado, ele exibe um aviso e aborta a instalao. Isso reduz a possibilidade de voc acabar instalando novos pacotes por engano. Assim como no caso do apt-get, o yum pode ser usado tambm para atualizar todo o sistema. Nesse caso, comece usando o parmetro "check-update", que lista as atualizaes disponveis:
# yum check-update

Se usado sem especificar um pacote, o "update" vai atualizar de uma vez s todos os pacotes do sistema, de forma similar ao "apt-get dist-upgrade" do Debian:
# yum update

Existe ainda o comando "yum upgrade", que um pouco mais incisivo, incluindo tambm pacotes marcados como obsoletos (que no existem mais na verso atual). Ele til em casos em que necessrio atualizar uma verso antiga do sistema:
# yum upgrade

2011 Alfamidia Prow

104

Conceitos, Instalao e Administrao de Sistemas Linux

dpkg
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 (que um front-end para o dpkg) ou o apt. O dpkg muito usado por usurios avanados da Debian e desenvolvedores para fins de instalao, manuteno e construo de pacotes.

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

Instalar pacotes
Use o comando: dpkg -i [NomedoPacote] (ou --install) 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. No Debian cada pacote contm um programa com uma 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 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 um certo programa. Mas para os desenvolvedores que mantm os mais de 8710 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.

2011 Alfamidia Prow

105

Conceitos, Instalao e Administrao de Sistemas Linux

Listar pacotes existentes no sistema


Use o comando:
dpkg -l [pacote] (--list) para isto.

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

Removendo pacotes do sistema


Use o comando:
dpkg -r NomedoPacote (--remove)

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

Removendo completamente um pacote


Use o comando:
dpkg -P [NomedoPacote|-a] (--purge)

Para remover um pacote e todos os diretrios e arquivos de configurao 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 use diretamente o comando dpkg --purge, o dpkg primeiro remover o pacote normalmente e aps removido apagar todos os arquivos de configurao. Caso especifique a opo -a (ou sua equivalente --pending) no lugar do nome do pacote, todos os pacotes marcados para remoo sero removidos completamente do sistema. 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.

2011 Alfamidia Prow

106

Conceitos, Instalao e Administrao de Sistemas Linux

Mostrar descrio do pacote


Use o comando:
dpkg -I NomedoPacote (--info)

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

Procura de pacotes atravs do nome de um arquivo


Use o comando:
dpkg -S arquivo (--search)

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

Status do pacote
Use o comando:
dpkg -s pacote (--status)

Verifica o status de um pacote em seu sistema, se esta ou no instalado, configurado, tamanho, dependncias, maintainer, etc.

Listando arquivos de um pacote


Use o comando:
dpkg -c arquivo (--contents)

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.

2011 Alfamidia Prow

107

Conceitos, Instalao e Administrao de Sistemas Linux

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

O utilitrio 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 sendo bastante fcil de usar. Mesmo assim, existem interfaces grficas para o apt como o synaptic (modo grfico) e o aptitude (modo texto) que permitem poderosas manipulaes de pacotes sugeridos. 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 ou http com apenas 2 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 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, nonUS). Woody(Debian 3.0) e Sarge(Debian 3.1) so os nomes das verses enquanto stable e unstable so links para as verses estvel e testing respectivamente. Se desejar usar sempre uma distribuio estvel (como a Woody), modifique o arquivo sources.list e coloque Woody 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 Woody sero alterados apontando para Sarge 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 fonte. http://www.debian.org/debian - Mtodo de acesso aos arquivos da Debian, site e diretrio principal. O caminho pode ser http://, ftp://, file:/.
2011 Alfamidia Prow 108

Conceitos, Instalao e Administrao de Sistemas Linux

stable - Local onde sero procurados arquivos para atualizao. Voc pode tanto usar o nome de sua distribuio (Woody, Sarge) 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 o 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 servidores:
# Arquivos principais da stable deb ftp://ftp.debian.org.br/debian stable main non-free contrib # Non-US da Stable deb ftp://ftp.debian.org.br/debian-non-US stable/non-US main non-free contrib # 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 # Ximian um conjunto de pacotes atualizados freqentemente e compatveis # com a distribuio Debian. Entre estes programas esto o Gimp 1.2 e outros # mais atuais e compatveis com a Debian. Para usa-los inclua a seguinte linha no # seu sources.list # deb ftp://spidermonkey.ximian.com/pub/red-carpet/binary/debian-22-i386/ ./

2011 Alfamidia Prow

109

Conceitos, Instalao e Administrao de Sistemas Linux # Kde 1 e 2 # deb ftp://kde.tdyc.com/pub/kde/debian woody main crypto optional qt1apps

O arquivo /etc/apt/apt.conf
Voc pode especificar opes neste arquivo que modificaro o comportamento do programa apt durante a manipulao de pacotes (ao invs de especificar na linha de comando). Se estiver satisfeito com o funcionamento do programa apt, no necessrio modifica-lo. Para detalhes sobre o formato do arquivo, veja a pgina de manual do apt.conf. Na pgina de manual do apt-get so feitas referncias a parmetros que podem ser especificados neste arquivo ao invs da linha de comando.

Copiando a lista de pacotes disponveis


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 frequncia se estiver usando a distribuio stable e sempre se estiver usando a unstable (os pacotes so modificados com muita frequncia). Sempre utilize o apt-get update antes de atualizar toda a distribuio.

Instalando novos pacotes


Use o comando:
apt-get install [pacotes]

Para instalar novos pacotes em sua distribuio. Podem ser instalados mais de um pacotes ao mesmo tempo separando os nomes por espaos. Somente preciso especificar o nome do pacote (sem a verso e reviso). Se preciso, 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.

Removendo pacotes instalado


Use o comando
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 remove completamente o pacote mas mantm os arquivos de configurao, exceto se for adicionada a opo --purge.

2011 Alfamidia Prow

110

Conceitos, Instalao e Administrao de Sistemas Linux

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

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 o excesso 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 #Para atualizar a lista de pacotes (obrigatrio) apt-get -f dist-upgrade #Para atualizar a distribuio

A opo -f faz com que o apt verifique e corrija automaticamente problemas de dependncias entre pacotes. Recomendo executar 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.

2011 Alfamidia Prow

111

Conceitos, Instalao e Administrao de Sistemas Linux

A distribuio usada na atualizao pode ser:


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 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 2 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 podem 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 (para detalhes veja a seo seguinte).

Removendo pacotes baixados pelo apt


Use o comando:
apt-get clean

Para apagar qualquer arquivo baixado durante uma atualizao ou instalao de arquivos com o apt. Os arquivos baixados residem em /var/cache/apt/archives (download completo) e /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.

2011 Alfamidia Prow

112

Conceitos, Instalao e Administrao de Sistemas Linux

Procurando por pacotes atravs da descrio


O utilitrio apt-cache pode ser usado para esta funo. Ele tambm possui outras utilidades interessante para a procura e manipulao da lista de pacotes. Por exemplo, o comando:
apt-cache search clock

mostrar todos os pacotes que possuem a palavra clock na descrio do pacote.

Procurando um pacote que contm determinado arquivo


Suponha que algum programa esteja lhe pedindo o arquivo perlcc e voc no tem a mnima ideia 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 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 text/a2ps usr/bin/pdiff 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.

Corrigindo problemas de dependncias e outros erros


Use o comando apt-get -f install (sem o nome do pacote)
2011 Alfamidia Prow 113

Conceitos, Instalao e Administrao de Sistemas Linux

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

2011 Alfamidia Prow

114

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 13.Usando o editor vi


Um editor de textos um programa usado para editar arquivos que so compostos de textos: uma carta, um programa C, ou um arquivo de configurao do sistema. Ainda que existam vrios desses editores disponveis para o Linux, o nico que voc garantidamente vai encontrar em qualquer UNIX ou sistema Linux, o vi (do ingls, "visual editor"). O vi no o editor mais fcil de usar, nem muito autoexplicativo. Entretanto, como o vi to comum em sistemas UNIX/Linux, e muitas vezes necessrio, ele merece um pouco de nossa ateno. Sua escolha por um editor mais uma questo pessoal de gosto e estilo. Muitos usurios preferem o barroco, autoexplicativo e poderoso Emacs - um editor com mais funes que qualquer outro programa no mundo UNIX. Por exemplo, o Emacs tem o seu prprio dialeto da linguagem de programao LISP embutido, e tem muitas outras extenses (uma das quais um tipo Eliza - um programa de inteligncia artificial). No entanto, como o Emacs e seus arquivos de suporte so relativamente grandes, ele no pode ser instalado em alguns sistemas. O vi, por outro lado, pequeno e poderoso, mas mais difcil de usar. Entretanto, uma vez que voc saiba lidar com ele, ser muito fcil. Esta seo apresenta uma introduo ao vi - no vamos discutir todas os seus atributos, somente aqueles que voc precisa saber para comear a us-lo. Voc pode verificar a pgina de manual do vi se estiver interessado em aprender mais sobre o editor e suas funes. Alternativamente, voc pode ler o livro Learning the vi Editor, da editora OReilly and Associates, ou Vi Tutorial, da Specialized Systems Consultants (SSC) Inc.

Conceitos.
Enquanto estiver usando o vi, em qualquer momento voc est em um dos trs modos de operao. Esses modos so chamados: modo de comando, modo de insero, e modo ltima linha. Quando voc inicia o vi, voc est no modo de comando. Esse mode permite que voc use comandos para editar arquivos ou para trocar para outros modos. Por exemplo, digitando "x" no modo comando apaga o caractere que est sob o cursor. As teclas de setas movem o cursor pelo arquivo que voc est editando. Geralmente, os comandos usados no modo de comando so de um ou dois caracteres. Voc pode inserir ou editar textos no modo de insero. Quando estiver usando o vi, vai provavelmente usar a maior parte do tempo neste modo. Voc inicia o modo de insero pressionando o comando "i" (de "inserir") no modo de comando. Enquanto estiver em modo de insero, voc pode inserir texto no documento na posio do cursor. Para sair do modo de insero e retornar ao modo de comando, pressione <Esc>. O modo de ltima linha um modo especial que permite alguns comandos estendidos do vi. Ao digitar esses comandos, eles aparecem na ltima linha da tela (da o nome). Por exemplo, quando voc digita ":" no modo de comando, voc pula para o modo de ltima linha e pode usar os comandos "wq" (gravar e sair - do ingls, write and quit), ou "q!" (para sair sem salvar). O modo de ltima linha geralmente usado para comandos do vi que so mais longos do que um caractere. No modo de ltima linha, voc entra um comando de uma linha e pressiona <Enter> para execut-lo.

Iniciando o vi
A melhor maneira de compreender estes conceitos chamar o vi e editar um arquivo. O exemplo "screens" abaixo mostra algumas linhas de texto, como se a tela tivesse somente seis linhas de altura, ao invs de vinte e quatro. A sintaxe do vi
vi arquivo

onde arquivo o nome do arquivo a editar. Chame o vi digitando:


/home/larry# vi test
2011 Alfamidia Prow 115

Conceitos, Instalao e Administrao de Sistemas Linux

para editar o arquivo "test". Voc deve ver algo parecido com:
~ ~ ~ ~ ~ ~ ~ "test"

[New file]

A coluna de caracteres "~" indicam que voc est no fim do arquivo. No exemplo, o caractere "_" representa o cursor.

Inserindo texto
O programa vi est agora no modo de comando. Insira um texto no arquivo - pressionando "i" voc coloca o editor em modo de insero. A partir da, comece a digitar.
Now is the time for all good men to come to the aid of the party ~ ~ ~ ~ ~ ~ ~

Digite quantas linhas voc quiser (pressionando <Enter> depois de cada uma). Voc pode corrigir erros com a tecla <Back Space>. Para terminar o modo de insero e retornar ao modo de comando, pressione <Esc>. No modo de comando voc pode usar as setas para mover pelo arquivo. (Se voc tem somente uma linha de texto, e tentar usar as teclas para cima e para baixo, vai sentir que vi vai tocar um bip). H muitas maneiras de inserir um texto que no o comando "i". O comando "a" insere um texto comeando aps a posio atual do cursor, ao invs de na posio atual do cursor. Por exemplo, use a seta da esquerda para mover o cursor entre as palavras "good" e "men".
Now is the time for all good_men to come to the aid of the party ~ ~ ~ ~ ~ ~ ~

2011 Alfamidia Prow

116

Conceitos, Instalao e Administrao de Sistemas Linux

Pressione "a" para entrar no modo de insero, digite "wo", e ento pressione <Esc> para retornar ao modo comando.
Now is the time for all good women to come to the aid of the party ~ ~ ~ ~ ~

Para comear a inserir texto na prxima linha, use o comando "o". Pressione "o" e entre uma ou duas linhas mais:
Now is the time for all good humans to come to the aid of the party. Afterwards, well go out for pizza and beer. ~ ~ ~ ~ ~ ~ ~

Apagando texto
A partir do modo de comando, o comando "x" apaga o caractere sob o cursor. Se voc pressionar cinco vezes "x", vai chegar em:
Now is the time for all good humans to come to the aid of the party. Afterwards, well go out for pizza and_ ~ ~ ~ ~ ~ ~ ~

2011 Alfamidia Prow

117

Conceitos, Instalao e Administrao de Sistemas Linux

Agora pressione "a" e insira algum texto, seguido de <esc>:


Now is the time for all good humans to come to the aid of the party. Afterwards, well go out for pizza and diet coke. ~ ~ ~ ~ ~ ~ ~

Voc pode apagar linhas inteiras usando o comando "dd" (isso mesmo, pressione "d" duas vezes seguidas), Se o cursor est na segunda linha, e voc pressionar "dd", ver:
Now is the time for all good humans to come to the aid of the party. ~ ~ ~ ~ ~ ~ ~

Para apagar a palavra onde est o cursor, use o comando "dw". Coloque o cursor no incio da palavra good, e digite "dw".
Now is the time for all humans to come to the aid of the party. ~ ~ ~ ~ ~ ~ ~

Modificando texto
Voc pode substituir sees de texto usando o comando "R" (maisculo). Posicione o cursor na primeira letra da palavra "party", pressione "R" e digite a palavra "hungry".
Now is the time for all humans to come to the aid of the hungry. ~ ~ ~ ~ ~ ~ ~

Usando "R" para editar um texto como usar "i" ou "a", mas o "R" sobrescreve, ao invs de inserir.
2011 Alfamidia Prow 118

Conceitos, Instalao e Administrao de Sistemas Linux

O comando "r" (minsculo) substitui o caractere sob o cursor. Por exemplo, mova o cursor para o incio da palavra "Now" e pressione "r", depois "C", voc ver:
Cow is the time for all humans to come to the aid of the hungry. ~ ~ ~ ~ ~ ~ ~

O comando "~" troca a caixa da letra que est sob o cursor de alta para baixa e vice-versa. Por exemplo, se voc posiciona o cursor no "o", na palavra "Cow" acima e repetidamente pressiona "~", ter:
COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY. ~ ~ ~ ~ ~ ~ ~

Nota: em teclados programados para o portugus, voc ter que pressionar "~" seguido da tecla de espao para ter o mesmo efeito.

Comandos para movimentar o cursor


Voc j sabe como usar as setas para se movimentar pelo documento. Alm disso, voc pode usar os comandos "h", "j", "k" e "l" para mover o cursor para a esquerda, baixo, cima e direita, respectivamente. Isso til quando (por alguma razo) suas teclas de setas no funcionam corretamente. O comando "w" move o cursor para o incio da prxima palavra, o comando "b" para o incio da palavra anterior. O comando "0" (tecla zero) move o cursor para o incio da linha corrente, e o comando "$" para o fim da linha. Quando editar arquivos grandes, voc vai querer avanar e retroceder atravs do arquivo uma tela por vez. Pressionado "Ctrl-F" move o cursor uma tela para a frente, e Ctrl-B, uma tela para trs. Para mover o cursor para o fim do arquivo, pressione "G". Voc tambm pode mov-lo para uma linha arbitrria; por exemplo, digite o comando "10G" para mover o cursor para a linha 10 no arquivo. Para mov-lo para a primeira linha, use "1G". Voc pode combinar comandos de movimentao com outros comandos, como aqueles usados para apagar texto. Por exemplo, o comando "d$" apaga tudo do cursor at o fim da linha; "dG" apaga tudo do cursor at o fim do arquivo, e assim por diante.

2011 Alfamidia Prow

119

Conceitos, Instalao e Administrao de Sistemas Linux

Salvando arquivos e saindo do vi


Para sair do vi sem salvar mudanas no arquivo, use o comando ":q!". Quando voc pressiona ":", o cursor se move para a ltima linha da tela e voc estar no modo de ltima linha.
COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY. ~ ~ ~ ~ ~ ~ :_

No modo de ltima linha, certos comandos estendidos esto disponveis. Um deles o "q!", que sai do vi sem salvar. O comando ":wq" salva o arquivo e sai do vi. O comando "ZZ" (do modo comando, sem os ":") equivalente a ":wq". Se o arquivo no foi modificado desde a ltima vez que foi salvo, o comando s sai, preservando a data de modificao da ltima mudana. Lembre-se que voc deve pressionar <Enter> depois de um comando entrado no modo de ltima linha. Para salvar o arquivo sem sair do vi, use ":w".

Editando outro arquivo


Para editar outro arquivo, use o comando ":e". Por exemplo, para parar a edio do arquivo "test" e editar o arquivo "foo" no lugar, use o comando:
COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY. ~ ~ ~ ~ ~ ~ :e foo_

Se voc usa ":e" sem salvar o primeiro arquivo, voc vai receber a mensagem de erro: No write since last change (":edit!" overrides)

2011 Alfamidia Prow

120

Conceitos, Instalao e Administrao de Sistemas Linux

Que significa que o vi no quer editar outro arquivo at que voc salve o primeiro. Neste ponto, voc pode usar ":w" para salvar o arquivo original, e depois o ":e", ou pode usar o comando:
COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY. ~ ~ ~ ~ ~ ~ :e! foo_

O sinal "!" diz ao vi que voc realmente quer fazer isso - editar o novo arquivo sem salvar as mudanas do primeiro.

Incluindo outros arquivos


Se voc usar o comando ":r", pode incluir o contedo de outro arquivo no arquivo corrente. Por exemplo, o comando
:r foo.txt

insere o contedo do arquivo "foo.txt" no texto atul na localizao do cursor.

Rodando comandos do shell


Voc tambm pode rodar comandos do shell de dentro do vi. O comando ":r!" funciona como ":r", mas ao invs de ler um arquivo, ele insere a sada do comando dado na posio corrente do cursor. Por exemplo, se voc usar o comando:
:r! ls -F

voc vai terminar com:


COW IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY. letters/ misc/ papers/ ~ ~

Voc tambm pode rodar um comando do shell de dentro do vi sem que o texto seja inserido no arquivo em edio. Por exemplo, se usar o comando
:! ls -F

O "ls -F" ser executado e o resultado mostrado na tela, mas no inserido no arquivo que voc est editando.

2011 Alfamidia Prow

121

Conceitos, Instalao e Administrao de Sistemas Linux

Se voc usar o comando


:shell

O vi inicia uma instncia do shell, permitindo que voc ponha o vi temporariamente em segundo plano, enquanto executa outros comandos. Simplesmente d um logout (usando o comando exit) do shell para retornar ao vi.

Ajuda no vi
O vi no fornece muita ajuda interativa (a maioria dos programas Linux tambm no), mas voc sempre pode ler a pgina do manual para o vi. O vi uma fachada para o editor "ex", que manipula muitos dos comandos do modo de ltima linha do vi. Assim, alm de ler a pgina de manual para o vi, veja tambm para o "ex". Voc tambm pode usar o comando ":help" para ver uma ajuda dos comandos bsicos na tela.

2011 Alfamidia Prow

122

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 14.Expresso Regulares


Apresentando as Expresses Regulares
Expresses regulares so elementos de texto, palavras chave e modificadores que formam um padro, usado para encontrar e opcionalmente alterar um padro correspondente. Muitos programas suportam o uso de expresses regulares. Resumido, uma composio de smbolos, caracteres com funes especiais, que, agrupados entre si e com caracteres literais, formam uma sequncia, uma expresso. Essa expresso interpretada como uma regra, que indicar sucesso se uma entrada de dados qualquer casar com essa regra, ou seja, obedecer exatamente a todas as suas condies.

Terminologia
O termo expresses regulares, doravante ser chamado apenas, ER (-rre) para simplificar a leitura. Outras nomenclaturas que podem ser encontradas em outras fontes so expreg, "regexp", "regex" e "RE". Particularmente "regex" a mais conhecida para busca na Internet. As expresses so formadas por smbolos e caracteres literais, esses smbolos so chamados de metacaracteres, pois possuem funes especiais, que veremos detalhadamente adiante. Outro termo que interessante o casar ("match") ato de bater, conferir, combinar, igualar, encontrar, encaixar, equiparar. como em um caixa 24 horas, em que voc s retirar o dinheiro se sua senha digitada casar com aquela j cadastrada no banco. Tambm temos o padro ("pattern"), que nosso objetivo quando fazemos uma ER: casar um padro. Esse padro pode ser uma palavra, vrias, uma linha vazia, um nmero, ou seja, o que quer que precise ser encontrado pela nossa ER. E ainda tem o robozinho, que uma referncia ao compilador e interpretador das expresses regulares, o cdigo que vai ler, checar, entender e aplicar sua ER no texto desejado. Como exemplo, para programas em C o robozinho a biblioteca regex , que faz todo o servio. Na prtica as expresses regulares servem para uma infinidade de tarefas, difcil fazer uma lista, pois elas so teis sempre que voc precisar buscar ou validar um padro de texto que pode ser varivel, como: data horrio nmero IP nome de pessoa endereo de e-mail endereo de Internet nome de usurio e senha declarao de uma funo() dados na coluna N de um texto dados que esto entre <tags></tags> campos especficos de um texto tabulado nmero de telefone, RG, CPF, carto de crdito dados que esto apenas no comeo ou no fim da linha
2011 Alfamidia Prow 123

Conceitos, Instalao e Administrao de Sistemas Linux

E mais uma infinidade de outros padres que no podem ser especificados com caracteres literais. Um exemplo prtico: voc tem uma lista diria de acesso de usurios que entraram em seu sistema, onde consta em cada linha, o horrio do acesso e o "login" do usurio, algo como: 05:15 08:39 10:32 14:59 16:27 22:23 ernesto ricardo patricia gabriel carla marcelo

Como fazer para buscar automaticamente apenas os usurios que acessaram o sistema no perodo da tarde (meio-dia s seis)? Voc tem vrias opes, desde procurar uma a uma manualmente at fazer um programa que compare os primeiros caracteres de cada linha, mas falando de algo prtico e rpido, que no exija conhecimentos de programao, a ER simplesmente ^1[2-8].

2011 Alfamidia Prow

124

Conceitos, Instalao e Administrao de Sistemas Linux

Metacaracteres
Os metacaracteres-padro so: . ? * + ^ $ | [ ] { } ( ) \. Cada smbolo desses tem sua funo especfica, que pode mudar dependendo do contexto no qual est inserido, e podemos agreg-los uns com os outros, combinando suas funes e fazendo construes mais complexas. Alm destes, temos outros metacaracteres estendidos que foram criados posteriormente, pois tarefas mais complexas requisitavam funes mais especficas ainda, sua sintaxe de utilizao no a mesma para todos os programas que suportam expresses regulares. So eles:
meta mnemnico -----------------------------. ponto [] lista [^] lista negada ? opcional * asterisco + mais {} chaves ^ circunflexo $ cifro \b borda \ escape | ou () grupo \1 retrovisor

Os metacaracteres esto divididos em quatro grupos distintos, de acordo com caractersticas comuns entre eles.

Representantes
meta mnemnico funo --------------------------------------------------------------. ponto um caractere qualquer [...] lista lista de caracteres permitidos [^...] lista negada lista de caracteres proibidos

So metacaracteres cuja funo representar um ou mais caracteres. Tambm podem ser encarados como apelidos, links, ou qualquer outra coisa que lhe lembre essa associao entre elementos.

2011 Alfamidia Prow

125

Conceitos, Instalao e Administrao de Sistemas Linux

Ponto
Todos os metacaracteres deste tipo casam a posio de um nico caractere, e no mais que um. O ponto o curinga solitrio, que est sempre procura de um casamento, no importa com quem seja. Pode ser um nmero, uma letra, um TAB ou um. Suponhamos uma ER que contenha os caracteres "fala" e o metacaractere ponto, assim: fala.. No texto a seguir, essa ER casaria tudo o que est sublinhado: "Olha, com vocs me pressionando a fala no vai sair natural. Eu no consigo me concentrar na minha fala. Alis, isso um falatrio, pois nunca vi um comercial com tantas falas assim. Vou me queixar com o problemasnafala@medicos.com.br" Nesse pequeno trecho de texto, nossa ER casou 5 vezes, tendo o ponto casado com os seguintes caracteres: " .ts@". O metacaractere ponto casa, entre outros, o caractere ponto. Como exemplos de uso do ponto, em um texto normal em portugus, voc pode procurar palavras que no lembra se acentuou ou no, que podem comear com maisculas ou no, ou que foram escritas errado:
n.o .eclado e.tendido no, nao, ... teclado, Teclado, ... estendido, extendido, eztendido, ...

Ou para tarefas mais especficas, procurar horrio com qualquer separador, ou marcaes ("tags") HTML:
12.45 <.> 12:45, 12 45, 12.45, ... <B>, <i>, <p>, ...

Logo:

O ponto casa com qualquer coisa. O ponto casa com o ponto. O ponto um curinga para casar um caractere.

Lista [...]
Diferente do ponto, a lista no casa com qualquer caractere. Ela guarda dentro de si os caracteres permitidos para casar, ento algo como [aeiou] limita nosso casamento a apenas letras vogais. No exemplo anterior do ponto, sobre acentuao, tnhamos a ER n.o. Alm dos casamentos desejados, ela muito abrangente, e tambm casa coisas indesejveis como neo, n-o, n5o e n o. Para que nossa ER fique mais especfica, trocamos o ponto pela lista, para casar apenas o no e nao desejados, veja:
n[a]o

2011 Alfamidia Prow

126

Conceitos, Instalao e Administrao de Sistemas Linux

E assim como o n.o, todos os outros exemplos anteriores do ponto casam muito mais que o desejado, justo pela sua natureza "promscua". Por isso que nos exemplos tinha os trs pontinhos. Exatamente, eles indicam que havia mais possibilidades de casamento. Como o ponto casa com qualquer coisa, ele nada especfico. Ento vamos impor limites s ERs:
n[a]o [Tt]eclado e[sx]tendido 12[:. ]45 <[BIP]> no, nao Teclado, teclado estendido, extendido 12:45, 12.45, 12 45 <B>, <I>, <P>

Mas e aquele ponto na ER da hora, no casa com qualquer coisa? No. Dentro da lista, todo mundo normal. Ento aquele ponto simplesmente um ponto normal e no um metacaractere. No exemplo de marcao <[BIP]>, vemos que as ERs so sensveis a maisculas e minsculas, ento se quisermos mais possibilidades, basta inclu-las:
<[BIPbip]> <B>, <I>, <P>, <b>, <i>, <p>

Intervalos em listas
Por enquanto, vimos ento que a lista abriga todos os caracteres permitidos em uma posio. No exemplo abaixo vemos uma lista que em uma determinada posio s listar nmeros.
[0123456789].

Ento para casar uma hora, qualquer que ela seja com o formato hh:mm.
[0123456789][0123456789]:[0123

Para evitar esse tipo de listagem extensa, temos somente dentro da lista o conceito de intervalo. Note que se tivermos um trao (-) entre dois caracteres, isso representa todo o intervalo entre eles.
[0123456789] igual a [0-9]

O trao indica um intervalo, 0-9 se l: "de zero a nove". Voltando a nossa ER da hora, poderamos fazer [0-9][0-9]:[0-9][0-9], mas veja que no especfico o bastante, pois permite uma hora como 99:99, que no existe. Qualquer intervalo vlido, como a-z, A-Z, 5-9 , a-f, :-@, etc. Por exemplo, se eu quiser uma lista que case apenas letras maisculas, minsculas e nmeros: [A-Zaz0-9]. Como o trao especial dentro da lista, basta colocar o trao no final da lista, assim [0-9-] casa nmeros ou um trao. Os colchetes, que so os delimitadores da lista. Como inclu-los dentro dela?
2011 Alfamidia Prow 127

Conceitos, Instalao e Administrao de Sistemas Linux

O colchete que abre no tem problema, pode coloc-lo em qualquer lugar na lista, pois ela j est aberta mesmo e no se pode ter uma lista dentro da outra. O colchete que fecha deve ser colocado no comeo da lista, ser o primeiro item dela, para no confundir com o colchete que termina a lista. Ento []-] casa um ] ou um -. Vamos juntar tudo e fazer uma lista que case ambos os colchetes e o trao: [][-]. Vamos l-la um por um: o primeiro [ significa que o comeo de uma lista, j dentro da lista, temos um ] literal, seguido de um [ literal, seguido de um - literal, e por ltimo o ] que termina a lista. Nesse intervalo tem : ; < = > ? @ . Os intervalos respeitam a ordem numrica da tabela ASCII, ento basta t-la em mos para ver que um intervalo como A-z no pega somente as maisculas e minsculas como era de se esperar. Para sua comodidade, a tabela est no fim do guia, e nela podemos ver que A-z pega tambm "[\]^_`" e no pega os caracteres acentuados como "". Infelizmente, no h um intervalo vlido para pegarmos todos os caracteres acentuados de uma vez. Mas j j veremos a soluo... No use o intervalo A-z, prefira A-Za-z

Dominando caracteres acentuados (POSIX)


As classes de caracteres POSIX so grupos definidos por tipo, e POSIX um padro internacional que define esse tipo de regra. As classes:
classe POSIX similar significa ----------------------------------------[:upper:] [A-Z] letras maisculas [:lower:] [a-z] letras minsculas [:alpha:] [A-Za-z] maisculas/minsculas [:alnum:] [A-Za-z0-9] letras e nmeros [:digit:] [0-9] nmeros [:xdigit:] [0-9A-Fa-f] nmeros hexadecimais [:punct:] [.,!?:...] sinais de pontuao [:blank:] [ \t] espao e TAB [:space:] [ \t\n\r\f\v] caracteres brancos [:cntrl:] c aracteres de controle [:graph:] [^ \t\n\r\f\v] caracteres imprimveis [:print:] [^\t\n\r\f\v] imprimveis e o espao

Note que os colchetes fazem parte da classe e no so os mesmos colchetes da lista. Para dizer maisculas, fica [[:upper:]], ou seja um [:upper:] dentro de uma lista []. O [[:upper:]] uma classe POSIX dentro de uma lista. O [:upper:] o mesmo que A-Z, letras maisculas. Mas a diferena que essas classes POSIX levam em conta a localidade do sistema. Ateno para essa diferena, pois a literatura na lngua inglesa sempre fala sobre esse assunto muito superficialmente, pois eles no utilizam acentuao e deve ser s vezes at difcil para quem est escrevendo o documento entender isso. Como nossa situao inversa, e nossa lngua rica em caracteres acentuados, entender essa diferena de suma importncia. Como estamos no Brasil, geralmente nossas mquinas esto configuradas como tal, usando nmeros no formato nnn.nnn,nn , a data no formato dd/mm/aaaa, medidas de distncia so em centmetros e outras coisinhas que so diferentes nos demais pases. Entre outros, tambm est definido que so caracteres vlidos em nosso alfabeto, bem como . Ento, toda essa volta foi para dizer que o [:upper:] leva isso em conta e inclui as letras acentuadas tambm na lista. O mesmo para o [:lower:], o [:alpha:] e o [:alnum:].
2011 Alfamidia Prow 128

Conceitos, Instalao e Administrao de Sistemas Linux

Nos Estados Unidos, [[:upper:]] igual a [A-Z]. No Brasil, [[:upper:]] igual [AZ...] Por isso para ns essas classes POSIX so importantssimas, e sempre que voc tiver de fazer ERs que procuraro em textos em portugus, prefira [:alpha:] em vez de A-Za-z, sempre. Ento refazendo a ER que casava maisculas, minsculas e nmeros, temos: [[:upper:][:lower:][:digit:]], ou melhor: [[:alpha:][:digit:]], ou melhor ainda: [[:alnum:]]. Todas so equivalentes. A lista o nico metacaractere que tem suas prprias regras, funcionando como uma minilinguagem dentro das expresses regulares. Logo

A lista casa com quem ela conhece e tem suas prprias regras. Dentro da lista, todo mundo normal. Dentro da lista, trao indica intervalo. Um - literal deve ser o ltimo item da lista. Um ] literal deve ser o primeiro item da lista. Os intervalos respeitam a tabela ASCII (no use A-z). [:classes POSIX:] incluem acentuao, A-Z no.

Lista negada: [^...]


A lista negada exatamente igual lista, podendo ter caracteres literais, intervalos e classes POSIX. Tudo o que se aplica a lista normal, se aplica negada tambm. A nica diferena que ela possui lgica inversa, ou seja, ela casar com qualquer coisa, fora os componentes listados. Observe que a diferena em sua notao que o primeiro caractere da lista um circunflexo, ele indica que esta uma lista negada. Ento se [0-9] so nmeros, [^0-9] qualquer coisa fora nmeros. Pode ser letras, smbolos, espao em branco, qualquer coisa, menos nmeros. Se voc diz "qualquer coisa fora nmeros", deve haver outra coisa no lugar dos nmeros e no simplesmente "se no houver nmeros". Ento essa ER no casaria uma linha vazia por exemplo. "Qualquer coisa fora alguns caracteres" no inclui "nenhum caractere". Como o trao e o colchete que fecha, o circunflexo especial, ento para colocarmos um ^ literal em uma lista, precisamos p-lo em qualquer posio que no seja a primeira. Assim [A-Z^] casa maisculas e o circunflexo e [^A-Z^] casa tudo fora isso.

2011 Alfamidia Prow

129

Conceitos, Instalao e Administrao de Sistemas Linux

As classes POSIX tambm podem ser negadas, ento [^[:digit:]] casa "qualquer coisa fora nmeros". A lista negada muito til quando voc sabe exatamente o que no pode ter em uma posio, como um erro ortogrfico ou de escrita. Por exemplo, como mandam as regras da boa escrita, sempre aps caracteres de pontuao como a vrgula ou o ponto, devemos ter um espao em branco os separando do resto do texto. Ento vamos procurar por qualquer coisa que no o espao aps a pontuao:
[:;,.!?][^ ]

Ou, ainda, explicitando melhor nosso objetivo:


[[:punct:]][^ ]

Logo

Uma lista negada segue todas as regras de uma lista normal. Um ^ literal no deve ser o primeiro item da lista. [:classes POSIX:] podem ser negadas. A lista negada sempre deve casar algo.

Quantificadores
meta mnemnico funo --------------------------------------------------------------? opcional zero ou um * asterisco zero, um ou mais + mais um ou mais {n,m} chaves de n at m

Servem para indicar o nmero de repeties permitidas para a entidade imediatamente anterior. Essa entidade pode ser um caractere ou metacaractere. Em outras palavras, eles dizem a quantidade de repeties que o tomo anterior pode ter, quantas vezes ele pode aparecer. Os quantificadores no so quantificveis, ento dois deles seguidos em uma ER um erro, salvo quantificadores, que veremos depois.

2011 Alfamidia Prow

130

Conceitos, Instalao e Administrao de Sistemas Linux

Opcional
O opcional um quantificador que pode ter ou no a ocorrncia da entidade anterior, pois ele a repete 0 ou 1 vez. Por exemplo, a ER 6? significa zero ou uma ocorrncia do nmero 6. Se tiver um 6, o casamento efetuado. Se no tiver, tambm. Isso torna o 6 opcional (da o nome), que tendo ou no, a ER casa. Veja mais um exemplo, o plural. A ER ondas? tem a letra s marcada como opcional, ento ela casa onda e ondas. Cada letra normal um tomo da ER, ento o opcional aplicado somente ao s e no palavra toda.
fala[r!]? falar, fala!, fala

Logo

O opcional opcional. O opcional til para procurar palavras no singular e plural. Podemos tornar opcionais caracteres e metacaracteres. Leia a ER tomo por tomo, da esquerda para a direita. Leia a ER, entenda o todo e analise as possibilidades.

Asterisco
No asterisco a entidade anterior pode aparecer em qualquer quantidade.
6*0 bi*p b[ip]* 0, 60, 660, 6660, ..., 666666666660, ... bp, bip, biip, biiip, biiiip... b, bi, bip, biipp, bpipipi, biiiiip, bppp, ...

Como HTML sempre um timo exemplo, voltamos ao nosso exemplo das marcaes, que podem ter vrios espaos em branco aps o identificador, ento <b > e </b > so vlidos. Vamos colocar essa condio na ER:
</?[BIPbip] *> </B>, </B >, </B >, ..., <p >, ...

Note que agora com o asterisco, nossa ER j no tem mais um nmero finito de possibilidades. Vejamos como fica a leitura dessa ER: um <, seguido ou no de uma /, seguido de: ou B, ou I, ou P, ou b , ou i, ou p, seguido ou no de vrios espaos, seguido de >. No confunda! Os curingas usados na linha de comando para especificar nomes de arquivos, como *.txt, relatorio.{txt,doc} e guia-??.html no so expresses regulares. So curingas especficos de nomes de arquivo, e apesar de parecidos, so outra coisa e os significados de seus smbolos so diferentes dos das expresses, ento o melhor que voc faz agora esquecer esses curingas, seno eles podem confundi-lo e atrapalhar seu aprendizado.

2011 Alfamidia Prow

131

Conceitos, Instalao e Administrao de Sistemas Linux

Vimos at agora que temos dois metacaracteres extremamente abrangentes, como o ponto (qualquer caractere) e o asterisco (em qualquer quantidade). E se juntarmos os dois? Teremos qualquer caractere, em qualquer quantidade. Assim, uma ER que seja simplesmente .* sempre ser vlida e casar mesmo uma linha vazia. O curinga .* qualquer coisa! Assim, temos aqui o curinga das ERs, uma carta para se usar em qualquer situao. muito comum ao escrever uma expresso regular, voc definir alguns padres que procura, e l no meio, em uma parte que no importa, pode ser qualquer coisa, voc coloca um .* e depois continua a expresso normalmente. Por exemplo, para procurar ocorrncia de duas palavras na mesma linha, relatrio.*amanh serve para achar aquela linha maldita em que lhe pediram um trabalho "pra ontem". Ou, ainda, procurar acessos de usurios em uma data qualquer: 22/11/2001.*login. Logo

O asterisco repete em qualquer quantidade. Quantificadores so gulosos. O curinga .* o tudo e o nada, qualquer coisa.

Mais +
O mais tem funcionamento idntico ao do asterisco, tudo o que vale para um, se aplica ao outro. A nica diferena que o mais no opcional, ento a entidade anterior deve casar pelo menos uma vez, e pode ter vrias. Sua utilidade quando queremos no mnimo uma repetio.
6+0 bi+p b[ip]+ 60, 660, 6660, ..., 666666660, ... bip, biip, biiip, biiiip... bi, bip, biipp, bpipipi, biiiiip, bppp, ...

Logo

O mais repete em qualquer quantidade, pelo menos uma vez. O mais igual ao asterisco, s mais exigente.

2011 Alfamidia Prow

132

Conceitos, Instalao e Administrao de Sistemas Linux

Chaves: o controle {n,m}


As chaves so a soluo para uma quantificao mais controlada, onde se pode especificar exatamente quantas repeties se quer da entidade anterior. Basicamente, {n,m} significa de n at m vezes, assim algo como 6{1,4} casa 6, 66, 666 e 6666. Temos tambm a sintaxe relaxada das chaves, em que podemos omitir a quantidade final, ou ainda, especificar exatamente um nmero:
{1,3} {3,} {0,3} {3} {1} {0,1} {0,} {1,} de 1 a 3 pelo menos 3 at 3 exatamente 3 exatamente 1 zero ou 1 zero ou mais um ou mais

(3 ou mais)

(igual ao opcional) (igual ao asterisco) (igual ao mais)

Note que o {1} tem efeito nulo, pois 6{1} igual a 6. Mas observe os trs ltimos exemplos. Com as chaves, conseguimos simular o funcionamento de outros trs metacaracteres, o opcional, o asterisco e o mais. Logo Chaves so precisas. Voc pode especificar um nmero exato, um mnimo, um mximo, ou uma faixa numrica. As chaves simulam o *, o + e a ?.

2011 Alfamidia Prow

133

Conceitos, Instalao e Administrao de Sistemas Linux

ncoras
Por que ncora? Porque eles no casam caracteres ou definem quantidades, ao invs disso eles marcam uma posio especfica na linha. Assim, eles no podem ser quantificados, ento o mais, o asterisco e as chaves no tm influncia sobre ncoras.
meta mnemnico funo --------------------------------------------------------------^ circunflexo incio da linha $ cifro fim da linha \b borda incio ou fim de palavra

Circunflexo: o incio ^
O circunflexo marca o comeo de uma linha. Nada mais. Diferentemente de sua funo na lista negada, apenas dentro da lista (e no comeo), fora dela ele a ncora que marca o comeo de uma linha, veja:
^[0-9]

Isso quer dizer: a partir do comeo da linha, case um nmero, ou seja, procuramos linhas que comeam com nmeros. O contrrio seria:
^[^0-9]

Ou seja, procuramos linhas que no comeam com nmeros. O primeiro circunflexo a ncora e o segundo o "negador" da lista. E como no poderia deixar de ser, claro que o circunflexo como marcador de comeo de linha s especial se estiver no comeo da ER. No faz sentido procurarmos uma palavra seguida de um comeo de linha, pois se tiver uma palavra antes do comeo de uma linha, ali no o comeo da linha! Desse modo, a ER:
[0-9]^

Casa um nmero seguido de um circunflexo literal, em qualquer posio da linha. Com isso em mente, voc pode me dizer o que casa a ER: ^^ Logo

Circunflexo um nome chato, porm chapeuzinho legal. Serve para procurar palavras no comeo da linha. S especial no comeo da ER.

2011 Alfamidia Prow

134

Conceitos, Instalao e Administrao de Sistemas Linux

Cifro: $
Similar e complementar ao circunflexo, o cifro marca o fim de uma linha e s vlido no final de uma ER. Como o exemplo anterior, [0-9]$ casa linhas que terminam com um nmero.
^$

A ER procura por linhas vazias. Essa uma tarefa comum nas mais diversas situaes. Podemos tambm casar apenas os cinco ltimos caracteres de uma linha. .....$ Ou, ainda, que tal casarmos linhas que tenham entre 20 e 60 caracteres? ^.{20,60}$ Logo

Serve para procurar palavras no fim da linha. S especial no final da ER. cifro e no dlar.

Borda: a limtrofe \b
A outra ncora que temos a borda, que como o prprio nome j diz, marca uma borda, mais especificamente, uma borda de palavra. Ela marca os limites de uma palavra, ou seja, onde ela comea e/ou termina. Muito til para casar palavras exatas, e no partes de palavras. Veja como se comportam as ERs nas palavras dia, diafragma, radial, melodia e bom-dia!: dia \bdia dia\b \bdia\b dia, diafragma, radial, melodia, bom-dia! dia, diafragma, bom-dia! dia, melodia, bom-dia! dia, bom-dia!

Assim vimos que a borda fora um comeo ou termino de palavra. Entenda que "palavra" aqui um conceito que engloba [A-Za-z0-9_] apenas, ou seja, letras, nmeros e o sublinhado. Por isso \bdia\b tambm casa bom-dia! pois o trao e a exclamao no so parte de uma palavra. Dependendo do aplicativo, o sublinhado no faz parte de uma palavra. Logo

A borda marca os limites de uma palavra O conceito "palavra" engloba letras, nmeros e o sublinhado A borda til para casar palavras exatas e no parciais

2011 Alfamidia Prow

135

Conceitos, Instalao e Administrao de Sistemas Linux

Outros
meta mnemnico funo --------------------------------------------------------------\c escape torna literal o caractere c | ou ou um ou outro (...) grupo delimita um grupo \1...\9 retrovisor texto casado nos grupos 1...9

Os outros metacaracteres, tm funes especficas e no relacionadas entre si, portanto no podem ser agrupados em outra classe fora a tradicional "outros". Mas ateno, isso no quer dizer que eles so inferiores, pelo contrrio, o poder das ERs multiplicado com seu uso e um mundo de possibilidades novas se abre a sua frente.

Escape: \
No caso da necessidade do uso do * literal, o que fazer? Se voc est atento, lembrar que a lista tem suas prprias regras e que dentro da lista, todo mundo normal! Para no precisar ficar toda hora criando listas de um nico componente s para tirar seu valor especial, temos o metacaractere \, que "escapa" um metacaractere. Escapando, \* igual a [*] que igual a um asterisco literal. Similarmente podemos escapar todos os metacaracteres j vistos: \., \[ , \], \?, \+ , \{, \}, \^ e \$. E para voc ver como so as coisas, o escape to poderoso que pode escapar a si prprio! O \\ casa uma barra invertida \ literal. Escapar um circunflexo ou cifro somente necessrio caso eles estejam em suas posies especiais, como casar o texto ^destaque^, em que ambos os circunflexos so literais, mas o primeiro ser considerado uma ncora de comeo de linha caso no esteja escapado. Logo:

O escape escapa um metacaractere, tirando seu poder. \* = [*] = asterisco literal. O escape escapa o escape, escapando-se a si prprio simultaneamente.

Ou: |
muito comum em uma posio especfica termos mais de uma alternativa possvel. boa-tarde|boa-noite O ou, representado pela barra vertical |, serve para esses casos em que precisamos dessas alternativas. Essa ER se l: "ou boa-tarde, ou boa-noite", ou seja "ou isso ou aquilo". Lembre que a lista tambm uma espcie de ou, mas apenas para uma letra, ento: [gpr]ato e gato|pato|rato So similares, embora nesse caso em que apenas uma letra muda entre as alternativas, a lista a melhor escolha. Em outro exemplo, o ou til tambm para casarmos um endereo de Internet, que pode ser uma pgina, ou um stio FTP
2011 Alfamidia Prow

136

Conceitos, Instalao e Administrao de Sistemas Linux

http://|ftp:// Logo

O ou indica alternativas. Lista para um caractere, ou para vrios. O grupo multiplica o poder do ou.

Grupo: (...)
Dentro de um grupo podemos ter um ou mais caracteres, metacaracteres e inclusive outros grupos! Como em uma expresso matemtica, os parnteses definem um grupo, e seu contedo pode ser visto como um bloco na expresso. Todos os metacaracteres quantificadores que vimos anteriormente, podem ter seu poder ampliado pelo grupo, pois ele lhes d mais abrangncia. E o ou, pelo contrrio, tem sua abrangncia limitada pelo grupo, e pode parecer estranho, mas essa limitao que lhe d mais poder. Note que o grupo no altera o sentido da ER, apenas serve como marcador. Podemos criar subgrupos tambm, ento imagine que voc esteja procurando o nome de um supermercado em uma listagem e no sabe se este um mercado, supermercado ou um hipermercado.
(super|hiper)mercado

Consegue casar as duas ltimas possibilidades, mas note que nas alternativas super e hiper temos um trecho per comum aos dois, ento poderamos colocar apenas as diferenas su e hi:
(su|hi)permercado

Precisamos tambm casar apenas o mercado sem os aumentativos, ento temos de agrup-los e tornlos opcionais:
((su|hi)per)?mercado

No caso de minimercado:
(mini|(su|hi)per)?mercado

Logo

Grupos servem para agrupar. Grupos so muito poderosos. Grupos podem conter grupos. Grupos so quantificveis.

Retrovisor: \1 ... \9
J vimos o poder do grupo, e vrias utilidades em seu uso. Ao usar um (grupo) qualquer, voc ganha um brinde, e muitas vezes nem sabe. O brinde o trecho de texto casado pela ER que est no grupo, que fica guardado em um cantinho especial, e pode ser usado em outras partes da mesma ER!

2011 Alfamidia Prow

137

Conceitos, Instalao e Administrao de Sistemas Linux

Como o nome diz, retrovisor porque ele "olha pra trs", para buscar um trecho j casado. Isso muito til para casar trechos repetidos em uma mesma linha. Veja bem, o trecho de texto, e no a ER. Como exemplo, em um texto sobre passarinhos, procuramos o quero-quero. Podemos procurar literalmente por quero-quero , mas vamos usar o grupo e o retrovisor para fazer isso:
(quero)-\1

Ento o retrovisor \1 uma referncia ao texto casado do primeiro grupo, nesse caso quero. O retrovisor pode ser lembrado tambm como um link ou um ladro, pois copia o texto do grupo. Mas esse \1 no o tal do escape? Acima vimos que o escape \ servia para tirar os poderes do metacaracter seguinte. Ento, a essa definio agora inclumos: a no ser que este prximo caractere seja um nmero de 1 a 9, ento estamos lidando com um retrovisor. Podemos ter no mximo 9 retrovisores por ER, ento \10 o retrovisor nmero 1 seguido de um zero. Alguns aplicativos novos permitem mais de nove. O verdadeiro poder do retrovisor quando no sabemos exatamente qual texto o grupo casar. Vamos estender nosso quero para "qualquer palavra":
([A-Za-z]+)-\1

Mais detalhes Como j dito, podemos usar no mximo nove retrovisores.


(lenta)(mente) \2 \1 ((band)eira)nte \1 \2a in(d)ol(or) sem \1\2 ((((a)b)c)d)-1 = \1,\2,\3,\4 lentamente mente lenta bandeirante bandeira banda indolor sem dor abcd-1 = abcd,abc,ab,a

Conte somente os parnteses que abrem, da esquerda para a direita. Este vai ser o nmero do retrovisor. E o contedo o texto casado pela ER do parntese que abre at seu correspondente que fecha. O retrovisor referencia o texto casado e no a ER do grupo. Nos nossos exemplos acima ocorre a mesma coisa porque a ER dentro do grupo j o prprio texto, sem metacaracteres. Veja, entretanto, que ([0-9])\1 casa 66 mas no 69. Apenas como lembrete, algumas linguagens e programas, alm da funo de busca, tm a funo de substituio. O retrovisor muito til nesse caso, para substituir "alguma coisa" por "apenas uma parte dessa coisa", ou seja, extrair trechos de uma linha.

2011 Alfamidia Prow

138

Conceitos, Instalao e Administrao de Sistemas Linux

Logo

O retrovisor s funciona se usado com o grupo. O retrovisor serve para procurar palavras repetidas. Numeram-se retrovisores contando os grupos da esquerda para a direita. Temos no mximo 9 retrovisores por ER.

Linguagens de programao
Vrias linguagens de programao possuem suporte s expresses regulares, seja nativo, como mdulo importvel, como biblioteca carregvel, como objeto instancivel, como ... Ou seja, opes h vrias. Como cada linguagem tem sua maneira especfica de receber e tratar ERs, vamos dar uma geral nas mais usadas.

Awk
caracterstica como fazer -------------------------------------busca funo match substituio funes sub, gensub diviso funo split ER crua /entre barras/ ignore M/m varivel IGNORECASE global funo gsub, opo "g"

AWK uma linguagem antiga (1977) que combina processamento de texto com estruturas de uma linguagem genrica, possuindo condicionais, operaes aritmticas e afins. Temos cinco funes que utilizam ERs no AWK: match, sub, gsub, gensub e split. Em todas elas, para ignorar a diferena entre maisculas e minsculas, basta definir algum valor para a varivel IGNORECASE, que vazia por padro e, para colocar a ER no formato cru basta coloc-la entre /barras/. As funes sub e gsub no retornam o texto alterado, e sim o nmero de substituies efetuadas. E ainda, o texto alterado gravado diretamente na prpria varivel que continha o texto original. Uma grande limitao de ambas as funes que elas no tm suporte a retrovisores.
texto = "a1b2c3" n = gsub("[0-9]", ".", texto) print n,texto

Esse trecho de cdigo imprime 3 a.b.c., ou seja, o nmero de substituies efetuadas, seguido do texto modificado. A diferena entre as duas que sub troca s a primeira ocorrncia e gsub global, troca todas. Mas como essas funes so muito chatas de usar, no AWK da GNU tem uma melhor, a gensub. Esta normal, retorna o texto modificado, no regrava a varivel com o texto original, a globalidade do comando definida com um argumento (g ou um nmero), e tem suporte a retrovisores. Veja um exemplo completo:

2011 Alfamidia Prow

139

Conceitos, Instalao e Administrao de Sistemas Linux print gensub(/(\w)/, "\\1.", "g", "abc")

A ER \w, que casa um caractere componente de uma palavra, est no formato cru, alm de agrupada. A substituio do trecho casado feita pelo contedo do grupo 1, seguido de um ponto literal. Note que o escape do nmero um est duplicado, pois como apenas a ER pode ser colocada no formato cru, esse texto primeiro ser interpretado pela linguagem, para depois ser mandado funo gensub. Segue o g que indica que uma substituio global e por fim, o texto original a ser alterado. O resultado da substituio a.b.c., O AWK da GNU encontrada no repositrio da GNU:

http://www.gnu.org/software/gawk/gawk.html news://comp.lang.awk

grep
O comando

grep o mais comum para realizar buscas por expresses regulares em textos.

Carcteres especiais em expresses regulares: ^ Comeo de linha $ Fim de linha . Qualquer carcter * Qualquer sequencia de zero ou mais caracteres [ ] Qualquer carcter que esteja presente nos colchetes Exemplos - Mostra apenas as linhas que comeam com o carcter # do arquivo: /etc/lilo.conf.
$ grep '^#' /etc/lilo.conf

Mostra linhas de /etc/lilo.conf que contenham o termo hda ou hdb:


$ grep 'hda[ab]' /etc/lilo.conf

2011 Alfamidia Prow

140

Conceitos, Instalao e Administrao de Sistemas Linux

Mais opes de grep: -c Conta as linhas contendo o padro. -i Ignora a diferena entre maisculas ou minsculas. -f Usa a expresso regular contida no arquivo indicado por essa opo. -n Procurar somente na linha indicada por essa opo. -v Mostra todas as linhas exceto a que corresponder ao padro. Exemplo: Mostrar apenas linhas contendo caracteres (inverter a busca por linhas que no possuam caracteres)
$ grep -v '^$' /etc/lilo.conf

sed
O comando sed mais utilizado para procurar e substituir padres em textos, mostrando o resultado em stdout. Sintaxe do sed: sed [opes] comando e expresso regular [arquivo original] No sed, a expresso regular fica circunscrita entre barras /. Exemplo:
$ sed -e '/^#/d' /etc/lilo.conf

Mostra o arquivo /etc/lilo.conf sem linhas comeadas por # (linhas de comentrio). A letra d ao lado da expresso regular e um comando sed que indica a excluso de linhas contendo o respectivo padro. Exemplo: substituir o termo hda por sdb: $ sed -e 's/hda/sdb/g' /etc/lilo.conf Exemplo: Entre as linhas 14 e 21, substituir a palavra runlevel por rl:
$ # # # # sed -n -e '14,21s/runlevel/rl/p' /etc/inittab These are the default rls in Slackware: 2 = unused (but configured the same as rl 3) 3 = multiuser mode (default Slackware rl) 5 = unused (but configured the same as rl 3)

Devido a opo -n, as linhas que no contem a expresso regular no foram mostradas. Opes comuns de sed: -e Executa a expresso e comando a seguir.
2011 Alfamidia Prow 141

Conceitos, Instalao e Administrao de Sistemas Linux

-f L expresses e comandos do arquivo indicado pela opo. -n No mostrar as linhas que no correspondam a expresso. Comandos comuns do sed: s Substituir. d Apagar a linha. r Insere o contedo do arquivo indicado na ocorrncia da expresso. w Escreve a sada no arquivo indicado. g Substitui todas as ocorrncias da expresso na linha atual.

Diferenas de Metacaracteres entre aplicativos


prog opc mais chaves borda ou grupo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ awk ed egrep emacs expect find gawk grep javascript lex mawk perl php python sed tcl vbscript vim ? \? ? ? ? ? ? \? ? ? ? ? ? ? \? ? ? \= + \+ + + + + + \+ + + + + + + \+ + + \+ \{,\} {,} {,} \{,\} {,} {,} {,} {,} {,} \{,\} {,} \{,} \b \b \b \b \<\> \b \b \b \b \b \<\> \b \<\> | \| | \| | \| | \| | | | | | | \| | | \| () \(\) () \(\) () \(\) () \(\) () () () () () () \(\) () () \(\)

NOTA1: . * [] [^] ^ $ e \ so iguais pra todos.

2011 Alfamidia Prow

142

Conceitos, Instalao e Administrao de Sistemas Linux

Resumo dos Metacaracteres e seus detalhes


meta mnemnico dicas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . [] ponto lista curinga de um caractere dentro todos so normais, trao intervalo ASCII, [:POSIX:] tem acentuao sempre casa algo, [^[:POSIX:]] guloso, 0 ou 1, pode ter ou no guloso, 0 ou mais, repete em qualquer quantidade guloso, 1 ou mais, repete em qualquer quantidade, pelo menos uma vez guloso, nmero exato, mnimo, mximo, ou uma faixa numrica casa o comeo da linha, especial no comeo da ER casa o fim da linha, especial no fim da ER limita uma palavra (letras, nmeros e sublinhado) escapa um meta, tira seu poder escapa a si mesmo \\ indica alternativas, poder multiplicado pelo grupo agrupa, quantificvel, pode conter outros grupos usado com o grupo, mximo 9, conta da esquerda para direita qualquer coisa, o tudo e o nada no-guloso, 0 ou 1, casa o mnimo possvel no-guloso, 0 ou mais, casa o mnimo possvel no-guloso, 1 ou mais, casa o mnimo possvel no-guloso, numrico, casa o mnimo possvel

[^] ? * +

lista negada opcional asterisco mais

{,} ^ $ \b \ | () \1 .* ?? *? +? {}?

chaves circunflexo cifro borda escape ou grupo retrovisor curinga opcional asterisco mais chaves

2011 Alfamidia Prow

143

Conceitos, Instalao e Administrao de Sistemas Linux

Caracteres ASCII imprimveis


32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 161 ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 o 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

2011 Alfamidia Prow

144

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 15.Backup
Os Backups so parte importante da administrao de qualquer servidor. Por mais confivel que seja a mquina, desastres acontecem, sem falar na possibilidade de erro humano. Diferente de um desktop onde voc pode simplesmente fazer uma imagem do seu HD usando ferramentas de particionamento, nos servidores os backups na maioria das vezes, so feito a quente, isto , com o servidor em pleno funcionamento, sem a possibilidade de uma parada e com a carga total. A dificuldade cresce quando alm dos arquivos e pastas, tambm se faz necessrio salvar arquivos de configurao, bases de dados do MySQL entre outros. As principais pastas que recomendamos o backup so: /var/www: Em servidor web, a pasta com as pginas sempre o diretrio mais importante, j que nele que residem a maior parte dos arquivos dos usurios. /var/lib/mysql: Este o diretrio padro para as bases de dados do MySQL, que em muitos casos so to ou mais importantes que as pastas dos sites propriamente ditos. Embora seja associado ao uso em servidores web, o MySQL pode ser usado para os mais diversos tipos de tarefas. /home: Se voc configurou os virtuais hosts do Apache para utilizarem pastas dentro do diretrio home dos usurios, ele assume o posto de diretrio essencial, no lugar da pasta /var/www. O home tambm importante caso seja usado para armazenar o spool de e-mails, no caso de servidores de arquivos ou em servidores de acesso remoto. /etc: importante por conter as configuraes do servidor, todas concentradas na pasta /etc, caso contrrio voc vai passar trabalho tentando se lembrar das configuraes, contas de usurios e outras informaes ao reconfigurar o servidor aps algum desastre. /var/log: Os logs do sistema tambm so importantes. Em muitos casos existem normas administrativas ou at mesmo normas legais que tornam obrigatrio a manuteno das logs de acesso por longos perodos, da a necessidade de inclu-los. A documentao do servidor de suma importncia na hora da recupeo, mantenha sempre atualizada sua documentao tais como: tamanho e nome das parties (VGS), relao dos discos e seus tamanhos, nome dos file systems, listagem de usurios, cron etc.. Aps definirmos os diretrios, falta definir o tipo de mdia qu iremos utilizar. Antigamente as unidades de fita eram as mais utilizadas para bacups de grande volume. Suas principais caractersticas eram a grande capacidade, combinada coma confiabilidade a um custo relativamente baixo. Utilitrios como o tar foram originalmente desenvolvidos para facilitarem os backups em fita, gerando um nico arquivo contendo todos os dados, que ra ento gravado na fita de forma sequencial. Um exemplo do tar
# tar cvf /dev/sto /var/www

Isso prtico enquanto pudermos armazenar os backups dirios em uma nica fita, ou na possibilidade de ter uma unidade com carregador automtico. Claro sempre podemos dividir o backup em vrios volumes e salv-lo em fitas separadas, mas aumenta a complexidade de administrao e o custo.
2011 Alfamidia Prow 145

Conceitos, Instalao e Administrao de Sistemas Linux

J podemos encontrar no mercado solues com mdias de at 800Gb reais ( ou 1.6TB comprimidos, mas ainda sim o seu custa bem elevado, o que torna a soluo de cpia em HDs uma opo muito mais atrativa, j que existem no mercado HDs de 1 TB a preos competitivos. Surge ento o NAS (Network-Attached Storage), um servidor de arquivos dedicado, que frequentemente utiliza vrios HDs em RAID (Redundant Array of Inexpensive Disks) para recebimento dos arquivos. Com isso todo o trabalho manual de trocar as fitas ou plugar e desplugar HDs externos eliminado e as rotinas de backup tornam-se um processo altamente automatizado. Exitem tambm casos em que os volumes de dados a armazenar so pequenos, o que torna vivel utilizar DVDs ou mesmo CD-ROMs para a realizao dos backups. Outra vantagem que este tipo de mdia possue uma boa longevidade, que quando armazenadas adequadamente (em ambientes sem luz e com baixa umidade) podem durar perto de 20 anos.

2011 Alfamidia Prow

146

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 16.Raid
Diviso de Dados
No mercado exitem hoje vrios modelos de placas-mes com um recurso adicional chamado RAID que significa Redundant Array of Independent Disks, ou conjunto reduntante de discos independentes. O sistema RAID consiste em um conjunto de dois ou mais discos rgidos com dois objetivos bsicos: tornar o sistema de disco mais rpido (isto , acelerar o carregamento de dados do disco), atravs de uma tcnica chamada diviso de dados (data stripping ou RAID 0) e/ou tornar o sistema de disco mais seguro, atravs de uma tcnica chamada espelhamento (mirroring ou RAID 1). Essas duas tcnicas podem ser usadas isoladamente ou em conjunto. Vamos falar primeiro na diviso de dados. Imagine um servidor equipado com dois discos rgidos iguais. Em um servidor comum, sem RAID, um disco acessado independentemente do outro. Na tcnica de diviso de dados, os dois discos rgidos faro parte de um mesmo conjunto, fazendo com que o servidor "pense" que os dois discos rgidos um s disco maior. Se os dois discos so de 20 GB, ento o servidor "pensar" que existe um disco rgido nico de 40 GB instalado no servidor. Na hora de gravar um arquivo no disco, o sistema RAID ir dividi-lo entre os dois discos rgidos, gravando metade em um disco e a outra metade no outro disco. Tudo isso feito sem que o usurio perceba. No sistema de disco tradicional, um arquivo de 200 KB ser gravado por inteiro em um s disco, usando o nico canal de comunicao existente. No caso da diviso de dados, esse arquivo ser dividido em dois de 100 KB, sendo que cada um ser gravado em um dos discos existentes ao mesmo tempo. Logo, o ganho ser no tempo de gravao desse arquivo que levar metade do tempo para ser gravado. S que o sistema RAID no limitado a apenas dois discos rgidos. Podemos, em princpio, colocar quantos discos quisermos. Nesse mesmo exemplo, se usarmos quatro discos iguais em vez de um, o servidor "pensar" que os quatro discos so apenas um e dividir automaticamente o arquivo em quatro, quadruplicando a velocidade de leitura e gravao do arquivo. claro que quanto mais discos colocarmos, mais caro fica o sistema. Mas aplicaes que manipulam arquivos grandes, como a edio profissional de udio e vdeo, esse sistema torna-se realmente muito vantajoso, pois a mquina passa a ficar muito mais rpida para ler e gravar os arquivos. Lembramos que toda essa diviso feita "por debaixo dos panos" e o usurio no toma conhecimento que o seu arquivo foi dividido.

2011 Alfamidia Prow

147

Conceitos, Instalao e Administrao de Sistemas Linux

Espelhamento
O espelhamento, tambm chamado RAID 1, faz com que o contedo de um disco rgido seja inteiramente copiado para outro disco rgido, de forma automtica. Ou seja, se voc montar um sistema desse em seu servidor, o segundo disco rgido ser cpia fiel do primeiro disco. Se o seu disco rgido principal queimar, o segundo entra em ao automaticamente. O espelhamento um backup automtico feito por hardware, aumentando a segurana do seu servidor. claro que esse sistema no dispensa o backup (j que pode acontecer de os dois discos rgidos queimarem ao mesmo tempo, embora essa probabilidade seja muito baixa - mas existe). Essa tcnica feita por hardware automaticamente pela placa-me ou placa controladora, no sendo necessrio nenhum tipo de configurao no sistema operacional para que o backup seja efetuado (o sistema "acha" que s h um disco rgido no servidor). A configurao do RAID 1 no precisa ser feita no momento da formatao do disco rgido ou na instalao do sistema operacional. Voc pode pegar um disco contendo dados de anos e iniciar o espelhamento, o contedo do disco rgido principal ser copiado para o disco rgido de backup (procedimento que dispende algum tempo). A diviso de dados e o espelhamento podem ser combinados ao mesmo tempo, em uma configurao normalmente chamada RAID 0+1. Essa configurao necessita de, no mnimo, quatro discos rgidos. A diviso de dados ser usada em dois discos para aumentar a velocidade, enquanto que os outros dois discos sero backup dos dois primeiros. Se um dos discos falhar, o sistema comea agir como um sistema RAID0, ou seja, diviso de dados. Outro sistema, chamado RAID10, combina as caractersticas do RAID0 e RAID1. Ele funciona como o RAID0+1, mas se um disco falhar, o RAID10 faz com que o sistema se torne um sistema RAID1, ou seja, espelhamento. Computadores modernos permitem o uso do RAID0+1 usando apenas dois discos rgidos. Essa configurao chamada JBOD (Just a Bunch of Disk) e funciona usando apenas metade da capacidade de cada disco, simulando assim quatro discos rgidos. Por exemplo, usando dois discos rgidos de 40 GB com configurao RAID JBOD, a capacidade total disponvel ser 20 GB (os outros 20 GB sero usados para fazer o backup dos dados da primeira metade do disco). Claro que o servidor ficar mais lento do que o RAID0+1.

Outros Sistemas RAID


Vimos o bsico: RAID0 (diviso de dados) e RAID1 (espelhamento e que pode ser combinado como RAID0+1, RAID10 ou JBOD). Existem mais opes de RAID, mas que no so to comuns em sistemas RAID IDE, isto , sistemas RAID disponveis em placas-mes voltadas para usurios domsticos. Os sistemas RAID podem ser classificados ainda como: RAID 2: Igual ao RAID 0, porm com esquema de correo de erros (ECC). RAID 3: Igual ao RAID 0, porm usando um disco rgido extra para armazenamento de informaes de paridade, aumentando a confiabilidade dos dados gravados. RAID 4: Similar ao RAID 3, s que mais rpido por usar blocos de dados maiores, isto , os arquivos so divididos em pedaos maiores. RAID 5: Similar ao RAID 3 e 4, s que gravando as informaes de paridade dentro dos prprios discos, isto , sem a necessidade de um disco rgido extra. RAID 53: Igual ao RAID 3, porm usando, no mnimo, 5 discos rgidos para aumento de desempenho. RAID 6: Baseado no RAID 5, o RAID 6 grava uma segunda informao de paridade em todos os discos do sistema, aumentando a confiabilidade.
2011 Alfamidia Prow 148

Conceitos, Instalao e Administrao de Sistemas Linux

RAID 7: Marca registrada da empresa Storage Computer Corporation, usa um disco extra para armazenamento de informaes de paridade. Sua principal vantagem o alto desempenho, usando cache de disco. Pode ser considerado como um RAID 4 com cache de disco.

Implementao
Antigamente o RAID estava disponvel somente para discos rgidos SCSI, que so caros. Nos ltimos anos, empresas como HighPoint, Promise, SiliconImage e ITE lanaram uma srie de chips RAID IDE permitindo que discos rgidos IDE pudessem ser utilizados em sistemas RAID. Os discos rgidos IDE so mais populares e baratos do que os discos SCSI. Esses chips podem ser encontrados em placas de expanso ou embutidos na prpria placa-me. Assim, mesmo que a sua placa-me no possua funo RAID, voc pode instalar uma placa de expanso para aumentar o desempenho e a confiabilidade do seu sistema. Alguns chipsets possuem funo RAID integrada, como o caso dos chipsets mais modernos da Intel (por exemplo, no chipset Intel 915P, mas a ponte sul tem que ser a ICH6R ou ICH6RW para ter este recurso habilitado) e VIA (ponte sul VT8237). Uma placa-me com RAID on-board, possui quatro portas IDE, duas controladas pelo chipset (que no tem a funo RAID, como ocorre com a grande maioria das placas-mes disponveis no mercado) e outras duas portas controladas por um chip extra da ITE chamado GigaRAID IT8212F, e tambm duas portas Serial ATA controlada pelo chip SiliconImage SiI3112. Essas duas portas controladas pelo chip GigaRAID suportam RAID0, RAID1 e RAID0+1. Assim, se voc quiser usar o RAID seu disco rgido tem que ser instalado nessas portas. Voc tambm pode usar estas portas extras como portas IDE convencionais, sem usar a funo RAID que elas oferecem. Todos os nossos exemplos foram dados usando discos rgidos IDE, mas o RAID tambm est disponvel em discos rgidos Serial ATA. Outra opo o RAID atravs de software. Em vez de um chip RAID especial controlando o disco rgido, possvel habilitar um sistema RAID usando um programa apropriado de RAID. A vantagem que barato usar uma soluo RAID baseada em software. Por outro lado, menos confivel do que solues RAID baseadas em hardware. Abaixo voc pode ver uma tabela com os chips RAID mais comuns que vm com placas-mes que implementam esta funo. Chip HighPoint HPT370 HighPoint HPT372 HighPoint HPT374 Promise PDC20275 Promise PDC20276 Promise PDC20378 ITE GigaRAID IT8212F Portas 2x ATA-100 2x ATA-133 4x ATA-133 2x ATA-100 2x ATA-133 1x ATA-133,2x SATA-150 2x ATA-133 Tipos de RAID 0, 1, 0+1 0, 1, 0+1 0, 1, 0+1, JBOD 0, 1 0, 1 0, 1, 0+1 0, 1, 0+1

O fake-RAID o modo utilizado pela maioria das controladoras RAID onboard, sobretudo nos servidors desktop. Nele utilizada uma combinao de funes adicionais no BIOS da placa e um driver que roda pelo sistema operacional. No final tudo processadovia software, de forma que no existe ganho de desempenho em relao a urilizar RAID via software. Apenas a configurao simplificada.
2011 Alfamidia Prow

149

Conceitos, Instalao e Administrao de Sistemas Linux

O procedimento de troca de HDs defeituosos varia de acordo com os recursos oferecidos pela controladora. Ao utilizar RAID via software ou uma controladora fake-RAID, o processo de substituio do HD inteiramente manual. Voce precisa desligar o servidor, substituir o HD, ligar novamente o servidor acessar a interface de gerenciamento e recriar o array, processo bi qual a controladora reconstri os dados usando bits de paridade ( no caso do RAID %) ou copia os dados armazenados no segundo HD (no caso de RAID 1). Ou seja, os dados so presenvados, mas necessrio desativar o servidor temporariamente, o que resulta em downtime. Para permitir que o servidor continue funcionando continuamente, necessrio usar uma controladora dedicada, que oferea suporte hot-swap e seja capaz de reconstruir o array automaticamente aps a substituio do HD defeituoso (recurso chamado de automatic array rebuilding) alm de um gabinete que oferea baias removveis para os HDs. As tr coisas somadas permitem que os HDs sejam substitudos rapidamente, sem desligar o servidor e sem interrupo no servio. Outro recurso desejado o hot drive sparing, que permite utilizar um drive extra (hot-spare), usado automaticamente pela pcntroladora em caso de falha de qualquer um dos drives do array, minimizando a possibilidade de perda de dados.

2011 Alfamidia Prow

150

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 17.Logs
Introduo
Nos sistemas computacionais, quando invadidos, pistas so deixadas, porm, diferente do "mundo real", as pistas esto nos registros de atividades do sistema, o qual denominamos de logs. Melhor ainda, os logs podem desempenhar um papel preventivo, na medida em que podem registrar as eventuais tentativas de ataque. Em sistemas configurados de forma correta, tais "pistas" podero indicar como um atacante invadiu (ou tentou invadir) seu sistema e, eventualmente, lhe dar uma idia de sua identidade.

logs bsicos
Os diretrios comumente usados pelo *UNIX para armazenar logs so: /usr/adm, /var/adm, /var/log, /etc e /etc/security. A localizao exata depende do tipo e da verso do sistema operacional utilizado. A seguir, sero apresentados alguns dos arquivos de logs encontrados em tais diretrios. dada nfase aqueles considerados mais importantes no processo de deteco de intruso.

lastlog
Arquivo binrio que registra o horrio da ltima vez que o usurio tentou acessar o sistema seja com ou sem sucesso. O seu contedo muda a cada login e reportado toda vez que o usurio entrar no sistema ou o comando finger for executado. No Linux, estes registros devem ser explicitamente habilitados configurando a varivel LASTLOG_ENAB do arquivo /etc/login.defs. Recomenda-se configurar as permisses deste arquivo para 644, tendo como dono o usurio root.

utmp/utmpx
Estes arquivos registram informaes, relacionadas aos usurios locais que se encontram conectados no sistema nesse momento. Os dados contidos nestes arquivos so armazenados em formato binrio. Portanto, devero ser lidos usando comandos especficos, tais como: who, whodo, write, finger e ps, os quais reportam as informaes contidas neste arquivo. Recomenda-se configurar como dono o usurio root e as permisses de acesso para 644. Abaixo, mostrado um exemplo de execuo do comando who:
maq0:nina[5]> who nina console Feb 10 15:23 raul pts/1 Feb 10 18:46 (maqA.rnp.br) marcio pts/2 Feb 11 07:42 (maqB.rnp.br) nina pts/3 Feb 11 11:29 (maq1.dominio.rnp.br) nina pts/4 Feb 11 16:04 (maq2.dominio.rnp.br)

2011 Alfamidia Prow

151

Conceitos, Instalao e Administrao de Sistemas Linux

wtmp/wtmpx
Registram dados detalhados sobre uma determinada sesso de usurio. Da mesma forma que os arquivos descritos anteriormente, os dados contidos nestes arquivos so armazenados em formato binrio e legveis unicamente atravs de comandos do tipo: last, acctcom, etc. Recomenda-se configurar as permisses destes arquivos para 644, tendo como dono o usurio root. Parte da sada da execuo do comando last mostrada a seguir:
ftp ftp 200.252.2.100 Mon Feb 12 19:49 - 19:55 (00:06) nina pts/0 maq3.dominio.rnp. Mon Feb 12 18:05 - still logged in reboot system boot Mon Feb 12 18:03 usuario1 pts/3 maq3.dominio.rnp. Mon Feb 12 17:36 - 18:02 (00:25) ftp ftp site1.qqdominio.d Mon Feb 12 15:57 - 16:04 (00:07)

sulog
Registra tentativas de execuo do comando su, tenham sido estas bem ou mal sucedidas. Estes registros so habilitados atravs dos arquivos: /etc/default/su, no Solaris (varivel SULOG) e /etc/login.defs, no Linux (varivel SULOG_FILE). Recomenda-se que este arquivo tenha como dono o usurio root e suas permisses de acesso configuradas para 600.

As seguintes linhas contidas em um arquivo sulog de um sistema Linux, mostram, respectivamente, a execuo mal (-) e bem (+) sucedida do comando su. O usurio admin1 tornou-se root aps uma tentativa falha e o usurio usuario1 tornou-se o usuario2.
SU 02/11 12:24 - ttyp3 admin1-root SU 02/11 12:25 + ttyp3 admin1-root SU 02/11 12:30 + ttyp4 usuario1-usuario2

messages
Arquivo que registra qualquer mensagem enviada ao console, tendo sido ela gerada pelo kernel do sistema ou por algum mecanismo de logging tal como o syslog. Recomenda-se que este arquivo tenha como dono o usurio root e suas permisses de acesso configuradas para 400. A seguir, mostra-se parte de um arquivo messages:

Aug Aug Aug Aug Aug

26 26 26 27 27

11:27:47 11:27:48 11:28:03 02:04:44 15:54:35

maq5 maq5 maq5 maq5 maq5

lpd[102]: restarted /kernel: ed1: device timeout last message repeated 2 times inetd[835]: login_getclass: unknown class 'root' login: login_getclass: unknown class 'root'
2011 Alfamidia Prow 152

Conceitos, Instalao e Administrao de Sistemas Linux Aug 27 15:54:37 maq5 login: ROOT LOGIN (root) ON ttyv0

loginlog
Registra tentativas falhas de acesso a um sistema o Linux, preciso configurar a varivel FAILED_LOG do arquivo /etc/login.defs. Para gerar logs de entrada neste arquivo, preciso indicar o nmero mnimo de tentativas consecutivas sem sucesso. "Por default," este nmero de cinco, mas ele pode ser alterado. No Linux isto feito atravs do arquivo /etc/login.defs (varivel LOGIN RETRIES). Recomenda-se configurar as permisses deste arquivo como 600, tendo como dono o usurio root.

A seguir, mostrado parte do contedo de um arquivo loginlog, onde foi configurado como sendo trs, o nmero mnimo de tentativas sem sucesso.
usuario1:/dev/pts/9:Wed usuario1:/dev/pts/9:Wed usuario1:/dev/pts/9:Wed usuario5:/dev/pts/9:Wed usuario5:/dev/pts/9:Wed usuario5:/dev/pts/9:Wed Dec Dec Dec Apr Apr Apr 2 16:06:12 1998 2 16:06:19 1998 2 16:06:26 1998 01 09:06:33 1999 01 09:06:39 1999 01 09:06:39 1999

Syslog
Sistema de registro de mensagens de logs incorporado em todas as verses modernas de *UNIX. O syslog implementa um mecanismo onde cada mensagem de log est associada a uma facilidade e a uma prioridade. A primeira especifica o programa ou aplicao que gera tal mensagem, enquanto que a segunda indica a prioridade com a qual a mesma deve ser atendida. Ao ser inicializado o daemon syslogd, ele l seu arquivo de configurao (geralmente, o /etc/syslog.conf), a fim de determinar o tipo de eventos que o syslog dever registrar e o lugar onde estes eventos devero ser registrados. O arquivo syslog.conf composto por entradas que seguem o formato abaixo (vale lembrar que os campos devem, necessariamente, estar separados por caracteres de tabulao - TABs): facilidade.prioridade destino De acordo com o tipo e a prioridade da mensagem recebida, o daemon syslogd executar a ao indicada no campo destino: armazenando tal mensagem em um arquivo especfico, enviando alertas a um determinado usurio (ou ao console), ou, ainda, enviando a mensagem a outro servidor de logs remoto (conhecido como loghost ). No inteno de este artigo aprofundar-se na variedade de "prioridades" e "facilidades" suportadas pelo syslog e, de modo geral, na configurao do arquivo syslog.conf, mesmo porque existem
2011 Alfamidia Prow

153

Conceitos, Instalao e Administrao de Sistemas Linux

nuances entre as diversas implementaes UNIX. Cabe ao leitor consultar as pginas do manual que tratam deste arquivo para obter maiores detalhes. Para fins de ilustrao, apresentado o contedo de um arquivo de configurao tpico:
# Exemplo de um arquivo de configurao do syslog # em uma mquina com Solaris. # # /etc/syslog.conf # *.err;kern.notice;auth.notice /dev/console *.alert; user.none root *.emerg; user.none * *.debug @loghost

A primeira linha indica que todas as mensagens de erros [prioridade err] (ou de prioridade maior) sero enviadas ao console do sistema, junto com as mensagens geradas pelo kernel [kern] e pelo processo de autorizao/segurana [auth] que tenham prioridade notice [notice] (ou de prioridade maior). A segunda entrada do arquivo indica que todas as mensagens de alerta [alert] (ou de prioridade maior), exceto as geradas pelo usurio [user], sero enviadas ao terminal do usurio root. Adicionalmente, qualquer mensagem de emergncia [emerg] ser difundida a todos os usurios que estiverem conectados nesse momento. Por ltimo, qualquer outra mensagem ser enviada ao loghost (mquina que centraliza os logs).

logs gerados por alguns servios de rede


Nesta seo, pretende-se apresentar alguns dos arquivos de logs especficos que so utilizados por servios de rede, atendo-se em explicar brevemente como habilitar os logs nestes servios. A ttulo de ilustrao, sero considerados apenas os servios mais "expostos" (e, portanto, mais vulnerveis) na Internet. Em particular, para este artigo, se trabalhar com os seguintes servidores: Apache (HTTP), Sendmail (MAIL), Bind8 (DNS) e WU-FTP (FTP).

Servio de transferncia de arquivos (ftp) (20/21)


Em particular, o servidor WU-FTP permite registrar informaes bastante teis. Dentre elas, destacam-se por auxiliar na tarefa de deteco de intruso, os seguintes tipos de logs: * logs dos arquivos transferidos de/para o sistema (informaes armazenadas no arquivo xferlog); * logs dos comandos FTP executados durante uma sesso; * logs dos usurios que estiveram ou esto atualmente acessando o servidor FTP. O exemplo a seguir representa uma entrada registrada no arquivo xferlog aps a transferncia de um arquivo. Nela um usurio annimo, a partir da mquina maq.dominio.com.br, faz o download do arquivo security_tools, disponibilizado no servidor FTP pblico.
Fri May 8 21:45:30 1998 1 maq.dominio.com.br 12422 /pub/info/papers/cert/security_tools b _ o a mozilla@ ftp 0 *

2011 Alfamidia Prow

154

Conceitos, Instalao e Administrao de Sistemas Linux

Se as mensagens de logs, geradas via syslog, so enviadas a um arquivo especfico, tal como o ftplog, recomenda-se que este tenha como dono o usurio root e as suas permisses de acesso configuradas para 600. O mesmo vale para o arquivo xferlog.

Servio de correio eletrnico (mail)


O mecanismo utilizado pelo Sendmail para gerar as suas mensagens de logs o syslog , descrito anteriormente. A facilidade padro destas mensagens mail (varivel LOG_MAIL). A prioridade definida pela opo LogLevel, a qual, a partir das verses 8.9.X, vem configurada para 9, o que equivale prioridade info. Considera-se esta configurao default, no mnimo, adequada. A seguir, so mostradas as duas entradas de logs geradas pelo Sendmail ao ser enviada uma mensagem electrnica pelo usurio nina@cais.rnp.br para o usurio billgates@microsoft.com. Estes logs foram registrados no maillog, arquivo geralmente usado pelo syslog para armazenar mensagens geradas pelo Sendmail.
Apr 18 15:50:14 mx-cais sendmail[25838]: PAA25838: from=< nina@cais.rnp.br >, size=1127, class=0, pri=61127, nrcpts=2, msgid= < Pine.SOL.3.96.990518154928.25280D-100000@cais1 >, proto=SMTP, relay=nina@mx.cais.rnp.br [200.144.121.33] Apr 18 15:50:59 mx-cais sendmail[25840]: PAA25838: to=< billgates@microsoft.com >, ctladdr=< nina@cais.rnp.br > (101/100), delay=00:00:45, xdelay=00:00:44, mailer=esmtp, relay=mx.microsoft.com. [131.107.3.125], stat=Sent (PAA18294 Message accepted for delivery)

Se as mensagens de logs forem enviadas para um arquivo especfico, tal como o maillog, recomendase que este arquivo tenha como dono o usurio root e as suas permisses de acesso configuradas para 600.

Servio de resoluo de nomes (dns) (53)


Um dos aspectos que recebeu mais ateno na verso Bind8 foi, justamente, o relacionado ao mecanismo de logging. Esta verso implementa um sistema totalmente categorizado. Atravs da diretiva logging possvel configurar uma srie de opes no servidor de nomes. ela que especifica o que o servidor DNS dever registrar e onde tais mensagens de logs devero ser enviadas. No se pretende entrar em detalhes de como configurar esta diretiva, cabe ao leitor consultar a documentao que acompanha a distribuio do pacote Bind8, ou a documentao on line na seguinte URL: http://www.isc.org/bind8.2/logging.html. No entanto, para fins de ilustrao, apresentado a seguir um exemplo de configurao desta diretiva: // // Arquivo /etc/named.conf // // ... // // [incio do trecho] // logging { channel default_log {
2011 Alfamidia Prow 155

Conceitos, Instalao e Administrao de Sistemas Linux

file "/var/log/bindlog" size 5M versions 4; severity info; print-time yes; print-category yes; print-severity yes; }; category lame-servers { null; }; category cname { null; }; category default { default_log; }; }; // [fim do trecho] As linhas acima especificam que, exceto as mensagens da categoria "lame-servers" e "cname" que sero descartadas, todas as outras mensagens sero enviadas ao arquivo /var/log/bindlog. As mensagens de logs devero incluir o horrio, categoria e severidade respectivos. A seguir, apresentado um exemplo dos logs gerados pela configurao acima:
16-Apr-1999 07:13:57.425 response-checks: info: bad referral (arpa !<<br/> 52.136.200.in-addr.arpa) 16-Apr-1999 08:03:48.463 maintenance: info: Cleaned cache of 5 RRs 16-Apr-1999 08:03:48.468 statistics: info: USAGE 924260628 923951026 CPU=6.35801u/2.85031s

Se as mensagens de logs geradas via syslog forem enviadas para um arquivo especfico, tal como o bindlog, recomenda-se que este arquivo tenha como dono o usurio root e as suas permisses de acesso configuradas para 600.

Servio de web (http) (80)


O servidor Apache prov dois arquivos de logs: access_log e error_log. Atravs do arquivo access_log, possvel determinar os hosts e usurios que acessaram o servidor Web, os arquivos requisitados, os horrios em que tais requisies foram feitas e, ainda, o estado de tais requisies. O arquivo error_log contm informao respeito dos erros encontrados e o estado do servidor Web (inicializao e finalizao). Ambos podem ser habilitados e desabilitados a partir de diretivas especficas no arquivo de configurao httpd.conf. O servidor httpd permite definir onde sero armazenados estes arquivos. Geralmente, eles ficam no diretrio logs. Recomenda-se, por um lado, que este diretrio tenha como dono e grupo o root, e suas permisses de acesso configuradas para 755; por outro lado, que os arquivos contidos nele tenham igualmente o usurio root como dono e as suas permisses de acesso configuradas para 600. A seguir, um exemplo de uma entrada no arquivo de logs (access_log) do servidor www.cais.rnp.br, onde o documento index.html foi acessado com sucesso a partir da mquina cache.dominio.rnp.br.
cache.dominio.rnp.br - - [02/Dec/1998:16:37:24 -0200] "GET /index.html HTTP/1.0" 200 4169

Por outro lado, num acesso mal sucedido a um outro documento (index2.html), o arquivo error_log registrou a seguinte entrada:
[Wed Dec 02 16:37:25 1998] access to /dir_raiz_doc/index2.html failed for cache.dominio.rnp.br, reason: File does not exist

2011 Alfamidia Prow

156

Conceitos, Instalao e Administrao de Sistemas Linux

De modo geral, qualquer servio de rede inicializado pelo super daemon inetd (tais como: popd, imapd, ftpd, telnetd, sshd, etc) podem gerar suas mensagens de logs atravs da conhecida ferramenta TCP Wrappers, via syslog. Complementando as sees anteriores, importante mencionar que existem diversos tipos de logs que auxiliam na tarefa de deteco de intruso, tais como: * Logs de firewall (logs do IPFW, logs do IP-Filter, logs do IP Chains, logs do Cisco, etc) * Logs de atividade do usurio (.bash_history, .history, sh_history, etc) * Logs gerados por um analisador de trfego (tcpdump, por exemplo) * Logs gerados por sistemas de deteco de intruso (nfr, por exemplo)

2011 Alfamidia Prow

157

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 18.Inicializao
Quando um sistema efetua boot pela primeira vez, o processador executa um cdigo em um local conhecido. Em um Computador Pessoal (PC), esse local o Sistema Bsico de Entrada/Sada (BIOS), que est armazenado na memria flash, na placa-me. A Unidade Central de Processamento (CPU) em um sistema embarcado solicita ao vetor de reconfigurao que inicie um programa em um endereo conhecido em flash/ROM. Nos dois casos, o resultado o mesmo. Como os PCs oferecem bastante flexibilidade, o BIOS precisa determinar quais dispositivos so candidatos ao boot. Examinaremos isso posteriormente com mais detalhes. Quando um dispositivo de boot encontrado, o loader de boot de primeiro estgio carregado na RAM e executado. Esse loader de boot tem menos de 512 bytes (um nico setor), e sua tarefa carregar o loader de boot de segundo estgio. Quando o loader de boot de segundo estgio est na RAM e em execuo, uma tela inicial geralmente exibida e o Linux e o disco RAM inicial opcional (sistema de arquivo raiz temporrio) so carregados na memria. Quando as imagens so carregadas, o loader de boot de segundo estgio passa o controle para a imagem do kernel e o kernel descompactado e inicializado. Neste estgio, o loader de boot de segundo estgio verifica o hardware do sistema, enumera os dispositivos de hardware anexados, monta o dispositivo raiz e, em seguida, carrega os mdulos de kernel necessrios. Ao ser concludo, o primeiro programa de espao de usurio (init) inicia e a inicializao do sistema de alto nvel executada. Em resumo, assim que funciona o boot do Linux. Agora vamos prosseguir e explorar alguns dos detalhes do processo de boot do Linux.

Inicializao do Sistema
O estgio de inicializao do sistema depende do hardware no qual o Linux est efetuando boot. Em uma plataforma integrada, um ambiente de autoinicializao utilizado quando o sistema ligado ou reconfigurado. Como exemplos, temos U-Boot, RedBoot e MicroMonitor da Lucent. As plataformas integradas normalmente vm de fbrica com um monitor de boot. Esses programas residem em uma regio especial da memria flash no hardware de destino e fornecem os meios para fazer download de uma imagem do kernel Linux na memria flash e, em seguida, execut-la. Alm da capacidade de armazenar e executar boot em uma imagem do Linux, esses monitores de inicializao executam alguns nveis de teste do sistema e a inicializao do hardware. Em um destino embarcado, esses monitores de inicializao costumam abranger os loaders de boot de primeiro e de segundo estgios. Para inicializar um sistema operacional, o tempo de execuo do BIOS procura por dispositivos ativos e inicializveis na ordem de preferncia definida pelas configuraes de Complementary Metal Oxide Semiconductor (CMOS). Um dispositivo de boot pode ser um disco flexvel, um CD-ROM, uma partio de um disco rgido, um dispositivo na rede ou at mesmo um memory stick flash USB. Normalmente, o Linux tem boot executado a partir de um disco rgido, onde Master Boot Record (MBR) contm o loader de boot primrio. O MBR um setor de 512 bytes, localizado no primeiro setor do disco (setor 1 do cilindro 0, cabeote 0). Depois que o MBR carregado na RAM, os campos do BIOS o controlam.

2011 Alfamidia Prow

158

Conceitos, Instalao e Administrao de Sistemas Linux

Loader de Boot de Estgio 1


O loader de boot primrio, que reside no MBR, uma imagem de 512 bytes contendo o cdigo do programa e uma pequena tabela de partio. Os primeiros 446 bytes so o loader de boot primrio, que contm o cdigo executvel e um texto de mensagem de erro. Os 64 bytes seguintes formam a tabela de partio, que contm um registro para cada uma das quatro parties (cada uma com 16 bytes). O MBR termina com dois bytes, que so definidos como o nmero mgico (0xAA55). O nmero mgico funciona como verificao de validao do MBR. A funo do loader de boot primrio encontrar e carregar o loader de boot secundrio (estgio 2). Isso feito consultando a tabela particionada de uma partio ativa. Ao localizar uma partio ativa, ele faz uma varredura das parties restantes na tabela, a fim de certificar-se de que todas esto inativas. Quando isso verificado, o registro de boot da partio ativa lido a partir do dispositivo para a RAM e executado.

Loader de Boot de Estgio 2


O loader de boot secundrio, ou de segundo estgio, pode ser chamado de loader de kernel. Neste estgio, sua tarefa carregar o kernel Linux e o disco RAM inicial opcional. Os loaders de boot de primeiro e segundo estgios combinados so chamados de Linux Loader (LILO) ou GRand Unified Bootloader (GRUB) no ambiente x86 do PC. Como o LILO apresenta algumas desvantagens que foram corrigidas no GRUB, vejamos o GRUB. O GRUB inclui o conhecimento dos sistemas de arquivo Linux. Em vez de utilizar setores brutos no disco, como o LILO faz, o GRUB pode carregar um kernel Linux a partir de um sistema de arquivos ext2 ou ext3. Quando o estgio 2 estiver carregado, o GRUB poder, mediante solicitao, exibir uma lista dos kernels disponveis (definidos em /etc/grub.conf, com soft links de /etc/grub/menu.lst e /etc/grub.conf). possvel selecionar um kernel e at edit-lo com parmetros adicionais de kernel. Opcionalmente, possvel utilizar shell de linha de comandos para obter um maior controle manual sobre o processo de boot. Com o loader de boot de segundo estgio na memria, o sistema de arquivos consultado e a imagem de kernel padro e a imagem initrd so carregadas na memria. Com as imagens prontas, o loader de boot de estgio 2 chama a imagem de kernel.

Grub - gerenciador de inicializao no Linux


O GRUB (GRand Unified Bootloader), assim como o LILO um gerenciador de boot. Seu trabalho carregar o kernel do Linux ou iniciar outros sistemas operacionais. Ele surgiu da necessidade de um gerenciador de boot livre e por isso foi criado sob o guarda-chuva do projeto GNU. Com o GRUB, voc consegue iniciar vrios sistemas diferentes, seja Linux, BSDs, Mac, entre outros. O GRUB tem algumas diversas vantagens sobre o LILO e por isso que a maioria das distribuies est substituindo o LILO pelo uso do GRUB. Alm do menu amigvel para a escolha do sistema operacional, tecnicamente o GRUB tem algumas boas vantagens: Ele acessa diretamente o sistema de arquivos e carrega o kernel atravs dele. Com isso voc no precisa ficar reinstalando o gerenciador na MBR toda vez que fizer alguma alterao. Possui uma shell-interativa, ao estilo do bash, que permite o usurio a flexibilidade de controlar todo o gerenciador de boot como queira na inicializao.

2011 Alfamidia Prow

159

Conceitos, Instalao e Administrao de Sistemas Linux

Atravs do menu interativo de escolha do sistema operacional, voc pode editar as linhas de boot j pr-definidas e alterar caso haja algum contra-tempo. Permite colocar senha tanto para a edio da linha de boot de um sistema, quanto para iniciar este sistema. Suporta boot remoto via o protocolo TFTP.

Configurando o Grub
O arquivo de configurao do GRUB geralmente est fixo em um lugar, que o /boot/grub/menu.lst. Muitas distribuies fazem um link para /etc/grub.conf, ento editar os dois arquivos funcionam. A seguir, um exemplo de configurao para dois sistemas operacionais: Linux e Windows:

# Exemplo para dois sistemas Operacionais: Linux e Windows! # default=0 timeout=5 splashimage=(hd0,1)/boot/grub/splash.xpm.gz # Partio Linux title Fedora Core root (hd0,1) kernel /boot/vmlinuz-2.6.13-1.1532_FC4 ro root=/dev/hda1 vga=791 initrd /boot/initrd-2.6.13-1.1532_FC4.img # Partio Windows title Windows rootnoverify (hd1,0) chainloader +1

No exemplo acima, assim como no LILO temos duas partes: uma global com as configuraes do funcionamento geral do GRUB e uma parte com as definies dos sistemas. Na seo global, podemos definir muitas coisas como senhas, imagem do menu, cores, entre outros. Antes de qualquer coisa, preciso notar que o GRUB trata as parties de um modo diferente que o Linux. Por exemplo, ao invs de /dev/hda1 ele usa (hd0,0). Veja a tabela abaixo: Dispositivo /dev/hda1 /dev/hda2 /dev/hdb1 /dev/hdc3 /dev/hdd2 Equivalente no GRUB (hd0,0) - Partio 1 da IDE Primria Master (hd0,1) - Partio 2 da IDE Primria Master (hd1,0) - Partio 1 da IDE Primria Slave (hd2,2) - Partio 3 da IDE Secundria Master (hd3,2) - Partio 2 da IDE Secundria Slave

Nota : O GRUB detecta e identifica seus HDs automaticamente, fazendo a converso mostrada acima. Caso voc tenha dvidas quanto essa equivalncia, utilize o seguinte comando para verificar:
# cat /boot/grub/device.map

2011 Alfamidia Prow

160

Conceitos, Instalao e Administrao de Sistemas Linux

Instalando o GRUB
Na maioria das vezes a distribuio quando instalada, instala o GRUB como gerenciador de boot. Com o grub instalado na MBR do HD, no ser mais preciso ficar re-instalando, como o caso do LILO. Mas se a primeira vez que voc configurou o GRUB e est instalando, a tudo bem. Para instalar na MBR do HD Master Primrio:
# grub-install /dev/hda

Se por acaso voc quiser instalar em um disquete:


# grub-install /dev/fd0

Assim voc ter um GRUB no disquete para quaisquer eventualidades. Para desinstalar o GRUB da MBR, basta voc instalar outra coisa por cima, LILO ou utilizando o comando fdisk \mbr no DOS/Windows. Depois da descompresso e carregamento do sistema, comearo a surgir mensagens do kernel, avisando sobre o que est acontecendo, como testes de portas seriais, entre outros. Todas as mensagens do kernel so teis e devem sempre ser observadas. Caso voc precise ver as mensagens do kernel aps o boot completo do sistema, no precisa reinici-lo, basta digitar dmesg no shell.

Scripts de Inicializao
Aps a inicializao completa do kernel, o sistema passa o controle para alguns scripts, conhecidos como scripts de inicializao ao estilo Sys V. Os scripts podem ser encontrados geralmente no diretrio /etc/rc.d, so normalmente trs:

rc.sysinit
Executado apenas uma vez, durante o boot do sistema. Ajusta algumas coisas, como o relgio e data do sistema, entre outras coisas.

rc: executado
Quando o runlevel alterado. Runlevels sero explicados posteriormente. O rc "mata" os processos do atual runlevel, levando em considerao alguns detalhes que sero descritos posteriormente, e inicia os novos processos, caractersticos do runlevel atual.

rc.local
Executado logo aps todos os outros scripts de inicializao. til para ajustar alguns parmetros do sistema que devem ser inicializados, mas no necessitam da criao de um script completo ao estilo Sys V. Alguns exemplos de programas normalmente incializados nesse script so servidores de fontes "incomuns", restauradores de som, entre outros. Outra funo desse script recriar os arquivos /etc/issue e /etc/issue.net, que so responsveis pelas mensagens exibidas enquanto o sistema aguarda o login e senha do usurio (nos sistemas Conectiva comum a presena da imagem gerada pelo linux_logo, com algumas informaes sobre o sistema).
2011 Alfamidia Prow

161

Conceitos, Instalao e Administrao de Sistemas Linux

Agora o sistema j est inicializado, ento o controle passado para o gerenciador de login, que ficar aguardando a ao do usurio. Se algum usurio realizar o login no sistema, o controle ser passado para o shell padro do usurio, por exemplo o bash. Outras formas de login so discutidas abaixo, junto com a explicao sobre os runlevels.

Runlevels
Toda a inicializao do sistema baseada em runlevels, ou seja, nveis de execuo. Os sistemas Linux possuem 6 runlevels: 0 1 Conhecido como halt, o runlevel que desliga o sistema; Monousurio, inicilializa o sistema sem opes de segurana, no modo monousurio sem rede; Multiusurio, inicializa o sistema com todas as opes de multiusurios e segurana; Multiusurio com rede, o mesmo do runlevel 2, mas com opes de rede ativas, o runlevel mais comum; No utilizado; Multiusurio em modo grfico, igual ao runlevel 3, mas inicia o servidor X automaticamente; Reboot reinicializa o sistema.

4 5

Alguns sistemas podem variar, mas o padro esse. A descrio do sistema de runlevels normalmente pode ser encontrada no arquivo /etc/inittab, onde voc tambm poder alterar o runlevel padro do sistema. Alguns runlevels que merecem destaque so o 1, 3 e 5. O runlevel 1 nunca deve ser utilizado, a no ser para manuteno do sistema, devido falta total de segurana. O runlevel 3 o mais comum. O runlevel 5 o mais indicado para usurios novatos, que dependem completamente do sistema grfico para trabalhar.

Runlevels e os scripts Sys V


O sistema de init, como foi citado anteriormente, procurar os scripts de incializao em /etc/rc.d. Existem, alm dos scripts j citados, muitos outros, dentro do diretrio /etc/rc.d/init.d. Existe um alias pr-definido que move o seu diretrio atual para o diretrio dos scripts do sistema, o cds, ele um resumo dos comandos "cd /etc/rc.d/init.d && ls", portanto esse alias muito prtico, acostume-se a us-lo sempre que precisar alterar alguma coisa a ver com os runlevels. Os scripts encontrados dentro do diretrio /etc/rc.d/init.d possuem um modelo a ser seguido, onde eles devem aceitar no mnimo quatro parmetros, a saber: stop, start, restart, status.
2011 Alfamidia Prow 162

Conceitos, Instalao e Administrao de Sistemas Linux

O init possui um sistema interessante para verificar quais os scripts que devem ser executados em cada runlevel. Dentro do diretrio /etc/rc.d existem vrios subdiretrios, com os nomes seguindo o modelo rcX.d, onde X o numero do runlevel atendido pelo diretrio. Isso significa que normalmente temos 6 diretrios seguindo esse modelo, de rc0.d a rc6.d. O script de inicializao, rc, verificar o runlevel atual e, segundo ele, entrar no diretrio correto, por exemplo, para um runlevel 3, o diretrio rc3.d. Dentro dos diretrios esto links simblicos para os scripts em init.d que devem ser executados no runlevel. Os links simblicos possuem a seguinte nomenclatura: EXXnome, onde E pode ser S, de start ou K, de kill, XX indica qual a ordem de execuo do script na hierarquia de scripts e nome indica o nome do script na pasta init.d. Quem cria ou destri os links um aplicativo, chamado chkconfig. O chkconfig l algumas informaes no cabealho dos scripts Sys V e determina qual a ordem de execuo do script, quais os runlevels onde o script ser executado com o parmetro start e quais os runlevels onde o parmetro utilizado ser stop. Para indicar qual parmetro usar ele cria o link com um prefixo K, de kill, para o parmetro stop, e S, de start, para o parmetro start. As pginas do manual do chkconfig explicam corretamente cada parmetro do mesmo e como utiliz-lo corretamente.

Observe que no porque voc possui um script em /etc/rc.d/init.d que ele ser executado, para ele ser executado, deve ser adicionado ao init via chkconfig ou ntsysv (ou outro aplicativo equivalente). Algumas informaes sobre os servios tambm podem ser visualizadas, essas informaes so inseridas no cabealho dos scripts e normalmente tem suporte a vrios idiomas, descrevendo o que aquele servio inicializado pelo script far no seu sistema. O shutdown do sistema tambm determinado por um runlevel, ou o runlevel 0 (halt) ou o 6 (reboot), permitindo assim que alguns servios possam ser devidamente desligados antes da queda do sistema, como por exemplo, um servidor em impresso ou um gravador de configuraes do misturador de som.

2011 Alfamidia Prow

163

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 19.O kernel do Linux


O kernel Linux o ncleo do Sistema Operacional.
de responsabilidade do kernel controlar o hardware, reforar a segurana e alocar recursos tais como CPU e memria. A maior parte do sistema operacional no o Linux, mas sim um conjunto de aplicaes que fazem uso das facilidades oferecidas pelo kernel do Linux. O cdigo do kernel dividido em funcionalidades bsicas, tais como programao e mdulos do kernel para drivers de dispositivos, sistemas de arquivos, e cdigos especficos para outros sistemas. A documentao pode ser encontrada em /usr/share/doc/kernel-doc*/Documentation.

As imagens do kernel e suas variantes


Arquiteturas suportadas
Intel e AMD x86/x86_64 Intel Itanium2 IBM POWER IBM System z and S/390

Trs verses de Kernel esto disponveis para x86: Regular: um ou mais processadores at 4GB de RAM PAE: at 32 processadores e 16GB de RAM Xen: usado para virtualizao.

Duas verses de kernel esto disponveis para x86_64: Regular: at 64 processadores e 250GB de RAM Xen: usado para virtualizao. Kernels sempre so instalados no duretrio /boot/vmlinuz-*

Mdulos do Kernel
O modulo do kernel uma parte opcional de cdigo do kernel que pode ser carregado depois do kernel ser inicializado. Apenas alguns mdulos que so essenciais para todos os sistemas so compilados diretamente no kernel. Mdulos dinmicos que so necessrios em tempo de boot so carregados pelo grub atravs do initrd (initial RAM disk). Outros mdulos podem ser carregados se necessrio mais tarde e so encontradas no arquivo / lib/modules/directory. Os Modulos so usados por razes de: Reduz o espao de memria: a memria no usada por drivers que no so necessrios.
2011 Alfamidia Prow 164

Conceitos, Instalao e Administrao de Sistemas Linux

Flexibilidade: Os mdulos podem ser adicionados ao sistema depois de ter sido instalado. Estes mdulos so freqentemente chamados de drivers de terceiros. Maximizando o tempo: um mdulo pode ser descarregado e recarregado quantas vezes quisesse, sem reinicializao.

Utilizando e configurando Mdulos do kernel


lsmod mostra a lista de mdulos carregados modinfo mostra os moduloes disponveis modprobe carrega e descarrega mdulos /etc/modprobe.conf arquivo de configurao de mdulos o parmetros para passar para um mdulo sempre que for carregado o aliases para representar um nome de mdulo o comandos para executar quando o mdule carrega ou descarregado

O utilitrio lsmod fornece uma lista de todos os mdulos carregados, juntamente com o tamanho correspondente e contagem de uso.
[root@stationx ~] # lsmod | grep usb_storage usb_storage 72609 1

Mdulos podem ser carregados e descarregados utilizando o comando modprobe. Ao contrrio do comando insmod, o modprobe carregar as dependncias necessrias no filesystems. O comando abaixo carregar o mdulo do usb
modprobe usb_storage

Para remover o modulo use:


modprobe r usb_storage

O mdulo poder ser removido somente se no estiver em uso. O comando modinfo pode ser passado com um nome de mdulo ou nome de arquivo. Ele ir exibir a informao associada, tais como nome do autor, a licena, descrio, verso do mdulo, dependncias paramiters, etc.
[root@gdbhx01a ~]# modinfo usb_storage filename: /lib/modules/2.6.18-194.el5/kernel/drivers/usb/storage/usb-storage.ko license: GPL description: USB Mass Storage driver for Linux author: Matthew Dharm <mdharm-usb@one-eyed-alien.net> srcversion: 686F82C05F6C36BAAC00670 alias: usb:v*p*d*dc*dsc*dp*ic08isc06ip50* alias: usb:v*p*d*dc*dsc*dp*ic08isc05ip50* alias: usb:v*p*d*dc*dsc*dp*ic08isc04ip50* depends: scsi_mod vermagic: 2.6.18-194.el5 SMP mod_unload gcc-4.1 parm: delay_use:seconds to delay before using a new device (uint)

O arquivo de configurao /etc/modprobe.conf contm as configuraes persistentes que se aplicam aos mdulos carregado no sistema. Definies que foram adicionados no momento da instalao. Novas linhas tambm podem ser adicionadas conforme necessrio. Exemplo:
2011 Alfamidia Prow 165

Conceitos, Instalao e Administrao de Sistemas Linux


[root@gdbhx01a ~]# more /etc/modprobe.conf alias scsi_hostadapter megaraid_sas alias scsi_hostadapter1 ata_piix alias scsi_hostadapter2 qla2xxx alias eth0 bnx2 alias eth2 bnx2 alias eth1 bnx2 alias eth3 bnx2 alias eth4 igb alias eth5 igb

initrd
Um initrd especfico para um determinado tipo de hardware e software. Normalmente, ele criado durante a instalao e apenas os mdulos necessrios para montar sistemas de arquivos para o sistema esto includos. O initrd precisa ser recriado quando h alteraes de hardware ou de software. Por exemplo, se o sistema contm filesystems com o formato ext2 e esse necessita ser alterado para ext3. Exemplo
mkinitrd /boot/initrd-2.6.18-53.1.4.e15.img 2.6.18-53.1.4.e15

Especificar manualmente o nmero da verso do kernel se estiver inicializado com uma verso diferente, como foi feito acima. possvel forar um mdulo especfico para ser colocado em um initrd. Trs mtodos podem ser usados para forar um mdulo para o disco RAM inicial 1 - Usando a opo with
mkinitrd with=scsi_mod /boot/initrd-$(uname r).img $(uname r)

Nem o sufixo ko. nem o nome completo do caminho para o mdulo so necessrios. 2 Adio de loinhas no /etc/modprobe.conf
echo alias scsi_hostadapter qla2300 >> /etc/modprobe.conf mkinitrd with=scsi_mod /boot/initrd-$(uname r).img $(uname r)

O comando acima ir incluir o mdulo qla2300 (mais todos os mdulos dependentes) para ser carregado no initrd. 3 - Colocao de um arquivo executvel em /etc/sysconfig/mkinitrd:
Echo MODULES=$MODULES raid1 > etc/sysconfig/mkinitrd/raid1 Chmod +x etc/sysconfig/mkinitrd/raid1 mkinitrd with=scsi_mod /boot/initrd-$(uname r).img $(uname r)

Inclui o modulo deo raid1 para ser carregado no initrd.

sysctl
uma interface que permite que voc faa mudanas em tempo real no sistema operacional. Isto inclui muitas opes avanadas da pilha TCP/IP e sistema de memria virtual.
2011 Alfamidia Prow 166

Conceitos, Instalao e Administrao de Sistemas Linux

O comando sysctl usado para verificar os parmetros de kernel. Para visualizar todo a lista use o comando abaixo:
sysctl -a

Para adicionar dinamicamente parmetros:


sysctl w net.ipv4.tcp_syncookies

Para que os parmetros tornem-se permanents a entreda dever ser colocada no arquivo /etc/sysctl.conf. Quando isso for feito a nova configurao dever ser atualizada no kernel usando o comando:
sysctl -p

2011 Alfamidia Prow

167

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 20.Servios de Impresso


O CUPS (Common Unix Printing System) um gerenciador de impresso para sistemas tipo *nix, ou seja, um ambiente de sistemas operacionais de software Livre / open source inspirado pelo Unix. Objetivo: permitir que um computador seja um servidor de impresso na qual o gerenciador de impresso CUPS (hospedeiro) nativo no servidor receba diversas impresses dos PCs (clientes) processe-os e envie para a impressora correspondente. Alm disso, possvel monitorar impresses, relatar erros de impresses, visualizar relatrios sobre nmero de pginas impressas, data e horrio da mesma. Desenvolvimento: seu desenvolvimento se deu com o protocolo LDP, que permite que trabalhos de impresso sejam impressos atravs da rede utilizando TCP/IP. Porm com o avano da tecnologia CUPS, o protocolo LDP foi ficando ultrapassado, lento e incompatvel com padres de alguns fabricantes. Logo o gerenciador de impresso CUPS aderiu o IPP (Internet Printing Protocol) e foi adotado pela maioria das distribuies Linux como gerenciador de impresso padro. Hoje o gerenciador CUPS mantido pela Apple, que em 2007 contratou Michael Sweet e comprou o cdigo fonte. Prtica: para agregar um gerenciador de impresso CUPS necessrio ter em mente que estamos falando de um servidor para no mnimo 2 ou mais impressoras, caso contrrio no seria vivel a utilizao de um servidor deste porte para pequenas rotinas de impresses.

system-config-printers
um utilitrio grfico que facilmente configura impressoras remotas ou locais. Os comandos usados na linha de comando so: lpadmin gerenciamento de impressoras. lp ou lpr - imprime lpstat - mostra informaes sobre filas locais.

2011 Alfamidia Prow

168

Conceitos, Instalao e Administrao de Sistemas Linux

Unidade 21.O X11 Server


"X Window System, X-Window, X11 ou simplesmente X uma interface grfica com o conceito de janelas. Originalmente chamado simplesmente de X, foi desenvolvido no MIT em 1984. Atualmente est na verso 11, por isso carrega no nome este nmero. X-Window o toolkit e protocolo standard para GUI nos sistemas Unix e assemelhados, como o Linux, mas existem verses para outros sistemas operacionais, como o Microsoft Windows e o Mac OS, por exemplo. Os servidores do sistema X-Window so executados em computadores com displays baseados em mapas de bits. O servidor distribui as aes de entrada do usurio (mouse e teclado) e aceita os pedidos de sada atravs de vrios programas clientes atravs de uma variedade de diferentes canais de comunicao entre processos. Mesmo sabendo que o caso mais comum de uso de programas clientes rodando na mesma mquina do servidor, os clientes podem rodar de forma transparente em mquinas diferentes (inclusive com arquiteturas e sistemas operacionais diferentes). X funciona segundo o modelo cliente-servidor : o servidor X recebe os pedidos via uma porta, um cliente X se conecta ao servidor X e envia-lhe seus pedidos utilizando o protocolo X atravs da biblioteca X (Xlib). Este modelo de comunicao permite o uso de janelas de modo transparente via rede. X (como comumente chamado) suporta operaes de janelas (overlapping hierarchical subwindows) e operaes de texto e grficos, em displays preto e branco ou coloridos. O nmero de programas que utilizam o X enorme."

2011 Alfamidia Prow

169

You might also like