Você está na página 1de 62

Aula 1 Prova 201 Kernel Linux

Segunda-feira, Maio 28, 2007 in Certificaes, LPIC-2 A partir de hoje irei comear a postar aqui em meu blog tudo que aprender referente aos meus estudos para adquirir a LPIC-2. Planejo realizar a prova 201 no prximo ms de Julho e a prova 202 no prximo ms de Agosto. Ento at l, estarei postando o contedo da prova como uma srie de aulas sobre tpicos bem definidos. Como estou em um processo de aprendizado, possvel e inevitvel que eu escreva algo que pode ter sido erroneamente interpretado por mim, sendo assim, se algum ler este tpico e tiver correes a realizar, por favor, sinta-se a vontade. Importante observar que o contedo aqui apresentado tem o objetivo de ajudar aqueles que esto estudando para mais esta certificao (assim como eu) e no tm alguma referncia em portugus, apesar da prova requerer conhecimentos em ingls. Neste primeiro post irei tratar do Kernel do Linux. Este tpico possui quatro objetivos: Apresentar os componentes do Kernel Linux Compilar o Kernel Linux Aplicar um patch no Kernel Customizar um Kernel

Objetivo 1 Componentes do Kernel Antes de iniciarmos a trabalhar com o kernel, necessrio ter a curiosidade de conhecer alguns componentes dele. Dar uma olhada no diretrio da rvore do kernel poder nos dar uma idia dos vrios componentes que so necessrios para a funcionalidade do mesmo. O kernel gerencia todos os aspectos do seu computador, como memria virtual, drivers de dispositivos, acesso a recursos de rede e assim por diante. O kernel tambm executa aplicaes, porm, estas so executadas em um espao fora do kernel, chamado de User Space. Detalhes sobre o desenvolvimento do kernel esto alm do escopo da prova 201. Essencialmente, o que a LPI ir cobrar um entendimento dos vrios tipos de kernel, utilizao de branches do desenvolvimento do kernel e eficientemente aplicar patches. Existem basicamente dois tipos de imagens do kernel: zImage imagem em um formato antigo, voltado para arquiteturas Intel. O nome zImage representa que ela est compactada utilizando o mtodo zlib. O tamanho mximo permitido para esta imagem de 512KB. Se desejar utilizar uma imagem de kernel superior a este tamanho, necessrio o uso da imagem bzImage. bzImage a letra b (big) indica que uma imagem maior que a zImage. Este tipo de imagem no restrita aos 520KB, podendo chegar at 2,5MB. Sendo assim, hoje a opo preferencial para a imagem do kernel Linux. Patches Os patches tambm so encontrados em duas rvores de desenvolvimento diferentes: stable e development. Porm, existem terceiros que realizam a implementao de algumas caractersticas especficas que os mantenedores do kernel acharam melhor no incluir (pelo menos no momento). Patches so atualizaes ou correes pequenas que podem ser aplicadas para especficos kernels sem a necessidade de baix-los inteiramente. Patches so normalmente nomeados da seguinte maneira: patch-verso. Por exemplo: patch-2.6.22-

rc2.bz2. Ser discutido sobre patches mais adiante. Mdulos do Kernel O kernel Linux permite o carregamento e descarregamento de mdulos em tempo de execuo. So utilizados para adicionar novas funcionalidades ao kernel sem a necessidade de recompil-lo. Quando voc constri um kernel, algumas caractersticas podem ser utilizadas como mdulos. Porm, mdulos podem depender de outros mdulos. Depois de instalado o kernel e os mdulos, o comando depmod pode ser utilizado para realizar a interdependncia entre os mdulos. O resultado armazenado em /lib/modules/verso-do-kernel/modules.dep. Objetivo 2: Compilando um Kernel Para melhor acompanhar este tpico, importante realizar teste com uma imagem de kernel baixada de http://www.kernel.org. A compilao do kernel ocorre basicamente atravs das seguintes etapas: 1. Descompactar a imagem do kernel em /usr/src. 2. Criao do link simblico de maneira que o diretrio /usr/src/linux aponte para a rvore do kernel descompactada. No que isto seja realmente fundamental para a realizao da compilao, porm, antigas aplicaes dentro do kernel desenvolvidas utilizando a antiga biblioteca libc podem ter problemas caso a rvore esteja em outro diretrio. Hoje com a implementao da glibc, este problema foi, acredito eu, solucionado. 3. Caso no seja a primeira compilao desta rvore do kernel, necessrio realizar uma limpeza dos arquivos gerados. Podemos utilizar o comando make com as opes clean, mrproper e distclean. Uma descrio de cada uma dessas opes podem ser obtida aqui. 4. Agora temos que realizar a configurao do kernel. Para isso, pode ser utilizada alguma das opes disponveis com o comando make: config, oldconfig, menuconfig, xconfig e gconfig. 5. Se estivermos trabalhando com o kernel 2.4, aps a configurao necessrio a resoluo da dependncia entre os diversos mdulos configurados. Para tanto, utilize o comando make dep. 6. Realizar a criao da imagem do kernel. Esta etapa ir depender do tipo de kernel escolhido. Para a criao de uma zImage, utilize o comando make zImage e para a gerao de uma bzImage, utilize make bzImage. Esse comando compila o kernel e o coloca em /usr/src/linux/arch/i386/boot/bzImage ou /usr/src/linux/arch/i386/boot/zImage. 7. Realizar a cpia da imagem gerada para /boot utilizando o padro de nome vmlinuz-verso. 8. Copiar o arquivo /usr/src/linux/System.map para /boot. Uma boa explicao sobre a finalidade do System.map pode ser obtida aqui. 9. Compile os mdulos. Ou seja: make modules. 10. Instale os mdulos. make modules_install. 11. Crie a RAM Disk, se ela for necessria. Para tanto, utiliza-se o comando mkinitrd. Mais detalhes sobre seu funcionamento adiante neste post. Depois a copie para o diretrio /boot, se necessrio. 12. Por ltimo, realize a configurao do LILO ou do GRUB. OBS: Para que no seja necessria a execuo de cada um destes comandos separadamente pelo usurio, podemos coloca-los em fila. Para tanto, basta digitar o comando abaixo. # make clean dep bzImage modules modules_install Utilizando o Initrd Initrd uma contrao de initial ram disk. A Initrd utilizada pelo kernel para carregar alguns drivers antes que o kernel seja carregado. preciso para que se crie o ambiente necessrio para o acesso ao disco rgido e assim ser possvel carregar os outros mdulos. Sua criao e funcionamento iro diferir

de acordo com o padro da RedHat e do Debian. Para cada um dos padres, ser dito como proceder para a criao da Initrd. mkinitrd no RedHat Para que seja possvel a criao de imagens Initrd no RedHat, o mesmo deve possuir suporte a RAM disks e dispositivos loop. O sistema RedHat ir checar os arquivos de configurao de mdulos (/etc/modprobe.conf ou /etc/modules.conf) para verificar quais os mdulos que sero necessrios ao boot. Suporte a SCSI, LVM, RAID, ext2 e IDE so normalmente requeridos. O comando para a gerao da initrd no RedHat segue abaixo. # mkinitrd -v /boot/initrd-verso-do-kernel mkinitrd no Debian Para a gerao da imagem Initrd no Debian necessrio suporte cramfs em seu kernel. Em sistemas Debian, o comando mkinitrd ir seguir a configurao realizada no arquivo /etc/mkinitrd/mkinitrd.conf. O arquivo auto-explicativo, pois contm diversos comentrios sobre cada uma de suas opes. O comando abaixo ir gerar a imagem Initrd para o Debian. # mkinitrd -o /boot/initrd-verso-do-kernel /lib/modules/verso-do-kernel Objetivo 3: Patching um Kernel Na prova LPIC 201 cobrada a aplicao e remoo de patches no seu kernel. Para tanto, necessrio possuir uma rvore do kernel e um patch especfico para atualiz-la. Cada patch desenvolvido para uma verso especfica do kernel. Para aplicar um patch, basta seguir estes passos: 1. Realizar um backup de sua rvore do kernel, pois, caso haja algum problema na aplicao do patch, ser possvel reverter o processo. 2. Acessar o diretrio raiz da rvore do kernel que ser modificada. 3. Aplicar o patch com o comando a seguir. # bunzip2 -c patch-verso-do-patch | patch -p1 A opo -p1 indica qual o nvel do diretrio em que o patch ser aplicado. Ou seja, apenas o primeiro nvel abaixo do diretrio atual ser patcheado. 4. Alguns arquivos podero ser rejeitados durante a aplicao do patch. O arquivo contendo as diferenas ser criado com a extenso .rej. Importante verific-los e corrigir as rejeies. 5. Modificar o Makefile de maneira a identificar que houve alteraes por patches. Adicione alguma identificao na varivel EXTRAVERSION. 6. Atualize a configurao do kernel. Pode ser facilmente feito com o comando make oldconfig que ir aproveitar a configurao anterior. Caso no haja uma configurao anterior, podem ser utilizados alguns dos comandos de configurao j mencionados. 7. Compile o kernel, da mesma maneira que foi realizada anteriormente. Removendo um Patch Para a remoo do patch, basta realizar o mesmo comando que foi feito para aplicar. Ser questionado se realmente deseja realizar a remoo do patch ou aplic-lo novamente. Podemos tambm indicar no comando explicitamente que iremos realizar uma operao de remoo do patch. Para tanto, a linha de comando ficaria como a seguir. # bunzip2 -c patch-verso-do-patch | patch -p1 -R

Da mesma maneira que quando aplicamos um patch, durante sua remoo tambm podemos obter algumas rejeies que sero registradas nos arquivos .rej. Objetivo 4: Customizar um Kernel Voc pode aplicar diferentes tipos de customizaes para seu kernel. A simples customizao , claro, para melhorar a configurao do kernel. Alm dos patches lanados pelos mantenedores do kernel, existem muitos outros patches de terceiros. Alguns desses so desenvolvidos por hackers do kernel e tm a finalidade de adicionar novos recursos de segurana (ou no) no kernel. Estes patches de terceiros, podem ser disponibilizados em um formato diferente do visto. Para aplic-los, basta o comando abaixo. # zcat patchdeterceiro-verso-do-patch | patch -p1

Aula 2 Prova 201 Sistema de Inicializao


Quinta-feira, Maio 31, 2007 in Certificaes, LPIC-2 Opa! L vamos ns para mais um tpico a ser discutido para a prova 201. E hoje eu irei falar sobre o Sistema de Inicializao do Linux. Mas antes, para quem tiver curiosidade, segue o link do livro que estou utilizando como guia em meus estudos. Novamente digo: se algum ler este texto e encontrar algo que discorde, no tenha entendido, ou apenas um erro gramatical e queira corrigir, pois fique a vontade para corrigir! Devido prpria caracterstica do texto, que redigido e publicado no mesmo dia, eu posso cometer enganos. Vamos ao que interessa afinal! Neste segundo post, irei tratar dos seguintes objetivos de prova: Customizar o Sistema de Inicializao e os processos de boot Realizar a recuperao de um sistema Objetivo 1: Customizao do Sistema de Inicializao e Processos de Boot Irei pressupor que conceitos como scripts de inicializao, parmetros de boot e como modificar o nvel de execuo do Init j so conhecidos pelos leitores. Na prova 201 cobrada a customizao dos processos de inicializao. Quando o kernel monta o sistema de arquivos raz, ele executa o /sbin/init. Este programa ir ler o arquivo /etc/inittab que ir definir tudo que ele ter que fazer de agora em diante. /etc/inittab O arquivo /etc/inittab descreve quais, como e quando os processos sero executados durante o boot do sistema. Na LPI, tanto a LPIC-1 como a LPIC-2, so cobrados tpicos abordando o sistema de inicializao System V, que hoje utilizado na maior parte das distribuies Linux. O System V define que existem 7 nveis de execuo. 0 Sistema desligado 1 Sistema mono-usurio 2 Sistema multi-usurio sem acesso a recursos de rede 3 Sistema multi-usurio com acesso a recursos de rede 4 No padronizado/utilizado 5 Sistema multi-usurio com acesso a recursos de rede e ambiente grfico 6 Sistema em modo de reinicializao

Em um sistema Debian, este padro seguido. Basicamente existe um modo mono-usurio (nvel 1), um modo padro (nvel 2) e outros nveis em modo multi-usurio (nveis 3 a 5). Os nveis 0 e 6 permanecem com o mesmo sentido em ambos os sistemas. No arquivo /etc/inittab a primeira informao obtida o nvel de execuo padro para quando a mquina est sendo inicializada. O nvel padro obtido atravs do trecho do arquivo abaixo. id:3:initdefault: Depois que o nvel de execuo carregado, possvel modific-lo atravs dos comandos executados como root: init ou telinit. Sendo que o segundo um link simblico para o primeiro. Continuando com a descrio do arquivo, existe outro trecho que merece especial ateno. si::sysinit:/etc/rc.d/rc.sysinit Essa linha indica qual o script de inicializao que o init utilizar para realizar as primeiras verificaes em seu sistema. Antes mesmo que os scripts do nvel sejam executados, o arquivo /etc/rc.d/rc.sysinit ser. Esse script ser executado em todos os nveis, pois no existe entre os sinais :: algum nmero de identificao para o nvel. Debian tambm utiliza um sistema de inicializao nos nveis, porm, em vez de utilizar um nico arquivo, como o RedHat, ele utiliza um diretrio contendo diversos scripts, assim como nos nveis de execuo. Sendo assim, podemos dizer que o script do RedHat monoltico e do Debian modular. Falaremos com mais detalhes depois sobre estes scripts. l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 Essas linhas, identificadas por l0 at l6, levam o Init a executar os scripts presentes no nvel de destino. Os scripts esto localizados em /etc/rc.d/rcX.d, sendo X o nmero do nvel. As prximas linhas no arquivo definem aes para interrupes comuns geradas no teclado, como a sequncia de teclas Ctrl+Alt+Del ou a reao do sistema no caso de falha do UPS (Uninterruptile Power Supply) de abastecimento de energia do sistema. pf::powerfail:/sbin/shutdown -f -h +2 Power Failure; System Shutting Down pr:12345:powerokwait:/sbin/shutdown -c Power Restored; Shutdown Cancelled No exemplo acima, ao detectar uma falha no suprimento de energia do UPS, o sistema ir realizar o desligamento do sistema em dois minutos com a mensagem Power Failure; System Shutting Down. Porm, se o suprimento de energia for reestabelecido e ainda estivermos em algum dos nveis de 1 5, ento o desligamento agendado ser cancelado. ca::ctrlaltdel:/sbin/shutdown -t3 -r now A linha acima indica que caso seja pressionada a seqncia de teclas Ctral+Alt+Del, ser realizado um desligamento do sistema no mesmo instante. 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 Com estas linhas acima, configurada a utilizao de seis terminais virtuais de acesso. mingetty a aplicao responsvel por realizar a autenticao dos usurios em uma interface Modo Texto. Para adicionar ou remover os terminais disponveis aos usurios, basta criar ou remover alguma das linhas. Repare que a numerao 2345 indica que apenas nos nveis 2, 3, 4 e 5 estes terminais estaro disponveis. Scripts de Inicializao do Sistema Como todos sabem, os scripts de inicializao dos daemons esto sob o diretrio /etc/init.d. Esses scripts so executados pelos links simblicos localizados nos diretrios correspondentes ao nvel de execuo ou nos scripts de inicializao, que so chamados /etc/rc.d/rc.sysinit no RedHat e /etc/init.d/rcS no Debian. No Debian, o script /etc/init.d/rcS ir realizar a execuo de todos os links simblicos de /etc/rcS.d. No RedHat, apenas o arquivo /etc/rc.d/rc.sysinit executado. Talvez nunca iremos analis-lo completamente, pois o mesmo possui mais de 900 linhas. A finalidade bsica destes scripts realizar uma checagem de todos os sistemas de arquivos locais. Se existir um problema durante a checagem, o script tentar realizar uma manuteno automtica. Porm, se o script precisar de interao, ele resultar na execuo de um shell sulogin, que ir lhe questionar pela senha do administrador root. No entanto, dependendo da gravidade do problema, o sistema pode simplesmente realizar uma reinicializao automtica. Uma das desvantagens do modo mono-usurio, ou mesmo no shell sulogin, que, para que seja possvel execut-lo, todos os sistemas de arquivos so montados e o sistema operacional dever estar quase completamente carregados, o que pode no ser possvel em uma situao de emergncia. Estes scripts tambm so responsveis por realizar a habilitao das cotas no disco, caso estas estejam configuradas. Aps a execuo dos scripts rcS no Debian ou rc.sysinit no RedHat, sero ento executados os links simblicos contidos nos diretrios /etc/rcX.d, onde novamente X ser o nmero referente ao nvel que estou executando. Customizando os Nveis de Execuo Em algum momento, pode ser necessria a adio de novos servios (ou tambm chamados de daemons) durante o processo de inicializao do sistema. Poder ser feito de maneira manual, atravs da criao de links simblicos nos diretrios adequados utilizando o padro de nomes para os links. Porm, existem algumas ferramentas de auxlio criao e manuteno dos servios. Estas ferramentas diferem das distros Debian e RedHat. Vamos comentar um pouco sobre cada uma das ferramentas. chkconfig Sintaxe: chkconfig list [servio] chkconfig add servio chkconfig del servio

chkconfig [--level nvel] servio [on | off | reset] O comando chkconfig uma maneira simples e fcil de realizar a customizao dos servios existentes em cada um dos nveis. Utilizado normalmente no RedHat ou distros similares. Seu uso condicionado a uma prvia configurao do script de inicializao em /etc/init.d. Este script dever possuir comentrios especficos para tratamento do chkconfig. Observe o exemplo abaixo de comentrios do chkconfig em um servio. # chkconfig: 345 13 87 # description: named (BIND) is a Domain Name Server (DNS) \ # that is used to resolve host names to IP addresses. As linhas acima indicam seqencialmente que o servio (named) ser executado nos nveis 3, 4 e 5, possui prioridade de inicializao 13 e de finalizao 87. A prxima linha apenas uma descrio do servio que poder utilizar uma nica ou vrias linhas, desde que no final de cada uma delas haja uma contra-barra. Exemplos de uso: # chkconfig add named # chkconfig list named # chkconfig named off O primeiro comando ir adicionar o servio named. O segundo comando ir listar todos os nveis e se est sendo executado ou no o servio named. O ltimo comando ir desativar o servio named de todos os nveis. update-rc.d Sintaxe: update-rc.d [-n] [-f] servio remove update-rc.d [-n] servio defaults [nn | nn-start nn-stop] update-rc.d [-n] servio start | stop nn nvel-de-execuo nvel-de-execuo [start | stop nn nvel-de-execuo nvel-de-execuo ... ] Debian e outras distribuies utilizam o update-rc.d para manipular os servios em cada um dos nveis. Qualquer script localizado em /etc/init.d pode ser manipulado por este comando, porm, ele apenas adiciona ou remove servios, no podendo realizar a manuteno dos mesmos. Exemplos de uso: # update-rc.d mysql defaults 99 # update-rc.d -f mysql remove # update-rc.d mysql stop 99 0 1 6 . start 60 2 3 4 5 . O primeiro comando adiciona o servio mysql nos nveis padres (1, 2, 3, 4 e 5) para inicializao e

insere links para sua desativao nos outros nveis, todos com prioridade 99. O segundo comando ir remover todos os links simblicos do servio mysql. O terceiro comando ir adicionar o servio mysql para ser paralisado nos nveis 0, 1 e 6 com prioridade 99 e ser inicializado com prioridade 60 nos nveis 2, 3, 4 e 5. Customizando Imagens Initrd No post anterior, discutimos como realizamos a gerao das imagens Initrd. Hoje em dia, distros mais novas no utilizam mais esse tipo de imagem, sendo que o novo padro adotado chama-se Initramfs. Na LPIC-2 cobrada o uso da Initrd, presente apenas em antigas verses das distribuies. Vamos entender melhor como esta imagem funciona. Ela, ao contrrio do que pode ter sido entendido no post anterior, no apenas uma RAM disk contendo alguns mdulos, ela praticamente um sistema raz independente. Os mdulos so carregados por um script ou executados direto do disco. Segue abaixo uma ordem como as coisas acontecem em toda a existncia da Initrd. 1. O gerenciador de boot carrega o kernel e a Initrd em memria. 2. Na inicializao, o kernel descompacta e copia o contedo da Initrd no dispositivo /dev/ram0 e ento livra a memria utilizada pelo Initrd. Este processo o que chamamos de transformar a Initrd em um RAM disk. 3. O kernel monta como leitura e escrita o dispositivo /dev/ram0 sendo a raz do sistema. 4. O arquivo /linuxrc executado. Este arquivo pode ser um executvel qualquer, ou mesmo um shell script. executado como root e pode fazer tudo que o init pode fazer. 5. /linuxrc monta o sistema raz verdadeiro. 6. /linuxrc coloca o sistema raz real no diretrio raz usando o comando pivot_root. 7. A sequncia de boot normal executada no sistema de arquivo raz. 8. O sistema de arquivo da Initrd removido. Documentao adicional sobre o funcionamento da imagem Initrd pode ser obtida no diretrio Documentation/initrd.txt na rvore do fonte do kernel ou analisando o prprio executvel /linuxrc que no Debian e RedHat um script. Initrd e /linuxrc no Debian No Debian, o script /linuxrc interpretado pelo dash, ou mais comum, ash. Estes interpretadores oferecem um bom conjunto de comandos built-in. Quando o script /linuxrc executado, ele l configuraes do arquivo /linuxrc.conf que foi escrito pelo comando mkinitrd no momento da criao da imagem Initrd. O script /linuxrc do Debian no executa o comando pivot_root como deveria. O que acontece na verdade que ao detectar que o script /linuxrc foi terminado, o kernel executa o /sbin/init, que apesar de estar no mesmo local que seu xar, ele no o binrio a que estamos acostumados (lembrem-se que at aqui o sistema raiz verdadeiro ainda no foi montado). Esse init ir realizar a execuo dos scripts do diretrio /scripts na ordem. Depois disso, ele ir finalmente realizar a execuo do pivot_root para a mudana da raz do sistema. Initrd e /linuxrc no RedHat RedHat realiza a criao do seu script /linuxrc dinamicamente, linha a linha. A customizao neste ambiente no to simples como no Debian, pois poucas ferramentas so providas para uso. O shell utilizado o /bin/nash, que no linkado estaticamente. Neste ambiente existem apenas as ferramentas necessrias para o Initrd, nada muito alm disso. Objetivo 2: Recuperao do Sistema Infelizmente nem tudo vai to bem quanto deveria. Porm, felizmente o sistema capaz de se recuperar

na maior parte das vezes de maneira automtica. Como por exemplo, os sistemas de arquivos so consertados/verificados a cada boot. Mas, existem problemas no muito freqentes que iro precisar da interveno humana. Problemas no Sistema de Inicializao Quando ocorrem problemas na execuo de algum dos nveis de execuo do init, isto normalmente fcil de resolver. Nessas situaes, ao ocorrer o erro o sistema nos levar para shell com acesso root mediante a senha do mesmo, como mostrado abaixo. Give root password for maintenance (or type Control-D to continue): Na maior parte das situaes, bastar executar o utilitrio fsck com os parmetros necessrios, e os danos ao sistema de arquivo sero corrigidos. No entanto, existem outras situaes que o problema se dar durante a execuo dos primeiros scripts do init (/etc/rc.sysinit ou /etc/init.d/rcS). Nestes casos, talvez no seja possvel ter acesso ao disco rgido. Para tanto, podemos realizar um bypass no init, ou seja, fazer com que sua execuo seja substituda por outra ferramenta. Para tanto, basta modificar o gerenciador de boot durante a inicializao. Considere o exemplo abaixo. title Fedora Core (2.6.20-1.2925.fc6) root (hd0,0) kernel /vmlinuz-2.6.20-1.2925.fc6 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.20-1.2925.fc6.img Para indicar ao kernel que ser utilizado outro init, basta adicionar a linha init=executvel indicando o caminho absoluto do novo inicializador do sistema. O exemplo acima ficaria ento como mostrado abaixo. title Fedora Core (2.6.20-1.2925.fc6) root (hd0,0) kernel /vmlinuz-2.6.20-1.2925.fc6 ro root=LABEL=/ rhgb quiet init=/bin/bash initrd /initrd-2.6.20-1.2925.fc6.img No exemplo acima, chamaremos o /bin/bash em vez do /sbin/init, como seria feito normalmente. Fazendo isto, no sero executados os scripts do init, que por sua vez, no realizaro a execuo dos scripts /etc/rc.sysinit ou /etc/init.d/rcS. Sendo assim, teremos acesso um terminal de comandos bash onde poderemos realizar a execuo de rotinas de manuteno e recuperao. Precisamos apenas ficarmos ciente de que s haver este terminal de execuo de comandos e que no haver interrupes de finalizao geradas pelo teclado, como Ctrl+C ou Ctrl+Z. Agora, se seu sistema nem desta maneira est conseguindo ser recuperado, a nica possibilidade que temos agora a realizao do boot por outro sistema operacional, atravs normalmente de um CD de recuperao. Esse CD de recuperao poder ser o mesmo para a instalao da sua distro Linux, como no caso do RedHat ou outra mdia especfica para este fim, como o Ubuntu Alternative CD. Problemas no Gerenciador de Boot Outra possibilidade de problema com que podemos nos deparar a danificao do gerenciador de boot de seu sistema. Para proceder com a recuperao simples. Iremos fazer o mesmo passo explicado anteriormente fazendo uso do CD de recuperao. Aps isto, em um terminal de comandos, iremos realizar os comandos abaixo.

# chroot /onde-esta-montado-minha-raiz-real A partir deste momento, devemos levar em considerao qual o gerenciador de boot utilizado. No caso do GRUB, basta o comando abaixo para realizar a reinstalao do mesmo na MBR. # grub-install /dev/sda Considerando que o disco rgido em questo o primeiro Serial ATA ou SCSI. Porm, se seu gerenciador de boot for o LILO, basta o comando abaixo. # lilo -v Podemos realizar a recuperao da MBR de seu sistema caso haja um backup previamente criado. Portanto, para recuper-lo, basta o comando abaixo. # dd bs=512 if=mbr.backup of=/dev/sda No existe uma receita de bolo para todos os problemas existentes, sendo assim, muitas outras possibilidades de erros e suas solues no esto englobadas aqui, mas com estas informaes, acho que podemos ter um bom incio.

Aula 3 Prova 201 Sistema de Arquivos


Domingo, Junho 10, 2007 in Certificaes, LPIC-2 Estava navegando pela Internet esses dias a procura de livros de Linux e acabei me deparando com uma surpresa! O livro que uso como referncia para meus posts foi traduzido para o portugus e ser vendido aps o dia 20 de junho! Inclusive alguns stios web j esto realizando a pr-venda do ttulo. No Brasil o ttulo foi novamente lanado pela editora Altabooks e pode ser encontrado para compra aqui. Mas vamos ao que interessa. Hoje irei falar sobre o terceiro tpico para a prova 201: Sistema de Arquivos. Os objetivos deste tpico so: Operar sistemas de arquivos Linux Realizar manuteno de sistemas de arquivos Linux Criar e configurar opes no sistema de arquivos Linux Objetivo 1: Operar Sistemas de Arquivos Linux Muito do que cobrado neste objetivo contedo da prova 101, sendo assim, irei apenas falar rapidamente sobre cada um dos itens. Sistemas de arquivos precisam ser acessados, e para tanto, no Linux dispomos das ferramentas mount e umount para a montagem dos dispositivos. Abaixo o uso dos dois comandos. mount Sintaxe: mount [opes] dispositivo mount [opes] ponto-de-montagem

mount [opes] dispositivo ponto-de-montagem O comando mount utilizado para a montagem de dispositivos. Qual das sintaxes que iremos utilizar ir depender se o volume especificado j se encontra devidamente configurado ou no no arquivo /etc/fstab. A primeira e a segunda forma utilizada com consulta ao arquivo, e a ltima ignora o contedo do mesmo. Exemplos de uso: # mount -a # mount -o remount,ro / # mount -o user,atime /dev/sda1 /ponto-de-montagem O primeiro comando realiza a montagem de todos os volumes que esto especificados no arquivo /etc/fstab. A segunda linha, por sua vez, realiza a remontagem da partio raiz em modo somente leitura. Perceba que o segundo comando no especifica o dispositivo, sendo assim, o arquivo /etc/fstab consultado para que o mount saiba a qual dispositivo o / se refere. O ltimo comando realiza a montagem do volume /dev/sda1 utilizando as opes user e atime, que indicam que apenas o usurio que realizou a montagem poder desmontar o volume e que os inodes deste volume tero o tempo de acesso modificado. Reparem que neste ltimo exemplo, especificado o dispositivo e o ponto de montagem, sendo assim, a configurao existente em /etc/fstab ignorada. umount Sintaxe: umount [opes] dispositivo umount [opes] ponto-de-montagem O comando umount utilizado para realizar a desmontagem de volumes montados. Exemplos de uso: # umount -a # umount -t vfat /ponto-de-montagem O primeiro exemplo realizar a tentativa de desmontagem de todos os volumes descritos em /etc/fstab. O segundo comando ir tentar desmontar o diretrio especificado como um volume FAT32. Repare que ao contrrio do comando mount, o umount ir sempre ler o contedo do arquivo /etc/mtab para proceder com a desmontagem do dispositivo. Sendo assim, no necessrio especificar o dispositivo e o ponto de montagem simultaneamente. /etc/fstab Arquivo texto que possui a configurao necessria para a montagem de volumes. Esse arquivo consultado pelo comando mount no momento da realizao da montagem dos dispositivos. Porm, nem todos os dispositivos necessariamente precisam estar especificados nesse arquivo para serem montados. /etc/mtab e /proc/mounts Esses arquivos contm basicamente a mesma informao. Eles informam sobre todos os volumes que

esto atualmente montados em seu sistema. A nica diferena entre eles que o arquivo /etc/mtab faz referncia apenas a dispositivos, e no a sistemas virtuais, como o rootfs e o tmpfs. Porm, em algumas distribuies, pode haver outro padro ou o contedo pode ser idntico. Gerenciando a Swap A swap uma rea do disco rgido que utilizada pelo sistema operacional para uso como memria virtual. Esse espao de memria normalmente criado durante a instalao do sistema, porm, possvel realizar a ativao e uso de um espao de memria swap durante a execuo do sistema, sem a necessidade de um recarregamento do mesmo. No kernel 2.4, a atualizao dos dados da swap realizada pelo thread do kernel bdflush. Essa thread responsvel por realizar a sincronizao dos buffers com o contedo gravado no disco, da mesma maneira que o comando sync faz, porm, de maneira rotineira. No kernel 2.6 essa tarefa realizada pela thread pdflush. mkswap Sintaxe: mkswap [opes] [-f] dispositivo [tamanho] O comando mkswap utilizado para a criao da rea swap em uma partio do disco rgido, ou, quem sabe, em um arquivo. Pode ser especificado o tamanho, porm, caso seja omitido, mkswap ir utilizar toda a partio indicada. Exemplos de uso: # mkswap -v0 /dev/sda2 # mkswap -f /dev/sda O primeiro exemplo ir criar uma rea de swap que ir cobrir toda a partio /dev/sda2. Essa rea de swap ser criada utilizando o esquema de swap antigo (anterior ao kernel 2.2). Outra possibilidade, o uso da opo -v1, que ir criar uma rea de swap do novo estilo (posterior ao kernel 2.2). O uso da opo -v1 opcional, pois ela j assumida por padro em qualquer kernel ps-2.2. O segundo comando ir forar a criao de uma rea de swap na partio, mesmo que haja erros nela. swapon, swapoff Sintaxe: swapon [opes] swapoff [opes] Os comandos swapon e swapoff so utilizados para a ativao do uso das reas de swap depois que elas foram criadas. Exemplos de uso: # swapon -a # swapoff /dev/sda2 O primeiro comando ir realizar a ativao de todas as parties swap que constam em /etc/fstab. O

segundo, por sua vez, ir desativar a partio swap de /dev/sda2. Esquema de Parties do Linux Na LPIC-1 discutida na prova 101 a padronizao de arquivos e pastas utilizada no Linux, chamada FHS (Filesystem Hierarchy Standard). Uma descrio detalhada do objetivo de cada uma das pastas pode ser obtida neste stio web. Caso queira uma fonte em portugus e traduzida, o seguinte blog tem um resumo sobre a finalidade de cada uma das pastas do sistema. Objetivo 2: Manuteno em Sistemas de Arquivos Linux Eventualmente, pode ser necessria a realizao de manuteno em sistemas de arquivos, apesar de no ser uma tarefa rotineira. tune2fs Sintaxe: tune2fs [opes] dispositivo A ferramenta tune2fs utilizada para modificar os parmetros de manuteno do sistema de arquivos, como o nmero de montagens necessrias para a verificao no disco ou a ao que o sistema ir tomar, caso encontre algum problema na verificao do volume. Exemplos de uso: # tune2fs -e panic /dev/sda1 # tune2fs -c 30 /dev/sda1 # tune2fs -O ^has_journal /dev/sda1 # tune2fs -m 1 /dev/sda1 # tune2fs -u 500 /dev/sda1 # tune2fs -s 0 /dev/sda1 O primeiro comando ir instruir o sistema a realizar um kernel panic caso encontre alguma falha durante a verificao do volume /dev/sda1. Outras possibilidades de aes que o sistema poder tomar so: continue apenas ignora o erro. remount-ro remonta o sistema de arquivos como somente leitura. O segundo comando ir modificar a quantidade de montagens mxima para a verificao em 30 vezes. O terceiro comando ir realizar a desativao do recurso has_journal da partio /dev/sda1. O smbolo ^ indica que estamos removendo esse recurso. O quarto comando indica a quantidade em porcentagem de blocos que devem ser reservados para uso exclusivo de algum usurio especfico. Essa caracterstica interessante para impedir que qualquer usurio possa encher o disco completamente, impedindo depois que o administrador possa realizar qualquer ao no sistema. O prximo comando informa qual o UID do usurio que ter blocos reservados. O usurio pode ser informado pelo UID ou por seu nome nico. O ltimo comando desabilita (uso do zero indica que esta desabilitando) a caracterstica spare superbloco no sistema de arquivos. Superblocos spare so blocos de backup dos superblocos, de maneira a evitar a perda dos casos caso um superbloco se corrompa.

dumpe2fs Sintaxe: dumpe2fs [opes] dispositivo A ferramenta dumpe2fs serve para nos informar dados referentes a um sistema de arquivos, como tamanho dos superblocos, tamanho dos blocos, checagem automtica, dentre outras informaes. Exemplo de uso: # dumpe2fs -h /dev/sda1 O comando ir exibir as mesmas informaes que podem ser obtidas atravs do comando tune2fs -l /dev/sda1. debugfs Sintaxe: debugfs [opes] [dispositivo] A ferramenta debugfs, tambm conhecida por debug2fs, utilizada para nos ajudar a recuperar arquivos deletados. Porm, ela s funciona de maneira efetiva em sistemas de arquivos ext2. Exemplos de uso: # debugfs -w /dev/sda1 O comando acima ir nos levar a um shell interativo. Esse shell possui comandos especficos do debugfs, como por exemplo: lsdel para listagem dos inodes deletados e undelete para recuperao de inodes removidos. Para uma listagem de todos os comandos possveis, digite um ? no shell do debugfs. badblocks Sintaxe: badblocks [opes] dispositivo [ltimo-bloco] [bloco-de-incio] O comando badblocks procura por bad blocks em um dispositivo. Na sintaxe, ltimo-bloco indica qual o ltimo bloco para ser analisado no dispositivo, porm, se no for especificado, ser utilizado o ltimo bloco por padro. bloco-de-incio indica ferramenta badblocks qual ser o primeiro bloco a ser analisado. Exemplos de uso: # badblocks -o listadebadblocks /dev/sda1 # badblocks /dev/sda1 4000 250 O primeiro comando ir realizar a verificao de todos os blocos do dispositivo /dev/sda1 e o resultado de todos os bad blocks do dispositivo ser enviado para o arquivo listabadblocks. O segundo e ltimo comando ir realizar a verificao do dispositivo /dev/sda1 do bloco 250 at o 4000 e enviar o resultado para a sada padro. e2fsck

Sintaxe: e2fsck [opes] dispositivo A ferramenta e2fsck realiza a checagem sistemas de arquivos ext2 e ext3. O interessante associar o uso do e2fsck com a ferramenta badblocks, pois durante a checagem, o prprio e2fsck j ir realizar a marcao dos bad blocks que podem ter sido fornecidos pelo comando badblocks. Exemplo de uso: # e2fsck -l listadebadblocks /dev/sda1 O comando citado ir realizar a checagem do sistema de arquivos em /dev/sda1 e marcar os blocos contidos no arquivo listadebadblocks como sendo bad blocks. fsck Sintaxe: fsck [opes] [dispositivo] Ferramenta para checagem e correes de inconsistncias no sistema de arquivos. J foi comentado o uso dessa ferramenta no post anterior, porm, no especificamos seu uso. Exemplos de uso: # fsck -f /dev/sda1 # fsck -A # fsck -A -y A primeira linha de comando acima ir realizar uma checagem forada no sistema de arquivos em /dev/sda1, sendo assim, mesmo que o dispositivo tenha sido h pouco tempo verificado, haver uma nova verificao no-agendada. O segundo comando realiza uma checagem por todos os volumes descritos em /etc/fstab. A ltima linha realiza o mesmo que o segundo comando, porm respondendo yes para qualquer pergunta que for realizada. Isso pode ser til quando existe uma grande quantidade de reparos que precisam ser realizados. mke2fs Sintaxe: mke2fs [opes] dispositivo [nmero-de-blocos] Comando utilizado para a criao de um sistema de arquivos ext2/ext3, porm, com mais recursos possveis do que a ferramenta mkfs. Com mke2fs, podem ser modificados alguns parmetros do sistema de arquivos, como o uso ou no de flags especiais, como sparse_super ou has_journal. Exemplos de uso: # mke2fs -O ^has_journal,sparse_super /dev/sda1 # mke2fs -N 20000 /dev/sda1 O primeiro comando ir realizar a instalao do sistema de arquivos ext3 no dispositivo /dev/sda1

utilizando a flag sparse_super e desabilitando a flag has_journal. A flag sparse_super padro na criao de sistemas de arquivos ext3, s a utilizei para exemplo. O segundo exemplo ir realizar a instalao do sistema ext3 com 20 mil inodes. Redimensionando Sistemas de Arquivos Sistemas de arquivos ext2 podem ser facilmente redimensionados, desde que haja espao livre suficiente para realizar essas operaes. Se estiver utilizando LVM, no prximo post irei falar sobre como realizar essa operao, porm, se no for utilizado, podemos realizar a operao de redimensionamento com as ferramentas parted e resize2fs. parted Sintaxe: parted [opes] [dispositivo [comando [opes] ] ] Ferramenta que pode ser utilizada para edio da tabela de parties do sistema. Pode ser utilizada de maneira interativa como um shell interpretador de comandos ou atravs do uso de linhas de comando com opes. Antes do uso da ferramenta, recomendado que se realize backup de seus dados crticos, pois, infelizmente, o parted pode corromper a tabela de parties e prejudicar o sistema de arquivos. Tambm necessrio que a partio esteja desmontada, e de preferncia, que o sistema esteja no modo mono-usurio. Exemplos de uso: # parted move /dev/sda1 5000 6000 # parted resize /dev/sda1 6000 6500 O primeiro comando ir mover a partio /dev/sda1 para ser iniciada depois de 5 mil megabytes do disco e terminar nos 6 mil megabytes. Poder ocorrer redimensionamento do disco durante o movimento. O mesmo ocorre com o prximo exemplo, que a partio ser redimensionada para iniciar em 6 mil megabytes do disco e ir at 6,5 mil megabytes. resize2fs Sintaxe: resize2fs [opes] dispositivo [tamanho] resize2fs ir realizar redimensionamento do dispositivo. Caso o tamanho seja omitido, ser considerado at o fim da partio. O tamanho tambm dever ser fornecido em blocos, ou, com a notao posfixa s, K, M ou G, sendo s para setores de 512 bytes, K para kilobyte, M para megabyte e G para gigabyte. Exemplos de uso: # resize2fs /dev/sda1 5G # resize2fs -f /dev/sda1 1000s O primeiro exemplo de linha de comando ir realizar o redimensionamento da partio para o tamanho de 5 gigabytes. A segunda linha ir forar a execuo do resize2fs mesmo em situaes em que ele normalmente no seria executado.

Objetivo 3: Criar e Configurar Opes no Sistema de Arquivos Na LPIC-1, cobrada a criao de volume ext2. Na LPIC-2 esperado que o candidato possa realizar a criao de outros sistemas de arquivo, como ISO9660, ext3 e FAT32. Tambm necessrio ter conhecimento sobre o sistema de auto-montagem de dispositivos. Auto-montagem de Sistemas de Arquivos Existem hoje sistemas de deteco e montagem automtica de dispositivos. Eles podem realizar qualquer montagem que o comando mount poderia realizar, como volumes NFS, SMB, etc. Neste tpico irei demonstrar o uso do servio autofs. Sua configurao realizada atravs de vrios arquivos relacionados. Existe um arquivo principal para a configurao global de funcionamento do autofs e outros arquivos para a especificao do funcionamento para tipos de sistemas de arquivos especficos. O arquivo principal normalmente /etc/auto.master. Ele ir definir quais os diretrios do seu sistema que sero gerenciados pelo autofs. Cada ponto de montagem tem um arquivo de configurao especfico para si normalmente chamado /etc/auto.ponto-de-montagem. Segue abaixo um exemplo do arquivo /etc/auto.master. /misc /etc/auto.misc timeout=1 /smb /etc/auto.smb /net /etc/auto.net Cada entrada especifica um ponto de montagem e um arquivo associado que ir conter a configurao para este ponto de montagem. O terceiro argumento de cada entrada (timeout=1) indica por quanto tempo ser mantida a montagem do dispositivo aps a solicitao. Abaixo trecho do arquivo /etc/auto.misc. cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom floppy -fstype=auto,umask=0000 :/dev/fd0 A primeira coluna indica o nome da pasta dentro de /misc que ser criada no momento da montagem do dispositivo. Os prximos parmetros iro indicar o tipo do sistema de arquivos que ser montado, opes especiais de montagem como somente leitura, sem SUID, etc. Por ltimo, o dispositivo associado para a montagem. A primeira linha indica obviamente a montagem automtica de um CDROM e a segunda a montagem de um disquete. Os dispositivos so montados no momento que os diretrios configurados em /etc/auto.master so acessados. Ou seja, neste momento o autofs ir realizar uma verificao da possibilidade de montagem dos volumes especificados e montar aqueles que so possveis. Criando Sistemas de Arquivos ext3 As ferramentas de criao de sistemas de arquivos ext3 j foram demonstradas neste post. Como sabemos que o ext3 apenas uma extenso do ext2, podemos realizar a converso de um sistema de arquivo ext2 em ext3 sem a necessidade de formatao, basta realizar o comando abaixo. # tune2fs -O has_journal /dev/sda1 Considerando que /dev/sda1 a partio que ser modificada. Agora, se formos criar uma nova partio ext3, podemos utilizar a ferramenta mke2fs. A linha de comando abaixo o suficiente. # mke2fs -j /dev/sda1

Criando Sistemas de Arquivos FAT32 A criao de parties FAT32, chamadas apenas de vfat no mundo Linux, realizada atravs da ferramenta mkfs ou mkfs.vfat. Qualquer uma das linhas de comando abaixo suficiente para instalar o FAT32 na partio /dev/sda1. # mkfs -t vfat /dev/sda1 ou # mkfs.vfat /dev/sda1 Criando Sistemas de Arquivos ISO9660 O sistema de arquivos ISO9660 totalmente diferente das implementaes de outros sistemas de arquivos discutidos anteriormente. Esses tipos de imagens so gerados para serem gravados em mdias como CD-ROM ou DVDs. As gravadoras de CD e DVD primeiramente surgiram utilizando barramento SCSI para conexo com o sistema. Porm, logo surgiram as gravadoras utilizando barramento IDE. Para a realizao de gravaes em sistemas com kernel 2.4 ou inferior necessrio o uso de mdulo especfico. No kernel 2.6 no mais necessrio isso. Antes de aprendermos como gravar as imagens nas mdias, necessrio sabermos criar as imagens. mkisofs e genisoimage Sintaxe: mkisofs [opes] [-o arquivo-destino] caminho [caminho ...] genisoimage [opes] [-o arquivo-destino] caminho [caminho ...] A ferramenta genisoimagem surgiu como um fork da ferramenta mkisofs, porm ambas continuam seu desenvolvimento, mas em pacotes de ferramentas diferentes. Os dois comandos tm o mesmo objetivo: criao de sistemas de arquivos ISO9660 para gravao em mdias CD-ROM ou DVD. As imagens podem ser criadas de acordo com dois padres: Rock Ridge e Joliet. Rock Ridge suporta nomes de arquivos acima de 30 caracteres, permisses UID/GID e links simblicos padro POSIX. Joliet um sistema de arquivos para mdias Windows. mkisofs e genisoimage geram ambos os padres. Exemplos de uso: # mkisofs -o imagem.iso diretorio # genisoimage -J -o imagem.iso diretorio # mkisofs -r -o imagem.iso diretorio O primeiro comando acima ir criar uma imagem chamada imagem.iso com o contedo da pasta diretorio. O segundo comando ir fazer o mesmo que o anterior, porm, criando uma imagem utilizando as extenses Joliet. O ltimo comando ir realizar com a extenso Rock Ridge. cdrecord, dvdrecord e wodim Sintaxe: wodim [opes] dev=dispositivo [track opes] [track1] [trackn]

cdrecord [opes] dev=dispositivo [track opes] [track1] [trackn] dvdrecord [opes] dev=dispositivo [track opes] [track1] [trackn] A ferramenta wodim surgiu como substituta do antigo cdrecord que por sua vez j inclua as funes do dvdrecord. Essas ferramentas so todas utilizadas para a gravao em CD e DVDs de dados. Exemplos de uso: # cdrecord -scanbus # wodim -v -dummy dev=0,0,0 imagem.iso # dvdrecord driveropts=burnfree dev=0,0,0 imagem.iso O primeiro comando ir realizar uma verificao dos dispositivos com capacidade de gravao do sistema. O resultado ser importante para a realizao da construo da linha de comando necessria para a gravao. O segundo comando ir realizar uma simulao de gravao. Essa simulao ir realizar todos os passos do processo de gravao sem efetivamente ligar o laser. Isso pode ser til para testar se gravadores que no possuem sistemas de BurnFree podero realizar a gravao sem problemas. O ltimo comando ir efetivamente gravar a imagem.iso no dispositivo indicado pela opo dev. A opo driveropts indica quais opes da gravadora sero utilizadas durante o processo de queima da mdia. losetup Sintaxe: losetup [-f] [-d] [dispositivo-loop] losetup [opes] imagem possvel e simples em um sistema Linux realizar acesso a uma imagem criada por um aplicativo, como o mkisofs ou genisoimage, como se a mesma fosse um dispositivo. Isso possvel graas ao driver loop, que um dispositivo virtual (normalmente /dev/loop0) criado para permitir acesso imagem. Exemplos de uso: # losetup /dev/loop0 # losetup /dev/loop1 imagem.iso # losetup -d imagem.iso # losetup -e des /dev/loop0 imagem.iso O primeiro comando ir obter informaes sobre uma montagem loop. O segundo comando ir associar a imagem.iso com o dispositivo de loop /dev/loop1. O terceiro comando ir dissociar a imagem.iso do dispositivo de loop utilizado. O ltimo comando ir realizar o procedimento de montagem do dispositivo criptografado com o algoritmo DES 16 bits.

Aula 4 Prova 201 Hardware Tera-feira, Junho 26, 2007 in Certificaes, LPIC-2 Ia pessoal! Outro post da srie de outros de outros que sero publicados sobre LPIC-2. Hoje o assunto Hardware e os objetivos desse tpico so: Configurar um RAID software Adicionar um novo hardware Configurao dos softwares e kernel para o hardware Configurar dispositivos PCMCIA

Objetivo 1: Configurar um RAID Software Realmente escrever esse tpico um pouco perigoso para mim, pois no sou envolvido em um ambiente com uma grande possibilidade de treino desse tipo de tecnologia. Sendo assim, a maior parte dos exemplos demonstrados no foram realmente testados e foram adquiridos de fontes tericas. Caso algum perceba que cometi algum engano, por favor, se manifeste! Conceito de RAID RAID o acrnimo de Reduntant Array of Independent Disks ou Reduntant Array of Inexpensive Disks, ou seja, Conjunto Redundante de Discos Independentes ou tambm Conjunto Redundante de Discos Econmicos. Essa ferramenta tem o objetivo de prover uma maior confiabilidade ou performance para acesso aos discos rgidos, fazendo com que eles trabalhem como se fosse uma s unidade. uma tecnologia que pode ser implementada tanto via software como via hardware, atravs de placas controladores especficas. A tecnologia RAID funciona de vrias maneiras, ou seja, dizemos que funciona em vrios nveis RAID. Existe hoje 6 nveis de funcionamento. Irei descrever apenas os nveis que possuem importncia para a prova LPIC-2. RAID nvel 0 Nesse nvel, os discos funcionam como se fossem um nico disco. Ou seja, o tamanho total da rea de armazenamento do disco virtual igual a soma de todos os outros discos da matriz. Nvel tambm chamado de Striping. RAID nvel 1 Nesse nvel, cada disco existente na matriz dever possuir um outro que receber todos os dados gravados no primeiro. Ou seja, haver um disco espelhado para cada disco utilizado. O tamanho total da rea de armazenamento do disco virtual ser igual metade de todo o espao de todos os discos. Nvel tambm chamado de Mirroring. RAID nvel 5 Nesse nvel, ao serem gravados os dados em um disco, haver uma rea especial onde sero gravados dados de paridade, de maneira que esses dados possam realizar a identificao de erros que possam ocorrer em algum dos discos. RAID LINEAR Nvel parecido com o zero, pois ambos tm o objetivo de criar um grande disco virtual sem redundncia. Porm, o que difere esse nvel do anterior, que o acesso aos dados seqencial, ou seja, no existe paralelismo como ocorre no nvel zero. Uma descrio mais detalhada sobre cada um dos nveis pode ser obtida aqui ou aqui. Ferramentas para uso de RAID Na LPIC-2 cobrada a configurao de um RAID via software. RAIDs via hardware iro depender da BIOS da placa controladora RAID, que por sua vez, ir depender do fabricante, o que vai alm do

escopo desse exame. RAID software pode ser criado utilizando as ferramentas mkraid, raidstart, raidstop e raidhotadd. As descries de cada uma das ferramentas sero vistas abaixo. mkraid Sintaxe: mkraid [opes] dispositivo-raid Ferramenta utilizada para a criao de uma matriz de dispositivos. Utiliza, por padro, o arquivo de configurao /etc/raidtab (descrito abaixo) para definio dos componentes do RAID. mkraid pode criar RAIDs 0, 1, 4, 5 e LINEAR. Exemplos de uso: # mkraid /dev/md0 # mkraid -c /etc/raid/raid.conf /dev/md0 O primeiro comando acima ir criar o RAID /dev/md0 de acordo com a configurao estabelecida em /etc/raidtab. raidstart Sintaxe: raidstart [opes] dispositivo-raid Comando utilizado para a inicializao de uma matriz j existente. Exemplos de uso: # raidstart /dev/md0 # raidstart -c /etc/raid/raid.conf /dev/md0 A primeira linha de comando ir ativar o RAID /dev/md0. A segunda linha, ir realizar o mesmo, porm, obtendo informaes sobre a matriz em /etc/raid/raid.conf. raidstop Sintaxe: raidstop [opes] dispositivo-raid Comando utilizado para a paralisao de uma matriz. Exemplos de uso: # raidstop /dev/md0 # raidstop -a -c /etc/raid/raid.conf O primeiro comando ir desativar a matriz /dev/md0 configurada em /etc/raidtab, bem como tambm ir desconfigura-la. O segundo comando ir realizar o mesmo para todas as matrizes contidas em

/etc/raid/raid.conf. raidhotadd Sintaxe: raidhotadd dispositivo-raid dispositivo-novo [dispositivo-novo ...] Ferramenta til para realizar a insero de novos discos ou parties a um RAID software sem a necessidade de recriar toda a matriz. Exemplos de uso: # raidhotadd /dev/md0 /dev/sdb1 # raidhotadd /dev/md0 /dev/sdb1 /dev/sdb2 O primeiro comando ir adicionar o dispositivo /dev/sdb1 a matriz /dev/md0. O segundo comando ir fazer o mesmo para dois dispositivos simultaneamente (/dev/sdb1 e /dev/sdb2). /etc/raidtab O arquivo /etc/raidtab o padro utilizado pelas ferramentas acima citadas para a configurao dos RAIDs via software do sistema. Esse arquivo de configurao dividido em diversas sees, uma para cada conjunto de matriz RAID. Cada seo iniciada com a palavra-chave raiddev. Segue abaixo um exemplo do arquivo /etc/raidtab. raiddev /dev/md0 raid-level 0 nr-raid-disks 2 persistent-superblock 0 chunk-size 8 device /dev/hda1 raid-disk 0 device /dev/hdb1 raid-disk 1 raiddev /dev/md1 raid-level 5 nr-raid-disks 3 nr-spare-disks 1

persistent-superblock 1 device /dev/sda1 raid-disk 0 device /dev/sdb1 raid-disk 1 device /dev/sdc1 raid-disk 2 device /dev/sdd1 spare-disk 0 Abaixo uma descrio sobre cada uma das opes presentes no arquivo. raiddev indica qual o dispositivo que ser associado a matriz RAID. raid-level qual o nvel RAID que ser utilizado. nr-raid-disks nmero de discos que faro parte do RAID. Discos Spare no devero ser includos. persistent-superblock se sero gravadas, em cada dispositivo da matriz, informaes sobre matriz RAID. necessrio caso queira que a RAID seja montada na inicializao do sistema. chunk-size ao ser gravado um dado qualquer no disco, ele dividido em vrias partes, de acordo com o nmero de discos, para gravar um pedao em casa um deles. chunk-size especifica o tamanho para gravao por vez em cada disco. O valor especificado em kilobytes. No exemplo acima, 4 indica que em cada disco os dados sero gravados em grupos 4KB. Se fssemos gravar 16KB de dados em 2 discos, os dados sero agrupados em grupos de 4KB sendo que o primeiro e o terceiro grupo de 4KB sero gravados no primeiro disco e o segundo e o quarto grupo de 4KB sero no segundo disco. device dispositivo que ser parte da matriz. raid-disk nmero de identificao do disco no conjunto RAID. spare-disk nmero de identificao do disco spare do conjunto RAID. Objetivo 2: Adicionando Novo Hardware Na LPIC-1 foram vistas algumas ferramentas simples para informaes sobre o hardware, como lspci e isapnp. Na LPIC-2 no existe uma grande diferena com relao a este tpico, cabendo apenas melhor identificar o momento apropriado para a aplicao de cada um desses comandos. Descobrindo o Hardware Antes de realizar a adio de qualquer hardware, importante poder identificar o que j existe no sistema e como o mesmo est configurado. Para tanto, as ferramentas a seguir podero nos informar sobre o que for preciso. lsmod Sintaxe:

lsmod [opes] O comando lsmod nos informa sobre todos os mdulos que esto atualmente carregados no sistema. Obter informaes sobre os mdulos nos permite identificar problemas, como conflitos de drivers. Exemplo de uso: # lsmod O comando exibe todos os mdulos carregados, assim como o tamanho em memria de cada um deles e possveis dependncias entre os mdulos. lsdev Sintaxe: lsdev O comando lsdev no aceita argumentos nem opes. Seu objetivo fornecer informaes sobre o hardware instalado. Ele basicamente formata os dados dos arquivos /proc/ioports, /proc/interrupts e /proc/dma em uma nica sada. Exemplo de uso: # lsdev Informa sobre os dispositivo quais canais DMA, IRQ e endereo de I/O cada dispositivo est utilizando. lspci Sintaxe: lspci [opes] Ferramenta utilizada para listar todos os barramentos PCI e os dispositivos conectados a eles no computador. Exemplos de uso: # lspci # lspci -vvv O primeiro e segundo comando fazem basicamente o mesmo, porm, o segundo nos informa sua sada com muito mais detalhes que a segunda linha de comando. Objetivo 3: Configurao de Kernel e Software Na LPIC-2 cobrada a configurao de caractersticas especiais de alguns hardwares, bem como alguns softwares, como o uso de LVM (Logical Volume Manager), que ser logo abaixo melhor explanado. Vamos primeiramente descrever o uso da ferramenta hdparm para configurao de discos rgidos. hdparm Sintaxe:

hdparm [flags] [dispositivo] Ferramenta para a manipulao de parmetros do disco rgido. Pode ser utilizada para definir valores ou apenas obt-los. As informaes fornecidas pelo hdparm podem o auxili-lo na resoluo de problemas ou melhoria de performance do disco. Exemplos de uso: # hdparm -a /dev/sda # hdparm -d 1 /dev/sda # hdparm -c 0 /dev/sda # hdparm -z /dev/sda O primeiro exemplo ir obter o nmero de setores que iro ser utilizados na tcnica de read-ahead, onde os dados so recuperados do disco rgido antes mesmo de serem lidos. O segundo exemplo indica que o disco ir utilizar o barramento DMA para transferncias de dados. O terceiro exemplo desabilita o suporte 32 bits IDE no disco rgido. O ltimo exemplo fora o kernel a realizar uma nova leitura da tabela de parties do dispositivo. LVM LVM o acrnimo de Logical Volume Manager. uma poderosa ferramenta disponvel no Linux que permite que os volumes sejam criados sob uma estrutura virtual independente da estrutura fsica. LVM trabalha como uma camada de abstrao entre o disco e o sistema de arquivos, permitindo o administrador, por exemplo, redimensionar facilmente uma partio, sem se preocupar onde fisicamente ela est armazenada. Porm, LVM no implementa nenhum mecanismo de recuperao de falhas. Ou seja, se um disco falhar, voc poder perder uma grande quantidade de dados. Abaixo as etapas bsicas para a criao de um volume LVM. 1. Indicar ao software LVM quais discos fsicos faro parte do volume virtual. Esses dispositivos estaro sob o controle do LVM. 2. Se houver mais de um volume fsico, ser necessrio criar um grupo de volumes que agrupe todos os dispositivos. 3. Dentro do grupo de volumes devero ser criados os volumes lgicos. Esses volumes lgicos podero ser utilizados por sistemas de arquivos. Iremos agora utilizar as ferramentas necessrias para a criao de toda a estrutura LVM. Inicializando um Disco ou Partio pvcreate Sintaxe: pvcreate [opes] dispositivo [dispositivo ...] Podemos indicar para participao do controle LVM parties especficas de dispositivos ou discos inteiros. Para tanto, necessrio utilizar o comando pvcreate. O dispositivos participantes de um controle LVM tambm so chamados Phisical Volume. Exemplos de uso:

# pvcreate /dev/sda # pvcreate /dev/sda1 /dev/sdb O primeiro exemplo inicializa o dispositivo /dev/sda para estar apto a participar de um LVM. O mesmo realiza o segundo comando, em uma partio (/dev/sda1) e disco rgido (/dev/sdb). Importante notar que para que as parties sejam inicializadas, necessrio que na tabela de parties elas sejam identificadas como sendo volumes LVM. Para tanto, utilize o fdisk e modifique o tipo das parties para 8e. Criando um Grupo de Volume Um grupo de volumes ocupa um ou mais dispositivos, sejam eles parties ou discos completos. Um grupo de volumes composto por volumes lgicos. Cada volume lgico pode ser composto de vrios discos fsicos, porm a possibilidade de falha substancialmente maior. Vamos utilizar a ferramenta vgcreate para a criao do grupo de volumes. vgcreate Sintaxe: vgcreate [opes] nome-do-volume dispositivo [dispositivo ...] O grupo de volumes (ou Volume Group) pode ser formado por quaisquer dispositivos em quaisquer discos, desde que a partio associada esteja identificada como sendo do tipo Linux LVM. Exemplos de uso: # vgcreate Volume01 /dev/sda1 /dev/sdb Cria o grupo de volumes chamado Volume01 composto pelos dispositivos /dev/sda1 e /dev/sdb. Criando um Volume Lgico lvcreate Sintaxe: lvcreate {-l tamanho-do-logical-extents | -L tamanho-do-volume-lgico } nome-do-volume O lvcreate utilizado para a criao dos volumes lgicos (tambm chamados Logical Volume) que podero finalmente ser utilizados como volumes virtuais. Esses volumes podem ser particionados de acordo com a necessidade e neles podero haver qualquer sistema de arquivos. Exemplos de uso: # lvcreate -L300M Volume01 # lvcreate -l 1000 Volume01 # lvcreate -l %60 -n part1 Volume01 O primeiro lvcreate ir realizar a criao de um volume lgico dentro do grupo de volumes Volume01. Esse volume lgico ter 300MB de tamanho. Os volumes lgicos podero ser utilizados para a instalao de sistemas de arquivos. O segundo comando ir realizar tambm a criao de um volume lgico, porm, em vez de especificar o tamanho que ter o volume, ser fornecido o nmero de

PE (Phisical Extends) que iro compor o volume. Cada PE possui um tamanho como 4MB (pode ser modificado esse valor na criao do PV). O ltimo comando faz o mesmo, com o diferencial de informar qual a porcentagem do grupo de volume que ser envolvida pelo volume lgico, alm de indicar qual ser o nome dado ao volume lgico. Exibindo Informaes Aps realizados os passos anteriores j possvel a instalao de um sistema de arquivos em cada um dos volumes lgicos. Para obter informaes sobre cada uma das unidades discutidas (PE, PV, VG e LV) so utilizadas diversas ferramentas que possuem nomes j intuitivos. Segue abaixo a lista das ferramentas utilizadas. pvdisplay informaes sobre um PV, como o tamanho do PE, tamanho do disco, uso e estado para uso. vgdisplay informaes sobre um VG, como modo de acesso, tamanho do volume e uso de PEs. lvdisplay praticamente as mesmas informaes que a ferramenta vgdisplay e algumas estatsticas interessantes de E/S. pvscan procura pelo sistema discos PV e exibe estatsticas gerais sobre os mesmos. Um bom stio web de referncia sobre LVM pode ser encontrado aqui. No irei entrar em maiores detalhes sobre redimensionamento de parties LVM bem como sobre outras operaes mais especficas, pois elas esto alm de minhas experincias. At onde pesquisei pela Internet, operaes mais avanadas com LVM do que as especificadas aqui no sero cobradas na prova LPIC-2. Objetivo 4: Configurando dispositivos PCMCIA Ao contrrio do que encontramos com WinModens ou alguns outros Hardwares especficos, os dispositivos PCMCIA so historicamente bem amigveis com Linux. Vamos primeiramente entender quais processos so envolvidos no uso desse tipo de hardware. O Hardware PCMCIA detectado durante o processo de inicializao do sistema operacional. Em ambientes RedHat, com kernel 2.4, o mdulo do kernel correspondente para suporte PCMCIA chamase kernel-pcmcia-cs. No Debian, no kernel 2.4, utilizado para suporte a placas PCMCIA o mdulo pcmcia-cs. No kernel 2.6, tanto o Debian como o RedHat utilizam o pacote de utilitrios pcmciautils para o subsistema PCMCIA no sistema operacional. Alguns utilitrios podem variar de um sistema para outro. Por exemplo, podemos utilizar o pacote hotplug para realizar a deteco a quente das placas PCMCIA. Outras distros, com kernel 2.4, utilizam sistemas de deteco de hardware diferentes, como o cardmgr, que o principal foco das provas LPIC-2. Porm, o propsito de ambos os sistemas permitir carregar o mdulo especfico para o tratamento da placa que foi plugada. O cardmgr tambm tem a capacidade de realizar o mesmo para a desconexo de placas. Todos esses eventos so registrados no arquivo /var/lib/pcmcia/stab. Arquivos de Configurao Diversos arquivos determinam o funcionamento do cardmgr. Quando uma placa PCMCIA plugada ao sistema, uma classe associada e assim definido qual ser a configurao e gerenciamento adotado para o dispositivo. As classes so associadas aos drivers dos dispositivos em /etc/pcmcia/config. As classes disponveis para dispositivos so: network, isdn, cdrom, ftl, serial, parport, ide, iccc e teles. A cada uma dessas classes poder ter associado um arquivo de configurao principal, chamado /etc/pcmcia/network, por exemplo, e outro arquivo contendo scripts opcionais (/etc/pcmcia/network.opts). Os arquivos das classes respectivas so invocados pelo cardmgr no momento em que as placas so conectadas ao sistema e no momento em que so desligadas.

Comandos PCMCIA Existem 2 comandos principais para a manipulao das placas pelo cardmgr. Uma descrio mais detalhada de ambas as ferramentas alm do prprio arquivo de configurao do cardmgr pode ser obtida aqui. cardmgr Sintaxe: cardmgr [opes] o processo encarregado de configurar em tempo de execuo os dispositivos PCMCIA conectados e desconectados do sistema. Seu comportamento definido de acordo com o arquivo /etc/pcmcia/config. Exemplos de uso: # cardmgr -q O exemplo acima executa o cardmgr de modo a no tocar um beep durante a conexo/desconexo de um dispositivo PCMCIA no slot correspondente. cardctl Sintaxe: cardctl comando [socket] cardctl scheme [nome] O comando cardctl pode ser utilizado para checar e configurar o status de um socket PCMCIA. O uso dessa ferramenta na prova muito pouco cobrado. Apenas funcionalidades bsicas podem vir a ser cobradas, por isso que detalhes so omitidos. Exemplos de uso: # cardctl scheme work # cardctl ident 1 # cardctl -s /var/lib/pcmcia.log O primeiro comando ir modificar o scheme para work. Podem ser associados diversos schemes diferentes, como configuraes prvias para funcionamento dos dispositivos. O segundo comando ir checar a identificao do carto PCMCIA no slot nmero 1. O ltimo comando ir ler informaes sobre os sockets contidas no arquivo /var/lib/pcmcia.log ao invs do padro /var/lib/pcmcia/stab.

Aula 5 Prova 201 Sistemas de Compartilhamento de Arquivos


Quinta-feira, Julho 26, 2007 in Certificaes, LPIC-2 Fui comprar minha Linux Magazine de todo ms e me deparei com uma boa surpresa! A coluna de tutoriais do Luciano Siqueira agora esta trazendo aulas sobre LPIC-2! Realmente muito legal para quem est estudando para mais esse nvel, assim como eu! J li a aula e digo que est bem simples e objetiva. Assim como fiz, o tema da primeira aula Kernel Linux. Recomendo para quem quer se aprofundar um pouco mais nesse mundo que me fascina mais a cada dia. Para acesso de assinante da revista, pode-se utilizar esse link. Mas como no vim para ficar aqui fazendo propaganda de revista, vamos para mais uma aula e mais contedo! Realmente tenho demorado entre uma aula e outra, porm, como j tenho explicado e nem adianta falar novamente, eu estava meio atarefado! Hoje vamos falar dos sistemas mais utilizados no mundo livre para o compartilhamento de arquivos. Os objetivos deste post so: Configurar um servidor Samba Configurar um servidor NFS Objetivo 1: Configurando um Servidor Samba O nome Samba pode trazer uma certa impresso errnea em ns brasileiros que esse seria um software genuinamento brasileiro. Porm, isso no verdade. Samba foi criado por Andrew Tridgell em 1992. O software possui esse nome pois o desenvolvedor original gostaria de utilizar um nome que contivesse o nome do protocolo que ele implementa, no caso o SMB (Server Message Block). Abriu o dicionrio e encontrou essa palavra aleatoriamente! O Samba implementa SMB/CIFS em sistemas Unix-like. SMB mais comumente designado como o conjunto de protocolos necessrios para interao em uma rede Microsoft Windows, incluindo servio de impresso, autenticao, compartilhamento de arquivos, resoluo de nomes, etc. A ltima grande verso do Samba a 3.0, que inclui caractersticas como Kerberos 5 e integrao com LDAP, suporte total a Unicode, relacionamento de confiana com PDCs Microsoft Windows e suporte a ACLs do Windows NT. Devido a tantas funcionalidades do Samba, vamos nos ater apenas s configuraes requeridas para o exame LPIC-2. Configurao do Samba para que atue como um PDC e manipule informaes de logins de clientes Microsoft Windows; Configurao do Samba para servir diretrios e impressoras para clientes Microsoft Windows; Acesso a recursos compartilhados por um servidor Microsoft Windows em um cliente Linux. Arquivos do Samba O Samba possui diversos arquivos, sejam eles binrios ou texto puro, para a realizao da configurao e execuo do servio. Segue uma descrio breve sobre cada um deles. /etc/samba/smb.conf Arquivo de configurao principal do Samba. /usr/bin/smbpasswd Cria ou modifica usurios Windows. /usr/bin/testparm Checa a sintaxe do arquivo /etc/samba/smb.conf. /usr/bin/smbstatus Lista informaes sobre conexes e arquivos abertos. /usr/sbin/smbd Servidor Samba. Responde por solicitaes de autenticao e acesso a

compartilhamentos. /usr/sbin/nmbd Servidor de nomes NetBIOS. /usr/bin/smbmount Monta um compartilhamento Windows no Linux. Os arquivos acima normalmente vm distribudos em pacotes separados de acordo com a finalidade do usurio. Em duas distribuies que tenho mais afinidade (Fedora e Ubuntu), eles so separados como descrito abaixo. samba-client ou smbclient necessrios para permitir acesso de clientes Linux a recursos Microsoft Windows. samba-server ou samba necessrio para prover recursos de servidor Windows. samba-common necessrio tanto para servidores como clientes Linux. Configurao Bsica do Samba A configurao do Samba bem simples! Sendo ela totalmente realizada no arquivo texto /etc/samba/smb.conf. Comentrios so definidos por linhas iniciadas com o smbolo do hash ou por pontos-e-vrgulas. Assim como outros softwares em ambiente Linux, os parmetros podem ter efeito global ou especfico. Os parmetros globais devero ser colocados exclusivamente na seo global e os demais parmetros especficos nas sees dos outros compartilhamentos. A seo global define configuraes que se aplicam para o prprio servidor Samba e os demais compartilhamentos. A identificao dessa seo realizada atravs da marcao [global] contida no arquivo de configurao. Vamos a um exemplo de seo global. [global] netbios name = localdomain workgroup = wordpress server string = Servidor Samba security = user Vamos agora ao significado de cada linha. [global] indicao de onde se inicia a seo global. Uso obrigatrio. netbios name nome NetBIOS para o servidor. workgroup nome do grupo de trabalho NetBIOS do servidor. Pode-se colocar aqui tambm o domnio ao qual o servidor pertence. server string uma descrio que enviada aos clientes. security como ser realizada a autenticao dos usurios do servidor. Os valores possveis so: share, user e domain. share faz com que a autenticao se baseie em um usurio e senha para cada compartilhamento. Ou seja, uma chave de autenticao compartilhada com quem quiser acessar o recurso. O segundo valor, user, o padro para o Samba 3.0. Ele autenticar de acordo com login e senha do usurio que desejar acessar o recurso. Ou seja, cada usurio ir utilizar seus dados pessoais para se autenticar. O ltimo valor, domain, prev que o Samba ser um PDC da rede que ir autenticar os usurios. As opes apresentadas no correspondem a todas as possveis. Uma lista completa com o significado de cada opo pode ser obtida atravs do comando man smb.conf. Alm disso, ferramentas como o testparm, presente no mesmo pacote do Samba, podem realizar uma anlise do arquivo de configurao para a deteco de possveis erros de sintaxe. Vamos ver como realizado o processo de autenticao de uma estao Microsoft Windows no Samba smbpasswd

Sintaxe: smbpasswd [opes] At antes do Windows 95OSR2, o login e senha dos usurios eram enviados em texto puro at o servidor de autenticao. Depois, devido obviamente a questes de segurana, foi adotado o uso de criptografia nesses dados para que eles possam trafegar na rede. utilizada pelo Windows criptografia chamada one-way, que indica que o dado uma vez criptografado no poder ser descriptografado. O Linux utiliza o mesmo conceito para autenticao no sistema, utilizando os arquivos /etc/passwd e /etc/shadow. Porm, o mtodo de criptografia utilizado por ambos os sistemas diferente. O que significa que no possvel autenticar diretamente uma mquina Windows nos arquivos padro do Linux. Para tanto, necessrio que os dados sejam ento transformados para o mtodo criptogrfico utilizado pela Microsoft. Isso feito utilizando a ferramenta smbpasswd. Exemplos de uso: smbpasswd -a thigu smbpasswd -x thigu smbpasswd -a -m comp-thigu O primeiro exemplo ir exportar a conta do usurio thigu para que seja utilizvel atravs do Samba. O usurio thigu j existe em /etc/passwd. O segundo exemplo ir excluir o usurio thigu da base de dados do Samba. O terceiro exemplo ir criar uma conta Samba para que a mquina comp-thigu possa se autenticar no domnio Samba, caso o mesmo esteja atuando como um PDC. A conta compthigu$ com o cifro aps o nome precisa anteriormente estar criada. As informaes geradas dos usurios so gravadas por padro em /etc/samba/smbpasswd. Se o arquivo no existir, ele criado no momento da adio do primeiro usurio. Segue abaixo um exemplo de contedo do arquivo /etc/samba/smbpasswd. thigu:49171:02D093CE93078E8FAAD3B435B51404EE:CAF13C4F321B608B27FD75D2 549BA53C:[U ]:LCT-46A149D9: Se compararmos com a entrada do usurio em /etc/shadow vamos perceber que os valores so totalmente diferentes, apesar da senha ser a mesma. thigu:ffdHECqf2hTwM:13714:0:99999:7::: Configurando o Samba para Atuar como PDC Para definir o Samba como um controlador de domnio necessrio adicionar a opo domain logons = yes na seo global do arquivo smb.conf. As vantagens do uso de domnios para gerncia de um ambiente de rede local so bem conhecidas, mas para citar as principais, integrao do recurso de autenticao, controle sobre os logins com simples administrao. Para antigas verses do Windows, ingressar no domnio era uma configurao apenas local da estao. Porm, em verses mais recentes do Windows, para que a mquina seja parte do domnio, ela precisa ser primeiramente cadastrada no controlador de domnio. Para tanto, necessrio criar uma conta utilizando a ferramenta smbpasswd, assim como foi demonstrado anteriormente. Essa conta especial no precisa possuir uma senha. Quando o Samba for configurado como um controlador do domnio, pode ser necessrio criar um

compartilhamento chamado netlogon. O compartilhamento netlogon padro em controladores de domnio Windows, pois nele ficaro localizados os scripts a serem executados pelos clientes durante o processo de logon e a poltica de segurana. Vamos a um exemplo prtico de uso. [netlogon] comment = Servico de logon path = /var/samba/netlogon guest ok = Yes browseable = No Todo compartilhamento no Samba deve iniciar com um nome entre colchetes, como sendo o nome visvel para acesso de usurios remotos. A segunda linha possui a chave comment que tem o intuito de criar uma descrio do volume. A terceira linha, path, tem o significado de indicar o caminho para o local que ser compartilhado pelo Samba. A prxima entrada, guest ok, caso seja assinada como yes, ou 1, ir possibilitar que usurios no-autenticados acessem recursos do servidor. A ltima linha, browseable, estando com a indicao no ou 0 indica que esse compartilhamento no ser exibido explicitamente. A configurao acima do compartilhamento netlogon deve ser acompanhada da opo global logon script indicando o nome do arquivo que ser executado dentro do compartilhamento indicado no path do netlogon. Veja o exemplo abaixo. logon script = start.bat No exemplo, o script /var/samba/netlogon/start.bat ser executado durante o login dos usurios no controlador de domnio. Configurando o Samba para Compartilhar Diretrios Talvez essa seja a funcionalidade do Samba mais difundida entre a comunidade: compartilhamento de arquivos na rede. Um compartilhamento definido em seu arquivo de configurao com um conjunto de parmetros iniciados pelo nome do compartilhamento entre dois colchetes. Vamos a um exemplo de compartilhamento. [homes] path = /home comment = Diretorio Pessoal browseable = no write list = @admin valid users = %S writable = no create mask = 0600 directory mask = 0700 E eis o significado de cada uma das linhas: [homes] identificao do compartilhamento pelos clientes. Deve ser um nome nico. path diretrio do sistema que ser compartilhado. Caso no seja especificado, o padro ser a pasta pessoal do usurio. comment assim como no compartilhamento padro netlogon, o comment tem o objetivo informar o usurio sobre o compartilhamento.

browseable esse controle indica se o compartilhamento ser visvel atravs de uma busca no servidor. write list indica que apenas usurios do grupo admin tero acesso de escrita ao compartilhamento. valid users por padro, o compartilhamento disponibilizado para acesso de qualquer usurio no servidor. Com essa opo, apenas os usurios indicados tero acesso a esse compartilhamento. A varivel %S ter o valor do usurio que tentar acesso ao compartilhamento. writable por padro, o compartilhamento disponibilizado para acesso somente leitura. Isso pode ser modificado com o argumento yes ou 1 nessa opo. create mask definio da mscara para a criao de novos arquivos. Deve-se informar o valor octadecimal das permisses desejadas. No exemplo, os arquivos sero criados com permisso de escrita e leitura apenas para o dono. directory mask o mesmo significado que a opo anterior, porm, aplicado a diretrios. O Samba possui por padro um compartilhamento chamado printers que serve para compartilhar as impressoras instaladas no servidor com os clientes da rede. As opes apresentadas at ento podem ser aplicadas sem maiores problemas. A nica especfica para esse compartilhamento ser a chave printable. Clientes Samba At o momento, consideramos que apenas o lado do servidor ser um ambiente Linux. Porm, existe a possibilidade dos clientes tambm serem do mesmo sistema operacional. Todas os servios oferecidos para estaes Windows tambm so disponveis para estaes Linux, como acesso a compartilhamentos e resoluo de nomes em servidores WINS. smbmount Sintaxe: smbmount [opes] servidor diretrio-local O acesso a um compartilhamento do Samba pode ser realizado com o uso da ferramenta smbmount, que possui sintaxe semelhante ao comando mount. Exemplos de uso: smbmount -o username=usuario,password=senha //servidor-samba/compartilhamento /mnt/compartilhamento smbmount //servidor-samba/compartilhamento /mnt/compartilhamento -o username=fulano O primeiro exemplo ir realizar a montagem local do diretrio remoto compartilhamento do servidor servidor-samba, passando os dados de login atravs das opes username e password. O segundo exemplo faz o mesmo que o primeiro, porm, no fornece a senha de acesso, que dever, ento, ser fornecida de maneira interativa. nmblookup Sintaxe: nmblookup [opes] [nome]

A ferramenta nmblookup utilizada para a resoluo de nomes WINS por estaes Linux. Exemplos de uso: querying comp-thigu on 10.10.10.255 10.10.10.10 comp-thigu<00> O exemplo acima envia um broadcast para todas as redes que o sistema esteja conectado at que em alguma delas haja uma resposta pela resoluo do nome NetBIOS comp-thigu. Objetivo 2: Configurando um Servidor NFS No s de Samba vive o mundo! Apesar do trocadilho infame, a importncia do NFS vem de antes mesmo do Samba. NFS, desenvolvido pela Sun Microsystems, o acrnimo de Network File System, ou em portugus bem dito, Sistema de Arquivo de Rede. Ou seja, o que um ext3 para um disco rgido, o NFS para vrios discos em rede! NFS funciona como uma camada de abstrao adicional, estando sob os sistemas de arquivos das vrias mquinas, de maneira que seja possvel que alguns trechos do disco virtual esteja acima de um ext3 enquanto em outro trecho acima de um ReiserFS. O NFS composto de diversos daemons que cooperam entre si. So eles: portmap dever estar em execuo para poder assim tratar as requisies RPC que forem solicitadas. Maiores informaes sobre o PortMapper aqui. nfsd ou rpc.nfsd manipula o servio de acesso a arquivos. statd ou rpc.statd gerencia o isolamento de recursos. lockd ou rpc.lockd faz o mesmo que o anterior. rpquotad ou rpc.rpquotad gerencia quotas. mountd ou rpc.mountd checa requisies de montagem. Exportando Diretrios no NFS Para tornar possvel a clientes acessarem algum diretrio atravs do NFS, necessrio realizar a criao de um registro no arquivo /etc/exports referente a esse diretrio. Cada linha do arquivo representa um diretrio exportado. E cada linha segue o padro abaixo. /diretorio [mquina](opes) Para melhor compreender a configurao do arquivo, vamos criar uma entrada de testes. Vamos, em nosso exemplo, exportar o diretrio /home para acesso remoto. A entrada a seguir poderia nos servir. /home 10.10.10.0/24(rw) No exemplo, o diretrio /home est compartilhado com todos da rede 10.10.10.10 com mscara 255.255.255.0 e acesso leitura-escrita. Outro exemplo abaixo. /home 10.10.10.4(ro,root_squash) Na entrada acima, apenas o computador de endereo IP 10.10.10.4 poder ter acesso. Esse acesso ser apenas leitura e devido opo root_squash, caso o cliente acesse com UID igual a zero, ou seja, root, seu UID ser mapeado para outro usurio do sistema, normalmente nfsnobody. ltimo exemplo: /home 10.10.10.2 (rw) Reparem nesse exemplo! Inicialmente poder nos fazer crer que o computador 10.10.10.2 teria acesso leitura-escrita sob o diretrio /home. Porm, existe um espao em branco aps o endereo IP. Qual a

importncia disso? Simplesmente como se houvesse um asterisco onde no h uma definio de qual o host. Ou seja, o exemplo acima igual ao de baixo. /home 10.10.10.2(ro) *(rw) Podemos especificar mais de um modo de acesso ao mesmo diretrio incluindo espaos entre os registros, como acima. A opo de modo somente leitura foi adicionada porque a padro, caso no seja especificado outro modo. Qualquer alterao que houver no arquivo torna necessrio reexport-lo. Ao contrrio do que ocorre normalmente em outros servios Linux, o NFS no precisa ser reiniciado para que as alteraes entrem em vigor, porm deve-se utilizar a ferramenta exportfs. exportfs Sintaxe: exportfs [opes] A ferramenta exportfs ir manter a tabela de sistemas de arquivos exportados pelo NFS. Deve ser utilizada sempre que alguma alterao no arquivo /etc/exports for realizada. Exemplos de uso: exportfs -a exportfs -u *:/home exportfs -r O primeiro exemplo ir exportar todas as novas entradas criadas no arquivo. Repare que se houver alteraes nas entradas j existentes, elas no sero efetivadas com essa opo. O segundo exemplo ir excluir a entrada na tabela do NFS a entrada referente ao /home compartilhado para todos. O ltimo exemplo ir reexportar todas as entradas, inclusive aquelas que j existiam. Sendo assim, essa opo deve ser utilizada quando realizar alterao em algum registro j criado. Devido a natureza da maneira como realizada a exportao do sistema de arquivos, aconselhvel restringir os hosts de acesso para apenas realmente necessrios. Quando o acesso for seletivo, possvel criar uma camada adicional de segurana com ferramentas como o TCP Wrappers ou mesmo IPtables. Cliente NFS Vimos como lidar com a configurao do servidor NFS, agora vamos tratar de como os clientes iro usufruir dos servios. Para tanto utilizaremos as ferramentas mount, nfsstat, showmount e rpcinfo. Para que o cliente utilize o NFS, necessrio que tanto o servidor como o cliente tenham o portmap instalado e iniciado. Alm disso, outros servios, como o rpc.stad e rpc.lockd devem tambm estar em execuo. Na verdade, os clientes podem funcionar como servidores NFS na rede tambm. Assim como os clientes Samba, para que seja possvel obter acesso ao diretrio remoto, necessrio mont-lo. Para tanto, utilizamos o velho e bem conhecido utilitrio mount. O mount ser utilizado de maneira semelhante quando for montar volumes locais. Vamos ao exemplo abaixo. # mount -t ext3 /dev/sda2 /mnt/sda2

Reparem que a opo t surgiu para indicar o tipo de sistema de arquivos que desejamos. Logo aps isso, temos que indicar o arquivo de blocos associado ao dispositivo. Por ltimo, o diretrio local que dar acesso ao contedo do dispositivo. Para o uso do NFS, iremos apenas modificar o tipo de sistema de arquivos (nfs) e indicar em que computador remoto devemos localizar o sistema de arquivos remoto. Vejam o exemplo abaixo. # mount -t nfs servidor:/home /mnt/home No exemplo, montamos o diretrio exportado /home disponibilizado pelo servidor para acesso local em /mnt/home. Para a montagem podemos utilizar ainda algumas opes especiais. Vejam a tabela abaixo. Opes de Montagem Descrio

fg Todas as tentativas de montagens so realizadas no foreground.bg A primeira fg (padro) e bg montagem realizada no foreground, sendo que as prximas so realizadas no background. hard Ao ocorrer uma falha de acesso ao servidor NFS durante o acesso a arquivos, o processo ser retomado do hard (padro) e ponto onde se iniciou os problemas.soft definido um timeout utilizando a opo soft timeo=tempo para acesso ao servidor NFS. Caso ocorra um timeout, poder ocorrer a perda de dados. nointr (padro) e nointr No permite que sejam enviados sinais ao processo do NFS.intr Permite intr que sejam enviados sinais ao processo do NFS. ro Somente leitura. rw Leitura e Escrita. nolock Desabilita o trancamento do local de montagem. No inicia o processo rpc.lockd. rsize Quantidade de bytes lidos por vez. O valor padro 1024 bytes. wsize Quantidade de bytes escritos por vez. O valor padro 1024 bytes. Com as opes de montagem podemos criar montagens personalizadas. Vejam o exemplo abaixo. # mount -o rsize=8192,wsize=8192,hard,intr servidor:/home /mnt/home Outras ferramentas, como o nfsstat, tm o propsito de informar estatsticas do servidor ou cliente NFS. Esse comando exibe o nmero de vezes que cada processo RPC foi realizado. Pode ser interessante para a criao de grficos ou resoluo de problemas. Experimentem digitar o exemplo abaixo. $ nfsstat A ferramenta showmount utilizada para visualizarmos quais diretrios esto exportados em um servidor NFS. Vamos a um exemplo de uso. $ showmount -a 10.10.10.10 O exemplo acima ir mostrar todos os pontos de montagens disponveis com o nvel de acesso de cada um deles do computador de endereo 10.10.10.10. Por ltimo, a ferramenta rpcinfo. Essa ferramenta foi comentada em um post anterior a esse.

Aula 6 Prova 201 Manuteno do Sistema Domingo, Julho 29, 2007 in Certificaes, LPIC-2 Esse tpico pode parecer um pouco confuso como foi para mim tambm ao iniciar minha leitura. Ele envolve diversas habilidades que um administrador de sistema deveria possuir para uma boa manuteno e uso do sistema computacional. Isso inclui capacidade para trabalhar com o servidor de logs do sistema, construo de pacotes de software e implementao de planos de backup. Os objetivos desse post so: Configurar um servidor de log central Empacotamento de software Operaes de backup Objetivo 1: Sistema de Log Quando se fala de sistema de log em ambientes Unix-like, j imagine que seja algo referente ao syslog. O syslog hoje a implementao de gerncia de log mais utilizada. A popularidade do syslog se deve ao fato de ser muito flexvel, permitindo que o servio opere sobre uma rede de dados, permitindo assim uma gerncia de logs centralizada na rede local. Porm, o syslog possui algumas fragilidades em sua implementao, pois no existe uma relao autenticada entre o cliente e servidor de logs. Tambm no existe criptografia nos dados trafegados na rede. E, para piorar ainda mais, os dados so enviados atravs de pacotes UDP, o que torna mais simples o Spoofing de endereos IP. O que fazer quando o servio no seguro? Fortalecer ao mximo o ambiente ao redor! Ou seja, em um ambiente ideal, os logs devem ser trafegados em uma rede de segurana reforada, de maneira que uma estao de trabalho no possa capturar o trfego facilmente. Configurando um Servidor Syslog A configurao padro do syslog no permite que ele seja utilizado como servidor. Para alterar essa configurao, necessrio iniciar o servio do syslog com a opo r. Se estivermos utilizando como servidor a distro RedHat, basta incluirmos a opo como valor da varivel SYSLOGD_OPTIONS do arquivo /etc/sysconfig/syslog. No Debian, a incluso da opo r deve ser realizada no script de inicializao do servio em /etc/init.d. Aps a modificao do syslog para que ele atue como um servidor de logs, necessrio reiniciar o daemon syslog, caso seja RedHat, ou sysklogd, caso seja Debian. Para reforar um pouco a segurana do syslog, ele suporta uma lista de clientes confiveis, que podem ser especificados atravs da opo l da mesma maneira como fizemos com a opo anterior. Configurando um Cliente Syslog Creio que no seja necessrio explicar detalhes especficos da configurao de um cliente syslog, pois esse contedo j abordado na LPIC-1. Vamos apenas relembrar de conceitos bsicos. O syslog organiza os logs de acordo com facilidades. Cada facilidade indica uma origem ou tipo de log possvel. As facilidades possveis so: authpriv, auth (ou security), cron, daemon, kern, lpr, mail, news, syslog, user, uucp e local0 a local7. Cada facilidade pode ser refinada em nveis de urgncia dos logs. Os nveis possveis so: debug, info, notice, warning, err, crit, alert e emerg. Quanto mais severo o log, mais baixo seu nvel. A tabela abaixo nos ajuda a entender isso. debug (7)

info (6) notice (5) warning (4) err (3) crit (2) alert (1) emerg (0) Isso quer dizer que caso configurarmos o syslog para registrar efeitos de alguma facilidade no nvel err, todos os nveis abaixo automaticamente sero logados. O syslog pode realizar diversas aes sobre um determinado log. Segue abaixo descrio de cada uma delas: Arquivo enviar as mensagens para serem gravadas em um arquivo em um sistema de arquivo local. Pipe enviar as mensagens como entrada para outra aplicao. Terminal enviar as mensagens para um terminal. Servidor enviar as mensagens para um servidor de logs. Usurio enviar as mensagens para um usurio local. O arquivo de configurao do syslog no cliente por padro /etc/syslog.conf. Vamos a um exemplo desse arquivo. kern.warning;*.err;authpriv.none /dev/tty10 mail.* |/dev/console *.crit @servidor A primeira linha ir enviar os logs da facilidade kern com nveis igual ou inferior a warning para o terminal tty10, assim como tambm todos os logs de nveis igual ou inferior a err e qualquer log da facilidade authpriv que no esteja enquadrado em nenhum dos oito nveis. A segunda linha do exemplo enviar todos os logs de quaisquer nveis da facilidade mail para /dev/console, que representa o terminal utilizado pelo usurio no momento. A ltima linha enviar os dados de qualquer facilidade com nveis igual ou inferior a crit para o computador de nome servidor. logger Sintaxe: logger [opes] [mensagem] Podemos utilizar a ferramenta logger para envio de mensagens da linha de comando para o syslog. Exemplos de uso: tail -f /var/log/message | logger -t logdomessage -p local6.info logger -p info -t terminal Teste de Log O primeiro exemplo acima ir enviar todos os logs que surgirem no arquivo /var/log/message para o

syslog local na facilidade local6 e nvel info. Alm disso, ser incluso um prefixo aos logs (logdomessage) de maneira a facilitar a identificao dos mesmos. O segundo exemplo envia para o syslog local, no nvel info, a mensagem Teste de Log utilizando o prefixo terminal. Objetivo 2: Empacotamento de Software Na LPIC-1 aprendemos a manipular pacotes de software no padro RPM (RedHat Package Management) e DEB (Debian Package). Na LPIC-2 o candidato dever ter habilidade para construir os prprios pacotes de software. Para uma pesquisa mais profunda sobre o assunto, recomendo o livro Gerenciamento de Pacotes de Software no Linuxde Rubem E. Ferreira, que pode ser encontrado aqui. Construindo Pacotes RPM Os pacotes distribudos no formato RPM tambm so distribudos em outro formato, chamado SRPM, ou Source RPM. Esse pacote no tem os binrios pr-compilados como qualquer outro pacote RPM comum. Em vez disso, esses pacotes possuem o cdigo-fonte necessrio para a compilao do software. Oras, mas para que um SRPM com o cdigo-fonte do aplicativo se posso baixar o cdigo-fonte direto com o desenvolvedor original? Simples! O SRPM alm do cdigo-fonte possui tambm todas as informaes necessrias para a construo do pacote j criadas. Isso inclui a lista de dependncias, comentrios, scripts de pr e ps instalao, aplicao de possveis patches e muito mais! Os arquivos SRPMs so identificados pelo sufixo no nome dos arquivos. Algo como src.rpm. Vamos utilizar o pacote do interpretador de comandos bash em nossos testes! Para tanto, inicialmente precisamos possuir as ferramentas de desenvolvimento para a compilao da aplicao. Em nosso exemplo precisamos das dependncias autoconf, ncurses-devel, bison e gcc. Aps isso, podemos realizar a reconstruo do pacote a partir do cdigo-fonte com o comando abaixo. # rpmbuild rebuild bash-3.2-9.fc7.src.rpm Aps o processo de configurao e compilao, se tudo ocorrer bem, o pacote RPM ser colocado em /usr/src/redhat/RPMS/i386/bash-3.2-9.i386.rpm. Ele j est pronto para ser instalado. Outra possibilidade para a modificao de um pacote RPM atravs de seu SRPM prosseguindo com a instalao do pacote SRPM normalmente. Ou seja, devemos realizar o comando abaixo. # rpm -ivh bash-3.2-9.fc7.src.rpm Com o pacote instalado, seu contedo foi armazenado nos diretrios contidos em /usr/src/redhat. Abaixo, uma descrio do objetivo de cada diretrio encontrado no endereo mencionado. BUILD utilizado durante o processo de reconstruo do pacote. RPMS onde sero colocados os pacotes finalizados. SOURCES local onde os arquivos fontes sero armazenados. SPECS contm arquivos especiais chamados SPECS (extenso .spec) que contm informaes sobre cada pacote, como a verso, nome do desenvolvedor/empacotador, descrio, pacotes dos quais depende, changelog. SRPMS onde os arquivos SRPMS so colocados ao final do processo. Faa ento as modificaes que forem preciso no contedo do pacote acessando os diretrios de /usr/src/redhat. Aps isso, necessrio acessar o diretrio SPECS onde encontraremos o arquivo bash.spec. Com esse arquivo podemos tambm reconstruir o pacote utilizando a ferramenta rpmbuild. Vejam o exemplo abaixo.

# rpmbuild -bb bash.spec De toda a sada que ser gerada, o que nos importa ser o trecho abaixo. Gravei: /usr/src/redhat/RPMS/i386/bash-3.2-9.i386.rpm Indica exatamente onde foi gravado o pacote resultado da compilao. O diretrio poder ser diferente no trecho referente arquitetura. O exemplo acima de uso do rpmbuild com a opo bb ir apenas gerar o pacote com os binrios. Caso quisssemos gerar o pacote binrio e tambm o pacote SRPM, bastaria substituir a opo utilizada por ba, como abaixo: # rpmbuild -ba bash.spec Se nossa inteno for apenas gerar o pacote SRPM, basta utilizar a opo bs. # rpmbuild -bs bash.spec Pronto! Reconstrumos um pacote RPM. Modificando Pacotes RPM Como vimos, o arquivo SPEC de um pacote um dos mais importantes. Nele so definidas todas as caractersticas do pacote. O arquivo composto de diversas entradas possveis, incluindo macros que so como aliases para comandos ou endereos, sees que definem scripts a serem executados, e registros apenas informativos. A tabela abaixo nos informa sobre o significado de uma das principais entradas contidas no arquivo. Entrada Name: Summary: Version: Release: License: Group: URL: Source: Patch: Buildroot: Requires: Prereq: BuildPrereq: %description %prep %setup Descrio Nome do pacote Breve descrio do pacote. Verso do pacote. Release do pacote. Licena do pacote. Grupo do pacote, sendo um dos grupos contidos em /usr/share/doc/rpmverso/GROUPS Stio web do pacote. Localizao dos fontes para construo do pacote. Patches a serem aplicados no cdigo-fonte ao construir o pacote. Os patches devem estar no diretrio /usr/src/redhat/SOURCES. Diretrio temporrio onde sero construdos os pacotes. Normalmente se utiliza a macro %{_tmppath}. Pacotes requeridos apenas no momento da instalao. Pacotes requeridos para estarem presentes no sistema para que o mesmo funcione adequadamente. Pacotes requeridos para a construo do pacote. Descrio do pacote. Script que ir descompactar o software e aplicar os patches. Macro para descompactao do cdigo-fonte.

%patch %build %configure %install %makeinstall %clean

%post %preun %postun %files %defattr %{_bindir} % Macro que define o diretrio /etc do sistema. {_sysconfdir} %{_mandir} Macro que define o diretrio dos manuais de referncia on-line do sistema. %{_datadir} Macro que define o diretrio /usr/share do sistema. %{_doc} Macro que define o diretrio /usr/share/doc do sistema. %{_libdir} Macro que define o diretrio /lib do sistema. %{_includedir} Macro que define o diretrio /usr/include do sistema. %changelog Histrico do pacote. Vamos observar um exemplo prtico de uso das entradas da tabela acima. Para tanto, utilizarei o mesmo pacote dos exemplos anteriores: bash. O exemplo abaixo poderia ser modificado de acordo com a necessidade do empacotador, porm, para efeitos didticos, apenas estou exibindo o contedo original (com alguns cortes) para entendermos o arquivo. Version: 3.2 Name: bash Summary: The GNU Bourne Again shell (bash) version %{version} Release: 9%{?dist} Group: System Environment/Shells License: GPL Url: http://www.gnu.org/software/bash As linhas acima nos informam a verso do software, nome, descrio breve, release, grupo ao qual o software pertence, licena do pacote e URL do projeto. Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{version}.tar.gz Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%{version}.tar.gz Source3: dot-bashrc Source4: dot-bash_profile Source5: dot-bash_logout Essas linhas indicam os arquivos fontes utilizados para a construo do pacote. Os fontes devem estar

Macro para aplicao dos patches. Script que ir construir o software. Macro utilizada para a configurao de softwares que utilizam autoconf ou automake. Equivale a executar o configure. Script que ir instalar o software. Macro utilizada para a instalao de softwares que utilizam autoconf ou automake. Equivale ao comando make install. Script de remoo dos arquivos e diretrios temporrios utilizados na construo do pacote. Script que ir ser executado aps a instalao do pacote. Script que ir ser executado antes da desinstalao do pacote. Script que ir ser executado aps a desinstalao do pacote. Seo que define os arquivos do pacote e seus atributos. Macro que define as permisses padro dos arquivos especificados em %files. Macro que define o diretrio /usr/bin do sistema.

no diretrio /usr/src/redhat/SOURCES. Patch1: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-001 Patch2: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-002 () Patch126: bash-setlocale.patch Patch130: bash-infotags.patch Patch131: bash-cond-rmatch.patch Patches a serem aplicados durante a construo do pacote. Requires: mktemp Requires(post): ncurses BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Essas linhas indicam que o pacote bash necessita do pacote mktemp para ser instalado. Atravs do uso de algumas macros, definido onde ser a localizao do diretrio temporrio para a construo do pacote. BuildRequires: texinfo bison BuildRequires: ncurses-devel BuildRequires: autoconf, gettext Os pacotes texinfo, bison, ncurses-devel, autoconf e gettext so necessrios para a construo do pacote. %description The GNU Bourne Again shell (Bash) is a shell or command language interpreter that is compatible with the Bourne shell (sh). Bash incorporates useful features from the Korn shell (ksh) and the C shell (csh). Most sh scripts can be run by bash without modification. This package (bash) contains bash version %{version}, which improves POSIX compliance over previous versions. Uma descrio completa do software contido no pacote. %prep %setup -q -a 2 %patch1 -p0 -b .001 %patch2 -p0 -b .002 () %patch126 -p1 -b .setlocale %patch130 -p1 -b .infotags %patch131 -p1 -b .cond-rmatch ()

Script responsvel por descompactar o software e aplicar os patches necessrios para a construo do pacote. %build autoconf %configure with-bash-malloc=no with-afs make CPPFLAGS=-D_GNU_SOURCE `getconf LFS_CFLAGS` () Script responsvel por construir o pacote, fazendo uso de diversas macros, como a %configure, que equivale a executar o arquivo configure contido no cdigo-fonte do software. %install rm -rf $RPM_BUILD_ROOT () Script que executar a instalao do pacote. %clean rm -rf $RPM_BUILD_ROOT () Script responsvel pela remoo dos arquivos do diretrio temporrio de construo de pacotes. %post HASBASH=" HASSH=" if [ ! -f /etc/shells ]; then > /etc/shells fi ()if [ -z "$HASSH" ]; then echo /bin/sh >> /etc/shells fi) < /etc/shells Script executado aps a instalao do pacote. %postun if [ "$1" = 0 ]; then /bin/grep -v ^/bin/bash$ < /etc/shells | \ /bin/grep -v ^/bin/sh$ > /etc/shells.new /bin/mv /etc/shells.new /etc/shells fi Script executado aps a desinstalao do pacote. %files -f %{name}.lang

%defattr(-,root,root) %doc CHANGES COMPAT NEWS NOTES POSIX %doc doc/FAQ doc/INTRO doc/article.ms () %{_mandir}/*/..1* %doc doc/*.ps doc/*.0 doc/*.html doc/article.txt Especificao dos arquivos que fazem parte do pacote, indicando seus atributos e documentao associada. %changelog * Mon Feb 12 2007 Tim Waugh <twaugh@redhat.com> 3.2-9 - Rebuild to link with libtinfo instead of libncurses. * Wed Feb 7 2007 Tim Waugh <twaugh@redhat.com> 3.2-8 - Avoid %%makeinstall (bug #225609). () Changelog do pacote. Ou seja, as modificaes que foram realizadas e os respectivos autores. Construindo Pacotes DEB ou DPKG Os pacotes DEB (Debian Package) ou tambm conhecidos como pacotes DPKG (Debian PacKaGe) tm o mesmo propsito dos pacotes RPM. um software licenciado como GPL que conta com desenvolvedores no apenas no mundo Linux, como tambm em outras variantes Unix. Os pacotes podem ser de dois tipos: pacotes binrios contm os binrios do software de maneira encapsulada, que torna mais simples e prtica a distribuio do cdigo. pacotes fonte contm o cdigo-fonte e procedimentos para gerao de pacotes binrios. Em nossos exemplos iremos utilizar os pacotes fonte para a criao e modificao de pacotes binrios. Para tanto, vamos utilizar ferramentas como dpkg-buildpackage e debuild. Os pacotes DEB j vm integrados ferramenta apt que iremos utilizar em nossos exemplos. O apt possui a opo junto com sua variante apt-get para permitir ao usurio baixar diretamente dos repositrios o pacote fonte. Vamos utilizar como exemplo o velho e simptico bash novamente! Para tanto, o primeiro comando que devemos realizar ser: $ apt-get source bash Considerando que estamos em um diretrio vazio, com esse comando sero baixados os arquivos bash_3.2-0ubuntu7.diff.gz, bash_3.2-0ubuntu7.dsc e bash_3.2.orig.tar.gz. O significado de cada um deles logo abaixo. diff.gz patch a ser aplicado no cdigo-fonte do software. dsc arquivo de controle do empacotamento do software. orig.tar.gz contm o cdigo-fonte original do software. changes no presente em nosso exemplo, descreve as mudanas feitas na release do pacote.

Com os arquivos em mos, vamos fazer um exemplo com a ferramenta dpkg-buildpackage. dpkg-buildpakage Sintaxe: dpkg-buildpackage [opes] O dpkg-buildpackage j realiza a criao do pacote binrio e o assina digitalmente com uma chave gpg. Exemplos de uso: # dpkg-buildpackage -kthigu@thigu.org $ dpkg-buildpackage -k thigu@thigu.org -r/opt/fakedebian O primeiro comando ir realizar a construo do pacote e o assinando com a chave do e-mail thigu@thigu.org. O segundo e ltimo exemplo realiza o mesmo, porm, como usurio comum apontando para um diretrio que seja possvel acesso de leitura-escrita. debuild Sintaxe: debuild [opes] debuild um script de automao do processo de gerao de pacotes de binrios ou fonte, de maneira a disponibilizarmos em um repositrio. Tem funcionamento parecido com o dpkg-buildpackage. Exemplos de uso: # debuild -kthigu@thigu.org $ debuild -kthigu@thigu.org -rootcmd=/opt/fakedebian Os dois exemplos tm propsito parecido com o do comando dpkg-buildpackage, porm, o debuild deixar prontos os pacotes para que sejam enviados a um repositrio Debian. Modificando Pacotes DEB Vimos como realizar a reconstruo dos pacotes de maneira simples utilizando duas ferramentas diferentes. Vamos ver agora como realizar a modificao nas caractersticas do pacote atravs dos arquivos de controle. Os arquivos de controle de pacotes DEB so basicamente control e rules. Ambos os arquivos se encontram no interior do diretrio debian do diretrio fonte do pacote. control Esse arquivo contm informaes sobre o pacote fonte e o pacote binrio. Informaes como dependncias, nome, verso, desenvolvedor, arquitetura. A tabela abaixo contm as entradas mais utilizadas. Entrada Source: Section: Priority: Maintener: Descrio Nome do pacote fonte. Seo do pacote. Prioridade de distribuio do pacote. Mantenedor do pacote.

Build-Depends: Dependncias para a construo do pacote. Standard-Version: Verso dos padres Debian do pacote. Uploaders: Uploader do pacote. Package: Nome do pacote binrio. Architeture: Arquitetura do pacote. Depends: Pacotes requeridos para a instalao do pacote. Description: Descrio do pacote. URL: URL do pacote. Vejamos o exemplo do arquivo debian/control do pacote fonte do bash. Source: bash Section: base Priority: required Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com> XSBC-Original-Maintainer: Matthias Klose <doko@debian.org> Standards-Version: 3.6.2 Build-Depends: autoconf, patch, bison, libncurses5-dev, texinfo, autotools-dev, debhelper (>= 4.1), texi2html, locales Build-Depends-Indep: tetex-bin Esse primeiro trecho do arquivo nos informa sobre o pacote fonte do bash. Package: bash Architecture: any Pre-Depends: ${shlibs:Pre-Depends} Depends: base-files (>= 2.1.12), debianutils (>= 2.15) Conflicts: bash-completion Replaces: bash-doc (<= 2.05-1), bash-completion Suggests: bash-doc Essential: yes Section: shells Priority: required Description: The GNU Bourne Again SHell Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh). . Bash is ultimately intended to be a conformant implementation of the IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2). . Included in the bash package is the Programmable Completion Code, by Ian Macdonald. () A segunda seo indica especificamente sobre o pacote binrio, como o nome, dependncias para instalao, conflito com possveis pacotes, sugestes e uma descrio. A descrio composta por uma breve e uma longa. A primeira linha uma descrio breve. A partir da segunda linha se inicia a

descrio longa, onde no recomendvel que se use linhas em branco, para que no haja uma separao da seo e essa se confunda com as prximas. rules Arquivo do tipo Makefile. Ou seja, um script que ser interpretado por /usr/bin/make -f . Esse arquivo contm as instrues necessrias para a compilao do cdigo-fonte do pacote. A tabela abaixo contm os principais alvos de compilao para esse arquivo. Descrio Alvo obrigatrio. Contm as instrues para configurar e compilar o cdigo-fonte. Alvo opcional. Contm as instrues para configurar e compilar o cdigo-fonte de build-arch: acordo com uma arquitetura. Alvo opcional. Contm as instrues para configurar e compilar o cdigo-fonte build-indep: independente da arquitetura. Alvo obrigatrio. Invoca os subalvos binary-arch e binary-indep. Eles iro binary: copiar/mover os arquivos executveis para o diretrio debian/nome-do-programa. Alvo obrigatrio. Contm as instrues para remover os arquivos temporrios da clean: compilao. Alvo opcional. Contm as instrues para obteno do cdigo-fonte original do get-orig-source: programa. Alm dos alvos mais comuns, tambm existem algumas variveis de ambiente em comum com a maior parte dos pacotes. A tabela abaixo tem o significado das mais populares. Varivel de Ambiente Descrio DEB_BUILD_ARCH Arquitetura Debian onde o pacote ser construdo. DEB_HOST_ARCH Arquitetura Debian onde o pacote ser instalado. DEB_BUILD_GNU_TYPE Tipo de sistema GNU onde o pacote ser construdo. DEB_HOST_GNU_TYPE Tipo de sistema GNU onde o pacote ser instalado. DEB_BUILD_GNU_CPU Tipo de CPU onde o pacote ser construdo. DEB_HOST_GNU_CPU Tipo de CPU onde o pacote ser instalado. DEB_BUILD_GNU_SYSTEM Tipo de sistema operacional onde o pacote ser construdo. DEB_HOST_GNU_SYSTEM Tipo de sistema operacional onde o pacote ser instalado. Vamos ao exemplo nosso de cada dia! #! /usr/bin/make -f # -*- makefile -*#export DH_VERBOSE=1 unexport LANG LC_ALL LC_CTYPE LC_COLLATE LC_TIME LC_NUMERIC LC_MESSAGES # architecture dependent variables DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) Alvo build:

DEB_HOST_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) () As linhas acima fazem a declarao de algumas variveis de ambiente descritas anteriormente. build: before-build bash-build minimal-build static-build preinst-build check before-build: : # see #327477, needed to have HAVE_DEV_STDIN defined () bash-build: $(MAKE) -f debian/rules do-build-bash \ () minimal-build: $(MAKE) -f debian/rules do-build-min \ () minimal-configure: $(MAKE) -f debian/rules do-configure-min \ () static-build: $(MAKE) -f debian/rules do-build-static \ () static-configure: $(MAKE) -f debian/rules do-configure-static \ () all-bashdb-build: bashdb-build bashdb-build: DEBUGGER_START_FILE=/usr/share/bashdb/dbg-main.inc \ () bashdb-configure: DEBUGGER_START_FILE=/usr/share/bashdb/dbg-main.inc \ () bashdb-doc-build: stamps/stamp-build-bashdb-doc stamps/stamp-build-bashdb-doc: () bash-doc-build: stamps/stamp-build-bash-doc stamps/stamp-build-bash-doc:

() check: stamps/stamp-check stamps/stamp-check: bash-build () clean: dh_testdir dh_testroot () dh_clean preinst-build: debian/bash.preinst debian/bash.preinst: debian/bash.preinst.c () install: bash-install bash-install: bash-build stamps/stamp-install-bash stamps/stamp-install-bash: stamps/stamp-build-bash dh_testdir dh_testroot dh_clean -k -p$(p) -p$(p_doc) -p$(p_bins) dh_installdirs -p$(p) \ () As linhas resumidas acima nos mostram os mais diversos tipos de alvos possveis para o make. No exemplo temos, alm das j tratadas anteriormente, before-build, bash-build, bash-configure, minimalbuild, minimal-configure, static-build, static-configure, etc. Objetivo 3: Operaes de Backup ltimo objetivo dessa aula de hoje! Para a LPIC-2 interessante que o candidato possa criar uma poltica de backup simples para ambientes standalone, ou seja, uma estratgia de backup em um nico servidor em vrios sem uso de recursos de rede, como a criao de SANs (Storage Area Network). O candidato deve apenas estar ciente de alguns detalhes importantes quando pensamos em backup. Primeiramente, o objetivo de se realizar esse tipo de planejamento poder fazer com que haja sempre disponibilidade dos dados importantes para a empresa. Sendo assim, a poltica de backup deve prever recuperao de desastres, como terremotos, enchentes, furaes, ou quaisquer outros fatores, naturais ou no, que faam com que recursos fiquem inoperantes ou indisponveis. Existem trs tipos de desastres, se fssemos classific-los. Natural tornados, furaes, inundaes, fogo. Humano erro de operao, sabotagem, ataque terrorista. Ambiente falha de equipamento, erro de software, falha de rede. Para a maior parte desses desastres necessrio que haja uma cpia dos dados em um local remoto, de maneira a poder evitar que um nico sinistro torne todos os dados indisponveis. Sendo assim, necessrio definirmos os pontos de falhas e analisarmos o ciclo de riscos e a probabilidade de cada um deles. O plano de backup externo deve levar em conta os seguintes fatores.

rea geogrfica distncia da organizao e a probabilidade do local externo ser afetado pelo mesmo desastre. Acessibilidade tempo para recuperar os dados do local externo, caso necessrio. Segurana capacidade de manter de maneira segura os dados, at mesmo os mais sensveis. Ambiente estrutura para armazenamento dos dados (temperatura, umidade, preveno contra fogo, etc). Custo custo de manuteno. Todas as variveis mencionadas iro diretamente afetar o modo como ser realizado o plano de backup. Afinal, o plano tem quer compatvel com a realidade da empresa. Existiro situaes em que os dados devam ser transportados por equipes de seguranas armados at localizaes distantes, porm, outras situaes podem requerer apenas que seja enviada uma cpia do dado de uma partio para outra no sistema, ou talvez uma sincronizao dos dados atravs da Internet com um computador remoto. Durante a criao da estratgia de backup devemos tambm conhecer exatamente quais dados precisamos proteger, ou seja, do que fazer backup! Afinal, em um servidor de arquivos com metade de seu armazenamento apenas com msica de usurios desocupados, talvez realizar um backup de tudo no seja interessante, ou talvez seja, tudo ir depender das necessidades da sua organizao.

Exerccios Prova 201


Segunda-feira, Julho 30, 2007 in Certificaes, LPIC-2 Leu todos os posts sobre a LPIC-2 e achou tudo fcil? Decorou cada opo e parmetro das dezenas de comandos passados? Perdeu noites em frente ao computador estudando para essa certificao? Pois bem, agora precisamos saber se voc realmente aprendeu! Para isso, elaborei 20 questes garimpadas em diversos simulados que encontrei pela Internet. As respostas sero publicadas em outro post, para que todos tentem realmente respond-las! Antes que algum fique procurando em vo a resposta para algumas das questes nos textos, saibam que alguns detalhes realmente no apareceram, sejam por serem muito especficos ou por no ter tido a oportunidade de ter escrito a respeito quando estava editando o texto. Mas a LPI isso mesmo, sempre nos surpreende! Questo 1 Qual das seguintes atividades devemos realizar antes de poder utilizar uma imagem Initrd em um sistema Debian? 1. 2. 3. 4. Criar um kernel monoltico. Trocar do LILO para o GRUB. Compilar suporte a cramfs no kernel. Instalar todos os mdulos necessrios ao Initrd.

Questo 2 Foi pedido a voc que transfira o contedo de um pequeno disco rgido (/dev/hdb) para um grande disco rgido (/dev/hdc). Qual dos seguintes comandos ir fazer isso de maneira mais eficiente? 1. 2. 3. 4. cp -s /dev/hdb/hdc dd if=/dev/hdb of=/dev/hdc dd bs=8k if=/dev/hdb of=/dev/hdc dd bs=1k if=/dev/hdb of=/dev/hdd

Questo 3 Quais das seguintes linhas contm informaes em tempo-real que pode nos ajudar a resolver problemas NFS? (Escolha dois) 1. 2. 3. 4. /proc/fs/exports /etc/fstab /etc/exports /proc/fs/nfsd

Questo 4 Qual das seguintes linhas envia todas as mensagens de nvel emerg para o arquivo /var/log/emerg.log? 1. 2. 3. 4. /var/log/emerg.log emerg.* *.emerg /var/log/emerg.log /var/log/crit.log /dev/console:0:/var/log/emerg.log emerg.* /var/log/emerg.log

Questo 5

Voc deseja temporariamente proibir um usurio de utilizar a conta chamada funcionario1 em seu controlador de domnio Samba. No entanto, o mesmo usurio dever poder ainda ter acesso a outros recursos, como se autenticar no servidor X e SSH. Qual a melhor soluo para realizar isso? 1. Editar o arquivo /etc/passwd como root e inserir um caracter de comentrio (#) no usurio funcionario1. 2. Executar smbpasswd -x funcionario1. 3. Editar o arquivo /etc/samba/smbusers e inserir um caracter de comentrio (#) no usurio funcionario1. 4. Executar smbpasswd -d funcionario1. Questo 6 Considere o seguinte trecho de cdigo. %files -f %{name}.lang %defattr(-,root,root) %doc CHANGES COMPAT NEWS NOTES POSIX %doc doc/FAQ doc/INTRO doc/article.ms A que tipo de cdigo isso se refere? 1. 2. 3. 4. Um arquivo Debian Um tpico Makefile O arquivo /etc/manpath.config Um arquivo SPEC RPM

Questo 7 Voc no est com o servidor Samba em execuo. Voc v o arquivo /etc/samba/smb.conf e verifica as seguintes linhas no-comentadas. wins support = yes wins server = 10.10.10.10 Observando essas linhas, voc pode identificar o problema sendo: 1. 2. 3. 4. Seu servidor Samba est tentando acesso a um servidor WINS inoperante. O servidor WINS est utilizando endereo privado. A entrada deveria ser wins support = 1. O servidor Samba est configurado como cliente e servidor WINS simultaneamente.

Questo 8 Voc baixou a ltima verso do kernel Linux. Qual das etapas a seguir dever ser realizada antes de se executar um make gconfig? 1. 2. 3. 4. oldconfig -p make restore make oldconfig make mrproper

Questo 9 Voc deseja rodar o fsck em um sistema de arquivos de maneira no agendada. Alm disso, qualquer reparo necessrio dever ser realizado automaticamente. Quais opes do fsck que teremos que utilizar? (Escolha dois)

1. 2. 3. 4.

-y -f -n -r

Questo 10 Um usurio no consegue se logar. Voc verifica no arquivo /etc/shadow que existe apenas um asterisco no segundo campo da entrada do usurio no arquivo. O que dever ser feito para resolver o problema? 1. Editar o arquivo /etc/shadow usando um editor de texto e entrar com a senha padro. 2. Usar o comando passwd para criar uma nova senha para o usurio. 3. User o comando shadowconfig para criar um novo arquivo shadow, porque o anterior se encontra corrompido. 4. Editar o arquivo /etc/shadow e remover o asterisco. Questo 11 Qual das seqncias abaixo descreve a correta ordem do boot? 1. 2. 3. 4. O gerenciador de boot inicia, carrega o kernel, inicializa o hardware, inicia os servios. O gerenciador de boot inicia, inicia os servios, inicializa o hardware, carrega o kernel. Inicializa o hardware, o gerenciador de boot inicia, carrega o kernel, inicia os servios. O gerenciador de boot inicia, inicializa o hardware, carrega o kernel, inicia os servios.

Questo 12 Considerando o arquivo /etc/exports. /share cliente1(rw) /share cliente1 (rw) Qual o resultado dessas duas entradas? 1. A entrada de cima ir exportar o diretrio /share com permisso leitura-escrita para qualquer usurio do host cliente1. A entrada de baixo ir exportar o diretrio /share com permisso somente-leitura para qualquer usurio de qualquer host. 2. A entrada de cima ser ignorada, porque existe um erro de sintaxe. A entrada de baixo ir exportar /share com qualquer um do host cliente1 com permisso leitura-escrita. 3. A entrada de cima ir exportar o diretrio /share com permisso somente-leitura para todos os hosts, com exceo de cliente1. A entrada de baixo ir exportar /share com permisso somente-leitura para o host cliente1, mas com permisso de leitura-escrita para os outros hosts. 4. A entrada de cima ir exportar o diretrio /share com qualquer usurio de cliente1 com permisso leitura-escrita. A entrada de baixo ser ignorada porque no est formada de maneira correta. Questo 13 Voc deseja verificar a ltima vez que foi escrita alguma informao de boot na partio /dev/hda2. Quais dos seguintes comandos fazem isso? (Escolha dois) 1. tune2fs -l /dev/hda2 2. fsck -l /dev/hda2 3. fdisk -l /dev/hda2

4. dumpe2fs -h /dev/hda2 Questo 14 Qual dos seguintes fatores no influencia na escolha do tipo de mdia a ser utilizada em um backup? 1. 2. 3. 4. Quo freqente os dados se modificam. Quanto tempo precisa preservar os dados. Quantidade de dados a ser gravada. Qual a freqncia de acesso ao backup.

Questo 15 Voc tem cinco discos de 18GB cada, utilizados em um RAID 5, com um desses discos utilizados como spare. Qual o espao real de armazenamento? 1. 2. 3. 4. 5. 18GB 34GB 54GB 72GB 90GB

Questo 16 Voc tem que montar um volume NFS exportado como /data no host chamado servidor. O host no suporta locking. Qual deve ser o comando apropriado para realizar isso? 1. 2. 3. 4. 5. mount -a -t nfs mount -o locking=off servidor:/data /mnt/data mount -o nolocking servidor:/data /mnt/data mount -o nolock servidor:/data /mnt/data mount -o nolock/data@servidor /mnt/data

Questo 17 Para listar os sistemas de arquivos exportados por um servidor NFS podemos utilizar o comando _________ -e servidor. 1. 2. 3. 4. 5. show mount showmount shownfs nfsclient

Questo 18 Quando uma partio est formada como ext2, uma porcentagem dos blocos reservada para uso do usurio root. Depois de criado o sistema de arquivos, qual o utilitrio que podemos utilizar para modificar isso? 1. 2. 3. 4. 5. hdparm mke2fs tune2fs mount e2fsck

Questo 19

Se um compartilhamento criado no servidor Samba, porm, no especificada a varivel path, a qual dos seguintes diretrios o compartilhamento ir se referenciar? 1. 2. 3. 4. 5. /tmp /var/spool/samba ~/.samba /var/samba /var/samba/tmp

Questo 20 Qual comando utilizado para re-adicionar uma partio ao controle do software RAID? 1. 2. 3. 4. raidhotadd raidadd addraid raidaddhot

Resolveram as questes? Espero que tentem resolv-las, pois no h melhor segredo para qualquer estudo que o treino das habilidades adquiridas. Ento, como prometido, vamos s respostas de cada uma das questes. Para ficar mais simples, irei colocar na ntegra as questes com a(s) alternativa(s) e uma explicao sobre a resposta correta logo abaixo. Questo 1 Qual das seguintes atividades devemos realizar antes de poder utilizar uma imagem Initrd em um sistema Debian? 1. 2. 3. 4. Criar um kernel monoltico. Trocar do LILO para o GRUB. Compilar suporte a cramfs no kernel. Instalar todos os mdulos necessrios ao Initrd.

Explicao: No Debian, ao contrrio do que ocorre no RedHat, necessrio, para a gerao da imagem Initrd, que o kernel possua suporte a Cramfs (compressed ROM filesystem), que um sistema de arquivos somente leitura utilizado na imagem de inicializao, assim como o Squashfs. Veja como criar uma imagem Initrd no Debian aqui. Questo 2 Foi pedido a voc que transfira o contedo de um pequeno disco rgido (/dev/hdb) para um grande disco rgido (/dev/hdc). Qual dos seguintes comandos ir fazer isso de maneira mais eficiente? 1. 2. 3. 4. cp -s /dev/hdb/hdc dd if=/dev/hdb of=/dev/hdc dd bs=8k if=/dev/hdb of=/dev/hdc dd bs=1k if=/dev/hdb of=/dev/hdd

Explicao: Utilizar o dd especificando o tamanho dos blocos a serem copiados uma maneira mais eficiente do que fazer com que o dd copie byte a byte os dados da origem. O ideal que o tamanho do bloco especificado seja algum mltiplo prximo do tamanho do bloco do sistema de arquivos. Questo 3 Quais das seguintes linhas contm informaes em tempo-real que podem nos ajudar a resolver problemas NFS? (Escolha dois)

1. 2. 3. 4.

/proc/fs/exports /etc/fstab /etc/exports /proc/fs/nfsd

Explicao: Os meta-arquivos contidos no /proc possuem informaes sobre o estado do daemon NFS e a lista de sistemas de arquivos exportados. Informaes sobre o NFS aqui. Questo 4 Qual das seguintes linhas envia todas as mensagens de nvel emerg para o arquivo /var/log/emerg.log? 1. 2. 3. 4. /var/log/emerg.log emerg.* *.emerg /var/log/emerg.log /var/log/crit.log /dev/console:0:/var/log/emerg.log emerg.* /var/log/emerg.log

Explicao: A sintaxe correta do arquivo syslog.conf : facilidade.nvel ao. Veja mais sobre syslog aqui. Questo 5 Voc deseja temporariamente proibir um usurio de utilizar a conta chamada funcionario1 em seu controlador de domnio Samba. No entanto, o mesmo usurio dever poder ainda ter acesso a outros recursos, como se autenticar no servidor X e SSH. Qual a melhor soluo para realizar isso? 1. Editar o arquivo /etc/passwd como root e inserir um caracter de comentrio (#) no usurio funcionario1. 2. Executar smbpasswd -x funcionario1. 3. Editar o arquivo /etc/samba/smbusers e inserir um caracter de comentrio (#) no usurio funcionario1. 4. Executar smbpasswd -d funcionario1. Explicao: A opo -d da ferramenta smbpasswd apenas desabilita o usurio na base de dados do Samba, que por sua vez no utilizada para a autenticao do usurio em nenhum dos servios citados (X, SSH). Mais sobre o Samba aqui. Questo 6 Considere o seguinte trecho de cdigo. %files -f %{name}.lang %defattr(-,root,root) %doc CHANGES COMPAT NEWS NOTES POSIX %doc doc/FAQ doc/INTRO doc/article.ms A que tipo de cdigo isso se refere? 1. 2. 3. 4. Um arquivo Debian Um tpico Makefile O arquivo /etc/manpath.config Um arquivo SPEC RPM

Explicao: A seo %files utilizada nos arquivos pacote.spec, que fazem parte dos pacotes SRPMS (Source RPM). Na seo so especificados atributos para os arquivos, bem como identificao dos tipos entre eles. Mais informaes sobre isso aqui.

Questo 7 Voc no est com o servidor Samba em execuo. Voc v o arquivo /etc/samba/smb.conf e verifica as seguintes linhas no-comentadas. wins support = yes wins server = 10.10.10.10 Observando essas linhas, voc pode identificar o problema sendo: 1. 2. 3. 4. Seu servidor Samba est tentando acesso a um servidor WINS inoperante. O servidor WINS est utilizando endereo privado. A entrada deveria ser wins support = 1. O servidor Samba est configurado como cliente e servidor WINS simultaneamente.

Explicao: O parmetro wins support = yes, utilizado no arquivo /etc/samba/smb.conf, torna o servidor Samba o servidor WINS primrio da rede, de maneira que no possvel que um servidor primrio WINS seja cliente de outro servidor WINS. Mais informaes sobre Samba aqui. Questo 8 Voc baixou a ltima verso do kernel Linux. Qual das etapas a seguir dever ser realizada antes de se executar um make gconfig? 1. 2. 3. 4. oldconfig -p make restore make oldconfig make mrproper

Explicao: Para que seja possvel realizar a compilao do kernel, necessrio que haja previamente criado as configuraes do mesmo. O comando make oldconfig ir reaproveitar as configuraes do kernel anterior e apenas interagir com o usurio quando houver opes que no haviam no kernel anterior. Mais informaes sobre o Kernel e sua compilao aqui. Questo 9 Voc deseja rodar o fsck em um sistema de arquivos de maneira no agendada. Alm disso, qualquer reparo necessrio dever ser realizado automaticamente. Quais opes do fsck que teremos que utilizar? (Escolha dois) 1. 2. 3. 4. -y -f -n -r

Explicao: A opo -y ir configurar o fsck para que responda por yes a qualquer pergunta binria que seria realizada ao usurio. A opo -f ir forar uma checagem no sistema de arquivos mesmo que ele tenha sido recentemente checado. Mais informaes sobre a ferramenta fsck aqui. Questo 10 Um usurio no consegue se logar. Voc verifica no arquivo /etc/shadow que existe apenas um asterisco no segundo campo da entrada do usurio no arquivo. O que dever ser feito para resolver o problema? 1. Editar o arquivo /etc/shadow usando um editor de texto e entrar com a senha padro. 2. Usar o comando passwd para criar uma nova senha para o usurio.

3. Usar o comando shadowconfig para criar um novo arquivo shadow, porque o anterior se encontra corrompido. 4. Editar o arquivo /etc/shadow e remover o asterisco. Explicao: A nica maneira de inserir uma senha vlida para usurios atravs da ferramenta passwd, que atravs de algoritmos de criptografia hash, cria o resultado que ser armazenado no arquivo /etc/shadow. Questo 11 Qual das seqncias abaixo descreve a correta ordem do boot? 1. 2. 3. 4. O gerenciador de boot inicia, carrega o kernel, inicializa o hardware, inicia os servios. O gerenciador de boot inicia, inicia os servios, inicializa o hardware, carrega o kernel. Inicializa o hardware, o gerenciador de boot inicia, carrega o kernel, inicia os servios. O gerenciador de boot inicia, inicializa o hardware, carrega o kernel, inicia os servios.

Explicao: Mais informaes sobre o processo de boot podem ser obtidas aqui. Questo 12 Considerando o arquivo /etc/exports. /share cliente1(rw) /share cliente1 (rw) Qual o resultado dessas duas entradas? 1. A entrada de cima ir exportar o diretrio /share com permisso leitura-escrita para qualquer usurio do host cliente1. A entrada de baixo ir exportar o diretrio /share com permisso somente-leitura para qualquer usurio de qualquer host. 2. A entrada de cima ser ignorada, porque existe um erro de sintaxe. A entrada de baixo ir exportar /share com qualquer um do host cliente1 com permisso leitura-escrita. 3. A entrada de cima ir exportar o diretrio /share com permisso somente-leitura para todos os hosts, com exceo de cliente1. A entrada de baixo ir exportar /share com permisso somente-leitura para o host cliente1, mas com permisso de leitura-escrita para os outros hosts. 4. A entrada de cima ir exportar o diretrio /share com qualquer usurio de cliente1 com permisso leitura-escrita. A entrada de baixo ser ignorada porque no est formada de maneira correta. Explicao: O espao existente entre o nome do host e as opes na segunda entrada considerado um erro de lgica, que ir causar a interpretao separada do cliente1 com (rw). Ou seja, o host cliente1 ter as opes padres (ro,all_squash,sync) aplicadas a ele. Quando no h especificado o host, consideramos que seja qualquer um, ou seja, *. Podemos reescrever a segunda entrada: /share cliente1(ro,all_squash,sync) *(rw). Maiores informaes sobre o NFS aqui. Questo 13 Voc deseja verificar a ltima vez que foi escrita alguma informao de boot na partio /dev/hda2. Quais dos seguintes comandos fazem isso? (Escolha dois) 1. 2. 3. 4. tune2fs -l /dev/hda2 fsck -l /dev/hda2 fdisk -l /dev/hda2 dumpe2fs -h /dev/hda2

Explicao: Ambas as ferramentas produzem as mesmas informaes. Maiores informaes aqui. Questo 14 Qual dos seguintes fatores no influencia na escolha do tipo de mdia a ser utilizada em um backup? 1. 2. 3. 4. Quo freqente os dados se modificam. Quanto tempo precisa preservar os dados. Quantidade de dados a ser gravada. Qual a freqncia de acesso ao backup.

Explicao: Quantas vezes o dado modificado irrelevante aps ele ter sido backupeado. Questo 15 Voc tem cinco discos de 18GB cada, utilizados em um RAID 5, com um desses discos utilizados como spare. Qual o espao real de armazenamento? 1. 2. 3. 4. 5. 18GB 34GB 54GB 72GB 90GB

Explicao: Temos cinco discos de igual tamanho. Porm, um dos discos no ser utilizado diretamente, ao ser designado apenas como spare, ou seja, disco de backup. Sendo assim, temos 4 discos para aplicar RAID 5. No esquema RAID 5, considerando que possumos um mnimo de 3 discos, sempre haver a perda do espao equivalente ao de um deles para o armazenamento da paridade dos dados gravados. O que diferencia o RAID 5 do RAID 3 onde ser localizada a paridade, sendo que no primeiro esses dados so gravados ao longo de todos os discos, enquanto no segundo h um disco dedicado para esse propsito. Teremos espao ento equivalente a 3/4 da soma dos quatro discos. 18 GB + 18 GB + 18 GB = 54 GB. Mais informaes sobre os tipos de RAID e como configur-los aqui. Questo 16 Voc tem que montar um volume NFS exportado como /data no host chamado servidor. O host no suporta locking. Qual deve ser o comando apropriado para realizar isso? 1. 2. 3. 4. 5. mount -a -t nfs mount -o locking=off servidor:/data /mnt/data mount -o nolocking servidor:/data /mnt/data mount -o nolock servidor:/data /mnt/data mount -o nolock/data@servidor /mnt/data

Explicao: Antigos servidores talvez no suportem o recurso de locking, sendo assim, necessrio o uso da opo de montagem nolock. Maiores informaes sobre NFS aqui. Questo 17 Para listar os sistemas de arquivos exportados por um servidor NFS podemos utilizar o comando _________ -e servidor. 1. 2. 3. 4. show mount showmount shownfs

5. nfsclient Explicao: A ferramenta showmount exibe a tabela de sistemas de arquivos remotos exportados. Maiores detalhes sobre a ferramenta e o NFS aqui. Questo 18 Quando uma partio est formada como ext2, uma porcentagem dos blocos reservada para uso do usurio root. Depois de criado o sistema de arquivos, qual o utilitrio que podemos utilizar para modificar isso? 1. 2. 3. 4. 5. hdparm mke2fs tune2fs mount e2fsck

Explicao: Parmetros do sistema de arquivos normalmente so configurados utilizando a ferramenta tune2fs. Maiores detalhes sobre ela aqui. Questo 19 Se um compartilhamento criado no servidor Samba, porm, no especificada a varivel path, a qual dos seguintes diretrios o compartilhamento ir se referenciar? 1. 2. 3. 4. 5. /tmp /var/spool/samba ~/.samba /var/samba /var/samba/tmp

Explicao: Quando no h o parmetro path no arquivo de configurao /etc/samba/smb.conf, o compartilhamento ser realizado no diretrio .samba na pasta pessoal do usurio que foi autenticado. Maiores informaes aqui. Questo 20 Qual comando utilizado para re-adicionar uma partio ao controle do software RAID? 1. 2. 3. 4. raidhotadd raidadd addraid raidaddhot

Explicao: A ferramenta raidhotadd permite a adio de discos spare em um RAID de maneira que o sistema no precise ser desligado. Mais informaes sobre RAID aqui. http://localdomain.wordpress.com/aboutlpic-2/