Documente Academic
Documente Profesional
Documente Cultură
Sumario
Histrico..................................................................................................................................................... 4 Distribuies mais conhecidas:...................................................................................... ......................6 Instalao............................................................................................................................... ....................7 Passo 1) Boot com o cdrom de instalao.................................................................................. ..........8 Passo 2) Escolher o teclado.............................................................................................. ....................8 Passo 4) Particionar o disco rgido................................................................................. ....................10 Motivos para particionamento:................................................................................... ...................10 Passo 6) Formatando as parties de SWAP.......................................................................... ............15 Passo 7) Formatando as outras parties...................................................................................... ......17 Passo 8) Definindo a mdia que contm os arquivos de instalao................................................. ...18 Passo 9) Escolhendo os pacotes que sero instalados....................................................... .................19 Passo 10) Escolha do local do kernel................................................................................................. .21 Passo 11) Gerao do disco de boot.............................................................................. .....................22 Passo 12) Configurao do modem.......................................................................................... ..........22 Passo 14) Configurao do LILO.......................................................................................... .............23 Passo 15) Configurao do Mouse....................................................................................... ..............24 Passo 16) Configurao da Rede..................................................................................... ...................25 Passo 17) Confirmao das configuraes de Rede.................................................................... .......26 Passo 19) Configurao prvia de fonte............................................................................ .................27 Passo 20) Escolha do tipo de atualizao do relgio da mquina.......................... ...........................28 Passo 22) Definir a senha do Administrador do sistema (root)................................. ........................28 Passo 23) Finalizando a instalao....................................................................................... ..............29 Iniciando o Sistema Operacional.......................................................................................................... ...30 Comandos Bsicos....................................................................................................................... .......30 Mostrar o diretrio atual..................................................................................... ...........................31 Entrar/Sair de diretrios..................................................................................................... ............31 Criando Diretrios.......................................................................................................................... 31 Copiando Arquivos e Diretrios................................................................................ ....................31 Criando Arquivos Vazios................................................................................................... ............32 Removendo Diretrios................................................................................................ ...................32 Removendo Arquivos e Diretrios.................................................................... ............................33 Movendo/Renomeando Arquivos e Diretrios................................................................ ..............33 Comando tail........................................................................................................................ ..........34 Comando cat......................................................................................................... .........................34 Comando sort..................................................................................................................... ............34 Comando grep...................................................................................................................... ..........34 Comandos de Paginao................................................................................................. ...............35 Comando more........................................................................................................................ .......35 Comando less................................................................................................................... ..............35 Desligando o Sistema Operacional Linux..................................................................... ................36 Seja um Profissional Aprendendo com Profissionais 1
Linux System Administration Reiniciando o Sistema Operacional Linux....................................................................... .............36 Redirecionamento de Entrada e Saida............................................................................................... ......36 Redirecionamento de Sada.......................................................................................... ......................38 Redirecionamento de Entrada........................................................................................................ .....38 Comando sort ..................................................................................................................... ...........39 Pipe..................................................................................................................................................... .39 Metacaracteres................................................................................................................ ....................40 Estrutura de Diretrios.................................................................................................. ..........................42 Dispositivos................................................................................................................ .............................43 Consoles Virtuais................................................................................................................................. ....45 Editores de Texto............................................................................................................ .........................45 Mtools............................................................................................................................... .......................47 Paginas de Manuais............................................................................................................ .....................49 Criando Links...................................................................................................................... ....................49 Comandos de Busca................................................................................................... .............................50 Compactao de Arquivos...................................................................................................... .................51 gzip: ......................................................................................................................................... ...........51 bzip2: ........................................................................................................................................ ..........51 compress: ................................................................................................................... ........................52 Empacotamento................................................................................................................ .......................52 zip: .................................................................................................................................................. ....52 tar: ............................................................................................................................... .......................53 Montagem de Dispositivos.................................................................................................... ..................54 Fdisk...................................................................................................................................................... ...55 Gerenciamento de Contas de Usurios...................................................................... .............................57 Criar / Alterando Senha De Usurio...................................................................... ............................57 Deletando Usurios............................................................................................................................ .58 Adicionando Grupos No Sistema.................................................................................... ...................58 Mudando o dono de arquivos e diretrios........................................................................... ...............59 Mudando o grupo de arquivos e diretrios........................................................................................ .59 Mudando dono e grupo ao mesmo tempo............................................................................. .............59 Permisses de Arquivos e Diretrios................................................................................................... ....61 Padro De Criao............................................................................................................. .................62 Gerenciamento de Pacotes RPM....................................................................................... ......................67 Pacotes TGZ no Slackware.......................................................................................................... ............71 Gerenciamento de Processos............................................................................................... ....................73 Processo de Inicializao da Mquina................................................................................................... ..76 Instalao e configurao do Gestor de Incio LILO.................................................................. ............78 Passando parmetros para o kernel atravs do lilo................................................................................. .80 Configuraes de Segurana................................................................................................. ..................80 O processo INIT na inicializao do sistema................................................................................ ..........83 Nveis de execuo ( Runlevel )........................................................................................................ ..83 Comunicando com o processo INIT ...................................................................................................................................................... .......85 Outras funes do INIT..................................................................................................... .................86 Seja um Profissional Aprendendo com Profissionais 2
Linux System Administration O Arquivo /etc/inittab...................................................................................................... ...................86 O diretrio /etc/rc.d/........................................................................................................................... .89 Arquivo /etc/issue.............................................................................................................. ......................90 Arquivo /etc/nologin.................................................................................................................. ..............90 Arquivo /etc/motd............................................................................................................ ........................91 Arquivo /etc/securetty.............................................................................................................. ................91 Comando su........................................................................................................................ .....................93 Inicializao de Servios........................................................................................................... ..............94 O Arquivo /etc/login.defs.............................................................................................. ..........................95 Programao Shell......................................................................................................................... ..........96 Programando no Linux ............................................................................ ...........................96 Tipos de interpretadores.................................................................................................. .....96 Um Script simples ................................................................................................ ...............97 Utilizando o comando bash........................................................................................... .....................98 Sintaxe............................................................................................................ ....................100 Tipos de Variveis .................................................................................................................... ........100 Acessando variveis...................................................................................................... ....................101 Comando echo .................................................................................................. .................101 Caractere de escape.................................................................................................................... .......102 Passagem de parmetros............................................................................................. ......................103 Parmetro............................................................................................................................. ....103 Leitura de teclado e variveis ................................................................................... .......................103 Estruturas de Deciso (if).......................................................................................... .......................104 Comando exit................................................................................................................ ....................106 Operadores de comparao...................................................................................................... .........106 Condio case.......................................................................................................... .........................108 Gerenciamento de Arquivos de LOG................................................................................................... ..111 Formatos de arquivos de logs.................................................................................................. ..........111 Gerando LOGs...................................................................................................... ............................111 O Daemon Syslogd............................................................................................... ............................112 O Daemon Klogd....................................................................................................... .......................112 Os principais diretrios e arquivos de log.................................................................... ......112 Controle de cotas de disco........................................................................................... ..........................114 Verificando suporte a cota................................................................................... .............................114 Habilitando quota em uma partio........................................................................................ ..........115 Configurando quota de disco......................................................................................... ...................115 Gerenciando quotas ........................................................................................................... ...............118 Definindo quota para usurios...................................................................................... ....................118 Definindo quotas para grupo......................................................................................... ...................122 Agendador de Tarefas..................................................................................................... .......................124 CRON................................................................................................................................................. ....124 Arquivos de configurao ...................................................................................................... ..........125 Crontab .................................................................................................................................... .........127 Controlando o acesso cron......................................................................................................... .......129 Seja um Profissional Aprendendo com Profissionais 3
Linux System Administration Anacron ( Para RedHat )............................................................................................................ .......130 Configurao dos Dispositivos de Hardware...................................................................... ..................132 Configurando impressora com CUPS.............................................................................. .....................132 Configurao Bsica do Servidor NFS ............................................................................. ...................135 Habilitando o acesso remoto via SSH (passo-a-passo)................................................................ .........138 Compilao do Kernel........................................................................................................ ...................140 Mdulos........................................................................................................................................... ..140 Configurao GRUB (Isto apenas um exemplo):..................................................... .....................145 Configurao do LILO (Isto apenas um exemplo):.......................................................... .............146
Histrico
Em 1965, algumas empresas se uniram (Laboratrios Bell da AT&T, General Eletric e MIT) para desenvolver um novo sistema operacional chamado MULTICS, que se propunha a oferecer servios de time-sharing (Tempo Compartilhado) para uso geral. Time-sharing: quando todo processamento e feito por um computador central, cujo tempo de processamento ento compartilhado pelos vrios usurios. Devido s dificuldades que se encontraram na construo do MULTICS, que se mostrou um sistema muito grande, complexo e exigia recursos demais para os computadores da poca, a AT&T, acabou se retirando do projeto, 1969, para que mais tarde alguns membros da empresa, liderado por Ken Thompson, aproveitando a experincia ganha na construo do MULTICS, comearam a trabalhar por conta prpria num sistema menos robusto, que acabou resultando no UNIX. A primeira verso do UNIX foi desenvolvida para um computador PDP-7 e foi totalmente escrita em linguagem assembly, em 1971 foi escrito para um PDP-11 e j em 1973 foi reescrito para linguagem C pelo criador da linguagem, DENIS RITCHIE. Devido ao fato do UNIX, de estar escrito numa linguagem de alto nvel, O uso do UNIX dentro do LAB. BELL foi crescendo tanto, que acabou sendo criado um grupo de suporte interno ao sistema. Nessa mesma poca a AT&T fornecia cpias do cdigo fonte as universidades para fins educacionais. Com o fornecimento do cdigo fonte, vrias corporaes modificaram o UNIX de acordo com suas necessidades e lanaram sua prpria verso. Em 1980, a Universidade da Califrnia em Berkely foi financiada pelo Departamento de Defesa para desenvolver uma verso de UNIX voltada para os novos sistemas de computao distribuda que resultou no sistema BSD,nesta poca a Microsoft lanou o XENIX, baseada em micro computadores compatveis com o IBM PC. A Sun Microsystem desenvolveu o SunOS, que introduziu o conceito de Network File System, NFS, que possibilita o compartilhamento de arquivos por mquinas ligadas em rede local. No incio dos anos 90, um aluno de cincia da computao, Linus Torvalds, se props a desenvolver sistema operacional, melhor que o S.O. que ele utilizava na faculdade, MINIX, construdo por Andew Tanembaum para fins didticos. Melhor porque o SO proposto por ele utilizaria das Seja um Profissional Aprendendo com Profissionais 5
Linux System Administration facilidades do modo protegido (como multitarefa e memria virtual) tambm o SO proposto no carregaria todos os seus dispositivos em memria, visto que existe a necessidade apenas quando na sua utilizao. Esse sistema, batizado de LINUX e evoluiu para uma verso de UNIX sendo distribudo pela rede na modalidade free e open source (cdigo aberto), na qual tanto o cdigo executvel quanto o cdigo fonte podem ser baixados e distribudos gratuitamente pela internet. Com isso, o LINUX se disseminou rapidamente e hoje ocupa uma fatia considervel das grandes e mdias corporaes em todo mundo alm de surgir vrias verses do sistema (distribuies). Existem grupos de pessoas, empresas e organizaes que decidem criar sua prpria distribuio. O que uma distribuio? o Kernel do Linux junto com outros programas essenciais (como por exemplo, editores grficos, planilhas, bancos de dados, ambientes de programao, formatao de documentos, Jogos, etc). Cada distribuio tem suas prprias caractersticas de: como o sistema instalado, o seu objetivo, a localizao dos programas, nomes de arquivos de configurao, etc. E cabe o desenvolvedor da distribuio dizer que ela ou no open source. Mas pra um sistema ser comercial, ele tem que sofrer mudanas gigantescas, devido o grande numero de distribuies open source distribuidas pelo mundo.
Linux System Administration Fedora - (verso do RedHat 9) Mandriva - ( Conectiva com Mandrake )
Instalao
A instalao pode ser feita de diversas formas
CDROM; HD; REDE (utilizando protocolos); NFS (Network File System); SAMBA (integra maquinas windows); HTTP(faz a transferencia de arquivos pelo browser) FTP (Faz transferencia de arquivos mais eficiente e mais rpida)
Reiniciar a mquina, entrar no SETUP, mudar o primeiro boot da maquina para CDROM, salvar e sair.
NOTA: Estes passos de instalao, so exclusivos para a distribuio Slackware.
Na prxima tela foi escolhido o teclado abnt2 com acentos. Aps a escolha do teclado, ser disponibilizada uma janela para teste do teclado. Caso o teclado esteja correto, basta digitar <1> e pressionar <enter>. Caso o teclado escolhido no seja o ideal, pressione <2> e <enter> e retorne para a tela de escolha de teclados.
Aps a escolha do teclado, ser solicitado um login de usurio para continuar a instalao do sistema operacional. Neste caso basta digitar root e pressionar <enter>.
Linux System Administration cheque. Ao dedicar uma partio para usurios ou determinados processos (que tem necessidades legtimas de gravar dados), o sistema permaneceria sem modificaes em uma situao igual apresentada primeiramente. Velocidade: Caso seu sistema possua mais de um disco, a distribuio de diferentes reas do sistema entre os discos trar melhorias na performance do sistema. Imagine que voc est iniciando automaticamente um aplicativo (instalado em uma partio no primeiro disco) ao clicar sobre o cone de um documento (armazenado em uma outra partio, em um outro disco). O sistema consegue enviar ordens de leitura de dados simultaneamente para os dois discos, que colocam o aplicativo e o documento em memria em um tempo muito menor. Proteo contra erros fsicos: Danos fsicos ao disco podem causar a corrupo do sistema de arquivos como um todo, dificultando ou impossibilitando a leitura de todos os dados nele armazenados. A separao de reas em parties, e conseqentemente em sistemas de arquivos diferentes, diminui o estrago causado por um dano fsico. Aps o login, devemos criar as parties para a instalao do nosso sistema. Neste servidor sero criadas 5 parties, seguindo os seguintes passos:
a) acessar o disco
# fdisk /dev/hda
11
c)definindo se a partio primaria ou extendida. No nosso caso ser primria. Para isto, basta digitar <p>.
Command action e extended p primary partition ( 1-4 ):
Aps escolher partio primria, ser solicitado o nmero da partio. Neste caso devemos digitar <1> para primeira partio.
Partition number ( 1-4 ):
d) definindo o tamanho da partio: logo aps a escolha do nmero da partio, devemos definir qual ser o ponto inicial da partio. Neste caso basta pressionar <enter>.
Nota: Para as nossas instalaes, o ponto inicial sempre ser definido pressionando a tecla <enter>.
Devemos digitar <e> e logo aps <2> para indicar o nmero da partio extendida.
Command action e extended p primary partition ( 1-4 ):
12
Aps finalizar as parties, devemos escolher tipo do sistema de arquivos. Neste caso iremos mudar o sistema das parties 5 e 6 para swap. Definindo o tipo da partio 5.
Command ( m for help ): t Partition number(1-8): 5 Hex code (type L to list codes): 82
14
Linux System Administration Aps todas as configuraes podemos visualizar se esta tudo correto atravs da opo <p>
Command ( m for help ): p Disk /dev/hda: 40.0 GB, 40060403712 bytes 255 heads, 63 sectors/track, 4870 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/hda1 /dev/hda2 /dev/hda5 /dev/hda6 swap /dev/hda7 /dev/hda8 75 3723 3722 4870 29302528+ 9221278+ 83 83 Linux Linux Start 1 11 11 43 End 10 4870 42 74 Blocks 80293+ 39037950 257008+ 82 257008+ 83 Id Linux 5 82 Extended Linux Linux swap System
j) Salvar todas as configuraes. Para salvar todas as configuraes devemos escolher a opo <w>.
Command ( m for help ): w Calling ioctl() to re-read partition table. Syncing disks.
15
Aps feita a escolha da partio confirme com <yes> a formatao das parties de SWAP.
16
Na prxima tela devemos confirmar se desejamos formatar a partio indicada. Devemos confirmar pressionando <enter> .
A prxima tela solicita que ns indique-mos qual o tipo de sistemas de arquivos que iremos utilizar para esta partio. Neste caso vamos utilizar o sistema de arquivos ext3 .
17
Linux System Administration Aps esta escolha uma tela com o tamanho dos blocos de alocao de arquivos ser disponibilizada. Devemos utilizar a opo de 4096 blocks.
Aps a formatao da partio raiz, o software de instalao ir retornar a tela de escolha das parties. Escolha a partio /dev/hda1 e defina como /boot ; partio /dev/hda7 e defina como /var.
18
Logo aps devemos definir se a busca pela mdia automtica ou manual. Neste caso devemos definir como manual.
19
Devemos escolher todos os pacotes dos grupos: [A]: base do sistema linux [D]: pacotes de desenvolvimento [F]: pacotes com a listas de FAQ's [K]: pacotes de desenvolvimento do Kernel [KDE]: pacotes do ambiente grfico KDE [L]: pacotes com as bibliotecas [N]: pacotes dos aplicativos de rede
Aps a escolha dos pacotes, ser disponibilizada uma tela com o tipo de instalao, escolha a opo menu, e pressione <enter> nas prximas telas de confirmao e aguardar a cpia dos arquivos.
20
Aps a instalao dos pacotes escolhidos, uma nova tela ser disponibilizada para que possamos informar qual a ordem de busca pelo kernel. Neste caso iremos escolher a ltima opo skip.
21
22
Em seguida, uma tela de comandos especiais para o LILO ser mostrada, neste nosso caso vamos simplesmente confirmar com <enter>
23
Aps a escolha do lilo, uma nova tela mostra que devemos escolher onde o lilo dever ser gravado. Iremos grav-lo na MBR, para isto basta marcar a opo MBR.
24
Linux System Administration Na prxima tela devemos configurar se o mouse ser inicializado em modo texto. Neste caso vamos marcar a opo yes.
25
Linux System Administration b) Na prxima opo iremos definir o dominio: Nosso caso: 3way.com.br c)Na prxima opo iremos definir como ser configurado nosso endereo IP. Iremos utilizar a opo static ip.
d)Inserir o endereo IP: 192.168.0.1 e) Inserir a mscara de rede: 255.255.255.0 f) Inserir o endereo do gateway: 192.168.0.254 g) inserir o endereo do servidor de nomes DNS: 192.168.0.254
Passo 18) Definindo os servios que devero ser carregados ao iniciar o sistema
Neste caso somente confirme com <enter>
27
28
29
Onde: root: Mostra o usurio que est logado no sistema. host: Mostra o nome da mquina. /root: Indica o diretrio atual . #: Indica que o super-usurio que est logado.
NOTA: Quando qualquer usurio comum est logado no sistema a sua indicao o caractere $ (alm do nome de usurio) como alternativa ao caractere #.
Comandos Bsicos
No linux, todos os comandos tero a seguinte forma: [COMANDO] -[OPES] [PARAMETROS] Listar contedo de diretrios Sintaxe: ls [opo] [arquivo]
# ls -a: lista arquivos ocultos. # ls -l: lista detalhadamente; # ls -F: lista mostrando o tipo do arquivo # ls -la: lista todo contedo do diretrio no formato longo (detalhando).
30
31
Incluir arquivos e diretrios Criando Arquivos Vazios Usado para criar arquivos de log (usado por aplicaes), por exemplo. Sintaxe: touch [arquivo] ou cat > [arquivo]
# touch ~/arquivo.txt # cat > ~/teste.txt : Pressione Ctrl+D para salva e sair.
32
CUIDADO! A utilizao do comando rm com a opo -rf , pois geralmente muito dificil realizar a recuperao de arquivos no sistema Linux.
Visualizao do contedo de arquivos Comando head visualiza as primeiras 10 linhas do arquivo, por padro. Sintaxe: head <opo> <arquivo>
# head /etc/passwd : mostra as 10 primeiras linhas do arquivo passwd por padro. # head -n20 /etc/passwd : mostra as 20 primeiras linhas do arquivo passwd.
33
Linux System Administration Comando tail Visualiza as ultimas 10 linhas do arquivo, por padro. Sintaxe: tail <opo> <arquivo>
# tail /etc/passwd: mostra as 10 ultimas linhas do arquivo passwd por padro. # tail -n20 /etc/passwd: mostra as 20 primeiras linhas do arquivo passwd. # tail -f /var/log/messages: fica lendo o arquivo ininterruptamente (-f). Usada para arquivos de log.
Comando cat Este comando pode ser utilizado para criar arquivos, mas ele tambm pode ser utilizado para mostrar contedo de arquivos, veja no exemplo: Sintaxe: cat <opo> <nome do arquivo>
# cat /etc/termcap: mostra o contedo do arquivo /etc/termcap. # cat -n /etc/termcap: mostra o contedo e conta as linhas do arquivo incluindo linhas em branco. # cat -b /etc/termcap: idem ao anterior. Porm no conta linhas em branco do arquivo.
Comando grep Procura pela ocorrncia de uma string no arquivo especificado Sintaxe: grep <opo> <expresso> <arquivo>
# grep -in go cidades.txt : procura as linhas do arquivo que aparecem expresso go e indica a linha que estes esto na tela.
-i = ignora a diferena de tamanho dos caracteres (g == G) -v = mostra as linhas que no aparece a string
34
Linux System Administration -c = mostra o nmero de vezes que foi encontrada a expresso -n coloca o nmero da linha em que foi encontrada a expresso. No exemplo acima o arquivo cidades.txt existe e buscado ocorrncias da slaba go dentro do arquivo. Comandos de Paginao Os comandos de paginao so necessrios quando desejamos ler um determinado arquivo pausadamente. So eles: more e less. Comando more
# more /etc/termcap: mostra o contedo do arquivo termcap. O comando finalizado automaticamente ao seu final.
Este comando possui vrios recursos: [enter]; anda linha a linha no arquivo; [barra de espao]: anda pgina a pgina no arquivo; [h] ou [?] : visualiza o help; [b]: retorna a tela anterior; [q]: sai do paginador more.
Este comando possui vrios recursos: [enter]; anda linha a linha no arquivo; [barra de espao]: anda pgina a pgina no arquivo; [h] : visualiza o help; [b]: retorna a tela anterior; [q]: sai do paginador more. /nome : busca a palavra nome no arquivo.
35
Linux System Administration conhecidos. Os sistemas UNIX, incluindo o Linux, lidam com 3 dispositivos bsicos:
Entrada padro, tambm conhecido por STDIN Sada padro, tambm conhecido por STDOUT Sada de erro padro, tambm conhecido por STDERR
Os sistemas UNIX tambm possuem um conceito interessante, onde tudo um arquivo. Este conceito permite escrever em dispositivos externos exatamente da mesma maneira que se escreve em arquivos. Conseqentemente, os dispositivos bsicos mencionados acima so tambm arquivos. Programas UNIX, incluindo o shell, lidam com arquivos atravs de descriptores, nmeros que representam um determinado arquivo que est aberto para leitura e/ou escrita. A entrada padro, a sada padro e a sada de erro padro, tambm possuem estes descriptores. Segue uma tabela com o resumo destes dispositivos, incluindo o nmero dos descriptores de arquivo.
Dispositivo
Apelido
Nmero do Descriptor Mapeado por Padro de Arquivo Para: Teclado Monitor Monitor
0 1 2
O uso do redirecionamento muito simples, enquanto que o monitor a forma padro de sada de informaes, e o teclado a forma padro de entrada, um outro arquivo ou dispositivo podem assumir o papel destes dispositivos de entrada e sada padro. Executar determinadas operaes e direcionar o resultado para um arquivo pode ser bem mais conveniente que ter que copi-las manualmente da tela para um arquivo. O contedo destes arquivos (o resultado gerado por determinado comando), pode ento ser manipulado normalmente, sendo Seja um Profissional Aprendendo com Profissionais 37
Redirecionamento de Sada
Um exemplo de redirecionamento de sada utilizando o comando ls -la; este comando, por padro, lista todo contedo contidos dentro do diretrio atual incluindo detalhes sobre cada arquivo ou diretrio e mostra o resultado na tela, certo? Ao invs de utilizarmos a sada padro, o monitor, do comando ls la, iremos utilizar um arquivo como alternativa. Para isso utilizamos o redirecionador de sada que indicado com um sinal de maior que, >. Veja o exemplo:
# ls la > saida.txt
Observe que, com a execuo deste comando no apareceu nenhuma sada no monitor, que a sada padro. Observe tambm que um arquivo com o nome saida.txt f oi criada no diretrio atual. Execute o comando cat saida.txt, a sada que era para aparecer na tela foi redirecionada para este arquivo.
Redirecionamento de Entrada
Antes de exemplificar um redirecionamento de entrada, vamos fazer o seguinte: Crie um arquivo com o nome cidades.txt contendo o contedo: Goinia, Anpolis, Damolndia, Nova Era, Aparecida, Goiansia. Cada cidade em uma linha! O arquivo dever ficar da seguinte forma: Goinia Anpolis Damolndia Nova Era Aparecida Seja um Profissional Aprendendo com Profissionais 38
Aps a visualizao do comando acima, vamos ver um exemplo de redirecionamento de entrada. Para isso, podemos utilizar como entrada o arquivo cidades.txt para a criao de um outro arquivo de sada, por exemplo. O redirecionamento de entrada indicado com um sinal de menor que, <. Veja o exemplo:
O comando acima recebe o arquivo cidades.txt como entrada e redireciona para um arquivo de sada, cidadesordenadas.txt.
Pipe
A idia principal do uso do comando pipe ("|") fazer com que os comandos trabalhem em conjunto. Um comando trabalhando sozinho geralmente limitado quanto sua funcionalidade, revelando uma outra caracterstica dos sistemas operacionais UNIX: faa apenas uma coisa, mas faa-a bem. Os pipes facilitam o trabalho em equipe dos utilitrios UNIX. Neste cenrio, cada aplicativo executa determinada operao no arquivo, e passa o resultado para o prximo utilitrio. Pense em pipes como uma linha de produo, onde as determinadas etapas so realizadas por diferentes utilitrios UNIX.
39
Linux System Administration Se executar-mos o comando ls /etc o resultado que ser mostrado na sada padro (monitor) ser muito rpida. Para pausar a sada deste comando podemos utilizar os comando de paginao (more ou less). Veja o exemplo:
Outro exemplo:
# cat cidades.txt | grep -i go
O comando cat cidades.txt, faz com que seja mostrado, na sada padro, todo contedo do arquivo cidades.txt. Com a utilizao do pipe com o comando grep (| grep) faz com que a sada na tela mostre apenas as linhas que contenha a palavra go. No caso, Goinia e Goiansia.
Metacaracteres
Tm-se os seguintes arquivos em /home/aluno: arq, arq1, arq2, doc, doc3 e doc555. * representa qualquer quantidade de qualquer caractere. Exemplo: ls * Resposta: arq, arq1, arq2, doc, doc3, doc555. ? representa um nico e qualquer caractere. Exemplo: ls arq? Resposta: arq1, arq2. [ ] Indica uma lista de caracteres. Exemplo: ls doc[123456789], ou ls doc[1-9] Resposta: doc3 Seja um Profissional Aprendendo com Profissionais 40
41
Estrutura de Diretrios
A estrutura de diretrios organizada em forma de uma rvore, para uma melhor organizao dos arquivos de configurao do sistema e facilitar a busca dos mesmos. Cada diretrio possui uma finalidade, so elas: / : o diretrio raiz do sistema. Todos os outros diretrios esto abaixo dele. Os mais importantes so: /bin: diretrio que contm todos os comandos do sistema operacional, caso um comando no funcione, seu arquivo no est no diretrio ou o arquivo est corrompido ou ainda o comando s pode ser executado somente pelo root. /boot: o diretrio que contm o kernel e todos arquivos necessrios para a inicializao. /dev: diretrio que contm todos os arquivos dos dispositivos de hardware do S.O (pl. de rede, vdeo, hd, floppy, mouse, impressora, etc). /etc: o diretrio que contm os arquivos de configurao local da mquina. Um administrador de uma rede 90% do tempo ele estar neste diretrio. /home: o diretrio que contem as pastas de trabalho de todos usurios comuns do sistema. /lib: diretrio que contm as bibliotecas do sistemas operacional linux. /mnt: diretrio recomendado para a montagem dos dispositivos (floppy, cdrom, etc) /opt: diretrio recomendado para instalao de aplicativos. semelhante ao diretrios "Arquivos de Programas" do Windows.
42
Linux System Administration /proc: diretrio especial do linux. Nele, possui todos os processos em execuo do sistema. Este diretrio fica armazenado somente memria voltio (RAM), no fisicamente no disco. /root: o diretrio de trabalho do administrador do sistema (superusurio). /sbin: diretrio que contm as ferramentas de configurao do sistema. Ex.: fdisk (particionador), fsck (scandisk), mkbootdisk (cria disco de boot), ifconfig (configura pl. de rede), lilo (gerencia ordem de boot), lspci (lista os dispositivos de hardware detectados), etc. /tmp: diretrio que possui os arquivos temporrios gerados pelas aplicaes/u tilitrios. /usr: diretrio que contm os principais aplicativos do sistema (ambientes grfico, jogos, etc). semelhante a pasta "windows" do win98. /var: possui os arquivos variveis, que modificam com o passar do tempo (spool de impresso, arq. de log, etc).
Dispositivos
J verificamos que no diretrio /dev possui todos os arquivos de configurao dos dispositivos de hardware, mas caso precise configurar uma placa de rede, por exemplo, qual arquivo (dispositivo) referenciar? Sero citados os principais arquivos de configurao dos dispositivos de hardware. So eles:
Portas Seriais Windows COM1 COM2 COM3 Linux ttyS0 ttyS1 ttyS2
43
Linux System Administration Portas Paralelas Windows LTP1 LTP2 Discos Flexveis Windows A: B: Hard Disk Windows C: D: E: F: Linux hda: master IDE1 hdb: slave IDE1 hdc: master IDE2 hdd: slave IDE2 Placa de Rede Windows Ethernet Adapter 1 Ethernet Adapter 2 Ethernet Adapter 3 Linux eth0 eth1 eth2 Linux fd0 fd1 Linux lp0 lp1
44
Consoles Virtuais
Por ser um Sistema Operacional multiusurio e multitarefa, o linux trabalha com consoles virtuais, que so nada mais que terminais de trabalho, seja ele grfico ou texto. Por padro, existem 6 consoles texto, e 6 consoles grficas, como mostra abaixo: <F1> <F2> <F3> <F4> <F5> <F6> <F7> <F8> <F9> <F10> <F11> <F12> |---------------------------------------------| |--------------------------------------------------| Consoles Texto Consoles Grficas
Para alternar entre as consoles, texto ou grfica, basta pressionar simultaneamente as teclas CTRL+ALT+Fx. Onde x um nmero de 1 a 12, ou seja, F1 F12. Cada ambiente grfico, possui outros sub-ambientes (4 precisametente), alm de diversos shells (xterm) que funciona como o prompt de comandos do windows. Ou seja, o linux simula o ambiente texto atravs de prompt de comandos que se chama xterm (esse nome pode variar entre as distribuies). Para carregar um ambiente grfico digite: startx. Se desejar carregar mais de 1 ambiente grfico digite: startx -- :2, caso seja o 2 ambiente grfico; startx - - :3, caso seja o 3 e assim por diante.
Editores de Texto
No linux h vrios editores de texto, entre eles esto:
Joe Elvis Emacs mcedit vi
Qual utilizar? Isso, voc decide. O mais utilizado o vi porque ele mais rpido, eficiente e possui vrios recursos.
45
Para utilizar os recursos do vi, digite: vi arquivo.txt Por padro, ao iniciar o vi, ele encontra-se no modo de comandos, ou seja, para comear a escrever alguma coisa no arquivo, primeiro o modo de escrita deve ser habilitado. Para isso, qualquer uma das teclas <i>, <insert> ou <o> podem ser pressionadas. Para desativar o modo de escrita (ou ativar o modo de comandos) pressione a tecla <esc>. Outra informao que interessante comentarmos que o editor vi case-sensitive - os caracteres maisculos se diferem dos minsculos, ou seja, a palavra 3way diferente de 3WAY que so diferentes de 3Way. Essa informao importante quando se deseja localizar alguma palavra no texto. Agora, ative o modo de escrita e edite o arquivo com o contedo:
3way networks solues em TI. SOLUES EM SISTEMAS LINUX Fone: 3289-9311. 3way networks solues em TI. SOLUES EM SISTEMAS LINUX Fone: 3280-0123.
Agora vamos checar algumas das funcionalidades do editor de texto vi. Para isso pressione <esc> para ativar o modo de comandos. Pressione:
:w = salva o arquivo. :q = sai do arquivo. :wq = salva o arquivo e sai. o = ativa o modo de escrita fazendo quebra de linha. :q! = sai do arquivo sem salvar as alteraes. :w! = salva forado. Alguns arquivos o root no tem permisso pra gravar. yy = copia a linha onde se encontra o cursor. pp = cola linhas que esto em buffer. dd = deleta a linha onde se encontra o cursor.
46
Mtools
Mtools so ferramentas DOS para UNIX. S servem para manipulao de discos flexveis. Para a utilizao dessa ferramenta o disco flexvel no deve estar montado. Para visualizar os comandos suportados pela ferramenta digite: mtools. Os comandos mais utilizados so:
mtools: mostra quais os comandos existentes. #mtools
mcopy : copia um contedo. # mcopy /etc/passwd a: : copia o arquivo passwd para o disquete. # mcopy a:\teste.txt /tmp/ : copia do disquete o arquivo teste.txt para o /tmp.
mdel : apaga arquivos dentro do disquete. # mdel a:\teste.txt : apaga do a: o arquivo teste.txt
47
mdeltree : deleta arvore de diretrios. # mdeltree 3way : apaga o diretrio 3way e todo seu contedo.
mmove: move um arquivo do disquete. # mmove a:\passwd a:\usuarios : move o arquivo passwd do disquete para usuarios
mtype: visualiza o contedo de arquivo contidos no disquete. # mtype a:\passwd : mostra o contedo do arquivo a:\passwd
48
Paginas de Manuais
Permite obter informaes sobre os comandos no linux. Representa uma ajuda importante para os comandos. Comando man Sintaxe: man <comando> : manuais de informaes sobre os comandos.
# man cp : mostra o manual do comando cp
Comando info Sintaxe: info <comando> : mostra o manual eletronico de informaes sobre o comando. ( mais completo que os man's. Possui atualizaes mais rescentes).
# info cp
Comando help help : mostra uma ajuda do comando. Mostra somente as opes para o comando. Sintaxe: <comando> --help
# cp -- help
Criando Links
Existem dois tipos de links: hard-link e simbolic link. Hard-link: Ao criar um hard-link de um arquivo, o arquivo copiado no diretrio atual e a cada modificao que feita em um dos arquivos (original ou hard-link) ser repercutida, tambm, no arquivo oposto. Por exemplo: Se temos o arquivo /tmp/teste com o contedo teste de hard-link, e um hard-link que aponte pra esse arquivo (que ter o mesmo contedo) qualquer modificao que ser feita, tanto no arquivo teste como no hard-link sero repercutidas no arquivo oposto. Ou seja, se eu abrir o arquivo /tmp/teste e acrescentar a frase
49
Linux System Administration Ola mundo e salvar, ao abrir o hard-link este ter o mesmo contedo que seria teste de hard-link. Ola Mundo.
NOTA: No possvel criar hard-links de diretrios, somente de arquivos!
Simbolic Link: Funciona como um atalho para o arquivo. Sintaxe do comando: ln -s <arquivo-original> <nome-do-link>
# ln -s /tmp/teste atalho-teste
Comandos de Busca
Comando find : localiza strings no linux. Sintaxe: find [diretrio onde inicia a busca] <opo> [arquivo/diretrio]
# find / -iname *lilo.conf* : busca uma string (name) (arquivo/diretrio) lilo.conf apartir do diretrio raiz (/) do sistema. Ignorando o tamando maiusculas e minsculas (i). -i : ignora maiusculas e minsculas name : indica que ser buscado uma string.
# find / -iname *lilo.conf* > saida.txt : grava todas as sadas da busca dentro arquivo saida.txt. # find / -iname *lilo.conf* 2> erros.log : grava somente as sadas de erro dentro do arquivo erros.log. # find / -iname *lilo.conf* 1> validas.log : grava somente as sadas vlidas dentro do arquivo validas.log.
50
Comando locate/updatedb: O comando locate utiliza um banco de dados. Para se utilizar esse comando necessrio estar atualizando seu banco com os novos arquivos/diretrios que foram criados. Para isto deve-se executar o comando updatedb (como root)
#updatedb
Compactao de Arquivos
O linux possui diversos aplicativos para compresso de aquivos, sendo que cada um deles utiliza um algoritmo diferente. Entre eles esto:
gzip: O comando gzip usado para compactar/descompactar arquivos. O arquivo original substitudo por um arquivo compactado com a extenso .gz
Sintaxe: gzip <opes> <arquivos> : compacta gunzip <opes> <arquivos.gz> : descompacta
# gzip /tmp/termcap : o arquivo termcap ser compactado. # gunzip /tmp/termcap.gz : o arquivo termcap.gz ser descompactado.
bzip2: O comando bzip2 usado para compactar/descompactar arquivos. O arquivo original substitudo por um arquivo compactado com a extenso .bz2
51
Sintaxe:
# bzip2 /tmp/termicap : O arquivo termcap ser compactado. # bunzip2 /tmp/termcap.bz2 : O arquivo termcap ser descompactado.
compress: O comando compress usado para compactar/descompactar arquivos. O arquivo original substitudo por um arquivo compactado com a extenso .Z. A ferramenta gzip pode ser usada para descompactar arquivos com esta extenso.
Sintaxe: compress <opes> <arquivos> : compacta uncompress <opes> <arquivos.Z> : descompacta
# compress /tmp/shadow : Compacta o arquivo shadow. # uncompress /tmp/shadow.Z : Descompadta o arquivo shadow.Z
Empacotamento
zip: O comando zip usado para compactar e empacotar arquivos. til para empacotamento de uma srie de arquivos para distribuio. No substitui os arquivos originais aps o empacotamento.
Sintaxe: zip <opes> <arquivo_zip> <arquivos> unzip <opes> <arquivo_zip>
# zip arquivo.zip /tmp/* : empacota todos arquivos do /tmp para aquiivo.zip # unzip arquivo.zip : desempacota o arquivo arquivos.zip
52
Linux System Administration tar: Permite copiar arquivos e depois restaura-los, para efeito de backup de segurana e/ou transporte de dados atravs de um meio fsico (CD's, Floppy's, Fitas, etc...). O comando tar permite que crie, atualize ou recupere backups.
Sintaxe: tar <opo> <arquivos>
# tar -cvf arquivo.tar /tmp/* : empacota os arquivos de /tmp. c: cria um novo arquivo .tar v: mostra o que est acontecendo na tela. f: indica que o nome do aquivo ser especificado (arquivo.tar)
# tar -tf arquivo.tar : lista todos os arquivos empacotados no arquivo .tar t: lista arquivos empacotados f: indica que ser especificado o nome do arquivo.
# tar -rvf arquvo.tar teste.txt : acrescenta o arquivo teste.txt no aquivo arquivo.tar r: indica que ser acrescentado um novo ao arquivo .tar. v: mostra o que est acontecendo na tela. f : indica que o nome do arquivo ser indicado
# tar -xvf arquivo.tar : desempacota o arquivo.tar x: indica que o arquivo ser desempacotado.
# tar -cvfz arquivo.tar.gz /tmp/* : empacota e compacta todos os arquivos do diretrio /tmp e cria um arquivo.tar.gz. Utiliza o gzip para a compactao dos arquivos. z: compacta o arquivo.tar com gzip (.gz).
# tar -xvfz arquivo.tar.gz : descompacta e desempacota o arquivo.tar.gz x: indica que o arquivo ser desempacotado. z: Indica que o arquivo est compactado com gzip
53
# tar -xvfj arquivo.tar.bz2 : descompacta e desempacota o arquivo.tar.bz2 x: indica que o arquivo ser desempacotado. j: Indica que o arquivo foi compactado com bzip2, antes de empacota-lo.
Montagem de Dispositivos
Comando mount : monta dispositivos no linux.
Sintaxe: mount <opo> <dispositivo> <ponto-de-montagem>
# mount -t vfat /dev/fd0 /mnt/floppy : monta o dispositivo fd0 (disquete) no diretrio /mnt/floppy. A opo -t significa que ser indicado o tipo de arquivo do dispositivo (ntfs, vfat, ext3, iso9660 - sistema de arquivo de CD's, etc).
# umount -t vfat /dev/fd0 /mnt/floppy : desmonta o dispositivo # mount -t iso9660 /dev/cdrom /mnt/cdrom : monta o CDROM # umount -t iso9660 /dev/cdrom /mnt/cdrom : desmonta o CDROM # mount /mnt/floppy : monta # umount /mnt/floppy : desmonta # mount /dev/fd0 : monta # umount /dev/fd0 : desmonta
NOTA: A montagem/desmontagem dos 4 ltimos exemplos, s possvel porque existe um arquivo no linux (/etc/fstab) que faz a referncia entre o dispositivo e ponto de montagem. Para visualizar o contedo do arquivo digite: cat /etc/fstab.
54
Fdformat
Comando fdformat: formata o disquete fisicamente, no atribuindo nenhum sistema de arquivos no dispositivo.
Sintaxe: fdformat <opes> < dispositivo>
Mkfs
A ferramenta mkfs utilizada para criar sistemas de arquivos ( mkfs = make file system ) em um dispositivo.
Sintaxe: mkfs <opes> < sistema de arquivos> < dispositivo>
Fdisk
A utilizao dessa ferramenta possvel editar tabelas de parties no linux. Sintaxe: fdisk <opes> <dispositivo> O fdisk um particionador de dispositivos (HD, floppy, etc) no um relocador de partio. Qual a diferena ? Um relocador de partio no destri as parties j existentes no dispositivo, ele apenas edita essas parties (aumenta, diminui, muda sistema de arquivo, etc); j o particionador, destri todas as parties criadas no dispositivo. Por isso usaremos o floppy disk, como exemplo, para criar tais parties. Abra o fdisk. Para isso digite
# fdisk /dev/fd0
Onde: fd0 o dispositivo (floppy) que se encontra em /dev. O disquete deve estar dentro do drive! Seja um Profissional Aprendendo com Profissionais 55
Quando aparecer linha comando (m para ajuda): significa que o comando foi executado com sucesso e o fdisk est aberto, podendo agora utilizar as funcionalidades do fdisk. Pressione a tecla <m>, logo aps pressione <enter> pra visualizar as opes do fdisk. comando (m para ajuda): m
Comando a d l m n
Ao alterna as opes de boot em cada partio. deleta uma partio. lista os tipos conhecidos de parties visualizao do help. cria uma nova partio.
p = partio primria. e = partio estendida. l = lgica. p q t u v w lista a tabela de parties existentes. sai do fdisk sem salvar muda a identificao de uma partio no sistema. modifica a identificao das unidades. faz verificao da tabela de parties grava as modificaes e sai.
Vamos criar algumas parties. Para isso pressione a tela <n> de new para criar uma nova partio no dispositivo fd0.
comando (m para ajuda): n Comando - ao e estendida p partio primria (1-4) p
56
Para criar outras parties repita o processo acima, lembrando que s podem ser criadas, no mximo, 4 parties no dispositivo se estas forem do tipo primria. Para criar mais de 4 parties, crie uma partio estendida e dentro dela crie n parties lgicas, sendo n <=12 quando o dispositivo for o HD.
Ao executar o comando, vrios arquivos so manipulados ou utilizados. So eles: 1- O usurio adicionado no arquivo /etc/passwd, /etc/shadow e /etc/group. 2- criado seu diretrio pessoal /home/aluno com suas permisses de acesso (drwx------) 3- So copiados alguns arquivos do /etc/skel/ : .bashrc, .bash_profile, .bash_logout, para /home/aluno.
Obs.: Ainda o usurio aluno no pode logar no sistema. O usurio no possui senha!
Ao executar o comando ser pedido para que o usurio entre com a senha 2 vezes. Logo aps a senha criptografada e inserida no arquivo /etc/shadow. Para um usurio comum alterar sua senha basta efetuar o logon no sistema e digitar o comando Seja um Profissional Aprendendo com Profissionais 57
Linux System Administration passwd, sem nenhum parmetro. Apenas o root pode executar o comando passwd <parmetro>, onde parmetro o nome do usurio que o root deseja alterar a senha.
Deletando Usurios
Sintaxe: userdel <opo> <nome-do-usurio>
# userdel aluno
Este comando deleta as entradas nos arquivos /etc/passwd, /etc/shadow e /etc/group. Este comando no deleta a pasta pessoal do usurio /home/aluno.
# userdel -r aluno
Este comando deleta as entradas nos arquivos /etc/passwd, /etc/shadow e /etc/group tambm remove toda seu diretrio de trabalho recursivamente. (rm -rf /home/aluno)
Ao executar o comando groupadd este insere a entrada do novo grupo dentro do arquivo /etc/group. Para visualizar digite: cat /etc/group. Exemplo do contedo deste arquivo:
58
Para indicar que os usurios pertencem a tal grupo, basta inserir no final da linha relativa ao grupo o nome dos usurios separados por virgula. Ex:
... cpd:x:507:fulano, beltrano,maria, joao, rafael srh:x:508: junior, jorge, claudio, jose ...
59
60
Onde: 0: Indica o tipo do arquivo. Se - um arquivo comum. Se d um diretrio. 123: indica as permisses do dono do arquivo (D) 456: indica as permisses do grupo do arquivo (G). 789: indica as permisses dos outros usurios do sistema. L/SD: se L indica o nmero de links que apontam para o arquivo se SD indica o nmero de sub-diretrios dentro do diretrio. D: indica o dono do arquivo. G: indica o grupo do arquivo. M/D: Indica o Ms e Dia que o arquivo/diretrio foi criado/modificado. H: indica hora de criao do arquivo/diretrio. Arquivo/diretrio: nome do arquivo/diretrio. Os modos de acesso de arquivos e diretrios so interpretados de maneira diferente. Veja a tabela abaixo:
61
Modos de Acesso r w x
Linux System Administration Arquivos Pode ler o contedo do arquivo Pode editar o arquivo Pode executar o arquivo
Diretrios Pode visualizar o contedo do diretrio. Pode modificar o contedo do diretrio Pode entrar no diretrio
Padro De Criao
Todo arquivo/diretrios no linux possui um padro de criao, que chamado de umask. Para saber o padro de criao de seus arquivos digite: umask e pressione enter. Veremos que o padro de criao 0022 (ignore o primeiro zero). Isso indica que as permisses iniciais sero: -rw-r--r-- para arquivos e drwx-r-xr-x para diretrios ser tratado mais a frente o padro de criao umask. Para termos certeza disso, vamos criar um arquivo e um diretrio. Execute os comando:
#touch arquivo.txt #mkdir diretorio #ls -l
Veja as permisses. Caso as permisses no forem s mesmas citadas acima, o problema com certeza est com o padro de criao dos arquivos. Verifique se o umask 0022. Se no for digite umask 022 para torna-lo e execute os comandos novamente. Alterando Permisses de Arquivos e Diretrios Comando chmod Sintaxe: chmod <opo> <arquivo/diretorio> Finalidade: permitir que altere as permisses de um ou mais arquivos ou diretrios.
NOTA: Somente o superusurio ou o dono do arquivo/diretrio podem alterar suas permisses.
Crie o arquivo: chmod.txt. Para isso execute o comando: Seja um Profissional Aprendendo com Profissionais 62
Existem duas formas para alterar as permisses de arquivos / diretrios. Uma utilizando smbolos para referenciar as permisses do dono, grupo e outros usurios. Esses smbolos so respectivamente: u, g, o. Uma outra forma utilizando valores octais para fazer essas referencias.
Descrio indica permisses do dono do arquivo. indica permisses do grupo para o arquivo. indica permisses dos outros usurios para o arquivo. indica todos ( u, g, o ) Descrio Concede Permisso Remove Permisso Atribui Permisso Descrio Leitura Escrita Execuo
O arquivo chmod.txt criado anteriormente possui as seguintes permisses: -rw-r--r--.Vamos alterar essas permisses para: -rw-rw---- , ou seja, o dono e o grupo podem ler e escrever (rw) e os outros no podem fazer nada, pois eles no possuem permisso. Quando se deseja alterar as permisses de um arquivo ou diretrios importante visualizar as permisses atuais deste (usando o comando ls l) para saber o que deve ser acrescentado e/ou retirado.
#ls -l #chmod g+w,o-r chmod.txt
A 1 opo acima (g+w) significa que a permisso de escrita (w) est sendo acrescentada/concedida (+) para o grupo (g), ento o grupo alem de ler poder, tambm, escrever no arquivo chmod.txt. Seja um Profissional Aprendendo com Profissionais
63
Linux System Administration A 2 opo (o-r) significa que a permisso de leitura (r), para os outros usurios do sistema (o), est sendo removida (-) , ento estes no tero permisso para executar nenhum tipo de operao no arquivo chmod.txt. Agora altere as permisses deste arquivo para: -rw-rw-rw, ou seja, o dono, grupo e outros podem ler/escrever no arquivo chmod.txt. Alguns exemplos possveis:
# chmod o+rw chmod.txt # chmod u+rw,g+rw,o+rw chmod.txt # chmod o=u chmod.txt # chmod a=rw chmod.txt
Exerccios: 1- crie os seguintes arquivos: modo1, modo2, modo3 e modo4. 2- mude as permisses destes, respectivamente, para:
a) -r--r--rwx b) -rw-r-x--c) ----rwx--x d) -rw-rw-rw
Simbolo r w x
Valor Equivalente 4 2 1
Por exemplo, temos o arquivo teste.txt com as seguintes permisses: -rw-r--r--. Que valor representaria essas permisses em octal ? A resposta 644. Nas permisses do arquivo texte.txt, sabemos que u=rw, g=r e o=r. Sabemos tambm que r=4, w=2 e Seja um Profissional Aprendendo com Profissionais 64
Linux System Administration o x=1, ento se repararmos o numero 644 podemos perceber que seus valores de permisso para cada tipo de usurio (u,g,o) foram somados:
u=rw=4+2+0=6 g=r=4+0+0=4 o=r=4+0+0=4 u+g+o= 644.
O valor zero (0) significa que no possuem tipo de acesso (r--)=(4+0+0). Exerccios: 1- qual valor octal representa as seguintes permisses: a) -rw-r--rwx b) -r--rwxrwx c) -rw-r--r-2- crie os seguintes arquivos: teste1, teste2, teste3 e teste4. Todos tero suas permisses da seguinte forma: -rw-r--r-3- mude suas permisses, respectivamente, usando o modo octal, para: a) -rwxr-x-wb) -r--r----c) -r---w---x d) -rw-rw-r-4- execute o comando ls -l e analise as permisses.
65
Padro de Criao
umask 022 == -rw-r--r-- == 644. Esses valores indicam as mesmas permisses, mas totalmente diferentes. Para definir o padro de criao (umask) indicamos os valores que esto faltando na permisso. Como por exemplo: -rw-r--r-- nas permisses do dono est faltando o x=1, no grupo faltam w=2 e x=1, e para outros usurios faltam w=2 e x =1 no mesmo? Ento pegamos os valores que esto faltando que seria 133. Como no possvel, por padro, definir a permisso de execuo (x=1) para arquivos, ento decrementamos o valor 1 de cada permisso, ou seja, 133 -111 que nos d o resultado igual a 022.
66
Linux System Administration distribuio. Utilizando o RPM possvel: Instalar, Atualizar, Remover e Consultar pacotes na Base de Dados RPM. Instalando um pacote RPM (opo i)
# rpm -ivh emacs-20.7-11cl.i386.rpm
i : Indica que o pacote ser instalado. v : Mostra informaes do processo de instalao h: Indica a porcentagem da instalao utilizando # como indicador. A instalao de pacotes foi desenvolvida para ser o mais simples possvel, porm eventualmente alguns erros podem ocorrer. So eles: Pacote j instalado: Ir aparecer a mensagem: package pacote.rpm j est instalado! Para ignorar a mensagem e instalar o pacote novamente voc deve indicar essa deciso ao RPM. Para isso acrescente o parametro --force ao comando, como no exemplo:
# rpm -ivh emacs-20.7-11cl.i386.rpm force
Arquivos com conflitos: se existir um arquivo j instalado por outro pacote, aparecer a seguinte mensagem: Este pacote no pode ser instalado... Para ignorar esta mensagem e instalar o pacote deve se acrescentar o parmetro --replacefiles no comando, como no exemplo:
# rpm -ivh emacs-20.7-11cl.i386.rpm replacefiles
Dependncia: O pacote.rpm que est sendo instalado depende de outro pacote previamente instalado. Aparecer a seguinte mensagem: falha de dependncia: pacoteXYZ.rpm necessrio para pacote.rpm. Para ignorar essa mensagem deve-se usar o parametro --nodeps para instalar o pacote.rpm sem checar as dependncias. Observe o exemplo: Seja um Profissional Aprendendo com Profissionais 68
U: Indica que o pacote ser Atualizado. v : Mostra informaes do processo de instalao h: Indica a porcentagem da instalao utilizando # como indicador. A atualizao de um pacote.rpm normalmente feita para uma verso posterior da verso que est instalada, mas pode acontecer que a nova verso no satisfaz suas necessidades, ento voc sabe que a verso mais antiga deste pacote possui as funcionalidades de que voc precisa, certo? ento basta atualizar a verso atual para a antiga que seu problema resolvido! ok ? Em partes sim. Veja abaixo. Para que o RPM concorde em atualizar uma verso mais antiga do pacote, voc deve informar ao RPM que a verso que deseja Atualizar mais antiga. Para isso voc deve usar o parametro -oldpackage. Como no exemplo:
# rpm -Uvh emacs-20.7-11cl.i386.rpm --oldpackge
e : indica que o pacote ser desinstalado. Observe que para desinstalar um pacote deve ser informado apenas o NomeDoPadote "emacs". Isso porque o pacote j est instalado. Por isso importante conhecer o formato padro de um arquivo RPM. Se um outro pacote instalado depender do pacote que est sendo desinstalado, aparecer o seguinte erro: a remoo deste pacote quebraria dependncia: pacote.rpm necessrio para pacoteXYZ.rpm. Seja um Profissional Aprendendo com Profissionais 69
Linux System Administration Para remover assim mesmo, acrescente o parmetro --nodeps.
# rpm -e emacs --nodeps
70
No menu, voc poder fazer determinadas aes dependendo da opo que voc escolher: Opo Ao Current Instala todos os arquivos pacotes (.tgz) do diretrio atual (onde voc executou o comando pkgtool). Other Instala todos os pacotes contidos em um outro diretrio (voc ir especificar) Floppy Instala todos os pacotes contidos em um disquete que voc fornecer Remove Remove um pacote j instalado do sistema (ele lhe dar a lista de pacotes) View Mostra uma lista dos pacotes do sistema e seus detalhes Setup Configura alguns pacotes que possuem scripts pra isso
71
Linux System Administration Opes do comando pkgtool Ou voc pode utilizar os comandos individuais para essas tarefas. Por exemplo, se voc quiser instalar um pacote .tgz, faa:
# installpkg pacote.tgz
O comando installpkg apenas instala um pacote, mesmo tendo uma verso antiga deste mesmo pacote j instalado. Nesse caso, se voc instalar com o installpkg, seu sistema ficar com duas verses do pacote. Para evitar isso quando for fazer uma atualizao de verso de um certo pacote, faa:
# upgradepkg pacote.tgz
Se por acaso voc tiver problemas com o pacote e deseja descompact-lo de forma correta para analisar (o que poder no ser muito comum e necessrio fazer), voc pode utilizar o comando:
# explodepkg pacote.tgz
E esses so os comandos individuais. Existe tambm o makepkg, que cria pacotes .tgz de forma simples.
72
Gerenciamento de Processos
Para cada processo existente, o sistema operacional fornece um cdigo (PID) que o identificar. H tambm uma hierarquia de processos, ou seja, um processo pode chamar outro, que por sua vez chama um terceiro, e assim por diante. Um processo que executa em segundo plano chamado de processo "pai", e o novo processo, chamado de "filho". Como j foi dito, o Linux um sistema multitarefa, o que lhe permite executar mais de um processo ou sistema. Portanto possvel ter processos em primeiro plano, chamado de foreground, bem como em segundo plano, chamado de background. Sero mostrados aqui, alguns comandos para trabalhar com processos, so eles: O comando ps: mostra os processos ativos no sistema. Sintaxe: ps -[opo]
# ps aux
a: mostra todos os processos; u: inclui na lista os usurios e hora do inicio do processo; x: inclui processos no associados a um terminal. O comando kill: permite que o superusurio ou os donos dos processos possa eliminar processos ativos no sistema. Sintaxe: kill [opo] -[sinal] [PID]
# kill -l : exibe os sinais que podem enviar para um processo.
Sinal: (9) SIGKILL: Quando en viado para um processo, termina a sua execuo. Suponhamos que exista um processo no sistema com o PID igual a 3784, ou seja, o identificador do Seja um Profissional Aprendendo com Profissionais 73
Linux System Administration processo 3784. Para que o processo seja eliminado, deve-se executar o comando kill de forma que o sinal enviado ao processo elimine-o. Segue exemplo:
# kill - 9 3784
Top
O comando top mostra os processos em execuo ( tempo real ). O mesmo comando apresenta informaes sobre tempo ativo da mquina, quantidade de ususarios logados, porcentagem de memria, processador e sistema utilizado.
# top
top - 08:36:38 up 20 min, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 30 total, 1 running, 29 sleeping, 0 stopped, 0 zombie Cpu(s): 1.7% user, 0.7% system, 0.0% nice, 97.5% idle Mem: 482308k total, 46464k used, 435844k free, 0k used, 1012016k free, 4020k buffers Swap: 1012016k total, PID USER 1 root 2 root 3 root 4 root 5 root 6 root 7 root 8 root 9 root 10 root 46 root 72 root 75 root 318 root 28692k cached TIME+ COMMAND
PR NI VIRT RES SHR S %CPU %MEM 9 0 260 260 232 S 0.0 0.1 0:03.77 init 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S 0.0 0.0 0:00.00 keventd
19 19 9 0 9 0 9 0 9 0 9 0 -1 -20 9 0 9 0
0 S 0.0 0.0 0:00.00 ksoftirqd_CPU0 0 S 0.0 0.0 0:00.00 kswapd 0 S 0.0 0.0 0:00.00 bdflush 0 S 0.0 0.0 0:00.00 kupdated 0 S 0.0 0.0 0:00.00 scsi_eh_0 0 S 0.0 0.0 0:00.00 scsi_eh_1 0 S 0.0 0.0 0:00.00 mdrecoveryd 0 S 0.0 0.0 0:00.00 kjournald 0 S 0.0 0.0 0:00.00 kjournald
9 0 620 620 532 S 0.0 0.1 0:00.02 syslogd 9 0 460 460 404 S 0.0 0.1 0:00.03 klogd 9 0 0 0 0 S 0.0 0.0 0:00.00 khubd
74
75
Ao carregar o LILO este passa por duas fases. A primeira executar o setor de boot para permitir o multiboot, caso exista vrios kernels diferentes; e a segunda carregar a imagem do kernel escolhido. No ponto que o KERNEL carregado, ele assume o controle da inicializao do sistema. Sua responsabilidade detectar os dispositivos de hardware suportados por ele e carregar seus mdulos. Aps ter feito toda essa tarefa, o kernel passa o controle para o INIT que por sua vez ir montar os sistemas de arquivos suportados pelo kernel, inicializar os servios bsicos da mquina (servios do mouse, rede, teclado, etc. (seria os [OKs ] que aparecem na tela)) outros servios que podem ser carregados na inicializao da mquina seria dos servidores: web, e-mail, samba, entre outros caso estes estejam instalados e configurados, claro! Aps o INIT o prximo passo a execuo do GETTY que por sua vez disponibiliza a tela de LOGIN (mingetty para o modo texto e kdm do kde, gdm do gnome ou xdm do XFree86 para o modo grfico) que por sua vez aguarda uma interao do usurio que a digitao do login e senha. Aps ser passada essas informaes feito a checagem nos arquivos /etc/passwd e /etc/shadow. Caso os dados informados (login e senha) sejam corretos, alguns outros arquivos so lidos/executados. So eles: Seja um Profissional Aprendendo com Profissionais 76
ferramentas (MANPATH), configurao de permisses, identificao do usurio e do grupo. Ele indicado para passar caminhos de ferramentas que so necessrias a mais de um usurio, evitando assim a configurao personalizada para cada usurio;
~/.bash_profile:
este arquivo armazena as aliases para comandos no linux (aliases so apelidos para os
comandos) que surtem efeito somente para o usurio que possui tal arquivo, ou seja, as aliases do usurio X no surtem efeito para o usurio Y e vice-versa. Aps a execuo destes trs arquivos nesta sequencia, ento disponibilizado um SHELL (interpretador de comandos) para o usurio.
77
01-boot=/dev/hda 02-map=/boot/map 03-install=/boot/boot.b 04-lba32 05-message=/boot/message 06-timeout=100 07-image=/boot/vmlinuz 08- root=/dev/hdaX 09101213label=linux read-only label=windows table=/dev/hda
01-informa a partio onde est instalado o setor de boot 02-utilizado para gravar o setor de boot, armazena as opes de boot. 03-armazena os dados anteriores da MBR.
(MBR)
04-permite que o boot do linux seja instalado aps o cilindro 1024. 05-mensagem que aparecer para o usurio, ao carregar o lilo. 06-tempo em dcimos de segundos para carregar o S.O. padro (default) 07-indica onde se encontra a imagem do kernel do linux. 08-indica a partio X onde est montado o diretrio raiz ( / ) do sistema 09-nome que ser apresentado no momento da seleo da imagem. 10-para garantir a consistencia e integriade do disco, caso rode o fsck. 11-indica a partio Y de outro S.O instalado. 12-nome que ser apresentado no momento da seleo do S.O. 13-indica a partio onde est armazenada a tabela de parties.
11-other=/dev/hdaY
78
fora a interao do usurio com o lilo. indica a S.O. padro para ser carregado tempo em dcimo de segundos para poder escolher o S.O resoluo 1024x768.
79
o Linux seja iniciado no modo monousurio (init 1). Este o modo de tipo de interpretador de comandos que dever ser utilizado.
manuteno do sistema.
linux init=/bin/bash: indica o linux root=/dev/hda9:
Configuraes de Segurana
A utilizao do gerenciador lilo pode comprometer a segurana do sistema caso o administrador no saiba a correta configurao do seu arquivo de configurao /etc/lilo.conf, deixando uma lacuna para que as pessoas mal intencionadas acessem o sistema. O parmetro linux single (ou linux -s) permitem que as pessoas acessem o sistema como monousurio (init 1). Neste modo no solicitado login e senha de administrador para logar no sistema como root, basta apenas digitar linux single ou linux -s para acessar o sistema e ter permisses para fazer o que quiser (mudar a senha do root, deletar os arquivos de configurao do sistema como os arquivos /etc/passwd e /etc/shadow, entre outros). Para barrar este acesso utilizado o parmetro password=senha (que solicitar uma senha sempre aps a escolha do sistema operacional a ser carregado) Exemplo1; e o parametro restricted usado em conjunto com o password=senha (fazendo com que a senha, seja solicitada apenas para o modo monousurio (linux single)) - Exemplo2. 1 - password=123456 2 - restricted
password que ser solicitado sempre aps a escolha do S.O. solicita a senha somente para o modo de manuteno (linux single)
80
Exemplo 01
boot=/dev/hda map=/boot/map install=/boot/boot.b message=/boot/message vga=791 default=linux prompt timeout=1200 password=123456 image=/boot/vmlinuz root=/dev/hdaX label=linux read-only other=/dev/hdaY label=windows table=/dev/hda boot=/dev/hda map=/boot/map
Exemplo 02
install=/boot/boot.b message=/boot/message vga=791 default=linux prompt timeout=1200 password=123456 restricted image=/boot/vmlinuz root=/dev/hdaX label=linux read-only other=/dev/hdaY label=windows table=/dev/hda
Quando utilizada est configurao (password) outra configurao de segurana muito importante para impedir que os outros usurios do sistema tenham acesso de leitura sobre o arquivo /etc/lilo.conf. Para isso altere as permisses relativas ao grupo e outros usurios do sistema, executando o comando chmod com os modos 600 (-rw-------). Fazendo assim, com que apenas o root possa ler e alterar o contedo deste arquivo.
#chmod 600 /etc/lilo.conf
possvel setar uma senha para uma partio especfica ou para um determinado Sistema Seja um Profissional Aprendendo com Profissionais 81
Linux System Administration Operacional. Suponhamos que estejam instalados na mesma mquina o Windows e o Linux e o arquivo /etc/lilo.conf tenha a seguinte configurao:
boot=/dev/hda map=/boot/map install=/boot/boot.b lba32 message=/boot/message prompt timeout=100 image=/boot/vmlinuz root=/dev/hda5 label=linux read-only other=/dev/hda1 label=windows table=/dev/hda
de seu interesse bloquear o acesso ao Sistema Operacional Windows por exemplo, que est instalado na partio hda1. Ento basta acrescentar o parmetro password=senha dentro da sesso outros (other), o arquivo /etc/lilo.conf ficar da seguinte forma: ... ... ...
other=/dev/hda1 label=windows password=12345 table=/dev/hda
82
Configurao de rede: interfaces de rede, roteadores, firewall; Inicializao dos servios: configurao dos servidores; Executar e disponibilizar as consoles virtuais: que promove a interao dos usurios no sistema.
Nveis de execuo em distro baseadas no Red Hat (Conectiva, Mandrake, Suse, Fedora, Linux)
Nvel 0 1 2 3 4
Descrio Desliga o sistema (nunca definir como initdefault) Mono-usurio Multi-usurio sem acesso a rede Multi-usurio com acesso a rede No utilizado Seja um Profissional Aprendendo com Profissionais 83
6 Reinicia o sistema (nunca definir como initdefault) Os nveis de 2 a 5 diferem entre as distribuies. Por exemplo: no Debian o nivel 2 por padro multi-usurio com suporte a rede e no Red Hat o nvel 2 por paro multi-usurio sem suporte a rede. Para saber o nvel de execuo atual, execute:
# runlevel
O INIT sempre ser o processo de nmero 1 do sistema, uma vez que o primeiro a ser executado. Visualize a sada do comando ps da forma:
# ps aux | grep init
NOTA: Este comando filtra apenas os processos que contm a palavra init na lista de processos do ps aux.
Observe que o PID no processo init [nivel de execuo] igual a 1. ou seja, ele o primeiro processo a ser executado no sistema. O INIT tambm um processo monitorador, pois no responde a nenhum sinal de kill: SIGKILL, executado por kill -9 <PID> ou pelo SIGTERM executado por kill -15 <PID>. Portanto sempre estar ativo, ele o pai de todos os processos.
#kill -9 #kill -15 1 1
84
De modo que, se desejar carregar outro nvel de execuo, basta digitar o comando init ou telinit da seguinte forma:
#init 5 #telinit 3 #runlevel N 5 3
Observe que o comando mostra o nvel de execuo anterior e o atual. Se o nvel atual o que foi carregado no processo de inicializao, ou seja, no foi alterado com o comando init ou telinit aparecer a letra 'N' no lugar do nvel anterior, da seguinte forma:
# N runlevel 3
Se o nvel anterior for o nvel 1 (mono-usurio) aparecer a letra 'S' indicando que estava como linux single.
# S runlevel 3 caso o nvel de execuo anterior seja 1
85
Monitoramento do sistema: alguns processos podem ser marcados como sempre vivos mas se por alguma razo este processo morre o init tem a responsabilidade de re-executar o processo tornando-o vivo novamente. Um bom exemplo de processo que no pode morrer so os terminais, pois eles que do acesso ao sistema.
Desligamento automtico: quando h uma queda de energia muito prolongada os no-breaks mandam um sinal SIGPWR (30) ao processo init comunicando que a sua carga de energia baixa, fazendo assim com que o init desligue corretamente a mquina, aps algum tempo (shutdown -f -h +2 Ser desligado em 2 minutos). Caso a energia volte antes que a mquina seja desligada, o nobreak manda essa informao ao processo init para abortar o processo de desligamento enviando o sinal -c no comando shutdown (shutdown -c mensagem) , fazendo assim com que seja abortado qualquer sinal de shutdown anterior.
O Arquivo /etc/inittab
A configurao deste arquivo feita atravs de quatro campos separados por dois pontos (:). identificao : niveis-de-execuo : ao : processo 1) identificao: representa a identificao da linha. O ideal usar duas letras por questes de compatibilidade, nas verses mais recentes pode-se utilizar ate 4 caracteres. Este valor totalmente arbitrrio, podendo ser escolhido qualquer combinao de caracteres, desde que seja nico. 2) nveis de execuo: informa o nvel de execuo, caso o campo esteja vazio ser executado para todos os nveis; se for 'S' indica que deve ser executado somente no nvel monousurio. Seja um Profissional Aprendendo com Profissionais 86
Linux System Administration 3) ao: indica o tipo de ao que ser executada, as mais utilizadas so:
Descricao
O respawn faz com que o init re-execute o processo caso ele seja morto. O init aguarda por uma deciso anterior para prosseguir O processo ser executado apenas uma vez, na inicializao do nvel. Indica o nvel que deve ser inicializado por padro Indica o script de inicializao geral do sistema (/etc/rc.d/rc.sysinit) O processo ser executado quando o init receber o sinal SIGPWR (30), falha de energia. Indicador de restabelecimento de energia ( chamado somente aps um powerfail) Indica o processo ou comando que ser executado aps pressionar as teclas ctrl+alt+del
# Default runlevel. (Do not set to 0 or 6) - Seleciona o tipo do nvel que deve ser executado por padro (initdefault)
id:3:initdefault:
# System initialization (runs when system boots) - Indica que o script rc.S deve ser executado. Este ser sempre executado e somente uma vez (sysinit), e apenas na inicializao, pois possui informaes gerais que devem ser carregadas para qualquer nvel de execuo.
si:S:sysinit:/etc/rc.d/rc.S
# Script to run when going single user (runlevel 1) Script utilizando quando o lilo envia o sinal de inicializao no modo monousurio. Este script solicita a senha do usurio durante o processo de inicializao. Torna-se uma medida de segurana contra ataques de fora bruta. ( mais detalhes sobre segurana no inittab no curso de Segurana em Redes Linux )
su:1S:wait:/etc/rc.d/rc.K
87
Linux System Administration # Script to run when going multi user Script utilizado para inicializar os runlevels 2, 3, 4 e 5.
rc:2345:wait:/etc/rc.d/rc.M
# What to do at the "Three Finger Salute" - esta ao definida para informar qual comando executado quando as teclas CTRL+ALT+DEL so acionadas.
ca::ctrlaltdel:/sbin/shutdown -t5 -r now
# Runlevel 0 halts the system Script que executado quando o nvel 0 solicitado. Neste nvel o sistema operacional desligado.
l0:0:wait:/etc/rc.d/rc.0
# Runlevel 6 reboots the system - Script que executado quando o nvel 6 solicitado. Neste nvel o sistema operacional reiniciado.
l6:6:wait:/etc/rc.d/rc.6
# What to do when power fails quando o init recebe um sinal SIGPWR (30) de um processo que monitora uma interface serial ligada do computador a um no-break denominado UPS (Uninterrupted Power Supply Suprimento Ininterrupito de Energia) ele executa o comando shutdown.
pf::powerfail:/sbin/genpowerfail start
# If power is back, cancel the running shutdown caso a energia seja reestabelecida o init recebe um sinal SIGPWR alertando que h um arquivo chamado /etc/powerstatus contendo a palavra OK. Isso significa que a energia eltrica voltou. Ento o shutdown anterior deve ser cancelado.
pg::powerokwait:/sbin/genpowerfail stop
# caso a energia seja reestabelecida o init recebe um sinal SIGPWR alertando que h um arquivo chamado /etc/powerstatus contendo a palavra OK. Isso significa que a energia eltrica voltou. Ento o shutdown anterior deve ser cancelado. Seja um Profissional Aprendendo com Profissionais 88
# These are the standard console login getties in multiuser mode - indica o nmero de consoles texto e grfico por padro. As linhas que esto habilitadas indicam o nmero de console texto e as linhas comentadas (#) ou que no existem indicam as consoles grficas.
c1:1235:respawn:/sbin/agetty 38400 tty1 linux c2:1235:respawn:/sbin/agetty 38400 tty2 linux c3:1235:respawn:/sbin/agetty 38400 tty3 linux c4:1235:respawn:/sbin/agetty 38400 tty4 linux c5:1235:respawn:/sbin/agetty 38400 tty5 linux c6:12345:respawn:/sbin/agetty 38400 tty6 linux
# Esta linha executada somente quando o nvel de execuo o 4. A execuo desta linha faz com que o gerenciador de login do modo grfico seja carregado. Dentro do arquivo prefdm. Existem 3 gerenciadores de login, o kdm do kde; o gdm do gnome e o xdm da Xfree86.
x1:4:wait:/etc/rc.d/rc.4
Aps a modificao do arquivo /etc/inittab deve-se executar o comando init enviando o sinal 'q' para o arquivo ser lilo novamente, desta forma no necessrio reiniciar a mquina para que o arquivo inittab seja carregado. O comando deve ser executado da seguinte forma:
# init q
O diretrio /etc/rc.d/
Conhecendo os nveis de inicializao do sistema, importante saber o que cada um deles fazem, ou seja, que tipo de servios eles vo chamar e qual momento de faz-los. Cada nvel de execuo possui um diretrio com seus arquivos para inicializao, sendo o diretrio /etc/rc.d/rc0.d/ para o nvel 0, o diretrio /etc/rc.d/rc1.d/ para o nvel 1; /etc/rc.d/rc2.d/ para o 2 e assim por diante at o nvel 6. A sua chamada feita a partir do script /etc/rc.d/rc.S que executado pelo processo INIT. Seja um Profissional Aprendendo com Profissionais 89
Liste o contedo do diretrio /etc/rc.d/rc3.d/ por exemplo. Observe que existem vrios arquivos e estes comeam com a letra 'K' ou com a letra 'S' para indidar se o processo deve ser parado (kill) ou iniciado (start), respectivamente. Observe tambm, que aps uma dessas letras possue um nmero que varia de 00 at 99 que determina a prioridade de execuo dos arquivos contidos neste diretrio. Para estes servios podem ser utilizadas as ferramentas ntsysv e chkconfig nas distribuies baseadas em RedHat
NOTA: o diretrio de cada nvel de execuo pode variar de distribuio para distribuio. O exemplo acima retrata o diretrio das distribuies baseadas em Red Hat.
Arquivo /etc/issue
Este arquivo contm a mensagem de cabealho que apresentada na tela de login do modo texto (mingetty). Para visualizar o arquivo digite:
# cat /etc/issue Slackware Linux Entre com Login e Senha.
Altere o contedo deste arquivo! Agora abra uma outra console texto (CTRL+ALT+F3 por exemplo). Observe que a mensagem que voc colocou no arquivo /etc/issue aparece na tela de login. Este arquivo utilizado para auxiliar os usurios informando o que eles devem fazer nesta tela.
Arquivo /etc/nologin
Este arquivo utilizado quando o administrador decide fazer uma manuteno no servidor. Este arquivo impede que os usurios comuns loguem no sistema. Por padro este arquivo no existe. Sempre que a existencia dele for necessria, o administrador deve cria-lo manualmente com o comando touch por exemplo (touch /etc/nologin). Observe que a funcionalidade desse arquivo vlida apenas dentro do diretrio /etc. Seja um Profissional Aprendendo com Profissionais 90
Agora tente logar no sistema (com conta de usurio comun). Observe que isso no possvel, porm o usurio no sabe o que est acontecendo, ele apenas no loga. Ele pode pensar que est digitando a senha errada ou que sua senha foi alterada. Para eliminar essas possveis dvidas por parte dos usurios, o administrador deve digitar um texto dentro do arquivo /etc/nologin, informando aos usurios a indisponibilidade do sistema por determinado motivo. Para isso execute: (Insira uma mensagem informativa). Por exemplo:
#vi /etc/nologin
SERVIDOR EM MANUTENO! ESTE ESTAR DISPONVEL AS 15:00 HORAS. OBRIGADO PELA COMPREENSO! CPD/3WAY. Dessa forma nenhum usurio ir incomodar. Observe tambm que apenas a conta do superusurio, root, pode acessar o sistema com a existncia deste arquivo.
Arquivo /etc/motd
Este arquivo usado para passar alguma informao aps o logon para todos os usurios do sistema, como por exemplo: LOGIN EFETUADO COM SUCESSO! Altere o contedo deste arquivo e visualize sua sada aps o logon.
Arquivo /etc/securetty
91
Linux System Administration Este arquivo mantm as consoles virtuais que o superusurio (root) pode efetuar logon no sistema. uma poltica de segurana que feita em servidores para impedir que pessoas que eventualmente conseguem descobrir a senha de root efetuem logon no sistema. Para prevenir esta situao, abra o arquivo /etc/securetty , e comente todas as linhas deste arquivo usando o caractere '#'. Caso optar por deixar a console tty5 (5 console CTRL+ALT+F5), por exemplo, descomentada, o root poder logar apenas nesta.
#vi /etc/securetty
No exemplo acima o root no conseguir realizar login nas consoles 1, 2, 3 e 4. Exerccio Se forem comentadas todas as linhas deste arquivo, o que fazer para efetuar o login no sistema com a conta de root, visto que sua entrada est bloqueada? Essa resposta bem simples. Voc pode efetuar o logon de sua conta pessoal no sistema, logo aps executado o comando su - <usurio>. Este comando far com que a senha do <usurio> seja solicitada. Vamos fazer um teste. Siga os passos: 7) Efetue logon no sistema com sua conta pessoa; 8) Agora digite $su - root; 9) Agora digite a senha de root. Observe que agora est logado com a senha de root; 10)Execute o comando exit para voltar conta anterior.
92
Comando su
O comando su utilizado para se promover como sendo outro usurio no linux. Por exemplo: Voc est logado no sistema como fulano e deseja acessar o sistema como beltrano. No necessariamente deve ser efetuado logoff de fulano e logon de beltrano, basta utilizar o comando su beltrano e logo aps digitar a senha para este usurio. Assim que terminar de fazer a tarefa usando o usurio beltrano, deve ser digitado o comando exit fazendo com que o logon de beltrano seja encerrado, e retornado, ento, para o logon fulano. Faa este procedimento. Crie duas contas de usurio uma fulano e outra beltrano com senhas 123. logue como fulano e depois se promova como beltrano. Depois execute o comando exit. Observe que a conta do beltrano encerrada e a conta atual fulano. Este comando til quando so comentadas todas entradas no arquivo /etc/securetty (apresentado acima) e se deseja efetuar alguma configurao no sistema com a conta de root.
93
Inicializao de Servios
O local dos arquivos scripts para inicializao dos servios difere de uma distribuio para outra. Nas distribuies baseadas no Red Hat (Fedora, Conectiva, Suse, etc) os scripts de inicializao dos servios se encontram dentro do diretrio
/etc/rc.d/init.d/ ou /etc/init.d/,
j no Slackware eles ficam dentro de /etc/rc.d/, por exemplo. Estes servios so chamados tambm de daemons. Um servio ou um daemon necessriamente um processo, podendo ser: servios de rede - como httpd (servidor de pginas Web), crond (agendador de tarefas), sendmail (servidor para envio de e-mails) ; ou no - como network (configurao de rede) e keytable (configurao de teclado), gpm (servio do mouse), etc. costume incluir a letra 'd' no final do nome de cada script para indicar os daemons, como httpd (HTTP daemon - servidor de pginas web), named (name daemon - servidor de nomes internet), etc. Todos estes servios ou daemons so padr onizados de forma que suportam as opes start e
stop; e
Opo
Funcao
Inicia o daemon / servio start Pra o daemon / servio stop Pra e inicializa o daemon / servio restart Recarrega o arquivo de configurao sem parar o daemon / servio reload Exibe se o status do daemon / servio - parado, rodando, travado, etc... status Nem todos os daemons suportam todas as opes citadas.
Para executar um daemon, basta indicar o camindo completo deste (/etc/rc.d/daemon) e informar o que voc deseja fazer com tal (start, stop, status, restart ou reload). Por exemplo: Se desejar utilizar o recurso do mouse, a primeira coisa a fazer identificar o daemon relativo ao mouse (gpm), depois so executar o comando. Este fica da seguinte forma
#/etc/rc.d/rc.gpm stop
94
O Arquivo /etc/login.defs
Este arquivo armazena as principais configuraes para a gerao dos usurios (quando se executa o comando adduser <user>), indo desde o gerenciamento de senha, at a criao do diretrio padro do usurio. Exemplo do contedo do arquivo:
MAIL_DIR /var/spool/mail local padro para os e-mail dos usurios.
99999 0 5 7
nmero de dias para a utilizao da senha quantidade mnima de dias que o usurio dever tamanho mnimo da senha para usurios comuns qdo dias restantes que o usurio ser informado da
expirao da senha.
UID_MIN UID_MAX
500 60000
Incio do UID para usurios comuns Fim do UID para usurios comuns
Incio do GID para usurios comuns Fim do GID para usurios comuns criado o diretrio home no momento da criao do
95
Programao Shell
Programando no Linux Todos os sistemas operacionais da famlia Unix possuem shell (interpretador de comandos) programveis; ou seja, permite a criao de scripts interpretados, com funcionalidades prximas de uma linguagem completa, como C ou Pascal. Os scripts shell permitem ao administrador do sistema automatizar tarefas, criar novos comandos para o seu auxilio, entre outras vantagens. A sua utilizao muito variada, sendo que ele est presente em todo o sistema, pois a maioria dos arquivos utilizados pelo sistema so scripts, assim conhecer a sua sintaxe e compreender o que ele pode vir a fazer dentro de um arquivo fundamental para o administrador.
Nota: O intuito deste material no ensinar programao, mas sim apresentar os detalhes de script shell. Portanto, para se ter bom proveito, necessrio que o leitor conhea os fundamentos de lgica de programao.
Tipos de interpretadores Existem vrios tipos de interpretadores para o sistema Linux, sendo os principais: bash (mais popular e mais utilizado), sh (o sh no existe mais, foi superado e substitudo pelo bash, por isso, geralmente sh um link simblico para bash), csh (sintaxe parecida com C e o mais utilizado no Unix Solaris), tcsh (semelhante ao csh, porm mais completo). Todos os scripts criados devem comear com uma linha de comando especfica informando ao sistema operacional o tipo de interpretador de comandos a ser utilizado. O mais comum o bash. O nome do interpretador atualmente utilizado fica armazenado em uma varivel de ambiente chamada SHELL ou shell (depender do interpretador). Para saber qual est sendo utilizado, basta utilizar o comando abaixo:
# set | grep -i shell SHELL=/bin/bash
96
Neste caso o comando utilizado foi: set para listar as variveis de ambiente, o pipe (para concatenar a sada do ltimo comando com a entrada do prximo), grep para fazer a filtragem de sada juntamente com a opo -i (desativa o case sensitive para esta filtragem) e o nome da varivel a ser pesquisada e oomo resultado obtido foi o nome do interpretador utilizado, que neste caso o bash. Quando o usurio possui um interpretador de comandos e uma senha vlida ele est apto a fazer login no sistema, porm algumas vezes no interessante que ele faa acesso, mas que possua uma conta para acessar outros tipos de servios do sistema, como internet, SAMBA e outros servios. A remoo do acesso ao sistema pode ser feita no arquivo de configurao de usurios /etc/passwd, devendo ser alterado o valor do ltimo campo de /bin/bash (ou outro interpretador) para /bin/false ou /bin/nologin. Para este material ser utilizado o interpretador de comandos bash, pois alm de ser o mais comum as distribues ele mais simples para trabalhar. Um Script simples Os scripts so arquivos regulares do sistema, no havendo necessidade de extenses especficas ou detalhes a mais, ele funciona simplesmente com a sua permisso de execuo ativada. A extenso seria usada para destacar o arquivo como um script. Um exemplo seria a extenso .sh representando shell ou bash. Os comandos dentro de um script podem ser os mesmos utilizados em uma linha de comando, pois o arquivo lido de forma sequncial (de cima para baixo) e lido conforme seria digitado diretamente pelo usurio. Poderia ser criado um script para escrever uma mensagem na tela para o usurio quando o script for executado, podemos fazer acesso a banco de dados como o MySQL, filtrar dados de comandos etc... Iremos inicialmente gerar um script simples com o comando echo, que permite escrever na sada padro, enviando uma mensagem simples, como: Ol Mundo! Exemplo: Seja um Profissional Aprendendo com Profissionais 97
Linux System Administration Crie e edite um arquivo chamado script1.sh dentro do seu diretrio $HOME, com o seguinte contedo:
# vi ~/script1.sh
Contedo:
#!/bin/bash echo "Ol Mundo!
O cabealho #!/bin/bash serve para informar o tipo de interpretador a ser utilizado. Caso no seja informado o tipo do interpretador no tem problema. A extenso .sh no necessria, mas ela colocada para facilitar sua indentificao pelo usurio, que tambm pode recorrer ao comando file. Aps a edio basta salvar o arquivo e alterar a sua permisso para executvel:
# chmod 755 script1.sh
Neste caso no necessrio alterar as permisses do arquivo, mas toda veze que digitado o comando bash aberto um processo filho sobre o interpretador utilizado. Passando todo o caminho desde o raz at o nome do arquivo com a permisso de execuo:
# /tmp/script1.sh Ola Mundo!
98
Utilizando o comando ./ O ponto barra serve para indicar ao sistema que o arquivo est localizado no diretorio corrente, logo aps ele dever ser executdo, desde que o arquivo esteja com a permisso habilitada para isso.
# ./script1.sh
Ol Mundo!
NOTA: Neste dois ltimos casos obrigatrio que o usurio esteja dentro do diretrio onde est armazenado o script shell.
No momento da execuo podem ser feitos testes para verificar o funcionamento do script e saber se ele foi corretamente criado. O teste pode ser feito passando uma das opes conforme a chamada. Sintaxe:
# bash [opo] script-shell
opo: -x apresentado o comando e depois a sua sada -n apenas faz um teste de verificao, no o executa. -v apresenta todo o script e depois o executa Exemplo:
#bash -x script1.sh
99
#bash -n script1.sh
Sintaxe
A programao shell muito simples comparada as linguagens de comparao, mas ela tambm possui a sua prpria caracterstica, muito semelhante a linguagemC. Nela possvel declarar varivel, escrever mensagens, utilizar estruturas de condio e repetio, uso de funes modulares, uso de comandos do prprio interpretador, entre outros.
Comentrios
Os comentrios dentro de scripts so feitos utilizando o caractere #. Do ponto de onde ele estiver presente at o final da linha ser interpretado como comentrio. No script shell no existe declarao para um comentrio em vrias linhas, devendo o mesmo ser colocado uma por uma, portanto no existe bloco de comentrios, como em algumas linguagens de programao. Exemplo:
#!/bin/bash # Programa simples de Script Shell echo "Ol Mundo!" # Imprime Ol Mundo!!
Tipos de Variveis
100
Linux System Administration Varivel Simples A varivel dentro do sistema s pode assumir o valor de string. Sua declarao se d no momento do recebimento de qualquer valor, de acordo com a estrutura: varivel=valor No precisa ter ";" ao final da linha e tambm no pode ter espaos entre a varivel e o sinal de igual, e o sinal de igual e o valor a ser recebido. As regras para a criao so muito semelhante s outras linguagens de programao, vide os seguintes pontos: 1. Usar caracteres alfanumricos e underline; 2. Comear com letra ou underline; 3. No pode conter espaos em branco ou acento. 4. A varivel gerada dentro do script apagada ao final da execuo do mesmo.
Acessando variveis O contedo da varivel pode ser lido com a insero do sinal "$" antes da varivel: $varivel
Comando echo
Como visto anteriormente o comando echo permite a escrita na sada padro, quando o mesmo no redirecionado para um arquivo, dispositivo, etc.
101
Linux System Administration Abaixo sero mostradas algumas opes do comando ec ho: Opo: -n No pula a linha aps o echo -e Permite o uso dos caracteres de escape (tabulao, quebra de linha, bip, etc). Um exemplo do uso das opes acima podem ser feitas na linha de comando:
#echo -n "testando o uso do -n"
testando o uso do -n
NOTA: O uso do -e ser melhor visto aps o prximo tpico.
Caractere de escape Os caracteres de escape permitem a utilizao de organizao (como tabulao), saltar linha, chamar uma sinalizao sonora para o usurio, entre outras funes, assim ela sempre ser acompanhada de uma barra-invertida para indicar o tipo do caractere.
Quadro de funes do caractere de escape: Comando \a \b \n \r \t \v \\ \" Exemplo: Funo Alerta (sinal) Retorno de espao (backspace) Nova linha Retorno do carro Tabulao horizontal Tabulao vertical Apresenta o "\" Apresenta aspas duplas
102
testando o uso dos "caracteres de escape" Caso o exemplo acima fosse escrito sem a opo -e o resultado seria:
#echo "testando o uso \n dos \"caracteres de escape\" \a \n"
Passagem de parmetros
No momento de executar o script possvel passar parmetros, que so informaes extras necessrias para o desenvolvimento do cdigo, por exemplo, capturar uma senha, ela poderia ser passada como parmetro e fazer comparaes dentro do cdigo. Os parmetros podem ser: Parmetro Descrio $0 Nome do script, juntamente com o seu caminho completo $1 a $9 Valores passados como parametros** $$ Nmero do PID do script $? Valor de retorno do teste do ltimo comando $# Quantidade de parametros existentes ** Para valores acima de 9 devem estar entre chaves, por exemplo, o parametro 15 seria descrito assim: ${15}
Linux System Administration -p Solicita a infirmao e permite a visualizao do que est sendo digitado -s Solicita a informao, mas no permite a sua visualizao; utilizado para pedir senhas -n X Permite informar a quantidade de caracteres a serem lidos, X a quantidade em inteiro. Exemplo: Criar um novo arquivo chamado script3.sh Contedo:
#!/bin/bash echo -n "Digite algo: " read resposta echo "Foi digitado: $resposta ; o primeiro parametro e $2" $1 o segundo parametro
A sada ser:
Digite algo: ALGO Foi digitado: ALGO; o primeiro parmetro e AAA o segundo parmetro BBB.
Linux System Administration seja verdadeiro, dentro do if que o comando elif (else + if) e podem existir vrios destes em seqncia, como na estrutura:
if [ condio ]; then comandos elif [ condio1 ]; then elif [ condio2 ]; then else comando fi
Criar um novo arquivo chamado script4.sh, que ser modificado at o final deste assunto:
#!/bin/bash #Faz a leitura da senha do usurio echo Digite a sua senha: read -s resposta senha="12345" #comparao da senha com a registrada dentro do cdigo if [ $resposta = $senha ]; then echo Senha correta! else echo Senha Incorreta! fi
A opo -s para read faz com que o comando no apresente na sada padro o que o usurio est digitando, servindo para aumentar a segurana. Execute o arquivo:
# ./script4.sh
A sada gerada ser a seguinte: Digite a sua senha: Se a senha digitada for igual a 12345, aparecer a mensagem Senha correta!, Caso contrrio mensagem apresentada ser Senha incorreta! Seja um Profissional Aprendendo com Profissionais 105
Comando exit
Caso fosse necessrio para o sistema sair em qualquer ponto do script por falta de alguma informao ou informao errada pode ser utilizado o comando exit 0. Assim quando o script o ler sair automaticamente do cdigo. O script script4.sh poderia ser reescrito assim:
#!/bin/bash #Faz a leitura da senha do usurio echo Digite a sua senha: read -s resposta senha="12345" if [ $resposta = $senha ]; then echo Senha correta! else echo Senha Incorreta! exit 0 fi
Na estrutura acima caso o usurio informe a senha errada o script invocar o exit que serve para sair do cdigo e retornar o resultado para a sada de erro padro (STDERR). A inserso do exit nesta linha de cdigo, parece no ter serventia. Isso acontece porque o comando est no final do cdigo. Nos prximos exemplos, a utilizao do comando exit ser mais clara.
Operadores de comparao
As condies podem ser tratadas de acordo com as tabelas: Entre valores inteiros
106
Linux System Administration Condio $a -eq $b $a -le $b $a -ge $b $a -lt $b $a -gt $b $a -ne $b Significado $a = $b (igual) $a <= $b (menor ou igual) $a >= $b (maior ou igual) $a < $b (menor que) $a > $b (maior que) $a <> $b (diferente)
O uso dos sinais <, >, <=, >=, = e != podem ser usados para inteiros, desde que sejam executados entre dois parenteses (( )) ou pelo comando let. O comando let permite o uso de cdigos parecidos com a linguagem C, permitindo vrias coisas, como por exemplo interao de uma varivel (++ ou --): let var++ let var
Entre strings Condio Verdadeiro se -z $a No existir mensagem -n $a O mensagem existir $a = $b O contedo de ambas as variveis so iguais $a != $b O contedo das variveis forem diferentes Arquivos Condio -e arquivo -x arquivo -d arquivo -l arquivo -s arquivo
Verdadeiro se um arquivo regular arquivo executvel um diretrio for um link o arquivo existe e tem tamanho maior que zero
Verdadeiro se ambas as expresses so verdadeiras (operador e) uma das expresses for verdadeira (operador ou) a expresso for falsa 107
if [ $resposta = $senha ]; then echo Senha correta! else echo Senha Incorreta! exit 0 fi
echo -n "Informe o caminho do diretrio para backup: read diretorio if [ -d $diretorio ]; then echo Diretrio encontrado. Aguarde... fazendo o backup! else echo Diretrio no encontrado! exit 0 if tar cvfz backup.tar.gz $diretorio/*
Condio case
Permite a seleo de comandos especficos a partir de uma chave de seleo, ou seja, o usurio informa o que deseja fazer a partir de uma chave e os comando associados ao mesmo sero executdos. O seu uso mais frequente em menus para a indicao de um item e a tomada de comandos para esta opo. Sintaxe:
case chave in
108
teste1 e teste2 so opes que o contedo de chave pode ter, mas caso chave possuia outro contedo * assumir esta opo, ou seja, * s ser utilizado caso o contedo de chave no encontre uma opo existente. Quando for necessrio utilizar os mesmos comandos para chaves diferentes pode ser utilizado o | (pipe) para separa-los. Uma linha das opes ficaria assim: teste3 | teste4 | teste5) comandos;; Ser inserido ao cdigo do script4.sh um menu para auxiliar o usurio, sendo:
109
case $op in 1) echo n e \nInforma o nome do diretrio: read nome_dir if [ -d then echo e \nEste diretrio ja existe... else mkdir $nome_dir echo e \nDiretrio criado com sucesso... fi;; 2) echo n e \nInforme o diretrio para back-up: read dir_bkp $nome_dir ];
if
-d
$dir_bkp cvfj
]; $dir_bkp
then tar else echo e \nDiretdio no encontrado! fi;; 3) echo n e \nInforme o arquivo .tar.bz2: $dir_bkp.tar.bz2 echo e \nBack-up criado com sucesso!
read arq_tar.bz2
if
-d
];
then $arq_tar.bz2 echo e \nArquivo descompactado em `pwd` else echo e \nArquivo no encontrado! fi;;
110
-f : fica lendo o arquivo repetidamente, ou seja, qdo o arquivo modificado a tela atualizada. binrio - por exemplo, /var/log/wtmp. que visualizado com o comando especf ico last
#last -f /var/log/wtmp
Gerando LOGs
A gerao de logs pode ser feita por qualquer daemon ou programa instalado no sistema. Os daemons mais comuns para a gerao de logs so o syslogd e o klogd.
111
O Daemon Syslogd
O syslogd responsvel pelas mensagens de log do sistema. Uma das principais vantagens de possuir daemon de logs a centralizao das informaes geradas, evitando assim a leitura de dezenas ou centenas de arquivos.
O Daemon Klogd
O klogd monitora as mensagens de log do kernel. Ele realiza o monitoramento e envia as informaes por padro para o syslogd. O klogd registra as mensagens dentro do arquivo /proc/kmsg. Os principais diretrios e arquivos de log Nas tabelas a seguir sero apresentados os principais arquivos e diretrios de log com uma breve apresentao sobre os mesmos: Diretrios Diretrio /var/log/ /proc/ Descrio Armazena a maioria dos logs gerados no sistema. Armazena alguns arquivos de log gerados pelo kernel.
Arquivos do /var/log Arquivo messages dmesg secure boot.log kdm.log lastlog Descrio Armazena as principais mensagens do kernel. Armazena a mensagem de inicializao dos dispositivos do sistema Armazena mensagem a nvel do usurio, login, alterao, tipos de acessos. Armazena mensagens de inicializao de ferramentas do sistema. Armazena mensagens de abertura do ambiente grfico Armazena informaes de acesso do usurio. Arquivo binrio.
Descrio Armazena informaes do processamento Armazena informaes geradas pelo kernel do sistema Armazena informaes dos mdulos carregados pelo sistema.
113
114
Digite: uname -r para saber a verso do kernel. Verifique se a linha CONFIG_QUOTA est descomentada e marcada com a opo 'y'. Exemplo:
CONFIG_QUOTA=y
Se esta linha estiver comentada (#) e/ou estiver marcada com a opo 'n'. O kernel no est dando suporte a quotas de disco, sendo necessrio a re-compilao deste. Verificando a instalao da ferramenta para quota de disco
/dev/hda2 /de/hda7
/boot /
ext3 ext3
defaults defaults,usrquota,grpquota
0 0
0 0
Neste exemplo marcado o dispositivo /dev/hda7, raiz do sistema, como o receptor de quota de disco tanto para usurios quanto para grupos. Criar dois arquivos dentro do dispositivo marcado para utilizao de quota (/dev/hda7). Neste caso a raiz do sistema. Os arquivos devero ter os nomes quota.user e quota.group para usurios e grupos respectivamente.
# # cd / touch quota.user quota.group
recomandado mudar as permisses destes arquivos, afim de no serem alterados por outros usurios.
# chmod 600 quota.* # ls -l quota.* -rw-------rw------1 root 1 root root root 0 Jul 15 14:14 quota.group 0 Jul 15 14:14 quota.user
Agora devemos refazer a leitura do sistema de arquivo que ir receber a quota de disco, ou seja, remontar o dispositivo /dev/hda7, /, com as novas alteraes que foram feitas no arquivo /etc/fstab. Para isso digite:
# mount -o remount /
116
Linux System Administration Execute o comando quotacheck na partio selecionada, /, gerando assim a leitura do mesmo e marcando dentro dos arquivos quota.user e quota.group.
#quotacheck -augvm
Onde: a: checa todos os sistemas de arquivos registrados no /etc/fstab como dispositivo de quota; u: checa os arquivos e diretrios dos usurios; g: checa os arquivos e diretrios dos grupos; v: apresenta o andamento da verificao; m: fora a checagem. Depois de terminar a varredura do dispositivo, iremos ativar as quotas de disco. Para isso execute:
# quotaon -augv /dev/hda6 [/]: group quotas turned on /dev/hda6 [/]: user quotas turned on
Aps esses passos o sistema estar com as quotas ativas, mas isso ainda no implica em limites de utilizao para os usurios, sendo necessrio realizar estas configuraes manualmente, conforme prxima seo. Para desativar as quotas de disco basta usar o comando quotaoff com as mesmas opes utilizadas para ativ-las:
# quotaoff -augv /dev/hda6 [/]: group quotas turned off /dev/hda6 [/]: user quotas turned off
117
Gerenciando quotas
Para habilitar o controle de cota de disco o administrador da rede deve definir, antes de mais nada, o tamanho que ser disponibilizado para cada usurio. A regra geral que todos os usurios tenham uma quota definida, de maneira que a soma dos limites de espao de todos os usurios no ultrapasse o espao disponvel da partio que est com o sistema de quotas ativado.
118
Filesystems: especifica a partio que possvel ativar quotas. Blocks: especifica a soma em kilobytes de todos os arquivos do usurio na partio em questo (neste caso, o usurio rafael possui atualmente 44 KB de dados em /dev/hda6). Soft: o limite lgico do usurio, ou seja, a partir do momento que o usurio ultrapassa esse limite, ele ser alertado pela ferramenta quota para que diminua a quantidade de dados (por um perodo Grace Period explicado mais abaixo) porm ainda conseguir gravar dados no disco, at o limite hard. Hard: o limite fsico, o limite pelo qual o usurio no consegue passar. Inodes: a quantidade atual de arquivos do usurio (o usurio rafael possui 12 arquivos em /dev/hda6).
NOTA: Se os valores para a coluna soft e hard estiverem com o valor igual a zero, 0, isso indica que no esto definidos o tamanho mximo para utilizao do usurio e que este pode gravar o que quiser do tanto que quiser.
Disk quotas for user pedrohenrique (uid 505): Filesystem /dev/hda6 blocks 44 soft 2048 hard 3072 inodes 12 soft 0 hard 0
119
Linux System Administration Limite lgico: 2.048Kb = 2Mb Limite fsico: 3.072Kb = 3Mb Nmero de Arquivos: Ilimitado. At atingir sua quota mxima, claro! Definindo quota para outros usurios Para definir quotas de disco para outros usurios, no necessariamente, deve ser executado o comando edquota -u <user> para cada usurio cadastrado no sistema, at porque, isso leva um tempo considervel, caso o nmero de usurios seja grande. Uma maneira fcil e rpida para definir quotas para os outros usurios executando o seguinte comando: edquota -p <usuario_model> <lista_de_usurios>. Para isso deve existir um usurio com as quotas definidas para servir de modelo. Ou seja, todos os outros usurios tero as mesmas configuraes de quota que est sendo usada pelo usurio_modelo.
pedrohenrique leandro rubia angela jose maria ...
# edquota
-p
-p: indica que a lista_de_usurios deve possuir as mesmas configuraes que o usurio_modelo
-u -u -u -u -u
Observe que as mesmas configuraes de quotas definidas para o usurio rafael, agora esto Seja um Profissional Aprendendo com Profissionais 120
# edquota
-t
Com a execuo desse comando com opo -t , um arquivo texto aberto. Esse permite definir o grace period, ou seja, o perodo de tempo mximo que o usurio ir receber a mensagem indicando que ele ultrapassou o limite lgico (soft). Execute o comando:
#edquota -t
Exemplo do arquivo: Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds
Filesystem /dev/hda6 Block grace period 7days Inode grace period 7days
Onde:
Filesystem: indica a partio onde existe quota de disco; Block grace period: indica o tempo de ultrapassagem do limite lgico de disco; Inode grace period: indica o tempo de ultrapassagem do limite lgico de arquivos. As unidades do arquivo podem ser: days (dias), hours (horas), minutes (minutos) ou seconds (segundos). No exemplo acima ambas opes esto configuradas para 7 dias. Ou seja, o usurio ir ser avisado no perodo de 7 dias e se ele no tomar providncias no final destes, ele no poder gravar Seja um Profissional Aprendendo com Profissionais 121
Linux System Administration mais nenhum arquivo, mesmo que o limite fsico (hard) ainda no estiver se esgotado. Se isso acontecer o usurio ter que eliminar alguns arquivos at ficar com o espao menor que o espao lgico, definido pela coluna soft.
As configuraes de quotas para grupos so feitas da mesma forma que so definidas para os usurios. Suponhamos que a configurao do arquivo seja a seguinte:
Disk quotas for group cpd (gid 505): Filesystem /dev/hda6 blocks 5000 soft 19000 hard 20000 inodes 30 soft 0 hard 0
No exemplo os grupo possui 5.000kb em disco, seu limite lgico (soft) 19.000kb e seu limite fsico (hard) 20.000kb.
122
Linux System Administration O ponto mais importante de se frizar que a quota de grupo um limite de utilizao para todos os usurios do grupo. Ou seja, vamos supor o seguinte caso:
cpd:x:507:pedrohenrique, fulano, beltrano, ciclano Utilizando o exemplo acima, os usurios do grupo cpd (pedrohenrique, fulano, beltrano, ciclano) podem utilizar juntos no mximo 20.000kb. Ou seja, se o usurio pedrohenrique utilizar 19500kb os outros usurios (fulano, beltrano, ciclano) podero usar no mximo 500kb. A confurao Grace Period vlida tanto para usurios quanto para grupos.
123
Agendador de Tarefas
A administrao de um servidor exige executar tarefas peridicas, como: realizar backup no final do turno de trabalho, checagem e atualizao de banco de dados, leitura de informaes em email, entre outras tarefas. Neste sentido, foi criada# agendamento de tarefas denominado cron. O agendador cron, que o agendador padro do UNIX, vem no pacote crontabs. A configurao pode ser feita por vrias ferramentas e arquivos de vrias autorias, neste material ser abordada a ferramenta de autoria de Paul Vixie, que a mais popular entre os administradores de sistemas, o nome deste pacote vixie-cron.
ls /var/log/packages/
uma ferramenta de
CRON
Essa ferramenta possui como daemon o servio crond, responsvel pela verificao dos arquivos de configurao do agendador. Ele verifica a cada minuto se houve mudana na data de seu diretrio de servios (ou na data do arquivo em /etc/crontab). Se tiver ocorrido mudana, o cron ir examinar a data de todos os arquivos crontab e recarregar aqueles que foram alterados. Por isso o servio crond no precisa ser reativado quando houver alterao em qualquer um de seus arquivos de configurao. Pode se usar a consulta aos processos para saber se o servio crond est rodando, como apresentado a baixo:
NOTA: para no ter que inicializar o crond toda vez que for necessrio reiniciar o sistema, utilize a ferramenta ntsysv.
124
Linux System Administration Importante: O cron assume que o sistema est sempre ligado e o servio crond rodando. Se a mquina ou o servio no estiver ativo no momento em que determinada tarefa est agendada, essa tarefa ento no ser executada. Os comandos sero executados desde que os campos minuto, hora e ms corresponderem hora atual, e quando pelo menos um dos campos de dia (dia ou dia_da_semana) corresponderem ao dia atual.
Arquivos de configurao
O arquivo de configurao do agendador cron o /etc/crontab, abaixo existe um arquivo exemplo:
# vi /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * roo 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
As primeiras quatro linhas so variveis usadas para configurar o ambiente no qual as tarefas do cron esto rodando. Divididas na seguinte estrutura: SHELL designa ao sistema qual interpretador de comandos usar. PATH define o caminho usado para executar o comando. MAILTO indica o e-mail do responsvel que ir receber a resposta de execuo para todos os crons que forem realizados;(este e-mail utilizado para enviar notificaes de agendamentos que no foram bem sucedidos. Se o programa foi executado perfeitamente, no enviada notificao). Seja um Profissional Aprendendo com Profissionais 125
Linux System Administration HOME usado como o diretrio padro quando se executa comandos ou scripts.
NOTA: Se o campo da varivel MAILTO estiver definido como uma string vazia (MAILTO=""), o e-mail no ser enviado.
Cada linha do arquivo /etc/crontab representa a tarefa e tem o formato: <minuto> <hora> <dia> <ms> <dia_da_semana> <comando> Os campos so descritos da seguinte maneira: Campo minuto hora dia ms dia da semana Valores Validos Qualquer inteiro de 0 a 59 Qualquer inteiro de 0 a 23 Qualquer inteiro de 1 a 31 Qualquer inteiro de 1 a 12 Qualquer inteiro de 0 a 7
Se um campo tiver indicado com asterisco (*) , significa que aceitar toda a faixa de valores vlidos. Pode-se usar intervalos de nmeros. O intervalo um par de nmeros separado por hfen. Por exemplo, no intervalo 15-19 em uma entrada horas especifica execuo as 15 , 16 , 17 , 18 e 19 horas. Listas so vlidas tambm. Listas so nmeros separados por vrgulas. Exemplo: 1-5,8,12. Ou sena, 1, 2, 3, 4, 5, 8, 12. Tambm existe a possibilidade de se usar fraes de tempo, por exemplo de 10 em 10 minutos, o formato da frao */tempo, assim para o caso apresentado seria */10 no campo de minutos. Nomes (em ingls) tambm podem ser usados nos campos ms e dia_da_semana. Deve-se usar as trs primeiras letras do dia ou ms. (Segunda = mon = 1) O sexto campo (o restante da linha) determina o comando a ser executado. Deve-se utilizar todo o caminho at o comando. Para saber onde est o comando a ferramenta whereis pode auxiliar. As distribuies baseadas na Red Hat utilizam o arquivo /etc/crontab para organizar diretrios de tarefas, como em dias, horas, semanas e meses. O arquivo /etc/crontab pode utilizar o script runparts para executar os scripts nos diretrios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, e /etc/cron.monthly. Os arquivos nesses diretrios devem estar escritos em shell script. Para adicionar Seja um Profissional Aprendendo com Profissionais 126
Linux System Administration uma tarefa, simplesmente coloque uma tarefa (sendo um arquivo executvel) dentro do diretrio especfico. A tarefa ser executada de acordo com o diretrio selecionado:
/etc/cron.hourly de hora em hora /etc/cron.daily todos os dias /etc/cron.weekly uma vez por semana /etc/cron.monthly uma vez por ms
Crontab
Crontab uma ferramenta que auxilia no manuseio do agendador por parte dos usurio comuns, pois os mesmos no possuem acesso aos diretrios de agendamento do cron. Os crontabs de todos os usurios so armazenados no diretrio /var/spool/cron, e cada arquivo possui o nome do usurio que o criou, ou seja, /var/spool/cron/nome_do_usurio . Para criar um crontab como um usurio normal, basta utilizar a ferramenta crontab com a opo -e e editar o crontab do usurio.
#crontab -e
Os arquivos utilizam a mesma sintaxe do /etc/crontab (frizar que estes arquivos no possuem o sexto campo. O campo do usurio dono do processo). O daemon do cron checa o arquivo /etc/crontab e os diretrios /var/spool/cron e o /etc/cron.d de minuto em minuto e verifica se houve mudanas. Se houveram mudanas, ento elas so carregadas para a memria. Um exemplo simples: Agendar uma cpia de todos os arquivos que se encontram dentro do diretrio /var/log para um diretrio dentro da pasta do superusurio s 18 horas. Agendar utilizando o comando crontab -e e como superusurio.
127
O comando acima ir abrir um arquivo com o editor padro do usurio. Acrescentar linha a ser executada: 0 18 * * * /bin/cp -rf /var/log/* /root/logs <minuto> <hora> <dia> <ms> <dia_da_semana> <comando> Acima foi passado para que s 18 horas de todos os dias ele faa uma cpia do diretrio /var/log. A utilidade de se fazer a cpia deste diretrio porque dentro dele ficam armazenadas informaes do sistema e acessos ao mesmo, alm de outras informaes. Fazer a cpia ajuda, porm no interessante apenas fazer a cpia, pois um dia que se esquea de realiza-la, todas as informaes do dia anterior sero perdidas. Assim aconselhvel criar um script shell para fazer a cpia, empacotar e compactar os arquivos. Portanto dever ser criado um arquivo com o nome de script.sh dentro do diretrio do root, alm de um diretrio chamado logs. O cdigo do script pode ser:
#vi /root/script.sh
entrar no diretrio /var/log (aps a finalizao do script ele retornar para o diretrio antes da sua chamada). empacotar e compactar todo o contedo do diretrio /var/log com o nome de backup e complementada pela data do dia. mover o backup gerado para dentro do diretrio /root/logs.
128
De acordo com os exemplo acima os usurios rafael e fulano podero utilizar o agendador, porm os usurios ciclano e beltrano no podero fazer o mesmo pois o seu nome se encontra dentro do arquivo de negao. Caso o usurio ciclano tente usar o comando crontab -e para agendar algo receber a seguinte resposta:
$ crontab -e
You (ciclano) are not allowed to use this program (crontab) See crontab(1) for more information A resposta foi a seguinte: Voc (ciclano) no possui permisso para usar este programa (crontab) Veja crontab(1) para maiores informaes
NOTA: caso no for utilizar as permisses para a execuo do agendador ambos os arquivos no devero existir no sistema, pois eles podero negar todos os usurios, inclusive o root, de utilizar o agendador crontab.
129
Acrescentar a tarefa para o anacron, neste caso ser uma cpia do arquivo /var/log/messages para dentro do diretrio do root:
0 2 * * * /bin/cp -Rf /var/log/messages /root/anacron_log
130
Aps o agendamento basta inicializar o anacron e esperar pela ativao do sistema depois do horrio marcado:
# anacron
Para verificar se realizou a tarefa, solicite o anacron com a opo -d aps a ativao do sistema, lembrando que o computador dever estar desativado no momento de executar o cron agendado:
# anacron -d
A primeira linha, foi agendada uma tarefa para executar, as 18:25 horas no dia 31 do ms 7, sabado-6, o comando bash script.sh. A segunda, agenda uma tarefa para executar s 23:00 horas em todos dias, ms e dia da semana o comando bash bkp-rede.sh. Execute comando para verificar as tarefas pessoais que foram agendadas
#crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.2704 installed on Fri Jul 30 17:02:45 2004) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 25 0 18 23 * 31 * 7 * 6 bash script.sh bkp-rede.sh bash
131
132
Linux System Administration Existem vrios comandos afins de gerenciar a fila de impresso, alguns deles sero comentados abaixo:
#lpq -a Rank active 1st Owner root root Job 6 7 File(s) testpage.asc testpage-a4.ps Total Size 1024 bytes 18432 bytes
Este comando usado para mostrar a fila de impresso de todas as impressoras que esto em atividade na mquina local.
#lpstat hp840-6 hp840-7 root root 1024 18432 Ter 03 Ago 2004 19:32:11 BRT Ter 03 Ago 2004 19:32:21 BRT
# lprm
mostra a nova fila de impresso Owner root Job 6 File(s) testpage.asc Total Size 1024 bytes
Este comando, lprm <job>, remove um arquivo identificado por <job> da fila de impresso. interessante visualizar-mos o identificador (job) do arquivo para remov-lo. Entretanto a execuo desse comando sem o job, lprm, far com que o prximo da fila seja removido.
# lpr /etc/passwd
133
Linux System Administration O comando acima envia um job (arquivo para impresso) para fila de impresso. Verifique com o comando lpq -a.
# lpq -a Rank active 1st Owner root root Job 6 8 File(s) testpage.asc passwd Total Size 1024 bytes 2048 bytes
possvel remover vrios arquivos da fila de impresso. Para isso usamos o comando lprm identificando todos os jobs que devem ser removidos da fila. Observe os comandos:
# lprm 6 8 # lpq -a no entries
O primeiro comando remove os arquivo de job 6 e 8 respectivamente; o segundo lista a fila de impresso com nenhum job em atividade.
134
3 passo: Editar o arquivo /etc/exports de forma a identificar os diretrios/arquivos que devero ser compartilhados publicamente ou no. Ele configurado identificando duas colunas, a primeira deve possuir o caminho absoluto do diretrio/arquivo que ser compartilhado; a segunda deve possuir informaes sobre as mquinas que podero utilizar este compartilhamento (IP/MASCARA) e suas devidas permisses.
135
Neste exemplo o diretrio que est sendo compartilhado publico que encontra-se no /. Este est disponvel para rede 10.62.0.0 de mascara casse B, 255.255.0.0, ou seja, todos computados, com permisses de leitura e escrita (rw) e que o root das mquinas cliente tero privilgios de root no diretrio compartilhado do servidor que est definido pela opo no_root_squash. Se desejar que isso no seja possvel, substitua no_root_squash por root_squash, o mesmo vale para a opo rw podendo ser substituda por ro (read-only somente leitura). 4 passo: reiniciar o daemon do nfs
# /etc/rc.d/nfs stop
Lado Cliente
2 passo: Digite o comando mount para verificar todos dispositivos montados atualmente.
# mount /dev/hda5 on / type ext3 (rw,usrquota,grpquota) /dev/hda2 on /boot type ext3 (rw) nfsd on /proc/fs/nfsd type nfsd (rw) ... 10.62.0.102:/publico on /opt type nfs (rw,addr=10.62.0.102)
login: <entre com login> Password: <entre com a senha> $ um Shell disponibilizado.
NOTA: deve previamente existir um usurio cadastrado no servidor que saiba login e senha para acessa-lo via telnet.
OBS.: O root no loga via telnet por padro. Deve-se editar o arquivo /etc/securetty para que essa opo seja habilitada, adicionando consoles virtuais do tipo pts/x.
#vi /etc/securetty
Exemplo de contedo deste arquivo: console vc/1 ... vc/11 tty1 ... tty11 Seja um Profissional Aprendendo com Profissionais 137
Caso no esteja, deve inicia-lo. Lado Cliente 1 passo: Verificar se o pacote do SSH est instalado no sistema:
#ls /var/log/packages | grep openssh
138
3 passo: Digite yes para efetivar a conexo e logo depois a senha para o usurio informado.
Warning: Permanently added '10.62.0.102' (RSA) to the list of known hosts. rafael@10.62.0.102's password:
139
Compilao do Kernel
Por que recompilar o kernel ? A primeira inteno otimizar o kernel para o seu hardware a fim de melhorar a performance e suportar todos os dispositivos. Voc tambm pode querer atualizar o sistema obtendo suporte a novos resursos e dispositivos de hardware. Ou voc pode querer se livrar de BUG's. O que o kernel? O kernel Linux o centro do sistema operacional. A parte do sistema responsvel pelo gerenciamento de baixo nvel do hardware e software. Quais so os requerimentos mnimos de hardware? Isso varia muito de acordo com a arquitetura e a verso do kernel. Mas tenha em mente o seguinte para ter um sistema mnimo funcional: 16MB de RAM (memria fsica), 100MHz de clock de processamento e 100MB de espao em disco (memria virtual). #Verificando o clock e a arquitetura
#cat /proc/cpuinfo
Mdulos
Mdulos so os drivers disponiveis junto ao kernel do sistema operacional. No sistema Linux podemos manipular estes drivers da seguinte forma: Listar os mdulos carregados em memria
#lsmod Module cls_route cls_u32 cls_fw Size 4344 4892 2584 Used by 0 1 0 (unused) Not tainted (unused)
140
Compilando o kernel 1) Passo: Baixe o pacote que contm o cdigo fonte mais atualizado do kernel Linux da srie 2.6 em http://www.kernel.org Abrindo a pgina no navegador web, clique no link F para fazer o download do pacote que contm os fontes. Voc tambm poder fazer o download com o comando wget como no exemplo abaixo: Seja um Profissional Aprendendo com Profissionais 141
2) Passo: Instalar o kernel - Como superusurio (faa o login no sistema com o usurio root), descompacte e desempacote o arquivo assim:
# tar xjvf linux-2.6.7.tar.bz2 -C /usr/src
4) Passo: Diretrio Fonte - Este ser o diretrio raiz de compilao, ou seja, o diretrio base para os passos seguintes.
# cd /usr/src/linux
O arquivo /usr/src/linux/.config armazena a configurao do kernel. Basicamente, este arquivo descreve o que dever ser incorporado ao kernel (y) e o que dever ser criado como mdulo (m). Incorpore ao kernel apenas o necessrio. O restante necessrio, configure como mdulo. O que no for necessrio, retire. Por exemplo, se voc no tem dispositivos pcmcia em sua mquina, retire da configurao o suporte a pcmcia. Isto possibilita uma maior performance por parte do sistema. O kernel Linux pode ser modular, ou seja, o suporte bsico fica incorporado ao kernel constantemente e o suporte a outros dispositivos, como por exemplo, uma placa de som, pode ser configurado como mdulo. Assim sendo, este mdulo da placa de som carregado na memria e plugado ao kernel apenas quando for necessrio, ou seja, apenas quando o usurio estiver utilizando som no sistema. Isto otimiza o sistema, utilizando seus recursos sabiamente. Existe uma configurao padro para cada tipo de arquitetura de harware no diretrio /usr/src/linux/arch. O nome do arquivo defconfig. Supondo que sua arquitetura de harware seja i386, Seja um Profissional Aprendendo com Profissionais 142
Linux System Administration a mais comum, faa uma cpia do arquivo defconfig para o diretrio raiz de compilao com o nome .config assim: 6) Passo: Copiar arquivo de configurao
# cp -f /usr/src/linux/arch/i386/defconfig /usr/src/linux/.config
Em alguns casos de arquitetura, pode existir um diretrio configs contendo configuraes especficas e testadas para cada modelo de mquina. Sendo assim, ao iniciar a ferramenta de configurao, voc j ter alguns itens marcados. No ser necessrio iniciar do zero uma configurao.
Perceba a existncia de uma configurao j pr-definida. Isto se deve ao fato de voc ter copiado o arquivo defconfig para o diretrio raiz de compilao com o nome de .config.
Algumas dicas: 1) Marque com * itens que sero incorporados ao arquivo do kernel como por exemplo, sistemas de arquivos que voc utiliza ou vai utilizar em suas parties. 2) Marque com m itens que sero criados como mdulo, ou seja, sero plugados ao kernel apenas quando houver necessidade de uso.
143
Linux System Administration Este um passo demorado e deve ser feito com ateno. Acompanhe o help de cada item para saber o que est incluindo ou no. 8) Passo: Aps a configurao do kernel, vamos compil-lo realmente. Para isto, execute o comando:
# make
Este passo pode levar minutos ou de um dia para o outro. Depende do poder da mquina onda voc vai compilar. 9) Passo: Aps a compilao do kernel, vamos instalar os mdulos com o seguinte comando:
# make modules_install
10) Passo : Agora vamos copiar o kernel (bzImage) para o diretrio /boot. O arquivo est no diretrio de acordo com a arquitetura que voc estiver utilizando. Se voc compilou o kernel em um PC, o que mais comum, ento o comando para copiar o seguinte:
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.7-i386-1
Nomeie os arquivos de acordo com a verso do kernel que est compilando e de acordo com a arquitetura de hardware. Agora vamos copiar o arquivo System.map para /boot:
# cp /usr/src/linux/System.map /boot/System.map-2.6.7-i386-1
144
A opo (-o arquivo) diz onde salvar o arquivo initrd gerado. A prxima opo de parmetro a verso do kernel que voc compilou. Na verdade, o initrd no necessrio caso voc tenha incorporado ao kernel todo a hardware necessrio para sua inicializao e o restante que no necessrio para a inicializao como mdulo. Ou seja, voc no deve configurar como mdulo o chipset da sua placa me, suporte a IDE e todos os sistemas de arquivos que estiver utilizando, como ext3, jfs, xfs e reiserfs. 11) Passo: Vamos configurar o gerenciador de boot, GRUB ou LILO, qual voc utiliza?
boot=/dev/hda default=0 timeout=10 title Debian GNU/Linux (2.4.25-i386-c4) root (hd0,1) kernel /boot/vmlinuz-2.4.25-i386-c4 ro root=LABEL=/
145
image=/boot/bzImage-2.6.0 label=2.6.7 root=/dev/hda3 read-only Execute lilo para regravar o LILO no MBR.
#lilo
146