Vous êtes sur la page 1sur 184

Administrao

de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga

A RNP Rede Nacional de Ensino


e Pesquisa qualificada como
uma Organizao Social (OS),
sendo ligada ao Ministrio da
Cincia, Tecnologia e Inovao
(MCTI)

responsvel

pelo

Programa Interministerial RNP,


que conta com a participao dos
ministrios da Educao (MEC), da
Sade (MS) e da Cultura (MinC).
Pioneira no acesso Internet no
Brasil, a RNP planeja e mantm a
rede Ip, a rede ptica nacional
acadmica de alto desempenho.
Com Pontos de Presena nas
27 unidades da federao, a rede
tem mais de 800 instituies
conectadas. So aproximadamente
3,5 milhes de usurios usufruindo
de uma infraestrutura de redes
avanadas para comunicao,
computao e experimentao,
que contribui para a integrao
entre o sistema de Cincia e
Tecnologia, Educao Superior,
Sade e Cultura.

Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
Ministrio da
Cincia, Tecnologia
e Inovao

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
2015

Copyright 2015 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
Lincoln da Mata
Reviso Tcnica
Bruno Alves Fagundes
Coordenao Acadmica de Administrao de Sistemas
Renato Duarte
Equipe ESR (em ordem alfabtica)
Adriana Pierro, Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask,
Elimria Barbosa, Evellyn Feitosa, Felipe Nascimento, Lourdes Soncin, Luciana Batista,
Luiz Carlos Lobato e Yve Marcial
Capa, projeto visual e diagramao
Tecnodesign
Verso
2.0.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. 2. ed. Rio de

Janeiro: RNP/ESR, 2015.

180 p. : il. ; 28 cm.

ISBN 978-85-63630-52-0


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

(computadores). I. Braga, Marcelo. II. Titulo.

CDD 005.432

Sumrio
Escola Superior de Redes
A metodologia da ESRix
A quem se destinax
Convenes utilizadas neste livroxi
Permisses de usoxi
Comentrios e perguntasxii
Sobre os autoresxii

1. Introduo ao Sistema Operacional Linux


Introduo1
Atribuies de um administrador de sistemas2
Histrico3
Slackware5
Red Hat Enterprise Linux5
Debian5
Suse5
Fedora5
CentOS5
Ubuntu6
Arquitetura6
Kernel6
Biblioteca de funes padro8
Shell9
Aplicaes9

iii

Sistema de arquivos 10
Inode11
Tipos de arquivos12
Arquivo regular12
Diretrio12
Arquivo de dispositivo13
Socket13
Named pipe14
Link14
Vantagens e desvantagens17
Comando ls17
Permisses de arquivos18
Bits de permisso18
Bits especiais19
Mudando permisses21
Mscara de usurio22

2. Usurios e grupos
Introduo25
Grupos26
Arquivo /etc/gshadow27
Usurios28
Problemas de segurana29
Shadow passwords 29
Tipos de contas de usurios30
Senhas31
O risco das senhas provveis31
Criando contas de usurios31
Criar entrada nos arquivos /etc/group e /etc/gshadow32
Criar entrada nos arquivos /etc/passwd e /etc/shadow32
Definir senha inicial 34
Criar diretrio de trabalho 34
Copiar arquivos de inicializao34
Testar nova conta35
Administrando grupos35
Criando grupos36
Modificando grupos36
Removendo grupos36
iv

Administrando contas de usurios37


Criando contas de usurios37
Modificando contas de usurios38
Desabilitando contas de usurios38
Removendo contas de usurios39
Monitorando usurios39

3. Processos
Processos41
Tipos de processos42
Componentes de um processo43
Ciclo de vida de um processo45
Multiprocessamento47
Estados de um processo49
Prioridades e escalonamento de processos51
Uso de sinais53
Monitoramento de processos54
Execuo peridica de tarefas56
Cron56
Anacron58
Fcron58

4. Sistema de arquivos
Estrutura dos discos59
Particionamento60
Tipos de partio61
Sistema de arquivos61
Comandos63
Tipos de sistemas de arquivos suportados66
Sistema de quotas67
Preparando o sistema67
Habilitando67
Inicializando68
Editando quotas69
Verificao e gerenciamento71

5. Backup
Introduo73
Tipos de backup74
Mdias de backup75
Fitas magnticas75
Mdias pticas76
Storage77
Comandos do sistema79
Comando tar79
Comando cpio80
Comando dump80
Comando rsync81
Comandos gzip/gunzip e bzip2/bunzip281
Softwares de backup82
Pacotes gratuitos82
Pacotes comerciais83
Polticas de backup84
Cuidados no armazenamento das mdias85

6. Servio de impresso
Introduo87
Histrico87
Arquitetura do sistema de impresso88
Softwares gerenciadores de impresso89
LPD (Line Printer Daemon)90
LPRng91
CUPS92

7. Registro de eventos
Introduo99
Sysklogd100
Syslogd100
Klogd103
Rsyslog 104
Syslog-ng105

vi

Rotacionamento de arquivos de log108


Arquivo de configurao do logrotate109
O comando logger110
Servidor de logs110
Configurando os servidores clientes111
Aplicativos para anlise de arquivos de log112
Logwatch112
Swatch 113
Logcheck115
Recomendaes bsicas de segurana116

8. Boot & Shutdown e Kernel


Inicializao do sistema119
Basic Input/Output System (BIOS)120
Carregadores de boot (boot loaders)120
Iniciando o kernel124
Processo init124
Upstart127
systemd129
Shutdown130
Arquitetura do kernel131
Kernel Monoltico131
Kernel Modular ou Hbrido132
Configurando e compilando o kernel133
Configurando os componentes do kernel133
Compilando o kernel135
Instalando o kernel136
Habilitando o kernel136
Testando o kernel139

9. Segurana bsica e procedimentos operacionais


Segurana bsica141
Analisadores de senhas143
Contas compartilhadas144
SUID e SGID145
Atualizao de software145

vii

Procedimentos operacionais148
Poltica de utilizao de recursos149
Informaes sobre os novos usurios150
Atendimento aos usurios151
Controle de recursos computacionais152
Diagnstico de falhas153
Rotina de backup154

10. Webmin
Caractersticas gerais157
Instalao158
Perl159
OpenSSL159
Net_SSLeay.pm160
Webmin161
Interface de administrao162
Mdulos163
Usermin165

viii

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.

ix

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
Seu objetivo apresentar os conceitos bsicos, histria e arquitetura do sistema operacional
Linux, com prticas de instalao, configurao e administrao do sistema de parmetros,
senhas e contas de usurios, backup, servio de impresso, registro de eventos syslog,
monitoramento de usurios, contabilidade de processos, configurao do ncleo do sistema
operacional, aplicao de noes bsicas de segurana, entre outras atividades relacionadas
maior comunidade de software livre do mercado O curso composto de 10 captulos de
embasamento terico e atividades correlatas para aprendizado e fixao do conhecimento.
O curso tem como objetivo apresentar as facilidades de administrao e gerenciamento, que
sero exploradas com maior profundidade nos demais cursos da rea de Administrao de
Sistemas da Escola Superior de Redes da RNP.

A quem se destina
Profissionais da rea de informtica que sero responsveis por administrar ambientes
que utilizam as infraestrutura com sistemas operacionais Linux. Podem tambm participar
outros profissionais de TI, programadores e analistas de suporte de sistemas.

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: TORRES, Pedro et al. Administrao de Sistemas Linux: Redes e Segurana.
Rio de Janeiro: Escola Superior de Redes, RNP, 2013.

xi

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.
Bruno Fagundes Especialista em Segurana de Redes com mais de 7 anos de experincia
em administrao de sistemas Linux. Atualmente Tecnologista no Laboratrio Nacional de Computao Cientfica atuando no suporte e administrao da plataforma de alto
desempenho e gerenciamento de servios de rede. Professor no Instituto Superior de
Tecnologia de Petrpolis em 2014. Contedista e Instrutor da Escola Superior de Redes nos
cursos de Administrao de sistemas Linux.

xii

1
Conhecer o histrico do Unix e do Linux; Entender a arquitetura do Linux;
Aprender o conceito de sistema de arquivos; Conhecer os tipos de arquivos do Linux;
Entender o conceito de permisso de arquivos.

conceitos

Arquitetura; Sistema de arquivos; Tipos de arquivos; Permisses de arquivos.

Introduo
Requisitos do administrador de sistemas:

11 Responsabilidade pelos recursos computacionais.


11 Conhecimento tcnico.
11 Experincia.
11 Aperfeioamento constante.
11 Entendimento dos objetivos e metas da empresa.
11 Conhecimento das necessidades dos usurios.
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 ao do negcio da empresa para conse-

Captulo 1 - Introduo ao Sistema Operacional Linux

objetivos

Introduo ao Sistema
Operacional Linux

guir tirar o melhor proveito possvel dos recursos computacionais sob sua responsabilidade.
1

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. Esse mdulo, de carter essencialmente prtico, foi
criado pela Escola Superior de Redes para explorar os conceitos e prticas mais importantes
da administrao de sistemas Linux. Ele representa a primeira etapa na formao de um
administrador de sistemas.

Atribuies de um administrador de sistemas


Atribuies de um administrador:

11 Instalar, configurar e manter o hardware dos equipamentos.


11 Instalar, configurar e manter atualizado e seguro 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:
11 Instalar, configurar e manter operacional toda a infraestrutura de TI (servidores, estaes de
trabalho, impressoras, dispositivos de armazenamento, equipamentos de conectividade etc.);
11 Instalar, configurar, manter atualizado e seguro todo o software necessrio para o funcionamento correto dos sistemas (Sistemas Operacionais e aplicativos);
11 Interligar os recursos computacionais que funcionam em rede, configurando os equipamentos de modo adequado;
11 Elaborar e executar uma poltica de backup adequada;
11 Elaborar polticas de uso dos recursos de TI;
11 Executar e controlar as operaes de gerenciamento de contas de usurios nos sistemas
corporativos, bem como suas permisses de acesso aos recursos desses sistemas;
11 Controlar e supervisionar o uso dos recursos computacionais para assegurar que sejam

Administrao de Sistemas Linux

utilizados de forma segura e adequada;


11 Diagnosticar e solucionar as situaes de falha no funcionamento e na operao dos
recursos computacionais que compem os sistemas;
11 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 j descritas.
2

Entre as diversas caractersticas desejveis em um administrador de sistemas, podemos destacar:


11 Conhecimento tcnico aprofundado e abrangente da rea, o que requer constante atualizao;
11 Entendimento dos objetivos e metas da instituio;
11 Conhecimento das necessidades dos usurios;
11 Capacidade de diagnosticar e resolver problemas, o que depende de sua experincia prtica;
11 Competncia para trabalhar em equipe e de se relacionar com pessoas, para proporcionar um bom atendimento aos usurios;
11 Capacidade de organizao;
11 Proatividade 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.

Histrico
1964:

11 AT&T, GE e MIT Projeto para criao de um novo Sistema Operacional (Multics).


1969:
11 Incio do Unix na Bell Labs da AT&T (Thompson).
1973:
11 Unix reescrito na linguagem C.
11 Novo cdigo-fonte.
1977:
11 Incio da distribuio BSD.
Em meados dos anos 60, mais precisamente 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. Esse projeto, no entanto, no foi muito
bem-sucedido e, devido a interesses divergentes, o Bell Labs o abandonou em 1969. Nesse
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. Esse 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. Essa 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.

Captulo 1 - Introduo ao Sistema Operacional Linux

MIT
Massachusetts Institute
of Technology. um
centro universitrio de
educao e pesquisa
privado em Cambridge,
Massachusetts, nos
EUA. Um dos lderes
mundiais em cincia,
engenharia e tecnologia.

Dcada de 80:

11 System V (AT&T).
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 e SunOS, entre outros.
11 Incio do projeto GNU de Richard Stallman.
11 Linux (System V) uma alternativa aos sistemas comerciais.
22 Caractersticas:
33 Segurana.
33 Confiabilidade.
33 Versatilidade.
33 Estabilidade.
33 Licena gratuita.
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 Equipment Corporation, baseadas na distribuio BSD. Alm disso, surgiram verses
livres de Unix como FreeBSD, NetBSD e OpenBSD, todas com base na distribuio BSD.
Nesse contexto, em 1984, Richard Stallman comeou um projeto para criar um Sistema
Operacional compatvel com o Unix, batizado de GNU. Stallman, junto com um grupo de
programadores, comeou a desenvolver os principais componentes do sistema, como compiladores, editores de texto etc.
Dcada de 90:

11 Linus Torvalds desenvolve o kernel do Linux.


11 Criao do Sistema Operacional GNU/Linux.
11 Verses livres baseadas na distribuio BSD: FreeBSD, OpenBSD e NetBSD.
11 Primeiras distribuies do Linux (Slackware, Red Hat, Debian, SUSE etc.).

Administrao de Sistemas Linux

Em 1991, o GNU j possua diversos componentes, mas ainda no tinha um kernel funcional.

Em paralelo a isso, em 1990 um ento estudante de cincia 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).

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, 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, ampla documentao etc. 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 essa 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 (que a verso de produo), testing (contm verses mais atuais dos pacotes
que ainda no foram homologadas para entrar em produo) e unstable (usada 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). A distribuio SUSE 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.

Fedora
uma 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 manter seu foco no mercado corporativo e lanou a distribuio paga
Red Hat Enterprise Linux. Em paralelo a isso, foi lanado o projeto Fedora, uma distribuio
gratuita baseada no Red Hat Linux.

CentOS
Essa distribuio deriva diretamente do Red Hat Enterprise Linux atravs dos seus arquivos
fonte originais. A Red Hat permite o uso dos fontes na condio de que se retire todas as referncias comerciais sua marca. A principal vantagem que o CentOS uma slida e poderosa

Captulo 1 - Introduo ao Sistema Operacional Linux

Em 2011, a Novell e a SUSE foram compradas pela empresa Attachmate.

distribuio Linux com o mesmo potencial do Red Hat e com a vantagem de ser gratuita.
5

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, com foco 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.

Arquitetura
O GNU/Linux ou Linux (como mais conhecido) um Sistema Operacional multitarefa,
multiusurio e multiplataforma. 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 General Public License (GPL), que permite executar, alterar
e distribuir qualquer software regido por ela. Sua arquitetura, como mostra figura 1.1, pode
ser representada por uma pirmide dividida em camadas. O papel de cada uma dessas
camadas descrito a seguir.
Usurios
Aplicaes

Shell

Bibliotecas de funes padro


Kernel
Figura 1.1
Arquitetura.

Hardware

Kernel
11 Ncleo do Sistema Operacional.

11 Principais funes:
22 Deteco de hardware.
22 Gerenciamento de entrada e sada.
22 Manuteno do sistema de arquivos.
22 Gerenciamento de memria e swapping.
22 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
Administrao de Sistemas Linux

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.
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. As principais
funes do kernel so:
6

11 Deteco de hardware;
11 Gerenciamento de entrada e sada;
11 Manuteno do sistema de arquivos;
11 Gerenciamento de memria e swapping;

Para evitar esse


tipo de problema,
importante usar
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.

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, como, por exemplo, uma placa de rede, instalado no sistema, 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 lanados
aps a data de lanamento da verso do kernel utilizado.

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.

Manuteno do sistema de arquivos


11 o responsvel pela organizao dos arquivos do sistema e dos usurios;

11 Forma de implementao definida e gerenciada pelo kernel.


O sistema de arquivos tem por objetivo organizar os 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 ele implementado, so definidos e gerenciados pelo kernel. A figura 1.2 mostra
um exemplo de organizao do sistema de arquivos do Linux.

Captulo 1 - Introduo ao Sistema Operacional Linux

Saiba mais

11 Gerenciamento de processos.

etc

home

maria

Figura 1.2
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. Essa 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.

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
Administrao de Sistemas Linux

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 etc.
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
comandos. Vale ressaltar que essa mensagem pode ser configurada pelo prprio usurio.
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, esse 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

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.

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 etc.). Cada usurio pode escolher e trabalhar com o interpretador mais adequado s suas necessidades. O interpretador
de 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.

Aplicaes
Programas com os quais os usurios interagem:
11 Compiladores.
11 Editores de texto.
11 Planilhas.
11 Jogos etc.

Captulo 1 - Introduo ao Sistema Operacional Linux

Saiba mais

verifica no arquivo passwd qual interpretador de comandos est definido para o usurio.

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
que 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

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.

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.3 mostra como esto dispostos
os blocos em uma partio do Linux. O bloco de boot o primeiro bloco do disco, e no
gerenciado pelo 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.

Administrao de Sistemas Linux

Bloco de boot

10

Super bloco

Inodes

Tabela de blocos

Blocos de dados

Figura 1.3
Sistemas de
Arquivos Linux.

Inode
Estrutura de dados mantida pelo kernel.
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 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 etc. 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.4.
Hard link count
Tamanho em bytes

Tipo de arquivo

-rwxr-xr-x
Permisses

1 root bin

85924

Dono

Sep

27

2003

/usr/bin/su

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 regular file

Inode: 523277

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

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 nesse 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

Captulo 1 - Introduo ao Sistema Operacional Linux

Figura 1.4
Informaes
contidas nos
inodes.

Nome do arquivo

em um sistema de arquivos.
11

# df -i

Saiba mais

Filesystem Inodes IUsed IFree IUse% Mounted on


/dev/sda1

2559088 48963 2510125 2%

Tipos de arquivos
11 Arquivos regulares.

Para verificarmos o
nmero de inodes
livres em um sistema
de arquivos, podemos
utilizar o comando df
com a opo -i.

11 Diretrios.
11 Arquivos de dispositivo (bloco e caractere).
11 Sockets.
11 Named pipes.
11 Symbolic link.
No Linux, qualquer objeto que 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.

Arquivo regular
11 Conjunto de bytes.

11 Programa executvel, arquivo texto, imagem etc.


11 Criados por editores de texto, comandos etc.
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, de comandos do Linux (exemplo: touch) etc. A sua remoo
pode ser feita com o comando rm.

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

Administrao de Sistemas Linux

Um diretrio nada mais do que um arquivo cujo contedo o nome dos arquivos nele

12

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.

Saiba mais
Diretrios podem ser
criados com o comando
mkdir e removidos
com o comando rmdir,
se estiverem vazios,
ou rm -r, independentemente de estarem
vazios ou no.

Arquivo de dispositivo
11 Mecanismo usado 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.
11 So criados com mknod e removidos com rm.
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 de o 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 operaes de entrada e sada, ou seja, os dados so lidos e escritos diretamente no dispositivo.

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 desses dispositivos so feitas utilizando buffers intermedirios.

Socket
11 Utilizado para comunicao bidirecional entre processos.

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 usado 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) usado para a
comunicao entre processos executados em um mesmo Sistema Operacional. O outro
tipo o socket de rede, que usado 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, usado pelo
protocolo UDP; o stream socket, que um tipo de socket orientado conexo, usado pelo
protocolo TCP, e o raw socket, utilizado por protocolos de gerenciamento e monitoramento

Captulo 1 - Introduo ao Sistema Operacional Linux

11 Unix Domain Sockets.

13

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 entre dois processos rodando em uma 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 entre dois processos
executados no mesmo Sistema Operacional. Um named pipe referenciado pelos processos
que conecta atravs de seu nome e faz parte do sistema de arquivos. Ele 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 conecta 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.

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

Administrao de Sistemas Linux

etc

14

home

maria

linux.conf

Exemplos:

joo

relatorio.txt

Figura 1.5
Hard link para
arquivo.

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

# ln ~maria/relatorio.txt ~joao/relatorio.txt

# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-- 2 maria maria 200 Feb 01 18:00 /home/maria/relatorio.txt
-rw-r--r-- 2 maria maria 200 Feb 01 18:00 /home/joao/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
arquivos nos diretrios dos usurios. Dessa forma, sempre que um dos usurios modificar
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.6. Um hard link criado com o comando ln e
s pode apontar para arquivos regulares ou symbolic links. A existncia desse tipo de link
no to simples de ser verificada.
Ele pode ser identificado pelo nmero que aparece aps as permisses associadas a um
arquivo original, existe um hard link apontando para ele.
Arquivo
de Joo

Figura 1.6
Hard link.

Inode de
relatorio.txt

Inode
do link

Arquivo
de Maria

Arquivo
relatorio.txt

Captulo 1 - Introduo ao Sistema Operacional Linux

arquivo, como pode ser visto no exemplo a seguir. O nmero 2 identifica que alm do

15

Symbolic link
11 Arquivos que so ponteiros para outros arquivos.

11 Fornecem referncia por nome.


11 Ocupam 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. Nesse 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 a seguir:

# 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-- 1 maria maria 200 Feb 01 18:00 /home/maria/relatorio.txt
lrwxrwxrwx 1 joao joao 20 Feb 05 11:30 relatorio.txt -> ~maria/
relatorio.txt
No exemplo, 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.7.
/

Administrao de Sistemas Linux

etc

16

home

maria

linux.conf

joo

relatorio.txt

link

Figura 1.7
Symbolic link para
arquivo.

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 original, como pode ser visto na figura 1.8,
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 usado. Porm,
como esse inode guarda informaes sobre o proprietrio do arquivo, em determinadas
situaes isso 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. Nesse caso, o symbolic link ficaria sem referncia. 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.

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 man ls.

Captulo 1 - Introduo ao Sistema Operacional Linux

Figura 1.8
Symbolic link.

Arquivo
de Joo

17

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

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

Tabela 1.1
Comando ls
(tipos de arquivos).

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 em uma 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 a seguir, 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/bash
-rwxr-xr-x 1 root root 85924 01 Dec 2002 /bin/bash

Bits de permisso
So nove os bits de permisso, usados para determinar as operaes que podem ser exe-

Administrao de Sistemas Linux

cutadas em um arquivo, e quem pode execut-las. O Linux define conjuntos de permisses

18

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 a leitura de um arquivo normal. O bit de escrita, por
sua vez, permite que o contedo do 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, esse 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.
Dono
1
read (r)

Outros
1

= 751

Grupo

write (w)
execute (x)
Signicado para arquivos

Signicado para diretrios

permitir abrir e ler

listar, se x est setado

modicar ou truncar; deletar ou


renomear: ver perm. dir.

criar, renomear e deletar arquivos,


se x est setado

executar arquivo

entrar, mas no listar

Bits especiais
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.
Setgid:
11 Usados em arquivos executveis e diretrios.
11 Representado pela letra s.
Setuid:
11 Utilizados em arquivos executveis.
11 Representado pela letra s.
Dissemos anteriormente 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.

Sticky Bit
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

Captulo 1 - Introduo ao Sistema Operacional Linux

Figura 1.9
Bits de permisso.

Acesso

memria necessitavam de que alguns programas se mantivessem na memria continuamente.


19

O sticky bit era importante nesse contexto. Ele garantia que um determinado processo
permaneceria na memria principal, no tendo sua performance prejudicada por conta do
esquema de swapping. Hoje, 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. Desse 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. Essa 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)
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 leva em conta quando so definidos em programas executveis ou em diretrios.
Quando o bit SGID definido em um diretrio, todos os arquivos criados nesse diretrio
pertencero ao grupo que 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)
O bit SUID s possui efeito em arquivos executveis. Ele permite que um arquivo seja
executado como se estivesse sendo executado pelo dono do arquivo, independente do
usurio que o tenha executado. O arquivo executvel passwd, usado para troca de senha,
um exemplo de arquivo que tem o bit SUID definido. Isso necessrio para que usurios
comuns possam alterar suas senhas, j que somente o usurio root tem permisso de
escrita no arquivo /etc/shadow, que armazena as senhas dos usurios do sistema. Embora
qualquer tipo de arquivo possa ter esse bit definido, muitas verses do Linux s o leva 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

Administrao de Sistemas Linux

inserida no lugar do caractere -.

20

-rws-sr-t
t aqui indica que o programa sticky
s aqui indica que o programa SGID
s aqui indica que o programa SUID

Figura 1.10
SUID, SGID
e sticky bit.

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 notao
octal quanto uma sintaxe mais mnemnica. Entretanto, preferimos trabalhar com a 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:
11 Primeiro dgito octal: refere-se s permisses do dono do arquivo;
11 Segundo: refere-se s do grupo dono do arquivo;
11 Terceiro: refere-se 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

Tabela 1.2
Mudando
permisses
de arquivos.

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

A tabela 1.3 ilustra as oito possveis combinaes usadas para definir ou no os bits
especiais SUID, SGID e sticky bit.

Captulo 1 - Introduo ao Sistema Operacional Linux

de execuo (eXecute) respectivamente.

21

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


Esse comando atribui todas as permisses para o dono, ou seja, ele 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.

Mscara de usurio
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 umask
e as permisses resultantes diferem bastante da relao aplicada 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,

Administrao de Sistemas Linux

arquivos texto e diretrios.

22

Tabela 1.3
Mudando
permisses
especiais.

Comando

Funo

umask

Estabelecer permisses padres para arquivos criados.

Octal

Binria

Permisses

Tabela 1.4
Comando umask.

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

---

---

---

Captulo 1 - Introduo ao Sistema Operacional Linux

Arquivo

23

24

Administrao de Sistemas Linux

2
Usurios e grupos
so os comandos para modificar os parmetros de uma conta; Entender o mecanismo
de shadow passwords; Conscientizar-se da importncia das senhas para a segurana
do sistema; Aprender a manipular grupos: criar, alterar e excluir; Saber como
manipular contas de usurios: criar, alterar, desabilitar e excluir; Como monitorar
as atividades dos usurios logados no sistema.

conceitos

Grupos; Usurios; Administrando grupos; Administrando contas de usurios.

Introduo
Quando o Sistema Operacional Unix foi criado, era comum a criao de contas de usurios.
Estes 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 ou estudantes de computao e
reas relacionadas. Com a adoo em massa dos computadores pessoais, a partir da dcada
de 1980, esse modelo comeou a cair em desuso.
Com a popularizao da internet, os sistemas comearam e se tornar alvo 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, por exemplo, 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

Captulo 2 - Usurios e grupos

objetivos

Conhecer os parmetros associados a grupos e conta de um usurio; Saber quais

estudo desta sesso de aprendizagem.


25

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.
33 Exemplo:
33 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 do exemplo a seguir:

financeiro::1002:funcionario3,funcionario4,funcionario5

11 Um usurio pode fazer parte de vrios grupos:


22 Grupo primrio: GID do usurio (presente no arquivo /etc/passwd).
22 Grupos secundrios: relacionados nos arquivos /etc/group e /etc/gshadow.
O comando chgrp modifica o grupo ao qual um arquivo ou diretrio pertence.
Bit SGID: todos os arquivos criados em um diretrio com o bit SGID definido pertencero
automaticamente ao grupo proprietrio desse diretrio.
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 esse campo em branco. Para incluir novos usurios em um grupo,
preciso editar os arquivos /etc/group e /etc/gshadow, e acrescentar ao final da linha referente
Administrao de Sistemas Linux

ao grupo o nome desses usurios. Um usurio pertence obrigatoriamente a um grupo primrio e pode fazer parte de vrios grupos secundrios, tendo assim diversos tipos de permisses. Nesta sesso sero vistos comandos que podem automatizar tarefas de manipulao de
grupos, eliminando a necessidade de edio dos arquivos /etc/group e /etc/gshadow.
Alguns 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 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.
26

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. A primeira pouco prtica e consiste em usar o comando chgrp
para mudar o grupo ao qual o arquivo pertence, lembrando de utilizar esse comando sempre
que um novo arquivo for criado. A outra soluo utilizar o bit especial SGID, visto na sesso
de aprendizagem 1, para que todos os arquivos criados no diretrio /home/financeiro
pertenam automaticamente ao grupo proprietrio desse diretrio. Exemplos:

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

Alterando permisso no arquivo tabelas.doc para o grupo users.


# chgrp -c users tabelas.doc
# ls -la tabelas.doc
-rw-r--r 1 aluno users 23 Abr 9 1523 tabelas.doc

# chmod 664 tabelas.doc


# ls -la tabelas.doc
-rw-rw-r-- 1 aluno users 23 Abr 9 1523 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.
22 Exemplo:
33 logistica::510:marcio,marcelo,joel
O arquivo /etc/gshadow criado pelo comando pwconv, que habilita o esquema de shadow
passwords no Linux, que ser apresentado mais frente. Cada linha desse arquivo possui
do arquivo /etc/gshadow.

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

informaes relativas a um determinado grupo. O exemplo a seguir mostra uma linha tpica

27

Usurios
Arquivo /etc/passwd:

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

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 shell vlido. Dessa forma, esses usurios no conseguem se logar no
sistema e apenas utilizam algum servio, como o correio eletrnico 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, usado pelo administrador do sistema, que deve utilizar essa
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
Administrao de Sistemas Linux

instalao do sistema, alm do usurio root, so criados diversos usurios de sistema, com

28

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 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).
11 Usa o caractere x no lugar da senha quando utilizado o esquema de shadow
passwords.
/etc/shadow:
11 Somente o administrador pode ler esse 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 serem lembradas, mas tambm so
muito 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, desde 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 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 desse 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 que armazena as senhas.

Captulo 2 - Usurios e grupos

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

29

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:
11 nome de usurio;
11 senha criptografada;
11 last_changed: representa o nmero de dias desde o dia 1/1/1970, quando a senha foi
trocada pela ltima vez;
11 minimum: representa o nmero de dias que o usurio deve aguardar para poder alterar
sua senha;
11 maximum: o nmero de dias que a senha ser vlida (aps isso o usurio obrigado a
alter-la);
11 warn: representa o nmero de dias antes de a senha expirar em que o usurio ser
avisado de que deve alter-la;
11 inactive: o nmero de dias aps a senha ter sido expirada em que a conta ser desabilitada;
11 expire: representa o nmero de dias, desde o dia 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. Esse comando cria os arquivos /etc/shadow e
/etc/gshadow. Para desabilitar o esquema de shadow passwords, basta executar o comando
pwunconv. Esse comando remove os arquivos /etc/shadow e /etc/gshadow, e armazena novamente as senhas criptografadas dos usurios no arquivo /etc/passwd.

Tipos de contas de usurios


Em um sistema Linux, existem basicamente trs tipos de contas de usurios: a conta root,
que usada 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

30

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 alguns cuidados, como:
11 Escolher senhas complexas;
11 Nunca escrever senhas em papel ou armazen-las em arquivos de computador;
11 Evitar digitar a senha na presena de pessoas;
11 Nunca fornecer a senha para outros, mesmo que sejam pessoas de confiana;
11 Modificar a senha com frequncia.
claro que escolher senhas complexas tambm torna a memorizao mais difcil. O mais indicado escolher uma senha que lembre alguma coisa para o usurio, mas s para ele.
Um exemplo de senha difcil de ser quebrada aquela composta pelas letras iniciais das palavras de uma frase do tipo: 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.

Criando contas de usurios


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

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


11 Definir senha inicial.
11 Criar diretrio de trabalho.
11 Copiar arquivos de inicializao.

11 Testar nova conta.


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.

Captulo 2 - Usurios e grupos

11 Criar quota de uso de disco (opcional).

31

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/skel 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 de 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. Na sesso de aprendizagem 9, ao explicar procedimentos administrativos,
vamos sugerir um formulrio que deve ser adotado no atendimento a usurios.
Os passos descritos a seguir devem ser executados pelo administrador do sistema
usando 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 esse passo caso o grupo primrio do usurio no existir ou
mesmo se for preciso incluir o usurio em algum grupo alm do seu grupo primrio.

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


Arquivo /etc/passwd

11 nome:senha:UID:GID:GECOS:home_dir:shell

Administrao de Sistemas Linux

22 Uso do caractere x no campo da senha (shadow passwords).

32

Arquivo /etc/shadow:
11 nome:senha:last_changed:minimum:maximum:warn:inactive:expire
22 Definir senha temporria.
Conforme vimos no incio desta sesso, o arquivo /etc/passwd composto por 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 o NIS ou o 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


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 preen-

Saiba mais

cher cada um dos campos do arquivo /etc/passwd, tomando alguns cuidados especiais.

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 usando o seu
nome e o ltimo sobrenome (exemplo: nome.
sobrenome).

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 alguns 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.
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 usar qualquer editor de texto para fazer essas alteraes, mas
quando disponvel, o comando vipw deve ser usado para editar os arquivos /etc/passwd e
/etc/shadow, pois previne 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 ser atribudo de acordo com o grupo primrio ao qual o usurio pertence. O GID de
nmero 0 reservado ao grupo chamado root ou wheel. Grupos de sistema geralmente
possuem GIDs entre 1 e 999. O campo GECOS usado 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
aonde 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 a seguir de um
mesmo diretrio, chamado /home.
Existem alguns interpretadores de comandos disponveis no sistema. Exemplos de shells
utilizados so o /bin/sh, o /bin/tcsh e o /bin/bash. A maioria das distribuies Linux permite
que o usurio defina o interpretador de comandos com o qual quer trabalhar.

Captulo 2 - Usurios e grupos

Linux pode ter mais de um administrador, e nesse caso possvel acontecer a situao

33

Definir senha inicial


Comando passwd

11 Exemplo:
22 # passwd aluno
22 Enter new UNIX password:

Retype new UNIX password:


passwd: password updated successfully
O comando usado para mudar a senha de um usurio o passwd. Quando o usurio root
deseja mudar a senha de algum usurio, deve passar o nome deste como parmetro para o
comando passwd. Nesse caso, o comando passwd pedir que seja informada a nova senha
e que esta 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 desse realizar o primeiro login. Nesse caso, o administrador pode
definir uma senha temporria mais complexa e no precisa inform-la ao usurio. A seguir, a
sintaxe usada pelo comando chage para forar a alterao de senha.

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.

11 Qualquer diretrio criado pertence ao usurio root.

11 O dono e o grupo devem ser alterados utilizando os comandos chmod e chgrp.


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 diretrio de trabalho do usurio
gerente1 no sistema. Exemplo:

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

Administrao de Sistemas Linux

# 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 em uma nica linha:

# chown gerente1:gerencia /home/gerente1

Copiar arquivos de inicializao


11 Configurao de comandos e utilitrios.
11 Geralmente, comeam com . (ponto) e finalizam com rc.

34

Saiba mais
Para consultar mais
informaes a respeito
desse comando, sua
pgina de manual pode
ser visualizada atravs
do comando
man chage.

# chage -d 0 aluno1

Criar diretrio de trabalho

Os arquivos de inicializao so arquivos que so 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 (ex: .virc), o
comando mail (.mailrc) etc. Os nomes desses arquivos, em geral, comeam com um ponto
e finalizam 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.
Exemplo para o shell bash:

# cp /etc/skel/.bash* /home/aluno
# chmod 644 /home/aluno/.bash*
# chown aluno:aluno /home/aluno/.bash*

Testar nova conta


Criando quota de uso de disco:

11 Uso do comando edquota.


11 As quotas podem ser copiadas de outro usurio.
Para verificar se a nova conta foi criada corretamente, importante fazer login no sistema e
executar a seguinte sequncia de comandos:

# pwd
# ls -la
O primeiro comando serve para verificar 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 Removendo grupos.
A administrao de grupos no Linux pode ser totalmente automatizada por alguns
comandos que permitem criar, alterar e remover grupos. Isso simplifica bastante o trabalho
do administrador, j que esses 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 um usurio pertence.

Captulo 2 - Usurios e grupos

11 Modificando grupos.

35

Criando grupos
groupadd:

11 Cria um novo grupo.


addgroup:
11 Cria um novo grupo.
Estes comandos criam uma entrada no arquivo /etc/gshadow automaticamente
(shadow passwords).
Podem ser usados 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 desses comandos, suas
pginas de manual podem ser consultadas. Algumas distribuies podem conter apenas um
dos comandos.
Exemplo: CentOS possui apenas o comando groupadd. J o Ubuntu possui ambos os comandos.

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.
11 Insere ou remove administradores e usurios.
11 Tambm permite alterar a senha do grupo (em desuso).
O comando groupmod modifica informaes referentes a um determinado grupo.
Para consultar mais informaes a respeito desse comando, sua pgina de manual pode
ser consultada. Assim como a criao de grupos, algumas distribuies podem conter
apenas um dos comandos.
Exemplo: CentOS possui apenas o comando groupadd. J o Ubuntu possui ambos os comandos.

Removendo grupos
groupdel

Administrao de Sistemas Linux

11 Remove um grupo.

36

delgroup
11 Remove um grupo.
Remove entrada no arquivo /etc/gshadow automaticamente (shadow passwords).
O comando deluser tambm pode ser utilizado com a opo --group para remover
um grupo.
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 consultar mais informaes a respeito desses

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. A edio
de grupos em algumas distribuies pode conter apenas um dos comandos.
Exemplo: CentOS possui apenas o comando groupadd. J o Ubuntu possui ambos os comandos.

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, que uma interface web para administrao de diversas funcionalidades do
sistema e ser vista em detalhes na sesso de aprendizagem 10. Nesta sesso, abordaremos
apenas as ferramentas utilizadas atravs da linha de comando.

Criando contas de usurios


Modo manual:

11 Apresentado no tpico Criando contas de usurios.


Modo automatizado.
11 Comandos useradd e adduser: criam usurios ou modificam valores e atributos para
novos usurios.
11 Comando newusers: cria ou atualiza contas de usurio de forma automatizada.

Para consultar mais


informaes a respeito
desse comando, sua
pgina de manual
pode ser visualizada
atravs do comando
man adduser.

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 queiramos modificar algum valor padro, como mostra
o exemplo a seguir.

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


Esses valores padro podem ser listados utilizando a opo -D do comando.
O comando newusers tambm pode ser usado 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.
Esse arquivo deve possuir o formato a seguir:

name:passwd:uid:gid:GECOS:dir:shell
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 esse
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

Captulo 2 - Usurios e grupos

Saiba mais

criados, o arquivo deve ser removido.


37

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 e 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.
O comando passwd pode ser usado 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 anteriormente, temos o comando chfn, que 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 esses 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.
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 seja utilizado o esquema de shadow passwords e
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 usar sempre o mesmo caractere na mesma posio, como uma forma que possibilita voltar atrs a qualquer instante sem ter de redefinir a senha do usurio. Outra forma
Administrao de Sistemas Linux

mais segura substituir o shell do usurio por um programa que imprime uma mensagem

38

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 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 usado para bloquear uma conta, como mostra o exemplo a seguir:

# chage -E 2015-12-31 aluno1


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

Removendo contas de usurios


Removendo contas de usurios:

11 Modo manual:
22 Remover entradas dos arquivos /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow.
22 Fazer backup dos arquivos do usurio.
22 Realocar arquivos de uso comum.
22 Remover diretrio de trabalho.
22 Remover as referncias quota do usurio.
22 Evitar a reutilizao do UID.
11 Modo automatizado:
22 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 e 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 a seguir 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: exibe os usurios conectados e os comandos executados.


11 last: mostra as ltimas vezes em que o usurio entrou no sistema.
11 Logs do sistema e das aplicaes.
Uma condio importante para manter a segurana de um sistema saber quem o est
utilizando e para quais finalidades. No Linux, h vrias ferramentas que permitem visualizar essas 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
utilizando o sistema em um dado momento. Esses comandos so o who, que exibe informaes baseadas no arquivo /var/log/wtmp, e o 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
atravs dos respectivos comandos.

Captulo 2 - Usurios e grupos

comando last. H tambm dois comandos que servem para informar os usurios que esto

39

A seguir, so apresentados 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 outras formas mais eficazes de se monitorar as atividades dos usurios no sistema.
Isso 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

Administrao de Sistemas Linux

armazenados os diversos arquivos de logs do sistema e das aplicaes.

40

Saiba mais
O syslog ser visto em
detalhes na sesso de
aprendizagem 7.

3
Processos
os componentes de um processo e o ciclo de vida de um processo; Aprender os
princpios de um sistema multiprocessado; Saber o que um programa rodando
em background e foreground; Conhecer os estados de um processo; Entender como
funciona o esquema de escalonamento de processos no Linux; Saber os sinais que
podem ser enviados a um processo e como utiliz-los; Aprender como executar
tarefas periodicamente.

conceitos

Processos; Multiprocessamento; Estados de um processo; Prioridades e escalonamento


de processos; Monitoramento de processos; Execuo peridica de tarefas; Cron,
Anacron e Fcron.

Processos
Programa em execuo.

11 Composio:
22 Cdigo do programa armazenado em memria.
22 Dados usados pelo programa.
22 Valores armazenados nos registradores do processador.
22 Recursos alocados ao processo.
22 Atributos de segurana.
Programa:
11 Cdigo executvel armazenado em disco.
Processo certamente um dos conceitos mais importantes no estudo de Sistemas Operacionais. 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 que recursos esse processo pode usar. Os Sistemas Operacionais modernos
permitem a execuo simultnea de vrios processos, alocando o processador a cada um

Captulo 3 - Processos

objetivos

Entender o que um processo; Conhecer os tipos de processos existentes,

deles durante pequenas unidades de tempo. Isso possibilita que um programa seja usado
41

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.

Tipos de processos
Processos interativos:

11 Interagem constantemente com o usurio.


11 Devem ter prioridade no uso do processador, visando oferecer ao usurio tempo de
resposta adequado.
Processos em batch:
11 No interagem com o usurio.
11 Possuem baixa prioridade.
Processos em tempo real:
11 Possuem prioridade sobre os interativos e em batch.
11 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 interagir constantemente com o usurio
e geralmente realizam diversas operaes de entrada e sada. Aplicativos utilizados pelo
usurio, como editores de texto, navegadores etc. so exemplos de programas que geram
processos interativos. O tempo de resposta dos processos interativos deve ser o mais rpido
possvel, visando garantir nvel de interatividade satisfatrio aos usurios do sistema;
11 Processos em batch: tm como caracterstica interagirem com o usurio. Esse tipo de
processo possui baixa prioridade e geralmente executado em background, tipo de
execuo que ser visto mais frente. Aplicativos como compiladores e programas de
backup so tipos de programas que so 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. Esse tipo de
processo tem prioridade mxima no sistema e no pode ter sua execuo interrompida.
11 Tipos de processos:

11 Processos CPU bound: usam o processador na maior parte do tempo.


11 Processos I/O bound: realizam operaes de entrada e sada na maior parte do tempo.

Administrao de Sistemas Linux

Alm disso, os processos podem ser classificados de acordo com a porcentagem de tempo

42

em que utilizam o processador ou realizam operaes de entrada e sada. Processos que


usam 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
I/O bound. O Sistema Operacional sempre privilegia processos do tipo I/O bound, de modo
que possa oferecer melhores tempos de resposta s aplicaes interativas.

Saiba mais
Processos so as
nicas entidades
ativas no Linux, ou seja,
tudo que executado
no sistema possui um
ou mais processos
associados.

Componentes de um processo
Os componentes de um processo so:

11 Espao de endereamento:
11 Conjunto de pginas de memria.
11 Contm segmentos para cdigo do programa em execuo, variveis, pilhas
e outras informaes.
Estruturas de dados do kernel:
11 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.
Um processo tpico tem duas entidades: um espao de endereamento e um conjunto de
estruturas internas de dados 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.
As estruturas internas de dados do kernel registram vrios tipos de informao sobre cada
processo, onde as mais importantes so:
11 Mapa do espao de endereamento;
11 Status atual;
11 Prioridade de execuo;
11 Recursos utilizados;
11 Mscara de sinalizao;
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

PID e PPID
Process ID (PID):
22 Associado pelo kernel.
22 nico no sistema.
Parent Process ID (PPID).
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

Captulo 3 - Processos

de um administrador de sistemas.

no momento de sua criao. Esse nmero denominado identificador de processo, mas


43

conhecido pela sigla PID (ProcessID) e pode 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 nica
que cria um novo processo que executar um novo programa. 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 PPID (ParentPID) de um processo o PID do seu processo pai.

RUID, EUID, RGID e EGID


Real and Effective User ID (RUID e EUID):

11 RUID:
22 UID do usurio que criou o processo.
11 EUID:
22 Usado para determinar o direito de acesso do processo aos recursos do sistema
(SUID).
22 Geralmente, o mesmo que o RUID.
O Real User Identification (RUID) o UID do usurio que criou o processo. J o Effective User
Identification (EUID) o UID efetivo do processo, que usado para determinar os recursos e
arquivos que o processo tem permisso de acessar. Na maioria dos processos, o RUID e o EUID
so iguais. A exceo ocorre quando o programa em execuo tem o bit SUID ativo. Nesses
casos o RUID est relacionado ao usurio executor do programa, e o EUID, ao usurio dono do
programa. Um exemplo de programa como bit SUID ativado o comando passwd. Quando esse
comando executado por um usurio comum, o RUID do processo igual ao UID do usurio
executor e o EUID do processo igual ao UID do usurio dono do programa, nesse caso, o root.
O Real Group Identification (RGID) o GID do usurio que criou o processo. J o Effective
Group Identification (EGID) o GID efetivo de um processo, que utilizado para determinar
os recursos e arquivos que o processo tem permisso de acessar. Na maioria dos processos,
o RGID e o EGID so iguais. A exceo ocorre quando o programa em execuo tem o bit
SGID ativo. Nesses casos o RGID est relacionado ao grupo primrio do usurio que est
executando o programa e o EGID ao grupo proprietrio do programa em si.
Quando um processo iniciado, seu RGID estabelecido a partir do RGID do processo pai.
Se esse processo tenta acessar um arquivo para o qual no tem permisso, o kernel vai
automaticamente verificar se a permisso pode ser garantida por intermdio do EGID.
Real and Effective Group ID (RGID e EGID):

11 Mapeados no arquivo/etc/group.

Administrao de Sistemas Linux

11 Quando um processo inicializado, o RGID o mesmo do processo pai.

44

11 EGID:
22 Anlogo ao EUID em relao ao UID.
22 Se um processo no tem permisso para acessar um arquivo, o kernel verifica se
possvel, com base no EGID.

Prioridade
11 Determina quanto tempo o processo utilizar a CPU.
11 O Kernel seleciona qual processo ser executado de acordo com a prioridade do
processo definida no nice value.

Nice value

nmero inteiro que


influencia a prioridade
de um processo no
sistema. Varia de -20
(alta prioridade) a 19
(baixa 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.

Terminal de controle

11 Terminal de controle (Teletype - TTY).

11 Determina os canais que devem ser utilizados pelo processo.


O terminal de controle determina os canais que devem ser utilizados pelo processo, como
entrada (recepo de dados), sada (sada do processamento) e sada de erros (informaes
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 terminal de controle do processo. O conceito de terminal de
controle est intimamente associado ao envio de sinais, tpico que ser visto mais frente.

Ciclo de vida de um processo


Chamada de sistema fork:

22 Cria uma cpia idntica ao processo pai, mas com outros PID e PPID.
22 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 aleatoriamente 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 figura3.1, podendo criar novos processos
e dar origem a uma rvore hierrquica de processos.

P1
PID 10

Fork

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 a penas 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.

Captulo 3 - Processos

Figura 3.1
Processos
pai e filho.

45

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, o contedo da memria do processo que a chamou, geralmente uma cpia herdada da memria do
processo pai, substitudo pelo contedo (cdigo e dados) do novo programa e, em seguida,
sua execuo iniciada no processo. A figura 3.2 ilustra uma chamada exec.
PID 34

exec

P1

P2
PID 34
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 esse 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 no arquivo
/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

Administrao de Sistemas Linux

comando. O esquema descrito anteriormente mostrado na figura 3.3.

46

Figura 3.2
Chamada de
sistema exec.

Fork

PID 1

init

PID 424

exec

init

PID 424

exec

getty

PID 424

exec

login

Fork

PID 424
Figura 3.3
Criao de
processos.

bash

PID 563

exec

bash

grep

PID 563

Multiprocessamento
Um usurio pode ter vrios processos ativos:

11 Foreground:
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 terminal,
sendo possvel para esse 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 permitem a interao direta do
usurio. 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
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

Captulo 3 - Processos

plano, denominado daemon, que geralmente ativado na inicializao do sistema e no

processo poder realizar operaes de entrada e de sada no terminal.


47

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 usando 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 mesma forma como foi explicado anteriormente.

Daemon
Daemons (Disk and execution monitor) so programas que gerenciam servios que so
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.
Dessa forma, os daemons responsveis pelo 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 essa tarefa a cargo do inetd ou do xinetd.

Administrao de Sistemas Linux

Alternando execues

48

Comando bg:
11 Sua funo colocar um processo para rodar bem 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 (como 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, assim,
a linha de comando do interpretador. Em seguida, digita o comando bg para retomar a
execuo em background. Nesse ponto, a 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,
usando 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 usado para mostrar os processos que esto suspensos ou rodando em segundo
plano. Exemplo:

#man ls (durante a leitura, digitar Ctrl+Z)


[1]+ Stopped man ls

#bg
[1]+ man ls &

#vi ~aluno1/texto.txt (terminada a edio)


#fg (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
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, este passa para o estado executando.
Um processo que esteja executando alguma operao de entrada e sada encontra-se no
estado bloqueado. A figura 3.4 mostra o diagrama de estados de um processo.

Captulo 3 - Processos

e pronto. Durante seu ciclo de vida, um processo pode passar diversas vezes por esses

49

A transio o 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.

Executando
2

Bloqueado
4

1
Pronto

A pesar 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 de 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 dormindo
(sleeping). O bloqueio de um processo causado pela falta de condies que o tornem apto
execuo, como o caso do exemplo visto recentemente. 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 de 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 decide 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, apresentado anteriormente,
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. Nesse 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
Administrao de Sistemas Linux

ainda consome recursos do sistema. O processo pai ento invoca a chamada de sistema wait

50

que libera o descritor de processos do processo filho, que ento finalizado. Exemplo:

#cat /etc/passwd/etc/group | grep patrcia


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

Figura 3.4
Diagrama de
estados de um
processo.

Prioridades e escalonamento de processos


11 Paralelismo aparente (concorrncia).

11 Algoritmo de escalonamento:
22 Poltica de escalonamento:
33 Round-robin.
33 FIFO (First In, First Out).
33 Escalonamento baseado em prioridades.

O mdulo do Sistema
Operacional que se
encarrega de realizar essa alocao
chamado escalonador
de processos, e toma
suas decises baseado
em um algoritmo de
escalonamento.

22 Utilizar a capacidade mxima do processador.


11 Fila de escalonamento.
Em Sistemas Operacionais multitarefa como o Linux, vrios processos so executados simultaneamente. 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
em qual deles alocar o processador. 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. 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 efetivado processo, ou seja, menos chance o processo tem de ser alocado ao processador.
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 como nice value
corrente incrementado pelo valor fornecido. Por exemplo, para executar o comando cat com
nice value corrente incrementado de10, o usurio deve fornecer o seguinte comando:

Captulo 3 - Processos

Saiba mais

22 Garantir que todos os processos possam ser processados.

# nice -n -10 cat /etc/hosts


51

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.

Algoritmo de escalonamento
Baseado em prioridade:

11 Prioridade dinmica:
22 A prioridade dos processos alterada constantemente.
22 Tenta equalizar o uso do processador.
22 Definida somente pelo escalonador.
22 Prioridade esttica:
22 Utilizada somente em processos de tempo real.
22 Definida pelo usurio.
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 a
seguir apresenta algumas 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.
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.
Existem vrios algoritmos de escalonamento, como escalonamento round-robin, First In,

Administrao de Sistemas Linux

First Out (FIFO), filas mltiplas, entre outros. Como o objetivo deste curso no o estudo

52

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

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.
Alm da prioridade dinmica, existe a prioridade esttica, que 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
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
11 Forma de comunicao entre processos.

11 Modo de ocorrncia:
22 Ao receber um sinal, o processo interrompe sua execuo.
22 Trata o sinal ou o kernel atua com uma ao padro (diferente para cada sinal).
22 Aps o tratamento do sinal, o processo retoma sua execuo ou finalizado.
11 Uso de sinais:
22 Comando kill:
33 Envia sinais para processos utilizando seu PID como parmetro.
22 Comando pkill:
33 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 bastante 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 infortambm pode ser usado para enviar sinais a um processo sem a necessidade de conhecermos seu PID. O pkill passa o nome do processo com o parmetro, no lugar de seu PID.
Outro comando que referencia processos pelo nome o killall, que pode ser usado para
matar todos os processos de um determinado programa.

Captulo 3 - Processos

mado como parmetro, juntamente como identificador do processo (PID). O comando pkill

53

A seguir, so apresentados os principais sinais utilizados para manipulao de processos:

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.

SIGCONT
Retoma a execuo de um processo bloqueado. O processo retorna para o estado de pronto
(runnable).

SIGHUP
geralmente usado para fazer o processo reler um arquivo de configurao. Esse sinal
permite a reconfigurao de servios sem a necessidade de reinici-los.

SIGTERM
Pode ser tratado ou ignorado. O processo programado para tratar esse sinal termina voluntariamente, salvando dados relevantes mantidos em memria.

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 todos os sinais
interpretados pelo Sistema Operacional, consulte a pgina do manual dos sinais com o
comando: man 7 signal.
Sinal

Numerao

SIGHUP

SIGKILL

SIGTERM

15

SIGCONT

18

SIGSTOP

19

Monitoramento de processos
Comando ps:
Administrao de Sistemas Linux

11 Lista os processos que esto sendo executados no sistema:


11 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:
22 Apresenta um relatrio atualizado dinamicamente dos processos em execuo
no sistema.
22 Exibe uma lista dos processos ativos e dos recursos utilizados.
22 Taxa de amostragem: por padro, a cada trs segundos.
54

Tabela 3.1
Principais sinais
utilizados na
comunicao entre
processos.

Programa pstree:

11 Exibe os processos em execuo em forma de rvore hierrquica.


O monitoramento dos processos no Linux pode ser realizado atravs do comando ps,
utilizado para identificar os processos que esto sendo executados no sistema em um
determinado momento, e uma das principais ferramentas que um administrador de sistemas possui para monitorar processos no Linux. Ele pode ser usado 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, voc 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 suas informaes
correspondentes a respeito dos processos em execuo. Esse comando pode ser uma
importante ferramenta para diagnosticar problemas no sistema. Suponha, por exemplo,
que voc perceba que o sistema 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
nesse 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.5 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.

Captulo 3 - Processos

Figura 3.5
Sada do
comando ps.

55

O comando os 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 dos recursos utilizados por esses.
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.
Outro comando usado para visualizar e monitorar processos o pstree. Esse comando exibe
os processos que esto sendo executados em um determinado momento, utilizando um
formato de rvore hierrquica.

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 desnecessrios.
Assim, o sistema de execuo peridica de tarefas uma poderosa ferramenta usada 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 usado 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
Administrao de Sistemas Linux

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 comando ssh. Desse modo, qualquer coisa que feita
na linha de comandos tambm pode ser efetuada atravs do cron.
Usando 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 do sistema Ubuntu ou no diretrio /var/spool/cron, no caso
do sistema CentOS, 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
56

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 :

Minuto hora dia ms dia_da_semana usurio comando


A seguinte especificao de tempo: 15, 45 14 * * 1-5, significa s 2:15 e s 2:45 da tarde, de
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, nesse 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 e 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, 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


{} ;

Formato do crontab

Crontab:
11 Formato:
11 Minuto hora dia ms dia_da_semana usurio 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 e o valor 1 representa segunda-feira. Assim por diante,

Tabela 3.2
Sintaxe do crontab.

Campo

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

Captulo 3 - Processos

at sbado, que representado pelo valor 6.

57

Anacron
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 esse perodo no sero executadas quando o servidor for ligado. Para solucionar esse
problema, foi criado o programa Anacron, que verifica quais tarefas no foram executadas pelo
Cron durante o perodo de tempo em que o servidor ficou desligado e em seguida as executa.
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 essa 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
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 e um s programa. Alm disso, suas opes de configurao so mais flexveis e resolvem alguns problemas e limitaes do cron. A seguir so listadas algumas opes que podem ser utilizadas
somente com o fcron, no estando disponveis no cron.
11 Permite definir um valor mximo de carga do sistema com o 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
Administrao de Sistemas Linux

sido executada.

58

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 nesse curso. O administrador
pode consultar suas pginas de manual se optar por utiliz-lo no lugar do cron.

4
Sistema de arquivos
Diferenciar os conceitos de diretrio, discos e parties; Conhecer a estrutura de
particionamento; Entender o conceito de sistema de arquivos no Linux; Conhecer a
estrutura do arquivo /etc/fstab e sua importncia para o sistema; Saber utilizar
comandos de criao de sistemas de arquivos; Aprender a usar os comandos de
montagem e desmontagem de parties; Conhecer os principais tipos de sistemas
de arquivos reconhecidos pelo Linux; Entender a importncia e saber como utilizar
os comandos mkfs, fsck, mount, umount, du e df; Saber como habilitar e configurar o
esquema de quotas; Editar os limites de quotas para os usurios.

conceitos

Sistema de arquivos; Estrutura dos discos; 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 a seguir 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

Captulo 4 - Sistema de arquivos

objetivos

diretrios tpica do Linux; Saber particionar um disco e conhecer as vantagens do

59

parties compe a rvore de diretrios do Linux. necessrio ter, no mnimo, uma partio
montada e essa 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.
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

etc

src

Disco 1
Partio 2

home

joel

joo
Disco 2
Partio 1

dados
Figura 4.1
Estrutura de
diretrios do Linux.

Pode ser na mesma


mquina, ou no

Particionamento
11 O particionamento e a estrutura de diretrios so definidos durante a instalao

do sistema.
11 Vantagens do particionamento de disco:
22 Isolamento de falhas.
22 Maior facilidade para execuo de backups.
22 Ganho de performance no acesso aos dados.

Administrao de Sistemas Linux

11 Comando fdisk:

60

22 Utilizado para particionar um disco.


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.


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. No Linux, um dos
comandos utilizados para o particionamento de um disco o fdisk. A tabela 4.1 mostra os
principais diretrios padro do Linux.
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

/lib

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

Tipos de partio
Existem trs tipos de partio que sero vistos a seguir.
11 Partio primria: o principal tipo de partio e contm algum tipo de sistema de
arquivos associado. Em um disco deve haver no mnimo uma e no mximo quatro parties
primrias. Caso existam quatro parties primrias em um disco, esse no poder 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: um tipo especial de partio que no pode conter sistemas de
arquivos, mas contm at 255 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 conhecidas como unidades lgicas, esse tipo de partio fica
localizado 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 armazenamento 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).

Captulo 4 - Sistema de arquivos

Tabela 4.1
Diretrios padro
do sistema.

/boot

61

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.
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
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 armazenadas no arquivo /etc/fstab. Nesse arquivo,
cada partio descrita em uma linha que possui o seguinte formato:

Filesystem | Mountpoint | Type | Options | Dump | Fsck


Esses campos 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:

Administrao de Sistemas Linux

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 a seguir um exemplo de arquivo fstab.
62

#Filesystem

Mountpoint

Type

Options

Dump

Fsck

/dev/hda1 / ext2
rw 1
1
/dev/hda2 /usr ext2
rw 1
2
/dev/hdc none swap
rw 0
0
/dev/hdb /home ext2
rw 1
1
/dev/sda1 /dosc msdos
defaults 0
0
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
referencia a partio substitudo por um label ou pelo Universally Unique Identifier (UUID)
do hardware. Esse novo padro foi adotado por conta de mdias de armazenamento removveis, que podem ser associados 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,

Saiba mais

Para obter mais informaes sobre labels,


consulte a pgina de
manual do comando
e2label.

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="ntfs"
Manteremos a nomenclatura que referencia as parties por seus nomes de dispositivo, por
ser didaticamente mais interessante. A figura 4.2 mostra um exemplo de arquivo /etc/fstab

Figura 4.2
Arquivo /etc/fstab.

Comandos
Comando mkfs:
11 Cria, em uma partio de um disco, a estrutura lgica correspondente ao sistema de
arquivos a ser utilizado.
Comando fsck:
11 Verifica a consistncia e repara possveis erros em um sistema de arquivos.
11 Pode ser rodado automaticamente na inicializao do sistema.

Captulo 4 - Sistema de arquivos

que utiliza labels para identificar as parties.

63

Comando mount:

11 Monta uma partio.


Comando umount:
11 Desmonta uma partio.
H uma srie de comandos que so utilizados para trabalhar com sistemas de arquivos.
Entre eles, podemos destacar os seguintes:

mkfs
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
ser especificado como parmetro para o comando mkfs.

fsck
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 fsck (file system consistency check) analisa um filesystem procura de erros 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 verificadas 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 verificada 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 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 citadas so potencialmente perigosos. Na sua deteco, o fsck entra no modo interativo e solicita ao administrador que con Administrao de Sistemas Linux

firme cada um dos reparos que ele executa. Nesse caso, so grandes as chances de perda de

64

dados importantes do sistema. Alguns erros graves so listados a seguir.


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.

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

Para obter mais


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

existente e respeite o esquema de permisses de arquivos e diretrios do Linux.

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.

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:
22 # 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
# du -hcs /var/*
4.0K

/var/backups

48M

/var/cache

Inodes
2039808

IUsed

IFree IUse% Mounted on

181908 1857900

9% /

Captulo 4 - Sistema de arquivos

Saiba mais

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

65

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

Tipos de sistemas de arquivos suportados

Administrao de Sistemas Linux

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

66

Sistema de Arquivos

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 recuperao em situaes onde este no foi desmontado
corretamente, causando inconsistncias de dados.

Minix

Primeiro sistema de arquivos do Linux. Foi 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.

Saiba mais
A partir do kernel 2.6.0,
existem drivers disponveis que permitem
que o Linux escreva
em volumes NFTS,
entretanto, no so
consideradas solues completamente
seguras e por isso no
so recomendadas
para ambientes de
produo.

Tabela 4.2
Tipos de sistemas
de arquivos
suportados.

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

11 Como preparar o sistema.


11 De que forma habilitar o uso de quotas.
11 Como editar as quotas dos usurios.
11 De que forma verificar 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 por 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: essa 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: a verso atual do sistema de quotas do Linux. Essa verso possui
melhor desempenho, especialmente em parties de grande tamanho. O contedo dessa
sesso ser baseado na verso 2 ou vfsv0;
11 RPC: esse tipo de verso 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 na sesso de aprendizagem
10. Nesta sesso, veremos como configurar o sistema de quotas utilizando a linha de comandos.

Preparando o sistema
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. Na sesso de aprendizagem 8 sero apresentados os mtodos para configurar e
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
11 /etc/rc.local.
11 /etc/fstab.
11 Informar se o controle ser por usurios (usrquota), por grupos (grpquota) ou ambos.
11 Controle realizado por partio.

Captulo 4 - Sistema de arquivos

recompilar o kernel caso seja necessrio. Levando em conta que ser utilizada uma verso

67

11 A configurao deve ser feita no campo Options.

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 habilitadas. 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 a seguir:

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

Administrao de Sistemas Linux

Inicializando

68

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


22 # touch /home/aquota.user
22 # touch /home/aquota.group
22 # chmod 600 /home/aquota.user
22 # 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.

11 Inserir no arquivo /etc/rc.local:

22 Comando quotacheck:
33 Inicializa os arquivos aquota.user e aquota.group.
33 # quotacheck -auvg
22 Comando quotaon:
33 Ativa o suporte a quota de disco.
33 # quotaon -augv
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 usar o comando quotacheck com a opo -a para inicializar os arquivos de controle de quotas criados, 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 a quota de disco em todas as parties.

Editando quotas
Comando edquota:

11 Edita as quotas de usurios e de grupos.


Comando warnquota:
11 Verifica as quotas de usurios em todas as parties com quota habilitada.
11 Envia por e-mail uma mensagem de alerta aos usurios que tenham ultrapassado
seus soft limits.
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
estiver acima do limite soft, o sistema bloqueia qualquer operao de escrita em disco
do usurio, at que esse remova parte dos arquivos e passe a ocupar um espao a seguir
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 esse 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,

Captulo 4 - Sistema de arquivos

limite soft apenas durante o grace period. Se esse perodo for esgotado e o usurio ainda

ele deve ser agendado no crontab do usurio root para ser executado periodicamente.
69

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)
Comando edquota:

11 Utilizado para editar a quota de usurios e grupos.


11 Opes:
22 -u, -g, -t e -p
11 Exemplos:
22 # edquota -u aluno1
33 Mostra a quota do usurio aluno1.
22 # edquota -p aluno1 aluno2 aluno3
33 Copia as configuraes de quota do usurio aluno1 para os usurios aluno2
e aluno3.
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, podemos 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 seguinte comando:

Administrao de Sistemas Linux

# edquota -p aluno1 aluno2 aluno3

70

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.
Comando repquota:
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, verificar o seu status de quota, usando 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
espao em disco e nmero de arquivos do usurio aluno1.

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

blocks
876

quota

limit

grace

files

quota

limit

83

10000

10500

100000 105000

grace

O comando repquota pode ser usado 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

Captulo 4 - Sistema de arquivos

none

71

72

Administrao de Sistemas Linux

5
Backup
Aprender os principais comandos do Linux usados para fazer backup; Conhecer os
softwares Amanda e Bacula, e saber como configur-los e utiliz-los para fazer backup
e restore de dados; Ver os principais softwares comerciais de backup; Entender o
que uma poltica de backup e saber como defini-la.

conceitos

Tipos de backup; Mdias de backup; Softwares de backup; Comandos do sistema;


Poltica de backup.

Introduo
11 Poltica de backup eficiente para combater:

22 Ao de vrus e outras ameaas.


22 Ataques de hackers.
22 Falhas de usurios.
22 Problemas de hardware e software.
11 Poltica de backup baseada na frequncia de modificao dos arquivos e em seu grau
de importncia.
11 Backups podem ser realizados por meio de comandos simples ou por meio de
pacotes sofisticados.
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; 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

Captulo 5 - Backup

objetivos

Conhecer os tipos de backup e os principais tipos de mdias usadas em backups;

dispe de diversos mtodos que podem ser utilizados para a realizao de backups.
73

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 pelos softwares profissionais de backup.

Tipos de backup
Existem trs tipos de backup:

11 Completo:
22 Todo o contedo armazenado.
22 Consome grande quantidade de tempo para ser realizado.
11 Diferencial:
22 S armazenado o contedo que foi alterado aps a realizao do ltimo
backup completo.
22 Em um processo de recuperao de dados, a mdia com o ltimo backup completo
tambm necessria.
11 Incremental:
22 S armazenado o contedo que foi alterado aps a realizao do ltimo backup,
independente de seu tipo.
22 Em um processo de recuperao de dados, vrias mdias podem ser requeridas.
Existem trs tipos de backups, descritos a seguir:
11 Completo: no backup 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 um contedo perdido logo aps um backup completo s preciso
termos em mos a mdia que foi usada 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: no backup diferencial, somente os contedos modificados aps a realizao
do ltimo backup completo so copiados para a mdia de backup. Esse 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
Administrao de Sistemas Linux

perdido aps um backup diferencial preciso recuperar o ltimo backup completo e o

74

ltimo backup diferencial. Mesmo que o arquivo tenha sido modificado aps o backup
completo, esse necessrio no processo de recuperao dos dados;
11 Incremental: No backup incremental, somente os contedos modificados aps o
ltimo backup so copiados, independentemente se esse 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 pode haver 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 ltimo backup diferencial entre o backup


completo e o backup incremental que se deseja recuperar e todos os backups incrementais desde o ltimo backup diferencial. Esse um bom motivo para se evitar o uso
desse tipo de backup.

Mdias de backup
11 A escolha depende de alguns fatores:

22 Quantidade de dados a armazenar.


22 Confiabilidade e durao desejveis.
22 Quanto se pretende gastar.
11 indicado o uso de mdia removvel.
11 Vrios tipos de mdias podem ser utilizados:
22 Fitas magnticas (DAT, DLT e LTO).
22 Mdias pticas (CD, DVD e Blu-Ray).
22 Storage (DAS, NAS, SAN e iSCSI).
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: fitas magnticas (DLT, LTO etc.),
discos pticos (CD, DVD e Blu-Ray) etc. Alm disso, em alguns casos o uso de um storage
pode ser recomendado. Faremos, a seguir, algumas 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.

11 Desenvolvida pela DEC em 1984.


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, timo

Captulo 5 - Backup

Digital Linear Tape (DLT):

custo-benefcio e alto grau de confiabilidade. A seguir, os principais tipos de fitas magnticas:


75

Linear Tape Open (LTO)


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)


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
CD/DVD:

11 Mdia popular.
11 Baixa capacidade de armazenamento.
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.
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. A seguir sero vistos os principais tipos de
mdias pticas:

CD
Esse tipo de mdia bastante popular e pode ser lida, praticamente, em qualquer computador domstico. A sua principal desvantagem, no entanto, 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

Administrao de Sistemas Linux

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.

DVD
As unidades de DVD possuem capacidade de armazenamento consideravelmente maior do
que a das 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.

76

Blu-Ray
Disco ptico de tamanho igual ao CD e ao DVD, criado 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 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.
11 Direct Attached Storage (DAS): so 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 de bloco e no permite compartilhar seu
espao de armazenamento com outros servidores. A taxa de transferncia de dados
limitada pela velocidade da controladora;
11 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 usado para
interligar o servidor e o storage (podendo alcanar at 10 Gbps em uma rede local);
11 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.
mento 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;

Captulo 5 - Backup

Uma das vantagens da SAN a possibilidade de compartilhar a capacidade de armazena-

77

11 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 usado 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).
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 ou mais discos para formar uma unidade lgica de armazenamento. O RAID pode ser
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 e necessita de dois discos para ser implementado.
Ele 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 subutilizada;
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

Administrao de Sistemas Linux

com as informaes de paridade. O RAID 5 um meio termo entre o RAID 0 e o RAID 1.

78

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 e, 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 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
todos os dados do disco que falhou.

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 usados para realizar backups.

Comando tar
Comando tar:

11 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 e -j: comprimem dados usando os comandos gzip e bzip2, respectivamente.
11 -f: especifica o nome do arquivo tar que ser criado.
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:

# tar -cv . | (cd /espelho; tar -xvp )


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


O comando tar (tape archive), apesar de simples, ainda utilizado pelos administradores de
sistemas para a realizao de rotinas de backup. Ele pode ser usado para realizar o backup
dirio de um servidor, transferindo-o para uma unidade de fita de forma automtica,
usando o daemon cron. A seguir, sero listadas as principais opes do comando tar.
11 -c: cria um arquivo tar;
11 -t: lista o contedo de um arquivo tar;
11 -x: extrair os arquivos de um arquivo tar;
11 -z e -j: comprimir dados usando respectivamente os comandos gzip e bzip2;
11 -f: utilizada para especificar o nome do arquivo tar que ser criado.
O backup em dispositivos de acesso sequencial utilizando o tar feito respeitando as caracpropriedade 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.

Captulo 5 - Backup

tersticas prprias desse tipo de mdia. Um aspecto que deve ser observado com ateno a

79

Em geral, na conveno utilizada pelo Linux, os dispositivos rebobinveis tm nomes de


dispositivos que comeam pela letra r, como: /dev/rft0, e os nomes dos no rebobinveis
comeam por pela letra n, como: /dev/nrft0. Existem casos como o formato SCSI Type,

Saiba mais
Para saber quais dispositivos so rebobinveis
e quais no so,
preciso ler a documentao do sistema.

que tem o padro /dev/st.


Dessa forma, teramos:
11 Floppy Tape:
22 /dev/rft0 rebobinvel
22 /dev/nrft0 no rebobinvel
11 SCSI Tape:
22 /dev/st0 rebobinvel
22 /dev/nst0 no rebobinvel
Backup em fita:

11 Dispositivo de acesso sequencial:


22 Rebobinvel: armazena apenas um backup.
33 # tar -czf /dev/rtf0 /home
22 No rebobinvel: armazena uma ou mais sequncias de backups.
33 # tar -czf /dev/nrst0 /home
33 # tar -czf /dev/rst0 /var/spool/mail
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

Comando cpio
11 Realiza backup de arquivos e diretrios.
11 Pode ser utilizado para ler arquivos no formato tar.

ql

Saiba mais

11 Pode acessar dispositivos de armazenamento remotos.


O comando cpio semelhante ao tar e pode ser usado para copiar arquivos individuais
ou uma rvore de diretrios completa. O cpio suporta diversos formatos, inclusive aquele

Administrao de Sistemas Linux

utilizado pelo tar, e tambm pode acessar dispositivos remotos, por exemplo, uma unidade

80

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.

Para mais informaes


a respeito do comando
cpio, sua pgina
de manual pode ser
consultada.

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 ml-

Saiba mais

tiplos 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

Para mais informaes


a respeito do comando
dump, sua pgina
de manual pode ser
consultada.

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.
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 do usurio pelos arquivos restaurados no backup.

Comando rsync
11 Utilizado para fazer backup entre dois computadores.

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


11 Pode ser utilizado por qualquer usurio.
O comando rsync usado para copiar arquivos entre dois computadores atravs de uma
rede de forma segura. 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/

Para mais informaes


a respeito do comando
rsync, sua pgina
de manual pode ser
consultada.

backup do computador remoto.

# 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


Compactao de dados:

11 So usados algoritmos para comprimir os dados de forma a ocupar menos espao em disco.
11 uma das tcnicas utilizadas em backups.
11 Comandos gzip e bzip2:
22 Usados para compactar arquivos.
11 Comandos gunzip e bunzip2:
22 Utilizados para descompactar arquivos.

Captulo 5 - Backup

Saiba mais

81

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
o gzip, e o 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 usado 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 usar os comandos gunzip e bunzip2. O comando do
prximo exemplo descompacta o arquivo /home/users/maria/relat_prospec.pdf.gz.

# gunzip /home/users/maria/relat_prospec.pdf.gz

Softwares de backup
Os softwares de backup tm como principais funes automatizar, gerenciar e centralizar
o backup de uma organizao. Nesta sesso vamos apresentar em detalhes os softwares
Amanda e Bacula, que so distribudos gratuitamente. Tambm sero apresentadas
algumas caractersticas dos principais softwares comerciais disponveis no mercado.

Pacotes gratuitos
11 Amanda.

11 Bacula.
Existem vrios softwares gratuitos 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.
Dos softwares gratuitos de backup podemos destacar o Amanda e o Bacula, que sero
descritos a seguir:

Amanda
O Amanda (Advanced Maryland Automatic Network Disk Archiver) 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. O Amanda possui alguns pr-requisitos para funcionar adequadamente. Os seguintes softwares devem estar instalados no servidor: samba (somente se
algum computador cliente utilizar o Sistema Operacional 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

Administrao de Sistemas Linux

pode ser instalado diretamente sem necessidade de compilar seu cdigo-fonte.

82

Bacula
O Bacula um programa que usa 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 como: Linux, *BSD, Windows, MAC etc.;
11 Armazena todas as informaes em uma base de dados (MySQL, Postgresql etc.).

composto por cinco mdulos:


11 Director: o mdulo principal e 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: o cliente do Bacula e 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 Sorage
executado como um daemon e por padro usa a porta TCP 9103 para receber conexes;
11 Monitor: esse mdulo responsvel por gerenciar os mdulos Director, File e Storage, e
disponibilizado somente atravs de uma interface grfica.

Pacotes comerciais
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. Dos softwares comerciais de backup,
podemos destacar os seguintes:
11 Arkeia Network Backup: um software de backup que foi desenvolvido em 1998 pela
empresa Arkeia Software. Alm do software, a empresa tambm oferece como soluo
um appliance e um virtual appliance que executado no VMware. Entre 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: software de backup que 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. Entre suas principais caractersticas, 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; suporte
e SQL Server; criptografia de dados; recuperao total de servidores, mesmo migrando
para hardwares diferentes etc.;

Captulo 5 - Backup

a backups fsicos, virtuais e em nuvem; integrao com aplicativos como MS Exchange

83

11 Backup Exec: um software de backup que foi desenvolvido em 1982 pela empresa
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. Entre 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 (Oralcle, SQL Server etc.); criptografia de dados etc.;
11 NetBackup: um software de backup que foi 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. Entre as principais caractersticas do NetBackup, podemos destacar: console de administrao grfico, que gerencia
todas as atividades de backup e restore; criptografia de dados; 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.
Empresa com ambiente de Misso Crtica:
11 Deve estabelecer diversas polticas de backup.
Para cada sistema, necessrio decidir quando e como fazer o backup dos dados,
o que depende dos seguintes fatores:
11 Criticidade, volatilidade e volume dos dados armazenados no sistema;
11 Tipo de uso e horrio de operao do sistema;
11 Capacidade e velocidade do dispositivo utilizado para armazenar os dados do backup etc.
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, por exemplo, 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
Administrao de Sistemas Linux

dos dados, maior a frequncia e abrangncia das operaes de backup.

84

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 , possuir
labels que indiquem unicamente o seu contedo. Informaes como a lista dos 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 do sistema, minimizando os problemas de inconsistncia de dados e queda de
desempenho nas aplicaes.
Se o backup no couber em uma nica mdia, recomenda-se comprar uma unidade de maior
capacidade, usar 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 Verificar, 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 obser-

Captulo 5 - Backup

11 Acondicionar as mdias adequadamente.

vadas para que se obtenha o desempenho esperado. uma boa prtica manter o registro
85

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 periodicamente. Para isso, uma soluo eficaz consiste na execuo de operaes de leitura e
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

Administrao de Sistemas Linux

investir em ferramentas profissionais mais robustas e seguras.

86

6
Servio de impresso
impresso em sistemas Linux; Entender como se d o processo de impresso em
sistemas Linux; Compreender a diferena entre os softwares gerenciadores de
impresso; Saber qual sistema de impresso melhor atende s necessidades de uma
organizao; Conhecer os comandos necessrios para a configurao e manuteno
de um servio de impresso baseado no CUPS.

conceitos

Servio de impresso; Arquitetura do sistema de impresso; Softwares gerenciadores


de impresso; LPD; LPRng; CUPS.

Introduo
11 O servio de impresso de arquivos , certamente, um dos que mais exige ateno e

demanda tempo do administrador de sistemas.


11 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.
O servio de impresso de arquivos , certamente, um dos que mais exige ateno e
demanda 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
esse 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
11 O sistema de impresso, no incio, baseava-se em dois sistemas:
22 Line Printer Daemon (LPD), do BSD.
22 Line Printer System, do System V.
11 Instalao e configurao eram tarefas complexas, at algum tempo atrs.

Captulo 6 - Servio de impresso

objetivos

Conhecer as principais caractersticas associadas manuteno de um servio de

87

11 Os sistemas de impresso no estavam atendendo s novas demandas.

11 Inicia-se a busca por uma interface padro para impresso:


22 POSIX do IEEE.
22 IPP do IETF.
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 nos dois sistemas mencionados, para que eles pudessem atender s demandas por impresses 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 PLP
(Portable Line Printer spooler system), que mais tarde teve seu nome alterado para LPRng.
Esses sistemas, contudo, no conseguiram explorar todo o potencial dos novos dispositivos
de impresso que eram lanados no mercado. Foram feitas, ento, muitas tentativas de se
desenvolver uma interface padro para impresso. Dentre elas, pode-se destacar o POSIX e
o IPP Printing Protocol.

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. Diferentemente do POSIX, o
IPP desfruta de uma ampla aceitao por parte da indstria e est cotado para tornar-se a
soluo padro de impresso em rede para todos os Sistemas Operacionais. Nesse 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.

Arquitetura do sistema de impresso


11 O usurio solicita uma impresso.
Administrao de Sistemas Linux

11 O sistema cria um job.

88

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.
11 A impresso realizada.

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.

Job
Dados
Opes

Rede

Fila

Filtro

Impressora

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 verdade. 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
temporrios. Caso haja algum erro nesse caminho, o usurio ser notificado pelo sistema.

Softwares gerenciadores de impresso


11 Softwares gerenciadores de impresso:

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

Captulo 6 - Servio de impresso

Figura 6.1
Arquitetura dos
sistemas de
impresso.

89

LPD (Line Printer Daemon)


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).
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 usar 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 ele use o GNUlpr.

Componentes do LPD
Componentes do LPD:

11 Pode se referir ao daemon ou ao conjunto de programas que o compem.


11 Componentes:
22 lpd: daemon propriamente dito.
22 lpr: comando de impresso.
22 lpq: comando para listar os jobs que esto na fila de impresso.
22 lprm: comando para remover um job.
22 lpc: comando de controle do daemon 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

Administrao de Sistemas Linux

de um job. Para cada arquivo em fase de impresso, um novo processo iniciado;

90

11 lpr: trata-se do 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 utilizado para listar os jobs que esto na fila de impresso;
11 lprm: comando utilizado para remover um job da fila de impresso;
11 lpc: trata-se do 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,
a seguinte:
1. No momento da inicializao do sistema, o daemon lpd iniciado. Ele fica, ento,
aguardando 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
impresso do job.
4. O processo lpd filho executa o(s) filtro(s) apropriados para o job e envia os dados
resultantes impressora.
Como j sabido, o LPD foi projetado para ser utilizado em um tempo 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 o gs, ppdfilt, ps2ps, mpage e a2ps. A maioria
desses programas faz converses entre diferentes formatos de arquivos. Entretanto, como
se ver adiante, existem alternativas mais eficientes e menos trabalhosas.

Protocolo LPD
A RFC 1179 define o protocolo Line Printer Daemon Protocol (LPD), criado pelo IETF, que
usado pelo servidor LPD e por todos os servidores de impresso de rede usados em
sistemas Unix. Esse protocolo usado 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.
O LPRng uma implementao melhorada do LPD, que apresenta preocupao maior com
aspectos de segurana, alm de outras funcionalidades. O LPRng apresenta facilidades para
a contabilidade de uso do ambiente de impresso. Essa funcionalidade especialmente til
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.

Captulo 6 - Servio de impresso

quando se deseja controlar o uso dos recursos de impresso. O LPRng usa o mesmo modelo

91

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 Usa o conceito de classes.
11 Faz balanceamento de carga e tolerante a falhas.
11 Foi projetado em torno de um processo central de escalonamento.
11 Vantagens da implementao do IPP:
22 Escalonador baseado em servidor HTTP 1.1.
22 Interface web para administrao e configurao.
22 Maior nmero de opes de impresso.
22 Controle de acesso bastante apurado.
22 Suporte criptografia e ao servio de proxy.
22 Facilidade na configurao para clientes Windows.
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 Internet Printing Protocol (IPP), um novo padro para impresso baseado no protocolo
HTTP, que apresenta uma srie de 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 um controle de acesso bastante apurado a uma impressora, baseado em
diretivas Allow e Deny, comuns ao servidor Web Apache;
11 Oferece suporte criptografia e ao servio de proxy.
Antes do lanamento do CUPS, muitos administradores de sistemas ressentiam-se da dificuldade de se 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 mecanismo de configurao automtica de impressoras.

Administrao de Sistemas Linux

Arquitetura

92

11 Escalonador.
11 API do CUPS.
11 Comandos BSD/System V.
11 Filtros e imagens do CUPS.
11 Backends.

O CUPS suporta balanceamento de carga e tolerncia a falhas, com a utilizao de mltiplos


servidores para gerenciar o ambiente de impresso. Ser visto mais frente 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.
Escalonador
Arquivos de
congurao

Comandos BSD
Figura 6.2
Arquitetura
do CUPS.

Comandos system V

API do CUPS

Filtros

Imagens
do CUPS

Backends

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

11 Usa 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 usado como ferramenta
de consulta, j que possui uma farta documentao sobre as funcionalidades do sistema.
API do CUPS
Tabela 6.1
Arquivos de
configurao
do CUPS.

A 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 sero apresentados na tabela 6.1.

Arquivos de configurao
do servidor HTTP

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.

Captulo 6 - Servio de impresso

Arquivos de configurao

93

Comandos BSD/System V
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).
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.
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:
11 Nome da impressora;
11 Identificao do job (job ID);
11 Nome do usurio;
11 Ttulo do job;
11 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 usados para determinar os dispositivos disponveis. Na inicializao, cada backend questionado sobre uma

Administrao de Sistemas Linux

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.

Interface web do CUPS


A interface web do CUPS possibilita o gerenciamento de impressoras, classes e jobs de
modo rpido e intuitivo. Esta sesso de aprendizagem ser baseada na administrao
do CUPS atravs da linha de comandos, ficando a cargo do aluno navegar pela interface
web para explorar todas as suas funcionalidades. A figura 6.3 mostra a pgina inicial da
interface web do CUPS na verso 1.4.3. A partir dela possvel navegar entre os diversos
links e funcionalidades.

94

Gerenciamento de impressoras
Gerenciamento de impressoras:

11 Atravs da linha de comandos.


11 Por intermdio da interface web:
22 http://localhost:631/admin
11 Classes de impressora:
22 Impressoras so reunidas em grupos.
22 Jobs enviados para uma classe so encaminhados para a primeira impressora livre
da classe.
22 Balanceamento via round-robin adotado.
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, 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.

Captulo 6 - Servio de impresso

Figura 6.3
Interface web do
CUPS verso 1.4.3.

95

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.
Cada fila tem um dispositivo e um nome:
11 Uniform Resource Identifier (URI) Forma de identificao de dispositivo:
22 serial: /dev/ttyS1?baud=115200
22 parallel: /dev/lp1
22 socket: //192.168.1.10

Gerenciamento de 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.
A configurao de clientes Unix-like no CUPS pode ser feita de forma manual ou automtica,
especificando um ou mltiplos servidores, ou ainda por intermdio do repasse de informaes de um cliente para outros clientes.
Configurao manual
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 O CUPS possibilita configurao automtica das impressoras nos clientes.

11 Facilita a administrao em grandes ambientes.


11 Todas as impressoras criadas ou removidas do servidor so automaticamente espelhadas nos clientes.
O 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

Administrao de Sistemas Linux

servidor so automaticamente atualizadas no cliente em um perodo mximo de 30 segundos.

96

Para tal, o administrador ter de habilitar a diretiva BrowseAddress no arquivo de configurao


do CUPS no servidor (/etc/cups/cupsd.conf ). So propagados 80 bytes de informao por
impressora a cada 30 segundos.
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.

Saiba mais
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.

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

Captulo 6 - Servio de impresso

broadcast da sub-rede 3.

97

98

Administrao de Sistemas Linux

7
Registro de eventos
Conhecer as principais solues para gerenciamento de registros de eventos em
sistemas Linux; Saber os passos necessrios para implementar um servidor dedicado
ao armazenamento de registros de eventos de todos os servidores e equipamentos
da rede; Ter contato com as principais solues de anlise de registros de eventos;
Conhecer as principais recomendaes de segurana envolvendo uma soluo
completa de gerenciamento de registros de eventos no Linux.

conceitos

Registro de eventos (sysklogd; rsyslog; syslog-ng;); Rotacionamento de arquivos


de log; Servidor de logs; Aplicativos para anlise de arquivos de log; Recomendaes
bsicas de segurana.

Introduo
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.
22 Mensagem gerada pelo programa.
Todo Sistema Operacional gera eventos que, na maioria das vezes, ocorrem de modo assncrono e em 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 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 o Apache e o Qmail, trabalham com diversos arquivos de log e,
para melhor organizao, armazenam esses arquivos em subdiretrios dentro do diretrio

Captulo 7 - Registro de eventos

objetivos

Aprender em detalhes o conceito de registro de eventos em sistemas Linux;

/var/log. Um arquivo de log contm, normalmente, os seguintes registros: data e hora


99

em que ocorreu o evento, nome do servidor que gerou o 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. Nesta sesso de aprendizagem, ser
visto como configurar um sistema Linux, para que possa armazenar os diversos registros de
eventos gerados da maneira mais adequada possvel e de acordo com a estratgia adotada
pelo administrador da rede.

Sysklogd
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 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 gerado pelo kernel.

Syslogd
Arquivo /etc/syslog.conf:

11 Possui 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.
11 Pode ser especificada mais de uma facilidade com a mesma prioridade:
22 auth,authpriv.info /var/log/auth.log
11 Mltiplos seletores podem executar uma ao em comum:
22 *.*;auth,authpriv.none -/var/log/syslog
o daemon responsvel pelo controle dos registros de eventos do Sistema Operacional e das
aplicaes. O daemonsyslogd 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

Administrao de Sistemas Linux

que transporta, podendo gerar problemas de segurana se os registros forem armazenados


em um servidor remoto, j que esses podem ser facilmente interceptados e alterados.

Arquivo de configurao do 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

100

Saiba mais
Veremos que existem
outras verses de
syslog que implementam criptografia de
dados e, por isso, seu
uso recomendado.

caracteres de espao ou de 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 a seguir:

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 algumas facilidades utilizadas com maior frequncia. Algumas facilidades,
como a security, emitem um som de alerta e enviam uma mensagem para o console, como

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
usada 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
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, separados pelo caractere ;.

Captulo 7 - Registro de eventos

forma de alertar o administrador do sistema.

101

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 crticas (exemplo: 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
que o caminho completo do arquivo precisa ser especificado.
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.


Tabela 7.3
Aes.

Caracteres especiais
Existem alguns caracteres especiais que podem ser usados no arquivo /etc/syslog.conf.

Administrao de Sistemas Linux

A tabela 7.4 mostra esses caracteres e seus significados.

102

Caracteres especiais

Funo

Todos os nveis de prioridade especificados e 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.


Tabela 7.4
Caracteres
especiais.

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, whoe 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.

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 parte.
11 Seus registros so classificados em nveis de prioridade.

sagens geradas e enviando-as, posteriormente, para o programa syslogd. Entretanto, se o


klogd for invocado com a opo -f <arquivo>, esse 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 file system /proc est montado; se estiver, o arquivo /proc/kmsg
ser usado como fonte geradora dos registros de eventos do kernel. Caso contrrio, sero

Captulo 7 - Registro de eventos

Programa que controla o registro de eventos gerados pelo kernel, monitorando as men-

utilizadas chamadas de sistema para obter essas informaes.


103

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
respectivas descries.
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
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 de quais nveis de
prioridade sero enviados a esses terminais. No exemplo a seguir, 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.

Administrao de Sistemas Linux

O rsyslog uma verso avanada do syslog, que oferece uma srie de funcionalidades

104

extras, onde podemos destacar as seguintes.


11 Pode armazenar os registros de log 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.

Tabela 7.5
Prioridades dos
registros gerados
pelo kernel.

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:

# Mdulos
$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

# Suporte ao protocolo TCP

#$InputTCPServerRun 514
# 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

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 Suporte criptografia de dados.

Captulo 7 - Registro de eventos

lpr.* -/var/log/lpr.log

11 Pode executar comandos caso detecte algum padro pr-definido em um registro.


105

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 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 esse pode ser demorada.
Ferramenta
de relatrios
Servidor
syslog-ng
Banco
de Dados
Mensagem syslog

syslog

Figura 7.1
Caractersticas do
syslog-ng.

A sintaxe utilizada na configurao do syslog-ng completamente diferente da sintaxe

Administrao de Sistemas Linux

usada pelo syslog, sendo baseada em quatro elementos que sero descritos na tabela 7.6:
Elemento

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 um 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 so 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 em uma mesma regra.
Para que o syslog-ng seja definido no sistema como o daemon padro de gerenciamento
de registros de eventos, necessrio desinstalar o sysklogd ou o rsyslog, dependendo de
qual deles 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.

106

Tabela 7.6
Sintaxe do
Syslog-ng.

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 sintaxe utilizada no syslog. A seguir, apresentado
um exemplo comentado do arquivo de configurao do syslog-ng:
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
Define a origem que vai gerar o evento de log.

source src { unix-stream(/dev/log); internal(); };


source kernsrc { file(/proc/kmsg); };
Seo Destination
Define o destino onde um evento de log ser armazenado, podendo ser um arquivo,
terminal, host etc.

destination authlog { file(/var/log/auth.log); };


destination syslog { file(/var/log/syslog); };
destination cron { file(/var/log/cron.log); };

destination kern { file(/var/log/kern.log); };


destination mail { file(/var/log/mail.log); };
destination all { file(/var/log/all.log); };
destination debug { file(/var/log/debug); };
destination messages { file(/var/log/messages); };
destination console { usertty(root); };

Captulo 7 - Registro de eventos

destination daemon { file(/var/log/daemon.log); };

107

Seo Filters
Criao dos filtros para interceptar apenas os eventos desejados.

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
Nesta seo, a source, filter e destination, para efetivamente realizar o log dos eventos.

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); };

Administrao de Sistemas Linux

Rotacionamento de arquivos de log

108

Rotacionamento de arquivos de log:

11 Comando logrotate:
22 Rotaciona, comprime e cria novos arquivos de log do sistema.
22 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
basicamente faz cpias dos arquivos de log em uso, criando novos arquivos que passaro
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.

Arquivo de configurao do logrotate


Arquivo /etc/logrotate.conf:

11 Arquivo de configurao do logrotate.


11 Principais parmetros:
22 Periodicidade em que feito o rotacionamento.
22 Opo de compactar ou no os arquivos antigos.
22 Nmero de cpias de arquivos anteriores que sero mantidas.
22 Opo de criar ou no novos arquivos de log aps rotacionar os antigos.
Diretrio /etc/logrotate.d:
11 Contm, opcionalmente, os arquivos de configurao de rotacionamento dos
arquivos de log individuais para cada daemon do sistema.
11 Deve ser enviado um sinal HUP ao daemon ao qual o arquivo de log tenha sido
rotacionado, por meio do parmetro postrotate.
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
mailroot
# Cria novos arquivos de log, vazios, aps rotacionar os antigos
create
# Compacta os arquivos de log que so rotacionados
compress

delaycompress
# Diretrio que contm as configuraes para as aplicaes do sistema
include /etc/logrotate.d

Captulo 7 - Registro de eventos

# Mantm o primeiro log rotacionado descompactado

109

O diretrio /etc/logrotate.d contm 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.

O 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 usado 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:

Administrao de Sistemas Linux

# logger -p auth.* "mensagem de teste"

110

Se a sintaxe da linha inserida no arquivo /etc/syslog.conf estiver correta, a mensagem transmitida por meio do comando logger ser gravada no arquivo /var/log/messages.

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
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 se percam, caso algum servidor da rede seja
invadido e tenha seus dados comprometidos.

Matriz do servidor

Figura 7.2
Servidor de logs.

Log do servidor

Host do administrador

Configurando os servidores clientes


Configurando os clientes:

11 Arquivo /etc/syslog.conf dos servidores clientes deve ser alterado, para que os
registros de eventos gerados sejam enviados ao servidor de logs.
11 Exemplos:

22 cron.*

@servidor_de_logs

22 mail.*

@servidor_de_logs

O arquivo /etc/syslog.conf dos servidores clientes tambm deve ser modificado, para que
os registros de eventos gerados por estes sejam enviados ao servidor de logs. A sintaxe
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 daemonsyslogd 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:

Captulo 7 - Registro de eventos

22 auth,authpriv.* @servidor_de_logs

111

Arquivo /etc/syslog.conf

auth,authpriv.* @servidor_de_logs
cron.* @servidor_de_logs
daemon.* @servidor_de_logs
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 daemonssyslog,
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
essa funo, monitorando os arquivos de log de forma otimizada e executando aes em
resposta a eventos que ocorrem. Diversos tipos de aes podem ser definidas, 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 e 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 Suporte criptografia de dados.


11 Compatvel com diversas plataformas.
11 Interface web para gerenciamento.

Administrao de Sistemas Linux

O 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.
Essa ferramenta 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 instalado no servidor
de logs um agente para consolidar os dados provenientes dos diversos dispositivos da rede.
A transferncia de dados entre os diversos agentes e o agente central e toda criptografada
e para diminuir a quantidade de registros, os agentes removem os menos significativos,
reduzindo consideravelmente o volume de dados transmitido.
112

O 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 nesta.

Arquivo de configurao do logwatch


O arquivo /etc/logwatch/conf/logwatch.conf possui as regras usadas 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 ou 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
Define os services que sero monitorados.

Service = All
Opo utilizada para que o logwatch analise somente o arquivo especificado.

LogFile = messages

HostLimit = Yes

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: impresso de mensagens no console; emisso de beeps; execuo de
comandos e envio de e-mails.

Captulo 7 - Registro de eventos

Define se somente esse servidor ser monitorado pelo logwatch.

113

O Swatch (Simple log watcher) 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, e 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)/
echo
bell
mail suporte@dominio
ignore = /.*/
A tabela 7.7 mostra as aes que podem ser executadas pelo swatch e suas respectivas

Administrao de Sistemas Linux

descries:

114

Tabela 7.7
Aes do Swatch.

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

Envia um e-mail para um ou mais endereos.

endereo=email,subject=ttulo
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.

11 Anlise baseada na deteco de anomalias.


11 Emisso de relatrios personalizados.
11 Mensagens organizadas em categorias (Active System Attacks, Security Violations
e Unusual Activity ).
O 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 e diretrios presentes no
diretrio /etc/logcheck. Arquivos e diretrios que contm a palavra ignore em seus nomes
armazenam expresses regulares que no sero gravadas nos relatrios gerados pelo logcheck.
O logckeck, por padro, 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

Define o formato do nome do servidor no subject

FQDN=1
Define se as entradas duplicadas sero removidas ou no

SORTUNIQ=0
Define se o arquivo cracking.ignore.d ser verificado

SUPPORT_CRACKING_IGNORE=0

Captulo 7 - Registro de eventos

SENDMAILTO=suporte@dominio

115

Define qual o diretrio que contm os arquivos de regras

RULEDIR=/etc/logcheck
Define o comportamento do syslog-summary

SYSLOGSUMMARY=0
Define o tipo de subject

ATTACKSUBJECT=Attack Alerts
SECURITYSUBJECT=Security Events
EVENTSSUBJECT=System Events
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 usado 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 Evitar que o servidor de log possua contas de usurios.
11 Realizar um backup dirio do servidor de logs.
11 Habilitar algum mdulo de segurana no servidor de logs:
22 SELinux.
22 LIDS.
So apresentadas a seguir algumas 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.
1. Manter os relgios de todos os servidores da rede sincronizados por meio do protocolo

Administrao de Sistemas Linux

Network Time Protocol (NTP), para evitar inconsistncias nos horrios dos registros dos

116

eventos gerados pelos diversos servidores, facilitando, assim, possveis auditorias em


casos de incidentes de segurana.
2. 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"

Instalar um servidor dedicado ao armazenamento de registros de eventos gerados por


todos os servidores da organizao, desativando qualquer outro servio desse servidor.
Deve ser criada uma regra, no firewall local do servidor de logs, que permita o trfego de
entrada somente para a porta desse servidor, partindo apenas de servidores da rede local.
3. No criar contas de usurios no servidor de logs.
4. Fazer um backup dirio do servidor de logs para garantir a integridade, a autenticidade
e a disponibilidade dos arquivos de log, pois, se esses dados forem perdidos por algum
motivo, o administrador ficar sem acesso aos registros de eventos de todos os servidores da rede.
5. recomendvel que o servidor de logs utilize mdulos de segurana como o SELinux
ou o LIDS.
11 SELinux: o 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;
11 LIDS: o 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 o LIDS possvel restringir
qualquer tipo de acesso ao sistema, e qualquer tentativa de acesso no autorizada em sis-

Captulo 7 - Registro de eventos

temas protegidos por ele reportada atravs de e-mails e registros nos arquivos de log.

117

118

Administrao de Sistemas Linux

8
Compreender os processos de inicializao e de desligamento de um sistema;
Entender as arquiteturas monoltica e modular do kernel e o conceito de mdulos;
Aprender sobre o processo de configurao e compilao do kernel.

conceitos

Inicializao do sistema; Shutdown; Arquitetura do Kernel; Configurando e


compilando o kernel.

Inicializao do sistema
11 BIOS verifica o 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 o da decolagem e o da 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. Nesta sesso de aprendizagem,
veremos que ambos os processos tm de 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, um
certo grau de complexidade, o processo de inicializao do sistema pode ser visto de uma
forma simples. A inicializao do sistema pode ser dividida nos seguintes estgios:
11 BIOS (Basic Input/Output System): programa responsvel por controlar os primeiros
passos do processo de boot e tambm 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;

Captulo 8 - Boot & Shutdown e Kernel

objetivos

Boot & Shutdown e Kernel

119

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;
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 LILO (Linux
Loader) 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 em 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 ou HD).
11 Realizar 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 usando
esquemas similares, como o sistema Alpha, que utiliza o console SRM. Uma vez carregado,
o BIOS executa o POST (Power-On Self Test), 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

Administrao de Sistemas Linux

discos rgidos. A ordem de verificao dos dispositivos pode ser alterada pelo administrador

120

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)


LILO e GRUB:
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.
Como visto anteriormente, existem dois tipos de carregadores de boot: o primeiro estgio e
o 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

Saiba mais
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 initial RAM disk (initrd), 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, o LILO e o GRUB.

LILO
11 Pioneiro entre os carregadores de boot.

11 Permite a passagem de parmetros para o kernel.


11 Arquivo de configurao:
22 /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 kernel atualizado.
Conforme j foi dito, o programa LILO um carregador de boot e, como tal, responsvel
pela 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.
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

Captulo 8 - Boot & Shutdown e Kernel

oportunidade de selecionar o que ele deseja utilizar no momento.

reconhecidos. Para mais informaes, a pgina de manual do LILO pode ser consultada.
121

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:
22 /boot/grub/grub.cfg
11 Oferece trs diferentes interfaces com diferentes funcionalidades.
11 Consegue ler diversos tipos de parties, como: ext2, ext3, ext4, Reiserfs, NTFS etc.
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 que so descritas a seguir:
11 Menu: conforme citado anteriormente, quando o GRUB carregado, ele procura pelo seu
arquivo de configurao e, ao encontr-lo, utiliza-o para construir a lista de menu e, em
seguida, 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 esse 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
verificar os comandos disponveis, o administrador deve pressionar duas vezes a tecla
TAB, que tambm pode ser usada para completar comandos e parmetros, assim como
no shell do Linux. A seguir, so listados alguns dos comandos mais importantes:
11 boot: pode ser utilizado para executar o boot a partir de um Sistema Operacional ou
verso de kernel;

Administrao de Sistemas Linux

11 chainloader<nome-arquivo>: alguns Sistemas Operacionais como o DOS e o Windows

122

armazenam seus gerenciadores de boot na partio em que esto instalados. atravs


desse comando que o GRUB passa o controle do processo de boot para esses gerenciadores, que, por sua vez, carregam o Sistema Operacional selecionado;
11 initrd<nome-arquivo>: permite ao administrador especificar uma imagem do disco a ser
utilizada no momento do boot, cuja funcionalidade j foi descrita anteriormente;
11 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;

11 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;
11 rootnoverify<dispositivo-partio>: faz o mesmo que o comando anterior, mas no
monta a partio.
O GRUB usa 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 pelo
Linux e pelo GRUB.
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)

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
timeout=5
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.

Captulo 8 - Boot & Shutdown e Kernel

Tabela 8.1
Comparativo
entre as notaes
utilizadas pelo
Linux e pelo GRUB.

Notao utilizada pelo Linux

123

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 usando o
comando dmesg. Essas mensagens so armazenadas no arquivo de log do sistema
/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. Entre 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 e podem ser acessados atravs da combinao
das teclas Alt+F1 at Alt+F6.

Administrao de Sistemas Linux

O Linux define nveis de execuo (runlevels) que identificam o estado atual do sistema.

124

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 usado para mudar o nvel de execuo atual.
Cada linha do arquivo /etc/inittab composta por quatro campos separados pelo caractere
:, que so 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 oinit 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;

Saiba mais
Os kill scripts so
responsveis por
matar os processos
que implementam um
determinado 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.

22 once: executa o processo uma nica vez;


22 respawn: reinicia o processo caso ele termine.
11 Process: informa o comando ou script a ser executado.
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.
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, que 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.
11 Define o nvel de execuo padro do sistema.
11 Indica quais processos devem ser iniciados, finalizados ou reiniciados.
11 Indica que aes tomar quando o sistema entra em um novo nvel de execuo.

Captulo 8 - Boot & Shutdown e Kernel

22 wait: espera o trmino do processo antes de ler a prxima linha do arquivo;

125

11 Formato:
22 id:rstate:action:process
O nvel de execuo pode ser modificado usando 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 sem NFS e SMB.

Modo multiusurio completo.

No utilizado.

Modo multiusurio com X-Window System.

Reinicializa o sistema.

A seguir, pode ser visto um exemplo comentado do arquivo /etc/inittab.

# Define o nvel de execuo padro


id:3:initdefault:
# Executa o script /etc/rc.d/rc.sysinit
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
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

Administrao de Sistemas Linux

l6:6:wait:/etc/rc.d/rc 6

126

# 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 daemonpowerd deve estar instalado no sistema e o servidor deve
ser alimentado por um no-break.

Tabela 8.2
RunLevels.

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
6:2345:respawn:/sbin/mingetty tty6

# Executa o xdm no nvel de execuo 5


x:5:respawn:/etc/X11/prefdm -nodaemon

Formato: id:rstate:action:process
Comando
Ao tomada pelo processo
Run Levels Aplicveis
Identicador

Figura 8.1
Formato das linhas
do arquivo
/etc/inittab.

Upstart
11 Utilizado no Ubuntu desde 2006.

11 Melhora o desempenho do boot atravs da execuo de jobs em paralelo.

11 Compatvel com o sysVinit.


11 Supervisiona os servios em execuo.
Criado por Scott James Remnant, da empresa Canonical Ltd., o upstart tem a funo de
substituir o processo Init nos sistemas Linux. Ele usado no Ubuntu desde 2006, sendo o
responsvel por iniciar e finalizar todas as tarefas e servios durante o processo de boot e
shutdown do sistema, alm de supervisionar os processos em execuo. O principal objetivo
do projeto era melhorar o desempenho do boot atravs de paralelismo, substituindo o
antigo init por um binrio que fosse capaz de tomar decises com base em eventos e ao
mesmo tempo manter a total compatibilidade com o sistema antigo.

Captulo 8 - Boot & Shutdown e Kernel

11 Orientado a eventos.

127

Conforme mencionado anteriormente, o Upstart baseado em eventos: um evento pode


iniciar um servio que, por sua vez, pode disparar um outro evento esse evento pode disparar um outro servio, e assim por diante. Outra caracterstica interessante que o Upstart
supervisiona os servios em execuo; dessa forma, o daemon pode reiniciar automaticamente um servio que morreu de forma inesperada.

Configurao
Os arquivos de configurao dos servios ficam no diretrio /etc/init e possuem a extenso
.conf. Cada arquivo define um job do Upstart que pode ser uma tarefa ou um servio. Por
questes de compatibilidade, a sintaxe bem semelhante aos arquivos do sysvinit.

Exemplo 1: /etc/init/control-alt-delete.conf
1. # control-alt-delete emergency keypress handling
2. #
3. # This task is run whenever the Control-Alt-Delete key combination is
4. # pressed, and performs a safe reboot of the machine.
5.
6. description

emergency keypress handling

7. author

Scott James Remnant <scott@netsplit.com>

8.
9. start on control-alt-delete
10.
11. task
12. exec shutdown -r now Control-Alt-Delete pressed
11 Linha 6: descrio do job;
11 Linha 7: informaes sobre o autor do script;
11 Linha 9: define quando e onde o job ser executado (ser executado quando o evento
control-alt-delete for acionado);
11 Linha 11: inicia a configurao da tarefa;
11 Linha 12: comando que ser executado.

Administrao de Sistemas Linux

Exemplo 2: /etc/init/udev.conf
1. # udev device node and kernel event manager
2. #
3. # Theudev daemon receives events from the kernel about changes in the
4. # /sys filesystem and manages the /devfilesystem.
5.
6. description
7.
128

device node and kernel event manager

8. start on virtual-filesystems
9. stop on runlevel [06]
10.
11. expect fork
12. respawn
13.
14.
exec /sbin/udevd --daemon
11 Linha 6: descrio do job;
11 Linha 8: especifica quando o servio deve ser iniciado, ou seja, aps o evento
virtual-filesystems ter acontecido;
11 Linha 9: determina que esse job deve ser finalizado quando o evento runlevel for
acionado em qualquer um dos nveis de 0 a 6;
11 Linha 11: o Upstart vai aguardar o processo executar uma chamada de sistema fork
uma vez;
11 Linha 12: caso o job morra de forma inesperada (exitcode diferente de 0),
ele ser reiniciado;
11 Linha 14: comando que ser executado.
Gerenciamento dos jobs
O Upstart possui o binrio initctl, que utilizado para gerenciar os jobs existentes.
11 Lista todos os jobs configurados:
22 # initctl list
11 Iniciando um servio:
22 # initctl start rsyslog
22 # start rsyslog
11 Finalizando um servio:
22 # initctl stop ssh
22 # stop ssh

22 # initctl status cron


22 # status cron

systemd
Principais caractersticas:
2 Compatvel com scripts de inicializao SysV e LSB.
2 Fornece recursos de paralelizao.
2 Utiliza sockts e D-Bus activation para inicializar os servios.
2 Inicializao sob demanda.

Captulo 8 - Boot & Shutdown e Kernel

11 Consultando o status:

129

11 Controla os processos utilizando control groups (cgroups).

11 Suporte para snapshot e restore.


11 Mount e automount.
11 Implementa uma elaborada lgica de dependncia de servios.
11 Tambm pode ser utilizado para substituir os syslogd.

Mantido por Lennart Poettering e um extenso grupo de parceiros, o systemd uma nova
proposta para o sistema de inicializao do Linux. Como principais metas, o systemd prope
criar menos processos e iniciar mais processos em paralelo. Seu funcionamento consiste
basicamente em adiar o incio dos processos at que eles sejam realmente necessrios e,
quando isso acontecer, utilizar todos os recursos disponveis para inici-lo.

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.
11 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 shutdown
envia o sinal TERM para todos os processos. No entanto, muitos processos no tratam o
sinal TERM ou, quando o fazem, se cancelam no 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:

130

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.

Saiba mais
O systemd comeou a
ser testado no Fedora
15 e atualmente a
verso default para
sistemas Red Hat
Enterprise Linux 7 e
derivados, substituindo
o Upstart. Existem
outros sistemas para
inicializao, como o
SysVinit paralelo e o
OpenRC, entretanto,
no sero abordados
neste curso.

Alm do comando shutdown, o administrador pode reinicializar o sistema utilizando o


comando reboot, ou par-lo usando 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 usar o comando telinit passando como parmetro os nmeros 0 ou 6
para desligar ou reinicializar o sistema respectivamente.

O tamanho do kernel
depende do nmero
de componentes
selecionados, 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.

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 O 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
de tal forma que suporte apenas os dispositivos efetivamente instalados no sistema, otimizando 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.

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, verses antigas do
Windows (95, 98 E ME) etc.
Como visto na sesso 1, 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) etc.

Captulo 8 - Boot & Shutdown e Kernel

Saiba mais

Arquitetura do kernel

131

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.
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 em um mesmo
kernel componentes permanentemente habilitados de forma esttica e componentes habilitados 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, o kernel monoltico, mesmo oferecendo suporte a mdulos, continua sendo nico e centralizado. Os mdulos podem ser
removidos da memria aps um intervalo de tempo de inatividade.

Mdulos do kernel
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.

Administrao de Sistemas Linux

11 modprobe: carrega ou remove da memria manualmente um mdulo

132

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: usado 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: usado para remover um mdulo do kernel carregado em memria;
11 lsmod: 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
usa 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: usado 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, DMA etc.;
11 modinfo: utilizado para exibir informaes a respeito de um mdulo, como sua localizao
em disco, tipo de licena, dependncias, parmetros etc.

Configurando e compilando o kernel


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 (vi, emacs etc.).
22 Tambm pode ser alterado atravs do comando make (make config, make menuconfig
ou make xconfig).
O cdigo-fonte do kernel fica localizado por padro no diretrio /usr/src/linux, que
do kernel. Nesse diretrio, o arquivo .config contm as informaes sobre a configurao
dos componentes do kernel. Esse 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 usado
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 usando o targetconfig, conforme mostrado a seguir:

# make config

Captulo 8 - Boot & Shutdown e Kernel

apenas um link simblico para o diretrio /usr/src/linux-x.y.z, onde x.y.z indica a verso

133

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 menu config, conforme apresentado a seguir:

# make menu config


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 targetxconfig, conforme apresentado a seguir:

# make xconfig
Esse mtodo baseia-se no ambiente grfico X-Window System, tornando a configurao dos
componentes bastante intuitiva. 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.
Opes de componentes:

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
Administrao de Sistemas Linux

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. A opo Enableloadable module support 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;
134

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, roteamento avanado etc.;
11 SCSI devicesupport: as opes apresentadas permitem a configurao de diferentes
tipos de dispositivos SCSI, como discos rgidos, CD-ROMs e unidades de fita magntica;
11 Network devicesupport: permite habilitar suporte a diversas tecnologias de rede, como:
ethernet, WLAN, PPP, WiMAX, FDDI, ATM, FibreChannel 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
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 a seguir:

# make clean
# make bzImage
O comando make clean remove arquivos existentes, decorrentes de compilaes anteriores
do kernel, e o comando make bzImage gera a imagem do kernel comprimida no arquivo
/usr/src/linux/arch/i386/boot/bzImage. O comando a seguir 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
Compilando o kernel:

11 Comandos para compilao:


22 # make clean
22 # make bzImage
11 Compilao e instalao dos mdulos:
22 # make modules
22 # make modules_install
Se o novo kernel tem componentes modulares em sua configurao, o administrador
precisa, ento, compilar e instalar esses mdulos usando os comandos make modules e
make modules_install, respectivamente.

Captulo 8 - Boot & Shutdown e Kernel

11 Ir para o diretrio /usr/src/Linux.

135

# make modules
# make modules_install
O tempo gasto no processo de compilao do kernel varia de acordo com o hardware usado
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 menu config ou make xconfig e, em seguida, executar os comandos make
modules e make modules_install.

Instalando o kernel
# make install

11 Ativa script /usr/src/linux/arch/x86/boot/install.sh.


11 Copia imagem do novo kernel e arquivos associados.
# mkinitramfs 3.2.8 -o /boot/initrd.img-3.2.8
11 Cria a imagem initrd no diretrio /boot.
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 do arquivo do novo kernel poderia ser vmlinuz-3.2.8.new. Alm disso,
ele teria de fazer as 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, o /boot.
Em seguida, preciso gerar a imagem initrd utilizando o comando a seguir:

# 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
Administrao de Sistemas Linux

11 Verifica a da instalao por parte do administrador:


22 LILO: /etc/lilo.conf.
22 GRUB: /boot/grub/grub.cfg.
11 Manuteno do kernel original para se proteger de erros.
11 Se o carregador de boot for o LILO, necessrio atualizar o MBR:
22 Executar o 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.
136

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
read-only
append=root=LABEL=/
As cinco ltimas linhas formam a seo associada verso original do kernel, que usa 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 verificar se foi includa uma nova
seo ao final do arquivo para descrever o novo kernel, conforme mostrado a seguir:

prompt
timeout=50
default=Linux

map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
# Kernel novo
image=/boot/vmlinuz-3.2.8custom
label=Linux-3.2.8custom

Captulo 8 - Boot & Shutdown e Kernel

boot=/dev/hda

137

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=/
Nota-se 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 a seguir:

# lilo v
No caso do GRUB, vamos assumir que o arquivo de configurao, originalmente, tivesse o
seguinte contedo:

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:

default=1

Administrao de Sistemas Linux

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

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.
Depois de feitas 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 sesso de
aprendizagem do arquivo /etc/lilo.conf ou /boot/grub/grub.cfg associada ao kernel antigo e

Captulo 8 - Boot & Shutdown e Kernel

remover sua imagem do diretrio /boot.

139

140

Administrao de Sistemas Linux

9
Segurana bsica e procedimentos
operacionais
Conhecer os aspectos de segurana bsica do sistema; Entender a importncia da
esquema de autenticao de usurios em um sistema Linux e o princpio de
funcionamento dos algoritmos de criptografia do tipo one-way; Entender a utilidade
dos bits SUID e SGID e os riscos que trazem segurana do sistema; Conhecer os
principais gerenciadores de pacotes do Linux; Aprender alguns procedimentos
operacionais que devem ser adotados, como: estabelecimento de uma poltica de
uso de recursos computacionais, registro de ocorrncias, rotina de backup etc.

lhadas; SUID e SGID; Atualizao de software; Procedimentos operacionais;


Poltica de utilizao de recursos; Atendimento a usurios; Controle de recursos
computacionais; Diagnstico de falhas; Rotina de backup.

Segurana bsica
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.
Questes bsicas:
11 Orientar os usurios a utilizarem senhas no triviais.
11 Controlar o acesso fsico aos servidores.
11 Controlar a criao e a remoo de contas.
11 Impedir o uso de contas compartilhadas.
Os aspectos sobre segurana bsica e procedimentos operacionais que sero tratados
nesta sesso de aprendizagem dizem respeito apenas queles que tm alguma correlao

conceitos

Servio de impresso; Segurana bsica; Analisadores de senhas; Contas comparti-

Captulo 9 - Segurana bsica e procedimentos operacionais

objetivos

monitorao do sistema e da antecipao de aes; Compreender como funciona o

com o que foi visto nas sesses de aprendizagem anteriores. Alguns aspectos, como o uso
141

de senhas no triviais, o uso de contas compartilhadas e a remoo de contas desativadas,


por exemplo, j foram discutidos em sesses anteriores. Outros aspectos, no entanto, ainda
no foram mencionados, como o uso de criptografia, os servios de rede desnecessrios
etc. Esses tpicos sero tratados com mais detalhes nos mdulos de administrao mais
avanados. Ainda nesse tpico, 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.
11 Orientar os usurios de modo que no utilizem senhas bvias e configurar os sistemas de
modo que solicitem trocas de senhas periodicamente;
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 SSH (Secure Shell) 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
mdulo 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. Esses 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.
Dificultar ao mximo a ao dos crackers.

11 Chkrootkit:
22 Utilizado para detectar rootkits.
22 Analisa o sistema em busca de executveis, servios e processos suspeitos.
11 TripWire:
22 Monitora o sistema para garantir sua integridade.

Administrao de Sistemas Linux

22 Utiliza diversas tcnicas para encontrar alteraes no autorizadas em arquivos.

142

11 OpenVAS:
22 Utilizado para detectar vulnerabilidades.
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 procurar
detectar rapidamente as tentativas de invaso. Os administradores de sistemas devem usar
alguns programas para descobrir e corrigir as possveis falhas de segurana.

11 Chkrootkit: um programa utilizado para detectar rootkits em sistemas Unix. Um rootkit


tem como finalidade ocultar uma invaso em um sistema. Para isso, ele faz diversas modificaes, como substituio de executveis, remoo de entradas do arquivo wtmp, entre
outras, sempre com o objetivo de realizar ataques a terceiros. Para combater esse 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 detectar algum indcio de invaso ao sistema. A verso atual do
chkrootkit detecta cerca de 60 tipos de ameaas;
11 TripWire: um programa utilizado para monitorar a integridade de sistemas Unix.
O TripWire 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;
11 OpenVAS (Open Vulnerability Assessment System): um framework para diversos
servios e ferramentas que oferece um poderoso scanner de vulnerabilidade e um gerenciador de solues que auxilia o administrador a corrigir as vulnerabilidades identificadas.
O OpenVAS utiliza a arquitetura cliente-servidor onde o servidor executa uma varredura
no cliente, em portas TCP e UDP pr-configuradas, em busca de alguma vulnerabilidade.
Mesmo que um servio no esteja utilizando sua porta padro ele ser examinado pelo
OpenVAS, desde que, a porta em que ele esteja sendo executado tenha sido configurada
para ser analisada. O administrador pode definir quais clientes sero auditados e aps a
concluso da auditoria, apresentado um relatrio com todas as vulnerabilidades encontradas em todos os clientes escaneados. Hoje, o OpenVAS possui uma comunidade crescente, com contribuies de indivduos e corporaes de todo o mundo e est disponvel
na forma de pacotes binrios para a maioria das distribuies Linux e possvel obt-lo
em repositrios de terceiros ou baix-lo diretamente do site do OpenVAS.

Analisadores de senhas
11 Uso da criptografia one-way.

11 A senha do usurio criptografada e comparada com a que est armazenada.

11 Senhas simples podem ser quebradas por crackers com o uso de dicionrios.
11 Alterao frequente da senha do usurio root.
11 Definir os terminais seguros no arquivo /etc/securetty.
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 habilitadas. Em qualquer um desses dois arquivos, as senhas so armazenadas criptografadas por
algoritmos de criptografia que esto 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. Esse o motivo pelo qual no se deve utilizar senhas simples.

Captulo 9 - Segurana bsica e procedimentos operacionais

11 Uso de dicionrios prprios para obrigar os usurios a escolherem senhas difceis.

143

O uso de senhas bvias, como datas de aniversrio, nomes de membros da famlia etc. 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.

A melhor maneira de evitar que os usurios do sistema escolham senhas fceis de serem
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.
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.

Dicionrios
Nome dado a arquivos 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 do sistema, todas as senhas presentes no dicionrio.

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 usadas 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
Administrao de Sistemas Linux

de compartilhamento no recomendvel, pois caso ocorra uma invaso utilizando essa

144

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 de essa
alternativa ser mais trabalhosa. O compartilhamento da senha do usurio root ainda mais
perigoso e deve ser restringido ao mximo.

Saiba mais
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.

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.
Servios devem ser executados por um usurio com os privilgios necessrios.
Como foi descrito na sesso de aprendizagem 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 esse 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
ser executados com privilgios de root os servios em que esse requisito for obrigatrio.
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
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.
Os desenvolvedores tambm utilizam as atualizaes para corrigir falhas de segurana
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 usa 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.

Captulo 9 - Segurana bsica e procedimentos operacionais

na instalao do sistema com esse objetivo. Um servidor web, por exemplo, precisa acessar

145

RPM: RPM Package Manager


11 Gerenciador de pacotes utilizados nas distribuies Red Hat, Fedora, CentOS etc.

11 Os pacotes so compostos por binrios, arquivos de configurao etc.


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 fazem atualizaes automticas de pacotes.
O 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, pginas
de manual etc. Red Hat, Fedora e CentOS so exemplos de distribuies que utilizam
pacotes RPM. O RPM possui interfaces grficas como, por exemplo, 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 desse 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 este j est instalado no sistema e, caso esteja,
verifica se sua verso mais recente que a verso que est sendo instalada. Em seguida, o
RPM confere 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.
Nesse caso, o administrador deve, primeiramente, instalar todas as dependncias necessrias. No entanto, se o administrador tentar remover um pacote que dependente de outro
pacote, a remoo no ser realizada e uma mensagem ser impressa na tela informando
que o pacote no pode ser removido porque utilizado por outro pacote que est 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

Administrao de Sistemas Linux

informando sobre a alterao.

146

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
pacotes RPM, como Red Hat, CentOS e Fedora, possuem um mecanismo ainda mais poderoso para manter o sistema sempre atualizado. Trata-se do YUM, que um gerenciador de
pacotes baseado no RPM, que ser descrito a seguir.

YUM: Yellowdog Updater, Modified


11 Gerenciador de pacotes usados nas distribuies Red Hat, Fedora, CentOS etc.

11 Resolve problemas com dependncias, instalando-as automaticamente.


11 Utiliza repositrios para fazer o download dos pacotes.
11 Possui interfaces grficas e uma interface texto baseada no comando YUM.
O Yellowdog Updater, Modified (YUM) um gerenciador de pacotes usados em distribuies
que so 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 bastante 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 que so instalados no sistema.
A lista de repositrios fica armazenada em arquivos dentro do diretrio /etc/yum.repos.d/.
O YUM possui interfaces grficas, como, por exemplo, o KYUM e uma interface texto
baseada no comando YUM. Esse curso ser baseado na interface texto utilizando o
comando YUM. So listadas a seguir as principais opes de uso desse comando.
11 install: instala um ou mais pacotes;
11 group-install: faz a instalao de um grupo de programas (exemplo: System Tools);
11 remove: remove um ou mais pacotes;
11 update: atualiza um ou mais pacotes;
11 upgrade: faz a atualizao de 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.

APT: Advanced Packaging Tool


11 Gerenciador de pacotes utilizados nas distribuies Debian, Ubuntu etc.

11 Utiliza repositrios para fazer o download dos pacotes.


11 Possui interfaces grficas e interfaces texto, uma delas, baseada no comando apt-get.
um gerenciador de pacotes usado na distribuio Debian e suas derivadas, como, por
exemplo, a distribuio Ubuntu. Assim como o YUM, o APT tambm resolve problemas
com dependncias entre pacotes, instalando-as automaticamente quando necessrio.
O APT consulta uma srie de repositrios que so usados para fazer o download dos
pacotes que so instalados no sistema. A lista de repositrios fica armazenada no arquivo
/etc/apt/sources.list. O APT possui interfaces grficas, como, por exemplo, o Synaptic e
interfaces texto, com destaque para o comando apt-get. Este curso ser baseado na interface texto, utilizando o comando apt-get. So listadas a seguir as principais opes de uso
desse 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;

Captulo 9 - Segurana bsica e procedimentos operacionais

11 Resolve problemas com dependncias, instalando-as automaticamente.

147

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.

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.
11 Etc.
Como foi visto no item sobre segurana bsica, 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. 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 acima, no que diz respeito ao trabalho
de forma organizada, reunindo algumas 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. Isso resulta em sistemas com maior tempo de disponibilidade, melhor desempenho e,
o que o 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

Administrao de Sistemas Linux

locais de cada instituio e aperfeioado pelo administrador no seu dia a dia. Inicialmente,

148

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


Entre as atribuies do administrador de sistemas, encontra-se a elaborao de regras de
utilizao dos recursos computacionais disponibilizados para os funcionrios de uma instituio. Esse ponto especialmente crtico em grandes instituies, com unidades fisicamente distribudas, mas que compartilham o uso de recursos. As regras de uso dependem
fundamentalmente do tipo de instituio, do seu grau de informatizao e da sua poltica de
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, e 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 armazenados ou acessveis por meio daqueles recursos.
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

Tipo (administrativo, desenvolvimento, pesquisa, produo etc.).


Regime (uso eventual ou contnuo, processamento em tempo real ou batch etc.).
Carga (uso marginal ou intensivo de recursos do sistema).

2
3

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

Acompanhamento da utilizao dos recursos computacionais:

11 Manuteno preventiva.
11 Tuning.
11 Substituio, atualizao e expanso de dispositivos saturados.
11 Aquisio de novos equipamentos.
11 Treinamento de pessoal de suporte.
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

Captulo 9 - Segurana bsica e procedimentos operacionais

Perodo do uso (data inicial, data final).


Tabela 9.1
Caracterizao do
uso de recursos
computacionais.

149

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, poder
ser adquirido um software especfico para essa funo. 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
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:
22 De acordo/Data/Assinatura do usurio.
Para ser efetivada, a incluso de um novo usurio deve ser acompanhada de um termo de
responsabilidade, no qual o futuro usurio declara sua concordncia com os termos e condies de uso estabelecidos pela instituio e da assinatura de seu superior imediato. Um

Administrao de Sistemas Linux

exemplo simples de termo de responsabilidade apresentado na tabela 9.2.

150

Campo

Dados cadastrais

Nome completo do usurio

Documento de identificao (matrcula na empresa ou 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

Tabela 9.2
Dados cadastrais
dos usurios.

Atendimento aos usurios


11 Disponibilizar as informaes bsicas sobre caractersticas e condies de utilizao

dos sistemas.
22 Formato simples (eletrnico) e de fcil acesso.
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 verificao 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.
Cabe ao administrador do sistema, em ltima instncia, tentar descobrir as reais necessidades do usurio e decidir como pode melhor atend-los. 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 problema ao seu superior e tentar resolv-lo da
melhor maneira possvel.

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 de 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

Captulo 9 - Segurana bsica e procedimentos operacionais

Eventualmente, se o trabalho do usurio for importante para a instituio, o recurso poder

151

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.
importante, tambm, manter um histrico das ocorrncias de cada equipamento,
incluindo 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.

Administrao de Sistemas Linux

11 Guardar informaes, preferencialmente em formato eletrnico.

152

O cadastro dos equipamentos de TI deve ser feito independentemente do software utilizado para esse 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 alguns 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 e telefone)

Softwares instalados (ttulo, verso e 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 melhor controle sobre licenas e necessidades de uso, usando formato
semelhante ao utilizado na 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.
O diagnstico de falhas, devido ao seu carter investigativo, uma das atividades mais
desafiantes entre 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

Captulo 9 - Segurana bsica e procedimentos operacionais

Tabela 9.3
Cadastro de
hardware.

Campo

diferentes para o mesmo problema (que sugerem diagnsticos incorretos) etc.


153

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 (exemplo: 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.

Esse tipo de documento, alm de contribuir para elevar o nvel de qualidade da administrao dos sistemas de uma instituio, facilita o trabalho da equipe de TI durante a
resoluo de problemas, liberando o administrador para atividades mais complexas.
O campo 6 da tabela 9.4, por exemplo, 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.
Administrao de Sistemas Linux

11 Dependendo da necessidade, o backup deve ser duplicado e armazenado em

154

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 na sesso de aprendizagem 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 distintos,

Captulo 9 - Segurana bsica e procedimentos operacionais

para reduzir o risco de perda por catstrofes como incndios, inundaes etc.

155

156

Administrao de Sistemas Linux

10
Webmin
intermdio da web; Aprender os pr-requisitos necessrios instalao do Webmin;
Identificar as principais vantagens do Webmin; Entender o conceito de mdulo utilizado
pelo Webmin; Conhecer o Usermin, uma ferramenta que pode ser usada pelos usurios
de um sistema para gerenciarem seus perfis.

conceitos

Caractersticas gerais; Instalao; Interface de administrao; Mdulos; 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.
11 Controle de acesso:
22 Possui excelente flexibilidade em relao ao controle de acesso aos diversos mdulos.
22 Permite registrar as alteraes feitas por meio da interface web em arquivos de log.
22 As alteraes feitas por meio do Webmin so executadas diretamente nos
arquivos de configurao do sistema.
22 Deve ser executado pelo superusurio.
Nesta sesso de aprendizagem, 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.

Captulo 10 - Webmin

objetivos

Conhecer o Webmin, uma ferramenta para administrao de servidores Unix por

157

Algumas caractersticas importantes do Webmin sero apresentadas a seguir:


11 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;
11 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 podem ser executadas com os privilgios desse usurio;
11 Configurao: 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 usando um gerenciador de pacotes, que j instala automaticamente
todas as dependncias necessrias. No entanto, nesta sesso de aprendizagem, ser
apresentado o modo de instalao manual, usando o cdigo-fonte do Webmin e de suas
dependncias. Para acessar o Webmin de forma segura, necessrio a instalao de trs
dependncias que so exibidas a seguir:
158

2 Perl;
2 OpenSSL;
2 Net_SSLeay.pm.

Perl
Instalao do Perl:

11 # cd /usr/local/src
11 # wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
11 # tar -zxvfperl-5.14.2.tar.gz
11 #cdperl-5.14.2
11 # ./configure
11 # make
11 # make test
11 # make install
O Webmin, conforme mencionado anteriormente, escrito na linguagem de programao
Perl. Sendo assim, esta 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.
A instalao tambm pode ser feita atravs dos gerenciadores de pacotes como yum e apt.

Instalao do OpenSSL:
11 # cd /usr/local/src
11 # wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
11 # tar -zxvf openssl-1.0.0g.tar.gz
11 # cd openssl-1.0.0g
11 #./configure

q
Captulo 10 - Webmin

OpenSSL

159

11 # make

11 # make test
11 # make install
O 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 usam esse binrio
geralmente o procuram nesse diretrio. Para a instalao da verso 1.0.0g do OpenSSL,
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
# cd openssl-1.0.0g
# ./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 OpenSSL, em http://www.openssl.org.
Feito isso, o diretrio openssl-1.0.0g pode ser excludo, assim como o pacote de instalao.
A instalao tambm pode ser feita atravs dos gerenciadores de pacotes como yum e apt.

Net_SSLeay.pm
Instalao do Net_SSLeay:

11 # cd /usr/local/src
11 # wget http://www.cpan.org/modules/by-module/Net/Net-SSLeay-1.45.tar.gz
11 # tar -zxvf Net-SSLeay-1.45.tar.gz
11 # cd Net-SSLeay-1.45
11 # perl Makefile.PL
11 # make
11 # make install

Administrao de Sistemas Linux

O Net_SSLeay.pm nada mais do que um mdulo necessrio para a implementao de aplica-

160

es 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
# make
# make install
Se no tivermos nenhum erro, passa-se prxima seo. Do 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. A instalao tambm pode ser feita atravs
dos gerenciadores de pacotes como yum e apt ou pelo repositrio do CPAN.

Webmin
Instalao do Webmin:

11 # cd /usr/local/src
11 # wget http://ufpr.dl.sourceforge.net/project/webadmin/Webmin/1.580
/Webmin-1.580.tar.gz
11 # tar -zxvf Webmin-1.580.tar.gz
11 # cd Webmin-1.580
11 # ./setup.sh /usr/libexec/Webmin
Nesse tpico ser abordada a instalao do programa Webmin propriamente dito. As instrues apresentadas nesse documento foram baseadas nas verses indicadas a seguir, mas
devem ser semelhantes para verses futuras. Para a instalao da verso 1.580 do Webmin,
dever ser executada a sequncia de comandos:

# cd /usr/local/src
# wget http://ufpr.dl.sourceforge.net/project/webadmin/Webmin/1.580
/Webmin-1.580.tar.gz
# tar -zxvfWebmin-1.580.tar.gz
# cd Webmin-1.580
# ./setup.sh /usr/libexec/Webmin
Quando for executado o scriptsetup.sh, que o programa de instalao do Webmin, sero
feitas algumas perguntas que, em 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

web server port (default 10000):


Login name (default admin):
Login password:
Password again:

Captulo 10 - Webmin

Full path to perl (default /usr/bin/perl):

Use SSL (y/n): y


161

Start Webmin at boot time (y/n): y


Feito isso, o diretrio /usr/local/src/Webmin-1.580 pode ser excludo, assim como o pacote
de 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.

Interface de administrao
O acesso interface do Webmin pode ser feito por meio de qualquer navegador web:
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 mdulos, que podem ser configurados de acordo com as necessi-

Administrao de Sistemas Linux

dades do administrador.

162

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 disponveis para

Figura 10.1
Pgina inicial do
Webmin.

serem administrados atravs de sua interface, nem sempre esses mdulos esto habilitados, pois,
em determinados casos, pode acontecer de determinado 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. Esses
mdulos cobrem desde LDAP at IDSs, como o Snort etc. 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 algumas 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 possui as mensagens
de texto utilizadas pelo mdulo, nesse caso, na lngua inglesa.
11 Evitar o uso de frames, javascript, DHTML e Flash.
Categorias de configurao:

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.

Captulo 10 - Webmin

11 Hardware: mdulos de configurao de hardware.

163

A seguir, so descritas as categorias presentes na interface do Webmin:


11 Webmin: possui mdulos de configurao do Webmin, como criao de usurios,
backup dos arquivos de configurao etc.;
11 System: contm mdulos de configurao de servios do sistema, como boot e shutdown,
gerenciamento de file systems, backup etc.;
11 Servers: tem mdulos de configurao de servidores, como Apache, SSH etc.;
11 Others: possui mdulos de configuraes diversas, como comandos do shell,
status do sistema, mdulos Perl etc.;
11 Networking: contm mdulos de configurao de rede, como firewall,
monitoramento de banda etc.;
11 Hardware: tem 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. Essa ltima opo pode ser seguida
navegando em sua interface atravs das opes: Webmin, WebminConfiguration e Webmin
Modules. As opes de instalao incluem: um mdulo que est localizado no prprio
servidor, um mdulo que est localizado no computador que est acessando a interface
do Webmin, um mdulo que est 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. Devido grande
quantidade de mdulos, suas pginas no sero exibidas nessa sesso, cabendo ao admi-

Administrao de Sistemas Linux

nistrador navegar pela interface do Webmin para explorar todas as suas funcionalidades.

164

Figura 10.2
Pgina de
administrao do
servio SSH.

Usermin
11 Interface web desenvolvida para auxiliar os usurios de sistemas Unix em

tarefas cotidianas.

O Usermin pode ser


acessado atravs do
endereo https://
servidor:20000.

11 O Webmin possui um mdulo que permite o gerenciamento do Usermin.


Devido s inmeras 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.
Entre as caractersticas do Usermin, podemos citar que ele prov uma interface web, por
meio da qual usurios de um sistema podem alterar suas senhas, editar seus scripts de
login, agendar tarefas no cron etc. O Usermin pode ser gerenciado atravs do Webmin.
Sendo assim, possvel restringir o nvel de autonomia de cada usurio. Durante esse 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: acesso a vrias outras aplicaes, como file manager, submisso de tarefas
utilizando o cron, documentao do sistema etc.;
11 Mail: leitura de mensagens, criao de redirecionamentos, filtros etc.;
11 Login: possibilita ao usurio administrar sua conta, podendo fazer mudana de senha,
visualizar processos, executar comandos etc.;
11 Applications: iniciar aplicaes como, por exemplo, GPGencryption, fazer upload e
download de arquivos etc.

Captulo 10 - Webmin

11 Possibilita a alterao de senhas, edio de scripts de login, agendamento de tarefas etc.

165

166

Administrao de Sistemas Linux

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.

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

livro inclui os roteiros das atividades prticas e o contedo dos slides apresentados em sala de aula, apoiando
suas organizaes ou localidades de origem.

ISBN 978-85-63630-52-0

9 788563 630520

Vous aimerez peut-être aussi