Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga
Administrao
de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga
Administrao
de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga
Rio de Janeiro
Escola Superior de Redes
2013
Nelson Simes
Diretor de Servios e Solues
Luiz Coelho
Edio
Pedro Sangirardi
Reviso Tcnica
Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask, Elimria Barbosa,
Lourdes Soncin, Luciana Batista, Luiz Carlos Lobato e Renato Duarte
Capa, projeto visual e diagramao
Tecnodesign
Verso
1.1.0
Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encontrado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de
contedo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e
Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a
pessoas ou bens, originados do uso deste material.
As marcas registradas mencionadas neste material pertencem aos respectivos titulares.
Distribuio
Bibliografia: p. 219.
ISBN 978-85-63630-20-9
1. Linux (Sistema operacional de computador). 2. Sistema operacional (computadores).
3. Manuteno de software.
I. Braga, Marcelo. II. Ttulo.
CDD 005.43
Sumrio
1. Introduo ao sistema operacional Linux
Introduo1
Atribuies de um administrador de sistemas1
Requisitos do administrador de sistemas2
Histrico3
Slackware 4
Red Hat Enterprise Linux4
Debian5
Suse5
Mandriva5
Fedora5
CentOS5
Ubuntu5
Arquitetura6
Kernel6
Biblioteca de funes padro9
Shell9
Aplicaes10
Sistema de arquivos10
Inode11
Tipos de arquivos12
Arquivo regular13
Diretrios13
Arquivo de dispositivo13
Socket14
Named pipe 14
iii
Link15
Exerccio de fixao 1 Identificando tipos de arquivos18
Comando ls18
Permisses de arquivos19
Bits de permisso19
Exerccio de fixao 2 Anlise de permisses20
Bits especiais20
Comando chmod mudando permisses 21
Exerccio de fixao 3 Alterando permisses de arquivo 23
Comando umask23
Roteiro de Atividades 125
Atividade 1.1 Identificando bits de permisso25
Atividade 1.2 Identificando e entendendo hard links25
Atividade 1.3 Conhecendo diferenas entre hard link e symbolic link25
Atividade 1.4 Trabalhando com hard link e symbolic link26
Atividade 1.5 Conhecendo limitaes do hard link26
Atividade 1.6 Criando links para diretrios26
Atividade 1.7 Alterando permisses de arquivos e diretrios26
Atividade 1.8 Atribuindo as permisses padres27
Atividade 1.9 Entendendo as permisses padres27
2. Usurios e grupos
Introduo29
Grupos30
Arquivo /etc/gshadow31
Exerccio de fixao 1 Arquivos de administrao de grupo32
Usurios32
Problemas de segurana33
Shadow passwords 33
Exerccio de fixao 2 Arquivos de administrao de usurios34
Tipos de contas de usurios34
Senhas35
Criando contas de usurios35
Criar entrada nos arquivos /etc/group e /etc/gshadow36
Criar entrada nos arquivos /etc/passwd e /etc/shadow36
Definir senha inicial 38
iv
3. Processos
Processos49
Tipos de processos50
Componentes de um processo50
Ciclo de vida de um processo52
Multiprocessamento54
Daemon56
Alternando execues56
Estados de um processo57
Prioridades e escalonamento de processos58
Uso de sinais61
Monitoramento de processos62
Exerccio de fixao 1 Monitoramento de processos63
Execuo peridica de tarefas63
Cron64
Exerccio de fixao 2 Utilizando crontab65
Anacron65
Fcron66
Roteiro de Atividades 367
Atividade 3.1 Descobrindo o nmero de processos em execuo67
Atividade 3.2 Descobrindo o PID e o PPID de um processo67
Atividade 3.3 Estados dos processos67
Atividade 3.4 Alternando a execuo de processos67
Atividade 3.5 Identificando o RUID e o EUID de um processo67
Atividade 3.6 Definindo a prioridade de processos67
Atividade 3.7 Editando arquivos crontab para o agendamento de tarefas68
Atividade 3.8 Agendando uma tarefa no daemon cron68
Atividade 3.9 Listando e removendo arquivos crontab68
Atividade 3.10 Entendendo o comando exec68
4. Sistema de arquivos
Estrutura dos discos69
Exerccio de fixao 1 Estrutura de diretrios71
Tipos de partio71
Sistema de arquivos72
Comandos74
Tipos de sistemas de arquivos suportados77
Exerccio de fixao 2 Sistemas de arquivos77
Exerccio de fixao 3 Comando mkfs77
Sistema de quotas77
Preparando o sistema78
Habilitando78
Inicializando79
Editando quotas80
Verificao e gerenciamento81
vi
5. Backup
Introduo87
Tipos de backup88
Mdias de backup88
Fitas magnticas89
Mdias pticas90
Storage91
Exerccio de fixao 1 Storages95
Comandos do sistema95
Comando tar95
Comando cpio96
Comando dump97
Comando rsync97
Comandos gzip/gunzip e bzip2/bunzip298
Exerccio de fixao 2 Comandos do sistema98
Softwares de backup gratuitos98
Amanda98
Bacula106
Pacotes comerciais119
Polticas de backup120
Cuidados no armazenamento das mdias121
Exerccio de fixao 3 Softwares de backup122
Roteiro de Atividades 5123
Atividade 5.1 Utilizando tar para fazer backup123
Atividade 5.2 Utilizando dump e restore para fazer backup123
Atividade 5.3 Utilizando tar para clonar uma estrutura de diretrio124
Atividade 5.4 Fazendo backup remoto com rsync124
Atividade 5.5 Agendando rotinas de backup124
vii
6. Servio de impresso
Introduo127
Histrico127
Arquitetura do sistema de impresso128
Softwares gerenciadores de impresso129
Line Printer Daemon (LPD)129
LPRng131
CUPS131
Exerccio de fixao 1 Verificando os dispositivos suportados134
Exerccio de fixao 2 Verificando as impressoras definidas no sistema137
Roteiro de Atividades 6139
Atividade 6.1 Definindo uma impressora local139
Atividade 6.2 Testando a impressora139
Atividade 6.3 Definindo uma impressora remota139
Atividade 6.4 Definindo quotas de impresso139
Atividade 6.5 Restringindo o uso de impressoras139
Atividade 6.6 Desabilitando a impresso de jobs139
Atividade 6.7 Suspendendo a submisso de jobs139
Atividade 6.8 Criando classes de impressoras139
Atividade 6.9 Removendo impressoras140
Atividade 6.10 Utilizando a interface web do CUPS140
Atividade 6.11 Instalando uma impressora no Windows 7140
7. Registro de eventos
Introduo141
Sysklogd142
Syslogd142
Exerccio de fixao 1 Exibindo mensagens de eventos nos terminais145
Klogd146
Rsyslog 147
Syslog-ng148
viii
10. Webmin
Caractersticas gerais207
Instalao208
Perl209
OpenSSL209
Net_SSLeay.pm210
Webmin211
Interface de administrao212
Mdulos213
Usermin214
Roteiro de Atividades 10217
Atividade 10.1 Criando um usurio para o Webmin217
Atividade 10.2 Administrando contas e grupos217
Atividade 10.3 Alterando a prioridade do processo do Webmin217
Atividade 10.4 Agendando backups217
Atividade 10.5 Adicionando impressoras218
Atividade 10.6 Direcionando o registro de eventos para um servidor remoto218
Atividade 10.7 Configurando o rotacionamento de logs218
Atividade 10.8 Configurando o nvel de execuo e inicializao de servios218
Bibliografia 219
xi
xii
A metodologia da ESR
A filosofia pedaggica e a metodologia que orientam os cursos da ESR so baseadas na
aprendizagem como construo do conhecimento por meio da resoluo de problemas tpicos da realidade do profissional em formao. Os resultados obtidos nos cursos de natureza
terico-prtica so otimizados, pois o instrutor, auxiliado pelo material didtico, atua no
apenas como expositor de conceitos e informaes, mas principalmente como orientador do
aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional.
A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema
semelhantes s encontradas na prtica profissional, que so superadas por meio de anlise,
sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do problema, em abordagem orientada ao desenvolvimento de competncias.
Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as
atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de aprendizagem no considerada uma simples exposio de conceitos e informaes. O instrutor
busca incentivar a participao dos alunos continuamente.
xiii
Sobre o curso
Este curso fornece o conhecimento e as habilidades necessrias para administrar com
xito e suportar um servidor baseado no sistema operacional Linux. Atravs de uma srie
de atividades prticas, voc aprender a criar e configurar novas instalaes do Linux, bem
como solucionar problemas e apoiar as instalaes existentes. Voc tambm aprender
importantes tarefas administrativas, incluindo o gerenciamento de usurios e grupos,
a criao de sistemas de arquivos e backup, servios de impresso para Unix e clientes
Windows, registro de eventos e configurao e construo do kernel do Linux, o ncleo do
sistema operacional.
A quem se destina
Indicado para analistas de suporte e responsveis pela manuteno de servidores e especialistas que desejem aprofundar os conhecimentos para se tornarem administradores
de sistemas Linux. Administradores de sistemas que precisam gerenciar sistemas Linux
tambm se beneficiaro deste curso, assim como os profissionais que pretendem iniciar os
estudos para a certificao LPI, do Linux Professional Institute.
xiv
Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da
sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito
e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no
Windows C:\).
Contedo de slide
Indica o contedo dos slides referentes ao curso apresentados em sala de aula.
Smbolo
Indica referncia complementar disponvel em site ou pgina na internet.
Smbolo
Indica um documento como referncia complementar.
Smbolo
Indica um vdeo como referncia complementar.
Smbolo
Indica um arquivo de adio como referncia complementar.
Smbolo
Indica um aviso ou precauo a ser considerada.
Smbolo
Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao
entendimento do tema em questo.
Smbolo
Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou
mesmo uma observao.
Permisses de uso
Todos os direitos reservados RNP.
Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra.
Exemplo de citao: FRAZO JNIOR, Ari; BRAGA, Marcelo Castellan. Administrao de Sistemas Linux. Rio de Janeiro: Escola Superior de Redes, 2013.
xv
Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao:
Escola Superior de Redes RNP
Endereo: Av. Lauro Mller 116 sala 1103 Botafogo
Rio de Janeiro RJ 22290-906
E-mail: info@esr.rnp.br
Sobre os autores
Ari Frazo Jr. bacharel em Cincia da Computao pela Universidade Federal da Paraba
(UFPB) e mestre em Cincia da Computao, na rea de redes de computadores, pela Universidade Federal de Pernambuco (UFPE). Atualmente responsvel pelas reas de engenharia e operaes da Rede Nacional de Ensino e Pesquisa (RNP), onde atua desde 1993.
Marcelo Castellan Braga possui graduao em Engenharia Eletrnica pelo CEFET-RJ,
ps-graduao em Anlise, Projeto e Gerncia de Sistemas pela PUC-RJ e mestrado em
informtica pela UNIRIO. Atualmente scio diretor da MCB Tech, empresa que presta consultoria em redes de computadores, servios de internet, segurana de dados e desenvolvimento de software. Atuou durante mais de 10 anos na rea de TI em empresas como Rede
Nacional de Ensino e Pesquisa (RNP) e Embratel.
Sergio Ricardo Alves de Souza possui mais de 35 anos de experincia na rea de Administrao e Suporte de Sistemas. Trabalhou em empresas como: Burroughs (UNISYS), ARSA
(Infraero), Cobra Computadores, LNCC e outras. Consultoria e treinamento em empresas
como: Fiocruz, Jardim Botnico, Museu Goeldi, Cefet-MG, IBM Brasil. Participou do desenvolvimento e implantao de cursos profissionalizantes em Informtica em Petrpolis FAETC. Participou do projeto de criao do Instituto Superior de Tecnologia em Cincia da
Computao de Petrpolis. Possui Notrio Saber em Informtica pelo LNCC.
xvi
1
Conhecer o histrico e a arquitetura do Unix e do Linux.
conceitos
Introduo
Uma das caractersticas mais marcantes do ser humano a capacidade de se organizar para
tirar o melhor proveito de seus trabalhos e garantir que tudo funcione de maneira correta.
Isso pode ser observado em empresas, escritrios, lojas, cinemas e at mesmo nos lares.
Da mesma forma que um administrador de empresas administra e gerencia uma empresa,
um administrador de sistemas responsvel por administrar e gerenciar os recursos computacionais de uma organizao.
A informatizao crescente nas instituies pblicas e privadas, a disseminao de diversas
tecnologias de redes e o uso cada vez maior de sistemas integrados de gesto fazem da
administrao de sistemas uma atividade complexa e de importncia estratgica para as
organizaes. Portanto, para atuar nessa rea, o administrador de sistemas deve possuir o
conhecimento e a experincia necessrios para assegurar que os sistemas de uma organizao estejam sempre disponveis, seguros e com desempenho adequado para executar
as operaes de que a organizao necessita para atingir seus objetivos. Um bom administrador de sistemas deve aliar conhecimento tcnico e do negcio da empresa para conseguir
tirar o melhor proveito possvel dos recursos computacionais sob sua responsabilidade.
Apesar de existir desde a poca dos mainframes, a rea de administrao de sistemas
sofreu um grande impacto com o advento da microinformtica, das redes de computadores
e das tecnologias associadas internet. Este curso, de carter essencialmente prtico, foi
criado para explorar os conceitos e prticas mais importantes da administrao de sistemas
Linux, representando a primeira etapa na formao de um administrador de sistemas.
objetivos
Introduo ao sistema
operacional Linux
11 Experincia.
11 Aperfeioamento constante.
Histrico
11 1964
11 System V (AT&T).
Equipment Corporation, baseadas na distribuio BSD. Alm disso, surgiram verses livres
de Unix como FreeBSD, NetBSD e OpenBSD, todas baseadas na distribuio BSD.
3
Nesse contexto, em 1984, Richard Stallman comeou um projeto para criar um sistema operacional compatvel com o Unix, batizado de GNU. Stallman e um grupo de programadores
comearam a desenvolver os principais componentes do sistema, como compiladores e
editores de texto.
Dcada de 90:
11 Segurana.
11 Confiabilidade.
11 Versatilidade.
11 Estabilidade.
11 Licena gratuita.
Hoje, o Linux possui diversas distribuies comerciais e gratuitas, cada uma com suas
caractersticas. Entre elas podemos destacar: Slackware, Red Hat Enterprise Linux, Debian,
SUSE, Mandriva, Fedora, CentOS e Ubuntu. As distines entre as principais distribuies
so resumidas a seguir.
Slackware
a distribuio mais antiga ainda em desenvolvimento, tendo sua primeira verso lanada
em 1993. O Slackware uma distribuio gratuita que tem como principais caractersticas:
estabilidade, segurana, uso da interface texto para configurao do sistema e ampla
documentao. Possui uma verso de produo que s inclui pacotes estveis e uma verso
Debian
A distribuio Debian desenvolvida e mantida por uma equipe de desenvolvedores voluntrios. O Debian possui um ciclo de desenvolvimento onde suas verses passam por trs
fases: stable (a verso de produo), testing (contm verses mais atuais dos pacotes que
ainda no foram homologadas para entrar em produo) e unstable (utilizada geralmente
por desenvolvedores). O Debian conhecido por sua excelente ferramenta de gerenciamento de pacotes, o APT.
Suse
uma das distribuies comerciais mais antigas (teve sua primeira verso lanada em 1994
na Alemanha). Possui uma excelente ferramenta grfica de instalao e configurao do
sistema operacional, chamada YaST. Em 2003, a Novell comprou a SUSE e decidiu em 2005
compartilhar o desenvolvimento de uma verso gratuita de seu sistema operacional com
a comunidade de desenvolvedores, criando a distribuio openSUSE. Em 2011, a Novell e a
SUSE foram compradas pela empresa Attachmate.
Mandriva
Essa distribuio surgiu da fuso realizada entre as distribuies Conectiva (na verdade uma
verso em portugus do Red Hat Linux), comercializada pela empresa brasileira Conectiva Informtica e a distribuio Mandrake, comercializada pela empresa francesa Mandrake Software.
O Mandriva uma distribuio voltada para uso em desktop, com um ambiente grfico muito
avanado, alm de muitas facilidades que o tornam agradvel para o usurio domstico.
Fedora
Distribuio gratuita patrocinada pela Red Hat e mantida por uma comunidade aberta de usurios e desenvolvedores. Essa distribuio teve sua primeira verso lanada em 2003, quando a
distribuio gratuita Red Hat Linux foi descontinuada. A partir da, a Red Hat Software resolveu
focar no mercado corporativo e lanou a distribuio paga Red Hat Enterprise Linux. Em paralelo, foi lanado o projeto Fedora, uma distribuio gratuita baseada no Red Hat Linux.
CentOS
arquivos fonte originais. A Red Hat permite o uso dos arquivos fontes na condio de
que sejam retiradas as referncias comerciais sua marca. A principal vantagem que o
CentOS uma slida e poderosa distribuio Linux com o mesmo potencial do Red Hat e
com a vantagem de ser gratuita.
Ubuntu
O Ubuntu uma distribuio baseada na distribuio Debian, patrocinada pela empresa
Canonical. Uma das principais propostas do Ubuntu a popularizao do Linux, oferecendo
um sistema com interface mais amigvel, focado em acessibilidade e internacionalizao.
Segurana, confiabilidade, versatilidade, estabilidade e gratuidade so as caractersticas do
Linux que fazem com que ele desponte como a principal alternativa ao Microsoft Windows.
Essa distribuio deriva diretamente do Red Hat Enterprise Linux atravs dos seus
Arquitetura
O GNU/Linux ou Linux (como mais conhecido) um sistema operacional multi-tarefa,
multi-usurio e multi-plataforma. Seu cdigo-fonte aberto e disponibilizado gratuitamente, podendo ser alterado por qualquer pessoa, o que o torna um sistema extremamente
flexvel. O Linux distribudo pela licena (GPL), que permite executar, alterar e distribuir
qualquer software regido por ela. Sua arquitetura, como mostra a Figura 1.1, pode ser representada por uma pirmide dividida em camadas. O papel de cada uma dessas camadas
descrito a seguir.
Usurio
Aplicaes
Shell
Kernel
o ncleo do sistema operacional, que tem como principais funes:
Figura 1.1
Arquitetura.
11 Deteco de hardware.
11 Gerenciamento de entrada e sada.
11 Manuteno do sistema de arquivos.
11 Gerenciamento de memria e swapping.
11 Controle da fila de processos.
O kernel o ncleo do sistema operacional e se encarrega de executar todas as funes
bsicas e necessrias ao funcionamento correto do sistema. Uma de suas principais funes
prover uma interface entre o hardware e as aplicaes. O kernel possui uma arquitetura
monoltica, ou seja, composto por um grande e nico bloco de cdigo com milhes de
linhas. H algum tempo o conceito de mdulos foi introduzido no Linux. Esses mdulos so
geralmente drivers de dispositivos e podem ser carregados em memria dinamicamente.
importante ressaltar que os mdulos no fazem parte do kernel.
Software
Mdulos
Kernel
Hardware
Uma das grandes vantagens que o Linux oferece a possibilidade de o usurio poder fazer
alteraes em seu kernel, habilitando somente as funcionalidades necessrias para cada
sistema. Com isso, possvel ganhar em performance, pois o kernel se torna muito mais
enxuto, gerando uma imagem com um tamanho consideravelmente menor.
Figura 1.2
Estrutura do kernel.
Hoje, todas as distribuies de Linux disponveis usam basicamente o mesmo kernel, com
pequenas alteraes. So as aplicaes incorporadas a essas distribuies que as diferenciam.
Deteco de hardware
11 Identificao de dispositivos (memria, discos, processadores, impressora etc.).
e do sistema.
11 Forma de implementao definida e gerenciada pelo kernel.
O sistema de arquivos tem por objetivo organizar, manter e zelar pela integridade dos arquivos
do sistema e dos usurios, assegurando que eles possam ser manipulados adequadamente
por seus proprietrios. No Linux, o sistema de arquivos visualizado como uma rvore invertida: a raiz est no topo e os ramos, embaixo. Para ser lido ou escrito, o arquivo precisa ser
aberto. Ao abri-lo, uma srie de cuidados devem ser tomados, principalmente se esse arquivo
j estiver sendo utilizado por outro usurio ou programa. Todos esses cuidados com o sistema
de arquivos, bem como a forma como implementado, so definidos e gerenciados pelo
kernel. A Figura 1.3 mostra um exemplo de organizao do sistema de arquivos do Linux.
home
etc
maria
Figura 1.3
Sistema de arquivos
do Linux.
joo
Memria virtual
Pginas
Traduo de endereos
Memria fsica
Gerenciamento de processos
11 Suporta a execuo simultnea de vrios processos.
11 Funciona como um supervisor, autorizando o uso dos recursos entre os processos.
O Linux um sistema operacional que suporta a execuo simultnea de vrios processos
que compartilham os recursos do sistema. O compartilhamento desses recursos deve ser
Figura 1.4
Processo de
swapping.
Shell
11 L e interpreta comandos de entrada de um terminal.
comandos. Vale ressaltar que essa mensagem pode ser configurada pelo prprio usurio.
comandos padro, definido para cada usurio mantido em um arquivo, que a base de
usurios do sistema. Esse arquivo consultado durante o processo de login. importante
ressaltar que o usurio pode trocar de interpretador durante sua sesso de trabalho. Para
isso, basta digitar na linha de comando o nome do interpretador que deseja utilizar.
Usurio
Shell
Utilidades
Kernel
Figura 1.5
Processo interpretador de comandos
ou shell.
Hardware
Aplicaes
operacional sem aplicaes ficaria sem utilidade, j que estas fazem parte da nica camada
da arquitetura acessada pelos usurios. As aplicaes so desenvolvidas geralmente para
automatizar e facilitar a realizao de tarefas que precisam ser realizadas pelos usurios
diariamente. Elas tambm facilitam a comunicao entre pessoas, alm de reduzir custos,
como o caso das aplicaes de voz sobre IP.
Sistema de arquivos
/(root)
Sistema de arquivos
Sistemas de arquivos
Diretrios
/bin
/dev
/etc
/lib
/usr
/tmp
/var
/home
10
Figura 1.6
Estrutura e tipos de
arquivos do sistema
de arquivos.
sistema de arquivos, sendo utilizado somente para dar incio ao processo de boot do sistema
operacional. O segundo bloco chamado superbloco e contm informaes essenciais sobre
o sistema de arquivos, como seu tamanho, nmero de inodes, nmero de blocos de dados etc.
Em seguida, vem a tabela de blocos, que permite identificar os blocos de dados livres e ocupados no disco. Logo aps, encontra-se a tabela de inodes (index-nodes), que so estruturas de
dados que armazenam informaes sobre os arquivos. Por fim, temos os blocos de dados, nos
quais o contedo dos arquivos efetivamente armazenado.
Bloco de boot
Super bloco
Tabela de blocos
Blocos de dados
Bloco de boot:
Inode
Estrutura de dados mantida pelo kernel, que possui informaes sobre arquivos:
Figura 1.7
Sistemas de
arquivos Linux.
Inodes
11
-rwxr-xr-x
Tamanho em bytes
1 root bin
Permisses
85924
Dono
Sep
Nome do arquivo
27
2003
/usr/bin/su
Figura 1.8
Informaes contidas nos inodes.
Data da ltima
modicao
Grupo
O comando stat tambm pode ser utilizado para visualizarmos informaes contidas nos
inodes, como mostra o exemplo a seguir:
# stat /etc/hosts
File: /etc/hosts
Size: 250
Blocks: 8
Device: 801h/2049d
IO Block: 4096
Inode: 523277
Access: (0644/-rw-r--r--)
Uid: (0/
regular file
Links: 1
root)
Gid: (0/
root)
# df -i
Filesystem
Inodes
IUsed
/dev/sda1
2559088
IFree IUse%
48963
Mounted on
2510125 2%
Tipos de arquivos
11 Arquivos regulares.
11 Diretrios.
11 Arquivos de dispositivo (bloco e caractere).
11 Sockets.
11 Named pipes.
11 Symbolic link.
No Linux qualquer objeto gerenciado pelo sistema operacional tratado como arquivo,
desde um arquivo texto convencional a um dispositivo de hardware. Para identificar o tipo
do arquivo, o sistema operacional consulta as informaes contidas em seu inode. A seguir
veremos os diversos tipos de arquivos existentes no Linux.
12
Arquivo regular
11 Conjunto de bytes.
Diretrios
11 Podem conter qualquer tipo de arquivo;
Arquivo de dispositivo
11 Mecanismo para operaes de entrada e sada.
Socket
11 Utilizado para comunicao bidirecional entre processos.
Named pipe
11 Permite a comunicao bidirecional entre dois processos rodando numa mesma mquina.
pelos processos que conecta atravs de seu nome e faz parte do sistema de arquivos. Ele
14
criado atravs dos comandos mkfifo ou mknod e removido com o comando rm ou por meio da
chamada de sistema unlink. Um named pipe permite a comunicao entre processos que no
possuam relao entre si. Existe tambm o pipe convencional, representado pelo caractere |,
que utilizado em comunicaes unidirecionais, conectando a sada de um processo entrada
de outro. A diferena entre eles que no pipe convencional, os processos conectados devem
possuir uma relao pai para filho ou serem irmos. Ao contrrio do named pipe, que precisa
ser explicitamente encerrado aps seu uso, o pipe convencional encerrado automaticamente
aps a execuo dos processos que ele conecta.
Figura 1.9
Named pipe.
Dados
Pipe (FIFO)
Proc. 1
Proc. 2
Link
Hard link:
11 Dois arquivos apontando para o mesmo inode.
Symbolic link:
11 Ponteiro para um arquivo existente.
11 Associado a outro inode number.
O Linux suporta dois tipos de links: hard link e symbolic link. Para explicar as diferenas
entre eles, vamos tomar como exemplo uma situao em que dois usurios (Maria e Joo)
compartilham um arquivo denominado relatorio.txt, cujo tamanho 200 bytes (Figura 1.10).
/
etc
home
maria
linux.conf
relatorio.txt
Exemplos:
# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 relatorio.txt
# ln ~joao/relatorio.txt ~maria/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-- 2 maria maria 200 Feb 01 18:00 relatorio.txt
-rw-r--r--
Hard link
11 Associa dois ou mais nomes de arquivos ao mesmo inode.
Figura 1.10
Hard link
para arquivo.
joo
arquivos nos diretrios dos usurios. Dessa forma, sempre que um dos usurios modificar
15
Inode
do link
Inode de
relatorio.txt
Arquivo
de Maria
Arquivo
relatorio.txt
Symbolic link
11 Arquivos que so ponteiros para outros arquivos.
Figura 1.11
Hard link.
Exemplos:
16
# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria
# ln s ~maria/relatorio.txt ~joao/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-lrwxrwxrwx
1 maria maria
relatorio.txt
No exemplo acima, o espao de 200 bytes ocupado pelo arquivo relatorio.txt alocado uma
nica vez nos blocos do disco. Apenas o arquivo no diretrio da usuria Maria referencia essa
rea de dados. No diretrio do usurio Joo, existe outro arquivo, do tipo symbolic link, cujo
contedo o nome do arquivo no diretrio da usuria Maria, como mostra a Figura 1.12.
home
etc
maria
Figura 1.12
Symbolic link
para arquivo.
linux.conf
joo
relatorio.txt
link
O arquivo de Joo est armazenado em outro local do disco sendo referenciado por outro inode
e seu tamanho menor do que o tamanho do arquivo origina, como pode ser visto na Figura
1.13, j que seu contedo somente o nome do arquivo original para o qual est apontando.
Arquivo
de Maria
Inode de
relatorio.txt
Inode
do link
Arquivo
relatorio.txt
Vantagens e desvantagens
Cada um dos tipos de link vistos tem suas vantagens e desvantagens. Utilizando hard links,
independentemente do nmero de links existentes, apenas um inode ser utilizado. Porm,
como esse inode guarda informaes sobre o proprietrio do arquivo, em determinadas
situaes isto pode gerar problemas. Vamos retornar ao exemplo anterior para visualizar
essa situao. Supondo que Maria seja a proprietria do arquivo relatorio.txt e um hard link
seja criado para que Joo tenha acesso ao arquivo. O inode mantm um atributo (nmero
de links) indicando que dois arquivos apontam para esse mesmo inode. Quando Maria
remove o arquivo de seu diretrio, o sistema apenas decrementa esse atributo do inode do
arquivo. Assim, Maria no ter mais acesso ao arquivo, mas Joo ainda poder utiliz-lo.
Entretanto, uma vez que Maria a proprietria do arquivo, esse contabilizado no sistema
como recurso alocado para Maria, at que Joo decida remov-lo, se tiver permisso. Com o
symbolic link isso no acontece, pois apenas o proprietrio do arquivo pode remov-lo.
No exemplo, Maria seria a proprietria do arquivo e Joo teria apenas um symbolic link para
ele. Se Joo apagasse o symbolic link, o arquivo original no seria apagado. Porm, se Maria
apagasse o arquivo, Joo no poderia mais utiliz-lo, j que o symbolic link apenas um ponteiro para o arquivo original. Neste caso o symbolic link ficaria sem referncia.
Figura 1.13
Symbolic link.
Arquivo
de Joo
17
Note que o symbolic link muito parecido com os atalhos do MS Windows. A utilizao de symbolic links obrigatria quando se quer criar um link para um diretrio,
ou entre arquivos localizados em diferentes parties. Em ambos os casos, no
possvel definir um hard link.
Exerccio de fixao 1 e
Identificando tipos de arquivos
Identifique o tipo dos arquivos listados.
11 /dev/tty0
11 /usr/bin
11 /etc/passwd
11 /dev/hda
11 /dev/log
11 /etc/rc3.d/S99rc.local
Comando ls
Para trabalhar com arquivos fundamental que o usurio conhea suas caractersticas.
Essas informaes podem ser visualizadas com o comando ls. Com ele, o usurio pode visualizar vrias informaes sobre arquivos, desde o nome dos arquivos existentes em um
diretrio at o nmero de hard links que apontam para esses arquivos. As informaes
mostradas pelo comando ls dependem das opes passadas na linha de comando. Por
exemplo, quando informada a opo -l, o comando ls lista as informaes guardadas no
inode do arquivo, como: permisses, nmero de hard links que apontam para o arquivo,
proprietrio do arquivo, grupo do arquivo, tamanho e data de criao e modificao. Para
ver todas as funcionalidades do comando ls, consulte sua pgina de manual com o comando
man ls.
18
Comando
Funo
ls
Tipo do arquivo
Smbolo
Arquivo regular
Diretrio
Socket
Named pipe
Symbolic link
Tabela 1.1
Comando ls (tipos
de arquivos).
Permisses de arquivos
11 Nove bits controlam quem pode ler, escrever ou executar um arquivo.
#ls -l /bin/sh
-rwxr-xr-x 1 root root 85924 01 Dec 2002 /bin/sh
Bits de permisso
So nove os bits de permisso, utilizados para determinar as operaes que podem ser
executadas em um arquivo, e quem pode execut-las. O Linux define conjuntos de permisses para o dono do arquivo, para o grupo ao qual o arquivo pertence e para os outros
usurios do sistema. Cada conjunto possui trs bits: um bit de leitura (r), um bit de escrita
(w) e um bit de execuo (x), chamado bit de pesquisa, quando se trata de um diretrio.
Assim, os trs primeiros bits controlam o acesso do dono, os trs do meio controlam o
acesso do grupo e os ltimos trs controlam o acesso para os demais usurios do sistema
(outros). Em cada trio, o bit mais alto o que controla a leitura, o bit do meio controla a
escrita e o ltimo bit controla a execuo do arquivo. Cada usurio de um sistema Linux
enquadra-se em, pelo menos, uma das trs categorias descritas. Caso ele no seja o dono
do arquivo, nem pertena ao mesmo grupo ao qual o arquivo pertence, as permisses
dadas aos outros sero levadas em considerao. O bit de leitura permite a abertura e
arquivo seja modificado. A possibilidade de renomear ou remover um arquivo, contudo,
controlada pelas permisses do diretrio ao qual ele pertence. O bit de execuo, como o
nome j sugere, permite que o arquivo seja executado; por isso, este tipo de permisso s
faz sentido em arquivos executveis. Para um diretrio, o bit de execuo tem um significado um tanto diferente. Ele permite a entrada em um diretrio, mas no necessariamente
que o seu contedo seja listado. A listagem do contedo de um diretrio s pode ser realizada se os bits de leitura e execuo forem definidos. J a combinao dos bits de escrita e
execuo permite que arquivos sejam criados, removidos e renomeados dentro de um diretrio. Quando um bit de permisso no definido, o caractere - inserido em seu lugar.
a leitura de um arquivo normal. O bit de escrita, por sua vez, permite que o contedo do
19
Dono
1
read (r)
Outros
1
= 751
Grupo
write (w)
Figura 1.14
Bits de permisso.
execute (x)
Acesso
Executar arquivo.
Exerccio de fixao 2 e
Anlise de permisses
Analisando as informaes obtidas com o comando #ls l /bin/su, identifique as permisses
dadas aos elementos a seguir.
# ls l /bin/su
-rwsr-xr-x 1 root root 31060 2010-09-03 07:28 /bin/su
11 Dono do arquivo.
11 Grupo ao qual o dono pertence.
11 Permisso para usurios de outros grupos.
Bits especiais
Dissemos que, alm dos nove bits de permisso, outros trs afetam a execuo de programas executveis e diretrios, e que juntos eles formam os 12 bits de modo. Esses outros
trs bits, setuid (SUID), setgid (SGID) e sticky bit so descritos a seguir.
t
s
s
Sticky bit
11 Evita mecanismo de swap-on/swap-off em arquivos executveis (em desuso).
11 Controla a escrita em diretrios de uso geral.
11 Representado pela letra t.
O estabelecimento desse bit remonta aos tempos em que memria era um recurso caro
e escasso em sistemas Linux, e acessos a unidades de disco eram lentas. Sistemas com
pouca memria necessitavam de que alguns programas se mantivessem na memria continuamente. O sticky bit era importante nesse contexto. Ele garantia que um determinado
20
Figura 1.15
SUID, SGID
e sticky bit.
Setgid (SGID)
11 Utilizado em arquivos executveis e diretrios.
Setuid (SUID)
11 Utilizados em arquivos executveis.
notao octal quanto uma sintaxe mais mnemnica. Entretanto, preferimos trabalhar com a
21
notao octal, por ser mais conveniente para administradores de sistema. O comando chmod
recebe dois blocos de argumentos. O primeiro deles um nmero octal, que representa
as permisses a serem atribudas e o segundo bloco composto de um ou mais nomes de
arquivos, separados por espao em branco, cujas permisses devem ser alteradas. Na forma
normal, o primeiro dgito octal refere-se s permisses do dono do arquivo; o segundo, s do
grupo dono do arquivo; e o terceiro, s dos outros usurios. Para estabelecer as permisses
associadas aos bits setuid, setgid e sticky bit, preciso utilizar quatro dgitos octais no lugar de
trs. Nesse caso, os trs bits especiais so definidos pelo primeiro dgito. A Tabela 1.2 ilustra as
oito possveis combinaes para cada um dos trs bits, em que r, w e x correspondem s
permisses de leitura (Read), de escrita (Write) e de execuo (eXecute) respectivamente.
Comando
Funo
chmod
Octal
Binria
Permisses
000
---
001
--x
010
-w-
011
-wx
100
r--
101
r-x
110
rw-
111
rwx
Tabela 1.2
Mudando permisses de arquivos.
A Tabela 1.3 ilustra as oito possveis combinaes utilizadas para definir ou no os bits
22
Comando
Funo
chmod
Octal
Binria
Descrio
000
001
010
SGID definido
011
100
SUID definido
101
110
111
Tabela 1.3
Mudando permisses especiais.
O comando acima atribui todas as permisses para o dono, ou seja, pode ler, escrever e executar o arquivo; atribui ao grupo permisso para apenas ler e executar o arquivo e atribui
aos outros somente permisso para execut-lo. O primeiro nmero octal passado como
parmetro para o comando chmod referente s permisses especiais; o segundo, terceiro
e quarto so relativos s permisses aplicadas ao dono do arquivo, ao grupo e aos outros,
respectivamente. importante ressaltar que o primeiro nmero octal opcional e se no
for definido, ser considerado como tendo o valor 0.
Exerccio de fixao 3 e
Alterando permisses de arquivo
Executado o comando #ls -l no arquivo /bin/sh, foi obtido o resultado abaixo. Qual foi o
comando executado para alterar as permisses do arquivo?
Antes
Comando umask
O comando umask (user mask) pode ser utilizado para estabelecer as permisses padres
para os arquivos criados no sistema. Para esse comando, passado um parmetro na
forma de um valor octal de trs dgitos, os quais representam as permisses que devem
ser atribudas aos arquivos no momento da sua criao. Os dgitos estabelecem as permisses mostradas na Tabela 1.4. A relao entre os valores passados para o comando
chmod. O valor padro da umask para a maioria das distribuies Linux 022. Para verificarmos o valor da mscara atual devemos executar o comando umask sem parmetros.
A Tabela 1.4 mostra que o valor da umask resulta em diferentes permisses para arquivos
binrios, arquivos texto e diretrios.
23
Comando
Funo
umask
Octal
Binria
Permisses
Arquivo
24
Diretrio
Binrio
Texto
000
r-x
rw-
rwx
001
r--
rw-
rw-
010
r-x
r--
r-x
011
r--
r--
r--
100
--x
-w-
-wx
101
---
-w-
-w-
110
--x
---
--x
111
---
---
---
Tabela 1.4
Comando umask.
Roteiro de Atividades 1
Atividade 1.1 Identificando bits de permisso
1. Verifique as permisses do diretrio /tmp. O que voc percebe de diferente em relao s
permisses de outros?
2. Considerando que h permisso de escrita no diretrio para todos, o que o impediria de
o redirecionamento de sada para registrar esse resultado no prprio arquivo criado. Essa
informao ser necessria para uma atividade posterior.
4. Verifique se mudou o nmero de links do seu diretrio home.
5. Crie um diretrio com o nome de dirses1ex3, tambm no seu diretrio home.
6. Mais uma vez, verifique o nmero de links do seu diretrio home. Ele mudou?
1. No seu diretrio de trabalho, crie um hard link para o arquivo arqses1ex3. O nome do
25
5. Caso no tenha aumentado, por que isso aconteceu, considerando que foi criado um
Para que esta atividade tenha efeito, o diretrio /tmp dever ter sido criado numa
partio diferente da partio onde se encontra o home do usurio. Caso essa situao no ocorra, verifique se existe o diretrio /var/tmp e veja se ele est em outra
partio. Se for o caso, use este ltimo para fazer a atividade.
seu dono.
explicar o motivo?
4. Modifique as permisses do arquivo arqses1ex6 de forma a retirar a permisso de escrita
26
27
28
2
Conhecer os parmetros associados a grupos e conta de um usurio; os comandos para
modificar os parmetros de uma conta; entender o mecanismo de shadow passwords;
aprender a manipular grupos e contas de usurios e monitorar atividades de usurios.
conceitos
Introduo
Quando o sistema operacional Unix foi desenvolvido, era comum a criao de contas de usurios, que utilizavam o sistema conectados diretamente atravs de sua console ou atravs
de acesso remoto, trabalhando em aplicativos que eram executados no prprio servidor.
Nessa poca, a maioria dos usurios eram pesquisadores e estudantes de computao e
reas relacionadas. Com a adoo em massa dos computadores pessoais, a partir da dcada
de 1980 este modelo comeou a cair em desuso.
Com a popularizao da internet, os sistemas comearam e se tornar alvos de atacantes
que exploravam vulnerabilidades em softwares e realizavam tentativas de acesso utilizando contas de terceiros. Com isso, os administradores passaram a adotar prticas mais
seguras, restringindo ao mximo a criao de contas de usurios. Com o passar do tempo,
a ocorrncia de incidentes de segurana se tornou cada vez mais constante e outra prtica
que passou a ser adotada foi a criao de contas sem shell, no permitindo que os usurios fizessem login no sistema. Assim, os usurios acessam somente os servios que so
executados nos servidores, como e-mail e compartilhamento de arquivos, j que no tm
necessidade nenhuma de fazerem login no servidor.
A criao de usurios e grupos em sistemas Unix-like importante para definir que recursos
podem ser acessados por quais usurios e/ou grupos e permite ao sistema operacional
gerenciar a execuo dos processos de cada usurio de forma adequada. Atualmente cada
vez mais comum o uso de bases de usurios centralizadas e gerenciadas por programas
como o LDAP, que acabam com a necessidade de se criar contas de usurios em cada um
dos diversos sistemas de uma instituio. No entanto, o modelo de criao de usurios
e grupos tradicional dos sistemas Unix-like ainda bastante utilizado e ser o objeto de
estudo deste captulo.
objetivos
Usurios e grupos
29
Grupos
Arquivo /etc/group:
11 grupo:senha:GID:lista_de_usurios
22 grupo: nome do grupo.
22 senha: senha do grupo (em desuso).
22 GID: nmero de identificao do grupo.
22 lista_de_usurios: relao dos usurios que pertencem ao grupo, separados por vrgula.
Exemplo:
11 logistica::1001:funcionario1,funcionario2
A criao de grupos de usurios geralmente feita para controlar o acesso a arquivos
ou servios. Cada grupo no sistema possui um nome e um identificador numrico nico,
denominado Group ID (GID). As informaes sobre os grupos do sistema esto contidas
nos arquivos /etc/group e /etc/gshadow. Cada linha desses arquivos possui informaes
relativas a um determinado grupo. Suponhamos que o setor financeiro de uma empresa,
que controla o salrio dos funcionrios, deseja disponibilizar as estatsticas consolidadas
desses salrios no sistema de informaes da empresa, para que seus colaboradores
possam utiliz-las para clculos. Porm, essas informaes no podem ser vistas por todos
os funcionrios da empresa. Assim, a criao do grupo financeiro e a disponibilizao desses
arquivos somente para os usurios desse grupo resolveria o problema. A linha referente ao
grupo financeiro no arquivo /etc/group poderia ser semelhante a do exemplo seguinte:
financeiro:x:1002:funcionario3,funcionario4,funcionario5
Os campos presentes nas linhas do arquivo /etc/group so separados pelo caractere : e so
os seguintes: nome do grupo; senha do grupo; GID e lista de usurios pertencentes ao grupo,
separados por vrgulas. importante ressaltar que no uma prtica comum atribuir senhas
aos grupos, ficando este campo em branco. Para incluir novos usurios em um grupo,
preciso editar os arquivos /etc/group e /etc/gshadow e acrescentar o nome desses usurios ao
final da linha referente ao grupo. Um usurio pertence obrigatoriamente a um grupo primrio
e pode fazer parte de vrios grupos secundrios, tendo assim diversos tipos de permisses.
Neste captulo sero vistos comandos que podem automatizar tarefas de manipulao de
grupos, eliminando a necessidade de edio dos arquivos /etc/group e /etc/gshadow.
Cuidados adicionais devem ser tomados para evitar problemas na utilizao de grupos.
Por exemplo, suponhamos que foi criado o diretrio /home/financeiro para que os usurios
do grupo financeiro possam compartilhar arquivos. Nesse caso, as permisses do grupo
proprietrio nesse diretrio e em seus arquivos seriam rwx e rw-, respectivamente, o que
possibilita acesso irrestrito aos usurios do grupo financeiro. Nesse contexto, se o usurio
funcionario3, cujo grupo primrio funcionario3, criar um arquivo nesse diretrio, esse
arquivo ter como grupo proprietrio o seu grupo primrio. Assim, apenas os usurios pertencentes ao grupo funcionario3 poderiam ter acesso ao arquivo, e no os usurios do grupo
financeiro, como era pretendido. H duas alternativas para resolver esse problema:
1. A primeira pouco prtica, consistindo em utilizar o comando chgrp para mudar o grupo
ao qual o arquivo pertence, lembrando de utilizar esse comando sempre que um novo
arquivo for criado.
2. A segunda soluo utilizar o bit especial SGID para que todos os arquivos criados no dire-
# ls -la tabelas.doc
-rw-r--r-- 1 aluno1 aluno1 23 Abr
9 15:23 tabelas.doc
15:23 tabelas.doc
15:23 tabelas.doc
Arquivo /etc/gshadow
grupo:senha:administradores_do_grupo:lista_de_usurios:
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).
nado grupo. O exemplo a seguir mostra uma linha tpica do arquivo /etc/gshadow.
31
Exerccio de fixao 1 e
Arquivos de administrao de grupo
Execute o comando more ou cat para visualizar o contedo dos arquivos /etc/group e /etc/gshadow.
Existem grupos com mais de um usurio? Se sim, selecione trs grupos e mostre quais so
seus usurios.
Usurios
No Linux, apenas os usurios cadastrados podem acessar o sistema. Eles so identificados
por um nome de usurio e uma senha, possuem um diretrio de trabalho (home directory)
e um interpretador de comandos (shell) associado. Internamente, o sistema reconhece um
usurio atravs de um nmero inteiro que o identifica de forma nica. Esse nmero o User
ID (UID). Todo usurio pertence a pelo menos um grupo, denominado grupo primrio, que
representado pelo seu GID. As informaes sobre os usurios cadastrados esto armazenadas nos arquivos /etc/passwd e /etc/shadow. Cada linha desses arquivos possui informaes relativas a um nico usurio.
Arquivo /etc/passwd:
11 username:password:UID:GID:GECOS:homedir:shell
22 username: nome do usurio.
22 password: senha criptografada.
22 UID e GID: user e group identification.
22 GECOS: dados do usurio (nome, telefone comercial etc.).
22 homedir: diretrio de trabalho (home directory).
22 shell: interpretador de comandos.
O exemplo a seguir mostra uma linha tpica do arquivo /etc/passwd (sem /etc/shadow):
aluno1:Owei3945ai/qio:503:200:Aluno 1:/home/aluno1:/bin/bash
Os campos presentes nas linhas do arquivo /etc/passwd so separados pelo caractere :
e so os seguintes: nome de usurio; senha criptografada; UID (User ID); GID (Group ID);
GECOS (campo utilizado para armazenar informaes sobre o usurio, como nome completo e telefone de contato); diretrio de trabalho e interpretador de comandos. O diretrio
de trabalho ou homedir o espao em disco reservado ao usurio na hora de sua incluso.
Por questes de segurana, alguns administradores definem contas de usurios, mas no
atribuem a elas um diretrio de trabalho ou um shell vlido. Desta forma, estes usurios no
conseguem se logar no sistema e apenas utilizam algum servio como o correio eletrnico
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:
Shadow passwords
username:password:last_changed:minimum:maximum:warn:inactive:expire
H ainda outro problema que compromete a segurana dos sistemas Linux. Qualquer
usurio tem acesso de leitura ao arquivo /etc/passwd, que contm as senhas criptografadas. Assim, possvel utilizar programas chamados crackers, que geram senhas aleatoriamente ou utilizam palavras de dicionrios e as comparam com as senhas armazenadas,
possivelmente quebrando algumas delas. Para resolver esse problema, foi implementado
o conceito de shadow passwords, no qual as senhas criptografadas so armazenadas no
arquivo /etc/shadow. A grande vantagem deste mtodo que o arquivo /etc/shadow s
pode ser lido pelo administrador, ficando inacessvel para um usurio comum. Quando se
utiliza shadow passwords, o arquivo /etc/passwd possui apenas o caractere x no campo
11 expire: nmero de dias desde o dia 1/1/1970 em que a conta ser desabilitada.
33
que armazena as senhas criptografadas. No entanto, havia um srio problema relacionado ao uso de shadow passwords: alguns programas utilizados no Linux assumiam que
as senhas estavam armazenadas no arquivo /etc/passwd, gerando algumas complicaes.
Limitaes como essas, no entanto, so cada vez mais raras, e o uso de shadow passwords
utilizado por padro no Linux.
O arquivo /etc/shadow alm de armazenar os nomes de usurio e suas senhas criptografadas, tambm possui informaes que definem propriedades sobre as senhas e as contas
dos usurios. Cada linha desse arquivo possui informaes relativas a um nico usurio.
O exemplo a seguir mostra uma linha tpica do arquivo /etc/shadow:
aluno1:Owei3945ai/qio:15360:0:99999:7:5::
Os campos presentes nas linhas do arquivo /etc/shadow so separados pelo caractere :
e so os seguintes: nome de usurio; senha criptografada; last_changed, que representa
o nmero de dias desde 1/1/1970 que a senha foi trocada pela ltima vez; minimum, que
representa o nmero de dias que o usurio deve aguardar para poder alterar sua senha;
maximum, que representa o nmero de dias em que a senha ser vlida (aps isso o usurio
obrigado a alter-la); warn, que representa o nmero de dias antes de a senha expirar em
que o usurio ser avisado de que deve alter-la; inactive, que representa o nmero de dias
aps a senha ter sido expirada em que a conta ser desabilitada; e expire, que representa o
nmero de dias desde 1/1/1970 em que a conta ser desabilitada.
O arquivo /etc/shadow gerado a partir do arquivo /etc/passwd e de informaes contidas
no arquivo /etc/login.defs. Para habilitar o esquema de shadow passwords e gerar o arquivo
/etc/shadow, basta executar o comando pwconv. Este comando cria os arquivos
/etc/shadow e /etc/gshadow. Para desabilitar o esquema de shadow passwords, basta executar o comando pwunconv. Este comando remove os arquivos /etc/shadow e /etc/gshadow
e armazena novamente as senhas criptografadas dos usurios no arquivo /etc/passwd.
Exerccio de fixao 2 e
Arquivos de administrao de usurios
Execute os comandos more ou cat para visualizar o contedo do arquivo /etc/passwd. Observando o contedo do arquivo voc pode afirmar que existe o /etc/shadow? Por qu?
contas de usurio. A Tabela 2.1 mostra os tipos de contas com seus respectivos nveis de
34
Permisses
Usurios
Administrador
Total
root
Padro
Parcial
aluno
Sistema
Especfica
Tabela 2.1
Tipos de contas
de usurios.
Senhas
11 Escolher senhas complexas.
Para pensar
claro que escolher senhas complexas tambm torna a memorizao mais difcil.
O mais indicado escolher uma senha que lembre algo para o usurio, mas s para
ele. Um exemplo de senha difcil de ser quebrada a composta pelas letras iniciais
das palavras de uma frase como: Meu nome Jos, nasci em 47. A senha, nesse
caso, ser MneJne47.
q
Captulo 2 - Usurios e grupos
35
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
home do usurio.
6. Configurar a quota de disco para o usurio. Este passo s necessrio se o sistema
utilizar quotas.
7. Testar se a conta foi criada corretamente.
Mais adiante, veremos que existem comandos no Linux, e mesmo ferramentas grficas como
o Webmin, que automatizam a administrao de usurios e grupos. Optamos, no entanto, por
descrever cada uma das etapas como forma de registrar os passos envolvidos no processo de
criao de uma conta no Linux. Assim, voc, como administrador, saber de que maneira agir
quando tiver que criar um novo usurio no sistema, independente da ferramenta disponvel.
Antes de criar uma conta, recomenda-se que o administrador obtenha do seu dono no
apenas as informaes necessrias criao dessa conta, mas outras que facilitaro o contato
com o usurio. No Captulo 9, ao falarmos de procedimentos administrativos, iremos sugerir
um formulrio que deve ser adotado no atendimento a usurios. Os passos descritos a seguir
devem ser executados pelo administrador do sistema utilizando a conta root.
ou mesmo se for preciso incluir o usurio em algum grupo alm do seu grupo primrio.
36
Conforme vimos no incio deste captulo, o arquivo /etc/passwd composto de uma srie de
campos que descrevem desde o nome do usurio at o interpretador de comandos utilizado
por ele. Em um ambiente composto por vrios servidores Linux, as contas de usurios so
frequentemente gerenciadas por uma base global, como NIS ou LDAP, de forma que ao se criar
um usurio, ele passa a ser reconhecido em qualquer um dos servidores. Trabalharemos, no
entanto, com a criao de usurios em um nico servidor. Um sistema Linux pode ter mais de
um administrador e nesse caso possvel acontecer a situao em que um deles esteja criando
a conta de um usurio enquanto outro esteja removendo a conta de um ex-usurio. Ao criar um
novo usurio no sistema, o administrador deve preencher cada um dos campos do arquivo
/etc/passwd, tomando alguns cuidados especiais. O nome do usurio, por exemplo, deve ser
nico e pode conter at 32 caracteres na maioria das distribuies Linux. Ele pode incluir letras
minsculas, nmeros e caracteres especiais como ., -, _ e $, este ltimo para manter
compatibilidade com o Samba, que utiliza o caractere $ no final do nome das contas de computadores da rede. importante ressaltar que o primeiro caractere deve ser por padro, uma
letra minscula ou o caractere _. Os caracteres permitidos para uso em nomes de usurios so
definidos pela varivel NAME_REGEX, mas as regras definidas por essa varivel s valem quando
se utiliza o comando useradd para criar as contas de usurio. O comando useradd pode ser utilizado com a opo --force-badname para ignorar as regras definidas na varivel NAME_REGEX.
Por fim, importante definir uma poltica para a criao dos nomes dos usurios. Em servidores
de e-mail deve-se evitar o uso de apelidos, j que os nomes de usurios so utilizados nos
e-mails, que tm associado o nome de domnio da instituio. Um exemplo de poltica criar o
nome do usurio utilizando o seu nome e o ltimo sobrenome (ex: nome.sobrenome).
Ao editar o arquivo /etc/passwd, o administrador deve colocar o caractere * no campo
referente senha criptografada. Assim, ele evita o uso no autorizado dessa conta at que
tenha estabelecido uma senha para ela. Se o sistema utilizar o esquema de shadow passwords,
o administrador tambm deve editar o arquivo /etc/shadow para criar a entrada para a nova
conta. Na maioria das distribuies Linux, o campo correspondente identificao do usurio,
o UID, representado por um nmero de 16 bits, variando entre 0 e 65.535. Em sistemas mais
novos, o UID representado por um nmero de 32 bits, resultando em mais de 4 bilhes
de UIDs possveis. Em um ambiente de rede utilizando Network File System (NFS), os UIDs
devem ser nicos em toda a rede, isto , um UID precisa se referir sempre ao mesmo nome de
usurio. Usurios de sistema geralmente possuem UID entre 1 e 100. Dessa forma, recomendvel atribuir para os usurios criados valores maiores que 100. Tambm aconselhvel evitar
reutilizar UIDs, mesmo de contas que j tenham sido removidas. O administrador pode utilizar
qualquer editor de texto para fazer essas alteraes, mas quando disponvel, o comando vipw
deve ser utilizado para editar os arquivos /etc/passwd e /etc/shadow, pois previne uma possvel
corrupo nos arquivos por conta de acessos simultneos.
Assim como o UID, o GID tambm representado por um nmero de 16 ou 32 bits, que deve
reservado ao grupo chamado root ou wheel. Grupos de sistema geralmente possuem GIDs
entre 1 e 999. O campo GECOS utilizado para identificar o usurio. Dessa forma, costuma-se
colocar informaes como seu nome completo, nmero de telefone do trabalho, ramal etc.
O diretrio de trabalho do usurio o local do sistema de arquivos para onde este direcionado quando faz login no sistema e corresponde rea do sistema onde ele tem permisso
para armazenar seus arquivos. Os diretrios de trabalho dos usurios de um sistema, de
maneira geral, tm o mesmo nome do usurio e se localizam abaixo de um mesmo diretrio,
chamado /home. Existem alguns interpretadores de comandos disponveis no sistema. Exemplos de shells utilizados so /bin/sh, /bin/tcsh e /bin/bash. A maioria das distribuies Linux
ser atribudo de acordo com o grupo primrio ao qual o usurio pertence. O GID de nmero 0
permite que o usurio defina o interpretador de comandos com o qual quer trabalhar.
37
# passwd aluno
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
O comando utilizado para mudar a senha de um usurio o passwd. Quando o usurio root
deseja mudar a senha de algum usurio, deve passar o nome dele como parmetro para o
comando passwd. Nesse caso, o comando passwd pedir que seja informada a nova senha
e que ela seja repetida. O administrador deve criar uma senha de fcil memorizao pelo
usurio, de forma que ele no ceda tentao de anot-la. No entanto, bom incentivar a
troca por uma senha prpria, to logo tenha acesso ao sistema. Para no ficar dependendo
de o usurio trocar a senha, o administrador pode utilizar o comando chage para for-lo
a trocar sua senha antes deste realizar o primeiro login. Neste caso, o administrador pode
definir uma senha temporria mais complexa e no precisa inform-la ao usurio. Segue
abaixo a sintaxe utilizada pelo comando chage para forar a alterao de senha.
# chage -d 0 aluno1
Assim, quando o usurio aluno1 se logar pela primeira vez no sistema, ele ser forado
a trocar de senha. A troca de senha feita antes do processo de login. O comando chage
tambm pode ser utilizado para definir parmetros relativos s senhas dos usurios. Para
consultar mais informaes a respeito deste comando, sua pgina de manual pode ser visualizada atravs do comando man chage.
# mkdir /home/gerente1
# chown marcos /home/gerente1
# chgrp gerencia /home/gerente1
# chmod 750 /home/gerente1
Tenha em mente que qualquer diretrio que voc criar pertence, inicialmente, ao usurio
root. Assim, voc deve mudar o dono e o grupo desse diretrio por meio dos comandos
chown e chgrp. A sequncia de comandos a seguir deve criar, de forma apropriada, o dire Administrao de Sistemas Linux
38
# mkdir /home/gerente1
# chown gerente1 /home/gerente1
# chgrp gerencia /home/gerente1
# chmod 750 /home/gerente1
O grupo dono de um arquivo ou diretrio tambm pode ser definido por meio do comando
chown. Assim, na sequncia de comandos anterior, poderamos ter os dois passos intermedirios resumidos numa nica linha:
# cp /etc/skel/.bash* /home/aluno
# chmod 644 /home/aluno/.bash*
# chown aluno:aluno /home/aluno/.bash*
Os arquivos de inicializao so arquivos copiados para o diretrio de trabalho dos usurios
e utilizados para a configurao e definio de parmetros de comandos e aplicativos. Exemplos desses comandos com os seus respectivos arquivos de inicializao so os prprios
interpretadores de comando (bash: .bash_profile), os editores de texto (vi: .exrc), o comando
mail (.mailrc), entre outros. Os nomes desses arquivos, em geral, comeam com um ponto
e terminam com as letras rc (run command). Os arquivos que tm seu nome comeando
por um ponto so classificados como arquivos ocultos e s so listados pelo comando ls se
a opo -a for passada como parmetro. Na maioria das distribuies Linux, os arquivos de
inicializao modelo ficam localizados no diretrio /etc/skel. O administrador tambm pode
criar arquivos de inicializao e armazen-los no diretrio /etc/skel, para que sejam copiados
para os diretrios dos usurios no momento de sua criao.
Esse comando estabelece que a quota do usurio gerente1 seja igual a que foi estabelecida
para o usurio gerente2.
# pwd
# ls -la
39
O primeiro comando serve para checar se o diretrio de trabalho do usurio est correto.
O segundo serve para verificar se os arquivos de configurao foram devidamente copiados
e se os parmetros referentes a dono, grupo e permisses esto corretos. Nesse ponto,
o administrador deve informar ao usurio seu nome de usurio e sua senha inicial. Essa
tambm a hora de fornecer alguma documentao sobre as regras de utilizao dos
recursos de TI da instituio. Se for exigido que o usurio assine um termo de compromisso
para ter acesso ao sistema, importante obt-lo antes de liberar o acesso conta.
Administrando grupos
11 Criando grupos.
11 Modificando grupos.
11 Removendo grupos.
A administrao de grupos no Linux pode ser totalmente automatizada por comandos que
permitem criar, alterar e remover grupos. Isto simplifica bastante o trabalho do administrador, j que estes comandos eliminam a necessidade de se editar os arquivos /etc/group e
/etc/gshadow, operao que requer muita ateno e apresenta o risco de provocar alguma
modificao indesejada. Alm disso, o administrador tambm pode utilizar o comando
groups para verificar os grupos aos quais pertence um usurio.
Criando grupos
Os comandos addgroup e groupadd criam entrada no arquivo /etc/gshadow automatica-
mente (shadow passwords), e podem ser utilizados para criar grupos de sistema.
Um grupo pode ser criado atravs dos comandos addgroup e groupadd, que criam o novo
grupo, utilizando os parmetros passados na linha de comando. Se o esquema de shadow
passwords estiver habilitado, a entrada referente ao novo grupo criada automaticamente
no arquivo /etc/gshadow. Para consultar mais informaes a respeito destes comandos, suas
pginas de manual podem ser consultadas.
Modificando grupos
groupmod:
40
Removendo grupos
groupdel:
11 Remove um grupo.
delgroup:
11 Remove um grupo.
11 Remove entrada no arquivo /etc/gshadow automaticamente (shadow passwords).
Um grupo pode ser removido atravs dos comandos groupdel e delgroup. Se o esquema de
shadow passwords estiver habilitado, a entrada referente ao grupo removida automaticamente do arquivo /etc/gshadow. Para mais informaes a respeito destes comandos, suas
pginas de manual podem ser consultadas. Alm desses comandos, ainda podemos utilizar
o comando deluser com a opo --group para remover um grupo.
11 Modo automatizado:
22 Comandos useradd e adduser criam usurios ou modificam valores e atributos
para novos usurios.
22 Comando newusers cria ou atualiza contas de usurio de forma automatizada.
Os comandos adduser ou useradd permitem criar contas sem a necessidade de editar os
arquivos /etc/passwd e /etc/shadow, operao que requer muita ateno e apresenta o risco
de provocar alguma modificao indesejada. Todos os parmetros da conta podem ser
passados ao comando adduser, caso se queira modificar algum valor padro, como mostra o
exemplo seguinte:
mais informaes a respeito deste comando, sua pgina de manual pode ser visualizada
atravs do comando man adduser.
O comando newusers tambm pode ser utilizado para automatizar o processo de criao ou
mesmo alterao de parmetros em contas de usurios. Os dados relativos aos usurios
devem ser inseridos em um arquivo que ser passado como parmetro para o comando.
Este arquivo deve possuir o formato abaixo:
name:passwd:uid:gid:GECOS:dir:shell
Esses valores padro podem ser listados utilizando a opo -D do comando. Para consultar
41
do comando usermod. O comando passwd tambm pode ser utilizado com a opo -l para
travar uma senha. Para destravar a senha, basta utilizar a opo -u. Alm disso, o comando
chage tambm pode ser utilizado para bloquear uma conta, como mostra o exemplo:
# 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.
utilizando e para quais finalidades. No Linux, h vrias ferramentas que permitem visu-
#who
root
root
aluno1
# 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
bash
aluno1
pts/2 172.16.3.191
6:48pm
# 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
still logged in
wtmp begins Tue Feb 10 18:11:33 2004
Existem formas mais eficazes de se monitorar as atividades dos usurios no sistema, o que
pode ser feito visualizando os arquivos de log, geralmente localizados no diretrio /var/log.
O programa syslog responsvel por gerenciar o registro de eventos do Linux e seu arquivo
de configurao (/etc/syslog.conf ) contm as informaes sobre o local onde ficam arma-
zenados os diversos arquivos de logs do sistema e das aplicaes. O syslog ser visto em
44
detalhes no Captulo 7.
Roteiro de Atividades 2
Atividade 2.1 Criando contas de usurios
Uma das atividades que fazem parte da rotina diria de um administrador de sistemas o
gerenciamento de contas de usurios. Frequentemente, usurios so criados, modificados,
desabilitados ou excludos do sistema.
1. Descubra se o sistema faz uso de shadow passwords ou se ainda utiliza o esquema tradicional.
2. Crie uma conta para voc no sistema, seguindo os passos descritos na parte terica.
3. Agora, crie uma conta para o instrutor, utilizando, desta vez, o comando useradd. Faa
com que a conta criada tenha sete dias de durao e com que o seu diretrio de trabalho
seja /nome, onde nome o nome de usurio para o qual a conta deve ser aberta.
Consulte as pginas do manual do comando useradd e procure as informaes
necessrias para incluir a data de expirao (expire date) e criar o diretrio de trabalho (homedir) em um local diferente do padro, que /home/nome. No se esquea
de escolher e atribuir uma senha para as contas que obedea aos padres de segurana apresentados.
4. O comando useradd no uma boa opo para informar a senha do usurio. Por qu?
5. Faa um script que simule o comando newusers. Para isso, voc deve criar um arquivo
texto contendo as informaes a respeito dos usurios, mantendo o mesmo padro dos
arquivos lidos pelo comando newusers. Como este arquivo conter as senhas dos usurios, importante remov-lo logo aps a criao das contas.
Utilize a varivel de sistema Internal Field Separator (IFS) em seu script para definir o
caractere : como campo que separa as informaes sobre as contas.
2. Suponha que voc o prprio usurio e que deseja modificar o shell para o /bin/tcsh.
Como voc faria isso sem solicitar a interveno do administrador de sistemas? Faa-o,
e ao final verifique por meio do comando finger se a sua mudana surtiu efeito.
3. Seria possvel inserir o nmero de telefone de trabalho desse mesmo usurio, junto com
a informao de quem ele ? Faa isso e torne a checar se sua mudana surtiu efeito.
45
grupo grupoteste. Em seguida inclua o usurio do instrutor no grupo grupoteste. Voc conseguiu executar as tarefas propostas? Por qu? Como voc deve fazer para realizar as tarefas?
6. Altere novamente o grupo primrio do instrutor para o grupo instrutor.
Atividade 2.1 deste roteiro. Note que o grupo primrio do usurio no deve mudar, continua sendo o nome do usurio.
2. Agora, utilize um comando apropriado para inserir nesse mesmo grupo o usurio criado
3. Agora desbloqueie a conta e faa o teste de acesso para verificar se sua alterao surtiu efeito.
3. Faa um backup de seus dados de modo que o instrutor possa ter sobre eles o mesmo
isso, os usurios desse grupo, incluindo o usurio criado na Atividade 2.1 podero acessar
esse arquivo por meio das permisses definidas para os usurios do grupo.
proprietrio. Use o comando chmod para atribuir permisso de escrita ao grupo proprietrio desse arquivo. A permisso de escrita nesse arquivo inicialmente atribuda apenas
ao usurio proprietrio do arquivo.
47
48
3
Entender o que um processo, conhecer os tipos de processos existentes,
seus componentes e ciclo de vida; conhecer os princpios de um sistema
multiprocessado e os estados de um processo.
conceitos
Processos
Composio do programa em execuo:
Captulo 3 - Processos
objetivos
Processos
49
Tipos de processos
Interativos:
11 Processos I/O bound realizam operaes de entrada e sada na maior parte do tempo.
Alm disso, os processos podem ser classificados de acordo com a porcentagem de tempo
em que utilizam o processador ou realizam operaes de entrada e sada. Processos que utilizam o processador na maior parte do tempo so classificados como CPU bound. Processos
que realizam operaes de entrada e sada na maior parte do tempo so classificados como
Administrao de Sistemas Linux
I/O bound. O sistema operacional sempre privilegia processos do tipo I/O bound de modo
50
Componentes de um processo
Espao de endereamento:
11 Conjunto de pginas de memria.
11 Contm segmentos para cdigo do programa em execuo, variveis, pilhas
e outras informaes.
Um processo tpico consiste de duas entidades: um espao de endereamento e um conjunto de estruturas de dados internas do kernel. O primeiro diz respeito a um conjunto de
pginas de memria marcadas pelo kernel para o uso do processo, contendo:
11 Os segmentos para o cdigo do programa que o processo est executando;
11 As variveis usadas pelo processo;
11 A pilha do processo;
11 Outras informaes de que o kernel necessita.
Estruturas de dados internas do kernel armazenam informaes a respeito dos
processos em execuo:
11 Mapa do espao de endereamento.
11 Status atual do processo.
11 Prioridade de execuo.
11 Recursos utilizados.
11 Mscara de sinalizao do processo.
11 Usurio proprietrio.
Muitos parmetros associados a um processo afetam diretamente a sua execuo. A seguir,
veremos o significado e a importncia dos parmetros mais interessantes do ponto de vista
de um administrador de sistemas.
PID e PPID
11 Process ID (PID):
Captulo 3 - Processos
51
Effective User Identification (EUID) o UID efetivo de um processo, sendo identificado por
um nmero inteiro que pode variar de 1 a 65536. Esse nmero utilizado para determinar
os recursos e arquivos que o processo tem permisso de acessar. Na maioria dos processos,
o UID e o EUID so iguais. A exceo ocorre quando o programa em execuo tem o bit SUID
ativo. Nestes casos, o UID est relacionado ao usurio executor do programa e o EUID ao
usurio dono do programa. Um exemplo de programa com o bit SUID ativado o comando
passwd. Quando este comando executado por um usurio comum, o UID do processo
igual ao UID do usurio executor, e o EUID do processo igual ao UID do usurio dono do
programa, neste caso, o root.
Real and Effective Group ID (GID, EGID):
Prioridade
A prioridade de um processo determina quanto tempo de CPU ele receber. Assim, no
momento em que o kernel vai selecionar um processo para ser executado, ele seleciona
aquele com a maior prioridade interna. A quantidade de tempo de CPU que o processo j
consumiu e o tempo que ele est esperando para rodar so fatores que influenciam a prioridade interna. Como veremos de forma detalhada mais frente, no possvel determinar
a prioridade interna diretamente. Essa uma prerrogativa do kernel. Contudo, possvel
influenciar esse valor por meio de um comando que altera o nice value de um processo (um
nmero inteiro que influencia a prioridade de um processo no sistema).
Terminal de controle
O terminal de controle determina os canais que devem ser utilizados pelo processo, como
Administrao de Sistemas Linux
52
11 Cdigos de retorno:
22 Se ok retorna o PID do filho, no contexto do processo pai e 0 no contexto do filho.
22 Se no retorna -1 no contexto do processo pai, no cria o filho e envia o cdigo
de erro.
No Linux, processos no so gerados de forma espontnea, ou mesmo criados aleatoria-
mente pelo kernel. Na verdade, novos processos so criados unicamente a partir de outros
processos, por intermdio da chamada de sistema fork, que cria uma cpia exatamente
igual do processo que a executou. As principais diferenas ficam por conta do PID e do PPID.
Aps a execuo da chamada fork, os processos pai (o criador) e filho (o criado) so tratados
de maneira independente, como mostra a Figura 3.1, podendo criar novos processos e dar
origem a uma rvore hierrquica de processos.
Figura 3.1
Processos
pai e filho.
P1
Fork
PID 10
P1
PID 356
Um processo filho herda uma cpia de todos os descritores de arquivos mantidos pelo
processo pai, compartilhando os respectivos arquivos. O Linux permite que os processos
identifiquem-se como pai ou como filho e sigam linhas de execuo diferentes, aps o
retorno da chamada fork. Para tal, no retorno da chamada fork, o sistema operacional
retorna para o processo pai o PID do processo filho. Este, por sua vez, recebe do sistema
operacional apenas o valor 0.
Chamada de sistema exec:
Figura 3.2
Chamada de
sistema exec.
P2
PID 34
Captulo 3 - Processos
exec
P1
53
Na inicializao do Linux, o primeiro processo (PID = 1) a ser executado o init. Esse processo cria diversos processos filhos, que controlam a inicializao do sistema. Portanto,
todos os processos em execuo no sistema, com exceo de uns poucos criados diretamente pelo kernel, so descendentes do processo init. Ao final da inicializao do sistema,
o init identifica os terminais conectados a ele e por meio das chamadas fork e exec cria um
processo associado a cada terminal para controlar o acesso ao sistema. O processo que
controla os terminais o getty que, quando recebe um pedido de conexo, ativa o programa
login para fazer a verificao do nome do usurio e sua respectiva senha, armazenados nos
arquivos /etc/shadow ou /etc/passwd, caso o esquema de shadow passwords no esteja habilitado. Se as informaes fornecidas pelo usurio estiverem corretas, um novo processo ser
criado para executar o interpretador de comandos do usurio, que fica aguardando por um
comando. O esquema descrito acima mostrado na Figura 3.3.
PID 1
init
exec
Fork
init
PID 424
exec
getty
PID 424
PID 424
bash
Fork
PID 424
bash
exec
exec
login
PID 563
Figura 3.3
Criao de
processos.
grep
PID 563
Multiprocessamento
Um usurio pode ter vrios processos ativos:
11 Foreground:
22 # ps aux
11 Background:
22 # firefox & (associado a um terminal).
11 Daemon:
22 Squid (no associado a terminal).
Por ser um ambiente multiusurio e multitarefa, o Linux permite que vrios usurios executem, simultaneamente, diversos processos independentes. Cada usurio pode ter vrios
processos ativos. Em um sistema de grande porte, podem existir milhares de processos em
execuo. Os processos com que o usurio interage diretamente esto associados a um
54
terminal, sendo possvel para este processo ler ou escrever dados. Diz-se que esses processos esto sendo executados em primeiro plano, ou em foreground. No entanto, existem
processos que, apesar de poderem estar associados a terminais, no conseguem ler nem
escrever dados. Diz-se que esses processos esto sendo executados em segundo plano,
ou em background. Muitos processos so executados em segundo plano, controlando
alguma atividade ou fornecendo algum servio. Geralmente, processos em segundo plano
realizam operaes de entrada e de sada em arquivo. No entanto, pode existir apenas um
processo executado em primeiro plano associado a um determinado terminal. Existe um
tipo especial de processo que executado em segundo plano, denominado daemon, que
geralmente ativado na inicializao do sistema e no possui um terminal associado. Daemons
realizam operaes de entrada e de sada em arquivo ou por meio da rede. O interpretador
de comandos permite ao usurio executar processos em primeiro ou em segundo plano e
tambm iniciar ou parar um determinado daemon a qualquer momento.
Quando o usurio executa um processo em primeiro plano, o interpretador de comandos
somente libera o prompt aps o trmino da execuo do comando solicitado, uma vez que
o processo poder realizar operaes de entrada e de sada no terminal. Porm, quando o
usurio executa um processo em segundo plano, o interpretador de comandos imediatamente libera a linha de comando, permitindo que o usurio fornea novos comandos para
serem executados. Para executar um processo em segundo plano, o usurio precisa apenas
acrescentar ao final do comando o caractere &. Por exemplo, para executar o navegador
Firefox em segundo plano, deve ser digitado o seguinte comando:
# firefox &
Nesse caso, o Firefox ser executado em segundo plano, e o interpretador de comandos
ainda permitir ao usurio fornecer novos comandos e execut-los de forma independente.
A noo de processos executados em background e em foreground est diretamente relacionada aos terminais. Em ambientes grficos de janelas, como o X-Window, os conceitos
de processos em background e foreground ainda so vlidos, porm seu entendimento no
to simples. Para um processo trabalhar com janelas, ele se comunica diretamente com
um processo gerenciador do ambiente grfico, enviando mensagens de um protocolo de
aplicao suportado pelo gerenciador. No X-Window, o usurio pode executar uma janela
emuladora de terminal utilizando o comando xterm, que, por sua vez, executa um interpretador de comandos. O gerenciador do ambiente grfico define um terminal virtual para cada
janela xterm. Assim, cada janela xterm comporta-se como um terminal, no qual podem ser
executados processos em background ou em foreground, da forma como foi explicado.
init
Figura 3.4
Processos
em execuo
descendentes do
processo init.
login
bash
ls
bash
ps
vi
cp
Captulo 3 - Processos
login
55
Daemon
Disk and execution monitor (daemons) so programas que gerenciam servios executados
em segundo plano. Os daemons no esto associados a nenhum terminal e geralmente so
iniciados durante o processo de inicializao do sistema. Por padro, os nomes dos daemons
terminam com a letra d. Por exemplo, o daemon que gerencia o servio http chamado
de httpd. A maioria dos servios de rede gerenciada por daemons que ficam permanentemente em execuo, aguardando por conexes. Os servios podem ser gerenciados por um
daemon, modo conhecido como standalone ou atravs do inetd ou xinetd, que so daemons
que gerenciam diversos servios simultaneamente. Quando o inetd e o xinetd recebem uma
requisio, eles a repassam para o daemon correspondente ao servio solicitado. Desta
forma, os daemons responsveis por cada servio gerenciado pelo inetd ou pelo xinetd
s so executados quando recebem alguma requisio. Isso otimiza o uso de recursos do
sistema e simplifica a implementao desses daemons, j que no precisam mais gerenciar
os servios correspondentes, deixando esta tarefa a cargo de inetd ou xinetd.
Alternando execues
Comando bg:
11 Sua funo colocar um processo para rodar em background.
Comando fg:
11 Sua funo colocar um processo para rodar em foreground.
Comando jobs:
11 Sua funo exibir os processos do sistema que esto suspensos ou rodando
em segundo plano.
Um determinado processo executando em foreground pode ser chaveado para execuo
em background e vice-versa. Vejamos como isso acontece no exemplo a seguir:
Suponhamos a situao em que o usurio acaba de iniciar um processo em foreground,
via linha de comando, e recebe um telefonema urgente requisitando uma informao que
est armazenada no arquivo ~aluno1/texto.txt. Para executar essa nova tarefa, ele pode
cancelar o processo que havia sido iniciado (com o uso das teclas Ctrl+C). No entanto,
como ele um usurio experiente e no quer perder o trabalho que estava sendo realizado, decide colocar o processo anterior em background e executar o editor de textos vi
em foreground. Para isso, inicialmente, o usurio precisa suspender a execuo do processo e, em seguida, retomar sua execuo em background. Para proceder suspenso,
o usurio deve pressionar as teclas Ctrl+Z, liberando a linha de comando do interpretador.
Em seguida, digita o comando bg para retomar a execuo em background. Nesse ponto, a
linha de comando do interpretador fica liberada, e o usurio pode executar o vi para visualizar o arquivo ~aluno1/texto.txt. Aps a utilizao do vi, o usurio pode colocar o processo
para ser executado novamente em foreground, utilizando o comando fg. O chaveamento
de primeiro para segundo plano somente funciona se o processo chaveado no fizer uso
do terminal para interagir com o usurio. O comando jobs utilizado para mostrar os processos que esto suspensos ou rodando em segundo plano.
Exemplo:
# man ls
Ctrl+Z)
[1]+ Stopped man ls
56
# bg
[1]+ man ls &
# vi ~aluno1/texto.txt
# fg
(terminada a edio)
Estados de um processo
11 Executando.
11 Bloqueado.
11 Pronto.
11 Parado.
Um processo pode assumir basicamente trs estados possveis: executando, bloqueado e
pronto. Durante seu ciclo de vida, um processo pode passar diversas vezes por esses estados,
dependendo das operaes que precisa executar. Quando um processo criado, ele vai automaticamente para o estado pronto e fica aguardando que o sistema operacional aloque o
processador a ele. Um processo tambm pode se encontrar diversas vezes no estado pronto
durante sua execuo, aguardando a alocao do processador para continuar sua execuo.
Quando o processador alocado ao processo, passa para o estado executando. Um processo
que esteja executando alguma operao de entrada e sada encontra-se no estado bloqueado.
A Figura 3.5 mostra o diagrama de estados de um processo:
Executando
2
1
Pronto
A transio nmero 1 representa o momento em que um processo sai da fila e passa a ser
processado. A transio nmero 2 representa o momento em que um processo deixa de
ser processado e volta para a fila, enquanto o processador alocado a outro processo.
A transio nmero 3 representa o momento em que um processo deixa de ser processado
para realizar alguma operao de entrada e sada. A transio nmero 4 representa o
momento em que um processo termina uma operao de entrada e sada e volta para fila
para aguardar sua vez de ser processado.
Apesar de os processos serem independentes, muitas vezes necessrio que se comuniquem. Um exemplo de comunicao entre processos atravs de pipes, representados pelo
caractere |. O pipe redireciona a sada de um processo para a entrada de outro processo.
Veja o exemplo a seguir, que concatena os arquivos file1 e file2 por intermdio do comando
cat e procura por linhas que contenham a palavra word utilizando o comando grep:
Captulo 3 - Processos
Tabela 3.5
Diagrama de
estados de um
processo.
Bloqueado
tornem apto execuo, como o caso do exemplo visto. Um processo bloqueado retorna
ao estado pronto quando o recurso liberado ou quando a operao de entrada e sada
concluda. No exemplo, o processo relativo ao comando grep volta para o estado pronto
quando o processo relativo ao comando cat termina de escrever os dados na sua entrada.
H outros dois estados de processos listados na literatura: suspenso e zumbi. Em alguns casos,
o usurio ou o prprio sistema operacional decidem interromper a execuo de um processo.
Um processo suspenso ou parado (stopped) est proibido de executar. O exemplo do usurio
que necessita consultar o arquivo ~aluno1/texto.txt, j apresentado, mostra o caso em que o
prprio usurio decide interromper a execuo do processo, pressionando as teclas Ctrl+Z.
Um processo finalizado atravs da chamada de sistema exit. Neste momento, o processo
pai notificado do trmino do processo filho atravs do sinal SIGCHLD. A partir da, o processo filho assume o estado zumbi. Nesse estado o processo terminou sua execuo, mas
ainda consome recursos do sistema. O processo pai ento invoca a chamada de sistema wait
que libera o descritor de processos do processo filho, que ento finalizado.
Exemplo:
58
Em muitos casos, fatores externos ao ambiente do sistema operacional fazem com que
alguns processos tenham prioridade sobre outros. Por exemplo, em um computador de uso
geral de uma empresa, os processos gerados pela equipe de produo podem ter prioridade sobre os processos gerados pela equipe de desenvolvimento. Para atender casos
nos quais a prioridade deve ser levada em considerao, o Linux suporta um esquema de
prioridade de processos. A prioridade de um processo determina a quantidade de tempo
de processador que ele utilizar quando estiver no estado executando. Vale ressaltar que,
no Linux, quanto maior o valor do atributo de prioridade (PRI) de um processo, menor a
prioridade de escalonamento, como ilustra a Figura 3.6. Dessa forma, o escalonador aloca o
processador ao processo de menor PRI que est na fila de escalonamento. Assim, processos
com prioridade baixa (maior PRI) somente tm a chance de serem executados quando no
existirem processos de alta prioridade sendo executados ou, se existirem, mas estiverem
bloqueados ou suspensos.
Para evitar que um processo de alta prioridade monopolize o processador, a prioridade de
um processo calculada levando-se em considerao o tempo de CPU recentemente consumido e o tempo de espera na fila de escalonamento. A prioridade de um processo no pode
ser definida ou alterada diretamente. No entanto, cada processo possui um atributo adicional, denominado nice value, que influencia substancialmente o clculo da sua prioridade
e que pode ser modificado diretamente pelo usurio proprietrio ou pelo administrador do
sistema. No Linux, o nice value varia entre -20 e 19 e quanto maior for seu valor, maior o
valor da prioridade (PRI) do processo. Entretanto, como foi descrito anteriormente, quanto
maior o valor da prioridade (PRI), menor a prioridade de escalonamento efetiva do processo, ou seja, menos chance o processo tem de ser alocado ao processador.
Prioridade de
escalonamento
O Linux possui dois comandos que servem para manipular o nice value de processos. Esses
comandos so o nice e o renice. O nice utilizado para ativar um processo com o nice value
corrente incrementado pelo valor fornecido. Por exemplo, para executar o comando cat com
nice value corrente incrementado de 10, o usurio deve fornecer o seguinte comando:
# renice 10 1502
O usurio root pode atribuir qualquer valor entre -20 e 19 ao nice value de qualquer processo. Por outro lado, usurios normais podem somente incrementar o valor do nice value
de seus prprios processos. Para mais informaes, leia as pginas de manual referentes a
esses comandos.
Captulo 3 - Processos
Figura 3.6
Algoritmo de escalonamento baseado
em prioridade.
Valor do
atributo de
prioridade
(PRI)
59
Algoritmo de escalonamento
Define uma poltica que permite ao escalonador decidir a qual processo alocar o processador. Vrios fatores tornam um algoritmo de escalonamento mais ou menos eficiente.
A lista abaixo apresenta caractersticas desejveis para um algoritmo de escalonamento:
11 Garantir que cada processo ter a oportunidade de ser alocado ao processador;
11 Explorar ao mximo a capacidade do processador;
11 Balancear o uso dos recursos do sistema.
Existem vrios algoritmos de escalonamento, como escalonamento round-robin, First In,
First Out (FIFO) e filas mltiplas, entre outros. Como o objetivo deste curso no o estudo
dos algoritmos de escalonamento, ser apresentado apenas o algoritmo de escalonamento
preemptivo utilizado no Linux. Nesse tipo de algoritmo, o escalonador aloca a cada processo pequenas fatias de tempo de uso do processador, denominadas quantum. O tempo
de durao de cada quantum definido pelo escalonador, baseado na prioridade de cada
processo. Quando um processo entra no estado executando, o algoritmo de escalonamento
verifica se existe algum processo com prioridade maior do que a prioridade do processo em
execuo. Caso encontre algum, o processo em execuo interrompido e o de prioridade
maior passa a ser executado.
Escalonamento baseado em prioridade:
11 Prioridade dinmica:
sempre maior prioridade com relao aos processos interativos ou em batch e s podem ser
criados por usurios com privilgios especiais. O escalonador s executa processos interativos ou em batch, se no houver nenhum processo em tempo real sendo executado. Vale
ressaltar que as polticas utilizadas pelo escalonador para tratar processos em tempo real
so diferentes da poltica baseada em prioridades, utilizada para os processos interativos e
em batch. Essas polticas utilizadas no gerenciamento de processos em tempo real no sero
vistas neste curso por no fazerem parte de seu escopo.
Uso de sinais
Forma de comunicao entre processos. Modo de ocorrncia:
Captulo 3 - Processos
Sinal
Numerao
SIGHUP
SIGKILL
SIGTERM
15
SIGCONT
18
SIGSTOP
19
Monitoramento de processos
Comando ps:
Tabela 3.1
Principais sinais
utilizados na
comunicao entre
processos.
11 Lista os processos que esto sendo executados no sistema: PID, UID, prioridade,
terminal de controle, tempo de CPU, memria utilizada etc.
11 Apresenta uma fotografia dos processos que esto rodando no sistema em um determinado momento.
Programa top:
11 Apresenta um relatrio atualizado dinamicamente dos processos em execuo
no sistema.
11 Exibe uma lista dos processos ativos e recursos utilizados.
11 Taxa de amostragem (por padro, a cada cinco segundos).
Programa pstree:
11 Exibe os processos em execuo em forma de rvore hierrquica.
O comando ps pode ser utilizado para identificar os processos que esto sendo executados
no sistema em um determinado momento, sendo uma das principais ferramentas que um
administrador de sistemas possui para monitorar processos no Linux. Ele pode ser utilizado
para mostrar diversas informaes a respeito dos processos em execuo como PID, UID
associado, prioridade, terminal de controle, percentual de memria e de CPU utilizados,
status atual etc. Entender a sada do comando ps uma habilidade importante que o administrador precisa desenvolver. Olhando para a sada desse comando, ele pode determinar,
entre outras coisas, os processos que esto rodando no seu sistema, o percentual de CPU
e de memria que eles esto utilizando e a qual usurio cada processo pertence.
O comando ps possui diversas opes de uso, cada uma delas exibindo informaes a respeito dos processos em execuo. Este comando pode ser uma importante ferramenta para
diagnosticar problemas no sistema. Suponha, por exemplo, que voc percebe que o sistema
62
est lento e ao rodar o comando ps, ele mostra que dezenas de processos sshd esto
rodando, mas voc verifica que no h ningum logado neste servidor via SSH. Nesse caso,
possvel deduzir que o daemon do SSH no est funcionando corretamente; portanto,
recomendvel que tais processos sejam encerrados. A Figura 3.7 exibe a sada do comando
ps, utilizado com as opes aux, que possuem as seguintes funcionalidades: a opo a exibe
todos os processos, com exceo dos processos no associados a um terminal; a opo u
exibe o nome do usurio que iniciou os processos e a opo x exibe todos os processos que
no so controlados por um terminal.
O comando ps apresenta uma fotografia dos processos que esto rodando no sistema em
um determinado momento e isso pode dificultar o diagnstico de uma situao de mau
funcionamento do sistema, causado por um processo que esteja, por exemplo, monopolizando o uso da CPU. Um programa que pode ser utilizado nesses casos o top, que
apresenta um resumo atualizado regularmente dos processos ativos e recursos utilizados
por estes. Inicialmente, o top era disponibilizado como um pacote parte. No entanto,
mostrou-se uma ferramenta to eficaz que passou a ser incorporado s distribuies
Linux. Veja mais detalhes sobre esses comandos, consultando suas pginas de manual.
Outro comando utilizado para visualizar e monitorar processos o pstree. Este comando
exibe os processos que esto sendo executados em um determinado momento, utilizando
um formato de rvore hierrquica.
Exerccio de fixao 1 e
Monitoramento de processos
Cite trs comandos utilizados para visualizar processos, pesquise trs opes deles e
explique a finalidade de cada uma.
Captulo 3 - Processos
Figura 3.7
Sada do comando ps.
Cron
Comando crontab:
64
arquivo trabalhado nesses diretrios. A soluo criar uma entrada no crontab para remover,
todos os dias, a uma hora da manh, por exemplo, todos os arquivos desses diretrios que
no tenham sido modificados h mais de 72 horas. A entrada ficaria da seguinte forma:
Dias do ms
(1-31)
Dias de semana
(0=Dom 1=Seg etc)
Minuto
(0-59)
15
9
Hora
(0-23)
Figura 3.8
Formato do crontab.
*
Ms
(1-12)
root
Comando
a executar
/bin/date>>/tmp/stamp
A Tabela 3.2 mostra a sintaxe utilizada nos campos do crontab. No campo dia da semana os
valores 0 e 7 representam domingo, o valor 1 representa segunda-feira, e assim por diante,
at sbado, representado pelo valor 6.
Descrio
Faixa
Minuto
Minuto da hora
0 a 59
Hora
Hora do dia
0 a 23
Dia
Dia do ms
1 a 31
Ms
Ms do ano
1 a 12
Dia da semana
Dia da semana
0a7
Exerccio de fixao 2 e
Utilizando crontab
O que faz a seguinte linha no crontab?
00 18
joao rm f /home/joao/tmp/*
Anacron
11 Permite executar tarefas que no foram executadas pelo cron durante o tempo em
Captulo 3 - Processos
Tabela 3.2
Sintaxe do crontab.
Campo
seguida as executa.
65
Fcron
11 Possui as funcionalidades do cron e do anacron, resolvendo problemas de
trador pode consultar suas pginas de manual se optar por utiliz-lo no lugar do cron.
66
Roteiro de Atividades 3
Atividade 3.1 Descobrindo o nmero de processos em execuo
1. Quantos processos esto sendo executados na mquina no momento? Use o comando wc
para cont-los.
2. Faa um script que liste o nmero de processo que cada usurio est executando.
n -05. Verifique como isso afeta a prioridade do processo. Ela aumentou, diminuiu
ou permaneceu a mesma?
67
trador de sistemas.
6. Faa um script que liste os arquivos sem dono do sistema e envie a lista por e-mail ao
usurio root.
7. Agende no crontab do usurio root o script do item 6, de modo que ele seja executado
68
4
Diferenciar os conceitos de diretrio, discos e parties e conhecer a estrutura
de diretrios tpica do Linux; particionar um disco, conhecer as vantagens do
particionamento e entender o conceito de sistema de arquivos no Linux.
conceitos
objetivos
Sistema de arquivos
69
Disco 1
Partio 1
usr
local
bin
lib
dev
home
src
joo
etc
dados
Disco 1
Partio 2
Disco 2
Partio 1
Por outro lado, caso o sistema possua uma nica partio, provavelmente o administrador
ter de reinstalar o sistema e recuperar todos os arquivos do backup. A Tabela 4.1 mostra os
principais diretrios do Linux.
Sistema de arquivos
distribudos desenvolvido inicialmente pela
Sun Microsystems para
compartilhar arquivos
e diretrios entre computadores conectados
em rede, formando um
diretrio virtual.
joel
70
/boot
/bin
Utilitrios do sistema.
/sbin
Ferramentas de administrao.
/usr
/etc
/dev
Figura 4.1
Estrutura de diretrios do Linux.
/home
/var
/tmp
Arquivos temporrios.
/root
/proc
Exerccio de fixao 1 e
Estrutura de diretrios
O objetivo deste exerccio propor um melhor entendimento da estrutura bsica de diretrios do Linux. Relacione os diretrios com seus respectivos contedos:
1. /
2. /bin
3. /boot
4. /dev
5. /etc
( ) Bibliotecas dinmicas
6. /home
7. /lib
8. /mnt
9. /sbin
10. /tmp
11. /usr
12. /usr/Bin
13. /usr/share/doc
14. /var
Tipos de partio
Existem trs tipos de partio:
11 Partio primria: o principal tipo de partio, que contm algum tipo de sistema de
arquivos associado. Em um disco deve haver no mnimo uma e no mximo quatro parti-
Tabela 4.1
Principais diretrios
do sistema.
/lib
conter mais nenhum outro tipo de partio. Uma das parties primrias deve ser
marcada como inicializvel para que o Sistema Operacional possa ser carregado.
No Linux as parties primrias so identificadas em um disco IDE, por exemplo, como
hda1, hda2, hda3 e hda4.
11 Partio estendida: tipo especial de partio que no pode conter sistemas de arquivos,
mas contm at doze parties lgicas. Um disco pode conter somente uma partio
estendida. importante ressaltar que em um disco que contenha uma partio estendida,
s podero existir trs parties primrias. Ou seja, esse tipo de partio ocupa o lugar de
uma partio primria no disco. No Linux a partio estendida pode ser identificada em um
disco IDE, por exemplo, como hda1, hda2, hda3 ou hda4.
11 Partio lgica: tambm conhecida como unidade lgica, esse tipo de partio fica localizada dentro da partio estendida e deve conter algum sistema de arquivos. No Linux as
parties lgicas so identificadas em um disco IDE, por exemplo, de hda5 at hda16.
Sistema de arquivos
11 Abstrao utilizada pelo kernel para representar e organizar os recursos de armaze-
Camada de abstrao
ext3
NTFS
CDFS
NFS/CIFS
USBFS
Disco rgido
CD-ROM
NIC
Entrada USB
Para suportar os vrios tipos de sistemas de arquivos, o Linux agrega a cada tipo um mdulo
de software responsvel por traduzir seus formatos para um formato nico denominado
72
Figura 4.2
Sistema de
arquivos.
Virtual File System (VFS). Assim, o administrador pode utilizar o comando mount para
montar diversos tipos de sistemas de arquivos simultaneamente, criando a rvore de diretrios nica do Linux. As informaes que descrevem as parties, seus tipos de sistemas de
arquivos e seus pontos de montagem so armazenados no arquivo /etc/fstab. Nesse arquivo,
cada partio descrita em uma linha que possui o seguinte formato:
Filesystem Mountpoint
Type
Options Dump
Fsck
Mountpoint
Type
Options
Dump
Fsck
/dev/hda1 / ext2
rw 1
1
/dev/hda2 /usr ext2
rw 1
2
/dev/hdc
none
swap
rw
#Filesystem
referencia a partio substitudo por um label ou pelo Universally Unique Identifier (UUID)
73
do hardware. Esse novo padro foi adotado por conta de mdias de armazenamento removveis, que podem ser associadas a diferentes nomes de dispositivos quando so conectadas
ao sistema. Sendo assim, no temos como referenciar no arquivo /etc/fstab um pen drive,
por exemplo, pelo mesmo nome de dispositivo sempre, o que impossibilita sua montagem
automtica. Para evitar esse tipo de problema, algumas distribuies utilizam a notao de
labels ou UUIDs. Para verificarmos o label (quando disponvel) e o UUID de um dispositivo,
devemos conect-lo ao computador e em seguida verificar a qual dispositivo ele foi associado. Basta ento executar o comando blkid como mostra o exemplo a seguir.
# blkid /dev/sdb1
as parties.
Comandos
Figura 4.3
Arquivo /etc/fstab.
H uma srie de comandos que so utilizados para trabalhar com sistemas de arquivos.
Dentre eles podemos destacar:
Comando mkfs
Cria, em uma partio de um disco, a estrutura lgica correspondente ao sistema de
Comando fsck
Verifica a consistncia e repara possveis erros em um sistema de arquivos.
Uma vez que, para aumento de desempenho, o kernel costuma armazenar blocos de dados
que deveriam ser salvos em disco, na memria do sistema, a imagem mais recente do
sistema de arquivos encontra-se dividida entre o disco e a memria. Assim, caso haja falha
de energia, pequenas inconsistncias podem ser introduzidas no sistema de arquivos, uma
vez que informaes armazenadas na memria no puderam ser salvas no disco.
O comando file system consistency check ( fsck) analisa um filesystem procura de erros
74
e, caso encontre algum, tenta corrigi-lo. O nome da partio deve ser informado como
parmetro para o comando fsck. Na inicializao do sistema, as parties marcadas
para serem verificadas no arquivo /etc/fstab podem ser checadas automaticamente pelo
comando fsck, que examina e corrige eventuais erros. Os sistemas de arquivos so verificados obedecendo ordem numrica crescente indicada no campo Fsck do arquivo
/etc/fstab. Se dois sistemas de arquivos esto localizados em diferentes discos, pode ser
fornecido a eles um mesmo nmero de sequncia, que far com que o fsck verifique os
dois simultaneamente. A partio raiz deve sempre ser checada antes de qualquer outra.
Os erros mais comuns encontrados em sistema de arquivos corrompidos so:
11 Inodes no referenciados.
11 Link counts inexplicavelmente grandes.
11 Blocos de dados no utilizados e no registrados nos mapas de blocos.
11 Blocos de dados registrados como livres, mas que esto sendo utilizados por algum arquivo.
11 Informao de resumo incorreta no superbloco.
Erros que no se enquadram em uma das cinco categorias listadas acima so potencialmente perigosos. Na sua deteco, o fsck entra no modo interativo e solicita ao administrador que confirme cada um dos reparos que ele executa. Nesse caso, so grandes as
chances de perda de dados importantes do sistema. Alguns erros graves so:
11 Blocos reclamados por mais de um arquivo.
11 Blocos reclamados por um arquivo, mas que esto fora do sistema de arquivos.
11 Link counts muito pequenos.
11 Blocos no contabilizados.
11 Diretrios referentes a inodes no alocados.
11 Vrios erros de formato.
Infelizmente, impossvel reparar um disco sem ter o conhecimento profundo do modo
como o sistema de arquivos implementado. No h, portanto, muito a fazer a no ser
aceitar os reparos sugeridos pelo fsck. possvel tentar minimizar os problemas, registrando
as mensagens exibidas pelo comando, uma vez que elas costumam indicar os arquivos problemticos detectados. Se o fsck pede permisso para remover um arquivo, preciso tentar
copi-lo para outra partio, antes de permitir a sua remoo. Deve-se estar atento para o
fato de que, ao tentar acessar um arquivo danificado, corre-se o risco de travar o sistema.
Comando mount
O comando mount utilizado para montar uma partio, que pode conter qualquer tipo
de sistema de arquivos suportado pelo Linux. A princpio, a partio pode ser montada em
existente e respeite o esquema de permisses de arquivos e diretrios do Linux.
Comando umount
O comando umount utilizado para desmontar uma partio que tenha sido anteriormente
montada. Quando uma partio desmontada, sua subrvore de diretrios passa a no mais
fazer parte da rvore de diretrios principal. importante ressaltar que uma partio s pode
ser desmontada se no possuir nenhum recurso sendo utilizado pelo sistema. Para obter mais
qualquer ponto da rvore de diretrios, desde que no utilize nenhum nome de diretrio
75
informaes sobre esses comandos, suas pginas de manual podem ser consultadas.
Comandos du e df
Comando du:
11 Mostra o tamanho de arquivos e diretrios.
11 til para verificao dos maiores utilizadores de espao em disco.
Comando df :
11 Lista o uso de espao em disco de cada partio.
11 Exemplo: # df -k
Para verificar a taxa de ocupao dos diretrios e parties, o administrador pode utilizar
os comandos du e df. O primeiro percorre a rvore do diretrio especificado e identifica o
espao ocupado pelos seus arquivos e subdiretrios. O segundo fornece informaes sobre
o espao livre e o espao utilizado nas parties. O comando df tambm pode mostrar
a taxa de utilizao de inodes por partio. Para obter mais informaes sobre esses
comandos, suas pginas de manual podem ser consultadas. Os exemplos a seguir mostram
as sadas dos comandos df e du, respectivamente.
# df -h
Filesystem
/dev/sda1
Size
32G
21G
32% /
# df -i
Filesystem
/dev/sda1
# du -hcs /var/*
76
4.0K
/var/backups
48M
/var/cache
4.0K
/var/crash
81M
/var/lib
4.0K
/var/local
/var/lock
3.9M
/var/log
4.0K
/var/mail
4.0K
/var/opt
36K
/var/run
28K
/var/spool
4.0K
/var/tmp
132M
total
Inodes
2039808
IUsed
181908 1857900
9% /
Minix
ISO 9660
proc
nfs
Sistema de arquivos utilizado para acessar arquivos armazenados remotamente em redes baseadas em sistemas Unix.
ufs
smbfs
ReiserFS
xfs
swap
Exerccio de fixao 2 e
Sistemas de arquivos
O que journaling, suportado nas verses ext2, ext3 e ext4 dos sistemas de arquivos do Linux?
Exerccio de fixao 3 e
Comando mkfs
O que faz o seguinte comando?
Sistema de quotas
11 Administra o uso de espao em disco pelos usurios.
Tabela 4.2
Tipos de sistemas
de arquivos
suportados.
Sistema de Arquivos
Preparando o sistema
11 O kernel deve estar configurado.
Habilitando
11 /etc/rc.local
78
11 /etc/fstab
11 Informar se o controle ser por usurios (usrquota), por grupos (grpquota) ou ambos.
11 Controle realizado por partio.
11 A configurao deve ser feita no campo Option.
11 Filesystem do tipo ext2 ou ext3.
No Linux, a habilitao do sistema de quotas deve ser realizada durante a inicializao do
sistema e pode ser includa no script /etc/rc.local. Esse script ativa os comandos que habilitam
o sistema de quotas. Dessa forma, sempre que o sistema for inicializado, as quotas sero habi-
litadas. importante ressaltar que o sistema de quotas deve ser habilitado aps a montagem
das parties definidas no arquivo /etc/fstab. recomendvel habilitar o sistema de quotas ao
final do arquivo /etc/rc.local ou imediatamente aps a montagem de todas as parties.
Uma vez configurada a habilitao do sistema de quotas, preciso informar em quais parties ele deve ser ativado. Essas parties so indicadas no arquivo /etc/fstab, que tambm
guarda informaes sobre a montagem das parties. Alm de indicar que o controle de
quotas est ativo na partio, igualmente necessrio informar se o controle ser realizado
por usurio, por grupo, ou por ambos. Deve ser ressaltado que o controle de quotas feito
por partio, e no por diretrio. Como visto anteriormente, o arquivo /etc/fstab semelhante a uma tabela, em que cada linha descreve uma partio e cada coluna representa
um campo com caractersticas da partio. A configurao do sistema de quotas realizada
no campo Options. Para cada partio em que o sistema de quotas for ativado, o administrador deve criar, na raiz dessas parties, arquivos vazios com os seguintes nomes: aquota.
user e aquota.group. Esses arquivos so utilizados pelo sistema de quotas para manter os
limites de quotas dos usurios e dos grupos na partio e para garantir a utilizao corrente
da partio por esses usurios e grupos. Esses arquivos devem ter permisso de leitura e
escrita apenas para o usurio root. Para estabelecer um sistema de quotas na partio / do
sistema, por exemplo, o administrador deve fazer as alteraes necessrias no arquivo
/etc/fstab e executar a sequncia de comandos:
# touch /aquota.user
# touch /aquota.group
# chmod 600 /aquota.user
# chmod 600 /aquota.group
Esses comandos criam arquivos de quotas vazios.
Inicializando
Criao dos arquivos aquota.user e aquota.group na raiz da partio /home:
11 # touch /home/aquota.user
11 # touch /home/aquota.group
11 # chmod 600 /home/aquota.user
11 # chmod 600 /home/aquota.group
11 Desmontar e montar todas as parties com quota habilitada.
11 Reiniciar o sistema se for habilitada quota na partio raiz.
Inserir no arquivo /etc/rc.local:
# quotacheck -auvg
11 Comando quotaon:
22 Ativa o suporte a quota de disco.
# quotaon -augv
11 Comando quotacheck:
79
Aps a criao dos arquivos aquota.user e aquota.group, todas as parties com quota habilitada devem ser desmontadas e montadas novamente, para que as alteraes entrem em
vigor. Se for habilitado o sistema de quotas na partio raiz, o sistema deve ser reiniciado, j
que essa partio no pode ser desmontada com o sistema em uso. Em seguida, o administrador deve utilizar o comando quotacheck com a opo -a para inicializar os arquivos de
controle de quotas criados acima, com a situao corrente de utilizao das parties. Se
for utilizado com as opes -augv, cria ambos os arquivos e inicializa-os com os dados atuais
de uso de disco por usurio e grupo. Para finalizar o processo, o comando quotaon deve ser
executado com as opes -augv para ativar o suporte quota de disco em todas as parties.
Editando quotas
Uma vez que o sistema de arquivos foi configurado para suportar quotas, necessrio
definir os limites de uso para usurios e grupos do sistema. Os limites de quotas so especificados por dois parmetros: soft e hard.
O limite soft pode ser ultrapassado por um determinado intervalo de tempo (grace period).
J o limite hard nunca pode ser ultrapassado. Esses limites so definidos para o nmero
de inodes e para o nmero de blocos que o usurio ou grupo pode alocar. Sempre que
a utilizao de espao em disco do usurio ultrapassa o limite soft, o sistema envia uma
notificao ao usurio, indicando que esse limite foi ultrapassado. A partir desse momento,
o sistema de quotas permite que o usurio permanea acima do limite soft apenas durante
o grace period. Se esse perodo for esgotado e o usurio ainda estiver acima do limite soft,
o sistema bloqueia qualquer operao de escrita em disco do usurio, at que este remova
parte dos arquivos e passe a ocupar um espao abaixo do limite soft.
O comando warnquota pode ser utilizado para alertar os usurios que tenham ultrapassado
seus soft limits. Esse comando analisa as quotas de todos os usurios, em todas as parties
com quota habilitada e envia por e-mail uma mensagem alertando os usurios que tiverem
ultrapassado seus soft limits. Para que esse comando cumpra sua funo satisfatoriamente,
ele deve ser agendado no crontab do usurio root para ser executado periodicamente.
Comando edquota:
11 Edita as quotas de usurios e de grupos.
Comando warnquota:
Administrao de Sistemas Linux
80
11 Envia por e-mail uma mensagem de alerta aos usurios que tenham ultrapassado
seus soft limits.
11 Utilizado para editar a quota de usurios e grupos.
Opes:
11 -u, -g, -t e -p
Exemplos:
# edquota -u aluno1
# edquota -u aluno1
Esse comando ativa o editor vi e exibe a seguinte mensagem:
# edquota -t
possvel facilitar a definio de quotas em um sistema, fazendo uso da opo -p do
comando edquota. Com essa opo pode-se definir as quotas de um usurio com base nas
de outro. Exemplificando, se quisermos definir as quotas dos usurios aluno2 e aluno3 de
forma igual s quotas do usurio aluno1, podemos utilizar o comando:
Verificao e gerenciamento
Comando quota:
Comando repquota:
# quota -u 1001
Disk quotas for user aluno1 (uid 1001):
Filesystem
blocks
/dev/sda2
876
quota
limit
grace
files
quota
limit
83
10000
10500
100000 105000
grace
O comando repquota pode ser utilizado para exibir as quotas de usurios e grupos, separadas por partio. So exibidas informaes como grace time e limites soft e hard para
blocos e inodes. O exemplo a seguir mostra o relatrio do uso de quotas por usurio, na
partio /dev/sda2.
# repquota -aug
*** Report for user quotas on device /dev/sda2
Block grace time: 7days; Inode grace time: 7days
Block limits
User
used
soft
File limits
hard
grace
used
soft
hard
grace
-------------------------------------------------------------------root
--
15431
none
5318
aluno1 +-
5731
200500
300000
none
11245
none
82
Roteiro de Atividades 4
Em algumas das atividades deste roteiro, voc trabalhar com a conta root, o que lhe
dar todos os direitos sobre os recursos do sistema. Portanto, seja cauteloso antes
de executar qualquer comando.
indique qual.
6. Desmonte o pen drive, utilizando a referncia do arquivo /etc/fstab.
7. Quais so os requisitos bsicos para montar um dispositivo no Linux?
83
script deve enviar um e-mail ao usurio root, caso a taxa de utilizao de uma ou mais
parties ultrapasse 90% de uso. O e-mail deve informar o(s) filesystem(s) e sua(s)
respectiva(s) taxa(s) de utilizao (somente se estiver acima de 90%).
Atividade 4.4 Criando uma nova partio e definindo um novo sistema de arquivos
A execuo desta atividade depende da existncia de um espao no alocado no sistema.
Caso no exista este espao e esta atividade esteja sendo executada em um ambiente virtualizado, pode-se ter a facilidade de adicionar um novo disco mquina virtual. Consulte o
instrutor sobre como proceder.
Voc, como administrador de um sistema, pode, a qualquer instante, deparar-se com um
problema gerado por uma aplicao que necessita de maior espao em disco para armazenar informaes (isso muito comum em sistemas de banco de dados). Nessas situaes,
normalmente, um novo disco adicionado ao sistema.
1. Faa login com a conta root. Deve haver um espao no utilizado no disco do seu
servidor. Voc deve adicionar esse espao ao sistema, criando uma partio do tipo
utilizado pelo Linux.
2. Qual a quantidade de espao em disco que foi reservada para armazenar os dados dos
foram realizados?
4. Formate a partio com o sistema de arquivos ext4.
5. Crie um mount point chamado /dados e monte nele a nova partio.
6. Tome as medidas necessrias para que essa partio seja montada toda vez que o
84
1. Faa login com a conta root. Verifique se o sistema de quotas est instalado. Se ainda no
4. Saia do sistema e entre novamente como o usurio de teste que acaba de ser criado.
Como podem ser verificadas, a partir dessa conta, as quotas de uso de disco? E o espao
efetivamente utilizado?
5. Crie dois arquivos no diretrio, utilizando os comandos cp e ln (criando um link simblico).
H diferena na forma como o espao ocupado por esses dois arquivos contabilizado
no sistema de quotas?
6. Considerando um sistema que utilize quotas por usurio, indique a sequncia de
comandos que deve ser inserida no arquivo /etc/rc.local para ativar o sistema de quotas
na inicializao do sistema.
7. Faa um script que defina o esquema de cota para todos os usurios do sistema baseado
85
86
5
Conhecer os tipos de backup e de mdias para backups, assim como os principais
comandos do Linux para backup; conhecer os principais softwares comerciais de
backup e entender o que uma poltica de backup.
conceitos
Introduo
A poltica de backup baseada na frequncia de modificao dos arquivos e em seu grau
de importncia. Backups podem ser realizados por meio de comandos simples ou por
meio de pacotes sofisticados. A poltica de backup eficiente para combater:
11 Ao de vrus e outras ameaas.
11 Ataques de hackers.
11 Falhas de usurios.
11 Problemas de hardware e software.
Frequentemente recebemos informaes sobre vrus devastadores e ataques de hackers,
que vivem ameaando a segurana dos sistemas. Na maioria das instituies, a informao
armazenada nos computadores vale mais do que os prprios equipamentos. Planejar e
executar uma eficiente poltica de backup dos dados, sem dvida, a melhor maneira para
a recuperao de acidentes e desastres, falhas dos usurios e problemas de hardware e de
software, constituindo uma das tarefas mais importantes de um administrador de sistemas.
A poltica de backup deve ser baseada, principalmente, na frequncia de modificao e na
importncia dos arquivos. Por exemplo, para um computador de uso pessoal, a frequncia
de backup mnima e considera apenas alguns arquivos do usurio. Por outro lado, um
sistema bancrio precisa manter diversas cpias dos arquivos de forma instantnea (utilizando tcnicas de espelhamento de discos); fazer backup com frequncia (provavelmente
vrias vezes por dia) e, em complemento, manter cpias desses backups em localizaes
fsicas distintas. O Linux dispe de diversos mtodos que podem ser utilizados para a realizao de backups. Esses mtodos vo desde comandos simples, como tar e cpio (includos
na instalao da maioria dos sistemas), at sofisticados pacotes comerciais. Um backup
pode ser to simples quanto copiar toda a rvore de diretrios em uma mdia de gravao,
utilizando o comando tar, ou to sofisticado quanto os complexos mecanismos utilizados
Captulo 5 - Backup
objetivos
Backup
Tipos de backup
Completo:
ltimo backup diferencial entre o backup completo e o backup incremental que se deseja
88
Mdias de backup
A escolha depende de fatores como:
11 Quantidade de dados a armazenar.
11 Confiabilidade e durao desejveis.
Para pensar
O tipo de mdia em que se deve fazer o backup do sistema tambm importante.
A escolha da mdia deve levar em conta fatores que vo do volume de dados que se
necessita armazenar ao montante disponvel para esse tipo de investimento.
Fitas magnticas
Linear Tape Open (LTO):
Figura 5.1
Linear Tape Open
(LTO).
Captulo 5 - Backup
89
Tecnologia de formato aberto, desenvolvida em conjunto pela HP, IBM e Certance. Surgiu
como resposta s necessidades de armazenamento de um volume crescente de informaes que contavam com solues complicadas, como o uso de mltiplas unidades de backup
ou de robs com vrias mdias, o que dificultava bastante a administrao do esquema de
backup de um sistema. As mdias LTO conseguem armazenar at 1,5 TB de informao de
forma no comprimida em uma nica fita, e possuem taxa de transferncia de dados de at
140 MB/s. Essa atualmente a melhor tecnologia de armazenamento em fita magntica e
amplamente utilizada.
Figura 5.2
Digital Linear
Tape (DLT).
A tecnologia DLT foi desenvolvida pela DEC em 1984. Atualmente, dispositivos de backup
baseados nessa tecnologia so fabricados por diferentes empresas. As geraes mais
recentes desses dispositivos conseguem armazenar at 800 GB de informao de forma no
comprimida, a uma taxa de transmisso de 60 MB/s, podendo chegar a 1,6 TB e a 120 MB/s
de transmisso, se for utilizada a compresso de dados.
Mdias pticas
As mdias pticas so mais utilizadas para a realizao de backups em casos especficos. Elas
no costumam ser utilizadas em rotinas de backup, devido sua baixa capacidade de armazenamento. Suas principais vantagens em relao aos outros tipos de mdia so: baixo custo
das mdias e dos dispositivos de gravao. Principais tipos de mdias pticas:
CD
DVD
Blu-Ray
CD
Administrao de Sistemas Linux
Esse tipo de mdia bastante popular e pode ser lida, praticamente, em qualquer com-
90
Figura 5.3
Mdias pticas
(CD, DVD e Blu-Ray).
DVD
11 Mdia popular.
Blu-Ray
11 Mdia que vem se popularizando.
11 Maior capacidade que a do DVD, mas bem menor que a oferecida pelas fitas magnticas.
11 Custo por gigabyte relativamente alto.
Disco ptico de tamanho igual ao CD e ao DVD para reproduo de vdeo de alta definio e
armazenamento de dados de alta densidade, podendo armazenar at 50 GB de dados. Sua
principal desvantagem o alto custo por gigabyte, alm de possuir capacidade de armazenamento pequena quando comparada s das mdias magnticas.
Storage
11 Hardware para armazenamento de dados.
Captulo 5 - Backup
91
Clientes
LAN
Switch Ethernet
Servidores
Figura 5.4
Direct Attached
Storage.
LAN
Switch Ethernet
Servidores
92
Servidor de
armazenamento NAS
Figura 5.5
Network Attached
Storage.
Clientes
LAN
Switch Ethernet
Servidor
iSCSI Target
FC Switch
Figura 5.6
Storage Area
Network.
Switch
Iniciadores
iSCSI
Figura 5.7
Internet Small
Computer System
Interface.
Os storages tambm podem fazer uso da arquitetura Redundant Array of Inexpensive Disks
(RAID) para prover redundncia de dados. O RAID nada mais do que a combinao de dois
Captulo 5 - Backup
SAN iSCSI
ou mais discos para formar uma unidade lgica de armazenamento. O RAID pode ser
93
implementado por hardware ou por software, e alm de redundncia tambm traz ganho de
desempenho no acesso aos dados, dependendo de como for configurado. Os principais e
mais utilizados tipos de RAID sero descritos a seguir:
11 RAID 0: tambm conhecido como striping, nada mais do que a juno de dois ou mais
discos, formando uma unidade lgica de armazenamento. A capacidade da unidade
lgica a soma das capacidades individuais de cada disco. Esse tipo de RAID no oferece
redundncia e, se algum dos discos falhar, todo o contedo perdido. Por outro lado,
seu desempenho no acesso aos dados maior, j que o contedo est dividido em vrios
discos que podem ser lidos simultaneamente. Alm disso, no h desperdcio de armazenamento, j que a capacidade total de todos os discos utilizada.
11 RAID 1: tambm conhecido como mirror, necessita de dois discos para ser implementado. Utiliza o mecanismo de espelhamento de disco, ou seja, todos os dados so
gravados simultaneamente nos dois discos. O RAID 1 oferece redundncia de dados,
pois mesmo que um dos discos falhe, todos os dados podem ser recuperados no outro
disco. Por outro lado, a capacidade de armazenamento reduzida pela metade, j que
o segundo disco possui o mesmo contedo do primeiro. Alm disso, o desempenho
menor, j que os dados so gravados duas vezes. O RAID 1 tambm pode ser utilizado
em conjunto com o RAID 0, formando dois conjuntos com o mesmo nmero de discos.
Os discos de cada conjunto formam atravs do RAID 0 duas unidades lgicas de armazenamento. extremamente recomendvel que a soma das capacidades dos discos dos
dois conjuntos seja igual; caso contrrio, quando o RAID 1 for habilitado entre as duas
unidades lgicas, ele vai considerar sempre o tamanho da menor unidade. Sendo assim,
a unidade de maior capacidade ficar sub-utilizada.
11 RAID 5: utiliza um mecanismo de paridade onde informaes extras sobre os dados so
armazenadas, de modo distribudo entre todos os discos, como forma de redundncia.
O desempenho para leitura de dados aumenta, j que os dados esto espalhados entre
os discos. No entanto, as operaes de escrita so mais lentas, devido ao tempo gasto
com as informaes de paridade. O RAID 5 um meio termo entre RAID 0 e RAID 1. Ele
oferece redundncia, mas sem desperdiar metade do espao total como ocorre no RAID
1. O RAID 5 deve ser formado por pelo menos trs discos. Caso um deles falhe, os dados
ainda podem ser acessados; porm, com queda no desempenho nas operaes de leitura
e escrita devido atividade de recuperao das informaes de paridade realizada pela
controladora de discos em tempo real. Para calcular o espao perdido no RAID 5, deve-se
aplicar a seguinte frmula: 1 - 1/n, onde n representa o nmero de discos utilizados.
O RAID 5 pode utilizar ainda um mecanismo chamado de hot spare, que consiste em um
disco extra que s utilizado em caso de falha de algum disco. Quando a falha ocorre,
a controladora substitui o disco com problema pelo disco extra, gravando neste ltimo
94
Exerccio de fixao 1 e
Storages
Qual nvel de RAID garante pelo menos a perda de um disco e afeta menos a performance
dos sistemas?
a. 0
b. 1
c. 3
d. 5
e. 6
Comandos do sistema
Existem alguns comandos do Linux que podem ser utilizados para fazer backup de dados.
No entanto, em ambientes mais complexos, extremamente recomendvel o uso de algum
software profissional de backup. A seguir sero vistos os principais comandos do Linux que
podem ser utilizados para realizar backups.
Comando tar
Realiza backup de arquivos e diretrios. Opes bsicas:
# crontab -e
00 01 * * 1-5 tar -czf /dev/rst0 home
Uso do tar para espelhamento de rvore. Exemplo:
Captulo 5 - Backup
caractersticas prprias desse tipo de mdia. Um aspecto que deve ser observado com
Exemplo:
Backup em fita
Dispositivo de acesso sequencial:
Comando cpio
11 Realiza backup de arquivos e diretrios.
Comando dump
11 Alm de manipular arquivos e diretrios, pode manipular diretamente os blocos do disco.
Comando rsync
11 Utilizado para fazer backup entre dois computadores.
# gzip /home/maria/backup.tar
Para descompactar arquivos, podemos utilizar os comandos gunzip e bunzip2. O comando do
exemplo a seguir descompacta o arquivo /home/users/maria/relat_prospec.pdf.gz.
# gunzip /home/users/maria/relat_prospec.pdf.gz
Compactao de dados:
Exerccio de fixao 2 e
Comandos do sistema
Qual a finalidade dos seguintes comandos?
Captulo 5 - Backup
do computador remoto.
97
Amanda
Advanced Maryland Automatic Network Disk Archiver (Amanda) um programa que utiliza
arquitetura cliente/servidor para realizar de modo centralizado o backup dos servidores de uma
organizao. Cada computador que fizer parte da rotina de backup necessita da verso cliente
do Amanda instalada, que possui alguns pr-requisitos para funcionar adequadamente. Os
seguintes softwares devem estar instalados no servidor: Samba (somente se algum computador cliente utilizar Windows); Perl; GNU tar e readline (utilizado pelo programa amrecover).
Aps instalar as dependncias necessrias, o pacote do Amanda deve ser instalado.
98
Figura 5.8
O programa
Amanda.
Ativando o Amanda
O Amanda gerenciado pelo daemon inetd, e por isso necessrio que as trs linhas a
seguir, referentes aos programas amanda, amandaidx e amidxtape, sejam inseridas no
arquivo /etc/inetd.conf:
amanda
10080/udp
amandaidx
10082/tcp
amidxtape
10083/tcp
Arquivo amanda.conf
Configuraes globais
org Organizao
# Nome da organizao
mailto suporte@dominio
dumpuser backup
backup
inparallel 8
# Ordem de execuo (s -
displayunit m
# Unidade utilizada
80000 Kbps
pelo Amanda
dumpcycle 4 weeks
Captulo 5 - Backup
runspercycle 4
bumpsize 1000 Mb
bumppercent 50
bumpdays 4
bumpmult 4
etimeout 6600
# Estimativa de tempo em
# Tempo mximo em
/var/amanda/diario/log
# Diretrio que
os ndices do Amanda
Configuraes da unidade de fita
runtapes 1
fitas utilizadas por backup
tapedev /dev/nsa0
# Dispositivo associado
unidade de fita
rawtapedev /dev/null
maxdumpsize 800 Gb
considerado para o backup
100
# Nmero de
# Tamanho mximo
tapetype LTO3
# Tipo de unidade
de fita utilizado
labelstr ^Dia-[1-5]$
fitas
amrecover_do_fsf yes
# Especifica se
# Especifica se o amrecover
holdingdisk hd1 {
comment main holding disk
directory /amanda
autoflush no
Captulo 5 - Backup
program GNUTAR
101
# Lista de arquivos
computador1.dominio
/home
root-tar
servidordeBackup.dominio
//computador2/diretorio
root-samba-tar
sados pelo servidor de backup, atravs do Samba. Para isso, o administrador deve criar um
102
arquivo contendo o nome e a senha do usurio que possui permisso de leitura sobre os
compartilhamentos criados. Esse arquivo deve se chamar amandapass e deve estar localizado
no diretrio /etc. As linhas do arquivo /etc/amandapass devem possuir a seguinte sintaxe:
//<nome_Computador_Cliente>/<compartilhamento> <usurio>%<senha>
Tambm deve ser criado o arquivo /etc/amanda/diario/tapelist, que ser utilizado pelo
Amanda para fazer o controle das datas de utilizao das fitas. Esse arquivo ser preenchido
automaticamente pelo Amanda, medida que os backups forem sendo executados.
Configurando os clientes
Aps a instalao do pacote do cliente do Amanda preciso habilitar o servio no arquivo
/etc/inetd.conf . Somente a linha a seguir, referente ao Amanda, deve ser inserida no arquivo.
amanda 10080/udp
Tambm devem ser criados o diretrio /var/amanda/gnutar-lists, que ser o repositrio do
Amanda e o arquivo /home/backup/.amandahosts, com o seguinte contedo:
servidordeBackup.dominio backup
Esse arquivo deve possuir permisso de leitura e escrita somente para o usurio backup.
Para finalizar, deve ser criado o arquivo de controle do Amanda, /etc/amandates.
Inserindo label nas fitas
Antes de utilizar as fitas para armazenar os dados do backup, preciso inserir um rtulo
(label) nelas, utilizando o comando amlabel com a seguinte sintaxe:
Captulo 5 - Backup
#!/bin/bash
103
O comando amverify tambm pode ser agendado no crontab para ser executado aps o
trmino do backup. Esse comando faz uma verificao geral para ver se ocorreu algum
problema durante a execuo do backup. Outros comandos bastante utilizados so amflush
e amstatus. O amflush utilizado para gravar em fita um backup que tenha ficado armazenado em disco. J o amstatus pode ser utilizado para exibir um relatrio com o status de um
backup em execuo.
Restaurando um backup
Para restaurar um backup, podemos utilizar os comandos amrestore, que um utilitrio de
linha de comando, e o amrecover, que prov uma interface com diversos comandos utilizados para a realizao de um restore. O exemplo seguinte mostra a interface textual do
amrecover, onde so executados os comandos necessrios para restaurar o contedo do
diretrio /home do cliente computador1.
# amrecover diario
Using index server from environment AMANDA_SERVER
(servidordeBackup)
AMRECOVER Version 3.2.1. Contacting server on servidordeBackup ...
220 servidordeBackup AMANDA index server (3.2.1) ready.
Setting restore date to today (2012-02-01)
200 Working date set to 2012-02-01.
200 Config set to diario.
501 Host servidordeBackup is not in your disklist.
Use the sethost command to choose a host to recover
amrecover> sethost computador1
200 Dump host set to computador1.
amrecover> setdisk /home
200 Disk set to /home.
amrecover> add group
Added file /group
amrecover> extract
104
Continue [?/Y/n]? Y
./group
Bacula
Programa que utiliza a arquitetura cliente/servidor e permite ao administrador gerenciar de
modo centralizado o backup dos computadores de uma organizao. Seu design modular o
torna escalvel, sendo capaz de operar em grandes redes com centenas de computadores
clientes. Entre suas principais caractersticas, podemos destacar:
11 Suporte a diversos tipos de mdia, como unidades de fita e discos.
11 Suporte a diversos tipos de Sistemas Operacionais: Linux, *BSD, Windows, MAC etc.
11 Armazena todas as informaes em uma base de dados (MySQL, PostgreSQL etc.).
Store daemon
(DVD, Fita, HD)
Catalog daemon
(MySQL, PostgreSQL, Sqlite)
Figura 5.9
Estrutura de
mdulos do programa Bacula.
Director daemon
(Gerenciamento central)
Console de administrao
(Web, terminal, aplicao)
Captulo 5 - Backup
executado como um daemon e por padro utiliza a porta TCP 9103 para receber conexes.
105
Configurao do Bacula
A configurao do Bacula dividida em trs arquivos, que sero vistos a seguir:
11 Configurao do Director: o arquivo de configurao do Director dividido em diversas
sesses, que sero apresentadas a seguir.
Director {
Name = servidorDeBackup-dir
DIRport = 9101
QueryFile = /etc/bacula/scripts/query.sql
WorkingDirectory = /var/lib/bacula
PidDirectory = /var/run/bacula
Maximum Concurrent Jobs = 30
Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3L
# Console password
Messages = Daemon
DirAddress = 192.168.1.5
}
Sesso Clients
Define os computadores que faro parte da rotina de backup. Deve ser criado um bloco para
cada computador cliente.
Client {
Name = cliente1-fd
# Nome do cliente
Address = cliente1.dominio.com
# Nome ou IP do
cliente
FDPort = 9102
cliente
Catalog = Catalog
utilizar
base
Job Retention = 1y
base
AutoPrune = yes
}
106
# Qual catlogo
Sesso FileSets
Define os arquivos e diretrios que faro parte dos backups de cada cliente. Deve ser criado
um bloco para cada computador cliente.
FileSet {
Name = fileset-cliente1
Include {
Options {
signature = MD5
}
File = /home
}
Exclude {
}
}
Sesso Jobs
Define os trabalhos de backup/restore que sero executados. Deve ser criado um bloco para
cada computador cliente.
Job {
Name = job-cliente1
Type = Backup
#Level = Incremental
# Omitindo o level. O
# Nome do cliente
# FileSet do cliente
# Utiliza o
agendamento diario
Storage = TapeDrive0
LTO-3, no drive 1
SpoolData = Yes
# Gravar no spool do
Pool = pool-dia1
Priority = 10
Write Bootstrap = /var/lib/bacula/ cliente1-fd.bsr
}
Captulo 5 - Backup
Messages = Standard
107
Sesso Pools
Define os grupos de volumes que sero utilizados nos backups.
# recicla em 7 dias
}
# Pool semanal - Utilizar as mesmas configuraes para as semanas
3, 4 e 5 (no foram inseridas aqui para poupar espao)
Pool {
Name = pool-semana2
Pool Type = Backup
Recycle = yes
AutoPrune = yes
VolumeRetention = 1m
# recicla em 1 ms
}
# Pool mensal - Utilizar as mesmas configuraes para os meses de 2
a 12 (no foram inseridas aqui para poupar espao)
Pool {
Name = pool-mes1
Pool Type = Backup
Recycle = yes
AutoPrune = yes
VolumeRetention = 1y
# recicla em 1 ano
}
Sesso Schedules
Define os agendamentos dos backups.
108
Captulo 5 - Backup
Friday at 20:00
Friday at 20:00
109
# Armazenamento em disco
Storage {
Name = FileStorage0
Address = 192.168.1.5
SDPort = 9103
Address = 192.168.1.5
110
SDPort = 9103
Sesso Catalog
Define a base de dados que ser utilizada para armazenar os dados dos backups.
Messages {
Name = Standard
mailcommand = /usr/lib/bacula/bsmtp -h localhost -f \[Bacula]
\<%r\>\ -s \[Bacula]: %t %e of %c %l\ %r
operatorcommand = /usr/lib/bacula/bsmtp -h localhost -f
\[Bacula] \<%r\>\ -s \[Bacula]: Intervention needed for %j\ %r
mail = bacula@dominio.com = all, !skipped
operator = bacula@dominio.com = mount
console = all, !skipped, !saved
# O arquivo de log abaixo deve ser rotacionado para no crescer
indefinidamente.
append = /var/lib/bacula/log = all, !skipped
}
Captulo 5 - Backup
111
Sesso Console
Console restrito utilizado pelo tray-monitor para obter o status do Director.
Console { 5
Name = servidorDeBackup-mon
Password = tjgPc7_eh8cgH-Qyo-0WQnmGiNb_2g6No
CommandACL = status, .status
}
A configurao das sesses Clients, FileSets e Jobs pode ser feita em arquivos parte,
dependendo do nmero de servidores que fizerem parte da rotina de backup. Para isso, as
sesses correspondentes devem ser removidas do arquivo bacula-dir.conf e, em seu lugar,
devem ser inseridas as linhas:
# Clients
@/etc/bacula/clients.conf
# FileSets
@/etc/bacula/filesets.conf
# Jobs
@/etc/bacula/jobs.conf
O Director utiliza senhas para se comunicar com os mdulos Storage, File e Console. Sendo
assim, as senhas definidas nos arquivos de configurao dos clientes e do Storage devem
ser as mesmas definidas nos arquivos de configurao do Director. Caso contrrio, eles no
conseguiro se comunicar.
11 Configurao do Storage: o arquivo de configurao do Storage dividido em diversas
sesses, que sero apresentadas a seguir.
Storage {
Name = servidorDeBackup-sd
112
SDPort = 9103
9103
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
}
Sesso Device
Lista os dispositivos suportados pelo Storage daemon. Os dispositivos devem possuir o
mesmo nome e tipo de mdia definidos no arquivo bacula-dir.conf.
Device {
Name = FileStorage0
Media Type = File
Archive Device = /home/backups
LabelMedia = yes;
Random Access = Yes;
Requires Mount = No;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = yes;
}
Director {
Name = servidorDeBackup-dir
Password = vF6iEYpOmSxOa5QDGYUHraqBhQ9t5lB89
}
Captulo 5 - Backup
113
Sesso Messages
Envia as mensagens para o Director.
Messages {
Name = Standard
director = servidorDeBackup-dir = all
}
Sesso Director
Utilizado pelo Monitor para obter o status do Storage daemon.
Director {
Name = servidorDeBackup-mon
Password = A-fFgazDOgc1oY9ylhvXla-vyiF2hqAcj
Monitor = yes
}
11 Configurao do File: o arquivo de configurao do File dividido em diversas sesses,
que sero apresentadas a seguir. Esse arquivo deve existir em todos os computadores
clientes que fizerem parte da rotina de backup.
FileDaemon {
Name = computador1-fd
FDport = 9102
9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
114
Sesso Director
Lista o Director que pode se comunicar com o File daemon.
Director {
Name = servidorDeBackup-dir
Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg
}
Sesso Director
Utilizado pelo Monitor para obter o status do File daemon.
Director {
Name = servidorDeBackup-mon
Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg
Monitor = yes
}
Sesso Messages
Envia as mensagens para o Director.
Messages {
Name = Standard
director = servidorDeBackup-dir = all, !skipped, !restored
}
Base de dados
Como foi mostrado, o Bacula utiliza uma base de dados para armazenar informaes sobre
jobs, restores, pools, volumes etc. Vamos considerar que o SGBD MySQL ser utilizado para
armazenar a base de dados do Bacula. Aps a instalao de Bacula e MySQL, alguns scripts
tero de ser executados para que o Bacula possa funcionar adequadamente.
11 create_mysql_database: script utilizado para criar a base de dados do Bacula.
11 make_mysql_tables: script usado para criar as tabelas da base de dados do Bacula.
11 grant_mysql_privileges: script utilizado para definir o permissionamento adequado ao
usurio bacula na base de dados do Bacula.
Aps a execuo desses scripts e da configurao adequada dos mdulos Director, Storage e
File, o Bacula est pronto para ser utilizado.
# bconsole
Connecting to Director localhost:9101
1000 OK: backup-dir Version: 5.2.5 (01 February 2012)
Enter a period to cancel a command.
*
A interface textual do bconsole disponibiliza diversos comandos, que podem ser listados
atravs do comando help.
Captulo 5 - Backup
Saiba mais
bconsole
115
* restore
Automatically selected Catalog: Catalogo1
Using Catalog Catalogo1
116
10: Find the JobIds for a backup for a client before a specified
time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select item:
(1-13):5
Defined Clients:
1: computador1-fd
2: computador2-fd
| VolumeName
|
+-------+-------+----------+----------+------------------+---------+
|
643 | F
+-------+-------+----------+----------+------------------+---------+
You have selected the following JobId: 3
+++++++++++++++++++++
++++++++++++++++++++++++++
165 files inserted into the tree.
You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added,
unless you used the all keyword on the command line.
Enter done to leave this mode.
cwd is: /
$ mark *
165 files marked.
$ done
Aps a execuo do comando done, solicitada a insero da(s) mdia(s) adequada(s), para
Captulo 5 - Backup
117
Pacotes comerciais
11 Arkeia Network Backup.
11 ARCserve.
11 Backup Exec.
11 NetBackup.
Existem vrios softwares comerciais de backup, oferecendo diversas funcionalidades em
comum, porm, cada um com suas caractersticas especficas. Esses softwares geralmente
so compatveis com as mais diversas plataformas de hardware e Sistemas Operacionais,
e seus preos podem chegar a alguns milhares de reais. Dentre os softwares comerciais de
backup podemos destacar:
11 Arkeia Network Backup: desenvolvido em 1998 pela Arkeia Software. Alm do software,
a empresa tambm oferece, como soluo, um appliance e um virtual appliance que
executado no VMware. Dentre suas principais caractersticas, podemos destacar: console
de administrao web, que gerencia todas as atividades de backup e restore; suporte aos
mais diversos tipos de mdias e plataformas de hardware e software; suporte a backups
fsicos, virtuais e em nuvem; criptografia de dados etc.
11 ARCserve: foi desenvolvido em 1990 pela empresa Cheyenne Software. Em 1996 a
empresa CA Technologies adquiriu a Cheyenne Software e passou a manter e aprimorar o ARCserve. Suas principais caractersticas: console de administrao grfico
que gerencia todas as atividades de backup e restore; suporte aos mais diversos tipos
de mdias e plataformas de hardware e software; suporte a backups fsicos, virtuais e
em nuvem; integrao com aplicativos como MS Exchange e SQL Server; criptografia de
dados; recuperao total de servidores mesmo migrando para hardwares diferentes etc.
11 Backup Exec: software de backup desenvolvido em 1982 pela Maynard Electronics. Foi
comprado por diversas empresas e passou por vrias melhorias at ser comprado pela
Symantec em 2005. O nome Backup Exec s foi adotado em 1998, quando ainda pertencia empresa Seagate. Dentre as principais caractersticas do Backup Exec, podemos
destacar: console de administrao grfico, que gerencia todas as atividades de backup e
restore; suporte aos mais diversos tipos de mdias e plataformas de hardware e software;
backup de mquinas virtuais; integrao com aplicativos como MS Exchange e SGBDs
(Oracle, SQL Server); criptografia de dados etc.
11 NetBackup: desenvolvido em 1987 pela empresa Control Data Corporation. Passou
por diversos aprimoramentos e foi comprado por outras empresas, entre elas a Veritas,
quando ficou conhecido com Veritas NetBackup. Atualmente pertence Symantec, que
o adquiriu em 2005. Principais caractersticas do NetBackup: console de administrao
grfico, que gerencia todas as atividades de backup e restore; criptografia de dados;
Administrao de Sistemas Linux
controle de acesso; suporte aos mais diversos tipos de mdias e plataformas de hardware
e software; backup de mquinas virtuais; relatrios diversos etc.
Polticas de backup
Fatores para definio da poltica de backup:
11 Criticidade, volatilidade e volume dos dados armazenados no sistema.
11 Tipo de uso e horrio de operao.
11 Capacidade e velocidade do dispositivo utilizado para realizar o backup.
Misso crtica de uma empresa:
11 Estabelecer diversas polticas de backup.
118
Para cada sistema, necessrio decidir quando e como fazer o backup dos dados, o que
depende dos seguintes fatores: criticidade, volatilidade e volume dos dados armazenados
no sistema; tipo de uso e horrio de operao do sistema; capacidade e velocidade do dispositivo utilizado para armazenar os dados do backup. Com base nesses fatores, cada organizao deve definir uma poltica de backup apropriada s suas necessidades operacionais.
Uma empresa que opere um sistema de misso crtica vai ter polticas de backup
muito diferentes das polticas de uma instituio educacional.
Eventualmente, diferentes departamentos de uma mesma empresa podem ter necessidades diversas, e, por conseguinte, diferentes polticas de backup. Geralmente, quanto
mais crtica for a operao do sistema para o negcio da empresa e quanto maior a
volatilidade dos dados, maior a frequncia e abrangncia das operaes de backup. Essa
norma vale tanto para a periodicidade com que os backups so executados, quanto para
a escolha dos dados que devem ser includos no backup. Como regra geral, temos que, em
sistemas nos quais h grande atividade por parte dos usurios, os diretrios de trabalho
devem ser salvos diariamente.
J sistemas de arquivos que so modificados com menor frequncia (o diretrio /usr, por
exemplo) podem ser salvos apenas uma vez por ms. Quando houver necessidade de
operao ininterrupta do sistema, a operao de backup deve ser planejada de modo a se
adequar ao regime e horrio de uso do sistema e interferir o mnimo possvel na rotina dos
usurios. razovel supor que o tipo de dispositivo a ser utilizado nos backups deva ser
selecionado em funo das condies anteriores, embora isso nem sempre seja possvel,
devido a limitaes oramentrias. O administrador de sistemas ter de dispor de todo o
seu conhecimento para fazer o melhor uso possvel dos equipamentos disponveis, sem
colocar em risco a segurana das operaes da empresa.
Aqui vale lembrar que, independentemente do procedimento normal de backup, administradores de sistemas experientes adquirem o bom hbito de realizar backup regular de
dados e programas que sero manipulados em operaes de reconfigurao do Sistema
Operacional, de reorganizao de diretrios e parties ou de atualizao de software. Isso
porque sempre existe a possibilidade de se cometer erros, que podem levar perda de
informaes importantes ou muito trabalhosas para serem recuperadas.
Captulo 5 - Backup
possuir labels que indiquem unicamente o seu contedo. Informaes como a lista dos
nas aplicaes. Se o backup no couber em uma nica mdia, recomenda-se comprar uma
unidade de maior capacidade, utilizar mltiplos dispositivos ou adquirir um rob.
Para minimizar a possibilidade de haver um sistema de arquivos que no possa ser copiado
para uma nica mdia, os administradores devem levar em conta a capacidade mxima da
sua mdia de backup quando forem definir os tamanhos das parties de seus sistemas.
dicamente. Para isso, uma soluo eficaz consiste na execuo de operaes de leitura e
120
recuperao a partir de uma amostra aleatria das fitas armazenadas. Outro exerccio recomendado consiste em explorar alguns cenrios que exijam a restaurao dos dados.
O cenrio de pior caso, com a perda total dos equipamentos, precisa ser estudado. O administrador, nesse caso, deve determinar quanta informao seria perdida e quanto tempo
levaria para tornar o sistema novamente operacional, incluindo o tempo de aquisio de um
novo hardware. necessrio, ento, fazer uma avaliao das respostas obtidas para determinar se elas atendem s necessidades da empresa. Caso contrrio, a poltica de backup
ter de ser revista.
Exerccio de fixao 3 e
Softwares de backup
Qual dos softwares seguintes tambm seria de backup?
11 Bacula;
11 Amavis;
11 Postfix;
11 Dump;
11 Rdiff;
Captulo 5 - Backup
11 Tar.
121
122
Roteiro de Atividades 5
Atividade 5.1 Utilizando tar para fazer backup
A realizao de backups uma tarefa rotineira para o administrador de sistemas. Na prtica
profissional, o backup ser feito em meios de armazenamento de grande capacidade, como
fitas magnticas, dispositivos pticos e storages. Vejamos como ele pode ser feito com o
comando tar, utilizando um pen drive.
1. Entre no sistema utilizando sua conta. Faa o backup do seu diretrio de trabalho no pen
drive fornecido pelo instrutor. Para isso, utilize o comando tar. Se necessrio, formate e
crie um sistema de arquivos no pen drive. Verifique e anote o tamanho do arquivo gerado
pelo backup.
2. Apague os arquivos do seu diretrio de trabalho e utilize o comando tar com a opo
adequada para restaurar os arquivos a partir da cpia feita no pen drive. Verifique se a
restaurao foi efetuada.
3. Refaa o passo do primeiro item, utilizando agora o comando tar com a opo de
compresso. Verifique e compare a rea ocupada no pen drive com aquela anotada no
primeiro item. Qual o percentual de economia obtido com a cpia comprimida?
diretrio de trabalho no pen drive fornecido. Ao final do backup o dump emite um relatrio. Verifique e anote a rea ocupada no pen drive pelo backup.
2. Utilize o comando restore com a opo t para listar os arquivos salvos no pen drive.
3. Apague um dos arquivos do seu diretrio de trabalho e use o comando restore no modo
interativo (opo i) para restaurar apenas o arquivo apagado, a partir da cpia feita no
pen drive. Verifique se a restaurao foi realizada.
Comandos do modo interativo do restore:
11 add [arg] o diretrio atual ou [arg] acrescentado lista de arquivos a serem extrados.
Diretrios e arquivos na lista de extrao so indicados com *.
11 cd [arg] troca para o diretrio [arg].
11 delete [arg] apaga o diretrio ou o arquivo [arg] da lista de arquivos a serem extrados.
Captulo 5 - Backup
123
o montante geral dos arquivos copiados do mesmo tamanho que o montante dos
arquivos da origem.
voc dever interagir) para fazer o backup do seu diretrio de trabalho no computador
dele utilizando o comando rsync. Voc precisar de uma conta e senha criadas no computador do seu colega.
2. Em seguida, recupere o contedo do backup feito no diretrio /tmp do seu computador e
conseguindo se comunicar com o cliente computador1. Cite dois problemas que podem
estar causando esta falha.
5. O backup completo estava sendo executado em um cliente e foi abortado. Cite dois pro-
seguinte verificou que o backup no foi executado. O que pode ter causado este problema?
124
Captulo 5 - Backup
125
126
6
Conhecer as principais caractersticas associadas manuteno de um servio
de impresso em sistemas Linux, entender o processo de impresso em sistemas
Linux, compreender a diferena entre os softwares gerenciadores de impresso e
conhecer os comandos para configurao e manuteno de um servio de
impresso baseado no CUPS.
conceitos
Introduo
O servio de impresso de arquivos um dos que mais exige ateno e tempo do administrador de sistemas. Alguns profissionais de TI costumam argumentar que instalar, configurar
e manter um servio de impresso no Linux muito mais complexo do que em sistemas
Windows. At pouco tempo atrs, eles no deixavam de ter razo. Instalar uma impressora
costumava ser mais complicado no Linux do que no Windows. Outro agravante era o fato de
que fabricantes de impressoras costumavam desenvolver os drivers dos seus equipamentos
somente para sistemas Windows, por ser este um sistema de maior penetrao no mercado.
Entretanto, o servio de impresso do Linux comeou a se mostrar mais flexvel e fcil de ser
administrado a partir do lanamento do software de gerenciamento de impresso CUPS.
Histrico
Nos primrdios dos sistemas Unix, o servio de impresso era baseado em dois sistemas
projetados na dcada de 1970, para impresso de arquivos texto em impressoras matriciais:
11 Line Printer Daemon (LPD), do BSD.
11 Line Printer System, do System V.
Com o surgimento de novas demandas, entretanto, esse cenrio comeou a mudar. Desenvolvedores de sistemas Linux passaram a promover mudanas nesses dois sistemas, para
que eles pudessem atender s demandas por impresso de arquivos nos mais diferentes
formatos e em dispositivos cada vez mais elaborados, como as impressoras a laser. Com
o passar do tempo, foram surgindo variantes do LPD, com destaque para o Portable Line
objetivos
Servio de impresso
Printer Spooler System (PLP), que mais tarde teve seu nome alterado para LPRng. Esses
127
POSIX
Foi desenvolvido pelo Institute of Electrical and Electronics Engineers (IEEE) e definia um
conjunto comum de ferramentas de linha de comando, assim como uma interface em C para
administrao de impressoras e gerenciamento de impresso. Todavia, foi descontinuado
pelo prprio IEEE.
IPP
Foi desenvolvido pelo Internet Engineering Task Force (IETF) em 1999 e define extenses
ao protocolo HTTP para prover suporte ao servio de impresso. Diferente do POSIX, o IPP
desfruta de ampla aceitao por parte da indstria e est cotado para tornar-se a soluo
padro de impresso em rede para todos os Sistemas Operacionais. Neste cenrio, surgiu o
CUPS, um moderno sistema de impresso para sistemas Unix, que pode ser estendido para
suportar novas impressoras, dispositivos e protocolos, ao mesmo tempo em que mantm a
compatibilidade com as aplicaes existentes.
O sistema de impresso baseava-se em dois sistemas:
11 LPD, do BSD.
11 Line Printer System, do System V.
Inicia-se a busca por uma interface padro para impresso:
11 POSIX, do IEEE.
11 IPP, do IETF.
11 A impresso realizada.
128
Figura 6.1
Arquitetura dos sistemas de impresso.
esteja disponvel.
4. O sistema aplica as opes selecionadas pelo usurio e traduz os dados do arquivo para a
porrios. Caso haja algum erro nesse caminho, o usurio ser notificado pelo sistema.
11 LPRng.
11 CUPS.
Diferentes softwares surgem na tentativa de contornar as limitaes dos antigos sistemas
de impresso. A seleo do melhor sistema depende de caractersticas do ambiente.
Existem sistemas de impresso desenvolvidos para substituir os antigos sistemas baseados
no LPD, como o LPRng. Entretanto, o foco deste captulo ser o CUPS, que alm de ter se
tornado um padro, a melhor opo de sistema de impresso disponvel no mercado para
sistemas Unix.
129
O LPD foi o sistema padro de impresso do Unix BSD durante vrios anos. Quando ele
surgiu, as demandas por impresso eram de arquivos puramente textuais. Com o passar dos
anos, mostrou-se inapropriado para atender s novas demandas por impresso de arquivos
mais elaborados, como imagens, grficos e at mesmo arquivos provenientes de editores de
texto mais sofisticados. Apesar de suas limitaes, o LPD conseguiu disseminar-se por uma
vasta gama de sistemas Unix e, ainda hoje, tem grande utilidade como um sistema bsico de
impresso. Entretanto, para utilizar plenamente o potencial das impressoras modernas,
necessrio o uso de filtros e outros programas complementares. Esses programas existem
e, apesar de sua complexidade, so uma alternativa para quem opta por utilizar o LPD. So
programas que fazem o front-end da aplicao. Os mais conhecidos so o KDEPrint, o GPR e
o XPP. H um nmero considervel de verses do LPD, sendo o GNUlpr uma das verses que
apresenta menos modificaes com relao verso original. Caso o administrador opte por
utilizar um sistema baseado no LPD, recomendvel que utilize o GNUlpr.
Componentes do LPD
O LPD se refere tanto ao daemon quanto a uma vasta coleo de programas que
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 resul-
tantes impressora.
Como j sabido, o LPD foi projetado para ser utilizado em uma poca em que as impressoras eram do tipo matricial e as demandas de impresso eram por arquivos texto.
Pelo esquema mostrado anteriormente, v-se que as necessidades mais complexas de
impresso podem ser atendidas mediante a aplicao de filtros. Para ajudar nesse processo
de filtragem, existem diversos programas, como gs, ppdfilt, ps2ps, mpage e a2ps. A maioria
desses programas faz converses entre diferentes formatos de arquivos. Entretanto, como
se ver, existem alternativas mais eficientes e menos trabalhosas.
130
Protocolo LPD
A RFC 1179 define o protocolo Line Printer Daemon (LPD), criado pelo IETF, que utilizado
pelo servidor LPD e por todos os servidores de impresso de rede utilizados em sistemas
Unix. Esse protocolo utilizado na comunicao entre o servidor e os diversos componentes, como comandos auxiliares e dispositivos. Apesar do protocolo e do servidor de
impresso possurem o mesmo nome, eles no devem ser confundidos.
LPRng
11 Implementao melhorada do LPD.
CUPS
11 Surge como alternativa s diversas implementaes do protocolo LPD.
um novo padro para impresso baseado no protocolo HTTP, que apresenta uma srie de
131
Arquitetura
servidores para gerenciar o ambiente de impresso. Ser visto adiante que possvel reunir
mltiplas impressoras de rede em uma nica classe, de forma a permitir que o usurio
possa direcionar o seu job para uma classe e t-lo impresso na primeira impressora disponvel da classe. Como muitos sistemas de impresso, o CUPS projetado em volta de um
processo central de escalonamento, que gerencia os jobs de impresso, processa comandos
administrativos, prov informaes de status das impressoras para programas locais e
remotos e os repassa aos usurios quando necessrio. A Figura 6.2 apresenta a arquitetura
de funcionamento do CUPS.
Figura 6.2
Arquitetura do
CUPS.
Escalonador
Arquivos de
congurao
132
Comandos BSD
Comandos system V
API do CUPS
Filtros
Imagens
do CUPS
Backends
Escalonador
11 O escalonador um servidor web que gerencia jobs e impressoras.
Arquivos de definio
de impressoras e de
classes
Arquivos PPD
Comandos BSD/System V
O CUPS pode utilizar tanto os comandos do LPD, quanto os comandos do Line Printer
System, do System V, para imprimir um arquivo ou verificar o status de uma impressora,
mantendo compatibilidade com esses sistemas.
Funcionamento do CUPS:
11 API contm funes especficas para enfileiramento dos jobs.
11 Jobs so filtrados antes de serem impressos.
Arquivos de configurao:
11 Arquivos de configurao do servidor HTTP.
11 Arquivos de definio de impressoras e de classes.
11 Arquivos de tipos MIME e de regras de converso.
11 Arquivos PostScript Printer Description (PPD).
q
Captulo 6 - Servio de impresso
Tabela 6.1
Arquivos de configurao do CUPS.
133
Exerccio de fixao 1 e
Verificando os dispositivos suportados
Quais so os dispositivos suportados pelo CUPS?
na verso 1.4.3. A partir dela possvel navegar entre os diversos links e funcionalidades.
134
Gerenciamento de impressoras
Feito atravs da linha de comandos por intermdio da interface web:
http://localhost:631/admin
Classes de impressora:
11 Impressoras so reunidas em grupos.
11 Jobs enviados para uma classe so encaminhados para a primeira impressora livre da
classe.
11 Balanceamento via round-robin adotado.
Classes implcitas:
11 Mltiplos servidores com configuraes idnticas.
11 Sistema tolerante a falhas (redundncia).
11 Criao e remoo de classes e impressoras feitas atravs do comando lpadmin.
11 Cada fila tem um dispositivo e um nome.
11 URI forma de identificao de dispositivo:
22 serial:/dev/ttyS1?baud=115200
22 parallel:/dev/lp1
22 socket://192.168.1.10
Quando um usurio solicita que um arquivo seja impresso em uma determinada classe de
impressora, o sistema direciona esse arquivo para a primeira impressora que se tornar
disponvel e que pertena classe solicitada. feito um esquema de rodzio, utilizando
o escalonamento round-robin para evitar o uso excessivo de apenas um dispositivo.
Nessa mesma linha, o CUPS tambm suporta o conceito de classes implcitas. Com isso,
Figura 6.3
Interface web
do CUPS.
135
Comandos
Todas as funcionalidades oferecidas pela interface web do CUPS podem ser executadas
atravs da linha de comandos. A seguir, so apresentados os comandos utilizados na administrao do CUPS, com suas funcionalidades.
Comando lpadmin
O comando lpadmin utilizado para configurar impressoras e classes. Tambm usado
para adicionar uma impressora ao sistema, ou mesmo para modificar as caractersticas de
alguma impressora existente. Tambm pode ser utilizado para configurar classes e estabelecer quotas de impresso para usurios em relao a uma impressora ou restringir seu uso
para determinados usurios. Os exemplos a seguir mostram como adicionar uma impressora remota e como remover do sistema uma impressora chamada Matricial.
foi desabilitada. Ele apenas no permite que os jobs dessa impressora sejam efetivamente
136
impressos.
Comando enable
Reinicia a impresso de jobs em uma impressora. As impressoras que foram desabilitadas
pelo comando disable continuam aceitando novos pedidos, que so enfileirados e s sero
impressos aps a impressora ser novamente habilitada com o comando enable.
Comando reject
Impede a submisso de jobs para uma impressora. Como foi visto, uma impressora pode ser
desabilitada e continuar aceitando jobs para serem impressos. Em alguns casos, entretanto,
pode ser necessrio fazer com que uma impressora no mais aceite jobs e apenas finalize a
impresso daqueles que esto em sua fila. Uma situao como essa acontece quando necessrio realizar alguma manuteno na impressora e deve-se garantir que ela no estar disponvel para os usurios durante esse perodo. Nesse caso, o comando reject deve ser utilizado.
Comando accept
Faz com que a impressora aceite novamente pedidos de impresso (jobs). Reverte o estado
da impressora que foi modificado pelo comando reject, isto , ela volta a receber jobs de
impresso.
Exerccio de fixao 2 e
Verificando as impressoras definidas no sistema
Qual comando voc utilizaria para verificar as impressoras instaladas no seu computador?
Gerenciamento de clientes
A configurao de clientes Unix-like no CUPS pode ser feita de forma manual ou automtica,
especificando um nico ou mltiplos servidores, ou ainda por intermdio do repasse de
informaes de um cliente para outros clientes.
Configurao manual
11 Executar o comando lpadmin em cada um dos clientes.
137
138
l
Para contornar essa
deficincia, bem como
limitar a quantidade de
clientes que podem
buscar informaes em
um servidor, o
administrador pode
configur-lo para que
apenas um cliente faa
esse servio e repasse
as informaes para os
demais. possvel
implementar essa
limitao inserindo a
diretiva BrowseRelay
no arquivo de
configurao do CUPS
no servidor.
Roteiro de Atividades 6
Atividade 6.1 Definindo uma impressora local
Instale uma impressora que est hipoteticamente conectada interface paralela e que
possui as mesmas caractersticas da impressora definida na atividade 3. Essa impressora
dever se chamar local.
tncia tcnica.
139
140
7
Conhecer em detalhes o conceito de registro de eventos e as principais solues para
gerenciamento de registros de eventos em sistemas Linux; compreender as principais
solues de anlise de registros de eventos, assim como as recomendaes de
segurana pertinentes.
conceitos
Introduo
11 Registro dos eventos que ocorrem em um sistema.
objetivos
Registro de eventos
141
evento, nome do programa que gerou o evento e a mensagem emitida pelo programa. Tais
informaes so de extrema importncia para o administrador de sistemas, auxiliando-o
no s no monitoramento das atividades executadas pelos programas, como tambm na
soluo e preveno de incidentes de segurana e falhas de software e hardware. Neste
captulo, veremos como configurar um sistema Linux para armazenar os diversos registros
de eventos gerados, da maneira mais adequada possvel e de acordo com a estratgia
adotada pelo administrador da rede.
Sysklogd
O pacote sysklogd contm os dois daemons responsveis pelo principal servio de gerenciamento de registros de eventos em sistemas Linux. O syslogd, que prov suporte aos registros de eventos gerados pelo sistema operacional e pelas aplicaes, e o klogd, que prov
suporte aos registros de eventos gerados pelo kernel.
Syslogd
11 Prov suporte a registros de eventos do sistema operacional e das aplicaes.
11 Seu arquivo de configurao /etc/syslog.conf controla os registros que sero armazenados pelo syslogd por meio de regras especficas.
11 Ativa o servio de registro de eventos do sistema.
O daemon syslogd responsvel pelo controle dos registros de eventos do sistema operacional e das aplicaes. Ele prov suporte tanto a sockets do Linux quanto a sockets de
internet, o que o torna capaz de trabalhar com registros de eventos gerados localmente
e em servidores remotos. A principal desvantagem do syslogd que ele no criptografa
os dados que transporta, podendo gerar problemas de segurana se os registros forem
armazenados em um servidor remoto, j que estes podem ser facilmente interceptados e
alterados. Veremos que existem outras verses de syslog que implementam criptografia de
dados, e por isso seu uso recomendado.
142
22 auth,authpriv.info/var/log/auth.log
11 Mltiplos seletores podem executar uma ao em comum.
*.*;auth,authpriv.none -/var/log/syslog
O arquivo /etc/syslog.conf controla os registros que sero armazenados pelo syslogd, por
intermdio de regras especficas. Cada linha desse arquivo deve conter, obrigatoriamente,
os campos no formato:
facilidade.prioridade ao
Os campos facilidade e prioridade juntos so chamados de seletor e devem ser separados pelo caractere .. J o campo ao deve ser separado do campo seletor por um ou
mais caracteres de espao ou tabulao. Um mesmo tipo de facilidade pode armazenar seus
registros em arquivos de log diferentes, dependendo do nvel de prioridade do registro, assim
como um mesmo tipo de prioridade pode armazenar seus registros em arquivos de log diferentes, dependendo da facilidade que gerou o registro, como mostram os exemplos abaixo:
auth,authpriv.info /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* /var/log/mail.log
*.crit /var/log/syslog
O caractere , utilizado para especificar mais de uma facilidade com a mesma prioridade e
o caractere ; para especificar mltiplos seletores (facilidade/prioridade) com uma ao em
comum. A seguir veremos, em detalhes, cada um desses campos.
Facilidade
Utilizada para especificar o tipo de programa que est enviando o registro. Mais de uma facilidade pode ser especificada na mesma linha, separadas por vrgulas. Na Tabela 7.1 podem
ser vistas facilidades utilizadas com maior frequncia. Algumas facilidades, como security,
emitem um som de alerta e enviam uma mensagem para o console, como forma de alertar o
Tabela 7.1
Facilidades.
Nome
Facilidade
auth
authpriv
user
cron
Registros do cron.
ftp
kern
Registros do kernel.
security
syslog
daemon
Prioridade
Utilizada para especificar o grau de importncia de um registro. Os tipos de prioridade
esto listados na Tabela 7.2 em ordem decrescente de importncia. As prioridades tambm
podem ser representadas por nmeros que variam de 0 a 7, onde o nmero 0 corresponde
administrador do sistema.
143
a emerg, o nmero 1 corresponde a alert e assim por diante. Quando uma prioridade
definida em uma regra no arquivo /etc/syslog.conf, as prioridades de maior nvel so automaticamente consideradas. Conjuntos de facilidades e prioridades (seletores) podem ser
agrupados e separados pelo caractere ;.
Prioridade
Grau de importncia
emerg/panic
alert
crit
error/err
Registros de erro.
warning /warn
Registros de aviso.
notice
info
Registros informativos.
debug
Registros de depurao.
none
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
144
Destino
Ao
usurio
arquivo
@servidor
/dev/console
Caracteres especiais
Existem alguns caracteres especiais que podem ser utilizados no arquivo /etc/syslog.conf.
A Tabela 7.4 mostra esses caracteres e seus significados.
Tabela 7.3
Aes.
Funo
Exerccio de fixao 1 e
Exibindo mensagens de eventos nos terminais
O arquivo /etc/syslog.conf controla como e quais eventos gerados pelo sistema operacional e
pelos daemons ativos sero registrados pelo syslogd por meio de regras especficas.
Tabela 7.4
Caracteres
especiais.
Caracteres especiais
145
1. Configure o syslog de seu sistema para enviar os registros dos eventos gerados pela facili-
volte novamente para o primeiro terminal. O que aconteceu? Como voc poderia configurar o syslog de seu sistema para que isso no ocorresse?
Aps executar alteraes em seu arquivo de configurao, no se esquea de
reiniciar o syslogd.
Klogd
11 Prov suporte aos registros de eventos gerados pelo kernel.
respectivas descries.
146
Nvel
Prioridade
Grau de importncia
KERN_EMERG
KERN_ALERT
KERN_CRIT
Mensagens crticas.
KERN_ERR
Mensagens de erro.
KERN_WARNING
Mensagens de aviso.
KERN_NOTICE
KERN_INFO
Mensagens informativas.
KERN_DEBUG
Mensagens de depurao.
O klogd possui tambm a habilidade de definir, por meio dos nveis de prioridade, as mensagens que sero enviadas aos terminais definidos no sistema. Normalmente, atribudo aos
terminais o nvel 7 de prioridade. Sendo assim, qualquer mensagem com nvel de prioridade
Tabela 7.5
Prioridades dos
registros gerados
pelo kernel.
# klogd -c 4
Rsyslog
11 Verso aprimorada do syslog.
$ModLoad imuxsock
$ModLoad imklog
#$ModLoad immark
#$ModLoad imudp
#$UDPServerRun 514
#$ModLoad imtcp
#$InputTCPServerRun 514
# Mdulos
147
# Diretivas Globais
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
Syslog-ng
11 Verso aprimorada do syslog.
Servidor
syslog-ng
148
Banco de dados
syslog
Mensagem syslog
Figura 7.1
Caractersticas do
syslog-ng.
O syslog-ng (syslog new generation) uma verso aprimorada do syslog, que tem como
principais caractersticas:
11 Possibilidade de filtrar os registros de log com base em seu contedo, por meio do uso de
expresses regulares;
11 Capacidade de armazenar assinaturas digitais para cada registro, facilitando a deteco
de modificaes no autorizadas nos arquivos de log;
11 Possibilidade de permitir o fluxo de registros entre servidores, utilizando qualquer porta
TCP. Alm disso, seu esquema de configurao bastante intuitivo e poderoso;
11 Suporte criptografia de dados, utilizando o programa stunnel.
O syslog-ng pode ser configurado para executar um comando caso detecte um padro em
um registro que case com alguma expresso regular, utilizando a diretiva program().
A execuo automtica de programas deve ser bem planejada, pois pode sobrecarregar o
servidor ou at mesmo causar indisponibilidades, j que um mesmo tipo de registro pode
ser gerado diversas vezes em um pequeno intervalo de tempo e a execuo do programa
associado a este pode ser demorada.
A sintaxe utilizada na configurao do syslog-ng completamente diferente da sintaxe utilizada pelo syslog, sendo baseada em quatro elementos descritos na Tabela 7.6:
Descrio
source
destination
filter
log
Os elementos source, destination e filter so criados pelo administrador separadamente e posteriormente associados em uma ao representada pela diretiva log.
possvel especificar mais de uma origem para um determinado destino ou mais de um
destino para mensagens de uma determinada origem, numa mesma regra.
Para que o syslog-ng seja definido no sistema como o daemon padro de gerenciamento
de registros de eventos necessrio desinstalar sysklogd ou rsyslog (o que estiver instalado). Alm disso, preciso remover quaisquer configuraes referentes a eles que estejam
associadas ao logrotate. Em seguida, deve ser criado o arquivo /etc/logrotate.d/syslog-ng com
a sintaxe adequada para que os arquivos de log criados pelo syslog-ng sejam rotacionados
de modo correto.
Tabela 7.6
Sintaxe do syslog-ng.
Elemento
149
# Configuraes globais
options {
owner(root);
group(root);
perm(0640);
dir_perm(0740);
create_dirs(yes);
use_fqdn(no);
keep_hostname(yes);
use_dns(no);
sync(0);
};
# Seo Source
source src { unix-stream(/dev/log); internal(); };
source kernsrc { file(/proc/kmsg); };
# Seo Destination
destination authlog { file(/var/log/auth.log); };
destination syslog { file(/var/log/syslog); };
destination cron { file(/var/log/cron.log); };
destination daemon { file(/var/log/daemon.log); };
destination kern { file(/var/log/kern.log); };
destination mail { file(/var/log/mail.log); };
destination all { file(/var/log/all.log); };
150
# Seo Filters
filter f_authpriv { facility(auth, authpriv); };
# Seo Log
log { source(src); filter(f_authpriv); destination(authlog); };
log { source(src); filter(f_syslog); destination(syslog); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_daemon); destination(daemon); };
log { source(kernsrc); filter(f_kern); destination(kern); };
log { source(src); filter(f_mail); destination(mail); };
log { source(src); destination(all); };
log { source(src); filter(f_debug); destination(debug); };
log { source(src); filter(f_messages); destination(messages); };
log { source(src); filter(f_emergency); destination(console); };
basicamente faz cpias dos arquivos de log em uso, criando novos arquivos que passaro
151
pais parmetros:
11 Periodicidade do rotacionamento.
11 Opo de compactar ou no os arquivos antigos.
11 Nmero de cpias de arquivos anteriores que sero mantidas.
11 Opo de criar ou no novos arquivos de log aps rotacionar os antigos.
O diretrio /etc/logrotate.d contm os arquivos de configurao de rotacionamento dos
arquivos de log individuais para cada daemon do sistema.
O arquivo /etc/logrotate.conf possui as regras utilizadas pelo comando logrotate para realizar
o rotacionamento adequado dos arquivos de log. A seguir, apresentado um exemplo
comentado do arquivo de configurao do logrotate:
delaycompress
152
#/etc/logrotate.d/named
/var/log/named.log {
missingok
create 0644 named named
postrotate
/bin/kill -HUP `cat /var/run/named/named.pid 2> /dev/null` 2> /
dev/null || true
endscript
}
importante enviar um sinal HUP ao daemon que utiliza o arquivo de log que foi
rotacionado, para que no ocorram problemas aps sua rotao. Isso feito utilizando o parmetro postrotate.
Comando logger
11 Permite o envio de registros aos arquivos de log do sistema por meio da linha
de comando.
11 Utilizado geralmente em shell scripts.
11 Utilizado tambm para testar mudanas no arquivo de configurao do syslogd.
O comando logger permite que uma mensagem seja enviada aos arquivos de log do sistema
por meio da linha de comando. Geralmente utilizado em shell scripts desenvolvidos pelo
administrador do sistema. possvel especificar a facilidade, a prioridade e outros parmetros da mensagem. O comando logger tambm pode ser utilizado para testar mudanas
feitas no arquivo de configurao do syslogd. Considere a hiptese de que o administrador
tenha acrescentado a seguinte linha ao arquivo /etc/syslog.conf:
auth.* /var/log/messages
Por intermdio do comando a seguir, esse administrador pode verificar se a alterao feita
por ele surtiu o efeito esperado:
Servidor de logs
11 Centraliza os registros de eventos gerados por todos os servidores da rede.
153
sistema. Uma boa estratgia a ser adotada pelo administrador a instalao de um servidor
dedicado ao armazenamento dos registros de eventos gerados por todos os servidores da
rede. Essa tcnica facilita o gerenciamento, a anlise e a soluo de problemas que ocorram
nos servidores de uma organizao, bem como dificulta a remoo de registros que evidenciem uma suposta invaso.
importante que o administrador de sistemas tenha conscincia de que preciso que
os arquivos de log sejam verificados com frequncia, ou de nada valer a implementao
de um esquema de segurana. Para habilitar o syslogd a receber os registros de eventos
gerados por outros servidores, deve-se inici-lo com a opo -r. Isso pode ser feito editando
o arquivo /etc/init.d/syslog e acrescentando a opo -r na varivel SYSLOGD_OPTIONS, ou
diretamente na linha de comando, caso o syslogd no seja iniciado por intermdio do script
/etc/init.d/syslog. Feita a alterao, o syslogd deve ser reiniciado. A instalao de um servidor
de logs evita que dados importantes sejam perdidos, caso algum servidor da rede seja invadido e tenha seus dados comprometidos.
Matriz do servidor
Log do servidor
Figura 7.2
Servidor de logs.
Host do administrador
auth,authpriv.* @servidor_de_logs
cron.*
@servidor_de_logs
mail.*
@servidor_de_logs
O arquivo /etc/syslog.conf dos servidores clientes tambm deve ser modificado para que
os registros de eventos gerados por eles sejam enviados ao servidor de logs. A sintaxe
# Arquivo /etc/syslog.conf
auth,authpriv.* @servidor_de_logs
cron.* @servidor_de_logs
daemon.* @servidor_de_logs
154
kern.* @servidor_de_logs
mail.* @servidor_de_logs
user.* @servidor_de_logs
Logwatch
11 Gera relatrios personalizados e os envia por e-mail.
instalado no servidor de logs um agente para consolidar os dados provenientes dos diversos
155
# Opes globais
LogDir = /var/log
TmpDir = /tmp
mailer = /usr/bin/mail
MailTo = root
UseMkTemp = Yes
MkTemp = /bin/mktemp
156
Swatch
11 Analisa em tempo real arquivos de log.
# Travamentos no sistema
watchfor /(panic)/
bell
mail suporte@dominio
ignore = /.*/
echo
157
A Tabela 7.7 mostra as aes que podem ser executadas pelo Swatch e suas respectivas
descries:
Ao
Descrio
echo modo
bell nmero
exec comando
pipe comando
mail endereo=email,subject=ttulo
write usurio1:usurio2
throttle hora:minuto:segundo
Logcheck
11 Analisa arquivos de log.
Tabela 7.7
Aes do Swatch.
158
ignore em seus nomes armazenam expresses regulares, que no sero gravadas nos
relatrios gerados pelo Logcheck.
Por padro, o Logckeck envia relatrios automaticamente atravs do cron a cada dois
minutos aps as horas cheias (1:02, 2:02 etc.), mas esse padro pode ser alterado a critrio
do administrador no arquivo /etc/cron.d/logcheck.
Os arquivos de log que so monitorados pelo Logcheck so definidos no arquivo
/etc/logcheck/logcheck.logfiles.Cada linha desse arquivo contm o caminho completo de
cada arquivo de log que ser monitorado.
SYSLOGSUMMARY=0
159
Network Time Protocol (NTP), para evitar inconsistncias nos horrios dos registros dos
eventos gerados pelos diversos servidores, facilitando possveis auditorias em casos de
incidentes de segurana.
4. Recompilar o syslogd, modificando o nome e a localizao do arquivo /etc/syslog.conf,
para dificultar possveis tentativas de apagar registros de invases. Para isso, necessrio ter acesso ao cdigo-fonte do sysklogd. A mudana pode ser feita, alterando, no
arquivo syslogd.c, a linha a seguir:
Deve ser criada uma regra, no firewall local do servidor de logs, que permita o trfego
160
de entrada somente para a porta 514 UDP (syslogd) desse servidor, partindo apenas de
servidores da rede local.
6. No criar contas de usurios no servidor de logs.
7. Fazer um backup dirio do servidor de logs para garantir a integridade, a autenticidade
e a disponibilidade dos arquivos de log, pois, se estes dados forem perdidos por algum
motivo, o administrador ficar sem acesso aos registros de eventos de todos os servidores da rede.
8. recomendvel que o servidor de logs utilize mdulos de segurana como SELinux ou LIDS.
SELinux
Security Enhanced Linux (SELinux) um projeto desenvolvido pela National Security Agency
(NSA) do governo dos EUA, que implementa um sistema de controle de acesso chamado
Mandatory Access Control (MAC). O MAC modifica a forma de acesso aos recursos do
sistema, limitando os acessos dos usurios e das aplicaes, deixando a cargo do sistema
operacional o controle de acesso aos recursos de forma mandatria. As polticas impostas
pelo MAC fornecem um nvel de segurana extra contra acessos no autorizados.
LIDS
Linux Intrusion Detection System (LIDS) um patch para o kernel do Linux que adiciona
funcionalidades de segurana como: Mandatory Access Control (MAC); deteco de port
scanners; proteo contra acessos a arquivos e diretrios (inclusive para o usurio root) e
proteo extra para processos, mdulos e interfaces. Com LIDS possvel restringir qualquer tipo de acesso ao sistema; qualquer tentativa de acesso no autorizada em sistemas
protegidos por ele reportada atravs de e-mails e registros nos arquivos de log.
Exerccio de fixao 2 e
Configurao do syslog
Relacione a configurao do syslog com a descrio do destino definido para as mensagens
de erro:
(A)5 *.err
(B) 5 *.err
destino
(C) 5 *.err
@destino (
(D) 5 *.err
|/destino (
(E) 5 *.err
/destino
Exerccio de fixao 3 e
Vantagens do syslog-ng
(
161
162
Roteiro de Atividades 7
Atividade 7.1 Analisando os arquivos de log do sistema
Nesta atividade, que tambm deve ser feita em dupla, voc acompanhar, em tempo real, os
registros gravados nos arquivos de log. Cada aluno deve executar os passos abaixo em seu
prprio servidor:
1. Configure o syslogd de seu servidor para registrar logins remotos feitos por meio do
anterior. Utilize o comando tail com a opo -f, para verificar em tempo real os registros
gerados pelo syslog no arquivo /var/log/messages.
4. Faa um script que contabilize o nmero de tentativas de login mal sucedidas atravs do
SSH, listando os IPs de origem e o nmero de tentativas feitas por cada IP.
aram login?
3. Qual a maneira mais fcil de identificar um login remoto efetuado em seu computador?
4. Faa um script que mostre o tempo total que cada usurio ficou logado no sistema utili-
163
efeito esperado.
1. Entre em acordo com o seu colega para que um de vocs configure seu servidor como
164
um servidor de logs e o outro configure o servidor para enviar os registros para o servidor de logs.
2. Quem configurou o servidor para enviar registros para o outro deve efetuar login em um
terminal qualquer de seu servidor e logo aps identificar onde foi registrado esse evento
no servidor de logs.
3. Repita os passos anteriores, invertendo as funes dos servidores utilizados na atividade.
4. Cite trs vantagens obtidas com o uso de um servidor de logs.
165
166
8
Compreender os processos de inicializao e de desligamento de um sistema, assim
como as arquiteturas monoltica e modular do kernel.
conceitos
Inicializao do sistema
11 BIOS checa sistema e aciona carregador de primeiro estgio no MBR (512 bytes).
objetivos
167
LILO e GRUB:
168
Sistema Linux
Carrega e inicializa
Aplicaes do espao
de usurio
Kernel Linux
Carregador de boot
Figura 8.1
Carregadores
de boot.
Drivers de dispositivo
Hardware
LILO
11 Pioneiro entre os carregadores de boot.
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.
Conforme foi dito, o programa LILO um carregador de boot, e como tal responsvel pela
169
O arquivo de configurao do LILO (/etc/ lilo.conf ) contm as informaes que ele utiliza
durante a inicializao do sistema. importante frisar que, aps a edio desse arquivo,
necessrio executar o comando LILO para efetivar as mudanas para a prxima inicializao do sistema. possvel informar parmetros do sistema ao kernel por meio do LILO,
tais como a partio de boot e caractersticas de dispositivos instalados, mas que no esto
sendo automaticamente reconhecidos. Para mais informaes, a pgina de manual do LILO
pode ser consultada.
importante frisar que toda vez que for feita uma atualizao manual do kernel, o comando
LILO deve ser executado para que a informao pertinente seja copiada para o MBR.
GRUB
11 Possui mais recursos e est se tornando o gerenciador de boot padro do Linux.
170
TAB, que tambm pode ser utilizada para completar comandos e parmetros, assim
como no shell do Linux. A seguir, so listados alguns dos comandos mais importantes:
22 boot pode ser utilizado para executar o boot a partir de um sistema operacional ou
verso de kernel.
22 chainloader <nome-arquivo> alguns sistemas operacionais como DOS e Windows
armazenam seus gerenciadores de boot na partio em que esto instalados.
atravs deste comando que o GRUB passa o controle do processo de boot para esses
gerenciadores, que por sua vez carregam o sistema operacional selecionado.
Tabela 8.1
Comparativo entre
as notaes utilizadas pelo Linux e
pelo GRUB.
Figura 8.2
Seis estgios do
processo de boot
do Linux.
/dev/hda e /dev/sda
(hd0)
/dev/hda1 e /dev/sda1
(hd0,0)
/dev/hda2 e /dev/sda2
(hd0,1)
/dev/hdb e /dev/sdb
(hd1)
/dev/hdb1 e /dev/sdb1
(hd1,0)
/dev/hdb2 e /dev/sdb2
(hd1,1)
BIOS
MBR
GRUB
Kernel
Kernel
executa /sbin/init
Init
Init
executa programas runlevel
Runlevel
Programas runlevel so
executados de /etc/rc.d/rc*.d/
default=0
timeout=5
171
splashimage=(hd0,0)/GRUB/splash.xpm.gz
hiddenmenu
title Fedora (3.2.8-1.fc16.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-3.2.8-1.fc16.x86_64 ro root=LABEL=/ rhgb
quiet
initrd /boot/initrd-3.2.8-1.fc16.x86_64.img
title windows
rootnoverify (hd0,0)
chainloader +1
Ao compilar um novo kernel manualmente, basta ao administrador criar um novo bloco title
nesse arquivo, colocando os parmetros referentes ao novo kernel. O processo de instalao de um novo kernel pode ser feito de forma a automatizar essa tarefa.
Iniciando o kernel
Funes do kernel:
172
/var/log/dmesg ou /var/log/messages.
Processo init
Funes do init:
11 Inicializa todos os demais processos que implementam os servios do sistema.
11 Define nveis de execuo (run levels) para o sistema.
11 Identifica os processos que devem estar ativos em cada nvel.
11 Arquivo de configurao (/etc/inittab).
Aps o kernel ser inicializado, o processo init ativado. Esse processo direta ou indiretamente responsvel por inicializar todos os demais processos que implementam os servios
disponveis no sistema. Dentre esses processos, pode ser citado o mingetty, que realiza
o controle de login no sistema. Sempre que uma sesso de trabalho encerrada, o processo init reativa o processo mingetty para aquele console virtual. No Linux, seis processos
mingetty so inicializados para os consoles virtuais, que podem ser acessados atravs da
combinao das teclas Alt+F1 at Alt+F6.
O Linux define nveis de execuo (run levels) que identificam o estado atual do sistema. Cada
nvel possui um propsito especfico, que determina o conjunto de processos que devem estar
ativos. Para identificar os processos que devem ser ativados, o init l o arquivo de configurao /etc/inittab. Nesse arquivo, esto todas as informaes sobre os nveis de execuo e os
processos a serem inicializados. Cada linha desse arquivo indica ao init um comando ou script
que deve ser executado. Dificilmente o administrador precisa alterar o contedo do arquivo
/etc/inittab. Entretanto, indispensvel entender como esse arquivo processado.
Arquivo /etc/inittab
11 Executa o script /etc/rc.d/rc.sysinit.
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.
servio. Vale ressaltar que eles so ativados, em ordem crescente, baseada nos nmeros
que formam seus nomes. J os start scripts so responsveis por ativar os processos que
implementam um determinado servio. Tambm so ativados em ordem crescente, baseada
nos nmeros que formam seus nomes. No caso dos nveis de execuo 2, 3 e 5, o ltimo
script executado o S99local, um link simblico para o script /etc/rc.d/rc.local. Esse script
pode ser editado pelo administrador para configurar servios adicionais locais que devem
ser executados durante a inicializao do sistema. importante o administrador utilizar esse
script para evitar a ativao manual de servios, todas as vezes que o sistema for iniciado.
Por fim, o processo init ativa os processos mingetty para cada console virtual.
O nvel de execuo pode ser modificado utilizando o comando telinit, sem precisar editar o
arquivo /etc/inittab. O comando telinit requer um nico parmetro, que o nvel de execuo
desejado. A Tabela 8.2 descreve os nveis de execuo do Linux.
Nvel
Descrio
Desliga o sistema.
Modo monousurio.
No utilizado.
Reinicializa o sistema.
O arquivo /etc/inittab:
11 Define o nvel de execuo padro do sistema.
11 Indica os processos que devem ser iniciados, finalizados ou reiniciados.
11 Indica que aes tomar quando o sistema entra em um novo nvel de execuo.
11 Formato:
22 id:rstate:action:process
A seguir um exemplo comentado do arquivo /etc/inittab:
174
si::sysinit:/etc/rc.d/rc.sysinit
Tabela 8.2
Run Levels.
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
comando
como tratar processo
run levels aplicveis
identicador
6:2345:respawn:/sbin/mingetty tty6
175
Algumas distribuies, como o Ubuntu, substituram o inittab pelo daemon upstart, que
controla o processo de inicializao e finalizao de todos os servios do Linux. As configuraes do upstart ficam no diretrio /etc/init. Neste captulo, no estudaremos o upstart, por
no ter se tornado ainda um padro.
Exerccio de fixao 1 e
Modificando o nvel de execuo com o comando telinit
O comando telinit utilizado para modificar o nvel de execuo do sistema durante uma
sesso de trabalho.
1. Como esse comando pode ser utilizado para fazer um shutdown do sistema?
2. Utilize o comando telinit com o parmetro adequado para reinicializar o sistema.
Shutdown
11 Sua funo desligar ou reinicializar o sistema de forma correta.
176
Exerccio de fixao 2 e
Desligando o sistema com o comando shutdown
O comando shutdown normalmente utilizado quando se quer fazer uma parada programada do sistema. Aps inicializar o sistema e fazer o login com a conta root, execute as
atividades a seguir:
1. Utilizando o comando shutdown, programe a parada do sistema de modo que ela ocorra
cuo do comando, enviando a mensagem Ser executada uma parada no sistema para
manuteno daqui a um minuto. Por favor, salve seus dados e se deslogue do sistema.
4. Verifique se a mensagem de shutdown apareceu no seu terminal e deixe o sistema com-
Arquitetura do kernel
11 Responsvel por reconhecer dispositivos.
de tal forma que suporte apenas os dispositivos efetivamente instalados no sistema, oti-
177
Kernel monoltico
11 Composto por um grande e nico bloco de cdigo.
zao do sistema.
11 Ocupa menos espao em memria.
11 Os mdulos so carregados sob demanda e podem ser removidos da memria aps
um intervalo de inatividade.
11 Utilizado em sistemas operacionais como Linux e FreeBSD.
O conceito de mdulos foi introduzido no Linux com o objetivo de otimizar o uso da
memria, j que os mdulos s so carregados em memria quando necessrio. Alm
disso, o cdigo do kernel se torna menor quando os componentes do sistema so compilados como mdulos. Esses mdulos so geralmente drivers de dispositivos e podem ser
carregados em memria dinamicamente quando forem solicitados por algum dispositivo.
Assim, podemos manter no mesmo kernel componentes permanentemente habilitados de
forma esttica e componentes dinamicamente configurados como mdulos. Os mdulos,
apesar de no fazerem parte do mesmo cdigo do kernel, so executados em seu espao
de memria (kernel-space). Dessa forma, mesmo oferecendo suporte a mdulos, o kernel
monoltico continua sendo nico e centralizado. Os mdulos podem ser removidos da
memria aps um intervalo de tempo de inatividade.
Mdulos do kernel
178
11 modinfo: utilizado para exibir informaes a respeito de um mdulo, como sua locali-
179
O cdigo-fonte do kernel fica localizado por padro no diretrio /usr/src/linux, que apenas
um link simblico para o diretrio /usr/src/linux-x.y.z, onde x.y.z indica a verso do kernel.
Nesse diretrio, o arquivo .config contm as informaes sobre a configurao dos componentes do kernel. Este arquivo possui diversas variveis que definem se um determinado
componente ser esttico, quando o valor da varivel y, ou modular quando o valor da
varivel m. Um componente pode ser desabilitado se a varivel que o representa estiver
comentada. O arquivo /usr/src/linux/.config pode ser modificado diretamente atravs de um
editor de texto. No entanto, o comando make pode ser utilizado para alterar o arquivo .config
simplificando a configurao dos componentes do kernel. O comando make pode ser utilizado de trs formas para configurar o kernel. A primeira delas utilizando o target config,
conforme mostrado a seguir:
# make config
Esse comando executa, em modo texto, um script que solicita a configurao de cada componente do kernel. Os componentes so apresentados linha a linha, obrigando o administrador a configurar todos eles, um de cada vez. O segundo mtodo para configurar o kernel
atravs do target menuconfig, conforme apresentado a seguir:
# make menuconfig
Esse comando executa, ainda em modo texto, um script baseado em menus, que permite
ao administrador configurar os componentes do kernel. Os componentes so apresentados
em menus divididos por categorias e podem ser selecionados de acordo com a necessidade
do administrador. Os componentes podem ser includos como mdulos ou integrados ao
kernel, ou ainda excludos, de acordo com a legenda apresentada na interface. Assim, como
no mtodo anterior, esse mtodo no requer a existncia de um ambiente grfico. Por fim,
um terceiro mtodo para configurar o kernel atravs do target xconfig, conforme apresentado a seguir:
# make xconfig
Esse mtodo baseia-se no ambiente grfico X-Window System, tornando bastante intuitiva
a configurao dos componentes. Se o administrador possui um ambiente grfico instalado
no seu sistema, esse o mtodo mais indicado para se configurar o kernel. Nele, os componentes so listados em diferentes nveis de menu e podem ser selecionados atravs do
mouse. Os componentes podem ser includos como mdulos ou integrados ao kernel, ou
ainda excludos, de acordo com a legenda apresentada na interface. Aps a configurao
dos componentes, deve-se clicar no boto Save and Exit para criar ou atualizar o arquivo de
configurao /usr/src/linux/.config e sair do programa de configurao do kernel.
Opes de componentes
180
Existem diversos componentes que podem ser configurados no kernel. Nos mtodos
make menuconfig e make xconfig, a opo help pode ser utilizada para mostrar detalhes
sobre o significado de cada componente. A seguir, sero comentadas apenas as principais
opes de componentes, organizadas de acordo com os menus mostrados nos mtodos
make menuconfig e make xconfig.
11 Enable loadable module support: permite a configurao de caractersticas dos
mdulos e habilita a utilizao de componentes modulares no kernel. Se essa opo for
desabilitada, no ser possvel habilitar componentes como mdulos.
11 General setup: o conjunto de opes apresentado permite configurar componentes de
baixo nvel. Por exemplo, a opo Networking support habilita a configurao dos mdulos
de rede, e a opo Bus options inclui os mdulos que permitem ao kernel funcionar em
plataformas com barramento PCI.
11 Character devices: as opes disponveis permitem configurar suporte a terminais virtuais, portas seriais, portas paralelas etc.
11 Block devices: as opes apresentadas permitem a configurao de diferentes tipos de
discos rgidos, CD-ROMs, unidades de fita magntica etc.
11 Networking options: o conjunto de opes est relacionado com a habilitao de protocolos de redes e suas funcionalidades. Por exemplo, as opes TCP/IP networking e The
IPX protocol habilitam a famlia de protocolos TCP/IP e o protocolo IPX de redes Novell,
respectivamente. Para a famlia de protocolos TCP/IP, possvel habilitar funcionalidades
como multicast e roteamento avanado, entre outras.
11 SCSI device support: as opes apresentadas permitem a configurao de diferentes
tipos de dispositivos SCSI, como discos rgidos, CD-ROMs e unidades de fita magntica.
11 Network device support: permite habilitar suporte a diversas tecnologias de rede como
Ethernet, WLAN, PPP, WiMAX, FDDI, ATM, Fibre Channel etc.
11 Filesystems: o conjunto de opes permite a configurao do sistema de quotas e o
suporte aos diferentes tipos de filesystems (ext2, ext3, ext4, Raiserfs, XFS, NTFS etc).
Compilando o kernel
11 preciso ir ao diretrio /usr/src/Linux.
# make clean
# make bzImage
O comando make clean remove arquivos existentes, decorrentes de compilaes anteriores
22 # make modules
181
# make bzdisk
Em caso de falha na inicializao com o novo kernel, utilizando o disquete de boot, basta
retir-lo e reinicializar o sistema.
Componentes modulares
Se o novo kernel tem componentes modulares em sua configurao, o administrador
precisa compilar e instalar esses mdulos utilizando os comandos make modules e make
modules_install, respectivamente.
# make modules
# make modules_install
O tempo gasto no processo de compilao do kernel varia de acordo com o hardware
utilizado e geralmente no dura mais do que alguns minutos. importante ressaltar que
a incluso de novos componentes modulares em um kernel operacional no requer a sua
compilao. O administrador precisa apenas definir a configurao dos componentes utilizando os comandos make menuconfig ou make xconfig, e em seguida, executar os comandos
make modules e make modules_install.
Instalando o kernel
11 # make install
do arquivo do novo kernel poderia ser vmlinuz-3.2.8.new. Alm disso, ele teria que fazer as
182
# make install
Esse comando executa o script /usr/src/linux/arch/x86/boot/install.sh, que copia a imagem
do novo kernel e os arquivos associados para o diretrio indicado, geralmente /boot. Em
seguida, preciso gerar a imagem initrd utilizando o comando:
Em outras distribuies, a imagem initrd pode ser gerada com o comando mkinitrd. Aps isso,
o arquivo de configurao do gerenciador de boot deve ser atualizado com as novas imagens.
Habilitando o kernel
Checagem da instalao por parte do administrador:
11 LILO: /etc/lilo.conf.
11 GRUB: /boot/grub/grub.cfg.
Manuteno do kernel original para se proteger de erros. Se o carregador de boot for o
LILO, necessrio atualizar o MBR, atravs da execuo do comando lilo v.
Embora os comandos executados no passo anterior j tratem de fazer as configuraes
necessrias para o sistema inicializar utilizando o novo kernel gerado, importante que o
administrador se certifique de que as modificaes foram feitas de forma correta. Na instalao de um novo kernel, interessante que o original seja mantido como proteo contra
possveis erros que possam ocorrer durante a inicializao com o novo kernel. Essa proteo
pode ser obtida na configurao do seu carregador de boot.
Apresentamos a seguir os arquivos de configurao do LILO e do GRUB, antes e aps a instalao de um novo kernel. Assim, consideramos que o arquivo /etc/lilo.conf possui, originalmente, o seguinte contedo:
prompt
timeout=50
default=Linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
image=/boot/vmlinuz-3.2.8
label=Linux
initrd=/boot/initrd-3.2.8.img
append=root=LABEL=/
As cinco ltimas linhas formam a seo associada verso original do kernel, que utiliza o
arquivo vmlinuz-3.2.8 e possui o rtulo Linux. Esse rtulo exibido durante a inicializao
do sistema para que o administrador possa informar ao LILO o sistema operacional que
deve ser ativado. Aps a instalao, o administrador deve checar se foi includa uma nova
seo ao final do arquivo para descrever o novo kernel, conforme mostrado a seguir:
prompt
timeout=50
read-only
183
default=Linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
# Kernel novo
image=/boot/vmlinuz-3.2.8custom
label=Linux-3.2.8custom
initrd=/boot/initrd-3.2.8custom.img
read-only
append=root=LABEL=/
# Kernel antigo
image=/boot/vmlinuz-3.2.8
label=Linux
initrd=/boot/initrd-3.2.8.img
read-only
append=root=LABEL=/
Note que foi criada uma nova entrada no arquivo, mas foi mantida a verso antiga do kernel
como padro do sistema. Isso permite que o administrador teste a nova verso e s a defina
como padro aps verificar o seu funcionamento. H duas formas de se alterar a verso
padro: a primeira delas modificando o valor da varivel default para o label do novo
kernel e a segunda trocar o valor da varivel label dos dois kernels, um pelo outro. Em
seguida, necessrio atualizar o LILO executando o comando seguinte:
# lilo v
No caso do GRUB, vamos assumir que o arquivo de configurao, originalmente, tivesse o
seguinte contedo:
default=0
timeout=30
splashimage=(hd0,0)/GRUB/splash.xpm.gz
title Red Hat Linux
root (hd0,0)
kernel /boot/vmlinuz-3.2.8 ro root=/dev/hda3
initrd /boot/initrd-3.2.8.img
Aps a instalao do novo kernel, o arquivo deve ficar com o seguinte contedo:
184
default=1
timeout=30
splashimage=(hd0,0)/GRUB/splash.xpm.gz
title Red Hat Linux (custom)
root (hd0,0)
kernel /boot/vmlinuz-3.2.8custom ro root=/dev/hda3
initrd /boot/initrd-3.2.8custom.img
title Red Hat Linux
root (hd0,0)
kernel /boot/vmlinuz-3.2.8 ro root=/dev/hda3
initrd /boot/initrd-3.2.8.img
Novamente, o script cria uma entrada para o novo kernel, mas no altera o kernel padro.
Entretanto, diferente do LILO, no preciso executar nenhum comando aps alterar seu
arquivo de configurao.
Testando o kernel
11 Reinicializar o sistema utilizando o novo kernel.
11 Em caso de problemas:
22 Verificar se o LILO foi atualizado com o comando lilo -v.
22 Reativar kernel antigo.
11 Se tudo estiver certo:
22 Remover entrada do antigo kernel do arquivo de configurao do carregador de boot.
22 Remover a imagem do antigo kernel e a imagem antiga initrd.
Aps as devidas verificaes, o sistema pode ser reinicializado utilizando o novo kernel.
Se o sistema no inicializar ou apresentar problemas enquanto estiver operacional, o
administrador poder reinici-lo com o kernel antigo, selecionando-o durante a inicializao. No momento em que o novo kernel mostrar-se estvel, basta remover a seo
do arquivo /etc/lilo.conf ou /boot/grub/grub.cfg associada ao kernel antigo e remover sua
185
186
Roteiro de Atividades 8
Atividade 8.1 Usando dmesg para visualizar as mensagens do boot
Utilize o comando dmesg para listar novamente as mensagens que o Linux apresentou na
tela durante o processo de boot do sistema. A partir de que etapa do boot as informaes
passaram a ser registradas?
modo monousurio?
3. Chaveie o sistema para o modo monousurio.
4. Explique o processo pelo qual o sistema passou do modo multiusurio para o modo
monousurio.
5. Verifique os processos que esto em execuo no sistema neste momento.
6. Retorne para o modo multiusurio e torne a verificar os processos em execuo. Cite pelo
menos trs que no estavam ativos quando o sistema se encontrava no modo monousurio.
instalados no sistema.
2. Abra o configurador grfico do kernel (xconfig).
187
3. Em seguida, configure a opo de suporte ao protocolo IPX (The IPX Protocol), localizada
em Networking Support/Networking Options. Defina esta opo de forma que ela fique
integrada ao kernel, e no como um mdulo.
4. Salve as modificaes feitas e saia do configurador. Compile o kernel tomando todas as
medidas de segurana necessrias. Releia a teoria para obter detalhes sobre como compilar o kernel.
5. Enquanto voc espera pelo trmino da compilao, leia a parte de procedimentos opera-
cionais que trata do livro de ocorrncias do sistema. Por que importante registrar nesse
livro esta compilao do kernel?
6. Instale o novo kernel e verifique se o arquivo de configurao do carregador de boot
Se o carregador de boot for o LILO, o comando lilo -v deve ser executado antes de
reiniciar o sistema.
9. Reinicie novamente o computador com o kernel antigo.
188
9
Conhecer os aspectos de segurana bsica do sistema e entender a importncia da
sua monitorao e da antecipao de aes; conhecer o esquema de autenticao
de usurios em um sistema Linux e os algoritmos de criptografia do tipo one-way.
conceitos
Segurana bsica
11 Analisadores de senhas.
11 Contas compartilhadas.
11 SUID e SGID.
11 Atualizao de software.
Procedimentos operacionais:
11 Poltica de utilizao de recursos.
11 Atendimento a usurios.
11 Controle de recursos computacionais.
11 Diagnstico de falhas.
11 Rotina de backup.
Os aspectos sobre segurana bsica e procedimentos operacionais que sero tratados neste
captulo dizem respeito apenas queles que tm alguma correlao com o que foi visto nos
captulos anteriores. Aspectos como o uso de senhas no triviais, o uso de contas compartilhadas e a remoo de contas desativadas, por exemplo, j foram discutidos anteriormente.
Outros aspectos, no entanto, ainda no foram mencionados, como o uso de criptografia e
os servios de rede desnecessrios, tpicos que sero tratados com maior profundidade
nos mdulos de administrao mais avanados. Ser ressaltada a importncia da monitorao do sistema e da antecipao de aes. Algumas questes bsicas de segurana, com
as quais o administrador de sistemas deve se preocupar sempre, independentemente do
tamanho de sua rede, so apresentadas a seguir:
objetivos
189
11 Manter o sistema em um local fisicamente seguro. De nada adianta proteger o sistema contra
invases atravs da rede e mant-lo em um ambiente cujo acesso no seja controlado.
11 No criar contas de usurios desnecessrias e sempre excluir as contas que no estejam
mais sendo utilizadas. Contas fantasmas podem se transformar em um canal para crackers.
11 Evitar compartilhar contas de usurios comuns e, principalmente, a conta do usurio
root, facilitando a monitorao das atividades do sistema.
11 Sempre que possvel utilizar ferramentas que suportem criptografia para transmitir e
receber dados atravs da rede. O Secure Shell (SSH) um exemplo de programa que
criptografa os dados antes de transmiti-los atravs da rede.
11 Evitar a ativao de servios de rede desnecessrios. Se um determinado sistema no
o servidor de e-mail da instituio, no h motivos para ativar o daemon postfix, por
exemplo. Cada servio disponibilizado por um servidor uma possvel porta de invaso
para os crackers.
11 Configurar corretamente os arquivos /etc/hosts.allow e /etc/hosts.deny (discutidos no captulo de introduo arquitetura TCP/IP para a plataforma Linux).
11 Utilizar firewalls para controlar o acesso aos diversos equipamentos da rede e prover o
servio de proxy para controlar o acesso dos usurios web. Estes dois servios ajudam
a manter a rede mais segura. Nos demais mdulos de administrao de sistemas Linux,
sero discutidos outros aspectos de segurana relativos a redes e servios.
Tripwire e Nessus.
Chkrootkit
11 Utilizado para detectar rootkits.
190
detectar algum indcio de invaso ao sistema. A verso atual do chkrootkit detecta cerca de
60 tipos de ameaas.
Tripwire
11 Monitora o sistema para garantir sua integridade.
Nessus
Utilizado para detectar e corrigir vulnerabilidades e dificultar ao mximo a ao dos crackers.
Programa que utiliza a arquitetura cliente-servidor, onde o servidor executa uma varredura
no cliente, em portas TCP e UDP pr-configuradas, em busca de vulnerabilidades. Mesmo
que um servio no esteja utilizando sua porta padro, ser examinado pelo Nessus, desde
que a porta em que esteja sendo executado tenha sido configurada para ser analisada. Como
pr-requisito, o pacote Nmap deve estar instalado no sistema para que o Nessus possa ser
utilizado. Para isso preciso antes criar um usurio em sua base de dados. O administrador
pode definir os clientes que sero auditados. Aps a concluso da auditoria apresentado um
relatrio com todas as vulnerabilidades encontradas nos clientes auditados.
Analisadores de senhas
11 Uso da criptografia one-way.
habilitadas. Em qualquer um desses dois arquivos, as senhas so armazenadas criptografadas por algoritmos de criptografia publicamente disponveis. No entanto, a segurana no
comprometida, uma vez que esses algoritmos so do tipo one-way, e por isso no permitem decifrar a senha criptografada. O Linux utiliza algoritmos one-way j que as senhas
nunca precisam ser decifradas. Na prtica, a senha fornecida pelo usurio criptografada e
comparada com a senha criptografada armazenada. Se essas senhas so idnticas, o acesso
ao sistema permitido. Assim, as senhas so armazenadas de forma segura e caso uma
senha seja quebrada, no ser por falha do algoritmo de criptografia, mas do usurio, que
utiliza uma senha fcil de ser quebrada. Este o motivo pelo qual no se deve utilizar senhas
simples. O uso de senhas bvias, como datas de aniversrio e nomes de membros da famlia
uma das principais falhas de segurana a que os sistemas esto sujeitos. Uma senha segura
deve conter caracteres maisculos e minsculos, nmeros e ainda smbolos especiais. Isso
dificulta muito a tarefa dos crackers, que geralmente utilizam um arquivo contendo diversas
senhas, chamado dicionrio, para tentar quebrar senhas de usurios.
191
A melhor maneira de evitar que os usurios do sistema escolham senhas fceis de ser quebradas empregar a mesma tcnica utilizada pelos crackers, configurando os sistemas de
modo que as senhas sejam confrontadas contra um dicionrio antes de serem efetivamente
armazenadas. Caso a senha informada esteja cadastrada no dicionrio, o sistema envia uma
mensagem ao usurio informando que a senha escolhida muito fcil de ser quebrada. Em
vez de dicionrios, o administrador pode tambm definir polticas de senhas, como exigir que
todas as senhas tenham caracteres maisculos, minsculos, nmeros e caracteres especiais.
Uma vulnerabilidade extremamente grave quando sua explorao permite ao cracker
invadir o sistema obtendo os privilgios do usurio root. Esse tipo de vulnerabilidade deve
ser identificado e resolvido com a mxima prioridade. Para minimizar as chances de crackers
descobrirem a senha do usurio root, o administrador precisa mud-la periodicamente.
Outro cuidado adicional manter no arquivo /etc/securetty apenas os nomes dos terminais seguros a partir dos quais o usurio root pode fazer login no sistema. Para os demais
terminais, somente ser possvel ter privilgios de root, primeiramente acessando o sistema
como um usurio convencional e depois se tornar root atravs do comando su.
Contas compartilhadas
11 Utilizadas por diversos usurios.
Exerccio de fixao 1 e
Identificando senhas fracas
192
Uma das formas de verificar se seu sistema atende s recomendaes bsicas de segurana
utilizar os programas quebradores de senha. Neste exerccio, utilizaremos um desses
programas para mostrar seu funcionamento. As etapas da execuo so descritas a seguir:
1. Obtenha e instale o programa quebrador de senhas John. Em caso de dvidas quanto a
considere necessrio, acrescente palavras que julgue imprprias para uso em senhas.
SUID e SGID
SGID:
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.
ser executados com privilgios de root os servios em que esse requisito for obrigatrio.
RPM
11 Gerenciador de pacotes utilizados nas distribuies Red Hat, Fedora e CentOS.
Nesse caso, o administrador, primeiramente, deve instalar todas as dependncias necessrias. No entanto, se o administrador tentar remover um pacote dependente de outro pacote,
a remoo no ser realizada e uma mensagem na tela informar que o pacote no pode ser
removido porque utilizado por outro pacote instalado no sistema. O RPM tambm verifica
se algum arquivo de configurao ser modificado durante o processo de instalao de
um pacote. Havendo a necessidade de modificao de um arquivo existente, o RPM salva a
verso corrente e imprime uma mensagem na tela informando sobre a alterao.
Periodicamente, novas verses de pacotes RPM so lanadas para corrigir bugs e problemas
de segurana. O administrador deve verificar, com frequncia, na pgina da distribuio
utilizada, o lanamento de novas verses de pacotes. Na verdade, os sistemas baseados em
194
pacotes RPM (como Red Hat, CentOS e Fedora) possuem um mecanismo ainda mais poderoso para manter o sistema sempre atualizado. Trata-se do YUM, um gerenciador de pacotes
baseado no RPM, que ser descrito a seguir.
Exerccio de fixao 2 e
Gerenciador de pacotes RPM
1. Para instalar um software qualquer, qual seria a opo a ser utilizada junto com o geren-
ciador RPM?
2. Para instalar um software qualquer e mostrar detalhes da instalao, qual seria a opo a
YUM
11 Gerenciador de pacotes utilizados em distribuies como Red Hat, Fedora e CentOS.
195
APT
11 Gerenciador de pacotes utilizado em distribuies como Debian e Ubuntu.
Exerccio de fixao 3 e
Gerenciador de pacotes APT
1. Qual a finalidade do comando apt-get install nome_pacote?
2. Qual a diferena entre apt-get upgrade e apt-get dist-upgrade?
3. Qual o gerenciador de pacotes da distribuio Debian?
4. O que faz o comando apt-cache?
5. O que faz o comando apt-cdrom?
6. Qual a diferena entre aptitude e apt-get?
7. O que um Mirror?
Procedimentos operacionais
Atividades do administrador de sistemas:
11 Manter os sistemas atualizados, seguros e operacionais.
11 Implementar as polticas de uso de recursos.
11 Prestar atendimento aos usurios.
11 Trabalhar de forma proativa.
11 Registrar informaes relevantes, independente da forma como realizado o registro.
Como foi visto, o trabalho do administrador de sistemas abrange desde atividades rotineiras
e bem definidas, como fazer cpias de segurana (backups), at atividades eventuais e
imprevisveis, como diagnosticar a causa do baixo desempenho de um servidor.
196
Uma caracterstica comum a todas essas atividades que elas afetam, direta ou indiretamente, a produtividade dos usurios do sistema, e consequentemente a produtividade da
instituio a que o sistema atende. Desse modo, o administrador de sistemas precisa utilizar
sempre as prticas de administrao mais adequadas para os objetivos propostos pela instituio. Tal necessidade pressupe que o administrador conhea os objetivos da instituio
e de seus usurios, os sistemas que administra e sua rea de atuao. Alm disso, deve ser
capaz de trabalhar em equipe, de forma responsvel e organizada.
Focaliza-se, aqui, o ltimo dos atributos relacionados, no que diz respeito ao trabalho
de forma organizada, reunindo recomendaes e propondo modelos de procedimentos,
normas e formulrios para apoiar o administrador em suas atividades. Administradores
que conseguem organizar seu trabalho so muito mais produtivos e efetivos em suas aes,
resultando em sistemas com maior tempo de disponibilidade e melhor desempenho, e o
que mais importante, com usurios satisfeitos. Quando o administrador no consegue se
organizar, ele opera de forma reativa e o resultado um interminvel apagar de incndios.
O que est aqui descrito no deve ser entendido como a palavra final sobre as prticas de
administrao de sistemas, mas como um ponto de partida para ser adaptado s condies
locais de cada instituio e aperfeioado pelo administrador no seu dia a dia. Inicialmente,
o administrador deve utilizar somente o que lhe parecer mais til e introduzir as demais
prticas medida que perceber sua necessidade. O registro dos dados sugeridos nas
prticas aqui descritas pode ser feito tanto em meio eletrnico quanto impresso, com um
layout requintado ou em estilo checklist. Esse no o foco da discusso, pois no importa
se o administrador vai usar caneta e papel, editor de textos, planilhas, banco de dados ou
alguma ferramenta especializada. O importante criar o hbito de registrar, de forma organizada e sistemtica, as intervenes realizadas no sistema.
197
Entende-se por recursos computacionais o conjunto de ativos de TI, formados por servidores,
desktops, laptops, equipamentos de conectividade, dispositivos de hardware, cabeamento,
softwares diversos, links de comunicao de dados, entre outros, que so responsveis por
proverem os servios de computao, comunicao e informao da instituio.
Campo
Caracterizao do uso
Tabela 9.1
Caracterizao do
uso de recursos
computacionais.
de TI da instituio.
Para ser efetivada, a incluso de um novo usurio deve ser acompanhada de um termo de responsabilidade, em que o futuro usurio declara sua concordncia com os termos e condies
de uso estabelecidas pela instituio e da assinatura de seu superior imediato. Um exemplo
simples de termo de responsabilidade apresentado na Tabela 9.2.
198
Dados cadastrais
Departamento/Setor
Cargo/Funo
Telefones de contato
Endereo eletrnico
10
dos sistemas.
22 Formato simples e de fcil acesso (eletrnico).
11 Descobrir as necessidades dos usurios.
11 Tratar de problemas de inadequao de recursos.
11 Promover treinamento por meio da equipe de suporte.
11 Respeitar o usurio e suas necessidades.
11 Recursos computacionais so meios e no fins.
11 Fazer checagem peridica do ndice de satisfao dos usurios.
11 Identificao de falhas no atendimento.
11 No comprometimento das atividades fim da instituio.
Visando facilitar o trabalho do novo usurio, o administrador de sistemas deve disponibilizar, em forma impressa e eletrnica, as informaes bsicas sobre as caractersticas e condies de uso dos sistemas sob sua responsabilidade. De nada adianta ter um sistema muito
bem organizado se os usurios no esto sendo bem atendidos nas suas necessidades.
Os usurios so os clientes, e como clientes precisam ser ouvidos e respeitados, mesmo
quando suas expectativas sejam inadequadas para a realidade da instituio. Quando se
trata de instituies com uma alta taxa de rotatividade de usurios, como o caso de instituies de ensino e pesquisa, essas informaes devem possuir formato simples e resumido
e serem disponibilizadas em local de fcil acesso.
Para pensar
Cabe ao administrador do sistema, em ltima instncia, tentar descobrir as reais
necessidades do usurio e decidir como pode melhor atend-lo. Se o problema
de desconhecimento dos recursos existentes e de como utiliz-los, o usurio deve
ser treinado, o que pode ser feito pela prpria equipe de suporte, ou com a ajuda
de outros usurios experientes. Caso o problema seja de inadequao dos recursos
computacionais existentes para o fim desejado, o administrador pode levar o pro-
Tabela 9.2
Dados cadastrais
dos usurios.
Campo
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.
200
Cadastro de hardware
11 Guardar informaes.
Marca / Modelo
Identificao patrimonial
Nmero de srie
Localizao fsica
Endereo IP
10
Tambm importante que se faa o cadastro de todos os softwares utilizados pela instituio, visando um melhor controle sobre licenas e necessidades de uso, utilizando um
formato semelhante ao da Tabela 9.3.
Diagnstico de falhas
11 Uma das atividades mais desafiantes do administrador.
Figura 9.3
Cadastro de
hardware.
Campo
201
Devido ao seu carter investigativo, o diagnstico de falhas uma das atividades mais
desafiantes dentre as atribuies do administrador de sistemas. O problema que o tempo
gasto no diagnstico de uma falha pode atrasar outras tarefas tambm importantes e
comprometer toda a programao de atividades, tornando o administrador de sistemas um
verdadeiro apagador de incndios. Alm da experincia, um dos instrumentos mais efetivos com que o administrador de sistemas pode contar ao diagnosticar uma falha o Livro
de Registro de Ocorrncias do sistema.
Registro de ocorrncias
O registro de ocorrncias uma atividade importante no dia a dia de um administrador de
sistemas e constitui uma excelente referncia para consultas, identificao de problemas
decorrentes de associaes entre problemas (que sugerem efeitos colaterais), de solues diferentes para o mesmo problema (que sugerem diagnsticos incorretos) etc. O livro de registro
de ocorrncias utilizado para registrar, cronologicamente, as principais aes realizadas pelo
administrador nos diversos sistemas que administra, bem como acontecimentos relevantes
que tenham afetado algum componente da infraestrutura de TI da organizao. A Tabela 9.4
mostra uma relao de informaes que devem fazer parte de um registro de ocorrncias:
Campo
Informaes
Hardware/Software/Servio afetado
Autor do registro
Categoria da ocorrncia (ex.: parada total, parada parcial, atualizao de software, manuteno de hardware, instalao de novo hardware etc.)
Diagnstico provvel
Soluo adotada
10
Autor da soluo
11
Tabela 9.4
Registro de
ocorrncias.
Alm de contribuir para elevar o nvel de qualidade da administrao dos sistemas de uma
instituio, esse tipo de documento facilita o trabalho da equipe de TI durante a resoluo de
Rotina de backup
11 Lembrar que para diferentes instituies h diferentes necessidades de backup.
11 Elaborar o plano de backup.
11 Promover o rodzio dos conjuntos de mdia.
11 Cuidar do correto acondicionamento fsico das mdias.
11 Controlar o acesso ao local de armazenamento das mdias de backup.
202
distintos, para reduzir o risco de perda por catstrofes como incndios e inundaes.
203
204
Roteiro de Atividades 9
Atividade 9.1 Descobrindo a funcionalidade do bit SGID em diretrios
A utilidade do SUID e SGID foi vista desde o Captulo 1. Execute a sequncia de comandos e
siga os seguintes passos:
1. Crie o grupo staff e defina-o como grupo secundrio do seu usurio.
2. Entre no sistema a partir da sua conta e crie um diretrio chamado dir_staff.
3. Verifique a qual grupo pertence o diretrio criado no passo anterior. Modifique-o para
que passe a pertencer ao grupo staff e mude a sua permisso para 2755.
4. No seu diretrio home crie um arquivo chamado arq1. Em seguida, mude para o diretrio
saberia explicar por que os arquivos pertencem a grupos distintos, embora tenham sido
criados pelo mesmo usurio?
6. Quais as vantagens desse esquema?
computador.
2. Utilizando o comando rpm, instale o pacote do chkrootkit.
205
206
10
Conhecer o Webmin, uma ferramenta para administrao de servidores Unix,
os pr-requisitos para sua instalao e suas principais vantagens.
conceitos
Caractersticas gerais
11 Interface web para administrao de sistemas Unix-like.
Quanto segurana
Seu sistema de autenticao de usurios completamente independente do esquema
utilizado pelo sistema. Isso significa que o administrador pode atribuir direitos a um usurio,
por meio do Webmin, sem que esse usurio possua acesso a qualquer tipo de configurao
por intermdio do sistema. Para possibilitar uma comunicao segura entre o servidor web
e o browser cliente, pode ser utilizada uma conexo criptografada, por meio do protocolo
SSL, principalmente em se tratando de atividades com permissionamento de superusurio.
O acesso ao Webmin tambm pode ser restringido a determinadas redes ou IPs especficos.
Captulo 10 - Webmin
objetivos
Webmin
207
Quanto funcionalidade
O Webmin pode atuar como um servidor proxy. possvel estabelecer uma conexo segura
a um firewall e, por intermdio dessa conexo, gerenciar computadores em uma intranet,
atrs desse firewall. Essa funo revela-se muito til nos casos em que se deseja fornecer
servios de gerenciamento a clientes externos. Outra funcionalidade interessante a
oferecida pelo mdulo Custom Commands, que permite ao administrador executar os
seus prprios scripts e ter a sada deles redirecionada a uma pgina web. O Webmin deve
ser executado pelo usurio root, j que a maioria das tarefas de administrao que realiza,
como editar arquivos de configurao ou reiniciar servios, s pode ser executada com os
privilgios desse usurio.
Quanto configurao
Controle de acesso:
Instalao
Pacotes necessrios:
11 Perl.
11 OpenSSL.
11 Net_SSLeay.pm.
11 Webmin.
As principais distribuies do Linux possuem um pacote pr-compilado do Webmin, que
pode ser instalado utilizando um gerenciador de pacotes, que j instala automaticamente
todas as dependncias necessrias. No entanto, nesse captulo, ser apresentado o modo
de instalao manual, utilizando o cdigo-fonte do Webmin e de suas dependncias. Para
acessar o Webmin de forma segura, necessria a instalao de trs dependncias: Perl,
OpenSSL e Net_SSLeay.pm.
208
Perl
O Webmin escrito na linguagem de programao Perl, que deve estar instalada no sistema
para que o Webmin possa ser executado. O Perl j vem instalado por padro na maioria
das distribuies Linux, mas caso seja necessrio instal-lo, basta executar a sequncia de
comandos a seguir para instalar a verso 5.14.2:
# cd /usr/local/src
# wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
# tar -zxvf perl-5.14.2.tar.gz
# cd perl-5.14.2
# ./Configure
# make
# make test
# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador
pode consultar a seo de documentao no site oficial do Perl, em http://www.perl.org.
Feito isso, o diretrio perl-5.14.2 pode ser excludo, assim como o pacote de instalao.
Instalao do Perl:
# cd /usr/local/src
# wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
# tar -zxvf perl-5.14.2.tar.gz
# cd perl-5.14.2
# ./Configure
# make
# make test
# make install
OpenSSL
OpenSSL um pacote que implementa, entre outras caractersticas, os protocolos SSL e TLS,
que permitem a troca de informaes criptografadas entre dois computadores atravs da
rede. Na instalao padro, o binrio do OpenSSL instalado no diretrio /usr/local/ssl/bin.
recomendado manter essa localizao, pois outros programas que utilizam esse binrio
dever ser executada a seguinte sequncia de comandos:
# cd /usr/local/src
# wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
# tar -zxvf openssl-1.0.0g.tar.gz
Captulo 10 - Webmin
# cd openssl-1.0.0g
209
# ./config
# make
# make test
# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador pode
consultar a seo de documentao no site oficial do OpenSSL, em http://www.openssl.org.
Feito isso, o diretrio openssl-1.0.0g pode ser excludo, assim como o pacote de instalao.
Instalao do OpenSSL:
# cd /usr/local/src
# wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
# tar -zxvf openssl-1.0.0g.tar.gz
# cd openssl-1.0.0g
# ./config
# make
# make test
# make install
Net_SSLeay.pm
O Net_SSLeay.pm nada mais do que um mdulo necessrio para a implementao de aplicaes Perl que utilizem funes da biblioteca OpenSSL. o Net_SSLeay que ficar responsvel
pela gerao do certificado digital requerido para o site seguro do Webmin. Para a instalao
da verso 1.45 do Net_SSLeay, dever ser executada a seguinte sequncia de comandos:
# cd /usr/local/src
# wget http://www.cpan.org/modules/by-module/Net/Net-SSLeay-1.45.tar.
gz
# tar -zxvf Net-SSLeay-1.45.tar.gz
# cd Net-SSLeay-1.45
# perl Makefile.PL
# make
210
# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador
pode consultar o site http://www.cpan.org. Feito isso, o diretrio Net-SSLeay-1.45 pode ser
excludo, assim como o pacote de instalao.
Instalao do Net_SSLeay:
# cd /usr/local/src
# wget http://www.cpan.org/modules/by-module/Net/Net-SSLeay-1.45.tar.gz
Webmin
Neste tpico ser abordada a instalao do programa Webmin. As instrues apresentadas
foram baseadas na verso 1.580 do Webmin, e devem ser semelhantes para verses futuras.
Dever ser executada a seguinte sequncia de comandos:
# cd /usr/local/src
# wget http://ufpr.dl.sourceforge.net/project/webadmin/webmin/1.580/
webmin-1.580.tar.gz
# tar -zxvf webmin-1.580.tar.gz
# cd webmin-1.580
# ./setup.sh /usr/libexec/webmin
Quando for executado o script setup.sh, o programa de instalao do Webmin, sero feitas
algumas perguntas que, na sua maioria, devem ser mantidas com suas respostas padro.
O administrador deve escolher uma senha de acesso para a aplicao nesse passo. O diretrio /usr/libexec/webmin armazenar todos os scripts, imagens e pginas HTML. A seguir
podem ser vistas as perguntas feitas pelo script setup.sh e as respostas utilizadas.
# cd /usr/local/src
Captulo 10 - Webmin
Feito isso, o diretrio /usr/local/src/webmin-1.580 pode ser excludo, assim como o pacote de
211
# wget http://ufpr.dl.sourceforge.net/project/webadmin/webmin/1.580/
webmin-1.580.tar.gz
# tar -zxvf webmin-1.580.tar.gz
# cd webmin-1.580
# ./setup.sh /usr/libexec/webmin
Interface de administrao
11 O acesso interface do Webmin pode ser feito por meio de qualquer navegador web:
Para cada categoria presente no menu, existe uma pgina principal correspondente, com os
diversos itens de configurao do sistema ou de programas instalados pelo administrador.
Navegando pelo Webmin, possvel notar que, apesar de existirem diversos mdulos
212
Figura 10.1
Pgina inicial
do Webmin.
disponveis para serem administrados atravs de sua interface, nem sempre esses
mdulos esto habilitados, pois, em determinados casos, pode acontecer de um programa
no estar devidamente instalado no servidor. Navegando pelas vrias opes disponveis
no Webmin, pode-se ver, em poucos instantes, como essa ferramenta extremamente
poderosa e de fcil utilizao, simplificando o trabalho tanto dos administradores novatos,
como dos mais experientes.
Mdulos
11 So incorporados ao Webmin, permitindo que os mais diversos servios sejam con-
Captulo 10 - Webmin
Usermin
214
11 Interface web desenvolvida para auxiliar usurios de sistemas Unix em tarefas cotidianas.
11 Possibilita alterao de senhas, edio de scripts de login e agendamento de tarefas.
11 O Webmin possui um mdulo que permite o gerenciamento do Usermin.
Devido s facilidades introduzidas pelo Webmin, seu desenvolvedor resolveu criar outro
programa de gerenciamento, chamado Usermin, desta vez voltado exclusivamente para a
administrao de tarefas relativas a usurios. Usermin pode ser acessado atravs da URL
https://servidor:20000.
Figura 10.2
Pgina de
administrao
do servio SSH.
Entre as caractersticas do Usermin podemos citar que prov uma interface web, por meio
da qual usurios de um sistema podem alterar suas senhas, editar seus scripts de login e
agendar tarefas no cron, entre outras possibilidades.
O Usermin pode ser gerenciado atravs do Webmin. Sendo assim, possvel restringir o
nvel de autonomia de cada usurio. Durante este curso, no trataremos do aprendizado
e da utilizao do Usermin. Cabe ao aluno o estudo mais aprofundado dessa ferramenta
de grande utilidade nas tarefas realizadas pelos administradores de sistemas. O Usermin
possui os seguintes mdulos:
11 Usermin: permite a troca de linguagem e de tema;
11 Others: permite acesso a vrias outras aplicaes, como file manager, submisso de
tarefas utilizando o cron e documentao do sistema, entre outros.
11 Mail: permite a leitura de mensagens, criao de redirecionamentos, filtros etc.;
11 Login: permite ao usurio administrar sua conta, podendo fazer mudana de senha,
visualizar processos e executar comandos.
11 Applications: permite iniciar aplicaes como GPG encryption e fazer upload e download
de arquivos, entre outros.
A Figura 10.3 mostra a pgina inicial do Usermin, com um menu composto por categorias
na parte superior esquerda da tela. Cada categoria composta por diversos mdulos, que
podem ser configurados de acordo com as necessidades do usurio.
Captulo 10 - Webmin
Figura 10.3
Tela inicial
do Usermin.
215
216
Roteiro de Atividades 10
Atividade 10.1 Criando um usurio para o Webmin
Abra o seu navegador preferido e digite na barra de endereos a URL de acesso ao Webmin
instalado em seu computador.
1. Faa login com o usurio admin e crie um novo usurio no Webmin com permisso para
3. Altere novamente o nvel de prioridade desse processo para o valor padro, utilizando a
3. Verifique por meio da interface texto do Linux se o backup foi realmente agendado.
4. Desabilite a execuo do backup agendado, utilizando a interface do Webmin. Em seguida,
verifique por meio da interface texto do Linux se a operao foi efetuada com sucesso.
post-rotation.
218
seu computador.
1. Acesse o Webmin e finalize a execuo de algum servio que voc no esteja utilizando
Bibliografia
11 NEMETH, E. et al. UNIX and Linux System Administration Handbook
(4th Edition). Prentice Hall, 2010.
11 FRISCH, E. Essential System Administration (3rd Edition). O Reilly &
Associates Inc., 2002.
11 REISS, L., RADIN, J. Unix System Administration Guide. Osborne McGraw
Hill, 1993.
11 McCARTY, B. Aprendendo Red Hat Linux. Editora Campus, 2000.
11 COOPER, J. Book of Webmin Or How I Learned to Stop Worrying and Love
Unix. No Starch Press, 2003.
11 LOVE, P., et al. Beginning Unix. Wrox, 2005.
11 IBM Developer Works http://www.ibm.com/developerworks/linux/library/
11 Linux Doc http://www.linuxdoc.org/
11 Linux Security http://www.linuxsecurity.com/
11 OReilly http://oreilly.com
11 Linux Journal http://www.linuxjournal.com/
11 Linux Magazine http://www.linux-mag.com/
11 Amanda http://www.amanda.org
11 Bacula http://www.bacula.org/en/
11 CUPS http://www.cups.org
Bibliografia
11 Webmin http://www.webmin.com/
219
220
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
ISBN 978-85-63630-20-9
9 788563 630209