Sei sulla pagina 1di 241

Administrao

de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga

Administrao

de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga

Administrao

de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga

Rio de Janeiro
Escola Superior de Redes
2013

Copyright 2013 Rede Nacional de Ensino e Pesquisa RNP


Rua Lauro Mller, 116 sala 1103
22290-906 Rio de Janeiro, RJ
Diretor Geral

Nelson Simes
Diretor de Servios e Solues

Jos Luiz Ribeiro Filho

Escola Superior de Redes


Coordenao

Luiz Coelho
Edio

Pedro Sangirardi
Reviso Tcnica

Francisco Marcelo Lima


Coordenao Acadmica de Administrao de Sistemas
Sergio Alves de Souza
Equipe ESR (em ordem alfabtica)

Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask, Elimria Barbosa,
Lourdes Soncin, Luciana Batista, Luiz Carlos Lobato e Renato Duarte
Capa, projeto visual e diagramao

Tecnodesign
Verso

1.1.0

Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encontrado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de
contedo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e
Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a
pessoas ou bens, originados do uso deste material.
As marcas registradas mencionadas neste material pertencem aos respectivos titulares.
Distribuio

Escola Superior de Redes

Rua Lauro Mller, 116 sala 1103


22290-906 Rio de Janeiro, RJ
http://esr.rnp.br
info@esr.rnp.br

Dados Internacionais de Catalogao na Publicao (CIP)


F848a
Frazo Jnior, Ari

Administrao de sistemas Linux / Ari Frazo Jnior, Marcelo Braga. Rio de Janeiro:

RNP/ESR, 2012.

238 p. : il. ; 28 cm.

Bibliografia: p. 219.
ISBN 978-85-63630-20-9


1. Linux (Sistema operacional de computador). 2. Sistema operacional (computadores).

3. Manuteno de software.

I. Braga, Marcelo. II. Ttulo.

CDD 005.43

Sumrio
1. Introduo ao sistema operacional Linux
Introduo1
Atribuies de um administrador de sistemas1
Requisitos do administrador de sistemas2
Histrico3
Slackware 4
Red Hat Enterprise Linux4
Debian5
Suse5
Mandriva5
Fedora5
CentOS5
Ubuntu5
Arquitetura6
Kernel6
Biblioteca de funes padro9
Shell9
Aplicaes10
Sistema de arquivos10
Inode11
Tipos de arquivos12
Arquivo regular13
Diretrios13
Arquivo de dispositivo13
Socket14
Named pipe 14
iii

Link15
Exerccio de fixao 1 Identificando tipos de arquivos18
Comando ls18
Permisses de arquivos19
Bits de permisso19
Exerccio de fixao 2 Anlise de permisses20
Bits especiais20
Comando chmod mudando permisses 21
Exerccio de fixao 3 Alterando permisses de arquivo 23
Comando umask23
Roteiro de Atividades 125
Atividade 1.1 Identificando bits de permisso25
Atividade 1.2 Identificando e entendendo hard links25
Atividade 1.3 Conhecendo diferenas entre hard link e symbolic link25
Atividade 1.4 Trabalhando com hard link e symbolic link26
Atividade 1.5 Conhecendo limitaes do hard link26
Atividade 1.6 Criando links para diretrios26
Atividade 1.7 Alterando permisses de arquivos e diretrios26
Atividade 1.8 Atribuindo as permisses padres27
Atividade 1.9 Entendendo as permisses padres27

2. Usurios e grupos
Introduo29
Grupos30
Arquivo /etc/gshadow31
Exerccio de fixao 1 Arquivos de administrao de grupo32
Usurios32
Problemas de segurana33
Shadow passwords 33
Exerccio de fixao 2 Arquivos de administrao de usurios34
Tipos de contas de usurios34
Senhas35
Criando contas de usurios35
Criar entrada nos arquivos /etc/group e /etc/gshadow36
Criar entrada nos arquivos /etc/passwd e /etc/shadow36
Definir senha inicial 38
iv

Criar diretrio de trabalho38


Copiar arquivos de inicializao39
Criar cota de uso de disco39
Testar nova conta39
Administrando grupos40
Criando grupos40
Modificando grupos40
Removendo grupos40
Administrando contas de usurios41
Criando contas de usurios41
Modificando contas de usurios42
Desabilitando contas de usurios42
Removendo contas de usurios43
Monitorando usurios43
Roteiro de Atividades 245
Atividade 2.1 Criando contas de usurios45
Atividade 2.2 Verificando e modificando informaes de contas de usurio45
Atividade 2.3 Criando grupos de usurios46
Atividade 2.4 Incluindo usurios em grupos secundrios46
Atividade 2.5 Bloqueando contas de usurios46
Atividade 2.6 Removendo uma conta de usurio manualmente46
Atividade 2.7 Obtendo informaes sobre usurios47
Atividade 2.8 Removendo contas de usurios47
Atividade 2.9 Alterando o grupo a que um arquivo pertence47
Atividade 2.10 Alterando permisses de acesso de arquivos47

3. Processos
Processos49
Tipos de processos50
Componentes de um processo50
Ciclo de vida de um processo52
Multiprocessamento54
Daemon56
Alternando execues56
Estados de um processo57
Prioridades e escalonamento de processos58

Uso de sinais61
Monitoramento de processos62
Exerccio de fixao 1 Monitoramento de processos63
Execuo peridica de tarefas63
Cron64
Exerccio de fixao 2 Utilizando crontab65
Anacron65
Fcron66
Roteiro de Atividades 367
Atividade 3.1 Descobrindo o nmero de processos em execuo67
Atividade 3.2 Descobrindo o PID e o PPID de um processo67
Atividade 3.3 Estados dos processos67
Atividade 3.4 Alternando a execuo de processos67
Atividade 3.5 Identificando o RUID e o EUID de um processo67
Atividade 3.6 Definindo a prioridade de processos67
Atividade 3.7 Editando arquivos crontab para o agendamento de tarefas68
Atividade 3.8 Agendando uma tarefa no daemon cron68
Atividade 3.9 Listando e removendo arquivos crontab68
Atividade 3.10 Entendendo o comando exec68

4. Sistema de arquivos
Estrutura dos discos69
Exerccio de fixao 1 Estrutura de diretrios71
Tipos de partio71
Sistema de arquivos72
Comandos74
Tipos de sistemas de arquivos suportados77
Exerccio de fixao 2 Sistemas de arquivos77
Exerccio de fixao 3 Comando mkfs77
Sistema de quotas77
Preparando o sistema78
Habilitando78
Inicializando79
Editando quotas80
Verificao e gerenciamento81

vi

Roteiro de Atividades 483


Atividade 4.1 Trabalhando com sistema de arquivos em pen drives83
Atividade 4.2 Obtendo informaes sobre sistemas de arquivos e parties83
Atividade 4.3 Determinando o espao utilizado por um diretrio84
Atividade 4.4 Criando uma nova partio e definindo um novo sistema de arquivos84
Atividade 4.5 Trabalhando com o sistema de quotas84

5. Backup
Introduo87
Tipos de backup88
Mdias de backup88
Fitas magnticas89
Mdias pticas90
Storage91
Exerccio de fixao 1 Storages95
Comandos do sistema95
Comando tar95
Comando cpio96
Comando dump97
Comando rsync97
Comandos gzip/gunzip e bzip2/bunzip298
Exerccio de fixao 2 Comandos do sistema98
Softwares de backup gratuitos98
Amanda98
Bacula106
Pacotes comerciais119
Polticas de backup120
Cuidados no armazenamento das mdias121
Exerccio de fixao 3 Softwares de backup122
Roteiro de Atividades 5123
Atividade 5.1 Utilizando tar para fazer backup123
Atividade 5.2 Utilizando dump e restore para fazer backup123
Atividade 5.3 Utilizando tar para clonar uma estrutura de diretrio124
Atividade 5.4 Fazendo backup remoto com rsync124
Atividade 5.5 Agendando rotinas de backup124

vii

Atividade 5.6 Fazendo backup com Amanda124


Atividade 5.7 Fazendo backup com Bacula125

6. Servio de impresso
Introduo127
Histrico127
Arquitetura do sistema de impresso128
Softwares gerenciadores de impresso129
Line Printer Daemon (LPD)129
LPRng131
CUPS131
Exerccio de fixao 1 Verificando os dispositivos suportados134
Exerccio de fixao 2 Verificando as impressoras definidas no sistema137
Roteiro de Atividades 6139
Atividade 6.1 Definindo uma impressora local139
Atividade 6.2 Testando a impressora139
Atividade 6.3 Definindo uma impressora remota139
Atividade 6.4 Definindo quotas de impresso139
Atividade 6.5 Restringindo o uso de impressoras139
Atividade 6.6 Desabilitando a impresso de jobs139
Atividade 6.7 Suspendendo a submisso de jobs139
Atividade 6.8 Criando classes de impressoras139
Atividade 6.9 Removendo impressoras140
Atividade 6.10 Utilizando a interface web do CUPS140
Atividade 6.11 Instalando uma impressora no Windows 7140

7. Registro de eventos
Introduo141
Sysklogd142
Syslogd142
Exerccio de fixao 1 Exibindo mensagens de eventos nos terminais145
Klogd146
Rsyslog 147
Syslog-ng148

viii

Rotacionamento de arquivos de log151


Arquivo de configurao do logrotate152
Comando logger153
Servidor de logs153
Configurando os servidores clientes154
Aplicativos para anlise de arquivos de log155
Logwatch155
Swatch 157
Logcheck158
Recomendaes bsicas de segurana160
Exerccio de fixao 2 Configurao do syslog161
Exerccio de fixao 3 Vantagens do syslog-ng161
Roteiro de Atividades 7163
Atividade 7.1 Analisando os arquivos de log do sistema163
Atividade 7.2 Analisando os arquivos de log binrios do sistema163
Atividade 7.3 Registrando eventos do kernel separadamente163
Atividade 7.4 Rsyslog164
Atividade 7.5 Syslog-ng164
Atividade 7.6 Rotacionando os arquivos de log do sistema164
Atividade 7.7 Utilizando o logger164
Atividade 7.8 Armazenando arquivos de log remotamente164
Atividade 7.9 Aplicativos para anlise de arquivos de log165
Atividade 7.10 Recomendaes bsicas de segurana165

8. Boot & shutdown e kernel


Inicializao do sistema167
Basic Input/Output System (BIOS)168
Carregadores de boot (boot loaders)168
Iniciando o kernel172
Processo init172
Exerccio de fixao 1 Modificando o nvel de execuo com o comando telinit176
Shutdown176
Exerccio de fixao 2 Desligando o sistema com o comando shutdown177
Arquitetura do kernel177
Kernel monoltico178
Kernel modular ou hbrido178
ix

Configurando os componentes do kernel179


Opes de componentes180
Compilando o kernel181
Instalando o kernel182
Habilitando o kernel183
Testando o kernel185
Roteiro de Atividades 8187
Atividade 8.1 Usando dmesg para visualizar as mensagens do boot187
Atividade 8.2 Alterando o nvel de execuo do sistema187
Atividade 8.3 Definindo opes de boot do sistema187
Atividade 8.4 Configurando e compilando o kernel187

9. Segurana bsica e procedimentos operacionais


Segurana bsica189
Problemas bsicos de segurana190
Analisadores de senhas191
Contas compartilhadas192
Exerccio de fixao 1 Identificando senhas fracas192
SUID e SGID193
Atualizao de software193
Exerccio de fixao 2 Gerenciador de pacotes RPM195
Exerccio de fixao 3 Gerenciador de pacotes APT196
Procedimentos operacionais196
Poltica de utilizao de recursos197
Informaes sobre os novos usurios198
Atendimento aos usurios199
Controle de recursos computacionais200
Diagnstico de falhas201
Rotina de backup202
Roteiro de Atividades 9205
Atividade 9.1 Descobrindo a funcionalidade do bit SGID em diretrios205
Atividade 9.2 Instalando um novo software com RPM205
Atividade 9.3 Obtendo informaes sobre os recursos computacionais205
Atividade 9.4 Controlando os recursos dos usurios205

10. Webmin
Caractersticas gerais207
Instalao208
Perl209
OpenSSL209
Net_SSLeay.pm210
Webmin211
Interface de administrao212
Mdulos213
Usermin214
Roteiro de Atividades 10217
Atividade 10.1 Criando um usurio para o Webmin217
Atividade 10.2 Administrando contas e grupos217
Atividade 10.3 Alterando a prioridade do processo do Webmin217
Atividade 10.4 Agendando backups217
Atividade 10.5 Adicionando impressoras218
Atividade 10.6 Direcionando o registro de eventos para um servidor remoto218
Atividade 10.7 Configurando o rotacionamento de logs218
Atividade 10.8 Configurando o nvel de execuo e inicializao de servios218

Bibliografia 219

xi

xii

Escola Superior de Redes


A Escola Superior de Redes (ESR) a unidade da Rede Nacional de Ensino e Pesquisa (RNP)
responsvel pela disseminao do conhecimento em Tecnologias da Informao e
Comunicao (TIC). A ESR nasce com a proposta de ser a formadora e disseminadora de
competncias em TIC para o corpo tcnico-administrativo das universidades federais,
escolas tcnicas e unidades federais de pesquisa. Sua misso fundamental realizar a
capacitao tcnica do corpo funcional das organizaes usurias da RNP, para o exerccio de competncias aplicveis ao uso eficaz e eficiente das TIC.
A ESR oferece dezenas de cursos distribudos nas reas temticas: Administrao e Projeto
de Redes, Administrao de Sistemas, Segurana, Mdias de Suporte Colaborao Digital
e Governana de TI.
A ESR tambm participa de diversos projetos de interesse pblico, como a elaborao
e execuo de planos de capacitao para formao de multiplicadores para projetos
educacionais como: formao no uso da conferncia web para a Universidade Aberta do
Brasil (UAB), formao do suporte tcnico de laboratrios do Proinfo e criao de um conjunto de cartilhas sobre redes sem fio para o programa Um Computador por Aluno (UCA).

A metodologia da ESR
A filosofia pedaggica e a metodologia que orientam os cursos da ESR so baseadas na
aprendizagem como construo do conhecimento por meio da resoluo de problemas tpicos da realidade do profissional em formao. Os resultados obtidos nos cursos de natureza
terico-prtica so otimizados, pois o instrutor, auxiliado pelo material didtico, atua no
apenas como expositor de conceitos e informaes, mas principalmente como orientador do
aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional.
A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema
semelhantes s encontradas na prtica profissional, que so superadas por meio de anlise,
sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do problema, em abordagem orientada ao desenvolvimento de competncias.
Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as
atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de aprendizagem no considerada uma simples exposio de conceitos e informaes. O instrutor
busca incentivar a participao dos alunos continuamente.

xiii

As sesses de aprendizagem onde se do a apresentao dos contedos e a realizao das


atividades prticas tm formato presencial e essencialmente prtico, utilizando tcnicas de
estudo dirigido individual, trabalho em equipe e prticas orientadas para o contexto de atuao do futuro especialista que se pretende formar.
As sesses de aprendizagem desenvolvem-se em trs etapas, com predominncia de tempo
para as atividades prticas, conforme descrio a seguir:
Primeira etapa: apresentao da teoria e esclarecimento de dvidas (de 60 a 90 minutos).
O instrutor apresenta, de maneira sinttica, os conceitos tericos correspondentes ao tema
da sesso de aprendizagem, com auxlio de slides em formato PowerPoint. O instrutor
levanta questes sobre o contedo dos slides em vez de apenas apresent-los, convidando
a turma reflexo e participao. Isso evita que as apresentaes sejam montonas e que o
aluno se coloque em posio de passividade, o que reduziria a aprendizagem.
Segunda etapa: atividades prticas de aprendizagem (de 120 a 150 minutos).
Esta etapa a essncia dos cursos da ESR. A maioria das atividades dos cursos assncrona e
realizada em duplas de alunos, que acompanham o ritmo do roteiro de atividades proposto
no livro de apoio. Instrutor e monitor circulam entre as duplas para solucionar dvidas e
oferecer explicaes complementares.
Terceira etapa: discusso das atividades realizadas (30 minutos).
O instrutor comenta cada atividade, apresentando uma das solues possveis para
resolv-la, devendo ater-se quelas que geram maior dificuldade e polmica. Os alunos so
convidados a comentar as solues encontradas e o instrutor retoma tpicos que tenham
gerado dvidas, estimulando a participao dos alunos. O instrutor sempre estimula os
alunos a encontrarem solues alternativas s sugeridas por ele e pelos colegas e, caso
existam, a coment-las.

Sobre o curso
Este curso fornece o conhecimento e as habilidades necessrias para administrar com
xito e suportar um servidor baseado no sistema operacional Linux. Atravs de uma srie
de atividades prticas, voc aprender a criar e configurar novas instalaes do Linux, bem
como solucionar problemas e apoiar as instalaes existentes. Voc tambm aprender
importantes tarefas administrativas, incluindo o gerenciamento de usurios e grupos,
a criao de sistemas de arquivos e backup, servios de impresso para Unix e clientes
Windows, registro de eventos e configurao e construo do kernel do Linux, o ncleo do
sistema operacional.

A quem se destina
Indicado para analistas de suporte e responsveis pela manuteno de servidores e especialistas que desejem aprofundar os conhecimentos para se tornarem administradores
de sistemas Linux. Administradores de sistemas que precisam gerenciar sistemas Linux
tambm se beneficiaro deste curso, assim como os profissionais que pretendem iniciar os
estudos para a certificao LPI, do Linux Professional Institute.

xiv

Convenes utilizadas neste livro


As seguintes convenes tipogrficas so usadas neste livro:
Itlico
Indica nomes de arquivos e referncias bibliogrficas relacionadas ao longo do texto.

Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da
sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito
e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no
Windows C:\).

Contedo de slide
Indica o contedo dos slides referentes ao curso apresentados em sala de aula.

Smbolo
Indica referncia complementar disponvel em site ou pgina na internet.

Smbolo
Indica um documento como referncia complementar.

Smbolo
Indica um vdeo como referncia complementar.

Smbolo
Indica um arquivo de adio como referncia complementar.

Smbolo
Indica um aviso ou precauo a ser considerada.

Smbolo
Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao
entendimento do tema em questo.

Smbolo
Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou
mesmo uma observao.

Permisses de uso
Todos os direitos reservados RNP.
Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra.
Exemplo de citao: FRAZO JNIOR, Ari; BRAGA, Marcelo Castellan. Administrao de Sistemas Linux. Rio de Janeiro: Escola Superior de Redes, 2013.

xv

Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao:
Escola Superior de Redes RNP
Endereo: Av. Lauro Mller 116 sala 1103 Botafogo
Rio de Janeiro RJ 22290-906
E-mail: info@esr.rnp.br

Sobre os autores
Ari Frazo Jr. bacharel em Cincia da Computao pela Universidade Federal da Paraba
(UFPB) e mestre em Cincia da Computao, na rea de redes de computadores, pela Universidade Federal de Pernambuco (UFPE). Atualmente responsvel pelas reas de engenharia e operaes da Rede Nacional de Ensino e Pesquisa (RNP), onde atua desde 1993.
Marcelo Castellan Braga possui graduao em Engenharia Eletrnica pelo CEFET-RJ,
ps-graduao em Anlise, Projeto e Gerncia de Sistemas pela PUC-RJ e mestrado em
informtica pela UNIRIO. Atualmente scio diretor da MCB Tech, empresa que presta consultoria em redes de computadores, servios de internet, segurana de dados e desenvolvimento de software. Atuou durante mais de 10 anos na rea de TI em empresas como Rede
Nacional de Ensino e Pesquisa (RNP) e Embratel.
Sergio Ricardo Alves de Souza possui mais de 35 anos de experincia na rea de Administrao e Suporte de Sistemas. Trabalhou em empresas como: Burroughs (UNISYS), ARSA
(Infraero), Cobra Computadores, LNCC e outras. Consultoria e treinamento em empresas
como: Fiocruz, Jardim Botnico, Museu Goeldi, Cefet-MG, IBM Brasil. Participou do desenvolvimento e implantao de cursos profissionalizantes em Informtica em Petrpolis FAETC. Participou do projeto de criao do Instituto Superior de Tecnologia em Cincia da
Computao de Petrpolis. Possui Notrio Saber em Informtica pelo LNCC.

xvi

1
Conhecer o histrico e a arquitetura do Unix e do Linux.

conceitos

Sistema operacional Linux e permisso e sistema de arquivos.

Introduo
Uma das caractersticas mais marcantes do ser humano a capacidade de se organizar para
tirar o melhor proveito de seus trabalhos e garantir que tudo funcione de maneira correta.
Isso pode ser observado em empresas, escritrios, lojas, cinemas e at mesmo nos lares.
Da mesma forma que um administrador de empresas administra e gerencia uma empresa,
um administrador de sistemas responsvel por administrar e gerenciar os recursos computacionais de uma organizao.
A informatizao crescente nas instituies pblicas e privadas, a disseminao de diversas
tecnologias de redes e o uso cada vez maior de sistemas integrados de gesto fazem da
administrao de sistemas uma atividade complexa e de importncia estratgica para as
organizaes. Portanto, para atuar nessa rea, o administrador de sistemas deve possuir o
conhecimento e a experincia necessrios para assegurar que os sistemas de uma organizao estejam sempre disponveis, seguros e com desempenho adequado para executar
as operaes de que a organizao necessita para atingir seus objetivos. Um bom administrador de sistemas deve aliar conhecimento tcnico e do negcio da empresa para conseguir
tirar o melhor proveito possvel dos recursos computacionais sob sua responsabilidade.
Apesar de existir desde a poca dos mainframes, a rea de administrao de sistemas
sofreu um grande impacto com o advento da microinformtica, das redes de computadores
e das tecnologias associadas internet. Este curso, de carter essencialmente prtico, foi
criado para explorar os conceitos e prticas mais importantes da administrao de sistemas
Linux, representando a primeira etapa na formao de um administrador de sistemas.

Atribuies de um administrador de sistemas


11 Responsabilidade pelos recursos computacionais.

Captulo 1 - Introduo ao sistema operacional Linux

objetivos

Introduo ao sistema
operacional Linux

11 Instalar, configurar e manter o hardware dos equipamentos.


1

11 Instalar, configurar e manter atualizados e seguros os softwares utilizados pela empresa.

11 Interligar de maneira eficaz os recursos computacionais que funcionam em rede.


11 Administrar contas de usurios (cadastro, atualizao e remoo).
11 Fazer e restaurar backup.
11 Monitorar atividades do sistema, ajustando-as para o mximo desempenho.
11 Solucionar problemas de software e hardware.
11 Manter documentao atualizada sobre os sistemas.
11 Desenvolver scripts para automao de tarefas.
11 Garantir a segurana de rede de um modo geral.
11 Prestar atendimento aos usurios dos sistemas.
Um administrador de sistemas deve ser capaz de instalar, configurar e manter operacional
toda a infraestrutura de TI (servidores, estaes de trabalho, impressoras, dispositivos de
armazenamento, equipamentos de conectividade etc.); instalar, configurar, manter atualizado e seguro todo o software necessrio para o funcionamento correto dos sistemas
operacionais e aplicativos; interligar os recursos computacionais que funcionam em rede,
configurando os equipamentos de modo adequado; elaborar e executar uma poltica de
backup adequada; elaborar polticas de uso dos recursos de TI; executar e controlar as
operaes de gerenciamento de contas de usurios nos sistemas corporativos, bem como
suas permisses de acesso aos recursos destes sistemas; controlar e supervisionar o
uso dos recursos computacionais para assegurar que sejam utilizados de forma segura e
adequada; diagnosticar e solucionar as situaes de falha no funcionamento e na operao
dos recursos computacionais que compem os sistemas; auxiliar os usurios, esclarecendo
dvidas e orientando-os na busca de solues mais adequadas s suas necessidades.
claro que existem sistemas computacionais de portes e fins muito diferentes, variando
desde uma pequena rede local para uso administrativo em uma microempresa at uma
rede de computadores abrangendo diversos pases, em uma empresa multinacional.
Naturalmente, o porte e o conhecimento da equipe de administrao de sistemas devero
estar adaptados a essas diferentes situaes, embora suas atribuies sejam basicamente
as descritas acima.

Requisitos do administrador de sistemas


11 Conhecimento tcnico.

11 Experincia.
11 Aperfeioamento constante.

Administrao de Sistemas Linux

11 Entendimento dos objetivos e metas da empresa.


11 Conhecimento das necessidades dos usurios.
Entre as diversas caractersticas desejveis em um administrador de sistemas podemos
destacar: conhecimento tcnico aprofundado e abrangente da rea, o que requer constante
atualizao; entendimento dos objetivos e metas da instituio; conhecimento das necessidades dos usurios; capacidade de diagnosticar e resolver problemas, o que depende de sua
experincia prtica; capacidade de trabalhar em equipe e de se relacionar com pessoas, para
proporcionar um bom atendimento aos usurios; capacidade de organizao; pr-atividade e
senso de responsabilidade, para assegurar que todas as tarefas programadas sejam adequadamente priorizadas e executadas. Sem isso, a carreira profissional de um administrador de
sistemas estar seriamente comprometida.
2

Histrico
11 1964

22 AT&T, GE e MIT: projeto para criao de um novo sistema operacional (Multics).


11 1969
22 Incio do Unix na Bell Labs da AT&T.
11 1973
22 Unix reescrito na linguagem C.
22 Novo cdigo-fonte.
11 1977
22 Incio da distribuio BSD.
Em 1964, o Bell Labs da AT&T, a GE e o MIT formaram um grupo de pesquisadores para
desenvolver um sistema operacional para o mainframe GE-645 que foi batizado de Multics.
Este projeto, no entanto, no foi muito bem-sucedido e devido a interesses divergentes o
Bell Labs o abandonou em 1969. Neste mesmo ano, Ken Thompson, um de seus pesquisadores envolvido no projeto de criao do Multics, iniciou o projeto de um novo sistema operacional baseado no Multics e escrito em linguagem assembly. Este sistema foi inicialmente
batizado de Unics e mais tarde teve seu nome alterado para Unix.
Em 1973, com a ajuda de Dennis Ritchie, outro pesquisador do Bell Labs, Thompson
reescreveu o Unix em uma linguagem de programao de alto nvel, chamada C, que foi
desenvolvida pelo prprio Ritchie. Como a AT&T no atuava comercialmente na rea de
computao, o Bell Labs fornecia a licena de uso do Unix para as universidades interessadas, juntamente com o cdigo-fonte. Isso gerou verses diferentes do sistema, medida
que as modificaes no cdigo eram feitas nas universidades e no prprio Bell Labs.
A falta de padronizao foi to grande que, no final dos anos 80, havia vrias verses de
Unix totalmente incompatveis, baseadas em duas distribuies principais: o System V, da
AT&T, e o BSD, da Universidade da Califrnia em Berkeley. A distribuio BSD contribuiu
para a disseminao da internet por ter desenvolvido e implementado a pilha de protocolos TCP/IP em seu sistema.
Dcada de 80:

11 Incorporao do protocolo TCP/IP distribuio BSD (Berkeley).


11 Diferentes verses geradas pela distribuio do cdigo.
11 Padronizao bsica Portable Operating System Interface (POSIX) nos padres IEEE.
11 Disputa comercial gerou: AIX, HP-UX, XENIX, IRIX, SunOS, entre outros.
11 Incio do projeto GNU de Richard Stallman.
Embora a necessidade de padronizao fosse muito grande, as tentativas feitas nesse
sentido falharam. Em 1988 o Institute of Electrical and Electronics Engineers (IEEE) elaborou
a proposta do Portable Operating System Interface (POSIX), que permitiu uma padronizao
bsica das muitas verses existentes. No entanto, diferenas continuaram existindo devido
aos interesses comerciais dos grandes fabricantes de computadores, originando diversas
verses comerciais do Unix como: AIX da IBM, HP-UX da HP, XENIX da Microsoft e IRIX da
Silicon Graphics, todas baseadas na distribuio System V e SunOS da Sun e Tru64 da Digital

Captulo 1 - Introduo ao sistema operacional Linux

11 System V (AT&T).

Equipment Corporation, baseadas na distribuio BSD. Alm disso, surgiram verses livres
de Unix como FreeBSD, NetBSD e OpenBSD, todas baseadas na distribuio BSD.
3

Nesse contexto, em 1984, Richard Stallman comeou um projeto para criar um sistema operacional compatvel com o Unix, batizado de GNU. Stallman e um grupo de programadores
comearam a desenvolver os principais componentes do sistema, como compiladores e
editores de texto.
Dcada de 90:

11 Linus Torvalds desenvolve o kernel do Linux.


11 Criao do sistema operacional GNU/LinuxI.
11 Verses livres baseadas na distribuio BSD: FreeBSD, OpenBSD e NetBSD.
11 Primeiras distribuies do Linux (Slackware, Red Hat, Debian, SUSE).
Em 1991 o GNU j possua diversos componentes, mas ainda no tinha um kernel funcional.
Em paralelo a isso, em 1990 o ento estudante de cincias da computao, o finlands
Linus Torvalds comeou a desenvolver um sistema prprio, baseado no MINIX, um sistema
operacional desenvolvido por Andrew Tanenbaum, baseado no Unix e utilizado em cursos
de computao nas universidades. Linus estava insatisfeito com o MINIX e comeou seu
projeto inicialmente para rodar somente em seu computador, um 80386. Em pouco tempo,
Linus j tinha uma verso de kernel funcional e em 1991 resolveu divulgar comunidade seu
projeto, que foi batizado de Linux. O Linux era basicamente um kernel e o GNU, um conjunto
de aplicaes. Em pouco tempo os dois projetos se juntaram formando o sistema operacional GNU/Linux (muitas vezes referenciado somente por Linux).
Linux (System V) uma alternativa aos sistemas comerciais. Caractersticas:

11 Segurana.
11 Confiabilidade.
11 Versatilidade.
11 Estabilidade.
11 Licena gratuita.
Hoje, o Linux possui diversas distribuies comerciais e gratuitas, cada uma com suas
caractersticas. Entre elas podemos destacar: Slackware, Red Hat Enterprise Linux, Debian,
SUSE, Mandriva, Fedora, CentOS e Ubuntu. As distines entre as principais distribuies
so resumidas a seguir.

Slackware
a distribuio mais antiga ainda em desenvolvimento, tendo sua primeira verso lanada
em 1993. O Slackware uma distribuio gratuita que tem como principais caractersticas:
estabilidade, segurana, uso da interface texto para configurao do sistema e ampla

Administrao de Sistemas Linux

documentao. Possui uma verso de produo que s inclui pacotes estveis e uma verso

current em desenvolvimento que no disponibilizada para download.

Red Hat Enterprise Linux


Desenvolvida pela Red Hat Software, essa uma distribuio voltada para uso em servidores
de pequeno a grande porte, com verses que suportam de dois a um ilimitado nmero de
processadores. A Red Hat vende esta distribuio juntamente com uma assinatura de suporte
tcnico, que varia em funo dos dias de atendimento, vias de atendimento (web ou telefone)
e nmero de incidentes por ano.

Debian
A distribuio Debian desenvolvida e mantida por uma equipe de desenvolvedores voluntrios. O Debian possui um ciclo de desenvolvimento onde suas verses passam por trs
fases: stable (a verso de produo), testing (contm verses mais atuais dos pacotes que
ainda no foram homologadas para entrar em produo) e unstable (utilizada geralmente
por desenvolvedores). O Debian conhecido por sua excelente ferramenta de gerenciamento de pacotes, o APT.

Suse
uma das distribuies comerciais mais antigas (teve sua primeira verso lanada em 1994
na Alemanha). Possui uma excelente ferramenta grfica de instalao e configurao do
sistema operacional, chamada YaST. Em 2003, a Novell comprou a SUSE e decidiu em 2005
compartilhar o desenvolvimento de uma verso gratuita de seu sistema operacional com
a comunidade de desenvolvedores, criando a distribuio openSUSE. Em 2011, a Novell e a
SUSE foram compradas pela empresa Attachmate.

Mandriva
Essa distribuio surgiu da fuso realizada entre as distribuies Conectiva (na verdade uma
verso em portugus do Red Hat Linux), comercializada pela empresa brasileira Conectiva Informtica e a distribuio Mandrake, comercializada pela empresa francesa Mandrake Software.
O Mandriva uma distribuio voltada para uso em desktop, com um ambiente grfico muito
avanado, alm de muitas facilidades que o tornam agradvel para o usurio domstico.

Fedora
Distribuio gratuita patrocinada pela Red Hat e mantida por uma comunidade aberta de usurios e desenvolvedores. Essa distribuio teve sua primeira verso lanada em 2003, quando a
distribuio gratuita Red Hat Linux foi descontinuada. A partir da, a Red Hat Software resolveu
focar no mercado corporativo e lanou a distribuio paga Red Hat Enterprise Linux. Em paralelo, foi lanado o projeto Fedora, uma distribuio gratuita baseada no Red Hat Linux.

CentOS
arquivos fonte originais. A Red Hat permite o uso dos arquivos fontes na condio de
que sejam retiradas as referncias comerciais sua marca. A principal vantagem que o
CentOS uma slida e poderosa distribuio Linux com o mesmo potencial do Red Hat e
com a vantagem de ser gratuita.

Ubuntu
O Ubuntu uma distribuio baseada na distribuio Debian, patrocinada pela empresa
Canonical. Uma das principais propostas do Ubuntu a popularizao do Linux, oferecendo
um sistema com interface mais amigvel, focado em acessibilidade e internacionalizao.
Segurana, confiabilidade, versatilidade, estabilidade e gratuidade so as caractersticas do
Linux que fazem com que ele desponte como a principal alternativa ao Microsoft Windows.

Captulo 1 - Introduo ao sistema operacional Linux

Essa distribuio deriva diretamente do Red Hat Enterprise Linux atravs dos seus

Arquitetura
O GNU/Linux ou Linux (como mais conhecido) um sistema operacional multi-tarefa,
multi-usurio e multi-plataforma. Seu cdigo-fonte aberto e disponibilizado gratuitamente, podendo ser alterado por qualquer pessoa, o que o torna um sistema extremamente
flexvel. O Linux distribudo pela licena (GPL), que permite executar, alterar e distribuir
qualquer software regido por ela. Sua arquitetura, como mostra a Figura 1.1, pode ser representada por uma pirmide dividida em camadas. O papel de cada uma dessas camadas
descrito a seguir.

Usurio
Aplicaes

Shell

Bibliotecas de funes padro


Kernel
Hardware

Kernel
o ncleo do sistema operacional, que tem como principais funes:

Figura 1.1
Arquitetura.

11 Deteco de hardware.
11 Gerenciamento de entrada e sada.
11 Manuteno do sistema de arquivos.
11 Gerenciamento de memria e swapping.
11 Controle da fila de processos.
O kernel o ncleo do sistema operacional e se encarrega de executar todas as funes
bsicas e necessrias ao funcionamento correto do sistema. Uma de suas principais funes
prover uma interface entre o hardware e as aplicaes. O kernel possui uma arquitetura
monoltica, ou seja, composto por um grande e nico bloco de cdigo com milhes de
linhas. H algum tempo o conceito de mdulos foi introduzido no Linux. Esses mdulos so
geralmente drivers de dispositivos e podem ser carregados em memria dinamicamente.
importante ressaltar que os mdulos no fazem parte do kernel.

Administrao de Sistemas Linux

Software

Mdulos

Kernel

Hardware

Uma das grandes vantagens que o Linux oferece a possibilidade de o usurio poder fazer
alteraes em seu kernel, habilitando somente as funcionalidades necessrias para cada
sistema. Com isso, possvel ganhar em performance, pois o kernel se torna muito mais
enxuto, gerando uma imagem com um tamanho consideravelmente menor.

Figura 1.2
Estrutura do kernel.

Hoje, todas as distribuies de Linux disponveis usam basicamente o mesmo kernel, com
pequenas alteraes. So as aplicaes incorporadas a essas distribuies que as diferenciam.

Deteco de hardware
11 Identificao de dispositivos (memria, discos, processadores, impressora etc.).

11 Interao com esses dispositivos (drivers).


Todo sistema operacional para funcionar depende de um determinado hardware, composto por processador, memria, disco, controladores de vdeo etc. Devido existncia de
diversos fabricantes de hardware no mercado, as caractersticas dos componentes variam
muito entre si. Quando um novo dispositivo instalado no sistema, como por exemplo uma
placa de rede, o kernel responsvel pela deteco e interao bsica com esse dispositivo. Embora o kernel possa reconhecer e controlar uma grande quantidade de dispositivos
disponveis no mercado, existem alguns que no so reconhecidos, em geral os apresentados aps a data de lanamento da verso do kernel utilizado. Para evitar este tipo de
problema, importante utilizar sempre a ltima verso estvel do kernel. Vale ressaltar que
drivers desenvolvidos como mdulos podem ser instalados no sistema sem a necessidade
de recompilar o kernel. Os mdulos podem ser carregados em memria dinamicamente
medida que seu uso se torna necessrio.

Gerenciamento de entrada e sada


11 Controle dos dispositivos de entrada e sada.

11 Envio de requisies solicitando execues de operaes.


11 Controle de sinais de interrupo.
Todos os computadores possuem dispositivos de entrada e sada conectados, como teclado,
monitor, impressora, placa de rede, disco etc. Esses dispositivos so controlados pelo kernel,
que envia requisies para solicitar a execuo de operaes especficas ou recebe sinais
para indicar que os dispositivos esto demandando determinadas operaes. A comunicao entre o kernel e os dispositivos realizada por meio de sinais de interrupo. Nesse
contexto, o kernel funciona como um controlador de sinais de interrupo, atendendo a
todas essas requisies.

11 Responsvel pela organizao, manuteno e integridade dos arquivos de usurios

e do sistema.
11 Forma de implementao definida e gerenciada pelo kernel.
O sistema de arquivos tem por objetivo organizar, manter e zelar pela integridade dos arquivos
do sistema e dos usurios, assegurando que eles possam ser manipulados adequadamente
por seus proprietrios. No Linux, o sistema de arquivos visualizado como uma rvore invertida: a raiz est no topo e os ramos, embaixo. Para ser lido ou escrito, o arquivo precisa ser
aberto. Ao abri-lo, uma srie de cuidados devem ser tomados, principalmente se esse arquivo
j estiver sendo utilizado por outro usurio ou programa. Todos esses cuidados com o sistema
de arquivos, bem como a forma como implementado, so definidos e gerenciados pelo
kernel. A Figura 1.3 mostra um exemplo de organizao do sistema de arquivos do Linux.

Captulo 1 - Introduo ao sistema operacional Linux

Manuteno do sistema de arquivos

home

etc

maria

Figura 1.3
Sistema de arquivos
do Linux.

joo

Gerenciamento de memria e swapping


11 Responsvel pela alocao de memria aos processos em execuo.

11 Suporta o conceito de memria virtual.


11 Permite que os processos compartilhem reas de memria.
Ao longo do tempo, foram criadas vrias tcnicas, como paginao e swapping, para
otimizar o uso da memria pelos programas em execuo. O kernel responsvel pela
alocao de memria aos processos em execuo. Ele suporta o conceito de memria
virtual, permitindo que processos ocupem mais espao em memria que aquela disponvel
na mquina. A memria virtual pode ser muito maior que a memria fsica. Cada processo
tem seu prprio espao de endereamento virtual. Esses espaos de endereamento so
completamente separados, de modo que um processo no pode interferir no cdigo e nos
dados de outro processo. Alm disso, o kernel permite que processos compartilhem reas
de memria, reduzindo assim o consumo desse recurso ou viabilizando um mecanismo
de comunicao entre processos. O swapping o processo em que o sistema operacional
transfere dados que esto na memria principal (programa em execuo e os seus dados
associados) para uma rea em disco (memria virtual) e vice-versa, dando a impresso de
que o sistema possui uma rea de memria maior que a real. Esta rea em disco utilizada
como memria virtual faz parte da partio de swap do Linux. A paginao uma tcnica
utilizada por sistemas operacionais que fazem uso do conceito de memria virtual que
divide a rea de memria em pginas de forma a permitir o swapping.

Memria virtual

Pginas

Administrao de Sistemas Linux

Traduo de endereos

Memria fsica

Gerenciamento de processos
11 Suporta a execuo simultnea de vrios processos.
11 Funciona como um supervisor, autorizando o uso dos recursos entre os processos.
O Linux um sistema operacional que suporta a execuo simultnea de vrios processos
que compartilham os recursos do sistema. O compartilhamento desses recursos deve ser

Figura 1.4
Processo de
swapping.

organizado de forma a atender s necessidades de todos os processos. Nesse contexto,


o kernel funciona como um supervisor e autoriza o uso desses recursos para um determinado processo, quando necessrio. Mais frente, veremos que h um parmetro especial
chamado de prioridade, observado pelo kernel na alocao de um recurso a um processo.

Biblioteca de funes padro


11 Chamadas feitas por processos ao sistema operacional para acessar recursos.

11 Uso de funes padro (open, close, read, write etc.).


11 Comunicao entre as aplicaes e o ncleo do sistema operacional, constituindo a
biblioteca de funes padro.
Quando o usurio executa um comando atravs do shell, normalmente iniciado um ou
mais processos. Muitas vezes, esses processos realizam chamadas ao sistema operacional
para acessar recursos gerenciados pelo kernel. Tais chamadas so feitas por meio de
funes padro suportadas pelo kernel. Esses acessos, no entanto, no podem ser feitos
de forma desorganizada, pois comprometeriam a prpria segurana do sistema. Para isso
existe uma srie de funes (open, close, read, write, fork etc) que realizam, de forma segura,
a comunicao entre as aplicaes e o kernel, constituindo a biblioteca de funes padro.

Shell
11 L e interpreta comandos de entrada de um terminal.

11 Cria novos processos medida que so requisitados.


11 Permite ao usurio trocar de interpretador durante sesso.
11 Exemplos: sh, csh, bash, ksh, tcsh.
O shell ou interpretador de comandos nada mais do que um processo responsvel por ler
os comandos de entrada de um terminal, interpret-los e criar novos processos medida que
vo sendo requisitados. Baseado na configurao do ambiente do usurio, o interpretador de
comandos iniciado logo aps o processo de login. Veremos, mais adiante, que cada usurio
pode utilizar seu prprio interpretador de comandos. Da mesma forma que o MS-DOS, que
apresenta a sequncia de caracteres c:> (tambm conhecida como prompt), o interpretador
de comandos tambm exibe uma mensagem indicando que est pronto para executar

O Linux tambm suporta um ambiente grfico baseado em janelas, denominado X-Window.


Esse ambiente possui diversas aplicaes grficas, entre elas o xterm, que emula um interpretador de comandos. Quando o usurio inicia o xterm, este executa um interpretador de
comandos que ser responsvel por interpretar os comandos digitados pelo usurio na
janela do xterm. Para definir qual interpretador de comando ser executado, o xterm verifica
inicialmente a varivel de ambiente SHELL. Caso esta no tenha sido definida, o xterm verifica no arquivo passwd qual interpretador de comandos est definido para o usurio. Se no
for definido nenhum interpretador vlido, o xterm utiliza o shell sh.
Quando o usurio digita um comando, o interpretador identifica o programa pela primeira
palavra informada na linha de comando. O interpretador procura ento por um arquivo
com o nome do programa e caso encontre, inicia sua execuo. Os demais termos da linha
de comando so passados como parmetros para o programa. No universo Linux, h vrios
interpretadores disponveis, como sh, csh, bash, ksh, ash, zsh. Cada usurio pode escolher
e trabalhar com o interpretador mais adequado s suas necessidades. O interpretador de

Captulo 1 - Introduo ao sistema operacional Linux

comandos. Vale ressaltar que essa mensagem pode ser configurada pelo prprio usurio.

comandos padro, definido para cada usurio mantido em um arquivo, que a base de
usurios do sistema. Esse arquivo consultado durante o processo de login. importante
ressaltar que o usurio pode trocar de interpretador durante sua sesso de trabalho. Para
isso, basta digitar na linha de comando o nome do interpretador que deseja utilizar.

Usurio

Shell

Utilidades

Kernel
Figura 1.5
Processo interpretador de comandos
ou shell.

Hardware

Aplicaes

Programas com os quais os usurios interagem:


11 Compiladores.
11 Editores de texto.
11 Planilhas.
11 Jogos etc.
So os programas com os quais o usurio interage diretamente, como compiladores,
editores de texto, planilhas, navegadores, gerenciadores de arquivos etc. Um sistema

operacional sem aplicaes ficaria sem utilidade, j que estas fazem parte da nica camada
da arquitetura acessada pelos usurios. As aplicaes so desenvolvidas geralmente para
automatizar e facilitar a realizao de tarefas que precisam ser realizadas pelos usurios
diariamente. Elas tambm facilitam a comunicao entre pessoas, alm de reduzir custos,
como o caso das aplicaes de voz sobre IP.

Sistema de arquivos
/(root)

Administrao de Sistemas Linux

Sistema de arquivos

Sistemas de arquivos

Diretrios

/bin

/dev

/etc

/lib

/usr

/tmp

/var

/home

Em qualquer sistema operacional, necessrio armazenar dados em arquivos e organiz-los


em diretrios. Os arquivos so gerenciados por um componente do sistema operacional conhecido como sistema de arquivos, que define como os arquivos so estruturados, identificados,
acessados, modificados e protegidos. A Figura 1.7 mostra como esto dispostos os blocos em
uma partio do Linux. O bloco de boot o primeiro bloco do disco e no gerenciado pelo

10

Figura 1.6
Estrutura e tipos de
arquivos do sistema
de arquivos.

sistema de arquivos, sendo utilizado somente para dar incio ao processo de boot do sistema
operacional. O segundo bloco chamado superbloco e contm informaes essenciais sobre
o sistema de arquivos, como seu tamanho, nmero de inodes, nmero de blocos de dados etc.
Em seguida, vem a tabela de blocos, que permite identificar os blocos de dados livres e ocupados no disco. Logo aps, encontra-se a tabela de inodes (index-nodes), que so estruturas de
dados que armazenam informaes sobre os arquivos. Por fim, temos os blocos de dados, nos
quais o contedo dos arquivos efetivamente armazenado.
Bloco de boot

Super bloco

Tabela de blocos

Blocos de dados

Bloco de boot:

11 Tem a funo de carregar o kernel do sistema operacional.


11 Toda partio contm um bloco de boot.
Superbloco:
11 Contm informaes essenciais sobre o sistema de arquivos.
Tabela de blocos:
11 Identifica os blocos de dados livres no disco.
Tabela de inodes:
11 Contm as informaes de cada inode do sistema de arquivos.
Blocos de dados:
11 So os blocos do disco destinados a armazenar o contedo dos arquivos.

Inode
Estrutura de dados mantida pelo kernel, que possui informaes sobre arquivos:

11 Tipo, dono, grupo e permisses.


11 Datas de criao ou da ltima modificao.
11 Nmero de links para o arquivo.
11 Tamanho.
11 Endereo no disco rgido.
uma estrutura de dados de 64 bytes de tamanho que armazena informaes sobre um
arquivo como: tipo, permisses associadas, proprietrio e grupo, tamanho, ltima vez em
que foi modificado, localizao dos blocos onde o contedo do arquivo est armazenado,
entre outras. Todo sistema de arquivos possui uma tabela de inodes e cada arquivo possui
um inode associado que identificado por um nmero inteiro, conhecido como i-number ou
ino. O nmero de inodes funo do tamanho do sistema de arquivos e por padro, criado
um inode para cada 2 KB do tamanho total do sistema de arquivos. Parte das informaes
presentes nos inodes pode ser visualizada por meio do comando ls, utilizando a opo -l,
como mostra a Figura 1.8.

Captulo 1 - Introduo ao sistema operacional Linux

Figura 1.7
Sistemas de
arquivos Linux.

Inodes

11

Hard link count


Tipo de arquivo

-rwxr-xr-x

Tamanho em bytes

1 root bin

Permisses

85924

Dono

Sep

Nome do arquivo

27

2003

/usr/bin/su
Figura 1.8
Informaes contidas nos inodes.

Data da ltima
modicao

Grupo

O comando stat tambm pode ser utilizado para visualizarmos informaes contidas nos
inodes, como mostra o exemplo a seguir:

# stat /etc/hosts
File: /etc/hosts
Size: 250

Blocks: 8

Device: 801h/2049d

IO Block: 4096

Inode: 523277

Access: (0644/-rw-r--r--)

Uid: (0/

regular file

Links: 1
root)

Gid: (0/

root)

Access: 2012-01-15 12:18:33.056920612 -0200


Modify: 2011-11-21 16:51:49.228547005 -0200
Change: 2011-11-21 16:51:49.228547005 -0200
O nmero de inodes tambm pode ser definido pelo usurio durante a criao de um
sistema de arquivos. Existem aplicaes que criam grandes quantidades de arquivos
pequenos, o que pode resultar na utilizao de todos os inodes disponveis em um sistema
de arquivos. Quando isso acontece, mesmo que ainda haja espao suficiente em disco, no
mais possvel a criao de novos arquivos neste sistema de arquivos. Por isso, necessrio
que o administrador de sistemas faa uma anlise das aplicaes que sero instaladas em
um servidor, para que possa dimensionar corretamente o nmero de inodes que ser criado
em um sistema de arquivos. Para verificarmos o nmero de inodes livres em um sistema de
arquivos podemos utilizar o comando df com a opo -i.

# df -i
Filesystem

Inodes

IUsed

/dev/sda1

2559088

IFree IUse%
48963

Mounted on

2510125 2%

Tipos de arquivos
11 Arquivos regulares.

Administrao de Sistemas Linux

11 Diretrios.
11 Arquivos de dispositivo (bloco e caractere).
11 Sockets.
11 Named pipes.
11 Symbolic link.
No Linux qualquer objeto gerenciado pelo sistema operacional tratado como arquivo,
desde um arquivo texto convencional a um dispositivo de hardware. Para identificar o tipo
do arquivo, o sistema operacional consulta as informaes contidas em seu inode. A seguir
veremos os diversos tipos de arquivos existentes no Linux.
12

Arquivo regular
11 Conjunto de bytes.

11 Programa executvel, arquivo texto, imagem etc.


11 Criados por editores de texto e comandos, entre outros.
Trata-se do tipo de arquivo mais comum que podemos encontrar em um sistema Linux. Pode
ser um relatrio feito no OpenOffice, um banco de dados do MySQL, um programa executvel
(como o Firefox), uma imagem (arquivo JPG), o cdigo-fonte de um programa em C etc. Arquivos
desse tipo podem ser criados por meio de editores de texto, de aplicativos para tratamento de
imagem e de comandos do Linux (ex.: touch). A sua remoo pode ser feita com o comando rm.

Diretrios
11 Podem conter qualquer tipo de arquivo;

11 Criados com o comando mkdir.


11 Removidos com o comando rmdir (se no tiverem nenhum contedo) ou rm -r
(caso contrrio).
Um diretrio nada mais do que um arquivo cujo contedo o nome dos arquivos nele
contidos e os nmeros de seus respectivos inodes. Um diretrio pode conter arquivos de
quaisquer tipos, inclusive diretrios. As entradas especiais . e .., que encontramos nos
diretrios de um sistema Linux, referem-se ao prprio diretrio e ao seu diretrio pai,
respectivamente. Diretrios podem ser criados com o comando mkdir e removidos com o
comando rmdir, se estiverem vazios, ou rm -r, independente de estarem vazios ou no.

Arquivo de dispositivo
11 Mecanismo para operaes de entrada e sada.

11 Tipos de arquivos de dispositivo:


22 Caractere: as operaes de entrada e sada so realizadas byte a byte de
modo sequencial.
22 Bloco: as operaes de entrada e sada so realizadas em blocos de modo aleatrio.
11 Encontram-se, geralmente, no diretrio /dev.

Arquivos de dispositivos permitem aos usurios estabelecer comunicao com o hardware


do sistema e seus perifricos, sem se preocupar com os detalhes necessrios a esse tipo
de comunicao. Essa forma do Linux interagir com os dispositivos tambm facilita muito o
trabalho dos programadores. Assim, drivers de dispositivos representam uma interface de
comunicao padro que se parece com um arquivo normal. Quando o kernel recebe um
pedido referente a um arquivo de dispositivo, ele simplesmente passa o pedido para o driver
apropriado. Arquivos de dispositivo podem ser criados via comando mknod e removidos com
o comando rm. Existem dois tipos de arquivos de dispositivos que sero vistos a seguir.

Dispositivos orientados a caractere


Os dispositivos orientados a caractere realizam suas transferncias de dados byte a byte e
de modo sequencial. As portas seriais so exemplos de dispositivos orientados a caractere.
Geralmente, esses dispositivos no utilizam buffers (espao em memria) em suas opera-

Captulo 1 - Introduo ao sistema operacional Linux

11 So criados com mknod e removidos com rm.

es de entrada e sada, ou seja, os dados so lidos e escritos diretamente no dispositivo.


13

Dispositivos orientados a bloco


Os dispositivos orientados a bloco realizam suas transferncias de dados em blocos de
tamanho que pode variar entre 512 bytes e 32 Kbytes, sendo o acesso feito de modo
aleatrio. Os discos rgidos e as unidades de fita so exemplos de dispositivos orientados
a bloco. As operaes de entrada e sada destes dispositivos so feitas utilizando buffers
intermedirios.

Socket
11 Utilizado para comunicao bidirecional entre processos.

11 Unix Domain Sockets.


11 Sockets de rede.
11 So criados com a chamada de sistema socket e removidos atravs do comando rm
ou da chamada de sistema close.
O socket um tipo de arquivo utilizado para a comunicao bidirecional entre dois processos.
Existem basicamente dois tipos de sockets: o primeiro deles, conhecido como Unix domain
socket ou IPC socket (Inter Process Communication socket) utilizado para a comunicao
entre processos executados em um mesmo sistema operacional. O outro tipo o socket de
rede, utilizado para a comunicao entre processos executados em computadores diferentes,
interligados por uma rede. Entre os sockets de rede podemos destacar o datagram socket, que
um tipo de socket no orientado conexo, utilizado pelo protocolo UDP; o stream socket
que um tipo de socket orientado conexo, utilizado pelo protocolo TCP; e o raw socket,
utilizado por protocolos de gerenciamento e monitoramento de redes como o protocolo ICMP.
Um socket criado pela chamada de sistema socket e pode ser removido com o comando rm
ou por meio da chamada de sistema close, quando o socket no estiver mais sendo utilizado.
A maioria das aplicaes em um sistema Linux faz uso de sockets.

Named pipe
11 Permite a comunicao bidirecional entre dois processos rodando numa mesma mquina.

11 Faz parte do sistema de arquivos.


11 criado com o comando mknod ou mkfifo.
11 removido com o comando rm.
11 Interliga processos que no possuem relao entre si.
O named pipe, tambm conhecido como FIFO, permite a comunicao bidirecional entre
dois processos executados no mesmo sistema operacional. Um named pipe referenciado

Administrao de Sistemas Linux

pelos processos que conecta atravs de seu nome e faz parte do sistema de arquivos. Ele

14

criado atravs dos comandos mkfifo ou mknod e removido com o comando rm ou por meio da
chamada de sistema unlink. Um named pipe permite a comunicao entre processos que no
possuam relao entre si. Existe tambm o pipe convencional, representado pelo caractere |,
que utilizado em comunicaes unidirecionais, conectando a sada de um processo entrada
de outro. A diferena entre eles que no pipe convencional, os processos conectados devem
possuir uma relao pai para filho ou serem irmos. Ao contrrio do named pipe, que precisa
ser explicitamente encerrado aps seu uso, o pipe convencional encerrado automaticamente
aps a execuo dos processos que ele conecta.

Figura 1.9
Named pipe.

Dados

Pipe (FIFO)

Proc. 1

Proc. 2

Link

Hard link:
11 Dois arquivos apontando para o mesmo inode.
Symbolic link:
11 Ponteiro para um arquivo existente.
11 Associado a outro inode number.

O Linux suporta dois tipos de links: hard link e symbolic link. Para explicar as diferenas
entre eles, vamos tomar como exemplo uma situao em que dois usurios (Maria e Joo)
compartilham um arquivo denominado relatorio.txt, cujo tamanho 200 bytes (Figura 1.10).
/

etc

home

maria

linux.conf

relatorio.txt

Exemplos:

# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 relatorio.txt
# ln ~joao/relatorio.txt ~maria/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-- 2 maria maria 200 Feb 01 18:00 relatorio.txt
-rw-r--r--

2 joao joao 200 Feb 05 11:30 relatorio.txt

Hard link
11 Associa dois ou mais nomes de arquivos ao mesmo inode.

11 Compartilha a mesma rea de dados.


11 No pode ser criado para diretrios.
11 Criado com o comando ln.
11 Removido com o comando rm.
Como mencionado anteriormente, as informaes sobre um arquivo so armazenadas
em seu inode. No hard link, existe uma nica cpia do arquivo armazenada nos blocos de
dados. Essa cpia referenciada por um nico inode, que, por sua vez, referenciado pelos

Captulo 1 - Introduo ao sistema operacional Linux

Figura 1.10
Hard link
para arquivo.

joo

arquivos nos diretrios dos usurios. Dessa forma, sempre que um dos usurios modificar
15

o contedo do seu arquivo, as mudanas sero automaticamente percebidas pelos outros,


uma vez que seus arquivos apontam para a mesma rea em disco. No exemplo descrito, o
espao de 200 bytes do arquivo relatorio.txt alocado uma nica vez nos blocos do disco,
mas o inode que aponta para esses blocos referenciado pelos arquivos nos diretrios dos
usurios Maria e Joo, como mostra a Figura 1.11. Um hard link criado com o comando ln e
s pode apontar para arquivos regulares ou symbolic links. A existncia deste tipo de link no
to simples de ser verificada. Ele pode ser identificado pelo nmero que aparece aps as
permisses associadas a um arquivo, como pode ser visto no exemplo abaixo. O nmero 2
identifica que alm do arquivo original, existe um hard link apontando para ele.
Arquivo
de Joo

Inode
do link

Inode de
relatorio.txt

Arquivo
de Maria

Arquivo
relatorio.txt

Symbolic link
11 Arquivos que so ponteiros para outros arquivos.

Figura 1.11
Hard link.

11 Fornecem referncia por nome.


11 Ocupam um espao mnimo.
11 Podem apontar para qualquer rea do disco, inclusive em outras parties.
11 Criados com o comando ln s.
11 Removidos com o comando rm.
representado por um arquivo cujo contedo o nome do arquivo original para o qual o
symbolic link est apontando. Neste caso, existem dois arquivos com contedos diferentes,
cada um deles com seu inode associado. Quando um symbolic link acessado, o sistema verifica
atravs das informaes contidas em seu inode que ele do tipo symbolic link. Aps isso, recupera a identificao do arquivo original e realiza as operaes solicitadas diretamente sobre ele.
Um symbolic link criado com o comando ln, utilizando a opo -s e pode apontar para qualquer tipo de arquivo. Um symbolic link identificado pela letra l, que o primeiro caractere
em uma lista de arquivos gerada pelo comando ls, utilizando a opo -l. possvel tambm
ver o nome do arquivo apontado no final da linha, como mostra o exemplo abaixo.

Administrao de Sistemas Linux

Exemplos:

16

# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria

200 Feb 01 18:00 relatorio.txt

# ln s ~maria/relatorio.txt ~joao/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-lrwxrwxrwx

1 maria maria

200 Feb 01 18:00 relatorio.txt

1 joao joao 20 Feb 05 11:30 relatorio.txt -> ~maria/

relatorio.txt

No exemplo acima, o espao de 200 bytes ocupado pelo arquivo relatorio.txt alocado uma
nica vez nos blocos do disco. Apenas o arquivo no diretrio da usuria Maria referencia essa
rea de dados. No diretrio do usurio Joo, existe outro arquivo, do tipo symbolic link, cujo
contedo o nome do arquivo no diretrio da usuria Maria, como mostra a Figura 1.12.

home

etc

maria
Figura 1.12
Symbolic link
para arquivo.

linux.conf

joo

relatorio.txt

link

O arquivo de Joo est armazenado em outro local do disco sendo referenciado por outro inode
e seu tamanho menor do que o tamanho do arquivo origina, como pode ser visto na Figura
1.13, j que seu contedo somente o nome do arquivo original para o qual est apontando.

Arquivo
de Maria

Inode de
relatorio.txt

Inode
do link

Arquivo
relatorio.txt

Vantagens e desvantagens
Cada um dos tipos de link vistos tem suas vantagens e desvantagens. Utilizando hard links,
independentemente do nmero de links existentes, apenas um inode ser utilizado. Porm,
como esse inode guarda informaes sobre o proprietrio do arquivo, em determinadas
situaes isto pode gerar problemas. Vamos retornar ao exemplo anterior para visualizar
essa situao. Supondo que Maria seja a proprietria do arquivo relatorio.txt e um hard link
seja criado para que Joo tenha acesso ao arquivo. O inode mantm um atributo (nmero
de links) indicando que dois arquivos apontam para esse mesmo inode. Quando Maria
remove o arquivo de seu diretrio, o sistema apenas decrementa esse atributo do inode do
arquivo. Assim, Maria no ter mais acesso ao arquivo, mas Joo ainda poder utiliz-lo.
Entretanto, uma vez que Maria a proprietria do arquivo, esse contabilizado no sistema
como recurso alocado para Maria, at que Joo decida remov-lo, se tiver permisso. Com o
symbolic link isso no acontece, pois apenas o proprietrio do arquivo pode remov-lo.
No exemplo, Maria seria a proprietria do arquivo e Joo teria apenas um symbolic link para
ele. Se Joo apagasse o symbolic link, o arquivo original no seria apagado. Porm, se Maria
apagasse o arquivo, Joo no poderia mais utiliz-lo, j que o symbolic link apenas um ponteiro para o arquivo original. Neste caso o symbolic link ficaria sem referncia.

Captulo 1 - Introduo ao sistema operacional Linux

Figura 1.13
Symbolic link.

Arquivo
de Joo

17

Note que o symbolic link muito parecido com os atalhos do MS Windows. A utilizao de symbolic links obrigatria quando se quer criar um link para um diretrio,
ou entre arquivos localizados em diferentes parties. Em ambos os casos, no
possvel definir um hard link.

Exerccio de fixao 1 e
Identificando tipos de arquivos
Identifique o tipo dos arquivos listados.
11 /dev/tty0
11 /usr/bin
11 /etc/passwd
11 /dev/hda
11 /dev/log
11 /etc/rc3.d/S99rc.local

Comando ls
Para trabalhar com arquivos fundamental que o usurio conhea suas caractersticas.
Essas informaes podem ser visualizadas com o comando ls. Com ele, o usurio pode visualizar vrias informaes sobre arquivos, desde o nome dos arquivos existentes em um
diretrio at o nmero de hard links que apontam para esses arquivos. As informaes
mostradas pelo comando ls dependem das opes passadas na linha de comando. Por
exemplo, quando informada a opo -l, o comando ls lista as informaes guardadas no
inode do arquivo, como: permisses, nmero de hard links que apontam para o arquivo,
proprietrio do arquivo, grupo do arquivo, tamanho e data de criao e modificao. Para
ver todas as funcionalidades do comando ls, consulte sua pgina de manual com o comando

Administrao de Sistemas Linux

man ls.

18

Comando

Funo

ls

Listar informaes sobre arquivos

Tipo do arquivo

Smbolo

Arquivo regular

Diretrio

Arquivo de dispositivo orientado a caractere

Arquivo de dispositivo orientado a bloco

Socket

Named pipe

Symbolic link

Tabela 1.1
Comando ls (tipos
de arquivos).

Permisses de arquivos
11 Nove bits controlam quem pode ler, escrever ou executar um arquivo.

11 Trs outros afetam a operao de arquivos executveis e o comportamento de diretrios.


11 Quatro bits guardam a informao do tipo do arquivo (no podem ser modificados).
No Linux, todo arquivo possui um conjunto de permisses de acesso associadas. Essas permisses so definidas por nove bits que determinam quem pode ler, escrever e executar
um arquivo. Alm dos bits de permisso, existem trs bits especiais que afetam o modo
de execuo dos arquivos e o comportamento dos diretrios. Por fim, o conjunto formado
por esses doze bits armazenado, juntamente com outros quatro bits, que indicam o tipo
do arquivo, numa palavra de 16 bits. Os quatro bits que indicam o tipo do arquivo so definidos no momento da sua criao e no podem ser alterados. Como j vimos, o comando
ls pode ser utilizado para verificar o valor desses bits. O campo que, no exemplo abaixo,
apresenta o valor -rwxr-xr-x representa as permisses associadas ao arquivo, bem como
seu tipo. A seguir veremos em detalhes os bits de permisso.

#ls -l /bin/sh
-rwxr-xr-x 1 root root 85924 01 Dec 2002 /bin/sh

Bits de permisso
So nove os bits de permisso, utilizados para determinar as operaes que podem ser
executadas em um arquivo, e quem pode execut-las. O Linux define conjuntos de permisses para o dono do arquivo, para o grupo ao qual o arquivo pertence e para os outros
usurios do sistema. Cada conjunto possui trs bits: um bit de leitura (r), um bit de escrita
(w) e um bit de execuo (x), chamado bit de pesquisa, quando se trata de um diretrio.
Assim, os trs primeiros bits controlam o acesso do dono, os trs do meio controlam o
acesso do grupo e os ltimos trs controlam o acesso para os demais usurios do sistema
(outros). Em cada trio, o bit mais alto o que controla a leitura, o bit do meio controla a
escrita e o ltimo bit controla a execuo do arquivo. Cada usurio de um sistema Linux
enquadra-se em, pelo menos, uma das trs categorias descritas. Caso ele no seja o dono
do arquivo, nem pertena ao mesmo grupo ao qual o arquivo pertence, as permisses
dadas aos outros sero levadas em considerao. O bit de leitura permite a abertura e
arquivo seja modificado. A possibilidade de renomear ou remover um arquivo, contudo,
controlada pelas permisses do diretrio ao qual ele pertence. O bit de execuo, como o
nome j sugere, permite que o arquivo seja executado; por isso, este tipo de permisso s
faz sentido em arquivos executveis. Para um diretrio, o bit de execuo tem um significado um tanto diferente. Ele permite a entrada em um diretrio, mas no necessariamente
que o seu contedo seja listado. A listagem do contedo de um diretrio s pode ser realizada se os bits de leitura e execuo forem definidos. J a combinao dos bits de escrita e
execuo permite que arquivos sejam criados, removidos e renomeados dentro de um diretrio. Quando um bit de permisso no definido, o caractere - inserido em seu lugar.

Captulo 1 - Introduo ao sistema operacional Linux

a leitura de um arquivo normal. O bit de escrita, por sua vez, permite que o contedo do

19

Dono
1

read (r)

Outros
1

= 751

Grupo

write (w)

Figura 1.14
Bits de permisso.

execute (x)
Acesso

Significado para arquivos

Significado para diretrios

Permitir abrir e ler.

Listar, se x est setado.

Modificar ou truncar; deletar ou


renomear: ver perm. dir.

Criar, renomear e deletar arquivos,


se x est setado.

Executar arquivo.

Entrar, mas no listar.

Exerccio de fixao 2 e
Anlise de permisses
Analisando as informaes obtidas com o comando #ls l /bin/su, identifique as permisses
dadas aos elementos a seguir.

# ls l /bin/su
-rwsr-xr-x 1 root root 31060 2010-09-03 07:28 /bin/su
11 Dono do arquivo.
11 Grupo ao qual o dono pertence.
11 Permisso para usurios de outros grupos.

Bits especiais
Dissemos que, alm dos nove bits de permisso, outros trs afetam a execuo de programas executveis e diretrios, e que juntos eles formam os 12 bits de modo. Esses outros
trs bits, setuid (SUID), setgid (SGID) e sticky bit so descritos a seguir.

Administrao de Sistemas Linux

t
s
s

aqui indica que o programa SGID


aqui indica que o programa SUID

Sticky bit
11 Evita mecanismo de swap-on/swap-off em arquivos executveis (em desuso).
11 Controla a escrita em diretrios de uso geral.
11 Representado pela letra t.
O estabelecimento desse bit remonta aos tempos em que memria era um recurso caro
e escasso em sistemas Linux, e acessos a unidades de disco eram lentas. Sistemas com
pouca memria necessitavam de que alguns programas se mantivessem na memria continuamente. O sticky bit era importante nesse contexto. Ele garantia que um determinado

20

Figura 1.15
SUID, SGID
e sticky bit.

aqui indica que o programa sticky

processo permaneceria na memria principal, no tendo sua performance prejudicada por


conta do esquema de swapping. Hoje em dia, com o relativo baixo custo de memria e as
unidades de disco cada vez mais velozes, o estabelecimento desse bit em arquivos executveis caiu em desuso.
Atualmente, o sticky bit definido somente em diretrios e utilizado para impedir que
um usurio apague ou renomeie um arquivo, a menos que seja dono do diretrio ou do
arquivo. Deste modo, ter permisso de escrita e pesquisa em um diretrio com sticky bit
definido no suficiente para remover ou renomear arquivos e diretrios de outros usurios. dessa forma que o Linux evita que, em diretrios de uso pblico, como o /tmp, os
usurios removam ou renomeiem arquivos de outros usurios. Esta regra s no vlida
para o usurio root. O sticky bit quando definido substitui a letra x da permisso de execuo dos outros pela letra t caso a permisso de execuo tenha sido definida. Caso
contrrio, a letra T inserida no lugar do caractere -.

Setgid (SGID)
11 Utilizado em arquivos executveis e diretrios.

11 Representado pela letra s.


O bit SGID pode ser definido em arquivos executveis e diretrios. Ele permite que um
arquivo seja executado com as permisses do grupo dono do arquivo, independente do
usurio que o tenha executado. Embora qualquer tipo de arquivo possa ter esse bit definido,
muitas verses do Linux s o levam em conta quando so definidos em programas executveis ou diretrios. Quando o bit SGID definido em um diretrio, todos os arquivos criados
neste diretrio pertencero ao grupo dono do diretrio, independente do grupo primrio
do usurio que os tenha criado. O SGID, quando definido, substitui a letra x da permisso
de execuo do grupo pela letra s, caso a permisso de execuo tenha sido definida. Caso
contrrio, a letra S inserida no lugar do caractere -.

Setuid (SUID)
11 Utilizados em arquivos executveis.

11 Representado pela letra s.


O bit SUID s possui efeito em arquivos executveis. Ele permite que um arquivo seja
usurio que o tenha executado. O arquivo executvel passwd, utilizado para troca de senha
um exemplo de arquivo que tem o bit SUID definido. Isto necessrio para que usurios
comuns possam alterar suas senhas, j que somente o usurio root tem permisso de
escrita no arquivo /etc/passwd que armazena as senhas dos usurios do sistema. Embora
qualquer tipo de arquivo possa ter esse bit definido, muitas verses do Linux s o levam em
conta quando so definidos em programas executveis. O SUID, quando definido, substitui
a letra x da permisso de execuo do dono do arquivo pela letra s caso a permisso de
execuo tenha sido definida. Caso contrrio, a letra S inserida no lugar do caractere -.

Comando chmod mudando permisses


Os doze bits de permisso, referenciados anteriormente, podem ser modificados pelo dono
do arquivo ou pelo administrador do sistema, atravs do comando chmod. Os primeiros
sistemas Unix exigiam que os usurios entendessem de notao binria ou octal para
utilizar esse comando. As verses mais recentes do sistema, entretanto, aceitam tanto a

Captulo 1 - Introduo ao sistema operacional Linux

executado como se estivesse sendo executado pelo dono do arquivo, independente do

notao octal quanto uma sintaxe mais mnemnica. Entretanto, preferimos trabalhar com a
21

notao octal, por ser mais conveniente para administradores de sistema. O comando chmod
recebe dois blocos de argumentos. O primeiro deles um nmero octal, que representa
as permisses a serem atribudas e o segundo bloco composto de um ou mais nomes de
arquivos, separados por espao em branco, cujas permisses devem ser alteradas. Na forma
normal, o primeiro dgito octal refere-se s permisses do dono do arquivo; o segundo, s do
grupo dono do arquivo; e o terceiro, s dos outros usurios. Para estabelecer as permisses
associadas aos bits setuid, setgid e sticky bit, preciso utilizar quatro dgitos octais no lugar de
trs. Nesse caso, os trs bits especiais so definidos pelo primeiro dgito. A Tabela 1.2 ilustra as
oito possveis combinaes para cada um dos trs bits, em que r, w e x correspondem s
permisses de leitura (Read), de escrita (Write) e de execuo (eXecute) respectivamente.
Comando

Funo

chmod

Modificar a permisso de arquivos e diretrios

Octal

Binria

Permisses

000

---

001

--x

010

-w-

011

-wx

100

r--

101

r-x

110

rw-

111

rwx

Tabela 1.2
Mudando permisses de arquivos.

A Tabela 1.3 ilustra as oito possveis combinaes utilizadas para definir ou no os bits

Administrao de Sistemas Linux

especiais SUID, SGID e sticky bit.

22

Comando

Funo

chmod

Modificar a permisso de arquivos e diretrios

Octal

Binria

Descrio

000

SUID, SGID e sticky bit no definidos

001

Sticky bit definido

010

SGID definido

011

Sticky bit e SGID definidos

100

SUID definido

101

Sticky bit e SUID definidos

110

SGID e SUID definidos

111

Sticky bit, SGID e SUID definidos

A seguir podemos ver um exemplo de execuo do comando chmod.

# chmod 0751 /home/aluno1/arquivo.txt

Tabela 1.3
Mudando permisses especiais.

O comando acima atribui todas as permisses para o dono, ou seja, pode ler, escrever e executar o arquivo; atribui ao grupo permisso para apenas ler e executar o arquivo e atribui
aos outros somente permisso para execut-lo. O primeiro nmero octal passado como
parmetro para o comando chmod referente s permisses especiais; o segundo, terceiro
e quarto so relativos s permisses aplicadas ao dono do arquivo, ao grupo e aos outros,
respectivamente. importante ressaltar que o primeiro nmero octal opcional e se no
for definido, ser considerado como tendo o valor 0.

Exerccio de fixao 3 e
Alterando permisses de arquivo
Executado o comando #ls -l no arquivo /bin/sh, foi obtido o resultado abaixo. Qual foi o
comando executado para alterar as permisses do arquivo?
Antes

-r-xrwxr-x 1 root root 85924 01 Jan 2012 /bin/sh


Depois

-rwxr-xr-x 1 root root 85924 01 Mar 2012 /bin/sh


A) #chmod 0553 /bin/sh
B) #chmod 0751 /bin/sh
C) #chmod 0741 /bin/sh
D) #chmod 0653 /bin/sh
E) #chmod 0771 /bin/sh

Comando umask
O comando umask (user mask) pode ser utilizado para estabelecer as permisses padres
para os arquivos criados no sistema. Para esse comando, passado um parmetro na
forma de um valor octal de trs dgitos, os quais representam as permisses que devem
ser atribudas aos arquivos no momento da sua criao. Os dgitos estabelecem as permisses mostradas na Tabela 1.4. A relao entre os valores passados para o comando
chmod. O valor padro da umask para a maioria das distribuies Linux 022. Para verificarmos o valor da mscara atual devemos executar o comando umask sem parmetros.
A Tabela 1.4 mostra que o valor da umask resulta em diferentes permisses para arquivos
binrios, arquivos texto e diretrios.

Captulo 1 - Introduo ao sistema operacional Linux

umask e as permisses resultantes diferem bastante da relao aplicada para o comando

23

Comando

Funo

umask

Estabelecer permisses padres para arquivos criados

Octal

Binria

Permisses

Administrao de Sistemas Linux

Arquivo

24

Diretrio

Binrio

Texto

000

r-x

rw-

rwx

001

r--

rw-

rw-

010

r-x

r--

r-x

011

r--

r--

r--

100

--x

-w-

-wx

101

---

-w-

-w-

110

--x

---

--x

111

---

---

---

Tabela 1.4
Comando umask.

Roteiro de Atividades 1
Atividade 1.1 Identificando bits de permisso
1. Verifique as permisses do diretrio /tmp. O que voc percebe de diferente em relao s

permisses de outros?
2. Considerando que h permisso de escrita no diretrio para todos, o que o impediria de

remover um arquivo de outra pessoa?

Atividade 1.2 Identificando e entendendo hard links


Como voc deve ter lido no Captulo 1, o nmero de links (link counter) que apontam para
um arquivo mantido em seu inode. Esse contador utilizado pelo sistema para controlar a
liberao dos blocos do disco alocados ao arquivo quando o contador atingir o valor zero, ou
seja, quando nenhum outro arquivo estiver apontando para o inode.
1. Qual o nmero de links do seu diretrio home?
2. Crie o arquivo arqses1ex3 no seu diretrio home. possvel utilizar o comando touch.
3. Verifique o nmero de links do arquivo arqses1ex3 e anote o resultado. Voc pode utilizar

o redirecionamento de sada para registrar esse resultado no prprio arquivo criado. Essa
informao ser necessria para uma atividade posterior.
4. Verifique se mudou o nmero de links do seu diretrio home.
5. Crie um diretrio com o nome de dirses1ex3, tambm no seu diretrio home.
6. Mais uma vez, verifique o nmero de links do seu diretrio home. Ele mudou?

Voc saberia dizer por qu?


7. Qual o nmero de links do diretrio dirses1ex3?
8. Verifique qual opo deve ser passada ao comando ls para que ele liste as informaes do

diretrio dirses1ex3 e no o seu contedo.


9. Voc saberia explicar por que o nmero de links do diretrio dirses1ex3 maior que um?

Atividade 1.3 Conhecendo diferenas entre hard link e symbolic link


No Captulo 1, vimos a importncia dos links criados com o comando ln. Para criar um
symbolic link, a opo -s deve ser informada na linha de comando. Consulte as pginas do

1. No seu diretrio de trabalho, crie um hard link para o arquivo arqses1ex3. O nome do

arquivo criado dever ser hosts.hard.


2. Verifique agora o nmero de links do arquivo arqses1ex3 e compare com aquele obtido

na Atividade 1.2. Explique a diferena.


3. Crie um symbolic link para o arquivo arqses1ex3, que dever se chamar hosts.symbolic.
4. O nmero de links do arquivo arqses1ex3 aumentou?

Captulo 1 - Roteiro de Atividades

manual para conhecer outras opes.

25

5. Caso no tenha aumentado, por que isso aconteceu, considerando que foi criado um

link para ele?


6. Qual o tamanho do arquivo hosts.symbolic?
7. Voc percebe alguma correlao entre o tamanho e o arquivo para o qual ele aponta?

Atividade 1.4 Trabalhando com hard link e symbolic link


Se o arquivo original arqses1ex3 fosse removido, o que aconteceria se tentssemos acess-lo
pelo hard link? E pelo symbolic link?
Depois de responder a essas questes, remova o arquivo criado (arqses1ex3) e verifique se
as suas respostas esto corretas.

Atividade 1.5 Conhecendo limitaes do hard link


Crie um arquivo chamado arqses1ex6. Em seguida, crie um hard link para esse arquivo com o nome
link-arqses1ex6 no diretrio /tmp. O que aconteceu? Por qu? Como resolver esse problema?

Para que esta atividade tenha efeito, o diretrio /tmp dever ter sido criado numa
partio diferente da partio onde se encontra o home do usurio. Caso essa situao no ocorra, verifique se existe o diretrio /var/tmp e veja se ele est em outra
partio. Se for o caso, use este ltimo para fazer a atividade.

Atividade 1.6 Criando links para diretrios


Crie, no seu diretrio home, um link simblico para o diretrio /usr/bin com o nome de
link-bin. Com o link criado, execute o seguinte:
1. Mude para o diretrio link-bin.
2. Agora, v para o diretrio pai (utilize a notao ..).Voc saberia explicar por que se

encontra no seu diretrio home e no no diretrio /usr?

Atividade 1.7 Alterando permisses de arquivos e diretrios


O comando chmod utilizado para modificar as permisses de um arquivo. Utilizando a
notao octal, execute a seguinte sequncia:
1. Modifique a permisso do seu diretrio home de modo a retirar a permisso de escrita do

seu dono.

Administrao de Sistemas Linux

2. Verifique as permisses associadas ao arquivo arqses1ex6. Voc tem permisso para

escrever nesse arquivo? E o grupo?


3. Tente remover o arquivo arqses1ex6. Voc conseguiu? Em caso negativo, voc sabe

explicar o motivo?
4. Modifique as permisses do arquivo arqses1ex6 de forma a retirar a permisso de escrita

para o dono e coloc-la para o grupo.


5. Com o uso de redirecionamento, tente copiar o contedo do seu diretrio home para

dentro do arquivo arqses1ex6.


6. Torne a colocar a permisso para escrita no seu diretrio home para o dono.

26

Atividade 1.8 Atribuindo as permisses padres


Crie arquivos (arq1ses1ex9, arq2ses1ex9 etc.) e diretrios (dir1ses1ex9, dir2ses1ex9 etc.), aps
definir cada uma das seguintes umasks: 000; 002; 003; 023; 222; 022. Em seguida, observe as
permisses que foram associadas a cada um dos arquivos e diretrios.

Atividade 1.9 Entendendo as permisses padres


Na execuo da atividade anterior, voc saberia explicar por qu, ainda que utilizando a

Captulo 1 - Roteiro de Atividades

mesma umask, as permisses associadas ao arquivo criado diferem das do diretrio?

27

28

Administrao de Sistemas Linux

2
Conhecer os parmetros associados a grupos e conta de um usurio; os comandos para
modificar os parmetros de uma conta; entender o mecanismo de shadow passwords;
aprender a manipular grupos e contas de usurios e monitorar atividades de usurios.

conceitos

Usurios, grupos e senhas.

Introduo
Quando o sistema operacional Unix foi desenvolvido, era comum a criao de contas de usurios, que utilizavam o sistema conectados diretamente atravs de sua console ou atravs
de acesso remoto, trabalhando em aplicativos que eram executados no prprio servidor.
Nessa poca, a maioria dos usurios eram pesquisadores e estudantes de computao e
reas relacionadas. Com a adoo em massa dos computadores pessoais, a partir da dcada
de 1980 este modelo comeou a cair em desuso.
Com a popularizao da internet, os sistemas comearam e se tornar alvos de atacantes
que exploravam vulnerabilidades em softwares e realizavam tentativas de acesso utilizando contas de terceiros. Com isso, os administradores passaram a adotar prticas mais
seguras, restringindo ao mximo a criao de contas de usurios. Com o passar do tempo,
a ocorrncia de incidentes de segurana se tornou cada vez mais constante e outra prtica
que passou a ser adotada foi a criao de contas sem shell, no permitindo que os usurios fizessem login no sistema. Assim, os usurios acessam somente os servios que so
executados nos servidores, como e-mail e compartilhamento de arquivos, j que no tm
necessidade nenhuma de fazerem login no servidor.
A criao de usurios e grupos em sistemas Unix-like importante para definir que recursos
podem ser acessados por quais usurios e/ou grupos e permite ao sistema operacional
gerenciar a execuo dos processos de cada usurio de forma adequada. Atualmente cada
vez mais comum o uso de bases de usurios centralizadas e gerenciadas por programas
como o LDAP, que acabam com a necessidade de se criar contas de usurios em cada um
dos diversos sistemas de uma instituio. No entanto, o modelo de criao de usurios
e grupos tradicional dos sistemas Unix-like ainda bastante utilizado e ser o objeto de
estudo deste captulo.

Captulo 2 - Usurios e grupos

objetivos

Usurios e grupos

29

Grupos
Arquivo /etc/group:

11 grupo:senha:GID:lista_de_usurios
22 grupo: nome do grupo.
22 senha: senha do grupo (em desuso).
22 GID: nmero de identificao do grupo.
22 lista_de_usurios: relao dos usurios que pertencem ao grupo, separados por vrgula.
Exemplo:
11 logistica::1001:funcionario1,funcionario2
A criao de grupos de usurios geralmente feita para controlar o acesso a arquivos
ou servios. Cada grupo no sistema possui um nome e um identificador numrico nico,
denominado Group ID (GID). As informaes sobre os grupos do sistema esto contidas
nos arquivos /etc/group e /etc/gshadow. Cada linha desses arquivos possui informaes
relativas a um determinado grupo. Suponhamos que o setor financeiro de uma empresa,
que controla o salrio dos funcionrios, deseja disponibilizar as estatsticas consolidadas
desses salrios no sistema de informaes da empresa, para que seus colaboradores
possam utiliz-las para clculos. Porm, essas informaes no podem ser vistas por todos
os funcionrios da empresa. Assim, a criao do grupo financeiro e a disponibilizao desses
arquivos somente para os usurios desse grupo resolveria o problema. A linha referente ao
grupo financeiro no arquivo /etc/group poderia ser semelhante a do exemplo seguinte:

financeiro:x:1002:funcionario3,funcionario4,funcionario5
Os campos presentes nas linhas do arquivo /etc/group so separados pelo caractere : e so
os seguintes: nome do grupo; senha do grupo; GID e lista de usurios pertencentes ao grupo,
separados por vrgulas. importante ressaltar que no uma prtica comum atribuir senhas
aos grupos, ficando este campo em branco. Para incluir novos usurios em um grupo,
preciso editar os arquivos /etc/group e /etc/gshadow e acrescentar o nome desses usurios ao
final da linha referente ao grupo. Um usurio pertence obrigatoriamente a um grupo primrio
e pode fazer parte de vrios grupos secundrios, tendo assim diversos tipos de permisses.
Neste captulo sero vistos comandos que podem automatizar tarefas de manipulao de
grupos, eliminando a necessidade de edio dos arquivos /etc/group e /etc/gshadow.
Cuidados adicionais devem ser tomados para evitar problemas na utilizao de grupos.
Por exemplo, suponhamos que foi criado o diretrio /home/financeiro para que os usurios
do grupo financeiro possam compartilhar arquivos. Nesse caso, as permisses do grupo
proprietrio nesse diretrio e em seus arquivos seriam rwx e rw-, respectivamente, o que

Administrao de Sistemas Linux

possibilita acesso irrestrito aos usurios do grupo financeiro. Nesse contexto, se o usurio
funcionario3, cujo grupo primrio funcionario3, criar um arquivo nesse diretrio, esse
arquivo ter como grupo proprietrio o seu grupo primrio. Assim, apenas os usurios pertencentes ao grupo funcionario3 poderiam ter acesso ao arquivo, e no os usurios do grupo
financeiro, como era pretendido. H duas alternativas para resolver esse problema:
1. A primeira pouco prtica, consistindo em utilizar o comando chgrp para mudar o grupo

ao qual o arquivo pertence, lembrando de utilizar esse comando sempre que um novo
arquivo for criado.
2. A segunda soluo utilizar o bit especial SGID para que todos os arquivos criados no dire-

trio /home/financeiro pertenam automaticamente ao grupo proprietrio deste diretrio.


30

Um usurio pode fazer parte de vrios grupos:


11 Grupo primrio: GID do usurio (presente no arquivo /etc/passwd).
11 Grupos secundrios: relacionados nos arquivos /etc/group e /etc/gshadow.
Comando chgrp:
11 Modifica o grupo ao qual pertence um arquivo ou diretrio.
Bit SGID:
11 Todos os arquivos criados em um diretrio com o bit SGID definido pertencero automaticamente ao grupo proprietrio desse diretrio.
Exemplos:

# ls -la tabelas.doc
-rw-r--r-- 1 aluno1 aluno1 23 Abr

9 15:23 tabelas.doc

# chgrp -c users tabelas.doc


changed group of tabelas.doc to users
# ls -la tabelas.doc
-rw-r--r 1 aluno users 23 Abr

15:23 tabelas.doc

# chmod 664 tabelas.doc


# ls -la tabelas.doc
-rw-rw-r-- 1 aluno users 23 Abr

15:23 tabelas.doc

Arquivo /etc/gshadow
grupo:senha:administradores_do_grupo:lista_de_usurios:

11 grupo: nome do grupo.


11 senha: senha do grupo (em desuso).
11 administradores_do_grupo: relao dos usurios que podem inserir ou remover
usurios no grupo.
11 lista_de_usurios: relao dos usurios que pertencem ao grupo, separados por vrgula.
Exemplo:
11 logistica::510:marcio,marcelo,joel
O arquivo /etc/gshadow criado pelo comando pwconv, que habilita o esquema de shadow
passwords no Linux. Cada linha desse arquivo possui informaes relativas a um determi-

financeiro:!!:funcionario3:funcionario3,funcionario4,funcionario5
Os campos presentes nas linhas do arquivo /etc/gshadow so separados pelo caractere :
e so os seguintes: nome do grupo; senha do grupo; administradores do grupo (relao
de usurios que podem inserir ou remover usurios neste grupo utilizando o comando
gpasswd) e lista de usurios (relao de usurios que pertencem ao grupo).

Captulo 2 - Usurios e grupos

nado grupo. O exemplo a seguir mostra uma linha tpica do arquivo /etc/gshadow.

31

Exerccio de fixao 1 e
Arquivos de administrao de grupo
Execute o comando more ou cat para visualizar o contedo dos arquivos /etc/group e /etc/gshadow.
Existem grupos com mais de um usurio? Se sim, selecione trs grupos e mostre quais so
seus usurios.

Usurios
No Linux, apenas os usurios cadastrados podem acessar o sistema. Eles so identificados
por um nome de usurio e uma senha, possuem um diretrio de trabalho (home directory)
e um interpretador de comandos (shell) associado. Internamente, o sistema reconhece um
usurio atravs de um nmero inteiro que o identifica de forma nica. Esse nmero o User
ID (UID). Todo usurio pertence a pelo menos um grupo, denominado grupo primrio, que
representado pelo seu GID. As informaes sobre os usurios cadastrados esto armazenadas nos arquivos /etc/passwd e /etc/shadow. Cada linha desses arquivos possui informaes relativas a um nico usurio.
Arquivo /etc/passwd:

11 username:password:UID:GID:GECOS:homedir:shell
22 username: nome do usurio.
22 password: senha criptografada.
22 UID e GID: user e group identification.
22 GECOS: dados do usurio (nome, telefone comercial etc.).
22 homedir: diretrio de trabalho (home directory).
22 shell: interpretador de comandos.
O exemplo a seguir mostra uma linha tpica do arquivo /etc/passwd (sem /etc/shadow):

aluno1:Owei3945ai/qio:503:200:Aluno 1:/home/aluno1:/bin/bash
Os campos presentes nas linhas do arquivo /etc/passwd so separados pelo caractere :
e so os seguintes: nome de usurio; senha criptografada; UID (User ID); GID (Group ID);
GECOS (campo utilizado para armazenar informaes sobre o usurio, como nome completo e telefone de contato); diretrio de trabalho e interpretador de comandos. O diretrio
de trabalho ou homedir o espao em disco reservado ao usurio na hora de sua incluso.
Por questes de segurana, alguns administradores definem contas de usurios, mas no
atribuem a elas um diretrio de trabalho ou um shell vlido. Desta forma, estes usurios no
conseguem se logar no sistema e apenas utilizam algum servio como o correio eletrnico

Administrao de Sistemas Linux

ou o compartilhamento de arquivos e impressoras.


Os usurios possuem diferentes permisses de acesso aos recursos do sistema. O usurio
root conhecido como superusurio e tem permisso para acessar qualquer recurso do
sistema e executar qualquer tipo de tarefa. Esse usurio (que possui UID 0) utilizado pelo
administrador do sistema, que deve utilizar esta conta com bastante cautela, j que pode
cometer algum erro grave e danificar todo o sistema. A senha do usurio root geralmente
definida durante a instalao do Linux. Durante a instalao do sistema, alm do usurio
root, so criados diversos usurios de sistema, com propsitos especficos. Os usurios bin,
daemon e sys so exemplos de usurios de sistema. Alguns deles no podem fazer login e
so utilizados apenas para controlar os recursos acessados por processos. Cada processo
em execuo no sistema possui um usurio proprietrio, que determina os recursos que
32

podem ser acessados pelo processo. Por exemplo, o usurio nobody pode acessar pouqussimos recursos do sistema e bastante utilizado para executar processos que disponibilizam seus servios atravs da rede. Em caso de ataques ao sistema explorando falhas de
um processo em execuo pelo usurio nobody, o invasor ganhar acesso ao sistema com
os privilgios desse usurio e, a princpio, pouco poder fazer. Caso esse processo atacado
estivesse sendo executado pelo usurio root, o invasor teria acesso imediato a qualquer
recurso do sistema.

Problemas de segurana
Limitaes de /etc/passwd:

11 Qualquer usurio tem acesso de leitura ao arquivo.


11 Contm as senhas criptografadas (vulnervel ao uso de crackers).
/etc/shadow:
11 Somente o administrador pode ler este arquivo.
Para fazer login, o usurio digita sua senha, que criptografada e comparada com a senha
armazenada no sistema. Caso ambas sejam iguais, seu acesso autorizado. Esse mtodo de
controle de acesso parece seguro, mas tem seus problemas. Por exemplo, para a memorizao ficar mais fcil, os usurios escolhem senhas baseadas em seus nomes, datas de
nascimento, nomes de filhos, animais de estimao etc. Essas senhas so fceis de lembrar,
mas tambm so fceis de serem descobertas por pessoas mal intencionadas, constituindo
um dos pontos mais vulnerveis da segurana dos sistemas. Para tentar minimizar esse problema, a maioria das distribuies Linux requer que as senhas possuam letras maisculas e
minsculas, alm de um dgito ou caractere especial.

Shadow passwords
username:password:last_changed:minimum:maximum:warn:inactive:expire

11 username: nome do usurio.


11 password: senha criptografada.
11 last_changed: nmero de dias desde o dia 1/1/1970 que a senha foi trocada pela ltima vez.
11 minimum: nmero de dias que o usurio deve aguardar para poder alterar sua senha.
11 maximum: nmero de dias em que a senha ser vlida.
11 warn: nmero de dias antes de a senha expirar em que o usurio ser avisado de que
deve alter-la.
11 inactive: nmero de dias aps a senha ter sido expirada em que a conta ser desabilitada.

H ainda outro problema que compromete a segurana dos sistemas Linux. Qualquer
usurio tem acesso de leitura ao arquivo /etc/passwd, que contm as senhas criptografadas. Assim, possvel utilizar programas chamados crackers, que geram senhas aleatoriamente ou utilizam palavras de dicionrios e as comparam com as senhas armazenadas,
possivelmente quebrando algumas delas. Para resolver esse problema, foi implementado
o conceito de shadow passwords, no qual as senhas criptografadas so armazenadas no
arquivo /etc/shadow. A grande vantagem deste mtodo que o arquivo /etc/shadow s
pode ser lido pelo administrador, ficando inacessvel para um usurio comum. Quando se
utiliza shadow passwords, o arquivo /etc/passwd possui apenas o caractere x no campo

Captulo 2 - Usurios e grupos

11 expire: nmero de dias desde o dia 1/1/1970 em que a conta ser desabilitada.

33

que armazena as senhas criptografadas. No entanto, havia um srio problema relacionado ao uso de shadow passwords: alguns programas utilizados no Linux assumiam que
as senhas estavam armazenadas no arquivo /etc/passwd, gerando algumas complicaes.
Limitaes como essas, no entanto, so cada vez mais raras, e o uso de shadow passwords
utilizado por padro no Linux.
O arquivo /etc/shadow alm de armazenar os nomes de usurio e suas senhas criptografadas, tambm possui informaes que definem propriedades sobre as senhas e as contas
dos usurios. Cada linha desse arquivo possui informaes relativas a um nico usurio.
O exemplo a seguir mostra uma linha tpica do arquivo /etc/shadow:

aluno1:Owei3945ai/qio:15360:0:99999:7:5::
Os campos presentes nas linhas do arquivo /etc/shadow so separados pelo caractere :
e so os seguintes: nome de usurio; senha criptografada; last_changed, que representa
o nmero de dias desde 1/1/1970 que a senha foi trocada pela ltima vez; minimum, que
representa o nmero de dias que o usurio deve aguardar para poder alterar sua senha;
maximum, que representa o nmero de dias em que a senha ser vlida (aps isso o usurio
obrigado a alter-la); warn, que representa o nmero de dias antes de a senha expirar em
que o usurio ser avisado de que deve alter-la; inactive, que representa o nmero de dias
aps a senha ter sido expirada em que a conta ser desabilitada; e expire, que representa o
nmero de dias desde 1/1/1970 em que a conta ser desabilitada.
O arquivo /etc/shadow gerado a partir do arquivo /etc/passwd e de informaes contidas
no arquivo /etc/login.defs. Para habilitar o esquema de shadow passwords e gerar o arquivo
/etc/shadow, basta executar o comando pwconv. Este comando cria os arquivos
/etc/shadow e /etc/gshadow. Para desabilitar o esquema de shadow passwords, basta executar o comando pwunconv. Este comando remove os arquivos /etc/shadow e /etc/gshadow
e armazena novamente as senhas criptografadas dos usurios no arquivo /etc/passwd.

Exerccio de fixao 2 e
Arquivos de administrao de usurios
Execute os comandos more ou cat para visualizar o contedo do arquivo /etc/passwd. Observando o contedo do arquivo voc pode afirmar que existe o /etc/shadow? Por qu?

Tipos de contas de usurios


Em um sistema Linux, existem basicamente trs tipos de contas de usurios: a conta root,
que utilizada pelo administrador e possui acesso irrestrito a todos os recursos do sistema;
as contas de sistema, que so utilizadas por servios para gerenciar seus processos e as

Administrao de Sistemas Linux

contas de usurio. A Tabela 2.1 mostra os tipos de contas com seus respectivos nveis de

34

permisso e exemplos de usurios.


Tipos de usurios

Permisses

Usurios

Administrador

Total

root

Padro

Parcial

aluno

Sistema

Especfica

sys, bin, ftp

Tabela 2.1
Tipos de contas
de usurios.

Senhas
11 Escolher senhas complexas.

11 Somente grav-las em sua memria.


11 Digit-las sem a presena de terceiros.
11 As senhas devem ser pessoais e intransferveis.
Senhas simples so mais fceis de memorizar, porm tambm so muito mais fceis de
serem quebradas. Para ajudar a manter a segurana do sistema, o administrador deve recomendar aos usurios que tomem cuidados como:
1. Escolher senhas complexas;
2. Nunca escrever senhas em papel ou armazen-las em arquivos de computador;
3. Evitar digitar a senha na presena de pessoas;
4. Nunca fornecer a senha para outros, mesmo que sejam pessoas de confiana;
5. Modificar a senha com frequncia.

Para pensar
claro que escolher senhas complexas tambm torna a memorizao mais difcil.
O mais indicado escolher uma senha que lembre algo para o usurio, mas s para
ele. Um exemplo de senha difcil de ser quebrada a composta pelas letras iniciais
das palavras de uma frase como: Meu nome Jos, nasci em 47. A senha, nesse
caso, ser MneJne47.

O risco das senhas provveis


Em 1978, Robert Morris e Ken Thompson compilaram uma lista de senhas provveis, como
primeiros nomes, ltimos nomes, datas de nascimento, endereos etc., incluindo as sequncias invertidas dos caracteres dessas mesmas informaes. Eles criptografaram esse
conjunto de senhas possveis e compararam com um arquivo de senhas /etc/passwd.
O resultado foi assustador: 86% de acertos. Atualmente, os algoritmos de criptografia so
mais complexos e difceis de serem quebrados. Porm, senhas fceis continuam contribuindo para aumentar a falta de segurana dos sistemas.

11 Criar entrada nos arquivos /etc/group e /etc/gshadow.


11 Criar entrada nos arquivos /etc/passwd e /etc/shadowI.
11 Definir senha inicial.
11 Criar diretrio de trabalho.
11 Copiar arquivos de inicializao.
11 Criar quota de uso de disco (opcional).
11 Testar nova conta.

q
Captulo 2 - Usurios e grupos

Criando contas de usurios

35

O processo de criao de um novo usurio consiste na execuo dos seguintes passos:


1. Editar os arquivos /etc/group e /etc/gshadow para criar o grupo primrio do usurio e

adicionar o usurio aos grupos secundrios necessrios. Este passo s necessrio caso
o grupo primrio ainda no exista e se for necessrio incluir o usurio em outros grupos.
2. Editar os arquivos /etc/passwd e /etc/shadow e inserir uma nova linha com os parmetros

relativos conta do novo usurio.


3. Definir uma senha temporria para a conta, utilizando o comando passwd.
4. Criar o diretrio de trabalho (home) do usurio.
5. Copiar os arquivos de inicializao contidos no diretrio /etc/skell para o diretrio

home do usurio.
6. Configurar a quota de disco para o usurio. Este passo s necessrio se o sistema

utilizar quotas.
7. Testar se a conta foi criada corretamente.

Mais adiante, veremos que existem comandos no Linux, e mesmo ferramentas grficas como
o Webmin, que automatizam a administrao de usurios e grupos. Optamos, no entanto, por
descrever cada uma das etapas como forma de registrar os passos envolvidos no processo de
criao de uma conta no Linux. Assim, voc, como administrador, saber de que maneira agir
quando tiver que criar um novo usurio no sistema, independente da ferramenta disponvel.
Antes de criar uma conta, recomenda-se que o administrador obtenha do seu dono no
apenas as informaes necessrias criao dessa conta, mas outras que facilitaro o contato
com o usurio. No Captulo 9, ao falarmos de procedimentos administrativos, iremos sugerir
um formulrio que deve ser adotado no atendimento a usurios. Os passos descritos a seguir
devem ser executados pelo administrador do sistema utilizando a conta root.

Criar entrada nos arquivos /etc/group e /etc/gshadow


Arquivo /etc/group:

11 Criar grupo primrio para o novo usurio.


11 Inserir o usurio em grupo(s) secundrio(s).
Arquivo /etc/gshadow:
11 Criar grupo primrio para o novo usurio.
11 Inserir o usurio em grupo(s) secundrio(s).
S ser necessrio executar este passo caso o grupo primrio do usurio ainda no existir

Administrao de Sistemas Linux

ou mesmo se for preciso incluir o usurio em algum grupo alm do seu grupo primrio.

36

Criar entrada nos arquivos /etc/passwd e /etc/shadow


Arquivo /etc/passwd:
11 nome:senha:UID:GID:GECOS:home_dir:shell
11 Uso do caractere x no campo da senha (shadow passwords).
Arquivo /etc/shadow:
11 nome:senha:last_changed:minimum:maximum:warn:inactive:expire
11 Definir senha temporria.

Conforme vimos no incio deste captulo, o arquivo /etc/passwd composto de uma srie de
campos que descrevem desde o nome do usurio at o interpretador de comandos utilizado
por ele. Em um ambiente composto por vrios servidores Linux, as contas de usurios so
frequentemente gerenciadas por uma base global, como NIS ou LDAP, de forma que ao se criar
um usurio, ele passa a ser reconhecido em qualquer um dos servidores. Trabalharemos, no
entanto, com a criao de usurios em um nico servidor. Um sistema Linux pode ter mais de
um administrador e nesse caso possvel acontecer a situao em que um deles esteja criando
a conta de um usurio enquanto outro esteja removendo a conta de um ex-usurio. Ao criar um
novo usurio no sistema, o administrador deve preencher cada um dos campos do arquivo
/etc/passwd, tomando alguns cuidados especiais. O nome do usurio, por exemplo, deve ser
nico e pode conter at 32 caracteres na maioria das distribuies Linux. Ele pode incluir letras
minsculas, nmeros e caracteres especiais como ., -, _ e $, este ltimo para manter
compatibilidade com o Samba, que utiliza o caractere $ no final do nome das contas de computadores da rede. importante ressaltar que o primeiro caractere deve ser por padro, uma
letra minscula ou o caractere _. Os caracteres permitidos para uso em nomes de usurios so
definidos pela varivel NAME_REGEX, mas as regras definidas por essa varivel s valem quando
se utiliza o comando useradd para criar as contas de usurio. O comando useradd pode ser utilizado com a opo --force-badname para ignorar as regras definidas na varivel NAME_REGEX.
Por fim, importante definir uma poltica para a criao dos nomes dos usurios. Em servidores
de e-mail deve-se evitar o uso de apelidos, j que os nomes de usurios so utilizados nos
e-mails, que tm associado o nome de domnio da instituio. Um exemplo de poltica criar o
nome do usurio utilizando o seu nome e o ltimo sobrenome (ex: nome.sobrenome).
Ao editar o arquivo /etc/passwd, o administrador deve colocar o caractere * no campo
referente senha criptografada. Assim, ele evita o uso no autorizado dessa conta at que
tenha estabelecido uma senha para ela. Se o sistema utilizar o esquema de shadow passwords,
o administrador tambm deve editar o arquivo /etc/shadow para criar a entrada para a nova
conta. Na maioria das distribuies Linux, o campo correspondente identificao do usurio,
o UID, representado por um nmero de 16 bits, variando entre 0 e 65.535. Em sistemas mais
novos, o UID representado por um nmero de 32 bits, resultando em mais de 4 bilhes
de UIDs possveis. Em um ambiente de rede utilizando Network File System (NFS), os UIDs
devem ser nicos em toda a rede, isto , um UID precisa se referir sempre ao mesmo nome de
usurio. Usurios de sistema geralmente possuem UID entre 1 e 100. Dessa forma, recomendvel atribuir para os usurios criados valores maiores que 100. Tambm aconselhvel evitar
reutilizar UIDs, mesmo de contas que j tenham sido removidas. O administrador pode utilizar
qualquer editor de texto para fazer essas alteraes, mas quando disponvel, o comando vipw
deve ser utilizado para editar os arquivos /etc/passwd e /etc/shadow, pois previne uma possvel
corrupo nos arquivos por conta de acessos simultneos.
Assim como o UID, o GID tambm representado por um nmero de 16 ou 32 bits, que deve
reservado ao grupo chamado root ou wheel. Grupos de sistema geralmente possuem GIDs
entre 1 e 999. O campo GECOS utilizado para identificar o usurio. Dessa forma, costuma-se
colocar informaes como seu nome completo, nmero de telefone do trabalho, ramal etc.
O diretrio de trabalho do usurio o local do sistema de arquivos para onde este direcionado quando faz login no sistema e corresponde rea do sistema onde ele tem permisso
para armazenar seus arquivos. Os diretrios de trabalho dos usurios de um sistema, de
maneira geral, tm o mesmo nome do usurio e se localizam abaixo de um mesmo diretrio,
chamado /home. Existem alguns interpretadores de comandos disponveis no sistema. Exemplos de shells utilizados so /bin/sh, /bin/tcsh e /bin/bash. A maioria das distribuies Linux

Captulo 2 - Usurios e grupos

ser atribudo de acordo com o grupo primrio ao qual o usurio pertence. O GID de nmero 0

permite que o usurio defina o interpretador de comandos com o qual quer trabalhar.
37

Definir senha inicial


Exemplo de uso do comando passwd:

# passwd aluno
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
O comando utilizado para mudar a senha de um usurio o passwd. Quando o usurio root
deseja mudar a senha de algum usurio, deve passar o nome dele como parmetro para o
comando passwd. Nesse caso, o comando passwd pedir que seja informada a nova senha
e que ela seja repetida. O administrador deve criar uma senha de fcil memorizao pelo
usurio, de forma que ele no ceda tentao de anot-la. No entanto, bom incentivar a
troca por uma senha prpria, to logo tenha acesso ao sistema. Para no ficar dependendo
de o usurio trocar a senha, o administrador pode utilizar o comando chage para for-lo
a trocar sua senha antes deste realizar o primeiro login. Neste caso, o administrador pode
definir uma senha temporria mais complexa e no precisa inform-la ao usurio. Segue
abaixo a sintaxe utilizada pelo comando chage para forar a alterao de senha.

# chage -d 0 aluno1
Assim, quando o usurio aluno1 se logar pela primeira vez no sistema, ele ser forado
a trocar de senha. A troca de senha feita antes do processo de login. O comando chage
tambm pode ser utilizado para definir parmetros relativos s senhas dos usurios. Para
consultar mais informaes a respeito deste comando, sua pgina de manual pode ser visualizada atravs do comando man chage.

Criar diretrio de trabalho


Exemplo:

# mkdir /home/gerente1
# chown marcos /home/gerente1
# chgrp gerencia /home/gerente1
# chmod 750 /home/gerente1
Tenha em mente que qualquer diretrio que voc criar pertence, inicialmente, ao usurio
root. Assim, voc deve mudar o dono e o grupo desse diretrio por meio dos comandos
chown e chgrp. A sequncia de comandos a seguir deve criar, de forma apropriada, o dire Administrao de Sistemas Linux

trio de trabalho do usurio gerente1 no sistema:

38

# mkdir /home/gerente1
# chown gerente1 /home/gerente1
# chgrp gerencia /home/gerente1
# chmod 750 /home/gerente1

O grupo dono de um arquivo ou diretrio tambm pode ser definido por meio do comando
chown. Assim, na sequncia de comandos anterior, poderamos ter os dois passos intermedirios resumidos numa nica linha:

# chown gerente1:gerencia /home/gerente1

Copiar arquivos de inicializao


11 Configurao de comandos e utilitrios.

11 Geralmente comeam com . (ponto) e terminam com rc.


Exemplo para o shell bash:

# cp /etc/skel/.bash* /home/aluno
# chmod 644 /home/aluno/.bash*
# chown aluno:aluno /home/aluno/.bash*
Os arquivos de inicializao so arquivos copiados para o diretrio de trabalho dos usurios
e utilizados para a configurao e definio de parmetros de comandos e aplicativos. Exemplos desses comandos com os seus respectivos arquivos de inicializao so os prprios
interpretadores de comando (bash: .bash_profile), os editores de texto (vi: .exrc), o comando
mail (.mailrc), entre outros. Os nomes desses arquivos, em geral, comeam com um ponto
e terminam com as letras rc (run command). Os arquivos que tm seu nome comeando
por um ponto so classificados como arquivos ocultos e s so listados pelo comando ls se
a opo -a for passada como parmetro. Na maioria das distribuies Linux, os arquivos de
inicializao modelo ficam localizados no diretrio /etc/skel. O administrador tambm pode
criar arquivos de inicializao e armazen-los no diretrio /etc/skel, para que sejam copiados
para os diretrios dos usurios no momento de sua criao.

Criar cota de uso de disco


11 Uso do comando edquota.

11 As quotas podem ser copiadas de outro usurio.


Se o sistema trabalha com quotas de disco necessrio definir a quota de cada nova conta
criada. Veremos, mais frente, como trabalhar com quotas em um sistema. Por enquanto,
basta saber que esse passo envolve apenas o uso do comando edquota. Como os usurios so
divididos por grupos no sistema, natural que o sistema de quotas se baseie nessa diviso.
Assim, possvel definir a quota de um usurio baseado na quota de outro que pertena ao
mesmo grupo. Nesse caso, o comando edquota pode ser utilizado da seguinte forma:

Esse comando estabelece que a quota do usurio gerente1 seja igual a que foi estabelecida
para o usurio gerente2.

Testar nova conta


Para verificar se a nova conta foi criada corretamente, importante fazer login no
sistema e executar a seguinte sequncia de comandos:

# pwd

Captulo 2 - Usurios e grupos

# edquota -p gerente2 gerente1

# ls -la
39

O primeiro comando serve para checar se o diretrio de trabalho do usurio est correto.
O segundo serve para verificar se os arquivos de configurao foram devidamente copiados
e se os parmetros referentes a dono, grupo e permisses esto corretos. Nesse ponto,
o administrador deve informar ao usurio seu nome de usurio e sua senha inicial. Essa
tambm a hora de fornecer alguma documentao sobre as regras de utilizao dos
recursos de TI da instituio. Se for exigido que o usurio assine um termo de compromisso
para ter acesso ao sistema, importante obt-lo antes de liberar o acesso conta.

Administrando grupos
11 Criando grupos.

11 Modificando grupos.
11 Removendo grupos.
A administrao de grupos no Linux pode ser totalmente automatizada por comandos que
permitem criar, alterar e remover grupos. Isto simplifica bastante o trabalho do administrador, j que estes comandos eliminam a necessidade de se editar os arquivos /etc/group e
/etc/gshadow, operao que requer muita ateno e apresenta o risco de provocar alguma
modificao indesejada. Alm disso, o administrador tambm pode utilizar o comando
groups para verificar os grupos aos quais pertence um usurio.

Criando grupos
Os comandos addgroup e groupadd criam entrada no arquivo /etc/gshadow automatica-

mente (shadow passwords), e podem ser utilizados para criar grupos de sistema.
Um grupo pode ser criado atravs dos comandos addgroup e groupadd, que criam o novo
grupo, utilizando os parmetros passados na linha de comando. Se o esquema de shadow
passwords estiver habilitado, a entrada referente ao novo grupo criada automaticamente
no arquivo /etc/gshadow. Para consultar mais informaes a respeito destes comandos, suas
pginas de manual podem ser consultadas.

Modificando grupos
groupmod:

11 Modifica informaes de grupos no arquivo /etc/group.


11 Nome, GID e senha (desuso).
gpasswd:
11 Modifica informaes de grupos no arquivo /etc/gshadow.

Administrao de Sistemas Linux

11 Insere ou remove administradores e usurios.

40

11 Tambm permite alterar a senha do grupo (em desuso).


O comando groupmod modifica informaes referentes a um determinado grupo. Para mais
informaes a respeito deste comando, consulte a sua pgina de manual.

Removendo grupos
groupdel:
11 Remove um grupo.

delgroup:

11 Remove um grupo.
11 Remove entrada no arquivo /etc/gshadow automaticamente (shadow passwords).
Um grupo pode ser removido atravs dos comandos groupdel e delgroup. Se o esquema de
shadow passwords estiver habilitado, a entrada referente ao grupo removida automaticamente do arquivo /etc/gshadow. Para mais informaes a respeito destes comandos, suas
pginas de manual podem ser consultadas. Alm desses comandos, ainda podemos utilizar
o comando deluser com a opo --group para remover um grupo.

Administrando contas de usurios


11 Criando contas de usurios.

11 Modificando contas de usurios.


11 Desabilitando contas de usurios.
11 Removendo contas de usurios.
11 Monitorando usurios.
A manipulao de contas de usurios no Linux pode ser totalmente automatizada por alguns
comandos, o que simplifica bastante o trabalho do administrador. H outras formas de
administrar contas de usurios utilizando ferramentas grficas do Linux ou at mesmo o
Webmin, uma interface web para administrao de diversas funcionalidades do sistema que
ser vista em detalhes no Captulo 10. Neste captulo abordaremos apenas as ferramentas
utilizadas atravs da linha de comando.

Criando contas de usurios


11 Modo manual.

11 Modo automatizado:
22 Comandos useradd e adduser criam usurios ou modificam valores e atributos
para novos usurios.
22 Comando newusers cria ou atualiza contas de usurio de forma automatizada.
Os comandos adduser ou useradd permitem criar contas sem a necessidade de editar os
arquivos /etc/passwd e /etc/shadow, operao que requer muita ateno e apresenta o risco
de provocar alguma modificao indesejada. Todos os parmetros da conta podem ser
passados ao comando adduser, caso se queira modificar algum valor padro, como mostra o
exemplo seguinte:

# useradd -c Aluno 1 -d /home/aluno1 -g users -s /bin/tcsh aluno1

mais informaes a respeito deste comando, sua pgina de manual pode ser visualizada
atravs do comando man adduser.
O comando newusers tambm pode ser utilizado para automatizar o processo de criao ou
mesmo alterao de parmetros em contas de usurios. Os dados relativos aos usurios
devem ser inseridos em um arquivo que ser passado como parmetro para o comando.
Este arquivo deve possuir o formato abaixo:

name:passwd:uid:gid:GECOS:dir:shell

Captulo 2 - Usurios e grupos

Esses valores padro podem ser listados utilizando a opo -D do comando. Para consultar

41

Os campos devem ser separados pelo caractere : e so os seguintes: nome do usurio;


senha (no criptografada); uid; gid; GECOS (as informaes como nome e telefone devem
ser separadas por vrgulas); diretrio de trabalho e interpretador de comandos. Como este
arquivo possui as senhas dos usurios sem criptografia, ele deve ter permisso somente de
leitura e s para o usurio root. Por questes de segurana, assim que os usurios forem
criados, o arquivo deve ser removido.

Modificando contas de usurios


Modo manual:

11 Edio dos arquivos /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow.


Modo automatizado:
11 Comandos usermod, passwd, chfn, chsh.
O comando usermod permite alterar vrios parmetros da conta de um usurio, como seu diretrio home e shell, alm de permitir a insero do usurio em grupos secundrios. Ele tambm
permite que se defina uma data para expirao da conta, alm de bloqueio e desbloqueio dela.
O comando passwd pode ser utilizado para alteraes de senha por qualquer usurio, desde
que seja para alterar somente sua senha. Ele tambm pode ser utilizado pelo usurio root
para realizar alteraes de senha de qualquer usurio, bloqueio e desbloqueio de contas etc.
Alm dos comandos mencionados, o comando chfn permite aos usurios alterarem suas
informaes do campo GECOS (com exceo do nome completo) e o comando chsh, que
permite aos usurios alterarem seus interpretadores de comando. O usurio root pode
utilizar estes comandos para alterar informaes de qualquer conta.
Exemplos:

# grep aluno /etc/passwd


aluno:x:500:500:Aluno ESR:/home/aluno:/bin/bash
# chfn -f Aluno RNP/ESR aluno
# usermod -c Aluno 1 do curso ADS2 aluno1

Desabilitando contas de usurios


11 Impedir acesso do usurio por algum tempo.

11 Colocar qualquer caractere no incio da senha criptografada.


11 Trocar o shell por mensagem explicativa.

Administrao de Sistemas Linux

11 Comandos: usermod, passwd e chage.


Para desabilitar uma conta de usurio, impedindo-o de entrar no sistema, basta editar o
arquivo /etc/passwd ou /etc/shadow; caso sejam utilizados os esquemas de shadow passwords,
deve-se colocar o caractere * no incio da senha criptografada. A rigor, bastaria inserir
qualquer caractere ou mesmo remover algum existente em qualquer posio da senha do
usurio. Deve-se utilizar sempre o mesmo caractere na mesma posio, como uma forma
que possibilita voltar atrs a qualquer instante sem ter que redefinir a senha do usurio.
Outra forma mais segura substituir o shell do usurio por um programa que imprime
uma mensagem na tela, explicando a causa da suspenso de sua conta e as providncias
necessrias para remediar a situao. Tambm possvel desabilitar uma conta utilizando o
comando usermod com a opo -L. Para habilitar novamente a conta, basta utilizar a opo -U
42

do comando usermod. O comando passwd tambm pode ser utilizado com a opo -l para
travar uma senha. Para destravar a senha, basta utilizar a opo -u. Alm disso, o comando
chage tambm pode ser utilizado para bloquear uma conta, como mostra o exemplo:

# chage -E 2015-12-31 aluno1


Este comando far com que a conta do usurio aluno1 seja bloqueada no dia 31/12/2015.

Removendo contas de usurios


Modo manual:

11 Remover entradas dos arquivos /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow.


11 Fazer backup dos arquivos do usurio.
11 Realocar arquivos de uso comum.
11 Remover diretrio de trabalho.
11 Remover as referncias quota do usurio.
11 Evitar a reutilizao do UID.
Modo automatizado:
11 Comandos userdel e deluser.
Quando um funcionrio sai da empresa em que trabalha, necessrio remover sua conta
e seus arquivos do sistema. preciso, ento, retirar as entradas criadas nos arquivos
/etc/passwd /etc/shadow, /etc/group e /etc/gshadow relativas ao usurio em questo.
Por fim, deve-se realocar os arquivos que tm utilidade para outros usurios, fazer um
backup do diretrio de trabalho do usurio, para s depois remov-lo do sistema. Os
comandos deluser e userdel removem a conta de um usurio, sem a necessidade de seguir
todos os passos necessrios para remover uma conta manualmente. O comando seguinte
remove o usurio aluno1 e seu diretrio de trabalho.

# userdel r aluno1
Se o sistema utilizar quotas de disco, tambm devem ser removidas as referncias a quotas
criadas, utilizando o comando edquota.

Monitorando usurios
11 who mostra os usurios conectados ao sistema.

11 w mostra os usurios conectados e os comandos executados.


11 last mostra as ltimas vezes em que o usurio entrou no sistema.
Uma condio importante para manter a segurana de um sistema saber quem o est
alizar estas informaes, vitais para o diagnstico de eventuais ocorrncias de violao.
No arquivo /var/log/wtmp, ficam guardadas informaes sobre os logins que ocorreram
no sistema. Em caso de violao, basta verificar o contedo desse arquivo, utilizando o
comando last. H tambm dois comandos que servem para informar os usurios que esto
utilizando o sistema em um dado momento. Esses comandos so o who, que exibe informaes baseadas no arquivo /var/log/wtmp e w, que exibe informaes baseadas no arquivo
/var/run/utmp. Os arquivos utilizados pelos comandos last, who e w armazenam informaes
em um formato no legvel. Sendo assim, suas informaes s so teis quando exibidas

Captulo 2 - Usurios e grupos

utilizando e para quais finalidades. No Linux, h vrias ferramentas que permitem visu-

atravs dos respectivos comandos.


43

A seguir exemplos de execuo dos comandos who, w e last:

#who
root

pts/0 Feb 16 12:29 (172.16.3.191)

root

pts/1 Feb 16 13:18 (:0.0)

aluno1

pts/2 Feb 16 18:48 (172.16.3.191)

# w
18:49:37 up 13 days, 10:39, 3 users, load average: 0.03, 0.01, 0.00
USER
JCPU

TTY

FROM

LOGIN@
IDLE

PCPU WHAT

root

pts/0 172.16.3.191

0.84s

-bash

root

pts/1 :0.0

12:29pm

2:21

0.84s

1:18pm 5:26m 0.44s 0.44s

bash
aluno1

pts/2 172.16.3.191

6:48pm

0.00s 0.07s 0.01s

# last
root pts/1 :0.0 Mon Feb
16 13:18 still logged in
root

pts/0

12:29

still logged in

aluno1

pts/2

172.16.3.189

172.16.3.191

Mon Feb 16

Fri Feb 16 18:48

still logged in
wtmp begins Tue Feb 10 18:11:33 2004
Existem formas mais eficazes de se monitorar as atividades dos usurios no sistema, o que
pode ser feito visualizando os arquivos de log, geralmente localizados no diretrio /var/log.
O programa syslog responsvel por gerenciar o registro de eventos do Linux e seu arquivo
de configurao (/etc/syslog.conf ) contm as informaes sobre o local onde ficam arma-

Administrao de Sistemas Linux

zenados os diversos arquivos de logs do sistema e das aplicaes. O syslog ser visto em

44

detalhes no Captulo 7.

Roteiro de Atividades 2
Atividade 2.1 Criando contas de usurios
Uma das atividades que fazem parte da rotina diria de um administrador de sistemas o
gerenciamento de contas de usurios. Frequentemente, usurios so criados, modificados,
desabilitados ou excludos do sistema.
1. Descubra se o sistema faz uso de shadow passwords ou se ainda utiliza o esquema tradicional.
2. Crie uma conta para voc no sistema, seguindo os passos descritos na parte terica.
3. Agora, crie uma conta para o instrutor, utilizando, desta vez, o comando useradd. Faa

com que a conta criada tenha sete dias de durao e com que o seu diretrio de trabalho
seja /nome, onde nome o nome de usurio para o qual a conta deve ser aberta.
Consulte as pginas do manual do comando useradd e procure as informaes
necessrias para incluir a data de expirao (expire date) e criar o diretrio de trabalho (homedir) em um local diferente do padro, que /home/nome. No se esquea
de escolher e atribuir uma senha para as contas que obedea aos padres de segurana apresentados.
4. O comando useradd no uma boa opo para informar a senha do usurio. Por qu?
5. Faa um script que simule o comando newusers. Para isso, voc deve criar um arquivo

texto contendo as informaes a respeito dos usurios, mantendo o mesmo padro dos
arquivos lidos pelo comando newusers. Como este arquivo conter as senhas dos usurios, importante remov-lo logo aps a criao das contas.
Utilize a varivel de sistema Internal Field Separator (IFS) em seu script para definir o
caractere : como campo que separa as informaes sobre as contas.

Atividade 2.2 Verificando e modificando informaes de contas de usurio


Aps a criao de uma conta, fundamental que o administrador verifique se ela foi
criada corretamente.
1. Entre no sistema com o usurio criado no item 3 da Atividade 2.1 e execute os comandos

2. Suponha que voc o prprio usurio e que deseja modificar o shell para o /bin/tcsh.

Como voc faria isso sem solicitar a interveno do administrador de sistemas? Faa-o,
e ao final verifique por meio do comando finger se a sua mudana surtiu efeito.
3. Seria possvel inserir o nmero de telefone de trabalho desse mesmo usurio, junto com

a informao de quem ele ? Faa isso e torne a checar se sua mudana surtiu efeito.

Captulo 2 - Roteiro de Atividades

indicados para verificao de uma conta.

45

Atividade 2.3 Criando grupos de usurios


O recurso de grupos de usurios til para compartilhar informaes. No momento em que
a conta foi criada, no item 3 da Atividade 2.1 deste roteiro, o grupo primrio ficou sendo o
seu prprio nome de usurio. Isso ocorre sempre que no atribudo um valor para o grupo
primrio, no momento da criao de um novo usurio. Como o usurio criado no faz parte
de outro grupo, a no ser do seu prprio, ele somente poder acessar seus arquivos ou
aqueles arquivos para os quais haja permisso de acesso para outros usurios.
1. Use o comando apropriado para criar um grupo chamado grupoteste.
2. Liste o arquivo /etc/group e anote o GID que foi atribudo ao grupo criado.
3. Aproveite para observar, no arquivo /etc/group, quais so os outros grupos existentes no

sistema. Qual o grupo associado ao usurio root?


4. Altere o grupo primrio do instrutor, de modo que este passe a ser o grupo criado no

item 1 da desta atividade.


5. Se autentique no sistema utilizando a sua conta e inclua seu usurio como administrador do

grupo grupoteste. Em seguida inclua o usurio do instrutor no grupo grupoteste. Voc conseguiu executar as tarefas propostas? Por qu? Como voc deve fazer para realizar as tarefas?
6. Altere novamente o grupo primrio do instrutor para o grupo instrutor.

Atividade 2.4 Incluindo usurios em grupos secundrios


1. Editando o arquivo /etc/group, inclua, no grupo grupoteste, o usurio criado no item 3 da

Atividade 2.1 deste roteiro. Note que o grupo primrio do usurio no deve mudar, continua sendo o nome do usurio.
2. Agora, utilize um comando apropriado para inserir nesse mesmo grupo o usurio criado

para voc no item 1 da Atividade 2.1.

Atividade 2.5 Bloqueando contas de usurios


No Linux, possvel impedir temporariamente o acesso ao sistema mesmo que o usurio
esteja utilizando uma conta com acesso liberado a ele.
1. Utilizando um comando apropriado, bloqueie a conta criada para o instrutor e teste se

obteve sucesso no bloqueio.


2. Em seguida deve ser feita uma tentativa de login com a conta do instrutor, para verificar

se ela est realmente bloqueada.

Administrao de Sistemas Linux

3. Agora desbloqueie a conta e faa o teste de acesso para verificar se sua alterao surtiu efeito.

Atividade 2.6 Removendo uma conta de usurio manualmente


No Linux, possvel executar uma mesma tarefa de diversas maneiras. Para um administrador de sistemas, importante conhecer essas alternativas, porque elas podem
ser teis em situaes especficas em que no seja possvel utilizar um dado recurso ou
ferramenta do sistema.
1. Sem utilizar o comando userdel, remova a conta criada para voc na Atividade 2.1.
2. Certifique-se de que esse usurio foi realmente excludo do sistema, utilizando um dos

comandos que fornecem informaes sobre os usurios.


46

3. Faa um backup de seus dados de modo que o instrutor possa ter sobre eles o mesmo

tipo de acesso que voc.


Voc deve utilizar um editor de textos para modificar diretamente os arquivos de usurios
e de grupos e tambm remover manualmente o diretrio de trabalho do usurio. O Linux
possui vrios editores de texto; utilize o de sua preferncia.

Atividade 2.7 Obtendo informaes sobre usurios


Muitas vezes, necessrio obter informaes sobre os usurios de um sistema. Dois
comandos que fornecem informaes sobre usurios so finger e id.
Verifique os parmetros do usurio criado na Atividade 2.1 utilizando esses comandos, e
descreva a diferena entre os dois a partir dos resultados obtidos. Consulte as pginas de
manual para verificar as opes disponveis nestes comandos.

Atividade 2.8 Removendo contas de usurios


Utilizando os comandos apropriados, remova a conta criada para o instrutor. No se
esquea de que um grupo foi especialmente criado para ele e que ele tambm possui um
grupo secundrio.

Atividade 2.9 Alterando o grupo a que um arquivo pertence


O arquivo /etc/passwd contm informaes importantes sobre os usurios do sistema. Esse
arquivo pertence ao usurio root e ao grupo root. As permisses de acesso desse arquivo
definem que ele s poder ser modificado pelo usurio root.
1. Faa com que esse arquivo pertena ao grupo grupoteste, criado na Atividade 2.3. Com

isso, os usurios desse grupo, incluindo o usurio criado na Atividade 2.1 podero acessar
esse arquivo por meio das permisses definidas para os usurios do grupo.

Atividade 2.10 Alterando permisses de acesso de arquivos


muito comum o administrador ter que modificar a permisso de arquivos para possibilitar
ou impedir que eles sejam lidos ou modificados por diferentes categorias de usurios.
A melhor forma de fazer isso utilizando o comando chmod.
1. O arquivo /etc/passwd tem apenas permisso de leitura para os usurios do seu grupo

proprietrio. Use o comando chmod para atribuir permisso de escrita ao grupo proprietrio desse arquivo. A permisso de escrita nesse arquivo inicialmente atribuda apenas
ao usurio proprietrio do arquivo.

demisso. Como no h um diretrio especfico para armazenar os arquivos do setor,


todos os seus arquivos de trabalho esto armazenados em seu diretrio home. Que
passos voc deve fazer para disponibilizar estes arquivos para o novo funcionrio que
ser contratado e para que este tipo de problema no volte a ocorrer?
Por medida de segurana, ao final das atividades, retorne a permisso e o grupo do
arquivo /etc/passwd para os valores originais.

Captulo 2 - Roteiro de Atividades

2. O setor de controladoria de uma empresa s possua um funcionrio, que pediu

47

48

Administrao de Sistemas Linux

3
Entender o que um processo, conhecer os tipos de processos existentes,
seus componentes e ciclo de vida; conhecer os princpios de um sistema
multiprocessado e os estados de um processo.

conceitos

Processos: tipos, estados, componentes, ciclo de vida e multiprocessamento.

Processos
Composio do programa em execuo:

11 Cdigo do programa armazenado em memria.


11 Dados utilizados pelo programa.
11 Valores armazenados nos registradores do processador.
11 Recursos alocados ao processo.
11 Atributos de segurana.
Programa:
11 Cdigo executvel armazenado em disco.
Os sistemas Linux utilizam uma forma muito simples e poderosa de gerenciar processos.
Um processo pode ser definido como uma abstrao que representa um programa em execuo e composto pelo cdigo do programa, seus dados e valores armazenados nos registradores do processador. Um processo tambm aloca recursos do sistema como arquivos
e dispositivos e possui atributos que, baseados no usurio que o executou, definem os
recursos que este processo pode utilizar. Os sistemas operacionais modernos permitem a
execuo simultnea de vrios processos, alocando o processador a cada um deles durante
pequenas unidades de tempo. Isso possibilita que um programa seja utilizado enquanto, por
exemplo, dados so lidos do disco e um documento impresso. difcil notar a diferena
entre processo e programa, mas seu entendimento fundamental. Enquanto o programa
apenas o cdigo executvel armazenado em disco, um processo o cdigo em execuo,
juntamente com seus dados e valores dos registradores do processador. Processos so as
nicas entidades ativas no Linux, ou seja, tudo que executado no sistema possui um ou
mais processos associados.

Captulo 3 - Processos

objetivos

Processos

49

Tipos de processos
Interativos:

11 Interagem constantemente com o usurio.


11 Devem ter prioridade no uso do processador, visando oferecer ao usurio um tempo
de resposta adequado.
Em batch:
11 No interagem com o usurio.
11 Possuem baixa prioridade.
Em tempo real:
11 Possuem prioridade sobre os interativos e em batch.
Processos so utilizados em aplicaes crticas onde o tempo de resposta crucial. Os processos podem ser classificados basicamente em trs tipos:
11 Processos interativos: so caracterizados por interagirem constantemente com o
usurio e geralmente realizam diversas operaes de entrada e sada. Aplicativos utilizados pelo usurio, como editores de texto e navegadores, so exemplos de programas
que geram processos interativos. O tempo de resposta dos processos interativos deve
ser o mais rpido possvel, visando garantir um nvel de interatividade satisfatrio aos
usurios do sistema.
11 Processos em batch: so caracterizados por no interagirem com o usurio. Este tipo
de processo possui baixa prioridade e geralmente executado em background, tipo de
execuo que ser visto mais a frente. Aplicativos como compiladores e programas de
backup so tipos de programas executados por processos em batch. Esse tipo de processo o mais penalizado pelo sistema operacional.
11 Processos em tempo real: so caracterizados por necessitarem de tempos de respostas
previsveis. Aplicaes crticas que controlam processos industriais e aplicaes de controle
de trfego areo, por exemplo, so associadas a processos em tempo real. Este tipo de
processo tem prioridade mxima no sistema e no pode ter sua execuo interrompida.
11 Processos CPU bound utilizam o processador na maior parte do tempo.

11 Processos I/O bound realizam operaes de entrada e sada na maior parte do tempo.
Alm disso, os processos podem ser classificados de acordo com a porcentagem de tempo
em que utilizam o processador ou realizam operaes de entrada e sada. Processos que utilizam o processador na maior parte do tempo so classificados como CPU bound. Processos
que realizam operaes de entrada e sada na maior parte do tempo so classificados como
Administrao de Sistemas Linux

I/O bound. O sistema operacional sempre privilegia processos do tipo I/O bound de modo

50

que possa oferecer melhores tempos de resposta s aplicaes interativas.

Componentes de um processo
Espao de endereamento:
11 Conjunto de pginas de memria.
11 Contm segmentos para cdigo do programa em execuo, variveis, pilhas
e outras informaes.

Um processo tpico consiste de duas entidades: um espao de endereamento e um conjunto de estruturas de dados internas do kernel. O primeiro diz respeito a um conjunto de
pginas de memria marcadas pelo kernel para o uso do processo, contendo:
11 Os segmentos para o cdigo do programa que o processo est executando;
11 As variveis usadas pelo processo;
11 A pilha do processo;
11 Outras informaes de que o kernel necessita.
Estruturas de dados internas do kernel armazenam informaes a respeito dos

processos em execuo:
11 Mapa do espao de endereamento.
11 Status atual do processo.
11 Prioridade de execuo.
11 Recursos utilizados.
11 Mscara de sinalizao do processo.
11 Usurio proprietrio.
Muitos parmetros associados a um processo afetam diretamente a sua execuo. A seguir,
veremos o significado e a importncia dos parmetros mais interessantes do ponto de vista
de um administrador de sistemas.

PID e PPID
11 Process ID (PID):

22 Associado pelo kernel.


22 nico no sistema.
11 Parent Process ID (PPID).
11 Prioridade (Nice Number).
11 Terminal de controle (TTY).
No Linux, os processos esto organizados hierarquicamente. Cada processo criado pelo
kernel identificado no sistema, de forma nica, por um nmero inteiro atribudo a ele no
momento de sua criao. Este nmero denominado identificador de processo, e conhecido pela sigla PID (Process ID), podendo variar de 1 a 65536. Quando o kernel atinge o valor
mximo que um PID pode assumir, ele reinicia do zero, saltando os nmeros que ainda
esto em uso. Como veremos a seguir, o Linux no possui uma chamada de sistema que cria
um novo processo. No entanto, h um mtodo onde um processo existente cria um clone de
si mesmo para dar origem a um novo processo. O processo original, nesse caso, chamado
de processo pai, e o clone chamado de processo filho. O atributo Parent PID (PPID) de um

UID, EUID, GID e EGID


Real and Effective User ID (UID, EUID):
11 UID: aquele que criou o processo.
11 EUID: utilizado para determinar o direito de acesso do processo aos recursos do
sistema (SUID); geralmente o mesmo que o UID.

Captulo 3 - Processos

processo o PID do seu processo pai.

51

Effective User Identification (EUID) o UID efetivo de um processo, sendo identificado por
um nmero inteiro que pode variar de 1 a 65536. Esse nmero utilizado para determinar
os recursos e arquivos que o processo tem permisso de acessar. Na maioria dos processos,
o UID e o EUID so iguais. A exceo ocorre quando o programa em execuo tem o bit SUID
ativo. Nestes casos, o UID est relacionado ao usurio executor do programa e o EUID ao
usurio dono do programa. Um exemplo de programa com o bit SUID ativado o comando
passwd. Quando este comando executado por um usurio comum, o UID do processo
igual ao UID do usurio executor, e o EUID do processo igual ao UID do usurio dono do
programa, neste caso, o root.
Real and Effective Group ID (GID, EGID):

11 Mapeados no arquivo /etc/group.


11 Quando um processo inicializado, o GID o mesmo do processo pai.
EGID:
11 Anlogo ao EUID em relao ao UID.
11 Se um processo no tem permisso para acessar um arquivo, o kernel checa se
possvel, com base no EGID.
De forma anloga ao EUID, o Effective Group Identification (EGID) o GID efetivo de um processo. O nmero que identifica o EGID utilizado para determinar os recursos e arquivos que
o processo tem permisso de acessar. Na maioria dos processos, o GID e o EGID so iguais.
A exceo ocorre quando o programa em execuo tem o bit SGID ativo. Nestes casos o GID
est relacionado ao grupo do programa em execuo e o EGID ao grupo dono do programa.
Quando um processo iniciado, seu GID estabelecido a partir do GID do processo pai. Se
este processo tenta acessar um arquivo para o qual no tem permisso de dono, o kernel
automaticamente verificar se a permisso pode ser garantida por intermdio do EGID.

Prioridade
A prioridade de um processo determina quanto tempo de CPU ele receber. Assim, no
momento em que o kernel vai selecionar um processo para ser executado, ele seleciona
aquele com a maior prioridade interna. A quantidade de tempo de CPU que o processo j
consumiu e o tempo que ele est esperando para rodar so fatores que influenciam a prioridade interna. Como veremos de forma detalhada mais frente, no possvel determinar
a prioridade interna diretamente. Essa uma prerrogativa do kernel. Contudo, possvel
influenciar esse valor por meio de um comando que altera o nice value de um processo (um
nmero inteiro que influencia a prioridade de um processo no sistema).

Terminal de controle
O terminal de controle determina os canais que devem ser utilizados pelo processo, como
Administrao de Sistemas Linux

entrada (recepo de dados), sada (sada do processamento) e sada de erros (informaes

52

sobre erros no processamento). Muitos processos, mas no obrigatoriamente todos, tm


um terminal de controle associado a eles. Assim, quando digitamos um comando a partir do
shell, o seu terminal se torna o terminal de controle do processo. O conceito de terminal de
controle est intimamente associado ao envio de sinais, tpico que ser visto mais a frente.

Ciclo de vida de um processo


Chamada de sistema fork:
11 Cria uma cpia idntica ao processo pai, mas com outros PID e PPID.

11 Cdigos de retorno:
22 Se ok retorna o PID do filho, no contexto do processo pai e 0 no contexto do filho.
22 Se no retorna -1 no contexto do processo pai, no cria o filho e envia o cdigo
de erro.
No Linux, processos no so gerados de forma espontnea, ou mesmo criados aleatoria-

mente pelo kernel. Na verdade, novos processos so criados unicamente a partir de outros
processos, por intermdio da chamada de sistema fork, que cria uma cpia exatamente
igual do processo que a executou. As principais diferenas ficam por conta do PID e do PPID.
Aps a execuo da chamada fork, os processos pai (o criador) e filho (o criado) so tratados
de maneira independente, como mostra a Figura 3.1, podendo criar novos processos e dar
origem a uma rvore hierrquica de processos.

Figura 3.1
Processos
pai e filho.

P1

Fork

PID 10

P1
PID 356

Um processo filho herda uma cpia de todos os descritores de arquivos mantidos pelo
processo pai, compartilhando os respectivos arquivos. O Linux permite que os processos
identifiquem-se como pai ou como filho e sigam linhas de execuo diferentes, aps o
retorno da chamada fork. Para tal, no retorno da chamada fork, o sistema operacional
retorna para o processo pai o PID do processo filho. Este, por sua vez, recebe do sistema
operacional apenas o valor 0.
Chamada de sistema exec:

11 Altera o programa fonte que est em execuo.


11 Inicializa os segmentos de dados e pilha para um estado inicial pr-definido.
11 Inicializa os registradores do processador.
11 Algumas informaes do processo so mantidas como a lista de arquivos abertos.
11 Os vrios tipos de chamadas exec permitem que os programas sejam iniciados com
diferentes opes.
Aps um fork, o novo processo dever fazer uso da chamada de sistema exec, para comear
a execuo de um novo programa. Existe, na realidade, uma famlia de chamadas de sistema
do tipo exec. Todas as chamadas da famlia exec, no entanto, executam basicamente a
mesma funo: mudam o cdigo que o processo est executando e reiniciam os segmentos
de dados e a pilha para um estado inicial pr-definido. Quando uma das rotinas exec
chamada, ela sobrescreve o espao de endereamento do processo pai com o contedo do
novo programa e retoma a execuo do processo filho j com o novo cdigo a ser executado. A Figura 3.2 ilustra uma chamada exec.
PID 34

Figura 3.2
Chamada de
sistema exec.

P2
PID 34

Captulo 3 - Processos

exec

P1

53

Na inicializao do Linux, o primeiro processo (PID = 1) a ser executado o init. Esse processo cria diversos processos filhos, que controlam a inicializao do sistema. Portanto,
todos os processos em execuo no sistema, com exceo de uns poucos criados diretamente pelo kernel, so descendentes do processo init. Ao final da inicializao do sistema,
o init identifica os terminais conectados a ele e por meio das chamadas fork e exec cria um
processo associado a cada terminal para controlar o acesso ao sistema. O processo que
controla os terminais o getty que, quando recebe um pedido de conexo, ativa o programa
login para fazer a verificao do nome do usurio e sua respectiva senha, armazenados nos
arquivos /etc/shadow ou /etc/passwd, caso o esquema de shadow passwords no esteja habilitado. Se as informaes fornecidas pelo usurio estiverem corretas, um novo processo ser
criado para executar o interpretador de comandos do usurio, que fica aguardando por um
comando. O esquema descrito acima mostrado na Figura 3.3.

PID 1

init
exec

Fork

init

PID 424

exec

getty
PID 424

PID 424

bash

Fork

PID 424

bash
exec

exec

login

PID 563

Figura 3.3
Criao de
processos.

grep
PID 563

Multiprocessamento
Um usurio pode ter vrios processos ativos:

11 Foreground:

Administrao de Sistemas Linux

22 # ps aux
11 Background:
22 # firefox & (associado a um terminal).
11 Daemon:
22 Squid (no associado a terminal).
Por ser um ambiente multiusurio e multitarefa, o Linux permite que vrios usurios executem, simultaneamente, diversos processos independentes. Cada usurio pode ter vrios
processos ativos. Em um sistema de grande porte, podem existir milhares de processos em
execuo. Os processos com que o usurio interage diretamente esto associados a um
54

terminal, sendo possvel para este processo ler ou escrever dados. Diz-se que esses processos esto sendo executados em primeiro plano, ou em foreground. No entanto, existem
processos que, apesar de poderem estar associados a terminais, no conseguem ler nem
escrever dados. Diz-se que esses processos esto sendo executados em segundo plano,
ou em background. Muitos processos so executados em segundo plano, controlando
alguma atividade ou fornecendo algum servio. Geralmente, processos em segundo plano
realizam operaes de entrada e de sada em arquivo. No entanto, pode existir apenas um
processo executado em primeiro plano associado a um determinado terminal. Existe um
tipo especial de processo que executado em segundo plano, denominado daemon, que
geralmente ativado na inicializao do sistema e no possui um terminal associado. Daemons
realizam operaes de entrada e de sada em arquivo ou por meio da rede. O interpretador
de comandos permite ao usurio executar processos em primeiro ou em segundo plano e
tambm iniciar ou parar um determinado daemon a qualquer momento.
Quando o usurio executa um processo em primeiro plano, o interpretador de comandos
somente libera o prompt aps o trmino da execuo do comando solicitado, uma vez que
o processo poder realizar operaes de entrada e de sada no terminal. Porm, quando o
usurio executa um processo em segundo plano, o interpretador de comandos imediatamente libera a linha de comando, permitindo que o usurio fornea novos comandos para
serem executados. Para executar um processo em segundo plano, o usurio precisa apenas
acrescentar ao final do comando o caractere &. Por exemplo, para executar o navegador
Firefox em segundo plano, deve ser digitado o seguinte comando:

# firefox &
Nesse caso, o Firefox ser executado em segundo plano, e o interpretador de comandos
ainda permitir ao usurio fornecer novos comandos e execut-los de forma independente.
A noo de processos executados em background e em foreground est diretamente relacionada aos terminais. Em ambientes grficos de janelas, como o X-Window, os conceitos
de processos em background e foreground ainda so vlidos, porm seu entendimento no
to simples. Para um processo trabalhar com janelas, ele se comunica diretamente com
um processo gerenciador do ambiente grfico, enviando mensagens de um protocolo de
aplicao suportado pelo gerenciador. No X-Window, o usurio pode executar uma janela
emuladora de terminal utilizando o comando xterm, que, por sua vez, executa um interpretador de comandos. O gerenciador do ambiente grfico define um terminal virtual para cada
janela xterm. Assim, cada janela xterm comporta-se como um terminal, no qual podem ser
executados processos em background ou em foreground, da forma como foi explicado.

init

Figura 3.4
Processos
em execuo
descendentes do
processo init.

login

bash

ls

bash

ps

vi

cp

Captulo 3 - Processos

login

55

Daemon
Disk and execution monitor (daemons) so programas que gerenciam servios executados
em segundo plano. Os daemons no esto associados a nenhum terminal e geralmente so
iniciados durante o processo de inicializao do sistema. Por padro, os nomes dos daemons
terminam com a letra d. Por exemplo, o daemon que gerencia o servio http chamado
de httpd. A maioria dos servios de rede gerenciada por daemons que ficam permanentemente em execuo, aguardando por conexes. Os servios podem ser gerenciados por um
daemon, modo conhecido como standalone ou atravs do inetd ou xinetd, que so daemons
que gerenciam diversos servios simultaneamente. Quando o inetd e o xinetd recebem uma
requisio, eles a repassam para o daemon correspondente ao servio solicitado. Desta
forma, os daemons responsveis por cada servio gerenciado pelo inetd ou pelo xinetd
s so executados quando recebem alguma requisio. Isso otimiza o uso de recursos do
sistema e simplifica a implementao desses daemons, j que no precisam mais gerenciar
os servios correspondentes, deixando esta tarefa a cargo de inetd ou xinetd.

Alternando execues

Comando bg:
11 Sua funo colocar um processo para rodar em background.
Comando fg:
11 Sua funo colocar um processo para rodar em foreground.
Comando jobs:
11 Sua funo exibir os processos do sistema que esto suspensos ou rodando
em segundo plano.
Um determinado processo executando em foreground pode ser chaveado para execuo
em background e vice-versa. Vejamos como isso acontece no exemplo a seguir:
Suponhamos a situao em que o usurio acaba de iniciar um processo em foreground,

via linha de comando, e recebe um telefonema urgente requisitando uma informao que
est armazenada no arquivo ~aluno1/texto.txt. Para executar essa nova tarefa, ele pode
cancelar o processo que havia sido iniciado (com o uso das teclas Ctrl+C). No entanto,
como ele um usurio experiente e no quer perder o trabalho que estava sendo realizado, decide colocar o processo anterior em background e executar o editor de textos vi
em foreground. Para isso, inicialmente, o usurio precisa suspender a execuo do processo e, em seguida, retomar sua execuo em background. Para proceder suspenso,
o usurio deve pressionar as teclas Ctrl+Z, liberando a linha de comando do interpretador.
Em seguida, digita o comando bg para retomar a execuo em background. Nesse ponto, a

Administrao de Sistemas Linux

linha de comando do interpretador fica liberada, e o usurio pode executar o vi para visualizar o arquivo ~aluno1/texto.txt. Aps a utilizao do vi, o usurio pode colocar o processo
para ser executado novamente em foreground, utilizando o comando fg. O chaveamento
de primeiro para segundo plano somente funciona se o processo chaveado no fizer uso
do terminal para interagir com o usurio. O comando jobs utilizado para mostrar os processos que esto suspensos ou rodando em segundo plano.
Exemplo:

# man ls
Ctrl+Z)
[1]+ Stopped man ls

56

(durante a leitura, digitar

# bg
[1]+ man ls &
# vi ~aluno1/texto.txt
# fg

(terminada a edio)

(continua a leitura do manual do comando ls a

partir do ponto em que parou)

Estados de um processo

11 Executando.
11 Bloqueado.
11 Pronto.
11 Parado.
Um processo pode assumir basicamente trs estados possveis: executando, bloqueado e

pronto. Durante seu ciclo de vida, um processo pode passar diversas vezes por esses estados,
dependendo das operaes que precisa executar. Quando um processo criado, ele vai automaticamente para o estado pronto e fica aguardando que o sistema operacional aloque o
processador a ele. Um processo tambm pode se encontrar diversas vezes no estado pronto
durante sua execuo, aguardando a alocao do processador para continuar sua execuo.
Quando o processador alocado ao processo, passa para o estado executando. Um processo
que esteja executando alguma operao de entrada e sada encontra-se no estado bloqueado.
A Figura 3.5 mostra o diagrama de estados de um processo:

Executando
2

1
Pronto

A transio nmero 1 representa o momento em que um processo sai da fila e passa a ser
processado. A transio nmero 2 representa o momento em que um processo deixa de
ser processado e volta para a fila, enquanto o processador alocado a outro processo.
A transio nmero 3 representa o momento em que um processo deixa de ser processado
para realizar alguma operao de entrada e sada. A transio nmero 4 representa o
momento em que um processo termina uma operao de entrada e sada e volta para fila
para aguardar sua vez de ser processado.
Apesar de os processos serem independentes, muitas vezes necessrio que se comuniquem. Um exemplo de comunicao entre processos atravs de pipes, representados pelo
caractere |. O pipe redireciona a sada de um processo para a entrada de outro processo.
Veja o exemplo a seguir, que concatena os arquivos file1 e file2 por intermdio do comando
cat e procura por linhas que contenham a palavra word utilizando o comando grep:

# cat file1 file2 | grep word


Nesse caso, o processo relativo execuo do comando grep tem que esperar pela sada
gerada pelo processo cat. Enquanto um processo aguarda algum recurso ou o trmino
de uma operao de entrada e sada, diz-se que ele se encontra no estado bloqueado ou

Captulo 3 - Processos

Tabela 3.5
Diagrama de
estados de um
processo.

Bloqueado

dormindo (sleeping). O bloqueio de um processo utilizado pela falta de condies que o


57

tornem apto execuo, como o caso do exemplo visto. Um processo bloqueado retorna
ao estado pronto quando o recurso liberado ou quando a operao de entrada e sada
concluda. No exemplo, o processo relativo ao comando grep volta para o estado pronto
quando o processo relativo ao comando cat termina de escrever os dados na sua entrada.
H outros dois estados de processos listados na literatura: suspenso e zumbi. Em alguns casos,
o usurio ou o prprio sistema operacional decidem interromper a execuo de um processo.
Um processo suspenso ou parado (stopped) est proibido de executar. O exemplo do usurio
que necessita consultar o arquivo ~aluno1/texto.txt, j apresentado, mostra o caso em que o
prprio usurio decide interromper a execuo do processo, pressionando as teclas Ctrl+Z.
Um processo finalizado atravs da chamada de sistema exit. Neste momento, o processo
pai notificado do trmino do processo filho atravs do sinal SIGCHLD. A partir da, o processo filho assume o estado zumbi. Nesse estado o processo terminou sua execuo, mas
ainda consome recursos do sistema. O processo pai ento invoca a chamada de sistema wait
que libera o descritor de processos do processo filho, que ento finalizado.
Exemplo:

11 # cat /etc/passwd /etc/group | grep patricia


11 Bloqueado: pela falta de condies que o tornem apto execuo.
22 O comando grep espera pelo processamento do comando cat.
11 Pronto: quando o recurso liberado ou a operao de entrada/sada concluda.
22 O comando grep recebe a sada do comando cat.
11 Parado: quando o processo encontra-se proibido de executar (Ctrl+z).

Prioridades e escalonamento de processos


Escalonamento de processos:

11 Paralelismo aparente (concorrncia).


11 Algoritmo de escalonamento:
22 Poltica de escalonamento:
33 Round-robin.
33 First In, First Out (FIFO).
33 Escalonamento baseado em prioridades.
22 Garantir que todos os processos possam ser processados.
22 Utilizar a capacidade mxima do processador.
11 Fila de escalonamento.

Administrao de Sistemas Linux

Em sistemas operacionais multitarefa como o Linux, vrios processos so executados simul-

58

taneamente. Na verdade, os processos dividem o uso do processador gerando o chamado


paralelismo aparente, ou seja, o chaveamento rpido dos recursos do sistema entre os
processos produz a falsa impresso de que eles esto sendo executados simultaneamente.
Quando diversos processos esto prontos para serem executados, o sistema operacional
deve decidir a qual deles alocar o processador. O mdulo do sistema operacional que se
encarrega de realizar esta alocao chamado escalonador de processos, e toma suas
decises baseado em um algoritmo de escalonamento. Os processos que esto no estado
pronto so colocados na fila de escalonamento e ficam aguardando at que o processador
se torne livre para eles.

Em muitos casos, fatores externos ao ambiente do sistema operacional fazem com que
alguns processos tenham prioridade sobre outros. Por exemplo, em um computador de uso
geral de uma empresa, os processos gerados pela equipe de produo podem ter prioridade sobre os processos gerados pela equipe de desenvolvimento. Para atender casos
nos quais a prioridade deve ser levada em considerao, o Linux suporta um esquema de
prioridade de processos. A prioridade de um processo determina a quantidade de tempo
de processador que ele utilizar quando estiver no estado executando. Vale ressaltar que,
no Linux, quanto maior o valor do atributo de prioridade (PRI) de um processo, menor a
prioridade de escalonamento, como ilustra a Figura 3.6. Dessa forma, o escalonador aloca o
processador ao processo de menor PRI que est na fila de escalonamento. Assim, processos
com prioridade baixa (maior PRI) somente tm a chance de serem executados quando no
existirem processos de alta prioridade sendo executados ou, se existirem, mas estiverem
bloqueados ou suspensos.
Para evitar que um processo de alta prioridade monopolize o processador, a prioridade de
um processo calculada levando-se em considerao o tempo de CPU recentemente consumido e o tempo de espera na fila de escalonamento. A prioridade de um processo no pode
ser definida ou alterada diretamente. No entanto, cada processo possui um atributo adicional, denominado nice value, que influencia substancialmente o clculo da sua prioridade
e que pode ser modificado diretamente pelo usurio proprietrio ou pelo administrador do
sistema. No Linux, o nice value varia entre -20 e 19 e quanto maior for seu valor, maior o
valor da prioridade (PRI) do processo. Entretanto, como foi descrito anteriormente, quanto
maior o valor da prioridade (PRI), menor a prioridade de escalonamento efetiva do processo, ou seja, menos chance o processo tem de ser alocado ao processador.

Prioridade de
escalonamento

O Linux possui dois comandos que servem para manipular o nice value de processos. Esses
comandos so o nice e o renice. O nice utilizado para ativar um processo com o nice value
corrente incrementado pelo valor fornecido. Por exemplo, para executar o comando cat com
nice value corrente incrementado de 10, o usurio deve fornecer o seguinte comando:

# nice -n -10 cat /etc/hosts


O comando nice tambm permite identificar o nice value corrente. Para isso, basta digitar o
comando sem parmetros. O renice, por sua vez, utilizado para modificar o nice value de
um processo que j se encontra em execuo. Por exemplo, supondo que o processo cujo
PID 1502 possui nice value igual a 0, o seguinte comando modifica o nice value para 10:

# renice 10 1502
O usurio root pode atribuir qualquer valor entre -20 e 19 ao nice value de qualquer processo. Por outro lado, usurios normais podem somente incrementar o valor do nice value
de seus prprios processos. Para mais informaes, leia as pginas de manual referentes a
esses comandos.

Captulo 3 - Processos

Figura 3.6
Algoritmo de escalonamento baseado
em prioridade.

Valor do
atributo de
prioridade
(PRI)

59

Algoritmo de escalonamento
Define uma poltica que permite ao escalonador decidir a qual processo alocar o processador. Vrios fatores tornam um algoritmo de escalonamento mais ou menos eficiente.
A lista abaixo apresenta caractersticas desejveis para um algoritmo de escalonamento:
11 Garantir que cada processo ter a oportunidade de ser alocado ao processador;
11 Explorar ao mximo a capacidade do processador;
11 Balancear o uso dos recursos do sistema.
Existem vrios algoritmos de escalonamento, como escalonamento round-robin, First In,
First Out (FIFO) e filas mltiplas, entre outros. Como o objetivo deste curso no o estudo
dos algoritmos de escalonamento, ser apresentado apenas o algoritmo de escalonamento
preemptivo utilizado no Linux. Nesse tipo de algoritmo, o escalonador aloca a cada processo pequenas fatias de tempo de uso do processador, denominadas quantum. O tempo
de durao de cada quantum definido pelo escalonador, baseado na prioridade de cada
processo. Quando um processo entra no estado executando, o algoritmo de escalonamento
verifica se existe algum processo com prioridade maior do que a prioridade do processo em
execuo. Caso encontre algum, o processo em execuo interrompido e o de prioridade
maior passa a ser executado.
Escalonamento baseado em prioridade:

11 Como o sistema evita o monoplio do processador por um processo de alta prioridade?


11 A prioridade calculada levando em considerao o tempo de CPU recentemente
consumido e o tempo de espera na fila de escalonamento.
11 Comando nice:
22 Exibe o nice value atual ou executa um processo alterando seu nice value.
11 Comando renice:
22 Modifica o nice value de um processo em execuo.
O escalonador trabalha com dois tipos de prioridade. A prioridade dinmica, que alterada constantemente pelo escalonador, de modo que processos que esto h mais tempo
sem utilizar o processador tm sua prioridade aumentada automaticamente. Por outro
lado, processos que utilizaram o processador recentemente tm sua prioridade automaticamente diminuda. A prioridade dinmica utilizada somente em processos interativos e
processos em batch.
Algoritmo de escalonamento baseado em prioridade:

11 Prioridade dinmica:

Administrao de Sistemas Linux

22 A prioridade dos processos alterada constantemente.


22 Tenta equalizar o uso do processador.
22 Definida somente pelo escalonador.
11 Prioridade esttica:
22 Utilizada somente em processos de tempo real.
22 Definida pelo usurio.
Alm da prioridade dinmica, existe a prioridade esttica, utilizada exclusivamente por processos em tempo real. O valor da prioridade esttica pode variar de 1 a 99 e definido pelo
usurio, no podendo ser alterada pelo escalonador. Processos em tempo real possuem
60

sempre maior prioridade com relao aos processos interativos ou em batch e s podem ser
criados por usurios com privilgios especiais. O escalonador s executa processos interativos ou em batch, se no houver nenhum processo em tempo real sendo executado. Vale
ressaltar que as polticas utilizadas pelo escalonador para tratar processos em tempo real
so diferentes da poltica baseada em prioridades, utilizada para os processos interativos e
em batch. Essas polticas utilizadas no gerenciamento de processos em tempo real no sero
vistas neste curso por no fazerem parte de seu escopo.

Uso de sinais
Forma de comunicao entre processos. Modo de ocorrncia:

11 Ao receber um sinal, o processo interrompe sua execuo.


11 Trata o sinal ou o kernel atua com uma ao padro (diferente para cada sinal).
11 Aps o tratamento do sinal, o processo retoma sua execuo ou finalizado.
11 Comando kill: envia sinais para processos utilizando seu PID como parmetro.
11 Comando pkill: envia sinais para processos utilizando seu nome como parmetro.
O Linux permite que eventos externos sejam comunicados a processos por meio do envio
de sinais. Uma vez que um processo pode enviar sinais a outros processos, eles podem ser
vistos como uma forma de comunicao entre processos. Quando um processo recebe um
sinal, ele interrompe a sua execuo. Em seguida, o processo executa um procedimento
de tratamento do sinal, ou o prprio kernel executa uma ao padro diferente para cada
tipo de sinal. Aps o tratamento do sinal, o processo retoma sua execuo ou encerrado.
Como pode ser visto, o tratamento de sinais semelhante ao tratamento de interrupes no
sistema de entrada e sada. Um processo pode ser configurado para tratar o sinal (o procedimento de tratamento executado) ou para ignor-lo (a execuo do processo no afetada).
O usurio pode enviar sinais para processos utilizando o comando kill. Nesse comando, o
tipo de sinal informado como parmetro, juntamente com o identificador do processo
(PID). O comando pkill tambm pode ser utilizado para enviar sinais a um processo, sem a
necessidade de conhecermos seu PID. O pkill passa o nome do processo como parmetro, no
lugar de seu PID. Outro comando que referencia processos pelo nome o killall, que pode ser
utilizado para matar todos os processos de um determinado programa.
A seguir, so apresentados os principais sinais utilizados para manipulao de processos.
11 SIGSTOP: interrompe a execuo do processo. O processo passa para o estado de bloqueado (stopped). O interpretador de comandos envia esse sinal ao processo executado
em foreground quando o usurio pressiona as teclas Ctrl+Z.
11 SIGCONT: retoma a execuo de um processo bloqueado. O processo retorna para o
estado de pronto (runnable).
11 SIGHUP: geralmente utilizado para fazer o processo reler um arquivo de configurao.
11 SIGTERM: pode ser tratado ou ignorado. O processo programado para tratar este sinal
termina voluntariamente, salvando dados relevantes mantidos em memria.
11 SIGKILL: no pode ser tratado nem ignorado pelo processo. O kernel termina o processo
de forma abrupta, e por isso os dados do processo mantidos na memria so perdidos.
O Linux possui 63 tipos de sinais que podem ser enviados para os processos. Os apresentados na Tabela 3.1 so os mais utilizados. Para obter mais detalhes sobre sinais, o adminis-

Captulo 3 - Processos

Esse sinal permite a reconfigurao de servios sem a necessidade de reinici-los.

trador pode acessar a pgina de manual do comando kill.


61

Sinal

Numerao

SIGHUP

SIGKILL

SIGTERM

15

SIGCONT

18

SIGSTOP

19

Monitoramento de processos
Comando ps:

Tabela 3.1
Principais sinais
utilizados na
comunicao entre
processos.

11 Lista os processos que esto sendo executados no sistema: PID, UID, prioridade,
terminal de controle, tempo de CPU, memria utilizada etc.
11 Apresenta uma fotografia dos processos que esto rodando no sistema em um determinado momento.
Programa top:
11 Apresenta um relatrio atualizado dinamicamente dos processos em execuo
no sistema.
11 Exibe uma lista dos processos ativos e recursos utilizados.
11 Taxa de amostragem (por padro, a cada cinco segundos).
Programa pstree:
11 Exibe os processos em execuo em forma de rvore hierrquica.
O comando ps pode ser utilizado para identificar os processos que esto sendo executados
no sistema em um determinado momento, sendo uma das principais ferramentas que um
administrador de sistemas possui para monitorar processos no Linux. Ele pode ser utilizado
para mostrar diversas informaes a respeito dos processos em execuo como PID, UID
associado, prioridade, terminal de controle, percentual de memria e de CPU utilizados,
status atual etc. Entender a sada do comando ps uma habilidade importante que o administrador precisa desenvolver. Olhando para a sada desse comando, ele pode determinar,
entre outras coisas, os processos que esto rodando no seu sistema, o percentual de CPU
e de memria que eles esto utilizando e a qual usurio cada processo pertence.
O comando ps possui diversas opes de uso, cada uma delas exibindo informaes a respeito dos processos em execuo. Este comando pode ser uma importante ferramenta para

Administrao de Sistemas Linux

diagnosticar problemas no sistema. Suponha, por exemplo, que voc percebe que o sistema

62

est lento e ao rodar o comando ps, ele mostra que dezenas de processos sshd esto
rodando, mas voc verifica que no h ningum logado neste servidor via SSH. Nesse caso,
possvel deduzir que o daemon do SSH no est funcionando corretamente; portanto,
recomendvel que tais processos sejam encerrados. A Figura 3.7 exibe a sada do comando
ps, utilizado com as opes aux, que possuem as seguintes funcionalidades: a opo a exibe
todos os processos, com exceo dos processos no associados a um terminal; a opo u
exibe o nome do usurio que iniciou os processos e a opo x exibe todos os processos que
no so controlados por um terminal.

O comando ps apresenta uma fotografia dos processos que esto rodando no sistema em
um determinado momento e isso pode dificultar o diagnstico de uma situao de mau
funcionamento do sistema, causado por um processo que esteja, por exemplo, monopolizando o uso da CPU. Um programa que pode ser utilizado nesses casos o top, que
apresenta um resumo atualizado regularmente dos processos ativos e recursos utilizados
por estes. Inicialmente, o top era disponibilizado como um pacote parte. No entanto,
mostrou-se uma ferramenta to eficaz que passou a ser incorporado s distribuies
Linux. Veja mais detalhes sobre esses comandos, consultando suas pginas de manual.
Outro comando utilizado para visualizar e monitorar processos o pstree. Este comando
exibe os processos que esto sendo executados em um determinado momento, utilizando
um formato de rvore hierrquica.

Exerccio de fixao 1 e
Monitoramento de processos
Cite trs comandos utilizados para visualizar processos, pesquise trs opes deles e
explique a finalidade de cada uma.

Execuo peridica de tarefas


Existem algumas atividades que o administrador do sistema ou um usurio convencional
realizam periodicamente. Por exemplo, considere uma escola em que os alunos fazem atividades escolares dirias nos computadores. O administrador de sistemas precisa, frequentemente, remover arquivos desnecessrios criados pelos alunos. No entanto, cumprir essa
tarefa diariamente em diversos computadores bastante cansativo. Utilizando a execuo
peridica de tarefas, o administrador pode configurar os sistemas para, automaticamente,
executarem uma determinada tarefa todos os dias noite, que remova os arquivos desne-

Captulo 3 - Processos

Figura 3.7
Sada do comando ps.

cessrios. Assim, o sistema de execuo peridica de tarefas uma poderosa ferramenta


63

para automatizar diversas atividades administrativas, como remoo de arquivos em disco,


verificao de e-mails, realizao de backup, testes de conectividade etc.

Cron
Comando crontab:

11 Executa tarefas de modo automtico em horrios pr-determinados.


11 Pode ser utilizado por todos os usurios.
Automao de tarefas:
11 Remoo de arquivos temporrios em discos.
11 Realizao de backups.
11 Ativao de servios.
O Linux implementa um servio de execuo peridica de processos suportado pelo
daemon cron. Esse daemon, geralmente, iniciado no boot do sistema e permanece
rodando enquanto o sistema estiver no ar. O cron l um ou mais arquivos, denominados
crontabs, que contm uma ou mais linhas de comando e os tempos nos quais eles devem ser
executados, no caso dos crontabs de usurios. Nos crontabs do sistema os nomes dos usurios (sob os quais esses comandos devem ser executados) tambm devem ser especificados.
As linhas de comando so executadas pelo interpretador de comandos sh. Desse modo,
qualquer coisa feita na linha de comandos tambm pode ser efetuada atravs do cron.
Utilizando o comando crontab o usurio pode criar, modificar ou remover a lista de
comandos que sero periodicamente ativados pelo daemon cron. Cada usurio pode ter
seu prprio arquivo de crontab. A cada minuto, o daemon cron avalia esses arquivos no
diretrio /var/spool/cron/crontabs, para identificar tarefas dos usurios a serem executadas.
Alm disso, tambm verifica o arquivo /etc/crontab e os arquivos do diretrio /etc/cron.d, que
possuem tarefas do sistema e das aplicaes. Os arquivos de crontab dos usurios somente
devem ser manipulados por intermdio do comando crontab. Em alguns sistemas, o administrador pode controlar os usurios que tm permisso para criar atividades peridicas
utilizando o crontab. Para isso, basta inserir, nos arquivos /etc/cron.allow e /etc/cron.deny os
usurios permitidos e os proibidos de utilizarem o crontab, respectivamente. Caso esses
arquivos no existam, qualquer usurio poder utilizar o cron para agendar tarefas.

Exemplos de uso do crontab


O crontab tem um formato caracterstico que deve ser utilizado em todas as suas linhas.
Esse formato apresentado a seguir:

minuto hora dia ms dia_da_semana usurio comando

Administrao de Sistemas Linux

A seguinte especificao de tempo: 15,45 14 * * 1-5 significa: s 2:15 e 2:45 da tarde, de

64

segunda a sexta-feira. Veja, a seguir, o exemplo de um arquivo de crontab que informa ao


usurio, todas as sextas-feiras, s 17h, que chegou o fim de semana:

00 17 * * 5 echo Enviado em `date` | mail -s E-mail enviado pelo


cron aluno1@localhost
Note que neste arquivo existe apenas uma tarefa a ser executada. Os campos preenchidos
com o caractere * representam todos os valores vlidos. Muitos programas criam arquivos
temporrios nos diretrios /tmp ou /var/tmp, que no so apagados por alguma razo; alguns
programas, especialmente os editores de texto, costumam fazer cpias de backup de cada

arquivo trabalhado nesses diretrios. A soluo criar uma entrada no crontab para remover,
todos os dias, a uma hora da manh, por exemplo, todos os arquivos desses diretrios que
no tenham sido modificados h mais de 72 horas. A entrada ficaria da seguinte forma:

00 01 * * * find /tmp /var/tmp ! name . mtime +3 exec /bin/rm


rf {} ;

Dias do ms
(1-31)
Dias de semana
(0=Dom 1=Seg etc)

Minuto
(0-59)

15

9
Hora
(0-23)

Figura 3.8
Formato do crontab.

*
Ms
(1-12)

root

Comando
a executar

/bin/date>>/tmp/stamp

Identidade do usurio para


executar juntamente com o comando

A Tabela 3.2 mostra a sintaxe utilizada nos campos do crontab. No campo dia da semana os
valores 0 e 7 representam domingo, o valor 1 representa segunda-feira, e assim por diante,
at sbado, representado pelo valor 6.
Descrio

Faixa

Minuto

Minuto da hora

0 a 59

Hora

Hora do dia

0 a 23

Dia

Dia do ms

1 a 31

Ms

Ms do ano

1 a 12

Dia da semana

Dia da semana

0a7

Exerccio de fixao 2 e
Utilizando crontab
O que faz a seguinte linha no crontab?

00 18

joao rm f /home/joao/tmp/*

Anacron
11 Permite executar tarefas que no foram executadas pelo cron durante o tempo em

que um servidor ficou desligado.


11 Pode ser iniciado no boot ou atravs do cron.
11 No executado como um daemon e sim como um processo normal.
Em situaes onde um servidor fique desligado por um perodo de tempo, seja por falta de
energia ou por qualquer outro motivo, as tarefas agendadas pelo cron para serem executadas durante este perodo no sero executadas quando o servidor for ligado. Para solucionar este problema, foi criado o programa anacron, que verifica as tarefas que no foram
executadas pelo cron durante o perodo de tempo em que o servidor ficou desligado, e em

Captulo 3 - Processos

Tabela 3.2
Sintaxe do crontab.

Campo

seguida as executa.
65

Ao contrrio do cron, que executado como um daemon, o anacron executado como um


processo comum, e aps sua execuo encerrado. Portanto, interessante automatizar
sua execuo atravs de um script a ser executado durante a inicializao do sistema ou
atravs de uma tarefa do cron. O anacron tambm pode ser utilizado para executar tarefas,
mas em servidores esta funo deve ser feita pelo cron, que mais completo e oferece mais
opes de configurao. A execuo de tarefas pelo anacron no ser abordada por no
fazer parte do escopo deste curso.

Fcron
11 Possui as funcionalidades do cron e do anacron, resolvendo problemas de

indisponibilidade dos servidores.


11 Possui opes de configuraes mais flexveis, resolvendo algumas limitaes do cron.
O fcron tambm um daemon que foi criado para executar tarefas de modo automtico e
peridico, com a vantagem de unir as caractersticas do cron e do anacron em um s programa. Alm disso, suas opes de configurao so mais flexveis e resolvem alguns problemas e limitaes do cron. A seguir, so listadas opes que podem ser utilizadas somente
com o fcron, no estando disponveis no cron.
11 Permite definir um valor mximo de carga do sistema como critrio para executar
uma tarefa;
11 Permite definir o nice value de uma tarefa que ser executada;
11 Executa tarefas que no foram executadas enquanto o sistema esteve desligado;
11 Possibilita o envio de e-mail aos usurios, informando o motivo de uma tarefa no
ter sido executada.
Existem diversas opes alm dessas apresentadas, que tornam o fcron uma alternativa
bastante interessante ao cron. O fcron no vem instalado por padro nas distribuies Linux
e seu uso, configuraes e funcionamento no sero abordados neste curso. O adminis-

Administrao de Sistemas Linux

trador pode consultar suas pginas de manual se optar por utiliz-lo no lugar do cron.

66

Roteiro de Atividades 3
Atividade 3.1 Descobrindo o nmero de processos em execuo
1. Quantos processos esto sendo executados na mquina no momento? Use o comando wc

para cont-los.
2. Faa um script que liste o nmero de processo que cada usurio est executando.

Atividade 3.2 Descobrindo o PID e o PPID de um processo


1. Quais os valores de PID e PPID do shell que voc est utilizando no sistema?
2. Faa um script que liste todos os processos que foram iniciados pelo init. A lista no deve

conter mais de uma ocorrncia do mesmo processo.

Atividade 3.3 Estados dos processos


Qual o status mais frequente dos processos que esto sendo executados no sistema? Voc
saberia explicar por qu?

Atividade 3.4 Alternando a execuo de processos


1. Execute o comando sleep 1000 diretamente do terminal.
2. Pare o processo e mantenha-o em memria.
3. Liste os processos parados.
4. Coloque-os em background.
5. Verifique se o comando sleep 1000 est rodando.
6. possvel cancelar a execuo desse comando quando ele est rodando em background?

Caso seja possvel, faa-o.

Atividade 3.5 Identificando o RUID e o EUID de um processo


Execute o comando passwd no seu terminal. Antes de mudar a senha, suspenda o processo.
Verifique o RUID e o EUID associados ao processo passwd. Esses valores so iguais ou diferentes? Voc saberia explicar por qu? Por fim, cancele a execuo do processo passwd.

1. Verifique as opes do comando nice e em seguida execute o comando abaixo, verifi-

cando sua prioridade, utilizando o comando ps.

# nice n -15 find / -name nao-existe -print &


2. Repita o comando do primeiro item, passando para o comando nice o parmetro

n -05. Verifique como isso afeta a prioridade do processo. Ela aumentou, diminuiu
ou permaneceu a mesma?

Captulo 3 - Roteiro de Atividades

Atividade 3.6 Definindo a prioridade de processos

67

Atividade 3.7 Editando arquivos crontab para o agendamento de tarefas


Nesta atividade, trabalharemos com o comando crontab, utilizado para editar os arquivos
cron, que sero verificados pelo daemon cron a cada minuto, a procura de tarefas para
serem executadas pelo sistema. O primeiro passo ler a pgina do manual do comando
crontab. Utilizando opes passadas para esse comando, responda:
1. Existe alguma entrada de crontab para o seu usurio?
2. Que opo deve ser usada para editar o seu arquivo de crontab?

Atividade 3.8 Agendando uma tarefa no daemon cron


Nesta atividade, ser necessrio enviar mensagens de correio eletrnico. Para isso, voc
dever utilizar o comando mail.
Exemplo do uso desse comando para enviar uma mensagem ao endereo fulano@dominio
com o assunto Mensagem de teste:

mail fulano@dominio s Mensagem de teste < /dev/null


1. Configure o crontab para que uma mensagem de correio eletrnico seja enviada automa-

ticamente pelo sistema s 20h30, sem interferncia do administrador.


2. Como verificar se a configurao foi feita corretamente?
3. Qual o requisito fundamental para garantir que a ao programada ser executada?

O cron no precisa ser reiniciado quando uma nova tarefa agendada.

4. H como confirmar se a mensagem foi efetivamente enviada, sem consultar o destinatrio?


5. D dois exemplos de utilizao desse mecanismo para apoiar atividades do adminis-

trador de sistemas.
6. Faa um script que liste os arquivos sem dono do sistema e envie a lista por e-mail ao

usurio root.
7. Agende no crontab do usurio root o script do item 6, de modo que ele seja executado

de segunda a sexta s 22h30.

Atividade 3.9 Listando e removendo arquivos crontab


Liste o contedo do seu arquivo de crontab e, em seguida, remova-o. Quais as opes utili-

Administrao de Sistemas Linux

zadas para executar as aes demandadas?

68

Atividade 3.10 Entendendo o comando exec


Execute o comando exec ls -l. Explique o que aconteceu.

4
Diferenciar os conceitos de diretrio, discos e parties e conhecer a estrutura
de diretrios tpica do Linux; particionar um disco, conhecer as vantagens do
particionamento e entender o conceito de sistema de arquivos no Linux.

conceitos

Sistema de arquivos, estrutura dos discos e sistema de quotas.

Estrutura dos discos


11 No Linux, cada disco dividido em uma ou mais parties.

11 Uma partio deve ser formatada com algum sistema de arquivos.


11 Parties so logicamente integradas para compor uma s rvore de diretrios.
11 Cada partio compe uma subrvore cuja raiz o seu ponto de montagem.
11 A estrutura de diretrios e arquivos uma rvore hierrquica.
11 O diretrio de mais alto nvel a raiz (/).
Todos os diretrios no Linux aparecem abaixo do diretrio raiz, representado pelo caractere /,
que o nvel mais alto da rvore de diretrios. O diretrio raiz possui arquivos e subdiretrios,
que, por sua vez, possuem seus arquivos e subdiretrios, e assim sucessivamente. Por exemplo,
o caminho /usr/bin/man indica que o arquivo man est localizado dentro do diretrio bin,
que est localizado dentro do diretrio usr, que est localizado no diretrio /. Assim como no
Windows, a estrutura de arquivos e diretrios no Linux pode ser representada por uma rvore
hierrquica. Porm, enquanto as parties de disco no Windows so visualizadas como unidades de disco independentes, com rvores de diretrios distintas, as parties de disco no
Linux so logicamente integradas para compor uma rvore de diretrios nica. Nessa rvore,
cada partio compe uma subrvore, cuja raiz o seu ponto de montagem (mount point),
que definido pelo administrador. Assim, o conjunto de subrvores contidas nas parties
compe a rvore de diretrios do Linux. necessrio ter, no mnimo, uma partio montada
e esta deve obrigatoriamente apontar para o diretrio raiz. Tambm possvel criar outras
parties e mont-las como for mais conveniente. Assim, se o administrador definir que o
ponto de montagem de uma determinada partio o diretrio /home, ento toda a subrvore armazenada nessa partio ser acessada a partir do diretrio /home.

Captulo 4 - Sistema de arquivos

objetivos

Sistema de arquivos

69

A Figura 4.1 mostra um esquema hipottico de organizao de diretrios. Os retngulos


representam diretrios e as reas sombreadas representam as diferentes parties dos
discos. Note que a estrutura faz uso de dois discos e trs parties. Os pontos de montagem
so /usr/src para a partio 2 do disco 1 e /home para a partio 1 do disco 2. O segundo
disco pode estar instalado no mesmo servidor ou em algum servidor da rede, que prov o
acesso partio remota utilizando o protocolo Network File System (NFS).

Disco 1
Partio 1

usr

local

bin

lib

dev

home

src

joo

etc

dados
Disco 1
Partio 2

Disco 2
Partio 1

Os recursos do sistema de arquivos do Linux permitem que o administrador escolha a


implementao fsica e lgica mais adequada para a estrutura de arquivos, de forma
totalmente transparente para o usurio. O administrador tambm pode montar qualquer
partio diretamente sob o diretrio raiz, atribuindo-lhe o nome que melhor represente
seu contedo, como por exemplo /dados. O particionamento de discos extremamente
vantajoso. Em caso de falha em uma determinada partio, as demais parties no so afetadas. Assim, caso acontea um problema fsico na partio que armazena os arquivos dos
usurios (/home), basta o administrador recuperar essa partio especfica e em seguida, se
necessrio, recuperar os arquivos do backup para restaurar o contedo dessa partio.

No Linux, um dos comandos utilizados para o particionamento de um disco o fdisk.

Por outro lado, caso o sistema possua uma nica partio, provavelmente o administrador
ter de reinstalar o sistema e recuperar todos os arquivos do backup. A Tabela 4.1 mostra os
principais diretrios do Linux.

Administrao de Sistemas Linux

Sistema de arquivos
distribudos desenvolvido inicialmente pela
Sun Microsystems para
compartilhar arquivos
e diretrios entre computadores conectados
em rede, formando um
diretrio virtual.

joel

Pode ser na mesma


mquina, ou no

70

Network File System


(NFS)

/boot

Arquivos de inicializao do sistema e imagem do kernel.

/bin

Utilitrios do sistema.

/sbin

Ferramentas de administrao.

/usr

Utilitrios e ferramentas de administrao adicionais.

/etc

Arquivos de configurao de servios.

/dev

Arquivos de dispositivos do sistema.

Figura 4.1
Estrutura de diretrios do Linux.

Bibliotecas de funes compartilhadas.

/home

Diretrio de trabalho dos usurios.

/var

Logs do sistema, e-mails dos usurios etc.

/tmp

Arquivos temporrios.

/root

Diretrio de trabalho do usurio root.

/proc

Diretrio virtual que representa as estruturas de dados do kernel.

O particionamento e a estrutura de diretrios so definidos durante a instalao do sistema.

Vantagens do particionamento de disco:


11 Isolamento de falhas.
11 Maior facilidade para execuo de backups.
11 Ganho de performance no acesso aos dados.
O comando fdisk utilizado para particionar um disco.

Exerccio de fixao 1 e
Estrutura de diretrios
O objetivo deste exerccio propor um melhor entendimento da estrutura bsica de diretrios do Linux. Relacione os diretrios com seus respectivos contedos:
1. /

( ) Arquivos de configuraes locais da mquina

2. /bin

( ) Contm diretrios pessoais dos usurios

3. /boot

( ) Hierarquia secundria de diretrios

4. /dev

( ) Diretrio de arquivos temporrios

5. /etc

( ) Bibliotecas dinmicas

6. /home

( ) Kernel do Linux mais arquivos estticos do carregador de boot

7. /lib

( ) Ponto de montagem para sistemas de arquivos temporrios

8. /mnt

( ) Comandos executveis necessrios para completar o boot

9. /sbin

( ) Diretrio de documentao de softwares instalados

10. /tmp

( ) Arquivos necessrios ao boot geralmente usados pelo root

11. /usr

( ) Arquivos de acesso comum

12. /usr/Bin

( ) Arquivos de tamanho varivel como spool e log

13. /usr/share/doc

( ) Diretrio raiz onde comea a estrutura de arquivos inteira

14. /var

( ) Arquivos de acesso a dispositivos do sistema

Tipos de partio
Existem trs tipos de partio:
11 Partio primria: o principal tipo de partio, que contm algum tipo de sistema de
arquivos associado. Em um disco deve haver no mnimo uma e no mximo quatro parti-

Captulo 4 - Sistema de arquivos

Tabela 4.1
Principais diretrios
do sistema.

/lib

es primrias. Caso existam quatro parties primrias em um disco, este no poder


71

conter mais nenhum outro tipo de partio. Uma das parties primrias deve ser
marcada como inicializvel para que o Sistema Operacional possa ser carregado.
No Linux as parties primrias so identificadas em um disco IDE, por exemplo, como
hda1, hda2, hda3 e hda4.
11 Partio estendida: tipo especial de partio que no pode conter sistemas de arquivos,
mas contm at doze parties lgicas. Um disco pode conter somente uma partio
estendida. importante ressaltar que em um disco que contenha uma partio estendida,
s podero existir trs parties primrias. Ou seja, esse tipo de partio ocupa o lugar de
uma partio primria no disco. No Linux a partio estendida pode ser identificada em um
disco IDE, por exemplo, como hda1, hda2, hda3 ou hda4.
11 Partio lgica: tambm conhecida como unidade lgica, esse tipo de partio fica localizada dentro da partio estendida e deve conter algum sistema de arquivos. No Linux as
parties lgicas so identificadas em um disco IDE, por exemplo, de hda5 at hda16.

Sistema de arquivos
11 Abstrao utilizada pelo kernel para representar e organizar os recursos de armaze-

namento do sistema (discos, unidades de CD-ROM, pen drives etc.).


11 Composto por uma rvore hierrquica de diretrios, que tem como seu nvel mais
alto o diretrio / (raiz).
O sistema de arquivos ou filesystem representa a organizao lgica de uma partio, que
define como os arquivos so armazenados e acessados nos blocos de disco. Assim, para
manipular os dados de um determinado tipo de sistema de arquivos, o Sistema Operacional
deve suportar a organizao lgica desse sistema de arquivos.
Uma das principais caractersticas do Linux o suporte a diferentes tipos de sistemas de
arquivos, o que permite ao administrador configur-lo para acessar dados em servidores
executando outros tipos de Sistemas Operacionais. Complementado pelo servio Network
File System (NFS), o Linux suporta a montagem de diretrios disponveis remotamente em
outros servidores Linux atravs da rede.
Usurio

Camada de abstrao

Administrao de Sistemas Linux

ext3

NTFS

CDFS

NFS/CIFS

USBFS

Camada de bloco / Drivers de dispositivos

Disco rgido

CD-ROM

NIC

Entrada USB

Para suportar os vrios tipos de sistemas de arquivos, o Linux agrega a cada tipo um mdulo
de software responsvel por traduzir seus formatos para um formato nico denominado

72

Figura 4.2
Sistema de
arquivos.

Virtual File System (VFS). Assim, o administrador pode utilizar o comando mount para
montar diversos tipos de sistemas de arquivos simultaneamente, criando a rvore de diretrios nica do Linux. As informaes que descrevem as parties, seus tipos de sistemas de
arquivos e seus pontos de montagem so armazenados no arquivo /etc/fstab. Nesse arquivo,
cada partio descrita em uma linha que possui o seguinte formato:

Filesystem Mountpoint

Type

Options Dump

Fsck

Os campos anteriores so descritos a seguir:


11 Filesystem: partio a ser montada. Em alguns sistemas, tambm chamado de device,
porque diz respeito a algum dispositivo referenciado por meio de um arquivo presente
no diretrio /dev.
11 Mountpoint: ponto de montagem.
11 Type: tipo do sistema de arquivos a ser montado.
11 Options: lista de atributos funcionais (por exemplo: o atributo rw significa que o sistema
de arquivos deve ser montado para leitura e escrita).
11 Dump: define se o comando dump deve considerar (valor 1) ou no (valor 0) a partio
para a realizao de backups.
11 Fsck: indica a ordem de prioridade na qual a partio ser verificada pelo comando fsck a
partir da inicializao do sistema. O nmero 1 representa a maior prioridade e medida
que esse nmero aumenta de valor, a prioridade diminui. O nmero 0 indica que a partio no deve ser verificada.
Na inicializao do sistema, cada linha desse arquivo processada para montar as parties,
compondo assim a estrutura de diretrios do sistema. Cada dispositivo no Linux reconhecido por um nome. Discos IDE, por exemplo, so nomeados da seguinte maneira:
11 /dev/hda: unidade de disco master da primeira controladora IDE.
11 /dev/hdb: unidade de disco slave da primeira controladora IDE.
11 /dev/hdc: unidade de disco master da segunda controladora IDE.
11 /dev/hdd: unidade de disco slave da segunda controladora IDE.
Dispositivos Small Computer System Interface (SCSI), Serial Attachment Technology Advanced
(SATA) e pen drives so denominados sda, sdb, sdc etc. As unidades de disco flexvel e CD-ROM
so denominadas /dev/fd0 e /dev/cdrom, respectivamente. As parties dos discos so tambm
identificadas por um nome de partio, formado pelo nome do disco seguido de um nmero
inteiro. Por exemplo, as parties do disco IDE master conectado na primeira controladora so
denominadas /dev/hda1, /dev/hda2 etc. Veja um exemplo de arquivo fstab.

Mountpoint

Type

Options

Dump

Fsck

/dev/hda1 / ext2
rw 1
1
/dev/hda2 /usr ext2
rw 1
2
/dev/hdc

none

swap

rw

/dev/hdb /home ext2


rw 1
1
/dev/sda1 /dosc msdos
defaults
Algumas distribuies mais recentes do Linux, como o CentOS e o Ubuntu, apresentam uma
ligeira mudana no arquivo /etc/fstab. No campo Filesystem, o nome de dispositivo que

Captulo 4 - Sistema de arquivos

#Filesystem

referencia a partio substitudo por um label ou pelo Universally Unique Identifier (UUID)
73

do hardware. Esse novo padro foi adotado por conta de mdias de armazenamento removveis, que podem ser associadas a diferentes nomes de dispositivos quando so conectadas
ao sistema. Sendo assim, no temos como referenciar no arquivo /etc/fstab um pen drive,
por exemplo, pelo mesmo nome de dispositivo sempre, o que impossibilita sua montagem
automtica. Para evitar esse tipo de problema, algumas distribuies utilizam a notao de
labels ou UUIDs. Para verificarmos o label (quando disponvel) e o UUID de um dispositivo,
devemos conect-lo ao computador e em seguida verificar a qual dispositivo ele foi associado. Basta ento executar o comando blkid como mostra o exemplo a seguir.

# blkid /dev/sdb1

/dev/sdb1: UUID=FABC69BDBC697553 TYPE=nrfs


Manteremos a nomenclatura que referencia as parties por seus nomes de dispositivo, por
ser didaticamente mais interessante.
A Figura 4.3 mostra um exemplo de arquivo /etc/fstab que utiliza labels para identificar

Para obter mais


informaes sobre
labels, consulte a
pgina de manual do
comando e2label.

as parties.

Comandos

Figura 4.3
Arquivo /etc/fstab.

H uma srie de comandos que so utilizados para trabalhar com sistemas de arquivos.
Dentre eles podemos destacar:

Comando mkfs
Cria, em uma partio de um disco, a estrutura lgica correspondente ao sistema de

arquivos a ser utilizado. Pode ser rodado automaticamente na inicializao do sistema.


O comando mkfs cria em uma partio de um disco a estrutura lgica correspondente ao
sistema de arquivos especificado na linha de comando. O nome da partio tambm deve
Administrao de Sistemas Linux

ser especificado como parmetro para o comando mkfs.

Comando fsck
Verifica a consistncia e repara possveis erros em um sistema de arquivos.

Uma vez que, para aumento de desempenho, o kernel costuma armazenar blocos de dados
que deveriam ser salvos em disco, na memria do sistema, a imagem mais recente do
sistema de arquivos encontra-se dividida entre o disco e a memria. Assim, caso haja falha
de energia, pequenas inconsistncias podem ser introduzidas no sistema de arquivos, uma
vez que informaes armazenadas na memria no puderam ser salvas no disco.
O comando file system consistency check ( fsck) analisa um filesystem procura de erros

74

e, caso encontre algum, tenta corrigi-lo. O nome da partio deve ser informado como
parmetro para o comando fsck. Na inicializao do sistema, as parties marcadas
para serem verificadas no arquivo /etc/fstab podem ser checadas automaticamente pelo
comando fsck, que examina e corrige eventuais erros. Os sistemas de arquivos so verificados obedecendo ordem numrica crescente indicada no campo Fsck do arquivo
/etc/fstab. Se dois sistemas de arquivos esto localizados em diferentes discos, pode ser
fornecido a eles um mesmo nmero de sequncia, que far com que o fsck verifique os
dois simultaneamente. A partio raiz deve sempre ser checada antes de qualquer outra.
Os erros mais comuns encontrados em sistema de arquivos corrompidos so:
11 Inodes no referenciados.
11 Link counts inexplicavelmente grandes.
11 Blocos de dados no utilizados e no registrados nos mapas de blocos.
11 Blocos de dados registrados como livres, mas que esto sendo utilizados por algum arquivo.
11 Informao de resumo incorreta no superbloco.
Erros que no se enquadram em uma das cinco categorias listadas acima so potencialmente perigosos. Na sua deteco, o fsck entra no modo interativo e solicita ao administrador que confirme cada um dos reparos que ele executa. Nesse caso, so grandes as
chances de perda de dados importantes do sistema. Alguns erros graves so:
11 Blocos reclamados por mais de um arquivo.
11 Blocos reclamados por um arquivo, mas que esto fora do sistema de arquivos.
11 Link counts muito pequenos.
11 Blocos no contabilizados.
11 Diretrios referentes a inodes no alocados.
11 Vrios erros de formato.
Infelizmente, impossvel reparar um disco sem ter o conhecimento profundo do modo
como o sistema de arquivos implementado. No h, portanto, muito a fazer a no ser
aceitar os reparos sugeridos pelo fsck. possvel tentar minimizar os problemas, registrando
as mensagens exibidas pelo comando, uma vez que elas costumam indicar os arquivos problemticos detectados. Se o fsck pede permisso para remover um arquivo, preciso tentar
copi-lo para outra partio, antes de permitir a sua remoo. Deve-se estar atento para o
fato de que, ao tentar acessar um arquivo danificado, corre-se o risco de travar o sistema.

Comando mount
O comando mount utilizado para montar uma partio, que pode conter qualquer tipo
de sistema de arquivos suportado pelo Linux. A princpio, a partio pode ser montada em
existente e respeite o esquema de permisses de arquivos e diretrios do Linux.

Comando umount
O comando umount utilizado para desmontar uma partio que tenha sido anteriormente
montada. Quando uma partio desmontada, sua subrvore de diretrios passa a no mais
fazer parte da rvore de diretrios principal. importante ressaltar que uma partio s pode
ser desmontada se no possuir nenhum recurso sendo utilizado pelo sistema. Para obter mais

Captulo 4 - Sistema de arquivos

qualquer ponto da rvore de diretrios, desde que no utilize nenhum nome de diretrio

75

informaes sobre esses comandos, suas pginas de manual podem ser consultadas.

Comandos du e df

Comando du:
11 Mostra o tamanho de arquivos e diretrios.
11 til para verificao dos maiores utilizadores de espao em disco.
Comando df :
11 Lista o uso de espao em disco de cada partio.
11 Exemplo: # df -k
Para verificar a taxa de ocupao dos diretrios e parties, o administrador pode utilizar
os comandos du e df. O primeiro percorre a rvore do diretrio especificado e identifica o

espao ocupado pelos seus arquivos e subdiretrios. O segundo fornece informaes sobre
o espao livre e o espao utilizado nas parties. O comando df tambm pode mostrar
a taxa de utilizao de inodes por partio. Para obter mais informaes sobre esses
comandos, suas pginas de manual podem ser consultadas. Os exemplos a seguir mostram
as sadas dos comandos df e du, respectivamente.

# df -h
Filesystem
/dev/sda1

Size
32G

Used Avail Use% Mounted on


9.4G

21G

32% /

# df -i
Filesystem
/dev/sda1

Administrao de Sistemas Linux

# du -hcs /var/*

76

4.0K

/var/backups

48M

/var/cache

4.0K

/var/crash

81M

/var/lib

4.0K

/var/local

/var/lock

3.9M

/var/log

4.0K

/var/mail

4.0K

/var/opt

36K

/var/run

28K

/var/spool

4.0K

/var/tmp

132M

total

Inodes
2039808

IUsed

IFree IUse% Mounted on

181908 1857900

9% /

Tipos de sistemas de arquivos suportados


A Tabela 4.2 mostra os principais tipos de sistemas de arquivos suportados pelo Linux.
Descrio

ext2, ext3 e ext4

Sistemas de arquivos padro utilizados no Linux, sendo a verso


atual o ext4. A partir da verso ext3, j possui suporte a journaling. O journaling mantm um registro de todas as alteraes
realizadas no sistema de arquivos, o que facilita a sua recuperao em situaes onde ele no foi desmontado corretamente,
causando inconsistncias de dados.

Minix

Primeiro sistema de arquivos do Linux, desenvolvido por


Andrew Tanenbaum.

msdos, vfat e ntfs

Sistemas de arquivos que permitem integrao com MS-DOS e


Windows. Atualmente disponvel apenas para leitura.

ISO 9660

Sistema de arquivos padro utilizado em CDs e DVDs.

proc

Sistema virtual de arquivos do Linux. No ocupa espao no disco,


pois os arquivos so criados instantaneamente quando acessados. Serve para prover informaes sobre a configurao do
kernel, ou at mesmo sobre o estado dos dispositivos.

nfs

Sistema de arquivos utilizado para acessar arquivos armazenados remotamente em redes baseadas em sistemas Unix.

ufs

Sistema de arquivos utilizado para acessar arquivos armazenados em sistemas BSD.

smbfs

Sistema de arquivos utilizado para montar compartilhamentos


do Windows.

ReiserFS

Primeiro sistema de arquivos com suporte a journaling utilizado


no Linux.

xfs

Sistema de arquivos com suporte a journaling desenvolvido pela


Silicon Graphics.

swap

Sistema de arquivos utilizado para troca e dados entre a


memria e o disco.

Exerccio de fixao 2 e
Sistemas de arquivos
O que journaling, suportado nas verses ext2, ext3 e ext4 dos sistemas de arquivos do Linux?

Exerccio de fixao 3 e
Comando mkfs
O que faz o seguinte comando?

mkfs -t xfs /dev/hda2

Sistema de quotas
11 Administra o uso de espao em disco pelos usurios.

Captulo 4 - Sistema de arquivos

Tabela 4.2
Tipos de sistemas
de arquivos
suportados.

Sistema de Arquivos

11 Como preparar o sistema.


77

11 Como habilitar o uso de quotas.

11 Como editar as quotas dos usurios.


11 Como checar as quotas dos usurios.
O sistema de quotas empregado para limitar o consumo de espao em disco pelos usurios. Esse recurso especialmente til em sistemas multiusurios, nos quais necessrio
administrar a ocupao do espao em disco de cada um dos usurios, para evitar que eles
utilizem todo o espao existente, prejudicando o funcionamento geral do sistema. Existem
dois tipos de limitaes que podem ser impostas: nmero mximo de arquivos (inodes) e
espao mximo utilizado em disco (blocos de disco). A seguir, so listadas as quatro verses
de quotas que podem ser habilitadas em um sistema Linux.
11 Verso 1 ou vfsold: foi a primeira verso do sistema de quotas do Linux. Essa verso
mais utilizada em kernels da srie 2.4 ou anteriores.
11 Verso 2 ou vfsv0: verso atual do sistema de quotas do Linux. Esta verso possui
melhor desempenho, especialmente em parties de grande tamanho. O contedo desse
captulo ser baseado na verso 2 ou vfsv0.
11 RPC: utilizado somente em parties que possuem compartilhamento de arquivos
atravs da rede, utilizando o protocolo Network File System (NFS).
11 XFS: esse tipo de verso utilizado somente em sistemas de arquivos XFS.
A configurao do sistema de quotas pode ser realizada utilizando comandos especficos do
Linux ou alguma ferramenta grfica como o Webmin, que ser visto no Captulo 10. Nesse
captulo, veremos como configurar o sistema de quotas utilizando a linha de comandos.

Preparando o sistema
11 O kernel deve estar configurado.

22 Padro nas verses 2.4 e 2.6.


11 O pacote quota deve estar instalado.
As verses 2.4 e 2.6 do kernel j suportam nativamente o sistema de quota, mas nas verses
mais antigas o kernel deve estar configurado corretamente para suportar o sistema de
quotas. No Captulo 8 sero apresentados os mtodos para configurar e recompilar o kernel
caso seja necessrio. Levando em conta que ser utilizada uma verso de sistema com
kernel 2.6, no ser necessria a sua recompilao. Alm do suporte no kernel, o pacote
quota deve estar instalado no Sistema Operacional.

Habilitando

Administrao de Sistemas Linux

11 /etc/rc.local

78

11 /etc/fstab
11 Informar se o controle ser por usurios (usrquota), por grupos (grpquota) ou ambos.
11 Controle realizado por partio.
11 A configurao deve ser feita no campo Option.
11 Filesystem do tipo ext2 ou ext3.
No Linux, a habilitao do sistema de quotas deve ser realizada durante a inicializao do
sistema e pode ser includa no script /etc/rc.local. Esse script ativa os comandos que habilitam
o sistema de quotas. Dessa forma, sempre que o sistema for inicializado, as quotas sero habi-

litadas. importante ressaltar que o sistema de quotas deve ser habilitado aps a montagem
das parties definidas no arquivo /etc/fstab. recomendvel habilitar o sistema de quotas ao
final do arquivo /etc/rc.local ou imediatamente aps a montagem de todas as parties.
Uma vez configurada a habilitao do sistema de quotas, preciso informar em quais parties ele deve ser ativado. Essas parties so indicadas no arquivo /etc/fstab, que tambm
guarda informaes sobre a montagem das parties. Alm de indicar que o controle de
quotas est ativo na partio, igualmente necessrio informar se o controle ser realizado
por usurio, por grupo, ou por ambos. Deve ser ressaltado que o controle de quotas feito
por partio, e no por diretrio. Como visto anteriormente, o arquivo /etc/fstab semelhante a uma tabela, em que cada linha descreve uma partio e cada coluna representa
um campo com caractersticas da partio. A configurao do sistema de quotas realizada
no campo Options. Para cada partio em que o sistema de quotas for ativado, o administrador deve criar, na raiz dessas parties, arquivos vazios com os seguintes nomes: aquota.
user e aquota.group. Esses arquivos so utilizados pelo sistema de quotas para manter os
limites de quotas dos usurios e dos grupos na partio e para garantir a utilizao corrente
da partio por esses usurios e grupos. Esses arquivos devem ter permisso de leitura e
escrita apenas para o usurio root. Para estabelecer um sistema de quotas na partio / do
sistema, por exemplo, o administrador deve fazer as alteraes necessrias no arquivo
/etc/fstab e executar a sequncia de comandos:

# touch /aquota.user
# touch /aquota.group
# chmod 600 /aquota.user
# chmod 600 /aquota.group
Esses comandos criam arquivos de quotas vazios.

Inicializando
Criao dos arquivos aquota.user e aquota.group na raiz da partio /home:

11 # touch /home/aquota.user
11 # touch /home/aquota.group
11 # chmod 600 /home/aquota.user
11 # chmod 600 /home/aquota.group
11 Desmontar e montar todas as parties com quota habilitada.
11 Reiniciar o sistema se for habilitada quota na partio raiz.
Inserir no arquivo /etc/rc.local:

22 Inicializa os arquivos aquota.user e aquota.group.

# quotacheck -auvg
11 Comando quotaon:
22 Ativa o suporte a quota de disco.

# quotaon -augv

Captulo 4 - Sistema de arquivos

11 Comando quotacheck:

79

Aps a criao dos arquivos aquota.user e aquota.group, todas as parties com quota habilitada devem ser desmontadas e montadas novamente, para que as alteraes entrem em
vigor. Se for habilitado o sistema de quotas na partio raiz, o sistema deve ser reiniciado, j
que essa partio no pode ser desmontada com o sistema em uso. Em seguida, o administrador deve utilizar o comando quotacheck com a opo -a para inicializar os arquivos de
controle de quotas criados acima, com a situao corrente de utilizao das parties. Se
for utilizado com as opes -augv, cria ambos os arquivos e inicializa-os com os dados atuais
de uso de disco por usurio e grupo. Para finalizar o processo, o comando quotaon deve ser
executado com as opes -augv para ativar o suporte quota de disco em todas as parties.

Editando quotas
Uma vez que o sistema de arquivos foi configurado para suportar quotas, necessrio
definir os limites de uso para usurios e grupos do sistema. Os limites de quotas so especificados por dois parmetros: soft e hard.
O limite soft pode ser ultrapassado por um determinado intervalo de tempo (grace period).
J o limite hard nunca pode ser ultrapassado. Esses limites so definidos para o nmero
de inodes e para o nmero de blocos que o usurio ou grupo pode alocar. Sempre que
a utilizao de espao em disco do usurio ultrapassa o limite soft, o sistema envia uma
notificao ao usurio, indicando que esse limite foi ultrapassado. A partir desse momento,
o sistema de quotas permite que o usurio permanea acima do limite soft apenas durante
o grace period. Se esse perodo for esgotado e o usurio ainda estiver acima do limite soft,
o sistema bloqueia qualquer operao de escrita em disco do usurio, at que este remova
parte dos arquivos e passe a ocupar um espao abaixo do limite soft.

Durante o grace period, se o usurio atingir o limite hard, imediatamente o sistema


bloquear qualquer operao de escrita em disco do usurio, at que este remova
arquivos e passe a ocupar menos espao que o limite soft.

O comando warnquota pode ser utilizado para alertar os usurios que tenham ultrapassado
seus soft limits. Esse comando analisa as quotas de todos os usurios, em todas as parties
com quota habilitada e envia por e-mail uma mensagem alertando os usurios que tiverem
ultrapassado seus soft limits. Para que esse comando cumpra sua funo satisfatoriamente,
ele deve ser agendado no crontab do usurio root para ser executado periodicamente.
Comando edquota:
11 Edita as quotas de usurios e de grupos.
Comando warnquota:
Administrao de Sistemas Linux

11 Verifica as quotas de usurios em todas as parties com quota habilitada.

80

11 Envia por e-mail uma mensagem de alerta aos usurios que tenham ultrapassado
seus soft limits.
11 Utilizado para editar a quota de usurios e grupos.
Opes:
11 -u, -g, -t e -p
Exemplos:

# edquota -u aluno1

11 Mostra a quota do usurio aluno1.

# edquota -p aluno1 aluno2 aluno3


11 Copia as configuraes de quota do usurio aluno1 para os usurios aluno2 e aluno3.
Para especificar os limites de quotas de disco para usurios e para grupos deve-se utilizar o
comando edquota. Esse comando ativa o editor vi para modificar os arquivos aquota.user ou
aquota.group. possvel utilizar outro editor, especificando-o na varivel de ambiente Editor.
Por exemplo, supondo que se deseja definir quotas de disco para o usurio aluno1, deve-se
ativar o comando edquota da seguinte forma:

# edquota -u aluno1
Esse comando ativa o editor vi e exibe a seguinte mensagem:

Quotas for user aluno1:


/dev/hda1: blocks in use: 12667, limits (soft = 0, hard = 0) inodes
in use: 1749, limits (soft = 0, hard = 0)
Nesse exemplo, os parmetros soft e hard esto com o valor 0, pois esses limites ainda no
foram definidos. Nesse ponto, o administrador modifica os valores dos limites soft e hard,
conforme planejado. Imediatamente aps salvar o arquivo, as quotas estabelecidas tornam-se ativas. De forma anloga, a configurao para grupos pode ser realizada com o comando
edquota utilizando a opo -g e passando o nome do grupo como parmetro. Para editar o
grace period, utiliza-se o comando edquota com a opo -t:

# edquota -t
possvel facilitar a definio de quotas em um sistema, fazendo uso da opo -p do
comando edquota. Com essa opo pode-se definir as quotas de um usurio com base nas
de outro. Exemplificando, se quisermos definir as quotas dos usurios aluno2 e aluno3 de
forma igual s quotas do usurio aluno1, podemos utilizar o comando:

# edquota -p aluno1 aluno2 aluno3


Isso evita que o administrador tenha de editar os parmetros de quota para cada usurio e
facilita a definio de quotas para mltiplos usurios. Essa opo tambm pode ser utilizada
para definir quotas para grupos. Basta utiliz-la em conjunto com a opo g.

Verificao e gerenciamento
Comando quota:

11 Utilizado para verificar as quotas de um usurio.

11 Utilizado para verificar as quotas de uma partio.


Para verificar as quotas estabelecidas para um determinado usurio deve ser utilizado o
comando quota. Esse comando informa o status das quotas para um determinado usurio
nas parties em que ele ultrapassou o limite estabelecido. A informao completa sobre
as quotas em todas as parties pode ser obtida adicionando a opo -v. Usurios podem,
individualmente, checar o seu status de quota, utilizando esse comando quando estiverem
trabalhando no sistema. Entretanto, apenas o administrador, por meio da conta root, pode
ver as quotas de outros usurios. O exemplo a seguir mostra as estatsticas de uso de

Captulo 4 - Sistema de arquivos

Comando repquota:

espao em disco e nmero de arquivos do usurio aluno1.


81

# quota -u 1001
Disk quotas for user aluno1 (uid 1001):
Filesystem

blocks

/dev/sda2

876

quota

limit

grace

files

quota

limit

83

10000

10500

100000 105000

grace

O comando repquota pode ser utilizado para exibir as quotas de usurios e grupos, separadas por partio. So exibidas informaes como grace time e limites soft e hard para
blocos e inodes. O exemplo a seguir mostra o relatrio do uso de quotas por usurio, na
partio /dev/sda2.

# repquota -aug
*** Report for user quotas on device /dev/sda2
Block grace time: 7days; Inode grace time: 7days
Block limits
User

used

soft

File limits

hard

grace

used

soft

hard

grace
-------------------------------------------------------------------root

--

15431

none

5318

aluno1 +-

5731

200500

300000

none

11245

Administrao de Sistemas Linux

none

82

Roteiro de Atividades 4
Em algumas das atividades deste roteiro, voc trabalhar com a conta root, o que lhe
dar todos os direitos sobre os recursos do sistema. Portanto, seja cauteloso antes
de executar qualquer comando.

Atividade 4.1 Trabalhando com sistema de arquivos em pen drives


No Captulo 4, estudamos os sistemas de arquivos e vimos que os pontos de montagem so
utilizados como ligao entre esses sistemas. Faa login no sistema com a conta root.
1. Insira o pen drive fornecido e adote os procedimentos para format-lo e criar nele um

sistema de arquivos do Linux.


2. Monte o pen drive no diretrio /mnt/.
3. Use o comando df para verificar se a unidade foi efetivamente montada e para verificar

o espao utilizado e o espao disponvel no pen drive. Quais so as principais opes


desse comando?
4. Copie para o pen drive os arquivos do seu diretrio de trabalho, inclusive os arquivos

ocultos, e verifique o resultado.


5. Existe alguma entrada no arquivo /etc/fstab referente unidade de pen drive? Se existir,

indique qual.
6. Desmonte o pen drive, utilizando a referncia do arquivo /etc/fstab.
7. Quais so os requisitos bsicos para montar um dispositivo no Linux?

Atividade 4.2 Obtendo informaes sobre sistemas de arquivos e parties


Verifique as opes do comando df e responda:
1. Quais file systems foram definidos no seu sistema?
2. Qual partio ocupa maior espao em disco?
3. Qual o device correspondente partio raiz?
4. Os discos do computador que voc est utilizando so do tipo IDE ou SCSI?

6. Voc faria alguma crtica em relao ao particionamento do disco do computador que

voc est utilizando? Como voc o reparticionaria?

Captulo 4 - Roteiro de Atividades

5. A que partio pertence o arquivo /etc/passwd?

83

Atividade 4.3 Determinando o espao utilizado por um diretrio


1. Que subdiretrio do diretrio /var ocupa maior espao em disco?
2. Faa um script para monitorar a taxa de utilizao das parties de um servidor. Este

script deve enviar um e-mail ao usurio root, caso a taxa de utilizao de uma ou mais
parties ultrapasse 90% de uso. O e-mail deve informar o(s) filesystem(s) e sua(s)
respectiva(s) taxa(s) de utilizao (somente se estiver acima de 90%).

Atividade 4.4 Criando uma nova partio e definindo um novo sistema de arquivos
A execuo desta atividade depende da existncia de um espao no alocado no sistema.
Caso no exista este espao e esta atividade esteja sendo executada em um ambiente virtualizado, pode-se ter a facilidade de adicionar um novo disco mquina virtual. Consulte o
instrutor sobre como proceder.
Voc, como administrador de um sistema, pode, a qualquer instante, deparar-se com um
problema gerado por uma aplicao que necessita de maior espao em disco para armazenar informaes (isso muito comum em sistemas de banco de dados). Nessas situaes,
normalmente, um novo disco adicionado ao sistema.
1. Faa login com a conta root. Deve haver um espao no utilizado no disco do seu

servidor. Voc deve adicionar esse espao ao sistema, criando uma partio do tipo
utilizado pelo Linux.
2. Qual a quantidade de espao em disco que foi reservada para armazenar os dados dos

inodes? E da partio em si?


3. Cheque a partio criada com o comando apropriado. Que tipos de checagens

foram realizados?
4. Formate a partio com o sistema de arquivos ext4.
5. Crie um mount point chamado /dados e monte nele a nova partio.
6. Tome as medidas necessrias para que essa partio seja montada toda vez que o

sistema for reiniciado e verifique se isso acontece de fato.


7. Crie um script que automatize o processo executado nos itens de 5, 6 e 7.

Atividade 4.5 Trabalhando com o sistema de quotas


Em sistemas compartilhados por muitos usurios, a competio por espao em disco
costuma gerar conflitos que acabam prejudicando o desempenho do sistema e os prprios
usurios, caso no haja controle de uso dos recursos. Nesta atividade, veremos como habi Administrao de Sistemas Linux

litar e configurar o sistema de quotas do Linux.

84

1. Faa login com a conta root. Verifique se o sistema de quotas est instalado. Se ainda no

estiver, execute a instalao.


2. O prximo passo habilitar o sistema de quotas para a partio raiz. Faa isso, seguindo

os procedimentos descritos na parte terica deste captulo.


3. Crie uma conta de usurio para teste e configure o limite desse novo usurio para 200

MB, utilizando o comando edquota.

4. Saia do sistema e entre novamente como o usurio de teste que acaba de ser criado.

Como podem ser verificadas, a partir dessa conta, as quotas de uso de disco? E o espao
efetivamente utilizado?
5. Crie dois arquivos no diretrio, utilizando os comandos cp e ln (criando um link simblico).

H diferena na forma como o espao ocupado por esses dois arquivos contabilizado
no sistema de quotas?
6. Considerando um sistema que utilize quotas por usurio, indique a sequncia de

comandos que deve ser inserida no arquivo /etc/rc.local para ativar o sistema de quotas
na inicializao do sistema.
7. Faa um script que defina o esquema de cota para todos os usurios do sistema baseado

Captulo 4 - Roteiro de Atividades

nas cotas do usurio teste.

85

86

Administrao de Sistemas Linux

5
Conhecer os tipos de backup e de mdias para backups, assim como os principais
comandos do Linux para backup; conhecer os principais softwares comerciais de
backup e entender o que uma poltica de backup.

conceitos

Backup, comandos do sistema, softwares e poltica de backup.

Introduo
A poltica de backup baseada na frequncia de modificao dos arquivos e em seu grau

de importncia. Backups podem ser realizados por meio de comandos simples ou por
meio de pacotes sofisticados. A poltica de backup eficiente para combater:
11 Ao de vrus e outras ameaas.
11 Ataques de hackers.
11 Falhas de usurios.
11 Problemas de hardware e software.
Frequentemente recebemos informaes sobre vrus devastadores e ataques de hackers,
que vivem ameaando a segurana dos sistemas. Na maioria das instituies, a informao
armazenada nos computadores vale mais do que os prprios equipamentos. Planejar e
executar uma eficiente poltica de backup dos dados, sem dvida, a melhor maneira para
a recuperao de acidentes e desastres, falhas dos usurios e problemas de hardware e de
software, constituindo uma das tarefas mais importantes de um administrador de sistemas.
A poltica de backup deve ser baseada, principalmente, na frequncia de modificao e na
importncia dos arquivos. Por exemplo, para um computador de uso pessoal, a frequncia
de backup mnima e considera apenas alguns arquivos do usurio. Por outro lado, um
sistema bancrio precisa manter diversas cpias dos arquivos de forma instantnea (utilizando tcnicas de espelhamento de discos); fazer backup com frequncia (provavelmente
vrias vezes por dia) e, em complemento, manter cpias desses backups em localizaes
fsicas distintas. O Linux dispe de diversos mtodos que podem ser utilizados para a realizao de backups. Esses mtodos vo desde comandos simples, como tar e cpio (includos
na instalao da maioria dos sistemas), at sofisticados pacotes comerciais. Um backup
pode ser to simples quanto copiar toda a rvore de diretrios em uma mdia de gravao,
utilizando o comando tar, ou to sofisticado quanto os complexos mecanismos utilizados

Captulo 5 - Backup

objetivos

Backup

pelos softwares profissionais de backup.


87

Tipos de backup
Completo:

11 Todo o contedo armazenado.


11 Consome grande quantidade de tempo para ser realizado.
Diferencial:
11 S armazenado o contedo alterado aps a realizao do ltimo backup completo.
11 Em um processo de recuperao de dados, a mdia com o ltimo backup completo
tambm necessria.
Incremental:
11 S armazenado o contedo que foi alterado aps a realizao do ltimo backup,
independente de seu tipo. Em um processo de recuperao de dados, vrias mdias
podem ser requeridas.
Existem trs tipos de backups:
11 Completo: todo o contedo copiado para a mdia de backup utilizada. A vantagem
desse tipo de backup que a recuperao dos dados mais rpida, j que para recuperar
contedo perdido logo aps um backup completo, s preciso ter em mo a mdia que
foi utilizada para armazenar esse backup. A principal desvantagem do backup completo
a grande quantidade de tempo gasto para realiz-lo. Uma poltica de backup eficiente
geralmente inicia um ciclo de backup com um backup completo e prossegue com backups
incrementais ou diferenciais de acordo com a necessidade do administrador. Cada novo
ciclo deve ser iniciado com um backup completo.
11 Diferencial: somente os contedos modificados aps a realizao do ltimo backup completo so copiados para a mdia de backup. Este tipo de backup representa a diferena
entre o estado atual e o ltimo backup completo. A recuperao de dados nesse caso
um pouco mais demorada, j que para recuperar um contedo perdido aps um backup
diferencial, preciso recuperar o ltimo backup completo e o ltimo backup diferencial.
Mesmo que o arquivo tenha sido modificado aps o backup completo, este necessrio
no processo de recuperao dos dados.
11 Incremental: somente os contedos modificados aps o ltimo backup so copiados,
independentemente se este foi completo, diferencial ou incremental. Esse tipo de backup
representa a diferena entre o estado atual e o ltimo backup realizado. A recuperao
de dados nesse caso pode ser bastante complexa, j que podem existir diversas combinaes de tipos de backup realizados entre o backup incremental que se deseja recuperar e o ltimo backup completo. Para restaurar um backup incremental necessrio
que estejam disponveis pelo menos as mdias utilizadas no ltimo backup completo, no
Administrao de Sistemas Linux

ltimo backup diferencial entre o backup completo e o backup incremental que se deseja

88

recuperar e todos os backups incrementais desde o ltimo backup diferencial. Esse um


bom motivo para evitar o uso desse tipo de backup.

Mdias de backup
A escolha depende de fatores como:
11 Quantidade de dados a armazenar.
11 Confiabilidade e durao desejveis.

11 Quanto se pretende gastar.

11 indicado o uso de mdia removvel.


Vrios tipos de mdias podem ser utilizados:
11 Fitas magnticas (DAT, DLT e LTO).
11 Mdias pticas (CD, DVD e Blu-Ray).
11 Storage (DAS, NAS, SAN e iSCSI).

Para pensar
O tipo de mdia em que se deve fazer o backup do sistema tambm importante.
A escolha da mdia deve levar em conta fatores que vo do volume de dados que se
necessita armazenar ao montante disponvel para esse tipo de investimento.

Considerando que os sistemas de computao esto sujeitos a uma infinidade de tipos de


falhas, que podem danificar diferentes partes do hardware de uma s vez, devemos ter
como pressuposto que backups precisam ser feitos em algum tipo de mdia removvel. Fazer
o backup de um disco em outro disco do mesmo computador, por exemplo.
Embora seja melhor do que no ter nenhum backup, uma estratgia ineficaz contra defeitos
na controladora. Fazer o backup em um disco de outro computador poderia contornar esse
tipo de problema. No entanto, isso no evitaria problemas, caso um pico de energia danificasse os discos de ambos os servidores. Existe uma grande variedade de mdias removveis
nas quais os arquivos de backup podem ser armazenados: como fitas magnticas e discos
pticos. Alm disso, em alguns casos o uso de um storage pode ser recomendado. Faremos,
a seguir, breves consideraes a respeito de cada um desses tipos de mdias.

Fitas magnticas
Linear Tape Open (LTO):

11 Tecnologia de formato aberto.


11 Capacidade de armazenamento nativa de at 1,5 TB e taxa de transmisso de at
140 MB/s.
11 Durabilidade de 15 a 30 anos.
Digital Linear Tape (DLT):
11 Capacidade de armazenamento nativa de at 800 GB e taxa de transmisso de 60 MB/s.
11 Durabilidade de at 30 anos.
As fitas magnticas so as mdias mais utilizadas para a realizao de backups. Suas principais
vantagens em relao aos outros tipos de mdia so: grande capacidade de armazenamento,

Linear Tape Open (LTO)

Figura 5.1
Linear Tape Open
(LTO).

Captulo 5 - Backup

timo custo-benefcio e alto grau de confiabilidade. Principais tipos de fitas magnticas:

89

Tecnologia de formato aberto, desenvolvida em conjunto pela HP, IBM e Certance. Surgiu
como resposta s necessidades de armazenamento de um volume crescente de informaes que contavam com solues complicadas, como o uso de mltiplas unidades de backup
ou de robs com vrias mdias, o que dificultava bastante a administrao do esquema de
backup de um sistema. As mdias LTO conseguem armazenar at 1,5 TB de informao de
forma no comprimida em uma nica fita, e possuem taxa de transferncia de dados de at
140 MB/s. Essa atualmente a melhor tecnologia de armazenamento em fita magntica e
amplamente utilizada.

Digital Linear Tape (DLT)

Figura 5.2
Digital Linear
Tape (DLT).

A tecnologia DLT foi desenvolvida pela DEC em 1984. Atualmente, dispositivos de backup
baseados nessa tecnologia so fabricados por diferentes empresas. As geraes mais
recentes desses dispositivos conseguem armazenar at 800 GB de informao de forma no
comprimida, a uma taxa de transmisso de 60 MB/s, podendo chegar a 1,6 TB e a 120 MB/s
de transmisso, se for utilizada a compresso de dados.

Mdias pticas
As mdias pticas so mais utilizadas para a realizao de backups em casos especficos. Elas
no costumam ser utilizadas em rotinas de backup, devido sua baixa capacidade de armazenamento. Suas principais vantagens em relao aos outros tipos de mdia so: baixo custo
das mdias e dos dispositivos de gravao. Principais tipos de mdias pticas:

CD

DVD

Blu-Ray

CD
Administrao de Sistemas Linux

Esse tipo de mdia bastante popular e pode ser lida, praticamente, em qualquer com-

90

putador domstico. Sua principal desvantagem a capacidade de armazenamento de


somente 700 MB, o que torna sua utilizao invivel para armazenamento de grandes
volumes de dados. Outra caracterstica que inviabiliza seu uso em sistemas de backup
sua baixa taxa de transferncia de dados. Embora esse tipo de mdia no seja particularmente bom para a execuo de backups regulares, o CD pode ser utilizado para guardar
informaes de ex-usurios do sistema. Existem tipos de CDs que pode ser regravados
(RW), o que torna seu uso mais interessante.

Figura 5.3
Mdias pticas
(CD, DVD e Blu-Ray).

DVD
11 Mdia popular.

11 Baixa capacidade de armazenamento.


As unidades de DVD possuem capacidade de armazenamento consideravelmente maior do
que as mdias de CD, chegando a 17,08 GB nos DVDs dual layer/double side. Ainda assim, no
so muito utilizados em backups devido baixa capacidade de armazenamento e baixa
taxa de transferncia de dados. Geralmente so utilizados em ocasies especficas, como
para armazenar dados de ex-usurios. Tambm podem ser reutilizados (DVD-RW).

Blu-Ray
11 Mdia que vem se popularizando.

11 Maior capacidade que a do DVD, mas bem menor que a oferecida pelas fitas magnticas.
11 Custo por gigabyte relativamente alto.
Disco ptico de tamanho igual ao CD e ao DVD para reproduo de vdeo de alta definio e
armazenamento de dados de alta densidade, podendo armazenar at 50 GB de dados. Sua
principal desvantagem o alto custo por gigabyte, alm de possuir capacidade de armazenamento pequena quando comparada s das mdias magnticas.

Storage
11 Hardware para armazenamento de dados.

11 Alto desempenho no acesso aos dados.


11 Escalabilidade.
11 Tecnologias de transferncia de dados SCSI, Fibre Channel, SAS e SATA.
11 Tipos de conexo DAS, NAS, SAN e iSCSI.
11 Prov redundncia de dados Redundant Array of Inexpensive Disks (RAID).
O Storage um dispositivo de alto desempenho, composto por um conjunto de discos
e projetado especialmente para armazenar dados. A maioria dos storages compatvel
com as tecnologias SCSI, Fibre Channel, Serial Attached SCSI (SAS) e SATA. O storage um
dispositivo altamente escalvel, podendo ter sua capacidade expandida facilmente, atravs
da compra de novos discos ou at mesmo de novas unidades de armazenamento (storages
adicionais). Quanto ao tipo de conexo, os storages podem ser divididos em duas categorias:
conexo local, que utiliza a tecnologia DAS, e conexo remota, que pode utilizar as tecnologias NAS, SAN e iSCSI.

Direct Attached Storage (DAS)


Dispositivos de armazenamento externos ligados diretamente ao servidor de backup
atravs de uma controladora de discos. O DAS trabalha com transferncia de dados no nvel
A taxa de transferncia de dados limitada pela velocidade da controladora.

Captulo 5 - Backup

de bloco e no permite compartilhar seu espao de armazenamento com outros servidores.

91

Clientes

Caixa de armazenamento DAS

LAN
Switch Ethernet

Servidores

Figura 5.4
Direct Attached
Storage.

Caixas de armazenamento DAS

Network Attached Storage (NAS)


Dispositivos de armazenamento externos ligados ao servidor de backup atravs da rede.
O NAS pode ser considerado um appliance, que possui um Sistema Operacional prprio,
otimizado para a funo de armazenamento de dados. O NAS trabalha com transferncia
de dados no nvel de arquivos e utiliza os protocolos NFS e SMB/CIFS para prover dados a
sistemas Linux e Windows, respectivamente. A rea de armazenamento de um NAS pode
ser compartilhada entre vrios servidores. A taxa de transferncia de dados limitada
pela velocidade do link utilizado para interligar o servidor e o storage (podendo alcanar
at 10 Gbps em uma rede local).
Clientes

LAN
Switch Ethernet

Administrao de Sistemas Linux

Servidores

92

Servidor de
armazenamento NAS

Storage Area Network (SAN)


uma rede composta por dispositivos de armazenamento externos ligados ao servidor de
backup atravs de switches especiais que utilizam a tecnologia fibre channel para realizar
a transferncia de dados entre o servidor e o storage. Assim como no DAS, em uma SAN as
transferncias de dados so feitas no nvel de bloco. Uma das vantagens da SAN a possibilidade de compartilhar a capacidade de armazenamento do storage entre vrios servidores.
Sua principal desvantagem o seu alto custo. A taxa mxima de transferncia de dados do
fibre channel de 6,8 Gbps.

Figura 5.5
Network Attached
Storage.

Clientes

LAN
Switch Ethernet

Servidor
iSCSI Target
FC Switch

Figura 5.6
Storage Area
Network.

Internet Small Computer System Interface (iSCSI)


um protocolo que utiliza a rede IP para transportar comandos SCSI entre o storage e o
servidor. Sendo assim, possvel que o servidor se comunique com os discos do storage utilizando o padro SCSI, como se esses discos estivessem fisicamente localizados nesse servidor. O protocolo iSCSI utilizado por dispositivos de armazenamento externos ligados ao
servidor de backup atravs da rede IP. Assim como no DAS e em uma SAN, as transferncias
de dados do iSCSI so feitas no nvel de bloco. A taxa de transferncia de dados limitada
pela velocidade do link utilizado para interligar o servidor e o storage (podendo alcanar at
10 Gbps em uma rede local).

Switch
Iniciadores
iSCSI

Figura 5.7
Internet Small
Computer System
Interface.

Os storages tambm podem fazer uso da arquitetura Redundant Array of Inexpensive Disks
(RAID) para prover redundncia de dados. O RAID nada mais do que a combinao de dois

Captulo 5 - Backup

SAN iSCSI

ou mais discos para formar uma unidade lgica de armazenamento. O RAID pode ser
93

implementado por hardware ou por software, e alm de redundncia tambm traz ganho de
desempenho no acesso aos dados, dependendo de como for configurado. Os principais e
mais utilizados tipos de RAID sero descritos a seguir:
11 RAID 0: tambm conhecido como striping, nada mais do que a juno de dois ou mais
discos, formando uma unidade lgica de armazenamento. A capacidade da unidade
lgica a soma das capacidades individuais de cada disco. Esse tipo de RAID no oferece
redundncia e, se algum dos discos falhar, todo o contedo perdido. Por outro lado,
seu desempenho no acesso aos dados maior, j que o contedo est dividido em vrios
discos que podem ser lidos simultaneamente. Alm disso, no h desperdcio de armazenamento, j que a capacidade total de todos os discos utilizada.
11 RAID 1: tambm conhecido como mirror, necessita de dois discos para ser implementado. Utiliza o mecanismo de espelhamento de disco, ou seja, todos os dados so
gravados simultaneamente nos dois discos. O RAID 1 oferece redundncia de dados,
pois mesmo que um dos discos falhe, todos os dados podem ser recuperados no outro
disco. Por outro lado, a capacidade de armazenamento reduzida pela metade, j que
o segundo disco possui o mesmo contedo do primeiro. Alm disso, o desempenho
menor, j que os dados so gravados duas vezes. O RAID 1 tambm pode ser utilizado
em conjunto com o RAID 0, formando dois conjuntos com o mesmo nmero de discos.
Os discos de cada conjunto formam atravs do RAID 0 duas unidades lgicas de armazenamento. extremamente recomendvel que a soma das capacidades dos discos dos
dois conjuntos seja igual; caso contrrio, quando o RAID 1 for habilitado entre as duas
unidades lgicas, ele vai considerar sempre o tamanho da menor unidade. Sendo assim,
a unidade de maior capacidade ficar sub-utilizada.
11 RAID 5: utiliza um mecanismo de paridade onde informaes extras sobre os dados so
armazenadas, de modo distribudo entre todos os discos, como forma de redundncia.
O desempenho para leitura de dados aumenta, j que os dados esto espalhados entre
os discos. No entanto, as operaes de escrita so mais lentas, devido ao tempo gasto
com as informaes de paridade. O RAID 5 um meio termo entre RAID 0 e RAID 1. Ele
oferece redundncia, mas sem desperdiar metade do espao total como ocorre no RAID
1. O RAID 5 deve ser formado por pelo menos trs discos. Caso um deles falhe, os dados
ainda podem ser acessados; porm, com queda no desempenho nas operaes de leitura
e escrita devido atividade de recuperao das informaes de paridade realizada pela
controladora de discos em tempo real. Para calcular o espao perdido no RAID 5, deve-se
aplicar a seguinte frmula: 1 - 1/n, onde n representa o nmero de discos utilizados.
O RAID 5 pode utilizar ainda um mecanismo chamado de hot spare, que consiste em um
disco extra que s utilizado em caso de falha de algum disco. Quando a falha ocorre,
a controladora substitui o disco com problema pelo disco extra, gravando neste ltimo

Administrao de Sistemas Linux

todos os dados do disco que falhou.

94

Exerccio de fixao 1 e
Storages
Qual nvel de RAID garante pelo menos a perda de um disco e afeta menos a performance
dos sistemas?
a. 0
b. 1
c. 3

d. 5
e. 6

Comandos do sistema
Existem alguns comandos do Linux que podem ser utilizados para fazer backup de dados.
No entanto, em ambientes mais complexos, extremamente recomendvel o uso de algum
software profissional de backup. A seguir sero vistos os principais comandos do Linux que
podem ser utilizados para realizar backups.

Comando tar
Realiza backup de arquivos e diretrios. Opes bsicas:

11 -c cria um arquivo tar.


11 -t lista o contedo de um arquivo tar.
11 -x extrai os arquivos de um arquivo tar.
11 -z ou -j comprimem dados utilizando os comandos gzip e bzip2, respectivamente.
11 -f especifica o nome do arquivo tar que ser criado.
O comando tar (tape archive), apesar de simples, ainda utilizado pelos administradores
de sistemas para a realizao de rotinas de backup. Ele pode ser utilizado para realizar o
backup dirio de um servidor, transferindo-o para uma unidade de fita de forma automtica, utilizando o daemon cron.
O backup em dispositivos de acesso sequencial utilizando o tar feito respeitando-se as

Para saber quais


dispositivos so
rebobinveis e quais
no so, preciso ler a
documentao do
sistema.

ateno a propriedade de rebobinagem, que divide esses dispositivos em duas categorias:


os rebobinveis e os no rebobinveis. Os dispositivos rebobinveis voltam ao incio da fita
aps cada operao de gravao, enquanto os no rebobinveis permanecem na posio
em que a ltima operao terminou. Portanto, se dois comandos tar de gravao forem
executados consecutivamente, no caso de uma fita no rebobinvel, o resultado ser a gravao de dois backups. J no caso de uma fita rebobinvel, o segundo backup ser gravado
sobre o primeiro, inutilizando-o.
Em geral, na conveno utilizada pelo Linux, os dispositivos rebobinveis tm nomes de dispositivos que comeam pela letra r, como: /dev/rft0, enquanto os nomes dos dispositivos
no rebobinveis comeam pela letra n, como: /dev/nrft0. Por exemplo, o comando a seguir
grava, em uma fita rebobinvel em modo compactado, todo o contedo do diretrio home.

# tar -czf /dev/rtf0 /home


J o comando a seguir grava em uma fita no rebobinvel e em modo compactado todos os
arquivos do diretrio home.

# tar -czf /dev/nrtf0 /home


Realizao de backups por meio do cron. Exemplo:

# crontab -e
00 01 * * 1-5 tar -czf /dev/rst0 home
Uso do tar para espelhamento de rvore. Exemplo:

Captulo 5 - Backup

caractersticas prprias desse tipo de mdia. Um aspecto que deve ser observado com

# tar -cf - . | (cd /espelho ; tar -xvpf - )


95

Extraindo o arquivo documento.txt do aluno1, armazenado na fita para o diretrio /tmp.

Exemplo:

# cd /tmp ; tar -xf /dev/rst0 /home/aluno1/documento.txt

Backup em fita
Dispositivo de acesso sequencial:

11 Rebobinvel: armazena apenas um backup.

# tar -czf /dev/rtf0 /home


11 No rebobinvel: armazena uma ou mais sequncias de backups.

# tar -czf /dev/nrst0 /home


# tar -czf /dev/rst0 /var/spool/mail

Comando cpio
11 Realiza backup de arquivos e diretrios.

11 Pode ser utilizado para ler arquivos no formato tar.

11 Pode acessar dispositivos de armazenamento remotos.


O comando cpio semelhante ao tar e pode ser utilizado para copiar arquivos individuais
ou uma rvore de diretrios completa. O cpio suporta diversos formatos, inclusive aquele
utilizado pelo tar e tambm pode acessar dispositivos remotos, por exemplo, uma unidade
de fita magntica conectada a outro servidor.

Comando dump
11 Alm de manipular arquivos e diretrios, pode manipular diretamente os blocos do disco.

11 Permite que o backup ocupe diversos volumes.


11 No possui quaisquer restries quanto a tamanho e pathnames dos arquivos.
O comando dump no possui qualquer restrio quanto ao tamanho dos arquivos ou de
seus nomes completos (pathnames). Enquanto os comandos tar e cpio manipulam arquivos
e diretrios, o dump manipula diretamente os blocos de disco, podendo, assim, processar
qualquer tipo de arquivo. Em adio, o dump permite que o arquivo de backup ocupe mltiplos volumes. O comando dump suporta o mecanismo de backup multinvel incremental,
que permite armazenar apenas os arquivos modificados desde o ltimo backup de nvel
inferior. A tcnica multinvel incremental reduz o consumo de recursos de armazenamento
e o tempo de realizao do backup. O funcionamento do backup incremental provido pelo

Administrao de Sistemas Linux

comando dump baseia-se no conceito de nveis de backup, que variam de 0 a 9. Um backup


de nvel 0 sempre um backup completo. Qualquer outro nvel indica um backup parcial,
em que so copiados somente os arquivos que foram modificados depois do ltimo backup
realizado com nvel inferior ao que est sendo executado. Vale notar que a referncia para
comparao o ltimo backup de nvel inferior, e no simplesmente o backup mais recente.
Para mais informaes sobre o comando dump, consulte sua pgina de manual.
A restaurao de backups feitos com o comando dump realizada atravs do comando
restore, que tambm restaura de forma incremental os conjuntos de mdias resultantes dos
backups. Para recuperar arquivos individuais dos usurios, recomendvel que o administrador o faa no diretrio /tmp e s depois o copie para a rea do usurio o contedo necessrio. Isso evita uma srie de problemas que podem surgir como a substituio de arquivos
96

do usurio pelos arquivos restaurados no backup.

Para mais informaes


a respeito do comando
cpio, consulte sua
pgina de manual.

Comando rsync
11 Utilizado para fazer backup entre dois computadores.

11 Utiliza o protocolo SSH para realizar a transferncia dos dados.


11 Pode ser utilizado por qualquer usurio.
O comando rsync utilizado para copiar arquivos de forma segura entre dois computadores
atravs de uma rede. Para isso, utilizado o protocolo SSH para realizar a transferncia dos
dados. O rsync funciona de maneira a acelerar a transferncia de dados, copiando somente
as diferenas entre os contedos remoto e local. A cpia completa dos dados s precisa ser
feita na primeira vez que os contedos so sincronizados. No exemplo a seguir, o comando
rsync copia o contedo do diretrio /home do computador local para o diretrio /tmp/backup

Para mais informaes


a respeito do comando
rsync, consulte sua
pgina de manual.

# rsync -auzv /home/usuario usuario@192.168.254.20:/tmp/backup


De forma semelhante, o rsync tambm utilizado para copiar arquivos de um computador
remoto para o computador local.

# rsync -auzv usuario@192.168.254.20:/tmp/backup /backup

Comandos gzip/gunzip e bzip2/bunzip2


Comandos gzip e bzip2:

11 Utilizados para compactar arquivos.


Comandos gunzip e bunzip2:
11 Utilizados para descompactar arquivos.
Os backups, em geral, utilizam a tcnica de compactao de dados, visando o melhor aproveitamento da mdia de armazenamento. Os comandos mais utilizados para essa funo so
gzip e bzip2, que aps a compactao colocam os sufixos .gz e .bz2, respectivamente, no nome
do arquivo compactado. O comando bzip2 possui um algoritmo de compresso mais eficiente
que o algoritmo utilizado no comando gzip, mas por outro lado mais lento quando comparado ao gzip. O exemplo a seguir mostra como compactar um arquivo utilizando o gzip.

# gzip /home/maria/backup.tar
Para descompactar arquivos, podemos utilizar os comandos gunzip e bunzip2. O comando do
exemplo a seguir descompacta o arquivo /home/users/maria/relat_prospec.pdf.gz.

# gunzip /home/users/maria/relat_prospec.pdf.gz
Compactao de dados:

11 uma das tcnicas utilizadas em backups.


11 So utilizados algoritmos para comprimir os dados de forma a ocupar menos espao
em disco.

Exerccio de fixao 2 e
Comandos do sistema
Qual a finalidade dos seguintes comandos?

Captulo 5 - Backup

do computador remoto.

97

tar -cvf backup.tar /home/aluno


tar -xvf backup.tar
tar zcvf backup.tar.gz /home/aluno
tar jcvf backup.tar.bz2 /home/aluno

Softwares de backup gratuitos


Os softwares de backup tm como principais funes automatizar, gerenciar e centralizar
o backup de uma organizao. Vamos apresentar em detalhes os softwares Amanda e
Bacula, distribudos gratuitamente. Tambm sero apresentadas caractersticas dos principais softwares comerciais disponveis no mercado.
Existem vrios softwares gratuitos de backup, oferecendo diversas funcionalidades em
comum, cada um com suas caractersticas especficas. Esses softwares geralmente so compatveis com as mais diversas plataformas de hardware e sistemas operacionais.

Amanda
Advanced Maryland Automatic Network Disk Archiver (Amanda) um programa que utiliza
arquitetura cliente/servidor para realizar de modo centralizado o backup dos servidores de uma
organizao. Cada computador que fizer parte da rotina de backup necessita da verso cliente
do Amanda instalada, que possui alguns pr-requisitos para funcionar adequadamente. Os
seguintes softwares devem estar instalados no servidor: Samba (somente se algum computador cliente utilizar Windows); Perl; GNU tar e readline (utilizado pelo programa amrecover).
Aps instalar as dependncias necessrias, o pacote do Amanda deve ser instalado.

As principais distribuies j possuem um pacote do Amanda, que pode ser insta-

Administrao de Sistemas Linux

lado diretamente sem necessidade de compilar seu cdigo-fonte.

98

Figura 5.8
O programa
Amanda.

Ativando o Amanda
O Amanda gerenciado pelo daemon inetd, e por isso necessrio que as trs linhas a
seguir, referentes aos programas amanda, amandaidx e amidxtape, sejam inseridas no
arquivo /etc/inetd.conf:

amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad


amandaidx stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/
amindexd
amidxtape stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/
amidxtaped
Aps realizar as alteraes no arquivo /etc/inetd.conf, deve ser enviando o sinal HUP ao
processo do inetd, utilizando o comando kill, para que as alteraes entrem em vigor. Alm
disso, as seguintes linhas devem estar presentes no arquivo /etc/services:

amanda

10080/udp

amandaidx

10082/tcp

amidxtape

10083/tcp

Configurando o servidor Amanda


Amanda possui um arquivo de configurao nico, dividido em sesses que agrupam
determinado tipo de configurao. O arquivo de configurao do Amanda deve estar em um
diretrio localizado dentro do diretrio /etc/amanda que represente o nome da rotina de
backup (ex: /etc/amanda/diario). A seguir veremos as configuraes do Amanda divididas por
sesso, onde as opes mais importantes aparecem comentadas.

Arquivo amanda.conf
Configuraes globais

org Organizao

# Nome da organizao

mailto suporte@dominio

# E-mail dos administradores

dumpuser backup

# Usurio que vai executar o

backup
inparallel 8

# Nmero mximo de dumps

simultneos (mximo: 63)


dumporder sS

# Ordem de execuo (s -

menor tamanho; S - maior tamanho)


taperalgo first

# Algoritmo utilizado para

displayunit m

# Unidade utilizada

(k=kilo, m=mega, g=giga, t=tera)


netusage

80000 Kbps

# Largura de banda mxima utilizada

pelo Amanda
dumpcycle 4 weeks

Captulo 5 - Backup

definir qual dump ser enviado fita.

# Tempo de durao de um ciclo


99

runspercycle 4

# Quantidade de vezes que

o amdump executado por ciclo


tapecycle 5 tapes

bumpsize 1000 Mb

bumppercent 50

bumpdays 4

bumpmult 4

etimeout 6600

# Nmero de fitas utilizadas

# Estimativa de tempo em

segundos de um dump (mximo)


dtimeout 6600

# Tempo em segundos (idle) antes

de um dump ser abortaedo


ctimeout 6600

# Tempo mximo em

segundos que o amcheck aguarda


reserve 90
tapebufs 64
infofile /var/amanda/diario/curinfo

# Diretrio que contm

a base de dados do Amanda


logdir

/var/amanda/diario/log

# Diretrio que

contm os logs do Amanda


indexdir /var/amanda/diario/index

# Diretrio que contm

os ndices do Amanda
Configuraes da unidade de fita

define tapetype LTO3-HWC {


comment just produced by tapetype prog (hardware compression
off)
length 401408 mbytes
filemark 0 kbytes
speed 74079 kps

Administrao de Sistemas Linux

runtapes 1
fitas utilizadas por backup
tapedev /dev/nsa0

# Dispositivo associado

unidade de fita
rawtapedev /dev/null
maxdumpsize 800 Gb
considerado para o backup

100

# Nmero de

# Tamanho mximo

tapetype LTO3

# Tipo de unidade

de fita utilizado
labelstr ^Dia-[1-5]$

# Rtulo utilizado nas

fitas
amrecover_do_fsf yes

# Especifica se

amrecover utilizar o amrestore para agilizar a busca na fita


amrecover_check_label yes

# Especifica se o amrecover

utilizar o amrestore com a opo -l para verificar o rtulo da fita


amrecover_changer /dev/nsa0
Configuraes de rede

define interface local {


comment a local disk
use 1000000 kbps
}

define interface eth0 {


comment 1 Gbps ethernet
use 1000000 kbps
}
Configuraes dos discos

holdingdisk hd1 {
comment main holding disk
directory /amanda

# Partio utilizada para

armazenar temporariamente o backup


use 600 GB
chunksize 3Gb
}

autoflush no

# Especifica se os dados sero gravados na fita

Configuraes dos tipos de dumps

# Dump definido para servidores Linux/Unix


define dumptype root-tar {
global

Captulo 5 - Backup

durante os dumps ou aps estes

program GNUTAR
101

comment root partitions dumped with tar


compress none
index
exclude list /var/amanda/exclude.list

# Lista de arquivos

que sero excludos do backup


priority medium
}

# Dump definido para servidores Windows


define dumptype root-samba-tar {
program GNUTAR
compress none
index
priority high
}
Aps realizar a configurao adequada do Amanda, preciso definir o contedo de cada
computador cliente que far parte do backup. Esses dados devem ser inseridos no arquivo
/etc/amanda/diario/disklist, utilizando o formato:

hostname diskdev dumtype [spindle


[interface]]
Onde hostname o nome completo do computador cliente; diskdev o diretrio ou partio;
dumtype o tipo de backup; spindle a medida utilizada para balanceamento (opo no
utilizada) e interface a interface de rede utilizada para fazer o balanceamento (opo no
utilizada). O exemplo a seguir mostra duas linhas tpicas do arquivo disklist.

computador1.dominio

/home

root-tar
servidordeBackup.dominio

//computador2/diretorio

root-samba-tar

Clientes que utilizam o Sistema Operacional Windows devem possuir um compartilhamento


criado para cada diretrio que fizer parte do backup. Esses compartilhamentos sero aces Administrao de Sistemas Linux

sados pelo servidor de backup, atravs do Samba. Para isso, o administrador deve criar um

102

arquivo contendo o nome e a senha do usurio que possui permisso de leitura sobre os
compartilhamentos criados. Esse arquivo deve se chamar amandapass e deve estar localizado
no diretrio /etc. As linhas do arquivo /etc/amandapass devem possuir a seguinte sintaxe:

//<nome_Computador_Cliente>/<compartilhamento> <usurio>%<senha>
Tambm deve ser criado o arquivo /etc/amanda/diario/tapelist, que ser utilizado pelo
Amanda para fazer o controle das datas de utilizao das fitas. Esse arquivo ser preenchido
automaticamente pelo Amanda, medida que os backups forem sendo executados.

Configurando os clientes
Aps a instalao do pacote do cliente do Amanda preciso habilitar o servio no arquivo
/etc/inetd.conf . Somente a linha a seguir, referente ao Amanda, deve ser inserida no arquivo.

amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad


Aps realizar a alterao no arquivo /etc/inetd.conf, ela deve ser aplicada, atravs do envio do
sinal HUP ao processo do inetd, utilizando o comando kill. Alm disso, a seguinte linha deve
estar presente no arquivo /etc/services:

amanda 10080/udp
Tambm devem ser criados o diretrio /var/amanda/gnutar-lists, que ser o repositrio do
Amanda e o arquivo /home/backup/.amandahosts, com o seguinte contedo:

servidordeBackup.dominio backup
Esse arquivo deve possuir permisso de leitura e escrita somente para o usurio backup.
Para finalizar, deve ser criado o arquivo de controle do Amanda, /etc/amandates.
Inserindo label nas fitas
Antes de utilizar as fitas para armazenar os dados do backup, preciso inserir um rtulo
(label) nelas, utilizando o comando amlabel com a seguinte sintaxe:

# amlabel diario <label>


Agendando o backup
O backup realizado com o Amanda deve ser agendado pelo cron ou executado diretamente
na linha de comando. As linhas a seguir mostram um exemplo do crontab do usurio
backup. O comando amcheck realiza uma verificao no servidor, na unidade de backup e
nos clientes para garantir que no haja nenhum problema antes da realizao do backup.
A opo -m utilizada para ser enviado um e-mail com o relatrio gerado pelo amchek. J o
comando amdump responsvel por realizar o backup.

00 16 * * 1-5 /usr/sbin/amcheck -m diario


00 22 * * 1-5 /usr/sbin/amdump diario ; /bin/mt -f /dev/sa0 rewoffl
00 20 * * 5 /etc/amanda/forceFullDump.sh
O script /etc/amanda/forceFullDump.sh deve ser executado todas as sextas-feiras, para forar
a realizao de um backup completo. O comando amadmin deve ser executado com a opo
force para todos os clientes. O script /etc/amanda/forceFullDump.sh executa um loop for
para obter do arquivo /etc/amanda/diario/disklist os nomes de todos os clientes e pass-los
como parmetro para o comando amadmin.

for i in `cat /etc/amanda/diario/disklist | grep -v # | awk {print


$1} | uniq`
do
/usr/local/sbin/amadmin diario force $i
done

Captulo 5 - Backup

#!/bin/bash

103

O comando amverify tambm pode ser agendado no crontab para ser executado aps o
trmino do backup. Esse comando faz uma verificao geral para ver se ocorreu algum
problema durante a execuo do backup. Outros comandos bastante utilizados so amflush
e amstatus. O amflush utilizado para gravar em fita um backup que tenha ficado armazenado em disco. J o amstatus pode ser utilizado para exibir um relatrio com o status de um
backup em execuo.
Restaurando um backup
Para restaurar um backup, podemos utilizar os comandos amrestore, que um utilitrio de
linha de comando, e o amrecover, que prov uma interface com diversos comandos utilizados para a realizao de um restore. O exemplo seguinte mostra a interface textual do
amrecover, onde so executados os comandos necessrios para restaurar o contedo do
diretrio /home do cliente computador1.

# amrecover diario
Using index server from environment AMANDA_SERVER
(servidordeBackup)
AMRECOVER Version 3.2.1. Contacting server on servidordeBackup ...
220 servidordeBackup AMANDA index server (3.2.1) ready.
Setting restore date to today (2012-02-01)
200 Working date set to 2012-02-01.
200 Config set to diario.
501 Host servidordeBackup is not in your disklist.
Use the sethost command to choose a host to recover
amrecover> sethost computador1
200 Dump host set to computador1.
amrecover> setdisk /home
200 Disk set to /home.
amrecover> add group
Added file /group
amrecover> extract

Administrao de Sistemas Linux

Extracting files using tape drive changer on host servidordeBackup.

104

The following tapes are needed: Tape1


Extracting files using tape drive changer on host servidordeBackup.
Load tape Tape1 now
Continue [?/Y/n/s/d]? Y
Restoring files into directory /tmp/restore
All existing files in /tmp/restore can be deleted

Continue [?/Y/n]? Y
./group

Bacula
Programa que utiliza a arquitetura cliente/servidor e permite ao administrador gerenciar de
modo centralizado o backup dos computadores de uma organizao. Seu design modular o
torna escalvel, sendo capaz de operar em grandes redes com centenas de computadores
clientes. Entre suas principais caractersticas, podemos destacar:
11 Suporte a diversos tipos de mdia, como unidades de fita e discos.
11 Suporte a diversos tipos de Sistemas Operacionais: Linux, *BSD, Windows, MAC etc.
11 Armazena todas as informaes em uma base de dados (MySQL, PostgreSQL etc.).

Estaes e/ou servidores

Store daemon
(DVD, Fita, HD)

Catalog daemon
(MySQL, PostgreSQL, Sqlite)
Figura 5.9
Estrutura de
mdulos do programa Bacula.

Director daemon
(Gerenciamento central)

Console de administrao
(Web, terminal, aplicao)

O Bacula composto por cinco mdulos:


11 Director: mdulo principal que supervisiona todas as atividades de backup e restore,
alm de coordenar os outros mdulos. O Bacula Director executado como um daemon
e por padro utiliza a porta TCP 9101 para receber conexes.
11 Console: permite ao administrador interagir com o Director atravs de uma interface que
pode ser textual ou grfica. utilizado para realizar backups e restaurar dados, alm de
outras funcionalidades.
11 File: cliente do Bacula que deve ser instalado em todos os computadores clientes que
fizerem parte da rotina de backup. O File executado como um daemon e por padro
utiliza a porta TCP 9102 para receber conexes.
11 Storage: responsvel por armazenar e recuperar dados das mdias de backup. O Storage
11 Monitor: mdulo responsvel por gerenciar os mdulos Director, File e Storage, disponibilizado somente atravs de uma interface grfica.

Captulo 5 - Backup

executado como um daemon e por padro utiliza a porta TCP 9103 para receber conexes.

105

Configurao do Bacula
A configurao do Bacula dividida em trs arquivos, que sero vistos a seguir:
11 Configurao do Director: o arquivo de configurao do Director dividido em diversas
sesses, que sero apresentadas a seguir.

Arquivo de configurao do Bacula Director bacula-dir.conf


Sesso Director
Define a configurao global do Director.

Director {
Name = servidorDeBackup-dir
DIRport = 9101
QueryFile = /etc/bacula/scripts/query.sql
WorkingDirectory = /var/lib/bacula
PidDirectory = /var/run/bacula
Maximum Concurrent Jobs = 30
Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3L
# Console password
Messages = Daemon
DirAddress = 192.168.1.5
}
Sesso Clients
Define os computadores que faro parte da rotina de backup. Deve ser criado um bloco para
cada computador cliente.

Client {
Name = cliente1-fd

# Nome do cliente

Address = cliente1.dominio.com

# Nome ou IP do

cliente
FDPort = 9102

# Porta utilizada pelo servio File no

cliente

Administrao de Sistemas Linux

Catalog = Catalog
utilizar

Password = vERoVCUMmmROAaOB8zWh3j2xkfKgeN4rFmoWRn1DDlfK # Senha


File Retention = 1y

# Armazenar os dados por um ano na

base
Job Retention = 1y

# Armazenar os dados por um ano na

base
AutoPrune = yes
}

106

# Qual catlogo

Sesso FileSets
Define os arquivos e diretrios que faro parte dos backups de cada cliente. Deve ser criado
um bloco para cada computador cliente.

FileSet {
Name = fileset-cliente1
Include {
Options {
signature = MD5
}
File = /home
}
Exclude {
}
}
Sesso Jobs
Define os trabalhos de backup/restore que sero executados. Deve ser criado um bloco para
cada computador cliente.

Job {
Name = job-cliente1
Type = Backup
#Level = Incremental

# Omitindo o level. O

agendamento que ir tratar isso


Client = cliente1-fd
FileSet = fileset-cliente1
Schedule = diario

# Nome do cliente
# FileSet do cliente
# Utiliza o

agendamento diario
Storage = TapeDrive0

# Grava os dados, na Fita

LTO-3, no drive 1
SpoolData = Yes

# Gravar no spool do

disco antes de jogar para fita

Pool = pool-dia1
Priority = 10
Write Bootstrap = /var/lib/bacula/ cliente1-fd.bsr
}

Captulo 5 - Backup

Messages = Standard

107

Sesso Pools
Define os grupos de volumes que sero utilizados nos backups.

# Pool Diario - Utilizar as mesmas configuraes para os dias 2, 3 e


4 (no foram inseridas aqui para poupar espao)
Pool {
Name = pool-dia1
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 6d

# recicla em 7 dias

}
# Pool semanal - Utilizar as mesmas configuraes para as semanas
3, 4 e 5 (no foram inseridas aqui para poupar espao)
Pool {
Name = pool-semana2
Pool Type = Backup
Recycle = yes
AutoPrune = yes
VolumeRetention = 1m

# recicla em 1 ms

}
# Pool mensal - Utilizar as mesmas configuraes para os meses de 2
a 12 (no foram inseridas aqui para poupar espao)
Pool {
Name = pool-mes1
Pool Type = Backup
Recycle = yes
AutoPrune = yes

Administrao de Sistemas Linux

VolumeRetention = 1y

# recicla em 1 ano

}
Sesso Schedules
Define os agendamentos dos backups.

# Agendamento do backup Diario


Schedule {
Name = diario
Run = Level=Incremental SpoolData=yes Pool=pool-dia1 Monday at 20:00

108

Run = Level=Incremental SpoolData=yes Pool=pool-dia2 Tuesday


at 20:00
Run = Level=Incremental SpoolData=yes Pool=pool-dia3 Wednesday
at 20:00
Run = Level=Incremental SpoolData=yes Pool=pool-dia4 Thursday
at 20:00

# Backup full da 2a sexta a 5a sexta de cada ms - 4 fitas


reutilizveis a cada 1 ms.
Run = Level=Full SpoolData=yes Pool=pool-semana2 2nd Friday at
20:00
Run = Level=Full SpoolData=yes Pool=pool-semana3 3rd Friday at
20:00
Run = Level=Full SpoolData=yes Pool=pool-semana4 4th Friday
at 20:00
Run = Level=Full SpoolData=yes Pool=pool-semana5 5th Friday at
20:00

# Backup full da sexta (MENSAL). Toda 1a sexta de cada ms (a


fita inserida ser
# referente ao ms anterior). Conjunto de 12 fitas
reutilizveis a cada 1 ano.
Run = Level=Full SpoolData=yes Pool=pool-mes1 on feb 1st Friday
at 20:00
Run = Level=Full SpoolData=yes Pool=pool-mes2 on mar 1st Friday
at 20:00
Run = Level=Full SpoolData=yes Pool=pool-mes3 on apr 1st
Friday at 20:00
Run = Level=Full SpoolData=yes Pool=pool-mes4 on may 1st
Friday at 20:00
Run = Level=Full SpoolData=yes Pool=pool-mes5 on jun 1st
Friday at 20:00
Run = Level=Full SpoolData=yes Pool=pool-mes6 on jul 1st

Run = Level=Full SpoolData=yes Pool=pool-mes7 on aug 1st


Friday at 20:00
# Acrescentar as configuraes dos meses 8, 9, 10 e 11
Run = Level=Full SpoolData=yes Pool=pool-mes12 on jan 1st

Captulo 5 - Backup

Friday at 20:00

Friday at 20:00
109

# Agendamento do backup do catlogo. Executado aps a finalizao


do Diario.
Schedule {
Name = WeeklyCycleAfterBackup
Run = Full sun-sat at 20:00
}
Sesso Storage
Define os volumes utilizados para armazenar os backups (fita, disco etc.).

# Armazenamento em disco
Storage {
Name = FileStorage0

Address = 192.168.1.5

# DNS ou IP do storage daemon


SDPort = 9103

# Porta do storage daemon


Password = vF6iEYpOmSxOa5QDGYUHraqBhQ9t5lB89
Device = FileStorage0
Media Type = File
}

# DELL PowerVault LTO-3 - Drive 0


Storage {
Name = TapeDrive0

Address = 192.168.1.5

# Nome ou IP do storage daemon

Administrao de Sistemas Linux

110

SDPort = 9103

# Porta do storage daemon


Password = vF6iEYpOmSxOa5QDGYUHraqBhQ9t5lB89
Device = TapeDrive0
Media Type = LTO-3
#Autochanger = yes
}

Sesso Catalog
Define a base de dados que ser utilizada para armazenar os dados dos backups.

# Servio de catlogo generic


Catalog {
Name = Catalog
dbname = bacula; DB Address = localhost; user = bacula;
password = r32D#@!S
}
Sesso Messages
Define como as mensagens do sistema sero enviadas para o administrador.

Messages {
Name = Standard
mailcommand = /usr/lib/bacula/bsmtp -h localhost -f \[Bacula]
\<%r\>\ -s \[Bacula]: %t %e of %c %l\ %r
operatorcommand = /usr/lib/bacula/bsmtp -h localhost -f
\[Bacula] \<%r\>\ -s \[Bacula]: Intervention needed for %j\ %r
mail = bacula@dominio.com = all, !skipped
operator = bacula@dominio.com = mount
console = all, !skipped, !saved
# O arquivo de log abaixo deve ser rotacionado para no crescer
indefinidamente.
append = /var/lib/bacula/log = all, !skipped
}

# Mensagens do Director com exceo de informaes relacionadas aos


jobs.
Messages {
Name = Daemon
mailcommand = /usr/lib/bacula/bsmtp -h localhost -f \[Bacula]
\<%r\>\ -s \[Bacula] daemon message\ %r

console = all, !skipped, !saved


append = /var/lib/bacula/log = all, !skipped
}

Captulo 5 - Backup

mail = bacula@dominio.com = all, !skipped

111

Sesso Console
Console restrito utilizado pelo tray-monitor para obter o status do Director.

Console { 5
Name = servidorDeBackup-mon
Password = tjgPc7_eh8cgH-Qyo-0WQnmGiNb_2g6No
CommandACL = status, .status
}
A configurao das sesses Clients, FileSets e Jobs pode ser feita em arquivos parte,
dependendo do nmero de servidores que fizerem parte da rotina de backup. Para isso, as
sesses correspondentes devem ser removidas do arquivo bacula-dir.conf e, em seu lugar,
devem ser inseridas as linhas:

# Clients
@/etc/bacula/clients.conf

# FileSets
@/etc/bacula/filesets.conf

# Jobs
@/etc/bacula/jobs.conf
O Director utiliza senhas para se comunicar com os mdulos Storage, File e Console. Sendo
assim, as senhas definidas nos arquivos de configurao dos clientes e do Storage devem
ser as mesmas definidas nos arquivos de configurao do Director. Caso contrrio, eles no
conseguiro se comunicar.
11 Configurao do Storage: o arquivo de configurao do Storage dividido em diversas
sesses, que sero apresentadas a seguir.

Arquivo de configurao do Storage bacula-sd.conf


Sesso Storage: configuraes do Storage daemon

Storage {

Administrao de Sistemas Linux

Name = servidorDeBackup-sd

112

SDPort = 9103

# O servio utilizar a porta TCP

9103
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
}

Sesso Device
Lista os dispositivos suportados pelo Storage daemon. Os dispositivos devem possuir o
mesmo nome e tipo de mdia definidos no arquivo bacula-dir.conf.

Device {
Name = FileStorage0
Media Type = File
Archive Device = /home/backups
LabelMedia = yes;
Random Access = Yes;
Requires Mount = No;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = yes;
}

# Dell PowerVault LTO-3 Drive0


Device {
Name = TapeDrive0
Description = Dell PowerVault LTO-3 Drive0
Media Type = LTO-3
Archive Device = /dev/nst0
AutomaticMount = yes;
AlwaysOpen = yes;
RemovableMedia = yes;
RandomAccess = no;
Alert Command = sh -c tapeinfo -f %c |grep TapeAlert|cat
Spool Directory = /home/spool
}
Sesso Director

Director {
Name = servidorDeBackup-dir
Password = vF6iEYpOmSxOa5QDGYUHraqBhQ9t5lB89
}

Captulo 5 - Backup

Lista o Director que pode se comunicar com o Storage daemon.

113

Sesso Messages
Envia as mensagens para o Director.

Messages {
Name = Standard
director = servidorDeBackup-dir = all
}
Sesso Director
Utilizado pelo Monitor para obter o status do Storage daemon.

Director {
Name = servidorDeBackup-mon
Password = A-fFgazDOgc1oY9ylhvXla-vyiF2hqAcj
Monitor = yes
}
11 Configurao do File: o arquivo de configurao do File dividido em diversas sesses,
que sero apresentadas a seguir. Esse arquivo deve existir em todos os computadores
clientes que fizerem parte da rotina de backup.

Arquivo de configurao dos clientes bacula-fd.conf


Sesso FileDaemon
Configuraes globais.

FileDaemon {
Name = computador1-fd
FDport = 9102

# O servio utilizar a porta TCP

9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20

Administrao de Sistemas Linux

114

Sesso Director
Lista o Director que pode se comunicar com o File daemon.

Director {
Name = servidorDeBackup-dir
Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg
}

Sesso Director
Utilizado pelo Monitor para obter o status do File daemon.

Director {
Name = servidorDeBackup-mon
Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg
Monitor = yes
}
Sesso Messages
Envia as mensagens para o Director.

Messages {
Name = Standard
director = servidorDeBackup-dir = all, !skipped, !restored
}

Base de dados
Como foi mostrado, o Bacula utiliza uma base de dados para armazenar informaes sobre
jobs, restores, pools, volumes etc. Vamos considerar que o SGBD MySQL ser utilizado para
armazenar a base de dados do Bacula. Aps a instalao de Bacula e MySQL, alguns scripts
tero de ser executados para que o Bacula possa funcionar adequadamente.
11 create_mysql_database: script utilizado para criar a base de dados do Bacula.
11 make_mysql_tables: script usado para criar as tabelas da base de dados do Bacula.
11 grant_mysql_privileges: script utilizado para definir o permissionamento adequado ao
usurio bacula na base de dados do Bacula.
Aps a execuo desses scripts e da configurao adequada dos mdulos Director, Storage e
File, o Bacula est pronto para ser utilizado.

Para mais detalhes


sobre as opes de uso
do bconsole, consulte
o documento Bacula
Console and Operators
Guide, de Kern Sibbald.

O bconsole o console do Bacula e, atravs dele, o administrador pode interagir com o


Director, realizando diversas tarefas, como executar e restaurar backups e verificar os
backups que esto sendo executados, entre outros.

# bconsole
Connecting to Director localhost:9101
1000 OK: backup-dir Version: 5.2.5 (01 February 2012)
Enter a period to cancel a command.
*
A interface textual do bconsole disponibiliza diversos comandos, que podem ser listados
atravs do comando help.

Captulo 5 - Backup

Saiba mais

bconsole

115

Inserindo label nas fitas


Antes de utilizar as fitas para armazenar os dados do backup, preciso inserir um rtulo
(label) nelas, utilizando o comando label disponvel no console do Bacula. Aps a insero
do label e sempre que for utilizar uma fita pra fazer backup, o administrador deve mont-la
antes utilizando o comando mount, disponvel no console do Bacula. Tambm necessrio
adicionar a fita a um pool, utilizando o comando add, tambm disponvel no console.
Restaurando backups
O exemplo a seguir mostra a restaurao de um backup do cliente computador1, que executada atravs do comando restore, do bconsole.

* restore
Automatically selected Catalog: Catalogo1
Using Catalog Catalogo1

First you select one or more JobIds that contain files


to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.

To select the JobIds, you have the following choices:


1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time

Administrao de Sistemas Linux

9: Find the JobIds of the most recent backup for a client

116

10: Find the JobIds for a backup for a client before a specified
time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select item:

(1-13):5

Defined Clients:
1: computador1-fd
2: computador2-fd

Select the Client (1-26): 1


Automatically selected FileSet: fileset-computador1
+-------+-------+----------+----------+---------------+------------+
| JobId | Level | JobFiles | JobBytes | StartTime

| VolumeName

|
+-------+-------+----------+----------+------------------+---------+
|

643 | F

8,420 | 1,500,887| 2011-07-01 20:00 | Mes-6

+-------+-------+----------+----------+------------------+---------+
You have selected the following JobId: 3

Building directory tree for JobId(s) 3 ...

+++++++++++++++++++++

++++++++++++++++++++++++++
165 files inserted into the tree.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added,
unless you used the all keyword on the command line.
Enter done to leave this mode.

cwd is: /
$ mark *
165 files marked.
$ done
Aps a execuo do comando done, solicitada a insero da(s) mdia(s) adequada(s), para
Captulo 5 - Backup

que o backup possa ser restaurado.

117

Pacotes comerciais
11 Arkeia Network Backup.

11 ARCserve.
11 Backup Exec.
11 NetBackup.
Existem vrios softwares comerciais de backup, oferecendo diversas funcionalidades em
comum, porm, cada um com suas caractersticas especficas. Esses softwares geralmente
so compatveis com as mais diversas plataformas de hardware e Sistemas Operacionais,
e seus preos podem chegar a alguns milhares de reais. Dentre os softwares comerciais de
backup podemos destacar:
11 Arkeia Network Backup: desenvolvido em 1998 pela Arkeia Software. Alm do software,
a empresa tambm oferece, como soluo, um appliance e um virtual appliance que
executado no VMware. Dentre suas principais caractersticas, podemos destacar: console
de administrao web, que gerencia todas as atividades de backup e restore; suporte aos
mais diversos tipos de mdias e plataformas de hardware e software; suporte a backups
fsicos, virtuais e em nuvem; criptografia de dados etc.
11 ARCserve: foi desenvolvido em 1990 pela empresa Cheyenne Software. Em 1996 a
empresa CA Technologies adquiriu a Cheyenne Software e passou a manter e aprimorar o ARCserve. Suas principais caractersticas: console de administrao grfico
que gerencia todas as atividades de backup e restore; suporte aos mais diversos tipos
de mdias e plataformas de hardware e software; suporte a backups fsicos, virtuais e
em nuvem; integrao com aplicativos como MS Exchange e SQL Server; criptografia de
dados; recuperao total de servidores mesmo migrando para hardwares diferentes etc.
11 Backup Exec: software de backup desenvolvido em 1982 pela Maynard Electronics. Foi
comprado por diversas empresas e passou por vrias melhorias at ser comprado pela
Symantec em 2005. O nome Backup Exec s foi adotado em 1998, quando ainda pertencia empresa Seagate. Dentre as principais caractersticas do Backup Exec, podemos
destacar: console de administrao grfico, que gerencia todas as atividades de backup e
restore; suporte aos mais diversos tipos de mdias e plataformas de hardware e software;
backup de mquinas virtuais; integrao com aplicativos como MS Exchange e SGBDs
(Oracle, SQL Server); criptografia de dados etc.
11 NetBackup: desenvolvido em 1987 pela empresa Control Data Corporation. Passou
por diversos aprimoramentos e foi comprado por outras empresas, entre elas a Veritas,
quando ficou conhecido com Veritas NetBackup. Atualmente pertence Symantec, que
o adquiriu em 2005. Principais caractersticas do NetBackup: console de administrao
grfico, que gerencia todas as atividades de backup e restore; criptografia de dados;
Administrao de Sistemas Linux

controle de acesso; suporte aos mais diversos tipos de mdias e plataformas de hardware
e software; backup de mquinas virtuais; relatrios diversos etc.

Polticas de backup
Fatores para definio da poltica de backup:
11 Criticidade, volatilidade e volume dos dados armazenados no sistema.
11 Tipo de uso e horrio de operao.
11 Capacidade e velocidade do dispositivo utilizado para realizar o backup.
Misso crtica de uma empresa:
11 Estabelecer diversas polticas de backup.

118

Para cada sistema, necessrio decidir quando e como fazer o backup dos dados, o que
depende dos seguintes fatores: criticidade, volatilidade e volume dos dados armazenados
no sistema; tipo de uso e horrio de operao do sistema; capacidade e velocidade do dispositivo utilizado para armazenar os dados do backup. Com base nesses fatores, cada organizao deve definir uma poltica de backup apropriada s suas necessidades operacionais.
Uma empresa que opere um sistema de misso crtica vai ter polticas de backup
muito diferentes das polticas de uma instituio educacional.

Eventualmente, diferentes departamentos de uma mesma empresa podem ter necessidades diversas, e, por conseguinte, diferentes polticas de backup. Geralmente, quanto
mais crtica for a operao do sistema para o negcio da empresa e quanto maior a
volatilidade dos dados, maior a frequncia e abrangncia das operaes de backup. Essa
norma vale tanto para a periodicidade com que os backups so executados, quanto para
a escolha dos dados que devem ser includos no backup. Como regra geral, temos que, em
sistemas nos quais h grande atividade por parte dos usurios, os diretrios de trabalho
devem ser salvos diariamente.
J sistemas de arquivos que so modificados com menor frequncia (o diretrio /usr, por
exemplo) podem ser salvos apenas uma vez por ms. Quando houver necessidade de
operao ininterrupta do sistema, a operao de backup deve ser planejada de modo a se
adequar ao regime e horrio de uso do sistema e interferir o mnimo possvel na rotina dos
usurios. razovel supor que o tipo de dispositivo a ser utilizado nos backups deva ser
selecionado em funo das condies anteriores, embora isso nem sempre seja possvel,
devido a limitaes oramentrias. O administrador de sistemas ter de dispor de todo o
seu conhecimento para fazer o melhor uso possvel dos equipamentos disponveis, sem
colocar em risco a segurana das operaes da empresa.
Aqui vale lembrar que, independentemente do procedimento normal de backup, administradores de sistemas experientes adquirem o bom hbito de realizar backup regular de
dados e programas que sero manipulados em operaes de reconfigurao do Sistema
Operacional, de reorganizao de diretrios e parties ou de atualizao de software. Isso
porque sempre existe a possibilidade de se cometer erros, que podem levar perda de
informaes importantes ou muito trabalhosas para serem recuperadas.

A administrao da rotina de backup muito facilitada se for centralizada em


um nico servidor e executada por um software profissional de backup, seja ele
gratuito ou no.

O processo de identificao das mdias demonstra ser de extrema importncia em uma


poltica de backup que prime pela eficincia. As fitas devem ser identificadas, isto ,
sistemas de arquivos copiados, o nvel do backup executado e a data da sua execuo
devem ser escritas na prpria caixa que abriga a mdia. Tal procedimento facilitar
bastante o processo de recuperao de dados a partir dos backups realizados, o que ajuda
bastante em situaes crticas.
O administrador deve tentar utilizar uma nica mdia para realizar os backups dirios. Com
isso, ele pode programar o backup para ser executado em um horrio de pouca utilizao

Captulo 5 - Backup

possuir labels que indiquem unicamente o seu contedo. Informaes como a lista dos

do sistema, minimizando os problemas de inconsistncia de dados e queda de desempenho


119

nas aplicaes. Se o backup no couber em uma nica mdia, recomenda-se comprar uma
unidade de maior capacidade, utilizar mltiplos dispositivos ou adquirir um rob.
Para minimizar a possibilidade de haver um sistema de arquivos que no possa ser copiado
para uma nica mdia, os administradores devem levar em conta a capacidade mxima da
sua mdia de backup quando forem definir os tamanhos das parties de seus sistemas.

Cuidados no armazenamento das mdias


Mdia de backup:

11 Centralizar todos os backups em um s servidor.


11 Rotular as fitas.
11 Definir o contedo e a periodicidade de armazenamento para cada computador.
11 Fazer os sistemas de arquivos menores que o seu dispositivo de backup (dumps
dirios).
11 Manter algumas fitas fora do local de trabalho.
11 Executar o backup em horrios de pouca utilizao dos sistemas.
11 Acondicionar as mdias adequadamente.
11 Checar, periodicamente, a boa condio de gravao das mdias de backup.
To importante quanto definir e cumprir risca os procedimentos de backup acondicionar
adequadamente a mdia utilizada nas operaes, independentemente do seu tipo. Cada um
desses meios de armazenamento possui caractersticas prprias de confiabilidade, capacidade e requisitos de manuseio e armazenamento, que devem ser cuidadosamente observadas para que se obtenha o desempenho esperado. uma boa prtica manter o registro
das condies ambientais (temperatura e umidade) do local de armazenamento.
A necessidade de armazenamento de mdias fora do local de trabalho vai depender da criticidade dos dados para a empresa, bem como dos riscos associados s suas instalaes. Uma
refinaria de petrleo apresenta riscos consideravelmente altos em relao ao campus de
uma universidade. Em qualquer dos casos, recomendvel o armazenamento de um backup
de nvel 0 em algum local fora da empresa, como uma garantia contra desastres naturais.
Uma empresa que possua filiais, por exemplo, pode adotar a prtica de, mensalmente,
trocar fitas de backup entre elas. Ateno tambm deve ser dada segurana do local de
armazenamento da mdia de backup, visando minimizar riscos de perda dos arquivos devido
a acidentes naturais ou aes criminosas. Empresas e instituies que trabalham com informaes sensveis ou confidenciais devem possuir locais seguros para armazenamento das
mdias utilizadas para backup de seus sistemas.
Finalmente, a boa condio de gravao da mdia de backup precisa ser verificada perio Administrao de Sistemas Linux

dicamente. Para isso, uma soluo eficaz consiste na execuo de operaes de leitura e

120

recuperao a partir de uma amostra aleatria das fitas armazenadas. Outro exerccio recomendado consiste em explorar alguns cenrios que exijam a restaurao dos dados.
O cenrio de pior caso, com a perda total dos equipamentos, precisa ser estudado. O administrador, nesse caso, deve determinar quanta informao seria perdida e quanto tempo
levaria para tornar o sistema novamente operacional, incluindo o tempo de aquisio de um
novo hardware. necessrio, ento, fazer uma avaliao das respostas obtidas para determinar se elas atendem s necessidades da empresa. Caso contrrio, a poltica de backup
ter de ser revista.

Para sistemas de pequeno porte, as ferramentas de backup disponveis no Linux so


satisfatrias. No entanto, para sistemas de mdio e grande porte, deve-se investir
em ferramentas profissionais mais robustas e seguras.

Exerccio de fixao 3 e
Softwares de backup
Qual dos softwares seguintes tambm seria de backup?
11 Bacula;
11 Amavis;
11 Postfix;
11 Dump;
11 Rdiff;

Captulo 5 - Backup

11 Tar.

121

122

Administrao de Sistemas Linux

Roteiro de Atividades 5
Atividade 5.1 Utilizando tar para fazer backup
A realizao de backups uma tarefa rotineira para o administrador de sistemas. Na prtica
profissional, o backup ser feito em meios de armazenamento de grande capacidade, como
fitas magnticas, dispositivos pticos e storages. Vejamos como ele pode ser feito com o
comando tar, utilizando um pen drive.
1. Entre no sistema utilizando sua conta. Faa o backup do seu diretrio de trabalho no pen

drive fornecido pelo instrutor. Para isso, utilize o comando tar. Se necessrio, formate e
crie um sistema de arquivos no pen drive. Verifique e anote o tamanho do arquivo gerado
pelo backup.
2. Apague os arquivos do seu diretrio de trabalho e utilize o comando tar com a opo

adequada para restaurar os arquivos a partir da cpia feita no pen drive. Verifique se a
restaurao foi efetuada.
3. Refaa o passo do primeiro item, utilizando agora o comando tar com a opo de

compresso. Verifique e compare a rea ocupada no pen drive com aquela anotada no
primeiro item. Qual o percentual de economia obtido com a cpia comprimida?

Atividade 5.2 Utilizando dump e restore para fazer backup


Agora vamos repetir o procedimento utilizando o comando dump. Para realizar esta atividade voc deve estar logado com a conta root.
1. Utilize as opes adequadas do comando dump para fazer um backup de nvel 0, do seu

diretrio de trabalho no pen drive fornecido. Ao final do backup o dump emite um relatrio. Verifique e anote a rea ocupada no pen drive pelo backup.
2. Utilize o comando restore com a opo t para listar os arquivos salvos no pen drive.
3. Apague um dos arquivos do seu diretrio de trabalho e use o comando restore no modo

interativo (opo i) para restaurar apenas o arquivo apagado, a partir da cpia feita no
pen drive. Verifique se a restaurao foi realizada.
Comandos do modo interativo do restore:
11 add [arg] o diretrio atual ou [arg] acrescentado lista de arquivos a serem extrados.
Diretrios e arquivos na lista de extrao so indicados com *.
11 cd [arg] troca para o diretrio [arg].
11 delete [arg] apaga o diretrio ou o arquivo [arg] da lista de arquivos a serem extrados.

11 ls [arg] lista o diretrio corrente ou o especificado. Um * indica que o diretrio est na


lista de extrao.

Captulo 5 - Backup

11 extract extrai arquivos da lista.

123

Atividade 5.3 Utilizando tar para clonar uma estrutura de diretrio


Em diversos momentos o administrador de sistemas se depara com a necessidade de
transferir uma grande quantidade de dados de uma rea do disco para outra, sem que seja
necessrio utilizar alguma mdia externa. Um exemplo clssico dessa situao o seguinte:
voc cria uma partio maior para abrigar os dados dos usurios e, antes de liberar o seu
uso, necessita transferir os dados atuais para a nova partio.
1. Utilizando o comando tar e o redirecionamento, realize uma cpia da rvore de diretrio

/var/spool no diretrio /home/backup.


2. Qual o espao ocupado pelos arquivos que esto abaixo de /var/spool? Verifique se

o montante geral dos arquivos copiados do mesmo tamanho que o montante dos
arquivos da origem.

Atividade 5.4 Fazendo backup remoto com rsync


1. Combine com um colega ou uma equipe vizinha (o instrutor dever lhe dizer com quem

voc dever interagir) para fazer o backup do seu diretrio de trabalho no computador
dele utilizando o comando rsync. Voc precisar de uma conta e senha criadas no computador do seu colega.
2. Em seguida, recupere o contedo do backup feito no diretrio /tmp do seu computador e

compare-o com os dados originais.

Atividade 5.5 Agendando rotinas de backup


Configure o cron para executar s 20h00 de todas as sextas-feiras um backup incremental,
de nvel 1, dos diretrios de trabalho dos usurios. Antes de iniciar o backup, faa com que o
sistema envie uma mensagem para os usurios avisando que o backup ser realizado.
O wall utilizado para enviar mensagens aos usurios logados no sistema. Caso os usurios
no tenham acesso ao sistema, devem ser comunicados atravs de e-mail. Para isso, deve
existir um alias do tipo funcionarios@dominio.com.br, com o objetivo de facilitar a comunicao entre a equipe de TI e os usurios do sistema. Nesse caso o envio da mensagem seria
feito com o comando:

mail -s Backup funcionarios@dominio.com.br < /tmp/mensagem.txt

Atividade 5.6 Fazendo backup com Amanda


1. Descreva os passos necessrios para realizar a instalao do Amanda.

Administrao de Sistemas Linux

2. Informe os passos necessrios para adicionar um novo cliente rotina de backup.


3. Informe os passos necessrios para adicionar o diretrio C:\Databases do cliente compu-

tador1 rotina de backup.


4. O comando amcheck foi executado, e a partir da verificou-se que o servidor no est

conseguindo se comunicar com o cliente computador1. Cite dois problemas que podem
estar causando esta falha.
5. O backup completo estava sendo executado em um cliente e foi abortado. Cite dois pro-

blemas que poderiam ter causado esta falha.


6. O administrador inseriu uma fita nova, nunca antes utilizada na unidade de backup, e no dia

seguinte verificou que o backup no foi executado. O que pode ter causado este problema?
124

Atividade 5.7 Fazendo backup com Bacula


1. Descreva os passos necessrios para realizar a instalao do Bacula.
2. Informe os passos necessrios para adicionar um novo cliente rotina de backup.
3. Como ficaria o FileSet deste cliente, se fosse necessrio fazer backup do diretrio /home,

com exceo do diretrio /home/backup.


4. O comando messages foi executado no console do Bacula (bconsole) e a partir da, foi veri-

ficado que o servidor no est conseguindo se comunicar com o cliente computador1.


Cite trs problemas que podem estar causando esta falha.
5. Cite dois problemas de software que poderiam causar uma falha de comunicao entre

os mdulos Director e Storage.


6. Cite uma vantagem e uma desvantagem do Bacula em relao ao Amanda. Voc pode

Captulo 5 - Backup

fazer uma pesquisa na internet para responder a este item.

125

126

Administrao de Sistemas Linux

6
Conhecer as principais caractersticas associadas manuteno de um servio
de impresso em sistemas Linux, entender o processo de impresso em sistemas
Linux, compreender a diferena entre os softwares gerenciadores de impresso e
conhecer os comandos para configurao e manuteno de um servio de
impresso baseado no CUPS.

gerenciadores de impresso (LPD, LPRng e CUPS).

conceitos

Servio de impresso, arquitetura do sistema de impresso e softwares

Introduo
O servio de impresso de arquivos um dos que mais exige ateno e tempo do administrador de sistemas. Alguns profissionais de TI costumam argumentar que instalar, configurar
e manter um servio de impresso no Linux muito mais complexo do que em sistemas
Windows. At pouco tempo atrs, eles no deixavam de ter razo. Instalar uma impressora
costumava ser mais complicado no Linux do que no Windows. Outro agravante era o fato de
que fabricantes de impressoras costumavam desenvolver os drivers dos seus equipamentos
somente para sistemas Windows, por ser este um sistema de maior penetrao no mercado.
Entretanto, o servio de impresso do Linux comeou a se mostrar mais flexvel e fcil de ser
administrado a partir do lanamento do software de gerenciamento de impresso CUPS.

Histrico
Nos primrdios dos sistemas Unix, o servio de impresso era baseado em dois sistemas
projetados na dcada de 1970, para impresso de arquivos texto em impressoras matriciais:
11 Line Printer Daemon (LPD), do BSD.
11 Line Printer System, do System V.
Com o surgimento de novas demandas, entretanto, esse cenrio comeou a mudar. Desenvolvedores de sistemas Linux passaram a promover mudanas nesses dois sistemas, para
que eles pudessem atender s demandas por impresso de arquivos nos mais diferentes
formatos e em dispositivos cada vez mais elaborados, como as impressoras a laser. Com
o passar do tempo, foram surgindo variantes do LPD, com destaque para o Portable Line

Captulo 6 - Servio de impresso

objetivos

Servio de impresso

Printer Spooler System (PLP), que mais tarde teve seu nome alterado para LPRng. Esses
127

sistemas, contudo, no conseguiram explorar todo o potencial dos novos dispositivos


de impresso que eram lanados no mercado. Foram feitas, ento, muitas tentativas de
desenvolver uma interface padro para impresso. Dentre elas, pode-se destacar o POSIX e
o Internet Printing Protocol (IPP).

POSIX
Foi desenvolvido pelo Institute of Electrical and Electronics Engineers (IEEE) e definia um
conjunto comum de ferramentas de linha de comando, assim como uma interface em C para
administrao de impressoras e gerenciamento de impresso. Todavia, foi descontinuado
pelo prprio IEEE.

IPP
Foi desenvolvido pelo Internet Engineering Task Force (IETF) em 1999 e define extenses
ao protocolo HTTP para prover suporte ao servio de impresso. Diferente do POSIX, o IPP
desfruta de ampla aceitao por parte da indstria e est cotado para tornar-se a soluo
padro de impresso em rede para todos os Sistemas Operacionais. Neste cenrio, surgiu o
CUPS, um moderno sistema de impresso para sistemas Unix, que pode ser estendido para
suportar novas impressoras, dispositivos e protocolos, ao mesmo tempo em que mantm a
compatibilidade com as aplicaes existentes.
O sistema de impresso baseava-se em dois sistemas:

11 LPD, do BSD.
11 Line Printer System, do System V.
Inicia-se a busca por uma interface padro para impresso:
11 POSIX, do IEEE.
11 IPP, do IETF.

Arquitetura do sistema de impresso


11 O usurio solicita uma impresso.

11 O sistema cria um job.


11 O job enviado por meio da rede.
11 O sistema de impresso trata o job.
11 Enfileira se a impressora est ocupada.
11 Filtros so aplicados ao job.
11 Aplicao das opes selecionadas.
11 Traduo dos dados para a linguagem nativa da impressora.

Administrao de Sistemas Linux

11 A impresso realizada.

128

Para manter o servio de impresso operando de forma correta, importante entender


como ele funciona. A princpio, todos os sistemas de impresso funcionam da mesma forma
e sua arquitetura ilustrada na Figura 6.1.

Figura 6.1
Arquitetura dos sistemas de impresso.

O esquema de impresso de um arquivo, geralmente, funciona da seguinte maneira:


1. O usurio solicita a impresso de um arquivo e passa para o sistema algumas opes

(qualidade da impresso, nmero de cpias etc). Geralmente, os dados encontram-se no


formato PostScript, embora isso nem sempre seja verdadeiro. Nesse momento, o sistema
de impresso cria o que se chama de job.
2. O sistema envia ento o arquivo e as opes, por intermdio da rede, para o servidor de

impresso. Se a impressora estiver localmente conectada ao sistema, essa ao no


executada.
3. Ao chegar ao servidor, o sistema de impresso local enfileira o job at que a impressora

esteja disponvel.
4. O sistema aplica as opes selecionadas pelo usurio e traduz os dados do arquivo para a

linguagem nativa da impressora que, geralmente, no PostScript. A esse passo dado o


nome de filtragem. Os filtros permitem que os usurios e as aplicaes imprimam os mais
diferentes tipos de arquivo.
5. Por fim, a impresso feita. Nesse ponto, o sistema faz a remoo de alguns arquivos tem-

porrios. Caso haja algum erro nesse caminho, o usurio ser notificado pelo sistema.

Softwares gerenciadores de impresso


11 LPD.

11 LPRng.
11 CUPS.
Diferentes softwares surgem na tentativa de contornar as limitaes dos antigos sistemas
de impresso. A seleo do melhor sistema depende de caractersticas do ambiente.
Existem sistemas de impresso desenvolvidos para substituir os antigos sistemas baseados
no LPD, como o LPRng. Entretanto, o foco deste captulo ser o CUPS, que alm de ter se
tornado um padro, a melhor opo de sistema de impresso disponvel no mercado para

Line Printer Daemon (LPD)


11 Foi o software padro de impresso do BSD durante anos.
11 Atendia bem a demandas de impresso de arquivos texto.
11 Mostrou-se inapropriado para impresses mais sofisticadas (grficos, imagens etc.).
11 O uso do GNUlpr recomendado caso o administrador opte por utilizar um sistema
de impresso baseado no LPD.
11 No deve ser confundido com protocolo de impresso de rede do IETF (RFC 1179).

Captulo 6 - Servio de impresso

sistemas Unix.

129

O LPD foi o sistema padro de impresso do Unix BSD durante vrios anos. Quando ele
surgiu, as demandas por impresso eram de arquivos puramente textuais. Com o passar dos
anos, mostrou-se inapropriado para atender s novas demandas por impresso de arquivos
mais elaborados, como imagens, grficos e at mesmo arquivos provenientes de editores de
texto mais sofisticados. Apesar de suas limitaes, o LPD conseguiu disseminar-se por uma
vasta gama de sistemas Unix e, ainda hoje, tem grande utilidade como um sistema bsico de
impresso. Entretanto, para utilizar plenamente o potencial das impressoras modernas,
necessrio o uso de filtros e outros programas complementares. Esses programas existem
e, apesar de sua complexidade, so uma alternativa para quem opta por utilizar o LPD. So
programas que fazem o front-end da aplicao. Os mais conhecidos so o KDEPrint, o GPR e
o XPP. H um nmero considervel de verses do LPD, sendo o GNUlpr uma das verses que
apresenta menos modificaes com relao verso original. Caso o administrador opte por
utilizar um sistema baseado no LPD, recomendvel que utilize o GNUlpr.

Componentes do LPD
O LPD se refere tanto ao daemon quanto a uma vasta coleo de programas que

compem o sistema de impresso. Seus principais componentes so:


11 lpd: daemon de impresso propriamente dito. Controla tudo o que diz respeito
impresso de um job. Para cada arquivo em fase de impresso, um novo processo
iniciado.
11 lpr: comando de impresso do usurio. Ao receber um pedido de impresso, o lpr
contacta o lpd, criando um novo job de impresso no sistema.
11 lpq: comando que lista os jobs que esto na fila de impresso.
11 lpq: lista os jobs que esto na fila de impresso.
11 lprm: remove um job da fila de impresso.
11 lpc: comando de controle do daemon lpd. Por meio desse comando, o administrador do sistema pode parar, iniciar, reordenar as filas de impresso e tomar outras
medidas administrativas necessrias.
A forma como esses programas se relacionam, conforme o esquema apresentado na Figura 6.1:
1. No momento da inicializao do sistema, o daemon lpd iniciado. Ele fica, ento, aguar-

dando por conexes e gerencia as filas das impressoras.


2. Quando o usurio solicita a impresso de algum arquivo utilizando o comando lpr, este

contacta o lpd atravs da rede e submete os dados do usurio, que contm o arquivo a
ser impresso e as opes selecionadas pelo usurio.
3. Quando a impressora se torna disponvel, o lpd cria um processo lpd filho para realizar a

Administrao de Sistemas Linux

impresso do job.
4. O processo lpd filho executa o(s) filtro(s) apropriados para o job e envia os dados resul-

tantes impressora.
Como j sabido, o LPD foi projetado para ser utilizado em uma poca em que as impressoras eram do tipo matricial e as demandas de impresso eram por arquivos texto.
Pelo esquema mostrado anteriormente, v-se que as necessidades mais complexas de
impresso podem ser atendidas mediante a aplicao de filtros. Para ajudar nesse processo
de filtragem, existem diversos programas, como gs, ppdfilt, ps2ps, mpage e a2ps. A maioria
desses programas faz converses entre diferentes formatos de arquivos. Entretanto, como
se ver, existem alternativas mais eficientes e menos trabalhosas.

130

Protocolo LPD
A RFC 1179 define o protocolo Line Printer Daemon (LPD), criado pelo IETF, que utilizado
pelo servidor LPD e por todos os servidores de impresso de rede utilizados em sistemas
Unix. Esse protocolo utilizado na comunicao entre o servidor e os diversos componentes, como comandos auxiliares e dispositivos. Apesar do protocolo e do servidor de
impresso possurem o mesmo nome, eles no devem ser confundidos.

LPRng
11 Implementao melhorada do LPD.

11 Seu uso recomendado quando o sistema possui muitas impressoras, impressoras


seriais ou impressoras que no possuem suporte ao protocolo LPD.
11 Apresenta facilidades de contabilidade e maior preocupao com a segurana.
11 Utiliza o mesmo modelo de filtros do LPD.
LPRng uma implementao melhorada do LPD, que apresenta preocupao maior com
aspectos de segurana, alm de outras funcionalidades. Apresenta facilidades para a contabilidade de uso do ambiente de impresso, funcionalidade especialmente til quando se
deseja controlar o uso dos recursos de impresso.
LPRng utiliza o mesmo modelo de filtros do LPD, o que pode ser visto como uma facilidade
adicional. Ele torna mais simples a administrao de ambientes mais complexos. O uso do
LPRng recomendado se o sistema possui mais de uma impressora, impressoras seriais ou
qualquer impressora de rede que no possua suporte ao protocolo LPD. Sua maior segurana advm do fato de que nenhum dos seus programas tem o bit SUID estabelecido, alm
de suporte autenticao, utilizando o programa PGP ou o protocolo Kerberos, que trabalham com criptografia de dados.

CUPS
11 Surge como alternativa s diversas implementaes do protocolo LPD.

11 Permite a configurao automtica de clientes a partir da configurao de um nico


servidor.
11 Utiliza o conceito de classes.
11 Faz balanceamento de carga e tolerante a falhas.
11 Foi projetado em torno de um processo central de escalonamento.
J h algum tempo o CUPS se tornou o sistema de impresso padro da maioria das distribuies do Linux. Parte do seu sucesso se deve ao fato de ser uma implementao do (IPP),
vantagens em relao ao velho protocolo LPD. Dentre elas, pode-se destacar:
11 Possui escalonador baseado em um servidor web HTTP 1.1.
11 Possui interface web para configurao e administrao do sistema.
11 Disponibiliza maior nmero de opes de impresso para o usurio.
11 Pode ser feito controle de acesso bastante apurado em uma impressora, baseado em
diretivas Allow e Deny, comuns ao servidor Web Apache.
11 Oferece suporte criptografia e ao servio de proxy.

Captulo 6 - Servio de impresso

um novo padro para impresso baseado no protocolo HTTP, que apresenta uma srie de

131

Antes do lanamento do CUPS, muitos administradores de sistemas ressentiam-se da


dificuldade de estabelecer um sistema de impresso em rede no Linux que funcionasse de
forma simples e confivel. Havia algumas razes para esse problema:
11 As extenses feitas por muitos fabricantes ao protocolo LPD, o que tornava muito difcil a
impresso entre diferentes plataformas, quando no impossvel.
11 O fato de o LPD no possuir um mecanismo de configurao automtica de impressoras.

Vantagens da implementao do IPP:


11 Escalonador baseado em servidor HTTP 1.1.
11 Interface web para administrao e configurao.
11 Maior nmero de opes de impresso.
11 Controle de acesso bastante apurado.
11 Suporte criptografia e ao servio de proxy.
11 Facilidade na configurao para clientes Windows.

Arquitetura

Arquitetura de funcionamento do CUPS:


11 Escalonador.
11 API do CUPS.
11 Comandos BSD/System V.
11 Filtros e imagens do CUPS.
11 Backends.
CUPS suporta balanceamento de carga e tolerncia a falhas com a utilizao de mltiplos

servidores para gerenciar o ambiente de impresso. Ser visto adiante que possvel reunir
mltiplas impressoras de rede em uma nica classe, de forma a permitir que o usurio
possa direcionar o seu job para uma classe e t-lo impresso na primeira impressora disponvel da classe. Como muitos sistemas de impresso, o CUPS projetado em volta de um
processo central de escalonamento, que gerencia os jobs de impresso, processa comandos
administrativos, prov informaes de status das impressoras para programas locais e
remotos e os repassa aos usurios quando necessrio. A Figura 6.2 apresenta a arquitetura
de funcionamento do CUPS.
Figura 6.2
Arquitetura do
CUPS.

Escalonador

Administrao de Sistemas Linux

Arquivos de
congurao

132

Comandos BSD
Comandos system V

API do CUPS

Filtros

Imagens
do CUPS

Backends

Escalonador
11 O escalonador um servidor web que gerencia jobs e impressoras.

11 Utiliza filtros e backends para imprimir os jobs.


11 Tambm pode ser utilizado como fonte de documentao.
O escalonador no gerencia apenas a impresso de jobs; por meio dele possvel gerenciar
impressoras, jobs e classes do sistema. Trata-se de um servidor HTTP que, alm de cuidar das
requisies de impresso feitas por intermdio do protocolo IPP, atua no monitoramento e na
administrao do servio de impresso. O escalonador tambm utiliza filtros e backends apropriados para imprimir os jobs dos usurios. Alm disso, pode ser utilizado como ferramenta
de consulta, j que possui uma farta documentao sobre as funcionalidades do sistema.
API do CUPS
Contm uma srie de funes especficas para enfileiramento de jobs de impresso. Para
tal, ela obtm informaes das impressoras do sistema, acessa recursos utilizando os protocolos HTTP e IPP e manipula arquivos PostScript Printer Description (PPD). O CUPS possui
quatro tipos de arquivos de configurao, que so apresentados na Tabela 6.1.
Arquivos de configurao
Definem as propriedades de controle de acesso ao servidor.
Possuem sintaxe semelhante dos arquivos de configurao do servidor web Apache.

Arquivos de definio
de impressoras e de
classes

Contm informaes sobre as impressoras e as classes


definidas no sistema. Classes de impressoras nada mais so
do que um conjunto de impressoras.

Arquivos de tipos MIME


e de regras de converso

Listam os filtros que, na impresso, permitem que uma


aplicao envie o formato de arquivo adequado ao sistema
de impresso, que ento converte o documento para um
formato que pode ser impresso pelo dispositivo indicado.

Arquivos PPD

Descrevem as caractersticas de todas as impressoras


do sistema. H um arquivo PPD para cada impressora do
sistema.

Comandos BSD/System V
O CUPS pode utilizar tanto os comandos do LPD, quanto os comandos do Line Printer
System, do System V, para imprimir um arquivo ou verificar o status de uma impressora,
mantendo compatibilidade com esses sistemas.
Funcionamento do CUPS:
11 API contm funes especficas para enfileiramento dos jobs.
11 Jobs so filtrados antes de serem impressos.
Arquivos de configurao:
11 Arquivos de configurao do servidor HTTP.
11 Arquivos de definio de impressoras e de classes.
11 Arquivos de tipos MIME e de regras de converso.
11 Arquivos PostScript Printer Description (PPD).

q
Captulo 6 - Servio de impresso

Tabela 6.1
Arquivos de configurao do CUPS.

Arquivos de configurao do servidor HTTP

133

Filtros e imagens do CUPS


Jobs de impresso so filtrados antes de serem enviados a uma impressora. Alguns filtros
fazem a converso dos dados do job para um formato compatvel com o da impressora.
Outros filtros fazem apenas a seleo de pginas e tarefas relacionadas ordenao do
arquivo. Todos os filtros, entretanto, devem suportar um conjunto comum de opes,
incluindo: nome da impressora; identificao do job (job ID); nome do usurio; ttulo do
job; nmero de cpias e opes do job. Existem filtros para os mais diferentes formatos de
arquivos existentes. A biblioteca de imagens do CUPS especialmente til na impresso de
grandes arquivos de imagens. Nesse caso, ela utilizada por filtros de arquivos de imagens
e pelos drivers mais gerais de impressoras, para fazer converses e gerenciamento de cores
e de escala de grandes arquivos de imagens que devem ser impressos.
Backends
Um backend nada mais do que um filtro especial que envia dados de impresso para um
dispositivo ou conexo de rede. Existem backends para conexes paralelas, seriais, USB, IPP,
LPD, SMB, AppSocket (JetDirect) e Netatalk. Os backends tambm so utilizados para determinar os dispositivos disponveis. Na inicializao, cada backend questionado sobre uma
lista de dispositivos que ele suporta e sobre qualquer outra informao que esteja disponvel. Isso permite, por exemplo, que um backend informe ao CUPS que uma impressora HP
Deskjet 860C est conectada porta paralela LPT1.

Exerccio de fixao 1 e
Verificando os dispositivos suportados
Quais so os dispositivos suportados pelo CUPS?

Interface web do CUPS


A interface web do CUPS possibilita o gerenciamento de impressoras, classes e jobs de
modo rpido e intuitivo. Esse captulo ser baseado na administrao do CUPS atravs da
linha de comandos, ficando a cargo do aluno navegar pela interface web para explorar todas
as suas funcionalidades. Na Figura 6.3 mostrada a pgina inicial da interface web do CUPS

Administrao de Sistemas Linux

na verso 1.4.3. A partir dela possvel navegar entre os diversos links e funcionalidades.

134

Gerenciamento de impressoras
Feito atravs da linha de comandos por intermdio da interface web:

http://localhost:631/admin
Classes de impressora:
11 Impressoras so reunidas em grupos.
11 Jobs enviados para uma classe so encaminhados para a primeira impressora livre da
classe.
11 Balanceamento via round-robin adotado.
Classes implcitas:
11 Mltiplos servidores com configuraes idnticas.
11 Sistema tolerante a falhas (redundncia).
11 Criao e remoo de classes e impressoras feitas atravs do comando lpadmin.
11 Cada fila tem um dispositivo e um nome.
11 URI forma de identificao de dispositivo:
22 serial:/dev/ttyS1?baud=115200
22 parallel:/dev/lp1
22 socket://192.168.1.10
Quando um usurio solicita que um arquivo seja impresso em uma determinada classe de
impressora, o sistema direciona esse arquivo para a primeira impressora que se tornar
disponvel e que pertena classe solicitada. feito um esquema de rodzio, utilizando
o escalonamento round-robin para evitar o uso excessivo de apenas um dispositivo.
Nessa mesma linha, o CUPS tambm suporta o conceito de classes implcitas. Com isso,

Captulo 6 - Servio de impresso

Figura 6.3
Interface web
do CUPS.

135

ele permite que se estabeleam mltiplos servidores com configuraes de impressoras


idnticas. Os clientes, ento, passam a enviar seus jobs de impresso para o primeiro
servidor que estiver disponvel. Dessa forma, se um servidor para, os jobs passam a ser
redirecionados para aqueles que esto operacionais, criando um sistema tolerante a falhas.
O comando utilizado para criar classes de impressoras, inserir e remover impressoras nas
classes o lpadmin, que ser visto a seguir.

Comandos
Todas as funcionalidades oferecidas pela interface web do CUPS podem ser executadas
atravs da linha de comandos. A seguir, so apresentados os comandos utilizados na administrao do CUPS, com suas funcionalidades.
Comando lpadmin
O comando lpadmin utilizado para configurar impressoras e classes. Tambm usado
para adicionar uma impressora ao sistema, ou mesmo para modificar as caractersticas de
alguma impressora existente. Tambm pode ser utilizado para configurar classes e estabelecer quotas de impresso para usurios em relao a uma impressora ou restringir seu uso
para determinados usurios. Os exemplos a seguir mostram como adicionar uma impressora remota e como remover do sistema uma impressora chamada Matricial.

# lpadmin p LaserJet E v socket://10.1.3.1 m laserjet.PPD


# lpadmin x Matricial
Comando lpinfo
Lista dispositivos e drivers disponveis e exibe os dispositivos de impresso e as impressoras
disponveis no servidor CUPS.
Comando lpstat
Informa o status do CUPS e exibe informaes sobre jobs, classes e impressoras do sistema.
Comando lpoptions
Utilizado para definir opes de impresso ou exibir os valores padro de cada opo.
Comando disable
Interrompe a impresso de jobs em uma impressora. Um administrador de sistema, muitas
vezes, depara-se com problemas como o mau funcionamento de uma impressora. Nesse
momento, preciso tomar alguma medida para suspender a impresso de jobs at que o
problema seja resolvido. O comando que deve ser utilizado nesse caso o disable, que no
impede que o sistema continue aceitando jobs para serem impressos na impressora que
Administrao de Sistemas Linux

foi desabilitada. Ele apenas no permite que os jobs dessa impressora sejam efetivamente

136

impressos.
Comando enable
Reinicia a impresso de jobs em uma impressora. As impressoras que foram desabilitadas
pelo comando disable continuam aceitando novos pedidos, que so enfileirados e s sero
impressos aps a impressora ser novamente habilitada com o comando enable.

Comando reject
Impede a submisso de jobs para uma impressora. Como foi visto, uma impressora pode ser
desabilitada e continuar aceitando jobs para serem impressos. Em alguns casos, entretanto,
pode ser necessrio fazer com que uma impressora no mais aceite jobs e apenas finalize a
impresso daqueles que esto em sua fila. Uma situao como essa acontece quando necessrio realizar alguma manuteno na impressora e deve-se garantir que ela no estar disponvel para os usurios durante esse perodo. Nesse caso, o comando reject deve ser utilizado.
Comando accept
Faz com que a impressora aceite novamente pedidos de impresso (jobs). Reverte o estado
da impressora que foi modificado pelo comando reject, isto , ela volta a receber jobs de
impresso.

Exerccio de fixao 2 e
Verificando as impressoras definidas no sistema
Qual comando voc utilizaria para verificar as impressoras instaladas no seu computador?

Gerenciamento de clientes
A configurao de clientes Unix-like no CUPS pode ser feita de forma manual ou automtica,
especificando um nico ou mltiplos servidores, ou ainda por intermdio do repasse de
informaes de um cliente para outros clientes.
Configurao manual
11 Executar o comando lpadmin em cada um dos clientes.

11 A operao deve ser repetida para cada dispositivo.


11 Em uma grande rede, o trabalho pode se tornar estafante.
Das vrias formas de se configurar um cliente, a mais trabalhosa, certamente, a configurao manual. Ela exige que o administrador execute, em cada cliente, o comando lpadmin,
informando o servidor de impresso e o nome do dispositivo, por meio de seu URI. Esse
procedimento deve ser repetido para cada impressora que se queira definir no cliente. Em
um ambiente com mltiplas impressoras e um grande nmero de clientes, esse trabalho
pode ser estafante.
Configurao automtica
11 Nada a fazer: impressoras e classes criadas ou removidas do servidor so refletidas

no cliente em um prazo mximo de 30 segundos.

11 Habilitar a diretiva BrowsePoll se a rede estiver segmentada em sub-redes.


11 Torna-se ineficiente quando h clientes e servidores espalhados em vrias sub-redes.
A soluo est na definio de um cliente que faa relay para os outros clientes. CUPS
tambm possibilita a configurao automtica de filas de impresso em clientes que esto
na mesma rede do servidor. Para configurar um cliente, nesse caso, o administrador no
precisa fazer absolutamente nada. Todas as impressoras e classes criadas ou removidas
do servidor so automaticamente atualizadas no cliente em um perodo mximo de
30 segundos. Para tal, o administrador ter de habilitar a diretiva BrowseAddress no

Captulo 6 - Servio de impresso

11 Habilitar a diretiva BrowseAddress no servidor.

137

arquivo de configurao do CUPS no servidor (/etc/cups/cupsd.conf ). So propagados 80


bytes de informao por impressora a cada 30 segundos. Apesar dessa quantidade de
dados ser pequena, em um ambiente com muitos servidores e dispositivos de impresso
os valores padro das diretivas BrowseInterval e BrowseTimeout podem ser alterados
para reduzir esse fluxo de dados.
Outra opo segmentar a rede e, nesse caso, a diretiva BrowsePoll dever ser includa no
arquivo de configurao do CUPS no cliente (/etc/cups/cupsd.conf ), para definir o servidor
que ser consultado pelo cliente. Se for utilizado mais de um servidor e eles estiverem em
sub-redes diferentes, necessrio configurar os clientes para que busquem informaes
nesses servidores, utilizando mltiplas diretivas BrowsePoll, uma por linha, para especificar
cada servidor. Esse esquema pode se tornar ineficiente se existirem clientes e servidores
espalhados em vrias sub-redes.
Vamos supor um cenrio onde exista um servidor em uma sub-rede 1 com o IP 10.1.1.2 e
outro servidor em uma sub-rede 2 com o IP 10.1.2.4. Alm disso, vamos supor que exista
um computador cliente conectado a uma terceira sub-rede, com o endereo IP 10.1.3.101
e tambm conectado s sub-redes 1 e 2. Para esse cliente fazer o repasse de informaes
(relay) para os demais clientes da sub-rede 3, seu arquivo de configurao deve estar configurado da seguinte maneira:

# Fazendo poll nos dois servidores


BrowsePoll <nome_servidor_sub-rede-1>
BrowsePoll <nome_servidor_sub-rede-2>

# Fazendo relay das sub-redes 1 e 2 para a sub-rede 3


BrowseRelay 10.1.1 10.1.3.255
BrowseRelay 10.1.2 10.1.3.255
diretiva BrowseRelay devem ser passados dois parmetros. O primeiro especifica um
endereo fonte e, o segundo, um endereo de broadcast. Assim, quaisquer pacotes vindos
dos servidores de impresso nas sub-redes 1 e 2 sero repassados para o endereo de
broadcast da sub-rede 3.
Clientes Windows
J os clientes que utilizam sistemas Windows no podem aproveitar a facilidade de configurao automtica do CUPS, por falta de compatibilidade. Nesses clientes, as impressoras
tm de ser instaladas manualmente, o que consome grande quantidade de tempo, depen Administrao de Sistemas Linux

dendo do nmero de computadores utilizando sistemas Windows.

138

l
Para contornar essa
deficincia, bem como
limitar a quantidade de
clientes que podem
buscar informaes em
um servidor, o
administrador pode
configur-lo para que
apenas um cliente faa
esse servio e repasse
as informaes para os
demais. possvel
implementar essa
limitao inserindo a
diretiva BrowseRelay
no arquivo de
configurao do CUPS
no servidor.

Roteiro de Atividades 6
Atividade 6.1 Definindo uma impressora local
Instale uma impressora que est hipoteticamente conectada interface paralela e que
possui as mesmas caractersticas da impressora definida na atividade 3. Essa impressora
dever se chamar local.

Atividade 6.2 Testando a impressora


Faa um teste de impresso, imprimindo o arquivo /etc/hosts do seu computador.

Atividade 6.3 Definindo uma impressora remota


Instale manualmente, uma impressora em seu computador. Ela dever ter o nome de global
e estar configurada no computador utilizado pelo instrutor (o nome ou o endereo IP do computador, bem como o modelo da impressora sero informados pelo prprio instrutor).

Atividade 6.4 Definindo quotas de impresso


Estabelea quotas de impresso para a impressora local.

Atividade 6.5 Restringindo o uso de impressoras


Restrinja o uso da impressora local apenas para o usurio root?

Atividade 6.6 Desabilitando a impresso de jobs


Suponha que seja necessrio fazer um pequeno reparo na impressora local.
1. Desabilite a impresso de jobs da impressora local.
2. Utilizando a sua conta pessoal, solicite a impresso de um arquivo.
3. Remova, da fila de impresso, o arquivo cuja impresso foi solicitada no item anterior.
4. Torne a habilitar a impressora para que ela possa novamente imprimir.

Atividade 6.7 Suspendendo a submisso de jobs


Suponha que seja necessrio retirar a impressora local de operao para lev-la assis-

1. Suspenda a submisso de jobs para a impressora global.


2. Torne a habilitar a impressora para receber jobs.

Atividade 6.8 Criando classes de impressoras


Crie uma classe chamada ESR e inclua nela as duas impressoras definidas no seu sistema.

Captulo 6 - Roteiro de Atividades

tncia tcnica.

139

Atividade 6.9 Removendo impressoras


Remova do seu sistema todas as impressoras criadas.

Atividade 6.10 Utilizando a interface web do CUPS


Navegue pela interface web do CUPS e veja como voc conseguiria repetir as atividades
seguintes por intermdio dessa interface.
Atividade 6.3 Definindo uma impressora remota
Atividade 6.5 Restringindo o uso de impressoras
Atividade 6.6 Desabilitando a impresso de jobs
Atividade 6.8 Criando classes de impressoras
Atividade 6.9 Removendo impressoras

Atividade 6.11 Instalando uma impressora no Windows 7


Informe os passos necessrios para a instalao de uma impressora em um cliente que

Administrao de Sistemas Linux

esteja utilizando o sistema operacional Windows 7.

140

7
Conhecer em detalhes o conceito de registro de eventos e as principais solues para
gerenciamento de registros de eventos em sistemas Linux; compreender as principais
solues de anlise de registros de eventos, assim como as recomendaes de
segurana pertinentes.

conceitos

Registro de eventos, sysklogd, rsyslog, syslog-ng, rotacionamento de arquivos de log,


comando logger, servidor de logs e aplicativos para anlise de arquivos de log.

Introduo
11 Registro dos eventos que ocorrem em um sistema.

11 Diretrio padro para armazenamento dos arquivos de log no Linux: /var/log.


11 Contedo de um registro:
22 Data e hora em que ocorreu o evento.
22 Nome do servidor que gerou o evento.
22 Nome do programa que gerou o evento.
11 Mensagem gerada pelo programa.
Todo sistema operacional gera eventos que, na maioria das vezes ocorrem de modo
assncrono e a intervalos irregulares. Por exemplo, um servidor de arquivos gera eventos
como a finalizao de uma escrita em disco, a abertura de um arquivo etc. Muitos desses
eventos possuem um grau de importncia relativamente baixo e sendo assim no precisam ser armazenados. Todas as aes executadas pelas aplicaes que esto ativas em
um sistema Linux podem ser registradas em arquivos, geralmente localizados no diretrio
/var/log. Esses arquivos que armazenam os registros relativos aos eventos gerados pelo
sistema operacional e pelas aplicaes so chamados de arquivos de log. Os arquivos
que armazenam os registros e os tipos de registros que so armazenados podem ser
definidos pelo administrador. Alguns programas, como Apache e Qmail, trabalham com
diversos arquivos de log e para uma melhor organizao armazenam esses arquivos em
subdiretrios dentro do diretrio /var/log. Um arquivo de log contm, normalmente, os
seguintes registros: data e hora em que ocorreu o evento, nome do servidor que gerou o

Captulo 7 - Registro de eventos

objetivos

Registro de eventos

141

evento, nome do programa que gerou o evento e a mensagem emitida pelo programa. Tais
informaes so de extrema importncia para o administrador de sistemas, auxiliando-o
no s no monitoramento das atividades executadas pelos programas, como tambm na
soluo e preveno de incidentes de segurana e falhas de software e hardware. Neste
captulo, veremos como configurar um sistema Linux para armazenar os diversos registros
de eventos gerados, da maneira mais adequada possvel e de acordo com a estratgia
adotada pelo administrador da rede.

Sysklogd
O pacote sysklogd contm os dois daemons responsveis pelo principal servio de gerenciamento de registros de eventos em sistemas Linux. O syslogd, que prov suporte aos registros de eventos gerados pelo sistema operacional e pelas aplicaes, e o klogd, que prov
suporte aos registros de eventos gerados pelo kernel.

Syslogd
11 Prov suporte a registros de eventos do sistema operacional e das aplicaes.

11 Seu arquivo de configurao /etc/syslog.conf controla os registros que sero armazenados pelo syslogd por meio de regras especficas.
11 Ativa o servio de registro de eventos do sistema.
O daemon syslogd responsvel pelo controle dos registros de eventos do sistema operacional e das aplicaes. Ele prov suporte tanto a sockets do Linux quanto a sockets de
internet, o que o torna capaz de trabalhar com registros de eventos gerados localmente
e em servidores remotos. A principal desvantagem do syslogd que ele no criptografa
os dados que transporta, podendo gerar problemas de segurana se os registros forem
armazenados em um servidor remoto, j que estes podem ser facilmente interceptados e
alterados. Veremos que existem outras verses de syslog que implementam criptografia de
dados, e por isso seu uso recomendado.

Arquivo de configurao do syslog


Arquivo /etc/syslog.conf:
11 Possui um formato padro que define trs propriedades bsicas para um registro de
evento:
22 Facilidade especifica o tipo de programa que est gerando o registro.
22 Prioridade especifica o grau de importncia do registro.
22 Ao especifica para onde ser enviado o registro.

Administrao de Sistemas Linux

11 Pode ser especificada mais de uma facilidade com a mesma prioridade:

142

22 auth,authpriv.info/var/log/auth.log
11 Mltiplos seletores podem executar uma ao em comum.

*.*;auth,authpriv.none -/var/log/syslog
O arquivo /etc/syslog.conf controla os registros que sero armazenados pelo syslogd, por
intermdio de regras especficas. Cada linha desse arquivo deve conter, obrigatoriamente,
os campos no formato:

facilidade.prioridade ao

Os campos facilidade e prioridade juntos so chamados de seletor e devem ser separados pelo caractere .. J o campo ao deve ser separado do campo seletor por um ou
mais caracteres de espao ou tabulao. Um mesmo tipo de facilidade pode armazenar seus
registros em arquivos de log diferentes, dependendo do nvel de prioridade do registro, assim
como um mesmo tipo de prioridade pode armazenar seus registros em arquivos de log diferentes, dependendo da facilidade que gerou o registro, como mostram os exemplos abaixo:

auth,authpriv.info /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* /var/log/mail.log
*.crit /var/log/syslog
O caractere , utilizado para especificar mais de uma facilidade com a mesma prioridade e
o caractere ; para especificar mltiplos seletores (facilidade/prioridade) com uma ao em
comum. A seguir veremos, em detalhes, cada um desses campos.
Facilidade
Utilizada para especificar o tipo de programa que est enviando o registro. Mais de uma facilidade pode ser especificada na mesma linha, separadas por vrgulas. Na Tabela 7.1 podem
ser vistas facilidades utilizadas com maior frequncia. Algumas facilidades, como security,
emitem um som de alerta e enviam uma mensagem para o console, como forma de alertar o

Tabela 7.1
Facilidades.

Nome

Facilidade

auth

Programas de autorizao/autenticao de usurios.

authpriv

Registros privativos de programas de autorizao/autenticao


de usurios.

user

Registros genricos de processos de usurios.

cron

Registros do cron.

ftp

Registros de daemons de FTP.

mail

Registros de daemons de e-mail.

kern

Registros do kernel.

security

Sinnimo para a facilidade auth (obsoleta).

syslog

Registros internos gerados pelo syslogd.

daemon

Registros de outros daemons que no possuem facilidades


especficas.

Prioridade
Utilizada para especificar o grau de importncia de um registro. Os tipos de prioridade
esto listados na Tabela 7.2 em ordem decrescente de importncia. As prioridades tambm
podem ser representadas por nmeros que variam de 0 a 7, onde o nmero 0 corresponde

Captulo 7 - Registro de eventos

administrador do sistema.

143

a emerg, o nmero 1 corresponde a alert e assim por diante. Quando uma prioridade
definida em uma regra no arquivo /etc/syslog.conf, as prioridades de maior nvel so automaticamente consideradas. Conjuntos de facilidades e prioridades (seletores) podem ser
agrupados e separados pelo caractere ;.
Prioridade

Grau de importncia

emerg/panic

Registros gerados antes de o sistema travar.

alert

Mensagem que indica um problema que deve ser resolvido imediatamente.

crit

Registros de crticas, como falhas de hardware.

error/err

Registros de erro.

warning /warn

Registros de aviso.

notice

Mensagem que no indica erro, mas deve receber uma ateno


especial.

info

Registros informativos.

debug

Registros de depurao.

none

Indica que nenhuma mensagem da facilidade indicada ser


registrada.

Tabela 7.2
Prioridades.

Ao
Utilizada para especificar o destino que ser dado aos registros. O destino de uma determinada regra definida no arquivo /etc/syslog.conf nem sempre um arquivo armazenado em
disco. A Tabela 7.3 mostra os tipos destinos que podem ser dados a um registro. Nos casos
em que o destino for um arquivo, este deve obrigatoriamente existir. Caso contrrio, ocorrer um erro, pois o syslogd no criar o arquivo automaticamente. importante ressaltar

Administrao de Sistemas Linux

que o caminho completo do arquivo precisa ser especificado.

144

Destino

Ao

usurio

Os registros sero enviados aos usurios especificados.

arquivo

Os registros sero armazenados no arquivo especificado.

@servidor

Os registros sero enviados ao servidor especificado.

Os registros sero enviados ao pipe especificado (utilizado para


filtros com programas externos).

/dev/console

Os registros sero enviados aos terminais definidos no arquivo


/etc/securetty.

Caracteres especiais
Existem alguns caracteres especiais que podem ser utilizados no arquivo /etc/syslog.conf.
A Tabela 7.4 mostra esses caracteres e seus significados.

Tabela 7.3
Aes.

Funo

Todos os nveis de prioridade especificados acima no sero


registrados (operador de negao NOT).

Desativa o sincronismo imediato do arquivo aps a gravao


de um registro.

Quando utilizado no campo seletor, pode abranger todas as


facilidades e/ou prioridades. J no campo ao envia os registros a todos os usurios logados atravs do comando wall.

Utilizado para restringir o envio de registros apenas a um


determinado nvel de prioridade.

Arquivos de log especiais


Arquivo /var/log/lastlog:

11 Registra horrio do ltimo acesso ou tentativa de acesso de cada um dos usurios


do sistema.
Arquivo /var/log/utmp:
11 Registra usurios locais logados no sistema.
Arquivo /var/log/wtmp:
11 Registra detalhes das ltimas sesses abertas e encerradas pelos usurios.
Alguns arquivos de log do sistema apresentam-se no formato binrio, visando aumentar a
segurana dos dados neles armazenados. Dessa forma, torna-se mais complicada a alterao
de um determinado registro presente nesses arquivos. Esses arquivos sero vistos a seguir.
Arquivo /var/log/lastlog
Arquivo binrio que registra o horrio do ltimo acesso (ou tentativa de acesso) feito por
cada um dos usurios do sistema. Seu contedo muda a cada login efetuado e visualizado
toda vez que um determinado usurio efetua login, ou quando os comandos finger ou lastlog
so executados. No Linux, esses registros devem ser explicitamente habilitados, configurando a varivel LASTLOG_ENAB do arquivo /etc/login.defs.
Arquivo /var/log/utmp
Arquivo binrio que registra informaes relacionadas a usurios locais que se encontram
logados no sistema em um determinado momento. Para ter acesso aos dados contidos
nesse arquivo, podem ser utilizados os comandos w, who e finger.
Arquivo /var/log/wtmp
Arquivo binrio que registra informaes sobre as ltimas sesses abertas e encerradas
pelos usurios. Para ter acesso aos dados contidos nesse arquivo necessria a execuo
do comando last. Recomenda-se configurar as permisses de acesso dos trs arquivos
acima para o valor 644, definindo o usurio root como o dono dos arquivos.

Exerccio de fixao 1 e
Exibindo mensagens de eventos nos terminais
O arquivo /etc/syslog.conf controla como e quais eventos gerados pelo sistema operacional e
pelos daemons ativos sero registrados pelo syslogd por meio de regras especficas.

Captulo 7 - Registro de eventos

Tabela 7.4
Caracteres
especiais.

Caracteres especiais

145

1. Configure o syslog de seu sistema para enviar os registros dos eventos gerados pela facili-

dade authpriv para os terminais.


2. Faa login em outro terminal (utilize as teclas Alt+Fx para mudar de terminal) e logo aps

volte novamente para o primeiro terminal. O que aconteceu? Como voc poderia configurar o syslog de seu sistema para que isso no ocorresse?
Aps executar alteraes em seu arquivo de configurao, no se esquea de
reiniciar o syslogd.

Klogd
11 Prov suporte aos registros de eventos gerados pelo kernel.

11 Envia os registros gerados ao syslogd por padro.


11 Pode enviar os registros gerados alternativamente para um arquivo a parte.
11 Seus registros so classificados em nveis de prioridade.
Programa que controla o registro de eventos gerados pelo kernel, monitorando as mensagens geradas e enviando-as, posteriormente, para o programa syslogd. Entretanto, se o
klogd for invocado com a opo -f <arquivo>, este enviar as mensagens geradas pelo kernel
para o arquivo especificado, ao invs de envi-las ao programa syslogd.
No Linux, existem basicamente duas fontes geradoras de registros do kernel: o filesystem
/proc e a interface syscall. Atualmente, as duas foram unificadas, e o klogd responsvel
por determinar a origem pela qual as mensagens de log sero obtidas. O comando klogd
verifica, primeiramente, se o filesystem /proc est montado; se estiver, o arquivo /proc/kmsg
ser utilizado como fonte geradora dos registros de eventos do kernel. Caso contrrio, sero
utilizadas chamadas de sistema para obter essas informaes.
Se um sistema Linux estiver configurado para enviar as mensagens geradas pelo kernel
diretamente ao syslogd, o klogd tem a habilidade de priorizar adequadamente essas mensagens. Na Tabela 7.5 podem ser vistos os nveis de prioridade definidos pelo klogd, com suas

Administrao de Sistemas Linux

respectivas descries.

146

Nvel

Prioridade

Grau de importncia

KERN_EMERG

O sistema est inutilizvel.

KERN_ALERT

Uma ao deve ser tomada imediatamente para


resolver o problema.

KERN_CRIT

Mensagens crticas.

KERN_ERR

Mensagens de erro.

KERN_WARNING

Mensagens de aviso.

KERN_NOTICE

Mensagens informativas com um significado maior.

KERN_INFO

Mensagens informativas.

KERN_DEBUG

Mensagens de depurao.

O klogd possui tambm a habilidade de definir, por meio dos nveis de prioridade, as mensagens que sero enviadas aos terminais definidos no sistema. Normalmente, atribudo aos
terminais o nvel 7 de prioridade. Sendo assim, qualquer mensagem com nvel de prioridade

Tabela 7.5
Prioridades dos
registros gerados
pelo kernel.

menor que 7 enviada aos terminais definidos no sistema. O armazenamento de registros


com nvel de prioridade 7 desnecessrio, j que para situaes de operao normal do
sistema esses registros no so relevantes. O klogd deve ser invocado com a opo -c, para
que as mensagens geradas pelo kernel no sejam enviadas aos terminais definidos no
sistema. possvel definir, tambm, por intermdio da opo -c, os registros dos nveis de
prioridade que sero enviados a esses terminais. No exemplo seguinte, todas as mensagens
geradas pelo kernel, com nvel de prioridade abaixo de 4 sero enviadas aos terminais.

# klogd -c 4

Rsyslog
11 Verso aprimorada do syslog.

11 Integrao com bases de dados.


11 Suporte criptografia de dados.
11 Definio de registros personalizados pelo administrador.
11 Incluso da facilidade e da prioridade nos registros.
O rsyslog uma verso avanada do syslog que oferece uma srie de funcionalidades
extras, com destaque para as seguintes:
11 Armazenamento dos registros em bases de dados MySQL, PostgreSQL etc.;
11 Suporte criptografia de dados utilizando o protocolo TLS sobre TCP (RFC 3195);
11 Definio de registros personalizados pelo administrador;
11 Incluso da facilidade e da prioridade nos registros;
11 Suporte a expresses regulares.
Devido a essas caractersticas, o rsyslog se tornou o pacote padro para gerenciamento de
logs na maioria das distribuies Linux.

Arquivo de configurao do rsyslog


O arquivo /etc/rsyslog.conf controla os registros que sero armazenados pelo rsyslog, por
intermdio de regras especficas, assim como feito no syslog. Alm disso, possvel definir
uma srie de opes especficas do rsyslog. A seguir apresentado um exemplo comentado
do arquivo de configurao do rsyslog:

$ModLoad imuxsock

# Suporte ao registro de eventos locais

$ModLoad imklog

# Suporte ao registro de eventos do kernel

#$ModLoad immark

# Suporte marcao de mensagens

#$ModLoad imudp

# Suporte ao protocolo UDP

#$UDPServerRun 514
#$ModLoad imtcp
#$InputTCPServerRun 514

# Suporte ao protocolo TCP

Captulo 7 - Registro de eventos

# Mdulos

147

# Diretivas Globais
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

# Regras - Mesmo formato do syslog


auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log

Syslog-ng
11 Verso aprimorada do syslog.

11 Pode filtrar registros com base em seu contedo.


11 Possibilita a incluso de assinatura digital nos registros, protegendo-os contra alteraes no autorizadas.
11 Suporte criptografia de dados.
11 Pode executar comandos caso detecte algum padro pr-definido em um registro.
Ferramenta
de relatrios

Administrao de Sistemas Linux

Servidor
syslog-ng

148

Banco de dados
syslog

Mensagem syslog

Figura 7.1
Caractersticas do
syslog-ng.

O syslog-ng (syslog new generation) uma verso aprimorada do syslog, que tem como
principais caractersticas:
11 Possibilidade de filtrar os registros de log com base em seu contedo, por meio do uso de
expresses regulares;
11 Capacidade de armazenar assinaturas digitais para cada registro, facilitando a deteco
de modificaes no autorizadas nos arquivos de log;
11 Possibilidade de permitir o fluxo de registros entre servidores, utilizando qualquer porta
TCP. Alm disso, seu esquema de configurao bastante intuitivo e poderoso;
11 Suporte criptografia de dados, utilizando o programa stunnel.
O syslog-ng pode ser configurado para executar um comando caso detecte um padro em
um registro que case com alguma expresso regular, utilizando a diretiva program().
A execuo automtica de programas deve ser bem planejada, pois pode sobrecarregar o
servidor ou at mesmo causar indisponibilidades, j que um mesmo tipo de registro pode
ser gerado diversas vezes em um pequeno intervalo de tempo e a execuo do programa
associado a este pode ser demorada.
A sintaxe utilizada na configurao do syslog-ng completamente diferente da sintaxe utilizada pelo syslog, sendo baseada em quatro elementos descritos na Tabela 7.6:
Descrio

source

Define a origem dos registros de eventos. Pode ser local ou de um


servidor remoto.

destination

Define o destino dos registros de eventos. Pode ser um arquivo,


script ou servidor de logs.

filter

Define os filtros criados pelo administrador.

log

Diretiva que associa os elementos source, destination e filter, criando


uma ao.

Os elementos source, destination e filter so criados pelo administrador separadamente e posteriormente associados em uma ao representada pela diretiva log.
possvel especificar mais de uma origem para um determinado destino ou mais de um
destino para mensagens de uma determinada origem, numa mesma regra.
Para que o syslog-ng seja definido no sistema como o daemon padro de gerenciamento
de registros de eventos necessrio desinstalar sysklogd ou rsyslog (o que estiver instalado). Alm disso, preciso remover quaisquer configuraes referentes a eles que estejam
associadas ao logrotate. Em seguida, deve ser criado o arquivo /etc/logrotate.d/syslog-ng com
a sintaxe adequada para que os arquivos de log criados pelo syslog-ng sejam rotacionados
de modo correto.

Arquivo de configurao do syslog-ng


O arquivo /etc/syslog-ng/syslog-ng.conf controla os registros que sero armazenados pelo
syslog-ng. Sua sintaxe bem diferente da utilizada no syslog. A seguir, apresentado um
exemplo comentado do arquivo de configurao do syslog-ng:

Captulo 7 - Registro de eventos

Tabela 7.6
Sintaxe do syslog-ng.

Elemento

149

# Configuraes globais
options {
owner(root);
group(root);
perm(0640);
dir_perm(0740);
create_dirs(yes);
use_fqdn(no);
keep_hostname(yes);
use_dns(no);
sync(0);
};

# Seo Source
source src { unix-stream(/dev/log); internal(); };
source kernsrc { file(/proc/kmsg); };

# Seo Destination
destination authlog { file(/var/log/auth.log); };
destination syslog { file(/var/log/syslog); };
destination cron { file(/var/log/cron.log); };
destination daemon { file(/var/log/daemon.log); };
destination kern { file(/var/log/kern.log); };
destination mail { file(/var/log/mail.log); };
destination all { file(/var/log/all.log); };

Administrao de Sistemas Linux

destination debug { file(/var/log/debug); };

150

destination messages { file(/var/log/messages); };


destination console { usertty(root); };

# Seo Filters
filter f_authpriv { facility(auth, authpriv); };

filter f_syslog { not facility(authpriv, mail) and not


match(ppp.*LCP); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kern { facility(kern); };
filter f_mail { facility(mail) and not match (imapd); };
filter f_debug { not facility(auth, authpriv, news, mail) and not
match(ppp.*LCP); };
filter f_messages { level(info..warn) and not facility(auth,
authpriv, mail, news); };
filter f_emergency { level(emerg); };

# Seo Log
log { source(src); filter(f_authpriv); destination(authlog); };
log { source(src); filter(f_syslog); destination(syslog); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_daemon); destination(daemon); };
log { source(kernsrc); filter(f_kern); destination(kern); };
log { source(src); filter(f_mail); destination(mail); };
log { source(src); destination(all); };
log { source(src); filter(f_debug); destination(debug); };
log { source(src); filter(f_messages); destination(messages); };
log { source(src); filter(f_emergency); destination(console); };

Rotacionamento de arquivos de log


O comando logrotate rotaciona, comprime e cria novos arquivos de log do sistema.

O rotacionamento pode ser feito de modo automtico atravs do crontab do sistema.


O rotacionamento dos arquivos de log do sistema feito atravs do comando logrotate, que
a ser utilizados pelo sistema e pelas aplicaes. Opcionalmente, os arquivos de log antigos
podem ser compactados para diminuir a utilizao de espao em disco. Para automatizar
o processo de rotacionamento dos arquivos de log, o logrotate pode ser ativado via crontab
do sistema. A rotao de arquivos de log feita de acordo com o tamanho do arquivo de log
especificado, mas a opo -f pode ser utilizada para forar a rotao de um arquivo.

Captulo 7 - Registro de eventos

basicamente faz cpias dos arquivos de log em uso, criando novos arquivos que passaro

151

Arquivo de configurao do logrotate


O arquivo /etc/logrotate.conf o arquivo de configurao do logrotate. Tem como princi-

pais parmetros:
11 Periodicidade do rotacionamento.
11 Opo de compactar ou no os arquivos antigos.
11 Nmero de cpias de arquivos anteriores que sero mantidas.
11 Opo de criar ou no novos arquivos de log aps rotacionar os antigos.
O diretrio /etc/logrotate.d contm os arquivos de configurao de rotacionamento dos
arquivos de log individuais para cada daemon do sistema.
O arquivo /etc/logrotate.conf possui as regras utilizadas pelo comando logrotate para realizar
o rotacionamento adequado dos arquivos de log. A seguir, apresentado um exemplo
comentado do arquivo de configurao do logrotate:

# Rotaciona os arquivos de log semanalmente


weekly

# Mantm as quatro ltimas cpias dos arquivos de log anteriores


rotate 4

# Erros sero enviados ao usurio root


mail root

# Cria novos arquivos de log, vazios, aps rotacionar os antigos


create

# Compacta os arquivos de log que so rotacionados


compress

# Mantm o primeiro log rotacionado descompactado

Administrao de Sistemas Linux

delaycompress

152

# Diretrio que contm as configuraes para as aplicaes do


sistema
include /etc/logrotate.d
O diretrio /etc/logrotate.d contm opcionalmente os arquivos de configurao de rotacionamento de arquivos de log individuais para cada daemon. No exemplo a seguir temos a
configurao para o named:

#/etc/logrotate.d/named
/var/log/named.log {
missingok
create 0644 named named
postrotate
/bin/kill -HUP `cat /var/run/named/named.pid 2> /dev/null` 2> /
dev/null || true
endscript
}

importante enviar um sinal HUP ao daemon que utiliza o arquivo de log que foi
rotacionado, para que no ocorram problemas aps sua rotao. Isso feito utilizando o parmetro postrotate.

Comando logger
11 Permite o envio de registros aos arquivos de log do sistema por meio da linha

de comando.
11 Utilizado geralmente em shell scripts.
11 Utilizado tambm para testar mudanas no arquivo de configurao do syslogd.
O comando logger permite que uma mensagem seja enviada aos arquivos de log do sistema
por meio da linha de comando. Geralmente utilizado em shell scripts desenvolvidos pelo
administrador do sistema. possvel especificar a facilidade, a prioridade e outros parmetros da mensagem. O comando logger tambm pode ser utilizado para testar mudanas
feitas no arquivo de configurao do syslogd. Considere a hiptese de que o administrador
tenha acrescentado a seguinte linha ao arquivo /etc/syslog.conf:

auth.* /var/log/messages
Por intermdio do comando a seguir, esse administrador pode verificar se a alterao feita
por ele surtiu o efeito esperado:

# logger -p auth.* mensagem de teste


Se a sintaxe da linha inserida no arquivo /etc/syslog.conf estiver correta, a mensagem trans-

Servidor de logs
11 Centraliza os registros de eventos gerados por todos os servidores da rede.

11 Evita que registros de eventos importantes sejam perdidos em caso de invases.


11 Facilita a vida do administrador na apurao de incidentes de segurana.
Um sistema Linux mantm um conjunto de arquivos de log que registram as diversas formas
em que o sistema foi acessado, e podem registrar indcios da passagem de um invasor pelo
sistema. Um invasor experiente, entretanto, pode remover esses indcios antes de sair do

Captulo 7 - Registro de eventos

mitida por meio do comando logger ser gravada no arquivo /var/log/messages.

153

sistema. Uma boa estratgia a ser adotada pelo administrador a instalao de um servidor
dedicado ao armazenamento dos registros de eventos gerados por todos os servidores da
rede. Essa tcnica facilita o gerenciamento, a anlise e a soluo de problemas que ocorram
nos servidores de uma organizao, bem como dificulta a remoo de registros que evidenciem uma suposta invaso.
importante que o administrador de sistemas tenha conscincia de que preciso que
os arquivos de log sejam verificados com frequncia, ou de nada valer a implementao
de um esquema de segurana. Para habilitar o syslogd a receber os registros de eventos
gerados por outros servidores, deve-se inici-lo com a opo -r. Isso pode ser feito editando
o arquivo /etc/init.d/syslog e acrescentando a opo -r na varivel SYSLOGD_OPTIONS, ou
diretamente na linha de comando, caso o syslogd no seja iniciado por intermdio do script
/etc/init.d/syslog. Feita a alterao, o syslogd deve ser reiniciado. A instalao de um servidor
de logs evita que dados importantes sejam perdidos, caso algum servidor da rede seja invadido e tenha seus dados comprometidos.

Matriz do servidor

Log do servidor

Figura 7.2
Servidor de logs.

Host do administrador

Configurando os servidores clientes


O arquivo /etc/syslog.conf dos servidores clientes deve ser alterado para que os registros

de eventos gerados sejam enviados ao servidor de logs. Exemplos:

auth,authpriv.* @servidor_de_logs
cron.*

@servidor_de_logs

mail.*

@servidor_de_logs

O arquivo /etc/syslog.conf dos servidores clientes tambm deve ser modificado para que
os registros de eventos gerados por eles sejam enviados ao servidor de logs. A sintaxe

Administrao de Sistemas Linux

utilizada um sinal de @ seguido do nome do servidor no campo ao de cada linha, para


redirecionar os registros gerados ao servidor de logs. O daemon syslogd dos servidores
clientes deve ser reiniciado para que as alteraes entrem em vigor. A seguir, pode-se ver
um exemplo comentado do arquivo de configurao do syslogd de um servidor cliente, que
direciona seus registros de eventos a um servidor de logs:

# Arquivo /etc/syslog.conf
auth,authpriv.* @servidor_de_logs
cron.* @servidor_de_logs
daemon.* @servidor_de_logs

154

kern.* @servidor_de_logs
mail.* @servidor_de_logs
user.* @servidor_de_logs

Aplicativos para anlise de arquivos de log


11 Auxiliam o administrador na tarefa de analisar arquivos de log.

11 Monitoramento de registros em tempo real.


11 Execuo de aes em resposta a eventos.
11 Existem diversas ferramentas que podem ser integradas aos daemons syslog, rsyslog
e syslog-ng.
Uma vez definida a soluo de gerenciamento de registros de eventos, bem como a arquitetura adotada para armazenar os arquivos de log, preciso definir tambm uma ferramenta
de anlise e tratamento dos eventos em tempo real. Existem ferramentas que executam
esta funo, monitorando os arquivos de log de forma otimizada e executando aes em
resposta a eventos que ocorrem. Diversos tipos de aes podem ser definidos, como por
exemplo: o envio de um e-mail ao administrador; a execuo de um comando ou at mesmo
a incluso de uma nova regra no firewall.
Essas ferramentas so de extrema importncia para o administrador, pois de nada adianta
armazenar os registros de eventos, se no for dado nenhum tipo de tratamento a eles. Em
ambientes com diversos servidores e equipamentos de conectividade, torna-se praticamente impossvel analisar os diversos arquivos de log existentes, em busca de problemas.
A seguir sero apresentadas trs ferramentas de anlise de arquivos de log.

Logwatch
11 Gera relatrios personalizados e os envia por e-mail.

11 Possui suporte criptografia de dados.


11 compatvel com diversas plataformas.
11 Tem interface web para gerenciamento.
Logwatch uma ferramenta de monitoramento e anlise de arquivos de log escrita em
linguagem Perlque gera relatrios personalizados de acordo com a necessidade do administrador e os envia por e-mail. Possui um agente de coleta de dados que pode ser instalado
em diversos tipos de sistemas operacionais, bases de dados, equipamentos de conectividade, appliances etc. Caso no seja possvel instalar o agente, devido a algum problema
de compatibilidade, os dados podem ser coletados atravs do syslog. Alm disso, deve ser
dispositivos da rede. A transferncia de dados entre os diversos agentes e o agente central
toda criptografada, e para diminuir a quantidade de registros os agentes removem os menos
significativos, reduzindo consideravelmente o volume de dados transmitido.
Logwatch processa os dados coletados armazenando-os em uma base de dados que pode
ser consultada atravs de uma interface web, que disponibiliza diversos tipos de relatrios.
Para acessar a interface web, preciso possuir uma conta de usurio nela.

Captulo 7 - Registro de eventos

instalado no servidor de logs um agente para consolidar os dados provenientes dos diversos

155

Arquivo de configurao do Logwatch


O arquivo /etc/logwatch/conf/logwatch.conf possui as regras utilizadas pelo Logwatch para
realizar o monitoramento e a anlise dos arquivos de log. A seguir, apresentado um
exemplo comentado do arquivo de configurao do Logwatch:

# Opes globais
LogDir = /var/log
TmpDir = /tmp
mailer = /usr/bin/mail
MailTo = root
UseMkTemp = Yes
MkTemp = /bin/mktemp

# Define se os relatrios sero enviados para STDOUT o por e-mail


Print = No

# Armazena os relatrios em um arquivo (no manda por e-mail/


STDOUT)
#Save = /tmp/logwatch

# Define se os arquivos de log rotacionados tambm sero analisados


#Archives = Yes
#Range = All

# Define o nvel de detalhamento dos relatrios (Low/Med/High)


Detail = Med

Administrao de Sistemas Linux

# Define os services que sero monitorados


Service = All

# Opo utilizada para que o logwatch analise somente o arquivo


especificado
#LogFile = messages

# Define se somente este servidor ser monitorado pelo logwatch


#HostLimit = Yes

156

Swatch
11 Analisa em tempo real arquivos de log.

11 Executa aes baseadas na deteco de padres.


11 Arquivo de configurao baseado em duas diretivas (watchfor e ignore).
11 Tipos de aes:
22 Impresso de mensagens no console.
22 Emisso de beeps.
22 Execuo de comandos e envio de e-mails.
Simple log watcher (Swatch) uma ferramenta que analisa em tempo real um arquivo de log,
e caso encontre algum padro definido pelo administrador, executa uma ao. Cada arquivo
de log a ser analisado deve ser passado como parmetro na linha de comando do Swatch.
Para evitar problemas de sobrecarga ou indisponibilidade no servidor, o Swatch pode ser
configurado para aguardar um intervalo de tempo entre a execuo de duas ou mais aes
disparadas por um ou mais eventos.

Arquivo de configurao do Swatch


O arquivo de configurao do Swatch o .swatchrc, que fica localizado por padro no diretrio home do usurio swatch. O arquivo .swatchrc possui basicamente duas diretivas:
11 watchfor: contm padres de texto e aes que sero executadas caso o padro seja
detectado;
11 ignore: especifica padres que sero ignorados caso sejam detectados.
A seguir, apresentado um exemplo comentado do arquivo de configurao do Swatch:

# Tentativas de login que falharam


watchfor /INVALID|REPEATED|INCOMPLETE/
echo
bell 3
exec /usr/local/sbin/badloginfinger $0

# Travamentos no sistema
watchfor /(panic)/

bell
mail suporte@dominio

ignore = /.*/

Captulo 7 - Registro de eventos

echo

157

A Tabela 7.7 mostra as aes que podem ser executadas pelo Swatch e suas respectivas
descries:

Ao

Descrio

echo modo

Imprime no console o padro detectado. O modo opcional e pode


especificar a cor e o estilo da fonte.

bell nmero

Emite uma quantidade de beeps indicada pelo nmero aps a ao bell.

exec comando

Executa o comando especificado.

pipe comando

Envia o comando especificado para


outro comando atravs de um pipe.

mail endereo=email,subject=ttulo

Envia um e-mail para um ou mais


endereos.

write usurio1:usurio2

Envia uma mensagem para um


ou mais usurios, utilizando o
comando write.

throttle hora:minuto:segundo

Define o perodo de tempo que ser


aguardado para uma ao relacionada a um padro ser executada
novamente.

Logcheck
11 Analisa arquivos de log.

Tabela 7.7
Aes do Swatch.

11 Anlise baseada na deteco de anomalias.


11 Emisso de relatrios personalizados.
11 Mensagens organizadas em categorias:
22 Active System Attacks.
22 Security Violations.
22 Unusual Activity.
Logcheck uma ferramenta de anlise de arquivos de log e gerao de relatrios. Quando
alguma anomalia (variaes em um padro) detectada, o Logcheck a analisa na tentativa
de identificar alguma intruso ou violao do sistema. As mensagens de e-mail enviadas
pelo Logcheck so organizadas em categorias (Active System Attacks, Security Violations e
Unusual Activity), o que facilita a anlise dos relatrios. Os tipos de mensagens que sero
includos nos relatrios podem ser personalizados pelo administrador atravs dos arquivos
Administrao de Sistemas Linux

e diretrios presentes no diretrio /etc/logcheck. Arquivos e diretrios que contm a palavra

158

ignore em seus nomes armazenam expresses regulares, que no sero gravadas nos
relatrios gerados pelo Logcheck.
Por padro, o Logckeck envia relatrios automaticamente atravs do cron a cada dois
minutos aps as horas cheias (1:02, 2:02 etc.), mas esse padro pode ser alterado a critrio
do administrador no arquivo /etc/cron.d/logcheck.
Os arquivos de log que so monitorados pelo Logcheck so definidos no arquivo
/etc/logcheck/logcheck.logfiles.Cada linha desse arquivo contm o caminho completo de
cada arquivo de log que ser monitorado.

Arquivo de configurao do Logcheck


O arquivo /etc/logcheck/logcheck.conf possui as regras utilizadas pelo Logcheck para realizar
o monitoramento e a anlise dos arquivos de log. A seguir apresentado um exemplo
comentado do arquivo de configurao do Logcheck:

# Define o formato de data nos ttulos dos e-mails enviados


DATE=$(date +%Y-%m-%d %H:%M)

# Define se a mensagem ter cabealho/rodap (header.txt/footer.txt)


INTRO=1

# Define o nvel de filtragem (workstation, server ou paranoid)


REPORTLEVEL=server

# Define os e-mails que recebero os relatrios das anlises


SENDMAILTO=suporte@dominio

# Define o formato do nome do servidor no subject


FQDN=1

# Define se entradas duplicadas sero removidas ou no


SORTUNIQ=0

# Define ser o arquivo cracking.ignore.d ser verificado


SUPPORT_CRACKING_IGNORE=0

# Define o diretrio que contm os arquivos de regras


RULEDIR=/etc/logcheck

SYSLOGSUMMARY=0

# Define o tipo de subject


ATTACKSUBJECT=Attack Alerts
SECURITYSUBJECT=Security Events
EVENTSSUBJECT=System Events

Captulo 7 - Registro de eventos

# Define o comportamento do syslog-summary

159

# Define se o prefixo [logcheck] ser includo ou no no subject


ADDTAG=no

Recomendaes bsicas de segurana


11 Manter os servidores da rede com horrio sincronizado:

22 Um servidor de NTP pode ser utilizado para resolver esse problema.


22 Esse procedimento evita inconsistncias nos horrios dos registros armazenados
nos arquivos de log.
11 Desabilitar qualquer servio que no seja o syslog no servidor de log.
11 O acesso a esse servidor deve ser restringido ao mximo.
11 Deve ser criada uma regra no firewall local do servidor de logs, permitindo o acesso
somente porta 514 UDP (syslogd) desse servidor, e apenas para servidores da rede local.
11 Recomendaes bsicas de segurana:
22 Evitar que o servidor de log possua contas de usurios.
22 Realizar um backup dirio do servidor de logs.
22 Habilitar algum mdulo de segurana no servidor de logs:
33 SELinux.
33 LIDS.
So apresentadas a seguir recomendaes bsicas de segurana que no so obrigatrias,
mas devem ser seguidas pelo administrador de sistemas, nos casos em que ele julgar necessrio, a fim de tornar seus sistemas mais seguros.
3. Manter os relgios de todos os servidores da rede sincronizados por meio do protocolo

Network Time Protocol (NTP), para evitar inconsistncias nos horrios dos registros dos
eventos gerados pelos diversos servidores, facilitando possveis auditorias em casos de
incidentes de segurana.
4. Recompilar o syslogd, modificando o nome e a localizao do arquivo /etc/syslog.conf,

para dificultar possveis tentativas de apagar registros de invases. Para isso, necessrio ter acesso ao cdigo-fonte do sysklogd. A mudana pode ser feita, alterando, no
arquivo syslogd.c, a linha a seguir:

#define _ PATH _ LOGCONF /etc/syslog.conf


5. Instalar um servidor dedicado ao armazenamento de registros de eventos gerados por

todos os servidores da organizao, desativando qualquer outro servio desse servidor.

Administrao de Sistemas Linux

Deve ser criada uma regra, no firewall local do servidor de logs, que permita o trfego

160

de entrada somente para a porta 514 UDP (syslogd) desse servidor, partindo apenas de
servidores da rede local.
6. No criar contas de usurios no servidor de logs.
7. Fazer um backup dirio do servidor de logs para garantir a integridade, a autenticidade

e a disponibilidade dos arquivos de log, pois, se estes dados forem perdidos por algum
motivo, o administrador ficar sem acesso aos registros de eventos de todos os servidores da rede.
8. recomendvel que o servidor de logs utilize mdulos de segurana como SELinux ou LIDS.

SELinux
Security Enhanced Linux (SELinux) um projeto desenvolvido pela National Security Agency
(NSA) do governo dos EUA, que implementa um sistema de controle de acesso chamado
Mandatory Access Control (MAC). O MAC modifica a forma de acesso aos recursos do
sistema, limitando os acessos dos usurios e das aplicaes, deixando a cargo do sistema
operacional o controle de acesso aos recursos de forma mandatria. As polticas impostas
pelo MAC fornecem um nvel de segurana extra contra acessos no autorizados.

LIDS
Linux Intrusion Detection System (LIDS) um patch para o kernel do Linux que adiciona
funcionalidades de segurana como: Mandatory Access Control (MAC); deteco de port
scanners; proteo contra acessos a arquivos e diretrios (inclusive para o usurio root) e
proteo extra para processos, mdulos e interfaces. Com LIDS possvel restringir qualquer tipo de acesso ao sistema; qualquer tentativa de acesso no autorizada em sistemas
protegidos por ele reportada atravs de e-mails e registros nos arquivos de log.

Exerccio de fixao 2 e
Configurao do syslog
Relacione a configurao do syslog com a descrio do destino definido para as mensagens
de erro:
(A)5 *.err

Mensagens vo para o arquivo /destino

(B) 5 *.err

destino

Mensagens vo para a mquina destino

(C) 5 *.err

@destino (

Mensagens vo para o usurio destino

(D) 5 *.err

|/destino (

Mensagens vo para o named pipe /destino

(E) 5 *.err

/destino

Mensagens vo para todos os usurios logados

Exerccio de fixao 3 e
Vantagens do syslog-ng
(

)5 Uso de um programa externo como destino.

)5 Uso de expresses regulares nas regras de filtragem.

)5 Uso de arquivos FIFO como destino das mensagens.

)5 Uso de arquivos locais como fonte de mensagens.

)5 Transporte das mensagens via UDP.

Captulo 7 - Registro de eventos

Sobre as vantagens do syslog-ng sobre o syslog, marque as opes verdadeiras:

161

162

Administrao de Sistemas Linux

Roteiro de Atividades 7
Atividade 7.1 Analisando os arquivos de log do sistema
Nesta atividade, que tambm deve ser feita em dupla, voc acompanhar, em tempo real, os
registros gravados nos arquivos de log. Cada aluno deve executar os passos abaixo em seu
prprio servidor:
1. Configure o syslogd de seu servidor para registrar logins remotos feitos por meio do

daemon sshd, no arquivo /var/log/messages.


2. Crie, em seu servidor, uma conta com senha para o seu colega.
3. Pea ao seu colega para efetuar login no seu servidor utilizando a conta criada no passo

anterior. Utilize o comando tail com a opo -f, para verificar em tempo real os registros
gerados pelo syslog no arquivo /var/log/messages.
4. Faa um script que contabilize o nmero de tentativas de login mal sucedidas atravs do

SSH, listando os IPs de origem e o nmero de tentativas feitas por cada IP.

Atividade 7.2 Analisando os arquivos de log binrios do sistema


Nesta atividade, voc trabalhar com os arquivos de log binrios armazenados no diretrio
/var/log.
1. Verifique quais foram os dois ltimos usurios a efetuar login em seu computador.
2. Como voc poderia verificar as contas existentes em seu computador que nunca efetu-

aram login?
3. Qual a maneira mais fcil de identificar um login remoto efetuado em seu computador?
4. Faa um script que mostre o tempo total que cada usurio ficou logado no sistema utili-

zando as informaes obtidas com o comando last.


Dica: Utilize os comandos paste e bc para fazer a soma das horas e minutos.

Atividade 7.3 Registrando eventos do kernel separadamente


Nesta atividade, voc ir configurar seu sistema, de modo que os eventos gerados pelo
kernel sejam registrados em um arquivo chamado kernel.log, no diretrio /var/log.

2. Finalize os processos correspondentes ao klogd e ao syslogd.


3. Reinicie o syslogd e o klogd por meio da linha de comando, de maneira que o klogd tra-

balhe de forma independente do syslogd, de acordo com o enunciado da atividade.

Captulo 7 - Roteiro de Atividades

1. Verifique se o klogd est enviando seus registros para o syslogd.

163

Atividade 7.4 Rsyslog


1. Configure o servidor de e-mail mailserver1 para enviar seus registros de eventos para o

servidor de logs logserver.


2. Execute o exerccio anterior com um colega, fazendo com que seu computador simule o

servidor mailserver1. Depois inverta os papis com seu colega.

Atividade 7.5 Syslog-ng


1. Configure os elementos source, destination, filter e log de modo que todos os registros

gerados pelo postfix sejam gravados no arquivo /var/log/postfix.log.


2. Reiniciar o syslog-ng para que as alteraes entrem em vigor.

Atividade 7.6 Rotacionando os arquivos de log do sistema


Nesta atividade, voc ir configurar o rotacionamento dos arquivos de log de seu computador com as seguintes opes:
1. Realizar o rotacionamento mensal dos arquivos, mantendo cpia dos dois ltimos

arquivos comprimidos e criando, automaticamente, um novo arquivo vazio aps o rotacionamento.


2. Configurar o logrotate para rotacionar todos os arquivos de log presentes no arquivo

/etc/syslog.conf. No se esquea de executar um comando que reinicie o syslogd, para que


no ocorram problemas aps o rotacionamento.

Atividade 7.7 Utilizando o logger


Nesta atividade, voc ir verificar uma funcionalidade importante do comando logger.
1. Inclua uma nova regra no arquivo /etc/syslog.conf, de modo que qualquer evento gerado

pelo daemon cron seja registrado no arquivo /var/log/cron.


2. Utilize o comando logger para testar se a alterao feita no passo anterior produziu o

efeito esperado.

Atividade 7.8 Armazenando arquivos de log remotamente


Esta atividade deve ser feita em dupla. Nela voc vai configurar seu servidor como um
servidor de logs. Posteriormente, voc ir configur-lo para enviar os registros dos eventos
gerados para um servidor de logs.

Administrao de Sistemas Linux

1. Entre em acordo com o seu colega para que um de vocs configure seu servidor como

164

um servidor de logs e o outro configure o servidor para enviar os registros para o servidor de logs.
2. Quem configurou o servidor para enviar registros para o outro deve efetuar login em um

terminal qualquer de seu servidor e logo aps identificar onde foi registrado esse evento
no servidor de logs.
3. Repita os passos anteriores, invertendo as funes dos servidores utilizados na atividade.
4. Cite trs vantagens obtidas com o uso de um servidor de logs.

Atividade 7.9 Aplicativos para anlise de arquivos de log


1. Descreva passo a passo o que deve ser feito para integrar o Logwatch com o rsyslog.
2. Crie uma regra para o swatch que envie um e-mail de notificao ao administrador

quando falhar alguma tentativa de login atravs do SSH.


3. Habilite o Logcheck para enviar relatrios de 30 em 30 minutos (ex: 1:00, 1:30 etc.).

Atividade 7.10 Recomendaes bsicas de segurana


O que voc faria para aumentar o nvel de segurana em um servidor de logs centralizado?

Captulo 7 - Roteiro de Atividades

Cite duas opes.

165

166

Administrao de Sistemas Linux

8
Compreender os processos de inicializao e de desligamento de um sistema, assim
como as arquiteturas monoltica e modular do kernel.

conceitos

Conceitos de mdulos, arquitetura e processo de configurao e compilao do kernel.

Inicializao do sistema
11 BIOS checa sistema e aciona carregador de primeiro estgio no MBR (512 bytes).

11 Carregador de boot de primeiro estgio dispara o carregador de boot de segundo estgio.


11 Carregador de boot de segundo estgio carrega o kernel na memria.
11 O kernel aciona drivers de dispositivos e dispara o processo init.
11 O init monta as parties e ativa os servios.
Na aviao, dizem que os momentos mais crticos so a decolagem e a aterrissagem. Da
mesma forma, pode-se dizer que a inicializao e o desligamento de um sistema Linux
tambm so os pontos mais crticos da sua operao. Neste captulo veremos que ambos os
processos tm que ser executados de forma correta para garantir o bom funcionamento do
sistema. Durante a inicializao do sistema, vrias mensagens so mostradas na tela. Apesar
de algumas dessas mensagens possurem, primeira vista, certo grau de complexidade,
o processo de inicializao do sistema pode ser visto de forma simples. A inicializao do
sistema pode ser dividida nos seguintes estgios:
11 Basic Input/Output System (BIOS): programa responsvel por controlar os primeiros
passos do processo de boot e por prover a interface de mais baixo nvel para os dispositivos perifricos. Verifica o sistema e d incio ao carregador de boot de primeiro estgio,
localizado no Master Boot Record (MBR) do disco rgido primrio, que representa o
primeiro setor desse dispositivo.
11 Carregador de boot de primeiro estgio: possui apenas 512 bytes e contm instrues,
em cdigo de mquina, para auxiliar o computador no seu processo de inicializao.
Esse cdigo chamado de carregador de boot de primeiro estgio, e sua nica funo
localizar e carregar, na memria do sistema, o carregador de boot de segundo estgio.
Carrega a si mesmo na memria e dispara o carregador de boot de segundo estgio a
partir de uma partio inicializvel.

Captulo 8 - Boot & shutdown e kernel

objetivos

Boot & shutdown e kernel

167

11 Carregador de boot de segundo estgio: sua principal tarefa carregar o kernel do


Linux na memria. Os dois principais carregadores de boot do Linux so o Linux Loader
(LILO) e o Grand Unified Boot Loader (GRUB), que sero vistos a seguir.
11 Iniciando o kernel: o arquivo de imagem do kernel carregado para a memria e os
drivers de dispositivos so carregados pelo kernel, j em execuo. Nessa fase, mensagens so exibidas na tela, indicando o reconhecimento dos dispositivos e a carga de seus
respectivos drivers. O kernel monta a partio raiz, inicialmente, no modo somente
leitura e transfere o controle do processo de boot para o programa /sbin/init.
11 Init: o processo init passa a ser responsvel pela ativao de todos os processos que
implementam os servios configurados no sistema. Ele tambm responsvel por
montar todas as parties listadas no arquivo /etc/fstab. Aps carregar todos os programas, o prompt de login apresentado. O init est sempre em execuo e sua morte
provoca a reinicializao do sistema, ou seja, realizado um shutdown e em seguida, o
sistema inicializado.
A seguir, cada um desses estgios ser apresentado com mais detalhes.

Basic Input/Output System (BIOS)


11 Controla os primeiros passos do processo de boot.

11 Testa o hardware do sistema.


11 Busca por um dispositivo atravs do qual o boot deve ser executado (disquete, CD,
DVD, HD).
11 Realiza carga do programa presente no MBR.
Quando um computador inicializado, a CPU procura, na memria no voltil do sistema,
um programa especial chamado BIOS e o executa. Estamos tomando como base um computador com arquitetura do tipo x86. Outros tipos de computadores acabam utilizando
esquemas similares, como o sistema Alpha, que utiliza o console SRM. Uma vez carregado,
o BIOS executa o Power-On Self Test (POST) que se encarrega de testar todo o hardware do
sistema. Em seguida, o BIOS identifica um dispositivo a partir do qual o sistema deve ser carregado. Geralmente, ele comea verificando os drives de disquete e de CD/DVD em busca de
mdias que tenham algum cdigo de boot do sistema, e em seguida verifica os discos rgidos.
A ordem de verificao dos dispositivos pode ser alterada pelo administrador atravs do
setup do computador. O BIOS, ento, carrega qualquer programa que esteja armazenado no
MBR na memria RAM. Dessa forma, o controle do processo de boot do sistema repassado pelo BIOS para esse programa.

Carregadores de boot (boot loaders)


Administrao de Sistemas Linux

LILO e GRUB:

168

11 Apresentam ao administrador diferentes opes de sistemas operacionais ou verses


de kernel que podem ser utilizadas.
11 Localizam no diretrio /boot o arquivo binrio correspondente ao kernel selecionado.
11 Carregam o initrd na memria.
11 Passam o controle do processo de boot para o kernel.

Ambiente de boot loader

CPU salta para

Sistema Linux

Carrega e inicializa

Aplicaes do espao
de usurio
Kernel Linux

Carregador de boot
Figura 8.1
Carregadores
de boot.

Drivers de dispositivo

Hardware

Como vimos, existem dois tipos de carregadores de boot: os de primeiro estgio e os de


segundo estgio. O carregador de boot de primeiro estgio tem como principal funo carregar o carregador de boot de segundo estgio, que por sua vez tem como principal funo
carregar o kernel em memria. Estando o carregador de boot de segundo estgio carregado
na memria, ele apresenta diferentes opes de sistemas operacionais ou kernels que
foram configurados para dar boot no sistema, oferecendo ao administrador a oportunidade
de selecionar o que ele deseja utilizar no momento. Se o computador possui apenas o Linux
instalado e somente uma verso de kernel, apenas uma opo de boot dever ser exibida.
Aps a seleo do kernel que deve ser utilizado para inicializar o sistema, o carregador
de boot de segundo estgio localiza, no diretrio /boot, o arquivo binrio correspondente
ao kernel selecionado, que geralmente segue o padro /boot/vmlinuz-<verso_do_kernel>.
Em seguida, o carregador de boot carrega, na memria do sistema, uma imagem do disco
chamada de initrd (initial RAM disk), que utilizada pelo kernel para carregar drivers no
compilados, necessrios para dar boot no sistema. Essa tcnica particularmente til em
sistemas que possuem discos SCSI cujo driver foi compilado como um mdulo. Aps a carga
do kernel e do initrd na memria, o carregador de boot de segundo estgio passa o controle
do processo de inicializao do sistema para o kernel. A seguir, so apresentados mais detalhes a respeito dos dois principais carregadores de boot do Linux, LILO e GRUB.

LILO
11 Pioneiro entre os carregadores de boot.

11 Permite a passagem de parmetros para o kernel.


11 Arquivo de configurao: /etc/lilo.conf.
11 Busca informaes de opes de boot no MBR.
11 Demanda atualizao do MBR sempre que o arquivo de configurao for modificado
ou o kernel atualizado.

carga do kernel em memria. O LILO permite que o Linux seja instalado em computadores
com mltiplos sistemas operacionais. Assim, durante a inicializao do sistema, o administrador pode selecionar o sistema operacional a ser carregado. Essa seleo realizada
atravs do rtulo do sistema operacional, previamente definido no arquivo de configurao
do LILO (/etc/lilo.conf ). No entanto, dependendo do disco rgido instalado no sistema, o
kernel pode no reconhec-lo automaticamente. Nesses casos, deve-se informar o rtulo
do Linux seguido pelos parmetros que permitem ao kernel reconhecer o dispositivo. Caso
no seja selecionado nenhum sistema operacional no momento do boot, aquele que estiver
definido como padro ser carregado. Embora possam existir mais de dois sistemas operacionais instalados, o termo dual-boot costuma ser utilizado nesses casos.

Captulo 8 - Boot & shutdown e kernel

Conforme foi dito, o programa LILO um carregador de boot, e como tal responsvel pela

169

O arquivo de configurao do LILO (/etc/ lilo.conf ) contm as informaes que ele utiliza
durante a inicializao do sistema. importante frisar que, aps a edio desse arquivo,
necessrio executar o comando LILO para efetivar as mudanas para a prxima inicializao do sistema. possvel informar parmetros do sistema ao kernel por meio do LILO,
tais como a partio de boot e caractersticas de dispositivos instalados, mas que no esto
sendo automaticamente reconhecidos. Para mais informaes, a pgina de manual do LILO
pode ser consultada.
importante frisar que toda vez que for feita uma atualizao manual do kernel, o comando
LILO deve ser executado para que a informao pertinente seja copiada para o MBR.

GRUB
11 Possui mais recursos e est se tornando o gerenciador de boot padro do Linux.

11 Permite a passagem de parmetros para o kernel.


11 Arquivo de configurao: /boot/grub/grub.cfg.
11 Oferece trs diferentes interfaces com diferentes funcionalidades.
11 Consegue ler diversos tipos de parties como: ext2, ext3, ext4, Reiserfs e NTFS.
11 No demanda atualizao do MBR.
O GRUB um carregador de boot que permite selecionar o sistema operacional ou a verso
do kernel que ser carregada no momento da inicializao. Ele tambm permite a passagem de parmetros para o kernel durante o processo de inicializao. O GRUB consegue
ler diversos tipos de parties, como ext2 e ext3, e portanto pode acessar o seu arquivo de
configurao durante a inicializao do sistema. Esse comportamento torna desnecessria
a transferncia de informaes para o MBR toda vez que mudanas de configuraes forem
realizadas. O GRUB oferece trs diferentes interfaces, descritas a seguir:
11 Menu: quando o GRUB carregado, procura pelo seu arquivo de configurao, e ao
encontr-lo, utiliza-o para construir a lista de menu e exibi-la com as opes de boot
disponveis.
11 Edio de menu: o GRUB possibilita a edio das entradas de seu menu, no momento em
que este exibido durante o boot do sistema. Para isso, basta pressionar-se a tecla e.
11 Linha de comando: se o arquivo de configurao no puder ser encontrado, ou estiver
ilegvel, o GRUB carregar a interface de linha de comando a fim de permitir ao administrador digitar os comandos necessrios para carregar um determinado sistema operacional. Mesmo que o menu do GRUB seja exibido, ainda possvel acessar sua linha
de comandos, pressionando a tecla c. Se tiver sido definida uma senha de acesso no
arquivo de configurao do GRUB, atravs do parmetro password, o administrador
deve utilizar a tecla p para inform-la, antes de ter acesso linha de comandos. Para
Administrao de Sistemas Linux

verificar os comandos disponveis, o administrador deve pressionar duas vezes a tecla

170

TAB, que tambm pode ser utilizada para completar comandos e parmetros, assim
como no shell do Linux. A seguir, so listados alguns dos comandos mais importantes:
22 boot pode ser utilizado para executar o boot a partir de um sistema operacional ou
verso de kernel.
22 chainloader <nome-arquivo> alguns sistemas operacionais como DOS e Windows
armazenam seus gerenciadores de boot na partio em que esto instalados.
atravs deste comando que o GRUB passa o controle do processo de boot para esses
gerenciadores, que por sua vez carregam o sistema operacional selecionado.

22 initrd <nome-arquivo> permite ao administrador especificar uma imagem do disco


a ser utilizada no momento do boot, cuja funcionalidade j foi descrita.
22 kernel <nome-arquivo> <opo-1> <opo-n> especifica o nome do arquivo do
kernel que deve ser utilizado para dar boot no sistema. As opes so repassadas para
o kernel quando ele carregado.
22 root <dispositivo-partio> configura a partio raiz do GRUB para um dispositivo
e partio particular, tal como (hd0,0), e monta a partio de forma que ela possa ser
lida.
22 rootnoverify <dispositivo-partio> faz o mesmo que o comando anterior, mas
no monta a partio.
O GRUB utiliza uma notao diferente da utilizada pelo Linux para referenciar os discos e
parties do sistema. A Tabela 8.1 apresenta uma comparao entre as notaes utilizadas

Tabela 8.1
Comparativo entre
as notaes utilizadas pelo Linux e
pelo GRUB.

Figura 8.2
Seis estgios do
processo de boot
do Linux.

Notao utilizada pelo Linux

Notao utilizada pelo GRUB

/dev/hda e /dev/sda

(hd0)

/dev/hda1 e /dev/sda1

(hd0,0)

/dev/hda2 e /dev/sda2

(hd0,1)

/dev/hdb e /dev/sdb

(hd1)

/dev/hdb1 e /dev/sdb1

(hd1,0)

/dev/hdb2 e /dev/sdb2

(hd1,1)

BIOS

Sitema bsico de Entrada/Sada


executa MBR

MBR

Master Boot Record


executa GRUB

GRUB

Grand Unied Bootloader


executa kernel

Kernel

Kernel
executa /sbin/init

Init

Init
executa programas runlevel

Runlevel

Programas runlevel so
executados de /etc/rc.d/rc*.d/

O arquivo de configurao do GRUB (/boot/ grub/grub.cfg) composto por uma sequncia de


comandos. As configuraes globais da interface de menu geralmente esto localizadas no
incio do arquivo e so seguidas pelas diferentes entradas relativas a cada sistema operacional ou kernel que so exibidas no menu. A seguir, apresentado um exemplo comentado
do arquivo de configurao do GRUB:

default=0

Captulo 8 - Boot & shutdown e kernel

pelo Linux e pelo GRUB.

timeout=5
171

splashimage=(hd0,0)/GRUB/splash.xpm.gz
hiddenmenu
title Fedora (3.2.8-1.fc16.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-3.2.8-1.fc16.x86_64 ro root=LABEL=/ rhgb
quiet
initrd /boot/initrd-3.2.8-1.fc16.x86_64.img
title windows
rootnoverify (hd0,0)
chainloader +1
Ao compilar um novo kernel manualmente, basta ao administrador criar um novo bloco title
nesse arquivo, colocando os parmetros referentes ao novo kernel. O processo de instalao de um novo kernel pode ser feito de forma a automatizar essa tarefa.

Iniciando o kernel
Funes do kernel:

11 Inicializa e configura a memria do computador.


11 Configura os dispositivos, carregando seus drivers.
11 Monta a partio raiz temporariamente no modo somente leitura.
11 Libera memria no utilizada.
11 Chama o processo init.
11 O comando dmesg pode ser utilizado para listar as mensagens apresentadas durante
a inicializao do sistema.
No processo de boot, o kernel se encarrega de inicializar e configurar, primeiramente,
a memria do computador e em seguida, os vrios dispositivos presentes no sistema,
carregando todos os drivers necessrios. Tambm responsvel por montar a partio
raiz, temporariamente, no modo de somente leitura e liberar partes da memria que no
esto sendo utilizadas. Em seguida, chama o processo init, que cuidar de finalizar o boot do
sistema. Durante a inicializao do kernel, enquanto os dispositivos vo sendo detectados
e seus respectivos drivers carregados em memria, vrias mensagens so apresentadas na
tela. Aps a inicializao do sistema, o administrador pode analisar essas mensagens utili-

Administrao de Sistemas Linux

zando o comando dmesg. Essas mensagens so armazenadas no arquivo de log do sistema

172

/var/log/dmesg ou /var/log/messages.

Processo init
Funes do init:
11 Inicializa todos os demais processos que implementam os servios do sistema.
11 Define nveis de execuo (run levels) para o sistema.
11 Identifica os processos que devem estar ativos em cada nvel.
11 Arquivo de configurao (/etc/inittab).

Aps o kernel ser inicializado, o processo init ativado. Esse processo direta ou indiretamente responsvel por inicializar todos os demais processos que implementam os servios
disponveis no sistema. Dentre esses processos, pode ser citado o mingetty, que realiza
o controle de login no sistema. Sempre que uma sesso de trabalho encerrada, o processo init reativa o processo mingetty para aquele console virtual. No Linux, seis processos
mingetty so inicializados para os consoles virtuais, que podem ser acessados atravs da
combinao das teclas Alt+F1 at Alt+F6.
O Linux define nveis de execuo (run levels) que identificam o estado atual do sistema. Cada
nvel possui um propsito especfico, que determina o conjunto de processos que devem estar
ativos. Para identificar os processos que devem ser ativados, o init l o arquivo de configurao /etc/inittab. Nesse arquivo, esto todas as informaes sobre os nveis de execuo e os
processos a serem inicializados. Cada linha desse arquivo indica ao init um comando ou script
que deve ser executado. Dificilmente o administrador precisa alterar o contedo do arquivo
/etc/inittab. Entretanto, indispensvel entender como esse arquivo processado.

Arquivo /etc/inittab
11 Executa o script /etc/rc.d/rc.sysinit.

11 Executa os scripts do diretrio /etc/rc.d/rcX.d, onde X representa o nvel de execuo


atual.
11 Ativa as parties de swap, verifica a consistncia dos sistemas de arquivos e inicializa
o sistema de quotas.
11 Por fim, executa o script S99local (link para /etc/rc.d/rc.local).
11 O comando telinit pode ser utilizado para mudar o nvel de execuo atual.
Cada linha do arquivo /etc/inittab composta por quatro campos separados pelo caractere
:, descritos a seguir:
11 Id identificador nico para a linha, que pode ter qualquer valor;
11 Rstate indica o nvel de execuo do processo disparado pela linha;
11 Action indica como o init deve tratar o processo disparado por essa linha. As principais
opes para esse campo so:
22 initdefault indica o nvel de execuo padro na inicializao;
22 wait espera o trmino do processo antes de ler a prxima linha do arquivo;
22 once executa o processo uma nica vez;
22 respawn reinicia o processo caso ele termine;

A primeira linha do arquivo /etc/inittab define o nvel de execuo padro assumido durante
a inicializao do sistema. O primeiro script que o init executa, presente na segunda linha
do arquivo /etc/inittab, o /etc/rc.d/rc.sysinit. Esse script ativa as parties de swap, verifica
a consistncia dos sistemas de arquivos e inicializa o sistema de quotas. Aps concluir esse
script, o init ativa o script /etc/rc.d/rc, passando como parmetro o valor do nvel de execuo
atual. Esse script ativa todos os scripts que esto armazenados no diretrio /etc/rc.d/rcX.d,
onde X o valor do nvel de execuo atual. Assim, no diretrio /etc/rc.d existem seis diretrios rcX.d diferentes, um para cada nvel de execuo, que contm os scripts que devem
ser executados em cada nvel. Os scripts comeam com as letras K (kill scripts) ou S (start
script), seguidas de um nmero e um nome que identifica o servio controlado pelo script.

Captulo 8 - Boot & shutdown e kernel

11 Process informa o comando ou script a ser executado.

Os kill scripts so responsveis por matar os processos que implementam um determinado


173

servio. Vale ressaltar que eles so ativados, em ordem crescente, baseada nos nmeros
que formam seus nomes. J os start scripts so responsveis por ativar os processos que
implementam um determinado servio. Tambm so ativados em ordem crescente, baseada
nos nmeros que formam seus nomes. No caso dos nveis de execuo 2, 3 e 5, o ltimo
script executado o S99local, um link simblico para o script /etc/rc.d/rc.local. Esse script
pode ser editado pelo administrador para configurar servios adicionais locais que devem
ser executados durante a inicializao do sistema. importante o administrador utilizar esse
script para evitar a ativao manual de servios, todas as vezes que o sistema for iniciado.
Por fim, o processo init ativa os processos mingetty para cada console virtual.
O nvel de execuo pode ser modificado utilizando o comando telinit, sem precisar editar o
arquivo /etc/inittab. O comando telinit requer um nico parmetro, que o nvel de execuo
desejado. A Tabela 8.2 descreve os nveis de execuo do Linux.
Nvel

Descrio

Desliga o sistema.

Modo monousurio.

Modo multiusurio completo.

Modo multiusurio com X-Window System.

Modo multiusurio sem NFS e SMB.

No utilizado.

Reinicializa o sistema.

O arquivo /etc/inittab:
11 Define o nvel de execuo padro do sistema.
11 Indica os processos que devem ser iniciados, finalizados ou reiniciados.
11 Indica que aes tomar quando o sistema entra em um novo nvel de execuo.
11 Formato:
22 id:rstate:action:process
A seguir um exemplo comentado do arquivo /etc/inittab:

# Define o nvel de execuo padro


id:3:initdefault:

Administrao de Sistemas Linux

# Executa o script /etc/rc.d/rc.sysinit

174

si::sysinit:/etc/rc.d/rc.sysinit

# Executa o script /etc/rc.d/rc, passando como parmetro para ele o


nvel de execuo atual.
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1

Tabela 8.2
Run Levels.

l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Habilita a reinicializao do sistema atravs das teclas


CTRL+ALT+DEL.
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# Executa um shutdown caso ocorra uma falha de energia. Para isso,


o daemon powerd deve estar instalado no sistema e o servidor deve
ser alimentado por um no-break.
pf::powerfail:/sbin/shutdown -f -h +2 Power Failure. System
Shutting Down

# Cancela o shutdown anterior caso a energia seja restabelecida.


pr:12345:powerokwait:/sbin/shutdown -c Power Restored. Shutdown
Cancelled

# Executa o processo mingetty nos nveis de execuo 2, 3, 4 e 5.


1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5

# Executa o xdm no nvel de execuo 5


x:5:respawn:/etc/X11/prefdm -nodaemon
Formato: id:rstate:action:process
Figura 8.3
Formato das
linhas do arquivo
/etc/inittab.

comando
como tratar processo
run levels aplicveis
identicador

Captulo 8 - Boot & shutdown e kernel

6:2345:respawn:/sbin/mingetty tty6

175

Algumas distribuies, como o Ubuntu, substituram o inittab pelo daemon upstart, que
controla o processo de inicializao e finalizao de todos os servios do Linux. As configuraes do upstart ficam no diretrio /etc/init. Neste captulo, no estudaremos o upstart, por
no ter se tornado ainda um padro.

Exerccio de fixao 1 e
Modificando o nvel de execuo com o comando telinit
O comando telinit utilizado para modificar o nvel de execuo do sistema durante uma
sesso de trabalho.
1. Como esse comando pode ser utilizado para fazer um shutdown do sistema?
2. Utilize o comando telinit com o parmetro adequado para reinicializar o sistema.

Shutdown
11 Sua funo desligar ou reinicializar o sistema de forma correta.

11 Envio dos sinais TERM e KILL para os processos.


11 Opes de uso:
22 -r reinicializa o sistema.
22 -c cancela uma solicitao prvia de shutdown.
22 -h desliga o sistema.
22 Especificao de tempo e mensagem.
Os comandos reboot, halt, poweroff e telinit tambm podem ser utilizados para reiniciar
ou desligar o sistema.
Se um sistema Linux no desligado corretamente, os buffers de disco, mantidos pelo
kernel em memria, no sero atualizados no disco e, assim, os sistemas de arquivos podem
ser danificados. Em adio, processos podem utilizar mecanismos semelhantes, mantendo
em memria dados relevantes que, periodicamente, so armazenados em disco. Nesses
casos, o desligamento do sistema de forma abrupta provoca a perda desses dados.
O processo de parada do sistema (shutdown) deve ser feito de forma organizada, para evitar
que os sistemas de arquivos sejam corrompidos e os processos em execuo percam dados
relevantes mantidos em memria. O procedimento correto executar o comando shutdown,
que realiza a parada do sistema de modo planejado. Inicialmente, o processo de shutdown
envia o sinal TERM para todos os processos. No entanto, muitos processos no tratam o
sinal TERM ou, quando o fazem, se auto cancelam ao final desse procedimento. O shutdown
assume que esses processos no mantm dados relevantes em memria e finaliza-os,
atravs do envio do sinal KILL. O comando shutdown possui algumas opes que podem ser
Administrao de Sistemas Linux

informadas na linha de comando:

176

11 -r reinicializa o sistema (reboot);


11 -h desliga o sistema (halt);
11 -c cancela uma solicitao prvia de shutdown;
11 time especifica o momento em que o shutdown deve ser executado. Pode ser especificado como tempo relativo (+min) ou absoluto (hh:mm);
11 message envia uma mensagem aos usurios logados no sistema.

Alm do comando shutdown, o administrador pode reinicializar o sistema utilizando o


comando reboot, ou par-lo utilizando os comandos halt ou poweroff. O administrador
tambm pode utilizar o comando telinit para desligar ou reinicializar o sistema. Esse
comando altera o nvel de execuo do sistema e recebe como parmetro um nmero que
pode variar entre 0 e 6 e representa o nvel de execuo para o qual o sistema ser chaveado. Sendo a parada e a reinicializao do sistema representadas pelos nveis de execuo
0 e 6, respectivamente, o administrador pode utilizar o comando telinit passando como
parmetro os nmeros 0 ou 6 para desligar ou reinicializar o sistema, respectivamente.

Exerccio de fixao 2 e
Desligando o sistema com o comando shutdown
O comando shutdown normalmente utilizado quando se quer fazer uma parada programada do sistema. Aps inicializar o sistema e fazer o login com a conta root, execute as
atividades a seguir:
1. Utilizando o comando shutdown, programe a parada do sistema de modo que ela ocorra

dois minutos aps a execuo do comando.


2. Cancele o shutdown programado na atividade acima, antes que ele ocorra.
3. Programe uma nova parada no sistema, de modo que ela ocorra um minuto aps a exe-

cuo do comando, enviando a mensagem Ser executada uma parada no sistema para
manuteno daqui a um minuto. Por favor, salve seus dados e se deslogue do sistema.
4. Verifique se a mensagem de shutdown apareceu no seu terminal e deixe o sistema com-

pletar a operao normalmente.

Arquitetura do kernel
11 Responsvel por reconhecer dispositivos.

11 Pode ser configurado para otimizar o uso da memria e melhorar o desempenho


do sistema.
11 Deve ser compilado aps qualquer alterao de configurao.
11 Conceito de mdulos:
22 Carga de drivers sob demanda.
22 Kernel monoltico com componentes modulares.
O kernel responsvel por reconhecer os dispositivos instalados no sistema e carregar os
drivers desses dispositivos, para que funcionem adequadamente. Ele pode ser configurado
mizando o uso de memria e melhorando o desempenho do sistema. Para isso, o administrador deve definir os dispositivos e funcionalidades que devem ser habilitados ou no e
compilar o kernel para que as alteraes entrem em vigor. A partir da verso 2.0 do kernel,
o conceito de mdulos foi introduzido, permitindo a carga de drivers sob demanda. Assim,
durante a inicializao do sistema, o kernel pode carregar apenas os drivers dos dispositivos
detectados. O tamanho do kernel depende do nmero de componentes selecionados, e
por isso recomendado que ele s oferea suporte aos dispositivos instalados no sistema.
Por exemplo, se o computador no possui placas de som, no h necessidade de habilitar
drivers de placas de som no kernel. A incluso de drivers desnecessrios somente torna o
kernel maior e mais lento.

Captulo 8 - Boot & shutdown e kernel

de tal forma que suporte apenas os dispositivos efetivamente instalados no sistema, oti-

177

Kernel monoltico
11 Composto por um grande e nico bloco de cdigo.

11 Carrega estaticamente os drivers de dispositivo definidos.


11 Ocupa mais espao da memria, uma vez que os drivers de todos os dispositivos configurados so carregados, independentemente de estarem instalados no sistema.
11 Utilizado em sistemas operacionais como Linux, FreeBSD e verses antigas do
Windows (95, 98, ME).
Como vimos, o kernel do Linux possui uma arquitetura monoltica, sendo composto por
um grande e nico bloco de cdigo. O kernel monoltico carrega estaticamente seus componentes, independentemente de estarem instalados no sistema, e por isso ocupa mais
espao em memria. comum carregar diversos drivers para uma determinada classe de
dispositivo, deixando para o kernel a responsabilidade de selecionar o driver adequado
durante a inicializao. Nesse caso, os demais drivers ainda so mantidos em memria.
O kernel monoltico utilizado em sistemas operacionais como Linux e FreeBSD (verses
antigas) e em algumas verses do Windows (95, 98, ME).

Kernel modular ou hbrido


11 Carrega dinamicamente os drivers de dispositivo (mdulos) detectados na iniciali-

zao do sistema.
11 Ocupa menos espao em memria.
11 Os mdulos so carregados sob demanda e podem ser removidos da memria aps
um intervalo de inatividade.
11 Utilizado em sistemas operacionais como Linux e FreeBSD.
O conceito de mdulos foi introduzido no Linux com o objetivo de otimizar o uso da
memria, j que os mdulos s so carregados em memria quando necessrio. Alm
disso, o cdigo do kernel se torna menor quando os componentes do sistema so compilados como mdulos. Esses mdulos so geralmente drivers de dispositivos e podem ser
carregados em memria dinamicamente quando forem solicitados por algum dispositivo.
Assim, podemos manter no mesmo kernel componentes permanentemente habilitados de
forma esttica e componentes dinamicamente configurados como mdulos. Os mdulos,
apesar de no fazerem parte do mesmo cdigo do kernel, so executados em seu espao
de memria (kernel-space). Dessa forma, mesmo oferecendo suporte a mdulos, o kernel
monoltico continua sendo nico e centralizado. Os mdulos podem ser removidos da
memria aps um intervalo de tempo de inatividade.

Administrao de Sistemas Linux

Mdulos do kernel

178

11 So carregados dinamicamente e sob demanda em memria.

11 No fazem parte do cdigo do kernel, mas so executados no kernel-space.


11 Localizados em categorias no diretrio /lib/modules/versao_do_kernel.
11 Arquivo /etc/modules relao de mdulos que devem ser carregados durante a
inicializao do sistema.
So pequenos pedaos do kernel que so compilados e instalados de forma independente.
Os mdulos do kernel ficam armazenados em subdiretrios localizados no diretrio
/lib/modules/versao_do_kernel, que so divididos em categorias como: drivers, net, sound etc.

Os arquivos que representam cada mdulo possuem uma nomenclatura caracterstica


que termina sempre com .ko. O arquivo /etc/modules possui os mdulos que devem ser
carregados durante a inicializao do sistema e mantidos carregados sempre que o sistema
estiver em execuo.
Comandos para gerenciar mdulos:

11 kmod carrega em memria mdulos automaticamente sob demanda.


11 modprobe carrega ou remove da memria manualmente um mdulo e suas dependncias.
11 insmod carrega em memria um mdulo, mas no carrega suas dependncias.
11 rmmod remove um mdulo da memria.
11 lsmod lista os mdulos carregados em memria.
11 depmod verifica dependncias entre mdulos durante a inicializao do sistema.
11 modconf configura um mdulo.
11 modinfo exibe informaes sobre um mdulo.
A seguir sero apresentados os principais comandos para gerenciar os mdulos do kernel.
11 kmod: utilizado para carregar os mdulos do kernel automaticamente quando solicitados por algum processo ou dispositivo. O kmod executado como daemon e fica monitorando o sistema de modo a ativar algum mdulo quando necessrio.
11 modprobe: utilizado para carregar ou remover manualmente um mdulo do kernel e
suas dependncias.
11 insmod: utilizado para carregar um mdulo do kernel manualmente. importante frisar
que o comando insmod no carrega as dependncias do mdulo que est sendo carregado.
11 rmmod: utilizado para remover um mdulo do kernel carregado em memria.
11 lsmod: utilizado para listar os mdulos do kernel carregados em memria. So exibidos
o nome do mdulo, seu tamanho e o programa que est utilizando o mdulo. O comando
lsmod utiliza as informaes presentes no arquivo /proc/modules para exibir sua sada.
11 depmod: utilizado durante a inicializao do sistema para verificar se existe alguma
dependncia entre os mdulos do kernel, de modo que aps a inicializao todas as
dependncias estejam resolvidas.
11 modconf: utilizado para configurar mdulos atravs de uma interface baseada em
menus. O comando modconf possibilita a passagem de parmetros de configurao para
um mdulo, como IRQ e DMA.

zao em disco, tipo de licena, dependncias, parmetros etc.


O processo de configurao e compilao do kernel realizado em vrias etapas que sero
descritas em detalhes a seguir.

Configurando os componentes do kernel


11 Cdigo-fonte armazenado no diretrio /usr/src/linux.
11 Arquivo /usr/src/linux/.config:
22 Variveis que representam os componentes do kernel.
22 Pode ser alterado atravs de um editor de textos como vi e emacs.

Captulo 8 - Boot & shutdown e kernel

11 modinfo: utilizado para exibir informaes a respeito de um mdulo, como sua locali-

22 Tambm pode ser alterado atravs do comando make


(make config, make menuconfig ou make xconfig).

179

O cdigo-fonte do kernel fica localizado por padro no diretrio /usr/src/linux, que apenas
um link simblico para o diretrio /usr/src/linux-x.y.z, onde x.y.z indica a verso do kernel.
Nesse diretrio, o arquivo .config contm as informaes sobre a configurao dos componentes do kernel. Este arquivo possui diversas variveis que definem se um determinado
componente ser esttico, quando o valor da varivel y, ou modular quando o valor da
varivel m. Um componente pode ser desabilitado se a varivel que o representa estiver
comentada. O arquivo /usr/src/linux/.config pode ser modificado diretamente atravs de um
editor de texto. No entanto, o comando make pode ser utilizado para alterar o arquivo .config
simplificando a configurao dos componentes do kernel. O comando make pode ser utilizado de trs formas para configurar o kernel. A primeira delas utilizando o target config,
conforme mostrado a seguir:

# make config
Esse comando executa, em modo texto, um script que solicita a configurao de cada componente do kernel. Os componentes so apresentados linha a linha, obrigando o administrador a configurar todos eles, um de cada vez. O segundo mtodo para configurar o kernel
atravs do target menuconfig, conforme apresentado a seguir:

# make menuconfig
Esse comando executa, ainda em modo texto, um script baseado em menus, que permite
ao administrador configurar os componentes do kernel. Os componentes so apresentados
em menus divididos por categorias e podem ser selecionados de acordo com a necessidade
do administrador. Os componentes podem ser includos como mdulos ou integrados ao
kernel, ou ainda excludos, de acordo com a legenda apresentada na interface. Assim, como
no mtodo anterior, esse mtodo no requer a existncia de um ambiente grfico. Por fim,
um terceiro mtodo para configurar o kernel atravs do target xconfig, conforme apresentado a seguir:

# make xconfig
Esse mtodo baseia-se no ambiente grfico X-Window System, tornando bastante intuitiva
a configurao dos componentes. Se o administrador possui um ambiente grfico instalado
no seu sistema, esse o mtodo mais indicado para se configurar o kernel. Nele, os componentes so listados em diferentes nveis de menu e podem ser selecionados atravs do
mouse. Os componentes podem ser includos como mdulos ou integrados ao kernel, ou
ainda excludos, de acordo com a legenda apresentada na interface. Aps a configurao
dos componentes, deve-se clicar no boto Save and Exit para criar ou atualizar o arquivo de
configurao /usr/src/linux/.config e sair do programa de configurao do kernel.

Administrao de Sistemas Linux

Opes de componentes

180

11 Enable loadable module support.


11 General setup.
11 Character devices.
11 Block devices.
11 Networking options.
11 SCSI device support.
11 Network device support.
11 Filesystems.

Existem diversos componentes que podem ser configurados no kernel. Nos mtodos
make menuconfig e make xconfig, a opo help pode ser utilizada para mostrar detalhes
sobre o significado de cada componente. A seguir, sero comentadas apenas as principais
opes de componentes, organizadas de acordo com os menus mostrados nos mtodos
make menuconfig e make xconfig.
11 Enable loadable module support: permite a configurao de caractersticas dos
mdulos e habilita a utilizao de componentes modulares no kernel. Se essa opo for
desabilitada, no ser possvel habilitar componentes como mdulos.
11 General setup: o conjunto de opes apresentado permite configurar componentes de
baixo nvel. Por exemplo, a opo Networking support habilita a configurao dos mdulos
de rede, e a opo Bus options inclui os mdulos que permitem ao kernel funcionar em
plataformas com barramento PCI.
11 Character devices: as opes disponveis permitem configurar suporte a terminais virtuais, portas seriais, portas paralelas etc.
11 Block devices: as opes apresentadas permitem a configurao de diferentes tipos de
discos rgidos, CD-ROMs, unidades de fita magntica etc.
11 Networking options: o conjunto de opes est relacionado com a habilitao de protocolos de redes e suas funcionalidades. Por exemplo, as opes TCP/IP networking e The
IPX protocol habilitam a famlia de protocolos TCP/IP e o protocolo IPX de redes Novell,
respectivamente. Para a famlia de protocolos TCP/IP, possvel habilitar funcionalidades
como multicast e roteamento avanado, entre outras.
11 SCSI device support: as opes apresentadas permitem a configurao de diferentes
tipos de dispositivos SCSI, como discos rgidos, CD-ROMs e unidades de fita magntica.
11 Network device support: permite habilitar suporte a diversas tecnologias de rede como
Ethernet, WLAN, PPP, WiMAX, FDDI, ATM, Fibre Channel etc.
11 Filesystems: o conjunto de opes permite a configurao do sistema de quotas e o
suporte aos diferentes tipos de filesystems (ext2, ext3, ext4, Raiserfs, XFS, NTFS etc).

Compilando o kernel
11 preciso ir ao diretrio /usr/src/Linux.

11 Comandos para compilao:


22 # make clean
22 # make bzImage
11 Compilao e instalao dos mdulos:
22 # make modules_install
Aps configurar os componentes do kernel, o administrador deve compil-lo para que as
alteraes possam ser efetivadas. Para compilar o kernel, preciso manter como diretrio
corrente o /usr/src/linux e em seguida executar os comandos:

# make clean
# make bzImage
O comando make clean remove arquivos existentes, decorrentes de compilaes anteriores

Captulo 8 - Boot & shutdown e kernel

22 # make modules

181

do kernel. J o comando make bzImage gera a imagem do kernel comprimida no arquivo


/usr/src/linux/arch/i386/boot/bzImage. O comando abaixo tambm pode ser utilizado para
compilar o kernel, s que nesse caso a imagem criada tambm armazenada em um disquete de boot, que pode ser utilizado para testar o novo kernel.

# make bzdisk
Em caso de falha na inicializao com o novo kernel, utilizando o disquete de boot, basta
retir-lo e reinicializar o sistema.

Componentes modulares
Se o novo kernel tem componentes modulares em sua configurao, o administrador
precisa compilar e instalar esses mdulos utilizando os comandos make modules e make
modules_install, respectivamente.

# make modules
# make modules_install
O tempo gasto no processo de compilao do kernel varia de acordo com o hardware
utilizado e geralmente no dura mais do que alguns minutos. importante ressaltar que
a incluso de novos componentes modulares em um kernel operacional no requer a sua
compilao. O administrador precisa apenas definir a configurao dos componentes utilizando os comandos make menuconfig ou make xconfig, e em seguida, executar os comandos
make modules e make modules_install.

Instalando o kernel
11 # make install

22 Ativa script /usr/src/linux/arch/x86/boot/install.sh.


22 Copia imagem do novo kernel e arquivos associados.
11 # mkinitramfs 3.2.8 -o/boot/initrd.img-3.2.8
22 Cria a imagem initrd no diretrio /boot.
11 O arquivo de configurao do gerenciador de boot deve ser atualizado com as
novas imagens.
A instalao do novo kernel feita com o comando make install. At certo tempo atrs, cabia
ao administrador fazer os arranjos finais para a instalao do novo kernel. Em primeiro lugar,
ele deveria copiar o arquivo vmlinuz, armazenado no diretrio /usr/src/linux/arch/i386/boot,
para o diretrio /boot, colocando no arquivo um nome diferente daquele do kernel original.
Por exemplo, supondo que o nome do arquivo do kernel original fosse vmlinuz-3.2.8, o nome
Administrao de Sistemas Linux

do arquivo do novo kernel poderia ser vmlinuz-3.2.8.new. Alm disso, ele teria que fazer as

182

modificaes necessrias no arquivo de configurao do carregador de boot. Nas verses


mais recentes do Linux, no entanto, suficiente a execuo do comando:

# make install
Esse comando executa o script /usr/src/linux/arch/x86/boot/install.sh, que copia a imagem
do novo kernel e os arquivos associados para o diretrio indicado, geralmente /boot. Em
seguida, preciso gerar a imagem initrd utilizando o comando:

# mkinitramfs 3.2.8 -o /boot/initrd.img-3.2.8

Em outras distribuies, a imagem initrd pode ser gerada com o comando mkinitrd. Aps isso,
o arquivo de configurao do gerenciador de boot deve ser atualizado com as novas imagens.

Habilitando o kernel
Checagem da instalao por parte do administrador:

11 LILO: /etc/lilo.conf.
11 GRUB: /boot/grub/grub.cfg.
Manuteno do kernel original para se proteger de erros. Se o carregador de boot for o
LILO, necessrio atualizar o MBR, atravs da execuo do comando lilo v.
Embora os comandos executados no passo anterior j tratem de fazer as configuraes
necessrias para o sistema inicializar utilizando o novo kernel gerado, importante que o
administrador se certifique de que as modificaes foram feitas de forma correta. Na instalao de um novo kernel, interessante que o original seja mantido como proteo contra
possveis erros que possam ocorrer durante a inicializao com o novo kernel. Essa proteo
pode ser obtida na configurao do seu carregador de boot.
Apresentamos a seguir os arquivos de configurao do LILO e do GRUB, antes e aps a instalao de um novo kernel. Assim, consideramos que o arquivo /etc/lilo.conf possui, originalmente, o seguinte contedo:

prompt
timeout=50
default=Linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
image=/boot/vmlinuz-3.2.8
label=Linux
initrd=/boot/initrd-3.2.8.img

append=root=LABEL=/
As cinco ltimas linhas formam a seo associada verso original do kernel, que utiliza o
arquivo vmlinuz-3.2.8 e possui o rtulo Linux. Esse rtulo exibido durante a inicializao
do sistema para que o administrador possa informar ao LILO o sistema operacional que
deve ser ativado. Aps a instalao, o administrador deve checar se foi includa uma nova
seo ao final do arquivo para descrever o novo kernel, conforme mostrado a seguir:

prompt
timeout=50

Captulo 8 - Boot & shutdown e kernel

read-only

183

default=Linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
# Kernel novo
image=/boot/vmlinuz-3.2.8custom
label=Linux-3.2.8custom
initrd=/boot/initrd-3.2.8custom.img
read-only
append=root=LABEL=/
# Kernel antigo
image=/boot/vmlinuz-3.2.8
label=Linux
initrd=/boot/initrd-3.2.8.img
read-only
append=root=LABEL=/
Note que foi criada uma nova entrada no arquivo, mas foi mantida a verso antiga do kernel
como padro do sistema. Isso permite que o administrador teste a nova verso e s a defina
como padro aps verificar o seu funcionamento. H duas formas de se alterar a verso
padro: a primeira delas modificando o valor da varivel default para o label do novo
kernel e a segunda trocar o valor da varivel label dos dois kernels, um pelo outro. Em
seguida, necessrio atualizar o LILO executando o comando seguinte:

# lilo v
No caso do GRUB, vamos assumir que o arquivo de configurao, originalmente, tivesse o
seguinte contedo:

Administrao de Sistemas Linux

default=0
timeout=30
splashimage=(hd0,0)/GRUB/splash.xpm.gz
title Red Hat Linux
root (hd0,0)
kernel /boot/vmlinuz-3.2.8 ro root=/dev/hda3
initrd /boot/initrd-3.2.8.img
Aps a instalao do novo kernel, o arquivo deve ficar com o seguinte contedo:
184

default=1
timeout=30
splashimage=(hd0,0)/GRUB/splash.xpm.gz
title Red Hat Linux (custom)
root (hd0,0)
kernel /boot/vmlinuz-3.2.8custom ro root=/dev/hda3
initrd /boot/initrd-3.2.8custom.img
title Red Hat Linux
root (hd0,0)
kernel /boot/vmlinuz-3.2.8 ro root=/dev/hda3
initrd /boot/initrd-3.2.8.img
Novamente, o script cria uma entrada para o novo kernel, mas no altera o kernel padro.
Entretanto, diferente do LILO, no preciso executar nenhum comando aps alterar seu
arquivo de configurao.

Testando o kernel
11 Reinicializar o sistema utilizando o novo kernel.

11 Em caso de problemas:
22 Verificar se o LILO foi atualizado com o comando lilo -v.
22 Reativar kernel antigo.
11 Se tudo estiver certo:
22 Remover entrada do antigo kernel do arquivo de configurao do carregador de boot.
22 Remover a imagem do antigo kernel e a imagem antiga initrd.
Aps as devidas verificaes, o sistema pode ser reinicializado utilizando o novo kernel.
Se o sistema no inicializar ou apresentar problemas enquanto estiver operacional, o
administrador poder reinici-lo com o kernel antigo, selecionando-o durante a inicializao. No momento em que o novo kernel mostrar-se estvel, basta remover a seo
do arquivo /etc/lilo.conf ou /boot/grub/grub.cfg associada ao kernel antigo e remover sua

Captulo 8 - Boot & shutdown e kernel

imagem do diretrio /boot.

185

186

Administrao de Sistemas Linux

Roteiro de Atividades 8
Atividade 8.1 Usando dmesg para visualizar as mensagens do boot
Utilize o comando dmesg para listar novamente as mensagens que o Linux apresentou na
tela durante o processo de boot do sistema. A partir de que etapa do boot as informaes
passaram a ser registradas?

Atividade 8.2 Alterando o nvel de execuo do sistema


O comando init utilizado para inicializar o sistema em diferentes nveis de execuo (run
levels). O nvel de execuo de um sistema determinado no arquivo de configurao do init.
1. Qual o nvel de execuo padro do sistema?
2. Como deveria ser a primeira linha do arquivo /etc/inittab para que o sistema iniciasse em

modo monousurio?
3. Chaveie o sistema para o modo monousurio.
4. Explique o processo pelo qual o sistema passou do modo multiusurio para o modo

monousurio.
5. Verifique os processos que esto em execuo no sistema neste momento.
6. Retorne para o modo multiusurio e torne a verificar os processos em execuo. Cite pelo

menos trs que no estavam ativos quando o sistema se encontrava no modo monousurio.

Atividade 8.3 Definindo opes de boot do sistema


Durante uma operao de boot, o Linux fica particularmente vulnervel, permitindo que
um usurio inescrupuloso possa utilizar um disquete de boot para ganhar acesso conta
root, montar o disco rgido e editar o arquivo /etc/passwd. Para evitar isso em um computador disponvel para uso pblico, voc precisa impedir que o boot possa ser dado a partir
da unidade de disquete e que o computador possa ser reiniciado com o uso das teclas
CTRL+ALT+DEL. Descreva como isso pode ser feito.

No primeiro caso, a soluo consiste em direcionar o boot sempre para o disco

Atividade 8.4 Configurando e compilando o kernel


A reconfigurao do kernel necessria quando o sistema precisa ser adaptado para atender
a necessidades especficas. Apesar de no ser uma operao rotineira, importante entender
o procedimento de reconfigurao e, principalmente, os cuidados que devem cercar esse tipo
de operao. A ttulo de exerccio, faremos a modificao de um parmetro do kernel:
1. Antes de iniciar essa atividade, verifique se os arquivos fonte do kernel esto mesmo

instalados no sistema.
2. Abra o configurador grfico do kernel (xconfig).

Captulo 8 - Roteiro de Atividades

rgido. No segundo caso, preciso alterar o arquivo /etc/inittab.

187

3. Em seguida, configure a opo de suporte ao protocolo IPX (The IPX Protocol), localizada

em Networking Support/Networking Options. Defina esta opo de forma que ela fique
integrada ao kernel, e no como um mdulo.
4. Salve as modificaes feitas e saia do configurador. Compile o kernel tomando todas as

medidas de segurana necessrias. Releia a teoria para obter detalhes sobre como compilar o kernel.
5. Enquanto voc espera pelo trmino da compilao, leia a parte de procedimentos opera-

cionais que trata do livro de ocorrncias do sistema. Por que importante registrar nesse
livro esta compilao do kernel?
6. Instale o novo kernel e verifique se o arquivo de configurao do carregador de boot

utilizado foi configurado corretamente.


7. Modifique o nome dado para o kernel para identific-lo segundo a modificao feita, ou

seja, acrescentando o nome IPX, por exemplo.


8. Reinicie o computador com o kernel novo e verifique se a configurao ficou correta.

Se o carregador de boot for o LILO, o comando lilo -v deve ser executado antes de
reiniciar o sistema.
9. Reinicie novamente o computador com o kernel antigo.

Como administrador de sistemas, voc deve acostumar-se a planejar seus procedimentos,


pensando sempre no pior caso. Portanto, no se esquea de salvar uma cpia do kernel
antigo para o caso de a verso modificada no funcionar. Antes de iniciar essa atividade,

Administrao de Sistemas Linux

planeje como reinicializar o sistema com o kernel antigo, se o novo no funcionar.

188

9
Conhecer os aspectos de segurana bsica do sistema e entender a importncia da
sua monitorao e da antecipao de aes; conhecer o esquema de autenticao
de usurios em um sistema Linux e os algoritmos de criptografia do tipo one-way.

conceitos

Bits SUID e SGID, gerenciadores de pacotes do Linux, poltica de uso de recursos


computacionais, registro de ocorrncias e rotina de backup.

Segurana bsica
11 Analisadores de senhas.

11 Contas compartilhadas.
11 SUID e SGID.
11 Atualizao de software.
Procedimentos operacionais:
11 Poltica de utilizao de recursos.
11 Atendimento a usurios.
11 Controle de recursos computacionais.
11 Diagnstico de falhas.
11 Rotina de backup.
Os aspectos sobre segurana bsica e procedimentos operacionais que sero tratados neste
captulo dizem respeito apenas queles que tm alguma correlao com o que foi visto nos
captulos anteriores. Aspectos como o uso de senhas no triviais, o uso de contas compartilhadas e a remoo de contas desativadas, por exemplo, j foram discutidos anteriormente.
Outros aspectos, no entanto, ainda no foram mencionados, como o uso de criptografia e
os servios de rede desnecessrios, tpicos que sero tratados com maior profundidade
nos mdulos de administrao mais avanados. Ser ressaltada a importncia da monitorao do sistema e da antecipao de aes. Algumas questes bsicas de segurana, com
as quais o administrador de sistemas deve se preocupar sempre, independentemente do
tamanho de sua rede, so apresentadas a seguir:

Captulo 9 - Segurana bsica e procedimentos operacionais

objetivos

Segurana bsica e procedimentos


operacionais

11 Orientar os usurios de modo que no utilizem senhas bvias e configurar os sistemas de


modo que solicitem trocas de senhas periodicamente.

189

11 Manter o sistema em um local fisicamente seguro. De nada adianta proteger o sistema contra
invases atravs da rede e mant-lo em um ambiente cujo acesso no seja controlado.
11 No criar contas de usurios desnecessrias e sempre excluir as contas que no estejam
mais sendo utilizadas. Contas fantasmas podem se transformar em um canal para crackers.
11 Evitar compartilhar contas de usurios comuns e, principalmente, a conta do usurio
root, facilitando a monitorao das atividades do sistema.
11 Sempre que possvel utilizar ferramentas que suportem criptografia para transmitir e
receber dados atravs da rede. O Secure Shell (SSH) um exemplo de programa que
criptografa os dados antes de transmiti-los atravs da rede.
11 Evitar a ativao de servios de rede desnecessrios. Se um determinado sistema no
o servidor de e-mail da instituio, no h motivos para ativar o daemon postfix, por
exemplo. Cada servio disponibilizado por um servidor uma possvel porta de invaso
para os crackers.
11 Configurar corretamente os arquivos /etc/hosts.allow e /etc/hosts.deny (discutidos no captulo de introduo arquitetura TCP/IP para a plataforma Linux).
11 Utilizar firewalls para controlar o acesso aos diversos equipamentos da rede e prover o
servio de proxy para controlar o acesso dos usurios web. Estes dois servios ajudam
a manter a rede mais segura. Nos demais mdulos de administrao de sistemas Linux,
sero discutidos outros aspectos de segurana relativos a redes e servios.

Problemas bsicos de segurana


11 Utilizar ferramentas que suportem criptografia.

11 No ativar servios de rede desnecessrios.


11 Configurar corretamente os arquivos /etc/hosts.allow e /etc/hosts.deny.
11 Utilizar um firewall para controlar o acesso rede e um proxy para controlar o acesso
web.
11 Orientar os usurios a utilizar senhas no triviais.
11 Controlar o acesso fsico aos servidores.
11 Controlar a criao e remoo de contas.
11 Impedir o uso de contas compartilhadas.
Nenhum sistema computacional est livre de ataques de crackers. O melhor que pode ser
feito dificultar ao mximo suas aes e fazer uma monitorao permanente para detectar
rapidamente as tentativas de invaso. Entre os programas que o administrador deve utilizar
para descobrir e corrigir as possveis falhas de segurana do sistema esto Chkrootkit, o

Administrao de Sistemas Linux

Tripwire e Nessus.

Chkrootkit
11 Utilizado para detectar rootkits.

11 Analisa o sistema em busca de executveis, servios e processos suspeitos.


Programa utilizado para detectar rootkits em sistemas Unix. Um rootkit tem como finalidade
ocultar uma invaso em um sistema. Para isso, faz diversas modificaes como substituio
de executveis, remoo de entradas do arquivo wtmp, entre outras aes, sempre com o
objetivo de realizar ataques a terceiros. Para combater este tipo de ameaa, foi desenvolvido o chkrootkit, que faz uma srie de verificaes, procurando por mdulos de kernel
maliciosos, arquivos executveis, servios e processos suspeitos, entre outros, no intuito de

190

detectar algum indcio de invaso ao sistema. A verso atual do chkrootkit detecta cerca de
60 tipos de ameaas.

Tripwire
11 Monitora o sistema para garantir sua integridade.

11 Utiliza diversas tcnicas para encontrar alteraes no autorizadas em arquivos.


Programa utilizado para monitorar a integridade de sistemas Unix. Pode ser configurado
para monitorar arquivos e diretrios e enviar alertas caso ocorra alguma modificao no
autorizada. So utilizadas diversas rotinas de checksum, message-digest, secure-hash e
assinaturas com o intuito de detectar alteraes no contedo e nas permisses dos arquivos
e diretrios monitorados, alm de remoo e incluso de novos arquivos e/ou diretrios.

Nessus
Utilizado para detectar e corrigir vulnerabilidades e dificultar ao mximo a ao dos crackers.

Programa que utiliza a arquitetura cliente-servidor, onde o servidor executa uma varredura
no cliente, em portas TCP e UDP pr-configuradas, em busca de vulnerabilidades. Mesmo
que um servio no esteja utilizando sua porta padro, ser examinado pelo Nessus, desde
que a porta em que esteja sendo executado tenha sido configurada para ser analisada. Como
pr-requisito, o pacote Nmap deve estar instalado no sistema para que o Nessus possa ser
utilizado. Para isso preciso antes criar um usurio em sua base de dados. O administrador
pode definir os clientes que sero auditados. Aps a concluso da auditoria apresentado um
relatrio com todas as vulnerabilidades encontradas nos clientes auditados.

Analisadores de senhas
11 Uso da criptografia one-way.

11 A senha do usurio criptografada e comparada com a que est armazenada.


11 Uso de dicionrios prprios para obrigar os usurios a escolherem senhas difceis.
11 Senhas simples podem ser quebradas por crackers com o uso de dicionrios.
11 Alterao frequente da senha do usurio root.

A autenticao do usurio baseada na comparao da senha fornecida no login com aquela


armazenada no arquivo /etc/passwd ou /etc/shadow, caso as shadow passwords estejam
Dicionrio
Nome dado a arquivo
que contm as senhas
mais comuns utilizadas
por usurios de
sistemas. Os crackers
usam esses arquivos
como base para
tentativas de acesso
indevidas a sistemas de
terceiros. So utilizados
scripts que tentam
realizar login em um
determinado sistema
utilizando para cada
conta de usurio todas
as senhas contidas no
dicionrio.

habilitadas. Em qualquer um desses dois arquivos, as senhas so armazenadas criptografadas por algoritmos de criptografia publicamente disponveis. No entanto, a segurana no
comprometida, uma vez que esses algoritmos so do tipo one-way, e por isso no permitem decifrar a senha criptografada. O Linux utiliza algoritmos one-way j que as senhas
nunca precisam ser decifradas. Na prtica, a senha fornecida pelo usurio criptografada e
comparada com a senha criptografada armazenada. Se essas senhas so idnticas, o acesso
ao sistema permitido. Assim, as senhas so armazenadas de forma segura e caso uma
senha seja quebrada, no ser por falha do algoritmo de criptografia, mas do usurio, que
utiliza uma senha fcil de ser quebrada. Este o motivo pelo qual no se deve utilizar senhas
simples. O uso de senhas bvias, como datas de aniversrio e nomes de membros da famlia
uma das principais falhas de segurana a que os sistemas esto sujeitos. Uma senha segura
deve conter caracteres maisculos e minsculos, nmeros e ainda smbolos especiais. Isso
dificulta muito a tarefa dos crackers, que geralmente utilizam um arquivo contendo diversas
senhas, chamado dicionrio, para tentar quebrar senhas de usurios.

Captulo 9 - Segurana bsica e procedimentos operacionais

11 Definir os terminais seguros no arquivo /etc/securetty.

191

A melhor maneira de evitar que os usurios do sistema escolham senhas fceis de ser quebradas empregar a mesma tcnica utilizada pelos crackers, configurando os sistemas de
modo que as senhas sejam confrontadas contra um dicionrio antes de serem efetivamente
armazenadas. Caso a senha informada esteja cadastrada no dicionrio, o sistema envia uma
mensagem ao usurio informando que a senha escolhida muito fcil de ser quebrada. Em
vez de dicionrios, o administrador pode tambm definir polticas de senhas, como exigir que
todas as senhas tenham caracteres maisculos, minsculos, nmeros e caracteres especiais.
Uma vulnerabilidade extremamente grave quando sua explorao permite ao cracker
invadir o sistema obtendo os privilgios do usurio root. Esse tipo de vulnerabilidade deve
ser identificado e resolvido com a mxima prioridade. Para minimizar as chances de crackers
descobrirem a senha do usurio root, o administrador precisa mud-la periodicamente.
Outro cuidado adicional manter no arquivo /etc/securetty apenas os nomes dos terminais seguros a partir dos quais o usurio root pode fazer login no sistema. Para os demais
terminais, somente ser possvel ter privilgios de root, primeiramente acessando o sistema
como um usurio convencional e depois se tornar root atravs do comando su.

Contas compartilhadas
11 Utilizadas por diversos usurios.

11 Ajudam a poupar tempo e evitam a criao de contas desnecessrias.


11 Uso no recomendado.
11 Mau uso dificulta a identificao do culpado.
11 O mesmo se aplica conta root.
Contas compartilhadas so aquelas utilizadas por vrios usurios para um determinado
fim. Essas contas so criadas para evitar que vrias contas sejam criadas desnecessariamente. Por exemplo, uma empresa est fornecendo um curso de 15 dias para 10 pessoas
e o uso dos recursos computacionais essencial. Nesse caso, geralmente, o administrador
cria uma nica conta, e os alunos compartilham a senha dessa conta. No entanto, esse tipo
de compartilhamento no recomendvel, pois caso ocorra uma invaso utilizando essa
conta ou qualquer outro problema que comprometa o sistema, o administrador no ter
como identificar o usurio que direta ou indiretamente causou o problema e atribuir-lhe as
penalidades cabveis. Uma sugesto de soluo para esse caso seria o administrador criar
10 novas contas com prazo de expirao para o final do ltimo dia do curso, apesar dessa
alternativa ser mais trabalhosa. O compartilhamento da senha do usurio root ainda mais
perigoso e deve ser restringido ao mximo.

Administrao de Sistemas Linux

Exerccio de fixao 1 e
Identificando senhas fracas

192

Uma das formas de verificar se seu sistema atende s recomendaes bsicas de segurana
utilizar os programas quebradores de senha. Neste exerccio, utilizaremos um desses
programas para mostrar seu funcionamento. As etapas da execuo so descritas a seguir:
1. Obtenha e instale o programa quebrador de senhas John. Em caso de dvidas quanto a

este procedimento, consulte o instrutor.


2. Obtenha do servidor FTP da sala de aula o arquivo de dicionrio de senhas, edite-o e caso

considere necessrio, acrescente palavras que julgue imprprias para uso em senhas.

3. Rode o cracker com o comando:

# john wordlist=nome-do-arquivo rules /etc/shadow


4. Veja o resultado da verificao com o comando:

# john show /etc/shadow

SUID e SGID
SGID:

11 Usurios so organizados em grupos.


11 Pode resolver problemas de permisso em arquivos compartilhados criados por
usurios de diferentes grupos.
SGID:
11 O uso de SUID em arquivos do usurio root potencialmente perigoso e deve ser
evitado.
11 Servios devem ser executados por um usurio com os privilgios necessrios.
Como foi descrito no Captulo 2, os usurios podem ser distribudos em grupos e, dessa
forma, compartilhar arquivos. Todo usurio possui um grupo primrio, o que pode causar problemas caso este compartilhe arquivos com integrantes de dois ou mais grupos. Por exemplo,
os funcionrios do departamento de RH de uma determinada empresa pertencem ao grupo
rh e possuem um diretrio no sistema com permisso exclusiva para esse grupo. Entretanto,
o gerente do departamento de RH pertence aos grupos gerencia e rh, sendo gerencia seu
grupo primrio. Quando o gerente do departamento cria um arquivo no diretrio do grupo
rh, o grupo proprietrio do arquivo ser o grupo gerencia. Assim, dependendo das permisses do arquivo, nenhum outro usurio do grupo rh poder acess-lo. A permisso SGID
pode ser definida nesse diretrio para solucionar o problema. Essa permisso habilitada
com o comando chmod e, quando habilitada em um diretrio, fora todos os arquivos e diretrios criados nesse diretrio a terem o mesmo grupo proprietrio do diretrio.
J o bit SUID utilizado em programas que precisam ser executados com as permisses de
seu dono. Para reduzir as possibilidades de falhas de segurana do sistema, somente devem
Cada servio habilitado representa uma possibilidade a mais para a explorao de falhas.
Se houver uma falha de segurana em um processo sendo executado com privilgios de
root, aps a invaso o cracker herdar esses privilgios e ter acesso irrestrito ao sistema.
Para resolver esse problema, cada servio deve ser executado em nome de um usurio
que tenha unicamente os privilgios necessrios para acessar os recursos utilizados pelo
servio. Alguns usurios padro, como daemon, nobody, shutdown, ftp, games, mail e news so
criados na instalao do sistema com esse objetivo. Um servidor web, por exemplo, precisa
acessar apenas o conjunto de arquivos e recursos necessrios sua operao. Portanto,
seus processos devem ser executados com privilgios de um usurio convencional com
acesso somente a esses arquivos e recursos. Geralmente, os processos executados por um
servidor web tem o usurio nobody como proprietrio.

Atualizao de software
Os softwares instalados devem ser atualizados regularmente, visando a expanso de
funcionalidades e a correo de falhas de funcionamento detectadas nas verses em uso.

Captulo 9 - Segurana bsica e procedimentos operacionais

ser executados com privilgios de root os servios em que esse requisito for obrigatrio.

Os desenvolvedores tambm utilizam as atualizaes para corrigir falhas de segurana


193

encontradas nos seus pacotes de software, que comprometem a segurana do sistema. O


procedimento de atualizao deve ser realizado com muito cuidado, para evitar mudanas
no desejadas, que venham a comprometer o funcionamento do sistema. A maioria das distribuies utiliza gerenciadores de pacotes, o que facilita bastante o processo de instalao,
remoo e atualizao de software no sistema. A seguir sero descritos trs dos principais
gerenciadores de pacotes do Linux.

RPM
11 Gerenciador de pacotes utilizados nas distribuies Red Hat, Fedora e CentOS.

22 Os pacotes so compostos por binrios e arquivos de configurao.


11 Possui interfaces grficas e uma interface texto baseada no comando rpm.
11 Utiliza criptografia e funes de hash para garantir a integridade dos pacotes.
11 Verifica dependncias entre pacotes, mas no as resolve.
11 No realiza atualizaes automticas de pacotes.
RPM Package Manager (RPM) um gerenciador de pacotes que oferece uma maneira fcil
e segura de instalar, remover e atualizar pacotes de software. Alm disso, o RPM mantm
informaes sobre a verso atual dos pacotes instalados em uma base de dados prpria.
Os pacotes RPM so pr-compilados e contm binrios, arquivos de configurao e pginas
de manual, entre outros.
Red Hat, Fedora, CentOS e Mandriva so exemplos de distribuies que utilizam pacotes
RPM. O RPM possui interfaces grficas, como o Gnome-RPM, e uma interface texto baseada
no comando rpm. Esse curso ser baseado na interface texto utilizando o comando rpm. So
listadas a seguir as principais opes de uso deste comando:
11 -i instala um ou mais pacotes;
11 -e remove um ou mais pacotes;
11 -U atualiza um ou mais pacotes;
11 -q faz uma consulta na base de dados criada pelo RPM no sistema.
O RPM possui mtodos baseados no algoritmo MD5 e na criptografia de chave pblica, utilizando GPG para validar a integridade de um pacote. Isso necessrio, pois alguns pacotes
podem estar corrompidos.
Antes de instalar um pacote, o RPM verifica se ele j est instalado no sistema; caso esteja,
verifica se sua verso mais recente que a verso que est sendo instalada. Em seguida, o
RPM verifica as dependncias, cancelando a instalao, se algum outro pacote requerido
no estiver instalado. importante frisar que o RPM no resolve problemas de dependncia
entre pacotes. Ele somente indica as dependncias, no as instalando automaticamente.
Administrao de Sistemas Linux

Nesse caso, o administrador, primeiramente, deve instalar todas as dependncias necessrias. No entanto, se o administrador tentar remover um pacote dependente de outro pacote,
a remoo no ser realizada e uma mensagem na tela informar que o pacote no pode ser
removido porque utilizado por outro pacote instalado no sistema. O RPM tambm verifica
se algum arquivo de configurao ser modificado durante o processo de instalao de
um pacote. Havendo a necessidade de modificao de um arquivo existente, o RPM salva a
verso corrente e imprime uma mensagem na tela informando sobre a alterao.
Periodicamente, novas verses de pacotes RPM so lanadas para corrigir bugs e problemas
de segurana. O administrador deve verificar, com frequncia, na pgina da distribuio
utilizada, o lanamento de novas verses de pacotes. Na verdade, os sistemas baseados em
194

pacotes RPM (como Red Hat, CentOS e Fedora) possuem um mecanismo ainda mais poderoso para manter o sistema sempre atualizado. Trata-se do YUM, um gerenciador de pacotes
baseado no RPM, que ser descrito a seguir.

Exerccio de fixao 2 e
Gerenciador de pacotes RPM
1. Para instalar um software qualquer, qual seria a opo a ser utilizada junto com o geren-

ciador RPM?
2. Para instalar um software qualquer e mostrar detalhes da instalao, qual seria a opo a

ser utilizada junto com o gerenciador RPM?


3. Para instalar um software qualquer exibindo # medida que os arquivos so descompac-

tados, qual seria a opo a ser utilizada com o gerenciador RPM?


4. Para atualizar um software, deve-se utilizar o comando RPM com quais opes?
5. Para verificar se um pacote est instalado ou no, utiliza-se qual comando?
6. Para listar todos os pacotes instalados, qual comando deve-se utilizar?
7. Para remover um software, utiliza-se qual comando?

YUM
11 Gerenciador de pacotes utilizados em distribuies como Red Hat, Fedora e CentOS.

11 Resolve problemas com dependncias, instalando-as automaticamente.


11 Utiliza repositrios para fazer o download dos pacotes.
11 Possui interfaces grficas e uma interface de texto baseada no comando YUM.
Yellowdog Updater, Modified (YUM) um gerenciador de pacotes utilizados em distribuies
baseadas no RPM. Entre essas distribuies, podemos destacar: Red Hat, Fedora e CentOS.
O YUM resolve problemas com dependncias entre pacotes, instalando-as automaticamente quando necessrio. Essa caracterstica facilita o trabalho do administrador durante o
processo de instalao de pacotes. O YUM consulta diversos repositrios que so utilizados
para fazer o download dos pacotes instalados no sistema. A lista de repositrios fica armacomo o KYUM e uma interface texto baseada no comando yum. Esse curso baseado na
interface texto utilizando o comando yum. So listadas a seguir as principais opes de uso
deste comando:
11 install: instala um ou mais pacotes;
11 group-install: instala um grupo de programas (ex: system tools);
11 remove: remove um ou mais pacotes;
11 update: atualiza um ou mais pacotes;
11 upgrade: atualiza todos os pacotes e remove pacotes obsoletos;
11 clean: limpa o cache do YUM;
11 search: faz uma busca por um determinado pacote;
11 list: faz uma busca por um determinado pacote, mas retorna menos informaes que
a opo search.

Captulo 9 - Segurana bsica e procedimentos operacionais

zenada em arquivos dentro do diretrio /etc/yum.repos.d/. O YUM possui interfaces grficas

195

APT
11 Gerenciador de pacotes utilizado em distribuies como Debian e Ubuntu.

11 Resolve problemas com dependncias, instalando-as automaticamente.


11 Utiliza repositrios para fazer o download dos pacotes.
11 Possui interfaces grficas e interfaces texto, uma delas baseada no comando apt-get.
Advanced Packaging Tool (APT) um gerenciador de pacotes utilizado na distribuio Debian
e suas derivadas, como a distribuio Ubuntu. Assim como o YUM, APT tambm resolve
problemas com dependncias entre pacotes, instalando-as automaticamente quando necessrio. O APT consulta uma srie de repositrios utilizados para fazer o download dos pacotes
instalados no sistema. A lista de repositrios fica armazenada no arquivo /etc/apt/sources.list.
O APT possui interfaces grficas como o Synaptic e interfaces de texto, com destaque para o
comando apt-get. Esse curso baseado na interface de texto utilizando o comando apt-get.
So listadas a seguir as principais opes de uso deste comando:
11 install: instala ou atualiza um ou mais pacotes;
11 update: atualiza a lista de repositrios definidos no sistema;
11 upgrade: atualiza todos os pacotes que esto desatualizados;
11 dist-upgrade: atualiza o sistema para uma nova distribuio;
11 remove: remove um ou mais pacotes;
11 clean: remove todos os pacotes baixados, utilizados em instalaes anteriores;
11 source: faz o download do cdigo-fonte dos pacotes.

Exerccio de fixao 3 e
Gerenciador de pacotes APT
1. Qual a finalidade do comando apt-get install nome_pacote?
2. Qual a diferena entre apt-get upgrade e apt-get dist-upgrade?
3. Qual o gerenciador de pacotes da distribuio Debian?
4. O que faz o comando apt-cache?
5. O que faz o comando apt-cdrom?
6. Qual a diferena entre aptitude e apt-get?
7. O que um Mirror?

Administrao de Sistemas Linux

Procedimentos operacionais
Atividades do administrador de sistemas:
11 Manter os sistemas atualizados, seguros e operacionais.
11 Implementar as polticas de uso de recursos.
11 Prestar atendimento aos usurios.
11 Trabalhar de forma proativa.
11 Registrar informaes relevantes, independente da forma como realizado o registro.

Como foi visto, o trabalho do administrador de sistemas abrange desde atividades rotineiras
e bem definidas, como fazer cpias de segurana (backups), at atividades eventuais e
imprevisveis, como diagnosticar a causa do baixo desempenho de um servidor.

196

Uma caracterstica comum a todas essas atividades que elas afetam, direta ou indiretamente, a produtividade dos usurios do sistema, e consequentemente a produtividade da
instituio a que o sistema atende. Desse modo, o administrador de sistemas precisa utilizar
sempre as prticas de administrao mais adequadas para os objetivos propostos pela instituio. Tal necessidade pressupe que o administrador conhea os objetivos da instituio
e de seus usurios, os sistemas que administra e sua rea de atuao. Alm disso, deve ser
capaz de trabalhar em equipe, de forma responsvel e organizada.
Focaliza-se, aqui, o ltimo dos atributos relacionados, no que diz respeito ao trabalho
de forma organizada, reunindo recomendaes e propondo modelos de procedimentos,
normas e formulrios para apoiar o administrador em suas atividades. Administradores
que conseguem organizar seu trabalho so muito mais produtivos e efetivos em suas aes,
resultando em sistemas com maior tempo de disponibilidade e melhor desempenho, e o
que mais importante, com usurios satisfeitos. Quando o administrador no consegue se
organizar, ele opera de forma reativa e o resultado um interminvel apagar de incndios.
O que est aqui descrito no deve ser entendido como a palavra final sobre as prticas de
administrao de sistemas, mas como um ponto de partida para ser adaptado s condies
locais de cada instituio e aperfeioado pelo administrador no seu dia a dia. Inicialmente,
o administrador deve utilizar somente o que lhe parecer mais til e introduzir as demais
prticas medida que perceber sua necessidade. O registro dos dados sugeridos nas
prticas aqui descritas pode ser feito tanto em meio eletrnico quanto impresso, com um
layout requintado ou em estilo checklist. Esse no o foco da discusso, pois no importa
se o administrador vai usar caneta e papel, editor de textos, planilhas, banco de dados ou
alguma ferramenta especializada. O importante criar o hbito de registrar, de forma organizada e sistemtica, as intervenes realizadas no sistema.

Poltica de utilizao de recursos


Dentre as atribuies do administrador de sistemas, encontra-se a elaborao de regras
de utilizao dos recursos computacionais disponibilizados para os funcionrios de uma
instituio. Este ponto especialmente crtico em grandes instituies, com unidades fisicamente distribudas, mas que compartilham o uso de recursos. As regras de uso dependem
utilizao de recursos computacionais.
Quanto utilizao de sistemas corporativos, cabe ao administrador levantar as informaes relativas ao item Caracterizao do uso, mostradas na Tabela 9.1. Com base
nessas condies, o administrador de sistemas deve definir os requisitos tcnicos a serem
observados para que os funcionrios obtenham acesso aos recursos computacionais da
instituio. ideal que o administrador de sistemas proceda incluso do funcionrio no
sistema somente se essas condies forem atendidas. Na prtica, nem sempre as instituies possuem tal grau de organizao; o resultado a degradao do desempenho do
sistema e a insatisfao generalizada, tanto dos usurios como da equipe tcnica.
O uso dos recursos computacionais disponibilizados pela instituio para seus funcionrios e
colaboradores deve ser feito nica e exclusivamente com o objetivo de realizar atividades pertinentes ao cargo e funo do usurio, em acordo com os objetivos e a misso da instituio,
respeitando as leis de direitos autorais e de propriedade intelectual aplicveis aos softwares
utilizados, dados e informaes armazenadas ou acessveis por meio daqueles recursos.

Captulo 9 - Segurana bsica e procedimentos operacionais

fundamentalmente do tipo de instituio, do seu grau de informatizao e da sua poltica de

197

Entende-se por recursos computacionais o conjunto de ativos de TI, formados por servidores,
desktops, laptops, equipamentos de conectividade, dispositivos de hardware, cabeamento,
softwares diversos, links de comunicao de dados, entre outros, que so responsveis por
proverem os servios de computao, comunicao e informao da instituio.
Campo

Caracterizao do uso

11Tipo (administrativo, desenvolvimento, pesquisa, produo etc.);

11Regime (uso eventual ou contnuo, processamento em tempo real ou batch etc.);


11Carga (uso marginal ou intensivo de recursos do sistema);
11Perodo do uso (data inicial, data final).

Experincia do usurio em informtica, relativa ao uso pretendido.

Parecer do administrador sobre a disponibilidade dos recursos para o uso


pretendido (incluindo insumos, suporte tcnico e treinamento).

Tabela 9.1
Caracterizao do
uso de recursos
computacionais.

A incluso de um usurio no sistema deve ser documentada com o levantamento referido


anteriormente, acrescido das informaes presentes na Tabela 9.2. Essas informaes so
resultantes da incluso do usurio e devem ser registradas pelo administrador juntamente
com as informaes da Tabela 9.1.
O acompanhamento do uso dos recursos computacionais da empresa tambm uma

atribuio do administrador do sistema e visa coletar dados para antecipar deficincias


no sistema como um todo e subsidiar aes de:
11 Manuteno preventiva.
11 Ajustes de parmetros para melhoria de desempenho (tuning).
11 Substituio, atualizao e expanso de dispositivos saturados.
11 Planejamento para aquisio de novos equipamentos.
11 Treinamento de operadores, monitores e equipe de suporte.
A coleta dessas informaes nem sempre fcil. Existem ferramentas comerciais especializadas, mas o administrador de sistemas pode inicialmente utilizar os recursos do prprio
sistema operacional e de softwares especficos para coletar estatsticas simples sobre o
uso de CPUs, memria, espao em disco, links de comunicao de dados etc. medida que
os dados coletados se mostrarem importantes para o planejamento de aes futuras, o
processo de coleta pode ser aperfeioado para incluir mais detalhes e, eventualmente, um
software especfico para essa funo poder ser adquirido. Os relatrios gerados a partir
dos dados consolidados devem ser claros, objetivos e concisos. O formato, caso ainda no
exista, deve ser definido em conjunto com os demais integrantes da equipe e com o gerente

Administrao de Sistemas Linux

de TI da instituio.

Informaes sobre os novos usurios


11 Documentao da incluso do usurio no sistema.
11 Assinatura do Termo de Responsabilidade.
11 Registro das informaes da conta.
11 Termo de responsabilidade: de acordo/data/assinatura do usurio.

Para ser efetivada, a incluso de um novo usurio deve ser acompanhada de um termo de responsabilidade, em que o futuro usurio declara sua concordncia com os termos e condies
de uso estabelecidas pela instituio e da assinatura de seu superior imediato. Um exemplo
simples de termo de responsabilidade apresentado na Tabela 9.2.

198

Dados cadastrais

Nome completo do usurio

Documento de identificao (matrcula na empresa, RG)

Departamento/Setor

Cargo/Funo

Nome do chefe imediato

Telefones de contato

Endereo eletrnico

Datas de recebimento/processamento da solicitao de incluso

10

Identificao do tcnico responsvel pela incluso da conta

Atendimento aos usurios


11 Disponibilizar as informaes bsicas sobre caractersticas e condies de utilizao

dos sistemas.
22 Formato simples e de fcil acesso (eletrnico).
11 Descobrir as necessidades dos usurios.
11 Tratar de problemas de inadequao de recursos.
11 Promover treinamento por meio da equipe de suporte.
11 Respeitar o usurio e suas necessidades.
11 Recursos computacionais so meios e no fins.
11 Fazer checagem peridica do ndice de satisfao dos usurios.
11 Identificao de falhas no atendimento.
11 No comprometimento das atividades fim da instituio.
Visando facilitar o trabalho do novo usurio, o administrador de sistemas deve disponibilizar, em forma impressa e eletrnica, as informaes bsicas sobre as caractersticas e condies de uso dos sistemas sob sua responsabilidade. De nada adianta ter um sistema muito
bem organizado se os usurios no esto sendo bem atendidos nas suas necessidades.
Os usurios so os clientes, e como clientes precisam ser ouvidos e respeitados, mesmo
quando suas expectativas sejam inadequadas para a realidade da instituio. Quando se
trata de instituies com uma alta taxa de rotatividade de usurios, como o caso de instituies de ensino e pesquisa, essas informaes devem possuir formato simples e resumido
e serem disponibilizadas em local de fcil acesso.

Para pensar
Cabe ao administrador do sistema, em ltima instncia, tentar descobrir as reais
necessidades do usurio e decidir como pode melhor atend-lo. Se o problema
de desconhecimento dos recursos existentes e de como utiliz-los, o usurio deve
ser treinado, o que pode ser feito pela prpria equipe de suporte, ou com a ajuda
de outros usurios experientes. Caso o problema seja de inadequao dos recursos
computacionais existentes para o fim desejado, o administrador pode levar o pro-

Captulo 9 - Segurana bsica e procedimentos operacionais

Tabela 9.2
Dados cadastrais
dos usurios.

Campo

blema ao seu superior e tentar resolv-lo da melhor maneira possvel.


199

Eventualmente, se o trabalho do usurio for importante para a instituio, o recurso poder


ser adquirido. Qualquer que seja a soluo encontrada para as necessidades dos usurios, o
administrador de sistemas precisa se colocar sempre na posio de quem ajuda a viabilizar
os projetos da instituio, e no como a pessoa interessada unicamente em manter os
sistemas operando de maneira adequada. O importante que o usurio do sistema seja
respeitado em suas necessidades. Afinal, os recursos computacionais so meios e no fins
para a empresa. Eles tm que ser utilizados com o objetivo de melhorar a produtividade dos
funcionrios e aumentar a competitividade da instituio como um todo, e no como vitrine
do estgio tecnolgico por ela alcanado.
O administrador de sistemas necessita manter contato permanente com os usurios e
estimul-los a opinarem sobre o funcionamento dos sistemas sob sua responsabilidade e
sobre o atendimento que esto recebendo da equipe tcnica. Essa postura fundamental
para que o administrador identifique, em primeira mo, as falhas de atendimento da sua
equipe, ou as necessidades no atendidas dos usurios, e possa corrigi-las antes que comprometam as atividades finais da instituio. Se toda a equipe sob sua coordenao estiver
imbuda desse mesmo esprito, o administrador de sistemas ter mostrado possuir no s
competncia tcnica, mas tambm organizacional.

Controle de recursos computacionais


11 De uma pequena rede com estaes de trabalho a uma grande rede geograficamente

distribuda.
11 Cadastro com informaes de identificao e localizao de cada equipamento.
11 Histrico de manutenes preventivas ou corretivas e atualizaes de hardware
e software.
11 Inventrio de hardware e software instalados.
11 Checklist em papel para ser utilizado pela equipe de suporte local.
Os recursos computacionais sob responsabilidade de um administrador de sistemas podem
variar desde uma pequena rede local com estaes individuais de trabalho, para uso
dedicado de um pequeno grupo de usurios, at uma grande rede com diversos servidores, equipamentos de conectividade, estaes de trabalho etc. Qualquer que seja o caso
importante que o administrador mantenha informaes atualizadas sobre os itens que
compem a infraestrutura de TI. A manuteno de um cadastro com informaes de identificao e de localizao de cada equipamento uma atividade importante em organizaes
com uma infraestrutura complexa e distribuda por diversas unidades separadas geograficamente. A Tabela 9.3 mostra os dados essenciais que devem ser coletados para a montagem
desse cadastro.

Administrao de Sistemas Linux

importante tambm manter um histrico das ocorrncias de cada equipamento, incluindo

200

atividades de manuteno preventiva e corretiva e de atualizao de hardware e software.


Vale observar a importncia de serem registradas as verses e os respectivos nmeros
de licenas de software comercial instalado nos equipamentos, para facilitar o controle e
evitar problemas com cpias ilegais. Essas informaes devem estar, preferencialmente,
em formato eletrnico. Aplicativos de planilha e de bancos de dados, ou mesmo softwares
de inventrio so uma boa alternativa para armazenamento desses dados, uma vez que
facilitam a gerao de relatrios. Mas bom existir um checklist em papel para ser utilizado
quando a equipe de suporte sair a campo para diagnosticar algum problema.

Cadastro de hardware
11 Guardar informaes.

11 Manter histrico das ocorrncias de cada equipamento.


11 Possuir registro de verses e de licenas de software.
11 Guardar informaes, preferencialmente em formato eletrnico.
O cadastro dos equipamentos de TI deve ser feito independentemente do software utilizado
para este propsito. Em grandes organizaes, essa atividade fundamental para que o
administrador no perca o controle sobre os ativos pelos quais responsvel. A Tabela 9.3
mostra uma relao de informaes que devem fazer parte do cadastro de um item de
hardware, mesmo que em certos casos alguns dos itens relacionados no sejam aplicveis.
Dados cadastrais

Tipo do equipamento / Dispositivo

Marca / Modelo

Configurao de hardware (dados principais)

Identificao patrimonial

Nmero de srie

Localizao fsica

Operador / usurio responsvel (nome completo, departamento, telefone)

Softwares instalados (ttulo, verso, nmero da licena)

Endereo IP

10

Nome do computador na rede

Tambm importante que se faa o cadastro de todos os softwares utilizados pela instituio, visando um melhor controle sobre licenas e necessidades de uso, utilizando um
formato semelhante ao da Tabela 9.3.

Diagnstico de falhas
11 Uma das atividades mais desafiantes do administrador.

11 Tempo gasto no diagnstico pode atrasar a execuo de outras tarefas.


11 Utilizao do Livro de Registro de Ocorrncias.
Por mais responsvel e dedicado que seja, o administrador de sistemas no vai conseguir
evitar que ocorram falhas no funcionamento dos sistemas sob sua responsabilidade. Essas
falhas podem ter as causas mais diversas, incluindo:
11 Bugs de software;
11 Mau funcionamento de dispositivos e equipamentos;
11 Incompatibilidade de verses de hardware e software;
11 Mau uso intencional;
11 Erro de operao;
11 Condies fsicas inadequadas.

Captulo 9 - Segurana bsica e procedimentos operacionais

Figura 9.3
Cadastro de
hardware.

Campo

201

Devido ao seu carter investigativo, o diagnstico de falhas uma das atividades mais
desafiantes dentre as atribuies do administrador de sistemas. O problema que o tempo
gasto no diagnstico de uma falha pode atrasar outras tarefas tambm importantes e
comprometer toda a programao de atividades, tornando o administrador de sistemas um
verdadeiro apagador de incndios. Alm da experincia, um dos instrumentos mais efetivos com que o administrador de sistemas pode contar ao diagnosticar uma falha o Livro
de Registro de Ocorrncias do sistema.

Registro de ocorrncias
O registro de ocorrncias uma atividade importante no dia a dia de um administrador de
sistemas e constitui uma excelente referncia para consultas, identificao de problemas
decorrentes de associaes entre problemas (que sugerem efeitos colaterais), de solues diferentes para o mesmo problema (que sugerem diagnsticos incorretos) etc. O livro de registro
de ocorrncias utilizado para registrar, cronologicamente, as principais aes realizadas pelo
administrador nos diversos sistemas que administra, bem como acontecimentos relevantes
que tenham afetado algum componente da infraestrutura de TI da organizao. A Tabela 9.4
mostra uma relao de informaes que devem fazer parte de um registro de ocorrncias:
Campo

Informaes

Nmero sequencial de identificao

Data e hora do registro da ocorrncia

Descrio resumida do problema

Hardware/Software/Servio afetado

Autor do registro

Categoria da ocorrncia (ex.: parada total, parada parcial, atualizao de software, manuteno de hardware, instalao de novo hardware etc.)

Diagnstico provvel

Soluo adotada

Data/hora da soluo da ocorrncia

10

Autor da soluo

11

Observaes (para referncia a outras ocorrncias etc.)

Tabela 9.4
Registro de
ocorrncias.

Alm de contribuir para elevar o nvel de qualidade da administrao dos sistemas de uma
instituio, esse tipo de documento facilita o trabalho da equipe de TI durante a resoluo de

Administrao de Sistemas Linux

problemas, liberando o administrador para atividades mais complexas. O campo 6 da Tabela


9.4 til para agrupar ocorrncias de um mesmo tipo, facilitando a produo de relatrios
consolidados. O administrador pode criar categorias especficas para a sua instituio.

Rotina de backup
11 Lembrar que para diferentes instituies h diferentes necessidades de backup.
11 Elaborar o plano de backup.
11 Promover o rodzio dos conjuntos de mdia.
11 Cuidar do correto acondicionamento fsico das mdias.
11 Controlar o acesso ao local de armazenamento das mdias de backup.

202

Dependendo da necessidade, o backup deve ser duplicado e armazenado em locais


distintos. A atividade de backup uma das atribuies mais crticas do administrador de
sistemas. Deve ser planejada de acordo com as necessidades da instituio e ser de amplo
conhecimento de todos os usurios. Avaliadas as necessidades da empresa, com base
nos critrios discutidos no Captulo 6, o administrador deve elaborar o plano de backup e
cumpri-lo rigorosamente.
No que diz respeito execuo dessa atividade, deve ser dada especial ateno documentao da mdia utilizada, com o objetivo de facilitar a recuperao da informao salva, em
caso de necessidade. Diferentes instituies possuem diferentes necessidades de backup.
Uma instituio de ensino e pesquisa totalmente distinta de uma instituio financeira, no
que diz respeito a essas necessidades. As mdias de backup devem estar devidamente identificadas por algum rtulo que caracterize o seu uso. O administrador deve ainda programar o
rodzio dos conjuntos de mdias de backup (dirios, semanais e mensais) para assegurar que
o desgaste pelo uso seja proporcionalmente equivalente entre os vrios conjuntos e que os
backups totais sempre sejam feitos sobre conjuntos de mdia mais novos e, portanto, mais
confiveis. O acondicionamento fsico da mdia de backup precisa levar em conta os requisitos ambientais de armazenamento de cada tipo, seguindo as recomendaes do fabricante.
Alm disso, o controle de acesso ao local de armazenamento das mdias de backup deve ser
rigoroso. No caso de sistemas crticos, o backup pode ser duplicado e armazenado em locais

Captulo 9 - Segurana bsica e procedimentos operacionais

distintos, para reduzir o risco de perda por catstrofes como incndios e inundaes.

203

204

Administrao de Sistemas Linux

Roteiro de Atividades 9
Atividade 9.1 Descobrindo a funcionalidade do bit SGID em diretrios
A utilidade do SUID e SGID foi vista desde o Captulo 1. Execute a sequncia de comandos e
siga os seguintes passos:
1. Crie o grupo staff e defina-o como grupo secundrio do seu usurio.
2. Entre no sistema a partir da sua conta e crie um diretrio chamado dir_staff.
3. Verifique a qual grupo pertence o diretrio criado no passo anterior. Modifique-o para

que passe a pertencer ao grupo staff e mude a sua permisso para 2755.
4. No seu diretrio home crie um arquivo chamado arq1. Em seguida, mude para o diretrio

criado no item 2 e crie um arquivo chamado arq2.


5. Verifique os grupos aos quais pertencem os arquivos criados no item anterior. Voc

saberia explicar por que os arquivos pertencem a grupos distintos, embora tenham sido
criados pelo mesmo usurio?
6. Quais as vantagens desse esquema?

Atividade 9.2 Instalando um novo software com RPM


Vamos utilizar o gerenciador de pacotes RPM para instalar o programa chkrootkit. Para realizar a instalao, as etapas so descritas a seguir:
1. Utilizando o comando rpm, verifique se o programa chkrootkit est instalado em seu

computador.
2. Utilizando o comando rpm, instale o pacote do chkrootkit.

Atividade 9.3 Obtendo informaes sobre os recursos computacionais


Vimos que uma das mais importantes funes de um administrador de sistemas acompanhar o uso dos recursos computacionais de sua instituio. Discuta com seu colega
comandos que podem auxiliar na coleta desse tipo de informao.

Atividade 9.4 Controlando os recursos dos usurios


Um dos grandes desafios de um administrador de sistema controlar a ocupao do espao
desse tipo de recurso. Que medidas podem ser tomadas para controlar a ocupao de disco
de forma automtica?

Captulo 9 - Roteiro de Atividades

em disco do seu sistema. Aplicaes do tipo peer-to-peer (P2P) so consumidoras vorazes

205

206

Administrao de Sistemas Linux

10
Conhecer o Webmin, uma ferramenta para administrao de servidores Unix,
os pr-requisitos para sua instalao e suas principais vantagens.

conceitos

Webmin: caractersticas gerais, instalao, interface de administrao,


mdulos e Usermin.

Caractersticas gerais
11 Interface web para administrao de sistemas Unix-like.

11 Aplicao composta por um servidor web e por scripts Perl.


11 Possui suporte criptografia de dados, utilizando o protocolo SSL.
11 Pode ter seu acesso restringido a determinados IPs ou redes.
11 Possui um esquema de autenticao de usurios completamente independente
do sistema.
Neste captulo sero abordados tpicos relacionados ao Webmin, uma interface web para
administrao de sistemas Unix-like. Trata-se de um pacote que possui um servidor web,
que roda em uma porta TCP, definida durante a sua instalao e alguns scripts CGI que
podem atualizar diretamente os arquivos de configurao do sistema e de basicamente
qualquer programa que esteja instalado. O servidor web e todos os outros scripts CGI so
escritos em linguagem Perl. Sero apresentadas as principais caractersticas do Webmin
e seus aspectos de segurana e controle de acesso, que o tornam uma alternativa interessante na rotina de trabalho de um administrador de sistemas. Algumas caractersticas
importantes do Webmin sero apresentadas a seguir.

Quanto segurana
Seu sistema de autenticao de usurios completamente independente do esquema
utilizado pelo sistema. Isso significa que o administrador pode atribuir direitos a um usurio,
por meio do Webmin, sem que esse usurio possua acesso a qualquer tipo de configurao
por intermdio do sistema. Para possibilitar uma comunicao segura entre o servidor web
e o browser cliente, pode ser utilizada uma conexo criptografada, por meio do protocolo
SSL, principalmente em se tratando de atividades com permissionamento de superusurio.
O acesso ao Webmin tambm pode ser restringido a determinadas redes ou IPs especficos.

Captulo 10 - Webmin

objetivos

Webmin

207

Quanto funcionalidade
O Webmin pode atuar como um servidor proxy. possvel estabelecer uma conexo segura
a um firewall e, por intermdio dessa conexo, gerenciar computadores em uma intranet,
atrs desse firewall. Essa funo revela-se muito til nos casos em que se deseja fornecer
servios de gerenciamento a clientes externos. Outra funcionalidade interessante a
oferecida pelo mdulo Custom Commands, que permite ao administrador executar os
seus prprios scripts e ter a sada deles redirecionada a uma pgina web. O Webmin deve
ser executado pelo usurio root, j que a maioria das tarefas de administrao que realiza,
como editar arquivos de configurao ou reiniciar servios, s pode ser executada com os
privilgios desse usurio.

Quanto configurao
Controle de acesso:

11 Possui excelente flexibilidade em relao ao controle de acesso aos diversos mdulos.


11 Permite registrar as alteraes feitas por meio da interface web em arquivos de log.
11 As alteraes feitas por meio do Webmin so executadas diretamente nos arquivos
de configurao do sistema.
11 Deve ser executado pelo superusurio.
O Webmin tambm pode ser configurado para registrar todas as alteraes feitas por meio
dele em arquivos de log. Essa caracterstica extremamente til para a soluo de problemas e para o controle, por parte do administrador, das mudanas que esto sendo feitas
no sistema por meio dessa interface. O Webmin trabalha diretamente com os arquivos de
configurao dos servios, o que significa que ele no utiliza uma base de dados prpria, ou
algum outro meio para armazenar qualquer tipo de informao. possvel editar diretamente, com um editor de textos, o arquivo de configurao do Apache, por exemplo, sem
preocupao com possveis problemas que poderiam ser causados ao Webmin.
O Webmin tambm possui um excelente mecanismo de controle de acesso aos vrios
mdulos disponveis. O administrador pode, por exemplo, permitir a um determinado
usurio o controle total sobre as configuraes do servidor DNS, sem que esse usurio
tenha acesso a quaisquer configuraes do servidor Apache, ou mesmo permitir o acesso
somente s configuraes de determinadas zonas no servidor DNS. Essa caracterstica
torna-se bastante proveitosa quando necessrio delegar tarefas a vrios administradores.

Instalao
Pacotes necessrios:

Administrao de Sistemas Linux

11 Perl.
11 OpenSSL.
11 Net_SSLeay.pm.
11 Webmin.
As principais distribuies do Linux possuem um pacote pr-compilado do Webmin, que
pode ser instalado utilizando um gerenciador de pacotes, que j instala automaticamente
todas as dependncias necessrias. No entanto, nesse captulo, ser apresentado o modo
de instalao manual, utilizando o cdigo-fonte do Webmin e de suas dependncias. Para
acessar o Webmin de forma segura, necessria a instalao de trs dependncias: Perl,
OpenSSL e Net_SSLeay.pm.
208

Perl
O Webmin escrito na linguagem de programao Perl, que deve estar instalada no sistema
para que o Webmin possa ser executado. O Perl j vem instalado por padro na maioria
das distribuies Linux, mas caso seja necessrio instal-lo, basta executar a sequncia de
comandos a seguir para instalar a verso 5.14.2:

# cd /usr/local/src
# wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
# tar -zxvf perl-5.14.2.tar.gz
# cd perl-5.14.2
# ./Configure
# make
# make test
# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador
pode consultar a seo de documentao no site oficial do Perl, em http://www.perl.org.
Feito isso, o diretrio perl-5.14.2 pode ser excludo, assim como o pacote de instalao.
Instalao do Perl:

# cd /usr/local/src
# wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
# tar -zxvf perl-5.14.2.tar.gz
# cd perl-5.14.2
# ./Configure
# make
# make test
# make install

OpenSSL
OpenSSL um pacote que implementa, entre outras caractersticas, os protocolos SSL e TLS,
que permitem a troca de informaes criptografadas entre dois computadores atravs da
rede. Na instalao padro, o binrio do OpenSSL instalado no diretrio /usr/local/ssl/bin.
recomendado manter essa localizao, pois outros programas que utilizam esse binrio
dever ser executada a seguinte sequncia de comandos:

# cd /usr/local/src
# wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
# tar -zxvf openssl-1.0.0g.tar.gz

Captulo 10 - Webmin

geralmente o procuram nesse diretrio. Para a instalao da verso 1.0.0g do OpenSSL,

# cd openssl-1.0.0g
209

# ./config
# make
# make test
# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador pode
consultar a seo de documentao no site oficial do OpenSSL, em http://www.openssl.org.
Feito isso, o diretrio openssl-1.0.0g pode ser excludo, assim como o pacote de instalao.
Instalao do OpenSSL:

# cd /usr/local/src
# wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
# tar -zxvf openssl-1.0.0g.tar.gz
# cd openssl-1.0.0g
# ./config
# make
# make test
# make install

Net_SSLeay.pm
O Net_SSLeay.pm nada mais do que um mdulo necessrio para a implementao de aplicaes Perl que utilizem funes da biblioteca OpenSSL. o Net_SSLeay que ficar responsvel
pela gerao do certificado digital requerido para o site seguro do Webmin. Para a instalao
da verso 1.45 do Net_SSLeay, dever ser executada a seguinte sequncia de comandos:

# cd /usr/local/src
# wget http://www.cpan.org/modules/by-module/Net/Net-SSLeay-1.45.tar.
gz
# tar -zxvf Net-SSLeay-1.45.tar.gz
# cd Net-SSLeay-1.45
# perl Makefile.PL

Administrao de Sistemas Linux

# make

210

# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador
pode consultar o site http://www.cpan.org. Feito isso, o diretrio Net-SSLeay-1.45 pode ser
excludo, assim como o pacote de instalao.
Instalao do Net_SSLeay:

# cd /usr/local/src
# wget http://www.cpan.org/modules/by-module/Net/Net-SSLeay-1.45.tar.gz

# tar -zxvf Net-SSLeay-1.45.tar.gz


# cd Net-SSLeay-1.45.tar.gz
# perl Makefile.PL
# make
# make install

Webmin
Neste tpico ser abordada a instalao do programa Webmin. As instrues apresentadas
foram baseadas na verso 1.580 do Webmin, e devem ser semelhantes para verses futuras.
Dever ser executada a seguinte sequncia de comandos:

# cd /usr/local/src
# wget http://ufpr.dl.sourceforge.net/project/webadmin/webmin/1.580/
webmin-1.580.tar.gz
# tar -zxvf webmin-1.580.tar.gz
# cd webmin-1.580
# ./setup.sh /usr/libexec/webmin
Quando for executado o script setup.sh, o programa de instalao do Webmin, sero feitas
algumas perguntas que, na sua maioria, devem ser mantidas com suas respostas padro.
O administrador deve escolher uma senha de acesso para a aplicao nesse passo. O diretrio /usr/libexec/webmin armazenar todos os scripts, imagens e pginas HTML. A seguir
podem ser vistas as perguntas feitas pelo script setup.sh e as respostas utilizadas.

Config file directory [/etc/webmin]:


Log file directory [/var/webmin]: /var/log/webmin
Full path to perl (default /usr/bin/perl):
Web server port (default 10000):
Login name (default admin):
Login password:
Password again:
Use SSL (y/n): y
Start Webmin at boot time (y/n): y

instalao. Se o administrador quiser desinstalar o Webmin, ele deve executar o script de


desinstalao (/etc/webmin/uninstall.sh), que quando executado remove todos os diretrios e
arquivos adicionados por ele durante o processo de instalao.
Instalao do Webmin:

# cd /usr/local/src

Captulo 10 - Webmin

Feito isso, o diretrio /usr/local/src/webmin-1.580 pode ser excludo, assim como o pacote de

211

# wget http://ufpr.dl.sourceforge.net/project/webadmin/webmin/1.580/
webmin-1.580.tar.gz
# tar -zxvf webmin-1.580.tar.gz
# cd webmin-1.580
# ./setup.sh /usr/libexec/webmin

Interface de administrao
11 O acesso interface do Webmin pode ser feito por meio de qualquer navegador web:

22 URL de acesso: https://servidor:10000


11 Na pgina inicial, devem ser informados o usurio e a senha definidos durante a
instalao.
11 Apresenta um menu com as categorias principais de configurao do sistema.
11 Cada categoria possui uma srie de mdulos que representam os diversos servios
disponveis.
Finalizado o processo de instalao, deve-se testar o acesso ao Webmin. Para acessar sua
interface basta digitar a URL https://servidor:10000 em qualquer navegador web, onde
servidor o nome do servidor onde o Webmin est instalado. Se a instalao tiver sido executada de maneira correta, a pgina inicial do Webmin dever ser carregada. Nessa pgina,
o administrador deve informar o usurio e a senha de acesso aplicao, que foram criados
durante o processo de instalao do Webmin. Se o usurio e a senha fornecidos estiverem
corretos, o acesso ser autorizado e a pgina inicial do Webmin ser exibida. A Figura 10.1
mostra a pgina inicial do Webmin, que apresenta um menu na parte superior esquerda da
tela, com as categorias de configurao do sistema. Cada categoria composta por diversos

Administrao de Sistemas Linux

mdulos, que podem ser configurados de acordo com as necessidades do administrador.

Para cada categoria presente no menu, existe uma pgina principal correspondente, com os
diversos itens de configurao do sistema ou de programas instalados pelo administrador.
Navegando pelo Webmin, possvel notar que, apesar de existirem diversos mdulos

212

Figura 10.1
Pgina inicial
do Webmin.

disponveis para serem administrados atravs de sua interface, nem sempre esses
mdulos esto habilitados, pois, em determinados casos, pode acontecer de um programa
no estar devidamente instalado no servidor. Navegando pelas vrias opes disponveis
no Webmin, pode-se ver, em poucos instantes, como essa ferramenta extremamente
poderosa e de fcil utilizao, simplificando o trabalho tanto dos administradores novatos,
como dos mais experientes.

Mdulos
11 So incorporados ao Webmin, permitindo que os mais diversos servios sejam con-

trolados por meio de sua interface web.


11 Possui mais de 100 mdulos em sua instalao padro.
11 Existem mais de 300 mdulos desenvolvidos por terceiros para o Webmin.
11 possvel utilizar a API do Webmin para o desenvolvimento de novos mdulos.
11 Devem ser escritos preferencialmente em linguagem Perl e seguir algumas regras.
O Webmin possui um design modular, onde todo e qualquer servio ou caracterstica representado por meio de um conjunto de mdulos. O Webmin possui mais de 100 mdulos em sua
instalao padro, e muitos outros esto disponveis na internet. Existem mais de 300 mdulos
escritos por terceiros, disponveis para integrao com o Webmin, que cobrem desde LDAP
at IDSs, como o Snort. A maioria deles livre e regida pela GPL, porm alguns mdulos so
comerciais. A qualidade desses mdulos varia, mas pode-se dizer que, para qualquer servio
que se queira gerenciar existe um mdulo disponvel. Os mdulos do Webmin ficam armazenados por padro, em diretrios dentro do diretrio /usr/libexec/webmin, definido durante a
instalao. Para desenvolver um mdulo externo, necessrio seguir as seguintes regras:
11 Um mdulo, a princpio, pode ser escrito em qualquer linguagem, mas para evitar
problemas de incompatibilidade, recomendvel que seja escrito em linguagem Perl
(verso 5.8 ou superior) e no utilize programas externos.
11 Para ser exibido na interface do Webmin, um mdulo deve conter o arquivo module.info,
que contm as informaes necessrias sobre o mdulo; o arquivo images/icon.gif, que
contm o cone que representa o mdulo e o arquivo lang/en, que contm as mensagens
de texto utilizadas pelo mdulo, neste caso, na lngua inglesa.
11 Evitar o uso de frames, javascript, DHTML e Flash.
A seguir so descritas as categorias presentes na interface do Webmin:

11 Webmin: mdulos de configurao do Webmin.


11 System: mdulos de configurao de servios de sistema.
11 Servers: mdulos de configurao de servidores.
11 Others: mdulos de configuraes diversas.
11 Networking: mdulos de configurao de rede.

11 Cluster: mdulos de configuraes relativas a clusters.


11 Webmin: possui mdulos de configurao do Webmin, como criao de usurios, backup
dos arquivos de configurao etc.
11 System: possui mdulos de configurao de servios do sistema, como boot e shutdown,
gerenciamento de file systems, backup etc.

Captulo 10 - Webmin

11 Hardware: mdulos de configurao de hardware.

11 Servers: possui mdulos de configurao de servidores, como Apache e SSH.


213

11 Others: possui mdulos de configuraes diversas, como comandos do shell, status do


sistema e mdulos Perl.
11 Networking: possui mdulos de configurao de rede, como firewall e monitoramento
de banda.
11 Hardware: possui mdulos de configurao de hardware, como gerenciamento de
volumes lgicos, parties, impressoras etc.
11 Cluster: possui mdulos de configuraes relativas administrao de clusters.
Um novo mdulo pode ser instalado tanto atravs da linha de comando, quanto atravs da
prpria interface de administrao do Webmin. Esta ltima opo pode ser seguida navegando-se em sua interface atravs das opes: Webmin, Webmin Configuration, Webmin
Modules. As opes de instalao incluem: um mdulo localizado no prprio servidor, um
mdulo localizado no computador que est acessando a interface do Webmin, um mdulo
disponvel atravs de uma URL ou um mdulo padro do Webmin, presente na categoria
Un-used Modules.
A Figura 10.2 mostra a pgina principal de administrao do servio SSH, que est presente
na categoria Servers. Como pode ser visto, possvel realizar uma srie de configuraes no
servio SSH utilizando o Webmin. Cada um dos outros mdulos possui uma pgina inicial
equivalente a esta, com diversas opes de configurao disponveis. Por causa da grande
quantidade de mdulos, suas pginas no sero exibidas neste captulo, cabendo ao administrador navegar pela interface do Webmin para explorar todas as suas funcionalidades.

Administrao de Sistemas Linux

Usermin

214

11 Interface web desenvolvida para auxiliar usurios de sistemas Unix em tarefas cotidianas.
11 Possibilita alterao de senhas, edio de scripts de login e agendamento de tarefas.
11 O Webmin possui um mdulo que permite o gerenciamento do Usermin.
Devido s facilidades introduzidas pelo Webmin, seu desenvolvedor resolveu criar outro
programa de gerenciamento, chamado Usermin, desta vez voltado exclusivamente para a
administrao de tarefas relativas a usurios. Usermin pode ser acessado atravs da URL
https://servidor:20000.

Figura 10.2
Pgina de
administrao
do servio SSH.

Entre as caractersticas do Usermin podemos citar que prov uma interface web, por meio
da qual usurios de um sistema podem alterar suas senhas, editar seus scripts de login e
agendar tarefas no cron, entre outras possibilidades.
O Usermin pode ser gerenciado atravs do Webmin. Sendo assim, possvel restringir o
nvel de autonomia de cada usurio. Durante este curso, no trataremos do aprendizado
e da utilizao do Usermin. Cabe ao aluno o estudo mais aprofundado dessa ferramenta
de grande utilidade nas tarefas realizadas pelos administradores de sistemas. O Usermin
possui os seguintes mdulos:
11 Usermin: permite a troca de linguagem e de tema;
11 Others: permite acesso a vrias outras aplicaes, como file manager, submisso de
tarefas utilizando o cron e documentao do sistema, entre outros.
11 Mail: permite a leitura de mensagens, criao de redirecionamentos, filtros etc.;
11 Login: permite ao usurio administrar sua conta, podendo fazer mudana de senha,
visualizar processos e executar comandos.
11 Applications: permite iniciar aplicaes como GPG encryption e fazer upload e download
de arquivos, entre outros.
A Figura 10.3 mostra a pgina inicial do Usermin, com um menu composto por categorias
na parte superior esquerda da tela. Cada categoria composta por diversos mdulos, que
podem ser configurados de acordo com as necessidades do usurio.

Captulo 10 - Webmin

Figura 10.3
Tela inicial
do Usermin.

215

216

Administrao de Sistemas Linux

Roteiro de Atividades 10
Atividade 10.1 Criando um usurio para o Webmin
Abra o seu navegador preferido e digite na barra de endereos a URL de acesso ao Webmin
instalado em seu computador.
1. Faa login com o usurio admin e crie um novo usurio no Webmin com permisso para

administrar os seguintes servios:


11 Bootup and Shutdown;
11 Filesystem Backup;
11 Log File Rotation;
11 Printer Administration;
11 Running Processes;
11 Scheduled Cron Jobs;
11 System Logs;
11 Users and Groups.
Crie uma senha para esse usurio e permita o acesso dele somente a partir de seu computador.

Atividade 10.2 Administrando contas e grupos


Faa logout no Webmin e faa novamente o login com o novo usurio criado. Crie dois usurios, um para voc e outro para o instrutor. As duas contas devem possuir senha e devem
ter como grupo primrio o grupo administradores, que ainda no foi criado.

Atividade 10.3 Alterando a prioridade do processo do Webmin


Nesta atividade, utilizaremos os conceitos vistos no Captulo 3, sobre processos, para realizar
as seguintes tarefas:
1. Aumente o nvel de prioridade do processo pai do Webmin. Defina o nice level desse pro-

cesso para o valor -5.


2. Verifique por meio da interface texto do Linux se a alterao feita por intermdio do

Webmin surtiu o efeito esperado.

interface texto do Linux.


4. Verifique se as alteraes feitas no item 3 foram replicadas no Webmin.

Atividade 10.4 Agendando backups


Nesta atividade, agendaremos o backup completo dos arquivos pessoais de todos os usurios do sistema, todas as sextas-feiras s 22h.
1. Crie um diretrio para armazenar o backup no disco do prprio computador.
2. Acesse a opo Filesystem Backup e selecione as opes, de acordo com o enunciado

Captulo 10 - Roteiro de Atividades

3. Altere novamente o nvel de prioridade desse processo para o valor padro, utilizando a

acima. O backup deve ser feito no diretrio criado no item anterior.


217

3. Verifique por meio da interface texto do Linux se o backup foi realmente agendado.
4. Desabilite a execuo do backup agendado, utilizando a interface do Webmin. Em seguida,

verifique por meio da interface texto do Linux se a operao foi efetuada com sucesso.

Atividade 10.5 Adicionando impressoras


Nesta atividade, voc vai adicionar uma impressora em seu computador, utilizando o
Webmin. Essa impressora est configurada no computador do instrutor, que o servidor de
impresso da rede.
1. Adicione uma impressora ao seu sistema, por intermdio da rede local. Pea ao instrutor

os dados necessrios para que voc possa realizar a instalao.


2. Verifique por meio da interface texto do Linux se a impressora foi devidamente instalada.

Atividade 10.6 Direcionando o registro de eventos para um servidor remoto


Nesta atividade, voc e seu colega de dupla trabalharo em conjunto.
1. Pea ao seu colega que configure o computador dele, de modo a receber os registros de

eventos gerados pelos outros computadores da rede (servidor de logs).


2. Configure, por meio do Webmin, o syslogd do seu computador, de modo a enviar para o

servidor de logs todos os registros de eventos gerados por ele.


3. Verifique se a alterao feita por meio do Webmin surtiu o efeito esperado.
4. Gere algum evento em seu computador e verifique se ele foi registrado no servidor de

logs do seu colega de dupla.


5. Repita os quatro primeiros itens desta atividade, agora invertendo os papis com seu colega.

Atividade 10.7 Configurando o rotacionamento de logs


Nesta atividade, voc vai configurar o rotacionamento dos arquivos de logs de seu computador.
1. Crie, por intermdio do Webmin, uma nova entrada no arquivo /etc/syslog.conf, que dire-

cione qualquer evento envolvendo o syslog para o arquivo /var/log/syslog.log. O arquivo


syslog.log deve ser criado.
2. Configure esse arquivo com rotacionamento semanal. No se esquea de configurar o

post-rotation.

Atividade 10.8 Configurando o nvel de execuo e inicializao de servios

Administrao de Sistemas Linux

Nesta atividade, iremos alterar configuraes relativas ao processo de inicializao de

218

seu computador.
1. Acesse o Webmin e finalize a execuo de algum servio que voc no esteja utilizando

em seu computador. Agora desabilite esse servio da inicializao do sistema.


2. Verifique por meio da interface texto do Linux se esse servio foi realmente desabilitado.
3. Agora desabilite este servio da inicializao do sistema.

Bibliografia
11 NEMETH, E. et al. UNIX and Linux System Administration Handbook
(4th Edition). Prentice Hall, 2010.
11 FRISCH, E. Essential System Administration (3rd Edition). O Reilly &
Associates Inc., 2002.
11 REISS, L., RADIN, J. Unix System Administration Guide. Osborne McGraw
Hill, 1993.
11 McCARTY, B. Aprendendo Red Hat Linux. Editora Campus, 2000.
11 COOPER, J. Book of Webmin Or How I Learned to Stop Worrying and Love
Unix. No Starch Press, 2003.
11 LOVE, P., et al. Beginning Unix. Wrox, 2005.
11 IBM Developer Works http://www.ibm.com/developerworks/linux/library/
11 Linux Doc http://www.linuxdoc.org/
11 Linux Security http://www.linuxsecurity.com/
11 OReilly http://oreilly.com
11 Linux Journal http://www.linuxjournal.com/
11 Linux Magazine http://www.linux-mag.com/
11 Amanda http://www.amanda.org
11 Bacula http://www.bacula.org/en/
11 CUPS http://www.cups.org

Bibliografia

11 Webmin http://www.webmin.com/

219

220

Administrao de sistemas Linux

LIVRO DE APOIO AO CURSO

Este curso indicado para analistas de suporte e responsveis pela manuteno de servidores e especialistas que desejem aprofundar os conhecimentos para se
tornarem administradores de sistemas Linux. Administradores de sistemas que precisam gerenciar sistemas

Este livro inclui os roteiros das atividades prticas e o


contedo dos slides apresentados em sala de aula,
mento em suas organizaes ou localidades de origem.

ISBN 978-85-63630-20-9

9 788563 630209

Potrebbero piacerti anche