de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga
responsvel
pelo
Ministrio da
Cultura
Ministrio da
Sade
Ministrio da
Educao
Ministrio da
Cincia, Tecnologia
e Inovao
Administrao
de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga
Administrao
de Sistemas
Linux
Ari Frazo Jr.
Marcelo Braga
Rio de Janeiro
Escola Superior de Redes
2015
Nelson Simes
Diretor de Servios e Solues
Luiz Coelho
Edio
Lincoln da Mata
Reviso Tcnica
Bruno Alves Fagundes
Coordenao Acadmica de Administrao de Sistemas
Renato Duarte
Equipe ESR (em ordem alfabtica)
Adriana Pierro, Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask,
Elimria Barbosa, Evellyn Feitosa, Felipe Nascimento, Lourdes Soncin, Luciana Batista,
Luiz Carlos Lobato e Yve Marcial
Capa, projeto visual e diagramao
Tecnodesign
Verso
2.0.0
Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encontrado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de
contedo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e
Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a
pessoas ou bens, originados do uso deste material.
As marcas registradas mencionadas neste material pertencem aos respectivos titulares.
Distribuio
ISBN 978-85-63630-52-0
1. Linux (Sistema operacional de computador) administrao. 2. Sistema operacional
(computadores). I. Braga, Marcelo. II. Titulo.
CDD 005.432
Sumrio
Escola Superior de Redes
A metodologia da ESRix
A quem se destinax
Convenes utilizadas neste livroxi
Permisses de usoxi
Comentrios e perguntasxii
Sobre os autoresxii
iii
Sistema de arquivos 10
Inode11
Tipos de arquivos12
Arquivo regular12
Diretrio12
Arquivo de dispositivo13
Socket13
Named pipe14
Link14
Vantagens e desvantagens17
Comando ls17
Permisses de arquivos18
Bits de permisso18
Bits especiais19
Mudando permisses21
Mscara de usurio22
2. Usurios e grupos
Introduo25
Grupos26
Arquivo /etc/gshadow27
Usurios28
Problemas de segurana29
Shadow passwords 29
Tipos de contas de usurios30
Senhas31
O risco das senhas provveis31
Criando contas de usurios31
Criar entrada nos arquivos /etc/group e /etc/gshadow32
Criar entrada nos arquivos /etc/passwd e /etc/shadow32
Definir senha inicial 34
Criar diretrio de trabalho 34
Copiar arquivos de inicializao34
Testar nova conta35
Administrando grupos35
Criando grupos36
Modificando grupos36
Removendo grupos36
iv
3. Processos
Processos41
Tipos de processos42
Componentes de um processo43
Ciclo de vida de um processo45
Multiprocessamento47
Estados de um processo49
Prioridades e escalonamento de processos51
Uso de sinais53
Monitoramento de processos54
Execuo peridica de tarefas56
Cron56
Anacron58
Fcron58
4. Sistema de arquivos
Estrutura dos discos59
Particionamento60
Tipos de partio61
Sistema de arquivos61
Comandos63
Tipos de sistemas de arquivos suportados66
Sistema de quotas67
Preparando o sistema67
Habilitando67
Inicializando68
Editando quotas69
Verificao e gerenciamento71
5. Backup
Introduo73
Tipos de backup74
Mdias de backup75
Fitas magnticas75
Mdias pticas76
Storage77
Comandos do sistema79
Comando tar79
Comando cpio80
Comando dump80
Comando rsync81
Comandos gzip/gunzip e bzip2/bunzip281
Softwares de backup82
Pacotes gratuitos82
Pacotes comerciais83
Polticas de backup84
Cuidados no armazenamento das mdias85
6. Servio de impresso
Introduo87
Histrico87
Arquitetura do sistema de impresso88
Softwares gerenciadores de impresso89
LPD (Line Printer Daemon)90
LPRng91
CUPS92
7. Registro de eventos
Introduo99
Sysklogd100
Syslogd100
Klogd103
Rsyslog 104
Syslog-ng105
vi
vii
Procedimentos operacionais148
Poltica de utilizao de recursos149
Informaes sobre os novos usurios150
Atendimento aos usurios151
Controle de recursos computacionais152
Diagnstico de falhas153
Rotina de backup154
10. Webmin
Caractersticas gerais157
Instalao158
Perl159
OpenSSL159
Net_SSLeay.pm160
Webmin161
Interface de administrao162
Mdulos163
Usermin165
viii
A metodologia da ESR
A filosofia pedaggica e a metodologia que orientam os cursos da ESR so baseadas na
aprendizagem como construo do conhecimento por meio da resoluo de problemas tpicos da realidade do profissional em formao. Os resultados obtidos nos cursos de natureza
terico-prtica so otimizados, pois o instrutor, auxiliado pelo material didtico, atua no
apenas como expositor de conceitos e informaes, mas principalmente como orientador do
aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional.
A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema
semelhantes s encontradas na prtica profissional, que so superadas por meio de anlise,
sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do problema, em abordagem orientada ao desenvolvimento de competncias.
Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as
atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de aprendizagem no considerada uma simples exposio de conceitos e informaes. O instrutor
busca incentivar a participao dos alunos continuamente.
ix
Sobre o curso
Seu objetivo apresentar os conceitos bsicos, histria e arquitetura do sistema operacional
Linux, com prticas de instalao, configurao e administrao do sistema de parmetros,
senhas e contas de usurios, backup, servio de impresso, registro de eventos syslog,
monitoramento de usurios, contabilidade de processos, configurao do ncleo do sistema
operacional, aplicao de noes bsicas de segurana, entre outras atividades relacionadas
maior comunidade de software livre do mercado O curso composto de 10 captulos de
embasamento terico e atividades correlatas para aprendizado e fixao do conhecimento.
O curso tem como objetivo apresentar as facilidades de administrao e gerenciamento, que
sero exploradas com maior profundidade nos demais cursos da rea de Administrao de
Sistemas da Escola Superior de Redes da RNP.
A quem se destina
Profissionais da rea de informtica que sero responsveis por administrar ambientes
que utilizam as infraestrutura com sistemas operacionais Linux. Podem tambm participar
outros profissionais de TI, programadores e analistas de suporte de sistemas.
Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da
sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito
e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no
Windows C:\).
Contedo de slide
Indica o contedo dos slides referentes ao curso apresentados em sala de aula.
Smbolo
Indica referncia complementar disponvel em site ou pgina na internet.
Smbolo
Indica um documento como referncia complementar.
Smbolo
Indica um vdeo como referncia complementar.
Smbolo
Indica um arquivo de adio como referncia complementar.
Smbolo
Indica um aviso ou precauo a ser considerada.
Smbolo
Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao
entendimento do tema em questo.
Smbolo
Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou
mesmo uma observao.
Permisses de uso
Todos os direitos reservados RNP.
Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra.
Exemplo de citao: TORRES, Pedro et al. Administrao de Sistemas Linux: Redes e Segurana.
Rio de Janeiro: Escola Superior de Redes, RNP, 2013.
xi
Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao:
Escola Superior de Redes RNP
Endereo: Av. Lauro Mller 116 sala 1103 Botafogo
Rio de Janeiro RJ 22290-906
E-mail: info@esr.rnp.br
Sobre os autores
Ari Frazo Jr. bacharel em Cincia da Computao pela Universidade Federal da Paraba
(UFPB) e mestre em Cincia da Computao, na rea de redes de computadores, pela Universidade Federal de Pernambuco (UFPE). Atualmente responsvel pelas reas de engenharia e operaes da Rede Nacional de Ensino e Pesquisa (RNP), onde atua desde 1993.
Marcelo Castellan Braga possui graduao em Engenharia Eletrnica pelo CEFET-RJ,
ps-graduao em Anlise, Projeto e Gerncia de Sistemas pela PUC-RJ e mestrado em
informtica pela UNIRIO. Atualmente scio diretor da MCB Tech, empresa que presta
consultoria em redes de computadores, servios de internet, segurana de dados e desenvolvimento de software. Atuou durante mais de 10 anos na rea de TI em empresas como
Rede Nacional de Ensino e Pesquisa (RNP) e Embratel.
Bruno Fagundes Especialista em Segurana de Redes com mais de 7 anos de experincia
em administrao de sistemas Linux. Atualmente Tecnologista no Laboratrio Nacional de Computao Cientfica atuando no suporte e administrao da plataforma de alto
desempenho e gerenciamento de servios de rede. Professor no Instituto Superior de
Tecnologia de Petrpolis em 2014. Contedista e Instrutor da Escola Superior de Redes nos
cursos de Administrao de sistemas Linux.
xii
1
Conhecer o histrico do Unix e do Linux; Entender a arquitetura do Linux;
Aprender o conceito de sistema de arquivos; Conhecer os tipos de arquivos do Linux;
Entender o conceito de permisso de arquivos.
conceitos
Introduo
Requisitos do administrador de sistemas:
objetivos
Introduo ao Sistema
Operacional Linux
guir tirar o melhor proveito possvel dos recursos computacionais sob sua responsabilidade.
1
Histrico
1964:
MIT
Massachusetts Institute
of Technology. um
centro universitrio de
educao e pesquisa
privado em Cambridge,
Massachusetts, nos
EUA. Um dos lderes
mundiais em cincia,
engenharia e tecnologia.
Dcada de 80:
11 System V (AT&T).
11 Incorporao do protocolo TCP/IP distribuio BSD (Berkeley).
11 Diferentes verses geradas pela distribuio do cdigo.
11 Padronizao bsica Portable Operating System Interface (POSIX) nos padres IEEE.
11 Disputa comercial gerou: AIX, HP-UX, XENIX, IRIX e SunOS, entre outros.
11 Incio do projeto GNU de Richard Stallman.
11 Linux (System V) uma alternativa aos sistemas comerciais.
22 Caractersticas:
33 Segurana.
33 Confiabilidade.
33 Versatilidade.
33 Estabilidade.
33 Licena gratuita.
Embora a necessidade de padronizao fosse muito grande, as tentativas feitas nesse
sentido falharam. Em 1988, o Institute of Electrical and Electronics Engineers (IEEE) elaborou
a proposta do Portable Operating System Interface (POSIX), que permitiu uma padronizao
bsica das muitas verses existentes. No entanto, diferenas continuaram existindo devido
aos interesses comerciais dos grandes fabricantes de computadores, originando diversas
verses comerciais do Unix, como: AIX, da IBM; HP-UX, da HP; XENIX, da Microsoft, e IRIX,
da Silicon Graphics, todas baseadas na distribuio System V e SunOS, da Sun, e Tru64, da
Digital Equipment Corporation, baseadas na distribuio BSD. Alm disso, surgiram verses
livres de Unix como FreeBSD, NetBSD e OpenBSD, todas com base na distribuio BSD.
Nesse contexto, em 1984, Richard Stallman comeou um projeto para criar um Sistema
Operacional compatvel com o Unix, batizado de GNU. Stallman, junto com um grupo de
programadores, comeou a desenvolver os principais componentes do sistema, como compiladores, editores de texto etc.
Dcada de 90:
Em 1991, o GNU j possua diversos componentes, mas ainda no tinha um kernel funcional.
Hoje o Linux possui diversas distribuies comerciais e gratuitas, cada uma com suas caractersticas. Entre elas podemos destacar: Slackware, Red Hat Enterprise Linux, Debian, SUSE, Fedora,
CentOS e Ubuntu. As distines entre as principais distribuies so resumidas a seguir.
Slackware
a distribuio mais antiga ainda em desenvolvimento, tendo sua primeira verso lanada
em 1993. O slackware uma distribuio gratuita que tem como principais caractersticas:
estabilidade, segurana, uso da interface texto para configurao do sistema, ampla documentao etc. Possui uma verso de produo que s inclui pacotes estveis e uma verso
current em desenvolvimento que no disponibilizada para download.
Debian
A distribuio Debian desenvolvida e mantida por uma equipe de desenvolvedores voluntrios. O Debian possui um ciclo de desenvolvimento onde suas verses passam por trs
fases: stable (que a verso de produo), testing (contm verses mais atuais dos pacotes
que ainda no foram homologadas para entrar em produo) e unstable (usada geralmente
por desenvolvedores). O Debian conhecido por sua excelente ferramenta de gerenciamento de pacotes, o APT.
Suse
uma das distribuies comerciais mais antigas (teve sua primeira verso lanada em 1994,
na Alemanha). A distribuio SUSE possui uma excelente ferramenta grfica de instalao
e configurao do Sistema Operacional, chamada YaST. Em 2003, a Novell comprou a SUSE
e decidiu em 2005 compartilhar o desenvolvimento de uma verso gratuita de seu Sistema
Operacional com a comunidade de desenvolvedores, criando a distribuio openSUSE.
Fedora
uma distribuio gratuita patrocinada pela Red Hat e mantida por uma comunidade aberta
de usurios e desenvolvedores. Essa distribuio teve sua primeira verso lanada em
2003, quando a distribuio gratuita Red Hat Linux foi descontinuada. A partir da, a Red Hat
Software resolveu manter seu foco no mercado corporativo e lanou a distribuio paga
Red Hat Enterprise Linux. Em paralelo a isso, foi lanado o projeto Fedora, uma distribuio
gratuita baseada no Red Hat Linux.
CentOS
Essa distribuio deriva diretamente do Red Hat Enterprise Linux atravs dos seus arquivos
fonte originais. A Red Hat permite o uso dos fontes na condio de que se retire todas as referncias comerciais sua marca. A principal vantagem que o CentOS uma slida e poderosa
distribuio Linux com o mesmo potencial do Red Hat e com a vantagem de ser gratuita.
5
Ubuntu
O Ubuntu uma distribuio baseada na distribuio Debian, patrocinada pela empresa
Canonical. Uma das principais propostas do Ubuntu a popularizao do Linux, oferecendo
um sistema com interface mais amigvel, com foco em acessibilidade e internacionalizao.
Segurana, confiabilidade, versatilidade, estabilidade e gratuidade so as caractersticas do
Linux que fazem com que ele desponte como a principal alternativa ao Microsoft Windows.
Arquitetura
O GNU/Linux ou Linux (como mais conhecido) um Sistema Operacional multitarefa,
multiusurio e multiplataforma. Seu cdigo-fonte aberto e disponibilizado gratuitamente,
podendo ser alterado por qualquer pessoa, o que o torna um sistema extremamente flexvel.
O Linux distribudo pela licena General Public License (GPL), que permite executar, alterar
e distribuir qualquer software regido por ela. Sua arquitetura, como mostra figura 1.1, pode
ser representada por uma pirmide dividida em camadas. O papel de cada uma dessas
camadas descrito a seguir.
Usurios
Aplicaes
Shell
Hardware
Kernel
11 Ncleo do Sistema Operacional.
11 Principais funes:
22 Deteco de hardware.
22 Gerenciamento de entrada e sada.
22 Manuteno do sistema de arquivos.
22 Gerenciamento de memria e swapping.
22 Controle da fila de processos.
O kernel o ncleo do Sistema Operacional e se encarrega de executar todas as funes
bsicas e necessrias ao funcionamento correto do sistema. Uma de suas principais funes
Administrao de Sistemas Linux
prover uma interface entre o hardware e as aplicaes. O kernel possui uma arquitetura
monoltica, ou seja, composto por um grande e nico bloco de cdigo com milhes de
linhas. H algum tempo o conceito de mdulos foi introduzido no Linux. Esses mdulos so
geralmente drivers de dispositivos e podem ser carregados em memria dinamicamente.
importante ressaltar que os mdulos no fazem parte do kernel.
Uma das grandes vantagens que o Linux oferece a possibilidade de o usurio poder fazer
alteraes em seu kernel, habilitando somente as funcionalidades necessrias para cada
sistema. Com isso, possvel ganhar em performance, pois o kernel se torna muito mais
enxuto, gerando uma imagem com um tamanho consideravelmente menor. As principais
funes do kernel so:
6
11 Deteco de hardware;
11 Gerenciamento de entrada e sada;
11 Manuteno do sistema de arquivos;
11 Gerenciamento de memria e swapping;
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.).
Saiba mais
11 Gerenciamento de processos.
etc
home
maria
Figura 1.2
Sistema de arquivos
do Linux.
joo
Gerenciamento de processos
11 Suporta a execuo simultnea de vrios processos.
Shell
11 L e interpreta comandos de entrada de um terminal.
Aplicaes
Programas com os quais os usurios interagem:
11 Compiladores.
11 Editores de texto.
11 Planilhas.
11 Jogos etc.
Saiba mais
verifica no arquivo passwd qual interpretador de comandos est definido para o usurio.
Sistema de arquivos
Bloco de boot:
11 Tem a funo de carregar o kernel do Sistema Operacional;
11 Toda partio contm um bloco de boot.
Superbloco:
11 Contm informaes essenciais sobre o sistema de arquivos.
Tabela de blocos:
11 Identifica os blocos de dados livres no disco.
Tabela de inodes:
11 Contm as informaes de cada inode do sistema de arquivos.
Blocos de dados:
11 So os blocos do disco destinados a armazenar o contedo dos arquivos.
Bloco de boot
10
Super bloco
Inodes
Tabela de blocos
Blocos de dados
Figura 1.3
Sistemas de
Arquivos Linux.
Inode
Estrutura de dados mantida pelo kernel.
Possui informaes sobre arquivos:
uma estrutura de dados que armazena informaes sobre um arquivo como: tipo, permisses
associadas, proprietrio e grupo, tamanho, ltima vez em que foi modificado, localizao dos
blocos onde o contedo do arquivo est armazenado etc. Todo sistema de arquivos possui uma
tabela de inodes e cada arquivo possui um inode associado que identificado por um nmero
inteiro, conhecido como i-number ou ino. O nmero de inodes funo do tamanho do sistema
de arquivos e, por padro, criado um inode para cada 2 KB do tamanho total do sistema
de arquivos. Parte das informaes presentes nos inodes pode ser visualizada por meio do
comando ls, utilizando a opo -l, como mostra a figura 1.4.
Hard link count
Tamanho em bytes
Tipo de arquivo
-rwxr-xr-x
Permisses
1 root bin
85924
Dono
Sep
27
2003
/usr/bin/su
Data da ltima
modicao
Grupo
O comando stat tambm pode ser utilizado para visualizarmos informaes contidas nos
inodes, como mostra o exemplo a seguir.
# stat /etc/hosts
File: /etc/hosts
Size: 250
Blocks: 8
Device: 801h/2049d
Inode: 523277
Links: 1
root) Gid: (0/
root)
Figura 1.4
Informaes
contidas nos
inodes.
Nome do arquivo
em um sistema de arquivos.
11
# df -i
Saiba mais
Tipos de arquivos
11 Arquivos regulares.
Para verificarmos o
nmero de inodes
livres em um sistema
de arquivos, podemos
utilizar o comando df
com a opo -i.
11 Diretrios.
11 Arquivos de dispositivo (bloco e caractere).
11 Sockets.
11 Named pipes.
11 Symbolic link.
No Linux, qualquer objeto que gerenciado pelo Sistema Operacional tratado como
arquivo, desde um arquivo texto convencional a um dispositivo de hardware. Para identificar
o tipo do arquivo, o Sistema Operacional consulta as informaes contidas em seu inode.
A seguir veremos os diversos tipos de arquivos existentes no Linux.
Arquivo regular
11 Conjunto de bytes.
Diretrio
11 Podem conter qualquer tipo de arquivo.
Um diretrio nada mais do que um arquivo cujo contedo o nome dos arquivos nele
12
Saiba mais
Diretrios podem ser
criados com o comando
mkdir e removidos
com o comando rmdir,
se estiverem vazios,
ou rm -r, independentemente de estarem
vazios ou no.
Arquivo de dispositivo
11 Mecanismo usado para operaes de entrada e sada.
Socket
11 Utilizado para comunicao bidirecional entre processos.
11 Sockets de rede.
11 So criados com a chamada de sistema socket e removidos atravs do comando rm
ou da chamada de sistema close.
O socket um tipo de arquivo usado para a comunicao bidirecional entre dois processos. Existem basicamente dois tipos de sockets: o primeiro deles, conhecido como
Unix domain socket ou IPC socket (Inter Process Communication socket) usado para a
comunicao entre processos executados em um mesmo Sistema Operacional. O outro
tipo o socket de rede, que usado para a comunicao entre processos executados em
computadores diferentes, interligados por uma rede. Entre os sockets de rede, podemos
destacar o datagram socket, que um tipo de socket no orientado conexo, usado pelo
protocolo UDP; o stream socket, que um tipo de socket orientado conexo, usado pelo
protocolo TCP, e o raw socket, utilizado por protocolos de gerenciamento e monitoramento
13
de redes como o protocolo ICMP. Um socket criado pela chamada de sistema socket e
pode ser removido com o comando rm ou por meio da chamada de sistema close, quando o
socket no estiver mais sendo utilizado. A maioria das aplicaes em um sistema Linux faz
uso de sockets.
Named pipe
11 Permite a comunicao entre dois processos rodando em uma mesma mquina.
Link
Hard link:
11 Dois arquivos apontando para o mesmo inode.
Symbolic link:
11 Ponteiro para um arquivo existente.
11 associado a outro inode number.
O Linux suporta dois tipos de links: hard link e symbolic link. Para explicar as diferenas
entre eles, vamos tomar como exemplo uma situao em que dois usurios (Maria e Joo)
compartilham um arquivo denominado relatorio.txt, cujo tamanho 200 bytes (figura 1.5).
etc
14
home
maria
linux.conf
Exemplos:
joo
relatorio.txt
Figura 1.5
Hard link para
arquivo.
# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 relatorio.txt
# ln ~maria/relatorio.txt ~joao/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-- 2 maria maria 200 Feb 01 18:00 /home/maria/relatorio.txt
-rw-r--r-- 2 maria maria 200 Feb 01 18:00 /home/joao/relatorio.txt
Hard link
11 Associa dois ou mais nomes de arquivos ao mesmo inode.
Figura 1.6
Hard link.
Inode de
relatorio.txt
Inode
do link
Arquivo
de Maria
Arquivo
relatorio.txt
arquivo, como pode ser visto no exemplo a seguir. O nmero 2 identifica que alm do
15
Symbolic link
11 Arquivos que so ponteiros para outros arquivos.
# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 relatorio.txt
# ln s ~maria/relatorio.txt ~joao/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 /home/maria/relatorio.txt
lrwxrwxrwx 1 joao joao 20 Feb 05 11:30 relatorio.txt -> ~maria/
relatorio.txt
No exemplo, o espao de 200 bytes ocupado pelo arquivo relatorio.txt alocado uma nica
vez nos blocos do disco. Apenas o arquivo no diretrio da usuria Maria referencia essa rea
de dados. No diretrio do usurio Joo, existe outro arquivo, do tipo symbolic link, cujo contedo o nome do arquivo no diretrio da usuria Maria, como mostra a figura 1.7.
/
etc
16
home
maria
linux.conf
joo
relatorio.txt
link
Figura 1.7
Symbolic link para
arquivo.
O arquivo de Joo est armazenado em outro local do disco sendo referenciado por outro inode, e
seu tamanho menor do que o tamanho do arquivo original, como pode ser visto na figura 1.8,
j que seu contedo somente o nome do arquivo original para o qual est apontando.
Arquivo
de Maria
Inode de
relatorio.txt
Inode
do link
Arquivo
relatorio.txt
Vantagens e desvantagens
Cada um dos tipos de link vistos tem suas vantagens e desvantagens. Utilizando hard links,
independentemente do nmero de links existentes, apenas um inode ser usado. Porm,
como esse inode guarda informaes sobre o proprietrio do arquivo, em determinadas
situaes isso pode gerar problemas. Vamos retornar ao exemplo anterior para visualizar
essa situao.
Supondo que Maria seja a proprietria do arquivo relatorio.txt e um hard link seja criado
para que Joo tenha acesso ao arquivo. O inode mantm um atributo (nmero de links) indicando que dois arquivos apontam para esse mesmo inode. Quando Maria remove o arquivo
de seu diretrio, o sistema apenas decrementa esse atributo do inode do arquivo. Assim,
Maria no ter mais acesso ao arquivo, mas Joo ainda poder utiliz-lo. Entretanto, uma
vez que Maria a proprietria do arquivo, esse contabilizado no sistema como recurso
alocado para Maria, at que Joo decida remov-lo, se tiver permisso. Com o symbolic
link isso no acontece, pois apenas o proprietrio do arquivo pode remov-lo. No exemplo,
Maria seria a proprietria do arquivo e Joo teria apenas um symbolic link para ele. Se Joo
apagasse o symbolic link, o arquivo original no seria apagado. Porm, se Maria apagasse o
arquivo, Joo no poderia mais utiliz-lo, j que o symbolic link apenas um ponteiro para o
arquivo original. Nesse caso, o symbolic link ficaria sem referncia. Note que o symbolic link
muito parecido com os atalhos do MS Windows. A utilizao de symbolic links obrigatria
quando se quer criar um link para um diretrio, ou entre arquivos localizados em diferentes
parties. Em ambos os casos, no possvel definir um hard link.
Comando ls
Para trabalhar com arquivos, fundamental que o usurio conhea suas caractersticas.
Essas informaes podem ser visualizadas com o comando ls. Com ele, o usurio pode
visualizar vrias informaes sobre arquivos, desde o nome dos arquivos existentes em um
diretrio at o nmero de hard links que apontam para esses arquivos. As informaes mostradas pelo comando ls dependem das opes passadas na linha de comando. Por exemplo,
quando informada a opo -l, o comando ls lista as informaes guardadas no inode do
arquivo, como: permisses, nmero de hard links que apontam para o arquivo, proprietrio
do arquivo, grupo do arquivo, tamanho e data de criao e modificao. Para ver todas as
funcionalidades do comando ls, consulte sua pgina de manual com o comando man ls.
Figura 1.8
Symbolic link.
Arquivo
de Joo
17
Comando
Funo
ls
Tipo do arquivo
Smbolo
Arquivo regular
Diretrio
Socket
Named pipe
Symbolic link
Permisses de arquivos
11 Nove bits controlam quem pode ler, escrever ou executar um arquivo.
Tabela 1.1
Comando ls
(tipos de arquivos).
#ls -l /bin/bash
-rwxr-xr-x 1 root root 85924 01 Dec 2002 /bin/bash
Bits de permisso
So nove os bits de permisso, usados para determinar as operaes que podem ser exe-
18
para o dono do arquivo, para o grupo ao qual o arquivo pertence e para os outros usurios
do sistema. Cada conjunto possui trs bits: um bit de leitura (r), um bit de escrita (w) e um bit
de execuo (x), chamado bit de pesquisa, quando se trata de um diretrio. Assim, os trs
primeiros bits controlam o acesso do dono, os trs do meio controlam o acesso do grupo e
os ltimos trs controlam o acesso para os demais usurios do sistema (outros). Em cada
trio, o bit mais alto o que controla a leitura, o bit do meio controla a escrita e o ltimo bit
controla a execuo do arquivo.
Cada usurio de um sistema Linux enquadra-se em, pelo menos, uma das trs categorias
descritas. Caso ele no seja o dono do arquivo, nem pertena ao mesmo grupo ao qual o
Outros
1
= 751
Grupo
write (w)
execute (x)
Signicado para arquivos
executar arquivo
Bits especiais
Sticky bit:
Sticky Bit
O estabelecimento desse bit remonta aos tempos em que memria era um recurso caro e
escasso em sistemas Linux, e acessos a unidades de disco eram lentas. Sistemas com pouca
Figura 1.9
Bits de permisso.
Acesso
O sticky bit era importante nesse contexto. Ele garantia que um determinado processo
permaneceria na memria principal, no tendo sua performance prejudicada por conta do
esquema de swapping. Hoje, com o relativo baixo custo de memria e as unidades de disco
cada vez mais velozes, o estabelecimento desse bit em arquivos executveis caiu em desuso.
Atualmente, o sticky bit definido somente em diretrios e utilizado para impedir que
um usurio apague ou renomeie um arquivo, a menos que seja dono do diretrio ou do
arquivo. Desse modo, ter permisso de escrita e pesquisa em um diretrio com sticky
bit definido no suficiente para remover ou renomear arquivos e diretrios de outros
usurios. dessa forma que o Linux evita que, em diretrios de uso pblico, como o /tmp,
os usurios removam ou renomeiem arquivos de outros usurios. Essa regra s no
vlida para o usurio root. O sticky bit quando definido substitui a letra x da permisso
de execuo dos outros pela letra t, caso a permisso de execuo tenha sido definida.
Caso contrrio, a letra T inserida no lugar do caractere -.
Setgid (SGID)
O bit SGID pode ser definido em arquivos executveis e diretrios. Ele permite que um
arquivo seja executado com as permisses do grupo dono do arquivo, independente do
usurio que o tenha executado. Embora qualquer tipo de arquivo possa ter esse bit definido,
muitas verses do Linux s o leva em conta quando so definidos em programas executveis ou em diretrios.
Quando o bit SGID definido em um diretrio, todos os arquivos criados nesse diretrio
pertencero ao grupo que dono do diretrio, independente do grupo primrio do usurio
que os tenha criado. O SGID, quando definido, substitui a letra x da permisso de execuo
do grupo pela letra s, caso a permisso de execuo tenha sido definida. Caso contrrio, a
letra S inserida no lugar do caractere -.
Setuid (SUID)
O bit SUID s possui efeito em arquivos executveis. Ele permite que um arquivo seja
executado como se estivesse sendo executado pelo dono do arquivo, independente do
usurio que o tenha executado. O arquivo executvel passwd, usado para troca de senha,
um exemplo de arquivo que tem o bit SUID definido. Isso necessrio para que usurios
comuns possam alterar suas senhas, j que somente o usurio root tem permisso de
escrita no arquivo /etc/shadow, que armazena as senhas dos usurios do sistema. Embora
qualquer tipo de arquivo possa ter esse bit definido, muitas verses do Linux s o leva em
conta quando so definidos em programas executveis.
O SUID, quando definido, substitui a letra x da permisso de execuo do dono do arquivo
pela letra s, caso a permisso de execuo tenha sido definida. Caso contrrio, a letra S
20
-rws-sr-t
t aqui indica que o programa sticky
s aqui indica que o programa SGID
s aqui indica que o programa SUID
Figura 1.10
SUID, SGID
e sticky bit.
Mudando permisses
Os doze bits de permisso, referenciados anteriormente, podem ser modificados pelo dono
do arquivo ou pelo administrador do sistema atravs do comando chmod. Os primeiros sistemas Unix exigiam que os usurios entendessem de notao binria ou octal para utilizar
esse comando. As verses mais recentes do sistema, entretanto, aceitam tanto a notao
octal quanto uma sintaxe mais mnemnica. Entretanto, preferimos trabalhar com a notao
octal, por ser mais conveniente para administradores de sistema.
O comando chmod recebe dois blocos de argumentos. O primeiro deles um nmero octal,
que representa as permisses a serem atribudas, e o segundo bloco composto de um ou
mais nomes de arquivos, separados por espao em branco, cujas permisses devem ser
alteradas. Na forma normal:
11 Primeiro dgito octal: refere-se s permisses do dono do arquivo;
11 Segundo: refere-se s do grupo dono do arquivo;
11 Terceiro: refere-se s dos outros usurios.
Para estabelecer as permisses associadas aos bits setuid, setgid e sticky bit, preciso
utilizar quatro dgitos octais no lugar de trs. Nesse caso, os trs bits especiais so definidos
pelo primeiro dgito. A tabela 1.2 ilustra as oito possveis combinaes para cada um dos trs
bits, em que r, w e x correspondem s permisses de leitura (Read), de escrita (Write) e
Tabela 1.2
Mudando
permisses
de arquivos.
Comando
Funo
chmod
Octal
Binria
Permisses
000
---
001
--x
010
-w-
011
-wx
100
r--
101
r-x
110
rw-
111
rwx
A tabela 1.3 ilustra as oito possveis combinaes usadas para definir ou no os bits
especiais SUID, SGID e sticky bit.
21
Comando
Funo
chmod
Octal
Binria
Descrio
000
001
010
SGID definido
011
100
SUID definido
101
110
111
Mscara de usurio
O comando umask (user mask) pode ser utilizado para estabelecer as permisses padres
para os arquivos criados no sistema. Para esse comando, passado um parmetro na
forma de um valor octal de trs dgitos, os quais representam as permisses que devem
ser atribudas aos arquivos no momento da sua criao. Os dgitos estabelecem as permisses mostradas na tabela 1.4. A relao entre os valores passados para o comando umask
e as permisses resultantes diferem bastante da relao aplicada para o comando chmod.
O valor padro da umask para a maioria das distribuies Linux 022. Para verificarmos o
valor da mscara atual, devemos executar o comando umask sem parmetros. A tabela 1.4
mostra que o valor da umask resulta em diferentes permisses para arquivos binrios,
22
Tabela 1.3
Mudando
permisses
especiais.
Comando
Funo
umask
Octal
Binria
Permisses
Tabela 1.4
Comando umask.
Diretrio
Binrio
Texto
000
r-x
rw-
rwx
001
r--
rw-
rw-
010
r-x
r--
r-x
011
r--
r--
r--
100
--x
-w-
-wx
101
---
-w-
-w-
110
--x
---
--x
111
---
---
---
Arquivo
23
24
2
Usurios e grupos
so os comandos para modificar os parmetros de uma conta; Entender o mecanismo
de shadow passwords; Conscientizar-se da importncia das senhas para a segurana
do sistema; Aprender a manipular grupos: criar, alterar e excluir; Saber como
manipular contas de usurios: criar, alterar, desabilitar e excluir; Como monitorar
as atividades dos usurios logados no sistema.
conceitos
Introduo
Quando o Sistema Operacional Unix foi criado, era comum a criao de contas de usurios.
Estes utilizavam o sistema conectados diretamente atravs de sua console ou atravs de
acesso remoto, trabalhando em aplicativos que eram executados no prprio servidor.
Nessa poca, a maioria dos usurios eram pesquisadores ou estudantes de computao e
reas relacionadas. Com a adoo em massa dos computadores pessoais, a partir da dcada
de 1980, esse modelo comeou a cair em desuso.
Com a popularizao da internet, os sistemas comearam e se tornar alvo de atacantes que
exploravam vulnerabilidades em softwares e realizavam tentativas de acesso utilizando
contas de terceiros. Com isso, os administradores passaram a adotar prticas mais seguras,
restringindo ao mximo a criao de contas de usurios. Com o passar do tempo, a ocorrncia
de incidentes de segurana se tornou cada vez mais constante, e outra prtica que passou
a ser adotada foi a criao de contas sem shell, no permitindo que os usurios fizessem
login no sistema. Assim, os usurios acessam somente os servios que so executados nos
servidores, como e-mail e compartilhamento de arquivos, por exemplo, j que no tm
necessidade nenhuma de fazerem login no servidor.
A criao de usurios e grupos em sistemas Unix-like importante para definir que recursos
podem ser acessados por quais usurios e/ou grupos e permite ao Sistema Operacional
gerenciar a execuo dos processos de cada usurio de forma adequada. Atualmente,
cada vez mais comum o uso de bases de usurios centralizadas e gerenciadas por programas
como o LDAP, que acabam com a necessidade de se criar contas de usurios em cada um
dos diversos sistemas de uma instituio. No entanto, o modelo de criao de usurios
e grupos tradicional dos sistemas Unix-like ainda bastante utilizado e ser o objeto de
objetivos
Grupos
Arquivo /etc/group:
11 grupo:senha:GID:lista_de_usurios
22 grupo: nome do grupo.
22 senha: senha do grupo (em desuso).
22 GID: nmero de identificao do grupo.
22 lista_de_usurios: relao dos usurios que pertencem ao grupo,
separados por vrgula.
33 Exemplo:
33 logistica::1001:funcionario1,funcionario2
A criao de grupos de usurios geralmente feita para controlar o acesso a arquivos
ou servios. Cada grupo no sistema possui um nome e um identificador numrico nico,
denominado Group ID (GID). As informaes sobre os grupos do sistema esto contidas nos
arquivos /etc/group e /etc/gshadow. Cada linha desses arquivos possui informaes relativas a
um determinado grupo. Suponhamos que o setor financeiro de uma empresa, que controla
o salrio dos funcionrios, deseja disponibilizar as estatsticas consolidadas desses salrios
no sistema de informaes da empresa, para que seus colaboradores possam utiliz-las
para clculos. Porm, essas informaes no podem ser vistas por todos os funcionrios da
empresa. Assim, a criao do grupo financeiro e a disponibilizao desses arquivos somente
para os usurios desse grupo resolveria o problema. A linha referente ao grupo financeiro
no arquivo /etc/group poderia ser semelhante do exemplo a seguir:
financeiro::1002:funcionario3,funcionario4,funcionario5
ao grupo o nome desses usurios. Um usurio pertence obrigatoriamente a um grupo primrio e pode fazer parte de vrios grupos secundrios, tendo assim diversos tipos de permisses. Nesta sesso sero vistos comandos que podem automatizar tarefas de manipulao de
grupos, eliminando a necessidade de edio dos arquivos /etc/group e /etc/gshadow.
Alguns cuidados adicionais devem ser tomados para evitar problemas na utilizao de
grupos. Por exemplo, suponhamos que foi criado o diretrio /home/financeiro para que os
usurios do grupo financeiro possam compartilhar arquivos. Nesse caso, as permisses do
grupo proprietrio nesse diretrio e em seus arquivos seriam rwx e rw-, respectivamente,
o que possibilita acesso irrestrito aos usurios do grupo financeiro. Nesse contexto, se o
usurio funcionario3, cujo grupo primrio funcionario3, criar um arquivo nesse diretrio,
esse arquivo ter como grupo proprietrio o seu grupo primrio.
26
# ls -la tabelas.doc
-rw-r--r-- 1 aluno1 aluno1 23 Abr 9 1523 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).
informaes relativas a um determinado grupo. O exemplo a seguir mostra uma linha tpica
27
Usurios
Arquivo /etc/passwd:
11 username: password:UID:GID:GECOS:homedir:shell
11 username: nome do usurio.
11 password: senha criptografada.
11 UID e GID: user e group identification.
11 GECOS: dados do usurio (nome, telefone comercial etc.).
11 homedir: diretrio de trabalho (home directory).
11 shell: interpretador de comandos.
No Linux, apenas os usurios cadastrados podem acessar o sistema. Eles so identificados por
um nome de usurio e uma senha, possuem um diretrio de trabalho (home directory) e um
interpretador de comandos (shell) associado. Internamente, o sistema reconhece um usurio
atravs de um nmero inteiro que o identifica de forma nica. Esse nmero o User ID (UID).
Todo usurio pertence a pelo menos um grupo, denominado grupo primrio, que representado pelo seu GID. As informaes sobre os usurios cadastrados esto armazenadas
nos arquivos /etc/passwd e /etc/shadow. Cada linha desses arquivos possui informaes relativas a um nico usurio. O exemplo a seguir mostra uma linha tpica do arquivo /etc/passwd.
aluno1:Owei3945ai/qio:503:200:Aluno 1:/home/aluno1:/bin/bash
Os campos presentes nas linhas do arquivo /etc/passwd so separados pelo caractere :
e so os seguintes: nome de usurio, senha criptografada, UID (User ID), GID (Group ID),
GECOS (campo utilizado para armazenar informaes sobre o usurio, como nome completo e telefone de contato), diretrio de trabalho e interpretador de comandos. O diretrio
de trabalho ou homedir o espao em disco reservado ao usurio na hora de sua incluso.
Por questes de segurana, alguns administradores definem contas de usurios, mas no
atribuem a elas um shell vlido. Dessa forma, esses usurios no conseguem se logar no
sistema e apenas utilizam algum servio, como o correio eletrnico ou o compartilhamento
de arquivos e impressoras.
Os usurios possuem diferentes permisses de acesso aos recursos do sistema. O usurio
root conhecido como superusurio e tem permisso para acessar qualquer recurso do
sistema e executar qualquer tipo de tarefa.
Esse usurio, que possui UID 0, usado pelo administrador do sistema, que deve utilizar essa
conta com bastante cautela, j que pode cometer algum erro grave e danificar todo o sistema.
A senha do usurio root geralmente definida durante a instalao do Linux. Durante a
Administrao de Sistemas Linux
instalao do sistema, alm do usurio root, so criados diversos usurios de sistema, com
28
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 desse mtodo que o arquivo /etc/shadow s pode ser lido pelo administrador, ficando inacessvel para um usurio comum. Quando se utiliza shadow passwords,
o arquivo /etc/passwd possui apenas o caractere x no campo que armazena as senhas.
11 expire: nmero de dias desde o dia 1/1/1970 em que a conta ser desabilitada.
29
aluno1:Owei3945ai/qio:15360:0:99999:7:5::
Os campos presentes nas linhas do arquivo /etc/shadow so separados pelo caractere : e
so os seguintes:
11 nome de usurio;
11 senha criptografada;
11 last_changed: representa o nmero de dias desde o dia 1/1/1970, quando a senha foi
trocada pela ltima vez;
11 minimum: representa o nmero de dias que o usurio deve aguardar para poder alterar
sua senha;
11 maximum: o nmero de dias que a senha ser vlida (aps isso o usurio obrigado a
alter-la);
11 warn: representa o nmero de dias antes de a senha expirar em que o usurio ser
avisado de que deve alter-la;
11 inactive: o nmero de dias aps a senha ter sido expirada em que a conta ser desabilitada;
11 expire: representa o nmero de dias, desde o dia 1/1/1970, em que a conta ser desabilitada.
O arquivo /etc/shadow gerado a partir do arquivo /etc/passwd e de informaes contidas no
arquivo /etc/login.defs. Para habilitar o esquema de shadow passwords e gerar o arquivo
/etc/shadow, basta executar o comando pwconv. Esse comando cria os arquivos /etc/shadow e
/etc/gshadow. Para desabilitar o esquema de shadow passwords, basta executar o comando
pwunconv. Esse comando remove os arquivos /etc/shadow e /etc/gshadow, e armazena novamente as senhas criptografadas dos usurios no arquivo /etc/passwd.
contas de usurio. A tabela 2.1 mostra os tipos de contas com seus respectivos nveis de
30
Permisses
Usurios
Administrador
Total
root
Padro
Parcial
aluno
Sistema
Especfica
Tabela 2.1
Tipos de contas de
usurios.
Senhas
11 Escolher senhas complexas.
31
11 nome:senha:UID:GID:GECOS:home_dir:shell
32
Arquivo /etc/shadow:
11 nome:senha:last_changed:minimum:maximum:warn:inactive:expire
22 Definir senha temporria.
Conforme vimos no incio desta sesso, o arquivo /etc/passwd composto por uma srie de
campos que descrevem desde o nome do usurio at o interpretador de comandos utilizado
por ele. Em um ambiente composto por vrios servidores Linux, as contas de usurios so
frequentemente gerenciadas por uma base global, como o NIS ou o LDAP, de forma que ao
se criar um usurio ele passa a ser reconhecido em qualquer um dos servidores.
Saiba mais
cher cada um dos campos do arquivo /etc/passwd, tomando alguns cuidados especiais.
Em servidores de
e-mail, deve-se evitar
o uso de apelidos,
j que os nomes de
usurios so utilizados
nos e-mails, que tm
associado o nome de
domnio da instituio.
Um exemplo de poltica
criar o nome do
usurio usando o seu
nome e o ltimo sobrenome (exemplo: nome.
sobrenome).
O nome do usurio, por exemplo, deve ser nico e pode conter at 32 caracteres na maioria
das distribuies Linux. Ele pode incluir letras minsculas, nmeros e alguns caracteres
especiais, como ., _ e $, este ltimo para manter compatibilidade com o samba, que
utiliza o caractere $ no final do nome das contas de computadores da rede. importante ressaltar que o primeiro caractere deve ser, por padro, uma letra minscula ou o
caractere _. Os caracteres permitidos para uso em nomes de usurios so definidos pela
varivel NAME_REGEX, mas as regras definidas por essa varivel s valem quando se utiliza
o comando useradd para criar as contas de usurio. O comando useradd pode ser utilizado
com a opo --force-badname para ignorar as regras definidas na varivel NAME_REGEX.
Por fim, importante definir uma poltica para a criao dos nomes dos usurios.
Ao editar o arquivo /etc/passwd, o administrador deve colocar o caractere * no campo referente senha criptografada. Assim, ele evita o uso no autorizado dessa conta at que tenha
estabelecido uma senha para ela. Se o sistema utilizar o esquema de shadow passwords, o
administrador tambm deve editar o arquivo /etc/shadow para criar a entrada para a nova conta.
Na maioria das distribuies Linux, o campo correspondente identificao do usurio, o
UID, representado por um nmero de 16 bits, variando entre 0 e 65.535. Em sistemas mais
novos, o UID representado por um nmero de 32 bits, resultando em mais de 4 bilhes
de UIDs possveis. Em um ambiente de rede utilizando Network File System (NFS), os UIDs
devem ser nicos em toda a rede, isto , um UID precisa se referir sempre ao mesmo nome
de usurio. Usurios de sistema geralmente possuem UID entre 1 e 100. Dessa forma,
recomendvel atribuir para os usurios criados valores maiores que 100. Tambm
aconselhvel evitar reutilizar UIDs, mesmo de contas que j tenham sido removidas.
O administrador pode usar qualquer editor de texto para fazer essas alteraes, mas
quando disponvel, o comando vipw deve ser usado para editar os arquivos /etc/passwd e
/etc/shadow, pois previne possvel corrupo nos arquivos por conta de acessos simultneos.
Assim como o UID, o GID tambm representado por um nmero de 16 ou 32 bits, que
deve ser atribudo de acordo com o grupo primrio ao qual o usurio pertence. O GID de
nmero 0 reservado ao grupo chamado root ou wheel. Grupos de sistema geralmente
possuem GIDs entre 1 e 999. O campo GECOS usado para identificar o usurio. Dessa
forma, costuma-se colocar informaes, como seu nome completo, nmero de telefone do
trabalho, ramal etc. O diretrio de trabalho do usurio o local do sistema de arquivos para
aonde este direcionado quando faz login no sistema e corresponde rea do sistema onde
ele tem permisso para armazenar seus arquivos. Os diretrios de trabalho dos usurios de
um sistema, de maneira geral, tm o mesmo nome do usurio e se localizam a seguir de um
mesmo diretrio, chamado /home.
Existem alguns interpretadores de comandos disponveis no sistema. Exemplos de shells
utilizados so o /bin/sh, o /bin/tcsh e o /bin/bash. A maioria das distribuies Linux permite
que o usurio defina o interpretador de comandos com o qual quer trabalhar.
Linux pode ter mais de um administrador, e nesse caso possvel acontecer a situao
33
11 Exemplo:
22 # passwd aluno
22 Enter new UNIX password:
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.
# mkdir /home/gerente1
# chown gerente1 /home/gerente1
# chgrp gerencia /home/gerente1
34
Saiba mais
Para consultar mais
informaes a respeito
desse comando, sua
pgina de manual pode
ser visualizada atravs
do comando
man chage.
# chage -d 0 aluno1
# cp /etc/skel/.bash* /home/aluno
# chmod 644 /home/aluno/.bash*
# chown aluno:aluno /home/aluno/.bash*
# pwd
# ls -la
O primeiro comando serve para verificar se o diretrio de trabalho do usurio est correto.
O segundo serve para verificar se os arquivos de configurao foram devidamente copiados
e se os parmetros referentes a dono, grupo e permisses esto corretos. Nesse ponto,
o administrador deve informar ao usurio seu nome de usurio e sua senha inicial. Essa
tambm a hora de fornecer alguma documentao sobre as regras de utilizao dos
recursos de TI da instituio. Se for exigido que o usurio assine um termo de compromisso
para ter acesso ao sistema, importante obt-lo antes de liberar o acesso conta.
Administrando grupos
11 Criando grupos.
11 Removendo grupos.
A administrao de grupos no Linux pode ser totalmente automatizada por alguns
comandos que permitem criar, alterar e remover grupos. Isso simplifica bastante o trabalho
do administrador, j que esses comandos eliminam a necessidade de se editar os arquivos
/etc/group e /etc/gshadow, operao que requer muita ateno e apresenta o risco de provocar alguma modificao indesejada. Alm disso, o administrador tambm pode utilizar o
comando groups para verificar os grupos aos quais um usurio pertence.
11 Modificando grupos.
35
Criando grupos
groupadd:
Modificando grupos
groupmod
Removendo grupos
groupdel
11 Remove um grupo.
36
delgroup
11 Remove um grupo.
Remove entrada no arquivo /etc/gshadow automaticamente (shadow passwords).
O comando deluser tambm pode ser utilizado com a opo --group para remover
um grupo.
Um grupo pode ser removido atravs dos comandos groupdel e delgroup. Se o esquema
de shadow passwords estiver habilitado, a entrada referente ao grupo removida automaticamente do arquivo /etc/gshadow. Para consultar mais informaes a respeito desses
comandos, suas pginas de manual podem ser consultadas. Alm desses comandos, ainda
podemos utilizar o comando deluser com a opo --group para remover um grupo. A edio
de grupos em algumas distribuies pode conter apenas um dos comandos.
Exemplo: CentOS possui apenas o comando groupadd. J o Ubuntu possui ambos os comandos.
name:passwd:uid:gid:GECOS:dir:shell
Os campos devem ser separados pelo caractere : e so os seguintes: nome do usurio;
senha (no criptografada); uid; gid; GECOS (as informaes como nome e telefone devem
ser separadas por vrgulas); diretrio de trabalho e interpretador de comandos. Como esse
arquivo possui as senhas dos usurios sem criptografia, ele deve ter permisso somente de
leitura e s para o usurio root. Por questes de segurana, assim que os usurios forem
Saiba mais
mais segura substituir o shell do usurio por um programa que imprime uma mensagem
38
11 Modo manual:
22 Remover entradas dos arquivos /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow.
22 Fazer backup dos arquivos do usurio.
22 Realocar arquivos de uso comum.
22 Remover diretrio de trabalho.
22 Remover as referncias quota do usurio.
22 Evitar a reutilizao do UID.
11 Modo automatizado:
22 Comandos userdel e deluser.
Quando um funcionrio sai da empresa em que trabalha, necessrio remover sua conta
e seus arquivos do sistema. preciso, ento, retirar as entradas criadas nos arquivos /etc/
passwd, /etc/shadow, /etc/group e /etc/gshadow, relativas ao usurio em questo. Por fim,
deve-se realocar os arquivos que tm utilidade para outros usurios e fazer um backup do
diretrio de trabalho do usurio, para s depois remov-lo do sistema. Os comandos deluser
e userdel removem a conta de um usurio, sem a necessidade de seguir todos os passos
necessrios para remover uma conta manualmente. O comando a seguir remove o usurio
aluno1 e seu diretrio de trabalho.
# userdel r aluno1
Se o sistema utilizar quotas de disco, tambm devem ser removidas as referncias a quotas
criadas, utilizando o comando edquota.
Monitorando usurios
11 who: mostra os usurios conectados ao sistema.
comando last. H tambm dois comandos que servem para informar os usurios que esto
39
#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 outras formas mais eficazes de se monitorar as atividades dos usurios no sistema.
Isso pode ser feito visualizando os arquivos de log, geralmente localizados no diretrio /
var/log. O programa syslog responsvel por gerenciar o registro de eventos do Linux e seu
arquivo de configurao, /etc/syslog.conf, contm as informaes sobre o local onde ficam
40
Saiba mais
O syslog ser visto em
detalhes na sesso de
aprendizagem 7.
3
Processos
os componentes de um processo e o ciclo de vida de um processo; Aprender os
princpios de um sistema multiprocessado; Saber o que um programa rodando
em background e foreground; Conhecer os estados de um processo; Entender como
funciona o esquema de escalonamento de processos no Linux; Saber os sinais que
podem ser enviados a um processo e como utiliz-los; Aprender como executar
tarefas periodicamente.
conceitos
Processos
Programa em execuo.
11 Composio:
22 Cdigo do programa armazenado em memria.
22 Dados usados pelo programa.
22 Valores armazenados nos registradores do processador.
22 Recursos alocados ao processo.
22 Atributos de segurana.
Programa:
11 Cdigo executvel armazenado em disco.
Processo certamente um dos conceitos mais importantes no estudo de Sistemas Operacionais. Os sistemas Linux utilizam uma forma muito simples e poderosa de gerenciar
processos. Um processo pode ser definido como uma abstrao que representa um programa em execuo e composto pelo cdigo do programa, seus dados e valores armazenados nos registradores do processador. Um processo tambm aloca recursos do sistema,
como arquivos e dispositivos, e possui atributos que, baseados no usurio que o executou,
definem que recursos esse processo pode usar. Os Sistemas Operacionais modernos
permitem a execuo simultnea de vrios processos, alocando o processador a cada um
Captulo 3 - Processos
objetivos
deles durante pequenas unidades de tempo. Isso possibilita que um programa seja usado
41
enquanto, por exemplo, dados so lidos do disco e um documento impresso. difcil notar
a diferena entre processo e programa, mas seu entendimento fundamental. Enquanto o
programa apenas o cdigo executvel armazenado em disco, um processo o cdigo em
execuo, juntamente com seus dados e valores dos registradores do processador.
Tipos de processos
Processos interativos:
Alm disso, os processos podem ser classificados de acordo com a porcentagem de tempo
42
Saiba mais
Processos so as
nicas entidades
ativas no Linux, ou seja,
tudo que executado
no sistema possui um
ou mais processos
associados.
Componentes de um processo
Os componentes de um processo so:
11 Espao de endereamento:
11 Conjunto de pginas de memria.
11 Contm segmentos para cdigo do programa em execuo, variveis, pilhas
e outras informaes.
Estruturas de dados do kernel:
11 Armazenam informaes a respeito dos processos em execuo:
11 Mapa do espao de endereamento.
11 Status atual do processo.
11 Prioridade de execuo.
11 Recursos utilizados.
11 Mscara de sinalizao do processo.
11 Usurio proprietrio.
Um processo tpico tem duas entidades: um espao de endereamento e um conjunto de
estruturas internas de dados do kernel. O primeiro diz respeito a um conjunto de pginas de
memria marcadas pelo kernel para o uso do processo, contendo:
11 Os segmentos para o cdigo do programa que o processo est executando;
11 As variveis usadas pelo processo;
11 A pilha do processo;
11 Outras informaes de que o kernel necessita.
As estruturas internas de dados do kernel registram vrios tipos de informao sobre cada
processo, onde as mais importantes so:
11 Mapa do espao de endereamento;
11 Status atual;
11 Prioridade de execuo;
11 Recursos utilizados;
11 Mscara de sinalizao;
11 Usurio proprietrio.
Muitos parmetros associados a um processo afetam diretamente a sua execuo. A seguir,
veremos o significado e a importncia dos parmetros mais interessantes do ponto de vista
PID e PPID
Process ID (PID):
22 Associado pelo kernel.
22 nico no sistema.
Parent Process ID (PPID).
No Linux, os processos esto organizados hierarquicamente. Cada processo criado pelo
kernel identificado no sistema, de forma nica, por um nmero inteiro atribudo a ele
Captulo 3 - Processos
de um administrador de sistemas.
conhecido pela sigla PID (ProcessID) e pode variar de 1 a 65536. Quando o kernel atinge o
valor mximo que um PID pode assumir, ele reinicia do zero, saltando os nmeros que ainda
esto em uso. Como veremos a seguir, o Linux no possui uma chamada de sistema nica
que cria um novo processo que executar um novo programa. No entanto, h um mtodo
onde um processo existente cria um clone de si mesmo para dar origem a um novo processo.
O processo original, nesse caso, chamado de processo pai, e o clone chamado de processo
filho. O atributo PPID (ParentPID) de um processo o PID do seu processo pai.
11 RUID:
22 UID do usurio que criou o processo.
11 EUID:
22 Usado para determinar o direito de acesso do processo aos recursos do sistema
(SUID).
22 Geralmente, o mesmo que o RUID.
O Real User Identification (RUID) o UID do usurio que criou o processo. J o Effective User
Identification (EUID) o UID efetivo do processo, que usado para determinar os recursos e
arquivos que o processo tem permisso de acessar. Na maioria dos processos, o RUID e o EUID
so iguais. A exceo ocorre quando o programa em execuo tem o bit SUID ativo. Nesses
casos o RUID est relacionado ao usurio executor do programa, e o EUID, ao usurio dono do
programa. Um exemplo de programa como bit SUID ativado o comando passwd. Quando esse
comando executado por um usurio comum, o RUID do processo igual ao UID do usurio
executor e o EUID do processo igual ao UID do usurio dono do programa, nesse caso, o root.
O Real Group Identification (RGID) o GID do usurio que criou o processo. J o Effective
Group Identification (EGID) o GID efetivo de um processo, que utilizado para determinar
os recursos e arquivos que o processo tem permisso de acessar. Na maioria dos processos,
o RGID e o EGID so iguais. A exceo ocorre quando o programa em execuo tem o bit
SGID ativo. Nesses casos o RGID est relacionado ao grupo primrio do usurio que est
executando o programa e o EGID ao grupo proprietrio do programa em si.
Quando um processo iniciado, seu RGID estabelecido a partir do RGID do processo pai.
Se esse processo tenta acessar um arquivo para o qual no tem permisso, o kernel vai
automaticamente verificar se a permisso pode ser garantida por intermdio do EGID.
Real and Effective Group ID (RGID e EGID):
11 Mapeados no arquivo/etc/group.
44
11 EGID:
22 Anlogo ao EUID em relao ao UID.
22 Se um processo no tem permisso para acessar um arquivo, o kernel verifica se
possvel, com base no EGID.
Prioridade
11 Determina quanto tempo o processo utilizar a CPU.
11 O Kernel seleciona qual processo ser executado de acordo com a prioridade do
processo definida no nice value.
Nice value
Terminal de controle
22 Cria uma cpia idntica ao processo pai, mas com outros PID e PPID.
22 Cdigos de retorno:
22 Se Ok: retorna o PID do filho, no contexto do processo pai e 0 no contexto do filho.
22 Se no: retorna -1 no contexto do processo pai, no cria o filho e envia o cdigo
de erro.
No Linux, processos no so gerados de forma espontnea, ou mesmo criados aleatoriamente pelo kernel. Na verdade, novos processos so criados unicamente a partir de outros
processos, por intermdio da chamada de sistema fork, que cria uma cpia exatamente
igual do processo que a executou. As principais diferenas ficam por conta do PID e do
PPID. Aps a execuo da chamada fork, os processos pai (o criador) e filho (o criado) so
tratados de maneira independente, como mostra a figura3.1, podendo criar novos processos
e dar origem a uma rvore hierrquica de processos.
P1
PID 10
Fork
P1
PID 356
Um processo filho herda uma cpia de todos os descritores de arquivos mantidos pelo
processo pai, compartilhando os respectivos arquivos. O Linux permite que os processos
identifiquem-se como pai ou como filho e sigam linhas de execuo diferentes, aps o
retorno da chamada fork. Para tal, no retorno da chamada fork, o Sistema Operacional
retorna para o processo pai o PID do processo filho. Este, por sua vez, recebe do Sistema
Operacional a penas o valor 0.
Chamada de sistema exec:
11 Altera o programa fonte que est em execuo.
11 Inicializa os segmentos de dados e pilha para um estado inicial pr-definido.
Captulo 3 - Processos
Figura 3.1
Processos
pai e filho.
45
exec
P1
P2
PID 34
Na inicializao do Linux, o primeiro processo (PID=1) a ser executado o init. Esse processo
cria diversos processos filhos, que controlam a inicializao do sistema. Portanto, todos os
processos em execuo no sistema, com exceo de uns poucos criados diretamente pelo
kernel, so descendentes do processo init. Ao final da inicializao do sistema, o init identifica os terminais conectados a esse e, por meio das chamadas fork e exec, cria um processo
associado a cada terminal para controlar o acesso ao sistema. O processo que controla os
terminais o getty, que, quando recebe um pedido de conexo, ativa o programa login para
fazer a verificao do nome do usurio e sua respectiva senha, armazenados no arquivo
/etc/shadow ou /etc/passwd, caso o esquema de shadow passwords no esteja habilitado.
Se as informaes fornecidas pelo usurio estiverem corretas, um novo processo ser
criado para executar o interpretador de comandos do usurio, que fica aguardando por um
46
Figura 3.2
Chamada de
sistema exec.
Fork
PID 1
init
PID 424
exec
init
PID 424
exec
getty
PID 424
exec
login
Fork
PID 424
Figura 3.3
Criao de
processos.
bash
PID 563
exec
bash
grep
PID 563
Multiprocessamento
Um usurio pode ter vrios processos ativos:
11 Foreground:
22 #ps aux
11 Background:
22 #firefox & (associado a um terminal)
11 Daemon:
22 Squid (no associado a terminal)
Por ser um ambiente multiusurio e multitarefa, o Linux permite que vrios usurios executem,
simultaneamente, diversos processos independentes. Cada usurio pode ter vrios processos
ativos. Em um sistema de grande porte, podem existir milhares de processos em execuo.
Os processos com que o usurio interage diretamente esto associados a um terminal,
sendo possvel para esse processo ler ou escrever dados. Diz-se que esses processos esto
sendo executados em primeiro plano ou em foreground. No entanto, existem processos
que, apesar de poderem estar associados a terminais, no permitem a interao direta do
usurio. Diz-se que esses processos esto sendo executados em segundo plano ou em
background. Muitos processos so executados em segundo plano, controlando alguma
atividade ou fornecendo algum servio. Geralmente, processos em segundo plano realizam
operaes de entrada e de sada em arquivo.
No entanto, pode existir apenas um processo executado em primeiro plano associado a um
determinado terminal. Existe um tipo especial de processo que executado em segundo
possui um terminal associado. Daemons realizam operaes de entrada e de sada em
arquivo ou por meio da rede. O interpretador de comandos permite ao usurio executar
processos em primeiro ou em segundo plano e tambm iniciar ou parar um determinado
daemon a qualquer momento.
Quando o usurio executa um processo em primeiro plano, o interpretador de comandos
somente libera o prompt aps o trmino da execuo do comando solicitado, uma vez que o
Captulo 3 - Processos
#firefox &
Nesse caso, o Firefox ser executado em segundo plano, e o interpretador de comandos
ainda permitir ao usurio fornecer novos comandos e execut-los de forma independente.
A noo de processos executados em background e em foreground est diretamente relacionada aos terminais. Em ambientes grficos de janelas, como o X-Window, os conceitos
de processos em background e foreground ainda so vlidos, porm seu entendimento no
to simples. Para um processo trabalhar com janelas, ele se comunica diretamente com
um processo gerenciador do ambiente grfico, enviando mensagens de um protocolo de
aplicao suportado pelo gerenciador.
No X-Window, o usurio pode executar uma janela emuladora de terminal usando o comando
xterm, que, por sua vez, executa um interpretador de comandos. O gerenciador do ambiente
grfico define um terminal virtual para cada janela xterm. Assim, cada janela xterm comporta-se
como um terminal, no qual podem ser executados processos em background ou em foreground,
da mesma forma como foi explicado anteriormente.
Daemon
Daemons (Disk and execution monitor) so programas que gerenciam servios que so
executados em segundo plano. Os daemons no esto associados a nenhum terminal, e
geralmente so iniciados durante o processo de inicializao do sistema. Por padro, os
nomes dos daemons terminam com a letra d. Por exemplo, o daemon que gerencia o
servio http chamado de httpd. A maioria dos servios de rede gerenciada por daemons
que ficam permanentemente em execuo, aguardando por conexes. Os servios podem
ser gerenciados por um daemon, modo conhecido como standalone, ou atravs do inetd
ou xinetd, que so daemons que gerenciam diversos servios simultaneamente. Quando o
inetd e o xinetd recebem uma requisio, eles a repassam para o daemon correspondente
ao servio solicitado.
Dessa forma, os daemons responsveis pelo servio gerenciado pelo inetd ou pelo xinetd
s so executados quando recebem alguma requisio. Isso otimiza o uso de recursos do
sistema e simplifica a implementao desses daemons, j que no precisam mais gerenciar
os servios correspondentes, deixando essa tarefa a cargo do inetd ou do xinetd.
Alternando execues
48
Comando bg:
11 Sua funo colocar um processo para rodar bem background.
Comando fg:
11 Sua funo colocar um processo para rodar em foreground.
Comando jobs:
11 Sua funo exibir os processos do sistema que esto suspensos ou rodando em
segundo plano.
#bg
[1]+ man ls &
Estados de um processo
11 Executando.
11 Bloqueado.
11 Pronto.
11 Parado.
Um processo pode assumir, basicamente, trs estados possveis: executando, bloqueado
estados, dependendo das operaes que precisa executar. Quando um processo criado,
ele vai automaticamente para o estado pronto e fica aguardando que o Sistema Operacional
aloque o processador a ele. Um processo tambm pode se encontrar diversas vezes no estado
pronto durante sua execuo, aguardando a alocao do processador para continuar sua
execuo. Quando o processador alocado ao processo, este passa para o estado executando.
Um processo que esteja executando alguma operao de entrada e sada encontra-se no
estado bloqueado. A figura 3.4 mostra o diagrama de estados de um processo.
Captulo 3 - Processos
e pronto. Durante seu ciclo de vida, um processo pode passar diversas vezes por esses
49
Executando
2
Bloqueado
4
1
Pronto
A pesar de os processos serem independentes, muitas vezes necessrio que se comuniquem. Um exemplo de comunicao entre processos atravs de pipes, representados pelo
caractere |. O pipe redireciona a sada de um processo para a entrada de outro processo.
Veja o exemplo a seguir, que concatena os arquivos file1 e file2 por intermdio do comando
cat e procura por linhas que contenham a palavra word utilizando o comando grep:
ainda consome recursos do sistema. O processo pai ento invoca a chamada de sistema wait
50
que libera o descritor de processos do processo filho, que ento finalizado. Exemplo:
Figura 3.4
Diagrama de
estados de um
processo.
11 Algoritmo de escalonamento:
22 Poltica de escalonamento:
33 Round-robin.
33 FIFO (First In, First Out).
33 Escalonamento baseado em prioridades.
O mdulo do Sistema
Operacional que se
encarrega de realizar essa alocao
chamado escalonador
de processos, e toma
suas decises baseado
em um algoritmo de
escalonamento.
Captulo 3 - Processos
Saiba mais
O comando nice tambm permite identificar o nice value corrente. Para isso, basta digitar o
comando sem parmetros. O renice, por sua vez, utilizado para modificar o nice value de
um processo que j se encontra em execuo. Por exemplo, supondo que o processo cujo
PID 1502 possui nice value igual a 0, o seguinte comando modifica o nice value para 10:
# renice 10 1502
O usurio root pode atribuir qualquer valor entre -20 e 19 ao nice value de qualquer processo. Por outro lado, usurios normais podem somente incrementar o valor do nice value
de seus prprios processos.
Algoritmo de escalonamento
Baseado em prioridade:
11 Prioridade dinmica:
22 A prioridade dos processos alterada constantemente.
22 Tenta equalizar o uso do processador.
22 Definida somente pelo escalonador.
22 Prioridade esttica:
22 Utilizada somente em processos de tempo real.
22 Definida pelo usurio.
Define uma poltica que permite ao escalonador decidir a qual processo alocar o processador.
Vrios fatores tornam um algoritmo de escalonamento mais ou menos eficiente. A lista a
seguir apresenta algumas caractersticas desejveis para um algoritmo de escalonamento.
11 Garantir que cada processo ter a oportunidade de ser alocado ao processador;
11 Explorar ao mximo a capacidade do processador;
11 Balancear o uso dos recursos do sistema.
11 Como o sistema evita o monoplio do processador por um processo de alta prioridade?
First Out (FIFO), filas mltiplas, entre outros. Como o objetivo deste curso no o estudo
52
O escalonador trabalha com dois tipos de prioridade. A prioridade dinmica, que alterada
constantemente pelo escalonador, de modo que processos que esto h mais tempo sem utilizar o processador tm sua prioridade aumentada automaticamente. Por outro lado, processos
que utilizaram o processador recentemente tm sua prioridade automaticamente diminuda.
Alm da prioridade dinmica, existe a prioridade esttica, que utilizada exclusivamente por
processos em tempo real. O valor da prioridade esttica pode variar de 1 a 99, e definido
pelo usurio, no podendo ser alterada pelo escalonador. Processos em tempo real possuem
sempre maior prioridade com relao aos processos interativos ou em batch e s podem ser
criados por usurios com privilgios especiais. O escalonador s executa processos interativos
ou em batch, se no houver nenhum processo em tempo real sendo executado.
Vale ressaltar que as polticas utilizadas pelo escalonador para tratar processos em tempo
real so diferentes da poltica baseada em prioridades, utilizada para os processos interativos e em batch. Essas polticas utilizadas no gerenciamento de processos em tempo real
no sero vistas neste curso por no fazerem parte de seu escopo.
Uso de sinais
11 Forma de comunicao entre processos.
11 Modo de ocorrncia:
22 Ao receber um sinal, o processo interrompe sua execuo.
22 Trata o sinal ou o kernel atua com uma ao padro (diferente para cada sinal).
22 Aps o tratamento do sinal, o processo retoma sua execuo ou finalizado.
11 Uso de sinais:
22 Comando kill:
33 Envia sinais para processos utilizando seu PID como parmetro.
22 Comando pkill:
33 Envia sinais para processos utilizando seu nome como parmetro.
O Linux permite que eventos externos sejam comunicados a processos por meio do envio
de sinais. Uma vez que um processo pode enviar sinais a outros processos, eles podem ser
vistos como uma forma de comunicao entre processos. Quando um processo recebe um
sinal, ele interrompe a sua execuo. Em seguida, o processo executa um procedimento de
tratamento do sinal, ou o prprio kernel executa uma ao padro, diferente para cada tipo
de sinal. Aps o tratamento do sinal, o processo retoma sua execuo ou encerrado. Como
pode ser visto, o tratamento de sinais bastante semelhante ao tratamento de interrupes
no sistema de entrada e sada.
Um processo pode ser configurado para tratar o sinal (o procedimento de tratamento
executado) ou para ignor-lo (a execuo do processo no afetada). O usurio pode enviar
sinais para processos utilizando o comando kill. Nesse comando, o tipo de sinal infortambm pode ser usado para enviar sinais a um processo sem a necessidade de conhecermos seu PID. O pkill passa o nome do processo com o parmetro, no lugar de seu PID.
Outro comando que referencia processos pelo nome o killall, que pode ser usado para
matar todos os processos de um determinado programa.
Captulo 3 - Processos
mado como parmetro, juntamente como identificador do processo (PID). O comando pkill
53
SIGSTOP
Interrompe a execuo do processo. O processo passa para o estado de bloqueado (stopped).
O interpretador de comandos envia esse sinal ao processo executado em foreground
quando o usurio pressiona as teclas Ctrl + Z.
SIGCONT
Retoma a execuo de um processo bloqueado. O processo retorna para o estado de pronto
(runnable).
SIGHUP
geralmente usado para fazer o processo reler um arquivo de configurao. Esse sinal
permite a reconfigurao de servios sem a necessidade de reinici-los.
SIGTERM
Pode ser tratado ou ignorado. O processo programado para tratar esse sinal termina voluntariamente, salvando dados relevantes mantidos em memria.
SIGKILL
No pode ser tratado nem ignorado pelo processo. O kernel termina o processo de forma
abrupta, e por isso os dados do processo mantidos na memria so perdidos.
O Linux possui 63 tipos de sinais que podem ser enviados para os processos. Os apresentados na tabela 3.1 so os mais utilizados. Para obter mais detalhes sobre todos os sinais
interpretados pelo Sistema Operacional, consulte a pgina do manual dos sinais com o
comando: man 7 signal.
Sinal
Numerao
SIGHUP
SIGKILL
SIGTERM
15
SIGCONT
18
SIGSTOP
19
Monitoramento de processos
Comando ps:
Administrao de Sistemas Linux
Tabela 3.1
Principais sinais
utilizados na
comunicao entre
processos.
Programa pstree:
Captulo 3 - Processos
Figura 3.5
Sada do
comando ps.
55
O comando os apresenta uma fotografia dos processos que esto rodando no sistema em
um determinado momento, e isso pode dificultar o diagnstico de uma situao de mau funcionamento do sistema, causado por um processo que esteja, por exemplo, monopolizando
o uso da CPU. Um programa que pode ser utilizado nesses casos o top, que apresenta um
resumo atualizado regularmente, dos processos ativos e dos recursos utilizados por esses.
Inicialmente, o top era disponibilizado como um pacote parte. No entanto, mostrou-se
uma ferramenta to eficaz que passou a ser incorporado s distribuies Linux.
Outro comando usado para visualizar e monitorar processos o pstree. Esse comando exibe
os processos que esto sendo executados em um determinado momento, utilizando um
formato de rvore hierrquica.
Cron
Comando crontab:
dos crontabs de usurios. Nos crontabs do sistema os nomes dos usurios sob os quais esses
comandos devem ser executados tambm devem ser especificados. As linhas de comando
so executadas pelo interpretador de comando ssh. Desse modo, qualquer coisa que feita
na linha de comandos tambm pode ser efetuada atravs do cron.
Usando o comando crontab, o usurio pode criar, modificar ou remover a lista de comandos
que sero periodicamente ativados pelo daemon cron. Cada usurio pode ter seu prprio
arquivo de crontab. A cada minuto, o daemon cron avalia esses arquivos no diretrio
/var/spool/cron/crontabs do sistema Ubuntu ou no diretrio /var/spool/cron, no caso
do sistema CentOS, para identificar tarefas dos usurios a serem executadas. Alm disso,
tambm verifica o arquivo /etc/crontab e os arquivos do diretrio /etc/cron.d que possuem
56
tarefas do sistema e das aplicaes. Os arquivos de crontab dos usurios somente devem
ser manipulados por intermdio do comando crontab. Em alguns sistemas, o administrador
pode controlar os usurios que tm permisso para criar atividades peridicas utilizando
o crontab. Para isso, basta inserir, nos arquivos /etc/cron.allow e /etc/cron.deny, os usurios
permitidos e os proibidos de utilizarem o crontab, respectivamente. Caso esses arquivos
no existam, qualquer usurio poder utilizar o cron para agendar tarefas.
Formato do crontab
Crontab:
11 Formato:
11 Minuto hora dia ms dia_da_semana usurio comando.
A tabela 3.2 mostra a sintaxe utilizada nos campos do crontab. No campo dia da semana os
valores 0 e 7 representam domingo e o valor 1 representa segunda-feira. Assim por diante,
Tabela 3.2
Sintaxe do crontab.
Campo
Descrio
Faixa
Minuto
Minuto da hora
0 a 59
Hora
Hora do dia
0 a 23
Dia
Dia do ms
1 a 31
Ms
Ms do ano
1 a 12
Dia da semana
Dia da semana
0a7
Captulo 3 - Processos
57
Anacron
Anacron:
11 Permite executar tarefas que no foram executadas pelo Cron durante o tempo em
que um servidor ficou desligado.
11 Pode ser iniciado no boot ou atravs do cron.
11 No executado como um daemon, e sim como um processo normal.
Em situaes onde um servidor fique desligado por um perodo de tempo, seja por falta de
energia ou por qualquer outro motivo, as tarefas agendadas pelo Cron para serem executadas
durante esse perodo no sero executadas quando o servidor for ligado. Para solucionar esse
problema, foi criado o programa Anacron, que verifica quais tarefas no foram executadas pelo
Cron durante o perodo de tempo em que o servidor ficou desligado e em seguida as executa.
Ao contrrio do Cron, que executado como um daemon, o Anacron executado como um
processo comum e, aps sua execuo, encerrado. Portanto, interessante automatizar
sua execuo atravs de um script a ser executado durante a inicializao do sistema ou
atravs de uma tarefa do Cron. O Anacron tambm pode ser utilizado para executar tarefas,
mas em servidores essa funo deve ser feita pelo Cron, que mais completo e oferece mais
opes de configurao. A execuo de tarefas pelo Anacron no ser abordada por no
fazer parte do escopo deste curso.
Fcron
Fcron:
sido executada.
58
Existem diversas opes alm dessas apresentadas que tornam o fcron uma alternativa bastante interessante ao cron. O fcron no vem instalado por padro nas distribuies Linux, e
seu uso, configuraes e funcionamento no sero abordados nesse curso. O administrador
pode consultar suas pginas de manual se optar por utiliz-lo no lugar do cron.
4
Sistema de arquivos
Diferenciar os conceitos de diretrio, discos e parties; Conhecer a estrutura de
particionamento; Entender o conceito de sistema de arquivos no Linux; Conhecer a
estrutura do arquivo /etc/fstab e sua importncia para o sistema; Saber utilizar
comandos de criao de sistemas de arquivos; Aprender a usar os comandos de
montagem e desmontagem de parties; Conhecer os principais tipos de sistemas
de arquivos reconhecidos pelo Linux; Entender a importncia e saber como utilizar
os comandos mkfs, fsck, mount, umount, du e df; Saber como habilitar e configurar o
esquema de quotas; Editar os limites de quotas para os usurios.
conceitos
objetivos
59
parties compe a rvore de diretrios do Linux. necessrio ter, no mnimo, uma partio
montada e essa deve obrigatoriamente apontar para o diretrio-raiz. Tambm possvel
criar outras parties e mont-las como for mais conveniente. Assim, se o administrador
definir que o ponto de montagem de uma determinada partio o diretrio /home, ento
toda a subrvore armazenada nessa partio ser acessada a partir do diretrio /home.
A figura 4.1 mostra um esquema hipottico de organizao de diretrios. Os retngulos
representam diretrios e as reas sombreadas representam as diferentes parties dos
discos. Note que a estrutura faz uso de dois discos e trs parties. Os pontos de montagem
so /usr/src para a partio 2 do disco 1 e /home para a partio 1 do disco 2. O segundo
disco pode estar instalado no mesmo servidor ou em algum servidor da rede, que prov o
acesso partio remota utilizando o protocolo Network File System (NFS).
Disco 1
Partio 1
usr
local
bin
lib
dev
etc
src
Disco 1
Partio 2
home
joel
joo
Disco 2
Partio 1
dados
Figura 4.1
Estrutura de
diretrios do Linux.
Particionamento
11 O particionamento e a estrutura de diretrios so definidos durante a instalao
do sistema.
11 Vantagens do particionamento de disco:
22 Isolamento de falhas.
22 Maior facilidade para execuo de backups.
22 Ganho de performance no acesso aos dados.
11 Comando fdisk:
60
/bin
Utilitrios do sistema
/sbin
Ferramentas de administrao
/usr
/etc
/dev
/lib
/home
/var
/tmp
Arquivos temporrios
/root
/proc
Tipos de partio
Existem trs tipos de partio que sero vistos a seguir.
11 Partio primria: o principal tipo de partio e contm algum tipo de sistema de
arquivos associado. Em um disco deve haver no mnimo uma e no mximo quatro parties
primrias. Caso existam quatro parties primrias em um disco, esse no poder conter
mais nenhum outro tipo de partio. Uma das parties primrias deve ser marcada como
inicializvel para que o Sistema Operacional possa ser carregado. No Linux as parties
primrias so identificadas em um disco IDE, por exemplo, como hda1, hda2, hda3 e hda4;
11 Partio estendida: um tipo especial de partio que no pode conter sistemas de
arquivos, mas contm at 255 parties lgicas. Um disco pode conter somente uma
partio estendida. importante ressaltar que em um disco que contenha uma partio
estendida s podero existir trs parties primrias. Ou seja, esse tipo de partio
ocupa o lugar de uma partio primria no disco. No Linux a partio estendida pode ser
identificada em um disco IDE, por exemplo, como hda1, hda2, hda3 ou hda4;
11 Partio lgica: tambm conhecidas como unidades lgicas, esse tipo de partio fica
localizado dentro da partio estendida e deve conter algum sistema de arquivos. No Linux,
as parties lgicas so identificadas em um disco IDE, por exemplo, de hda5 at hda16.
Sistema de arquivos
11 Abstrao utilizada pelo kernel para representar e organizar os recursos de armazenamento do sistema (discos, unidades de CD-ROM, pen drives etc.).
11 Composto por uma rvore hierrquica de diretrios, que tem como seu nvel mais
alto o diretrio / (raiz).
Tabela 4.1
Diretrios padro
do sistema.
/boot
61
#Filesystem
Mountpoint
Type
Options
Dump
Fsck
/dev/hda1 / ext2
rw 1
1
/dev/hda2 /usr ext2
rw 1
2
/dev/hdc none swap
rw 0
0
/dev/hdb /home ext2
rw 1
1
/dev/sda1 /dosc msdos
defaults 0
0
Algumas distribuies mais recentes do Linux, como o CentOS e o Ubuntu, apresentam uma
ligeira mudana no arquivo /etc/fstab. No campo Filesystem, o nome de dispositivo que
referencia a partio substitudo por um label ou pelo Universally Unique Identifier (UUID)
do hardware. Esse novo padro foi adotado por conta de mdias de armazenamento removveis, que podem ser associados a diferentes nomes de dispositivos quando so conectadas
ao sistema. Sendo assim, no temos como referenciar no arquivo /etc/fstab um pen drive,
por exemplo, pelo mesmo nome de dispositivo sempre, o que impossibilita sua montagem
automtica. Para evitar esse tipo de problema, algumas distribuies utilizam a notao de
labels ou UUIDs. Para verificarmos o label (quando disponvel) e o UUID de um dispositivo,
Saiba mais
devemos conect-lo ao computador e em seguida verificar a qual dispositivo ele foi associado. Basta ento executar o comando blkid, como mostra o exemplo a seguir.
# blkid /dev/sdb1
/dev/sdb1: UUID="FABC69BDBC697553" TYPE="ntfs"
Manteremos a nomenclatura que referencia as parties por seus nomes de dispositivo, por
ser didaticamente mais interessante. A figura 4.2 mostra um exemplo de arquivo /etc/fstab
Figura 4.2
Arquivo /etc/fstab.
Comandos
Comando mkfs:
11 Cria, em uma partio de um disco, a estrutura lgica correspondente ao sistema de
arquivos a ser utilizado.
Comando fsck:
11 Verifica a consistncia e repara possveis erros em um sistema de arquivos.
11 Pode ser rodado automaticamente na inicializao do sistema.
63
Comando mount:
mkfs
O comando mkfs cria em uma partio de um disco a estrutura lgica correspondente ao
sistema de arquivos especificado na linha de comando. O nome da partio tambm deve
ser especificado como parmetro para o comando mkfs.
fsck
Uma vez que, para aumento de desempenho, o kernel costuma armazenar blocos de dados
que deveriam ser salvos em disco, na memria do sistema, a imagem mais recente do
sistema de arquivos encontra-se dividida entre o disco e a memria. Assim, caso haja falha
de energia, pequenas inconsistncias podem ser introduzidas no sistema de arquivos, uma
vez que informaes armazenadas na memria no puderam ser salvas no disco.
O comando fsck (file system consistency check) analisa um filesystem procura de erros e,
caso encontre algum, tenta corrigi-lo. O nome da partio deve ser informado como parmetro para o comando fsck. Na inicializao do sistema, as parties marcadas para serem
verificadas no arquivo /etc/fstab podem ser verificadas automaticamente pelo comando fsck,
que examina e corrige eventuais erros. Os sistemas de arquivos so verificados obedecendo
ordem numrica crescente indicada no campo Fsck do arquivo /etc/fstab. Se dois sistemas
de arquivos esto localizados em diferentes discos, pode ser fornecido a eles um mesmo
nmero de sequncia, que far com que o fsck verifique os dois simultaneamente. A partio
raiz deve sempre ser verificada antes de qualquer outra. Os erros mais comuns encontrados
em sistema de arquivos corrompidos so:
11 Inodes no referenciados;
11 Link counts inexplicavelmente grandes;
11 Blocos de dados no utilizados no registrados nos mapas de blocos;
11 Blocos de dados registrados como livres, mas que esto sendo utilizados por algum arquivo;
11 Informao de resumo incorreta no superbloco.
Erros que no se enquadram em uma das cinco categorias citadas so potencialmente perigosos. Na sua deteco, o fsck entra no modo interativo e solicita ao administrador que con Administrao de Sistemas Linux
firme cada um dos reparos que ele executa. Nesse caso, so grandes as chances de perda de
64
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
umount
O comando umount utilizado para desmontar uma partio que tenha sido anteriormente
montada. Quando uma partio desmontada, sua subrvore de diretrios passa a no
mais fazer parte da rvore de diretrios principal. importante ressaltar que uma partio
s pode ser desmontada se no possuir nenhum recurso sendo utilizado pelo sistema.
du e df
Comando du:
11 Mostra o tamanho de arquivos e diretrios.
11 til para verificao dos maiores utilizadores de espao em disco.
Comando df:
11 Lista o uso de espao em disco de cada partio.
11 Exemplo:
22 # df -k
Para verificar a taxa de ocupao dos diretrios e parties, o administrador pode utilizar
os comandos du e df. O primeiro percorre a rvore do diretrio especificado e identifica o
espao ocupado pelos seus arquivos e subdiretrios. O segundo fornece informaes sobre
o espao livre e o espao utilizado nas parties. O comando df tambm pode mostrar
a taxa de utilizao de inodes por partio. Para obter mais informaes sobre esses
comandos, suas pginas de manual podem ser consultadas. Os exemplos a seguir mostram
as sadas dos comandos df e du, respectivamente.
# df -h
Filesystem
/dev/sda1
Size
32G
21G
32% /
# df -i
Filesystem
/dev/sda1
# du -hcs /var/*
4.0K
/var/backups
48M
/var/cache
Inodes
2039808
IUsed
181908 1857900
9% /
Saiba mais
qualquer ponto da rvore de diretrios, desde que no utilize nenhum nome de diretrio
65
4.0K
/var/crash
81M
/var/lib
4.0K
/var/local
/var/lock
3.9M
/var/log
4.0K
/var/mail
4.0K
/var/opt
36K
/var/run
28K
/var/spool
4.0K
/var/tmp
132M
total
A tabela 4.2 mostra os principais tipos de sistemas de arquivos suportados pelo Linux.
66
Sistema de Arquivos
Descrio
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
Saiba mais
A partir do kernel 2.6.0,
existem drivers disponveis que permitem
que o Linux escreva
em volumes NFTS,
entretanto, no so
consideradas solues completamente
seguras e por isso no
so recomendadas
para ambientes de
produo.
Tabela 4.2
Tipos de sistemas
de arquivos
suportados.
Sistema de quotas
11 Administra o uso de espao em disco pelos usurios.
Preparando o sistema
Preparando o sistema:
Habilitando
11 /etc/rc.local.
11 /etc/fstab.
11 Informar se o controle ser por usurios (usrquota), por grupos (grpquota) ou ambos.
11 Controle realizado por partio.
recompilar o kernel caso seja necessrio. Levando em conta que ser utilizada uma verso
67
# touch /aquota.user
# touch /aquota.group
# chmod 600 /aquota.user
# chmod 600 /aquota.group
Esses comandos criam arquivos de quotas vazios.
Inicializando
68
22 Comando quotacheck:
33 Inicializa os arquivos aquota.user e aquota.group.
33 # quotacheck -auvg
22 Comando quotaon:
33 Ativa o suporte a quota de disco.
33 # quotaon -augv
Aps a criao dos arquivos aquota.user e aquota.group, todas as parties com quota habilitada devem ser desmontadas e montadas novamente, para que as alteraes entrem em
vigor. Se for habilitado o sistema de quotas na partio raiz, o sistema deve ser reiniciado, j
que essa partio no pode ser desmontada com o sistema em uso. Em seguida, o administrador deve usar o comando quotacheck com a opo -a para inicializar os arquivos de controle de quotas criados, com a situao corrente de utilizao das parties. Se for utilizado
com as opes -augv, cria ambos os arquivos e inicializa-os com os dados atuais de uso de
disco por usurio e grupo. Para finalizar o processo, o comando quotaon deve ser executado
com as opes -augv para ativar o suporte a quota de disco em todas as parties.
Editando quotas
Comando edquota:
limite soft apenas durante o grace period. Se esse perodo for esgotado e o usurio ainda
ele deve ser agendado no crontab do usurio root para ser executado periodicamente.
69
Para especificar os limites de quotas de disco para usurios e para grupos, deve-se utilizar o
comando edquota. Esse comando ativa o editor vi para modificar os arquivos aquota.user ou
aquota.group. possvel utilizar outro editor, especificando-o na varivel de ambiente editor.
Por exemplo, supondo que se deseja definir quotas de disco para o usurio aluno1, deve-se
ativar o comando edquota da seguinte forma:
# edquota -u aluno1
Esse comando ativa o editor vi e exibe a seguinte mensagem:
# edquota -t
possvel facilitar a definio de quotas em um sistema, fazendo uso da opo -p do
comando edquota. Com essa opo, podemos definir as quotas de um usurio com base nas
de outro. Exemplificando, se quisermos definir as quotas dos usurios aluno2 e aluno3 de
forma igual s quotas do usurio aluno1, podemos utilizar o seguinte comando:
70
Isso evita que o administrador tenha de editar os parmetros de quota para cada usurio e
facilita a definio de quotas para mltiplos usurios. Essa opo tambm pode ser utilizada
para definir quotas para grupos. Basta utiliz-la em conjunto com a opo g.
Verificao e gerenciamento
Comando quota:
11 Utilizado para verificar as quotas de um usurio.
Comando repquota:
11 Utilizado para verificar as quotas de uma partio.
Para verificar as quotas estabelecidas para um determinado usurio, deve ser utilizado o
comando quota. Esse comando informa o status das quotas para um determinado usurio
nas parties em que ele ultrapassou o limite estabelecido. A informao completa sobre
as quotas em todas as parties pode ser obtida adicionando a opo -v. Usurios podem,
individualmente, verificar o seu status de quota, usando esse comando quando estiverem
trabalhando no sistema. Entretanto, apenas o administrador, por meio da conta root, pode
ver as quotas de outros usurios. O exemplo a seguir mostra as estatsticas de uso de
espao em disco e nmero de arquivos do usurio aluno1.
# quota -u 1001
Disk quotas for user aluno1 (uid 1001):
Filesystem
/dev/sda2
blocks
876
quota
limit
grace
files
quota
limit
83
10000
10500
100000 105000
grace
O comando repquota pode ser usado para exibir as quotas de usurios e grupos, separadas por
partio. So exibidas informaes como grace time e limites soft e hard para blocos e inodes.
O exemplo a seguir mostra o relatrio do uso de quotas por usurio, na partio /dev/sda2.
# repquota -aug
*** Report for user quotas on device /dev/sda2
Block grace time: 7days; Inode grace time: 7days
Block limits
User
used
soft
File limits
hard
grace
used
soft
hard
grace
-------------------------------------------------------------------root
--
15431
none
5318
aluno1 +-
5731
200500
300000
none
11245
none
71
72
5
Backup
Aprender os principais comandos do Linux usados para fazer backup; Conhecer os
softwares Amanda e Bacula, e saber como configur-los e utiliz-los para fazer backup
e restore de dados; Ver os principais softwares comerciais de backup; Entender o
que uma poltica de backup e saber como defini-la.
conceitos
Introduo
11 Poltica de backup eficiente para combater:
Captulo 5 - Backup
objetivos
dispe de diversos mtodos que podem ser utilizados para a realizao de backups.
73
Esses mtodos vo desde comandos simples, como tar e cpio (includos na instalao da
maioria dos sistemas), at sofisticados pacotes comerciais.
Um backup pode ser to simples quanto copiar toda a rvore de diretrios em uma
mdia de gravao, utilizando o comando tar, ou to sofisticado quanto os complexos
mecanismos utilizados pelos softwares profissionais de backup.
Tipos de backup
Existem trs tipos de backup:
11 Completo:
22 Todo o contedo armazenado.
22 Consome grande quantidade de tempo para ser realizado.
11 Diferencial:
22 S armazenado o contedo que foi alterado aps a realizao do ltimo
backup completo.
22 Em um processo de recuperao de dados, a mdia com o ltimo backup completo
tambm necessria.
11 Incremental:
22 S armazenado o contedo que foi alterado aps a realizao do ltimo backup,
independente de seu tipo.
22 Em um processo de recuperao de dados, vrias mdias podem ser requeridas.
Existem trs tipos de backups, descritos a seguir:
11 Completo: no backup completo, todo o contedo copiado para a mdia de backup
utilizada. A vantagem desse tipo de backup que a recuperao dos dados mais rpida,
j que para recuperar um contedo perdido logo aps um backup completo s preciso
termos em mos a mdia que foi usada para armazenar esse backup. A principal desvantagem do backup completo a grande quantidade de tempo gasto para realiz-lo.
Uma poltica de backup eficiente geralmente inicia um ciclo de backup com um backup
completo e prossegue com backups incrementais ou diferenciais de acordo com a necessidade do administrador. Cada novo ciclo deve ser iniciado com um backup completo;
11 Diferencial: no backup diferencial, somente os contedos modificados aps a realizao
do ltimo backup completo so copiados para a mdia de backup. Esse tipo de backup
representa a diferena entre o estado atual e o ltimo backup completo. A recuperao
de dados nesse caso um pouco mais demorada, j que para recuperar um contedo
Administrao de Sistemas Linux
74
ltimo backup diferencial. Mesmo que o arquivo tenha sido modificado aps o backup
completo, esse necessrio no processo de recuperao dos dados;
11 Incremental: No backup incremental, somente os contedos modificados aps o
ltimo backup so copiados, independentemente se esse foi completo, diferencial ou
incremental. Esse tipo de backup representa a diferena entre o estado atual e o ltimo
backup realizado. A recuperao de dados nesse caso pode ser bastante complexa,
j que pode haver diversas combinaes de tipos de backup realizados entre o backup
incremental que se deseja recuperar e o ltimo backup completo. Para restaurar um
backup incremental, necessrio que estejam disponveis pelo menos as mdias
Mdias de backup
11 A escolha depende de alguns fatores:
Fitas magnticas
Linear Tape Open (LTO):
Captulo 5 - Backup
Mdias pticas
CD/DVD:
11 Mdia popular.
11 Baixa capacidade de armazenamento.
Blu-Ray:
11 Mdia que vem se popularizando.
11 Maior capacidade que a do DVD, mas bem menor que a oferecida pelas fitas magnticas.
11 Custo por gigabyte relativamente alto.
As mdias pticas so mais utilizadas para a realizao de backups em casos especficos.
Elas no costumam ser utilizadas em rotinas de backup, devido sua baixa capacidade de
armazenamento. Suas principais vantagens em relao aos outros tipos de mdia so: baixo
custo das mdias e dos dispositivos de gravao. A seguir sero vistos os principais tipos de
mdias pticas:
CD
Esse tipo de mdia bastante popular e pode ser lida, praticamente, em qualquer computador domstico. A sua principal desvantagem, no entanto, a capacidade de armazenamento de somente 700 MB, o que torna sua utilizao invivel para armazenamento de
grandes volumes de dados. Outra caracterstica que inviabiliza seu uso em sistemas de
backup sua baixa taxa de transferncia de dados. Embora esse tipo de mdia no seja
particularmente bom para a execuo de backups regulares, o CD pode ser utilizado para
guardar informaes de ex-usurios do sistema. Existem tipos de CDs que pode ser regravados (RW), o que torna seu uso mais interessante.
DVD
As unidades de DVD possuem capacidade de armazenamento consideravelmente maior do
que a das mdias de CD, chegando a 17,08 GB nos DVDs dual layer/double side. Ainda assim,
no so muito utilizados em backups devido baixa capacidade de armazenamento e
baixa taxa de transferncia de dados. Geralmente so utilizados em ocasies especficas,
como para armazenar dados de ex-usurios. Tambm podem ser reutilizados.
76
Blu-Ray
Disco ptico de tamanho igual ao CD e ao DVD, criado para reproduo de vdeo de alta
definio e armazenamento de dados de alta densidade, podendo armazenar at 50 GB de
dados. Sua principal desvantagem o alto custo por gigabyte, alm de possuir capacidade
de armazenamento pequena quando comparada das mdias magnticas.
Storage
11 Hardware para armazenamento de dados.
Captulo 5 - Backup
77
11 internet Small Computer System Interface (iSCSI): um protocolo que utiliza a rede IP
para transportar comandos SCSI entre o storage e o servidor. Sendo assim, possvel que
o servidor se comunique com os discos do storage utilizando o padro SCSI, como se esses
discos estivessem fisicamente localizados nesse servidor. O protocolo iSCSI usado por
dispositivos de armazenamento externos ligados ao servidor de backup atravs da rede IP.
Assim como no DAS e em uma SAN, as transferncias de dados do iSCSI so feitas no nvel
de bloco. A taxa de transferncia de dados limitada pela velocidade do link utilizado para
interligar o servidor e o storage (podendo alcanar at 10 Gbps em uma rede local).
Os storages tambm podem fazer uso da arquitetura Redundant Array of Inexpensive Disks
(RAID) para prover redundncia de dados. O RAID nada mais do que a combinao de
dois ou mais discos para formar uma unidade lgica de armazenamento. O RAID pode ser
implementado por hardware ou por software, e alm de redundncia tambm traz ganho
de desempenho no acesso aos dados, dependendo de como for configurado. Os principais e
mais utilizados tipos de RAID sero descritos a seguir.
11 RAID 0: tambm conhecido como striping, nada mais do que a juno de dois ou mais
discos, formando uma unidade lgica de armazenamento. A capacidade da unidade
lgica a soma das capacidades individuais de cada disco. Esse tipo de RAID no oferece
redundncia e, se algum dos discos falhar, todo o contedo perdido. Por outro lado,
seu desempenho no acesso aos dados maior, j que o contedo est dividido em vrios
discos que podem ser lidos simultaneamente. Alm disso, no h desperdcio de armazenamento, j que a capacidade total de todos os discos utilizada;
11 RAID 1: tambm conhecido como mirror e necessita de dois discos para ser implementado.
Ele utiliza o mecanismo de espelhamento de disco, ou seja, todos os dados so gravados
simultaneamente nos dois discos. O RAID 1 oferece redundncia de dados, pois mesmo que
um dos discos falhe, todos os dados podem ser recuperados no outro disco. Por outro lado,
a capacidade de armazenamento reduzida pela metade, j que o segundo disco possui o
mesmo contedo do primeiro. Alm disso, o desempenho menor, j que os dados so gravados duas vezes. O RAID 1 tambm pode ser utilizado em conjunto com o RAID 0, formando
dois conjuntos com o mesmo nmero de discos. Os discos de cada conjunto formam, atravs
do RAID 0, duas unidades lgicas de armazenamento. extremamente recomendvel que
a soma das capacidades dos discos dos dois conjuntos seja igual, caso contrrio, quando o
RAID 1 for habilitado entre as duas unidades lgicas, ele vai considerar sempre o tamanho da
menor unidade. Sendo assim, a unidade de maior capacidade ficar subutilizada;
11 RAID 5: utiliza um mecanismo de paridade, onde informaes extras sobre os dados so
armazenadas, de modo distribudo entre todos os discos, como forma de redundncia.
O desempenho para leitura de dados aumenta, j que os dados esto espalhados entre
os discos. No entanto, as operaes de escrita so mais lentas, devido ao tempo gasto
78
Ele oferece redundncia, mas sem desperdiar metade do espao total, como ocorre no
RAID 1. O RAID 5 deve ser formado por pelo menos trs discos e, caso um deles falhe, os
dados ainda podem ser acessados, porm, com queda no desempenho nas operaes de
leitura e escrita devido atividade de recuperao das informaes de paridade realizada
pela controladora de discos em tempo real. Para calcular o espao perdido no RAID 5,
deve-se aplicar a seguinte frmula: 1: 1/n, onde n representa o nmero de discos utilizados. O RAID 5 pode utilizar ainda um mecanismo chamado de hot spare, que consiste
em disco extra que s utilizado em caso de falha de algum disco. Quando a falha ocorre,
a controladora substitui o disco com problema pelo disco extra, gravando neste ltimo
todos os dados do disco que falhou.
Comandos do sistema
Existem alguns comandos do Linux que podem ser utilizados para fazer backup de dados.
No entanto, em ambientes mais complexos, extremamente recomendvel o uso de algum
software profissional de backup. A seguir, sero vistos os principais comandos do Linux que
podem ser usados para realizar backups.
Comando tar
Comando tar:
# crontab -e
00 01 * * 1-5 tar -czf /dev/rst0 /home
Uso do tar para espelhamento de rvore. Exemplo:
Captulo 5 - Backup
tersticas prprias desse tipo de mdia. Um aspecto que deve ser observado com ateno a
79
Saiba mais
Para saber quais dispositivos so rebobinveis
e quais no so,
preciso ler a documentao do sistema.
Comando cpio
11 Realiza backup de arquivos e diretrios.
11 Pode ser utilizado para ler arquivos no formato tar.
ql
Saiba mais
utilizado pelo tar, e tambm pode acessar dispositivos remotos, por exemplo, uma unidade
80
Comando dump
11 Alm de manipular arquivos e diretrios, pode manipular diretamente os blocos
do disco.
11 Permite que o backup ocupe diversos volumes.
11 No possui quaisquer restries quanto a tamanho e pathnames dos arquivos.
Saiba mais
Comando rsync
11 Utilizado para fazer backup entre dois computadores.
11 So usados algoritmos para comprimir os dados de forma a ocupar menos espao em disco.
11 uma das tcnicas utilizadas em backups.
11 Comandos gzip e bzip2:
22 Usados para compactar arquivos.
11 Comandos gunzip e bunzip2:
22 Utilizados para descompactar arquivos.
Captulo 5 - Backup
Saiba mais
81
Os backups, em geral, utilizam a tcnica de compactao de dados, visando o melhor aproveitamento da mdia de armazenamento. Os comandos mais utilizados para essa funo so
o gzip, e o bzip2, que aps a compactao, colocam os sufixos .gz e .bz2, respectivamente, no
nome do arquivo compactado. O comando bzip2 possui um algoritmo de compresso mais
eficiente que o algoritmo usado no comando gzip, mas por outro lado mais lento quando
comparado ao gzip. O exemplo a seguir mostra como compactar um arquivo, utilizando o gzip.
# gzip /home/maria/backup.tar
Para descompactar arquivos, podemos usar os comandos gunzip e bunzip2. O comando do
prximo exemplo descompacta o arquivo /home/users/maria/relat_prospec.pdf.gz.
# gunzip /home/users/maria/relat_prospec.pdf.gz
Softwares de backup
Os softwares de backup tm como principais funes automatizar, gerenciar e centralizar
o backup de uma organizao. Nesta sesso vamos apresentar em detalhes os softwares
Amanda e Bacula, que so distribudos gratuitamente. Tambm sero apresentadas
algumas caractersticas dos principais softwares comerciais disponveis no mercado.
Pacotes gratuitos
11 Amanda.
11 Bacula.
Existem vrios softwares gratuitos de backup, oferecendo diversas funcionalidades em
comum, porm, cada um com suas caractersticas especficas. Esses softwares geralmente
so compatveis com as mais diversas plataformas de hardware e Sistemas Operacionais.
Dos softwares gratuitos de backup podemos destacar o Amanda e o Bacula, que sero
descritos a seguir:
Amanda
O Amanda (Advanced Maryland Automatic Network Disk Archiver) um programa que utiliza
arquitetura cliente/servidor para realizar de modo centralizado o backup dos servidores de
uma organizao. Cada computador que fizer parte da rotina de backup necessita da verso
cliente do Amanda instalada. O Amanda possui alguns pr-requisitos para funcionar adequadamente. Os seguintes softwares devem estar instalados no servidor: samba (somente se
algum computador cliente utilizar o Sistema Operacional Windows); Perl; GNU tar; e readline
(utilizado pelo programa amrecover). Aps instalar as dependncias necessrias, o pacote do
Amanda deve ser instalado. As principais distribuies j possuem um pacote do Amanda, que
82
Bacula
O Bacula um programa que usa a arquitetura cliente/servidor e permite ao administrador
gerenciar de modo centralizado o backup dos computadores de uma organizao. Seu
design modular o torna escalvel, sendo capaz de operar em grandes redes com centenas
de computadores clientes. Entre suas principais caractersticas, podemos destacar:
11 Suporte a diversos tipos de mdia, como unidades de fita e discos;
11 Suporte a diversos tipos de Sistemas Operacionais como: Linux, *BSD, Windows, MAC etc.;
11 Armazena todas as informaes em uma base de dados (MySQL, Postgresql etc.).
Pacotes comerciais
Comerciais:
Captulo 5 - Backup
83
11 Backup Exec: um software de backup que foi desenvolvido em 1982 pela empresa
Maynard Electronics. Foi comprado por diversas empresas e passou por vrias melhorias
at ser comprado pela Symantec em 2005. O nome Backup Exec s foi adotado em 1998,
quando ainda pertencia empresa Seagate. Entre as principais caractersticas do Backup
Exec, podemos destacar: console de administrao grfico, que gerencia todas as atividades de backup e restore; suporte aos mais diversos tipos de mdias e plataformas de
hardware e software; backup de mquinas virtuais; integrao com aplicativos como MS
Exchange e SGBDs (Oralcle, SQL Server etc.); criptografia de dados etc.;
11 NetBackup: um software de backup que foi desenvolvido em 1987 pela empresa
Control Data Corporation. Passou por diversos aprimoramentos e foi comprado por
outras empresas, entre elas a Veritas, quando ficou conhecido com Veritas NetBackup.
Atualmente pertence Symantec, que o adquiriu em 2005. Entre as principais caractersticas do NetBackup, podemos destacar: console de administrao grfico, que gerencia
todas as atividades de backup e restore; criptografia de dados; controle de acesso;
suporte aos mais diversos tipos de mdias e plataformas de hardware e software; backup
de mquinas virtuais; relatrios diversos etc.
Polticas de backup
Fatores para definio da poltica de backup:
84
Essa norma vale tanto para a periodicidade com que os backups so executados, quanto
para a escolha dos dados que devem ser includos no backup. Como regra geral, temos que,
em sistemas nos quais h grande atividade por parte dos usurios, os diretrios de trabalho
devem ser salvos diariamente. J sistemas de arquivos que so modificados com menor
frequncia (o diretrio /usr, por exemplo) podem ser salvos apenas uma vez por ms.
Quando houver necessidade de operao ininterrupta do sistema, a operao de backup
deve ser planejada de modo a se adequar ao regime e horrio de uso do sistema e interferir
o mnimo possvel na rotina dos usurios.
razovel supor que o tipo de dispositivo a ser utilizado nos backups deva ser selecionado
em funo das condies anteriores, embora isso nem sempre seja possvel, devido a limitaes oramentrias. O administrador de sistemas ter de dispor de todo o seu conhecimento para fazer o melhor uso possvel dos equipamentos disponveis, sem colocar em
risco a segurana das operaes da empresa. Aqui vale lembrar que, independentemente do
procedimento normal de backup, administradores de sistemas experientes adquirem o bom
hbito de realizar backup regular de dados e programas que sero manipulados em operaes
de reconfigurao do Sistema Operacional, de reorganizao de diretrios e parties ou de
atualizao de software.
Isso porque sempre existe a possibilidade de se cometer erros, que podem levar perda de
informaes importantes ou muito trabalhosas para serem recuperadas. A administrao
da rotina de backup muito facilitada se for centralizada em um nico servidor e executada
por um software profissional de backup, seja ele gratuito ou no.
O processo de identificao das mdias demonstra ser de extrema importncia em uma
poltica de backup que prime pela eficincia. As fitas devem ser identificadas, isto , possuir
labels que indiquem unicamente o seu contedo. Informaes como a lista dos sistemas
de arquivos copiados, o nvel do backup executado e a data da sua execuo devem ser
escritas na prpria caixa que abriga a mdia. Tal procedimento facilitar bastante o processo
de recuperao de dados a partir dos backups realizados, o que ajuda bastante em situaes crticas. O administrador deve tentar utilizar uma nica mdia para realizar os backups
dirios. Com isso, ele pode programar o backup para ser executado em um horrio de pouca
utilizao do sistema, minimizando os problemas de inconsistncia de dados e queda de
desempenho nas aplicaes.
Se o backup no couber em uma nica mdia, recomenda-se comprar uma unidade de maior
capacidade, usar mltiplos dispositivos ou adquirir um rob. Para minimizar a possibilidade
de haver um sistema de arquivos que no possa ser copiado para uma nica mdia, os administradores devem levar em conta a capacidade mxima da sua mdia de backup quando
forem definir os tamanhos das parties de seus sistemas.
Captulo 5 - Backup
vadas para que se obtenha o desempenho esperado. uma boa prtica manter o registro
85
das condies ambientais (temperatura e umidade) do local de armazenamento. A necessidade de armazenamento de mdias fora do local de trabalho vai depender da criticidade dos
dados para a empresa, bem como dos riscos associados s suas instalaes.
Uma refinaria de petrleo apresenta riscos consideravelmente altos em relao ao campus
de uma universidade. Em qualquer dos casos, recomendvel o armazenamento de um
backup de nvel 0 em algum local fora da empresa, como uma garantia contra desastres
naturais. Uma empresa que possua filiais, por exemplo, pode adotar a prtica de, mensalmente, trocar fitas de backup entre elas. Ateno tambm deve ser dada segurana
do local de armazenamento da mdia de backup, visando minimizar riscos de perda dos
arquivos devido a acidentes naturais ou aes criminosas. Empresas e instituies que
trabalham com informaes sensveis ou confidenciais devem possuir locais seguros para
armazenamento das mdias utilizadas para backup de seus sistemas.
Finalmente, a boa condio de gravao da mdia de backup precisa ser verificada periodicamente. Para isso, uma soluo eficaz consiste na execuo de operaes de leitura e
recuperao a partir de uma amostra aleatria das fitas armazenadas. Outro exerccio recomendado consiste em explorar alguns cenrios que exijam a restaurao dos dados.
O cenrio de pior caso, com a perda total dos equipamentos, precisa ser estudado. O administrador, nesse caso, deve determinar quanta informao seria perdida e quanto tempo
levaria para tornar o sistema novamente operacional, incluindo o tempo de aquisio de um
novo hardware. necessrio, ento, fazer uma avaliao das respostas obtidas para determinar se elas atendem s necessidades da empresa. Caso contrrio, a poltica de backup
ter de ser revista. Para sistemas de pequeno porte, as ferramentas de backup disponveis
no Linux so satisfatrias. No entanto, para sistemas de mdio e grande porte, deve-se
86
6
Servio de impresso
impresso em sistemas Linux; Entender como se d o processo de impresso em
sistemas Linux; Compreender a diferena entre os softwares gerenciadores de
impresso; Saber qual sistema de impresso melhor atende s necessidades de uma
organizao; Conhecer os comandos necessrios para a configurao e manuteno
de um servio de impresso baseado no CUPS.
conceitos
Introduo
11 O servio de impresso de arquivos , certamente, um dos que mais exige ateno e
Histrico
11 O sistema de impresso, no incio, baseava-se em dois sistemas:
22 Line Printer Daemon (LPD), do BSD.
22 Line Printer System, do System V.
11 Instalao e configurao eram tarefas complexas, at algum tempo atrs.
objetivos
87
POSIX
Foi desenvolvido pelo Institute of Electrical and Electronics Engineers (IEEE) e definia um
conjunto comum de ferramentas de linha de comando, assim como uma interface em C para
administrao de impressoras e gerenciamento de impresso. Todavia, foi descontinuado
pelo prprio IEEE.
IPP
Foi desenvolvido pelo Internet Engineering Task Force (IETF), em 1999, e define extenses ao
protocolo HTTP para prover suporte ao servio de impresso. Diferentemente do POSIX, o
IPP desfruta de uma ampla aceitao por parte da indstria e est cotado para tornar-se a
soluo padro de impresso em rede para todos os Sistemas Operacionais. Nesse cenrio,
surgiu o CUPS, um moderno sistema de impresso para sistemas Unix, que pode ser estendido para suportar novas impressoras, dispositivos e protocolos, ao mesmo tempo em que
mantm a compatibilidade com as aplicaes existentes.
88
Job
Dados
Opes
Rede
Fila
Filtro
Impressora
22 LPD.
22 LPRng.
22 CUPS.
11 Diferentes softwares surgem na tentativa de contornar as limitaes dos antigos
sistemas de impresso.
11 A seleo do melhor sistema depende de caractersticas do ambiente.
Existem, atualmente, alguns sistemas de impresso desenvolvidos para substituir os antigos
sistemas baseados no LPD, como por exemplo, o LPRng. Entretanto, o foco desta sesso
de aprendizagem ser o CUPS, que alm de ter se tornado um padro, a melhor opo de
sistema de impresso disponvel no mercado para sistemas Unix.
Figura 6.1
Arquitetura dos
sistemas de
impresso.
89
Componentes do LPD
Componentes do LPD:
90
A forma como esses programas se relacionam, conforme o esquema apresentado na figura 6.1,
a seguinte:
1. No momento da inicializao do sistema, o daemon lpd iniciado. Ele fica, ento,
aguardando por conexes e gerencia as filas das impressoras.
2. Quando o usurio solicita a impresso de algum arquivo utilizando o comando lpr, este
contacta o lpd atravs da rede e submete os dados do usurio, que contm o arquivo a
ser impresso e as opes selecionadas pelo usurio.
3. Quando a impressora se torna disponvel, o lpd cria um processo lpd filho para realizar a
impresso do job.
4. O processo lpd filho executa o(s) filtro(s) apropriados para o job e envia os dados
resultantes impressora.
Como j sabido, o LPD foi projetado para ser utilizado em um tempo em que as impressoras eram do tipo matricial, e as demandas de impresso eram por arquivos texto. Pelo
esquema mostrado anteriormente, v-se que as necessidades mais complexas de impresso
podem ser atendidas mediante a aplicao de filtros. Para ajudar nesse processo de
filtragem, existem diversos programas, como o gs, ppdfilt, ps2ps, mpage e a2ps. A maioria
desses programas faz converses entre diferentes formatos de arquivos. Entretanto, como
se ver adiante, existem alternativas mais eficientes e menos trabalhosas.
Protocolo LPD
A RFC 1179 define o protocolo Line Printer Daemon Protocol (LPD), criado pelo IETF, que
usado pelo servidor LPD e por todos os servidores de impresso de rede usados em
sistemas Unix. Esse protocolo usado na comunicao entre o servidor e os diversos componentes, como comandos auxiliares e dispositivos. Apesar do protocolo e do servidor de
impresso possurem o mesmo nome, eles no devem ser confundidos.
LPRng
11 Implementao melhorada do LPD.
quando se deseja controlar o uso dos recursos de impresso. O LPRng usa o mesmo modelo
91
CUPS
11 Surge como alternativa s diversas implementaes do protocolo LPD.
Arquitetura
92
11 Escalonador.
11 API do CUPS.
11 Comandos BSD/System V.
11 Filtros e imagens do CUPS.
11 Backends.
Comandos BSD
Figura 6.2
Arquitetura
do CUPS.
Comandos system V
API do CUPS
Filtros
Imagens
do CUPS
Backends
Escalonador
11 O escalonador um servidor web que gerencia jobs e impressoras.
A API do CUPS contm uma srie de funes especficas para enfileiramento de jobs de
impresso. Para tal, ela obtm informaes das impressoras do sistema, acessa recursos utilizando os protocolos HTTP e IPP e manipula arquivos PostScript Printer Description (PPD).
O CUPS possui quatro tipos de arquivos de configurao, que sero apresentados na tabela 6.1.
Arquivos de configurao
do servidor HTTP
Arquivos de definio de
impressoras e de classes
Listam os filtros que, na impresso, permitem que uma aplicao envie o formato
de arquivo adequado ao sistema de impresso, que ento converte o documento
para um formato que pode ser impresso pelo dispositivo indicado.
Arquivos PPD
Arquivos de configurao
93
Comandos BSD/System V
Funcionamento do CUPS:
lista de dispositivos que ele suporta e sobre qualquer outra informao que esteja disponvel. Isso permite, por exemplo, que um backend informe ao CUPS que uma impressora HP
Deskjet 860C est conectada porta paralela LPT1.
94
Gerenciamento de impressoras
Gerenciamento de impressoras:
Figura 6.3
Interface web do
CUPS verso 1.4.3.
95
Classes implcitas:
Gerenciamento de clientes
Configurao manual:
96
Saiba mais
Apesar dessa quantidade de dados ser
pequena, em um
ambiente com muitos
servidores e dispositivos de impresso,
os valores padro
das diretivas
BrowseInterval e
BrowseTimeout
podem ser alterados
para reduzir esse fluxo
de dados.
Para contornar essa deficincia, bem como limitar a quantidade de clientes que podem buscar
informaes em um servidor, o administrador pode configur-lo para que apenas um cliente
faa esse servio e repasse as informaes para os demais. possvel implementar essa limitao inserindo a diretiva BrowseRelay no arquivo de configurao do CUPS no servidor.
Vamos supor um cenrio onde exista um servidor em uma sub-rede 1 com o IP 10.1.1.2 e
outro servidor em uma sub-rede 2 com o IP 10.1.2.4. Alm disso, vamos supor que exista
um computador cliente conectado a uma terceira sub-rede, com o endereo IP 10.1.3.101
e tambm conectado s sub-redes 1 e 2. Para esse cliente fazer o repasse de informaes
(relay) para os demais clientes da sub-rede 3, seu arquivo de configurao deve estar configurado da seguinte maneira:
broadcast da sub-rede 3.
97
98
7
Registro de eventos
Conhecer as principais solues para gerenciamento de registros de eventos em
sistemas Linux; Saber os passos necessrios para implementar um servidor dedicado
ao armazenamento de registros de eventos de todos os servidores e equipamentos
da rede; Ter contato com as principais solues de anlise de registros de eventos;
Conhecer as principais recomendaes de segurana envolvendo uma soluo
completa de gerenciamento de registros de eventos no Linux.
conceitos
Introduo
Introduo:
objetivos
em que ocorreu o evento, nome do servidor que gerou o evento, nome do programa que
gerou o evento e a mensagem emitida pelo programa. Tais informaes so de extrema
importncia para o administrador de sistemas, auxiliando-o no s no monitoramento das
atividades executadas pelos programas, como tambm na soluo e preveno de incidentes de segurana e falhas de software e hardware. Nesta sesso de aprendizagem, ser
visto como configurar um sistema Linux, para que possa armazenar os diversos registros de
eventos gerados da maneira mais adequada possvel e de acordo com a estratgia adotada
pelo administrador da rede.
Sysklogd
11 Prov suporte a registros de eventos do Sistema Operacional e das aplicaes.
11 Seu arquivo de configurao, /etc/syslog.conf, controla os registros que sero armazenados pelo syslogd por meio de regras especficas.
11 Ativa o servio de registro de eventos do sistema.
O pacote sysklogd contm os dois daemons responsveis pelo principal servio de gerenciamento de registros de eventos em sistemas Linux. O syslogd, que prov suporte aos registros de eventos gerados pelo Sistema Operacional e pelas aplicaes, e o klogd, que prov
suporte aos registros de eventos gerado pelo kernel.
Syslogd
Arquivo /etc/syslog.conf:
facilidade.prioridade ao
Os campos facilidade e prioridade, juntos, so chamados de seletor e devem ser separados
pelo caractere .. J o campo ao, deve ser separado do campo seletor por um ou mais
100
Saiba mais
Veremos que existem
outras verses de
syslog que implementam criptografia de
dados e, por isso, seu
uso recomendado.
auth,authpriv.info /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* /var/log/mail.log
*.crit /var/log/syslog
O caractere , utilizado para especificar mais de uma facilidade com a mesma prioridade, e
o caractere ;, para especificar mltiplos seletores (facilidade/prioridade) com uma ao em
comum. A seguir veremos, em detalhes, cada um desses campos.
Facilidade
utilizada para especificar o tipo de programa que est enviando o registro. Mais de uma
facilidade pode ser especificada na mesma linha, separadas por vrgulas. Na tabela 7.1,
podem ser vistas algumas facilidades utilizadas com maior frequncia. Algumas facilidades,
como a security, emitem um som de alerta e enviam uma mensagem para o console, como
Tabela 7.1
Facilidades.
Nome
Facilidade
auth
authpriv
user
cron
Registros do cron.
ftp
kern
Registros do kernel.
security
syslog
daemon
Prioridade
usada para especificar o grau de importncia de um registro. Os tipos de prioridade esto
listados na tabela 7.2, em ordem decrescente de importncia. As prioridades tambm
podem ser representadas por nmeros que variam de 0 a 7, onde o nmero 0 corresponde
a emerg, o nmero 1 corresponde a alert e assim por diante. Quando uma prioridade
definida em uma regra no arquivo /etc/syslog.conf, as prioridades de maior nvel so automaticamente consideradas. Conjuntos de facilidades e prioridades (seletores), podem ser
agrupados, separados pelo caractere ;.
101
Prioridade
Grau de importncia
emerg/panic
alert
crit
error/err
Registros de erro.
warning /warn
Registros de aviso.
notice
Mensagem que no indica erro, mas deve receber uma ateno especial.
info
Registros informativos.
debug
Registros de depurao.
none
Ao
utilizada para especificar o destino que ser dado aos registros. O destino de uma determinada regra definida no arquivo /etc/syslog.conf nem sempre um arquivo armazenado em
disco. A tabela 7.3 mostra os tipos destinos que podem ser dados a um registro. Nos casos
em que o destino for um arquivo, este deve obrigatoriamente existir. Caso contrrio, ocorrer um erro, pois o syslogd no criar o arquivo automaticamente. importante ressaltar
que o caminho completo do arquivo precisa ser especificado.
Destino
Ao
usurio
arquivo
@servidor
Os registros sero enviados ao pipe especificado (utilizado para filtros com programas externos).
/dev/console
Caracteres especiais
Existem alguns caracteres especiais que podem ser usados no arquivo /etc/syslog.conf.
102
Caracteres especiais
Funo
Quando utilizado no campo seletor, pode abranger todas as facilidades e/ou prioridades. J no campo ao, envia os registros a todos os usurios logados atravs do
comando wall.
Klogd
11 Prov suporte aos registros de eventos gerados pelo kernel.
Programa que controla o registro de eventos gerados pelo kernel, monitorando as men-
Se um sistema Linux estiver configurado para enviar as mensagens geradas pelo kernel
diretamente ao syslogd, o klogd tem a habilidade de priorizar adequadamente essas mensagens. Na tabela 7.5, podem ser vistos os nveis de prioridade definidos pelo klogd, com suas
respectivas descries.
Nvel
Prioridade
Grau de importncia
KERN_EMERG
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
menor que 7 enviada aos terminais definidos no sistema. O armazenamento de registros
com nvel de prioridade 7 desnecessrio, j que para situaes de operao normal do
sistema esses registros no so relevantes. O klogd deve ser invocado com a opo -c, para
que as mensagens geradas pelo kernel no sejam enviadas aos terminais definidos no
sistema. possvel definir tambm, por intermdio da opo -c, os registros de quais nveis de
prioridade sero enviados a esses terminais. No exemplo a seguir, todas as mensagens
geradas pelo kernel, com nvel de prioridade abaixo de 4 sero enviadas aos terminais.
# klogd -c 4
Rsyslog
11 Verso aprimorada do syslog.
11 Integrao com bases de dados.
11 Suporte criptografia de dados.
11 Definio de registros personalizados pelo administrador.
11 Incluso da facilidade e da prioridade nos registros.
O rsyslog uma verso avanada do syslog, que oferece uma srie de funcionalidades
104
Tabela 7.5
Prioridades dos
registros gerados
pelo kernel.
# Mdulos
$ModLoad imuxsock
#$UDPServerRun 514
#$ModLoad imtcp
#$InputTCPServerRun 514
# Diretivas Globais
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
# Regras Mesmo formato do syslog
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
Syslog-ng
11 Verso aprimorada do syslog.
11 Pode filtrar registros com base em seu contedo.
11 Suporte criptografia de dados.
lpr.* -/var/log/lpr.log
O syslog-ng (syslog new generation) uma verso aprimorada do syslog, que tem como
principais caractersticas:
11 Possibilidade de filtrar os registros de log com base em seu contedo, por meio do uso de
expresses regulares;
11 Possibilidade de permitir o fluxo de registros entre servidores, utilizando qualquer porta
TCP. Alm disso, seu esquema de configurao bastante intuitivo e poderoso;
11 Suporte criptografia de dados, utilizando o programa stunnel.
O syslog-ng pode ser configurado para executar um comando caso detecte um padro
em um registro que case com alguma expresso regular, utilizando a diretiva program().
A execuo automtica de programas deve ser bem planejada, pois pode sobrecarregar o
servidor ou at mesmo causar indisponibilidades, j que um mesmo tipo de registro pode
ser gerado diversas vezes em um pequeno intervalo de tempo e a execuo do programa
associado a esse pode ser demorada.
Ferramenta
de relatrios
Servidor
syslog-ng
Banco
de Dados
Mensagem syslog
syslog
Figura 7.1
Caractersticas do
syslog-ng.
usada pelo syslog, sendo baseada em quatro elementos que sero descritos na tabela 7.6:
Elemento
Descrio
Source
Define a origem dos registros de eventos. Pode ser local ou de um servidor remoto.
Destination
Define o destino dos registros de eventos. Pode ser um arquivo, script ou um servidor de logs.
Filter
Log
Diretiva que associa os elementos source, destination e filter, criando uma ao.
Os elementos source, destination e filter so criados pelo administrador separadamente e posteriormente so associados em uma ao representada pela diretiva log.
possvel especificar mais de uma origem para um determinado destino ou mais de um
destino para mensagens de uma determinada origem em uma mesma regra.
Para que o syslog-ng seja definido no sistema como o daemon padro de gerenciamento
de registros de eventos, necessrio desinstalar o sysklogd ou o rsyslog, dependendo de
qual deles estiver instalado. Alm disso, preciso remover quaisquer configuraes referentes a eles que estejam associadas ao logrotate. Em seguida, deve ser criado o arquivo
/etc/logrotate.d/syslog-ng com a sintaxe adequada para que os arquivos de log criados pelo
syslog-ng sejam rotacionados de modo correto.
106
Tabela 7.6
Sintaxe do
Syslog-ng.
options {
owner(root);
group(root);
perm(0640);
dir_perm(0740);
create_dirs(yes);
use_fqdn(no);
keep_hostname(yes);
use_dns(no);
sync(0);
};
Seo Source
Define a origem que vai gerar o evento de log.
107
Seo Filters
Criao dos filtros para interceptar apenas os eventos desejados.
108
11 Comando logrotate:
22 Rotaciona, comprime e cria novos arquivos de log do sistema.
22 O rotacionamento pode ser feito de modo automtico atravs do crontab do sistema.
O rotacionamento dos arquivos de log do sistema feito atravs do comando logrotate, que
basicamente faz cpias dos arquivos de log em uso, criando novos arquivos que passaro
a ser utilizados pelo sistema e pelas aplicaes. Opcionalmente, os arquivos de log antigos
podem ser compactados para diminuir a utilizao de espao em disco. Para automatizar
o processo de rotacionamento dos arquivos de log, o logrotate pode ser ativado via crontab
do sistema. A rotao de arquivos de log feita de acordo com o tamanho do arquivo de log
especificado, mas a opo -f pode ser utilizada para forar a rotao de um arquivo.
delaycompress
# Diretrio que contm as configuraes para as aplicaes do sistema
include /etc/logrotate.d
109
#/etc/logrotate.d/named
/var/log/named.log {
missingok
create 0644 named named
postrotate
/bin/kill -HUP `cat /var/run/named/named.pid 2> /dev/null` 2> /
dev/null || true
endscript
}
importante enviar um sinal HUP ao daemon que utiliza o arquivo de log que foi
rotacionado, para que no ocorram problemas aps sua rotao. Isso feito utilizando o parmetro postrotate.
O comando logger
11 Permite o envio de registros aos arquivos de log do sistema por meio da linha
de comando.
11 Utilizado geralmente em shell scripts.
11 Utilizado tambm para testar mudanas no arquivo de configurao do syslogd.
O comando logger permite que uma mensagem seja enviada aos arquivos de log do sistema
por meio da linha de comando. Geralmente utilizado em shell scripts desenvolvidos pelo
administrador do sistema. possvel especificar a facilidade, a prioridade e outros parmetros da mensagem. O comando logger tambm pode ser usado para testar mudanas feitas
no arquivo de configurao do syslogd. Considere a hiptese de que o administrador tenha
acrescentado a seguinte linha ao arquivo/etc/syslog.conf:
auth.* /var/log/messages
Por intermdio do comando a seguir, esse administrador pode verificar se a alterao feita
por ele surtiu o efeito esperado:
110
Se a sintaxe da linha inserida no arquivo /etc/syslog.conf estiver correta, a mensagem transmitida por meio do comando logger ser gravada no arquivo /var/log/messages.
Servidor de logs
11 Centraliza os registros de eventos gerados por todos os servidores da rede.
11 Evita que registros de eventos importantes sejam perdidos em caso de invases.
11 Facilita a vida do administrador na apurao de incidentes de segurana.
Um sistema Linux mantm um conjunto de arquivos de log que registram as diversas formas
em que o sistema foi acessado, e podem registrar indcios da passagem de um invasor pelo
sistema. Um invasor experiente, entretanto, pode remover esses indcios antes de sair do
sistema. Uma boa estratgia a ser adotada pelo administrador a instalao de um servidor
dedicado ao armazenamento dos registros de eventos gerados por todos os servidores da
rede. Essa tcnica facilita o gerenciamento, a anlise e a soluo de problemas que ocorram
nos servidores de uma organizao, bem como dificulta a remoo de registros que evidenciem uma suposta invaso.
importante que o administrador de sistemas tenha conscincia de que preciso que
os arquivos de log sejam verificados com frequncia ou de nada valer a implementao
de um esquema de segurana. Para habilitar o syslogd a receber os registros de eventos
gerados por outros servidores, deve-se inici-lo com a opo -r. Isso pode ser feito editando
o arquivo /etc/init.d/syslog e acrescentando a opo -r na varivel SYSLOGD_OPTIONS,
ou diretamente na linha de comando, caso o syslogd no seja iniciado por intermdio do
script/etc/init.d/syslog. Feita a alterao, o syslogd deve ser reiniciado. A instalao de um
servidor de logs evita que dados importantes se percam, caso algum servidor da rede seja
invadido e tenha seus dados comprometidos.
Matriz do servidor
Figura 7.2
Servidor de logs.
Log do servidor
Host do administrador
11 Arquivo /etc/syslog.conf dos servidores clientes deve ser alterado, para que os
registros de eventos gerados sejam enviados ao servidor de logs.
11 Exemplos:
22 cron.*
@servidor_de_logs
22 mail.*
@servidor_de_logs
O arquivo /etc/syslog.conf dos servidores clientes tambm deve ser modificado, para que
os registros de eventos gerados por estes sejam enviados ao servidor de logs. A sintaxe
utilizada um sinal de @ seguido do nome do servidor no campo ao de cada linha, para
redirecionar os registros gerados ao servidor de logs. O daemonsyslogd dos servidores
clientes deve ser reiniciado para que as alteraes entrem em vigor. A seguir, pode-se ver
um exemplo comentado do arquivo de configurao do syslogd de um servidor cliente, que
direciona seus registros de eventos a um servidor de logs:
22 auth,authpriv.* @servidor_de_logs
111
Arquivo /etc/syslog.conf
auth,authpriv.* @servidor_de_logs
cron.* @servidor_de_logs
daemon.* @servidor_de_logs
kern.* @servidor_de_logs
mail.* @servidor_de_logs
user.* @servidor_de_logs
Logwatch
11 Gera relatrios personalizados e os envia por e-mail.
O LogWatch processa os dados coletados armazenando-os em uma base de dados que pode
ser consultada atravs de uma interface web, que disponibiliza diversos tipos de relatrios.
Para acessar a interface web, preciso possuir uma conta de usurio nesta.
# Opes globais
LogDir = /var/log
TmpDir = /tmp
mailer = /usr/bin/mail
MailTo = root
UseMkTemp = Yes
MkTemp = /bin/mktemp
Define se os relatrios sero enviados para STDOUT ou por e-mail.
Print = No
Armazena os relatrios em um arquivo (no manda por e-mail/STDOUT).
Save = /tmp/logwatch
Define se os arquivos de log rotacionados tambm sero analisados.
Archives = Yes
Range = All
Define o nvel de detalhamento dos relatrios (Low/Med/High).
Detail = Med
Define os services que sero monitorados.
Service = All
Opo utilizada para que o logwatch analise somente o arquivo especificado.
LogFile = messages
HostLimit = Yes
Swatch
11 Analisa em tempo real arquivos de log.
11 Executa aes baseadas na deteco de padres.
11 Arquivo de configurao baseado em duas diretivas (watchfor e ignore).
11 Tipos de aes: impresso de mensagens no console; emisso de beeps; execuo de
comandos e envio de e-mails.
113
O Swatch (Simple log watcher) uma ferramenta que analisa em tempo real um arquivo de
log e, caso encontre algum padro definido pelo administrador, executa uma ao. Cada
arquivo de log a ser analisado deve ser passado como parmetro na linha de comando do
swatch. Para evitar problemas de sobrecarga ou indisponibilidade no servidor, o swatch
pode ser configurado para aguardar um intervalo de tempo entre a execuo de duas ou
mais aes disparadas por um ou mais eventos.
watchfor /INVALID|REPEATED|INCOMPLETE/
echo
bell 3
exec /usr/local/sbin/badloginfinger $0
Travamentos no sistema:
watchfor /(panic)/
echo
bell
mail suporte@dominio
ignore = /.*/
A tabela 7.7 mostra as aes que podem ser executadas pelo swatch e suas respectivas
descries:
114
Tabela 7.7
Aes do Swatch.
Ao
Descrio
echo modo
bell nmero
exec comando
pipe comando
endereo=email,subject=ttulo
write usurio1:usurio2
throttle hora:minuto:segundo
Define o perodo de tempo que ser aguardado para uma ao relacionada a um padro ser executada novamente.
Logcheck
11 Analisa arquivos de log.
INTRO=1
Define o nvel de filtragem (workstation, server ou paranoid)
REPORTLEVEL=server
Define os e-mails que recebero os relatrios das anlises
FQDN=1
Define se as entradas duplicadas sero removidas ou no
SORTUNIQ=0
Define se o arquivo cracking.ignore.d ser verificado
SUPPORT_CRACKING_IGNORE=0
SENDMAILTO=suporte@dominio
115
RULEDIR=/etc/logcheck
Define o comportamento do syslog-summary
SYSLOGSUMMARY=0
Define o tipo de subject
ATTACKSUBJECT=Attack Alerts
SECURITYSUBJECT=Security Events
EVENTSSUBJECT=System Events
Define se o prefixo [logcheck] ser includo ou no no subject
ADDTAG=no
Network Time Protocol (NTP), para evitar inconsistncias nos horrios dos registros dos
116
temas protegidos por ele reportada atravs de e-mails e registros nos arquivos de log.
117
118
8
Compreender os processos de inicializao e de desligamento de um sistema;
Entender as arquiteturas monoltica e modular do kernel e o conceito de mdulos;
Aprender sobre o processo de configurao e compilao do kernel.
conceitos
Inicializao do sistema
11 BIOS verifica o sistema e aciona carregador de primeiro estgio no MBR (512 bytes).
objetivos
119
11 Carregador de boot de primeiro estgio: possui apenas 512 bytes e contm instrues,
em cdigo de mquina, para auxiliar o computador no seu processo de inicializao.
Esse cdigo chamado de carregador de boot de primeiro estgio, e sua nica funo
localizar e carregar, na memria do sistema, o carregador de boot de segundo estgio.
Carrega a si mesmo na memria e dispara o carregador de boot de segundo estgio a
partir de uma partio inicializvel;
11 Carregador de boot de segundo estgio: sua principal tarefa carregar o kernel do
Linux na memria. Os dois principais carregadores de boot do Linux so o LILO (Linux
Loader) e o Grand Unified Boot Loader (GRUB), que sero vistos a seguir;
11 Iniciando o kernel: o arquivo de imagem do kernel carregado para a memria e os
drivers de dispositivos so carregados pelo kernel, j em execuo. Nessa fase, mensagens so exibidas na tela, indicando o reconhecimento dos dispositivos e a carga de seus
respectivos drivers. O kernel monta a partio raiz, inicialmente, no modo somente
leitura, e transfere o controle do processo de boot para o programa /sbin/init;
11 Init: o processo init passa a ser responsvel pela ativao de todos os processos que
implementam os servios configurados no sistema. Ele tambm responsvel por
montar todas as parties listadas no arquivo /etc/fstab. Aps carregar todos os programas, o prompt de login apresentado. O init est sempre em execuo e sua morte
provoca a reinicializao do sistema, ou seja, realizado um shutdown e em seguida, o
sistema inicializado.
A seguir, cada um desses estgios ser apresentado em mais detalhes.
discos rgidos. A ordem de verificao dos dispositivos pode ser alterada pelo administrador
120
atravs do setup do computador. O BIOS, ento, carrega qualquer programa que esteja
armazenado no MBR na memria RAM. Dessa forma, o controle do processo de boot do
sistema repassado pelo BIOS para esse programa.
Saiba mais
Se o computador
possui apenas o Linux
instalado e somente
uma verso de kernel,
apenas uma opo
de boot dever ser
exibida.
Aps a seleo do kernel que deve ser utilizado para inicializar o sistema, o carregador de
boot de segundo estgio localiza, no diretrio /boot, o arquivo binrio correspondente ao
kernel selecionado, que geralmente segue o padro /boot/vmlinuz-<verso_do_kernel>.
Em seguida, o carregador de boot carrega, na memria do sistema, uma imagem do disco
chamada de initial RAM disk (initrd), que utilizada pelo kernel para carregar drivers no
compilados, necessrios para dar boot no sistema. Essa tcnica particularmente til em
sistemas que possuem discos SCSI cujo driver foi compilado como um mdulo. Aps a carga
do kernel e do initrd na memria, o carregador de boot de segundo estgio passa o controle
do processo de inicializao do sistema para o kernel. A seguir, so apresentados mais detalhes a respeito dos dois principais carregadores de boot do Linux, o LILO e o GRUB.
LILO
11 Pioneiro entre os carregadores de boot.
reconhecidos. Para mais informaes, a pgina de manual do LILO pode ser consultada.
121
importante frisar que toda vez que for feita uma atualizao manual do kernel, o comando
lilo deve ser executado para que a informao pertinente seja copiada para o MBR.
GRUB
11 Possui mais recursos e est se tornando o gerenciador de boot padro do Linux.
122
/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)
default=0
timeout=5
splashimage=(hd0,0)/GRUB/splash.xpm.gz
hiddenmenu
title Fedora (3.2.8-1.fc16.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-3.2.8-1.fc16.x86_64 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-3.2.8-1.fc16.x86_64.img
title windows
rootnoverify (hd0,0)
chainloader +1
Ao compilar um novo kernel manualmente, basta ao administrador criar um novo bloco title
nesse arquivo, colocando os parmetros referentes ao novo kernel. O processo de instalao de um novo kernel pode ser feito de forma a automatizar essa tarefa.
Tabela 8.1
Comparativo
entre as notaes
utilizadas pelo
Linux e pelo GRUB.
123
Iniciando o kernel
Funes do kernel:
Processo init
Funes do init:
O Linux define nveis de execuo (runlevels) que identificam o estado atual do sistema.
124
Cada nvel possui um propsito especfico, que determina o conjunto de processos que
devem estar ativos. Para identificar os processos que devem ser ativados, o init l o arquivo
de configurao /etc/inittab. Nesse arquivo, esto todas as informaes sobre os nveis de execuo e os processos a serem inicializados. Cada linha desse arquivo indica ao init um comando
ou script que deve ser executado. Dificilmente o administrador precisa alterar o contedo do
arquivo /etc/inittab. Entretanto, indispensvel entender como esse arquivo processado.
Arquivo /etc/inittab
11 Executa o script /etc/rc.d/rc.sysinit.
Saiba mais
Os kill scripts so
responsveis por
matar os processos
que implementam um
determinado servio.
Vale ressaltar que eles
so ativados, em ordem
crescente, baseada nos
nmeros que formam
seus nomes. J os start
scripts so responsveis por ativar os
processos que implementam um determinado servio.
125
11 Formato:
22 id:rstate:action:process
O nvel de execuo pode ser modificado usando o comando telinit, sem precisar editar o
arquivo /etc/inittab. O comando telinit requer um nico parmetro, que o nvel de execuo
desejado. A tabela 8.2 descreve os nveis de execuo do Linux.
Nvel
Descrio
Desliga o sistema.
Modo monousurio.
No utilizado.
Reinicializa o sistema.
l6:6:wait:/etc/rc.d/rc 6
126
Tabela 8.2
RunLevels.
Formato: id:rstate:action:process
Comando
Ao tomada pelo processo
Run Levels Aplicveis
Identicador
Figura 8.1
Formato das linhas
do arquivo
/etc/inittab.
Upstart
11 Utilizado no Ubuntu desde 2006.
11 Orientado a eventos.
127
Configurao
Os arquivos de configurao dos servios ficam no diretrio /etc/init e possuem a extenso
.conf. Cada arquivo define um job do Upstart que pode ser uma tarefa ou um servio. Por
questes de compatibilidade, a sintaxe bem semelhante aos arquivos do sysvinit.
Exemplo 1: /etc/init/control-alt-delete.conf
1. # control-alt-delete emergency keypress handling
2. #
3. # This task is run whenever the Control-Alt-Delete key combination is
4. # pressed, and performs a safe reboot of the machine.
5.
6. description
7. author
8.
9. start on control-alt-delete
10.
11. task
12. exec shutdown -r now Control-Alt-Delete pressed
11 Linha 6: descrio do job;
11 Linha 7: informaes sobre o autor do script;
11 Linha 9: define quando e onde o job ser executado (ser executado quando o evento
control-alt-delete for acionado);
11 Linha 11: inicia a configurao da tarefa;
11 Linha 12: comando que ser executado.
Exemplo 2: /etc/init/udev.conf
1. # udev device node and kernel event manager
2. #
3. # Theudev daemon receives events from the kernel about changes in the
4. # /sys filesystem and manages the /devfilesystem.
5.
6. description
7.
128
8. start on virtual-filesystems
9. stop on runlevel [06]
10.
11. expect fork
12. respawn
13.
14.
exec /sbin/udevd --daemon
11 Linha 6: descrio do job;
11 Linha 8: especifica quando o servio deve ser iniciado, ou seja, aps o evento
virtual-filesystems ter acontecido;
11 Linha 9: determina que esse job deve ser finalizado quando o evento runlevel for
acionado em qualquer um dos nveis de 0 a 6;
11 Linha 11: o Upstart vai aguardar o processo executar uma chamada de sistema fork
uma vez;
11 Linha 12: caso o job morra de forma inesperada (exitcode diferente de 0),
ele ser reiniciado;
11 Linha 14: comando que ser executado.
Gerenciamento dos jobs
O Upstart possui o binrio initctl, que utilizado para gerenciar os jobs existentes.
11 Lista todos os jobs configurados:
22 # initctl list
11 Iniciando um servio:
22 # initctl start rsyslog
22 # start rsyslog
11 Finalizando um servio:
22 # initctl stop ssh
22 # stop ssh
systemd
Principais caractersticas:
2 Compatvel com scripts de inicializao SysV e LSB.
2 Fornece recursos de paralelizao.
2 Utiliza sockts e D-Bus activation para inicializar os servios.
2 Inicializao sob demanda.
11 Consultando o status:
129
Mantido por Lennart Poettering e um extenso grupo de parceiros, o systemd uma nova
proposta para o sistema de inicializao do Linux. Como principais metas, o systemd prope
criar menos processos e iniciar mais processos em paralelo. Seu funcionamento consiste
basicamente em adiar o incio dos processos at que eles sejam realmente necessrios e,
quando isso acontecer, utilizar todos os recursos disponveis para inici-lo.
Shutdown
11 Sua funo desligar ou reinicializar o sistema de forma correta.
130
Saiba mais
O systemd comeou a
ser testado no Fedora
15 e atualmente a
verso default para
sistemas Red Hat
Enterprise Linux 7 e
derivados, substituindo
o Upstart. Existem
outros sistemas para
inicializao, como o
SysVinit paralelo e o
OpenRC, entretanto,
no sero abordados
neste curso.
O tamanho do kernel
depende do nmero
de componentes
selecionados, por
isso, recomendado
que ele s oferea
suporte aos dispositivos instalados no
sistema. Por exemplo,
se o computador no
possui placas de som,
no h necessidade
de habilitar drivers
de placas de som no
kernel. A incluso de
drivers desnecessrios
somente torna o kernel
maior e mais lento.
Kernel Monoltico
11 composto por um grande e nico bloco de cdigo.
Saiba mais
Arquitetura do kernel
131
zao do sistema.
11 Ocupa menos espao em memria.
11 Os mdulos so carregados sob demanda e podem ser removidos da memria aps
um intervalo de inatividade.
Utilizado em Sistemas Operacionais como Linux e FreeBSD, o conceito de mdulos foi
introduzido no Linux com o objetivo de otimizar o uso da memria, j que os mdulos s so
carregados em memria quando necessrio. Alm disso, o cdigo do kernel se torna menor
quando os componentes do sistema so compilados como mdulos. Esses mdulos so
geralmente drivers de dispositivos e podem ser carregados em memria dinamicamente
quando forem solicitados por algum dispositivo. Assim, podemos manter em um mesmo
kernel componentes permanentemente habilitados de forma esttica e componentes habilitados dinamicamente configurados como mdulos.
Os mdulos, apesar de no fazerem parte do mesmo cdigo do kernel, so executados em
seu espao de memria (kernel-space). Dessa forma, o kernel monoltico, mesmo oferecendo suporte a mdulos, continua sendo nico e centralizado. Os mdulos podem ser
removidos da memria aps um intervalo de tempo de inatividade.
Mdulos do kernel
11 So carregados dinamicamente e sob demanda em memria.
132
e suas dependncias.
11 insmod: carrega em memria um mdulo, mas no carrega suas dependncias.
11 rmmod: remove um mdulo da memria.
11 lsmod: lista os mdulos carregados em memria.
11 depmod: verifica dependncias entre mdulos durante a inicializao do sistema.
11 modconf: configura um mdulo.
11 modinfo: exibe informaes sobre um mdulo.
11 Arquivo /usr/src/linux/.config:
22 Variveis que representam os componentes do kernel.
22 Pode ser alterado atravs de um editor de textos (vi, emacs etc.).
22 Tambm pode ser alterado atravs do comando make (make config, make menuconfig
ou make xconfig).
O cdigo-fonte do kernel fica localizado por padro no diretrio /usr/src/linux, que
do kernel. Nesse diretrio, o arquivo .config contm as informaes sobre a configurao
dos componentes do kernel. Esse arquivo possui diversas variveis que definem se um
determinado componente ser esttico, quando o valor da varivel y, ou modular,
quando o valor da varivel m. Um componente pode ser desabilitado se a varivel
que o representa estiver comentada. O arquivo /usr/src/linux/.config pode ser modificado
diretamente atravs de um editor de texto. No entanto, o comando make pode ser usado
para alterar o arquivo .config, simplificando a configurao dos componentes do kernel.
O comando make pode ser utilizado de trs formas para configurar o kernel. A primeira
delas usando o targetconfig, conforme mostrado a seguir:
# make config
apenas um link simblico para o diretrio /usr/src/linux-x.y.z, onde x.y.z indica a verso
133
Esse comando executa, em modo texto, um script que solicita a configurao de cada componente do kernel. Os componentes so apresentados linha a linha, obrigando o administrador a configurar todos eles, um de cada vez. O segundo mtodo para configurar o kernel
atravs do target menu config, conforme apresentado a seguir:
# make xconfig
Esse mtodo baseia-se no ambiente grfico X-Window System, tornando a configurao dos
componentes bastante intuitiva. Se o administrador possui um ambiente grfico instalado
no seu sistema, esse o mtodo mais indicado para se configurar o kernel. Nele, os componentes so listados em diferentes nveis de menu e podem ser selecionados atravs do
mouse. Os componentes podem ser includos como mdulos ou integrados ao kernel, ou
ainda excludos, de acordo com a legenda apresentada na interface. Aps a configurao
dos componentes, deve-se clicar no boto Save and Exit para criar ou atualizar o arquivo
de configurao /usr/src/linux/.config e sair do programa de configurao do kernel.
Opes de componentes:
componentes, organizadas de acordo com os menus mostrados nos mtodos make menuconfig e make xconfig.
11 Enable Loadable module support: permite a configurao de caractersticas dos
mdulos. A opo Enableloadable module support habilita a utilizao de componentes
modulares no kernel. Se essa opo for desabilitada, no ser possvel habilitar componentes como mdulos;
11 General setup: o conjunto de opes apresentado permite configurar componentes
de baixo nvel. Por exemplo, a opo Networking support habilita a configurao dos
mdulos de rede, e a opo Bus options inclui os mdulos que permitem ao kernel funcionar em plataformas com barramento PCI;
134
Compilando o kernel
Aps configurar os componentes do kernel, o administrador deve compil-lo para que as
alteraes possam ser efetivadas. Para compilar o kernel, preciso manter como diretrio
corrente o /usr/src/Linux e em seguida executar os comandos a seguir:
# make clean
# make bzImage
O comando make clean remove arquivos existentes, decorrentes de compilaes anteriores
do kernel, e o comando make bzImage gera a imagem do kernel comprimida no arquivo
/usr/src/linux/arch/i386/boot/bzImage. O comando a seguir tambm pode ser utilizado para
compilar o kernel, s que, nesse caso, a imagem criada tambm armazenada em um disquete de boot, que pode ser utilizado para testar o novo kernel.
# make bzdisk
Em caso de falha na inicializao com o novo kernel, utilizando o disquete de boot, basta
retir-lo e reinicializar o sistema.
Componentes modulares
Compilando o kernel:
135
# make modules
# make modules_install
O tempo gasto no processo de compilao do kernel varia de acordo com o hardware usado
e geralmente no dura mais do que alguns minutos. importante ressaltar que a incluso
de novos componentes modulares em um kernel operacional no requer a sua compilao.
O administrador precisa apenas definir a configurao dos componentes utilizando os
comandos make menu config ou make xconfig e, em seguida, executar os comandos make
modules e make modules_install.
Instalando o kernel
# make install
# make install
Esse comando executa o script /usr/src/linux/arch/x86/boot/install.sh, que copia a imagem
do novo kernel e os arquivos associados para o diretrio indicado, geralmente, o /boot.
Em seguida, preciso gerar a imagem initrd utilizando o comando a seguir:
Habilitando o kernel
Administrao de Sistemas Linux
Na instalao de um novo kernel, interessante que o original seja mantido como proteo
contra possveis erros que possam ocorrer durante a inicializao com o novo kernel. Essa
proteo pode ser obtida na configurao do seu carregador de boot.
Apresentamos a seguir os arquivos de configurao do LILO e do GRUB, antes e aps a instalao de um novo kernel. Assim, consideramos que o arquivo /etc/lilo.conf possui, originalmente, o seguinte contedo:
prompt
timeout=50
default=Linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
image=/boot/vmlinuz-3.2.8
label=Linux
initrd=/boot/initrd-3.2.8.img
read-only
append=root=LABEL=/
As cinco ltimas linhas formam a seo associada verso original do kernel, que usa o
arquivo vmlinuz-3.2.8 e possui o rtulo Linux. Esse rtulo exibido durante a inicializao
do sistema para que o administrador possa informar ao LILO o Sistema Operacional que
deve ser ativado. Aps a instalao, o administrador deve verificar se foi includa uma nova
seo ao final do arquivo para descrever o novo kernel, conforme mostrado a seguir:
prompt
timeout=50
default=Linux
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
# Kernel novo
image=/boot/vmlinuz-3.2.8custom
label=Linux-3.2.8custom
boot=/dev/hda
137
initrd=/boot/initrd-3.2.8custom.img
read-only
append=root=LABEL=/
# Kernel antigo
image=/boot/vmlinuz-3.2.8
label=Linux
initrd=/boot/initrd-3.2.8.img
read-only
append=root=LABEL=/
Nota-se que foi criada uma nova entrada no arquivo, mas foi mantida a verso antiga do
kernel como padro do sistema. Isso permite que o administrador teste a nova verso e s
a defina como padro aps verificar o seu funcionamento. H duas formas de se alterar a
verso padro: a primeira delas modificando o valor da varivel default para o label do
novo kernel, e a segunda trocar o valor da varivel label dos dois kernels, um pelo outro.
Em seguida, necessrio atualizar o LILO, executando o comando a seguir:
# lilo v
No caso do GRUB, vamos assumir que o arquivo de configurao, originalmente, tivesse o
seguinte contedo:
default=0
timeout=30
splashimage=(hd0,0)/GRUB/splash.xpm.gz
title Red Hat Linux
root (hd0,0)
kernel /boot/vmlinuz-3.2.8 ro root=/dev/hda3
initrd /boot/initrd-3.2.8.img
Aps a instalao do novo kernel, o arquivo deve ficar com o seguinte contedo:
default=1
timeout=30
splashimage=(hd0,0)/GRUB/splash.xpm.gz
title Red Hat Linux (custom)
root (hd0,0)
kernel /boot/vmlinuz-3.2.8custom ro root=/dev/hda3
initrd /boot/initrd-3.2.8custom.img
title Red Hat Linux
root (hd0,0)
138
Testando o kernel
11 Reinicializar o sistema utilizando o novo kernel.
11 Em caso de problemas:
22 Verificar se o LILO foi atualizado com o comando lilo -v.
22 Reativar kernel antigo.
11 Se tudo estiver certo:
22 Remover entrada do antigo kernel do arquivo de configurao do carregador de boot.
22 Remover a imagem do antigo kernel e a imagem antiga initrd.
Depois de feitas as devidas verificaes, o sistema pode ser reinicializado utilizando o novo
kernel. Se o sistema no inicializar ou apresentar problemas enquanto estiver operacional,
o administrador poder reinici-lo com o kernel antigo, selecionando-o, durante a inicializao. No momento em que o novo kernel mostrar-se estvel, basta remover a sesso de
aprendizagem do arquivo /etc/lilo.conf ou /boot/grub/grub.cfg associada ao kernel antigo e
139
140
9
Segurana bsica e procedimentos
operacionais
Conhecer os aspectos de segurana bsica do sistema; Entender a importncia da
esquema de autenticao de usurios em um sistema Linux e o princpio de
funcionamento dos algoritmos de criptografia do tipo one-way; Entender a utilidade
dos bits SUID e SGID e os riscos que trazem segurana do sistema; Conhecer os
principais gerenciadores de pacotes do Linux; Aprender alguns procedimentos
operacionais que devem ser adotados, como: estabelecimento de uma poltica de
uso de recursos computacionais, registro de ocorrncias, rotina de backup etc.
Segurana bsica
Problemas bsicos de segurana:
11 Utilizar ferramentas que suportem criptografia.
11 No ativar servios de rede desnecessrios.
11 Configurar corretamente os arquivos /etc/hosts.allow e /etc/hosts.deny.
11 Utilizar um firewall para controlar o acesso rede e um proxy para controlar
o acesso web.
Questes bsicas:
11 Orientar os usurios a utilizarem senhas no triviais.
11 Controlar o acesso fsico aos servidores.
11 Controlar a criao e a remoo de contas.
11 Impedir o uso de contas compartilhadas.
Os aspectos sobre segurana bsica e procedimentos operacionais que sero tratados
nesta sesso de aprendizagem dizem respeito apenas queles que tm alguma correlao
conceitos
objetivos
com o que foi visto nas sesses de aprendizagem anteriores. Alguns aspectos, como o uso
141
11 Chkrootkit:
22 Utilizado para detectar rootkits.
22 Analisa o sistema em busca de executveis, servios e processos suspeitos.
11 TripWire:
22 Monitora o sistema para garantir sua integridade.
142
11 OpenVAS:
22 Utilizado para detectar vulnerabilidades.
Nenhum sistema computacional est livre de ataques de crackers. O melhor que pode ser
feito dificultar ao mximo suas aes e fazer uma monitorao permanente para procurar
detectar rapidamente as tentativas de invaso. Os administradores de sistemas devem usar
alguns programas para descobrir e corrigir as possveis falhas de segurana.
Analisadores de senhas
11 Uso da criptografia one-way.
11 Senhas simples podem ser quebradas por crackers com o uso de dicionrios.
11 Alterao frequente da senha do usurio root.
11 Definir os terminais seguros no arquivo /etc/securetty.
A autenticao do usurio baseada na comparao da senha fornecida no login com aquela
armazenada no arquivo /etc/passwd ou /etc/shadow, caso as shadow passwords estejam habilitadas. Em qualquer um desses dois arquivos, as senhas so armazenadas criptografadas por
algoritmos de criptografia que esto publicamente disponveis. No entanto, a segurana no
comprometida, uma vez que esses algoritmos so do tipo one-way e, por isso, no permitem
decifrar a senha criptografada. O Linux utiliza algoritmos one-way, j que as senhas nunca precisam ser decifradas. Na prtica, a senha fornecida pelo usurio criptografada e comparada
com a senha criptografada armazenada. Se essas senhas so idnticas, o acesso ao sistema
permitido. Assim, as senhas so armazenadas de forma segura e, caso uma senha seja quebrada, no ser por falha do algoritmo de criptografia, mas do usurio, que utiliza uma senha
fcil de ser quebrada. Esse o motivo pelo qual no se deve utilizar senhas simples.
143
O uso de senhas bvias, como datas de aniversrio, nomes de membros da famlia etc. uma
das principais falhas de segurana a que os sistemas esto sujeitos. Uma senha segura deve
conter caracteres maisculos e minsculos, nmeros e ainda smbolos especiais. Isso dificulta
muito a tarefa dos crackers, que geralmente utilizam um arquivo contendo diversas senhas,
chamado dicionrio, para tentar quebrar senhas de usurios.
A melhor maneira de evitar que os usurios do sistema escolham senhas fceis de serem
quebradas empregar a mesma tcnica utilizada pelos crackers, configurando os sistemas de
modo que as senhas sejam confrontadas contra um dicionrio antes de serem efetivamente
armazenadas. Caso a senha informada esteja cadastrada no dicionrio, o sistema envia uma
mensagem ao usurio informando que a senha escolhida muito fcil de ser quebrada.
Uma vulnerabilidade extremamente grave quando sua explorao permite ao cracker
invadir o sistema obtendo os privilgios do usurio root. Esse tipo de vulnerabilidade deve
ser identificado e resolvido com a mxima prioridade. Para minimizar as chances de crackers
descobrirem a senha do usurio root, o administrador precisa mud-la periodicamente.
Outro cuidado adicional manter no arquivo /etc/securetty apenas os nomes dos terminais
seguros a partir dos quais o usurio root pode fazer login no sistema. Para os demais terminais, somente ser possvel ter privilgios de root primeiramente acessando o sistema como
um usurio convencional e depois se tornar root atravs do comando su.
Dicionrios
Nome dado a arquivos que contm as senhas mais comuns utilizadas por usurios de sistemas.
Os crackers usam esses arquivos como base para tentativas de acesso indevidas a sistemas de
terceiros. So utilizados scripts que tentam realizar login em um determinado sistema utilizando
para cada conta de usurio do sistema, todas as senhas presentes no dicionrio.
Contas compartilhadas
11 Utilizadas por diversos usurios.
144
Saiba mais
Em vez de dicionrios, o administrador
pode tambm definir
polticas de senhas,
como exigir que todas
as senhas tenham
caracteres maisculos,
minsculos, nmeros e
caracteres especiais.
SUID e SGID
SGID:
Atualizao de software
Os softwares instalados devem ser atualizados regularmente, visando a expanso de
funcionalidades e a correo de falhas de funcionamento detectadas nas verses em uso.
Os desenvolvedores tambm utilizam as atualizaes para corrigir falhas de segurana
encontradas nos seus pacotes de software, que comprometem a segurana do sistema.
O procedimento de atualizao deve ser realizado com muito cuidado, para evitar mudanas
no desejadas, que venham a comprometer o funcionamento do sistema. A maioria das
distribuies usa gerenciadores de pacotes, o que facilita bastante o processo de instalao,
remoo e atualizao de software no sistema. A seguir, sero descritos trs dos principais
gerenciadores de pacotes do Linux.
na instalao do sistema com esse objetivo. Um servidor web, por exemplo, precisa acessar
145
146
Periodicamente, novas verses de pacotes RPM so lanadas para corrigir bugs e problemas
de segurana. O administrador deve verificar, com frequncia, na pgina da distribuio
utilizada, o lanamento de novas verses de pacotes. Na verdade, os sistemas baseados em
pacotes RPM, como Red Hat, CentOS e Fedora, possuem um mecanismo ainda mais poderoso para manter o sistema sempre atualizado. Trata-se do YUM, que um gerenciador de
pacotes baseado no RPM, que ser descrito a seguir.
147
Procedimentos operacionais
Atividades do administrador de sistemas:
locais de cada instituio e aperfeioado pelo administrador no seu dia a dia. Inicialmente,
148
o administrador deve utilizar somente o que lhe parecer mais til e introduzir as demais
prticas medida que perceber sua necessidade. O registro dos dados sugeridos nas
prticas aqui descritas pode ser feito tanto em meio eletrnico quanto impresso, com um
layout requintado ou em estilo checklist. Esse no o foco da discusso, pois no importa
se o administrador vai usar caneta e papel, editor de textos, planilhas, banco de dados ou
alguma ferramenta especializada. O importante criar o hbito de registrar, de forma organizada e sistemtica, as intervenes realizadas no sistema.
Caracterizao do uso
2
3
11 Manuteno preventiva.
11 Tuning.
11 Substituio, atualizao e expanso de dispositivos saturados.
11 Aquisio de novos equipamentos.
11 Treinamento de pessoal de suporte.
A incluso de um usurio no sistema deve ser documentada com o levantamento referido
anteriormente, acrescido das informaes presentes na tabela 9.2. Essas informaes so
resultantes da incluso do usurio e devem ser registradas pelo administrador juntamente
com as informaes da tabela 9.1. O acompanhamento do uso dos recursos computacionais
149
150
Campo
Dados cadastrais
Departamento/Setor
Cargo/Funo
Telefones de contato
Endereo eletrnico
10
Tabela 9.2
Dados cadastrais
dos usurios.
dos sistemas.
22 Formato simples (eletrnico) e de fcil acesso.
11 Descobrir as necessidades dos usurios.
11 Tratar de problemas de inadequao de recursos.
11 Promover treinamento por meio da equipe de suporte.
11 Respeitar o usurio e suas necessidades.
11 Recursos computacionais so meios, e no fins.
11 Fazer verificao peridica do ndice de satisfao dos usurios.
11 Identificao de falhas no atendimento.
11 No comprometimento das atividades fim da instituio.
Visando facilitar o trabalho do novo usurio, o administrador de sistemas deve disponibilizar, em forma impressa e eletrnica, as informaes bsicas sobre as caractersticas e condies de uso dos sistemas sob sua responsabilidade. De nada adianta ter um sistema muito
bem organizado se os usurios no esto sendo bem atendidos nas suas necessidades.
Os usurios so os clientes e, como clientes, precisam ser ouvidos e respeitados, mesmo
quando suas expectativas sejam inadequadas para a realidade da instituio. Quando se
trata de instituies com uma alta taxa de rotatividade de usurios, como o caso de instituies de ensino e pesquisa, essas informaes devem possuir formato simples e resumido
e serem disponibilizadas em local de fcil acesso.
Cabe ao administrador do sistema, em ltima instncia, tentar descobrir as reais necessidades do usurio e decidir como pode melhor atend-los. Se o problema de desconhecimento dos recursos existentes e de como utiliz-los, o usurio deve ser treinado, o que pode
ser feito pela prpria equipe de suporte, ou com a ajuda de outros usurios experientes.
Caso o problema seja de inadequao dos recursos computacionais existentes para o fim
desejado, o administrador pode levar o problema ao seu superior e tentar resolv-lo da
melhor maneira possvel.
ser adquirido. Qualquer que seja a soluo encontrada para as necessidades dos usurios, o
administrador de sistemas precisa se colocar sempre na posio de quem ajuda a viabilizar
os projetos da instituio, e no como a pessoa interessada unicamente em manter os sistemas operando de maneira adequada.
O importante que o usurio do sistema seja respeitado em suas necessidades.
Afinal, os recursos computacionais so meios, e no fins para a empresa. Eles tm de ser
utilizados com o objetivo de melhorar a produtividade dos funcionrios e aumentar a
competitividade da instituio como um todo, e no como vitrine do estgio tecnolgico por
ela alcanado. O administrador de sistemas necessita manter contato permanente com os
usurios e estimul-los a opinarem sobre o funcionamento dos sistemas sob sua responsabilidade e sobre o atendimento que esto recebendo da equipe tcnica. Essa postura fundamental para que o administrador identifique, em primeira mo, as falhas de atendimento
da sua equipe, ou as necessidades no atendidas dos usurios, e possa corrigi-las antes que
151
geograficamente distribuda.
11 Cadastro com informaes de identificao e localizao de cada equipamento.
11 Histrico de manutenes preventivas ou corretivas e atualizaes de
hardware e software.
11 Inventrio de hardware e software instalados.
11 Checklist em papel para ser utilizado pela equipe de suporte local.
Os recursos computacionais sob responsabilidade de um administrador de sistemas podem
variar desde uma pequena rede local com estaes individuais de trabalho, para uso dedicado
de um pequeno grupo de usurios, at uma grande rede com diversos servidores, equipamentos de conectividade, estaes de trabalho etc. Qualquer que seja o caso, importante que
o administrador mantenha informaes atualizadas sobre os itens que compem a infraestrutura de TI. A manuteno de um cadastro com informaes de identificao e de localizao
de cada equipamento uma atividade importante em organizaes com uma infraestrutura
complexa e distribuda por diversas unidades separadas geograficamente. A tabela 9.3 mostra
os dados essenciais que devem ser coletados para a montagem desse cadastro.
importante, tambm, manter um histrico das ocorrncias de cada equipamento,
incluindo atividades de manuteno preventiva e corretiva e de atualizao de hardware
e software. Vale observar a importncia de serem registradas as verses e os respectivos
nmeros de licenas de software comercial instalado nos equipamentos, para facilitar o
controle e evitar problemas com cpias ilegais. Essas informaes devem estar, preferencialmente, em formato eletrnico. Aplicativos de planilha e de bancos de dados, ou mesmo
softwares de inventrio, so uma boa alternativa para armazenamento desses dados, uma
vez que facilitam a gerao de relatrios. Mas bom existir um checklist em papel para ser
utilizado quando a equipe de suporte sair a campo para diagnosticar algum problema.
Cadastro de hardware
11 Guardar informaes.
11 Manter histrico das ocorrncias de cada equipamento.
11 Possuir registro de verses e de licenas de software.
152
O cadastro dos equipamentos de TI deve ser feito independentemente do software utilizado para esse propsito. Em grandes organizaes, essa atividade fundamental para
que o administrador no perca o controle sobre os ativos pelos quais responsvel.
A tabela 9.3 mostra uma relao de informaes que devem fazer parte do cadastro de
um item de hardware, mesmo que em alguns casos, alguns dos itens relacionados no
sejam aplicveis:
Dados Cadastrais
Tipo do equipamento/Dispositivo
Marca/Modelo
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 melhor controle sobre licenas e necessidades de uso, usando formato
semelhante ao utilizado na tabela 9.3.
Diagnstico de falhas
11 Uma das atividades mais desafiantes do administrador.
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
Tabela 9.3
Cadastro de
hardware.
Campo
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
Diagnstico provvel
Soluo adotada
10
Autor da soluo
11
Tabela 9.4
Registro de
ocorrncias.
Esse tipo de documento, alm de contribuir para elevar o nvel de qualidade da administrao dos sistemas de uma instituio, facilita o trabalho da equipe de TI durante a
resoluo de problemas, liberando o administrador para atividades mais complexas.
O campo 6 da tabela 9.4, por exemplo, til para agrupar ocorrncias de um mesmo tipo,
facilitando a produo de relatrios consolidados. O administrador pode criar categorias
especficas para a sua instituio.
Rotina de backup
11 Lembrar que para diferentes instituies h diferentes necessidades de backup.
154
locais distintos.
A atividade de backup uma das atribuies mais crticas do administrador de sistemas.
Deve ser planejada de acordo com as necessidades da instituio e ser de amplo conhecimento de todos os usurios. Avaliadas as necessidades da empresa, com base nos critrios
discutidos na sesso de aprendizagem 6, o administrador deve elaborar o plano de backup e
cumpri-lo rigorosamente.
No que diz respeito execuo dessa atividade, deve ser dada especial ateno documentao da mdia utilizada, com o objetivo de facilitar a recuperao da informao salva, em
para reduzir o risco de perda por catstrofes como incndios, inundaes etc.
155
156
10
Webmin
intermdio da web; Aprender os pr-requisitos necessrios instalao do Webmin;
Identificar as principais vantagens do Webmin; Entender o conceito de mdulo utilizado
pelo Webmin; Conhecer o Usermin, uma ferramenta que pode ser usada pelos usurios
de um sistema para gerenciarem seus perfis.
conceitos
Caractersticas gerais
11 Interface web para administrao de sistemas Unix-like.
Captulo 10 - Webmin
objetivos
157
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 usando um gerenciador de pacotes, que j instala automaticamente
todas as dependncias necessrias. No entanto, nesta sesso de aprendizagem, ser
apresentado o modo de instalao manual, usando o cdigo-fonte do Webmin e de suas
dependncias. Para acessar o Webmin de forma segura, necessrio a instalao de trs
dependncias que so exibidas a seguir:
158
2 Perl;
2 OpenSSL;
2 Net_SSLeay.pm.
Perl
Instalao do Perl:
11 # cd /usr/local/src
11 # wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
11 # tar -zxvfperl-5.14.2.tar.gz
11 #cdperl-5.14.2
11 # ./configure
11 # make
11 # make test
11 # make install
O Webmin, conforme mencionado anteriormente, escrito na linguagem de programao
Perl. Sendo assim, esta deve estar instalada no sistema para que o Webmin possa ser
executado. O Perl j vem instalado por padro, na maioria das distribuies Linux, mas caso
seja necessrio instal-lo, basta executar a sequncia de comandos a seguir para instalar a
verso 5.14.2:
# cd /usr/local/src
# wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
# tar -zxvf perl-5.14.2.tar.gz
# cd perl-5.14.2
# ./configure
# make
# make test
# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador
pode consultar a seo de documentao no site oficial do Perl, em http://www.perl.org.
Feito isso, o diretrio perl-5.14.2 pode ser excludo, assim como o pacote de instalao.
A instalao tambm pode ser feita atravs dos gerenciadores de pacotes como yum e apt.
Instalao do OpenSSL:
11 # cd /usr/local/src
11 # wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
11 # tar -zxvf openssl-1.0.0g.tar.gz
11 # cd openssl-1.0.0g
11 #./configure
q
Captulo 10 - Webmin
OpenSSL
159
11 # make
11 # make test
11 # make install
O OpenSSL um pacote que implementa, entre outras caractersticas, os protocolos SSL e
TLS, que permitem a troca de informaes criptografadas entre dois computadores atravs da
rede. Na instalao padro, o binrio do OpenSSL instalado no diretrio/usr/local/ssl/bin.
recomendado manter essa localizao, pois outros programas que usam esse binrio
geralmente o procuram nesse diretrio. Para a instalao da verso 1.0.0g do OpenSSL,
dever ser executada a seguinte sequncia de comandos:
# cd /usr/local/src
# wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
# tar -zxvf openssl-1.0.0g.tar.gz
# cd openssl-1.0.0g
# ./configure
# make
# make test
# make install
Se no ocorrer nenhum erro, passa-se prxima seo. Caso contrrio, o administrador pode
consultar a seo de documentao no site oficial do OpenSSL, em http://www.openssl.org.
Feito isso, o diretrio openssl-1.0.0g pode ser excludo, assim como o pacote de instalao.
A instalao tambm pode ser feita atravs dos gerenciadores de pacotes como yum e apt.
Net_SSLeay.pm
Instalao do Net_SSLeay:
11 # cd /usr/local/src
11 # wget http://www.cpan.org/modules/by-module/Net/Net-SSLeay-1.45.tar.gz
11 # tar -zxvf Net-SSLeay-1.45.tar.gz
11 # cd Net-SSLeay-1.45
11 # perl Makefile.PL
11 # make
11 # make install
160
es Perl que utilizem funes da biblioteca OpenSSL. o Net_SSLeay que ficar responsvel
pela gerao do certificado digital requerido para o site seguro do Webmin. Para a instalao
da verso 1.45 do Net_SSLeay, dever ser executada a seguinte sequncia de comandos:
# cd /usr/local/src
# wget http://www.cpan.org/modules/by-module/Net/Net-SSLeay-1.45.tar.gz
# tar -zxvf Net-SSLeay-1.45.tar.gz
# cd Net-SSLeay-1.45
# perl Makefile.PL
# make
# make install
Se no tivermos nenhum erro, passa-se prxima seo. Do contrrio, o administrador
pode consultar o site http://www.cpan.org. Feito isso, o diretrio Net-SSLeay-1.45 pode ser
excludo, assim como o pacote de instalao. A instalao tambm pode ser feita atravs
dos gerenciadores de pacotes como yum e apt ou pelo repositrio do CPAN.
Webmin
Instalao do Webmin:
11 # cd /usr/local/src
11 # wget http://ufpr.dl.sourceforge.net/project/webadmin/Webmin/1.580
/Webmin-1.580.tar.gz
11 # tar -zxvf Webmin-1.580.tar.gz
11 # cd Webmin-1.580
11 # ./setup.sh /usr/libexec/Webmin
Nesse tpico ser abordada a instalao do programa Webmin propriamente dito. As instrues apresentadas nesse documento foram baseadas nas verses indicadas a seguir, mas
devem ser semelhantes para verses futuras. Para a instalao da verso 1.580 do Webmin,
dever ser executada a sequncia de comandos:
# cd /usr/local/src
# wget http://ufpr.dl.sourceforge.net/project/webadmin/Webmin/1.580
/Webmin-1.580.tar.gz
# tar -zxvfWebmin-1.580.tar.gz
# cd Webmin-1.580
# ./setup.sh /usr/libexec/Webmin
Quando for executado o scriptsetup.sh, que o programa de instalao do Webmin, sero
feitas algumas perguntas que, em sua maioria, devem ser mantidas com suas respostas
padro. O administrador deve escolher uma senha de acesso para a aplicao nesse passo.
O diretrio /usr/libexec/Webmin armazenar todos os scripts, imagens e pginas HTML.
A seguir podem ser vistas as perguntas feitas pelo script setup.sh e as respostas utilizadas:
Captulo 10 - Webmin
Interface de administrao
O acesso interface do Webmin pode ser feito por meio de qualquer navegador web:
URL de acesso: https://servidor:10000
11 Na pgina inicial, devem ser informados o usurio e a senha definidos durante
a instalao.
11 Apresenta um menu com as categorias principais de configurao do sistema.
11 Cada categoria possui uma srie de mdulos que representam os diversos
servios disponveis.
Finalizado o processo de instalao, deve-se testar o acesso ao Webmin. Para acessar sua
interface, basta digitar a URL https://servidor:10000 em qualquer navegador web, onde
servidor o nome do servidor onde o Webmin est instalado. Se a instalao tiver sido executada de maneira correta, a pgina inicial do Webmin dever ser carregada.
Nessa pgina, o administrador deve informar o usurio e a senha de acesso aplicao,
que foram criados durante o processo de instalao do Webmin. Se o usurio e a senha
fornecidos estiverem corretos, o acesso ser autorizado e a pgina inicial do Webmin ser
exibida. A figura 10.1 mostra a pgina inicial do Webmin, que apresenta um menu na parte
superior esquerda da tela, com as categorias de configurao do sistema. Cada categoria
composta por diversos mdulos, que podem ser configurados de acordo com as necessi-
dades do administrador.
162
Para cada categoria presente no menu, existe uma pgina principal correspondente, com os
diversos itens de configurao do sistema ou de programas instalados pelo administrador. Navegando pelo Webmin, possvel notar que, apesar de existirem diversos mdulos disponveis para
Figura 10.1
Pgina inicial do
Webmin.
serem administrados atravs de sua interface, nem sempre esses mdulos esto habilitados, pois,
em determinados casos, pode acontecer de determinado programa no estar devidamente instalado no servidor. Navegando pelas vrias opes disponveis no Webmin, pode-se ver, em poucos
instantes, como essa ferramenta extremamente poderosa e de fcil utilizao, simplificando o
trabalho tanto dos administradores novatos, como dos mais experientes.
Mdulos
11 So incorporados ao Webmin, permitindo que os mais diversos servios sejam con-
Captulo 10 - Webmin
163
nistrador navegar pela interface do Webmin para explorar todas as suas funcionalidades.
164
Figura 10.2
Pgina de
administrao do
servio SSH.
Usermin
11 Interface web desenvolvida para auxiliar os usurios de sistemas Unix em
tarefas cotidianas.
Captulo 10 - Webmin
165
166
Este curso indicado para analistas de suporte e responsveis pela manuteno de servidores e especialistas que desejem aprofundar os conhecimentos para se
tornarem administradores de sistemas Linux. Administradores de sistemas que precisam gerenciar sistemas
livro inclui os roteiros das atividades prticas e o contedo dos slides apresentados em sala de aula, apoiando
suas organizaes ou localidades de origem.
ISBN 978-85-63630-52-0
9 788563 630520