Escolar Documentos
Profissional Documentos
Cultura Documentos
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes INDICE PREFCIO............................................................................................................................9 INTRODUO AO LINUX...............................................................................................10 Origem do Linux......................................................................................................................................10 Licenciamento e Verses do kernel do Linux................................................................................11 Distribuies Linux..................................................................................................................................12 Linux Standard Base (LSB).....................................................................................................................13 Viso geral do Sistema Operacional Linux..........................................................................................13 Vantagens do Linux.................................................................................................................................13 Conceitos Unix.........................................................................................................................................14 Tudo Arquivo....................................................................................................................................14 Case Sensitive.......................................................................................................................................14 Comandos.............................................................................................................................................14 Primeiros Passos.......................................................................................................................................14 Prompt de Login..................................................................................................................................14 bash........................................................................................................................................................15 logout.....................................................................................................................................................16 shutdown...............................................................................................................................................17 halt..........................................................................................................................................................17 reboot....................................................................................................................................................17 INSTALAO DO DEBIAN GNU/LINUX....................................................................18 Um pouco sobre o Debian.....................................................................................................................18 De onde surgiu o nome Debian?..................................................................................................18 Pronncia..............................................................................................................................................18 Quando surgiu?....................................................................................................................................18 Qual o significado dos codinomes das distribuies Debian?.....................................................18 Stable, Testing e Unstable..................................................................................................................19 Main, Contrib e Non-Free.................................................................................................................19 Iniciando a Instalao..............................................................................................................................20 Inicializando o instalador...................................................................................................................20 ESTRUTURA DE DIRETRIOS......................................................................................28 Hierarquia..................................................................................................................................................28 Caminho Absoluto..............................................................................................................................29 Caminho Relativo................................................................................................................................29 Localizao na Estrutura de Diretrios................................................................................................29 pwd.........................................................................................................................................................29 ls..............................................................................................................................................................29 cd............................................................................................................................................................31 $PATH..................................................................................................................................................32 Histrico de Comandos......................................................................................................................33 Teclas de Atalho..................................................................................................................................34 Tecla TAB.............................................................................................................................................34 Filesystem Hierarchy Standard..............................................................................................................35 /bin........................................................................................................................................................36 /boot......................................................................................................................................................36 /dev........................................................................................................................................................36 ___________________________________________________________________________ Pg. 2
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes /etc.........................................................................................................................................................37 /home....................................................................................................................................................37 /root......................................................................................................................................................38 /lib..........................................................................................................................................................38 /mnt.......................................................................................................................................................38 /opt........................................................................................................................................................38 /sbin.......................................................................................................................................................38 /tmp.......................................................................................................................................................38 /usr.........................................................................................................................................................39 /var........................................................................................................................................................39 /proc......................................................................................................................................................39 GERENCIAMENTO DE PACOTES................................................................................42 O gerenciador de pacotes do Debian...................................................................................................42 dpkg............................................................................................................................................................43 Listando os pacotes instalados no sistema......................................................................................43 Obtendo detalhes sobre um pacote Debian...................................................................................44 Exibindo status dos pacotes do sistema..........................................................................................45 Instalando e atualizando pacotes binrios do Debian...................................................................46 Padro de nomes dos arquivos binrios do Debian......................................................................47 Removendo pacotes binrios Debian..............................................................................................47 O Advanced Package Tool (APT)........................................................................................................48 Repositrios de pacotes do Debian..................................................................................................48 Adicionando um cdrom no sources.list...........................................................................................49 Adicionando repositrios web no sources.list................................................................................50 Utilizando o apt-get para gerenciar pacotes....................................................................................50 Programas auxiliares................................................................................................................................52 aptitude..................................................................................................................................................52 apt-show-versions................................................................................................................................53 apt-cache...............................................................................................................................................53 Exerccio...............................................................................................................................................54 O gerenciador de pacotes RedHat (RPM)...........................................................................................55 Consulta de pacotes RPM..................................................................................................................55 Instalao, desinstalao e atualizao de pacotes RPM...............................................................57 Instalao/Atualizao.......................................................................................................................58 Desinstalao........................................................................................................................................58 COMPILAO DE PROGRAMAS....................................................................................59 As Ferramentas do Projeto GNU.........................................................................................................59 Bibliotecas.................................................................................................................................................60 Gnu C Library......................................................................................................................................60 Gnu Libtool..........................................................................................................................................60 Ferramentas De Automao..................................................................................................................60 Autoconf...............................................................................................................................................60 M4..........................................................................................................................................................60 Automake..............................................................................................................................................60 Make.......................................................................................................................................................60 Compiladores............................................................................................................................................61 Gnu C Compiler..................................................................................................................................61 Diversos.....................................................................................................................................................61 Binutils...................................................................................................................................................61 ___________________________________________________________________________ Pg. 3
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Patch......................................................................................................................................................61 Obteno do Cdigo-Fonte...................................................................................................................62 Descompactao Do Cdigo-Fonte.....................................................................................................62 Local de Armazenamento.......................................................................................................................63 A Configurao, Compilao e Instalao do Pacote........................................................................63 Limpando o Diretrio do Pacote Compilado................................................................................63 Desinstalando um Pacote Compilado..............................................................................................64 Contedo da Documentao.................................................................................................................64 O Diretrio docs.................................................................................................................................64 Readme / Install..................................................................................................................................64 Copying.................................................................................................................................................64 Copyright..............................................................................................................................................64 Release...................................................................................................................................................65 Credits....................................................................................................................................................65 Changelog.............................................................................................................................................65 Funcionalidades Detalhadas...................................................................................................................65 ./configure............................................................................................................................................65 make.......................................................................................................................................................66 make deps / make depend.................................................................................................................66 make install...........................................................................................................................................67 make clean.............................................................................................................................................67 make uninstall.......................................................................................................................................67 Observaes Importantes para o Processo de Compilao.............................................................67 Manuteno do Cdigo-Fonte..........................................................................................................67 Aplicativos & Utilitrios.....................................................................................................................67 Drivers, Mdulos e Kernel................................................................................................................67 MANIPULAO DE ARQUIVOS E DIRETRIOS.......................................................69 mkdir..........................................................................................................................................................69 tree..............................................................................................................................................................70 rmdir...........................................................................................................................................................70 rm................................................................................................................................................................71 touch...........................................................................................................................................................71 cp.................................................................................................................................................................72 mv...............................................................................................................................................................74 cat................................................................................................................................................................75 tac................................................................................................................................................................76 ln..................................................................................................................................................................76 INODES...............................................................................................................................................76 Links Simblicos..................................................................................................................................77 Hardlinks...............................................................................................................................................77 GERENCIAMENTO DE USUARIOS E GRUPOS..........................................................79 Identificadores de Usurios e Grupos (UID e GID).........................................................................79 /etc/passwd..........................................................................................................................................79 /etc/shadow.........................................................................................................................................80 /etc/group............................................................................................................................................80 /etc/gshadow.......................................................................................................................................81 Gerenciamento de usurios....................................................................................................................81 Adicionando usurios com useradd.................................................................................................81 Definindo senhas com passwd..........................................................................................................83 ___________________________________________________________________________ Pg. 4
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Troca de Senhas...................................................................................................................................83 Removendo usurios com userdel....................................................................................................84 Aumentando a segurana com o comando chage..........................................................................85 Gerenciando informaes de usurios com chfn e finger............................................................87 Modificando o shell do usurio com chsh......................................................................................88 Verificando integridade dos arquivos de senhas com pwck.........................................................88 Convertendo/Revertendo o sistema de senhas shadow...............................................................89 Modificando contas de usurios com usermod..............................................................................89 Gerenciamento de grupos......................................................................................................................90 Obtendo Informaes com o comando id.....................................................................................90 Adicionando grupos com groupadd.................................................................................................91 Removendo grupos com groupdel...................................................................................................91 Adicionando usurios aos grupos.....................................................................................................92 Removendo usurios dos grupos......................................................................................................92 Modificando informaes sobre grupos..........................................................................................92 Definindo administradores de grupos com gpasswd....................................................................93 Trocando o grupo principal temporariamente com newgrp........................................................93 Verificando Integridade dos arquivos de grupos com grpck.......................................................94 PERMISSES DE ARQUIVOS E DIRETRIOS............................................................96 Conceitos...................................................................................................................................................96 Bits de atributo.....................................................................................................................................97 Bits de proteo...................................................................................................................................97 Notaes...............................................................................................................................................98 Tipos de arquivo..................................................................................................................................99 Entendendo as permisses na prtica................................................................................................100 Definindo Permisses com chmod................................................................................................101 Modo Simblico de Permisses......................................................................................................101 Modo octal de permisses...............................................................................................................103 Permisses de Acesso Especiais:....................................................................................................104 SUID ( Set User ID )........................................................................................................................104 SGID ( Set Group ID )....................................................................................................................105 Sticky ( Sticky bit ).............................................................................................................................106 Mscara de usurio (umask).............................................................................................................108 O SHELL BASH (BOURNE AGAIN SHELL)................................................................110 Redirecionamento..................................................................................................................................110 Entrada de dados padro (/dev/stdin)..........................................................................................110 Sada de dados padro (/dev/stdout)............................................................................................111 Sada de erros padro (/dev/stderr)...............................................................................................111 Operadores de Redirecionamento..................................................................................................111 Redirecionando a sada de erros padro (stderr)..........................................................................114 Redirecionamento com pipes: |.................................................................................................115 Diferenas entre o | e o >.......................................................................................................116 Tabela de Redirecionamentos.........................................................................................................117 Paginadores.........................................................................................................................................117 Caracteres especiais do bash (Metacaracteres)..................................................................................118 Executando mltiplos comandos em ordem determinada .......................................................119 Operadores de controle lgico: && e || (AND e OR).............................................................121 Expresses Regulares............................................................................................................................122 Utilizao............................................................................................................................................122 ___________________________________________________________________________ Pg. 5
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Entendendo a RE "^d"....................................................................................................................122 Exemplos ...........................................................................................................................................123 Configurao do shell bash..................................................................................................................125 Arquivo /etc/profile.........................................................................................................................125 Arquivo ~/.bash_profile..................................................................................................................126 Arquivo /etc/bash.bashrc ou /etc/bashrc...................................................................................126 Arquivo ~/.bashrc............................................................................................................................127 Arquivo ~/.bash_logout..................................................................................................................128 Arquivo ~/.bash_history.................................................................................................................128 Aliases de shell...................................................................................................................................128 Escape de Comandos no bash........................................................................................................129 DOCUMENTAO..........................................................................................................131 Pginas de manual..................................................................................................................................131 Man pages...........................................................................................................................................131 Info Pages................................................................................................................................................133 Sistema de buscas na documentao do sistema..............................................................................133 Criando a base de dados...................................................................................................................134 Efetuando pesquisas na documentao.........................................................................................134 LOCALIZANDO ARQUIVOS NO SISTEMA.................................................................135 Comando find.........................................................................................................................................135 Comando whereis..................................................................................................................................138 Comando locate.....................................................................................................................................138 EDITORES DE TEXTO...................................................................................................139 VI..............................................................................................................................................................139 Modo de comando............................................................................................................................139 Modo de Edio................................................................................................................................141 Modo de linha....................................................................................................................................142 Dicas preciosas do Vim....................................................................................................................142 ARQUITETURA DE HARDWARE.................................................................................144 setserial.....................................................................................................................................................145 PARTICIONAMENTO E SISTEMAS DE ARQUIVOS.................................................147 Particionamento.....................................................................................................................................147 A tabela de parties.........................................................................................................................147 Parties primrias............................................................................................................................148 A partio extendida.........................................................................................................................148 As parties lgicas...........................................................................................................................148 Endereamento e geometria dos discos rgidos...........................................................................149 Modo LBA de endereamento........................................................................................................149 Modo CHS de geometria.................................................................................................................149 Particionando o disco rgido com fdisk.........................................................................................150 Sistemas de arquivos..............................................................................................................................152 O sistema de arquivos ext2: O incio de tudo..............................................................................153 O sistema de arquivos ext3: A revoluo......................................................................................153 Funcionamento do journaling.........................................................................................................153 O sistema de arquivos reiserfs: Nascido para ser rpido............................................................153 Criando um sistema de arquivos.....................................................................................................154 Definindo um ponto de montagem...............................................................................................154 Verificando a integridade de sistemas de arquivos......................................................................156 Gerenciando quotas de sistemas de arquivos....................................................................................156 ___________________________________________________________________________ Pg. 6
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Habilitando as quotas.......................................................................................................................157 Configurando quotas p/ usurios e grupos..................................................................................157 Verificando as quotas........................................................................................................................158 Adicionando uma nova swap...............................................................................................................158 PROCESSO DE INICIALIZAO..................................................................................160 Gerenciadores de boot..........................................................................................................................161 Lilo............................................................................................................................................................161 Configurando o lilo...........................................................................................................................161 Restaurando o setor de boot...........................................................................................................162 GRUB......................................................................................................................................................163 Instalando o GRUB no MBR..........................................................................................................164 O processo de init..................................................................................................................................165 O que so runlevels (Nveis de execuo)?...................................................................................165 O arquivo /etc/inittab......................................................................................................................166 Estrutura de inicializao de servios............................................................................................167 O script /etc/init.d/rc......................................................................................................................167 Os diretrios de inicializao de servios......................................................................................167 COMPACTADORES E ARQUIVADORES.....................................................................169 Compactadores.......................................................................................................................................169 A ferramenta gzip..............................................................................................................................169 A ferramenta bzip2...........................................................................................................................170 Arquivadores...........................................................................................................................................171 A ferramenta tar.................................................................................................................................171 As famosas tarballs............................................................................................................................172 SERVIDOR GRFICO X-WINDOW...............................................................................174 Funcionamento......................................................................................................................................174 Configurando o XFree86.................................................................................................................174 Inicializando o XFree86...................................................................................................................176 Acessando o XFree86 atravs da rede...........................................................................................176 AGENDAMENTO DE TAREFAS...................................................................................177 Cron..........................................................................................................................................................177 O arquivo /etc/crontab...................................................................................................................177 Diretrios de agendamento do cron...................................................................................................178 O diretrio /etc/cron.d...................................................................................................................178 Agendamentos definidos pelos usurios.......................................................................................178 Controle de acesso ao cron..................................................................................................................179 BIBLIOTECAS COMPARTILHADAS............................................................................180 Trabalhando com bibliotecas compartilhadas...................................................................................180 Localizao das bibliotecas compartilhadas..................................................................................180 Listando Bibliotecas disponveis.....................................................................................................180 Descobrindo quais bibliotecas um binrio utiliza........................................................................180 Adicionando novas bibliotecas ao sistema....................................................................................181 GERENCIAMENTO DE PROCESSOS..........................................................................182 Lidando com processos........................................................................................................................182 Listando processos............................................................................................................................182 O comando ps...................................................................................................................................182 Significado das colunas na sada do comando ps.........................................................................184 O comando top.................................................................................................................................184 Nveis de processos...............................................................................................................................185 ___________________________________________________________________________ Pg. 7
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Sinalizando processos............................................................................................................................186 O comando kill..................................................................................................................................187 O comando killall..............................................................................................................................187 O comando killall5............................................................................................................................187 Gerenciando prioridades dos processos............................................................................................188 Definindo prioridades com o comando nice................................................................................188 Modificando prioridades com o comando renice........................................................................188 REFERNCIAS.................................................................................................................190
___________________________________________________________________________ Pg. 8
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
PREFCIO
Esta apostila uma compilao de diversos trabalhos, livros, artigos, pesquisas, descritas no ltimo captulo, ou seja, nas referncias, bem como fruto de minha experincia profissional na rea de administrao de redes de computadores e sistemas operacionais. Os assuntos abordados so de extrema importncia e visam mostar os principais conceitos da administrao de sistemas baseados no Unix (Unix Like), aplicados neste material de forma prtica. Reunir todas estas informaes e organiz-las de forma didtica levaram muito tempo e muito trabalho. Por isso, espero que voc aproveite estas informaes para transform-las em conhecimento til. Na medida em que aprendo novas tcnicas, no consigo guard-las apenas comigo. Se assim o fizer, estarei cometendo o erro da omisso1, por outro lado, se no exigir a aplicao dos conhecimentos transmitidos estarei comentendo o erro da negligncia2. John W. Gardner disse: Excelncia fazer coisas ordinrias (comuns) de maneira extraordinria. Portanto, faa e d o seu melhor sempre! Enfim, quero agradecer primeiramente a Deus a quem devo a honra, glria e o louvor por tudo o que sei, sou e tenho. Tambm agradeo a minha esposa Geny pelo apoio e compreenso. Agradeo aos professores Antero Todesco e Valdinei Castelan que sempre me apoiaram e confiaram na minha capacidade e, finalmente, aos meus queridos alunos, que dia-a-dia contribuem para o aperfeioamento de minhas aulas e da didtica aplicada.
1 2
Aquele, pois, que sabe fazer o bem e o no faz comete pecado. (Bblia Tiago cap. 4 vers. 17) Maldito aquele que fizer a obra do Senhor relaxadamente! (...) (Bblia Jeremias cap. 48 vers. 10)
___________________________________________________________________________ Pg. 9
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
INTRODUO AO LINUX
Origem do Linux
O que aconteceu antes vai acontecer outra vez. O que foi antes ser feito novamente. No h nada de novo neste mundo
Eclesiastes 1.9
Linux um sistema operacional baseado no Unix, viabilizando uma alternativa barata e funcional de se rodar um sistema operacional amplamente compatvel com Unix sem ter que pagar os altos custos de licenciamento. No ano de 1983, Richard Stallman fundou uma organizao chamada Free Software Fundation (Fundao de Software Livre), cujo projeto denominado projeto GNU (GNU Is not Unix) tinha por finalidade criar um clone melhorado do sistema operacional Unix, mas que fosse desenvolvido a partir do zero, sem utilizar o cdigo-fonte do Unix. Para alcanar tal objetivo, era necessrio desenvolver o kernel (corao do sistema operacional) e os aplicativos (comandos) que compe um sistema operacional completo. Porm, no final da dcada de 80, o projeto havia fracassado, pois os programadores no haviam conseguido criar o kernel do sistema, somente os aplicativos essenciais estavam prontos. Na mesma poca, vrios esforos alternativos para se atingir o mesmo objetivo proposto pelo projeto GNU estavam em andamento. Um desses projetos foi o projeto Minix, liderado pelo Dr. Andrew Tanenbaum que desenvolveu o minix como instrumento de ensino, que na verdade era um sistema operacional Unix portado para arquitetura x86 (at 80386 na poca), o que possibilitava que os universitrios pudessem dar continuidade aos seus estudos no PC de casa. Nessa mesma poca, um aluno da Universidade de Helsinque, na Finlndia, chamado Linus Benedict Torvalds percebeu que o 80386 era o nico processador na poca capaz de executar um clone de Unix, mesmo no sendo uma alternativa barata p/ a poca. Linus ento se disps a criar um kernel clone do Unix que fosse capaz de lidar com memria virtual, multitarefa e multiusurio. Era um trabalho gigantesco para apenas uma pessoa. Na primavera de 1991, Linus iniciou seu projeto particular inspirado no Minix. Ele limitou-se a criar um Minix melhor que o Minix. Aps algum tempo de trabalho, Linus conseguiu criar um kernel capaz de executar utilitrios de programao e comandos padro do Unix j previamente clonados pelo projeto GNU. Percebendo a grandiosidade do projeto, e que no conseguiria dar continuidade sozinho, ele enviou a seguinte mensagem para a lista de discusso comp.os.minix: Voc suspira por melhores dias do Minix-1.1, quando homens sero homens e escrevero seus prprios drivers de dispositivos? Voc est sem um bom projeto e est morrendo para colocar as mos em um S.O. no qual voc possa modificar de acordo com suas necessidades? Voc est ___________________________________________________________________________ Pg. 10
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes achando frustrante quando tudo trabalha em Minix? Chega de atravessar noites para obter programas que trabalhem correto? Ento essa mensagem pode ser exatamente para voc. Como eu mencionei h um ms, estou trabalhando em um sistema operacional similar ao Minix para computadores AT-386. Ele est, finalmente, prximo do estgio em que poder ser utilizado (embora no possa ser o que voc esteja esperando), e eu estou disposto a colocar os fontes para ampla distribuio. Ele est na verso 0.02.. contudo, obtive xito rodando bash, gcc, gnu-make, gnu-sed, compress, etc nele. A primeira verso oficial do Linux foi lanada em 5 de outubro de 1991 (verso 0.02). A partir da, diversos programadores ao redor do mundo tm colaborado com esse sistema operacional de cdigo aberto at chegar no que hoje. Curiosidade: O nome Linux foi escolhido por seu criador atravs de uma mistura de seu prprio nome com Unix (Linus + Unix = Linux).
___________________________________________________________________________ Pg. 11
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Distribuies Linux
No incio da dcada de 90, comearam a surgir as primeiras distribuies Linux. A Idia de distribuies se tornou necessria devido as dificuldades na poca em se obter todas as partes que compunham o sistema operacional completo (Kernel e aplicativos), pois as partes em questo ficavam espelhadas pelo mundo, e diversos downloads e compilaes eram necessrios para que fosse possvel utilizar o sistema instalar operacional. o Essas A dificuldades contriburam para dar a fama de Sistema Operacional de Hackers ao Linux, pois somente quem detinha um bom conhecimento meio comum conseguia sistema. Distribuio simplesmente faz todo esse trabalho sujo e empacota tudo em um de distribuio, que pode ser um cdrom j gravado, um disquete, um arquivo compactado, etc. Atualmente existem mais de 300 distribuies diferentes, dentre elas se destacam algumas como: Debian, RedHat, Conectiva, Slackware, Mandrake, Suse, Gentoo e Fedora.
___________________________________________________________________________ Pg. 12
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Nesse arranjo, o kernel desempenha a funo principal de intermediar acessos ao hardware e interfacear com o usurio atravs do interpretador de comandos.
Vantagens do Linux
O Linux um sistema operacional que se destaca por diversos fatores como Multiplataforma, Multiusurio, Multitarefa, Portabilidade e Escalabilidade. Multiplataforma a capacidade do mesmo mantendo Multiusurio sistema rodar em diferentes plataformas de hardware, geralmente do kernel. os softwares inalterados, com pouca mudana nos fontes aplicativos simultaneamente.
___________________________________________________________________________ Pg. 13
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Escalabilidade a capacidade do sistema de ser facilmente portvel e compatvel com diversas plataformas de Hardware existentes.
Conceitos Unix
Existem algumas caractersticas do sistema operacional Linux que foram herdadas do Unix. AS principais caractersticas so listadas adiante:
Tudo Arquivo
Um arquivo no UNIX uma seqncia de 0 ou mais bytes contendo qualquer tipo de informao. No existe nenhuma distino entre um arquivo texto em ASCII, arquivos binrios ou qualquer outro tipo de arquivo. Um diretrio um arquivo que contm informaes a respeito de um conjunto de arquivos. Essas informaes consistem basicamente em nome e localizao do mesmo. Um dos arquivos contidos em um diretrio pode ser tambm um diretrio, permitindo que estes se organizem de forma hierrquica.
Case Sensitive
O Linux difere letras maisculas e minsculas, portanto ROOT, Root e root, so trs formas diferentes de se escrever, e o Linux entende que so trs comandos diferentes. Portanto, para que sejam compreendidos pelo Interpretador de Comandos (shell), todos os comandos devem ser digitados exatamente da forma que so, distinguindo maisculas de minsculas.
Comandos
A maioria dos comandos so geralmente seguidos de um parmetro e pode se utilizado de trs maneiras diferentes:
# comando -parmetro # comando --parmetro # comando parmetro
Primeiros Passos
Precisamos nos familiarizar com o ambiente de linhas de comando. Portanto, iremos conhecer cada uma das partes envolvidas.
Prompt de Login
Como j visto anteriormente, o bash um dos shells disponveis no Linux. no ambiente do shell que passaremos a maior parte do curso. Para que o sistema nos libera acesso a um Shell ___________________________________________________________________________ Pg. 14
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes texto, antes preciso autenticar-se no prompt de login, como abaixo: host login: root password: Essa a tela de login texto, onde host o nome da mquina. Por ser de uma hierarquia Unix, ao digitar a senha, nenhum caractere aparece e o cursor no se move mas as informaes do teclado esto sendo enviadas.
bash
O bash apenas um dentre os diversos interpretadores de comandos (shell's) disponveis no Linux, tais como csh, zsh, sh, tcsh, etc. Futuramente faremos um estudo mais profundo sobre o shell bash, mas agora iremos apenas nos familiarizar com esse componente to importante do sistema.
[root@host root]#
Este o prompt do Shell, que aparece depois que voc esta logado. Este formato de prompt geralmente utilizado nas distribuies RedHat e Conectiva. A linha acima significa o seguinte: root o nome do usurio @ significa at (em), ou seja, onde o usurio esta logado host nome da mquina root o diretrio corrente Portanto essa linha significa: usurio root logado na mquina host no diretrio root. O # o smbolo de que o root est logado, caso fosse um usurio comum, o smbolo seria $. No caso do Debian, por exemplo, a linha do prompt costuma se parecer com o seguinte:
host:/var/tmp#
Nesse caso, mostrado o nome da mquinas, seguido de : (dois-pontos), o caminho completo do diretrio atual mais o smbolo de quem est logado.
___________________________________________________________________________ Pg. 15
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes O prompt de login pode facilmente ser configurado atravs da varivel de ambiente $PS1. Exemplo:
host:/var/tmp# echo $PS1 \h:\w$ host:/var/tmp# PS1="[\u@\h \W]\$ " [root@host tmp]# echo $PS1 [\u@\h \W]\$ [root@host tmp]#
No exemplo acima, primeiro foi mostrado o contedo da varivel $PS1 (comando echo $PS1); logo depois o contedo dessa varivel foi modificada com base nos valores especiais descritos na tabela abaixo, tornando o prompt padro do debian parecido com o prompt padro do RedHat. Caracteres de escape para customizao do shell usando $PS1: \e Quebra de linha. \h \H \j \t \u \W \w \$ Nome curto do Host (Exemplo: host). Nome longo do Host (Exemplo: host.uniararas.com.br). O nmero de trabalhos atualmente sob controle do shell. Hora atual no formato de 24horas. Usurio logado atualmente. Nome do diretrio de trabalho atual. Caminho completo do diretrio atual. Smbolo de Usurio. Para qualquer usurio com UID=0 (root por exemplo) aparecer um sinal de #, ou um sinal de $ para os outros usurios do sistema. Voc pode ter mais de um terminal ao mesmo tempo, sendo possvel manter terminais texto e grficos. Para alternar entre os terminais texto, pressione [ALT]+[F1](F1 at o F6). O prximo terminal logo aps o ltimo terminal texto (Geralmente o F6) o terminal grfico, se estiver em uso; Nesse caso, para acessar o terminal grfico, pressione [ALT]+[F7]. Para sair do terminal grfico e voltar a um terminal texto, pressione [CONTROL]+[ALT]+[F1] (At o [F6] nesse caso).
logout
Para sair do shell atual, digite o seguinte comando: ___________________________________________________________________________ Pg. 16
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
$ logout
shutdown
Utilizamos o comando shutdown para interromper de alguma forma o funcionamento do sistema (Desligar ou reiniciar, por exemplo). Sintaxe:
shutdown [-akrhfnc] [-t secs] tempo [mensagem]
Tabela de Parmetros
-a -k -r -h -f -F -n -c -t Exemplos:
Utiliza o arquivo /etc/shutdown.allow para definir quem tem permisso para desligar/reiniciar o sistema. Somente testa o desligamento. Reinicia o sistema. Desliga o sistema. Reinicia o sistema em modo rpido (No executa o fsck durante o boot). Fora a execuo do fsck durante a inicializao. Fora desligamento rpido (sem terminar os programas em execuo). Cancela um shutdown agendado. Especifica o tempo, em segundos, entre a notificao e a finalizao dos processos.
Reinicia o sistema Imediatamente e exibe a mensagem O sistema ser reinicializado agora para os usurios conectados atualmente.
halt
O comando halt tem o mesmo efeito que o comando shutdown -h now.
reboot
O comando reboot tem o mesmo efeito que o comando shutdown -h now. ___________________________________________________________________________ Pg. 17
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Palavras agradveis so como favo de mel, doces para a alma, e medicina para o corpo
Provrbios 16.24
Abranger de uma forma geral a instalao do Sistema Operacional Linux redundante, pois existem diversas distribuies, e cada uma delas utiliza um mtodo prprio ou parecido para fazer a mesma coisa: Instalar o sistema.
existe nenhuma empresa por trs do projeto Debian, que mantido por cerca de 1000 voluntrios ao redor do mundo. Alm de ser uma das mais antigas distribuies Linux do mundo (Das famosas ela a mais antiga, seguida de perto pelo Slackware), o Debian possui toda uma estrutura colaborativa de desenvolvimento e manuteno que torna o software muito robusto e estvel.
Pronncia
A pronncia ocial de Debian dbian. Surgiu a partir do nome do criador do Debian, Ian Murdock, e sua esposa, Debra.
Quando surgiu?
O Projeto Debian foi ocialmente fundado por Ian Murdock em 16 de Agosto de 1993. Naquele tempo, o conceito de uma distribuio de Linux era novo. Ian pretendia que o Debian fosse uma distribuio criada abertamente, no mesmo esprito do Linux e do GNU (leia seu manifesto fornecido como apndice nesse documento para maiores detalhes). A criao do Debian teve o apoio do projeto GNU da FSF durante um ano (Novembro de 1994 a Novembro de 1995).
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes de outros pacotes que no so livres. Non-Free Foram retirados a partir do Sarge. Note que os mesmos pacotes podem aparecer em muitas distribuies, mas com nmeros de verso diferentes.
Iniciando a Instalao
O primeiro passo para iniciar a instalao do Debian verificar se o seu Hardware ao menos aparenta ser compatvel com ele. Procure saber com o fabricante do equipamento (que nem sempre v com bons olhos a utilizao de Linux...) ou pesquisar na Internet. Esse passo evita dores de cabea que degradam a reputao do sistema Debian GNU/Linux.
Inicializando o instalador
preciso definir qual ser o mtodo utilizado para se inicializar o instalador do sistema, o debian-installer. A maneira mais simples, e utilizada em mais de 95% das instalaes, atravs de um cdrom inicializvel de instalao do Debian. Nesse mtodo, basta inserir o cd na unidade de cdrom, configurar a BIOS para inicializar a partir do cd e iniciar o computador. Voc dever ser presenteado com uma tela como com essa:
Essa a tela de boas vindas do cd de instalao do Debian Etch Diversos parmetros de inicializao podem ser passados nessa tela. Voc pode pressionar a tecla [F3] para ver uma lista dos kernels disponveis nesse cd de instalao. Prosseguiremos nessa tela com o seguinte parmetro a ser passado para o prompt de inicializao: ___________________________________________________________________________ Pg. 20
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Para instalar no modo padro (texto) tecle ENTER no prompt
boot :
A partir de agora veremos uma tela no modo texto e uma no modo grfico. 1. Choose language : Portuguese (Brazil) - Portugus do Brasil
___________________________________________________________________________ Pg. 21
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes 2. Selecione um layout de teclado : Portugus Brasileiro (layout Americano)
3. O sistema de instalao tentar detectar o leitor de CDROM. Alguns componentes do programa instalador sero carregadas. 4. O instalador tentar detectar um servidor de DHCP para congurar a rede. 5. A congurao automtica da rede poder falhar se no encontrar um servidor DHCP.
___________________________________________________________________________ Pg. 22
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes 6. Congurar a rede: Endereo IP, Mscara de rede, gateway, Endereos dos servidores de nomes (DNS), nome da mquina, nome do domnio
___________________________________________________________________________ Pg. 23
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
7. Particionar discos: Editar manualmente a tabela de parties IDE1 principal (hda) - escolha a partio indica pelo instrutor Usar como:sistema de arquivos com journaling ext3 Ponto de montagem: / Opes de montagem: defaults Rtulo: / Blocos reservados: 5% Uso tpico: padro Flag Inicializvel: desligado Tamanho: X GB Finalizar a congurao da partio. Escolha a partio swap (rea de troca) existente. Ela deve car com a seguinte ___________________________________________________________________________ Pg. 24
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes congurao: Usar como: rea de troca Flag Inicializvel: desligado Tamanho: Y MB Finalizar a congurao da partio Finalizar o particionamento e gravar as mudanas no disco Gravar essas mudanas nos discos? Selecione: Sim
8. O Fuso horrio dever ser selecionado: So Paulo 9. Depois ser solicitada a senha do usurio root
___________________________________________________________________________ Pg. 25
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
10. O sistema tambm exigir a criao de um usurio comum com sua respectiva senha.
___________________________________________________________________________ Pg. 26
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes 12. Voc ser questionado se usar um Espelho de rede Mirror. Responda NO 13. Tambm ser questionado se deseja participar de um concurso de pacotes. Tambm responda No 14. Na prxima tela voc deve selecionar o conjunto de pacotes que deseja instalar. Escolha Sistema Bsico
___________________________________________________________________________ Pg. 27
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
ESTRUTURA DE DIRETRIOS
Hierarquia
O que adquire entendimento ama a sua alma; o que conserva a inteligncia acha o bem
Provrbios 19.8
O Linux tem como principais elementos estruturais arquivos e diretrios, onde arquivos guardam informaes e diretrios so os compartimentos que podem conter arquivos e/ou subdiretrios. Estes arquivos e diretrios esto organizados numa estrutura hierrquica na forma de uma rvore invertida, ou seja, possui estrutura hierrquica porque alguns elementos tm ascendncia sobre outros. A forma da estrutura de rvore invertida, que assim se chama porque o elemento no topo raiz, de onde saem o tronco e os galhos que atingem os demais elementos. De cada diretrio partem outros galhos que podem atingir os demais elementos. Os nomes de arquivos e diretrios devem ser usados lembrando-se que o Linux case sensitive, ou seja, diferencia maisculas de minsculas. O diretrio no topo da hierarquia o diretrio raiz que representado por /. Aqueles diretrios logo abaixo deles so seus filhos; estes filhos, por sua vez, podem ter outros diretrios filhos e tambm arquivos. Sempre que um diretrio contiver um segundo diretrio que vem logo abaixo dele na hierarquia diz-se que este segundo diretrio um subdiretrio.
___________________________________________________________________________ Pg. 28
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Caminho Absoluto
Para localizar, de maneira absoluta, um elemento qualquer no sistema de arquivos, deve-se exprimir o seu caminho absoluto, ou seja, seu caminho completo. O caminho absoluto localiza, de maneira inequvoca, um arquivo ou diretrio no sistema de arquivos. Exemplo de caminho absoluto: /usr/local/bin
Caminho Relativo
possvel utilizar caminhos relativos para localizarmos arquivos ou diretrios. O caminho relativo ao nosso diretrio corrente (ou seja, a partir de diretrios diferentes, podemos chegar a lugares diferentes usando um mesmo caminho relativo). Exemplo de caminho relativo: ../spool/mail Podemos utilizar os comandos pwd, ls e cd para auxiliar-nos com a localizao na estrutura de diretrios, conforme vemos a seguir.
pwd
Este comando vai mostrar na tela o seu diretrio corrente, ou seja, em que diretrio voc est no momento. Sempre que um comando necessitar de um nome de arquivo, caso no especifiquemos seu caminho, o comando assumir que estamos nos referindo a arquivos do nosso diretrio corrente. Sintaxe do pwd
# pwd /root
ls
Exibe o contedo do diretrio ou informaes sobre um arquivo. Tabela de parmetros -l Mostra o contedo e as informaes dos arquivos do diretrio corrente de maneira detalhada
___________________________________________________________________________ Pg. 29
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes -a -F -G -h -n -o -R --full-time --color -r -c -X Sintaxe: Mostra o contedo do diretrio corrente, incluindo os arquivos ocultos (Que iniciam com .). Adiciona Indicadores. Oculta a coluna de grupo dono do arquivo. (S funciona junto com a opo -l)
Mostra o tamanho dos arquivos de forma legvel para humanos (human-readable).
Mostra Identificao de Usurios (UID's) e grupos (GID's) ao invs de nomes. Listagem longa sem o grupo dono dos arquivos (o mesmo que -lG). Lista diretrios e sub-diretrios recursivamente. Lista datas e horas no formato completo. Ativa exibio colorida de arquivos para ajudar na identificao dos mesmos. Por padro, azul=diretrio, verde=executvel, azul-claro=link simblico, vermelho=arquivo compactado, etc. Inverte a ordem de classificao. Classifica por data de alterao. Classifica pela extenso.
ls [parmetro] <arquivo>
Exemplo:
[root@host root] # ls diversos evolution latex listamp3 material projetolc teste tlm-4.doc.gz.doc
O comando acima simplesmente mostra o contedo (arquivos) do diretrio corrente. possvel mostrar o contedo de um ou vrios diretrios ao mesmo tempo, basta acrescentar o caminho do(s) diretrio(s) a frente do comando, conforme abaixo:
# ls /mnt /tmp mnt/: cdrom floppy tmp/: DOCUMENTO
___________________________________________________________________________ Pg. 30
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
cd
Significa Change Directory (troca de diretrio), este comando usado para trocar de diretrio corrente. Sintaxe:
cd diretrio
Exemplo A:
# cd /var/tmp
Sai do diretrio atual (/var/tmp) e vai para o diretrio /var, que fica um diretrio acima (antes) do atual. Isso possvel graas a duas entradas especiais que existem em todos os diretrios: . e ... A entrada . refere-se ao prprio diretrio, j a entrada .. refere-se ao diretrio logo acima do atual, exatamente como no MS-DOS. Exemplo C:
# /etc/init.d/networking restart Reconfiguring network interfaces...done. # cd /etc/init.d # ls -l networking -rwxr-xr-x 1 root root 2607 Jun 13 2006 networking # ./networking restart Reconfiguring network interfaces...done.
Esse exemplo mostra como executar um comando que esteja no diretrio /etc/init.d de duas formas. A primeira utiliza o caminho absoluto (/etc/init.d/networking), o segundo utiliza o caminho relativo (./networking). Ambos levam ao mesmo resultado. Outro caminho relativo especial na estrutura de diretrios o ~; Ele refere-se ao diretrio HOME do usurio atualmente logado no sistema. Observe o seguinte exemplo, levando em considerao que o diretrio home do usurio root a pasta /root: Exemplo D:
# pwd /tmp # cd ~ # pwd /root
___________________________________________________________________________ Pg. 31
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Outro caminho especial utilizado com freqncia o -. Ele leva de volta para o ltimo diretrio visitado. Veja o exemplo. Exemplo E:
# pwd /tmp # cd /usr/local # pwd /usr/local # cd # pwd /tmp
$PATH
A varivel $PATH armazena o caminho dos arquivos executveis, ou seja, diretrios que contm comandos e scripts no sistema. O seguinte comando mostra o contedo da varivel $PATH.
# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
Nesse exemplo, existem 7 diretrios do sistema cadastrados na varivel $PATH (separados por :). Quando um comando qualquer digitado sem o caminho absoluto (o comando ls, por exemplo), o sistema procura o arquivo ls dentro do diretrio /usr/local/sbin, e caso no encontre, continua a busca no diretrio /usr/local/bin... seguindo assim at chegar no ltimo diretrio (/usr/bin/X11), se no encontrar nesse o sistema avisa que o comando no pode ser localizado. O caminho dos diretrios que contm executveis costumam j vir configurados aps a instalao do Linux (verifique a varivel $PATH). Caso seja necessrio alterar o contedo dessa varivel, recomendvel fazer isso editando o campo correspondente no arquivo /etc/profile, que lido por todos os usurios no sistema no momento do Login. Se quiser alterar somente para um usurio especfico, adicione a entrada correspondente no arquivo ~/.bashrc do(s) usurio(s) em questo. Esses e outros arquivos relacionados a configurao do shell bash sero estudados mais a fundo ainda neste treinamento. Para exibir o contedo de uma varivel no console, execute o comando echo $NOME_DA_VARIAVEL, lembrando que o nome da varivel faz distino entre maisculas e minsculas. Tente um
echo $PATH
___________________________________________________________________________ Pg. 32
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Histrico de Comandos
Voc pode executar comandos j digitados pressionando as teclas [Seta para cima] e [Seta para baixo]. Devemos isso ao histrico de comandos, pois conforme digitamos comandos no bash, ele os armazena no chamado histrico de comandos, que fica em memria enquanto utilizamos o console, e quando terminamos a sesso normalmente (logout), o bash salva esse histrico no arquivo ~/.bash_history. Para fazer isso manualmente, utilizamos o comando:
# history -w ~/.bash_history
No prximo login, o bash carrega o arquivo ~/.bash_history para a memria, restaurando o ltimo histrico salvo. O procedimento manual para fazer isso seria:
# history -r ~/.bash_history
O bash limita o tamanho mximo de comandos que podem ficar no histrico de comandos atravs da varivel de ambiente $HISTSIZE. Tabela de parmetros -w -r -c Exemplo A:
# history .. 530 echo PATH 531 echo $PATH 532 cd ~ 533 ls -lA 534 ls -la 535 vi .bashrc 536 vi /etc/profile 537 history
Grava o histrico em um arquivo especificado. L o histrico a partir de um arquivo previamente salvo. Limpa o histrico da memria (mas no apaga o ~/.bash_history).
O comando history, quando chamado sem argumentos, mostra todas as entradas no histrico. Exemplo B:
# history 10 531 echo $PATH 532 cd ~ 533 ls -lA 534 ls -la 535 vi .bashrc 536 vi /etc/profile 537 history 538 history |head 539 history -10 540 history 10
___________________________________________________________________________ Pg. 33
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Nesse caso, ele mostra os ltimos 10 comandos no histrico. Repare que cada comando nohistrico possui um identificador numrico. Podemos utilizar desse identificador para executar novamente o comando em questo. Por exemplo, digamos que seja preciso repetir o comando echo $PATH (Nmero 531 no histrico): Exemplo C:
# !531 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
Outros comandos como esse podem ser verificados na tabela abaixo: Expanses para o histrico de comandos !n Refere-se a entrada n do histrico. !! Repete o ltimo comando digitado. !-n Refere-se ao comando atual menos n no histrico. !exemplo Repete o ltimo comando digitado que comece com exemplo possvel fazer uma pesquisa reversa no histrico de comandos com a seqncia de teclas [CONTROL]+[R]. Nesse modo, basta comear a digitar um comando desejado que o bash preenche com o mais provvel conforme digita-se.
Teclas de Atalho
A tela do console em modo texto pode ser rolada para cima utilizando [SHIFT]+[PAGE UP], ou [SHIFT]+[PAGE DOWN] para rolar a tela para baixo (a tela j deve ter sido rolada p/ cima nesse momento). Isto til para visualizar sadas de comandos que ocupam mais de uma tela no Console. Outra forma de navegar atravs dos comandos no histrico com a ajuda de teclas como [SETA P/ CIMA] (volta recursivamente os comandos do histrico, um por um), e [SETA P/ BAIXO] (avana atravs dos comandos no histrico). As setas so muito utilizadas no dia-a-dia de um administrador de sistemas Linux, pois se tornam muito necessrias conforme digitamos comandos.
Tecla TAB
A tecla [TAB] nos permite completar nomes de arquivos, diretrios, executveis no $PATH, etc. Exemplo A: ___________________________________________________________________________ Pg. 34
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
# ls /u[TAB]/sh[TAB]/do[TAB]
No exemplo, acionamos o comando ls /usr/share/doc utilizando a tecla tab 3 vezes para completar o caminho. Exemplo B:
# ifco[TAB]
O exemplo acima completa o comando ifconfig logo aps digitarmos ifco (somente as 4 primeiras letras) seguido da tecla [TAB].
___________________________________________________________________________ Pg. 35
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes A correlao entre esses tipos de diretrios forma a FHS, como mostrado na tabela abaixo: Compartilhveis Estticos Variveis /usr /opt /var/mail /var/spool/news No-Compartilhveis /etc /boot /var/run /var/lock
/bin
Contm os comandos que podem ser usados pelo administrador de sistema e pelos usurios, isso o torna necessrio durante uma tarefa de manuteno do sistema, e portanto no pode ficar em uma partio separada da partio que contm o / (raiz). Scripts de Inicializao tambm fazem uso desses comandos aqui presentes, como por exemplo: Utilizado para mostrar arquivos na sada padro. Utilizado para alterar permisses de arquivos e diretrios. Utilizado para modificar dono/grupo de arquivos e diretrios. Utilizado para copiar arquivos e diretrios. Utilizado para listar contedo de diretrios e informaes sobre arquivos.
/boot
Este diretrio contm arquivos importantes para a Inicializao e carregamento do kernel. neste diretrio que se encontra o Kernel. Tambm nesse diretrio que ficam localizados os arquivos do Gerenciador de Boot (bootloader).
/dev
Contm os arquivos de dispositivos suportados pelo Linux, como floppy disk, cdrom, unidades de disco, mouse, portas paralelas e serias, etc... Conforme visto anteriormente, tudo no linux tido como arquivo, e isso inclui os dispositivos do sistema, como hds, modems, portas, etc. Isso possvel pois o kernel conta com esses Arquivos Especiais que ficam no diretrio /dev. Esses arquivos especiais podem ser de dois tipos: Dispositivos de Bloco e Dispositivos de Caractere. ___________________________________________________________________________ Pg. 36
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes A diferena entre esses dois tipos de dispositivos que os dispositivos de bloco so dispositivos geralmente associados armazenamento de dados (blocos de dados), pois tratam os dados em formato binrio prprio para armazenagem e leitura posterior. Assim, os dados enviados a esses dispositivos so armazenados em dispositivos de armazenamento, como discos-rgidos e disquetes, possibilitando posterior leitura desses dispositivos. J os dispositivos de caractere tratam o fluxo de dados em um formato de caracteres texto. O prprio terminal texto, por exemplo, utiliza um dispositivo de caractere para interfacear com o kernel.
Exemplos de Dispositivos
Bloco /dev/hda /dev/fd0 /dev/sdd11 /dev/tty1 /dev/ttyS0 /dev/zero
Caractere
Portas Seriais e Paralelas No linux, as portas seriais e paralelas tem uma nomenclatura diferente do MSDOS. Essas diferenas so mostradas na tabela abaixo: MSDOS COM1 COM2 LPT1 LPT2 LINUX /dev/ttyS0 /dev/ttyS1 /dev/lp0 /dev/lp1
/etc
Contm os arquivos e os diretrios de configurao que so especficos ao sistema atual. nesse diretrio que passaremos a maior parte do curso.
/home
Contm os diretrios de trabalho de todos os usurios do sistema. Neste diretrio ficam informaes como personalizao de desktop, configurao de clientes de e-mail, etc... O propsito principal dessa estrutura facilitar as tarefas de backup, por exemplo.
___________________________________________________________________________ Pg. 37
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
/root
Este diretrio home do administrador de sistema (Usurio root). Segundo a FHS, o root o nico usurio interagvel com o sistema (que digita comandos nele) que deve ter seu diretrio de trabalho fora da pasta /home. Isso torna possvel que o usurio root acesse seus arquivos durante uma tarefa de manuteno no sistema, onde o sistema deve ser capaz de funcionar somente com a partio raiz acessvel (montada).
/lib
Contm as biblioteca compartilhadas necessrias ao carregar o sistema e para executar os comandos localizados na raiz do sistema de arquivos. Os mdulos do Kernel tambm se localizam neste diretrio, mais especificamente em /lib/modules/<verso do kernel>/.
/mnt
Este diretrio fornecido de modo que o administrador de sistema possa temporariamente montar um disquete, cdrom, ou sistema de arquivos quando necessrio. Algumas distribuies Linux como a RedHat, Mandrake e Conectiva criam os subdiretrios floppy e cdrom aqui dentro para servir como ponto de montagem para esses tipos de mdias. Outras distribuies como o Debian e Knoppix criam esses diretrios (cdrom e floppy) diretamente na raiz, e os utilizam como padro para servir como ponto de montagem essas mdias.
/opt
reservado para a instalao de pacotes que esto fora da distribuio utilizada. Estes pacotes fornecidos por terceiros devem ser instalados em diretrios separados. Ex.: /opt/ pacote onde o pacote deve descrever o nome do software a ser instalado.
/sbin
Contm os binrios essenciais para o inicializao, na recuperao e restaurao do sistema. Estes binrios so usados pelo prprio sistema ou pelo administrador(root).
/tmp
O diretrio tmp utilizado por alguns programas que requerem arquivos temporrios. Recomenda-se que ao inicializar o sistema os arquivos contidos neste diretrio sejam apagados. Distribuies como o Debian fazem isso automaticamente.
___________________________________________________________________________ Pg. 38
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
/usr
O diretrio /usr a segunda maior seo do sistema de arquivos, nele esto os dados compartilhveis apenas para leitura. Isso significa que no se deve gravar nada manualmente neste diretrio, toda a informao que for gerada com o tempo deve ser armazenada em outra parte (existem os diretrios apropriados para isso). Encontram-se neste diretrio o gerenciador de janelas X, programas de usurios, jogos, etc... Os subdiretrios mais importantes dentro da estrutura /usr so:: bin include lib local sbin share Binrios no inerentes ao sistema. Arquivos de cabealho includos por programas em C. Biblioteca do Sistema Arquivos No-compartilhveis (Sim, /usr compartilhvel, mas / usr/local no ). Binrios Inerentes ao sistema. Dados compartilhveis entre os programas. Repare que a maioria desses diretrios dentro de /usr tambm existem na raiz do sistema. A diferena entre eles que os que ficam na raiz contm dados que no podem ser compartilhados pela rede, j os que ficam em /usr sim.
/var
Contm arquivos de dados de variveis. Isto inclui diretrios e arquivos de spool, dados administrativos e logs do sistema. Devido a provvel grande quantidade de dados e acessos que esse diretrio receber, uma boa prtica do administrador alocar uma partio em um disco separado para receber o diretrio /var. Isso garante mais velocidade (menos acessos no mesmo disco que contm o sistema) e facilita as tarefas de backup.
/proc
O diretrio /proc ligeiramente diferente dos diretrios comuns, pois os dados nele contidos no esto fisicamente em nenhum disco rgido do sistema, mas sim na memria ram. Trata-se de um sistema de arquivos virtual que criado e gerenciado pelo Kernel em tempo real, e a forma mais direta que o usurio tem de interagir com o kernel. ___________________________________________________________________________ Pg. 39
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Os arquivos nele contidos contm basicamente valores de variveis do kernel. Acompanhe os exemplos: Exemplo A:
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 8 model name : Pentium III (Coppermine) stepping : 3 cpu MHz : 647.304 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse bogomips : 1277.95
Repare que foi mostrado o contedo do arquivo /proc/cpuinfo com o comando cat, e que nesse arquivo esto contidas informaes sobre o processador em uso na mquina. O /proc est repleto de arquivos como esses, a existncia ou no da maioria deles depende de opes especficas da verso do kernel em uso no sistema. Os arquivos que costumam existir em sistemas atuais com kernel's 2.4 e 2.6 e nos trazem informaes importantes, como na tabela a seguir: /proc/cpuinfo /proc/meminfo Informaes sobre a(s) CPU(s) do sistema. Informaes sobre a memria do sistema. Mostra Informaes sobre os dispositivos conectados ao barramento PCI da placa me. (Obs.: esse arquivo mostra todos os dispositivos que esto interconectados no barramento PCI, no somente as placas plugadas nos slots PCI da placa me. A maioria dos dispositivos on-board, como placas de som, usb e modem, aparecem na listagem). A sada desse comando semelhante ao comando: lspci -v Mostra quais dispositivos esto utilizando as respectivas Interrupes do Sistema (IRQs). Mostra quais portas de entrada e sada (Portas de IO) os dispositivos esto utilizando. Mostra a linha de parmetros que foi passada ao kernel durante a inicializao. Esse arquivo exatamente o contedo da memria ram em binrio, portanto, no um arquivo legvel por ns humanos.
/proc/pci
___________________________________________________________________________ Pg. 40
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Alm desses, o diretrio /proc contm alguns subdiretrios com funes especiais, comeando por diretrios numricos que contm informaes sobre os processos rodando na mquina. O diretrio /proc/sys contm uma hierarquia de arquivos e diretrios que servem para interagirmos diretamente com o kernel. Geralmente esses arquivos contm um valor de lgica boleano (verdadeiro/falso), valendo 0 (falso) ou 1(verdadeiro). Alguns desses arquivos contm strings que so valores de variveis passadas diretamente ao kernel. A modificao desses arquivos repercute imediatamente. Exemplo A:
# cat /proc/sys/net/ipv4/ip_forward 0 # echo 1 > /proc/sys/net/ipv4/ip_forward # cat /proc/sys/net/ipv4/ip_forward 1
Nesse exemplo, primeiro foi mostrado o contedo do arquivo /proc/sys/net/ipv4/ip_forward, que retornou 0 (desabilitado). Esse arquivo habilita/desabilita a repassagem de pacotes ip no kernel, e vem desabilitado por padro. No prximo comando, o contedo do arquivo foi substitudo pelo valor 1, o que instantaneamente ativa a repassagem de pacotes ip no kernel. Todas as alteraes feitas dessa forma na estrutura do /proc sero perdidas na prxima reinicializao. Para salv-las, devemos adicionar as entradas no arquivo /etc/sysctl.conf. Para salvar a modificao feita no exemplo acima, adicionaramos a seguinte linha no arquivo /etc/sysctl.conf (verifique se a linha j no existe):
net/ipv4/ip_forward=1
___________________________________________________________________________ Pg. 41
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
GERENCIAMENTO DE PACOTES
O que guarda a sua boca conserva a sua alma, ma o que muito abre os lbios a si mesmo se arruna
Provrbios 13.3
Um dos assuntos mais relevantes na administrao de sistemas Linux justamente o gerenciamento de pacotes, que resumidamente o gerenciamento dos programas instalador no sistema. possvel instalar programas de diversas formas no Linux, seja atravs da compilao cdigo fonte, da cpia de alguns arquivos ou instalao de pacotes. No mundo Linux, um pacote de software nada mais do que um programa (ou um conjunto deles) j compilado e pronto para funcionar, que est empacotado em um nico arquivo, denominado pacote. como agrupar objetos (programas) em uma caixa (pacote). Cabe ao administrador instalar esse pacote de software para disponibilizar o(s) programa(s) contidos nele para o sistema. Manter o conjunto de softwares de um servidor ou estao de trabalho Linux em pacotes facilita e muito o gerenciamento desses sistemas. As atualizaes, por exemplo, so facilitadas, pois basta atualizar o(s) pacote(s) afetado(s) para que o sistema fique em dia. Se os softwares compilados diretamente no sistema, o gerenciamento de atualizaes poderia se tornar um caos. Para saber, por exemplo, quais softwares esto ou no instalados no computador, instalar programas sem temer as dependncias (nem sempre to fcil assim), com um gerenciador de pacotes muito mais fcil e prtico. As dependncias so o calcanhar de Acquiles para um gerenciador de pacotes. Quando um pacote precisa que j exista um ou mais pacotes especficos instalados no sistema, ele depende desses pacotes e no pode ser instalado sem que esses pacotes j estejam antes instalados no sistema. Existem dois gerenciadores de pacotes principais em uso nas distribuies Linux. O RPM (RedHat Package Manager) e o DPKG (Debian Packager). Outras distribuies, como Slackware e Gentoo, utilizam seus prprios gerenciadores de pacotes, no abordados nesse material.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
dpkg
Utilizamos o comando dpkg para o gerenciamento direto dos pacotes no debian. Suas principais funes em relao aos pacotes so: Instalao, Listagem, Remoo e Status. Apesar de ser um comando para lidar com pacotes binrios no debian, o dpkg serve como base para outros comandos como o APT e dselect, que servem para realmente gerenciar os pacotes, facilitando e arrojando todo o trabalho. Sintaxe:
dpkg parmetro [pacote[.deb]]
A primeira coluna existem 2 letras que denotam o estado do respectivo pacote (Estado e erro, respectivamente), cujo nome, verso e descrio abreviada esto nas colunas adjacentes. possvel obter informaes para determinado(s) pacote(s) tambm, utilizando o nome completo ou parcial do pacote. Tambm possvel utilizar coringas (iguais os do shell, * e ? basicamente). Mas lembre-se de enquadrar o nome do pacote entre aspas para que no sejam confundidos com nomes de arquivos no diretrio atual, caso utilize coringas, conforme exemplo abaixo: Exemplo:
# # # # dpkg dpkg dpkg dpkg -l -l locales -l "locale*" -l locale-??
___________________________________________________________________________ Pg. 43
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Utilizamos 4 formas diferentes para listar pacotes no sistema. A primeira lista todos os pacotes instalados, a segunda lista somente o pacote locales, as 2 seguintes so listagens com coringas.
Utilizamos a opo -l para verificar se o pacote dpkg-doc est instalado no sistema (No se esquea que a sada desse comando foi omitida na apostila). Em seguida, a opo -p, que mostrou na tela o contedo do arquivo de controle do pacote dpkg-doc. Cada campo que inicia uma linha no arquivo um respectivo campo de controle. Veja os significados a seguir: Significado dos campos de controle Package Nome do pacote. Prioridade de Instalao. Pode valer required, important, Priority standard, optional e extra. Que denotam, decrescivamente a importncia do pacote no sistema. Os pacote so separados por sees devido ao grande nmero Section Installed-Size (Algo como o que feito com os nomes de municpios, por exemplo). Este o nome da seo a qual o pacote pertence. Tamanho ocupado pelo pacote aps instalado. Exibido em KB.
___________________________________________________________________________ Pg. 44
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Mantainer Architeture Source Version Depends Recommends Suggests Nome e email do Mantenedor (Empacotador, geralmente tambm o criador do pacote). Qual a arquitetura do pacote. Nome do pacote que traz o cdigo-fonte para este pacote binrio. Verso do pacote. Qual(is) pacote(s) depende(m) deste, e deve(m) estar instalado(s) antes da instalao do pacote atual. Qual(is) pacote(s) o Mantenedor recomenda serem instalados junto com o pacote atual. Quase o mesmo que Recommends, porm lista pacotes que costumam agregar funcionalidades ao pacote atual. Praticamente o mesmo significado que Depends, porm no necessrio que a(s) dependncia(s) esteja(m) completamente instalada(s) quando da instalao, basta que esteja(s) descompactada(s) no sistema. Este campo possui 2 propsitos distintos: Qual(is) Replaces arquivo(s) ou pacote(s) ser(o) sobrescrito(s) quando da instalao do pacote. Lista qual(is) pacote(s) no podem existir ao instalar o pacote atual, pois um ou mais arquivos podem entrar em conflito. Hash de verificao da integridade do pacote. Execute md5sum pacote.deb e compare o resultado com o mostrado nesse campo. Isso garante que o pacote no tenha sido alterado propositalmente ou corrompido por algum motivo. Caminho completo do pacote no repositrio Debian. Descrio detalhada do pacote.
Pre-Depends
Conflicts
MD5sum
Filename Description
___________________________________________________________________________ Pg. 45
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Origin: debian Bugs: debbugs://bugs.debian.org Architecture: all # dpkg -i dpkg-doc_1.10.25_all.deb Selecionando pacote previamente no selecionado dpkg-doc. (Lendo banco de dados ... 107104 arquivos e diretrios instalados.) Descompactando dpkg-doc (de dpkg-doc_1.10.25_all.deb) ... Instalando dpkg-doc (1.10.25) ...
atualmente
# dpkg -l dpkg-doc # dpkg -s dpkg-doc Package: dpkg-doc Status: install ok instal ed Priority: optional Section: doc Installed-Size: 72 Origin: debian Maintainer: Dpkg Development <debian-dpkg@lists.debian.org> Bugs: debbugs://bugs.debian.org Architecture: all Source: dpkg Version: 1.10.25 Replaces: dpkg-dev (<< 1.4.1.19) Description: Dpkg Internals Documentation This document describes the internal operations of the dpkg program. It covers building as well as the internals functions. If you are interested in creating your own packages, then you may be more interested in the debian-policy package.
___________________________________________________________________________ Pg. 46
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
# apt-get clean # apt-get -d install dpkg-doc # cd /var/cache/APT/archives/ # ls dpkg-doc_1.10.25_all.deb lock partial # dpkg -i dpkg-doc_1.10.25_al .deb
Utilizamos as opes -l e -p para verificar, respectivamente, se o pacote j estava instalado e se possui dependncias. O pacote em questo no possui dependncias (pelo menos na verso utilizada durante a confeco do material). O comando apt-get clean serve para remover pacotes recentemente baixados no diretrio /var/cache/apt/archives, no qual encontraremos o arquivo dpkg-doc_1.10.25_all.deb, que um pacote binrio debian.
___________________________________________________________________________ Pg. 47
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes A lista de repositrios armazenada no arquivo de configurao /etc/apt/sources.list. As entradas nesse arquivo seguem este padro:
deb http://site.http.org/debian distribuio seo1 seo2 seo3 deb-src http://site.http.org/debian distribuio seo1 seo2 seo3
A primeira palavra das linhas (deb e deb-src) indicam o tipo de repositrio: se guarda pacotes binrios (deb ), ou seja, os pr-compilados que normalmente usamos ou se guarda pacotes fonte (deb-src), que contm o cdigo-fonte original do programa mais o arquivo de controle Debian (.dsc) e o diff.gz, que contm as modificaes efetuadas no pacotes que s existem no Debian, no no cdigo-fonte original do programa. Segue um exemplo de um sources.list real:
deb http://ftp.debian.org/debian/ stable main deb-src http://ftp.debian.org/debian/ stable main deb http://security.debian.org/ stable/updates main
O segundo campo de cada linha configura o endereo do repositrio (repare nos http://, so repositrios web); Em seguida, temos a verso da distribuio, que segue, basicamente 3 nomes: stable para a ltima distribuio estvel, testing para a distribuio intermediria, que um dia ser a stable, e unstable, que a verso mais instvel disponvel. As distribuies so apenas verses disponveis atualmente do Debian, sempre existem 3 (stable, testing e unstable). No momento em que desenvolvo este material, as verses stable, testing e unstable eram, respectivamente chamadas de: Woody (3.0), Sarge (3.1) e Sid (Esse no tem verso, e tambm nunca troca de nome, pois sempre contm os pacotes mais instveis disponveis). Os ltimos campos so as sees (deve haver pelo menos um deles), que ajuda a dividir os pacotes em categorias. No exemplo, main a categoria principal.
Exibe a ajuda do programa Especifica o ponto de montagem do cdrom Renomeia um cdrom reconhecido previamente No monta o cdrom
___________________________________________________________________________ Pg. 49
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes -f -a Modo rpido. No atualiza a lista de pacotes Modo Minucioso
Os comandos podem ser add, para adicionar um cdrom ao sources.list, ou ident, para apenas identificar um cdrom na unidade. Exemplos:
# apt-cdrom add # apt-cdrom -d /cdrom1 add # apt-cdrom ident
Exibe a ajuda do programa Sada logavel, exceto para erros Nenhuma sada, somente erros Instrui o apt-get para apenas efetuar o download do(s) pacote(s). Os arquivos so baixados no diretrio var/cache/apt/
___________________________________________________________________________ Pg. 50
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes archives No executa de verdade nenhum comando, somente simula. Assume Yes como resposta para todas as perguntas e no pede confirmao Tenta continuar mesmo se os arquivos no puderem ser localizados. Mostra uma lista de pacotes atualizados Constri um pacote-fonte aps baix-lo. Especifica um arquivo de configurao p/ o apt. Define uma opo arbitrria de configurao.
-s -y -m -u -b -c=arquivo -o=opo
Tabela de comandos do apt-get update Atualiza a lista de pacotes disponveis upgrade Atualiza todos os pacotes desatualizados do sistema install remove source build-dep dist-upgrade clean Instala novos pacotes no sistema. (indicar o(s) pacote(s), ex: apt-get install xpdf) Remove pacotes do sistema. Mesma sintaxe utilizada para instalar baixa o cdigo fonte de pacotes Constri a rvore de dependncias necessria para permitir a compilao de um pacote O mesmo que upgrade, porm utiliza um mecanismo mais inteligente para lidar com dependncias, categorizando as mais importantes. Apaga todos os arquivos de pacotes temporrios (em / var/cache/apt/archives, basicamente). Faz o mesmo que clean, porm no apaga pacotes que porventura sero utilizados em breve (Um conjunto de dependncias de um pacote, por exemplo.)
autoclean
Exemplo A:
#apt-get update #apt-get upgrade
Esses dois comandos iro, respectivamente, atualizar a lista de pacotes disponveis nos repositrios listados no arquivo /etc/apt/sources.list e atualizar todos os que no estiverem atualizados. Da forma que o comando foi digitado, o apt ir pedir confirmao do usurio antes de prosseguir com a instalao de algum pacote, se houver. Exemplo B:
#apt-get remove nvi #apt-get install vim
___________________________________________________________________________ Pg. 51
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Removemos o pseudo-vi que costuma vir com o Debian no lugar do vim, e em seguida instalamos o vim, que o editor VIM de verdade. Quando for remover um pacote com o apt-get e quiser remover todos os arquivos pertencentes aquele pacote, utilize a opo --purge, ficando assim:
#apt-get remove --purge pacote
Programas auxiliares
Existem alguns programas que completam o super-esquema de gerenciamento de pacotes do Debian. Esses programas geralmente adicionam funcionalidades e/ou facilitam outras aes de outros programas. Os principais so:
aptitude
Este fantstico gerenciador de pacotes considerado um apt-get turbinado, pois sua sintaxe praticamente a mesma, alm de adicionar outras caractersticas nicas, como uma interface amigvel para o gerenciamento de pacotes. Para utiliz-lo, instale da seguinte forma:
# apt-get install aptitude
Aps instalado, j podemos contar com o comando aptitude, que aceita os comandos como install, update e upgrade do apt-get, ou abre a interface grfica de gerenciamento se digitarmos aptitude sem nenhum parmetro. O aptitude notavelmente mais inteligente que o apt-get. Um exemplo como ele lida com pacotes obsoletos do sistema (rfos). Imagine que voc instalou o pacote xyz, que de quebra trouxe os pacote abc e 123 como dependncias. S que se removermos o pacote xyz com o aptget, os pacotes que s serviram de dependncia para ele (o abc e o 123) ficaro ocupando espao no sistema, sem oferecer mais nenhuma dependncia para nenhum outro pacote. J o aptitude capaz de desinstalar automaticamente esses pacotes ao removermos o pacote-pai xyz. O modo grfico do aptitude inicialmente pode parecer confuso, mas logo pegamos a manha. Para atualizar a lista de pacotes (tal como um aptitude update), pressione [U]. Utilize as setas do teclado para navegar pela lista de pacotes categorizada. A tecla [+] marca o pacote para instalao/atualizao, a tecla [-] remove. As teclas do teclado numrico no costumam funcionar bem nesses casos. A tecla [G] avana na seleo (Aps selecionar os pacotes necessrios, por exemplo, vai para a tela de confirmao de instalao) e a tecla [Q] retrocede, e se pressionada na tela inicial do programa, sai dele.
___________________________________________________________________________ Pg. 52
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
apt-show-versions
Este um programa simples, porm direto e funcional. Sua principal funo mostrar as verses dos pacotes disponveis, mas amplamente utilizado para mostrar quais pacotes esto pendentes de atualizao atualmente no sistema. Ele faz isso comparando as verses dos pacotes instalados com as verses dos pacotes na lista dos repositrios. Instale-o com o comando:
# apt-get instal apt-show-versions
opo
-u
para
descobrir
quais
pacotes
esto
apt-cache
Utilitrio da famlia apt. Serve para buscar informaes na lista de pacotes dos repositrios. Ele muito utilizado para procurar por pacotes cujo nome ou descrio contenha determinada palavra (til para encontrar um pacote que lide com determinada funcionalidade) e para exibir informaes sobre pacotes que ainda no estejam instalados no sistema, mostrando seu respectivo arquivo de controle. Sintaxe:
apt-cache comando pacote [pacote...]
Tabela de comandos do apt-cache gencaches Gera os caches de informaes. showpkg Mostra informaes gerais do pacote showsrc Mostra registros fontes stats Mostra estatsticas bsicas dump Mostra o arquivo inteiro de forma concisa dumpavail Mostra arquivo de disponveis unmet Mostra dependncias no satisfeitas search Procura por pacotes que casem com algum padro Show Mostra informaes sobre determinado pacote depends Mostra as dependncias de determinado pacote pkgnames Mostra nomes dos pacotes policy Mostra configuraes de polticas
___________________________________________________________________________ Pg. 53
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplos:
#apt-cache search xpdf #apt-cache show xpdf-utils #apt-cache depends xpdf-utils
Exerccio
Verifique com o comando dpkg quais desses pacotes no esto instalados e instale os que faltarem: less, discover, read-edid, locales, console-data e mdetect, tcpdump, ssh. Verifique tambm na descrio dos pacotes para que eles servem.
___________________________________________________________________________ Pg. 54
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
___________________________________________________________________________ Pg. 55
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes -qf pacote -qip arquivo.rpm --whatrequires --whatprovides Exemplo A:
# rpm -qa mailcap-2.1.9-2 filesystem-2.1.6-2 bzip2-libs-1.0.2-2 ...
Verifica qual o pacote que prov determinado arquivo ao sistema. Diz ao RPM para efetuar a busca diretamente no arquivo RPM e no a base de dados do RPM. Funciona tambm com as opes c, -d e -l. Mostra qual(is) pacote(s) requer alguma dependncia. Mostra qual(is) pacote(s) prov alguma dependncia.
O exemplo mostra como listar todos os pacotes instalados no sistema. A sada do exemplo foi suprimida por ser muito grande. Repare que o formato da sada similar ao formato do nome do pacote rpm, porm mostra somente os 2 primeiros campos (Nome do pacote e verso). Exemplo B:
# rpm -q kernel kernel-2.4.18-3
Como podem ver, possvel direcionar a consulta para um pacote especfico, para isso, basta especificar seu nome na consulta. (A opo -a no necessria aqui). Observao Uma consulta como essa diz que o pacote no est instalado mesmo que o pacote no exista, levando a concluses erradas sobre a existncias de tal pacote. Portanto, um nome de pacote qualquer que o rpm diga no estar instalado no significa que ele exista em algum lugar. Encare a resposta como No encontrado na base de dados interna do RPM. Exemplo C:
# rpm -qa "vim-*" vim-common-6.1-2 vim-enhanced-6.1-2 vim-minimal-6.1-2
Podemos efetuar pesquisas utilizando curingas. Nesse caso, lembre-se sempre de enquadrar os argumentos de pesquisa entre aspas duplas.
___________________________________________________________________________ Pg. 56
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo D:
# rpm -qi kernel Name : kernel Relocations: (not relocateable) Version : 2.4.18 Vendor: Red Hat, Inc. Release : 3 Build Date: Qui 18 Abr 2002 09:03:07 GMT+3 Install date: Sex 26 Abr 2002 06:28:03 GMT+3 Build Host: porky.devel.redhat.com Group : System Environment/Kernel Source RPM: kernel-2.4.18-3.src.rpm Size : 30243536 License: GPL Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> Summary : The Linux kernel (the core of the Linux operating system) Description : The kernel package contains the Linux kernel (vmlinuz), the core of your Red Hat Linux operating system. The kernel handles the basic functions of the operating system: memory allocation, process allocation, device input and output, etc.
Utilizamos o argumento -i para mostrar mais informaes sobre o pacote kernel. Da mesma forma, os parmetros -c, -d, -v e -l so utilizados para listar os arquivos contidos no pacote (Vide tabela de parmetros anterior).
Mostra andamento da instalao do(s) pacote(s). Necessita da opo -i. Mostra mais informaes na sada do comando. (O(s) nome(s) do(s) pacote(s) durante uma instalao, por exemplo) Diz ao RPM para ignorar as dependncias (No recomendvel).
___________________________________________________________________________ Pg. 57
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Instalao/Atualizao
Com os dados da tabela acima, podemos concluir que possvel instalar pacotes de duas formas. Com o parmetro -i ou com o parmetro -U. Como o parmetro -U (que serve para atualizao) tambm faz instalao, utilizaremos ele no exemplo, e recomendamos que seja utilizado no dia-a-dia. Outros parmetros bem-vindos para a instalao so o -h e o -v, que adicionaro mais verbosidade a nossa instalao. Exemplo:
# o # A rpm -q zebra pacote zebra no est instalado rpm -Uvh zebra-0.92a-3.i386.rpm preparar... ####################################### [100%] 1:zebra ####################################### [100%] # rpm -q zebra zebra-0.92a-3
Geralmente dessa forma que instalamos pacotes rpm no sistema. O mesmo exemplo serviria para atualizao caso j existisse um pacote zebra de uma verso inferior instalado.
Desinstalao
Desinstalar pacotes rpm ainda mais opo -e seguida do nome do pacote. Exemplo:
# rpm -q zebra zebra-0.92a-3 # rpm -e zebra # rpm -q zebra erro: o pacote zebra no est instalado
simples do que
instal-los.
basta Utilizar
___________________________________________________________________________ Pg. 58
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
COMPILAO DE PROGRAMAS
O vinho escarnecedor, e a bebida forte alvoraadora; todo aquele que por eles vencido, no sbio
Provrbios 20.1
A compilao do cdigo-fonte disponvel de um determinado programa ou driver, apesar de ser menos simples que utilizao de binrios pr-compilados, considerada a melhor forma de garantir a boa implementao e a excelncia dos resultados que desejamos obter, de acordo com a sua finalidade. Graas uma correta e eficiente compilao, conseguiremos alcanar excelentes nveis de otimizao, performance, estabilidade, compatibilidade e ajustes altamente personalizados de que necessitamos ou quando no somente poderemos obt-los com a utilizao deste processo. A compilao o processo pelo qual as instrues contidas no cdigo-fonte so convertidas para uma linguagem de mquina, que somente entendida pelo prprio computador. De acordo com as necessidades (e vantagens), existem duas formas bsicas de compilao para um programa: A esttica e a dinmica. A compilao esttica um processo que apresenta o conceito de integrao total do programa, com todos os seus arquivos e bibliotecas necessrias para o seu funcionamento. A principal vantagem est no fato de que no haver necessidade de instalao de bibliotecas necessrias para o perfeito funcionamento do programa as conhecidas pendncias. Em contrapartida, o tamanho ocupado pelo programa muito superior utilizao destes mesmos utilizando o processo de compilao dinmica, alm de ocupar muito mais memria, caso dois ou trs destes programas utilizem as mesmas bibliotecas e estejam em execuo ao mesmo tempo. A compilao dinmica apresenta conceitos inversos da esttica: ao invs de incluir as bibliotecas necessrias no corpo principal do programa, estas so instaladas parte, onde o programa principal somente realiza as chamadas de funes necessrias para a execuo de suas atividades. A grande vantagem deste mtodo de compilao est justamente nas desvantagens do mtodo de compilao esttica: ganha-se na confeco de pacotes enxutos, utilizao de pouca memria e tima performance quando suas bibliotecas necessrias sendo utilizadas pelo ambiente, como o caso das bibliotecas grficas Qt e GTK. Em contrapartida, surge o grande inconveniente das pendncias, ou seja, para a instalao destes programas, sero necessrios a instalao das devidas bibliotecas para a sua utilizao, caso elas no constem no sistema.
___________________________________________________________________________ Pg. 59
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Bibliotecas
Gnu C Library
A GNU C Library conhecida como glibc usada por praticamente todos os programas desenvolvidos para os sistemas GNU/Linux. Ela essencial para a compilao dos cdigosfonte de seus pacotes. Todas as distribuies possuem uma verso da glibc instalada no sistema, onde de acordo com a filosofia de cada uma, poderemos ter a verso mais recentes ou no. Na consulta das instrues README e INSTALL dos pacotes com os fontes, apenas deveremos ficar atento s verses exigidas da glibc, onde raramente as distribuies deixam de atender tais requisitos.
Gnu Libtool
Desenvolvido por Gordon Matzigkeit, o GNU Libtool um conjunto de shell scripts desenvolvidos para facilitar a criao e uso de bibliotecas compartilhadas. Sua presena indispensvel para a compilao de bibliotecas e pendncias necessrios para a instalao de outros programas.
Ferramentas De Automao
Autoconf
O autoconf uma ferramenta que tem por objetivo desenvolver scripts para automatizar a configurao de cdigos-fontes para a compilao em diferentes plataformas. Graas ele torna-se possvel utilizar um mesmo cdigo para diferentes arquiteturas. Com ele criado o script configure. O script configure, por sua vez, examina as variveis, a existncia de pendncias e as especificaes da plataforma. Com estas informaes, ele ir construir os arquivos Makefiles personalizados, que sero utilizados como regras para a compilao dos programas e assim garantir a compilao do programa especficamente para o sistema em uso.
M4
O m4 a implementao de macro-processadores tradicionais dos ambientes Unix. Sua funo consiste em gerar os arquivos Makefile.am, que por sua vez contm as instrues necessrias para que o automake possa construir os Makefile.in.
Automake
O automake um script desenvolvido em Perl que utiliza as definies geradas pelo GNU m4 (Makefile.am) para a construo dos arquivos Makefile.in. Sua utilizao traz a vantagem de automatizar a tarefa de manuteno dos Makefiles.
Make
Quando Se Compila Um Programa, No S Existe A Necessidade De Unir (Link) Todo O Cdigo-Fonte e gerar o programa principal, como tambm incluir diversas outras instrues (bibliotecas) para compor o corpo funcional do programa. Realizar esta operao algo extremamente trabalhoso, pois teramos que realizar diversos procedimentos manuais para ___________________________________________________________________________ Pg. 60
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes satisfazer suas necessidades. Para isto existe o comando make. O comando make realiza a compilao propriamente dita dos programas os quais desejamos instalar, onde este segue as instrues de um arquivo especial gerado pelo configure (Makefiles), os quais contm todas as instrues para a realizao do processo.
Compiladores
Existem diversos compiladores desenvolvidos pelo Projeto GNU, onde o mais famoso (e largamente utilizado) o GNU C Compiler.
Gnu C Compiler
Conhecido popularmente como GCC, de longe o compilador mais utilizado pelos sistemas GNU/Linux, como tambm no Windows. Desenvolvido por Richard Stallman com o apoio de voluntrios, o GCC um dos melhores e mais completos compiladores existentes. Suporta C, C++ e Objetive-C, segue as especificaes ANSI C, possui excelente performance e portabilidade, alm de inmeras outras qualidades. O GCC encontra-se disponvel por padro em praticamente todas as distribuies GNU/Linux. Em algumas existiro compiladores condicionados para serem utilizados especificamente em algumas arquiteturas especficas, como o Pentium da Intel, por exemplo. Ele indispensvel para a compilao da grande maioria dos programas desenvolvidos para sistemas GNU/Linux, por serem muitas vezes desenvolvidos em C.
Diversos
Binutils
Este pacote contm um conjunto de ferramentas para a manipulao de arquivos binrios nos sistemas GNU/Linux. Na compilao dos programas, utilizado para a construo dos arquivos que iro compor o corpo do programa em si, inclusive o executvel.
Patch
O comando patch utilizado para atualizar um antigo programa empacotado no formato de cdigo-fonte, que por sua vez necessita de uma atualizao. Os motivos desta atualizao podero ser diversos: correo de erros, atualizao propriamente dita, compatibilidade, etc. Os pacotes de atualizao possuem a extenso .diff, os quais podero ser baixados normalmente como um arquivo comum. Antes de utilizar o pacote com a atualizao, deveremos copi-lo para o diretrio-raz onde se encontra o cdigo-fonte do programa original e dentro deste, utilizar as seguintes sintaxes: Para atualizar um pacote, utilize...
$ patch -p0 < [ATUALIZAO].diff
___________________________________________________________________________ Pg. 61
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Obteno do Cdigo-Fonte
Geralmente voc obtm o cdigo-fonte dos programas ou drivers desejados na pgina do desenvolvedor. Basta apenas baix-los e copi-los para a mquina onde voc deseja instalar ou obt-los de diferentes locais, como nos CD-ROMs que possuem o cdigo-fonte dos aplicativos e outros dispositivos de armazenamento (cpia de segurana).
Descompactao Do Cdigo-Fonte
O cdigo-fonte geralmente se encontra empacotado e compactado em um nico arquivo que pode ter a extenso .tar.gz ou .tar.bz2. A extenso .tar informa que o cdigo fonte encontrase empacotado pelo utilitrio TAR, enquanto o complemento informa que o pacote gerado foi compactado com o gzip (.tar.gz) ou Bzip2 (.tar.bz2). para descompacta-los, abra um terminal e proceda da seguinte forma. Para pacotes compactado com o gzip (extenso .tar.gz)...
$ tar -xpzvf [NOME DO PACOTE].tar.gz
... ou...
$ gunzip [NOME DO PACOTE].tar.gz $ tar -xpvf [NOME DO PACOTE].tar
... ou...
$ bunzip2 [NOME DO PACOTE].tar.bz2 $ tar -xpvf [NOME DO PACOTE].tar
Estes so os compactadores mais comuns utilizados no sistema GNU/Linux, porm existe a possibilidade de se obter o pacote do cdigo-fonte compactado com outros utilitrios menos conhecidos: Para pacotes compactados com o compress (extenso .tar.Z)...
$ tar -xpZvf [NOME DO PACOTE].tar.Z
... ou...
$ compress -d [NOME DO ARQUIVO].tar.Z $ tar -xpvf [NOME DO ARQUIVO].tar
Observem a utilizao do parmetro Z em maisculo, informando ao empacotador que o arquivo ser desempacotado foi compactado pelo utilitrio compress. Para pacotes compactados no formato ZIP (extenso .zip):
$ unzip [NOME DO PACOTE].zip
Aps a realizao dos passos demonstrados, normalmente criado um diretrio com o nome do programa e o contedo do cdigo-fonte desempacotado. Agora basta apenas entrar neste diretrio...
$ cd [NOME DO DIRETRIO CRIADO]
___________________________________________________________________________ Pg. 62
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Local de Armazenamento
Conforme a recomendao tcnica da norma FHS, os pacotes que contm o cdigo-fonte dos programas devero estar armazenados no diretrio /usr/local/src pois no pertencem distribuio , mas nada o impede de armazen-lo em qualquer outro lugar.
A partir da, s digitar os seguintes comandos e aguardar algumas instrues do processo de compilao, de acordo com o pacote.
# ./configure ................................. # make ................................. # make install
Os comandos ./configure e make podero ser rodados com permisses de usurios comum; j o make install somente poder ser utilizado com os privilgios do superusurio, pois justamente ele que ir realizar a instalao propriamente dita.
Este processo somente se faz necessrio quando houver necessidade de reutilizar o cdigofonte para realizar novas compilaes ou caso tenha ocorrido algum erro em alguma compilao prvia (e depois solucionada), de acordo com as nossas necessidades.
___________________________________________________________________________ Pg. 63
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
opo make
uninstall,
necessrio
para desinstalar os
Contedo da Documentao
Ao contrrio do que muitos pensam, uma das mais importantes etapas do processo de compilao a leitura e o entendimento de toda sua documentao, ou pelo menos das partes relevantes do texto. Como requerimento bsico, todos os desenvolvedores de programas devem redigir uma documentao de sua aplicao, o qual dever descrever todos os processos bsicos inerentes como os requerimentos bsicos, a instalao, a configurao, a utilizao, diversas recomendaes e muitas outras informaes necessrias para o bom uso do programa.
O Diretrio docs
Geralmente a maioria dos desenvolvedores quando no disponibilizam a documentao em um arquivo separado ou quando estes possuem um certo grau de complexidade, geralmente armazenam diversos documentos (arquivos) em um subdiretrio chamado docs. Estaro l as principais informaes pertinentes ao programa em questo.
Readme / Install
Instrues bsicas sobre o programa e o procedimento correto para a instalao. Apesar de muitas vezes ser descartado, imprescindvel a sua leitura, pois muitas dos problemas e dificuldades encontrados esto brevemente descritos nestes documentos. Muitas vezes so inclusos os dois arquivos distintos: o README para as instrues gerais e o INSTALL para as instrues com enfoque exclusivo para a instalao.
Copying
O documento COPYING contm a licena do programa, suas clusulas, termos, restries, entre outros. Nos programas de cdigo-aberto distribudos livremente, geralmente se encontra uma licena GPL ou compatvel. Para ter acesso ao seu contedo, basta utilizarmos qualquer aplicao para a sua leitura.
Copyright
O documento COPYRIGHT contm trechos sobre o licenciamento de partes ou aspectos importantes do programa. Nele poderemos consultar para saber se uma aplicao disponvel sob os termos da GNU GPL, alm de encontrar o nome dos criadores do produto.
___________________________________________________________________________ Pg. 64
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Release
Todas as implementaes, melhorias e correes do programa so especificados neste documento. Quando houver necessidade de se consultar se um determinado programa suporta uma tecnologia ou inovao, neste arquivo em que devero ser consultadas estas informaes
Credits
Todos os devidos crditos, que vo desde autores colaboradores, suportes, etc., esto especificados neste documento. Apesar de ser dispensvel sua leitura, seus autores sentiro-se lisongeados em serem conhecidos.
Changelog
As principais mudanas realizadas ao longo da existncia do programa so comentados brevemente neste documento, que praticamente um histrico de todas as verses de sua existncia. Poderemos encontrar nestas documentaes as principais implementaes, alm de correes de erros e ainda os principais motivos do porque um programa X no funciona com a verso da biblioteca Y, entre outros.
Funcionalidades Detalhadas
Apesar de serem necessrias apenas a utilizao da seqncia de comandos padres para a compilao clssica na maioria das circunstncias, existiro casos em que, para instalarmos determinados aplicativos, teremos que recorrer utilizao de intervenes especficas para propsitos distintos; seja para habilitar um suporte ou uma funcionalidade extra, seja para adaptar o programa de acordo com as nossas necessidades. Neste caso, a seqencia de comandos muito provavelmente ser modificada para atender tais circunstncias; ora existiro outros comandos mais, ora os mesmos comandos necessitaro de um parmetro extra. Dos comandos e parmetros geralmente mais utilizados, seguem:
./configure
Conforme dissemos anteriormente, o script configure o responsvel pela construo dos Makefiles para que o compilador construa os binrios partir de suas especificaes.
# ./configure [PARMETROS]
Apesar da maioria dos programas utilizarem esta opo padro para a configurao dos pacotes serem compilados, muitos possuem parmetros especficos que devero ser habilitados e/ou desabilitados na prpria linha de comando. Por exemplo, o MPlayer um dos programas que necessitam de diversos parmetros especificados nesta linha. Para obter maiores informaes dos parmetros disponveis, consultem as instrues contidas nos arquivos README ou INSTALL, ou utilizem o parmetro --help na prpria linha de comando. Segue um pequeno exemplo das opes disponveis por padro:
# ./configure --help `configure' configures this package to adapt to many kinds of systems.
___________________________________________________________________________ Pg. 65
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..']
Outra situao bastante comum o interesse do usurio em instalar o programa em locais especficos. Para isto bastar a adio do parmetro...
$ ./configure --prefix=/[LOCALIZAO]
Por padro, os programas compilados so instalados na rvore /usr/local, porm sua localizao pode ser modificada conforme as especificaes do parmetro --prefix=, onde [LOCALIZAO] ser o novo diretrio destino.
make
O comando make o mais simples de utilizar, pois no necessita parmetro extra para a sua utilizao basta apenas digitar na linha de comando...
$ make
de nenhum
... para iniciar todo o processo de compilao. Em contrapartida, caso ocorra algum erro durante a utilizao deste comando, existir uma grande impossibilidade deste problema ser resolvido. Procurem sempre consultar a documentao do programa para evitar maiores inconvenientes.
___________________________________________________________________________ Pg. 66
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
make install
Diferente dos comandos anteriores, o comando make install somente executado pelo superusurio, e o principal responsvel pela correta instalao do programa. Somente poder ser utilizado depois de se ter obtido sucesso com as etapas anteriores. Sem grandes mistrios.
make clean
Conforme dito anteriormente, remove (limpa) todos os arquivos gerados pela compilao anterior e que se mantiveram presentes na estrutura de diretrios do cdigo-fonte.
make uninstall
Sua funo desinstalar os programas compilados (inverso de make install), porm com um pequeno agravante: nem todos os programas possuem esta opo para realizar a sua desinstalao. A melhor forma de suprir esta deficincia a execuo de utilitrios para o gerenciamento de programas, como o Checkinstall ao invs de utilizar o comando make install. Ser ento gerado um pacote compilado no formato desejado, que possibilitar utilizar as ferramentas de gerenciamento de pacotes do sistema e com isto realizar sua remoo tranqilamente. Antes de realizar qualquer instalao, certifique-se de que a opo make uninstall encontra-se disponvel no programa ser compilado, para evitar este tipo de inconveniente.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes manuteno do cdigo-fonte do kernel (e em alguns casos, do cabealho) previamente instalado. Procurem se certificar de que os pacotes kernel-headers e kernel-source se encontram instalados no sistema. Dependendo da distribuio em uso, estes pacotes no se encontram no CD-ROM de instalao, onde devero ser baixados e instalados. Para o carregamento e descarregamento dos mdulos compilados, ser indispensvel a manuteno do pacote modutils, que felizmente se encontra em todas as distribuies GNU/Linux, alm de ser instalado por padro. Diversos perifricos necessitam da criao, edio e modificaes na permisso de acesso de seus respectivos dispositivos, como o caso das placas de som, fax-modem, CD-R/CD-RW, leitores de DVD, etc. Com menor incidncia, existe a necessidade da edio de parmetros em arquivos de configurao, tanto o do sistema como o do prprio programa. Por ltimo, o processo de compilao do kernel de sistemas GNU/Linux bem diferenciado, em comparao ao processo de compilao dos programas e drivers. Alm da existncia de inmeros parmetros, existem uma srie de requerimentos necessrios para que possamos garantir a obteno de excelentes resultados.
___________________________________________________________________________ Pg. 68
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
A seguir veremos alguns comandos utilizados para manipular arquivos e diretrios, tarefa comum no dia-a-dia de um administrador de sistemas Linux.
mkdir
Utilizamos o comando mkdir com a nica finalidade de criar diretrios no sistema. Um diretrio nada mais do que um arquivo especial contendo a lista de outros diretrios e arquivos nele contidos. Ele pode ser entendido como uma pasta onde voc guarda seus papis (arquivos). Como uma pessoa organizada, voc utilizar uma pasta para guardar cada tipo de documento, da mesma forma voc pode criar um diretrio vendas para guardar seus arquivos relacionados com vendas naquele local. Sintaxe:
mkdir [parmetro] <diretorio> [<outro diretorio>] [...]
Exemplo A:
# mkdir dir1
Primeiro criamos o diretrio dir2 dentro da pasta atual (/root). Em seguida tentamos criar o diretrio dir2/gama/beta, sem sucesso, pois o mkdir por padro s cria um diretrio se o anterior j existir. Para mudar esse comportamento, utilizamos a opo -p (parentes), que cria os diretrios pais caso eles no existam. Podem ser criados mais de um diretrio com um nico comando. Exemplo: # mkdir /tmp/teste /tmp/teste2 /tmp/teste3
___________________________________________________________________________ Pg. 69
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
tree
Exibe a rvore de diretrios e seu contedo em um formato hierrquico. um comando simplrio, porm de grande ajuda. No possui argumentos Sintaxe:
tree [opes] <diretrio>
Lista todos os arquivos, inclusive ocultos. Lista somente diretrios. Mostra caminho completo dos diretrios e arquivos. Desabilita a Indentao. Habilita sada colorida. Mostra permisses dos arquivos/diretrios. Mostra usurio dono dos arquivos/diretrios. Mostra grupo dono dos arquivos/diretrios.
# tree -f . |-- ./Desktop | `-- ./Desktop/starthere.desktop |-- ./dead.letter |-- ./dir2 | `-- ./dir2/gama | `-- ./dir2/gama/beta | `-- ./dir2/gama/beta/teste |-- ./fedora2 | |-- ./fedora2/disc1 | | `-- ./fedora2/disc1/FC2-i386-disc1.iso | |-- ./fedora2/disc2 | | `-- ./fedora2/disc2/FC2-i386-disc2.iso | |-- ./fedora2/disc3 | | `-- ./fedora2/disc3/FC2-i386-disc3.iso | `-- ./fedora2/disc4 | `-- ./fedora2/disc4/FC2-i386-disc4.iso |-- ./historico `-- ./iptraf.log 10 directories, 8 files
rmdir
Remove um diretrio do sistema. O diretrio a ser removido deve estar vazio. Sintaxe:
rmdir <diretorio> [<outro diretorio>] [...]
___________________________________________________________________________ Pg. 70
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes necessrio estar um nvel acima do(s) diretrio(s) que ser(o) removido(s). Por exemplo, para remover o diretrio /tmp/teste voc deve estar fora deste diretrio e executar o comando, como no exemplo abaixo: Exemplo:
# rmdir /tmp/teste
rm
Apaga arquivos. Tambm pode ser usado para apagar diretrios e sub-diretrios. Sintaxe:
rm [parmetro] <arquivo ou diretorio> [<outro arquivo ou diretrio> [...]
Remove Arquivos e Diretrios recursivamente. Necessrio quando se quer remover algum diretrio no-vazio Pergunta antes de remover. Mostra os nomes dos arquivos que esto sendo movidos. Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. Fora a remoo. Remove arquivo(s) e/ou diretrio(s) sem perguntar. (Perigoso se associado com o comando
$ mkdir -p ~/exercicios/rm; cd ~/exercicios/rm $ touch teste.txt $ rm -iv teste.txt rm: remove arquivo comum vazio `teste.txt'? s removed `teste.txt'
touch
Muda a data e hora que um arquivo foi criado. Tambm pode ser usado para criar arquivos vazios. Sintaxe:
touch [parmetros] <arquivo[s]>
___________________________________________________________________________ Pg. 71
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Tabela de parmetros -t [AA]MMDDhhmm -a -c -m -r arquivo_de_referencia Exemplo A:
# ls # touch arquivo1 arquivo2 arquivo3 # ls -l total 3 -rw-r--r-- 1 enunes uniararas 0 2006-10-27 17:22 arquivo1 -rw-r--r-- 1 enunes uniararas 0 2006-10-27 17:22 arquivo2 -rw-r--r-- 1 enunes uniararas 0 2006-10-27 17:22 arquivo3
Utiliza a hora especificada (MM=ms, DD=dia, hh=hora, mm=minuto). Os ano com dois dgitos no comeo so opcionais (AA). Modifica a data de acesso do arquivo. No cria um arquivo vazio, caso o arquivo no exista. Modifica a data de modificao do arquivo. Utiliza um arquivo de referencia de data para o arquivo alvo.
Continuando o exemplo anterior, modificamos a data de criao de arquivo1 para dia 20 de novembro de 2003, s 12:45. Exemplo C:
# ls -l -rw-r--r-- 1 enunes uniararas -rw-r--r-- 1 enunes uniararas -rw-r--r-- 1 enunes uniararas # touch -r arquivo1 arquivo3 # ls -l -rw-r--r-- 1 enunes uniararas -rw-r--r-- 1 enunes uniararas -rw-r--r-- 1 enunes uniararas 0 2003-11-20 12:45 arquivo1 0 2006-10-27 17:22 arquivo2 0 2006-10-27 17:22 arquivo3 0 2003-11-20 12:45 arquivo1 0 2006-10-27 17:22 arquivo2 0 2003-11-20 12:45 arquivo3
Agora utilizamos o touch para modificar a data de criao de arquivo3 com base em arquivo1.
cp
Copia arquivos. Sintaxe:
cp [OPO]... ORIGEM DESTINO cp [OPO]... ORIGEM... <DIRETRIO> cp [OPO]... --target-directory=DIRETRIO ORIGEM...
Copia ORIGEM para DESTINO, ou mltiplas ORIGENS para DIRETRIO. ___________________________________________________________________________ Pg. 72
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes ORIGEM o arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado e tambm pode-se usar Coringas como ? e *. DESTINO o caminho ou nome de arquivo onde ser copiado. Mesmo que o DESTINO seja a pasta atual, ele deve ser especificado (Lembrete: . significa o diretrio atual). Se o destino for um diretrio, os arquivos de origem sero copiados para dentro do diretrio. Tabela de parmetros -i -r -v -a -s -l -p -u Pergunta antes de substituir um arquivo existente. Faz cpia recursiva dos arquivos. Mostra nomes dos arquivos enquanto copia. Copia todos os tipos de arquivos, inclusive links simblicos. O cp no copia links simblicos por padro.
Cria link simblico no destino ao invs copiar o arquivo em si.
Cria link (hardlink) no destino ao invs copiar o arquivo em si. Mantm os atributos do arquivo, se possvel. Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. Cpia de atualizao, na verdade. No copia arquivos que estejam localizados em parties (Pontos de Montagem) diferentes.
-x
Exemplo A:
$ ls $ cp /tmp/arquivos/arquivo1 . $ ls arquivo1
Efetuada uma simples cpia do arquivo arquivo1 p/ o diretrio atual (~/exercicios/cp). Exemplo B:
$ mkdir subdir $ cp -var /tmp/arquivos subdir/ `/tmp/arquivos' -> `subdir/arquivos' `/tmp/arquivos/arquivo1' -> `subdir/arquivos/arquivo1' `/tmp/arquivos/arquivo2' -> `subdir/arquivos/arquivo2' `/tmp/arquivos/arquivo3' -> `subdir/arquivos/arquivo3' $ cp -var /tmp/arquivos . `/tmp/arquivos' -> `./arquivos' `/tmp/arquivos/arquivo1' -> `./arquivos/arquivo1' `/tmp/arquivos/arquivo2' -> `./arquivos/arquivo2'
___________________________________________________________________________ Pg. 73
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
`/tmp/arquivos/arquivo3' -> `./arquivos/arquivo3' $ tree . |-- arquivo1 |-- arquivos | |-- arquivo1 | |-- arquivo2 | `-- arquivo3 `-- subdir `-- arquivos |-- arquivo1 |-- arquivo2 `-- arquivo3 3 directories, 7 files
Copia recursivamente todo o contedo de /tmp/arquivos para subdir/ (recm-criado). Depois faz a mesma cpia, porm com o destino sendo o diretrio atual, mas como estamos copiando uma estrutura completa de um diretrio, esse diretrio tambm criado, assim como toda a estrutura anterior, como pode ser visto na sada do comando tree. Exemplo C:
$ ls arquivo1 arquivos subdir erivelton@nunes:~/exercicios/cp$ cp -i /tmp/arquivos/arquivo1 . cp: sobrescrever `./arquivo1'? s $ cp /tmp/arquivos/arquivo? . $ ls arquivo1 arquivo2 arquivo3 arquivos subdir
Copiado o arquivo arquivo1 para o diretrio local, porm j existia um arquivo de mesmo nome. A opo -i garante confirmao antes de sobrescrever um arquivo. Depois foi utilizado um coringa (?) para copiar 3 arquivos de uma s vez para o diretrio atual, e dessa vez, como no foi especificada a opo -i, o arquivo arquivo1 foi sobrescrito sem pedir confirmao.
mv
Move ou renomeia arquivos e diretrios. O processo semelhante ao do comando cp mas o arquivo de origem movido de seu local original para o novo local. Sintaxe:
mv [parmetro] [origem] [destino]
Tabela de parmetros -f -i -v -u
Substitui o arquivo de destino sem perguntar. Pergunta antes de substituir (padro). Mostra os nomes dos arquivos que esto sendo movidos. Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe.
___________________________________________________________________________ Pg. 74
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo A:
$ mkdir -p ~/exercicios/mv; cd ~/exercicios/mv $ touch teste.txt $ mv teste.txt uniararas.txt $ ls uniararas.txt
Move arquivo uniararas.txt para dentro do diretrio /tmp. Repare que o comando mv age de forma idntica ao cp, porm ele remove o arquivo logo aps a cpia.
cat
Concatena e exibe arquivos. Sintaxe:
cat [parmetro] <diretorio ou arquivo>
Exibe todos os caracteres especiais. Numera apenas as linhas no-vazias da sada. Numera todas as linhas da sada. Exibe caracteres no-imprimveis. Exibe caracteres de tabulao.
$ mkdir -p ~/exercicios/cat; cd ~/exercicios/cat $ cat > teste1.txt teste1 $ cat > teste2.txt teste2 $ ls teste1.txt teste2.txt $ cat teste1.txt teste1 $ cat -n teste1.txt 1 teste1 $ cat -n teste1.txt teste2.txt 1 teste1 2 teste2 $ cat -n test* 1 teste1 2 teste2
O primeiro comando cat redireciona a palavra digitada teste1 para o arquivo teste1.txt. Para que o texto digitado v definitivamente p/ o arquivo, devemos teclar [CONTROL]+[D] em uma linha abaixo da ltima contendo texto. O mesmo feito com teste2.txt. Depois utilizamos o ___________________________________________________________________________ Pg. 75
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes comando cat para visualizar o contedo do arquivo teste1.txt. Repare na utilizao do parmetro -n.
tac
Mostra o contedo de um arquivo (como o cat) em ordem inversa, ou seja, as ltimas linhas primeiro. Sintaxe:
tac [parmetro] <diretorio ou arquivo>
Exemplo:
$ mkdir -p ~/exercicios/tac; cd ~/exercicios/tac $ cat > teste.txt linha1 linha2 linha3 $ tac teste.txt linha3 linha2 linha1
ln
Cria links para arquivos e diretrios no sistema. O link um mecanismo que faz referncia a outro arquivo ou diretrio em outra localizao (Como os atalhos no Microsoft Windows). Sintaxe:
ln [parmetro] [origem] [link] ln [parmetro]... <destino> [link] ln [parmetro]... <destino>... <diretrio>
Tabela de parmetros -s Cria Link simblico. -v Mostra o nome de cada arquivo ao fazer o link. -d Cria Hardlink para diretrios. Somente o root pode usar essa opo. Antes de entender os links, devemos compreender um termo sobre os sistemas de arquivos: Inodes.
INODES
Todo arquivo criado no sistema de arquivos recebe um nmero que o identifica unicamente dos demais no mesmo sistema de arquivos (partio). A esse nmero damos o nome de inode. possvel saber o inode de um arquivo especfico com a opo -i do comando ls.
___________________________________________________________________________ Pg. 76
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo:
$ ls -i teste1.txt 554844 teste1.txt
Nesse exemplo, o inode do arquivo teste1.txt 554844. Existem 2 tipos de links: Links Simblicos e Hardlinks.
Links Simblicos
O link simblico cria um arquivo especial no disco (do tipo link) cujo contedo o caminho para chegar at o arquivo alvo (isto pode ser verificado pelo tamanho do arquivo do link, bem menor do que o arquivo de destino). Use a opo -s para criar links simblicos. Ambiente:
$ mkdir ~/exercicios/ln; cd ~/exercicios/ln $ touch arquivo1 $ mkdir -p dir1/sub1/sub2 dir2/
Esses comandos criaro o ambiente necessrio para aprendermos sobre links. Exemplo A:
$ ln -s arquivo1 link1 $ ls -li total 8 554848 -rw-r--r-- 1 enunes uniararas 0 2006-10-28 17:29 arquivo1 439830 drwxr-xr-x 3 enunes uniararas 4096 2006-10-28 17:30 dir1 439833 drwxr-xr-x 2 enunes uniararas 4096 2006-10-28 17:30 dir2 554850 lrwxrwxrwx 1 enunes uniararas 8 2006-10-28 17:41 link1 -> arquivo1
Utilizamos o ln para criar um link simblico (opo -s) do arquivo arquivo1 para link1. Repare que ele aparece referenciado na sada do comando ls -li. Constate tambm que o nmero dos inodes dos arquivos linkados diferem, o que confirma que so realmente arquivos diferentes. Exemplo B:
$ cd dir1/sub1/sub2/ $ ln -s ../../../dir2 $ ls -l total 0 lrwxrwxrwx 1 enunes uniararas 13 2006-10-29 09:42 dir2 -> ../../../dir2
Repare a possibilidade de se criar links utilizando caminhos relativos, inclusive para diretrios. Se movermos o link de lugar, o link pode perder referncia (apontar para um arquivo inexistente) e se tornar um link quebrado.
Hardlinks
A grande diferena entre os Links Simblicos e os Hardlinks a forma como eles referenciam o arquivo linkado. No caso dos Hardlinks, no criado um arquivo novo no sistema de arquivos como nos links simblicos, e sim adicionada uma nova referncia no diretrio atual que aponte o link para o mesmo inode do arquivo original. Dessa forma, se fizermos um hardlink de um ___________________________________________________________________________ Pg. 77
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes arquivo, no teremos dois arquivos diferentes no sistema, e sim uma nova referncia ao mesmo inode do arquivo linkado, o que torna o link exatamente o mesmo arquivo que o original, pois o arquivo s ser excludo do sistema de arquivos quando o ltimo link tambm for. No possvel criar HardLinks para arquivos que no se encontrem no mesmo sistema de arquivos (partio). Exemplo:
$ cd ~/exercicios/ln/ $ ls -li total 8 554848 -rw-r--r-- 1 enunes uniararas 0 439830 drwxr-xr-x 3 enunes uniararas 4096 439833 drwxr-xr-x 2 enunes uniararas 4096 554850 lrwxrwxrwx 1 enunes uniararas arquivo1 $ ln arquivo1 hardlink1 $ ls -li total 8 554848 -rw-r--r-- 2 enunes uniararas 0 439830 drwxr-xr-x 3 enunes uniararas 4096 439833 drwxr-xr-x 2 enunes uniararas 4096 554848 -rw-r--r-- 2 enunes uniararas 0 554850 lrwxrwxrwx 1 enunes uniararas arquivo1
2006-10-28 17:29 arquivo1 2006-10-28 17:30 dir1 2006-10-28 17:30 dir2 8 2006-10-28 17:41 link1 ->
2006-10-28 17:29 arquivo1 2006-10-28 17:30 dir1 2006-10-28 17:30 dir2 2006-10-28 17:29 hardlink1 8 2006-10-28 17:41 link1 ->
Criado um link do arquivo arquivo1 para hardlink1. Repare que o inode deles so idnticos (destacados em negrito). Isso significa que so exatamente os mesmos arquivos.
___________________________________________________________________________ Pg. 78
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Neste captulo aprenderemos a utilizar as ferramentas para gerenciar usurios e grupos do sistema. Tarefa crucial em um ambiente de administrao Linux.
/etc/passwd
Esse arquivo contm uma lista em modo texto de todos os usurios cadastrados no sistema, um por linha, onde cada linha se divide em sete campos. O caractere : divide os campos de cada linha. Segue um exemplo de uma linha do arquivo /etc/passwd :
erivelton:x:1000:1000:Erivelton R. Nunes,,,:/home/erivelton:/bin/bash
O primeiro campo (erivelton) o nome do usurio. O segundo campo (x) a senha criptografada do usurio. Sempre quando esse campo contiver apenas a letra x, significa que o sistema est utilizando senhas sombreadas (Shadow Passwords), ou seja, no est armazenando as senhas nesse arquivo, e sim no /etc/shadow, visto mais adiante. Os campos 3 e 4 Mostram o UID e GID do usurio, respectivamente. O quinto campo chamado GECOS, e armazena informaes adicionais sobre o usurio, divididas com , dentro do campo. Informaes que podem ser o Nome Completo do Usurio, telefones, nmero da sala, etc. O sexto campo define qual ser o diretrio base do usurio (diretrio home). No exemplo, o diretrio base do usurio /home/erivelton. E finalmente, o stimo e ltimo campo define qual ser o interpretador de comandos (shell) do usurio. Nesse caso o shell do usurio /bin/bash. Quando o usurio erivelton efetuar login no sistema, ser executado o comando /bin/bash, devido a isso que aberto um bash logo aps o login. ___________________________________________________________________________ Pg. 79
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
/etc/shadow
Esse arquivo somente utilizado quando Senhas Sombreadas (Shadow Passwords) esto um uso no sistema. Senhas Sombreadas so usadas nas distribuies atuais e a muito tempo, pois oferecem mais segurana guardando a senha em um arquivo que no pode ser lido por usurios comuns no sistema (o /etc/passwd pode ser lido por todos). O /etc/shadow segue o mesmo formato de diviso do /etc/passwd, porm contm 9 campos.
erivelton:$1$cTdn0tUz$Ck447Zu3nMzo1bPXWQq3g.:12708:0:99999:7:::
Os campos esto divididos da seguinte forma: 1 Nome do usurio: 2 Senha criptografada. 3 Data da ltima troca de senha (Contada em dias corridos desde 01/01/1970). 4 Tempo mnimo de dias que a senha deve permanecer inalterada. 5 Tempo mximo de dias que o usurio pode ficar com a mesma senha. 6 Com quantos dias de antecedncia o sistema deve avisar que a senha ir expirar. 7 Nmero de dias de inatividade em que o sistema deve considerar o usurio bloqueado. 8 Uma data para a expirao automtica da conta. Utiliza o mesmo formato do campo 3. 9 Esse ltimo campo est reservado para uso futuro.
/etc/group
neste arquivo que so armazenados todos os grupos armazenados no sistema. Esse arquivo tambm segue o mesmo formato que o /etc/passwd, mas cada linha contm apenas 4 campos. Conforme abaixo:
uniararas:x:1410:erivelton,fulano,beltrano
O primeiro campo o nome do grupo, o segundo a senha do grupo, seguido do GID do grupo. O ltimo campo, quase sempre vazio, a lista, separada por vrgula, dos usurios que tambm pertencem a esse grupo.
___________________________________________________________________________ Pg. 80
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
/etc/gshadow
O arquivo gshadow armazena informaes de administradores e senhas de grupos.
games:*::
O primeiro campo o nome do grupo; O segundo a senha do grupo, como no est definida, recebe o valor de *; O terceiro campo armazena os nomes dos administradores desse grupo (Administradores de grupos sero explicados adiante), separados por vrgula; O ltimo campo te a mesma funo do ltimo campo do arquivo /etc/group.
Gerenciamento de usurios
Existem diversas formas de gerenciarmos usurios do sistema. Em qualquer uma delas, o objetivo gerenciar as entradas adequadas dos arquivos /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow. Adicionar as entradas manualmente editando esses arquivos uma tarefa difcil e perigosa, pois est mais propensa a erros. Por isso existem alguns comandos especificamente designados para gerenciar essas entradas dos respectivos arquivos. Veremos esses comandos a seguir.
O useradd trabalha de dois modos. O primeiro modo adiciona o usurio com as opes especficas. O segundo modo ativado quando a opo -D (Defaults) habilitada, e serve para visualizar e definir os padres para criao dos usurios. Tabela de parmetros Informa qual deve ser o UID do usurio. Se omitido, o sistema utiliza o -u uid prximo disponvel. -o Permite criar usurio com UID duplicado (Usurio Clonado) -g grupo Especifica qual ser o grupo principal do Usurio. Algumas distribuies aderem ao sistema criado pela RedHat, chamado UPG (Unix Private Group), que cria um grupo com o mesmo nome do usurio, no qual somente determinado usurio pertence ao grupo. Informando esse parmetro estamos evitando que o sistema crie um grupo no esquema UPG, mas o grupo no qual informarmos j deve previamente ___________________________________________________________________________ Pg. 81
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes existir. Especifica a quais grupos secundrios esse usurio deve pertencer Especifica qual ser o diretrio base do usurio. Especifica qual ser o shell do usurio. Adiciona informaes no campo GECOS do arquivo /etc/passwd. O sistema criar um diretrio base para o usurio caso ele no exista (comportamento padro). O contedo do novo diretrio ser exatamente o mesmo que o diretrio /etc/skel, que, por sua vez, serve como um diretrio de perfil para novos usurios criados no sistema. Especifica uma pasta de template (perfil) alternativa ao /etc/skel para o usurio a ser criado. Essa opo s vlida junto com a opo -m. Especifica o nmero de dias em que a senha expire at que a conta seja permanentemente desabilitada. O valor 0 expira a senha assim que a conta houver expirado. O valor -1 desabilita essa caracterstica (padro). Especifica uma data na qual a conta ir expirar. o Formato deve ser AAAA-MM-DD, por exemplo: 2006-11-01 seria 01 de novembro de 2006. Especifica a senha criptografada. Intil nos dias de hoje, pois existem comandos especficos para gerenciar as senhas. Se utilizada sem nenhum outro parmetro serve para visualizar os padres atuais para criao dos usurios. Se ativada em conjunto com as opes -g, -b, -s, -f ou -e possvel modificar o valor padro de grupo, diretrio base (home), shell, inativo e expirao, respectivamente.
-D
Exemplo A:
# useradd -G users,audio -d /home/uniararas -m -c "Uniararas LinuxCenter" aluno
O comando acima adicionou o usurio aluno ao sistema, pertencendo aos grupos users e audio (esses grupos j existiam). A linha no arquivo /etc/passwd ficou assim:
aluno:x:10092:100:Uniararas LinuxCenter:/home/uniararas:/bin/bash
Exemplo B:
# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= shell= SKEL=/etc/skel # useradd -D -s /bin/sh # useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= shell=/bin/sh
___________________________________________________________________________ Pg. 82
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
SKEL=/etc/skel
Modificamos o grupo padro para novos usurios para o UID 29, que em nosso sistema referese ao grupo audio.
Tabela de parmetros Serve para trocar o nome do usurio (campo de comentrio -f no arquivo /etc/passwd). Age como o comando chfn, visto adiante. Age como o comando chsh, viso adiante. Serve para modificar o shell do -s usurio -l Trava a conta do usurio. (lock) -u Destrava a conta do usurio. (unlock) -d Deleta a senha do usurio (Deixa em Branco). -S Mostra o status da conta de usurio. (Data de expirao, etc...) -e Expira imediatamente a senha do usurio.
Troca de Senhas
Quando um usurio aciona o comando passwd para trocar a senha, o usurio questionado a si mesmo quanto a senha atual (caso exista). A senha digitada ento criptografada e comparada com a senha criptografada j existente no sistema. O usurio s tem uma chance de inserir a senha correta. Somente o superusurio root pode trocar senhas sem antes confirmar a anterior, pois isso permite que ele possa redefinir senhas esquecidas, por exemplo. Logo aps a senha antiga ser validada, informaes sobre a idade da senha so verificadas no sistema para definir se o usurio tem permisso de trocar a senha naquele momento. Em caso negativo, o passwd se recusa a trocar a senha. Em caso positivo, o usurio ento questionado sobre a nova senha, que aps digitada, verificada quanto a complexibilidade. No geral, senhas devem consistir em 6 a 8 caracteres incluindo um ou mais do seguinte: Letras maisculas; Letras minsculas;
___________________________________________________________________________ Pg. 83
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Nmeros de 0 a 9; Caracteres de pontuao (Ex.: ~,. !)
O passwd ir rejeitar qualquer senha que no atender aos requisitos. Se a senha for aceita, o usurio ento questionado para repetir a mesma senha, que ento comparada com a senha nova para evitar que erros de digitao possam impedir que determinado usurio acesse o sistema. Cabe ressaltar que o passwd pode modificar a ordem de verificao em alguns sistemas, mas os passos so os mesmos. Exemplo A:
# passwd aluno Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Primeiramente definimos uma senha para o usurio aluno. Como o usurio root que est definindo a senha para o usurio aluno, a checagem de complexibilidade da senha no feita. No exemplo definimos a senha 123 (no aparece enquanto digitamos, normal). Exemplo B:
$ passwd Changing password for aluno (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Agora, aps logarmos como o usurio aluno, tentamos trocar sua senha. repare que foi necessrio digitar a senha atual (123). Na nova senha, escolhemos uma com boa complexibilidade: zxasQW12, sem as aspas. Exemplo C:
# passwd -de aluno Password changed.
Deletamos e expiramos a senha para o usurio aluno, isso ir requerer que o usurio cadastre uma nova senha na prxima tentativa de login. Muito cuidado com isso, utilize somente em casos extremos em que no exista outra alternativa, pois caracteriza uma grande falha de segurana.
___________________________________________________________________________ Pg. 84
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Sintaxe:
userdel [-r] usuario
O nico parmetro disponvel para o userdel o -r, que instrui ao userdel para remover tambm todos os arquivos do usurio (na verdade o comando remove a pasta home do usurio). Por padro (sem a opo -r), o userdel mantm os arquivos do usurio. Exemplo:
# ls -ld /home/aluno/ drwxr-xr-x 2 aluno users 136 Nov 3 11:43 /home/aluno/ # userdel -r aluno userdel: user aluno is currently logged in
O sistema apresentou um erro ao tentar remover o usurio aluno, que estava logado em outro terminal. No possvel remover usurios que estejam logados no momento.
# userdel -r aluno # ls -ld /home/aluno/ ls: /home/aluno/: No such file or directory
Aps o usurio efetuar logoff do terminal em que estava j possvel remov-lo. Repare que foram removidos tambm seus arquivos pessoais.
O comando chage age de duas formas. Da primeira forma ele define as opes de expirao de senha do usurio, da segunda forma (com a opo -l) ele mostra as opes atualmente definidas para determinado usurio. Tabela de parmetros -m mim_dias Intervalo mnimo de dias que o usurio pode trocar a senha. Nmero mximo de dias que o usurio pode permanecer com -M max_dias a mesma senha. Especifica qual a data da ltima alterao de senha do usurio. O valor a ser especificado para ultimo_dia o nmero de dias desde 01/01/1970, ou -d ultimo_dia uma data no formato AAAA-MM-DD (Ex: 2006-12-15 significa dia 15 de dezembro de 2006). Nmero de dias de inatividade (Sem efetuar Login no sistema) que a -I inativo senha automaticamente bloqueada. ___________________________________________________________________________ Pg. 85
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes -E data_expira -W dias_aviso -l Exemplo A:
# chage -l huguinho Minimum: 0 Maximum: 99999 Warning: 7 Inactive: -1 Last Change: Nov 10, 2006 Password Expires: Never Password Inactive: Never Account Expires: Never # chage huguinho Changing the aging information for huguinho Enter the new value, or press ENTER for the default Minimum Password Age [0]: 2 Maximum Password Age [99999]: 90 Last Password Change (YYYY-MM-DD) [2006-11-10]: Password Expiration Warning [7]: 5 Password Inactive [-1]: 30 Account Expiration Date (YYYY-MM-DD) [1969-12-31]: 2006-12-15 # chage -l huguinho Minimum: 2 Maximum: 90 Warning: 5 Inactive: 30 Last Change: Nov 10, 2006 Password Expires: Feb 08, 2005 Password Inactive: Mar 10, 2005 Account Expires: Dec 15, 2006
Especifica at qual data a conta do usurio ser vlida. til para usurios de funcionrios temporrios. O valor para data_expira segue o mesmo padro que a opo -d. Configura com quantos dias de antecedncia determinado usurio ser avisado sobre a expirao de sua senha. Lista as opes atuais de expirao de senha.
Repare em como ficaram os valores de expirao de senha aps as modificaes e associe aos campos adequados. Exemplo B:
# chage -m2 -M90 -W5 -I30 -E2006-12-15 huguinho
Uma outra forma de se chegar no mesmo resultado do exemplo anterior. Quando uma conta bloqueada por motivo de expirao de senha, somente o administrador (root) capaz de desbloque-la utilizando novos valores para o chage e, quando necessrio, desbloqueando a conta com o comando passwd -u usuario.
___________________________________________________________________________ Pg. 86
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Tabela de parmetros -f nome_completo Configura o Nome completo do Usurio (Ex: Maria de Jesus) -r sala Nmero da sala em que ele trabalha -w fone_trabalho Telefone Comercial -h fone_casa Telefone Residencial -o outros Outras Informaes e Observaes Exemplo A:
# chfn huguinho Changing the user information for huguinho Enter the new value, or press ENTER for the default Full Name []: Hugo da Silva Sauro Room Number []: 5 Work Phone []: 5555555 Home Phone []: 6666666 Other []: Usurio de testes da Uniararas # finger huguinho Login: huguinho Name: Hugo da Silva Sauro Directory: /home/huguinho Shell: /bin/sh Office: 5, 555-5555 Home Phone: 666-6666 Last login Thu Nov 11 14:35 (BRST) on tty2 No mail. No Plan.
As informaes definidas com chfn podem ser consultadas com o comando finger, conforme o exemplo. O comando finger no vem instalado por padro em algumas distribuies Linux. No Debian, para instal-lo, digite como usurio root: apt-get install finger
___________________________________________________________________________ Pg. 87
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo B:
chfn -f "Hugo da Silva Sauro" -r 5 -w 5555555 -h 6666666 -o "Usurio de testes da Uniararas" huguinho
Quando o comando invocado por um usurio normal, o novo shell informado deve estar listado no arquivo /etc/shells. Se for invocado pelo root e o comando no existir nesse arquivo, o comando automaticamente adicionado no arquivo. Exemplo A:
# chsh huguinho Changing the login shell for huguinho Enter the new value, or press return for the default Login Shel [/bin/sh]: /bin/bash
___________________________________________________________________________ Pg. 88
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Sintaxe:
pwck [-sr] [passwd shadow]
A opo -s serve para ordenar os usurios nos arquivos /etc/passwd e /etc/shadow com base em seu UID. A outra opo (-r) no pode ser utilizada junto com -s, e serve para ativar o modo somente-leitura do pwck, que apenas mostra o que est errado mas nunca modifica nenhum arquivo. Se especificarmos uma das opes passwd ou shadow, o pwck somente agir nos respectivos arquivos. Exemplo:
# pwck user lp: directory /var/spool/lpd does not exist user news: directory /var/spool/news does not exist user uucp: directory /var/spool/uucp does not exist user postgres: directory /var/lib/postgres does not exist user list: directory /var/list does not exist user irc: directory /var/run/ircd does not exist user gnats: directory /var/lib/gnats does not exist user grpadm: directory /home/grpadm does not exist user huguinho: directory /home/huguinho does not exist user zezinho: directory /home/zezinho does not exist user nobody: directory /nonexistent does not exist pwck: no changes
O comando pwck detectou que os diretrios home de alguns usurios no existiam, mas no efetuou nenhuma modificao no sistema, somente alertou.
___________________________________________________________________________ Pg. 89
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo A:
# id huguinho uid=10095(huguinho) gid=100(users) groups=100(users),1521(grupo) # usermod -l donald huguinho # id huguinho id: huguinho: No such user # id donald uid=10095(donald) gid=100(users) groups=100(users),1521(grupo) # usermod -l huguinho donald # id huguinho uid=10095(huguinho) gid=100(users) groups=100(users),1521(grupo)
Utilizamos o usermod para renomear o usurio huguinho para donald; Verificado que somente o nome do usurio mudou, em seguida renomeamos novamente o usurio para o nome original. Exemplo B:
# id huguinho uid=10095(huguinho) gid=100(users) groups=100(users),1521(grupo) # usermod -u 10094 huguinho # id huguinho uid=10094(huguinho) gid=100(users) groups=100(users),1521(grupo)
Modificado o uid do usurio huguinho de 10095 para 10094. Lembrando que o novo uid no pode estar atribudo a nenhum usurio j existente. Uma boa forma de memorizar comandos como esses associando sua utilizao. Por exemplo: useradd = user + add (Adicionar Usurio), usermod = user + mod (Modificar usurio).
Gerenciamento de grupos
Gerenciar grupos de usurios uma tarefa imprescindvel no dia a dia de um administrador Linux. Tarefas como adicionar e remover grupos, definir a quais grupos determinados usurios devem participar, determinar administradores de grupos, etc. essencial uma boa compreenso sobre o funcionamento dos grupos de usurios no Linux, pois o correto funcionamento do sistema depende de grande coerncia no que tange gerenciamento de grupos e usurios.
___________________________________________________________________________ Pg. 90
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Sintaxe:
id [parmetro]... [usurio]
Tabela de parmetros Mostra somente o GID. Se utilizado em conjunto com o parmetro -n, -g mostra o nome do grupo. Mostra todos os grupos (GIDs) que o usurio pertence. Se utilizado em -G conjunto com o parmetro -n, mostra os nomes dos grupos. O primeiro grupo na listagem o grupo principal, os demais so os secundrios. Mostra nomes ao invs de nmeros (UIDs e GIDs) na sada do -n comando. Mostra somente o UID. Se utilizado em conjunto com o parmetro -n, -u mostra o nome do usurio. Exemplos:
$ id uid=1052(enunes)gid=1001(uniararas)grupos=6(disk),24(cdrom),25(floppy),29( audio),1001(uniararas), 1006(suporte),1507(apostilas) $ id -G 1001 6 24 25 29 1006 1507 $ id -Gn uniararas disk cdrom floppy audio suporte apostilas $ id root uid=0(root) gid=0(root) grupos=0(root)
Exemplo:
$ groupadd -g 1037 uniararas
O comando acima cria um novo grupo no sistema, com GID 1037. Caso o UID (-g) seja omitido, o sistema escolhe automaticamente o prximo disponvel. A opo -o serve para forar a utilizao daquele gid, mesmo que ele j esteja atribudo a outro grupo.
___________________________________________________________________________ Pg. 91
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Exemplo:
# useradd -m aluno # id aluno uid=10092(aluno) gid=100(users) groups=100(users) # groupadd uniararas # gpasswd -a aluno uniararas Adding user aluno to group uniararas # id aluno uid=10092(aluno) gid=100(users) groups=100(users),1001(uniararas)
Aps adicionado o usurio aluno e o grupo uniararas, utilizamos o comando gpasswd para adicionar o usurio recm-criado ao grupo.
Exemplo:
# id aluno uid=10092(aluno) gid=100(users) groups=100(users),1001(uniararas) # gpasswd -d aluno uniararas Removing user aluno from group uniararas
Exemplo:
# groupadd linux # gpasswd -a aluno linux Adding user aluno to group linux # id aluno uid=10092(aluno) gid=100(users) groups=100(users),1511(linux) # groupmod -g 1520 -n pinguim linux # id aluno uid=10092(aluno) gid=100(users) groups=100(users),1520(pinguim)
___________________________________________________________________________ Pg. 92
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes No exemplo, primeiro criamos o grupo linux e adicionamos o usurio aluno nele. O sistema automaticamente atribuiu um GID para o grupo (1511, no exemplo). Utilizamos o comando groupmod para trocar o GID e o nome do grupo linux.
A opo -A serve para nomear um usurio do sistema como administrador do grupo. A opo -M faz o mesmo, porm adiciona o usurio como membro do grupo tambm. Exemplo:
# useradd -m admgrupo # id admgrupo uid=10094(admgrupo) gid=100(users) groups=100(users) # groupadd grupo # gpasswd -A admgrupo grupo # useradd -m huguinho # su - admgrupo $ gpasswd -a huguinho grupo Adding user huguinho to group grupo $ id huguinho uid=10095(huguinho) gid=100(users) groups=100(users),1521(grupo) $ gpasswd -d huguinho grupo Removing user huguinho from group grupo $ id huguinho uid=10095(huguinho) gid=100(users) groups=100(users)
No exemplo foi definido que o usurio admgrupo administrador do grupo grupo. Para remover esse privilgio do usurio, preciso remover o nome do usurio em questo do terceiro campo do arquivo /etc/gshadow.
O parmetro - instrui ao comando para carregar todas as variveis de ambiente do shell atual. ___________________________________________________________________________ Pg. 93
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo A:
$ id uid=10096(admgrupo) gid=100(users) groups=100(users) $ gpasswd grupo Changing the password for group grupo New Password: Re-enter new password: $ su - huguinho Password: $ id uid=10095(huguinho) gid=100(users) groups=100(users),1521(grupo) $ newgrp grupo $ id uid=10095(huguinho) gid=1521(grupo) groups=100(users),1521(grupo) $ exit
Nesse exemplo, foi definida uma senha para o grupo; Como o usurio huguinho pertence ao grupo grupo, no foi necessrio digitar uma senha para o grupo. Quando acionamos o comando newgrp grupo, foi aberto um novo shell atrelado ao shell atual. Exemplo B:
# useradd -m zezinho # id zezinho uid=10097(zezinho) gid=100(users) groups=100(users) # su - zezinho $ newgrp - grupo Password: $ id uid=10097(zezinho) gid=1521(grupo) groups=100(users),1521(grupo) $ exit
Adicionamos o usurio zezinho, que por padro pertence somente ao grupo users. Como foi definida uma senha para o grupo grupo antes, o usurio zezinho pode utilizar o comando newgrp para temporariamente fazer parte do grupo. Para isso lhe foi requisitada a senha do grupo, que foi cadastrada no exemplo anterior com o comando gpasswd grupo.
O nmero correto de campos; Nomes de grupos duplicados; Uma lista vlida de membros e administradores.
___________________________________________________________________________ Pg. 94
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Sintaxe:
grpck [-r] [group shadow]
A opo -r diz para o grpck efetuar os testes em modo somente-leitura, ou seja, no altera nenhum arquivo, somente mostra os problemas na tela. O padro do comando verificar ambos os arquivos /etc/group e /etc/shadow; Para forar ele verificar somente um deles, basta especificar somente o nome de um dos arquivos como parmetro. Para o Exemplo abaixo, partimos do princpio de que exista um problema de nome de grupo duplicado no arquivo /etc/group, conforme abaixo:
grupo:!:1521:huguinho grupo:!:1522:
Exemplo:
# grpck duplicate group entry delete line `grupo:!:1521:huguinho'? No duplicate group entry delete line `grupo:!:1522:'? Yes grpck: the files have been updated
Respondemos No para a primeira pergunta e Yes para a segunda porque a primeira pergunta referenciava a linha correta (que no devemos apagar).
___________________________________________________________________________ Pg. 95
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
As permisses so um dos aspectos mais importantes do Linux (na verdade, de todos os sistemas baseados em Unix). Elas so usadas para vrios fins, mas servem principalmente para proteger o sistema e os arquivos dos usurios. Manipular as permisses algo muito essencial. Mas tal complexidade no deve ser interpretada como dificuldade e sim como grande variedade de configuraes, o que permite criar vrios tipos de proteo de arquivos e diretrios. Como voc deve saber, somente o super-usurio (root) tem aes irrestritas no sistema, justamente por ser o usurio responsvel pela configurao, administrao e manuteno do Linux. Cabe a ele por exemplo, determinar o que cada usurio pode executar, criar, modificar, etc. Naturalmente, a forma usada para determinar o que o usurio pode fazer a determinao de permisses.
Conceitos
Permisso o ato de dar liberdade, poder ou licena para; consentir; autorizar a fazer uso de; no obstar; tolerar. Esta justamente a inteno das permisses dos arquivos no sistema: limitar o acesso aos arquivos, de acordo com a importncia dos mesmos e com o desejo do seu dono, de forma a manter a segurana e integridade do sistema. Como j foi dito, cada arquivo possui, associado a ele, um conjunto de atributos e um deles so as permisses relativas a ele prprio. Estas permisses podem ser entendidas como um nmero de 12 bits onde, obviamente, cada bit pode variar entre zero e um, indicando a ausncia ou presena de uma permisso especfica.
A primeira diviso que pode ser feita neste nmero de 12 bits, separa trs bits para determinar os atributos do arquivo, seo 3, e o restante -9 bits- para a determinao da proteo do arquivo.
___________________________________________________________________________ Pg. 96
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Bits de atributo
Os bits de atributo definem um controle adicional s permisses de proteo do arquivo. Os atributos de um arquivo so trs e cada um deles desempenha uma funo bem especfica. O primeiro conhecido como bit setuid, que, se estiver ativado, ou seja, com valor igual a um, faz com que o arquivo seja executado como se o fosse pelo seu dono, no faz sentido para diretrios. O segundo atributo o bit setgid, que, se estiver ativado, faz com que o arquivo seja executado como se o fosse por um membro do grupo do seu dono, ou seja, todo arquivo criado em um diretrio com o bit setgid ativado, criado com o mesmo grupo do diretrio. Por fim, o terceiro atributo conhecido como bit sticky e, se estiver ligado, faz com que o arquivo possa ser apagado apenas pelo seu dono. Um grande exemplo da utilizao deste bit de atributo est no diretrio /tmp, onde todos os usurios cadastrados no sistema podem utilizar o diretrio livremente. Contudo, nenhum usurio pode apag-lo, visto que ele pertence ao superusurio root e possui o seu bit sticky ligado. Sendo assim, pode ser apagado apenas pelo usurio root. Desta maneira, pode-se reescrever os bits de atributo com sua notao simblica, onde, da esquerda para a direita, os bits podem substitudos por letras que os simbolizam. O primeiro bit pode ser substitudo por um 's', que simboliza o bit setuid, o segundo bit pode ser substitudo por outro 's', que simboliza o bit setgid e o terceiro bit, por um 't', que simboliza o bit sticky, assim como mostrado na figura abaixo.
Bits de proteo
Os bits de proteo definem as protees bsicas de cada arquivo (leitura -read-, escrita -write- e execuo -execution-). A ativao, ou no, de cada um destes bits define quem pode visualizar -ler- o arquivo, quem pode alter-lo/apag-lo -escrever- e/ou execut-lo -executar-. Assim como os bits de atributo, h uma subdiviso destes bits em trs grupos de trs bits cada, o que define as permisses para o dono do arquivo (primeiros trs bits, da esquerda para a direita), as permisses para os membros do mesmo grupo do dono do arquivo (os trs bits da seqncia) e as permisses para os outros usurios do sistema (ltimos trs bits). Isto pode ser facilmente visualizado na figura abaixo.
___________________________________________________________________________ Pg. 97
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Cada bit, de cada subdiviso, determina se o usurio que a subdiviso representa pode ler, escrever ou executar o arquivo. Sendo assim, pode-se utilizar as letras 'r' -leitura-, 'w' -escrita- e 'x' -execuo- para representar, simbolicamente estes bits, como na figura abaixo.
Notaes
At agora, o leitor foi apresentado a duas formas de notao das permisses -duas formas distintas de representar as permisses-, a notao binria, que identifica as permisses como um nmero de 12 bits, onde cada bit representa uma permisso especfica -direito do dono ler o arquivo, direito de membros do grupo do dono alterarem o arquivo, privilgio para apenas o dono excluir o arquivo e etc.-. Assim tem-se um nmero como 000000000000 representando as permisses. Uma outra notao vista foi a simblica, que em vez de utilizar bits, utiliza caracteres para representar cada permisso especfica, gerando algo como sstrwxrwxrwx. Entretanto, representar permisses desta maneira muito entediante para as pessoas, alm de ser muito suscetvel a erros. Quanto mais caracteres para escrever, maior a possibilidade de errar. Por isso, resolveu-se criar um tipo de notao onde se pudesse representar as mesmas permisses, mas utilizando-se de menos caracteres. Foi a que surgiu a notao octal. Como j foi visto, a representao das permisses utilizando a notao binria, logicamente divide as permisses em trs bits para atributos especiais e nove para os atributos de proteo. Por sua vez, os atributos de proteo so subdivididos em trs grupos de trs bits cada, representando os privilgios para o dono do arquivo, para os membros do mesmo grupo do dono do arquivo e para os outros usurios do sistema. Assim, tem-se um nmero de 12 bits que representa as permisses dividido em quatro grupos de trs bits (000000000000 -> 000 000 000 000). Ora, basta ter alguma noo de converso de bases entre nmeros, para saber que trs bits a quantidade exata de bits necessria para se representar nmeros na base octal (tambm chamada de base oito, porque utiliza oito algarismos para representar seus dgitos de zero a sete). Assim sendo, em vez de se representar as permisses na notao binria como quatro seqncias de trs bits -12 dgitos-, pode-se representar as mesmas permisses na notao octal, que utiliza um dgito para cada uma das quatro seqncias, totalizando em quatro dgitos para se representar todas as permisses. Desta forma, em vez de se utilizar de 12 algarismos para representar as permisses, pode-se utilizar apenas quatro, o que diminui a probabilidade de erros. Assim, as permisses (001 111 100 100) na base dois e (1 7 4 4) na base oito so logicamente iguais - basta converter cada seqncia de trs bits da base dois para a base oito. importante que se entenda bem cada uma destas notaes, pois cada uma tem uma utilidade. A notao binria boa para se entender o funcionamento das permisses, a notao simblica boa para se representar as permisses de um arquivo e a notao octal boa para se manipular permisses de arquivos. ___________________________________________________________________________ Pg. 98
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes As tabelas a seguir mostram a representao das permisses em cada uma das trs notaes vistas. A tabela 01 mostra os bits de atributo, enquanto a tabela 02 mostra os bits de proteo -como os trs grupos de proteo so representados da mesma forma, no necessrio ter uma tabela para cada grupo.
Tipos de arquivo
Pelo fato do Linux representar tudo como se fosse um arquivo, surgiu a necessidade de se dividir os arquivos em tipos distintos. Assim sendo, surgiram os sete tipos de arquivos que existem atualmente no Linux. So eles: Arquivos comum . So, por exemplo, arquivos de texto, arquivos de dados e arquivos binrios. Diretrios So arquivos que contm nomes de outros arquivos que esto armazenados ou organizados em grupos. Links So arquivos que fazem referncia a outros arquivos dentro do sistema de arquivos. So subdivididos em hard (diretos) e soft (simblicos) links. Caractere So arquivos que representam dispositivos fsicos -hardware- que podem ser acessados seqencialmente, como portas paralelas e/ou seriais. Na verdade, so uma subdiviso dos device files -arquivos de dispositivos. Bloco So arquivos que representam dispositivos fsicos que podem ser acessados em blocos de bytes, como o HD. Assim como os arquivos do tipo caractere, so uma subdiviso dos arquivos de dispositivos. Sockets So arquivos utilizados para comunicao entre processos. Pipes Tambm so arquivos utilizados para a comunicao entre processos. Normalmente, estes sete tipos so associados, cada um a um caractere, para sua identificao. So eles: Arquivos comuns (-), diretrios (d), links (l), caractere (c), bloco (b), sockets (s) e pipes (p). A figura abaixo mostra uma tabela com os caracteres designados para cada tipo de arquivo.
___________________________________________________________________________ Pg. 99
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Repare na sada do comando ls -l, que mostra as permisses dos arquivos na primeira coluna. Esses primeiros 10 caracteres que aparecem (-rw-r--r-- por exemplo) so os caracteres que demonstram as permisses atuais de cada arquivo/diretrio. Observe a Linha abaixo, onde as permisses aparecem em destaque:
Exemplo A:
$ ls -l apostila.sxw -rwxrw-r-- 1 erivelton office 183627 2006-11-01 13:09 apostila.sxw
O arquivo apostila.sxw um arquivo comum, pertence ao usurio erivelton e ao grupo office. O usurio erivelton pode ler, gravar e executar o arquivo ( rwx ); quaisquer outros usurios que pertenam ao grupo office podem ler e gravar no arquivo ( rw- ); Portanto, qualquer outro usurio que no seja o dono do arquivo (erivelton) nem pertena ao grupo office s ter permisses de ler o arquivo ( r ). Exemplo B:
$ ls -ld /etc drwxr-xr-x 96 root root 5384 2006-11-01 11:01 /etc
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Podemos verificar que o arquivo etc na verdade um diretrio ( d ); Pertence ao usurio e grupo root; Tem permisses de leitura, gravao e execuo ( rwx )para o usurio dono; Leitura e execuo ( r-x ) para o grupo dono e quaisquer outros usurios. Nota: Mesmo que as permisses de arquivos restrinjam o usurio root, elas no tm efeito p/ ele.
Tabela de parmetros Verbose. Mostra informaes sobre as modificaes efetuadas. Mesmo que -v as permisses tenham se mantido. Changes. Mesmo que a opo -v, porm s mostra informaes se as permisses -c tiverem sido modificadas. -R Recursive. Aplica as permisses recursivamente O chmod trabalha com dois modos de permisses: simblico e octal. Esses dois modos no mudam a Sintaxe do comando mostrada anteriormente, pois s agem no MODO (MODO e MODO-OCTAL) das permisses. Antes de estudar os dois modos separadamente, criaremos o ambiente de testes. Ambiente:
$ mkdir -p ~/exercicios/chmod; cd ~/exercicios/chmod $ mkdir -p dir1/dir2 $ touch arq1 dir1/dir2/arq2
Com base nisso, basta unir as permisses com as partes afetadas. Para estabelecer essa unio, ___________________________________________________________________________ Pg. 101
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes utilizamos os sinais de +, - e = (adiciona, remove ou iguala permisses, respectivamente). Exemplo A:
$ ls -l arq1 -rw-r--r-- 1 erivelton erivelton 0 2006-11-01 15:40 arq1 $ chmod u-w arq1 $ ls -l arq1 -r--r--r-- 1 erivelton erivelton 0 2006-11-01 15:40 arq1
O arquivo arq1 teve a permisso de escrita ( w ) removida para o usurio ( u ) dono do arquivo, ou seja: o u indica que estamos alterando permisses para o usurio, o sinal de - indica que estamos removendo permisses, e em seguida, o w significa permisso de escrita. Exemplo B:
$ ls -l arq1 -r--r--r-- 1 erivelton erivelton 0 2006-11-01 15:40 arq1 $ chmod +x arq1 $ ls -l arq1 -r-xr-xr-x 1 erivelton erivelton 0 2006-11-01 15:40 arq1
Adicionada permisso de execuo para todos os campos (usurio, grupo e outros), pois no foi especificada qual parte seria afetada pelo comando. Exemplo C:
$ ls -l arq1 -r-xr-xr-x 1 erivelton erivelton 0 2006-11-01 15:40 arq1 $ chmod go-x,ug+w arq1 $ ls -l arq1 -rwxrw-r-- 1 erivelton erivelton 0 2006-11-01 15:40 arq1
Na mesma linha de comando, foi removida a permisso de execuo para grupo e outros e tambm foi adicionada a permisso de escrita para o usurio e grupo. Exemplo D:
$ ls -ld dir1 drwxr-xr-x 3 erivelton $ ls -l dir1/dir2/arq2 -rw-r--r-- 1 erivelton $ chmod -R a=rx dir1 $ ls -ld dir1 dr-xr-xr-x 3 erivelton $ ls -l dir1/dir2/arq2 -r-xr-xr-x 1 erivelton erivelton 72 2006-11-01 16:03 dir1 erivelton 0 2006-11-01 15:40 dir1/dir2/arq2 erivelton 72 2006-11-01 16:03 dir1 erivelton 0 2006-11-01 15:40 dir1/dir2/arq2
Modificamos recursivamente (opo -R) as opes de usurio, grupo e outros ( a ) do diretrio dir1 para leitura e execuo ( rx ). Repare que, devido ao fato das permisses terem sido aplicadas recursivamente, o arquivo arq2, que fica em um subdiretrio abaixo de dir1 tambm recebeu as permisses. Exemplo E:
$ ls -l total 0 -rwxrw-r-- 1 erivelton erivelton 0 2006-11-01 15:40 arq1 dr-xr-xr-x 3 erivelton erivelton 72 2006-11-01 16:03 dir1 $ ls -l dir1
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
total 0 dr-xr-xr-x 2 erivelton erivelton 72 2006-11-01 16:03 dir2 $ chmod -x dir1 $ ls -l dir1 ls: dir1/dir2: Permisso negada total 0 $ cd dir1 bash: cd: dir1: Permisso negada $ chmod +x dir1 $ ls -l dir1 total 0 dr-xr-xr-x 2 erivelton erivelton 72 2006-11-01 16:03 dir2 $ cd dir1
O exemplo mostra que necessrio ter permisses de execuo para entrar ou listar o contedo de um diretrio. Isso acontece porque quando entramos em um diretrio, na verdade estamos executando o arquivo especial que o diretrio, que contm a lista de todos os arquivos e diretrios dentro dele. Sem a permisso de execuo no podemos entrar em um diretrio, somente o root rompe essas barreiras.
Dessa forma, se quisermos obter resultados especficos, basta somar o nmero de bits correspondente as permisses, conforme tabela a seguir: Permisso rwx rwr-x r--wx -w--x --Soma Octal 4+2+1=7 4+2+0=6 4+0+1=5 4+0+0=4 0+2+1=3 0+2+0=2 0+0+1=1 0+0+0=0
Por exemplo, para chegar ao resultado rwxr-xr--, utilizamos o modo 754 no chmod. Exemplo A:
$ chmod 750 arq1 $ ls -l arq1 -rwxr-x--- 1 erivelton erivelton 0 2006-11-01 15:40 arq1
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo B:
$ chmod 644 arq1 $ ls -l arq1 -rw-r--r-- 1 erivelton erivelton 0 2006-11-01 15:40 arq1
Pratique bastante permisses de acesso, pois so extremamente essenciais no dia a dia de um administrador de sistema e seu bom compreendimento evita algumas falhas de segurana.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Um exemplo para arquivo executvel com a propriedade SUID o arquivo /usr/bin/passwd. Ou seja, quando executamos o comando passwd com qualquer usurio normal, o processo executado com ID do usurio root ( como se o usurio root tivesse executado o comando passwd), pois somente o usurio root tem permisso para alterar o arquivo /etc/passwd.
# ls -lah /usr/bin/passwd -rwsr-xr-x 1 root root 27K 2006-04-03 10:37 /usr/bin/passwd
Aplicando SUID Aplicando a propriedade SUID em um arquivo executvel utilizando formato simblico (s):
# chmod u+s programa.sh # ls -lah programa.sh -rwsr-xr-x 1 root roberto 0 2006-09-26 22:57 programa.sh
Retirando SUID
# chmod u-s programa.sh # ls -lah programa.sh -rwxr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh
Procurando SUID Procurando a propriedade SUID em um arquivo executvel utilizando formato simblico (s):
# find /home/roberto -perm u=s /home/roberto/programa.sh
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo: Se no diretrio /home/roberto tem o grupo casa e tem o SGID habilitado, ento todos os arquivos dentro do diretrio /home/roberto sero criados com o grupo casa. Esta um importante atributo para um equipe, assumindo que todos os arquivos compartinhados devem ter o mesmo grupo. Aplicando SGID Aplicando a propriedade SGID em um diretrio executvel utilizando formato simblico (s):
# chmod g+s /home/equipe # ls -lah /home/equipe total 0 drwxr-sr-x 2 roberto equipe 48 2006-09-26 23:21 .
Retirando SGID
# chmod g-s /home/equipe # ls -lah /home/equipe total 0 drwxr-xr-x 2 roberto equipe 48 2006-09-26 23:21 .
Procurando SGID Procurando a propriedade SGID em um diretrio executvel utilizando formato simblico (s):
# find /home -perm /g=s /home/equipe
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Em diretrios, a propriedade Sticky impede que outros usurios deletem ou renomeam arquivos dos quais no so donos. Isso normalmente utilizado para aumentar a segurana, pois o diretrio estar em modo append-only ( somente incremente ). Sendo assim, somente o usurio que Dono do arquivo, poder deletar ou renomear os arquivos dentro de um diretrio com a propriedade Sticky aplicada. A permisso especial Sticky, pode ser especificada somente no campo outros usurios das permisses de acesso. Exemplo: No diretrio /tmp, todos os usurios devem ter acesso para que seus programas possam criar os arquivos temporrios, mas nenhum pode apagar arquivos dos outros. Ento interessante aplicar a propriedade Sticky no diretrio /tmp. Aplicando Sticky Aplicando a propriedade Sticky em um arquivo executvel utilizando formato octal (1)
# chmod 1750 programa_pesado.sh # ls -lah programa_pesado.sh -rwxr-x--T 1 root root 2,9M 2006-09-26 23:51 programa_pesado.sh
Retirando Sticky
# chmod o-t /tmp # ls -lah /tmp total 5,0K drwxrwxrwx 8 root root 264 2006-09-26 23:22 .
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Procurando Sticky Aplicando a propriedade Sticky em um diretrio utilizando simblico (t):
# find /home/roberto/ -perm /o=t /home/roberto/programa_pesado.sh
Tabela de parmetros -p Mostra a palavra umask antes do modo (sem muito sentido...) -S Utiliza o modo simblico de permisses (Igual no comando chmod) Ambiente:
$ mkdir ~/exercicios/umask; cd ~/exercicios/umask
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
$ umask 0022 $ touch arq1 $ ls -l total 0 -rw-r--r-- 1 erivelton erivelton 0 2006-11-01 18:42 arq1 $ umask 000 $ touch arq2 $ ls -l total 0 -rw-r--r-- 1 erivelton erivelton 0 2006-11-01 18:42 arq1 -rw-rw-rw- 1 erivelton erivelton 0 2006-11-01 18:42 arq2
Com o umask padro, o arquivo criado (arq1) recebeu permisses 644. Aps modificarmos o umask para 000 (anulando sua influncia), o arquivo criado (arq2) recebeu permisses 666. Exemplo B:
$ touch arq3 $ chmod -v 775 arq3 modo de `arq3' mudado para 0775 (rwxrwxr-x) $ umask 0022 $ cp arq3 arq4 $ ls -l total 0 -rw-r--r-- 1 erivelton erivelton 0 2006-11-01 -rw-rw-rw- 1 erivelton erivelton 0 2006-11-01 -rwxrwxr-x 1 erivelton erivelton 0 2006-11-01 -rwxr-xr-x 1 erivelton erivelton 0 2006-11-01
Repare que o umask (22) agiu na permisso do arquivo original (arq3 = 775) e o arquivo arq4 foi criado com permisses 755. preciso um pouco de ateno antes de escolher a umask, um valor mal escolhido pode causar problemas de acesso a arquivos, diretrios ou programas no sendo executados. O valor padro da umask na maioria das distribuies atuais 022. A umask de grande utilidade para programas que criam arquivos/diretrios temporrios, desta forma pode-se bloquear o acesso de outros usurios desde a criao do arquivo, evitando recorrer ao chmod.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Conforme visto anteriormente, existe uma camada entre o sistema operacional (kernel) e o usurio, que interpreta os comandos digitados e os passa para o kernel, e vice-versa. Essa camada recebe o nome de interpretador de comandos, ou shell. Um shell no Linux utiliza-se de dispositivos especiais de entrada e sada (Vistos na tabela adiante) para se comunicar com o usurio. Dessa mesma forma, programas tambm utilizam desse mtodo para interao com o usurio. Tecnicamente, o shell do Linux utiliza algum dispositivo de caracteres (/dev/tty*, /dev/pts/*, etc...) associado a 3 dispositivos especiais (stdin, stdout e stderr) estudados adiante para conseguir essa interao com o usurio. O linux conta com diversos interpretadores de comandos (shells), porm o mais utilizado nas distribuies o shell bash. O bash um relanamento de um antigo shell de UNIX, o sh. Bash significa Bourne Again Shell (Algo como O shell que nasceu novamente). Vale a pena lembrar que podem existir diversos interpretadores de comandos instalados no sistema operacional (Que tal uma olhada no arquivo /etc/shells?), e que podemos escolher qual shell ser o padro para determinado usurio com o comando chsh, visto anteriormente. Devido ao fato do shell bash ser o padro na grande maioria das distribuies, ele que estudaremos a seguir. Mesmo assim, muitas das caractersticas do bash existem em outros shells.
Redirecionamento
Tudo que visto no terminal formado com caracteres (por isso dispositivos de caracteres). Esses caracteres so resultado da sada de dados padro dos comandos executados ou do prprio shell. Mas os comandos no se limitam a enviar caracteres para a tela do terminal (Sada de dados padro), mas tambm podem (e devem) receber dados do terminal. Esse fluxo de caracteres pode fluir em 3 direes, conforme tabela abaixo: Descritor de Arquivo 0 1 2 Nome do Dispositivo Entrada de dados padro Sada de dados padro Sada de erros padro Abreviao stdin stdout stderr
O descritor de arquivo utilizado para identificar em qual direo os caracteres iro fluir.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes para os programas em execuo. A maior parte do tempo o teclado que fica fica encarregado de gerar os dados que acabam sendo enviados para esse dispositivo. Porm, atravs de comandos de redirecionamento de shell (visto adiante) podem associar um arquivo como a entrada de dados padro.
Operadores de Redirecionamento
Para controlar a direo em que os dados devem fluir, o bash conta com operadores de redirecionamento. Esses operadores dizem basicamente para onde os caracteres tem que ir (stdin, stdout, stderr, arquivo, comando, etc...) e podem estar antes ou depois de um comando. So 3 os operadores de redirecionamento: Operadores de Sada de dados padro (stdout): > e >> Sua funo redirecionar o fluxo de caracteres da stdout (que pode ser a sada de um comando, por exemplo) para algum arquivo ou dispositivo, lembrando que no Linux tudo arquivo. Exemplo A:
$ mkdir -p ~/exercicios/redirecionamento $ cd ~/exercicios/redirecionamento $ touch arq1 arq2 arq3 $ ls > listagem $ ls arq1 arq2 arq3 listagem $ cat listagem arq1 arq2 arq3
Nesse exemplo, aps criar nosso ambiente de testes, redirecionamos a sada do comando ls para ___________________________________________________________________________ Pg. 111
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes um arquivo chamado listagem. Esse arquivo no existia anteriormente, mas foi criado devido ao redirecionamento. Repare que o contedo do arquivo exatamente a sada do comando ls. Exemplo B:
$ cd ~/exercicios/redirecionamento/ $ cat > arquivo.txt Um simples arquivo de texto. Pressione [Enter] Pressione [CTRL]+[D] $ cat arquivo.txt Um simples arquivo de texto.
Acionamos o comando cat, sem nenhum argumento, e instrumos o bash para redirecionar a sada de dados padro para um arquivo chamado arquivo.txt. Exemplo C:
$ cat arquivo.txt Um simples arquivo de texto. $ echo "Novo contedo" > arquivo.txt $ cat arquivo.txt Novo contedo
Ainda com o mesmo arquivo de testes, efetuamos outro redirecionamento, dessa vez com a sada do comando echo. Repare que o contedo do arquivo foi sobrescrito com o redirecionamento efetuado. Para concatenar o arquivo de sada ao invs de sobrescrever o seu contedo, utilizamos dois operadores de redirecionamento da stdout (>>), como no exemplo abaixo: Exemplo D:
$ cat arquivo.txt Um simples arquivo de texto. $ echo "Novo contedo" >> arquivo.txt $ cat arquivo.txt Um simples arquivo de texto. Novo contedo
Primeiro sobrescrevemos o contedo do arquivo arquivo.txt e constatamos isso com o comando cat. Logo depois, enviamos o redirecionamento da sada padro de volta para a entrada padro. Na verdade, o redirecionamento 0> diz para o fluxo de caracteres ser enviado de volta para a entrada padro (Descritor de arquivo 0, conforme tabela anterior), e no para o ___________________________________________________________________________ Pg. 112
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes arquivo de destino. por isso que o arquivo arquivo.txt ficou vazio aps o redirecionamento com 0>. Como o fluxo retorna para o shell, podemos redirecionar novamente ele, mas agora para um novo arquivo, chamado arquivo-novo.txt, que agora sim recebe o contedo do redirecionamento. O intuito de mostrar redirecionamentos como esses, no muito comuns no dia-adia do administrador, familiarizar o administrador com o fluxo correto das informaes no shell bash, assunto que tem peso muito alto em uma prova de certificao Linux como a Linux Professional Institute 1 (LPIC-1). Operadores de entrada de dados padro: < e << No so amplamente utilizados quanto os operadores de sada de dados padro. Sua funo redirecionar o fluxo de caracteres da stdin (que pode ser um arquivo contendo argumentos a serem tratados por um comando, por exemplo) para algum comando. Ainda no mesmo ambiente de testes dos exemplos anteriores (~/exercicios/redirecionamento), vamos aos exemplos: Exemplo A:
$ cat arquivo.txt Um simples arquivo de texto. Novo conteudo $ cat < arquivo.txt Um simples arquivo de texto. Novo conteudo
Digitamos dois comandos no exemplo. O primeiro um simples cat no arquivo; O segundo tem o mesmo resultado, s que utiliza o redirecionamento do arquivo arquivo.txt como argumento para o comando cat. Como a funo do comando cat enviar para a stdout o contedo que lhe for passado (geralmente um arquivo), o mesmo pode ser feito com um fluxo de dados (caracteres) vindo de um redirecionamento da stdin. Da mesma forma que o redirecionamento de sada de dados padro, podemos concatenar o fluxo de caracteres utilizando dois operadores p/ o mesmo sentido, nesse caso <<. Este redirecionamento serve principalmente para marcar o fim de exibio de um bloco. Este especialmente usado em conjunto com o comando cat, mas tambm tem outras aplicaes. Exemplo B:
$ cat << final > este texto > sera mostrado > ate que a palavra final > seja encontrada > sozinha na linha > final este texto sera mostrado ate que a palavra final seja encontrada sozinha na linha
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
dos
comandos
Tentamos propositadamente listar um arquivo inexistente (inexistente.txt) com o comando ls, causando um erro no programa. O comando ls utilizou-se da sada de erros padro (stderr) para enviar um fluxo de caracteres a fim de notificar que no encontrou o arquivo especificado. Como o redirecionamento inicial que fizemos apenas redireciona a sada de dados padro para o arquivo arquivo.txt, a stderr mostrada na tela, e visualizamos assim a mensagem de erro. No redirecionamento seguinte, redirecionamos a stderr para um arquivo chamado erros.txt (redirecionamento 2>). Exemplo B:
$ rm arquivo.txt erros.txt $ lss > stdout.txt 2>stderr.txt $ ls stderr.txt stdout.txt $ cat stderr.txt bash: lss: command not found $ ls stderr.txt inexistente.txt >stdout.txt 2>>stderr.txt $ ls stderr.txt stdout.txt $ cat stderr.txt bash: lss: command not found ls: inexistente.txt: Arquivo ou diretrio no encontrado
Aps digitar um comando inexistente (lss), causamos um erro no shell, que nos notifica atravs da stderr. A sada de nosso comando inexistente (vazia) foi redirecionada para o arquivo stdout.txt e a sada de erros padro (stderr) foi redirecionada para o arquivo stderr.txt. No redirecionamento do comando ls, que procurava listar 2 arquivos (stderr.txt e inexistente.txt), foram gerados dois fluxos de sada: Um deles envia para a stdout o nome do arquivo stderr.txt, que foi encontrado na listagem. O segundo fluxo envia para a stderr uma notificao de que no foi possvel encontrar o arquivo inexistente.txt. Repare que concatenamos a sada da stderr, e assim no sobrescrevemos o contedo do arquivo stderr.txt. ___________________________________________________________________________ Pg. 114
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
No diretrio atual existem 3 arquivos (arq1, arq2 e arq3). Utilizamos o comando ls unido ao comando grep atravs de um pipe para filtrar nossa sada de texto (stdout) duas vezes. Na primeira vez, o comando ls envia a lista dos 3 arquivos para a stdin do comando grep, que por sua vez, s mostra na tela o nome do arquivo que contm o nmero 2, nesse caso, arq2. Depois, a nica coisa que muda a filtragem do grep, que passa a mostrar os nomes dos arquivos que contm o nmero 2 ou 3, nesse caso so 2 arquivos, arq2 e arq3. Exemplo B:
$ ls /bin |grep mount mount mountpoint umount
Listamos o conteudo do diretrio /bin e utilizamos um pipe para filtrar a sada da listagem com o comando grep, mostrando somente os comandos que contm a palavra mount. No dia-adia de um administrador de sistemas Linux, torna-se necessria a utilizao de muitos pipes em uma mesma linha de comando para chegar em algum resultado em comum. No decorrer do curso iremos nos deparar com diversas situaes assim, mas por enquanto, observe (e teste) alguns exemplos:
$ ps aux |grep ^root |more $ ls -lR /usr/local |grep lib |grep rwxrwxr-x |more
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Exemplo A:
$ ls -la ~/exercicios | tee /tmp/listagem.txt total 1 drwxr-xr-x 5 erivelton erivelton 128 2004-11-30 drwxr-xr-x 27 erivelton erivelton 1144 2004-12-01 drwxr-xr-x 3 erivelton erivelton 96 2004-11-01 drwxr-xr-x 2 erivelton erivelton 112 2004-12-01 drwxr-xr-x 2 erivelton erivelton 144 2004-11-01 $ cat /tmp/listagem.txt total 1 drwxr-xr-x 5 erivelton erivelton 128 2004-11-30 drwxr-xr-x 27 erivelton erivelton 1144 2004-12-01 drwxr-xr-x 3 erivelton erivelton 96 2004-11-01 drwxr-xr-x 2 erivelton erivelton 112 2004-12-01 drwxr-xr-x 2 erivelton erivelton 144 2004-11-01 21:15 16:56 15:40 13:36 19:19 21:15 16:56 15:40 13:36 19:19 . .. chmod redirecionamento umask . .. chmod redirecionamento umask
A sada do comando foi mostrada normalmente na tela e ao mesmo tempo gravada no arquivo listagem.txt. Exemplo B:
$ cat /etc/fstab |tee /tmp/listagem.txt /dev/hda2 / reiserfs defaults /dev/hda5 none swap sw proc /proc proc defaults /dev/fd0 /floppy auto user,noauto /dev/cdrom /cdrom iso9660 ro,user,noauto /dev/hda1 /boot ext3 defaults 0 0 0 0 0 0 0 0 0 0 0 2
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
$ ls ~/exercicios |tee -a /tmp/listagem.txt chmod redirecionamento umask $ cat /tmp/listagem.txt /dev/hda2 / reiserfs defaults /dev/hda5 none swap sw proc /proc proc defaults /dev/fd0 /floppy auto user,noauto /dev/cdrom /cdrom iso9660 ro,user,noauto /dev/hda1 /boot ext3 defaults chmod redirecionamento umask
0 0 0 0 0 0
0 0 0 0 0 2
Utilizando a opo -a, o contedo do arquivo de destino ser concatenado, ao invs de sobrescrito.
Tabela de Redirecionamentos
A tabela abaixo mostra um resumo das funes de cada operador de redirecionamento. Redirecionador comando > arquivo comando < arquivo comando >> arquivo comando << arquivo comando 2> arquivo comando 2>> arquivo comando1 | comando2 Funo Redireciona a sada de dados padro (stdout) Redireciona a entrada de dados padro (stdin) Concatena a sada de dados padro (stdout) Concatena a entrada de dados padro (stdin) Redireciona a sada de erros padro (stderr) Concatena a sada de erros padro (stderr) Utiliza a stdout do comando1 como stdin do comando2
Paginadores
O comando more pode ser utilizado para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o more efetua uma pausa e permite que voc pressione [Enter] ou [espao] para continuar avanando no arquivo. Para sair do more pressione [q]. O comando less tambm segue o mesmo propsito geral, porm permite recuarmos o texto que j rolou a tela, sendo um paginador mais eficiente que o more. Os pginadores so amplamente utilizados para paginar fluxos de texto. Exemplos:
ps ax |more ps ax |less ls /etc |less
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
brazil
Brazil
No primeiro comando, o ls listou os arquivos que contivessem bra, seguidos de qualquer caractere, e terminavam com il. Como haviam dois arquivos que casavam com os critrios, somente esses foram mostrados. No segundo comando foi utilizado dois metacaracteres, um para o primeiro e outro para o quarto caractere do arquivo. Exemplo B:
$ $ ls bra* brasil brazil $ ls *rasil brasil Brasil
O metacaractere * muito mais fcil de entender, pois casa com qualquer coisa, quantas vezes for necessrio. O que o diferencia do metacaractere ? que este casa com qualquer coisa somente uma vez. Para casar uma pesquisa com agrupar o metacaractere ?. Exemplo C:
$ touch casa casas casais casinhas $ ls casa?? Casais $ ls casa* casa casais casas $ rm -fv cas* removed `casa'
um
determinado
nmero
de
caracteres,
podemos
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
removed `casais' removed `casas' removed `casinhas'
Os critrios do comando ls era basicamente qualquer arquivo que comece com casa e contenha mais dois caracteres quaisquer (casa??), diferente do segundo ls, que listaria arquivos que iniciem com casa e possam ou no conter quaisquer outros caracteres depois (casa*). No esquea de remover os arquivos conforme o exemplo, para que no atrapalhe nos outros exemplos. Alternativamente, podemos utilizar outros metacaracteres como [ ] para melhor filtrar os critrios a serem passados a linha de comando. Conforme exemplo abaixo. Exemplo D:
$ ls brasil Brasil $ ls [Bb]rasil brasil Brasil $ ls ?ra[sz]il Brasil Brazil BRASIL brazil Brazil BRAZIL
Repare em todos os arquivos que existem atualmente no diretrio e quais arquivos foram selecionados pelo comando ls. Pratique isso bastante, pois de extrema importncia em um exame de certificao como o Linux Professional Institute 101 (LPI-101). Tambm possvel especificar um range de letras ou nmeros dentre os metacaracteres [ ] para facilitar nossas buscas. Exemplo E:
$ touch 1brasil 2brasil 11brasil 22brasil $ ls [a-z]rasil brasil Brasil $ ls [c-z]rasil ls: [c-z]rasil: Arquivo ou diretrio no encontrado $ ls [0-9]brasil 1brasil 2brasil $ ls [0-9][0-9]brasil 11brasil 22brasil
Listamos primeiramente todos os arquivos cujo primeiro caractere alguma letra entre a e z (O ls, nesse caso, no faz distino de maisculas e minsculas) e o restante da palavra seja rasil. Quando tentamos listar os arquivos cujo primeiro caractere seja alguma letra entre c e z e o restante da palavra seja rasil, nenhum encontrado. O prximo ls mostra os arquivos cujo primeiro caractere um nmero somente seguido da palavra brasil. Repare em como utilizamos os metacaracteres para listar os arquivos que contenham dois nmeros no incio do nome, seguidos pela palavra brasil. O mesmo resultado de [a-k], por exemplo, pode ser conseguido com [abcdefghijk]. apenas uma forma mais fcil de se expressar a mesma coisa.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo A:
$ ls ?rasil ; echo Outro Comando brasil Brasil Outro Comando
A primeira linha da sada resultado do comando ls, j a segunda refere-se ao comando echo, que foi executado assim que o ls executou. Esse sistema no deve ser novidade para ns, pois j utilizamos por diversas vezes at agora no decorrer do curso. Exemplo B:
$ numero=2 $ (numero=1; echo "Dentro: $numero" ); echo "Fora: $numero" Dentro: 1 Fora: 2
Podemos agrupar comandos entre parnteses para proteger o contedo de variveis, permitindo que o valor de alguma varivel de shell seja diferente para os comandos entre parnteses, sem interferir no valor das variveis fora. A princpio um pouco confuso entender, mas depois se torna simples. Foi definido o valor 2 para a varivel $numero. Repare que dentro dos parnteses essa varivel tem o valor 1, mas fora continua tendo o valor 2, pois a clausura imposta pelos parnteses impede que qualquer varivel ali criada altere as j existentes. Este um outro tpico de grande peso em provas para certificaes Linux de nvel bsico. imprescindvel um bom domnio sobre esse tipo de metacaracteres, pois questes assim costumam ter um baixo nvel de acertos.
Tambm possvel simplificar parmetros dos comandos. Para tal faanha, o bash nos dispe dos metacaracteres { } (chaves). Analise os exemplos. Exemplo C:
$ cd ~/exercicios/metacaracteres; rm * $ touch arquivo{1,2,3}-{a,b,c}.{txt,doc} $ ls
arquivo1-a.doc arquivo1-a.txt arquivo1-b.doc arquivo1-b.txt arquivo1-c.doc arquivo1-c.txt arquivo2-a.doc arquivo2-a.txt arquivo2-b.doc arquivo2-b.txt arquivo2-c.doc arquivo2-c.txt arquivo3-a.doc arquivo3-a.txt arquivo3-b.doc arquivo3-b.txt arquivo3-c.doc arquivo3-c.txt
Com apenas um comando touch, agrupamos diversas instncias do mesmo comando, mais precisamente 18 vezes. Graas aos 3 blocos de chaves, o bash interpretou o seguinte: Primeiro formou-se o parmetro arquivo1-a.txt, depois arquivo1-a.doc, em seguida arquivo1b.txt, e assim por diante. A ordem completa pode ser constatada apenas trocando o comando touch pelo comando echo, deixando o comando com a seguinte aparncia:
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
$ echo arquivo{1,2,3}-{a,b,c}.{txt,doc} arquivo1-a.txt arquivo1-a.doc arquivo1-b.txt arquivo1-b.doc arquivo1-c.txt arquivo1-c.doc arquivo2-a.txt arquivo2-a.doc arquivo2-b.txt arquivo2-b.doc arquivo2-c.txt arquivo2-c.doc arquivo3-a.txt arquivo3-a.doc arquivo3-b.txt arquivo3-b.doc arquivo3-c.txt arquivo3-c.doc
Causamos um erro no comando ls, pois o arquivo arquivo.txt no existia no diretrio (Repare que direcionamos a stderr para uma sada nula). Devido ao comando ls no ter obtido xito, o comando echo no foi executado. Aps a criao do arquivo arquivo.txt, o comando echo foi executado. Esse tipo de agrupamento muito importante para criar condicionais para rotinas de administrao do sistema. S ejetar a fita DAT se o backup for concludo com xito, por exemplo. Temos tambm o operador de controle OR, que representado por dois sinais de pipe ||; Ele age basicamente da seguinte forma: O comando aps o operador de controle OR somente ser executado caso o primeiro falhe. Algo como um comando reserva, muito utilizado em scripts para notificao caso algum comando falhe. Exemplo B:
$ ls arquivo.txt 2>/dev/null || echo "Arquivo Nao existe" Arquivo Nao existe $ touch arquivo.txt $ ls arquivo.txt 2>/dev/null || echo "Arquivo Nao existe" arquivo.txt
Repare que o comando echo entrou em ao devido ao comando ls ter falhado, o que no ___________________________________________________________________________ Pg. 121
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes ocorreu mais aps criarmos o arquivo arquivo.txt. Caso o nome de um arquivo ou o argumento de um comando contenha um caractere que porventura seja igual a um metacaractere, esse deve ser escapado pelo shell; Para tal, basta preceder o caractere com uma barra invertida \.
Expresses Regulares
As Expresses Regulares (RE's) realmente podem facilitar a nossa vida. Expresses Regulares nada mais do que um conjunto de expresses que podem filtrar e/ou encontrar determinados padres dentro de arquivos e qualquer outra coisa que voc imaginar.
Utilizao
Geralmente as RE's so utilizadas dentro de programas (Shell, Perl, C, etc) para encontrar alguns padres que sejam necessrios para o trmino do programa. Mas elas (RE's) tambm podem ser utilizadas em linhas de comando e com as excelentes ferramentas GNU SED, AWK e GREP que so encontradas na maioria das distribuies Linux. Vamos comear com o bsico dos bsicos, ou seja, utilizando RE's na linha de comando para efetuar algumas tarefas no Linux. Utilizando RE's para listar somente subdiretrios com "ls e grep":
[usuario@localhost /etc]$ ls -l|grep "^d" drwxr-xr-x 3 root root 4096 Dec 11 18:55 init.d drwxr-xr-x 2 root root 4096 Dec 11 18:46 network drwxr-xr-x 17 root root 4096 Jan 25 20:38 X11 .... ... ..
Perceba como fcil listar somente os subdiretrios de /etc utilizando ls e grep e com uma pequena ajudinha de uma RE.
Entendendo a RE "^d"
O que ocorreu foi que o comando ls listou todo o contedo do diretrio /etc e passou essa sada para o comando grep (utilizando pipe |) que por sua vez pegou apenas o que nos interessava (subdiretrios) com a RE ^d que significa:
^ incio de linha d a letra "d" no incio da linha (o que simboliza um diretrio)
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes OBS: preciso protejer caracteres especiais em RE's. Isso deve ser feito com a barra invertida "\".
Expresso Regular ^ $ [a-z] [a-z]\{1,2\} [a-z]\{2\} [^a-z] [A-Z] [^A-Z] [a-zA-Z] [a-zA-Z0-9] [^a-zA-Z] [0-9] [^0-9] \" \' \? \! \& \* \^ \/ \~ \(a\|b\|c\)
Significado incio de linha final de linha qualquer literal de "a" at "z" (minsculas) qualquer literal de "a" at "z" (minsculas) no mnimo 1 vez e no mximo 2 vezes qualquer literal de "a" at "z" (minsculas) 2 vezes literal que NO esteja entre "a" e "z" (minsculas) qualquer literal de "A" at "Z" (maisculas) qualquer literal que NO esteja entre "A" e "Z" (maisculas) qualquer literal de "a" at "z" (minsculas e maisculas) qualquer caractere imprimvel (minsculas, maisculas e nmeros) qualquer literal que NO esteja entre "a" e "z" (minsculas e maisculas) qualquer dgito de "0" at "9" qualquer dgito que NO esteja entre "0" e "9"
qualquer aspas (caracteres especiais precisam ser protegidos pela barra invertida "\")
Essa tabela no mostra todos os tipos de expresses que podem ser utilizados, mais j da para ter uma idia do que podemos fazer.
Exemplos
Encontrar todas as ocorrncias da palavra "linux" no incio de cada linha do arquivo "termcap":
[usuario@localhost /etc]$ grep "^linux" termcap linux|linux-lat|linux console:\
Encontrar todas as ocorrncias da palavra "linux" que comece e termine na mesma linha dentro ___________________________________________________________________________ Pg. 123
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes do arquivo "termcap":
[usuario@localhost /etc]$ grep "^linux$" termcap linux
Encontrar todas as ocorrncias da palavra "linux" no final de cada linha do arquivo "termcap":
[usuario@localhost /etc]$ grep "linux$" termcap # * Added 7 newly discovered, undocumented acsc characters to linux
Esses so pequenos exemplos de como voc pode utilizar RE's na linha de comando ou em seus scripts. O conceito de RE's valido para todas as linguagens que a utilizam, com excesso de alguns detalhes que mudam, como por exemplo a barra invertida que no utilizada em outras linguagens para proteger caracteres especiais. Na linha de comando ou em shell scripts necessrio utilizar barra invertida para proteger ___________________________________________________________________________ Pg. 124
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes caracteres especiais porque o shell vai tentar interpretar esses caracteres e esse no o nosso interesse.
Arquivo /etc/profile
if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ bin/X11" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" fi if [ "$PS1" ]; then
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
if [ "$BASH" ]; then PS1='\u@\h:\w\$ ' else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi
Repare que este arquivo configura o PATH dos comandos, a aparncia do prompt (Varivel $PS1) e configura a umask padro.
Arquivo ~/.bash_profile
# ~/.bash_profile: executed by bash(1) for login shel s. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/login.defs #umask 022 # include .bashrc if it exists if [ -f ~/.bashrc ]; then . ~/.bashrc fi # the rest of this file is commented out. # set PATH so it includes user's private bin if it exists #if [ -d ~/bin ] ; then # PATH=~/bin:"${PATH}" #fi # do the same with MANPATH #if [ -d ~/man ]; then # MANPATH=~/man: # export MANPATH #fi
Este arquivo possui uma rotina que verifica a existncia de um outro arquivo chamado ~/.bashrc, e caso este arquivo exista, ser executado pelo bash.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' # enable bash completion in interactive shells #if [ -f /etc/bash_completion ]; then # . /etc/bash_completion #fi
Arquivo ~/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything: [ -z "$PS1" ] && return # don't put duplicate lines in the history. See bash(1) for more options #export HISTCONTROL=ignoredups # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. #shopt -s checkwinsize # enable color support of ls and also add handy aliases if [ "$TERM" != "dumb" ]; then eval `dircolors -b` alias ls='ls --color=auto' #alias dir='ls --color=auto --format=vertical' #alias vdir='ls --color=auto --format=long' fi # some more ls aliases #alias ll='ls -l' #alias la='ls -A' #alias l='ls -CF' # set variable identifying the chroot you work in (used in the prompt below) #if [ -z "$debian_chroot" -a -r /etc/debian_chroot ]; then # debian_chroot=$(cat /etc/debian_chroot) #fi # set a fancy prompt (non-color) PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' # Comment in the above and uncomment this below for a color prompt #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\ [\033[01;34m\] \w\[\033[00m\]\$ ' # If this is an xterm set the title to user@host:dir case $TERM in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' ;; *) ;; esac # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc). #if [ -f /etc/bash_completion ]; then # . /etc/bash_completion #fi
Repare na existncia de opes que podem ser habilitadas apenas descomentando as linhas corretas. Este arquivo tambm foi retirado de um sistema Debian. ___________________________________________________________________________ Pg. 127
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Arquivo ~/.bash_logout
Este arquivo no costuma existir por padro em algumas distribuies Linux. Como dito anteriormente, a funo desse arquivo executar alguma(s) tarefa(s) ao sairmos do sistema, que podem se tornar necessrias com o tempo. importante frisar que este arquivo somente ser executado ao sairmos de um shell bash interativo de login. Execute o comando abaixo para criar um novo ~/.bash_logout:
$ echo echo Ate Logo... ; read > ~/.bash_logout
Em seguida, efetue logout do terminal de login (Faa em um terminal texto, como tty1, por exemplo). Ao sairmos, ser mostrada a mensagem Ate Logo... na tela, que desaparecer ao pressionarmos qualquer outra tecla.
Arquivo ~/.bash_history
Arquivo j estudado anteriormente, armazena os ltimos comandos digitados pelo usurio.
Aliases de shell
Aliases de shell so formas de se apelidar comandos, criando comandos intermedirios de atalho para eles. Aliases so definidos com o comando alias, que um dos comandos integrados ao shell bash. Como o comando alias (sem nenhum argumento) podemos listar os alias atualmente configurados no shell atual. Caso deseje apagar um alias, utilize o comando unalias. Sintaxe:
alias nome=qualquer comando valido do shel
Exemplo A:
$ alias alias ls='ls --color=auto' $ alias cls="clear" $ alias alias cls='clear' alias ls='ls --color=auto' $ cls
Definimos um alias para o comando cls (velho conhecido do DOS), que no existe no Linux. Como o comando clear tem o mesmo efeito em sistemas Linux, criamos um alias para que quando o usurio digitar o comando cls, o sistema execute clear. Exemplo B:
alias desligar=shutdown -h now alias reiniciar=shutdown -r now alias ls=ls -color
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
alias alias alias alias cd-on=mount /dev/cdrom cd-off=umount /dev/cdrom x=startx limpa="clear ; date"
Este atalho deve ser escrito no arquivo /etc/bashrc. Se no existir esse arquivo, crie o arquivo com vi e salve-o no diretrio /etc com o nome bashrc. Os alias definidos na linha de comando manualmente se perdem ao sarmos do shell atual. Para tornar os aliases permanentes, basta adicion-los ao arquivo /etc/bash.- bashrc ou ~/.bashrc caso queira restringir os novos aliases somente para algum(ns) usurio(s) do sistema. O prprio ~/.bashrc costuma ter alguns aliases j prdefinidos ou comentados.
Ocorreram 2 substituies e 1 escape de comandos na linha acima. As duas substituies referem-se a sada do comando ls -l |wc -l, que listou os arquivos no diretrio e em seguida usou o comando wc -lpara contar quantas linhas haviam na sada, que resultou em 8. A segunda substituio refere-se a sada do comando pwd, que mostra o caminho do diretrio atual. Repare que as duas substituies de comandos foram efetuadas de formas diferentes. O escape de comandos refere-se a tudo que est compreendido entre as aspas duplas no comando. Exemplo B:
$ echo "Um teste 'simples' demais" Um teste 'simples' demais $ echo 'Um teste 'simples' demais'
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Um teste simples demais $ echo 'Um teste "simples" demais' Um teste "simples" demais
Repare em como o escape de comandos atua. Quando as aspas so iguais dentro e fora, o escape de comandos anulado.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
DOCUMENTAO
Documentao essencial no que tange o sistema operacional Linux, com seus diversos comandos e termos. de grande importncia que o administrador, por mais experiente que seja, saiba consultar a documentao do sistema. No Linux, existem alguns padres de documentao que servem como repositrio de informaes sobre os comandos e termos relacionados ao sistema. Essas informaes podem ser acessadas pelo prprio sistema. Os comandos e termos costumam estar documentados nas chamadas pginas de manual e diretrio de documentao. O diretrio de documentao de um sistema Linux costuma ser /usr/share/doc. Dentro desse diretrio existem diversos subdiretrios que hospedam documentao sobre os comandos e termos relacionados. Por exemplo, para obter mais informaes sobre o bash, basta analisar os arquivos dentro do diretrio /usr/share/doc/bash. bem simples. As pginas de manual so ligeiramente mais complexas, mas iremos estud-las em seguida. Geralmente os comandos contam com parmetros de ajuda no formato: comando --help ou comando -h. Isso facilita bastante a busca por informaes sobre determinado parmetro de comando.
Pginas de manual
As pginas de manual definem um padro com que os programas instalados devem dispor a documentao. Atualmente, existem dois tipos de pginas de manual: As mais antigas, porm ainda amplamente utilizadas so as man pages e o formato mais recente de documentao que so as info pages. Estudaremos com mais cautela cada uma delas.
Man pages
As pginas de manual no formato de man pages acompanham quase todos os programas GNU/Linux. Elas trazem uma descrio da funcionalidade de cada comando ou programa e detalhes sobre o funcionamento dos parmetros. Uma pgina de manual visualizada na forma de texto com rolagem vertical. Tambm comum encontrar documentao para arquivos de configurao do sistema, e no somente para comandos. Para acessar as man pages, utilizamos o comando man. Sintaxe:
man [seo] termo
Sua utilizao bem simples. Para ler a pgina de manual do comando ls, por ___________________________________________________________________________ Pg. 131
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes exemplo, utilizamos man ls. Para facilitar a organizao das man pages, foram definidas sees para as pginas de manual deste formato. Estas sees esto descritas na tabela a seguir. Seo 1 2 3 4 5 6 7 8 9 Descrio Programas executveis ou programas do shell Chamadas do sistema (Funes providas pelo Kernel) Chamadas de biblioteca (Funes providas por bibliotecas do sistema) Arquivos especiais (Geralmente arquivos dentro do diretrio /dev) Arquivos de configurao Jogos Miscelnea (Qualquer coisa que no se enquadrar nas demais) Comandos de administrao do sistema (Geralmente os que ficam em /sbin) Rotinas do Kernel (Ainda no o padro, talvez mude)
Dessa forma, podemos direcionar nossa busca por documentao para uma pgina de manual especfica, pois possvel que a documentao de um programa exista em 2 ou mais categorias, como o caso do comando crontab que documentado na seo 1 (sobre o prprio comando) e 5 (formato do arquivo de configurao para o comando). Sendo assim, como as sees so numeradas e esto em ordem crescente, o man ir mostrar a primeira seo sobre o comando encontrada. Nesse caso do crontab, ao digitarmos man crontab, o man ir nos mostrar a primeira pgina de manual sobre o comando crontab que ele encontrar, nesse caso a seo 1. Caso queira acessar a pgina de manual do crontab da seo 5 ao qual ele tambm pertence, utilizamos o comando da seguinte forma:
man 5 crontab
Uma man page segue um formato padro para dispor as informaes na pgina. A primeira linha da sada o cabealho, que costuma mostrar nas duas extremidades o nome da pgina de manual seguida do nmero da seo entre parnteses. No caso da seo 5 do comando crontab, a primeira linha seria assim:
CRONTAB(1) CRONTAB(1)
Para navegar na pgina de manual, utilizamos as setas do teclado, [PGUP] e [PGDOWN]. Para Atualizar a tela, tecla [r], para sair [q]. Os arquivos de man pages ficam armazenados no diretrio /usr/share/man. L existem diversos subdiretrios que referenciam as respectivas sees em diversos idiomas disponveis, muitas vezes organizadas por links simblicos.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Utilize o comando man -w manpage para descobrir em que sees das pginas de manual o termo pesquisado reside.
Info Pages
considerada a evoluo das man pages. Sua principal diferena a incluso de um novo sistema de navegao atravs das pginas, que agora permitem links umas entre as outras, lembrando muito o conceito de pginas web. Se pressionarmos [Enter] em cima de uma palavra destacada, a info page nos levar a seo correspondente. um pouco mais simples do que as man pages, pois no est dividida em sees (ainda). Se o nome do comando ou programa no for digitado, a info pages mostra a lista de todos os manuais de comandos e programas disponveis. A navegao da info pages feita atravs de nomes marcados com um* (hipertextos) que se pressionarmos [Enter], nos levar at a seo correspondente. Sintaxe:
info [comando ou programa]
Tabela de Navegao
Tecla q ? n p u m d Exemplo:
$ info ls
Funo Sai da info page Mostra a tela de ajuda de navegao Avana uma pgina Volta uma pgina Sobe um nvel de pgina Abre mecanismo de busca para localizar uma pgina dentro das info pages Volta ao ndice de documentos
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes possvel efetuar buscas por determinados critrios na documentao do sistema, a fim de encontrar a pgina de manual (manpages ou infopages) correta para o comando ou termo pesquisado.
Cron)
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Existem alguns utilitrios no Linux que nos auxiliam a localizar arquivos na estrutura de diretrios com base em critrios. A ferramenta mais utilizada para essa tarefa o comando find, que permite localizarmos arquivos no sistema como base em critrios como o nome do arquivo, datas, tamanho, etc. Gerando assim uma grande flexibilidade na busca de determinados arquivos no sistema.
Comando find
O find uma das mais importantes ferramentas GNU disponveis. Ele trabalha basicamente com critrios, que podem ser combinados a fim de se encontrar um ou mais arquivos especficos. Essa caracterstica permite, por exemplo, utilizarmos o find para selecionar quais arquivos faro ou no parte de uma rotina de backup no Linux. O find tambm permite executarmos arquivos resultantes da busca. Sintaxe:
find [caminho...] [expresso]
um
determinada
ao
para
cada
um
dos
O caminho padro o diretrio atual; a expresso padro -print. As principais expresses esto descritas na tabela abaixo: Tabela de parmetros -name arquivo Procura por algum arquivo chamado arquivo. -mindepth nvel Especifica um nvel mnimo de subdiretrios para a pesquisa. -maxdepth nvel Expecifica um nvel mximo de subdiretrios para a pesquisa. -amin n Procura arquivos que tenham sido acessados n minutos atrs. -atime n Procura arquivos que tenham sido acessados n dias atrs. -cmin n Procura arquivos que tenham sido modificados n minutos atrs. -ctime n Procura arquivos que tenham sido modificados n dias atrs. -user usurio Procura arquivos cujo dono seja o usurio determinado. -group grupo Procura arquivos cujo dono seja o grupo determinado. Procura arquivos de um tamanho especfico. O tamanho pode -size tamanho ser especificado em b (blocos de 512 bytes, padro), c (bytes), k (Kilobytes) e w (Palavras de 2 bytes, ou 16 bits) Procura por arquivos que sejam de um tipo especfico. Os -type tipo tipos podem ser: b (dispositivo de bloco), c (dispositivo de caractere), d (diretrio), f (arquivo comum), l (link simblico), entre outros. Procura arquivos que possuam determinada permisso, que pode ser -perm permisso especificada em formato de letras ou em formato octal. Executa determinado comando para cada arquivo encontrado na busca. Para referenciar o arquivo no comando utilize {} no lugar -exec comando \; do nome de um arquivo. ___________________________________________________________________________ Pg. 135
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes O comando find ainda possui outros diversos parmetros no mostrados nessa tabela, porm so parmetros dificilmente utilizados, que podem ser encontrados na man page do comando quando necessrio. Exemplo A:
$ find /bin -name ls /bin/ls $ find /bin -name ls* /bin/ls /bin/lsmod /bin/lspci /bin/lsmod.modutils
Procura por um arquivo chamado ls dentro do diretrio /bin, em seguida procura por qualquer arquivo que inicie com ls (ls*) no mesmo diretrio. Sempre que for especificar algum coringa como ls* utilize-o entre aspas, como o exemplo acima.
Exemplo B:
# find / -name grep -maxdepth 3
Procura no diretrio raiz e sub-diretrios at o terceiro nvel um arquivo ou diretrio cujo nome seja grep. Exemplo C:
# find /usr -size +10000k
Procura por arquivos com mais de 10MB a partir do diretrio /usr. Exemplo D:
# find /etc -size -1000k -name host* -type f /etc/hosts /etc/hosts.allow /etc/init.d/hostname.sh /etc/hostname /etc/hosts.deny /etc/host.conf # find /etc -size -1000k -name host??????? -type f /etc/hosts.allow /etc/init.d/hostname.sh
Agora algumas pesquisas mais complexas que envolvem coringas, onde buscamos arquivos a partir do diretrio /etc cujo tamanho seja inferior a 1MB, o nome comece com host (host*) e deve ser um arquivo comum. Depois refinamos nossa pesquisa dizendo que somente queremos encontrar arquivos cujo nome comece com host e contenha mais 7 caracteres.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo E:
# touch /tmp/arq1 # touch -t 11201204 /tmp/arq2 # ls -l /tmp/arq* -rw-r--r-- 1 root root 0 Dec 20 12:04 /tmp/arq1 -rw-r--r-- 1 root root 0 Nov 20 12:04 /tmp/arq2 # find /tmp -name "arq*" -atime -10 /tmp/arq1 # find /tmp -name "arq*" -atime +10 /tmp/arq2 # find /tmp -name "arq*" -atime -32 /tmp/arq1 /tmp/arq2
Repare que foram criados dois arquivos, um com a data atual (arq1) e outro com a data de acesso propositalmente modificada para 30 dias atrs (arq2). A primeira busca do find procura por arquivos cujo nome inicie com arq (arq*) e que tenha sido acessado nos ltimos 10 dias (De dez dias para c geralmente mais fcil de memorizar). A segunda busca parecida, o que a diferencia que buscamos por um arquivo que no tenha sido acessado nos ltimos 10 dias (Tente lembrar de dez dias pra l). Por ltimo, Pesquisamos pelos mesmos arquivos que iniciem com arq, mas que tenham sido acessados nos ltimos 32 dias, o que resultou nos dois arquivos. Exemplo F:
# find /dev -group disk -name hd[abc]2 -type b /dev/hda2 /dev/hdb2 /dev/hdc2 # find /dev -group disk -name hd[abc]2 -type b -exec echo "Arquivo {}" \; Arquivo /dev/hda2 Arquivo /dev/hdb2 Arquivo /dev/hdc2
Tentamos localizar arquivos dentro de /dev que pertenam ao grupo disk, cujo nome comece com hd, o terceiro caractere do nome seja a, b ou c e seja do tipo b (Dispositivo de blocos). Isso retornou 3 resultados. Depois utilizamos a mesma busca como base para o argumento -exec, que executou o comando echo para cada um dos arquivos resultantes, exemplificando como possvel executar comandos para cada resultado individual da pesquisa. Exemplo G:
# find /var/lib/amavis/virusmails/ -name "*.gz" -ctime +10 -exec rm {} \;
Neste commando localizamos todos arquivos com a extenso .gz criados a mais de 10 dias e aps cada resultado localizado executado o comando rm para apag-lo. Exemplo H:
# find /var/lib/amavis/virusmails/ -name *.gz -ctime +10 | xargs rm
Este comando tem o mesmo objetivo do anterior mas a diferena que o xargs recebe uma lista dos arquivos encontrados e apaga de uma s vez. Este modo mais eficiente que o anterior, porm se a lista for muito grande o comando no executado.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Comando whereis
Localiza os binrios e as pginas de manual para algum binrio (comando ou biblioteca) do sistema. A pesquisa efetuada com base nos caminhos configurados na varivel $PATH do shell e em caminhos que comumente abrigam binrios do sistema. Sintaxe:
whereis [opo] arquivo
Onde arquivo o binrio a ser pesquisado. Tabela de parmetros -b Procura por binrios. -m Procura por pginas de manual. -s Procura por cdigo-fonte. Exemplo A:
# whereis crontab crontab: /usr/bin/crontab /etc/crontab /usr/share/man/man1/crontab.1.gz /usr/share/man/man5/crontab.5.gz # whereis -b crontab crontab: /usr/bin/crontab /etc/crontab # whereis -m crontab crontab: /usr/share/man/man1/crontab.1.gz /usr/share/man/man5/crontab.5.gz
Comando locate
Localiza uma palavra da estrutura de arquivos ou diretrios do sistema a partir de uma base de dados prpria previamente indexada. til quando queremos localizar de forma rpida um arquivo qualquer. Como a pesquisa efetuada em um banco de dados prprio do comando, antes precisamos criar o banco de dados com o comando updatedb. Sintaxe:
locate [arquivo]
Exemplo:
# touch /tmp/meunovoarquivo # locate meunovoarquivo # updatedb # locate meunovoarquivo /tmp/meunovoarquivo
Repare que antes de atualizao da base de dados do locate com o comando updatedb no era possvel encontrar o arquivo meunovoarquivo. Isso torna o locate muito til para buscas rpidas, sem ter que varrer todo ou parte do sistema de arquivos a cada busca, por exemplo.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
EDITORES DE TEXTO
A pessoa prudente esconde a sua sabedoria, mas os tolos anunciam a prpria ignorncia
Provrbios 12.23
O Linux conta com diversos editores de texto que so pea chave no dia a dia de um administrador de sistemas. O mais utilizado entre eles o VI, pois est presente em 99% das distribuies Linux alm de tambm estar presente em sistemas Unix. Devido a isso, o VI ser o foco de nossos estudos.
VI
O nome Vi vem de visual, pois o que os usurios consideravam como sendo um editor visual a mais de 3 dcadas atrs. O Vi o editor atualmente utilizado que possui mais tempo de vida (mais de 3 dcadas). Na verdade, o que encontramos na maioria das distribuies Linux atuais uma reencarnao do Vi original denominado Vim (Vi Improved), que foi escrito desde o incio por programadores voluntrios com base no VI j existente. O objetivo desses programadores era criar um editor de textos melhor que o Vi original, mas que mantivesse as mesmas caractersticas. As principais caractersticas do Vi original so na verdade solues para as necessidades da poca. A utilizao do Vi bastante baseada em teclas de atalho para executar tarefas de rolagem e edio de texto, devido ao fato de que na poca em que o original foi desenvolvido as redes eram muito lentas, e quanto menos informaes (Teclas, comandos...) pudessem trafegar pela rede ao se editar um arquivo melhor. Essas caractersticas so bem vindas at hoje, pois permite efetuarmos edies de arquivos remotamente (Atravs de uma conexo remota j estabelecida, como Telnet e SSH, por exemplo) atravs de um link de banda estreita. Sintaxe:
vim [arquivo]
O Vi possui 3 modos bsicos de operao: comando, linha e edio. OBSERVAO Em sistemas que possuem o Vim IMproved (vim) instalado, geralmente criado um alias do comando vi para vim.
Modo de comando
o modo de operao padro do Vi. Neste modo o editor interpreta os caracteres digitados como comandos internos do editor e no como texto a ser inserido no arquivo. A falta de compreenso deste modo geralmente causa maior frustrao ao utilizar este editor. Os comandos do Vi se dividem em 4 sub-categorias: movimentao, pesquisa, texto e edio, vistos na tabela abaixo:
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Comandos de Movimentao
Comando k j l h 0 (zero) $ G [CTRL]+[F] [CTRL]+[B] H M L w W b B nG Descrio Movimenta o cursor para cima. Movimenta o cursor para baixo Movimenta o cursor para a direita. Movimenta o cursor para a esquerda. Posiciona o cursor no incio da linha. Posiciona o cursor no final da linha. Posiciona o cursor na ltima linha do arquivo. Avana uma tela na rolagem de texto. Retroscede uma tela na rolagem de texto. Posiciona o cursor na primeira linha da tela. Posiciona o cursor na linha do meio da tela. Posiciona o cursor na ltima linha da tela. Posiciona o cursor no incio da prxima palavra (ignora pontuao). Posiciona o cursor no incio da prxima palavra sem ignorar a pontuao. Posiciona o cursos no incio da palavra anterior (ignora pontuao) Posiciona o cursor no incio da palavra anterior sem ignorar a pontuao. Posiciona o cursor no incio da linha n (Substituir n pelo nmero da linha desejada). Descrio Posiciona o cursor no prximo caractere c encontrado na linha. (Ex.: fp posiciona o cursor sobre o prximo caractere p encontrado na linha.) Posiciona o cursor na prxima ocorrncia da palavra pesquisada abaixo do cursor. Posiciona o cursor na prxima ocorrncia da palavra pesquisada acima do cursor. Prossegue a busca do ltimo comando / ou ? na prxima ocorrncia. Caso chegue ao final do arquivo, a pesquisa ter continuidade no incio do arquivo. A mesma funo que o comando N, porm faz a pesquisa na ordem inversa da ltima pesquisa efetuada com / ou ?. Mostra o nome, o nmero da linha atual e o total de linhas do arquivo. Descrio Exclui o caractere que esteja abaixo do cursos. Exclui todo o texto da posio atual do cursor at o final da palavra. Copia todo o texto da posio atual do cursor at o final da palavra. Exclui todo o texto da posio atual do cursor at o final da palavra e coloca o editor no modo de de edio. Exclui toda a linha atual. (Recorta) Copia toda a linha atual. (Recorta) Exclui todo o texto da posio atual do cursor at o final da linha.
Comandos de Pesquisa
Comando f+c /palavra ?palavra n N [CTRL]+[G] Comando x dw yw cw dd yy D
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes (Recorta) Copia todo o texto da posio atual do cursor at o final da linha. Substitui o caractere abaixo do cursor pelo caractere x. (Obs.: Qualquer caractere pode ser utilizado, x somente um exemplo). Limpa toda a linha em que o cursor se encontra e coloca o editor no modo de edio. Inicia o modo de substituio de texto. Para sair, pressione [ESC]. Une a linha atual prxima linha. Cola o texto que esteja em buffer aps o cursor. (Obs.: Qualquer comando de texto que exclua caracteres os envia para o buffer.) Inicia o modo visual para seleo do texto a partir da posio atual do cursor. Aps selecionar o texto desejado. Utilize uma das teclas como [y], [c] e [d] para copiar, substituir e recortar, respectivamente, ou a tecla [v] novamente para fechar o modo visual. Desfaz o ltimo comando. Refaz o ltimo comando.
Y rx cc R J p v u [CTRL]+[R]
O modo de texto uma forma prtica de substituir, organizar e inserir texto sem utilizar o modo de edio (sem precisar digitar texto). Uma caracterstica importante desse modo que todo o texto manipulado por esses comandos fica armazenado no buffer. Isso permite, por exemplo, recortar uma linha inteira com o comando dd e colar na linha logo abaixo do cursor com o comando p.
Modo de Edio
Ao entrarmos no modo de edio, tudo que digitarmos no teclado ser enviado como texto para o arquivo (O mais parecido possvel com outros editores de texto). Para sair do modo de edio e voltar ao modo de comando, utilizamos a tecla [ESC], at 2 vezes se assim for necessrio. Quando estamos no modo de edio, a string -- INSERT -- mostrada no canto inferior esquerdo da tela. No modo de comando, nada mostrado. A partir do modo de comando, podemos utilizar quaisquer dos comandos da tabela abaixo para iniciar o modo de edio:
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Modo de linha
O Modo de linha um modo onde se tem acesso a comandos especiais do vi. Para entrar em modo de linha deve-se estar em modo de comando e pressionar : (Dois-pontos).
Para voltar do modo de linha para o modo de comando basta pressionar ESC.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Uma outra ocasio mais utilizada: Digamos que voc precise comentar com o caractere # um grande intervalo de linhas em um arquivo (pode ser maante ficar fazendo isso linha por linha). O comando de linha do vi abaixo resolveria facilmente o problema, nesse caso, das linhas 10 at 25 (faa com um arquivo grande para testar.
:10,25s/^/# /
O intervalo 10,25 dia para o comando atuar somente entre as linhas 10 e 25. O comando de substituio ir substituir o incio da linha (Representado pelo caractere ^) pelo sinal de # acrescido de um espao. Pronto. Tambm possvel editar dois ou mais arquivos na mesma tela. Tal proeza se torna verdadeira com o comando :split. Por exemplo, digamos que voc j esteja editando um arquivo e queira abrir outro na mesma tela, dividindo a mesma ao meio. Basta utilizar o comando abaixo dentro do Vim.
:split novoarquivo
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
ARQUITETURA DE HARDWARE
Por mais que o preguioso deseje alguma coisa, ele no conseguir, mas a pessoa esforada consegue o seu desejo
Provrbios 13.4
Quando falamos de hardware, tambm falamos no nome que o software atribui ao seu hardware. O nome dos seus dispositivos por exemplo so diferentes, abaixo uma comparao entre Linux e DOS. Dispositivo LINUX ttyS0 ttyS1 ttyS2 ttyS3 lp0 lp1 /dev/hda1 /dev/hda2 /dev/hdb1 Dispositivo DOS COM1 COM2 COM3 COM4 LPT1 LPT2 C: D:* D:*
Os parmetros usados para configurar o hardware no linux so a IRQ, I/O e DMA, porm h dispositivos que s usem dois desses parmetros. As interrupes podem ser visualizadas atravs do arquivo /proc/interrupts
# cat /proc/interrupts CPU0 0: 824407 1: 20276 2: 0 4: 141947 5: 86091 8: 3 11: 9485 14: 69121 15: 4 NMI: 0 LOC: 824417 ERR: 128 MIS: 0
timer keyboard cascade serial SiS 7018 PCI Audio rtc usb-ohci, usb-ohci, eth0 ide0 ide1
Abaixo uma breve explicao sobre as interrupes. IRQ 0 - sada do temporizador (8254) IRQ 1 - controlador usado para teclado IRQ 2 - cascata para IRQ8IRQ15 no PC-AT IRQ 3 - porta serial secundria, geralmente/dev/ttyS1 ___________________________________________________________________________ Pg. 144
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes IRQ 4 - porta serial primria, geralmente /dev/ttyS0 IRQ 5 - livre (era a interrupo do HD no XT) IRQ 6 - controlador de disquetes /dev/fd0 IRQ 7 - porta paralela (para impressora, /dev/lp0) IRQ 8 - rtc IRQ 9 - interrupo de software (int 0x0A), redireciona para IRQ2 IRQ 10 - livre IRQ 11 - livre IRQ 12 - Mouse PS/2 IRQ 13 - livre IRQ 14 - controlador IDE primrio (/dev/hda, /dev/hdb) IRQ 15 - controlador IDE secundrio (/dev/hdc, /dev/hdd)
setserial
Esta uma ferramenta para relatar e reportar as configuraes das portas seriais do computador, isso inclui numero de IRQ, I/O. Com ela voc tambm pode mudar as configuraes de IRQ, portas e etc. Por exemplo: Para ver as configuraes de uma das portas seriais, digite:
# setserial /dev/ttyS1 /dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
Voc pode mudar o numero de irq a ser usado apenas digitando o comando.
# setserial /dev/ttyS1 irq <numero> port <numero>
Agora vamos ver as configuraes da porta serial /dev/ttyS1 e mudar o irq e a porta dela
# setserial /dev/ttyS1 /dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
Vimos que a irq dela 3 e a porta 0x02f8, agora vamos mudar para irq 4 e porta 0x03e8.
# setserial /dev/ttyS1 irq 4 port 0x3e8 # setserial /dev/ttyS1 /dev/ttyS1, UART: unknown, Port: 0x03e8, IRQ: 4
Isto pode ser muito til em relao a conflito de hardware, dispositivos que estejam por exemplo usando o mesmo irq. A opo -a imprime na tela todas as informaes do dispositivo Os endereos de I/O porem ser visualizados atravs do arquivo /proc/ioports
# cat /proc/ioports
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
0000-001f 0020-003f 0040-005f 0060-006f 0070-007f 0080-008f 00a0-00bf 00c0-00df 00f0-00ff 0170-0177 01f0-01f7 0376-0376 0378-037a 03c0-03df 03f6-03f6 03f8-03ff 0cf8-0cff 4000-400f 4000-4007 4008-400f d000-dfff d000-d07f e000-e0ff e400-e47f e800-e8ff e800-e8ff ec00-ecff ec00-ecff : : : : : : : : : : : : : : : : : : : : : : : : : : : : dma1 pic1 timer keyboard rtc dma page reg pic2 dma2 fpu ide1 ide0 ide1 parport0 vga+ ide0 serial(set) PCI conf1 Silicon Integrated Systems [SiS] 5513 [IDE] ide0 ide1 PCI Bus #01 Silicon Integrated Systems [SiS] SiS630 GUI Accelerator+3D PCI device 1039:7013 (Silicon Integrated Systems [SiS]) PCI device 1039:7013 (Silicon Integrated Systems [SiS]) Silicon Integrated Systems [SiS] SiS PCI Audio Accelerator SiS 7018 PCI Audio Realtek Semiconductor Co., Ltd. RTL-8139 8139too
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
O homem sensato tem o suficiente para viver na riqueza e na fartura, mas o tolo gasta todo o seu dinheiro assim que o recebe
Provrbios 21.20
Neste captulo aprenderemos como lidar com a tabela de parties, definir um correto esquema de particionamento e aplicar o sistema de arquivos mais adequado a cada situao.
Particionamento
Antigamente, quando o conceito de particionamento ainda no existia, um sistema era disposto em todo o disco rgido (isso no significa que ele ocupava todo o espao), no permitindo utilizarmos melhor o espao disponvel na mdia de armazenamento.
A tabela de parties
Com o advento dos discos rgidos, tambm surgiu o particionamento, que a capacidade de se repartir um disco rgido em diversas fatias de dados, chamadas parties. Essa diviso dos dados possvel at hoje devido a tabela de parties. Imagine o disco rgido como um grande repositrio de dados binrios (e realmente o que ele ). A tabela de parties tem a funo de dizer onde comea, onde termina e qual o tipo de sistema de arquivos de determinada partio. Ela fica localizada em uma rea especfica no incio do disco rgido, onde o sistema operacional pode ler e saber a localizao de todas as parties. Inicialmente, s era possvel criar 4 parties em um disco rgido. Onde cada uma delas poderia receber seu prprio sistema de arquivos diferente. Exemplo:
+---------------+----------------+---------------+---------------+ | Partio 1 | Partio 2 | Partio 3 | Partio 4 | +---------------+----------------+---------------+---------------+
Com o tempo, tornou-se necessrio um nmero maior de parties, e foi a que definiram os tipos de parties: primrias, extendida e lgicas.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Parties primrias
As parties primrias so as parties que geralmente recebem um sistema operacional, e costumam ficar situadas no incio de um disco particionado. Foram os primeiros tipos de parties inventadas, no tempo em que s poderiam existir apenas 4 parties. Essa limitao existe at hoje com esse tipo de partio, pois s podem haver 4 parties primrias em um disco rgido. Caso haja necessidade de ter mais parties em um sistema, necessrio conhecer os outros 2 tipos de parties: extendida e lgicas. Uma partio primria pode receber dados (sistemas de arquivos), mas no outras parties diretamente.
A partio extendida
Para sanar o problema de limitao de at 4 parties no disco, foi desenvolvida a partio primria, que no pode receber dados (sistemas de arquivos) diretamente, mas sua finalidade alojar sub-parties, as chamadas parties lgicas. No pode existir mais de uma partio extendida no mesmo disco rgido.
As parties lgicas
Como complemento partio extendida, foram desenvolvidas as parties lgicas, que no passam de simples parties alojadas dentro de uma partio extendida. Uma partio lgica pode receber sistemas de arquivos normalmente, assim como uma partio primria, e seu principal motivo de existncia a necessidade de se ter mais do que 4 parties num disco rgido. Por exemplo, se precisarmos ter 6 parties em um disco rgido, criaramos: 3 primrias, 1 extendida e mais 3 lgicas dentro da extendida. Repare que no se deve considerar a partio extendida como uma partio vlida, visto que ela no recebe dados diretamente, somente por intermdio de parties lgicas. Vejamos como isso ficaria:
Conseguimos ter 6 parties de dados no mesmo disco rgido. O limite de parties lgicas no disco rgido de 12 parties, o que limita um disco ter no mximo 15 parties de dados mais uma extendida. ___________________________________________________________________________ Pg. 148
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Onde dispositivo de bloco um disco rgido (como /dev/hda ou /dev/sdc, por exemplo), na maioria das vezes. O comando suporta poucas opes (pelo menos do lado de fora). Uma delas a opo -l, que exibe a tabela de parties de determinado dispositivo dado como argumento, ou de todos os dispositivos conhecidos. A opo -s mostra o tamanho, em blocos, de determinado dispositivo ou partio. Para entrarmos no modo interativo do utilitrio fdisk, basta especificar um dispositivo de blocos vlido. Exemplo:
# fdisk /dev/hda O nmero de cilindros para este disco est configurado para 238216. No existe nada de errado, mas isto maior que 1024, e pode em certas configuraes causar problemas com: 1) programas que executam em tempo de inicializao (verses velhas do lilo) 2) inicializao e programas de particionamento de outros OSs (p.ex., DOS FDISK, OS/2 FDISK) Comando (m para ajuda):
Na tela inicial do fdisk, caso o disco possua mais do que 1024 cilindros, seremos presenteados com a mensagem de alerta acima. O fdisk funciona com base em letras especiais que definem comandos. Digite [M] (seguido de enter...) para visualizar a tela de ajuda. A tela de ajuda mostra os comandos possveis com o fdisk.
Comando - ao a alterna a opo "inicializvel" b edita rtulo BSD no disco c alterna a opo "compatibilidade" d exclui uma partio l lista os tipos de partio conhecidos m mostra este menu n cria uma nova partio o cria uma nova tabela de parties DOS vazia p mostra a tabela de parties q sai sem salvar as alteraes s cria um novo rtulo de disco Sun vazio t altera a identificao da partio para o sistema u altera as unidades das entradas mostradas
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
v w x verifica a tabela de parties grava a tabela no disco e sai funcionalidade adicional (somente para usurios avanados)
Vamos agora seguir um passo a passo para excluir, adicionar e modificar o tipo de uma partio. NOTA Somente o usurio root pode utilizar o fdisk. No prompt do fdisk, utilize a opo [p] para mostrara tabela de parties, que no meu sistema, tem o seguinte aspecto:
Comando (m para ajuda): p Disk /dev/hda: 122.9 GB, 122942324736 bytes 16 heads, 63 sectors/track, 238216 cylinders Units = cilindros of 1008 * 512 = 516096 bytes Dispositivo Boot Start End Blocks Id System /dev/hda1 * 1 40640 20482528+ 83 Linux /dev/hda2 40641 238216 99578304 f W95 Ext'd (LBA) /dev/hda5 40641 237214 99072823+ 8e Linux LVM /dev/hda6 237215 238216 504976+ 82 Linux swap
Repare na coluna Id, que mostra o cdigo que identifica o tipo de sistema de arquivos presente na partio. O Linux conta com diversos tipos, dos quais os principais so: 83 para parties de dados e 82 para parties swap. importante lembrar que todas as alteraes feitas na tabela de parties s tero efeito se utilizarmos a opo [w] do fdisk, que salva as alteraes. Antes de criar uma partio, preciso ter espao no particionado no disco e no infringir as regras dos tipos de parties (Tentar criar 5 parties primrias, por exemplo). No exemplo, vamos excluir uma partio antes de criar uma outra.
Comando (m para ajuda): d Nmero da partio (1-6): 6 Comando (m para ajuda): p Disk /dev/hda: 122.9 GB, 122942324736 bytes 16 heads, 63 sectors/track, 238216 cylinders Units = cilindros of 1008 * 512 = 516096 bytes Dispositivo Boot Start End Blocks /dev/hda1 /dev/hda2 /dev/hda5 * 1 40641 40641 40640 238216 237214 20482528+ 99578304 99072823+ 83 f 8e
Id
Utilizamos a opo [d] para apagar a partio 6 do dispositivo /dev/hda. Agora vamos criar uma nova partio no espao no particionado, logo depois vamos modificar seu tipo para 82 (Partio SWAP).
Comando (m para ajuda): n Comando - ao l lgica (5 ou superior) p partio primria (1-4) l Primeiro cilindro (237214-238216, default 237214): Using default value 237214
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
ltimo cilindro ou +tamanho ou +tamanho M ou +tamanho K (237214-238216, default 238216): Using default value 238216 Comando (m para ajuda): p Disk /dev/hda: 122.9 GB, 122942324736 bytes 16 heads, 63 sectors/track, 238216 cylinders Units = cilindros of 1008 * 512 = 516096 bytes Dispositivo Boot Start End Blocks Id System /dev/hda1 * 1 40640 20482528+ 83 Linux /dev/hda2 40641 238216 99578304 f W95 Ext'd (LBA) /dev/hda5 40641 237214 99072823+ 8e Linux LVM /dev/hda6 237214 238216 505102+ 83 Linux Comando (m para ajuda): t Nmero da partio (1-6): 6 Cdigo hexadecimal (digite L para listar os cdigos): 82 O tipo da partio 6 foi alterado para 82 (Linux swap / Solaris) Comando (m para ajuda): p Disk /dev/hda: 122.9 GB, 122942324736 bytes 16 heads, 63 sectors/track, 238216 cylinders Units = cilindros of 1008 * 512 = 516096 bytes Dispositivo Boot Start End Blocks Id System /dev/hda1 * 1 40640 20482528+ 83 Linux /dev/hda2 40641 238216 99578304 f W95 Ext'd (LBA) /dev/hda5 40641 237214 99072823+ 8e Linux LVM /dev/hda6 237214 238216 505102+ 82 Linux swap / Solaris Comando (m para ajuda): q
Ao criarmos uma nova partio, o fdisk nos questiona, se possvel, sobre qual ser o tipo de partio (primria, extendida ou lgica), ou no pergunta quando a nica alternativa for lgica. Tambm somos questionados sobre o tamanho desejado da partio, com base em qual setor do disco ela comea e qual ela termina. Geralmente o setor de incio no preocupao, pois o fdisk assume o primeiro livre, o ltimo, caso no queiramos ocupar todo o espao disponvel, pode ser especificado em megabytes, por exemplo, no formato +XXXM, onde XXX o tamanho desejado em MB para a partio.
Sistemas de arquivos
Quando j se tem um espao particionado, ele ainda no est pronto para receber dados, pois precisa de um sistema de arquivos. Um sistema de arquivos prepara o terreno da partio para que ela possa receber dados (arquivos e diretrios), pois o sistema de arquivos que gerencia a localizao dos arquivos na partio. Ele faz isso subdividindo a determinada partio em blocos menores denominados clusters. No Linux, os sistemas de arquivos so, na sua maioria, baseados em inodes. Inodes so uma espcie de ndice numrico para os arquivos no sistema. O Linux compatvel com uma vasta gama de sistemas de arquivos, at mesmo de outros sistemas, como FAT32 ou NTFS. Mas os principais sistemas de arquivos nativos do Linux so: ext2, ext3 e reiserfs.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Antes de prosseguir, preciso conhecer um pouco sobre cada um desses sistemas de arquivos para que possamos selecionar qual melhor se encaixa em determinada situao.
Funcionamento do journaling
O journaling um recurso presente em diversos sistemas de arquivos, no s no ext3. Quando um sistema de arquivos conta com journaling, todos os dados que entram na fila de escrita so anotados no journaling antes da operao (alguns sistemas adicionam outros diferenciais mais complicados, mas isso no vem ao caso agora). Quando a operao de cada um deles concluda, os dados so removidos do journaling. Resumidamente, o journaling armazena informaes sobre o as operaes de escrita que esto para ocorrer. Caso ocorra uma queda de energia ou qualquer outra coisa que venha a parar o sistema no meio de uma operao de escrita, ao ser reiniciado, o sistema de arquivos verifica as informaes que ficaram no journaling e ento somente as reas afetadas por essas operaes marcadas no journaling que sero verificadas pelo utilitrio fsck. O journaling no torna as operaes de escrita mais lentas a ponto de causar perca de performance que justifique o ganho de confiabilidade. importante lembrar que o journaling desses sistemas de arquivos por padro convive na mesma partio que os dados, e ocupa um determinado espao para isso.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes O reiserfs utiliza um algoritmo interno (que geralmente o chamado r5, r6 ou o rupasov.) para ordenar os nomes de arquivos pelo sistema. O que o torna muito rpido com arquivos pequenos e uma grande quantidade de arquivos no mesmo sistema. Ele tambm conta com journaling, como o ext3.
A opo -n instrui ao utilitrio para no verificar por bad-blocks no disquete. Agora, para formatar o disquete com o sistema de arquivos ext2, utilizamos:
# mkfs.ext2 /dev/fd0
Esse passo exatamente igual para parties, basta apontar para a partio que deseja formatar, como /dev/hda6, por exemplo.
Essa associao entre um diretrio e um dispositivo de blocos recebe o nome de montagem. Para ___________________________________________________________________________ Pg. 154
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes cumprir essa tarefa, utilizamos o comando mount (consulte a man page para maiores detalhes sobre sistemas de arquivos). Sintaxe:
mount [opo] [dispositivo] [ponto de montagem]
Portanto, vamos utilizar o comando mount para montar o disquete recm-formatado no diretrio /floppy (ou /mnt/floppy em sistemas RedHat like)
# mount /dev/fd0 /floppy # df -h # mount
O comando df -h exibe informaes sobre os sistemas de arquivos montados, assim como a utilizao de cada um. O comando mount, sem nenhum argumento, mostra uma lista com detalhes dos sistemas de arquivos montados. Para desmontar um sistema de arquivos, basta executar /ponto/de/montagem ou umount dispositivo, conforme abaixo:
# umount /floppy
comando umount
O umount no permite desmontarmos dispositivos que estejam em uso. Portanto, no tente desmontar caso esteja no ponto de montagem do dispositivo desejado. S se pode remover o disquete da unidade quando ele estiver desmontado. Contrariar essa regra pode causar perda de dados. Isso ocorre porque os dados enviados para um ponto de montagem de um disquete ou alguns tipos de unidades de rede no so gravados imediatamente na mdia. Para forar um sincronismo momentneo e gravar os dados pendentes no disquete, utilize o comando sync, sem parmetros. O arquivo /etc/fstab Este arquivo serve de configurao para os pontos de montagem fixos do sistema. Toda vez que adicionarmos uma nova partio de dados no sistema, esse arquivo deve ser editado para as novas necessidades. Os pontos de montagem so definidos um por linha nesse arquivo, da seguinte forma:
/dev/hda1 / reiserfs defaults 0 1
So 6 colunas que devem estar preenchidas para que a entrada funcione. Da primeira para a ltima, os significados das colunas so: Dispositivo de bloco, ponto de montagem, sistema de arquivos, opes de montagem (consulte a man page para as opes disponveis para cada sistema de arquivos), dump (Se o dispositivo pode ou no ter backup atravs do dump) e o nvel de passagem. Nvel de passagem define em que ordem os sistemas de arquivos devem ser verificados pela ferramenta fsck durante a inicializao, do menos para o maior. O valor 0 desabilita a checagem. ___________________________________________________________________________ Pg. 155
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Todo ponto de montagem presente nesse arquivo pode ser montado com menos opes, pois o mount automaticamente busca as outras opes no arquivo.
Tabela de parmetros -C Exibe progresso da verificao. -A Verifica todos os dispositivos encontrados em /etc/fstab. Utilizado junto opo -A. Diz ao fsck para ignorar a verificao do -R dispositivo que contenha o sistema de arquivos raiz. Modo verbose. Exibe mais informaes sobre os comandos sendo -V executados. Fora o fsck a rodar interativamente. Pedindo confirmaes para todas -r as questes. Responde yes (Sim) para todas as questes automaticamente. Utilize -y com cuidado. Exemplo:
# fsck -y /dev/fd0
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Habilitando as quotas
O primeiro passo habilitar as quotas, que podem ser por usurios ou por grupos, no respectivo ponto de montagem em /etc/fstab. Para habilitar quotas para usurios, adicione a opo usrquota ao ponto de montagem. Para grupos, a opo grpquota. Abaixo adicionamos as duas opes uma entrada do arquivo /etc/fstab:
/dev/sdb1 /home ext3 defaults,usrquota,grpquota 0 1
Este ltimo comando deve ser rodado periodicamente para garantir a integridade das quotas.
hard 0
inodes 21
soft 0
hard 0
Ao executar o comando, entramos em uma espcie de edio de arquivo, onde podemos visualizar o quanto em blocos (mltiplo de 1024bytes, ou 1KB) e inodes o usurio est consumindo e definir dois limites para ambos: O soft limit e o hard limit. O soft limit costuma ser um limite inferior e prximo ao limite mximo de utilizao de espao de armazenamento. Quando um usurio atinge seu soft-limit, desde que ainda esteja abaixo do hard-limit, ele entra em um perodo chamado grace time, que por padro 7 dias, mas pode ser modificado com o comando edquota -t. O hard-limit o limite mximo de utilizao de armazenamento. Os limites soft e hard existem tanto para a utilizao de espao em quanto para a utilizao de inodes, como podem ver no arquivo de quota do usurio. Para editar as quotas para um grupo, utilizamos: edquota -g grupo disco
Verificando as quotas
___________________________________________________________________________ Pg. 157
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Para listar a utilizao das quotas, utilizamos o comando repquota pontos de montagem com quotas habilitadas).
-a
(Mostra de todos os
Para garantir a correta integridade das quotas, sempre execute o comando quotacheck -av.
A funo do comando dd copiar bits de um lado (if) para outro (of). Estamos tirando bits de / dev/zero (que um dispositivo especial que serve esse propsito) e os enviando para o arquivo /swap, com 128000 blocos de 1024 (1KB) de tamanho cada um. Faa as contas e descubra o tamanho de nosso futuro arquivo de swap.
# mkswap /swap Setting up swapspace version 1, size = 131067904 bytes # cat /proc/swaps
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Filename /dev/sda1 Type partition Size 64256 Used 2244 Priority -1
Utilizamos o comando mkswap para formatar o arquivo /swap no formato de swap. O arquivo /proc/swaps nos d informaes sobre quais dispositivos de swap esto ativos no momento. Repare que o arquivo ainda no est listado.
# swapon /swap # cat /proc/swaps Filename /dev/sda1 /swap
Used 2244 0
Priority -1 -2
Agora sim, aps utilizar o comando swapon finalmente ativamos nosso arquivo de swap. Vejamos abaixo como desabilitar uma swap:
# swapoff /swap # cat /proc/swaps Filename /dev/sda1 Type partition Size 64256 Used 2244 Priority -1
Pronto. muito simples: swapon liga a swap e swapoff desliga. Observao Para ativar uma swap na inicializao, configure-a no arquivo /etc/fstab.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
PROCESSO DE INICIALIZAO
As riquezas granjeiam muitos amigos, mas ao pobre, o seu prprio amigo o deixa
Provrbios 19.4
importante compreender tudo que envolve o processo de inicializao de um sistema Linux. Isso ajuda muito quando for preciso diagnosticar algum problema durante a inicializao, por exemplo.
drive de disco fle xv el
drive de CD-ROM
processador
chip CMOS
disco rgido
conectores
BIOS I OS
placas de expanso
O processo de inicializao consiste basicamente em 3 Etapas: Inicializao do hardware pela BIOS, carregamento do gestor de boot (responsvel por carregar o kernel) e os processos de init. A inicializao do hardware feita pela bios consiste no POST (Power On Self Test) e na busca de informaes de boot no MBR (Master Boot Record) do dispositivo que estiver configurado como inicializvel na BIOS.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Gerenciadores de boot
Um gerenciador um software que geralmente fica instalado no MBR de um disco rgido e tem a finalidade de gerenciar a carga de sistemas operacionais. No caso do Linux, o gestor de boot tem a misso de carregar o kernel do para a memria e entregar o comando para o sistema operacional. Essa etapa do processo exige que o administrador tenha conhecimento sobre um gestor de boot no Linux. Existem 2 gestores de boot mais famosos para Linux: o lilo e o grub.
Lilo
Esse gestor de boot bem maduro e oferece configurao simples. A maioria das distribuies j optou ou ainda opta por ele, pois algumas j esto definindo o grub como gestor de boot padro. Abordaremos uma configurao bsica do lilo, que permita o sistema inicializar e cumprir seu dever.
Configurando o lilo
A configurao do lilo consiste em apenas 1 arquivo, o /etc/lilo.conf. nesse arquivo que definimos as opes que desejamos para o boot. Seguem um exemplo de um tpico lilo.conf:
lba32 boot=/dev/sda root=/dev/sda2 install=/boot/boot-menu.b map=/boot/map delay=20 vga=normal append=pci=bios default=Linux image=/vmlinuz label=Linux read-only
A opo lba32 diz ao lilo que o sistema est utilizando o modo de endereamento de disco LBA. A opo boot especifica em qual dispositivo instalar o gestor de boot. A opo root configura qual o dispositivo que contm o sistema de arquivos raiz do sistema. O gestor de boot precisa saber disso para que seja possvel localizar o programa /sbin/init, necessrio para dar continuidade ao processo de inicializao. A opo install especifica qual ser o arquivo binrio do gestor de boot que dever ser instalado. O lilo costuma contar com 3, todos dentro do diretrio /boot: bootmenu.b, boot-text.b e boot.b. A diferena entre eles o menu que aparece na inicializao. Se essa opo for omitida, o lilo assume /boot/boot.b. A opo map especifica o caminho para o arquivo de mapa de dos dispositivos. Esse arquivo j ___________________________________________________________________________ Pg. 161
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes acompanha o lilo e no deve ser preocupao. A opo delay especifica o tempo, em dcimos de segundos que o lilo aguardar at carregar a imagem padro. A opo vga configura qual ser a resoluo do console aps carregar o kernel. Se o seu kernel suportar framebuffer, tente valores como vga=771 (800x600), ou vga=773 (1024x768). A opo append permite passarmos parmetros de inicializao para o kernel. A opo default indica qual ser a imagem padro. Podem existir mais de uma entrada do tipo image no arquivo. Cada uma delas refere-se a um sistema operacional (podem ser vrios kernel's para o mesmo sistema). Essa opo aponta para o arquivo de kernel do Linux, que nesse caso aponta para um link simblico presente em todos os sistemas Debian (/vmlinuz). Aps editar o arquivo conforme suas necessidades, podemos test-lo, antes de mais nada, com o comando:
# lilo -t Added Linux * The boot sector and the map file have *NOT* been altered.
Uma vez que o comando no tenha apresentado nenhum erro, podemos prosseguir com a instalao do gestor de boot, basta digitar o comando:
# lilo Added Linux *
Nesse momento, o lilo leu as configuraes do arquivo /etc/lilo.conf e gravou no dispositivo especificado na opo boot. Agora basta reiniciar o sistema e testar.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
GRUB
GRUB um gestor de boot mais recente com mais recursos que o lilo. A principal diferena entre o lilo e o grub, alm dos arquivos de configurao, que o grub no requer que o setor de boot seja regravado sempre que modifique alguma configurao. Os arquivos de configurao do grub ficam localizados no diretrio /boot/grub por padro. ATENO O grub no costuma vir instalado por padro em algumas distribuies. Se for esse o caso, instale o pacote que provm o grub para sua distribuio. No Debian, o pacote se chama grub. O principal arquivo de configurao o /boot/grub/menu.lst, onde definimos a aparncia e as opes disponveis no gestor de boot. Segue um exemplo de um arquivo /boot/grub/menu.lst:
default=0 timeout=10 splashimage=(hd1,0)/grub/splash.xpm.gz title Primeira Opo root (hd1,0) kernel /arquivo_do_kernel ro vga=771 root=/dev/hda2 initrd /arquivo_da_initrd.img title Segunda Opo root (hd1,0) kernel /arquivo_do_kernel2 ro vga=771 root=/dev/hda2 initrd /arquivo_da_initrd-2.img
As 3 primeiras linhas contemplam a seo global do arquivo, e definem, respectivamente, qual ser a opo padro de inicializao (Conta-se a partir do 0), quanto tempo (em segundos) devese esperar por interao do usurio at que seja carregada a opo padro, e qual o arquivo de imagem que ser mostrado na tela do grub. As outras entradas do arquivo so as entradas de boot, que definem as opes que ficam selecionveis no menu do grub. Cada uma dessas entradas consiste em um bloco de configurao que comea com a diretiva image. O exemplo acima possui 2 dessas entradas. Vamos analisar as opes presente nesse tipo de entrada:
title Primeira Opo root (hd0,0) kernel /arquivo_do_kernel ro vga=771 root=/dev/hda2 initrd /arquivo_da_initrd.img
Todo o texto localizado aps a opo title o texto que ser exibido no menu de seleo do grub. Para que possamos especificar caminhos de arquivos nas prximas opes do grub, precisamos definir qual ser a partio que o grub ir procurar os dados; fazemos isso com a opo root. Repare que a partio foi especificada de uma maneira proprietria do grub: (hd0,0). Isso acontece porque o grub utiliza uma nomenclatura prpria de dispositivos para facilitar sua configurao. ___________________________________________________________________________ Pg. 163
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Vejamos na tabela abaixo como o grub se comporta nesse aspecto: Sistema de dispositivos do GRUB (hd0) Primeiro disco rgido disponvel (hda ou sda) (hd0,0) Primeira partio do primeiro disco disponvel (hda1 ou sda1) (fd0) /dev/fd0 (hd3,2) Terceira partio do quarto disco rgido (hdd3 ou sdd3) Caso o sistema possua discos de tecnologia diferentes associados, como SCSI e IDE, pode ser necessrio editar o arquivo /boot/grub/ device.map para definir quais sero os respectivos dispositivos no grub.
O parmetro kernel especifica qual ser o arquivo do kernel associado com aquela entrada de boot, lembrando que a principal finalidade de um gestor de boot no Linux carregar um Kernel e entregar o restante do processo de inicializao ao sistema operacional recm-carregado. Repare que so passados alguns parmetros de inicializao para o kernel (todos esses na mesma linha). O mais importante desses parmetros o parmetro root, que especifica qual ser a partio que contm o sistema de arquivos raiz, pois l onde o kernel ir procurar pelo programa /sbin/init, que o prximo passo do processo de inicializao. s vezes necessrio especificar a opo initrd, que aponta para um arquivo de initrd para o respectivo kernel. Uma initrd um arquivo que contm mdulos necessrios para que o kernel consiga enxergar o restante do sistema de arquivos e dar procedncia ao processo de inicializao. Exemplos desses mdulos so controladoras de disco e sistemas de arquivos.
Isso instalar o grub no MBR do disco rgido. Com o grub instalado e tudo configurado corretamente, o usurio deve ser presenteado com um menu para a seleo das entradas de boot configuradas no arquivo /boot/grub/menu.lst. Neste menu, podemos editar temporariamente as opes das entradas de inicializao pressionando a tecla [E] sobre uma delas. As outras teclas de navegao so mostradas no rodap da tela. ___________________________________________________________________________ Pg. 164
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
O processo de init
A terceira etapa de inicializao se d incio assim que o gestor de boot consegue carregar o kernel e passa o controle ao sistema operacional (O kernel...) do restante do processo. A misso agora configurar os dispositivos do sistema e inicializar os programas que estiverem marcados para tal. Logo aps o kernel ser carregado, ele tenta montar como somente leitura a partio raiz do sistema, que foi especificada atravs do parmetro root durante a inicializao pelo gestor de boot. Assim que a partio raiz estiver montada, o kernel procura e executa o programa /sbin/init, com base nas opes encontradas no arquivo /etc/inittab, para inicialmente definir o Nvel de execuo do Kernel.
2 3 4
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Semelhante ao nvel 3, com todos os processo ativos, porm com uma interface grfica de logon Modo reboot. Envia um sinal para o Kernel finalizar e reiniciar o 6 sistema. de extrema importncia que o administrador conhea bem quais so e para que serve os nveis de execuo. Podemos, a qualquer momento, utilizar o comando runlevel para descobrir que o nvel de execuo atual e tambm utilizar o comando init <nvel desejado> para instruir o kernel a trocar o nvel de execuo atual. 5
O arquivo /etc/inittab
Este , logo aps o prprio kernel, o arquivo mais importante dessa etapa da inicializao. nele que se encontram os parmetros que guiam o sistema por todo o restante do processo. Cada entrada nesse arquivo tem o seguinte aspecto:
identificao:runlevels:ao:comando
Identificao uma string qualquer, geralmente pequena (1 ou 2 caracteres) e que no se deve repetir para nenhuma outra entrada no arquivo. Sua finalidade identificar a entrada no arquivo. O campo runlevels especifica em que nveis de execuo a linha deve ser analisada. J o campo ao especifica como deve ser o comportamento do comando executado no ltimo campo. O campo ao aceita palavras-chave que determinam essa caracterstica. Exemplos de palavras-chave so: respawn diz ao init para reiniciar o comando quando ele for finalizado; boot instrui o init a inicializar o processo durante o boot, ignorando o campo runlevels. Vejamos um exemplo do /etc/inittab em um sistema Debian tpico:
# grep ^[^#] /etc/inittab |nl 1 id:2:initdefault: 2 si::sysinit:/etc/init.d/rcS 3 ~~:S:wait:/sbin/sulogin 4 l0:0:wait:/etc/init.d/rc 0 5 l1:1:wait:/etc/init.d/rc 1 6 l2:2:wait:/etc/init.d/rc 2 7 l3:3:wait:/etc/init.d/rc 3 8 l4:4:wait:/etc/init.d/rc 4 9 l5:5:wait:/etc/init.d/rc 5 10 l6:6:wait:/etc/init.d/rc 6
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
11 12 13 14 15 16 17 18 19 20 21 z6:6:respawn:/sbin/sulogin ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
As linhas foram numeradas e os comentrios foram suprimidos para facilitar a leitura. O programa init l uma por uma as entradas e executa as operaes adequadas. Na linha 1 definido o nvel de execuo padro do sistema, na segunda linha invocado o script /etc/init.d/rcS, que desencadeia a estrutura de inicializao dos scripts cujo nome inicie com S no diretrio /etc/rcS.d; A linha 3 um adicional de segurana que impede acesso ao sistema no modo monousurio (O runlevel S igual 1) sem autenticao como root. As linhas 4 10 do procedimento a inicializao dos servios do sistema para cada runlevel (Repare que comente um desses ser executado, pois cada um equivale a um runlevel). Mais detalhes sobre esse processo em seguida. Na linha 12 configurado um trap para a seqncia de teclas [CONTROL]+[ALT]+[DEL], onde o comando shutdown ser invocado para reiniciar o PC. Essa linha pode ser comentada ou editada para as necessidades do administrador. As linhas 13, 14 e 15 configuram como o sistema deve agir no caso de falta de energia3. As ltimas linhas do arquivo configuram os terminais que estaro disponveis aps a inicializao. Repare a palavra-chave respawn nessas linhas... ela responsvel por disponibilizar novamente outro terminal quando samos de um.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
O script /etc/init.d/rc
Esse script responsvel por executar, na ordem correta, os scripts contidos no diretrio de inicializao de servios do runlevel atual. simples saber qual esse diretrio. Existe 1 diretrio para cada nvel de execuo, onde devem estar contidos links para os reais scripts de inicializao para cada servio em / etc/init.d.
O comando ls -l j mostra a lista na mesma ordem de execuo, e podemos ter uma base sobre o que ocorre nessa parte da inicializao. Repare que todas as entradas so links simblicos para os scripts contidos em /etc/init.d. O nmero contido no nome dado aos links para cada servio conhecido como nmero de prioridade do servio, pois por estar em ordem alfabtica, os servios com nmero de prioridade menor executaro primeiro.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
COMPACTADORES E ARQUIVADORES
Um termo muito comum no mundo GNU/Linux compactadores.So um grupo de ferramentas especializadas em compactar arquivos, tal como o Winzip2 faz no Windows. Iremos aprender a distino entre essas ferramentas e as caractersticas de cada algoritmo de compresso que eles utilizam. Os principais compactadores existentes no GNU/Linux so: gzip e bzip2. Veremos tambm o que significa o termo arquivadores e porque a ferramenta GNU tar um deles, e como ela se relaciona com os compactadores, possibilitando a execuo de backups do sistema.
Compactadores
Compactadores so os programas que apenas compactam os arquivos. A grande diferena entre compactadores e arquivadores deve ser bem observada: Os compactadores no agrupam diversos arquivos em um; Somente compactam separadamente.
A ferramenta gzip
O gzip uma das principais ferramentas GNU. Ele surgiu para ser o zip do Linux, porm, seu algoritmo de compresso no compatvel com o algoritmo do zip, originalmente desenvolvido p/ DOS e utilizado at hoje em sistemas de 32 bits Microsoft (Winzip, por exemplo). Gzip significa GNU zip, e seu algoritmo de compresso j bem superior ao do zip. Sintaxe:
gzip [opo] [-S sufixo] [arquivo...]
O sufixo, nesse caso, o texto que ser agregado ao final do nome do arquivo aps compactado. O padro (se ignorarmos o sufixo) .gz, uma espcie de extenso que identificaria o arquivo como sendo compactado pelo gzip. ATENO Aps compactado, o arquivo original sobrescrito, no restando uma cpia compactada no sistema. Somente depois de descompactar que o arquivo volta e o compactado desaparece. Tabela de parmetros -c --stdout Escreve na sada padro, no altera o arquivo original. -d --decompress Descompacta o arquivo. -f --force Fora a operao. -h --help Exibe a ajuda. -l --list Lista o contedo de um arquivo compactado. -L --license Mostra a Licena do programa. -n --no-name No salva ou restaura o nome original e tempos de acesso do arquivo. -N --name Salva ou restaura o nome original e tempos de acesso do arquivo. ___________________________________________________________________________ Pg. 169
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes -q --quiet -r --recursive -t --test -v --verbose -V --version -1 --fast -9 --best --rsyncable Exemplo A:
$ $ $ $ mkdir /tmp/teste-gzip ; cp -var /etc/*.conf /tmp/teste-gzip gzip -v -5 /tmp/teste-gzip/*.conf ls /tmp/teste-gzip gzip -v -d /tmp/teste-gzip/*.gz
Exibe menos informaes na tela. Age recursivamente em diretrios (No compacta diretrios, somente os arquivos contidos nele recursivamente). Testa a integridade de um arquivo compactado. Exibe mais informaes na tela. Mostra a verso do programa. Utiliza algoritmo de compresso simples. mais rpido, porm compacta menos. Utiliza algoritmo de compresso avanado. mais demorado, porm compacta melhor. Cria arquivos compatveis com o utilitrio rsync.
Exemplo B:
$ cat /etc/passwd |gzip > ~/passwd.gz $ file ~/passwd.gz ~/passwd.gz: gzip compressed data, from Unix
Exemplo muito interessante sobre como trabalhar com fluxos. Enviamos o fluxo de texto do arquivo /etc/passwd para a stdout e emendamos com o gzip atravs de um pipe. O gzip gera os dados em formato binrio para a sada padro dele, a qual redirecionamos para um arquivo de sada. possvel utilizar o comando gunzip para descompactar arquivos gzip tambm. Ele funciona como um gzip -d.
A ferramenta bzip2
Surgiu para ser o substituto do gzip. Serve ao mesmo propsito, porm possui um algoritmo de compresso muito mais eficiente, pois comprime muito mais. A diferena interna que o bzip2 trabalha com blocos de dados, por isso o b no incio do nome. Na verdade o bzip2 uma sute de ferramentas, que consiste em 4 programas: bzip2, bunzip2, bzcat e bzip2recover. O bzip2 o compactador em si, assim como o bunzip2 o descompactador. bzcat exibe o contedo de arquivos compactados pelo bzip2 e tambm serve para descompactar. O bzip2recover serve para recuperar arquivos bzip2 corrompidos. ___________________________________________________________________________ Pg. 170
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Sintaxe:
bzip2 [opes] [arquivos...] bunzip2 [-fkvsVL] [arquivos...] bzcat [-s] [arquivo...] bzip2recover arquivo
Tabela de parmetros -c --stdout Escreve na sada padro, no altera o arquivo original. -d --decompress Descompacta o arquivo. -f --force Fora a operao. -k --keep Mantm arquivos de entrada. -s --small Utiliza menos memria. -L --license Mostra a Licena do programa. -z --compress Fora compresso. -q --quiet Exibe menos informaes na tela. Age recursivamente em diretrios (No compacta diretrios, somente -r --recursive os arquivos contidos nele recursivamente). -t --test Testa a integridade de um arquivo compactado. -v --verbose Exibe mais informaes na tela. -V --version Mostra a verso do programa. Utiliza algoritmo de compresso simples. mais rpido, -1 --fast porm compacta menos. Utiliza algoritmo de compresso avanado. mais demorado, porm -9 --best compacta melhor. Exemplo:
$ $ $ $ mkdir /tmp/teste-bzip2 ; cp -var /etc/*.conf /tmp/teste-bzip2 bzip2 -v -5 /tmp/teste-bzip2/*.conf ls /tmp/teste-bzip2 bzip2 -v -d /tmp/teste-bzip2/*.bz2
Arquivadores
Arquivadores so programas capazes de juntar diversos arquivos e diretrios em um s arquivo. Os mais conhecidos para linux so as ferramentas GNU cpio e tar. Estudaremos aqui o tar.
A ferramenta tar
O tar a ferramenta de backup mais conhecida no mundo Linux. Ele capaz de arquivar diversos arquivos em um s, onde o arquivo de destino pode ser um simples arquivo no disco rgido ou uma unidade de fita, formando uma tima ferramenta de backup. Sintaxe:
tar [opes] [arquivos...]
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Tabela de parmetros Diz ao tar para criar um arquivo de backup, que deve ser especificado -c na opo -f. Instrui ao tar para extrair um arquivo tar, que tambm deve -x ser especificado pela opo -f. -t Testa arquivo tar, especificado pela opo -f. -v Modo verbose. Mostra mais informaes sobre a operao atual. Especifica qual o arquivo o tar ir trabalhar. No caso da opo -c, -f arquivo.tar caso no exista, o arquivo ser criado. Diz ao tar para preservar as permisses dos arquivos dentro do arquivo -p tar. Geralmente no necessrio, pois o tar costuma ter esse comportamento por padro. Instrui o tar a preservar a barra / no incio do nome dos arquivos. Por padro, o tar remove a / no incio dos nomes de -P arquivos que populem um arquivo tar, tornando-os todos os caminhos relativos. Ativa o algoritmo de compresso gzip no arquivo especificado pela -z opo -f. No pode ser utilizado em conjunto com a opo -j (algoritmo bzip2). Ativa o algoritmo de compresso bzip2 no arquivo -j especificado pela opo -f. No pode ser utilizado em conjunto com a opo -z (algoritmo gzip). -r Anexa arquivos no final de um arquivo tar. -u Atualiza o contedo de arquivos tar. -A Concatena outros arquivos tar em um arquivo tar. --help Exibe ajuda Exemplo:
# # # # # tar -cvf /tmp/backup.tar /etc mkdir /tmp/restore cd /tmp/restore/ tar -tvf /tmp/backup.tar tar -xpvf /tmp/backup.tar
Efetuamos o backup de todo o diretrio /etc no arquivo /tmp/backup.tar. Basta que o arquivo de destino seja um dispositivo de fita, como /dev/st0 por exemplo, para efetuarmos um backup em uma unidade de fita. Ao extrairmos o backup, foi criado o diretrio etc dentro do diretrio atual (/tmp/restore).
As famosas tarballs
Muita gente j deve ter ouvido falar de tarballs mas no sabe ao certo o que vem a ser uma delas, ou pelo menos no sabe como cri-las. As tarballs so simples de entender e de lidar, pois so arquivos normais do tar (Um arquivador....), compactados com algum algoritmo de compactao como gzip ou bzip2. Para lidar com tarballs, basta ativar a opo -z (gzip) ou j (bzip2) do tar. No exemplo abaixo, vamos fazer praticamente o mesmo que o exemplo anterior, ___________________________________________________________________________ Pg. 172
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes porm ativando um algoritmo de compactao. Exemplo A:
# # # # # tar -cvzf /tmp/backup.tar.gz /etc mkdir /tmp/restore cd /tmp/restore/ tar -tvzf /tmp/backup.tar.gz tar -xpvzf /tmp/backup.tar.gz
Repare que todas as operaes do tar somente foram acrescidas da opo -z, que ativa o algoritmo de compresso gzip, e utilizado inclusive junto da opo -t, que testa o arquivo tar. Quanto ao nome dos arquivos, de costume associar a extenso .tar.gz ou .tgz para arquivos arquivados pelo tar e compactados pelo algoritmo do gzip, e a extenso .tar.bz2 ou .tbz para arquivos arquivados pelo tar e compactados pelo algoritmo do bzip2. Exemplo B:
# # # # # tar -cvjf /tmp/backup.tar.bz2 /etc mkdir /tmp/restore cd /tmp/restore/ tar -tvjf /tmp/backup.tar.bz2 tar -xpvjf /tmp/backup.tar.bz2
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
Na multido das palavras no falta pecado, mas o que modera os seus lbios sbio
Provrbios 10.19
Comumente referenciado como Interface Grfica do Linux, o servidor grfico um componente muito complexo e importante do sistema. Atualmente existem 2 verses de servidor grfico para Linux: XFree86 e X.org. Ambos so configurados da mesma forma, e pelo menos at agora, no existem diferenas drsticas de configurao entre eles.
Funcionamento
A primeira coisa realmente importante nesse assunto saber distinguir o que vem a ser servidor grfico e gerenciador de janelas. O sistema X-WINDOW considerado um sistema cliente-servidor porque realmente ele . A funo do servidor grfico ter configurados ao menos os 4 dispositivos essenciais para gesto grfica (teclado, mouse, monitor e placa de vdeo) e disponibilizar acesso a esses recursos atravs de uma conexo de rede. Inclusive os processos grficos locais utilizam uma conexo de rede para que as aplicaes grficas (clientes do X-WINDOW) obtenham acesso aos 4 dispositivos.
Configurando o XFree86
O arquivo de configurao do XFree86 /etc/X11/XF86Config-4. definimos a resoluo, profundidade de cores e monitor, por exemplo. Vejamos um exemplo desse arquivo:
Section "Files" FontPath "unix/:7100" # local font server # if the local font server has problems, we can fal back on these FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/lib/X11/fonts/Type1" FontPath "/usr/lib/X11/fonts/CID" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/100dpi" FontPath "/usr/lib/X11/fonts/75dpi" EndSection Section "Module" # Load "GLcore" Load "bitmap" Load "dbe" Load "ddc"
nele
que
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
# Load "dri" Load "extmod" Load "freetype" # Load "glx" Load "int10" Load "record" Load "speedo" Load "type1" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xfree86" Option "XkbModel" "abnt2" Option "XkbLayout" "br" Option "XkbVariant" "abnt2" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/psaux" Option "Protocol" "PS/2" Option "Emulate3Buttons" "true" Option "ZAxisMapping" "4 5" EndSection Section "Device" Identifier "NVIDIA" Driver "nv" EndSection Section "Monitor" Identifier "Monitor Genrico" HorizSync 31.5-70 VertRefresh 50-120 Option "DPMS" EndSection Section "Screen" Identifier "Default Screen" Device "NVIDIA" Monitor "Monitor Genrico" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1152x864" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" EndSection
A configurao definida em sees, como InputDevice para teclado e mouse, Monitor para o monitor, Device para placa de vdeo e Screen para a aparncia da tela. ___________________________________________________________________________ Pg. 175
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes A seo ServerLayout define quais sees fazem parte da estrutura de configurao. Para configurar esse arquivo no Debian, o dpkg disponibiliza um timo helper. Digite: dpkg-reconfigure xserver-xfree86 para acion-lo.
Inicializando o XFree86
Aps configurado, j podemos utilizar o comando startx (nenhum outro servidor grfico deve estar rodando no momento) para inicializar o servidor grfico. Para se ter algo mais funcional, precisamos de um ambiente desktop completo (gerenciador de janelas) e um gerenciador de login. Para instalar os pacotes necessrios no Debian, utilize:
dselect install gnome-desktop-environment
Isso instalar os componentes principais do gnome junto com seu gerenciador de login, o gdm. Aps os pacotes instalados e configurados, basta iniciar o servio gdm para ter acesso a um ambiente grfico completo e funcional.
Onde 192.168.X.X o endereo IP do host que tentar a conexo com esta mquina. Agora, no host que originar a conexo, preciso exportar a varivel DISPLAY para que redirecione as chamadas grficas para o outro host. Vejamos:
$ echo $DISPLAY :0.0 $ export DISPLAY=192.168.Y.Y:0.0
Onde 192.168.Y.Y o ip do servidor ao qual pretende se conectar. A partir de agora, todo cliente grfico que for inicializado executado pelo servidor grfico no computador de destino. Faa o teste. nesse host ser
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
AGENDAMENTO DE TAREFAS
Na gama de conhecimento de um administrador de sistemas GNU/Linux essencial constar Agendamento de Tarefas, uma atividade muito importante que facilita bastante a vida de qualquer administrador. No Linux, contamos com diversos programas que lidam com agendamento de tarefas, mas o prin cipal deles o cron.
Cron
O cron um programa que roda em background (um daemon) e cuida de executar tarefas pragendadas por usurios do sistema periodicamente atravs das chamadas crontabs. Existem, basicamente, 3 maneiras diferentes de se agendar uma tarefa utilizando o cron. Pode- se editar diretamente o arquivo de configurao /etc/crontab, adicionar um script em um dos diretrios de agendamento do cron (/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.d) ou atravs do comando crontab. Veremos as diferenas.
O arquivo /etc/crontab
Esse o arquivo principal de configurao do cron. Somente o usurio root tem permisso para editar esse arquivo diretamente. Esse arquivo pode receber 2 tipos de entradas: Variveis de ambiente que sero vlidas para os comandos agendados no CRON e entradas de agendamento, que devem seguir o padro abaixo:
m h d M s usuario comando
No exemplo acima, cada um dos 5 primeiros campos tem um significado que influencia diretamente na periodicidade do agendamento. Vejamos o significado de cada um desses campos: Significado dos campos m Minuto (0 a 60) h Hora (0 a 23) d Dia do ms (1 a 31) M Ms do ano (1 a 12) s Dia da semana (0 a 7, sendo que 0 e 7 domingo) Dessa forma, basta agendar uma linha de agendamento para cada evento desejado. Vamos verificar alguns exemplos de agendamentos:
35 0 * * *
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
*/5 8-18 * * 1-5
A cada 2 horas, nos minutos 10 e 50, sempre no dia 1 de maro. ATENO Para que qualquer tipo de agendamento funcione, preciso que o daemon do cron (crond) esteja em execuo.
O diretrio /etc/cron.d
Tambm possvel agendar tarefas no cron criando-se arquivos de agendamento no diretrio /etc/cron.d. Estes arquivos devem seguir o mesmo formato que as entradas de agendamento do arquivo /etc/crontab.
A opo -u permite que o root gerencie crontabs de outros usurios. A opo -e (edit) abre o modo de edio da crontab para o usurio. A opo -l (list) mostra a crontab do usurio na tela e a opo -r (release) limpa a respectiva crontab. Ao invocar o crontab com a opo -e, aberto o editor padro (geralmente o vim) para permitir editar o arquivo de crontab do usurio, que s pode ser editado dessa forma. ___________________________________________________________________________ Pg. 178
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes A grande diferena de se agendar tarefas dessa forma que no precisamos especificar a qual usurio o agendamento se refere na linha de configurao, pois a crontab inteira pertence a determinado usurio. Vejamos um exemplo:
$ crontab -e 0 0 * * * /home/usuario/bin/script.sh :wq crontab: installing new crontab $ crontab -l 0 0 * * * /home/apostila/bin/script.sh $ crontab -r $ crontab -l no crontab for usuario
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
BIBLIOTECAS COMPARTILHADAS
O que lavra a sua terra se fartar de po; mas o que segue os ociosos se encher de pobreza
Provrbios 28.19
O sistema GNU/Linux estruturado de forma que bibliotecas de funes de cdigo presentes em determinados programas possam ser compartilhadas para utilizao em qualquer outro programa que saiba fazer uso delas, criando um repositrio de funes de cdigo. Imagine o programa A, que possui bibliotecas com funes de criao de objetos grficos na tela, como janelas, por exemplo. Agora imagine o programa B, que Oferece uma interface grfica para determinadas tarefas administrativas do sistema. Nesse caso, o programa A compartilha suas bibliotecas com o restante do sistema, e o programa B utiliza algumas delas para prover as funes de acesso a interface grfica. As bibliotecas compartilhadas so uma das maiores responsveis pelo sucesso das ferramentas Linux hoje em dia, pois permite que um programador junte caractersticas j existentes de outros programas suas criaes.
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
libc.so.6 => /lib/tls/libc.so.6 (0xb7e9f000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7e90000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000) Para uma listagem mais completa, adicione o parmetro -v ao comando ldd, veja: # ldd -v /bin/tar librt.so.1 => /lib/tls/librt.so.1 (0xb7fd4000) libc.so.6 => /lib/tls/libc.so.6 (0xb7e9f000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7e90000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000) Version information: /bin/tar: librt.so.1 (GLIBC_2.2) => /lib/tls/librt.so.1 libc.so.6 (GLIBC_2.3) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.2.3) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.2) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.1) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.0) => /lib/tls/libc.so.6 /lib/tls/librt.so.1: libpthread.so.0 (GLIBC_2.0) => /lib/tls/libpthread.so.0 libpthread.so.0 (GLIBC_2.1) => /lib/tls/libpthread.so.0 libpthread.so.0 (GLIBC_PRIVATE) => /lib/tls/libpthread.so.0 libc.so.6 (GLIBC_2.1.3) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.2) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.0) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.1) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_PRIVATE) => /lib/tls/libc.so.6 /lib/tls/libc.so.6: ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2 ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2 ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2 ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2 /lib/tls/libpthread.so.0: ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2 libc.so.6 (GLIBC_2.1.3) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.1) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.0) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.2) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_2.1.2) => /lib/tls/libc.so.6 libc.so.6 (GLIBC_PRIVATE) => /lib/tls/libc.so.6
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
GERENCIAMENTO DE PROCESSOS
O que se ccompadece do pobre empresta ao Senhor, que lhe retribuir
Provrbios 19.17
No Linux, ou mais especificamente em todos os sistemas operacionais que seguem o padro POSIX de desenvolvimento (todos os Unix, Linux e BSDs), utilizam um sistema de gerenciamento de processos. esse sistema que permite a execuo simultnea de programas no mesmo computador, e isso transcorre de maneira simples de se entender. Basicamente, cada programa em execuo pode desencadear a execuo de outros sub-programas, mas todos no geral so denominados um a como com sendo processos. Cada processo recebe um identificador numrico crescente que o diferencia dos demais; Esse identificador numrico recebe o nome de PID, e significa Process Identification. O PID nosso termo-chave para gerenciarmos os processos, conforme veremos adiante.
Listando processos
Para ter uma viso geral ou em algumas ocasies, especfica sobre quais processos esto em execuo em um computador sob o sistema operacional Linux, contamos com diversas ferramentas, das quais as mais importantes so: ps e top.
O comando ps
A ferramenta ps utilizada para mostrar os processos em execuo no sistema, permitindo listar processos que coincidam com determinados argumentos como o usurio que originou o processo ou o PID. Sintaxe:
ps [opoes]
O comando, apesar de ter um nome pequeno, possui uma grande gama de opes, divididas em 3 grupos: UNIX, BSD e GNU. Isso existe no Linux para manter compatibilidade com o comando ps de outros sistemas, permitindo que administradores experientes em UNIX no encontrem dificuldades em manipulas o ps no Linux, pois as mesmas opes do UNIX tambm so aceitas. Isso complica um pouco a vida de quem est aprendendo o ps agora. Portanto, fique atento nos parmetros para saber a quais grupos eles pertencem. As opes do UNIX so precedidas por hfem, e podem ser agrupadas, desde que a primeira ___________________________________________________________________________ Pg. 182
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes opo do grupo possua o hfem (Ex.: ps -ax). As opes do BSD no so precedidas por nada e podem ser agrupadas facilmente (EX.: os axef). J as opes GNU, que so exclusivas do Linux e tm um formato caracterstico bem diferente, pois so todas precedidas por dois hfens e no podem ser agrupadas (Ex.: ps user usuario). Confundir as opes pode trazer resultados tambm confusos. Por exemplo, o comando ps aux, no tem a mesma interpretao que o comando ps -aux, que sob os padres POSIX do UNIX, mostraria todos os processos (opo -a) que pertenam ao usurio x (a opo -u especifica um usurio. graas a astutez do Linux, os dois comandos teriam o mesmo resultado, desde que o usurio x no exista no sistema, pois o ps verifica isso, e caso o usurio no existe, ele trata a sequncia como se fosse aux (sem hfem).
Tabela de Opes
Opo -A ou -e -a UNIX -u usuario(s) -t -p pid -C comando -g grupo(s) t a r BSD e x f --user usuario(s) --group grupo(s) --pid pid --tty tty Descrio Seleciona todos os processos. Seleciona todos os processos que estejam ligados a algum terminal, exceto lderes de seo (Geralmente o prprio interpretador de comandos do terminal) Mostra processos iniciados por determinado(s) usurio(s). Para especificar mais de um usurio, separe-os por vrgula. Mostra processos vinculados com determinado terminal. Mostra processo com determinado pid Mostra processos cujo nome do executvel coincida com comando Mostra processos iniciados por determinado(s) grupo(s). Para especificar mais de um grupo, separe-os por vrgula. Mostra todos os processos associados com o terminal atual. Mostra todos os processos associados com algum terminal, inclusive lderes de seo. Seleciona somente os processos em execuo (que estejam consumindo recursos de processamento) Mostra variveis de ambiente associadas com cada processo. Lista todos os processos pertencentes ao usurio atual. Bastante utilizado em conjunto com a opo a para mostrar todos os processos. Mostra os processos em hierarquia (Floresta). Idem a opo -u Idem a opo -g Idem a opo -p Idem a opo -t
Exemplo A:
# ps ax
Forma mais comum de se listar todos os processos. Nota: a sada do comando foi suprimida ___________________________________________________________________________ Pg. 183
GNU
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes pois ocuparia muito espao desnecessrio. Exemplo B:
# ps axef
Isso mostrar uma lista completa dos processos em execuo no sistema, de forma hierrquica e com informaes de variveis de ambiente para cada processo. Exemplo C:
# ps -p 6613 # ps -u apostila
Mostra informaes sobre o processo cujo pid seja 6613 (No esquea de mudar esse nmero e escolher um pid vlido no seu sistema no momento em que for testar). Em seguida, mostramos os processos pertencentes ao usurio apostila.
O comando top
De forma parecida com o ps, o top tambm mostra informaes sobre os processos em execuo, s que de uma forma diferente. Primeiro que ele ordena os processos com base em algum critrio (Utilizao de CPU, memria, etc....); Segundo que ele s mostra na tela a lista de processos que nela couber. ___________________________________________________________________________ Pg. 184
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Basta digitar o comando top para entrar no utilitrio. A sada do top dividida em 2 partes, um cabealho como o abaixo e a lista dos processos em si:
top - 01:51:03 up 12:21, 5 users, load average: 1.08, 1.18, 1.12 Tasks: 118 total, 1 running, 117 sleeping, 0 stopped, 0 zombie Cpu0: 11.7% us, 1.3% sy, 0.0% ni, 86.0% id, 0.0% wa, 1.0% hi, 0.0% si Cpu1: 11.0% us, 1.3% sy, 0.0% ni, 87.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 515232k total, 513008k used, 2224k free, 36144k buffers Swap: 504968k total, 0k used, 504968k free, 0k cached
Este cabealho exibe informaes importantes sobre a utilizao de recursos do sistema. Podemos observar nesse exemplo, que trata-se de um sistema multiprocessado e que a carga de CPU est em mdia 11% para cada CPU atualmente, que o sistema possui 512mb de ram e que existe pouco mais de 2mb livres (Obs.: perfeitamente normal existir pouca memria ram disponvel num sistema em execuo algum tempo). Importante ressaltar que o top se atualiza automaticamente a cada x segundos (3 por padro). Para forar uma atualizao imediatamente, pressione a barra de [espao]. Para Modificar o tempo de atualizao automtica do top, pressione a tecla [d] e digite o novo valor em segundos. Para obter uma lista dos possveis comandos do top, pressione a tecla [h]. Para sair do top, use a tecla [q].
Nveis de processos
Os processos so executados no sistema em diferentes camadas ao ponto de vista do usurio. Isso permite que o sistema seja realmente multitarefa e multiusurio. Os nveis de processos so: Foreground (Primeiro plano) e Background (Segundo plano). A maioria dos processos em execuo fica em background, mas algumas vezes iniciamos processos em foreground, como o top ou o editor vim, por exemplo. Um processo em foreground no permite utilizarmos o terminal para outras finalidades. Para iniciar um processo j em background, proceda o comando com o sinal de &, conforme abaixo:
# vi & [1] 19872
Isso inicializou um processo do vi, cujo pid 19872 e o identificador do trabalho 1 (veja mais sobre isso adiante). Para visualizar os processos em background, utilizamos o comando jobs:
# jobs [1]+ Stopped vi # jobs -l [1]+ 19872 Stopped (tty output)
vi
Repare que a opo -l do comando mostra tambm o pid do processo. O status Stopped ___________________________________________________________________________ Pg. 185
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes significa que o trabalho est parado, apesar de estar em segundo plano (Nem todo processo suporte ser executado em segundo plano, pois depende de interao do usurio). Para compreendermos melhor o gerenciamento de trabalhos, vamos iniciar mais um em background:
# updatedb & [2] 20002
Agora iniciamos um processo que suporta execuo em background, caso ele termine antes de passarmos pelos exemplos, execute o comando novamente e prossiga. Vejamos como ficou a lista de trabalhos:
# jobs [1]+ Stopped [2]- Running vi updatedb &
foreground,
utilizamos
comando fg (foreground),
updatedb vi updatedb
Pressionando [CONTROL]+[Z] enviamos o processo que est em foreground para background, mas ele fica com o status Stopped (Parado). Para instruir um trabalho nessa situao a continuar a rodar em segundo plano, digite bg (background) seguido do nmero do trabalho:
# bg 2 [2]+ updatedb & # jobs [1]+ Stopped [2]- Running
vi updatedb &
possvel cancelar a execuo de um trabalho em foreground com a sequncia de teclas [CONTROL]+[C]. Experimente fazer isso com o trabalho 2 do exemplo.
Sinalizando processos
possvel enviar sinais para os processos em execuo. Os sinais de processos foram criados com a finalidade de enviar instrues para os processos, ordenando-os a finalizar ou reiniciar por exemplo. Um comando capaz de enviar esses sinais para os processos o kill. Na pgina de manual possvel obter uma lista completa dos sinais disponveis. Os sinais mais conhecidos so: TERM, que diz ao processo para finalizar todos os seus subprocessos e fechar, KILL, que mata o processo sem esperar nenhuma finalizao e HUP, que diz ao processo para reiniciar. ___________________________________________________________________________ Pg. 186
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
O comando kill
Sintaxe:
kill [ -sinal | -s sinal ] pid ... kill -l [ sinal ]
Os principais sinais possuem um nmero associado: 15 TERM, 9 KILL. A lista completa pode ser vista na man-page do comando kill. Utilizamos o kill -l sinal para traduzir o sinal em seu respectivo nmero de sinal, e vice-versa. O sinal padro do kill o 15 (TERM). Para finalizar um processo som este sinal, basta digitar kill pid, onde pid o nmero do processo que deseja finalizar. Exemplos:
# kill -HUP 16384 # kill -9 14446 14447 15896 17894
O comando killall
De forma semelhante ao comando kill, o comando killall serve ao mesmo propsito: enviar sinais aos processos. S que o killall no recebe como argumentos os pids dos processos que deseja enviar o sinal, e sim o nome dos processos diretamente. Resumindo, ele envia sinais para os processos pelo nome. Nas verses mais recentes do Debian necessrio instalar o pacote psmisc para que o killall funcione. Sua sintaxe semelhante ao comando kill. O sinal padro tambm 15. Sintaxe:
killall [opes] [processo] [processo...]
Exemplo:
# killall -v -HUP cron
Isso enviar o sinal HUP para todos os processos de nome cron (que geralmente executado em todos os sistema). Note a utilizao da opo -v, que mostra na sada quais processos esto sendo sinalizados.
O comando killall5
A finalidade desse comando propagar um sinal (15 por padro) para todos os processos em execuo, com exceo dos iniciados pelo kernel e ele mesmo. Sintaxe:
killall5 [-sinal]
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Exemplo:
# killall 5 -HUP # killall 5 -9
O primeiro reinicia todos os processos, o segundo causa um holocausto nos processos, matando-os sem esperar por respostas. Caso queira executar um comando que permanea ativo mesmo depois de fechar o terminal atual, preceda-o com o comando nohup. Ex.: nohup updatedb &
Se no definirmos a prioridade desejada (de 19 -20), o nice assume a prioridade 10, mais baixa que o normal 0. Exemplo:
# nice -n 19 updatedb &
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes Vamos iniciar um processo, tomar nota de seu pid, e utiliz-lo para modificar sua prioridade de execuo. Exemplo:
# updatedb & [1] 7243 # renice 15 -p 7243 7243: prioridade antiga = 0; prioridade nova = 15 # renice -10 -p 7243 7243: prioridade antiga = 15; prioridade nova = -10
AES
ACADEMIA DE ENSINO SUPERIOR LINUX: Fundamentos de Administrao de Sistemas Prof. Erivelton Rodrigues Nunes
REFERNCIAS
[FERREIRA 2003] Linux Guia do Administrador do Sistema Ferreira, R.E. Editora Novatec So Paulo SP - 2003 [BALL 1999] Usando Linux Ball, H - Editora Campus Rio de Janeiro RJ 1999 [MORIMOTO 2006] Redes e Servidores Linux: guia prtico Morimoto, C.E. Sul Editores Porto Alegre RS - 2006 Guia Foca GNU/LINUX - http://focalinux.cipsga.org.br/ Programa Tcnico Cidado SUN MICROSYSTEMS Viva o Linux http://www.vivaolinux.com.br Guia do Sistema GNU/LINUX para o usurio Desktop Ednei Pacheco de Melo