Você está na página 1de 345

4451

Linux System Administration

www.4linux.com.br

Contedo
Compactadores, Empacotadores e Procedimentos de Backup

2.1

Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2

O empacotador cpio

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3 O empacotador tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.4 Compactadores GZIP, BZIP2 . . . . . . . . . . . . . . . . . . . . . . . . 12


2.4.1 Gzip e Bzip2 com Arquivos de Texto . . . . . . . . . . . . . . . . 14
2.4.2 Gzip e Bzip2 com Arquivos Binrios . . . . . . . . . . . . . . . . 16
2.5 Comando dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Compactadores, Empacotadores e
Procedimentos de Backup
2.1 Introduo Terica
A compresso e empacotamento de arquivos e diretrios muito importante em
qualquer sistema computacional. Ambos os procedimentos so necessrios desde
o ponto de vista de distribuio de softwares, de economia de banda e de espao
de armazenamento, e de backup do sistema. Veremos neste captulo o principal
programa de empacotamento GNU/Linux e os dois principais compactadores.
A forma mais conhecida de realizar compresso e empacotamento em ambiente
Windows utilizando o programa Winzip. Um programa que zipa um arquivo,
ou diversos arquivos, na realidade est realizando dois procedimentos distintos: Empacotar e comprimir.
Em ambientes Unix-like, essas duas tarefas so realizadas de forma logicamente
distintas.
O programa tar, cujo nome deriva de tape archiver, realiza a tarefa de concatenar todos os arquivos e diretrios preservando as informaes do filesystem, isto
, seus meta-dados.
Criado com propsito de backup em dispositivos de acesso sequencial (unidades
de fita), o tar utilizado hoje em dia como uma ferramenta de empacotamento,
podendo ser utilizado em conjunto com compactadores como gzip ou bzip2.

2.1 Introduo Terica

4Linux www.4linux.com.br

A utilizao da ferramenta tar bastante simples. Seguindo o filosofia Unix faa


apenas uma tarefa, mas faa bem feito, o tar um programa especialista em empacotar vrios arquivos. Dessa forma, quando utilizamos os parmetros z ou j estamos na realidade fazendo uma chamada externa aos comandos gzip ou bzip2,
especialistas em compresso de dados.
Outros programas que trabalham de forma anloga ao tar so o dump e cpio.
Ambos foram criados com a mesma finalidade, mas so pouco utilizados hoje em dia,
pois no so to versteis quanto o tar.
Este captulo explica muitas coisas sobre compactao e empacotamento de arquivos, tudo isso extremamente necessrio quando falamos de backup. Podemos
ter diferentes tipos de backup, so eles:
Incremental - O backup incremental visa salvar apenas as diferenas em relao ao ultimo backup completo, por exemplo: Um backup completo acontece no domingo. O incremental salvar os dados de domingo para segunda,
de domingo para tera, de domingo para quarta, de domingo para quinta, de
domingo para sexta e de domingo para sbado, ou seja, at chegar no prximo
backup completo.
Diferencial -Diferente do incremental, o diferencial, faz apenas os incrementos,
assim gerando um volume menor de dados. Se o backup completo foi gerado
no domingo, ele salva de domingo para segunda, de segunda para tera, de
tera para quarta e assim at o prximo backup completo chegar.
Completo - Visa salvar todos os dados, mesmo o que j foram salvos anteriormente, assim fazendo um backup completo de todos os objetos em questo.
Conhecendo os tipos de backup, vamos conhecer algumas ferramentas que podem
nos ajudar.
Crie o diretrio de backup para os nosso testes:

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

2.2 O empacotador cpio

# mkdir / backup

2.2 O empacotador cpio


O comando cpio empacota arquivos/diretrios, suas principais opes so:
-i -> extrair backup
-o -> criar backup
-t -> mostrar uma tabela com o contedo do backup
-F -> essa opo especifica o arquivo de backup
-d -> cria diretrios se necessrio
-v -> mostrar o que est fazendo em detalhes
-u -> sobrescreve arquivos existentes Ento, vejamos os principais grupos de opes e como utiliz-las. Para empacotar o contedo do diretrio /etc com o cpio
devemos fazer o seguinte:

find / etc | cpio - ov > / backup / pacote . cpio

O comando acima empacotar todos os objetos da sada do comando ls /etc. Para


visualizar seu contedo:

# cpio -iv -- list < / backup / pacote . cpio

Linux System Administration

Pgina 5

2.2 O empacotador cpio

4Linux www.4linux.com.br

Vamos renomear o diretrio /etc para /etc.old :

# mv / etc / etc . old

Restaure o backup do /etc:

# cpio -iv < / backup / pacote . cpio

# ls / etc

Adicione arquivos ao pacote.cpio j criado:

# find / boot | cpio - ov -A -F / backup / pacote . cpio

Para visualizar seu contedo:

# cpio -iv -- list < / backup / pacote . cpio

Adicione um usurio chamado inexistente:

# useradd inexistente

Verifique que ele foi criado no arquivo /etc/passwd:

# tail -n1 / etc / passwd

O comando cpio somente volta os arquivos, caso ele no exista ou ele seja mais
recente que o atual:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

2.2 O empacotador cpio

# cpio -iv < / backup / pacote . cpio

Verifique que os arquivos no foram alterados, pois as datas so mais atuais ou as


mesmas dos arquivos no pacote:

# tail -n1 / etc / passwd

Para forar a restaurao faa:

# cpio - iuv < / backup / pacote . cpio

Verifique que no existe mais o usurio inexistente:

# tail -n1 / etc / passwd

Remova o arquivo /etc/passwd:

# rm -f / etc / passwd

Restaure apenas o arquivo /etc/passwd:

# cpio - ivF / backup / pacote . cpio / etc / passwd

Linux System Administration

Pgina 7

2.3 O empacotador tar

4Linux www.4linux.com.br

2.3 O empacotador tar


O que os compactadores como gzip e bzip2 no conseguem fazer, o tar (Tape Archives) faz. Ele um aplicativo capaz de armazenar vrios arquivos em um s. Porm,
no capaz de compactar os arquivos armazenados. Como possvel notar, o tar
serve de complemento para os compactadores e vice-versa. Por isso, foi criado um
parmetro no tar para que ambos os programas possam trabalhar juntos. Assim, o
tar "junta"os arquivos em um s e este arquivo, por sua vez, ento compactado por
um dos compactadores suportados pelo tar.
O tar tambm consegue gravar a propriedade e as permisses dos arquivos. Ainda,
consegue manter a estrutura de diretrios original (se houve compactao com diretrios), assim como as ligaes diretas e simblicas.
A sintaxe do TAR :

tar [ par metros ] [ - f arquivo ] [ - C diret rio ] [ arquivos ...].

Abaixo, segue a lista dos principais parmetros:


-c -> cria um novo arquivo tar;
-p -> mantm as permisses originais do(s) arquivo(s);
-r -> acrescenta arquivos a um arquivo tar;
-t -> exibe o contedo de um arquivo tar;
-v -> exibe detalhes da operao;
-x -> extrai arquivos de um arquivo tar;

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

2.3 O empacotador tar

-z -> comprime ou extrai arquivos tar resultante com o gzip;

-j -> comprime ou extrai arquivos tar resultante com o bzip2;

-f -> especifica o arquivo tar a ser usado;

-C -> troca de diretrio, para local de armazenamento ou restaurao de dados.

Vamos empacotar o diretrio /etc e /usr:

# tar - cvf / backup / etc . tar / etc

# tar - cvf / backup / usr . tar / usr

Verifique o tamanho do pacote usr.tar:

# du -sh / backup / usr . tar

Podemos utilizar parmetros para reduzir o tamanho do pacote, atravs de compactadores como gzip e bzip2. Vamos observar o tempo com o comando time e o
tamanho dos dois compactadores para vermos suas vantagens e desvantagens.
Empacotando e compactando com gzip o diretrio /usr:

# time tar - zcvf / backup / usr . tar . gz / usr

Empacotando e compactando com bzip2 o diretrio /usr:

# time tar - jcvf / backup / usr . tar . bz2 / usr

Linux System Administration

Pgina 9

2.3 O empacotador tar

4Linux www.4linux.com.br

Podemos observar que o compactador gzip mais rpido que o bzip2, mas qual
deles fez a melhor compactao:

# du -sh / backup / usr *

O bzip2 faz a melhor compactao, mas em compensao leva um tempo maior que
o gzip. Para visualizar o contedo dos pacotes tar faa:

# tar -tf / backup / usr . tar . gz

# tar -tf / backup / usr . tar . bz2

# tar -tf / backup / usr . tar

# tar -tf / backup / etc . tar

Para adicionar arquivos ao pacote j criado utilize o parmetro -r, mas somente
possvel em pacotes que ainda no foram compactados: Crie um arquivo chamado
aaaaaaaaaaaaaaaaaaa em /etc:

# touch / etc / aaaaaaaaaaaaaaaaaaa

Adicione ao tar criado:

# tar -rf / backup / etc . tar / etc / aaaaaaaaaaaaaaaaaaa

Visualize:

# tar -tf / backup / etc . tar

Vamos acessar o diretrio /backup e descompactar o /usr feito com gzip:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

# cd / backup

# tar - zxvf usr . tar . gz

2.3 O empacotador tar

Verifique que o pacote compactado foi descompactado no diretrio atual e no na


raiz:

# ls

Para determinar qual vai ser o ponto inicial para descompactar o pacote utilize o
parmetro -C. Descompacte o pacote feito com bzip2 no diretrio /mnt:

# tar - jxvf usr . tar . bz2 -C / mnt

Verifique o diretrio /mnt:

# ls / mnt

Agora delete o diretrio /etc:

# rm -rf / etc

Volte o backup feito com o tar a partir do diretrio /:

# tar xvf etc . tar -C /

Verifique:

Linux System Administration

Pgina 11

2.4 Compactadores GZIP, BZIP2

4Linux www.4linux.com.br

# ls / etc

2.4 Compactadores GZIP, BZIP2


Compresso de dados o processo de codificar a informao de forma que seja possvel armazen-la em um nmero menor de bits. Por exemplo, se definssemos que
a palavra compresso passaria a ser abreviada por comp, estaramos diminuindo
o nmero de bits necessrios para armazenar esta apostila.
Entretanto, para que voc pudesse entender o que comp significa seria necessrio
estar ciente dessa conveno ou seja, do algoritmo de compresso.
H dois tipos bsicos de compresso, aquele em que no h perdas de informaes
e aquele em que elas ocorrem. Obviamente quando o assunto backup de informaes vitais, devemos utilizar algoritmos sem perdas. J em arquivos de imagens,
vdeos e udio, h casos que podemos nos dar ao luxo de perdas de informaes
em detrimento da qualidade, que em geral praticamente imperceptvel para os no
especialistas da rea.
Os principais programas de compresso que utilizaremos so o bzip2 e gzip . O
bzip2 utiliza os algoritmos Burrows-Wheeler transform e Huffman coding; j o
gzip utiliza os algoritmos LZ77 e Huffman coding. Todos esses algoritmos fazem
parte do grupo dos algoritmos que no ocasionam perdas de dados.
A forma de utilizao desses comandos bastante simples. Para o gzip, bzip2,
basta fornecer o arquivo de entrada que a compresso se dar no prprio arquivo.
Eis uma diferena entre o tar e esses programas, ele recebe dois argumentos, os
arquivos de entrada e o arquivo de sada, ou seja, aqueles a serem empacotados e
comprimidos.
Verifique que no possvel compactar um diretrio sem empacot-lo antes. Tente

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

2.4 Compactadores GZIP, BZIP2

com o gzip e com o bzip2:

# gzip etc

# bzip2 etc

Para determinarmos qual o melhor compactador vamos analisar dois tipos de


arquivos: texto puro e binrio. Para isso vamos cri-los.

Crie dois arquivos de texto puro. Abra o arquivo texto1 no editor vim e insira uma
linha contento os nmeros de 0 a 9:

# vim texto1

0123456789

Ainda dentro do vim, copie essa linha e cole 250.000 vezes e salve o arquivo:

<ESC >

yy

250000 p

:x!

Crie uma cpia deste arquivo chamando-a de texto2:

# cp texto1 texto2

Crie um par de arquivos binrios para nossos testes. Utilizaremos como base, o
programa aptitude:

Linux System Administration

Pgina 13

2.4 Compactadores GZIP, BZIP2

4Linux www.4linux.com.br

# cp / usr / bin / aptitude bin1

Duplique esse arquivo:

# cp bin1 bin2

Verifique que foram criados quatro arquivos com tamanhos parecidos, aproximadamente 2.4MB, sendo dois deles binrios e dois texto puro:

# ls -lh bin * texto *

2.4.1 Gzip e Bzip2 com Arquivos de Texto


Utilize a tabela tab:comparacao1 para anotar os resultados obtidos nos testes com
gzip e bzip em arquivos de texto puro:

Vamos iniciar os testes com os arquivos texto.

Determine o intervalo de tempo que leva para comprimir o arquivo texto1 com
gzip:

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

2.4 Compactadores GZIP, BZIP2

# time gzip texto1

Determine o tamanho final do arquivo texto1 aps ser comprimido com gzip:

# ls -lh texto1 . gz

Determine o intervalo de tempo que leva para descomprimir o arquivo texto1.gz:

# time gunzip texto1 . gz

Vamos repetir os procedimentos utilizando o bzip2: Determine o intervalo de tempo


que leva para comprimir o arquivo texto2 com bzip2:

# time bzip2 texto2

Determine o tamanho final do arquivo texto2 aps ser comprimido com bzip2:

# ls -lh texto2 . bz2

Determine o intervalo de tempo que leva para descomprimir o arquivo texto2.bz2:

# time bunzip2 texto2 . bz2

Linux System Administration

Pgina 15

2.4 Compactadores GZIP, BZIP2

4Linux www.4linux.com.br

2.4.2 Gzip e Bzip2 com Arquivos Binrios


Utilize a tabela tab:comparacao2 para anotar os resultados obtidos nos testes com
gzip e bzip em arquivos binrios:

Determine o intervalo de tempo que leva para comprimir o arquivo bin1 com gzip:

# time gzip bin1

Determine o tamanho final do arquivo bin1 aps ser comprimido com gzip:

# ls -lh bin1 . gz

Determine o intervalo de tempo que leva para descomprimir o arquivo bin1.gz:

# time gunzip bin1 . gz

Vamos repetir os procedimentos utilizando o bzip2: Determine o intervalo de tempo


que leva para comprimir o arquivo bin2 com bzip2:

# time bzip2 bin2

Determine o tamanho final do arquivo bin2 aps ser comprimido com bzip2:

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

2.5 Comando dd

# ls -lh bin2 . bz2

Determine o intervalo de tempo que leva para descomprimir o arquivo bin2.bz2:

# time bunzip2 bin2 . bz2

2.5 Comando dd
O comando dd tem a capacidade de copiar bit a bit. Segue um exemplo de seu
uso: FAZER PARTIO MENOR E COPIAR

# dd if =/ dev / sda3 of =/ dev / sda11

O comando acima efetuar a clonagem da partio sda3, para a partio sda11.

Cuidado com o comando dd, qualquer falta de ateno pode danificar o sistema, de forma irrecupervel.

Onde:
if=/dev/sda3
O nome do arquivo de entrada.
of=/dev/sda11

Linux System Administration

Pgina 17

4451
Linux System Administration

www.4linux.com.br

Contedo
Backup com Ferramentas XFS

3.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2 Gerenciando backup em parties XFS . . . . . . . . . . . . . . . . . .

3.3 Gerar backup com xfsdump . . . . . . . . . . . . . . . . . . . . . . . . .

3.4 Restaurando backup com xfsrestore . . . . . . . . . . . . . . . . . . . .

3.5 Criar e Restaurar Backup Remoto . . . . . . . . . . . . . . . . . . . . .

Agendamento de Tarefas

12

3.6 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


3.6.1 Agendamento de Tarefas com AT

. . . . . . . . . . . . . . . . . 15

3.6.2 Agendando Tarefas com o CRON . . . . . . . . . . . . . . . . . 19


3.6.3 Restringindo o uso do crontab . . . . . . . . . . . . . . . . . . . 24

Backup com ferramentas XFS


3.1 Introduo Terica
O XFS um sistema de arquivos de alta performance com suporte a journaling, que
teve origem na plataforma IRIX da SGI. completamente multi-processo, e pode
suportar grandes sistemas de arquivos com atributos estendidos, tamanho de blocos
varivel. O XFS baseado em extents e utiliza bem o uso de Btrees (diretrios,
extenses, e espao livre) para ajudar no ganho de performance e escalabilidade.

3.2 Gerenciando backup em parties XFS


Existem diversas ferramentas para gerenciar parties do tipo XFS, em nossa pratica
vamos manipular a aplicao do sistema de arquivos, backup e restore no sistema
de arquivos XFS. Antes de usar os comandos prepare sua infra adicionando um novo
disco para o backup. Um novo disco sera usado em /dev/sdb para as tarefas, sendo
que a primeira partio /dev/sdb1 deve conter 2GB e a segunda 6GB:
Aplicando sistema de arquivos XFS
O comando mkfs.xfs usado para aplicar sistema de arquivos XFS em uma partio.
O comando tambm pode ser usado com a flag -t como em mkfs -t xfs.

3.3 Gerar backup com xfsdump

# mkfs . xfs / dev / sdb1

Ou

# mkfs -t xfs / dev / sdb2

4Linux www.4linux.com.br

Como a partio j possui o sistema de arquivos XFS, crie o ponto de montagem,


monte a partio e faa a cpia de novos arquivos.

# mkdir / media / xfs

# mount -t xfs / dev / sdb1 / media / xfs

# cp -R / var / media / xfs

3.3 Gerar backup com xfsdump


O comando xfsdump utilizado para fazer backup de arquivos com seus atributos
em um sistema de arquivos. O xfsdump examina os arquivos e determina quais
precisam ser salvos (backup), e copia esses arquivos para um disco especificado,
como fita magntica ou outra mdia de armazenamento.
A ferramenta usa diretivas especficas do XFS para otimizao, e tambm sabe como
salvar os atributos extensos do XFS. Os backups criados pelo xfsdump so do tipo
"endian safe"e assim podem ser transferidos entre mquinas Linux de diferentes arquiteturas e tambm entre mquinas IRIX.
Crie um local para nosso backup em /media usando a segunda partio de 6GB

# mkdir / media / backup

# mount -t xfs / dev / sdb2 / media / backup

Use o comando xfsdump para fazer o backup da partio /dev/sdb1

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

# xfsdump -l 0

3.3 Gerar backup com xfsdump

-p 30 -f / media / backup / backup .0. dump

/ media / xfs

2
3

xfsdump : using file dump ( drive_simple ) strategy

xfsdump : version 3.0.4 ( dump format 3.0) - Running single - threaded

5
6

==================== dump label dialog ====================

7
8
9

please enter label for this dump session ( timeout in 300 sec )
-> backup ( Digite o nome do rotulo e tecle Enter )

10
11

session label entered : " backup "

12
13

----------------------- end dialog -----------------------

14
15

xfsdump : level 0 dump of debian :/ media / xfs

16

xfsdump : dump date : Thu Apr 26 16:05:12 2012

17

xfsdump : session id : ce153353 -0 d33 -4 fc5 - aa88 -10274 eeaff4b

18

xfsdump : session label : " backup "

19

xfsdump : ino map phase 1: constructing initial dump list

20

xfsdump : ino map phase 2: skipping ( no pruning necessary )

21

xfsdump : ino map phase 3: skipping ( only one dump stream )

22

xfsdump : ino map construction complete

23

xfsdump : estimated dump size : 171053504 bytes

24
25

==================== dump label dialog ====================

26
27
28

please enter label for media in drive 0 ( timeout in 300 sec )


-> quit ( Digite o comando para sair do prompt do xfsdump )

29
30

----------------------- end dialog -----------------------

31
32

xfsdump : creating dump session media file 0 ( media 0 , file 0)

33

xfsdump : dumping ino map

34

xfsdump : dumping directories

35

xfsdump : dumping non - directory files

36

xfsdump : status at 16:05:46: 1/3842 files dumped , 0 ,0% data dumped ,

Linux System Administration

Pgina 5

3.3 Gerar backup com xfsdump

4Linux www.4linux.com.br

34 seconds elapsed
37

xfsdump : ending media file

38

xfsdump : media file size 160228640 bytes

39

xfsdump : dump size ( non - dir files ) : 158883080 bytes

40

xfsdump : dump complete : 38 seconds elapsed

41

xfsdump : Dump Status : SUCCESS

Opes utlizadas:

-l: Especifica um nvel de dump de 0 a 9. O nvel de dump determina o que


sera armazenados no backup. Um dump de de nvel 0 absoluto onde todos
os arquivos so armazenados. Um nvel de dump 1 a 9 referido como um
dump incremental. Apenas os arquivos que foram alterados desde o dump de
base (nivel 0) so despejados.
-p: Faz com que relatrios de progresso sejam impressos no intervalo especificado (intervalo dada em segundos). O relatrio indica quantos arquivos
foram despejadas, o nmero total de arquivos para descarregar, a porcentagem de dados, objeto de dumping, e o tempo decorrido.
-f: Especifica um destino de despejo. Um destino pode ser o caminho de um
dispositivo (como uma unidade de fita), um arquivo regular ou uma unidade de
fita remota.

Onde foi parar o backup da partio /dev/sdb1?


Como resultado do comando foi criado um arquivo com a extenso .dump no diretrio /media/backup. Atravs deste arquivo podemos restaurar o backup completo da
partio /dev/sdb1.
Como incrementar o backup com apenas arquivos alterados?
Primeiro faa uma alterao na partio gravando um novo arquivo ou alterando
arquivos j gravados.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

3.3 Gerar backup com xfsdump

# echo " Esta uma nova altera o " >> / media / xfs / var / log / mail . log

Use o comando xfsdump para criar um backup do contedo alterado (backup incremental)

# xfsdump -l 1 -p 30 -f / media / backup / backup .1. dump

/ media / xfs

2
3

xfsdump : using file dump ( drive_simple ) strategy

xfsdump : version 3.0.4 ( dump format 3.0) - Running single - threaded

xfsdump : level 1 incremental dump of debian :/ media / xfs based on


level 0 dump begun

xfsdump : dump date : Thu Apr 26 16:40:17 2012

xfsdump : session id : ff2f5ed8 -977 c -417 e -8538 -40513 baf6939

xfsdump : session label : " backup "

xfsdump : ino map phase 1: constructing initial dump list

10

xfsdump : ino map phase 2: pruning unneeded subtrees

11

xfsdump : ino map phase 3: skipping ( only one dump stream )

12

xfsdump : ino map construction complete

13

xfsdump : estimated dump size : 38464 bytes

14
15

==================== dump label dialog ====================

16

please enter label for media in drive 0 ( timeout in 300 sec )

17
18

-> backup ( Digite o nome do rotulo e tecle Enter )


media label entered : " backup "

19
20

----------------------- end dialog -----------------------

21

xfsdump : creating dump session media file 0 ( media 0 , file 0)

22

xfsdump : dumping ino map

23

xfsdump : dumping directories

24

xfsdump : dumping non - directory files

25

xfsdump : ending media file

26

xfsdump : media file size 33968 bytes

27

xfsdump : dump size ( non - dir files ) : 10304 bytes

28

xfsdump : Dump Status : SUCCESS

Linux System Administration

Pgina 7

3.4 Restaurando backup com xfsrestore

4Linux www.4linux.com.br

Como resultado do comando foi criado um novo arquivo com a extenso .dump no
diretrio /media/backup (backup.1.dump). Neste arquivo temos o incremento da partio (o que tem de novo). Compare o tamanho dos dois arquivos:

# cd / media / backup

# ls -lh

-rw -r --r - - 1 root root 153 M Abr 26 16:29 backup .0. dump

-rw -r --r - - 1 root root

34 K Abr 26 16:40 backup .1. dump

3.4 Restaurando backup com xfsrestore


O comando xfsrestore executa a funo reversa do xfsdump; podendo restaurar uma
cpia de segurana completa de um sistema de arquivos. Backups incrementais
subsequentes podem ser colocados depois em cima do backup completo. Arquivos nicos e subdiretrios podem ser restaurados a partir de backups completos ou
parciais.
Primeiro crie um novo local para armazenar o backup restaurado, e use o comando
xfsrestore para restaurar o backup incremental:

# mkdir / backup

# xfsrestore

-f / media / backup / backup .1. dump / backup /

3
4

xfsrestore : using file dump ( drive_simple ) strategy

xfsrestore : version 3.0.4 ( dump format 3.0) - Running single threaded

xfsrestore : searching media for dump

xfsrestore : examining media file 0

xfsrestore : dump description :

xfsrestore : hostname : debian

10

xfsrestore : mount point : / media / xfs

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

3.5 Criar e Restaurar Backup Remoto

11

xfsrestore : volume : / dev / sdb1

12

xfsrestore : session time : Thu Apr 26 16:40:17 2012

13

xfsrestore : level : 1

14

xfsrestore : session label : " backup "

15

xfsrestore : media label : " backup "

16

xfsrestore : file system id : 3 eca0743 - cfa5 -45 b4 -8376 - c892e3793511

17

xfsrestore : session id : ff2f5ed8 -977 c -417 e -8538 -40513 baf6939

18

xfsrestore : media id : ddf5382d -3770 -4 aef -861 f - e390edf46cd5

19

xfsrestore : using online session inventory

20

xfsrestore : searching media for directory dump

21

xfsrestore : reading directories

22

xfsrestore : 3 directories and 54 entries processed

23

xfsrestore : directory post - processing

24

xfsrestore : restoring non - directory files

25

xfsrestore : restore complete : 0 seconds elapsed

26

xfsrestore : Restore Status : SUCCESS

Toda a estrutura de diretrios com o arquivo auth.log foi restaurado. Liste o conteudo
do diretrio /backup e comprove a restaurao.

# ls -l / backup / var / log / auth . log

-rw -r ---- - 1 root root 9422 Abr 26 16:38 / backup / var / log / auth . log

Caso precise de uma restaurao completa do /dev/sdb1, use o comando:

# xfsrestore

-f / media / backup / backup .0. dump / media / xfs

3.5 Criar e Restaurar Backup Remoto


A pratica bem parecida com o procedimento local mudando apenas, comandos
adicionados para a conexo remota e a compactao dos arquivos. Em nossa infra

Linux System Administration

Pgina 9

3.5 Criar e Restaurar Backup Remoto

4Linux www.4linux.com.br

vamos precisa de 2 maquinas com SSH.


Maquina 1: Debian 6 com IP 192.168.200.1 (pacote xfsdump instalado)
Maquina 2: CentOS 6 com IP 192.168.200.2 (pacote xfsdump instalado)
Backup Completo via SSH
Na maquina Debian 6 use o comando xfdump para criar um backup completo do
diretrio /media/xfs.

# xfsdump -l 0 -L backup

- / media / xfs | gzip | ssh root@192

.168.200.2 dd of =/ backup / backup$ ( date +% d -% m -% Y ) . gz

Descrio das opes utilizadas:


xfsdump -l 0 -L backup - /media/xfs | : Comando usado para criar o backup
completo (-l 0) do diretrio /media/xfs com o label "backup";
gzip | : O resultado do comando xfsdump sera compactado atraves deste comando;
ssh root@192.168.200.2 : Envia o backup compactado para a maquina remota;
dd of=/backup/backup$(date +%d-%m-%Y).gz : Na maquina remota o backup compactado sera gravado em um arquivo (dd of) com a data atual em
/backup.
Atravs da linha de comando em nosso exemplo, o backup foi criado de forma remota
na maquina CentOS no diretrio /backup. No esquea de criar este diretrio na
maquina CentOS.
Restore completo via SSH

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

3.5 Criar e Restaurar Backup Remoto

Para restaurar use o comando xfsrestore na maquina Debian apontando o diretrio


de destino:

# ssh root@192 .168.200.2 " dd if =/ backup / backup30 -04 -2012. gz " |


gunzip -c | xfsrestore - / mnt /

Descrio das opes utilizadas:


ssh root@192.168.200.2 : Recebe o backup compactado da maquina remota;
dd if=/backup/backup30-04-2012.gz | : Na maquina remota o backup compactado sera lido atravs de um arquivo (dd if);
gunzip -c | : O resultado do comando anterior sera descompactado atraves
deste comando;
xfsrestore - /mnt/backup/ : Comando usado para restaurar o backup da maquina remota no diretrio /opt.
Backup incremental via SSH
Na maquina Debian altere um arquivo no diretrio /media/xfs e crie um backup incremental (-l 1) na maquina CentOS:

# echo " Novo conteudo " >> / media / xfs / var / log / auth . log

# xfsdump -l 1 -L backup

- / media / xfs | gzip | ssh root@192

.168.200.2 dd of =/ backup / backup - incremental01 - $ ( date +% d -% m -% Y ) .


gz

Restore incremental via SSH


Para restaurar apenas o que foi incrementado no backup completo:

Linux System Administration

Pgina 11

3.5 Criar e Restaurar Backup Remoto

4Linux www.4linux.com.br

# ssh root@192 .168.200.2 " dd if =/ backup / backup - incremental01


-30 -04 -2012. gz " | gunzip -c | xfsrestore - / opt

Dica: Para no precisar informar a senha crie uma configurao com chaves no SSH
entre as maquinas Debian e CentOS!

Pgina 12

Linux System Administration

Agendamento de Tarefas
3.6 Introduo Terica
A crontab utilizada para agendar comandos que sero executados periodicamente, ao contrrio do comando at, que executa comandos pontualmente. H dois
tipos de crontab: a de usurios e a do sistema. Ambas so arquivos que contm
tabelas com informao de quando o comando especificado deve ser executado,
sendo que cada linha corresponde a um nico agendamento.
A crontab gerenciada pelo daemon crond, que a cada um minuto verifica se h
algum agendamento que deve ser executado e, se houver, executa-o.
A crontab dos usurios pode ser acessada pelo comando:

# crontab [ - e | - r | - l ]

A tabela fica armazenada em arquivos com o nome do usurio dono da tabela. J a


crontab do sistema encontrada no arquivo /etc/crontab e j possui agendamen-

tos para realizar as tarefas que se encontram nos diretrios /etc/cron.[hourly|daily|weekly|month


Sendo que o programa chamado run-parts quem executa os referidos agendamentos.
O formato das crontabs dos usurios e do sistema so quase iguais. A exceo
que a crontab do sistema possui um campo a mais, como pode ser visto a seguir:

13

3.6 Introduo Terica

crontab ( usu rios )

# minuto hora dia m s diaDaSemana comando

4Linux www.4linux.com.br

3
4

crontab ( sistema )

# minuto hora dia m s diaDaSemana USU RIO comando

A nica diferena entre as duas crontabs que na do sistema h um campo


para especificar qual o usurio que ir executar o comando agendado.

Alm disso cada campo possui um conjunto de valores vlidos, sendo eles:
minuto: varia de 0-59;
hora: varia de 0-23;
dia: varia de 1-31;
ms: varia de 1-12;
diaDaSemana: varia de 0-7, sendo:
0 ou 7 domingo 1 - segunda-feira 2 - tera-feira 3 - quarta-feira 4 - quinta-feira 5 sexta-feira 6 - sbado

usurio: um usurio vlido no sistema;

comando: o path completo para o comando.

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

Podemos controlar quais usurios podem acessar ou no o cron. Para isso


basta criar um dos arquivos: /etc/cron.allow ou /etc/cron.deny. A mesma dica
vlida para o comando at: /etc/at.allow ou at.deny.

Considerando o formato j listado, podemos realizar agendamentos utilizando alguns


operadores que facilitam o trabalho. So eles:
vrgula (,) -> especifica uma lista de valores, por exemplo: 1,3,4,7,8;
hifen (-) -> especifica um intervalo de valores, por exemplo: 1-15 (de 1 a 15);
asterisco (*) -> especifica todos os valores possveis;
barra (/) -> especifica pulos de valores, por exemplo: se no campo hora utilizarmos */3 o comando ser executado s 0,3,6,9,12,15,18,21 horas;

3.6.1 Agendamento de Tarefas com AT


O comando "at"pode agendar tarefas de forma semelhante ao cron, e integrado
interface de linha de comando do Linux. muito eficiente se aplicado no agendamento de tarefas que sejam disparadas somente uma vez. O at permite o controle dos usurios que podem agendar comandos atravs dos arquivos /etc/at.allow
e /etc/at.deny. Estes arquivos so organizados no formato de um usurio por linha.
Durante o agendamento verificado primeiro o arquivo /etc/at.allow (listando quem
pode executar o comando) e depois /etc/at.deny. Caso eles no existam, o agendamento de comando permitido a todos os usurios.
Verifique se a data e a hora do sistema esto corretas:

Linux System Administration

Pgina 15

3.6 Introduo Terica

4Linux www.4linux.com.br

# date

Aps essa verificao podemos comear a realizar agendamentos.

Agende para 10 minutos no futuro um backup do diretrio /etc, colocando seu backup no diretrio /backup.
Agende a tarefa de backup:

# at HH : mm MM / DD / YYYY

at > tar zcvf / backup / backup - etc . tar . gz / etc /

at > ( Ctrl + d )

Agendada esta tarefa, confirme-a listando todos os agendamentos pendentes:

# atq

Vamos explorar o diretrio onde ficam os agendamentos:

# cd /var/spool/cron/atjobs # ls -la

# cd /var/spool/at # ls -la

Mostre o contedo dos arquivos contidos nesse diretrio:

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

# cat ( agendamento )

Perceba que no agendamento, temos nossas variveis e o comando.

Vamos realizar outro agendamento qualquer, para executar em 15 minutos, para que
possamos aprender como apag-lo:

# at HH : mm MM / DD / YYYY

at > echo " Teste " > / tmp / at . out

at > ^d

Liste os agendamentos correntes e verifique que um novo arquivo foi criado


no diretrio de spool do at.

# cd / var / spool / cron / atjobs

# ls -la

Agendada esta tarefa, confirme-a listando todos os agendamentos pendentes:

# atq

1) Remova o ltimo agendamento:

# atrm [n mero_agendamento ]

Linux System Administration

Pgina 17

3.6 Introduo Terica

4Linux www.4linux.com.br

Liste os agendamentos ativos e liste o contedo do diretrio de spool do at e veja


que o job foi removido:

# atq

# ls / var / spool / cron / atjobs

Verifique o backup que estava agendado pelo comando at:

# ls / backup

Todos usurios comuns podem utilizar o comando at, por padro somente vem criado
o arquivo /etc/at.deny, neste arquivo so configurados os usurios que no podem
utilizar o agendador de tarefas at, caso queira bloquear o uso de alguns usurios
especficos adicione-os neste arquivo, sendo um usurio por linha, se quiser bloquear
o uso de todos, crie o arquivo /etc/at.allow em branco.
Caso queira habilitar o uso do agendador de tarefas at para apenas alguns usurios
especficos, crie o arquivo /etc/at.allow e coloque um nome por linha.
Bloqueie o uso do agendador de tarefas at para usurios comuns:

# touch / etc / at . allow

Teste o bloqueio com o usurio mandark:

$ at 12:00 01/01/2014

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

3.6.2 Agendando Tarefas com o CRON


Cuidados especiais com scripts

Utilize nos comandos do script e no agendador, sempre o (path) caminho completo do


aplicativo a ser executado, exemplo para o comando tar, use /bin/tar, tambm na linha
de comando que inserir no cron use o caminho completo para o script, por exemplo,
executar um script que est em /home/zago, use a linha: /home/zago/nome-do-script
e no somente nome-do-script.
Muito cuidado com scripts, o comodismo pode cair no esquecimento e no atualizar
o script de backup quando incluir novos servios, diretrios ou usurios, monitore
constantemente, teste e avalie o que est sendo feito.
Tenha os seguintes cuidados quando elaborar scripts para execuo pelo cron.
Nestes scripts no pode conter comandos que requer interao com o usurio, tais
como pedir senha para completar a conexo de um ftp, nestes casos deve ser colocado todas as instrues dentro do script de maneira que possa completar a conexo
passando o login e senha.
Comandos que requerem confirmao para execuo, por exemplo, apagar arquivos,
o rm pede confirmao, mas com o parmetro -rf no pede, ento seria assim: rm -rf
<arquivo, diretrio ou /caminho/o que deve apagar>
No deve ter nenhum comando que pea confirmao ou qualquer interao com o
usurio.
Fique atento s permisses, quando possvel agende como root para executar o
script, use o "sudo"para dar permisses de execuo em programas que requer poderes de root na execuo, acesso a diretrios de backup e etc....
Espao em disco quando baixar arquivos, backup ..., comandos de parar servios ou
manipular arquivos em uso. Revise periodicamente scripts que requerem atualiza-

Linux System Administration

Pgina 19

3.6 Introduo Terica

4Linux www.4linux.com.br

o, tais como backup de dados dos usurios, incluir novos usurios...


O cron limita a busca nos diretrios /bin e /usr/bin, portanto indique o caminho completo do programa ou script, ou melhor indique sempre, mesmo que estejam nestes
diretrios.
Para agendar as tarefas usamos o comando crontab com a sintaxe descrita abaixo:

# crontab [ - u usu rio ] { -e | -l | -r }

u -> permite que o superusurio agende tarefas para outros usurios, pois o comando su pode atrapalhar o crontab. Um usurio comum no precisa usar essa
opo para especificar ele prprio.
e -> edita o arquivo de tarefas agendadas pelo usurio. A formatao desse arquivo
ser descrita mais adiante.
l -> lista o arquivo de tarefas agendadas pelo usurio.
r -> apaga o arquivo de tarefas agendadas pelo usurio.
Basicamente, para agendarmos uma tarefa deveremos editar o nosso arquivo agenda
com o comando:

crontab -e

O arquivo agenda tem as seguintes caractersticas: as linhas em branco, espaos


iniciais e tabs so ignorados. As linhas cujo primeiro caractere no-branco for um
"#"so comentrios, e so ignorados. Uma linha ativa em um arquivo agenda uma
definio de ambiente ou um comando do cron.
Definio de ambiente:

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

nome=valor -> A string valor pode ser colocada entre aspas (simples ou duplas, mas
correspondentes) para preservar espaos iniciais ou finais.
Vrias variveis de ambiente so definidas automaticamente pelo servidor cron.
SHELL definida como /bin/sh, LOGNAME e HOME so definidos a partir da linha
do /etc/passwd referente ao usurio que agendou a tarefa. HOME e SHELL podem
ser modificadas, mas LOGNAME no.
O formato de um comando do cron em grande parte o padro V7. Cada linha
tem cinco campos de hora e data, seguidos por um comando. Os comandos so
executados pelo servidor cron quando os campos minuto, hora, e ms correspondem
hora atual, e quando pelo menos um dos campos de dia (dia do ms, ou dia da
semana) correspondem ao dia atual.
Entre na crontab do usurio para edit-la:

# crontab -e

Para entendermos a diferena entre os campos dia do ms e dia da semana,


vamos agendar uma tarefa no crontab para escrever a data no terminal 2:

1
2

# minuto hora dia_do_mes m s


*

13

dia_da_semana comando

09

/ bin / date > / dev / tty2

No comando acima foi feito um agendamento para ser executado, todos os minutos
de todas as horas, no dia 13 de setembro e todos os sbados de setembro, ou seja,
os campos dia do ms e dia da semana trabalham de forma separada. Vamos
mudar nossa data e hora para verificarmos:

# date 091323582013

Linux System Administration

Pgina 21

3.6 Introduo Terica

4Linux www.4linux.com.br

Mudamos a data para o dia 13 de setembro de 2013, uma sexta-feira. Visualize a


data:

# cal 2013

Visualize no terminal 2 pela data, que, executado o comando hoje, dia 13 de


setembro de 2013 e que amanh, sbado ele tambm executado.
Visualize os agendamentos feitos pelo o usurio.

# crontab -l

Onde ficam armazenados os agendamentos feitos pelos usurios com o crontab


-e?

# cd /var/spool/cron/crontabs # ls

# cd /var/spool/cron # ls

No apague ou edite o seu agendamento dentro desse diretrio, use os comandos para fazer isso.

Aps verificar que os agendamentos foram efetuados corretamente, apague todos


os agendamentos do usurio.

# crontab -r

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

Para apagar somente um agendamento do usurio, use o crontab -e e retire


a linha desejada.

Agora que aprendemos a utilizar a crontab do usurio podemos usar a crontab do


sistema que opera praticamente da mesma forma, apenas tem um campo a mais,
o usurio que executar o script. Seu arquivo de configurao o /etc/crontab.
Debian:

# cat / etc / crontab

SHELL =/ bin / sh

PATH =/ usr / local / sbin :/ usr / local / bin :/ sbin :/ bin :/ usr / sbin :/ usr / bin

4
5

#m h dom mon dow user command

17 * * * * root

25 6 * * * root test -x / usr / sbin / anacron || ( cd / && run - parts --

cd / && run - parts -- report / etc / cron . hourly

report / etc / cron . daily )


8

47 6

* * 7 root test -x / usr / sbin / anacron || ( cd / && run - parts

-- report / etc / cron . weekly )


9

52 6 1 * * root test -x / usr / sbin / anacron || ( cd / && run - parts -report / etc / cron . monthly )

CentOS:

# cat / etc / crontab

SHELL =/ bin / sh

PATH =/ sbin :/ bin :/ usr / sbin :/ usr / bin

MAILTO = root

HOME =/

6
7

01

root

run - parts / etc / cron . hourly

02

root

run - parts / etc / cron . daily

Linux System Administration

Pgina 23

3.6 Introduo Terica

4Linux www.4linux.com.br

22

root

run - parts / etc / cron . weekly

10

42

root

run - parts / etc / cron . monthly

O programa run-parts executa todos os scripts executveis dentro de um certo


diretrio. Ento com essas linhas, temos diretrios programados para executar programas de hora em hora, diariamente, semanalmente ou mensalmente. Abaixo a
tabela:
Ainda dentro do diretrio /etc, temos quatro agendamentos pr-definidos:
cron.hourly, cron.daily, cron.weekly e cron.montly Onde:
cron.hourly: de hora em hora
cron.daily: de dia em dia
cron.weekly: de semana em semana
cron.montly: de ms em ms

3.6.3 Restringindo o uso do crontab

Os arquivos /etc/cron.allow e /etc/cron.deny so usados para restringir acesso ao


cron. O formato de ambos arquivos de controle de acesso consiste em um nome
de usurio por linha. Espaos em branco no so permitidos em nenhum destes
arquivos. O daemon do cron no precisa ser reiniciado se os arquivos de controle de
acesso forem modificados. Os arquivos de controle de acesso so lidos a cada vez
que o usurio tentar adicionar ou apagar uma tarefa do cron.
O usurio root pode usar o cron sempre, independentemente dos nomes de usurio
listados nos arquivos de controle de acesso.

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

3.6 Introduo Terica

Se o arquivo /etc/cron.allow existe, somente os usurios listados neste podero usar


o cron, e ento o arquivo cron.deny ser ignorado.
Se o arquivo cron.allow no existe, os usurios listados no cron.deny no podero
usar o cron.

Linux System Administration

Pgina 25

4451
Linux System Administration

www.4linux.com.br

Contedo
Automatizao de Tarefas com Shell Script I

4.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2 Usando os nmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3 Usando a estrutura se . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.4 Utilizando a estrutura if . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


4.5 Exemplos de script com IF

. . . . . . . . . . . . . . . . . . . . . . . . . 11

Automatizao de Tarefas com Shell


Script I
4.1 Introduo Terica
Tarefas administrativas so, muitas vezes, longas e repetitivas. Podemos automatizar esses procedimentos atravs de scripts. Na verdade, os scripts podem nos
auxiliar muito, numa vasta gama de atividades.
O que um script? uma sequncia de instrues que so executadas toda vez
que o mesmo chamado.
Mas, qual a diferena entre um script e um programa, j que ambos so sequncias
de instrues?
Um script, um programa no compilado. O processador da mquina s capaz
de executar programas binrios, isto , compilados especificamente para ele. Dessa
forma, necessrio um programa que interprete esse script, em tempo de execuo, para que o mesmo possa ser executado. No nosso caso, esse programa ser
uma shell, j que estamos falando de shell scripts.
Sendo uma linguagem de programao, a Shell Script possui uma srie de estruturas de controle como loops e condicionais, mas que so estudadas apenas em
cursos mais avanados. Estudando um exemplo
Vejamos o seguinte exemplo de Shell Script:

4.1 Introduo Terica

# vim shell . sh

# !/ bin / bash

# Meu primeiro shell script

cd ~

clear

ls - alh

date

cd -

4Linux www.4linux.com.br

Este um script bem simples. As linhas que comeam pelo smbolo "cedilha"so
comentrios, ou seja, tudo que aparece depois do desse carcter desprezado. Os
comentrios so muito importantes nos programas, pois so uma forma de documentlos. Imagine se voc tiver que fazer uma alterao num programa escrito a um ano
antes. Ser que voc ir se lembrar de todas as estruturas e variveis que utilizou?
Provavelmente no. Se for outra pessoa quem tiver que efetuar essa mudana, a
situao ser pior ainda!
Mas a primeira linha, na qual aparece um comentrio, possui uma caracterstica
um tanto estranha. Na verdade, a primeira linha de um script, indica qual ser o
interpretador daquele script. Em nosso exemplo ser o programa binbash, uma
shell. Se estivssemos criando um script com a linguagem de programao Perl,
a primeira linha seria algo como usrbinperl.
O script, propriamente dito, executa 4 comandos simples: Acessar o diretrio do
usurio corrente (cd ); limpar a tela (clear); listar o contedo diretrio corrente (ls
-alh); imprimir a data (date) e voltar ao diretrio original (cd -). Executando o script
Um programa ou script no GNU/Linux deve possuir permisso de execuo. Supondo que nosso script denomina-se shell.sh, para podermos execut-lo, devemos executar o comando:

# chmod u + x shell . sh

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

4.1 Introduo Terica

E em seguida executar o script:

# ./ shell . sh

Em algumas situaes, pode ser necessrio fornecer parmetros para um script.


Por exemplo, se ao invs de listar o contedo do diretrio pessoal do usurio, quisssemos que o script listasse o contedo de um diretrio qualquer.
Supondo que esse novo script chama-se script2.sh, uma possvel forma de utilizao do script seria:

# ./ script2 . sh / etc

Para passar parmetros para esse script, precisamos conhecer a funo de algumas variveis: $1, $2. Quando passamos algum parmetro para o nosso script,
esse parmetro fica armazenado em uma varivel especfica. Por exemplo:

# ./ script3 . sh

par metro1 par metro2 par metro3

Para conseguirmos resgatar o valor desses parmetro, precisamos chamar as variveis $1,$2 e $3, por exemplo:

# vim

script3 . sh

# !/ bin / bash

# Esse script pega o valor dos par metros e imprimi na tela .

echo $1

echo $2

echo $3

# ./ script3 42 the answer

Linux System Administration

Pgina 5

4.2 Usando os nmeros

4Linux www.4linux.com.br

4.2 Usando os nmeros


Muitas vezes quando fazemos scripts, precisamos de uma funo que faa o trabalho das operaes matemticas bsicas como soma, diviso, multiplicao e subtrao. Em shell script podemos usar o comando expr para realiz-las. J a
contagem de linhas feita pelo comando wc. E o comando cut serve para cortar
a sada no ponto especificado pelo separador.
Vamos ver esse exemplo: um script que deve dizer quantos usurios esto presentes, quantos grupos esto presentes e no final mostrar quantos objetos meu sistema
tem, a soma dos usurios e dos grupos:

# !/ bin / bash

echo " Aguarde ..... "

sleep 3

G= wc -l / etc / group | cut -d " " -f1

U= wc -l / etc / passwd | cut -d " " -f1

echo "O sistema possui $U usu rios . "

echo "O sistema possui $G grupos . "

echo "O sistema possui expr $G + $U objetos . "

4.3 Usando a estrutura se


At o presente momento, fizemos scripts que no possuem escolhas, ou seja, comandos de execuo em linha de comando em srie, utilizando nossa lgica para
fazer com que aquele script seja executado corretamente. Mas se qualquer coisa
acontecer no meio do caminho, no temos a oportunidade de trabalhar com as famosas exceptions.
As exceptions, tambm conhecidas como excees, servem para ajudar quando o

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

4.3 Usando a estrutura se

resultado de alguma parte do script pode ter vrios rumos. Usando a condio se,
possvel testar o resultado de uma condicional.
Por exemplo:

a=1 b=2 SE b >a ENTO IMPRIMA bSEN OIM P RIM Aa FIMSE

A varivel $?
A varivel interrogao conhecida por testar o valor de retorno de qualquer comando quando mostrada aps sua execuo. Com ela podemos verificar se o programa foi executado com sucesso ou no. Para isso basta saber que essa varivel
tem dois retornos principais.

# pwd

# echo $?

# 0

Quando o resultado dessa varivel igual a 0: Comando executado com sucesso!

# pws

# echo $?

# != 0

Quando o resultado diferente de 0, quer dizer que existiu algum problema na


execuo do comando.
Cada programa tem sua tabela e excees, mas sempre retornam 0 quando o
programa bem executado. O comando test

Linux System Administration

Pgina 7

4.3 Usando a estrutura se

4Linux www.4linux.com.br

O teste de condicionais (strings, matemticas e em arquivos) em Shell Script feito


atravs do comando test. Vamos conferir algumas formas de testar condicionais.
Testando strings

# test " uva " = " uva "

# echo $?

# 0

# test " uva " = " banana "

# echo $?

# 1

Testando expresses matemticas

# test 5 - eq 2

# echo $?

# 1

# test 2 - eq 2

# echo $?

# 0

Testando expresses em arquivos

# test -z $vazia

# echo $?

# 0

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

# var = valor

# test -z $var

# echo $?

# 1

4.3 Usando a estrutura se

Acima mostramos algumas formas de se testar as condicionais utilizadas dentro da


estrutura se. Lembre-se que podemos usar as condicionais tanto dentro, quanto
fora da estrutura se, depende do caso e do meio.

Abaixo podemos ver uma lista de operadores para nossa diverso.

Existem muitos outros operadores para que possamos dominar o mundo e consequentemente o sistemas UNIX com shell script. Estes so apenas os essenciais!

Linux System Administration

Pgina 9

4.4 Utilizando a estrutura if

4Linux www.4linux.com.br

4.4 Utilizando a estrutura if


Abaixo alguns exemplos realmente prticos de como utilizar a estrutura if.

# !/ bin / bash

## Primeiro script - Verificando se um usu rio existe

echo " Digite usu rio para consulta : "

read USER

REPLY =$( getent passwd | grep $USER )

if [ -z $REPLY ] ; then
echo " Usu rio $USER n o existe ! "

7
8

else
echo " Usu rio Existe "

9
10

fi

Ao invs de verificar se a varivel que recebia o resultado do comando estava vazia,


poderamos ter utilizado o comando test antes da estrutura e checar apenas seu
cdigo de erro:

# !/ bin / bash

## Primeiro script - Verificando se um usu rio existe

echo " Digite usu rio para consulta : "

read USER

REPLY =$( getent passwd | grep $USER )

7
8

test -z $REPLY

if [ $? - eq 0 ] ; then
echo " Usu rio $USER n o existe ! "

10
11

else
echo " Pagamento em dia "

12
13

fi

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

4.5 Exemplos de script com IF

4.5 Exemplos de script com IF


Exemplo 1: Verifica se um determinado usurio esta logado no sistema.

# !/ bin / bash

clear

echo " Digite o nome do usu rio "

read USER

if

then

clear

echo $USER esta logado

else

who

| grep $USER > / dev / null

10

clear

11

echo $USER n o est logado

12

fi

Exemplo 2: Pesquisa uma palavra dentro de um arquivo.

# !/ bin / bash

clear

echo " Escreva o nome do arquivo e a palavra a ser pesquisada : "

read file word

if grep $word $file > / dev / null

then

clear

echo "A palavra $word existe no arquivo $file . "

fi

Linux System Administration

Pgina 11

4451
Linux System Administration

www.4linux.com.br

Contedo
Automatizando Tarefas com Shell Script II

5.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.2 Utilizando a estrutura case . . . . . . . . . . . . . . . . . . . . . . . . .

5.3 Utilizando a estrutura while . . . . . . . . . . . . . . . . . . . . . . . .

5.4 Utilizando a estrutura for . . . . . . . . . . . . . . . . . . . . . . . . . .

5.5 Transformar Shell Script em binrio . . . . . . . . . . . . . . . . . . . . .

Automatizando Tarefas com Shell


Script II
5.1 Introduo Terica
Tarefas administrativas so, muitas vezes, longas e repetitivas. Podemos automatizar esses procedimentos atravs de scripts. Como exemplo podemos utilizar o
"case"para comandos de fluxo, tal como o if, mas enquanto if testa expresses no
exatas, o "case"vai agir de acordo com resultados exatos.
Temos o "while"para testa continuamente uma expresso, at que ela se torne falsa,
e ainda contamos com o lao "for"que vai substituindo uma varivel por um valor,e
vai executando os comandos que so pedidos.

5.2 Utilizando a estrutura case


Outra estrutura bastante til quando vrios if precisam ser declarados a estrutura
case.

case <valor> in <padro1>) comandos ;; <padro2>) comandos ;; <padro3>)


comandos ;; *) comandos ;; esac

5.2 Utilizando a estrutura case

4Linux www.4linux.com.br

Exemplo 1: Executar comandos dependendo do usurio digitado.

# !/ bin / bash

2
3

clear

echo " Digite um nome de usu rio "

read Usuario

case $Usuario in

aluno )

clear ; ls / etc ; cal ; date

;;

10

root )

11

clear ; whoami

12

;;

13

*)

14

clear

15

echo $Usuario n o existe

16

;;

17

esac

Exemplo 2: Script que exibe informaes do sistema.

# !/ bin / bash

clear

echo " Escolha uma op o para informa es da maquina ( Digite o numero


)"

echo "1- Horario do sistema "

echo "2- Tempo que o servidor esta ligado "

echo "3- Quantidade de usu rio logados "

echo "4- Sair "

read ESC

case $ESC in

10

1)

11

H=$( uptime | awk -F " " { print $1 } )

12

echo " Agora s o $H "

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

;;

13

2)

14

T=$( uptime | awk -F " " { print $3 } )

15
16

echo "O sistema esta $T ligado "


;;

17

3)

18

U=$( uptime | awk -F " " { print $4 } )

19
20

echo " Existem $U atualmete logados "

21

;;
4)

22
23

echo " Bye ... "

24

;;

25

*)
echo " Op o invalida "

26

;;

27
28

5.3 Utilizando a estrutura while

esac

5.3 Utilizando a estrutura while


Quando repeties so necessrias podemos utilizar estruturas de looping como
while e for.

1
2
3

while [< express o > ]; do


comandos
done

Exemplo 1: Verificar se um site esta no ar.

# !/ bin / bash

clear

echo " Digite o endere o de um site "

Linux System Administration

Pgina 5

5.4 Utilizando a estrutura for

read SITE

while ping - c1 $SITE > / dev / null 2 >&1

do

echo "O site $SITE est no ar . "

done

4Linux www.4linux.com.br

Exemplo 2: Cria quantos arquivos voc indicar com uma determinada extenso.

# !/ bin / sh

clear

echo " Digite o nome do arquivo "

read ARQ

clear

echo " Digite a extens o do arquivo "

read EXT

clear

echo " Digite o numero de arquivos criados "

10

read NUM

11

i =1

12

while [ $i - le $NUM ]

13

do

14

touch

15

i= expr $i + 1

16

$ARQ$i . $EXT

done

5.4 Utilizando a estrutura for


O for pode ser utilizado efetuar um looping no estilo do while ou para processar
uma lista.

for VARIAVEL in < lista > ; do

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

comandos com a VARIAVEL

2
3

5.4 Utilizando a estrutura for

done

Exemplo 1: Compactar todos os arquivos do diretrio atual.

# !/ bin / bash

for i in ls -1
do

tar - cvzf $i . tar . gz $i

done

Exemplo 2: Apaga todos os arquivos de uma determinada extenso.

# !/ bin / bash

clear

echo " Digite a extens o dos arquivos que voc quer apagar "

read ARQ

for i in *. $ARQ ; do

rm $i

done

Exemplo de Loop
Vamos criar um script que far uma verificao de quais mquinas esto ativas na
rede, para isso usaremos o comando ping.

ping 192.168.200.254

Usaremos algumas opes do comando ping para que ele no entre num loop, como
acontece por padro, e espere nossa interao para interrompe-lo:

Linux System Administration

Pgina 7

5.5 Transformar Shell Script em binrio

4Linux www.4linux.com.br

# ping -c 2 -w 2 192.168.200.1

Iremos agora elaborar o shell script hostup.sh

1
2
3

# !/ bin / bash
for IP in $ ( seq 1 15) ; do
ping -c 2 -w 2 192.168.200. $IP > / dev / null &&

echo " 192.168.200. $IP - UP " ||

echo " 192.168.200. $IP - DOWN "

done

D permisso de execuo ao script e execute-o para test-lo:

# cd / sbin

# chmod u + x hostup . sh

# hostup . sh

Programar em shell script uma arte, e como na arte, em shell o limite a sua
imaginao. Para se aprofundar nesse assunto:

http://jneves.wordpress.com/ http://aurelio.net

5.5 Transformar Shell Script em binrio


Obtenha o arquivo compactado no site usando o comando wget:

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

5.5 Transformar Shell Script em binrio

# wget -c http :// www . datsi . fi . upm . es /~ frosal / sources / shc -3.8.6. tgz

Descompacte o arquivo:

# tar - xvzf shc -3.8.6. tgz

Copie o binrio o shc para /usr/local/bin

# cp shc -3.8.6/ shc / usr / local / bin /

Compile seu shell script usando o comando:

# shc -v -r -f script

Opes de linha de comando:


-v: Modo verbose (mostra o que esta fazendo);
-r: Gera um binrio compatvel com mais de um sistema;
-f: Opo para o compilador buscar o arquivo;
Copie o arquivo binrio para /bin (assim todos os usurios tero acesso)

# cp script . x / bin / script

Acerte as permisses do arquivo para que todos os usurios tenham acesso.

Linux System Administration

Pgina 9

5.5 Transformar Shell Script em binrio

4Linux www.4linux.com.br

# chmod 755 / bin / script

Acesse o sistema com um usuario comum e digite o nome do script

Pgina 10

Linux System Administration

4451
Linux System Administration

www.4linux.com.br

Contedo
Gerenciamento de dados SQL

6.1 Introduo ao SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.2 Instalao do MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3 Criao do Banco de Dados e Tabelas . . . . . . . . . . . . . . . . . . .

6.4 Inserir e pesquisar dados em tabelas . . . . . . . . . . . . . . . . . . . .

6.5 Atualizar campos e registros em tabelas . . . . . . . . . . . . . . . . . .

6.6 Alterando privilgios . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Gerenciamento de dados SQL


6.1 Introduo ao SGBD
Antes de iniciar a criao de bancos de dados e tabelas, preciso ter instalado na
maquina um SGBD. Que consiste um sistema gestor de base de dados, onde disponibiliza uma interface para que clientes (usurios), possam interagir com o banco
de dados, de varias maneiras como inserir dados, pesquisar, excluir, entre outras
tarefas.
Os comandos so executados usando a linguagem SQL (Structured Query Language
- Linguagem de Consulta Estruturada), que uma linguagem para banco de dados
relacional, facilitando a interao com vrios SGBDs, como por exemplo o Firebird,
PostgreSQL, MySQL, entre outros.

As provas do LPI iro cobrar comandos bsicos de SQL.

6.2 Instalao do MySQL


1) Para os nossos testes, vamos utilizar o MySql:

# aptitude install mysql - server

6.3 Criao do Banco de Dados e Tabelas

4Linux www.4linux.com.br

2) Ganhando acesso ao Banco de dados:

# mysql -u root -p

3) Visualizando databases:

mysql > show databases ;

6.3 Criao do Banco de Dados e Tabelas


1) Criando database:

mysql > create database lpi ;

2) Utilizando database:

mysql > use lpi ;

3) Veremos agora como criar as tabelas, onde os dados sero armazenados. A


sntese de criao de tabelas do MySQL a seguinte:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nome_tabela [(definio_create,...)]
[table_options] [select_statement]
Novamente podemos nos valer do parmetro opcional IF NOT EXISTS para executarmos o comando sem termos certeza da existncia ou no da tabela. Para criarmos
uma tabela executamos a seguinte parte da sintaxe: CREATE TABLE nome_tabela.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

6.3 Criao do Banco de Dados e Tabelas

Mas mais comum criarmos a tabela j acompanhada de seus campos (fields). Vamos criar no nosso exemplo a tabela LPI com os seguintes campos:
id - campo de identificao;
certificacao - ttulo do nvel da prova; prova - tipo de prova; nota - notas da
prova;
A sintaxe completa do comando ser:

mysql > create table lpi (

-> id int (10) unsigned not null auto_increment ,

-> certificacao varchar (80) not null ,

-> prova int (4) unsigned not null ,

-> nota varchar (80) not null ,

-> primary key ( id ) ) ;

Os campos so definidos da seguinte forma:


nome_campo tipo [ NULL | NOT NULL ] [ DEFAULT valor_padro] [ AUTO_INCREMENT
]
No campo id por exemplo o tipo int(10) com o modificador unsigned, ele no
aceita valores nulos (not null) e auto_increment, ou seja, seu valor definido
automaticamente, aumentando de 1 (um) em 1 (um) toda vez que um novo registro
adicionado. Para fazer uso desta funcionalidade necessrio adicionar o valor 0
ou null neste campo.
No campo certificacao escolhemos o tipo varchar(80) o que significa que este
campo aceita caracteres alfanumricos com no mximo 80 deles. O campo tambm
no pode ser nulo.
4) Visualizando as tabelas:

Linux System Administration

Pgina 5

6.4 Inserir e pesquisar dados em tabelas

4Linux www.4linux.com.br

mysql > show tables ;

5) Liste a estrutura da tabela:

mysql > desc lpi ;

Com o retorno do comando desc podemos ver quais os campos da tabela, qual o
tipo dos campos, se aceitam ou no valores nulos, se existe uma chave primria, e
se algum campo possui a propriedade auto_increment.

6.4 Inserir e pesquisar dados em tabelas


1) Para preencher os campos da tabela

mysql > INSERT INTO lpi ( id , certificacao , prova , nota ) VALUES ( 01 ,


LPI , 101 , 630 ) ;

2) Selecionar todos os registros da tabela lpi onde o campo nota possui o valor
igual a 101:

mysql > SELECT * FROM lpi WHERE nota = 101 ;

6.5 Atualizar campos e registros em tabelas


1) Adicione um novo campo na tabela:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

1
2

6.6 Alterando privilgios

mysql > alter table lpi


-> add nome varchar (80) not null ;

2) Liste a estrutura da tabela:

mysql > desc lpi ;

3) Selecionar todos os registros da tabela lpi:

mysql > select * from lpi ;

4) Atualize o registro 1 onde o campo id possui o valor igual a 1:

mysql > update lpi set nome = fulano where id = 1 ;

6.6 Alterando privilgios


1) Adicionando usurio:

mysql > GRANT ALL PRIVILEGES ON lpi .* TO curso@localhost

IDENTIFIED BY cursolinux WITH GRANT OPTION ;

FLUSH PRIVILEGES ;

Atribui todos os privilgios todas as tabelas do banco lpi ao usurio curso, a


partir da mquina localhost, cuja senha cursolinux. O comando FLUSH PRIVILEGES atualiza as novas alteraes no daemon do MySQL. Caso o usurio
curso no exista, um novo usurio ser criado.

Linux System Administration

Pgina 7

6.6 Alterando privilgios

4Linux www.4linux.com.br

2) Saindo do Mysql:

mysql > quit

3) Faa testes de login com o usurio root e o usurio curso:

# mysql -u root -p

# mysql -u curso -p

Pgina 8

Linux System Administration

4451
Linux System Administration

www.4linux.com.br

Contedo
Administrao de Usurios I
7.1

Registro de usurios no sistema . . . . . . . . . . . . . . . . . . . . . .

7.1.1 Arquivo /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . .

7.1.2 Arquivo /etc/shadow . . . . . . . . . . . . . . . . . . . . . . . . .

7.2 Levantamento de informaes dos usurios

. . . . . . . . . . . . . . .

7.2.1 Comando chage . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.2.2 Comando id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.2.3 Comando groups

. . . . . . . . . . . . . . . . . . . . . . . . . .

7.2.4 Comando finger . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.2.5 Comando users . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.2.6 Comando who . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


7.2.7 Comando w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.3

Criando grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.3.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.3.2 Comando groupadd . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.3.3 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7.4 Criando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


7.4.1 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.4.2 Comando useradd . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.5

Adicionando usurio ao grupo . . . . . . . . . . . . . . . . . . . . . . . 15


7.5.1 Comando addgroup . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.5.2 Comando adduser . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.5.3 Comando gpasswd

7.6

. . . . . . . . . . . . . . . . . . . . . . . . . 17

Deletando usurio de um grupo . . . . . . . . . . . . . . . . . . . . . . 17


7.6.1 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.6.2 Comando gpasswd

. . . . . . . . . . . . . . . . . . . . . . . . . 18

4Linux www.4linux.com.br

Contedo

7.6.3 Comando delgroup . . . . . . . . . . . . . . . . . . . . . . . . . . 19


7.7

Removendo usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.7.1 Comando userdel . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.7.2 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 21

7.8 Removendo grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22


7.8.1 Comando deluser . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.8.2 Comando groupdel . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.8.3 Comando delgroup . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Linux System Administration

Pgina 3

Administrao de Usurios I
7.1 Registro de usurios no sistema

H quatro arquivos bsicos que dizem respeito administrao de usurios,


sendo eles:

passwd -> contm as informaes dos usurios;


shadow -> contm as informaes das senhas dos usurios;
group -> contm as informaes dos grupos e usurios que fazem parte deles;
gshadow -> contm informaes a respeito das senhas de grupo.
Leitura Sugerida, para administrao de usurios:

passwd -> man 5 passwd


shadow -> man 5 shadow

Leitura Sugerida, para administrao dos grupos:

4Linux www.4linux.com.br

7.1 Registro de usurios no sistema

group -> man 5 group


gshadow -> man 5 gshadow

7.1.1 Arquivo /etc/passwd

Cada usurio cadastrado no sistema identificado por uma linha no arquivo /etc/passwd. Os campos so separados pelo caractere : (dois pontos). O formato do ar-

quivo /etc/passwd o seguinte: usuario:x:1000:1000:User da Silva,8111-1234:/home/usurio:/bin/


Onde:
Campo 1 -> Login do usurio;
Campo 2 -> Referncia da senha do usurio, pois ela fica armazenada em outro
arquivo.
Campo 3 -> O UID - User Identify o nmero de identificao do usurio. Essa
identificao dividida conforme a categoria dos usurios:
UID 0 -> o nmero do usurio administrador root.
Debian:
UID de 1 a 999 -> So os nmeros para usurios de sistema.
UID de 1000 a 65535 -> So os nmeros para usurios normais.
CentOS:
UID de 1 a 499 -> So os nmeros para usurios de sistema.

Linux System Administration

Pgina 5

7.1 Registro de usurios no sistema

4Linux www.4linux.com.br

UID de 500 a 65535 -> So os nmeros para usurios normais.


Essas definies de usurios de sistema e usurios normais podem variar nas distribuies, somente o UID 0 padro em todas as distribuies.

Campo 4 -> O GID - Group Identity o nmero de identificao do grupo


primrio do usurio. Essa identificao tambm dividida em 3 categorias como o
UID:

GID 0 -> o nmero do grupo administrador root.


Debian:
GID de 1 a 999 -> So os nmeros para grupos de sistema.
GID de 1000 a 65535 -> So os nmeros para grupos normais.
CentOS:
UID de 1 a 499 -> So os nmeros para grupos de sistema.
UID de 500 a 65535 -> So os nmeros para grupos normais.
Campo 5 -> Comentrios e informaes adicionais sobre o usurio;
Campo 6 -> Diretrio pessoal;
Campo 7 -> Shell do usurio;

Usar o comando getent, a maneira certa de se acessar arquivos de controle


no GNU/Linux.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

7.1 Registro de usurios no sistema

7.1.2 Arquivo /etc/shadow

As senhas dos usurios ficam armazenadas no arquivo /etc/shadow conhecido


como senhas sombras (shadow passwords). As senhas ficam nele pois um arquivo mais seguro que o arquivo /etc/passwd. No arquivo /etc/passwd qualquer
usurio poderia visualiz-las e copi-las para outro diretrio ou mquina remota. J
o arquivo /etc/shadow tem suas permisses muito mais restritas, no permitindo
que ele seja copiado e nem visualizado diretamente por um usurio comum. Isso
uma grande ajuda na questo de segurana, pois se as senhas estivessem no prprio /etc/passwd seria muito fcil para um invasor com usurio comum, copiar esse
arquivo para outro servidor e aplicar uma ferramenta de brute force para quebrar as
senhas.
O suporte a senhas shadow costuma vir ativado por padro em todas as distribuies. Em algumas delas, se forem instaladas no modo expert, possvel optar
por ativar ou no esse suporte. sempre recomendado deixar as senhas shadow
ativadas.
Caso encontremos algum servidor GNU/Linux sem as senhas shadow configuradas, podemos utilizar o comando pwconv para ativ-las e pwunconv para desativlas.

Em relao s senhas shadow e os comandos pwconv e pwunconv, muitas


perguntas podem ser feitas na prova. Fique atento!

O arquivo shadow no trata somente a questo de segurana de senhas. Ele tambm trata de polticas de contas do usurio, como, por exemplo, por quantos dias a
conta de um usurio vlida? Quando vai expirar? Quando deve ser a troca de senha? E alguns outros parmetros que podem ser alterados manualmente ou usando
o comando chage.

Linux System Administration

Pgina 7

7.2 Levantamento de informaes dos usurios

4Linux www.4linux.com.br

7.2 Levantamento de informaes dos usurios


7.2.1 Comando chage
O comando chage configura algumas caractersticas da senha, como: data de
validade, data de aviso de troca, dentre outras. O Nome do usurio no exemplo
aluno, fique atento, porque esse comando muito til em seu dia-a-dia:

# chage -E 03/08/2012 aluno

# chage -l aluno

ltima mudan a de senha

Esta senha expira em

Senha inativa

Conta expira em

N mero m nimo de dias entre mudan as de senha : 0

N mero m ximo de dias entre mundan as de senha

: 99999

N mero de dias de aviso antes da senha expirar

: 7

: Set 12 , 2011
: nunca
: nunca
: Mar 08 , 2012

7.2.2 Comando id
O comando id mostra as informaes de UID, GID e grupos secundrios dos
usurios. Para ver essas informaes do usurio corrente, fazemos da seguinte
forma:

# id

Para ver as informaes do usurio aluno utilize a seguinte sintaxe:

# id aluno

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

7.2 Levantamento de informaes dos usurios

7.2.3 Comando groups

A lista dos grupos existentes no sistema armazenada em /etc/group.


O uso do comando groups, sem parmetros, faz com que o sistema informe os grupos dos quais o usurio membro.

# groups

Para ver qual grupo o usurio aluno pertence utilize a seguinte sintaxe:

# groups aluno

7.2.4 Comando finger

O comando finger mais amigvel e nos traz maiores informaes como: Login, Nome, Diretrio home, Shell, nmero de e-mails no lidos e os horrios das
ltimas autenticaes que esse usurio realizou.

# finger aluno

7.2.5 Comando users

O comando users mostra de maneira bem simples os usurios que esto logados
no sistema. A sintaxe do comando users a seguinte:

Linux System Administration

Pgina 9

7.2 Levantamento de informaes dos usurios

4Linux www.4linux.com.br

# users

7.2.6 Comando who

O comando who mostra quais usurios esto logados na mquina. Traz informaes adicionais sobre qual terminal est sendo utilizado, o momento e a partir de
qual mquina foi feito o login de cada usurio.

# who

7.2.7 Comando w

O comando w similar ao who, mas traz tambm informaes sobre o que


cada usurio est fazendo, tanto local quanto remotamente. Esse comando muito
til para ver se no existem conexes indevidas em nosso sistema.
A sintaxe do comando w para visualizar todos os usurios logados a seguinte:

# w

Para visualizar se o usurio aluno est logado a sintaxe a seguinte:

# w aluno

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

7.3 Criando grupo

7.3 Criando grupo


Um usurio sempre deve pertencer a um grupo primrio, mas pode ser adicionado a
grupos secundrios, normalmente usado dentro de uma estrutura empresarial onde
os usurios precisam pertencer a vrios grupos para terem acessos a arquivos de
outros setores.

7.3.1 Comando addgroup


Adiciona um grupo ao sistema. ou adiciona um usurio a um grupo.
S funciona no Debian:
Adicione o grupo rede e grupo internet:

# addgroup rede

# addgroup internet

CentOS:
No existe o comando.

7.3.2 Comando groupadd


O comando groupadd cria um novo grupo usando valores especificados na linha de
comando e os valores padres do sistema. O novo grupo ser criado nos arquivos
do sistema, conforme o requerido. Adicione o grupo aula:

Linux System Administration

Pgina 11

7.4 Criando Usurios

4Linux www.4linux.com.br

# groupadd aula

7.3.3 Comando adduser

S funciona no Debian:
Adicione o grupo empresa e social:

# adduser -- group empresa

# adduser -- group social

CentOS:
No funciona no CentOS devido ao comando ser um link para o comando "useradd".

7.4 Criando Usurios


Antes de criarmos um usurio, vamos definir o que conter por padro em seu diretrio home, isto definido no arquivo /etc/skel, tudo o que estiver dentro deste
diretrio ser adicionado ao home do usurio por padro. Crie um diretrio e um
arquivo dentro do diretrio /etc/skel:

# mkdir / etc / skel / importante

# touch / etc / skel / atividades . txt

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

7.4 Criando Usurios

7.4.1 Comando adduser


O comando "adduser" um "script"customizado que trabalha como o comando "useradd". O "adduser" bastante utilizado por administradores que precisam cadastrar
usurios no formato tradicional, ou seja, com nome, senha e grupo, definindo, alm
disso ele tambm pode criar grupos e adicionar usurios em grupos.

No caso do CentOS, o comando adduser um link para o comando useradd.

Este comando pode ser usado de vrias formas, mas a sintaxe mais utilizada a
seguinte:
Debian:

# adduser [ usu rio ]

Adicione o usurio mandark e a usuria meemee:

# adduser mandark

# adduser meemee

Dessa maneira ele adicionar o usurio, j pedindo para definir sua senha e as informaes adicionais. Automaticamente, ele j cria um grupo com o mesmo nome do
usurio e copia todos os arquivos que esto no diretrio /etc/skel para o diretrio
home do usurio.
Visualize os grupos que o usurio mandark pertence e tambm os arquivos/diretrios
criados a partir do /etc/skel em seu diretrio home:

Linux System Administration

Pgina 13

7.4 Criando Usurios

# id mandark

# ls / home / mandark

4Linux www.4linux.com.br

CentOS:
O comando adduser no CentOS um link para o comando useradd. Veja o comando
"useradd".

7.4.2 Comando useradd


Podemos tambm adicionar usurios atravs do comando useradd, que um pouco
mais complexo e precisa de alguns parmetros a mais.
Adicione o usurio levinsky e o usurio leelee:

# useradd leelee

# useradd levinsky

Tente se logar com o usurio levinsky em um terminal e repare que no possvel, pois ainda no foi definida uma senha para ele. Adicione uma senha para o
usurio:

# passwd levinsky

Agora tente se logar no terminal com o usurio levinsky e veja que, possvel aps
ser definida a senha. Mas tente se logar na parte grfica e veja o que acontece, no
possvel, pois o usurio no tem diretrio home.
Para criar o usurio deedee com os principais atributos faa:

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

7.5 Adicionando usurio ao grupo

# useradd -m -s / bin / bash -u 3000 -g 100 -p perl -e print crypt


(123456 , " salt ")

deedee

Acima criamos o usurio deedee, onde:


-m -> cria diretrio home, caso ele no exista
-s -> shell do usurio
-u -> UID
-g -> GID
-p -> senha criptografada
perl -e print crypt(123456, salt) -> criptografar senha 123456 no formato crypt
Verifique o UID e GID do usurio vendas:

# id deedee

Logue-se com o usurio deedee no terminal e na parte grfica.

7.5 Adicionando usurio ao grupo


7.5.1 Comando addgroup
O comando addgroup pode ser utilizado para adicionar um usurio a um grupo. Adicione o usurio mandark ao grupo rede, aula e aluno:

Linux System Administration

Pgina 15

7.5 Adicionando usurio ao grupo

# addgroup mandark rede

# addgroup mandark aula

# addgroup mandark aluno

4Linux www.4linux.com.br

CentOS:
No existe o comando.

7.5.2 Comando adduser


S funciona no Debian:
O comando adduser tambm utilizado para adicionar um usurio um grupo, sua
sintaxe :

# adduser [ usu rio ] [ grupo ]

Adicione o usurio mandark ao grupo empresa:

# adduser mandark empresa

Visualize os grupos que o usurio pertence:

# id mandark

CentOS:

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

7.6 Deletando usurio de um grupo

O comando adduser no CentOS um link para o comando useradd. Veja o comando


"useradd".

7.5.3 Comando gpasswd


O comando gpasswd pode ser utilizado para definir a senha de um grupo. Utilizando a opo -a podemos adicionar um usurio a um grupo secundrio.
Para adicionar um usurio a um grupo secundrio a sintaxe a seguinte:

# gpasswd -a [ usu rio ] [ grupo ]

Adicione o usurio mandark ao grupo internet e social:

# gpasswd -a mandark internet

# gpasswd -a mandark social

Visualize:

# id mandark

7.6 Deletando usurio de um grupo


7.6.1 Comando deluser
S funciona no Debian: O comando deluser tambm utilizado para remover um
usurio de um grupo: Delete o usurio mandark do grupo rede:

Linux System Administration

Pgina 17

7.6 Deletando usurio de um grupo

4Linux www.4linux.com.br

# deluser mandark rede

Visualize:

# id mandark

CentOS:
No tem o comando.

7.6.2 Comando gpasswd

O comando gpasswd pode ser utilizado para remover um usurio de um grupo secundrio. Para remover um usurio de um grupo secundrio a sintaxe a seguinte:

# gpasswd -d [ usu rio ] [ grupo ]

Removendo o usurio mandark do grupo internet:

# gpasswd -d mandark internet

Visualize:

# id mandark

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

7.7 Removendo usurios

7.6.3 Comando delgroup

Remove um usurio de um grupo. S funciona Debian:


Remova o usurio mandark do grupo social:

# delgroup mandark social

Visualize:

# id mandark

7.7 Removendo usurios


A remoo de usurios pode ser feita de duas formas. A primeira mantendo o diretrio home do usurio e a segunda, removendo tambm o home. aconselhvel
que se remova o diretrio do usurio para que um prximo usurio adicionado ao
sistema no acabe como dono daquele diretrio e tendo acesso a informaes s
quais ele no deveria ter. Isso pode acontecer porque a delegao de UIDs sequencial. Mas para remover o usurio com o seu diretrio, tambm aconselhvel,
antes, fazer um backup de tudo o que aquele usurio possua ou transferir todos os
arquivos para o responsvel. O usurio que ser removido no pode estar logado.

7.7.1 Comando userdel

A sintaxe para remover o usurio e manter o seu diretrio home a seguinte:

Linux System Administration

Pgina 19

7.7 Removendo usurios

4Linux www.4linux.com.br

# userdel [ usu rio ]

Remova a usuria meemee:

# userdel meemee

Repare que a usuria meemee foi removida, mas seu diretrio home no:

# ls -l / home

O problema aqui que o prximo usurio que for criado, herdar o diretrio pra si,
veja:

# adduser herdeiro

# ls -l / home

Alm de ser criado um diretrio home, ele tambm herda o do usurio anterior, isto
acontece porque os usurios so criados conforme os UIDs disponveis na sequncia. Para remover o usurio e o seu diretrio home, necessrio utilizar a opo
-r da seguinte forma:

# userdel -r [ usu rio ]

Remova o usurio deedee e seu diretrio home:

# userdel -r deedee

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

7.7 Removendo usurios

Verifique que foi deletado o diretrio home do usurio deedee:

# ls -l / home

7.7.2 Comando deluser


S funciona no Debian: O comando deluser deleta um usurio. Delete o usurio
levinsky:

# deluser levinsky

Verifique que o diretrio home do usurio no foi removido:

# ls -l / home

Adicione novamente o usurio levinsky:

# adduser levinsky

Delete o usurio levinsky e seu diretrio home:

# deluser levinsky -- remove - home

Verifique que o diretrio home do usurio foi removido:

# ls -l / home

Linux System Administration

Pgina 21

7.8 Removendo grupos

4Linux www.4linux.com.br

Adicione novamente o usurio levinsky:

# adduser levinsky

Delete o usurio levinsky e faa um backup do seu diretrio home:

# deluser levinsky -- remove - home -- backup

Verifique que seu diretrio home foi compactado:

# ls -l / home

Para complementar a seo removendo usurios com o comando deluser muito


interessante olhar o arquivo /etc/deluser.conf.
CentOS:
No tem o comando.

7.8 Removendo grupos


7.8.1 Comando deluser
O comando deluser pode tambm deletar um grupo, desde que este no seja o
grupo primrio de um usurio. Vamos deletar o grupo criado anteriormente chamado
empresa:

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

7.8 Removendo grupos

# deluser -- group empresa

7.8.2 Comando groupdel


Apaga um grupo do sistema. Quando usado, este comando apaga todos os dados
do grupo especificado dos arquivos de contas do sistema. No possvel remover o
grupo primrio de um usurio. Remova o usurio primeiro.
Visualize que o usurio mandark pertence ao grupo aula que criamos anteriormente:

# id mandark

Removendo o grupo aula:

# groupdel aula

Visualize que o usurio mandark no pertence mais ao grupo aula:

# id mandark

7.8.3 Comando delgroup


Remove um grupo do sistema. Remova o grupo internet:

# delgroup internet

Linux System Administration

Pgina 23

7.8 Removendo grupos

4Linux www.4linux.com.br

CentOS:
No existe o comando.

Pgina 24

Linux System Administration

4451
Linux System Administration

www.4linux.com.br

Contedo
Administrao de Usurios II

8.1 Modificando Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.1.1 Comando passwd . . . . . . . . . . . . . . . . . . . . . . . . . .

8.1.2 Comando usermod

. . . . . . . . . . . . . . . . . . . . . . . . .

8.2 Alterao do Dono e Grupo . . . . . . . . . . . . . . . . . . . . . . . . .

8.3 Introduo a tipos de permisses . . . . . . . . . . . . . . . . . . . . . .

8.4 Permisses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.4.1 LITERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.4.2 OCTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.4.3 Exemplos de permisses . . . . . . . . . . . . . . . . . . . . . . 17
8.5

Umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.5.1 Clculo da umask . . . . . . . . . . . . . . . . . . . . . . . . . . 21

8.6 Permisses Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Administrao de Usurios II
8.1 Modificando Usurios
A modificao de usurios limitada ao usurio root. Iremos aprender aqui como
mudamos alguns parmetros que so necessrios no dia-a-dia, como troca de senhas, grupos e controle de login.

8.1.1 Comando passwd


Depois do usurio ter sido criado podemos usar alguns comandos para modificar sua
conta. O primeiro ser o passwd que possibilita adicionar ou modificar a senha de
um usurio. As principais sintaxes que podem ser utilizadas nesse comando esto
descritas abaixo.
Para modificar a senha do usurio corrente:

# passwd

Caso esteja modificando a senha de um usurio normal, primeiro ser solicitada a senha corrente para permitir a definio de uma nova senha. Isso no

8.1 Modificando Usurios

4Linux www.4linux.com.br

acontece com o usurio root, que pode definir a nova senha diretamente, tanto
para ele quanto para os outros usurios.

Para modificar a senha do usurio mandark:

# passwd mandark

Para bloquear a conta do usurio mandark:

# passwd -l mandark

Tente se logar com o usurio mandark, no possvel, pois sua conta est bloqueada. Para desbloquear a conta do usurio mandark:

# passwd -u mandark

Agora o usurio j pode se logar.

8.1.2 Comando usermod


Para modificar nomes de grupos do sistema, utilizamos o comando:

# groupmod -n [ novo - nome ]

groupmod -n vendas rede

Pgina 4

[ nome - grupo ]

Linux System Administration

4Linux www.4linux.com.br

8.1 Modificando Usurios

Outro comando que pode ser utilizado para modificar parmetros do usurio o
usermod. Ele possibilita alterar qualquer tipo de informao relativa ao usurio.
Um dos parmetros que pode ser modificado o grupo primrio, usando-se a opo
-g. Com a opo -G, podemos alterar os grupos secundrios.
A sintaxe para modificar o grupo primrio de um usurio a seguinte:

# usermod -g [ grupo ] [ usu rio ]

Verifique o grupo primrio do usurio mandark:

# id mandark

Altere seu grupo primrio para audio:

# usermod -g audio mandark

As alteraes podem ser visualizadas no arquivo /etc/passwd no campo GID,


ou diretamente no arqu1ivo /etc/group. Para trocar todos os grupos secundrios
pelos grupos aluno e vendas, faa:

# usermod -G aluno , vendas mandark

Visualize:

# id mandark

Altere seu grupo primrio para mandark:

Linux System Administration

Pgina 5

8.1 Modificando Usurios

4Linux www.4linux.com.br

# usermod -g mandark mandark

Para mudarmos o campo de informaes dentro do arquivo /etc/passwd, precisamos usar o comando usermod com a opo -c.

# usermod -c " Dpto vendas " mandark

# getent passwd | grep mandark

mandark : x :1001:1001: Dpto mandark :/ home / mandark :/ bin / bash

Outras opes do comando:

-d diretrio [-m] : cria um novo diretrio home para o usurio. A opo -m faz com
que o diretrio atual do usurio seja movido para o novo diretrio.

-e mm/dd/yy : altera a data de expirao da conta do usurio.

-l nome : altera o nome de identificao do usurio (o usurio no pode estar logado).

-s shell : altera o shell do usurio.

-u uid : altera o nmero de UID do usurio.

-L : bloqueia a conta acrescentando um ! no incio da linha do usurio no arquivo


/etc/passwd

-U : desbloqueia a conta

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

8.2 Alterao do Dono e Grupo

8.2 Alterao do Dono e Grupo


Como j vimos, cada arquivo e diretrio possui um dono e um grupo. Para alter-los
podemos utilizar os comandos chown e chgrp como nos exemplos a seguir.
Vamos criar o diretrio home do usurio leelee que ainda no existe:

# mkdir / home / leelee

Como criamos como usurio root, o dono e o grupo do diretrio criado pertencem ao
usurio root e grupo root:

# ls -ld / home / leelee

drwxr -xr - x

2 root

root

4096 2011 -11 -08 18:00 leelee

Temos que mudar o usurio e grupo para o usurio leelee e seu grupo primrio
leelee. Alterando apenas o grupo de root para leelee:

# chgrp leelee / home / leelee

Visualize:

# ls -ld / home / leelee

drwxr -xr - x

2 root

leelee

4096 2011 -11 -08 18:00 leelee

Outra forma de trocar apenas o grupo com o comando chown, veja sua sintaxe:

# chown [ dono . grupo ] [ arquivo ] -> troca dono e grupo

Linux System Administration

Pgina 7

8.2 Alterao do Dono e Grupo

4Linux www.4linux.com.br

# chown [ dono : grupo ] [ arquivo ] -> troca dono e grupo

# chown [ dono ] [ arquivo ] -> troca apenas o dono

# chown [ dono .] [ arquivo ] -> troca dono e grupo " mesmo grupo prim
rio do dono "

# chown [ dono :] [ arquivo ] -> troca dono e grupo " mesmo grupo prim
rio do dono "

# chown [. grupo ] [ arquivo ] -> troca o grupo

# chown [: grupo ] [ arquivo ] -> troca o grupo

Troque o dono para leelee:

# chown leelee / home / leelee

Visualize:

# ls -ld / home / leelee

drwxr -xr - x

2 leelee

leelee

4096 2011 -11 -08 18:00 leelee

Troque a senha do usurio leelee:

# passwd leelee

Agora se logue na parte grfica como usurio leelee. Para poder alterar o dono/grupo de arquivos e diretrios dentro do diretrio utilize o parmetro -R para fazer
a alterao recursiva

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

8.3 Introduo a tipos de permisses

8.3 Introduo a tipos de permisses


O GNU/Linux um sistema multi-usurio e portanto, possui um esquema de permisses que prov a privacidade e/ou compartilhamento de arquivos entre usurios.
Na verdade, esse esquema de permisses parte fundamental do sistema. Neste
captulo, iremos aprender sobre ele e tambm como criar e remover contas de usurios.
Quando comeamos a trabalhar com usurios no sistema GNU/Linux podemos dividilos em trs categorias:

Usurio Administrador (Super Usurio): usurio conhecido como root no


sistema. esse usurio que controla todo o sistema e no possui nenhuma
restrio. Mas devemos ter uma certa cautela ao us-lo pois com qualquer
deslize podemos danificar todo o sistema;

Usurios de Sistema: so aqueles que no precisam logar no sistema, so


utilizados para controlar servios. Esses usurios no devem possuir senhas
nem Shell vlida. Um exemplo desses usurios o www-data que usado
exclusivamente para controlar o servidor web Apache;

Usurios comuns: so utilizados para trabalhar no sistema GNU/Linux. So


contas criadas para aqueles que utilizam ou operam o sistema. sempre aconselhvel que cada usurio comum ou administrador tenha sua prpria conta e
s utilize a conta root para administrao do sistema.

Tanto para o usurio root, quanto para o usurio comum, sempre aconselhvel
ter uma boa poltica de criao de senhas, para que um possvel invasor no se
aproveite de um usurio com uma senha fraca. At mesmo um usurio comum,
precisa tomar cuidado com a sua senha, pois esse seria o primeiro passo para o
invasor escalar privilgios no sistema, e virar o usurio administrador root. Evite
usar senhas com datas de aniversrio, casamento e outras datas que so fceis
de serem descobertas. Evite usar palavras listadas em um dicionrio. Uma boa

Linux System Administration

Pgina 9

8.4 Permisses

4Linux www.4linux.com.br

dica mesclar a senhas com letras maisculas e minsculas, nmeros e caracteres


especiais.

Alguns sistemas GNU/Linux podem ter usurios que chamamos de administradores. Esses usurios no vm configurados por padro, eles so usurios normais
mas que possuem alguns privilgios a mais em algumas aplicaes.

Para que os usurios comuns e o root tenham acesso ao sistema e consigam trabalhar normalmente, so necessrios 5 elementos.

Nome;

Senha;

Diretrio Home;

Shell;

Grupo Primrio;

Devemos ter em mente que um usurio sempre deve estar vinculado a um grupo,
pois isso afeta diretamente a questo de permisses dentro do sistema.

8.4 Permisses
Cada arquivo no sistema possui trs permisses bsicas:
r (4) -> read - para leitura;

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

w (2) -> write - para escrita;


x (1) -> execute - para execuo;
A cada permisso atribudo um valor, mostrado entre parnteses, que ser utilizado
para a definio de permisses.
Alm disso, cada arquivo contm trs conjuntos de permisses, sendo elas:
permisso do dono (u) - user do arquivo;
do grupo (g) - group ao qual o arquivo pertence;
outros (o) - others aqueles que no pertencem ao grupo e no so os donos do
arquivo;
Sendo assim, considere a seguinte sada do comando ls -l, para um arquivo: permisso do arquivo:

-rw -r --r - - 1 root root 0 Jan 15 09:52 arquivo

E para um diretrio: permisso do diretrio:

drwxr -xr - x 2 root root 4096 Jan 15 09:52 diret rio

Vamos entender o que essas linhas significam. O primeiro caractere pode ser:
- -> indicando a listagem de um arquivo comum;
d -> indicando um diretrio;
l -> indicando um link simblico;

Linux System Administration

Pgina 11

8.4 Permisses

4Linux www.4linux.com.br

p -> indicando um pipe nomeado;


s -> indicando um socket;
c -> indicando um dispositivo de caractere;
b -> indicando um dispositivo de bloco.
Os prximos trs conjuntos de trs caracteres indicam as permisses do usurio
dono do arquivo, permisses de grupo e permisses para outros usurios. Nesses
trs conjuntos, se o caractere encontrado for um - (hfen) significa que a permisso
est ausente, ou seja, no h a respectiva permisso. Se alguma ou todas as letras
(r, w e x) forem encontradas, indicar as permisses que o arquivo tem permisses
definidas.
Seguindo o conjunto de permisses, h um nmero que indica a quantidade de links
simblicos que o arquivo ou diretrio tem. Aps o nmero de links, vem a indicao
do usurio dono do arquivo, seguido do grupo ao qual ele, o arquivo ou diretrio,
pertence.
J criado aluno, mandark no grupo aluno
Vamos criar um arquivo para testes, se logue como usurio aluno:

$ cd / tmp

$ touch arquivo

Visualize a permisso do arquivo criado:

$ ls -l / tmp / arquivo

-rw -r --r - - 1 aluno aluno 0 2011 -11 -04 12:17 arquivo

Sua permisso para o dono Leitura e escrita: r w -

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Sua permisso para grupo Somente leitura: r - Sua permisso para outros Somente leitura: r - O comando para trocar as permisses o chmod. H duas sintaxes possveis: literal
e octal.

8.4.1 LITERAL

$ chmod u - rw / tmp / arquivo

O parmetro u-rw que define o esquema de permisses. A primeira letra indica


para qual(is) usurio(s) as permisses esto sendo alteradas. Usamos a letra u
para indicar o prprio dono, g para indicar o grupo, o para outros e ainda a letra
a para indicar todos.
O caractere seguinte poder ser um sinal de = para deixar a permisso igual que
se deseja, + para garantir a permisso ou - para retirar a permisso. Por fim,
detalhamos a permisso: A letra r significa leitura, w escrita e x execuo,
como era de se esperar.
Assim, o exemplo anterior retira as permisses de leitura e escrita para o usurio
dono do arquivo.
Verifique novamente a permisso do arquivo:

$ ls -l / tmp / arquivo

----r --r - - 1 aluno aluno 0 2011 -11 -04 12:17 arquivo

Sua permisso para o dono Nenhuma: - - -

Linux System Administration

Pgina 13

8.4 Permisses

4Linux www.4linux.com.br

Sua permisso para grupo Somente leitura: r - Sua permisso para outros Somente leitura: r - As permisses seguem uma ordem dono, grupo, outros, ou seja, se voc o dono as
permisses que se encaixam no seu perfil a de dono, mesmo que voc pertena
ao grupo, as permisses de dono prevalecem.
Tente visualizar o arquivo como usurio aluno:

$ cat / tmp / arquivo

Agora se logue com o usurio mandark, que pertence ao grupo aluno, em outro
terminal e tente ler o arquivo:

$ cat / tmp / arquivo

As permisses de grupo permitem que ele abra o arquivo para leitura, mas no para
escrita:

$ echo oi >> / tmp / arquivo

Vejamos mais um exemplo, como usurio aluno faa:

$ chmod g + w / tmp / arquivo

Este comando adiciona a permisso de escrita para os usurios que fazem parte do
mesmo grupo ao qual o arquivo pertence. As demais permisses no so alteradas.

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Se logue com o usurio mandark que pertence ao grupo aluno e tente escrever no
arquivo.

$ echo tchau >> / tmp / arquivo

$ cat / tmp / arquivo

Fazendo o teste com diretrio, como usurio aluno crie um diretrio:

$ mkdir / tmp / diretorio

Verifique a permisso do diretrio:

$ ls -ld / tmp / diretorio

drwxr -xr - x 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio /

Crie um arquivo dentro do diretrio:

$ touch / tmp / diretorio / novo

Visualize e acesse o diretrio:

$ ls -l / tmp / diretorio

$ cd / tmp / diretorio

Retire o acesso ao diretrio para todos os usurios:

$ cd ..

$ chmod a - x / tmp / diretorio

Linux System Administration

Pgina 15

8.4 Permisses

4Linux www.4linux.com.br

Agora tente acessar o diretrio:

$ cd / tmp / diretorio

No possvel isso porque o x o responsvel por dar acessos ao diretrio, mas


ainda possvel visualizar o contedo do diretrio:

$ ls / tmp / diretorio

Visualize as permisses do diretrio e do arquivo:

$ ls -ld / tmp / diretorio

drw -r --r - - 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio /

$ ls -l / tmp / diretorio / novo

-????????? ? ? ? ?

? novo

8.4.2 OCTAL

A segunda sintaxe a forma numrica. Neste caso, o parmetro que define as


permisses composto de trs nmeros de 0 a 7, que correspondem s permisses
para o usurio dono, para o grupo e para outros. Cada nmero formado pela soma
das permisses atribudas, sendo que execuo vale 1, escrita vale 2 e leitura
4.

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Vejamos um exemplo:

# chmod 640 / tmp / arquivo

Neste caso, estamos atribuindo a permisso de:


leitura e escrita 6 (r=4 + w=2) ao usurio dono
leitura 4 (r=4) ao grupo
0 (sem permisses) outros usurios
importante observar que quando usamos a forma literal, alteramos apenas o parmetro especificado, no alterando as demais permisses. J na forma numrica,
alteramos todas as permisses simultaneamente.

8.4.3 Exemplos de permisses


Comando para atribuir permisso total a um arquivo chamado naofazer:

# touch / tmp / naofazer

# chmod 777 / tmp / naofazer

Linux System Administration

Pgina 17

8.4 Permisses

4Linux www.4linux.com.br

Ou

# chmod a + rwx / tmp / naofazer

Ou

# chmod u + rwx , g + rwx , o + rwx / tmp / naofazer

Verifique a permisso:

# ls -l / tmp / naofazer

- rwxrwxrwx 1 root root 0 2011 -11 -06 22:17 naofazer

Evite dar permisso total para um arquivo ou diretrio a no ser que seja realmente
preciso.

No se deve fazer isso em nenhum tipo de arquivo, isso apenas um exemplo!!!

Comando para retirar a permisso de escrita de todos os usurios do arquivo naofazer:

# chmod 666 / tmp / naofazer

Ou

# chmod a - x / tmp / naofazer

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

8.4 Permisses

Ou

# chmod u -x ,g -x ,o - x / tmp / naofazer

Visualize:

# ls -l / tmp / naofazer

Comando para alterar a permisso padro do arquivo arquivo para que todos os
usurios apenas possam l-lo.

# chmod 444 / tmp / arquivo

Visualize:

# ls -l / tmp / arquivo

Utilizando o exemplo anterior do modo Literal, vamos alterar a permisso recursivamente, dando permisso total somente para o dono:
ANTES:

# ls -ld / tmp / diretorio

drw -r --r - - 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio /

3
4

# ls -l / tmp / diretorio / novo

-rw -r --r - - 1 aluno aluno 0 2011 -11 -04 17:40 novo

6
7

# chmod -R 700 / tmp / diretorio

Linux System Administration

Pgina 19

8.5 Umask

4Linux www.4linux.com.br

DEPOIS:

# ls -ld / tmp / diretorio

drwx ----- - 2 aluno aluno 4096 2011 -11 -04 17:02 diretorio /

3
4

# ls -l / tmp / diretorio / novo

-rwx ----- - 1 aluno aluno 0 2011 -11 -04 17:40 novo

8.5 Umask
O umask altera o valor da mscara de criao de arquivos e diretrios. Essa
mscara utilizada para definir o permissionamento padro de um arquivo ou
diretrio quando ele criado.

Debian :

2
3

O valor padr o da " umask " fica armazenada no arquivo " / etc / login .
defs " . Caso n o exista adicione umask < valor \ _da \ _umask >.

4
5

Ex :

6
7

umask 0022

8
9

O primeiro " 0 " significa modo octal , pode - se passar o valor em


hexadecimal colocando " 0 x " como prefixo .

10

CentOS :

11
12

O valor padr o da " umask " fica armazenada no arquivo " / etc / bashrc "

Para visualizar a umask atual:

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

8.5 Umask

# umask

No Debian: a umask padro de 0022 No CentOs: a umask varia de acordo


com o usurio, quando seu UID maior do que 99 e seu grupo tem o mesmo nmero
do UID, sua umask 0002, caso contrrio ser 0022.

8.5.1 Clculo da umask


Para Diretrio:
Para calcular a umask para um diretrio, pegue a permisso total que um diretrio
pode chegar, 777. Subtraia a sua umask atual.
EX: umask 022
777 permisso mxima para um diretrio - 022 umask atual = 755 permisso do
diretrio a ser criado
Ex: umask 033
777 permisso mxima para um diretrio - 033 umask atual = 744 permisso do
diretrio a ser criado Para Arquivo:
Para calcular a umask para um arquivo, saiba que um arquivo no pode ser criado
com permisso de execuo por padro, esta permisso s pode ser passada para
ele manualmente. Logo a permisso do arquivo no pode ser mpar, porque o bit de
execuo vale 1. Como calcular? Ex: umask 022
777 Permisso mxima para um arquivo - 022 umask atual = 755 permisso para o

Linux System Administration

Pgina 21

8.6 Permisses Especiais

4Linux www.4linux.com.br

arquivo, mas lembre-se no pode ter permisso de execuo, ento subtraia 1 dos
bits que sejam mpares:
755 - 111 retirando os bits de execuo = 644 permisso real do arquivo
Ex: umask 033
777 Permisso mxima para um arquivo - 033 umask atual = 744 permisso para o
arquivo, mas lembre-se no pode ter permisso de execuo, ento subtraia 1 dos
bits que sejam mpares:
744 - 100 retirando os bits de execuo = 644 permisso real do arquivo
Repare que a permisso no muda para o arquivo com a umask 022 e umask 033.

Lembre-se da regra de clculo de umask. Pensar da forma que o sistema


funciona pode te confundir na prova: Para diretrios: Sempre substituir de 777; Para
arquivos: Verificar o umask. Se o nmero for mpar, subtrair somente onde temos
execuo, em nmeros pares mantemos os nmeros.

8.6 Permisses Especiais


H um conjunto especial de permisses, conhecido tambm como bits especiais,
sendo eles:

O SUID bit atribudo a um arquivo binrio com permisso de execuo, quando

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

8.6 Permisses Especiais

desejamos que um usurio qualquer execute o comando com as permisses do


usurio dono do comando. Se esse comando pertencer ao usurio root um usurio
qualquer ir execut-lo com as permisses de root desde que tenha permisses
para execut-lo. Por esse motivo o SUID constitui uma grande ameaa de segurana e sua utilizao deve ser bastante cautelosa.
O SGID bit geralmente atribuvel a diretrios. Quando um arquivo criado dentro
de um diretrio com SGID bit ativado, o contedo gravado dentro do diretrio ir
herdar o grupo do diretrio e no o grupo do usurio que criou tal contedo. Este
bit especial muito til quando utilizamos diretrios para grupos de trabalhos e em
servidores de arquivos.
O Sitcky bit era bastante utilizado para realizar otimizaes de acesso a contedos, entretanto, a partir da srie 2.6 do kernel do Linux essa tarefa realizada diretamente pelo kernel. A nica utilidade desse bit, atualmente, fazer diretrios de
utilizao comum a todos os usurios, como no /tmp. Quando esse bit est ativo
em um diretrio, todo contedo criado dentro dele pertencer ao criador do contedo
e por mais que ele atribua a esse contedo permisses totais para todos os usurios,
o nico que poder excluir o arquivo ou diretrio ser o prprio dono ou o root ou
ainda o dono do diretrio que tem a permisso. Para atribuirmos esses bits especiais, procedemos da mesma forma que nas permisses comuns, somando os valores
e utilizando o comando chmod, mas agora utilizando quatro nmeros, o primeiro
nmero sendo o bit especial, seguido dos trs da permisso padro.
Veja o exemplo abaixo:

# chmod 4000 / tmp / a

# chmod 2000 / tmp / b

# chmod 1000 / tmp / c

4
5

# ls -l / tmp

---S ----- - 1 caio caio 0 2008 -07 -21 13:50 a

------S -- - 1 caio caio 0 2008 -07 -21 13:50 b

---------T 1 caio caio 0 2008 -07 -21 13:50 c

Linux System Administration

Pgina 23

8.6 Permisses Especiais

4Linux www.4linux.com.br

O bit especial para o campo de permisses do dono o SUID representado por


s ou S. Para o grupo SGID tambm representado por s ou S. J o campo
de permisses de outros usurios, o Sticky BIT, representado por t ou T.
Veja que quando o arquivo ou diretrio no tem permisso de execuo, o bit especial representado por uma letra S (Upper Case), e quando possuem uma permisso de execuo, o bit especial apresentado como s (Lower Case). O mesmo
acontece com o Sticky bit, mas com a letra t e T.
Exemplo dos bits especiais com permisso de execuo:

# chmod 4100 / tmp / a

# chmod 2010 / tmp / b

# chmod 1001 / tmp / c

4
5

# ls -l

---s ----- - 1 root root 0 2008 -07 -21 13:50 a

------s -- - 1 root root 0 2008 -07 -21 13:50 b

---------t 1 root root caio 0 2008 -07 -21 13:50 c

Todas as permisses especias que no contiverem execuo so maisculas.


S e T.

Exemplos:
Suid Bit:
Podemos usar como exemplo o comando passwd.

# ls -l / usr / bin / passwd

-rwsr -xr - x 1 root root 31640 2008 -06 -12 20:39 / usr / bin / passwd

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

8.6 Permisses Especiais

Os nossos usurios comuns s podem mudar sua senha pois o comando passwd
est com o bit SUID ativado.
Desabilite o Suid:

# chmod 755 / usr / bin / passwd

# ls -l / usr / bin / passwd

Agora se logue como aluno e tente mudar sua senha:

$ passwd

No possvel, pois o aluno no tem permisso de escrita nos arquivos:

/ etc / passwd e / etc / shadow .

Como root, volte a permisso original:

# chmod 4755 / usr / bin / passwd

# ls -l / usr / bin / passwd

SGID Bit:
Crie um diretrio com permisso total para qualquer usurio:

# mkdir / teste

# chmod 777 / teste

Agora qualquer usurio tem acesso ao diretrio teste.

Linux System Administration

Pgina 25

8.6 Permisses Especiais

4Linux www.4linux.com.br

Como usurio aluno crie um arquivo no diretrio teste:

$ touch / teste / numero1

Verifique quem o dono e quem o grupo do arquivo criado:

$ ls -l / teste

-rw -r --r - - 1 aluno aluno 0 2011 -11 -07 11:01 numero1

Verifique que o grupo o mesmo do usurio.


Agora como root altere a permisso do diretrio teste, adicionando o SGID Bit:

# chmod 2777 / teste

Novamente como usurio aluno, crie um novo arquivo dentro do diretrio teste:

$ touch / teste / numero2

Verifique quem o dono e quem o grupo do arquivo criado:

$ ls

-l

/ teste

-rw -r --r - - 1 aluno aluno

0 2011 -11 -07 11:01 numero1

-rw -r --r - - 1 aluno root

0 2011 -11 -07 11:19 numero2

Visualize que o grupo agora no mais o do usurio e sim o mesmo do diretrio.


Stick Bit:

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

8.6 Permisses Especiais

Como root modifique novamente a permisso do diretrio teste, adicione o Stick


Bit:

# chmod 1777 / teste

Agora modifique as permisses dos arquivos dentro dele dando permisso total para
todos os usurios:

# chmod

777 / teste /*

Agora se logue como usurio mandark, visualize as permisses do diretrio e dos


arquivos:

$ ls -ld / teste

drwxrwsrwt 2 root root 4096 2011 -11 -07 11:19 / teste

$ ls -l / teste

- rwxrwxrwx 1 aluno aluno 0 2011 -11 -07 11:01 / teste / numero1

- rwxrwxrwx 1 aluno root 0 2011 -11 -07 11:19 / teste / numero2

Agora que voc viu que tem permisso total nos arquivos, tente deletar algum arquivo
dentro do diretrio teste:

$ rm / teste / numero1

Apesar da permisso total no arquivo, no possvel remover devido a permisso do


diretrio com Stick Bit.

Linux System Administration

Pgina 27

4451
Linux System Administration

www.4linux.com.br

Contedo
Quotas de Disco

8.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.1.1 Quotas por Usurio . . . . . . . . . . . . . . . . . . . . . . . . .

8.1.2 Quotas por Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 10


8.2 Replicando quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.3 Criando usurio com quota definida (S funciona no Debian) . . . . . . 13
8.3.1 Aviso de quota excedida . . . . . . . . . . . . . . . . . . . . . . . 13

Quotas de Disco
8.1 Introduo Terica
A utilizao de um sistema de quotas um assunto to importante quanto dividir o
disco rgido em parties. O sistema de quotas serve para limitarmos a quantidade
de blocos e inodes que um usurio ou grupo pode utilizar em uma determinada
partio.
Imagine um HD com 100MB de home e 10 usurios. Se no utilizarmos um sistema de quota por nmero de blocos possvel que um dos usurios resolva fazer
o download de um arquivo de 90MB utilizando 90% do espao disponvel, fazendo
com que os outros usurios tenham que dividir os outros 10MB livres. Se aplicarmos
um sistema de quotas, podemos definir que cada usurio utilizar no mximo 10MB,
de forma que cada um ter o mesmo espao disponvel, tornando a diviso justa.
Em um cenrio como este, resolvemos parte do problema, pois o usurio capaz de
criar um nmero, suficientemente grande de arquivos com tamanho zero de forma
que ele no ocupe os 10MB atribudos a ele mas estoure o nmero mximo de inodes que o sistema de arquivos dispe, impossibilitando assim, que outro usurio
grave qualquer coisa neste sistema de arquivos, mesmo que haja espao livre.
O sistema de quotas uma funcionalidade do filesystem e do kernel, sendo assim,
ambos tm que serem capazes de suport-lo. Uma vez que o filesystem suporta
quotas, devemos adicionar os parmetros de montagem, usrquota e grpquota ao
filesystem que utilizaremos com esse sistema. Isso feito no arquivo /etc/fstab.
Alm disso, temos que criar, na raiz desses filesystems, os arquivos de controle,

8.1 Introduo Terica

4Linux www.4linux.com.br

chamados aquota.user e aquota.group.


Uma vez criada essa estrutura, basta editar os arquivos de controle de quotas e
distribuir as quantidades de forma apropriada. A quota somente pode ser aplicada
por parties.
Instale o pacote de quota:

# aptitude install quota

# yum install quota

Edite o arquivo /etc/fstab e inclua as opes de quota por usurio e por grupo em
/home:

UUID =12 e9cf3f -99 b3 -4 e8e -8079 - d4337b2ce9c8

/ home ext3

defaults ,

usrquota , grpquota 0 2

Remonte o /home para que as alteraes sejam efetuadas:

# mount -o remount / home

Verifique se as opes de quota foram aplicadas:

# mount

Crie os arquivos de quota na raiz da partio que receber o sistema de quotas:

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

# quotacheck - cug / home

-c -> cria arquivos de quota


-u -> checa quotas de usurios
-g -> checa quotas de grupos Caso d erro:
-f -> fora checagem das quotas
-m -> fora checagem no filesystem montado como leitura e escrita , no remonta o
filesystem como somente leitura em caso de erro.
Certifique-se de que os arquivos de controle de quota foram criados: "aquota.group"e
"aquota.user".

# ls -l / home

Habilite a quota na partio /home:

# quotaon / home

Caso queira desabilitar a quota na partio o comando :

# quotaoff / home

Verifique se o sistema de quota est ativo, listando as suas informaes de quotas


para usurios:

Linux System Administration

Pgina 5

8.1 Introduo Terica

4Linux www.4linux.com.br

# repquota - va

Verifique se o sistema de quota est ativo, listando as suas informaes de quotas


para grupos:

# repquota - vag

8.1.1 Quotas por Usurio


Vamos definir qual a quantidade de recursos do HD que cada usurio poder utilizar. Vamos impor que o usurio mandark poder utilizar at 50MB com um limite
mximo de 60MB ou 100 arquivos com o limite mximo de 110 arquivos.
Editando a quota do usurio mandark:

# edquota -u mandark

Dentro do edquota, faremos as configuraes para que a quota do usurio mandark, seja de 50MB e ele possa criar 100 arquivos, com um limite mximo acima da
sua quota de 10MB e 10 arquivos. Altere o arquivo para que fique como mostrado a
seguir:

Disk quotas for user mandark ( uid 1001) :

Filesystem blocks

/ dev / sda3

soft
50000

hard

inodes

60000

soft
100

hard
110

^ - - - - - - - N O MEXER - - - - - - -^

Onde:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

Filsesystem -> partio onde ser aplicada a quota.


blocks -> tamanho real utilizado em KBytes. (no possvel alterar)
soft -> limite da quota de espao disponvel para gravao, ao ultrapassar este limite
o usurio estoura sua quota.
hard -> limite mximo permitido de espao disponvel para gravao, aps exceder
sua quota, existe um perodo de tempo chamado grace time para uso deste limite.
inodes -> tamanho real utilizado em nmero de arquivos. (no possvel alterar)
soft -> limite da quota de nmero de arquivos que podem ser criados, ao ultrapassar
este limite o usurio estoura sua quota.
hard -> limite mximo permitido de nmero de arquivos que podem ser criado, aps
exceder sua quota, existe um perodo de tempo chamado grace time para uso deste
limite.
Verifique se o limite j est aplicado:

# repquota -v -a

J que fizemos a gentileza de determinar que o usurio poder usar 10MB ou 10


arquivos a mais caso ele estoure a sua quota, devemos determinar tambm por
quanto tempo ele poder usar esse espao a mais.
Determine que os usurios tero 5 dias de grace period:

# edquota -t

Caso o usurio estoure sua quota ele tem um tempo(grace period) antes de sua

Linux System Administration

Pgina 7

8.1 Introduo Terica

4Linux www.4linux.com.br

conta ser bloqueada para apagar os arquivos necessrios para utilizar o limite de
sua quota.
Consulte a quota do usurio mandark.

# quota -u mandark

Efetue login em outro terminal utilizando o usurio mandark e vamos rodar um


comando para encher o disco:

$ yes > a

Depois que a quota estourou, volte ao terminal do root, examine o status da quota
e veja se a quota do usurio mandark est estourada por espao utilizado:

# repquota - va

Vamos executar o seguinte comando para estourar o nmero de inodes permitidos


para o usurio mandark:

$ touch file {1..100}

Depois que a quota estourou, volte ao terminal do root, examine o status da quota
e veja se a quota do usurio mandark est tambm por nmero de arquivos:

# repquota - va

Quando o usurio est com a quota estourada possvel aumentar o "grace period"para ele:

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

# setquota -u mandark -T 86400 86400 / home

Onde: -u -> defini que a quota pra um usurio mandark -> usurio que receber a
definio de quota -T -> define o prodo de grace time 86400 -> tempo em segundos
(por tamanho) 86400 -> tempo em segundos (por inode) /home -> partio que ser
definida a quota
Voltando ao terminal logado, como usurio mandark, vamos apagar os arquivos
criados:

$ rm a file *

Cheque os valores da quota do usurio mandark:

# quota -u mandark

Outra forma de definir a quota do usurio atravs do comando setquota, este comando muito til para scripts.
Vamos aumentar o tamanho da quota do usurio mandark:

# setquota -u mandark 200000 210000 1000 1010 / home

-u -> indica que ser definida quota para um usurio


mandark -> usurio que receber os valores da quota
200000 -> soft para espao disponvel para uso
210000 -> hard para espao disponvel para uso

Linux System Administration

Pgina 9

8.1 Introduo Terica

4Linux www.4linux.com.br

1000 -> soft para nmero de arquivos


1010 -> hard para nmero de arquivos
home -> partio para aplicar a quota
Cheque os valores da quota do usurio mandark:

# quota -u mandark

8.1.2 Quotas por Grupo


Defina quota por grupo para o grupo users:

# setquota -g users 50000 60000 100 110

Ou

# edquota -g users

Disk quotas for group users ( gid 100) :

Filesystem blocks

/ dev / sda3

soft
50000

hard
60000

inodes
0

soft
100

hard
110

^-- - - - - - - - - N O MEXER - - - - - - - - - -^

Verifique o status da quota por grupo:

# repquota - vag

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

8.1 Introduo Terica

Verifique os detalhes mais avanados sobre o uso das quotas nas parties.

# quotastats

Adicione o usurio mandark ao grupo users:

# adduser mandark users

Crie um diretrio para teste de quota por grupo:

# mkdir / home / users

Troque sua permisso para toda vez que um arquivo for criado, pertena ao grupo
users, para isso mude tambm o grupo do diretrio para users:

# chmod 2775 / home / users

# chgrp users / home / users

Acesse o diretrio /home/users com o usurio mandark e estoure a quota de grupo


por tamanho:

$ yes > a

Estoure a quota de grupo por nmero de arquivos:

$ touch arq {1..101}

Verifique o status da quota por grupo:

Linux System Administration

Pgina 11

8.2 Replicando quotas

4Linux www.4linux.com.br

# repquota - vag

8.2 Replicando quotas


Verifique a quota por usurios:

# repquota - va

O usurio mandark tem quota definida e o usurio rh no tem, ento vamos copiar a
quota do usurio mandark para o usurio herdeiro:

# edquota - up mandark herdeiro

Onde:
-u -> usurio
-p -> prottipo
-g -> grupo
Verifique a quota por usurios:

# repquota - va

Pgina 12

Linux System Administration

4Linux www.4linux.com.br8.3 Criando usurio com quota definida (S funciona no Debian)

8.3 Criando usurio com quota definida (S funciona


no Debian)
Edite o arquivo /etc/adduser.conf e adicione um usurio que j tenha uma quota
definida na opo QUOTAUSER= . Ex: o usurio mandark j tem cota definida e
quero passar esta quota para um usurio novo:

# vim / etc / adduser . conf

# linha 67 completo com o nome do usu rio que tem quota definida :

3
4

QUOTAUSER = " mandark "

Crie um usurio com o comando adduser e veja que ele j ter quota definida:

# adduser compras

# repquota - va

8.3.1 Aviso de quota excedida


Avisos sobre quota ultrapassada podem ser enviadas automaticamente a todos os
usurios pelo utilitrio warnquota. Ele poder ser executado periodicamente atravs do cron (por padro isto feito diariamente na distribuio Debian pelo script
/etc/cron.daily/quota), no CentOS necessrio agendar a execuo do comando
warnquota. Dados adicionais sobre o envio das mensagens devem ser especificados no arquivo /etc/warnquota.conf seu formato o seguinte:

# Programa usado para enviar as mensagens

MAIL_CMD

# Campo de origem da mensagem

= " / usr / sbin / sendmail -t "

Linux System Administration

Pgina 13

8.3 Criando usurio com quota definida (S funciona no Debian)4Linux www.4linux.com.br

FROM = " root@localhost "

# but they don t have to be :

SUBJECT = Quota excedida

CC_TO = " root@localhost "

SUPPORT = " root@localhost "

PHONE = " 5555 -2525 "

O e-mail enviado aos usurios..


Quando a quota por grupo deve-se eleger um usurio para receber os e-mails de
quota excedida do grupo.
O arquivo /etc/quotagrpadmins serve para configurar o usurio que receber os emails de quota excedida do grupo:

# vim / etc / quotagrpadmins

grupo : usuario

users : mandark

Para receber o aviso para usurios e para grupos execute:

# warnquota -u

# warnquota -g

Caso queira pode colocar no crontab para executar de tempos em tempos:

# vim / etc / crontab

# min

hora dia_do_mes

00

15

root

/ usr / sbin / warnquota

15

root

/ usr / sbin / warnquota

m s dia_da_semana usu rio comando

-u
4

00
-g

Pgina 14

Linux System Administration

4Linux www.4linux.com.br8.3 Criando usurio com quota definida (S funciona no Debian)

Obs.: O Debian j faz a checagem por padro no crontab: /etc/cron.daily/quota.

Linux System Administration

Pgina 15

4451
Linux System Administration

www.4linux.com.br

Contedo
Trabalhando com Mdulos

10.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.2 Gerenciando os mdulos . . . . . . . . . . . . . . . . . . . . . . . . . .

10.2.1 Identificando Dispositivos e seus mdulos . . . . . . . . . . . . . 13


Servidor de Impresso

16

10.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17


10.3.1 Instalao Servidor Cups . . . . . . . . . . . . . . . . . . . . . . 17
10.4 Compartilhando a impressora . . . . . . . . . . . . . . . . . . . . . . . . 40
10.5 Configurao do Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Trabalhando com Mdulos

10.1 Introduo Terica

Quando instalamos um Debian, RedHat, Suse, Slackware, entre outras distribuies,


estamos utilizando um kernel que foi compilado pelos desenvolvedores da distribuio.

O kernel que vem por padro em uma distribuio, deve ser capaz de rodar em praticamente qualquer PC e dar suporte a quaisquer tipos de recursos que o usurio
pretenda utilizar, o desenvolvedor compila um kernel que fornece todas as funcionalidades bsicas e, em separado, compila pedaos de cdigo que do suporte a funcionalidades mais especficas. Esses pedaos de cdigo so os chamados mdulos.
Dessa forma, quando o sistema carregado, um kernel bsico se coloca na memria
e passa a controlar a mquina. Neste ponto so verificadas outras funcionalidades
que se espera que o kernel d suporte, como por exemplo utilizar uma partio XFS.
Neste momento, se o kernel no possuir suporte nativo a esse file system ele ir
verificar se o mdulo que d suporte a ele foi compilado e se est disponvel. Se
esse mdulo for encontrado, ele ser carregado expandindo as funcionalidades do
kernel.

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Em um sistema como esse, haver diversos mdulos carregados e um nmero maior


ainda que no estar sendo utilizado, mas disponvel.
Os mdulos disponveis, em geral, encontram-se no diretrio /lib/modules, podem
ser visualizados com o comando "modprobe -l"e os mdulos que esto carregados
podem ser visualizados com o comando lsmod.
Ao mesmo tempo que a capacidade de subir mdulos uma vantagem do ponto de
vista que apenas os mdulos realmente necessrios sero carregados, h a desvantagem de fragmentao do kernel na memria.

10.2 Gerenciando os mdulos


O desenvolvimento de uma nova funcionalidade para o kernel do Linux pode ser
implementada diretamente no Kernel ou compilada como um mdulo.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

De modo geral, a escolha tende a ser a compilao como mdulo. Isso se traduz no
carregamento dinmico do cdigo apenas quando esta funcionalidade for necessria. Alm disso, torna o kernel mais enxuto, leve, e portanto mais eficiente. Diversos
componentes do kernel do Linux so implementados como mdulos, por exemplo,
filesystems, device drivers, e novas camadas de protocolos de comunicao.
Em alguns casos, compilar o cdigo juntamente com o kernel pode ser necessrio.
Se um determinado componente precisa alterar alguma estrutura do kernel, ele no
ter privilgios de fazer isso dinamicamente, ou mesmo que gere sua prpria estrutura modificada, o restante do kernel e outros mdulos carregados ainda estaro
enxergando a antiga estrutura.
Ao executar o comando lsmod voc pode ver quais mdulos esto carregados atualmente no seu kernel. Abaixo um exemplo da sada deste comando:

# lsmod

Module

ppp_generic

slhc

ircomm - tty

ircomm

irda

lp

Size

Used

by

Tainted : P

24060

( autoclean ) ( unused )

6564

( autoclean ) [ ppp_generic ]

24224

( autoclean ) ( unused )

9736

( autoclean ) [ ircomm - tty ]

112112

( autoclean ) [ ircomm - tty ircomm ]

8096

( autoclean ) ( unused )

parport

34176

( autoclean ) [ lp ]

10

printer

8448

( unused )

11

agpgart

40896

( autoclean )

12

nvidia

1765632

11

( autoclean )

13

i810_audio

26312

14

soundcore

6276

15

ac97_codec

12488

[ i810_audio ]

16

nfsd

74256

( autoclean )

[ i810_audio ]

Observe a coluna Used. Ela reflete quantos processos esto fazendo uso do mdulo.
Todo mdulo deve implementar um campo na sua estrutura de dados denominado
usage counter para esta finalidade. Um mdulo s pode ser removido da memria

Linux System Administration

Pgina 5

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

se o seu usage counter for zero.


Os mdulos so carregados atravs do programa insmod e uma estrutura do tipo
module alocada quando seu carregamento solicitado. Esta estrutura contm
smbolos globais que podem ser vistos pelo kernel e outros mdulos, informando os
pontos de entrada de suas funes, suas variveis globais, seu usage counter, flags,
entre outros.
Algumas vezes, um mdulo depende de outro para realizar determinadas operaes.
Outro campo na estrutura module utilizado para informar as dependncias dele. Se
o mdulo B depende de A, este deve ser carregado antes de ser possvel carregar B.
O usage counter de A incrementado sempre que um mdulo que depende dele
carregado. Deste modo, no se permite que A seja removido antes de seus dependentes.
O kernel prov o comando modprobe para facilitar o gerenciamento de dependncias. Este comando tenta carregar automaticamente qualquer dependncia do mdulo solicitado. Por exemplo, ao tentar carregar o mdulo MS-DOS, o comando modprobe carrega primeiro o mdulo fat, seguido por MS-DOS.
O comando modprobe faz uso de um arquivo chamado modules.dep para determinar
as dependncias de todos os mdulos compilados para o kernel corrente. Este arquivo gerado pela execuo, no start-up da mquina, de outro programa chamado
depmod. Ele avalia, durante o carregamento inicial do kernel, todos os mdulos
compilados, normalmente armazenados em /lib/modules, e gera o arquivo modules.dep.
Para remover um mdulo da memria, utiliza-se o comando rmmod. modprobe -r ou
rmmod -r so usados para remover uma pilha de mdulos.
O usurio, atravs da configurao de um novo kernel, pode alterar o modo como
diversos componentes so carregados: compilados junto com o kernel ou como mdulos. Normalmente recomendado fazer uso o mximo possvel de mdulos. Entretanto, em casos em que o componente permanentemente necessrio, pode ser
mais eficiente compil-lo junto com o kernel, ganhando em performance.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

de suma importncia saber a verso do kernel para saber se a verso suporta ou


no um mdulo.
Determine qual verso do kernel est sendo utilizada:

# uname -r

Dica LPI: O comando que exibe o Kernel em uso, e suas opes : uname
-a

Determine quais mdulos esto carregados:

# lsmod

# cat / proc / modules

Para verificar os mdulos esto carregados, usamos o comando lsmod.


Veja que a sada do comando lsmod em colunas, listado todos mdulos que esto
carregados em memria, inclusive os que no esto em uso. Onde:
Module exibe o nome do mdulo
Size exibe em bytes, o tamanho da memria do mdulo
Used by exibe a contagem de quantas instncias do mdulo esto carregadas e o
mdulo que est usando; os valores so importantes porque no podemos remover
um mdulo que esteja sendo usado, a no ser que nesse campo, o valor seja zero.
Tambm exibe se o mdulo depende de outro para funcionar, mostrando o nome do
mdulo que ele depende.
Para determinar quais mdulos esto compilados (disponveis):

Linux System Administration

Pgina 7

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

# modprobe -l

Uma das opes do comando modprobe listar os mdulos disponveis em /lib/modules/. Para isso, basta utilizar a opo -l:
para determinar o nmero de mdulos carregados e o nmero de mdulos disponveis:

# lsmod | grep -v

^" Module " | wc -l

# modprobe -l | wc -l

Determine para que serve o mdulo chamado ext3:

# modinfo ext3

O comando modinfo exibe informaes sobre um mdulo


Determine quais mdulos so utilizados pelo filesystem ext3:

# lsmod | grep ext3

Carregue o mdulo do filesystem vfat:

# modprobe vfat

O comando modprobe ou modprobe -i o responsvel por carregar um mdulo


e suas dependncias. Determine quais so as dependncias do mdulo vfat:

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

# modinfo vfat

Determine quais mdulos so utilizados pelo filesystem vfat:

# lsmod | grep vfat

Remova o mdulo vfat:

# modprobe -r vfat

O comando modprobe tambm pode ser utilizado para remover mdulos que no
estejam sendo utilizados por outros mdulos. Alm dele remover o mdulo, ele tambm remove suas dependncias. Para executar essa ao, basta usar a opo -r:
Outra forma de carregar mdulos atravs do comando , mas diferente do comando
modprobe necessrio passar o caminho completo do mdulo e tambm necessrio carregar suas dependncias primeiro.
Verifique quais so as dependncias do mdulo vfat:

# modinfo vfat

filename :

/ lib / modules /2.6.32 -5 -686/ kernel / fs / fat / vfat . ko

author :

Gordon Chaffee

description :

VFAT filesystem support

license :

GPL

srcversion :

13 B4B9904275625D3971810

depends :

fat , nlsbase

vermagic :

2.6.32 -5 -686 SMP mod_unload modversions 686

Linux System Administration

Pgina 9

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Na sada temos duas dependncias para o mdulo vfat, agora precisamos saber se
suas dependncias no so dependentes de outras dependncias:

# modinfo fat

filename :

/ lib / modules /2.6.32 -5 -686/ kernel / fs / fat / fat . ko

license :

GPL

srcversion :

F3CEDF3D6DC8D993978847D

depends :

nls_base

vermagic :

2.6.32 -5 -686 SMP mod_unload modversions 686

Verificado que o mdulo fat depende do mdulo nls_base. Agora verifique se o mdulo nls_base no depende de outro mdulo:

# modinfo nls_base

filename :

/ lib / modules /2.6.32 -5 -686/ kernel / fs / nls / nls_base . ko

license :

DUAL BSD / GPL

depends :

vermagic :

2.6.32 -5 -686 SMP mod_unload modversions 686

O mdulo nls_base no depende de nenhum outro mdulo, ento agora, carregue


os mdulos na ordem de dependncias:
nls_base -> fat -> vfat
Lembrando que voc deve passar o caminho completo do mdulo para utilizar o
comando .
Para visualizar todos os mdulos disponveis utiliza-se o comando modprobe com
a opo -l, mas para visualizar se um mdulo especfico est disponvel utilize seu
nome como argumento.
Todos os mdulos:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

# modprobe -l

Mdulo especfico:

# modprobe -l nls_base

# modprobe -l fat

# modprobe -l vfat

Ento para carregar o mdulo nls_base fat e vfat faa:

# insmod / lib / modules / $ ( uname -r ) / $ ( modprobe -l nls_base )

# insmod / lib / modules / $ ( uname -r ) / $ ( modprobe -l fat )

# insmod / lib / modules / $ ( uname -r ) / $ ( modprobe -l vfat )

Veja que todos eles foram carregados com sucesso:

# lsmod | grep fat

Outra forma de remover mdulos atravs do comando rmmod, mas diferente do


comando modprobe -r ele s remove o mdulo que no esteja sendo utilizado por
outro e no remove suas dependncias.
Na sada do comando anterior verifique qual mdulo est sendo utilizado por outro:
vfat -> no tem dependente
fat -> vfat depende dele
nls_base -> fat depende dele

Linux System Administration

Pgina 11

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Logo para removermos temos que seguir a ordem:


vfat -> fat -> nls_base
Removendo os mdulos:

# rmmod vfat

# rmmod fat

# rmmod nls_base

Veja que todos eles foram descarregados com sucesso:

# lsmod | grep fat

Como o modprobe sabe quais mdulos dependem de quais mdulos?

# cd / lib / modules / $ ( uname -r )

# ls -l

# less modules . dep

O arquivo modules.dep o responsvel por armazenar os dados de dependncias


de mdulos, atravs dele os comandos modprobe e modinfo, conseguem obter as
informaes necessrias para serem executados, teste arquivo gerado em todo
boot.
No acredita que o modprobe usa esse arquivo? Remova-o e tente carregar o
mdulo vfat:

# rm / lib / modules / $ ( uname -r ) / modules . dep

# modprobe vfat

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

No funcionou? E agora? Construa o arquivo modules.dep e tente novamente:

# depmod

# ls / lib / modules / $ ( uname -r ) / modules . dep

# modprobe vfat

O comando depmod gera o arquivo modules.dep.

10.2.1 Identificando Dispositivos e seus mdulos


Identifique qual a placa de rede do seu computador:

# lspci - nn | grep -i eth

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co . , Ltd .


RTL8101E / RTL8102E PCI Express Fast Ethernet controller [10 ec
:8136] ( rev 02)

DICA: Repare no nmero 10ec:8136 (PCI iD) este nmero nico para este dispositivo e atravs dele podemos saber qual o nome do seu mdulo e qual verso do
kernel tem suporte a ele.

Acesse o site: http://www.kmuto.jp/debian/hcl/

Digite o nmero encontrado: 10ec:8136 e descubra qual o nome do mdulo e quais


verses do kernel tm suporte a este mdulo.
Outra forma de identificar o modulo, de um dispositivo o "lspci", com filtro de uma
palavra chave, continuando o exemplo da placa de rede:

Linux System Administration

Pgina 13

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

# lspci | grep -i net

04:00.0 Ethernet controller : Marvell Technology Group Ltd . 88 E8057


PCI -E Gigabit Ethernet Controller ( rev 10)

Repare o nmero de id da placa de rede 04:00.0 e descubra qual o nome do mdulo


que a sua placa de rede necessita:

# lspci -v -s 04:00.0

04:00.0 Ethernet controller : Marvell Technology Group Ltd . 88 E8057


PCI -E Gigabit Ethernet Controller ( rev 10)

Subsystem : Sony Corporation Device 907 a

Flags : bus master , fast devsel , latency 0 , IRQ 46

Memory at e6620000 (64 - bit , non - prefetchable ) [ size =16 K ]

I/O ports at a000 [ size =256]

Expansion ROM at e6600000 [ disabled ] [ size =128 K ]

Capabilities : [48] Power Management version 3

Capabilities : [5 c ] MSI : Enable + Count =1/1 Maskable - 64 bit +

10

Capabilities : [ c0 ] Express Legacy Endpoint , MSI 00

11

Capabilities : [100] Advanced Error Reporting

12

Capabilities : [130] Device Serial Number 6b -3 b -74 - ff - ff -49 -42 -54

13

Kernel driver in use : sky2

14

Kernel modules : sky2

Outra forma de busca seria buscar informaes na internet ou tentar determinar qual
o mdulo que ela utiliza na raa(tentativa e erro):

# modprobe -l | grep -i realtek

# modprobe -l | grep -i real

# modprobe -l | grep -i tek

# modprobe -l | grep rtl

# modprobe ...( m dulos obtidos nas s idas )

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

10.2 Gerenciando os mdulos

No h uma regra geral para determinar qual o mdulo que fornece suporte a um determinado hardware. A forma mais fcil utilizar um kernel genrico
e tentar descobrir qual o mdulo que utilizado por meio dos comandos lsmod
e modinfo, procurar na rvore do kernel, ou procurar nos mecanismos de busca na
Internet.

Aps descobrir o mdulo descarregue-o e veja que a placa rede parou de funcionar:

# modprobe -r r8169

No CentOS ao derrubar o mdulo da placa de rede ele recarrega o mdulo automaticamente, isto porque existe o arquivo: /etc/sysconfig/network-scripts/networkfunctions, este arquivo mantm funes que controlam muitos scripts de interface e
funces que esto em contato com programas em execuo que tenham solicitado
informaes sobre mudanas no status de uma interface.
Caso queira bloquear o carregamento de um mdulo na inicializao edite o arquivo
/etc/modprobe.d/blacklist.conf e adicione blacklist [mdulo].
Bloqueie o mdulo da placa de rede de ser carregado na hora do boot:

# vim / etc / modprobe . d / blacklist . conf

blacklist r8169

Reinicie a mquina e veja que o mdulo no carregado:

# lsmod | grep r8169

Linux System Administration

Pgina 15

10.2 Gerenciando os mdulos

4Linux www.4linux.com.br

Caso precise que um mdulo seja carregado automaticamente na hora do boot


faa:
Debian:

# vim / etc / modules

zaurus

CentOS:

# vim / etc / rc . modules

modprobe zaurus

# chmod + x / etc / rc . modules

Verifique que o mdulo zaurus para PDA ZAURUS no est carregado, reinicie a
mquina e veja que ele ser carregado automaticamente, aps o boot:

# lsmod | grep zaurus

Pgina 16

Linux System Administration

Servidor de Impresso
10.3 Introduo Terica
O CUPS - Common Unix Printing System uma das formas mais utilizadas atualmente para trabalhar com impresso no mundo GNU/Linux. Ele utiliza o protocolo
IPP - Internet Printing Protocol para gerenciar as filas e trabalhos de impresso. Com
o IPP voc pode imprimir de qualquer lugar, atravs da internet para sua impressora domstica, por exemplo. Alm disso, o CUPS fornece uma interface Web
para gerenciamento de quotas de impresso e que oferece suporte maioria das
impressoras existentes.
A melhor documentao a respeito do CUPS pode ser encontrada online no manual
oficial no projeto, disponvel no endereo http://www.cups.org

10.3.1 Instalao Servidor Cups


Debian:

# apt - get install cups - bsd

CentOS:

17

10.3 Introduo Terica

4Linux www.4linux.com.br

# yum install cups - lpd

Agora podemos gerenciar as configuraes relacionadas impressora. Para


isso utilizaremos a interface de gerenciamento do CUPS via browser. Para isso,
abra seu navegador preferido e digite http://localhost:631.

Antes de continuarmos a instalao do servidor de impresso devemos saber


se a impressora tem suporte ao linux e qual o seu driver.

Para isso identifique o nome e modelo da impressora, no nosso exemplo a impressora ser a HP Deskjet D1660.

DICA: Para descobrir o driver da impressora e se ela tem suporte acesse o


site: http://www.openprinting.org

Clique em Printers:

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Selecione o fabricante(Manufacter) e modelo(Model) e depois clique em Show this


printer:

Linux System Administration

Pgina 19

10.3 Introduo Terica

4Linux www.4linux.com.br

Aparecer o nome da impressora no topo da pgina:

E no final aparecer o nome do driver, selecione-o:

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Selecione novamente o driver:

Linux System Administration

Pgina 21

10.3 Introduo Terica

4Linux www.4linux.com.br

Antes de fazer o download, pode-se tentar instalar o driver hplip pelo gerenciador
de pacotes de sua distribuio:

Debian:

# apt - get install hplip

Verifique a verso:

# dpkg -l hplip

CentOS:

# yum install hplip

Verifique a verso:

# rpm -q hplip

Compare as verses com a do site, talvez sua verso no tenha suporte para a
impressora, ento faa o download da verso mais atual:

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Ao clicar em download, aparecer a tela abaixo, preencha conforme o solicitado: No


CentOS:

Clique em avanar, verfique que na prxima tela, apresentado que o pacote fornecido pela distribuio no tem suporte a esta impressora: Red Hat Enterprise linux
6.0 supplies HPLIP 1.6.7 and it does not support your printer.

Linux System Administration

Pgina 23

10.3 Introduo Terica

4Linux www.4linux.com.br

Clique em avanar:

Faa o download:

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Para instalar:

# rpm -i hplip -3.11.12 _rhel -6.0. x86_64 . rpm

No Debian:

Na tela seguinte alertado que o Debian6 fornece uma verso do driver hplip que no
suporte a impressora HP. Debian 6.0 supplies HPLIP 2.8.6 and it does not support

Linux System Administration

Pgina 25

10.3 Introduo Terica

4Linux www.4linux.com.br

your printer

Clique em avanar:

Clique em avanar novamente:

Para finalizar faa o download do driver:

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Execute o arquivo baixado:

# bash hplip -3.11.10. run

Creating directory hplip -3.11.10

Verifying archive integrity ... All good .

Uncompressing HPLIP 3.11.10 Self Extracting Archive

.............................................................................
5

warning : hplip - install should not be run as root .

HP Linux Imaging and Printing System ( ver . 3.11.10)

HPLIP Installer ver . 5.1

8
9

Copyright ( c ) 2001 -9 Hewlett - Packard Development Company , LP

10

This software comes with ABSOLUTELY NO WARRANTY .

11

This is free software , and you are welcome to distribute it

12

under certain conditions . See COPYING file for more details .

13
14

Installer log saved in : hplip - install_Mon -21 - Nov -2011 _17 :18:45. log

15
16

/ error : You are running the installer as root . It is highly


recommended that you run the installer as

17

error : a regular ( non - root ) user . Do you still wish to continue ?

18

Continue instalando :
Continue with
installation ( y = yes , n = no * , q = quit ) ? y

19
20

note : Defaults for each question are maked with a * . Press < enter >
to accept the default .

Linux System Administration

Pgina 27

10.3 Introduo Terica

4Linux www.4linux.com.br

21
22
23

INSTALLATION MODE

24

-----------------

25

Automatic mode will install the full HPLIP solution with the most
common options .

26

Custom mode allows you to choose installation options to fit


specific requirements .

27

Qual o tipo de instala o : autom tica

28

Please choose the installation mode ( a = automatic * , c = custom , q = quit )


: a

29

Initializing . Please wait ...

30
31

INTRODUCTION

32

------------

33

This installer will install HPLIP version 3.11.10 on your computer .

34

Please close any running package management systems now ( YaST , Adept
, Synaptic , Up2date , etc ) .

35
36
37

DISTRO / OS CONFIRMATION

38

----------------------

39

Distro appears to be Debian 6.0.3.

40

DICA : Quando perguntar qual a vers o da sua distro no cado do Debian ,


diga que n o est correto e selecione manualmente a vers o 6.0 ,
o pacote n o atualizado constantemente quanto a distribui o e
por isso , falhar a instala o postriormente se n o escolher
manualmente .

41

Is " Debian 6.0.3 " your correct distro / OS and version ( y = yes * , n = no ,
q= quit ) ? n

42
43

DISTRO / OS SELECTION

44

-------------------

45
46

Choose the name of the distro / OS that most closely matches your
system :

47

Pgina 28

Linux System Administration

4Linux www.4linux.com.br

48

Num . Distro / OS Name

49

---- ------------------------

50

0 Mepis

51

1 Debian

52

2 SUSE Linux

53

3 Mandriva Linux

54

4 Fedora

55

5 Red Hat

56

6 Red Hat Enterprise Linux

57

7 Ubuntu

58

8 PCLinuxOS

59

9 Linux Mint

60

10 gOS

61

11 Linpus Linux

62

12 IGOS

63

13 Boss

64

14 Linux From Scratch

65

Escolha Debian : 1

66

Enter number 0...14 ( q = quit ) ? 1

10.3 Introduo Terica

67
68

Choose the version of " Debian " that most closely matches your system
:

69
70

Num . Distro / OS Version

71

--------------------------------------------

72

Unknown or not listed

73

5.0 (" Lenny " )

74

5.0.1 ( " Lenny " )

75

5.0.2 ( " Lenny " )

76

5.0.3 ( " Lenny " )

77

5.0.4 ( " Lenny " )

78

5.0.5 ( " Lenny " )

79

5.0.6 ( " Lenny " )

80

5.0.7 ( " Lenny " )

81

5.0.8 ( " Lenny " )

82

10 6.0 (" Squeeze " )

83

11 6.0.1 ( " Squeeze " )

Linux System Administration

Pgina 29

10.3 Introduo Terica

84

12 6.0.2 ( " Squeeze " )

85

Escolha a vers o mais pr xima a sua distro :

86

Enter number 0...12 ( q = quit ) ? 12

4Linux www.4linux.com.br

87
88

Distro set to : Debian 6.0.2

89
90
91

INSTALLATION NOTES

92

------------------

93

NOTE : Disable the CD Sources in your apt sources . list or the install
will fail and hang .

94
95

Please read the installation notes . Press < enter > to continue or q
to quit :

96
97
98

RUNNING PRE - INSTALL COMMANDS

99

----------------------------

100

OK

101
102
103

INSTALL MISSING REQUIRED DEPENDENCIES

104

-------------------------------------

105

warning : There are 8 missing REQUIRED dependencies .

106

note : Installation of dependencies requires an active internet


connection .

107

warning : Missing REQUIRED dependency : gcc ( gcc - GNU Project C and C


++ Compiler )

108

warning : Missing REQUIRED dependency : make ( make - GNU make utility


to maintain groups of programs )

109

warning : Missing REQUIRED dependency : python - devel ( Python devel Python development files )

110

warning : Missing REQUIRED dependency : cups - devel ( CUPS devel - Common


Unix Printing System development files )

111

warning : Missing REQUIRED dependency : libusb ( libusb - USB library )

112

warning : Missing REQUIRED dependency : libtool ( libtool - Library


building support services )

Pgina 30

Linux System Administration

4Linux www.4linux.com.br

113

10.3 Introduo Terica

warning : Missing REQUIRED dependency : cups - image ( CUPS image - CUPS


image development files )

114

warning : Missing REQUIRED dependency : libjpeg ( libjpeg - JPEG


library )

115
116
117

INSTALL MISSING OPTIONAL DEPENDENCIES

118

-------------------------------------

119

warning : There are 10 missing OPTIONAL dependencies .

120

note : Installation of dependencies requires an active internet


connection .

121

warning : Missing REQUIRED dependency for option network : libcrypto


( libcrypto - OpenSSL cryptographic library )

122

warning : Missing REQUIRED dependency for option network :


libnetsnmp - devel ( libnetsnmp - devel - SNMP networking library
development files )

123

warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 dbus ( PyQt 4 DBus - DBus Support for PyQt4 )

124

warning : Missing REQUIRED dependency for option gui_qt4 : pyqt4 (


PyQt 4 - Qt interface for Python ( for Qt version 4. x ) )

125

warning : Missing OPTIONAL dependency for option fax : reportlab (


Reportlab - PDF library for Python )

126

warning : Missing REQUIRED dependency for option fax : dbus ( DBus Message bus system )

127

warning : Missing REQUIRED dependency for option scan : sane - devel (


SANE - Scanning library development files )

128

warning : Missing OPTIONAL dependency for option scan : pil ( PIL Python Imaging Library ( required for commandline scanning with hp
- scan ) )

129

warning : Missing OPTIONAL dependency for option scan : xsane ( xsane


- Graphical scanner frontend for SANE )

130

warning : Missing OPTIONAL dependency for option base : cups - ddk (


CUPS DDK - CUPS driver development kit )

131

warning : This installer cannot install cups - ddk for your distro / OS
and / or version .

132
133

Linux System Administration

Pgina 31

10.3 Introduo Terica

134

CHECKING FOR NETWORK CONNECTION

135

-------------------------------

136

Network connection present .

4Linux www.4linux.com.br

137
138
139

RUNNING PRE - PACKAGE COMMANDS

140

----------------------------

141

su -c " dpkg -- configure -a " ( Pre - depend step 1)

142

su -c " apt - get install -f " ( Pre - depend step 2)

143

su -c " apt - get update " ( Pre - depend step 3)

144

warning : An error occurred running su -c " apt - get install -- yes


cupsys - bsd "

145

su -c " apt - get install -- yes cupsys - bsd " ( Pre - depend step 4)

146

OK

147
148
149

DEPENDENCY AND CONFLICT RESOLUTION

150

----------------------------------

151

Running su -c " apt - get install -- force - yes -y g ++ "

152

Please wait , this may take several minutes ...

153

Running su -c " apt - get install -- force - yes -y make "

154

Please wait , this may take several minutes ...

155

Running su -c " apt - get install -- force - yes -y python - dev "

156

Please wait , this may take several minutes ...

157

Running su -c " apt - get install -- force - yes -y libcups2 - dev "

158

Please wait , this may take several minutes ...

159

Running su -c " apt - get install -- force - yes -y cups - bsd "

160

Please wait , this may take several minutes ...

161

Running su -c " apt - get install -- force - yes -y cups - client "

162

Please wait , this may take several minutes ...

163

Running su -c " apt - get install -- force - yes -y libusb - dev "

164

Please wait , this may take several minutes ...

165

Running su -c " apt - get install -- force - yes -y libtool "

166

Please wait , this may take several minutes ...

167

Running su -c " apt - get install -- force - yes -y libcupsimage2 "

168

Please wait , this may take several minutes ...

169

Running su -c " apt - get install -- force - yes -y libcupsimage2 - dev "

Pgina 32

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

170

Please wait , this may take several minutes ...

171

Running su -c " apt - get install -- force - yes -y libjpeg62 - dev "

172

Please wait , this may take several minutes ...

173

Running su -c " apt - get install -- force - yes -y libssl - dev "

174

Please wait , this may take several minutes ...

175

Running su -c " apt - get install -- force - yes -y libsnmp - dev "

176

Please wait , this may take several minutes ...

177

Running su -c " apt - get install -- force - yes -y python - qt4 - dbus "

178

Please wait , this may take several minutes ...

179

Running su -c " apt - get install -- force - yes -y python - qt4 "

180

Please wait , this may take several minutes ...

181

Running su -c " apt - get install -- force - yes -y python - reportlab "

182

Please wait , this may take several minutes ...

183

Running su -c " apt - get install -- force - yes -y libdbus -1 - dev "

184

Please wait , this may take several minutes ...

185

Running su -c " apt - get install -- force - yes -y libsane - dev "

186

Please wait , this may take several minutes ...

187

Running su -c " apt - get install -- force - yes -y python - imaging "

188

Please wait , this may take several minutes ...

189

Running su -c " apt - get install -- force - yes -y xsane "

190

Please wait , this may take several minutes ...

191
192

RUNNING POST - PACKAGE COMMANDS

193

-----------------------------

194

OK

195
196
197

RE - CHECKING DEPENDENCIES

198

------------------------

199

warning : An optional dependency pil ( PIL - Python Imaging Library (


required for commandline scanning with hp - scan ) ) is still
missing .

200

warning : Some features may not function as expected .

201
202
203

PRE - BUILD COMMANDS

204

------------------

Linux System Administration

Pgina 33

10.3 Introduo Terica

205

4Linux www.4linux.com.br

OK

206
207
208

BUILD AND INSTALL

209

-----------------

210

Running ./ configure -- with - hpppddir =/ usr / share / ppd / HP -- libdir =/ usr


/ lib64 -- prefix =/ usr -- enable - qt4 -- enable - doc - build -- disable cups - ppd - install -- disable - foomatic - drv - install -- disable foomatic - ppd - install -- disable - hpijs - install -- disable - policykit
-- enable - cups - drv - install -- enable - hpcups - install -- enable network - build -- enable - dbus - build -- enable - scan - build -- enable fax - build

211

Please wait , this may take several minutes ...

212

Command completed successfully .

213
214

Running make clean

215

Please wait , this may take several minutes ...

216

Command completed successfully .

217
218

Running make

219

Please wait , this may take several minutes ...

220

Command completed successfully .

221
222

Running make install

223

Please wait , this may take several minutes ...

224

Command completed successfully .

225
226
227

Build complete .

228
229
230

POST - BUILD COMMANDS

231

-------------------

232

/ usr / sbin / usermod -a -G lp , lpadmin root ( Post - build step 1)

233
234
235

RESTART OR RE - PLUG IS REQUIRED

Pgina 34

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

236

------------------------------

237

If you are installing a USB connected printer , and the printer was
plugged in

238

when you started this installer , you will need to either restart
your PC or

239

unplug and re - plug in your printer ( USB cable only ) . If you choose
to restart ,

240

run this command after restarting : hp - setup ( Note : If you are using
a parallel

241

connection , you will have to restart your PC . If you are using


network / wireless ,

242

you can ignore and continue ) .

243

Restart or re - plug in your printer ( r = restart , p = re - plug in * , i =


ignore / continue , q = quit ) :

244

Please unplug and re - plugin your printer now . Press < enter > to
continue or q to quit : < enter >

Com a inmpressora ligada e conectada ao servidor: execute o comando instalado


pelo pacote:

# hp - setup

Escolha o tipo de conexo da impressora e avance:

Linux System Administration

Pgina 35

10.3 Introduo Terica

4Linux www.4linux.com.br

O dispositivo ser reconhecido:

Adicione a impressora:

Pgina 36

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Pode-se adicionar a impressora diretamente pela sua interface grfica caso o driver
j esteja instalado:

Acesse: http://localhost:631

Preencha o nome da impressora, os demais campos no so obrigatrios, este ser


o nome que aparecer na rede:

Linux System Administration

Pgina 37

10.3 Introduo Terica

4Linux www.4linux.com.br

Caso sua impressora j esteja conectada ao servidor e ligada, ela ser detectada automaticamente, escolha a forma com que ela est conectada corretamente, caso ela no tenha sido reconhecida.

Escolha o driver para o tipo da sua impressora:

Pgina 38

Linux System Administration

4Linux www.4linux.com.br

10.3 Introduo Terica

Digite a senha do administrador para adicionar a impressora, todos que pertenam


ao grupo lpadmin so administradores do cups.

Imprima uma pgina teste:

Linux System Administration

Pgina 39

10.4 Compartilhando a impressora

4Linux www.4linux.com.br

10.4 Compartilhando a impressora

Na aba Administration do lado direito, habilite:

- Visualizar impressoras compartilhadas por outros sistemas

- Compartilhar impressoras conectadas a este servidor

- Habilitar administrao remota

Pgina 40

Linux System Administration

4Linux www.4linux.com.br

10.5 Configurao do Cliente

Tudo o que pode ser feito no gerenciador grfico, pode ser feito no arquivo de configurao do servidor cups:

# cat / etc / cups / cupsd . conf

10.5 Configurao do Cliente


O arquivo para configurao do client o client.conf que por padro no existe ou
est vazio:

# vim / etc / cups / client . conf

Esse arquivo deve conter o endereo IP do Servidor de Impresso na rede:


ServerName 192.168.200.254

Linux System Administration

Pgina 41

10.5 Configurao do Cliente

4Linux www.4linux.com.br

Reinicie o servio do cups:

# / etc / init . d / cups restart

Definimos nossa impressora conectada atravs da porta USB, mas e se fosse uma
impressora da rede, ou Paralela? Podemos conferir como ela seria referenciada
usando o comando abaixo:

# lpinfo -v

Dica LPI: Se voc tivesse um impressora em na segunda porta paralela, esta


seria referenciada como /dev/lp1.

Podemos agora fazer um teste de impresso com o comando lp:

# lp - dnome_da_impressora / etc / shadow

Dica LPI: a opo -d"recebe o nome da minha impressora /etc/shadow o


arquivo que ser impresso

.
Verifique agora a fila de impresso atual:

# lpstat -t

Pgina 42

Linux System Administration

4Linux www.4linux.com.br

10.5 Configurao do Cliente

ou

# lpq - Pnome_da_empresa

Para remover o trabalho da fila de impresso por modo texto execute:

# lprm - Pnome_da_impressora n mero_do_job

Linux System Administration

Pgina 43

4451
Linux System Administration

www.4linux.com.br

Contedo
Redes avanado

11.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.1.1 IPV4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.2 Mscara de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.2.1 Alterando o nmero de bits da mscara de sub-rede . . . . . . .

11.2.2 Ipv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
11.3 Tipos de Endereos IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 24
11.3.1 Endereos Unicast . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.4 Endereos Anycast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
11.4.1 Endereo Multicast . . . . . . . . . . . . . . . . . . . . . . . . . 31
11.5 Estrutura do endereo Anycast . . . . . . . . . . . . . . . . . . . . . . . 33
11.6 ARP - Address Resolution Protocol . . . . . . . . . . . . . . . . . . . . . 36
11.7 Verificando portas abertas . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.7.1 Comando netstat . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.7.2 Comando nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.8 Comando tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Servio de Rede Telnet

46

11.9 Telnet TELetype NETwork . . . . . . . . . . . . . . . . . . . . . . . . 48


11.10Instalao e configurao do Telnet . . . . . . . . . . . . . . . . . . . . 49

Redes avanado
11.1 Introduo Terica
11.1.1 IPV4
No IPV4, os endereo IP so compostos por 4 blocos de 8 bits (32 bits no total),
que so representados atravs de nmeros de 0 a 255, como "200.156.23.43"ou
"64.245.32.11".
As faixas de endereos comeadas com "10", com "192.168" ou com de "172.16"
at "172.31" so reservadas para uso em redes locais e por isso no so usados
na internet. Os roteadores que compe a grande rede so configurados para ignorar
estes pacotes, de forma que as inmeras redes locais que utilizam endereos na
faixa "192.168.0.x"(por exemplo) podem conviver pacificamente.
Embora aparentem ser uma coisa s, os endereos IP incluem duas informaes.
O endereo da rede e o endereo do host dentro dela. Em uma rede domstica, por exemplo, voc poderia utilizar os endereos "192.168.1.1", "192.168.1.2"e
"192.168.1.3", onde o "192.168.1." o endereo da rede (e por isso no muda) e o
ltimo nmero (1, 2 e 3) identifica os trs micros que fazem parte dela.
Os micros da rede local podem acessar a internet atravs de um roteador, que pode
ser tanto um servidor com duas placas de rede, quando um modem ADSL ou outro
dispositivo que oferea a opo de compartilhar a conexo. Neste caso, o roteador
passa a ser o gateway da rede e utiliza seu endereo IP vlido para encaminhar as

11.1 Introduo Terica

4Linux www.4linux.com.br

requisies feitas pelos micros da rede interna. Este recurso chamado de NAT
(Network Address Translation).

Endereos de 32 bits permitem cerca de 4 bilhes de endereos diferentes, quase


o suficiente para dar um endereo IP exclusivo para cada habitante do planeta. Os
endereos so divididos em:

O grande problema que os endereos so sempre divididos em duas partes, rede


e host. Nos endereos de classe A, o primeiro octeto se refere rede e os trs octetos seguintes referem-se ao host. Temos apenas 126 faixas de endereos classe A
disponveis no mundo, dadas a governos, instituies e at mesmo algumas empresas privadas, como por exemplo a IBM. As faixas de endereos classe A consomem
cerca de metade dos endereos IP disponveis, representando um gigantesco desperdcio, j que nenhuma das faixas completamente utilizada. Ser que a IBM
utiliza todos os 16 milhes de endereos IP a que tem direito? Certamente no.

Mesmo nos endereos classe B (dois octetos para a rede, dois para o host, garantindo 65 mil endereos) e nos classe C (trs octetos para a rede e um para o host,
ou seja, apenas 256 endereos) o desperdcio muito grande. Muitas empresas
alugam faixas de endereos classe C para utilizar apenas dois ou trs endereos por
exemplo.

Para piorar, parte dos endereos esto reservados para as classes D e E, que jamais
foram implementadas. Isto faz com que j haja uma grande falta de endereos,
principalmente os de classe A e B, que j esto todos ocupados.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

11.2 Mscara de rede

A mscara de rede, juntamente com o endereo IP, define a rede o computador pertence, isto , que outros endereos IP que o computador pode comunicar diretamente
na mesma LAN.

A fim de compreender a mscara lembre-se sempre que os 4 bytes que define tanto o
endereo IP e a mscara de rede poderiam ser representados em formato binrio.

A mscara de rede , por definio, uma seqncia de "1"a partir da esquerda para
a direita, seguido por um certo nmero de "0"(a faixa de rede). Devido a esta regra
a mscara de rede muitas vezes representada com valores decimais, que soam
como um ou mais "255", seguido por um ou mais "0".

Utilizando mscaras de sub-rede padro para cada classe de endereos, onde so


utilizados oito, dezesseis ou vinte e quatro bits para a mscara de rede, conforme
descrito a seguir:

Por isso que existe uma outra notao conhecida como CIDR (Classless Inter-Domain
Routing), onde a mscara de sub-rede indicada simplesmente pelo nmero de bits
utilizados na mscara de sub-rede, conforme exemplos a seguir:

Linux System Administration

Pgina 5

11.2 Mscara de rede

4Linux www.4linux.com.br

Porm com este esquema de endereamento, baseado apenas nas mscaras de


rede padro para cada classe (oito, dezesseis ou vinte e quatro bits), haveria um
grande desperdcio de nmeros IP. Por exemplo, que empresa no mundo precisaria da faixa completa de uma rede classe A, na qual esto disponveis mais de 16
milhes de endereos IP?

Analise o outro extremo desta questo. Imagine, por exemplo, uma empresa de
porte mdio, que tem a matriz em So Paulo e mais cinco filiais em outras cidades
do Brasil. Agora imagine que em nenhuma das localidades, a rede tem mais do
que 30 computadores. Se for usado as mscaras de sub-rede padro, teria que ser
definida uma rede Classe C (at 254 computadores), para cada localidade. Observe
que estamos reservando 254 nmeros IP para cada localidade (uma rede classe C
com mscara 255.255.255.0), quando na verdade, no mximo, 30 nmeros sero
utilizados em cada localidade. Na prtica, um belo desperdcio de endereos IP,
mesmo em um empresa de porte mdio ou pequeno.

Observe que neste exemplo, uma nica rede Classe C seria suficiente. J que so
seis localidades (a matriz mais seis filiais), com um mximo de 30 endereos por
localidade, um total de 254 endereos de uma rede Classe C seria mais do que
suficiente. Ainda haveria desperdcio, mas agora bem menor.

A boa notcia que possvel dividir uma rede (qualquer rede) em sub-redes, onde
cada sub-rede fica apenas com uma faixa de nmeros IP de toda a faixa original.
Por exemplo, a rede Classe C 200.100.100.0/255.255.255.0, com 256 nmeros IPs
disponveis (na prtica so 254 nmeros que podem ser utilizados, descontando o
primeiro que o nmero da prpria rede e o ltimo que o endereo de broadcast,
poderia ser dividida em 8 sub-redes, com 32 nmeros IP em cada sub-rede. O
esquema a seguir ilustra este conceito:

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Rede original: 256 endereos IP disponveis: 200.100.100.0 -> 200.100.100.255 Diviso da rede em 8 sub-redes, onde cada sub-rede fica com 32 endereos IP:
Sub-rede 01: 200.100.100.0 -> 200.100.100.31
Sub-rede 02: 200.100.100.32 -> 200.100.100.63
Sub-rede 03: 200.100.100.64 -> 200.100.100.95
Sub-rede 04: 200.100.100.96 -> 200.100.100.127
Sub-rede 05: 200.100.100.128 -> 200.100.100.159
Sub-rede 06: 200.100.100.160 -> 200.100.100.191
Sub-rede 07: 200.100.100.192 -> 200.100.100.223
Sub-rede 08: 200.100.100.224 -> 200.100.100.255
Para o exemplo da empresa com seis localidades (matriz mais cinco filiais), onde,
no mximo, so necessrios trinta endereos IP por localidade, a utilizao de uma
nica rede classe C, dividida em 8 sub-redes seria a soluo ideal. Na prtica a
primeira e a ltima sub-rede so descartadas, pois o primeiro IP da primeira subrede representa o endereo de rede e o ltimo IP da ltima sub-rede representa o
endereo de broadcast. Com isso restariam, ainda, seis sub-redes. Exatamente a
quantia necessria para o exemplo proposto. Observe que ao invs de seis redes
classe C, bastou uma nica rede Classe C, subdividida em seis sub-redes. Uma bela
economia de endereos. Claro que se um dos escritrios, ou a matriz, precisasse de
mais de 32 endereos IP, um esquema diferente de diviso teria que ser criado.
Entendido o conceito terico de diviso em sub-redes, resta o trabalho prtico, ou
seja:

O que tem que ser alterado para fazer a diviso em sub-redes?

Linux System Administration

Pgina 7

11.2 Mscara de rede

4Linux www.4linux.com.br

Como calcular o nmero de sub-redes e o nmero de nmeros IP dentro de


cada sub-rede?
Como listar as faixas de endereos dentro de cada sub-rede?
Observe o que tem que ser alterado para fazer a diviso de uma rede padro (com
mscara de 8, 16 ou 24 bits) em uma ou mais sub-redes. Em seguida, veja alguns
exemplos de diviso de uma rede em sub-redes. Mos a obra.

11.2.1 Alterando o nmero de bits da mscara de sub-rede


Por padro so utilizadas mscaras de sub-rede de 8, 16 ou 24 bits, conforme indicado no esquema a seguir:

Uma mscara de 8 bits significa que todos os bits do primeiro octeto so iguais a 1;
uma mscara de 16 bits significa que todos os bits do primeiro e do segundo octeto
so iguais a 1 e uma mscara de 24 bits significa que todos os bits dos trs primeiros
octetos so iguais a 1. Este conceito est ilustrado na tabela a seguir:

Mscaras de rede com 8, 16 e 24 bits


No exemplo da rede com matriz em So Paulo e mais cinco escritrios, vamos utilizar
uma rede classe C, que ser subdividida em seis sub-redes (na prtica 8, mas a

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

primeira e a ltima no so utilizadas). Para fazer esta subdiviso, voc deve alterar
o nmero de bits iguais a 1 na mscara de sub-rede. Por exemplo, ao invs de 24 bits,
voc ter que utilizar 25, 26, 27 ou um nmero a ser definido. Bem, j avanamos
mais um pouco:
Para fazer a diviso de uma rede em sub-redes, preciso aumentar o nmero
de bits iguais a 1, alterando com isso a mscara de sub-rede.
Quantos bits devem ser utilizados para a mscara de sub-rede?
Agora, naturalmente, surge uma nova questo: "Quantos bits?". Ou de uma outra
maneira (j procurando induzir o seu raciocnio): "O que define o nmero de bits a
ser utilizados a mais?"
Bem, esta uma questo bem mais simples do que pode parecer. Vamos a ela. No
exemplo proposto, precisamos dividir a rede em seis sub-redes. Ou seja, o nmero
de sub-redes deve ser, pelo menos, seis. Sempre lembrando que a primeira e a
ltima sub-rede no so utilizadas. O nmero de sub-redes proporcional ao nmero
de bits que vamos adicionar mscara de sub-rede j existente. O nmero de rede
dado pela frmula a seguir, onde n o nmero de bits a mais a serem utilizados
para a mscara de sub-rede:
1. Nm. de sub-redes = 2n-2
No nosso exemplo esto disponveis at 8 bits do ltimo octeto para serem tambm
utilizados na mscara de sub-rede. Claro que na prtica no podemos usar os 8 bits,
seno ficaramos com o endereo de broadcast: 255.255.255.255, como mscara de
sub-rede. Alm disso, quanto mais bits pegar para a mscara de sub-rede, menos
sobraro para os nmeros IP da rede. Por exemplo, se adicionar mais um bit a
mscara j existente, ficarei com 25 bits para a mscara e 7 para nmeros IP, se
adicionar mais dois bits mscara original de 24 bits, ficarei com 26 bits para a
mscara e somente 6 para nmeros IP e assim por diante. O nmero de bits que
restam para os nmeros IP, definem quantos nmeros IP podem haver em cada
sub-rede. A frmula para determinar o nmero de endereos IP dentro de cada subrede, indicado a seguir, onde n o nmeo de bits destinados a parte de host do

Linux System Administration

Pgina 9

11.2 Mscara de rede

4Linux www.4linux.com.br

endereo (32 - bits usados para a mscara):


2. Nm. de end. IP dentro de cada sub-rede = 2n-2
Na tabela a seguir, veja os clculos para a diviso de sub-redes que ser feita no
exemplo. Observe que quanto mais bits adicionado mscara de sub-rede, mais
sub-redes possvel obter, porm com um menor nmero de mquinas em cada
sub-rede. Lembrando que no exemplo estamos subdividindo uma rede classe C 200.100.100.0/255.255.255.0, ou seja, uma rede com 24 bits para a mscara de
sub-rede original.

Nmero de redes e nmero de hosts em cada rede.


Claro que algumas situaes no se aplicam na prtica. Por exemplo, usando apenas um bit a mais para a mscara de sub-rede, isto , 25 bits ao invs de 24. Neste
caso teremos 0 sub-redes disponveis. Pois com 1 bit possvel criar apenas duas
sub-redes, como a primeira e a ltima so descartadas, conforme descrito anteriormente, na prtica as duas sub-redes geradas no podero ser utilizadas. A mesma
situao ocorre com o uso de 7 bits a mais para a mscara de sub-rede, ou seja,
31 ao invs de 24. Nesta situao sobra apenas um bit para os endereos IP.
Com 1 bit posso ter apenas dois endereos IP, descontanto o primeiro e o ltimo
que no so utilizados, no sobra nenhum endereo IP. As situaes intermedirias que so mais realistas. No nosso exemplo, precisamos dividir a rede Classe
C - 200.100.100.0/255.255.255.0, em seis sub-redes. De acordo com a tabela da
Figura anterior, precisamos utilizar 3 bits a mais para obter as seis sub-redes dese-

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

jadas.
Observe que utilizando trs bits a mais, ao invs de 24 bits (mscara original), vamos
utilizar 27 bits para a mscara de sub-rede. Com isso sobram cinco bits para os
nmeros IPs dentro de cada sub-rede, o que d um total de 30 nmeros IP por subrede. Exatamente o que precisamos.
A prxima questo que pode surgir como que fica a mscara de sub-rede, agora
que ao invs de 24 bits, estou utilizando 27 bits, conforme ilustrado na tabela a
seguir:

Figura - Mscara de sub-rede com 27 bits.


Para determinar a nova mscara temos que revisar o valor de cada bit. Da esquerda
para a direita, cada bit representa o seguinte valor, respectivamente:
128 64 32 16 8 4 2 1
Como os trs primeiros bits do ltimo octeto foram tambm utilizados para a mscara,
estes trs bits somam para o valor do ltimo octeto. No nosso exemplo, o ltimo
octeto da mscara ter o seguinte valor: 128+64+32 = 224. Com isso a nova mscara
de sub-rede, mscara esta que ser utilizada pelas seis sub-redes, a seguinte:
255.255.255.224. Observe que ao adicionar bits mscara de sub-rede, fazemos
isso a partir do bit de maior valor, ou seja, o bit mais da esquerda, com o valor de
128, depois usamos o prximo bit com valor 64 e assim por diante. Na tabela a
seguir, apresento a ilustrao de como fica a nova mscara de sub-rede:

Figura - Como fica a nova mscara de sub-rede.


Com o uso de trs bits adicionais para a mscara de rede, teremos seis sub-redes

Linux System Administration

Pgina 11

11.2 Mscara de rede

4Linux www.4linux.com.br

disponveis (uma para cada escritrio) com um nmero mximo de 30 nmeros IP


por sub-rede. Exatamente o que precisamos para o exemplo proposto.A idia bsica
de subnet bastante simples. Utiliza-se bits adicionais para a mscara de subrede. Com isso se tem uma diviso da rede original (classe A, classe B ou classe
C) em vrias sub-redes, sendo que o nmero de endereos IP em cada sub-rede
reduzido (por termos utilizados bits adicionais para a mscara de sub-rede, bits estes
que originalmente eram destinados aos endereos IP). Esta diviso pode ser feita em
redes de qualquer uma das classes padro A, B ou C. Por exemplo, por padro, na
Classe A so utilizados 8 bits para a mscara de sub-rede e 24 bits para hosts. Voc
pode utilizar, por exemplo, 12 bits para a mscara de sub-rede, restando com isso 20
bits para endereos de host.
Na tabela a seguir, apresentado os clculos para o nmero de sub-redes e o nmero de hosts dentro de cada sub-rede, apenas para os casos que podem ser utilizados na prtica, ou seja, duas ou mais sub-redes e dois ou mais endereos vlidos em
cada sub-rede, quando for feita a sub-diviso de uma rede Classe C, com mscara
original igual a 255.255.255.0..

Nmero de redes e nmero de hosts em cada rede - divso de uma rede Classe
C.
Lembrando que a frmula para calcular o nmero de sub-redes :
Nm. de sub-redes = 2n-2
onde n o nmero de bits a mais utilizados para a mscara de sub-rede E a frmula
para calcular o nmero de endereos IP dentro de cada sub-rede :
Nm de IPs por subrede = 2n-2

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

onde n o nmero de bits restantes, isto , no utilizados pela mscara de subrede.

At aqui foram vistos ememplos da rede Classe C, que est sendo subdividida em
vrias sub-redes. Porm tambm possvel subdividir redes Classe A e redes Classe
B. Lembrando que redes classe A utilizam, por padro, apenas 8 bits para o endereo
de rede, j redes classe B, utilizam, por padro, 16 bits. Na tabela a seguir, apresento
um resumo do nmero de bits utilizados para a mscara de sub-rede, por padro, nas
classes A, B e C:

Figura - Mscara padro para as classes A, B e C

Para subdividir uma rede classe A em sub-redes, basta usar bits adicionais para a
mscara de sub-rede. Por padro so utilizados 8 bits. Se voc utilizar 10, 12 ou mais
bits, estar criando sub-redes. O mesmo raciocnio vlido para as redes classe B,
as quais utilizam, por padro, 16 bits para a mscara de sub-rede. Se voc utilizar
18, 20 ou mais bits para a mscara de sub-rede, estar subdividindo a rede classe B
em vrias sub-redes.

As frmulas para clculo do nmero de sub-redes e do nmero de hosts em cada


sub-rede so as mesmas apresentadas anteriormente, independentemente da classe
da rede que est sendo dividida em sub-redes.

A seguir apresentado uma tabela com o nmero de sub-redes e o nmero de


hosts em cada sub-rede, dependendo do nmero de bits adicionais (alm do padro
definido para a classe) utilizados para a mscara de sub-rede, para a diviso de uma
rede Classe B:

Linux System Administration

Pgina 13

11.2 Mscara de rede

4Linux www.4linux.com.br

Tabela - Nmero de redes e nmero de hosts em cada rede - Classe B.

Observe como o entendimento dos clculos binrios realizados pelo TCP/IP facilita
o entendimento de vrios assuntos relacionados ao TCP/IP, inclusive o conceito de
subnet. Por padro a classe B utiliza 16 bits para a mscara de sub-rede, ou seja,
uma mscara padro: 255.255..0.0. Agora se utilizar oito bits adicionais (todo o
terceiro octeto) para a mscara, ter todos os bits do terceiro octeto como sendo
iguais a 1, com isso a mscara passa a ser: 255.255.255.0. Este resultado est
coerente com a tabela da Figura 16.11. Agora ao invs de 8 bits adicionais, utilize 9.
Ou seja, todo o terceiro octeto (8 bits) mais o primeiro bit do quarto octeto. O primeiro
bit, o bit bem esquerda o bit de valor mais alto, ou seja, o que vale 128. Ao
usar este bit tambm para a mscara de sub-rede, ser obtida a seguinte mscara:
255.255.255.128. Tambm fecha com a tabela anterior. Com isso se conclui que o
entendimento da aritemtica e da representao binria, facilita muito o estudo do
protocolo TCP/IP e de assuntos relacionados, tais como subnet e roteamento.

A seguir apresentada uma tabela com o nmero de sub-redes e o nmero de


hosts em cada sub-rede, dependendo do nmero de bits adicionais (alm do padro
definido para a (classe) utilizados para a mscara de sub-rede, para a diviso de
uma rede Classe A:

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Tabela - Nmero de redes e nmero de hosts em cada rede - Classe A.


Um fato importante, que destacado novamente que todas as sub-redes (resultantes da diviso de uma rede), utilizam o mesmo nmero para a mscara de sub-rede.
Por exemplo, na quarta linha da tabela indicada na Figura 16.12, utilizado 5 bits adicionais para a mscara de sub-rede, o que resulta em 30 sub-redes diferentes, porm
todas utilizando como mscara de sub-rede o seguinte nmero: 255.248.0.0.
Muito bem, entendido o conceito de diviso em sub-redes e de determinao do
nmero de sub-redes, do nmero de hosts em cada sub-rede e de como formada
a nova mscara de sub-rede, a prxima questo que pode surgir a seguinte:
Como listar as faixas de endereos para cada sub-rede? Este exatamente o assunto que vem a seguir.
Como listar as faixas de endereos dentro de cada sub-rede
Vamos entender esta questo atravs de exemplos prticos.
Exemplo 01: Dividir a seguinte rede classe C: 229.45.32.0/255.255.255.0. So necessrias, pelo menos, 10 sub-redes. Determinar o seguinte:

Linux System Administration

Pgina 15

11.2 Mscara de rede

4Linux www.4linux.com.br

a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 subredes?
b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede?
c) Qual a nova mscara de sub-rede?
d) Listar a faixa de endereos de cada sub-rede. Vamos ao trabalho. Para responder
a questo da letra a, voc deve lembrar da frmula:
Nm. de sub-redes = 2n-2
Voc pode ir substituindo n por valores sucessivos, at atingir ou superar o valor de
10. Por exemplo, para n=2, a frmula resulta em 2, para n=3, a frmula resulta em 6,
para n=4 a frmula resulta em 14. Bem, est respondida a questo da letra a, temos
que utilizar quatro bits do quarto octeto para fazer parte da mscara de sub-rede.
a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 subredes? R: 4 bits.
Como utilizei quatro bits do ltimo octeto (alm dos 24 bits dos trs primeiros octetos,
os quais j faziam parte da mscara original), sobraram apenas 4 bits para os endereos IP, ou seja, para os endereos de hosts em cada sub-rede. Tenho que lembrar
da seguinte frmula: Nm. de end. IP dentro de cada sub-rede = 2n-2 substituindo
n por 4, vou obter um valor de 14. Com isso j estou em condies de responder a
alternativa b.
b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede? R: 14.
Como utilizei quatro bits do quarto octeto para fazer a diviso em sub-redes, os quatro
primeiros bits foram definidos iguais a 1. Basta somar os respectivos valores, ou seja:
128+64+32+16 = 240. Ou seja, com os quatro primeiros bits do quarto octeto sendo
iguais a 1, o valor do quarto octeto passa para 240, com isso j temos condies de
responder a alternativa c.

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

c) Qual a nova mscara de sub-rede? R: 255.255.255.240


importante lembrar, mais uma vez, que esta ser a mscara de sub-rede utilizada
por todas as 14 sub-redes.
d) Listar a faixa de endereos de cada sub-rede. Esta a novidade deste item.
Como saber de que nmero at que nmero vai cada endereo IP. Esta tambm
fcil, embora seja novidade. Observe o ltimo bit definido para a mscara. No nosso
exemplo o quarto bit do quarto octeto. Qual o valor decimal do quarto bit? 16 (o
primeiro 128, o segundo 64, o terceiro 32 e assim por diante, conforme explicado
na Parte 2). O valor do ltimo bit um indicativo das faixas de variao para este
exemplo. Ou seja, na prtica temos 16 hosts em cada sub-rede, embora o primeiro e
o ltimo no devam ser utilizados, pois o primeiro o endereo da prpria sub-rede
e o ltimo o endereo de broadcast da sub-rede. Por isso que ficam 14 hosts por
sub-rede, devido ao -2"na frmula, o -2"significa: - o primeiro - o ltimo. Ao listar
as faixas, consideramos os 16 hosts, apenas importante salienar que o primeiro
e o ltimo no so utilizados. Com isso a primeira sub-rede vai do host 0 at o 15,
a segunda sub-rede do 16 at o 31, a terceira do 32 at o 47 e assim por diante,
conforme indicado no esquema a seguir:
Diviso da rede em 14 sub-redes, onde cada sub-rede fica com 16 endereos IP,
sendo que a primeira e a ltima sub-rede no so utilizadas e o primeiro e o ltimo
nmero IP, dentro de cada sub-rede, tambm no so utilizados:
Sub-rede 01 229.45.32.0 -> 229.45.32.15
Sub-rede 02 229.45.32.16 -> 229.45.32.31
Sub-rede 03 229.45.32.32 -> 229.45.32.47
Sub-rede 04 229.45.32.48 -> 229.45.32.63
Sub-rede 05 229.45.32.64 -> 229.45.32.79
Sub-rede 06 229.45.32.80 -> 229.45.32.95

Linux System Administration

Pgina 17

11.2 Mscara de rede

4Linux www.4linux.com.br

Sub-rede 07 229.45.32.96 -> 229.45.32.111


Sub-rede 08 229.45.32.112 -> 229.45.32.127
Sub-rede 09 229.45.32.128 -> 229.45.32.143
Sub-rede 10 229.45.32.144 -> 229.45.32.159
Sub-rede 11 229.45.32.160 -> 229.45.32.175
Sub-rede 12 229.45.32.176 -> 229.45.32.191
Sub-rede 13 229.45.32.192 -> 229.45.32.207
Sub-rede 14 229.45.32.208 -> 229.45.32.223
Sub-rede 15 229.45.32.224 -> 229.45.32.239
Sub-rede 16 229.45.32.240 -> 229.45.32.255
Vamos a mais um exemplo prtico, agora usando uma rede classe B, que tem inicialmente, uma mscara de sub-rede: 255.255.0.0
Exemplo 02: Dividir a seguinte rede classe B: 150.100.0.0/255.255.0.0. So necessrias, pelo menos, 20 sub-redes. Determinar o seguinte:
a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 10 subredes?
b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede?
c) Qual a nova mscara de sub-rede?
d) Listar a faixa de endereos de cada sub-rede. Vamos ao trabalho. Para responder
a questo da letra a, voc deve lembrar da frmula:

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Nm. de sub-redes = 2n-2


Voc pode ir substituindo n por valores sucessivos, at atingir ou superar o valor de
10. Por exemplo, para n=2, a frmula resulta em 2, para n=3, a frmula resulta em
6, para n=4 a frmula resulta em 14 e para n=5 a frmula resulta em 30. Bem, est
respondida a questo da letra a, temos que utilizar cinco bits do terceiro octeto para
fazer parte da mscara de sub-rede. Pois se utilizar apenas 4 bits, obter somente
14 sub-redes e usando mais de 5 bits, obter um nmero de sub-redes bem maior
do que o necessrio.
a) Quantos bits sero necessrios para fazer a diviso e obter pelo menos 20 subredes?
R: 5 bits.
Como utilizei cinco bits do terceiro octeto (alm dos 16 bits dos dois primeiros octetos, os quais j faziam parte da mscara original), sobraram apenas 11 bits (os
trs restantes do terceiro octeto mais os 8 bits do quarto octeto) para os endereos
IP, ou seja, para os endereos de hosts em cada sub-rede. Lembre-se da seguinte
frmula:
Nm. de endereos IP dentro de cada sub-rede = 2n-2 Substituindo n por 11 (nmero
de bits que restarama para a parte de host), vou obter um valor de 2046, j descontando o primeiro e o ltimo nmero, os quais no podem ser utilizados, conforme j
descrito anteriormente. Com isso j estou em condies de responder a alternativa
b.
b) Quantos nmeros IP (hosts) estaro disponveis em cada sub-rede?
R: 2046.
Como utilizei cinco bits do terceiro octeto para fazer a diviso em sub-redes, os cinco
primeiros bits foram definidos iguais a 1. Basta somar os respectivos valores, ou
seja: 128+64+32+16+8 = 248. Ou seja, com os quatro primeiros bits do quarto
octeto sendo iguais a 1, o valor do quarto octeto passa para 248, com isso j temos

Linux System Administration

Pgina 19

11.2 Mscara de rede

4Linux www.4linux.com.br

condies de responder a alternativa c.


c) Qual a nova mscara de sub-rede?
R: 255.255.248.0 importante lembrar, mais uma vez, que esta ser a mscara de
sub-rede utilizada por todas as 30 sub-redes.
d) Listar a faixa de endereos de cada sub-rede. Como saber de que nmero at que
nmero vai cada endereo IP. Esta tambm fcil e o raciocnio o mesmo utilizado
para o exemplo anterior, onde foi feita uma diviso de uma rede classe C. Observe
o ltimo bit definido para a mscara. No nosso exemplo o quinto bit do terceiro
octeto. Qual o valor decimal do quinto bit (de qualque octeto)? 8 (o primeiro 128,
o segundo 64, o terceiro 32, o quarto 16 e o quinto 8. O valor do ltimo bit um
indicativo das faixas de variao para este exemplo. Ou seja, na prtica temos 2048
hosts em cada sub-rede, embora o primeiro e o ltimo no devam ser utilizados, pois
o primeiro o endereo da prpria sub-rede e o ltimo o endereo de broadcast
da sub-rede. Por isso que ficam 2046 hosts por sub-rede, devido ao -2"na frmula, o
-2"significa: - o primeiro - o ltimo. Ao listar as faixas, consideramos o valor do ltimo
bit da mscara. No nosso exemplo o 8. A primeira faixa vai do zero at um nmero
anterior ao valor do ltimo bit, no caso do 0 ao 7. A seguir indico a faixa de endereos
da primeira sub-rede (sub-rede que no ser utilizada na prtica, pois descarta-se a
primeira e a ltima):
Sub-rede 01 150.100.0.1 -> 150.100.7.254
Com isso todo endereo IP que tiver o terceiro nmero na faixa entre 0 e 7, ser um
nmero IP da primeira sub-rede, conforme os exemplos a seguir:
150.100.0.25
150.100.3.20
150.100.5.0
150.100.6.244

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

Importante: Observe que os valores de 0 a 7 so definidos no terceiro octeto, que


onde estamos utilizando cinco bits a mais para fazer a diviso em sub-redes.

Qual seria a faixa de endereos IP da prxima sub-rede. Aqui vale o mesmo reciocnio. O ltimo bit da mscara equivale ao valor 8. Esta a variao da terceira
parte do nmero IP, que onde esta sendo feita a diviso em sub-redes. Ento, se a
primeira foi de 0 at 7, a segunda sub-rede ter valores de 8 a 15 no terceiro octeto,
a terceira sub-rede ter valores de 16 a 23 e assim por diante.

Diviso da rede em 32 sub-redes, onde cada sub-rede fica com 2048 endereos IP,
sendo que a primeira e a ltima sub-rede no so utilizadas e o primeiro e o ltimo
nmero IP, dentro de cada sub-rede, tambm no so utilizados:

Linux System Administration

Pgina 21

11.2 Mscara de rede

4Linux www.4linux.com.br

Com base na tabela apresentada, fica fcil responder em que sub-rede est contido
um determinado nmero IP. Por exemplo, considere o nmero IP 150.100.130.222.
Primeiro voc observa o terceiro octeto do nmero IP (o terceiro, porque neste
octeto que esto os ltimos bits que foram utilizados para a mscara de sub-rede).
Consultando a tabela anterior, voc observa o valor de 130 para o terceiro octeto
corresponde a sub-rede 17, na qual o terceiro octeto varia entre 128 e 135, conforme
indicado a seguir:

11.2.2 Ipv6

"IPv6 a nova verso do protocolo de redes de dados nos quais a Internet est baseada. O IETF (Internet Engineering Task Force), desenvolveu suas especificaes
bsicas durante os anos 90. A principal motivao para o desenvolvimento e lanamento do IPv6 foi a expanso do espao de endereos disponveis na Internet,
permitindo assim que se conectem bilhes de novos dispositivos (PDAs, telefones
celulares, etc), novos usrios e tecnologias sempre-conectada (xDSL, cabo, Ethernet ou fibra direto na residncia, comunicao via rede eltrica, etc).
No existem classes como A, B e C. O IPv6 utiliza o conceito de CIDR (FULLER,
1993), onde um determinado nmero de bits corresponde ao prefixo da rede, e os
bits restantes identificam o n.

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

11.2 Mscara de rede

O protocolo ARP no utilizado em IPv6, pois no existe broadcast em IPv6 e o ARP


baseia-se em broadcast. Em seu lugar, utilizado o protocolo ICMPv6 e transmisso
multicast.
Espao de endereamento
O espao de endereamento do IPv6 de 128 bits, contra os 32 bits do IPv4. Esta
a mudana mais visvel do IPv6 em relao ao IPv4. Algumas das primeiras propostas de evoluo do IPv4 - vide CALLON (1992), PISTICELLO (1993) e BRADNER &
MANKIN (1993) - propunham espaos de endereamento de 64 ou 96 bits, perfeitamente suficientes para um prazo razoavelmente longo.
A proposta mais interessante, denominada TUBA (TCP and UDP with Bigger Addresses) propunha a substituio do IP pelo CNLP da pilha OSI. O CNLP bem
documentado e tem um espao de endereamento de at 20 octetos (160 bits). A
indisposio generalizada da comunidade Internet com o protocolo OSI, constatada
no trabalho de DIXON (1993), acabou sepultando a idia. Textos a favor e contra o
TUBA e o OSI podem ser encontrados facilmente na Internet.
O endereamento finalmente adotado visa, principalmente: a) abrir espao criao de tantas classes de endereos quantas forem necessrias, e ainda ter espao
de sobra para um nmero virtualmente inesgotvel de endereos dentro de cada
classe;
b) utilizao massiva de roteamento por agregao, onde todas as sub-redes de
uma mesma rede apresentam o mesmo prefixo de rede. Isto diminui drasticamente
o nmero de rotas que cada roteador tem de conhecer, em todos os nveis.
Embora o roteamento por agregao seja padro para IPv4 desde 1995 com a implementao da CIDR (FULLER, 1993), nem todas as redes classe A, B ou C podem
ser renumeradas, e os roteadores da espinha dorsal da Internet tm de conhecer
rotas especficas para inmeras redes no agregadas.
O tamanho do endereo IPv6 comporta tanto profundas hierarquias de endereamento por agregao bem como um grande nmero de ns por sub-rede. Isso per-

Linux System Administration

Pgina 23

11.3 Tipos de Endereos IPv6

4Linux www.4linux.com.br

mite:
a) liberal distribuio de faixas de endereamento a usurios finais, tornando desnecessrios, por exemplo, os complexos roteadores NAT (Network Address Translation
traduo de endereo de rede) para compartilhamento de um IP por vrios usurios. O IPv6 acaba com os cidados de segunda classe da Internet;
b) Com o desuso do NAT, ocorre uma grande simplificao na configurao de servidores e dispositivos de rede, o que contribui para o barateamento do acesso Internet. Evita todos os problemas citados por PEA (2001) e permite que apaream
protocolos mais sofisticados como voz sobre IP.
Nada impede de um sistema operacional ou dispositivo de rede implementar NAT
para IPv6, e de fato implementado no Linux. Alguns administradores de rede tm
a sensao subjetiva de que NAT aumenta a segurana, embora isso seja muito
discutvel.

11.3 Tipos de Endereos IPv6


O grande espao de endereamento visa a criao facilitada de classes de endereamento. Tais classes, mais apropriadamente denominadas de faixas de endereamento, so registradas junto IETF. Segue uma lista das principais faixas e os
respectivos prefixos IPv6.

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

11.3 Tipos de Endereos IPv6

Aproximadamente 15% do espao de endereamento IPv6 foi alocado. Restam


ainda 85%.
Segundo a RFC 2374, uma mesma interface, que utiliza o protocolo IPv6, pode utilizar mais de um endereo, diferentemente do IPv4, onde tal caracterstica s era possvel em roteadores. Essa caracterstica importante porque na verso 6 algumas
aplicaes, em geral de controle, utilizam-se de endereos especiais que veremos
adiante. Para o endereamento das interfaces existem ento 3 tipos de endereos:
Unicast;
Anycast;
Multicast.
Outra caracterstica marcante do IPv6 que no existem mais os endereos broadcast, que endereavam todos os hosts de um mesmo domnio de coliso, isto , uma
pacote com endereo de destino do tipo broadcast era enviado para todos os hosts
de seu domnio de coliso. Com a abolio desse tipo endereo, outro protocolo
muito comum no IPv4 tambm ficou em desuso, o ARP Address Resolution Protocol, que usava endereos broadcast para descoberta do endereo MAC da interface
referente ao endereo de destino do pacote.

11.3.1 Endereos Unicast


Esse tipo de endereo comumente usado em IPv4, que identifica apenas uma
nica interface. Desta forma um pacote destinado a um endereo do tipo Unicast
enviado diretamente para a interface associada a esse endereo. Foram definidos
pela RFC 2374 vrios tipos de endereos Unicast :
Agregatable Global Unicast Address
Loopback Address

Linux System Administration

Pgina 25

11.3 Tipos de Endereos IPv6

4Linux www.4linux.com.br

Unspecified Address

NSAP Address

IPX AddressSite-local Unicast Address

Link-local Unicast Address

IPv4-compatible IPv6 Address

Agregatable Global Unicast Address

Esse tipo de endereo unicast equivalente ao endereo global unicast usado em


IPv4. Sendo assim o endereo que ser usado globalmente na Internet. Essa
estrutura de endereos globais permite uma agregao de prefixos de roteamento
que limitam o nmero de entradas nas tabelas de rotas.

A estrutura deste tipo de endereo dividida em 4 nveis, o primeiro o FP - Format


Prefix, que indica justamente que se trata de um endereo do tipo Global Unicast,
esse FP deve ser sempre 001, como vimos na tabela III - Alocao de endereos
IPv6, na seo anterior.

O segundo campo chamado Global Routing Prefix, e destinado a identificao


dos ISPs - Internet Service Provider, ele possui vrios nveis e seguem a estrutura
apresentada na seo anterior. O terceiro campo Subnet ID tambm foi apresentado
anteriormente como sendo o campo Site ID da estrutura de hierarquizao do endereo IPv6, o ltimo nvel o Interface ID, que tambm j foi abordado e possui 64
bits. Abaixo, vemos na figura a estrutura desse tipo de endereo:

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

11.3 Tipos de Endereos IPv6

Estrutura do endereo Aggregatable Global Unicast Address.


Loopback Address
Esse tipo de endereo, como o prprio nome j diz, o endereo da prpria interface.
Porm ele s pode ser usado quando um n envia um pacote para ele mesmo. No
IPv4 esse tipo de endereo era geralmente o 127.0.0.1, em IPv6 indicado por:
0:0:0:0:0:0:0:1
ou simplesmente:
::1
Esse endereo no pode ser associado a nenhuma interface fsica, nem como endereo de fonte, nem como endereo de destino, mas pode ser imaginado como sendo
de uma interface virtual, a interface loopback. Um pacote IPv6 com endereo destino
do tipo loopback address tambm no deve deixar o prprio host, sendo que esse
endereo nunca ser repassado por um roteador IPv6.
Unspecified Address
Esse tipo de endereo indica exatamente a ausncia de um endereo. Ele nunca
dever ser utilizado como um endereo vlido para nenhum host. A sua utilidade
para que estaes que ainda no foram inicializadas, sejam identificadas com endereos deste tipo, ou seja, hosts que ainda no tenham aprendido seus prprios
endereos globais, utilizem tais endereos para se autoconfigurar. Alm disso, esse
tipo de endereo no deve ser utilizado como endereo de destino ou em cabealho

Linux System Administration

Pgina 27

11.3 Tipos de Endereos IPv6

4Linux www.4linux.com.br

de roteamento de pacotes IPv6. Seu formato o seguinte:


0:0:0:0:0:0:0:0
ou simplesmente:
::
NSAP Address
Esse tipo de endereo ident ificado pelo prefixo FP - 0000001. Ele foi definido pela
RFC 1888 - OSI NSAPs and IPv6 como mecanismo de suporte para endereamento
OSI NSAP - Network Service Access Point em redes IPv6. Possui alm do FP de 7
bits, que o indica, 121 bits para constituio de seu endereo. IPX Address
tambm um endereo especial para compatibilidade de endereos existentes.
identificado pelo prefixo 0000010, includo para prover mecanismo de mapeamento
de endereos IPX - Internal Packet eXchange em endereos IPv6. Os endereos
IPX so utilizados em redes Netware, de propriedade da Novell. Da mesma forma
que o NSAP Address possui 7 bits de FP e 121 bits para constituio do endereo.
Site Local Unicast Address
O endereo do tipo Site Local similar aos endereos privados usados em IPv4,
como as redes 10.0.0.0 /8, 172.16.0.0/16 e 198.168.0.0/16. Esses endereos podem
ser usados para uma comunicao restrita dentro de um domnio especfico.
Este tipo de endereo identificado pelo prefixo FEC0::/10 ou 1111111011 em binrio. Ele pode ser definido para uso interno numa organizao atravs da concatenao do campo de SLA (16 bits) com a identificao da interface (64 bits). Este
tipo de endereamento pode ser considerado como privado, visto que ele est restrito a um domnio sem ligao Internet. Desta forma ele no pode ser anunciado
externamente por roteadores. Abaixo podemos visualizar a estrutura deste tipo de
endereo.

Pgina 28

Linux System Administration

4Linux www.4linux.com.br

11.3 Tipos de Endereos IPv6

Estrutura do endereo Site Local Unicast Address.


Link Local Unicast Address
Este tipo de endereo automaticamente configurado em qualquer host IPv6, atravs da conjugao do seu prefixo FE80::/10 ou 1111111010 em binrio, como pode
ser visto na tabela III, e a identificao da interface no formato EUI-64, mostrado
anteriormente. Estes endereos so utilizados nos processos de configurao dinmica automtica (autoconfigurao) e no processo de descoberta de elementos na
hierarquia de roteamento (Neighbor Discovery Protocol). Estes procedimentos sero vistos com detalhes na prxima seo. Este endereamento permite tambm a
comunicao entre ns pertencentes ao mesmo enlace. Como nos endereos Site
Local, esse tipo de endereo no deve ser enviado como endereo de origem ou destino em pacotes. Alm disso esses endereos no so repassados pelos roteadores.
Abaixo podemos visualizar a estrutura deste tipo de endereo.

Estrutura do endereo Site Local Unicast Address.


IPv4-compatible IPv6 Address

Linux System Administration

Pgina 29

11.4 Endereos Anycast

4Linux www.4linux.com.br

Esse tipo de endereo usado em IPv6 como um mecanismo de transio entre IPv6
e IPv4. utilizado como endereos de destino e origem em tunnel (encapsulamento
de um protocolo sobre outro) IPv6 sobre IPv4. representado por um endereo IPv6
cujos ltimos 32 bits so um endereo IPv4. Desta forma, anexando-se um prefixo
nulo (96 bits de zeros) a um endereo IPv4 (32 bits) obtm-se o seguinte formato:
0:0:0:0:0:0:192.168.30.1
ou no seu formato abreviado
::192.168.30.1
Abaixo mostrada a estrutura deste endereo.

Estrutura do endereo IPv6 compatible IPv4 Address.

11.4 Endereos Anycast


Esse tipo de endereo utilizado para identificar um grupo de interfaces pertencentes
a hosts diferentes. Um pacote destinado a um endereo Anycast enviado para um
das interfaces identificadas pelo endereo. Especificamente, o pacote enviado para
a interface mais prxima, de acordo com o protocolo de roteamento.
Um endereo do tipo Anycast no pode ser utilizado como endereo de origem de
um pacote IPv6. Este tipo de endereamento ser til na deteco rpida de um

Pgina 30

Linux System Administration

4Linux www.4linux.com.br

11.4 Endereos Anycast

determinado servidor ou servio. Por exemplo, poder ser definido um grupo de


servidores de DNS configurados com endereamento Anycast, assim um host ir
alcanar o servidor mais prximo utilizando este tipo de endereo.
Existe um prefixo mais longo desse mesmo endereo para cada endereo Anycast
atribudo que identifica a regio ao qual todas as interfaces pertencem. Abaixo
mostrada a estrutura bsica deste tipo de endereo.

Estrutura do endereo Anycast.

11.4.1 Endereo Multicast

Da mesma forma que o endereo Anycast, este endereo identifica um grupo de


interfaces pertencente a diferentes hosts mas um pacote destinado a um endereo
Multicast enviado para todas as interfaces que fazem parte deste grupo.
Um endereo do tipo Multicast Address um endereo IPv6, que indicado pelo prefixo FP, como visto na tabela III, FF00::/8 ou 11111111 em binrio. O segundo octeto
que se segue ao prefixo (FP = FF) define o tempo de vida (lifetime), os 4 primeiros
bits e o escopo do endereo Multicast, os ltimos 4 bits deste octeto. Um endereo
com lifetime permanente tem um parmetro de tempo de vida igual a "0", enquanto
um endereo temporrio tem o mesmo parmetro igual a "1". O escopo para este
tipo de endereo apresenta os valores j definidos de 1, 2, 3, 4, 5, 8 e "E"(os outros
esto reservados para o futuro, sendo que o escopo F j est reservado para ser
usado para mbito galctico) para identificar um host, enlace, site, organizao ou
um escopo global, respectivamente. Os outros 112 bits so utilizados para identificar
o grupo Multicast. Abaixo, visualizamos a estrutura de um endereo.

Linux System Administration

Pgina 31

11.4 Endereos Anycast

4Linux www.4linux.com.br

Estrutura do endereo Anycast.


Dentro dos endereos Multicast j reservados, podemos identificar alguns endereos
especiais utilizados para funes especficas (todos de lifetime permanente):
FF01::1 Indica todas as interfaces de escopo local, isto , somente as interfaces de um mesmo host.
FF02::1 Indica todas as interfaces de um escopo de enlace local, isto , todos
os hosts de um mesmo domnio de coliso.
FF01::2 Indica todos os roteadores dentro de um escopo local, isto , todas
as interfaces de um mesmo roteador.
FF02::2 Indica todos os roteadores dentro de um escopo de enlace local, isto
, todos os roteadores interligados por um mesmo enlace.
FF05::2 Indica todos os roteadores dentro de um escopo site local, isto ,
todos os roteadores que possuem um mesmo site ID.
FF02::1:FFxx:xxxx Endereo especial chamado de Solicited-Node Multicast

Pgina 32

Linux System Administration

4Linux www.4linux.com.br

11.5 Estrutura do endereo Anycast

Address, onde xx:xxxx representam os ltimos 24 bits do endereo IPv6 Unicast do host.
Solicited-Node Multicast Address
Esse tipo de endereo Multicast especial usado para mensagens de solicitao
de vizinho que auxilia o Neighbor Discovery Protocol e que ser visto com mais
detalhes na prxima seo. Esse endereo um grupo Multicast que corresponde a
um endereo IPv6 Unicast. A figura abaixo apresenta a estrutura desse endereo.

11.5 Estrutura do endereo Anycast


Comandos avanados de redes:
Configure uma rede para que as mquinas Debian e Red Hat fiquem em redes distintas: rede 192.168.200.0
Com a mscara 255.255.255.240, teremos dezesseis endereos por sub-rede, sendo
quatorze utilizveis, pois o primeiro reservado para rede e o ltimo pra broadcast.
subrede.
Ranges: 192.168.200.
0-15 64-79 128-143 192-207

Linux System Administration

Pgina 33

11.5 Estrutura do endereo Anycast

4Linux www.4linux.com.br

16-31 80-95 144-159 208-223


32-47 96-111 160-175 224-239
48-63 112-127 176-191 240-255
Para as mquinas Debian vamos utilizar o range 80-95

# ifconfig eth0 192.168.200.81 netmask 255.255.255.255.248

Para as mquinas CentOS vamos utilizar o range 240-255:

# ifconfig eth0 192.168.200.241 netmask 255.255.255.255.240

Agora na Debian tente pingar a mquina CentOS e vice-versa:

# ping 192.168.200.241

No possvel, pois as mquinas esto em sub-redes diferentes.


Agora no cliente CentOS adicione duas placas de rede uma pra cada subrede.

# ifconfig eth1 192.168.200.82 netmask 255.255.255.255.240

# ifconfig eth2 192.168.200.242 netmask 255.255.255.255.240

Pingue da mquina cliente CentOS os dois servidores:

# ping 192.168.200.241

# ping 192.168.200.81

Pgina 34

Linux System Administration

4Linux www.4linux.com.br

11.5 Estrutura do endereo Anycast

Agora na Debian tente pingar a mquina CentOS e vice-versa:

# ping 192.168.200.241

Ainda no possvel.
Para que as duas mquina possam se pingar, adicione o cliente Debian como rota:
No Server Debian:

# route add default gw 192.168.200.82

No Server CentOS:

# route add default gw 192.168.200.242

Agora na Debian tente pingar a mquina CentOS e vice-versa:

# ping 192.168.200.241

Novamente no server Debian tente pingar a mquina servidora CentOS e vice-versa:


Mesmo aps adicionarmos a rota para o gateway das redes ainda no possvel
ping-los.
Isto ocorre porque o linux por padro no encaminha pacotes, na mquina gateway
(cliente CentOS) ajuste o encaminhamento:
Visualize o bloqueio do encaminhamento de pacotes:

Linux System Administration

Pgina 35

11.6 ARP - Address Resolution Protocol

4Linux www.4linux.com.br

# cat / proc / sys / net / ipv4 / ip_forward

1 = habilitado 0 = desabilitado
Altere seu valor temporariamente:

# echo 1 > / proc / sys / net / ipv4 / ip_forward

Para ficar permanente edite o arquivo /etc/sysctl.conf e adicione a linha abaixo:

# vim / etc / sysctl . conf

net . ipv4 . ip_forward = 1

Salve o arquivo e execute o comando seguinte para validar a regra e ficar permanente:

# sysctl -p

11.6 ARP - Address Resolution Protocol


Address Resolution Protocol ou ARP um protocolo usado para encontrar um endereo da camada de enlace (Ethernet, por exemplo) a partir do endereo da camada
de rede (como um endereo IP). O emissor difunde em broadcast um pacote ARP
contendo o endereo IP de outro host e espera uma resposta com um endereo MAC
respectivo. Cada mquina mantm uma tabela de resoluo em cache para reduzir
a latncia e carga na rede. O ARP permite que o endereo IP seja independente do
endereo Ethernet, mas apenas funciona se todos os hosts o suportarem.

Pgina 36

Linux System Administration

4Linux www.4linux.com.br

11.6 ARP - Address Resolution Protocol

No servidor Debian:
Execute o comando ping para o endereo de broadcast:

# ping -b 192.168.200.95

O linux por padro no aceita pacotes icmp em broadcast: Visualize:

# cat / proc / sys / net / ipv4 / icmp_echo_ignore_broadcast

Para habilitar temporariamente:

# echo 0 > / proc / sys / net / ipv4 / icmp_echo_ignore_broadcast

Para habilitar permanentemente, adicione a linha a seguir no arquivo /etc/sysctl.conf:

# vim / etc / sysctl . conf

net . ipv4 . icmp_echo_ignore_broadcast = 0

Salve e releia as configuraes:

# sysctl -p

Execute o comando ping novamente para o endereo de broadcast:

# ping -b 192.168.200.95

Agora visualize a tabela ARP com o comando arp :

Linux System Administration

Pgina 37

11.6 ARP - Address Resolution Protocol

# arp

4Linux www.4linux.com.br

-n

Vamos configurar a rede IPV6 agora: Ao conectarmos o cabo de rede a placa de rede
j obtm um endereo IPV6, atravs do endereo de sua placa de rede. Cheque o
servidor Debian: Para visualizar o ipv6 configurado automaticamente:

# ifconfig eth0 | grep inet6

ou

# ip -6 addr show dev eth0

Cheque se o servidor CentOS est com o suporte a ipv6 habilitado:

# cat / etc / sysconfig / network :

NETWORKING_IPV6 = yes

Verifique se a placa de rede tem suporte habilitado:

# cat / etc / sysconfig / network - scripts / ifcfg - eth0

IPV6INIT = yes

Ping as mquinas pelo IPV6:

# ping6 -I eth0 fe80 ::72 f1 : a1ff : fec5 : fc1c

Onde:

Pgina 38

Linux System Administration

4Linux www.4linux.com.br

11.6 ARP - Address Resolution Protocol

-I -> especifica a interface eth0 -> a interface para o ping6 fe80::72f1:a1ff:fec5:fc1c


-> ipv6 a ser pingado
Configurando um endereo ipv6 na interface:

# ifconfig < interface > inet6 add < ipv6address >/ < prefixlength >

No servidor Debian:

# ifconfig eth0 inet6 add ::192.168.0.1/96

No servidor CentOS:

# ifconfig eth0 inet6 add ::192.168.0.2/96

Tente pingar entre as mquinas, a partir da CentOS:

# ping -I eth0 ::192.168.0.1

Para remover o endereo:

# ifconfig < interface > inet6 del < ipv6address >/ < prefixlength >

Remova de ambos: Debian:

# ifconfig eth0 inet6 del ::192.168.0.1/96

CentOS:

Linux System Administration

Pgina 39

11.7 Verificando portas abertas

4Linux www.4linux.com.br

# ifconfig eth0 inet6 del ::192.168.0.2/96

11.7 Verificando portas abertas


11.7.1 Comando netstat

O comando netstat exibe o status das conexes, tabelas de rotas, estatsticas da


interface, conexes mascaradas e participaes em multicast. Vamos ver alguns
exemplos do comando.
O comando netstat sem parmetros traduz os IPs para os nomes, por isso, desse
modo, ele demora bastante para gerar um resultado. Resolve-se esse problema
usando a opo -n:
O comando exibe por padro 4 colunas:
Proto - Protocolo que pode ser TCP, UDP, TCPv6, ou UDPv6
Local Address - Endereo local (seu PC)
Foreign Address - Endereo remoto
State - Exibe o estado da conexo de rede que podem ser CLOSE_WAIT, CLOSED,
ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED,
SYN_SEND, e TIME_WAIT.
Para saber mais sobre os estados das conexes consulte a RFC 793 http://tools.ietf.org/html/rfc793
-a : exibe todas as conexes e as portas TCP e UDP.

Pgina 40

Linux System Administration

4Linux www.4linux.com.br

11.7 Verificando portas abertas

-n : exibe os nmeros das portas ao invs do nome.


-p : exibe o PID (Process ID).
-l : exibe os sockets que estejam ouvindo.
-r : exibe a tabela de roteamento.
-t : exibe os sockets TCP.
-u: exibe os sockets UDP.
Podemos fazer uso de vrios parmetros juntos:
A opo -n exibe todas as portas e no formato numrico.

# netstat -n

As opes -t e -l exibem as conexes TCP e as portas disponveis respectivamente para cada conexo com a sua mquina:

# netstat - ntl

A opo -u exibe as conexes UDP:

# netstat - nul

A opo -p exibe o nmero do processo e o nome do programa responsvel.

# netstat - nltup

Linux System Administration

Pgina 41

11.7 Verificando portas abertas

4Linux www.4linux.com.br

A opo -a exibe tanto os socket que estejam ouvindo quanto aqueles que no
estejam. netstat -an
A opo -r exibe a rota do sistema. netstat -rn

11.7.2 Comando nmap


O Nmap um escaneador de hosts que usa recursos avanados para verificar o estado do seu alvo. Existem diversas formas e parmetros a serem informados durante
umavarredura.
Mtodos de Varredura
-sP
Ping scan: Algumas vezes necessrio saber se um determinado host ou rede est
n ar. Nmap pode enviar pacotes ICMP echo request para verificar se determinado
host ou rede est ativa. Hoje em dia, existem muitos filtros querejeitam os pacotes
ICMP echo request, ento envia um pacote TCP ACK paraa porta 80 (default) e
caso receba RST o alvo est ativo. A terceira tcnica envia um pacote SYN e espera
um RST ou SYN-ACK.
-sR
RCP scan: Este mtodo trabalha em conjunto com vrias tcnicas do Nmap. Ele
considera todas as portas TCP e UDP abertas e envia comandos NULL SunRPC,
para determinar se realmente so portas RPC. como se o comando rpcinfo -p
estivesse sendo utilizado, mesmo atravs de um firewall ( ou protegido por TCPwrappers ).
-sS
TCP SYN scan: Tcnica tambm conhecida como half-open, pois no abre uma

Pgina 42

Linux System Administration

4Linux www.4linux.com.br

11.7 Verificando portas abertas

conexo TCP completa. enviado um pacote SYN, como se ele fosse uma conexo
real e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, aporta est
aberta, enquanto um como resposta indica que a porta est fechada. Avantagem
dessa abordagem que poucos iro detectar esse scanning de portas.
- sT
TCP connect() scan: a tcnica mais bsica de TCP scanning. utilizada achamada
de sistema (system call) connect() que envia um sinal as portas ativas.Caso a porta
esteja aberta recebe como resposta connect(). um dos scan mais rpidos, porm
fcil de ser detectado.
-sU
UDP scan: Este mtodo utilizado para determinar qual porta UDP est aberta em
um host. A tcnica consiste em enviar um pacote UDP de 0 byte para cada porta
do host. Se for recebido uma mensagem ICMP port unreachable ento a porta est
fechada, seno a portapode estar aberta. Para variar um pouco, a Microsoft ignorou
a sugesto da RFC e com isso a varredura de mquinas Windows muito rpida.
-sV
Version detection: Aps as portas TCP e/ou UDP serem descobertas por algum dos
mtodos, o nmap ir determinar qual o servio est rodando atualmente. Oarquivo
nmap-service-probes utilizado para determinar tipos de protocolos,nome da aplicao, nmero da verso e outros detalhes
-O
Ativa a identificao do host remoto via TCP/IP. Ir apresentar verso do SistemaOperacional e tempo ativo

p < lista_de_portas >

Linux System Administration

Pgina 43

11.8 Comando tcpdump

4Linux www.4linux.com.br

Especifica quais portas devem ser verificadas na varredura. Por default, todas asportas entre 1 e 1024 so varridas.
-n
No ir resolver nome de hosts a serem varridos.
-v
Modo verbose. Mostra tudo o que est se passando.
Na mquina Debian:
Cheque o sistema operacional utilizado:

# nmap -v -n -O localhost

Cheque as portas abertas:

# nmap -v - sT - sU localhost

No servidor CentOS: Cheque em que porta o servio ssh est escutando:

# nmap -sV localhost

11.8 Comando tcpdump


O comando tcpdump mostra o trfego de uma rede. Ele exibe a descrio do contedo de pacotes numa interface de rede que case com uma expresso booleana.

Pgina 44

Linux System Administration

4Linux www.4linux.com.br

11.8 Comando tcpdump

Sintaxe: tcpdump <opes> <dispositivo> <expresso>


Opes:
-A Imprime cada pacote em cdigo ASCII.
-c Termina a execuo aps receber n pacotes.
-D Exibe a lista das interfaces de rede disponveis no sistema e que o tcpdump
capaz de capturar pacotes. Esta opo associa um nmero a cada interface o qual
pode ser usado no lugar do nome da mesma, ex: 1 - eth0, 2 eth1, 3 any, 4 lo
(loopback);
-i Recebe como parmetro a interface ou o nmero associado a ela. Se especificado
any captura pacotes de todas as interfaces porm, sem ser no modo promscuo.
-n No converte endereos em nomes. (endereos de host, nmero de portas,
etc.)
-r L os pacotes a partir de um arquivo (que tenha sido criado com a opo -w).
-s Define o tamanho de cada pacote a ser capturado. interessante utilizar o valor
1500 para que seja examinado o maior tamanho possvel de pacote.
-t No exibe o timestamp em cada linha.
-v Exibe a sada com mais detalhes.
-vv Exibe a sada com mais detalhes ainda.
-vvv Exibe a sada com informaes ainda mais detalhadas.
-w Escreve os pacotes em um arquivo que pode ser lido posteriormente com a opo
-r.

Linux System Administration

Pgina 45

11.8 Comando tcpdump

4Linux www.4linux.com.br

-x Exibe o contedo do pacote no formato hexadecimal.


-X Exibe o contedo do pacote nos formatos hexadecimal e ASCII.
expresso Seleciona quais pacotes sero exibidos. Se no for definida nenhuma expresso todos os pacotes sero exibidos. Do contrrio somente os pacotes com os
quais a expresso coincidir sero exibidos. A expresso consiste em uma ou mais
premissas. As premissas usualmente consistem em um ID (nome ou nmero) precedido por um ou mais qualificadores.Existem trs diferentes tipos de qualificadores:
type (tipo) Especifica host, net, port e portrange. Ex: host dragon, net 192.168,
port 22, portrange 5000-5777.
dir (direo) Indica a direo dos pacotes a serem capturados. Podem ser: src, dst,
src or dst e src e dst, que significam respectivamente origem, destino, origem ou
destino e origem e destino. Se nada for definido assume origem ou destino.
proto (protocolo) Define qual o tipo de protocolo ser exibido. Os protocolos possveis
so: ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp e udp. Exemplos:
Acesse um site e monitore com tcpdump:

# tcpdump -i eth0 -n port 80

Onde:
-i -> interface, -n -> no resolve nomes, port -> identifica a porta de monitoramento.
Acesse o servidor CentOS por ssh e monitore com tcpdump:

# tcpdump -i eth0 -n port 50000

Pgina 46

Linux System Administration

Servio de Rede Telnet


Antes de partir direto para o acesso remoto via telnet, preciso explicar uma teoria importante j que vai ser trabalhado configurao de servios como telnet, ssh,
NFS.
Os servios de rede podem ser divididos em trs tipos bsicos:
xinetd
portmap
stand alone
Os servios tipo [x]inetd so aqueles que dependem do superdaemon de rede inetd
InterNET daemon. A verso mais atual do inetd o xinetd eXtended InterNET
daemon. A funo de um superdaemon apenas controlar alguns servios que no
tero daemon prprio.
Um daemon um processo servidor que roda em segundo plano esperando requisies. Quando se fala de inetd e xinetd, fala-se do mesmo superdaemon, mas em
algumas distros (como o Debian) ainda o inetd. S que o xinetd possui alguns
recursos a mais como controle de acesso, capacidade de fazer logs e determinar
horrios para que o servio esteja disponvel.
Esse superdaemon fica escutando nas portas que os servios controlados por ele
trabalham carregando o programa apropriado quando chega uma requisio na determinada porta. Exemplos de servios tipo inetd: telnet, FTP, POP3 etc. Ao longo

47

11.9 Telnet TELetype NETwork

4Linux www.4linux.com.br

do tempo, alguns dos servios que eram controlados pelo inetd passaram a operar
como stand alone a fim de contornar problemas associados ao inetd.
Os servios stand alone so aqueles em que cada tipo de servidor possui seu daemon prprio. Esta forma de trabalho preferida hoje em dia pois possibilita um maior
controle sobre cada servio sem separado. Exemplos de servios que operam dessa
forma: SSH, httpd (daemon do Apache), FTP, dentre outros.
Os servios tipo portmap so aqueles que no possuem porta especifica para operar,
como por exemplo, o NIS e o NFS. Estes servios enviam uma chamada RPC
Remote Procedure Call para a mquina servidora causando a execuo de uma
determina subrotina. Dessa forma quando um cliente faz a requisio de NFS a
um servidor, ele est enviando um RPC tipo NFS e que quando chegar ao servidor
ser tratada como tal, carregando a subrotina apropriada para enviar a resposta ao
cliente.

11.9 Telnet TELetype NETwork

Telnet um protocolo que pode ser utilizado tanto localmente quanto na internet. O
telnet considerado muito inseguro e se usar altamente desencorajado. Ao longo
dos anos vm sendo descobertas diversas vulnerabilidades em suas implementaes e, provavelmente, h muitas outras que ainda no foram determinadas.

Por padro, os dados enviados no so criptografados incluindo usurios e


senhas
No possui esquema de autenticao que possibilite garantir que a comunicao est se dando entre as partes envolvidas facilitando ataques do tipo manin-the-middle. Essas falhas tm feito cair a utilizao do protocolo telnet em
favor do SSH.

Pgina 48

Linux System Administration

4Linux www.4linux.com.br

11.10 Instalao e configurao do Telnet

Atualmente, o telnet ainda bastante utilizado para realizar configuraes em equipamentos de rede especificos e tambm para testar o funcionamento de servios
como um servidor de POP3 eliminando a necessidade de programas clientes especializados. O telnet controlado pelo superdaemon do Linux (inetd ou xinetd). Para
que possa saber mais sobre as portas, basta dar uma olhadinha depois no seguinte
arquivo:

# cat / etc / services

11.10 Instalao e configurao do Telnet


Caso queira testar o telnet, a primeira coisa instalar o servidor e o cliente:

No Debian :

# aptitude install telnet telnetd openbsd - inetd

No CentOS :

# yum install telnet telnet - server xinetd

A configurao de um servidor telnet, na realidade, feita configurando o [x]inetd.


No Debian, o inetd utilizado, em sistemas como o Red Hat o sistema utilizado
xinetd.
No Debian:
Verifique que a linha de configurao do telnet no est comentada no arquivo de
configurao do inetd, se estiver comentada, ento descomente:

Linux System Administration

Pgina 49

11.10 Instalao e configurao do Telnet

4Linux www.4linux.com.br

# vim / etc / inetd . conf

telnet stream tcp nowait telnetd / usr / bin / tcpd / usr / sbin / in . telnetd

Descrio da opes:

telnet: nome do servidor, como est registrado em /etc/services;


stream: tipo de socket usado pelo protocolo, possveis valores so: stream,
dgram, raw, rdm e seqpacket; tcp tipo do protocolo usado;
nowait/wait aguardar/no aguardar : significativo para tipos de soquete de
datagrama (dgram), outros tipos de socket usam o valor nowait.
telnetd: usurio e grupo que iro controlar o processo de servidor;
/usr/sbin/tcpd: o executvel para o programa TCP Wrappers
/usr/sbin/in.telnetd: o programa que ir lidar com as informaes da conexo.

Se a linha do telnet no estiver comentada significa que o servio j est habilitado.


Para garantir que o telnet seja iniciado, reinicie o daemon do inetd. Para reiniciar o
daemon do inetd:

# service openbsd - inetd stop

# service openbsd - inetd start

Faa agora uma check list para verificar se o servio est funcionando:

# netstat - anp | grep 23

tcp 0 0 0.0.0.0:23 0.0.0.0:* OU A 2922/ inetd

Pgina 50

Linux System Administration

4Linux www.4linux.com.br

11.10 Instalao e configurao do Telnet

Se a porta estiver em estado de LISTEN ou OUA significa que ela est ouvindo, ou
seja, est disponvel. Voc pode ver se o processo do telenet est ativo usando o
fuser:

# fuser -v 23/ tcp

23/ tcp : root 2922 F .... inetd

Para fazer um acesso remoto em um servidor que tem o telnet habilitado muito
simples:

# telnet < ip_do_servidor >

No CentOS:
Em um sistema xinet haver um arquivo de configurao para cada tipo de servio e
eles estaro no subdiretrio xinetd.d no diretrio /etc

# vim / etc / xinetd . d / telnet

disable = no

flags

socket_type = stream

wait

= no

user

= root

server

log_on_failure

10

= REUSE

= / usr / sbin / in . telnetd


+= USERID

Para reiniciar o daemon do xinetd:

# service xinetd restart

Linux System Administration

Pgina 51

4451
Linux System Administration

www.4linux.com.br

Contedo
Data e Hora do Sistema e Servidor de NTP

12.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12.1.1 NTP -Network Time Protocol . . . . . . . . . . . . . . . . . . . .

12.1.2 Organizao em Strata . . . . . . . . . . . . . . . . . . . . . . .

12.1.3 Ajuste Manual de Horrio . . . . . . . . . . . . . . . . . . . . . .

12.1.4 Trabalhando com NTP nos Clientes . . . . . . . . . . . . . . . .

12.1.5 Configurao do Servidor de NTP . . . . . . . . . . . . . . . . .

12.1.6 Monitorando nossa conexo NTP: . . . . . . . . . . . . . . . . . 14


12.2 Acertando horrio de vero . . . . . . . . . . . . . . . . . . . . . . . . . 19
12.2.1 Configurando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Rsyslog

21

12.3 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22


12.3.1 Organizao do Rsyslog . . . . . . . . . . . . . . . . . . . . . . . 22
12.4 Configurando o sistema de Logs no cliente (Debian): . . . . . . . . . . . 26
12.4.1 Logs Centralizados, configurando um servidor de Logs (Server
Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12.4.2 Logs Centralizados, configurando um servidor de Logs (Server
CentOS)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

12.4.3 Rotao de Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Data e Hora do Sistema e Servidor de


NTP
12.1 Introduo Terica
Manter o sistema com o horrio correto uma tarefa muito importante e que muitas
vezes negligenciada pelos administradores. Sem o horrio ajustado corretamente,
fica difcil agendar tarefas a serem executadas periodicamente, ou at mesmo fazer
a leitura dos logs e determinar em que horrio um determinado evento ocorreu. Esse
detalhe torna-se ainda mais importante quando temos um servidor de e-mail rodando
na mquina. Imagine um e-mail que pode ser enviado a/de qualquer parte do mundo
e, somando a diferena de fuso horrio, um servidor com a hora errada, fica muito
difcil determinar a hora na qual o e-mail foi enviado.
H basicamente duas formas de ajustar as configuraes de horrio do sistema:
manualmente, utilizando os comandos date e hwclock ou usando o servio de
NTP - Network Time Protocol.
O comando date utilizado para mostrar ou ajustar a data e hora do sistema.
Visualizar a hora:

# date

Acertar data e hora:

12.1 Introduo Terica

4Linux www.4linux.com.br

# date mmddHHMMYYYY

Onde:
m ms , d dia, H hora, M minuto, Y ano
EX: dia 15 de julho de 1983 s 13:15

# date 071513151983

Outra forma :

# date -s "07/15/1983 13:15"

Para mudar somente a hora:

# date -s "12:01"

Para mudar somente a data:

# date -s " mm / dd / YYYY "

Repare que ao mudar somente a data, alterado o horrio para 00:00.


J o comando hwclock utilizado para mostrar ou ajustar a hora da BIOS da mquina sendo conhecido como RTC - Real Time Clock. Este o relgio que fica continuamente em funcionamento mesmo que a mquina esteja desligada; de forma que

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

o horrio esteja atualizado da prxima vez que a mquina for religada. Sua forma de
utilizao bastante simples:
Visualizar hora da Bios:

# hwclock

Ajustar o horrio da BIOS utilizando o horrio do sistema:

# hwclock -w

Ou

# hwclock -- systohc

Ajustar o horrio do sistema utilizando o horrio da BIOS:

# hwclock -s

Ou

# hwclock -- hctosys

Ajustar o relgio da BIOS:

# hwclock -- set -- date =" mm / dd / YY HH : MM : ss "

Outro ponto importante no que diz respeito s configuraes de data e hora do sistema a configurao da "timezone", ou seja, o fuso horrio em que a mquina
se encontra. Essa configurao pode ser efetuada utilizando os comandos dpkgreconfigure tzdata" (especfico do Debian) e "system-config-date" em distribuies como CentOS, Suse e Gentoo.

Linux System Administration

Pgina 5

12.1 Introduo Terica

4Linux www.4linux.com.br

12.1.1 NTP -Network Time Protocol

O protocolo de sincronizao de horrios "NTP"foi desenvolvido a fim de possibilitar


que qualquer computador ligado internet possa ajustar sua data e hora automaticamente utilizando um servidor de hora preciso. O NTP um servio na camada
de aplicao que utiliza o protocolo UDP na camada de transporte fazendo uso da
porta 123 para realizar a sincronizao de horrios.

O NTP, criado em 1985, um dos protocolos de internet mais antigos ainda em uso e
pode atingir uma preciso de aproximadamente 200s(duzentos microssegundos).

12.1.2 Organizao em Strata

A hierarquia do NTP dividida em vrios nveis, o conjunto deles denominado


"strata"e cada um deles corresponde a um "stratum". A raiz desse sistema o denominado stratum 0 e que corresponde aos relgios nucleares espalhados pelo
mundo, aos quais esto conectados os servidores de "stratum 1", ou seja, so eles
que fazem o processamento da informao recebida do stratum 0.

Conectados aos "stratum 1"h o "stratum 2"que em geral esto conectados a mais
de um servidor de stratum 1 e determinam de fato qual a hora padro com base
nos dados recebidos dos "stratum 1"utilizando o algoritmo do NTP.

Os "stratum 2"responde ao "stratum 3"que responde ao "stratum 4"e assim por diante
at atingir, no mximo, 16 nveis. Uma representao esquemtica dessa estrutura
pode ser vista na figura.

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

A menos que estejamos montando um servidor para ser um "stratum 1", 2 ou 3,


nunca devemos utilizar os servidores "stratum 1"ou 2 para sincronizarmos nossos
servidores; mas sim acessar um "stratum 3". Dessa forma deixamos os nveis mais
baixos para as mquinas que realmente precisam acess-los.

Ainda assim, nossa poltica de acesso aos "stratum 3"deve ser tambm bastante
criteriosa. Se nossa rede possu diversas mquinas, no h sentido em fazermos
todas elas se sincronizarem em um "stratum 3", mas sim escolher uma de nossas
mquinas para ser um stratum 4 e nossos clientes realizarem a sincronizao a
partir dela.

Sendo assim, vamos proceder com a configurao dos servidores e dos clientes.

Linux System Administration

Pgina 7

12.1 Introduo Terica

4Linux www.4linux.com.br

12.1.3 Ajuste Manual de Horrio


Verifique qual a sua localizao geogrfica no CentOS:

# cat / etc / sysconfig / clock

Verifique qual a sua localizao geogrfica no Debian:

# cat / etc / timezone

Caso esteja com um dos fusos horrios incorreto, corrija-o com um dos comandos:
CentOS:

# rm -rf / etc / localtime

# cd / usr / share / zoneinfo / America

# ln Sao_Paulo / etc / localtime

OU

# system - config - date

Debian:

# dpkg - reconfigure tzdata

Verifique a data e hora do sistema e da BIOS:

# date

# hwclock

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

12.1.4 Trabalhando com NTP nos Clientes


Instalar o cliente NTP no Debian:

# aptitude install ntpdate

No CentOS o comando ntpdate j vem instalado com o pacote "ntp".


Para as mquinas da rede que forem os clientes NTP, possvel fazer a sincronizao
do horrio com o servidor por meio do comando "ntpdate", assim:

# ntpdate [ ip - do - servidor - na - rede ]

No Debian, caso no tenha um servidor NTP na rede, podemos simplesmente reiniciar o "daemon"do "ntpdate":

# ntpdate - debian

O comando utilizar o(s) servidor(es) configurado(s) no arquivo /etc/default/ntpdate.

12.1.5 Configurao do Servidor de NTP


Agora que aprendemos a ajustar manualmente a hora do sistema e da BIOS, vamos
utilizar o mtodo mais preciso, ou seja, criar a estrutura de servidores e clientes de
NTP.
O servidor NTP provido pelo pacote "ntp", tanto no Debian quanto no CentOS.
Configure o servidor CentOS para fornecer as horas:

Linux System Administration

Pgina 9

12.1 Introduo Terica

4Linux www.4linux.com.br

No CentOS verifique se o pacote ntp est instalado:

# rpm -q ntp

Caso no esteja instalado, instale-o:

# yum install ntp

Vamos configurar o nosso servidor de NTP. Abra o arquivo de configurao:

# vim / etc / ntp . conf

Vamos precisar obter endereos de servidores oficiais de "NTP", para isso, podemos
acessar o site http://www.ntp.br, que a pgina do projeto NTP. Logo na pgina inicial
haver uma lista de servidores pblicos, mantidos pelo projeto ntp.br.
sempre aconselhvel utilizar mais de um servidor para que, caso ocorra algum erro
em algum deles, o nosso sistema possa continuar com a configurao correta.
No arquivo de configurao devemos localizar a linha para configurao do servidor
com o qual sincronizaremos a nossa mquina:

Os parmetros adicionais "iburst"fazem com que sejam enviados oito pacotes em vez
de apenas um durante a sincronizao inicial e o parmetro "prefer"faz com que a
resposta de um servidor preferido seja descartada se ela diferir muito das respostas
dos demais servidores, caso contrrio, ser utilizado sem qualquer considerao
para outras respostas.

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

Vamos adicionar a linha especificando quais "hosts"podero realizar sincronizao


com a nossa mquina:

restrict 127.0.0.1

restrict 192.168.200.0 mask 255.255.255.0

disable auth

A primeira restrio est liberando requisies vindas do "localhost"e a segunda da


nossa rede. Foi desabilitada a autenticao por chaves tambm. Alguns arquivos
importantes no Debian:
statsdir /var/log/ntpstats/ diretrio onde vo ficar os logs de estatsticas do
meu servidor NTP.
Os principais logs do ntp so o loopstats, que apresenta as informaes do loop
local, ou seja, as variveis do sistema, e o peerstats, que apresenta as informaes
de cada associao.
loopstats
Seu formato o seguinte:
day, second, offset, drift compensation, estimated error, stability, polling interval dia, segundo, deslocamento, escorregamento, erro estimado, estabilidade,
e intervalo de consulta
Exemplo:

54475 73467.286 -0.000057852 31.695 0.000015298 0.006470 4

54475 73548.286 -0.000084064 31.688 0.000017049 0.006471 4

54475 73682.286 -0.000077221 31.678 0.000016130 0.006988 4

54475 73698.286 -0.000077448 31.677 0.000015103 0.006550 4

54475 73761.286 -0.000083230 31.672 0.000014275 0.006376 4

Linux System Administration

Pgina 11

12.1 Introduo Terica

4Linux www.4linux.com.br

54475 73889.286 -0.000059100 31.665 0.000015846 0.006487 4

54475 74004.285 -0.000045825 31.660 0.000015548 0.006324 4

54475 74086.286 -0.000038670 31.657 0.000014762 0.006011 4

54475 74156.285 -0.000052920 31.653 0.000014699 0.005759 4

10

54475 74251.285 -0.000053223 31.649 0.000013766 0.005651 4

11

54475 74268.286 -0.000062545 31.648 0.000013292 0.005298 4

peerstats
Seu formato o seguinte:
day, second, address, status, offset, delay, dispersion, skew (variance)dia, segundo, endereo, estado, deslocamento, atraso, disperso, varincia
Exemplo:

54475 34931.294 200.20.186.75 9074 0.009958844 0.008390600


0.000390895 0.000132755

54475 34931.301 200.192.232.43 f0f4 0.000348814 0.015550265


0.001120348 0.000023645

54475 34932.303 200.189.40.28 f0f4 0.000810708 0.017701986


0.188995109 0.000043145

54475 34934.286 200.160.0.28 f0d4 0.000332344 0.000271801


0.000620139 0.000037467

54475 34935.286 200.160.7.165 9614 0.000003557 0.000216088


0.000826694 0.000022076

54475 34935.301 200.19.119.69 9334 0.002667663 0.015740055


0.001858731 0.001733883

54475 34935.303 200.186.125.200 f034 0.004857359 0.016764821


0.000719509 0.000303380

54475 34936.301 200.189.40.42 f0b4 -0.000738445 0.015510523


0.000390094 0.000039731

54475 34936.301 200.19.119.120 9434 0.000009164 0.015505927


0.000447001 0.000030319

10

54475 34938.301 200.192.232.28 f0f4 0.000363627 0.015584684

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

0.063231626 0.000020460
54475 34939.286 200.160.0.8 f054 0.000368748 0.000334013

11

0.000484437 0.000013953
54475 34939.286 200.160.0.43 f034 0.000325615 0.000260201

12

0.000849475 0.000039634

A interpretao dos arquivos de log fica bastante facilitada com o uso de grficos. E
uma vez que se conhece seu formato fica muito fcil ger-los. Vrias ferramentas
podem ser utilizadas para isso, mas recomenda-se o uso do "gnuplot". Foge do
escopo desse site dar informaes detalhadas sobre a instalao ou uso dessa ferramenta, ento consulte http://www.gnuplot.info/ para mais informaes. O software
funciona em GNU/Linux, FreeBSD, Windows e outros sistemas.
Segue um exemplo de uso, no GNU/Linux com interface grfica, que permitir aos
interessados entender o processo:
Cria-se um arquivo chamado deslocamento.txt com o seguinte contedo:

# set term gif

# set output "| display "

# set title " Deslocamento "

# plot "/ var / log / ntpstats / loopstats " using 2:3 t " deslocamento " with
linespoints lt rgb "# d0d0d0 ";

Observe-se que o comando plot faz referncia ao arquivo loopstats, e usa suas colunas 2 e 3, onde: 2 representa o tempo, no dia, em segundos; e 3 representa o
deslocamento, em milisegundos.
Executa-se o seguinte comando:

gnuplot deslocamento . txt

E pronto, como a sada esta redirecionada para display, v-se o gif gerado na tela:

Linux System Administration

Pgina 13

12.1 Introduo Terica

4Linux www.4linux.com.br

driftfile /var/lib/ntp/ntp.drift arquivo onde ficar configurado o valor estimado de


erro de frequncia entre o relgio do sistema e o servidor de sincronia de "stratum"anterior.

12.1.6 Monitorando nossa conexo NTP:


O ntp traz consigo algumas ferramentas que permitem monitorar seu funcionamento.
A mais importante o ntpq. A seguir so apresentados dois comandos do ntpq que
permitem visualizar algumas variveis importantes do ntp:

# ntpq -c pe

Uma reposta normal se parece com essa:

remote

refid

st t when poll reach

delay

offset

jitter
2

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

*a. ntp . br
-1.259

200.20.186.76

57

64

377

9.184

2 u

55

64

377

18.036

4.413

+c. ntp . br
-0.939

2 u

4.398

+b. ntp . br
0.391

200.160.7.186

12.1 Introduo Terica

200.160.7.186

2 u

51

64

377

36.675

3.361

Onde:
A primeira coluna apresenta os tally codes, que significam o seguinte: * -> o system
peer, par do sistema, ou principal fonte de sincronizao;
o -> o system peer, par do sistema, ou principal fonte de sincronizao, mas apenas
se a fonte for o sinal de um pulso por segundo (PPS);
+ -> candidate, ou um relgio sobrevivente, indica que uma boa fonte de sincronizao e que est sendo utilizada no momento, juntamente com o par do sistema,
para ajustar o relgio local;
- -> outlyer, ou relgio afastado, indica que uma boa fonte de sincronizao, mas
no sobreviveu ao algoritmo de agrupamento, ou seja, no momento h opes melhores e ela no est sendo utilizada;
x -> falseticker, ou relgio falso, indica que no uma boa fonte de sincronizao,
foi descartada j no algoritmo de seleo de relgios por discordar muito das outras
fontes;
. -> excess, excesso: a fonte foi rejeitada por no estar entre as 10 melhores;
(espao em branco) -> reject, relgio rejeitado porque no responde, porque h
um loop na sincronizao, ou porque ele apresenta uma distncia na sincronizao
enorme.
A seguir so apresentados os significados das demais colunas:

Linux System Administration

Pgina 15

12.1 Introduo Terica

4Linux www.4linux.com.br

remote = Nome ou IP da fonte de tempo;


refid = a referncia (par do sistema) qual o servidor de tempo remoto est sincronizado;
st = o estrato da fonte de tempo;
when = quanto segundos se passaram desde a ltima consulta essa fonte de
tempo;
poll = de quantos em quantos segundos essa fonte consultada;
reach = um registrador de 8 bits que vai girando para a esquerda representado na
forma octal, que mostra o resultado das ltimas 8 consultas fonte de tempo: 377
= 11.111.111 significa que todas as consultas foram bem sucedidas; outros nmero
indicam falhas, por exemplo 375 = 11.111.101, indica que a penltima consulta falhou;
delay = atraso, ou tempo de ida e volta, em milissegundos, dos pacotes at essa
fonte de tempo;
offset = deslocamento, ou quanto o relgio local tem de ser adiantado ou atrasado,
em milissegundos, para ficar igual ao da fonte de tempo;
jitter = a variao, em milissegundos, entre as diferentes medidas de deslocamento
para essa fonte de tempo.
Enquanto o "ntpq -c pe" apresenta as variveis relacionadas a cada associao,
ou seja, a cada fonte de tempo, o "ntpq -c rl" apresenta as variveis (globais) do
sistema.

# ntpq -c rl

Sada do comando "ntpq -c rl":

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

12.1 Introduo Terica

assID =0 status =0644 leap_none , sync_ntp , 4 events , event_peer /


strat_chg ,

version =" ntpd 4.2.4 p8@1 .1612 - o Tue Apr 19 07:08:18 UTC 2011 (1) " ,

processor = " x86_64 " , system = " Linux /2.6.32 -28 - generic " , leap =00 ,

stratum =3 , precision = -20 , rootdelay =10.710 , rootdispersion =18.517 ,

peer =15790 , refid =200.160.0.8 ,

reftime = d25da5f5 .4450 ebec

clock = d25da712 .870 b54e3

offset = -0.550 , frequency =35.515 , jitter =8.471 , noise =0.604 ,

stability =0.111 , tai =0

Thu , Nov
Thu , Nov

3 2011 21:44:53.266 , poll =6 ,


3 2011 21:49:38.527 , state =4 ,

As mais importantes esto indicadas a seguir:


version -> verso do ntp;
stratum -> estrato do servidor local;
precision -> preciso indicada com o expoente de um nmero base 2;
rootdelay -> atraso ou tempo de ida e volta dos pacotes at o estrato 0, em milissegundos;
rootdispersion -> erro mximo da medida de offset em relao ao estrato 0, em
milissegundos;
refid -> o par do sistema, ou principal referncia;
offset -> deslocamento, quanto o relgio local tem de ser adiantado ou atrasado
para chegar hora certa (hora igual do estrato 0);
frequency -> erro na frequncia do relgio local, em relao frequncia do estrato
0, em partes por milho (PPM).

Linux System Administration

Pgina 17

12.1 Introduo Terica

4Linux www.4linux.com.br

Vamos determinar se a sincronizao est funcionando corretamente. Para isso vamos alterar a hora do sistema e depois iniciar o servio de NTP:

# date 010101012009

2
3

# / etc / init . d / ntpd stop

4
5

# / etc / init . d / ntpd start && tail -f / var / log / messages

Agora, verifique a hora do sistema novamente e veja se funcionou:

# date

Configurando o client Debian para sincronizar com o servidor:

# aptitude install ntp

Adicione o servidor a lista de servidores e comente os demais:

# vim / etc / ntp . conf

2
3

# adicione na linha 15 e comente os outros server :

server 192.168.200.100 iburst prefer

Vamos determinar se a sincronizao est funcionando corretamente. Para isso vamos alterar a hora do sistema e depois iniciar o servio de NTP:

# date 010101012009

# / etc / init . d / ntp stop

# / etc / init . d / ntp start && tail -f / var / log / syslog

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

12.2 Acertando horrio de vero

Agora, verifique a hora do sistema novamente e veja se funcionou:

# date

12.2 Acertando horrio de vero


O Decreto n 6.558/08 (DOU de 09/09/2008), determina que o horrio de vero ser
fixo no Brasil e comear sempre a partir da zero hora do terceiro domingo do ms
de outubro de cada ano, at zero hora do terceiro domingo do ms de fevereiro do
ano subsequente.
A nica exceo para a regra relacionada ao encerramento do horrio de vero
que, se porventura coincidir com o Carnaval, dever ser adiado em uma semana.

12.2.1 Configurando
Verifique se existe no diretrio /usr/share/zoneinfo/Brazil algum arquivo que contenha
informaes relativas a outros horrios de vero (DICA: geralmente um arquivo com
extenso .zic).
a) Se no existir nenhum arquivo com tais informaes ento crie um novo, de nome
"verao.zic"por exemplo, no diretrio /usr/share/zoneinfo/Brazil/. Este arquivo dever
conter as seguintes linhas:

# cd / usr / share / zoneinfo / Brazil

# vim verao . zic

Linux System Administration

Pgina 19

12.2 Acertando horrio de vero

4Linux www.4linux.com.br

Rule Brazil

2012

only

Oct

20

00:00 1 S

Rule Brazil

2013

only

Feb

16

00:00 0 -

Zone Brazil / East -3:00 Brazil BR % sT

Uma vez feitos os devidos ajustes no arquivo verao.zic execute o comando zic:

# cd / usr / share / zoneinfo / Brazil /

# zic verao . zic

Neste caso em particular o comando atualizar o arquivo East.


Para verificar se as configuraes corretas foram feitas, execute o comando "zdump",
conforme segue abaixo:

# zdump -v / usr / share / zoneinfo / Brazil / East | grep 201[23]

Voc dever obter uma resposta como a que segue abaixo:

Brazil / East

Sun Oct 21 02:59:59 2012 UTC = Sat Oct 20 23:59:59 2012

BRT isdst =0 gmtoff = -10800


2

Brazil / East

Sun Oct 21 03:00:00 2012 UTC = Sun Oct 21 01:00:00 2012

BRST isdst =1 gmtoff = -7200


3

Brazil / East

Sun Feb 17 01:59:59 2013 UTC = Sat Feb 16 23:59:59 2013

BRST isdst =1 gmtoff = -7200


4

Brazil / East

Sun Feb 17 02:00:00 2013 UTC = Sat Feb 16 23:00:00 2013

BRT isdst =0 gmtoff = -10800

Note que em "Sat Oct 20 23:59:59 2012"o sistema ainda no est no Horrio de
Vero (indicao BRT). No segundo seguinte as modificaes do Horrio de Vero
entram em vigor, adiantando o localtime em uma hora: "Sun Oct 21 01:00:00 2012

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

12.2 Acertando horrio de vero

BRST"(O horrio mostrado ao usurio passar para 1 da manh, e no para meianoite, mostrando o adiantamento do horrio).
Em "Sat Feb 16 23:59:59 2012 BRST", o Horrio de Vero terminar no segundo
seguinte, com o localtime sendo ento atrasado em 1 hora: "Sat Feb 16 23:00:00
2012 BRT"(o horrio mostrado ao usurio voltar para s 23:00).
Cheque trocando a data:

# date -s 10/20/2012 23:59:30

Cheque novamente:

# date -s 02/16/2013 23:59:30

O horrio tem de ser atualizado automaticamente quando for fazer 00:00.

Linux System Administration

Pgina 21

Rsyslog
12.3 Introduo Terica
A necessidade de registro das atividades dos usurios e servios dos sistemas
notoriamente, muito importante para Administradores de Sistemas. A norma NBR
ISO/IEC 27002 recomenda no item 10.10.1 as seguintes caractersticas de um sistema de logs:
1. Identificao dos usurios;
2. Datas e horrios de entrada e sada de terminais;
3. Hostname ou endereo IP, para servios acessados via rede;
4. Registro das tentativas de acessos aceitos e rejeitados.

12.3.1 Organizao do Rsyslog


Cada linha do arquivo /etc/rsyslog.conf organizada pela seguinte sintaxe:

# facilidade . n vel

destino

Vamos entender o que cada um desses itens:

22

4Linux www.4linux.com.br

12.3 Introduo Terica

facilidade - usada para especificar que tipo de programa est enviando a mensagem.
nvel - Especifica o nvel de gravidade da mensagem.
destino - Especifica para onde deve ser mandada a mensagem de log.

Vamos entender cada uma delas.

Facilidades do Rsyslog

auth - Mensagens de segurana/autorizao.


authpriv - Mensagens de segurana/autorizao (privadas).
cron - Servios de agendamento (cron e at).
daemon - Outros servios do sistema que no possuem facilidades especficas.
ftp - Servio de ftp do sistema.
kern - Mensagens do kernel.
lpr - Subsistema de impresso.
Local0-7 - Reservados para uso local.
mail - Subsistema de e-mail.
news - Subsistema de notcias da USENET

Linux System Administration

Pgina 23

12.3 Introduo Terica

4Linux www.4linux.com.br

.
security - Sinnimo para a facilidade auth.
rsyslog - Mensagens internas geradas pelo rsyslog.
user - Mensagens genricas de nvel do usurio.
uucp- Subsistema de UUCP.
* - Confere com todas as facilidades.

Nveis

emerg - O sistema est inutilizvel.


alert - Uma ao deve ser tomada imediatamente para resolver o problema.
crit - Condies crticas.
err - Condies de erro.
warning - Condies de alerta.
notice - Condio normal, mas significante.
info - Mensagens informativas.
debug - Mensagens de depurao.
* - Confere com todos os nveis.

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

12.3 Introduo Terica

none - Nenhuma prioridade.


error - Sinnimo para o nvel err.
panic - Sinnimo para o nvel emerg.
warn - Sinnimo para o nvel warning.

Destinos

arquivo - O Rsyslog enviar os logs para um arquivo. Essa opo a mais


comum.
(|)- O Rsyslog enviar os logs atravs de um pipe. Muito usado para redirecionar logs um terminal.
(@) - Com a arroba, o Rsyslog enviar seus logs para um computador remoto,
utilizando hostname ou endereo IP.
user1,user2 - Especificando o usurio, o Rsyslog enviar a mensagem para os
usurios especificados. Mltiplos usurios so separados por vrgula.
* - Com o asterisco, o Rsyslog enviar os logs para todos usurios logados no
momento, atravs do comando "wall".

Arquivos importantes

Debian: Principal arquivo de log: /var/log/syslog Logs de controle do kernel:


/var/log/messages Logs de depurao de daemons: /var/log/daemon.log

Linux System Administration

Pgina 25

12.4 Configurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

CentOS: Principal arquivo de log: /var/log/messages Logs de controle do kernel:


/var/log/messages Logs de depurao de daemons: /var/log/messages
Debian e CentOS: Logs utilizados pelo comando last: /var/log/wtmp Logs utilizados
pelo comando last: /var/log/btmp Log utilizado pelo comando lastlog: /var/log/lastlog Logs utilizados pelos comandos w e who: /var/run/utmp

12.4 Configurando o sistema de Logs no cliente


(Debian):
1) Instale o pacote do rsyslog no Cliente:

Se for Debian :

# aptitude install rsyslog

OU

Se for CentOS :

# yum install rsyslog

2) Edite o arquivo de configurao do rsyslog, e ative as seguintes opes de


Logs:

# vim / etc / rsyslog . conf

# Erros de login s o enviados para o terminal 2:

authpriv . error

# Redirecionar todos os logs para o arquivo / var / log / tudo . log :

*.*

# Redirecionar a sa da de logs do cron para o usu rio aluno :

cron .*

# Redirecionar todos os logs para um servidor remoto Debian e Centos

|/ dev / tty2

/ var / log / tudo . log


aluno

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

12.4 Configurando o sistema de Logs no cliente (Debian):

# Debian

10

*.*

11

# CentOS

12

*.*

@192 .168.200.101
@192 .168.200.100

5) Reinicie o rsyslog:

# / etc / init . d / rsyslog stop

# / etc / init . d / rsyslog start

6) Verifique o arquivo /var/log/tudo.log

# cat / var / log / tudo . log

7) Tente se logar como aluno no terminal 3, mas erre a senha, depois logue-se corretamente, em seguida veja o log de erro de login no terminal dois:

# ctrl + alt + 2

8) Reinicie o servio do cron no terminal 1 como root e veja o log na tela do usurio
aluno que est logado no terminal 3:

# / etc / init . d / cron restart

Linux System Administration

Pgina 27

12.4 Configurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

12.4.1 Logs Centralizados, configurando um servidor de Logs


(Server Debian)
Primeiro, necessrio que o servidor seja habilitado para recebermos logs de outras
mquinas, para isto, acrescente o parmetro -r:

# vim / etc / default / rsyslog

Modifique o contedo do arquivo, acrescentando o parmetro:

RYSLOGD_OPTIONS = " -c4 , - r "

Depois, precisamos descomentar no arquivo as linhas:


# vim /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514

Crie uma entrada para redirecionar os logs para um arquivo:

# vim / etc / rsyslog . conf

*.*

/ var / log / tudo . log

Reinicialize o servio Rsyslog:

# / etc / init . d / rsyslog stop

# / etc / init . d / rsyslog start

Certifique-se de que a porta est disponvel para conexes remotas:

Pgina 28

Linux System Administration

4Linux www.4linux.com.br

12.4 Configurando o sistema de Logs no cliente (Debian):

# nestat - lun | grep 514

Verifique o log:

# tail -f / var / log / tudo . log

12.4.2 Logs Centralizados, configurando um servidor de Logs


(Server CentOS)
O CentOS vem com o pacote rsyslog instalado por padro.

# vim / etc / sysconfig / rsyslog

# Acrescente a op o -r

SYSLOGD_OPTIONS = " -r -m 0 "

Crie uma entrada para redirecionar os logs para um arquivo:

# vim / etc / rsyslog . conf

*.*

/ var / log / tudo . log

Reinicialize o servio rsyslog:

# / etc / init . d / rsyslog stop

# / etc / init . d / rsyslog start

Certifique-se de que a porta est disponvel para conexes remotas:

Linux System Administration

Pgina 29

12.4 Configurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

# nestat - lun | grep 514

Verifique o log:

# tail -f / var / log / tudo . log

12.4.3 Rotao de Logs


Com o tempo, os logs podem ocupar muito do espao disponvel na partio. Por
isso, devemos configurar corretamente a poltica de rotao dos logs, ou seja, durante quanto tempo os logs sero armazenados no seu computador.
Para isso, edite o arquivo /etc/logrotate.conf:

# vim / etc / logrotate . conf

# Definindo rota o de logs semanalmente

weekly

# Manter os logs de 4 semanas

rotate 4

# Criar um arquivo novo para cada rota o de logs

create

# Descomente caso queira compactar os logs em formato . gz

compress

10

# Todo arquivo dentro deste diret rio ser considerado como uma

configura o de log rotate .


11

include / etc / logrotate . d

12

# Configura es para wtmp e btmp

13

/ var / log / wtmp {

14

missingok

15

monthly

Pgina 30

Linux System Administration

4Linux www.4linux.com.br

16

12.4 Configurando o sistema de Logs no cliente (Debian):

create 0664 root utmp


rotate 1

17
18

19

/ var / log / btmp {

20

missingok

21

monthly

22

create 0664 root utmp

23

rotate 1

24

25

# system - specific logs may be configured here

Crie uma configurao de logrotate:

# vim / etc / logrotate . d / errors

Inclua no arquivo o seguinte contedo:

/ var / log / teste . err / var / log / teste . info {

daily

size 5M

sharedscripts

postrotate

/ usr / bin / pkill -1 rsyslog

endscript

rotate 5

/var/log/teste.err /var/log/teste.info - Os arquivos teste.err e teste.info sero


rotacionados diariamente at 5 vezes, caso o arquivo tenha pelo menos 5M.
daily - O sistema de logs ser dirio. size 5M - Faz a rotao somente se o
arquivo alcanar 5M.

Linux System Administration

Pgina 31

12.4 Configurando o sistema de Logs no cliente (Debian):

4Linux www.4linux.com.br

sharedscripts - Marca o incio do bloco de comandos.

postrotate - Executa os scripts aps aplicar a rotao aos arquivos.

/usr/bin/pkill -1 rsyslog - Envia sinal 1 ao processo rsyslog.


endscript - Encerra o bloco de comandos.

rotate 5 - Aplica a rotao aos arquivos 5 vezes.

Adicione contedo aos arquivos para fazermos testes:

# cat / var / log /* >> / var / log / teste . err

# cat / boot /* >> / var / log / teste . info

Podem aparecer mensagens de erros na tela, pois o comando cat no pode visualizar
o contedo de diretrios. Para visualizar o tamanho dos arquivos:

# du -sh / var / log / teste .*

Verifique que: o arquivo teste.err tem menos de 5M. o arquivo teste.info tem mais de
5M.
Agora, execute o comando logrotate manualmente:

# logrotate

/ etc / logrotate . conf

Verifique que o arquivo teste.err foi rotacionado, mas o teste.info no. Isto porque o
arquivo teste.info no atingiu os 5M necessrios para o rotacionamento.

Pgina 32

Linux System Administration

4Linux www.4linux.com.br

12.4 Configurando o sistema de Logs no cliente (Debian):

# ls -lh / var / log / teste *

Como forar o rotacionamento dos logs:

# logrotate -f / etc / logrotate . conf

Repare que ao forar o rotacionamento com a opo -f todos os logs marcados


para rotacionamento foram rotacionados independente do tamanho:

# ls -lh / var / log / teste *

No Debian o arquivo aps o rotacionamento com compresso recebe a extenso: ".1.gz"No CentOS o arquivo aps o rotacionamento com compresso recebe a
extenso: "$date +

Linux System Administration

Pgina 33

000
Nome do curso

www.4linux.com.br

Contedo
Servidor SSH

13.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13.1.1 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13.1.2 Chaves de Criptografia Assimtricas . . . . . . . . . . . . . . . .

13.1.3 Acesso SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13.1.4 Copiando Arquivos Remotos . . . . . . . . . . . . . . . . . . . .

13.1.5 Cpia maq_LOCAL para maq_REMOTA . . . . . . . . . . . . .

13.1.6 Cpia maq_REMOTA para maq_LOCAL . . . . . . . . . . . . .

13.1.7 SSH com Chaves Assimtricas . . . . . . . . . . . . . . . . . . .

13.1.8 Acesso por SSH sem senha com ssh-agent . . . . . . . . . . . . 10


13.1.9 Configurando o servidor SSH (CentOS): . . . . . . . . . . . . . . 11
13.1.10Cpia remota com porta diferente: . . . . . . . . . . . . . . . . . 16
13.1.11Tunelamento SSH . . . . . . . . . . . . . . . . . . . . . . . . . . 16
13.1.12Mensagem em broadcast: wall . . . . . . . . . . . . . . . . . . . 18
TCP Wrappers

19

13.2 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20


13.2.1 Entendendo o TCP Wrappers . . . . . . . . . . . . . . . . . . . . 20
13.2.2 Suporte a TCP/Wrappers . . . . . . . . . . . . . . . . . . . . . . 22

Servidor SSH
13.1 Introduo Terica
13.1.1 SSH
Secure Shell ou SSH o conjunto de padres e o protocolo associado que permite estabelecer um canal seguro entre dois computadores. Ele utiliza o sistema de
chave criptogrfica pblica para autenticar um computador remoto, podendo utilizar
esse sistema de chaves, tambm para autenticar usurios. A idia do SSH prover
confidencialidade e integridade dos dados trocados entre dois computadores usando
criptografia e mensagens de autenticao codificadas (MACs).
Esse protocolo tipicamente utilizado para conectar-se mquinas remotas e executar comandos, entretanto, h inmeras outras funcionalidades como realizar tunelamentos, redirecionamento de portas, conexes X11 (interface grfica) alm de
transferncia de arquivos.
Em geral, o SSH utiliza a porta 22/tcp e a alternativa segura ao TELNET e FTP
uma vez que eles no utilizam criptografia.

13.1.2 Chaves de Criptografia Assimtricas


Criar um par de chaves assimtricas tem basicamente duas funes:

13.1 Introduo Terica

4Linux www.4linux.com.br

Aumentar o nvel de segurana - definindo uma frase senha;


Facilitar a execuo de scripts remotamente - no definir uma frase senha.
A criao de chaves assimtricas consiste na gerao de dois arquivos que contm
seqncias de caracteres aleatrios (pseudo) e que s tm funcionalidade se os dois
trabalharem em conjunto. Ou seja, quando criamos um par de chaves ser criada
uma chave pblica e uma chave privada. A chave privada sua e absolutamente
ningum deve ter acesso a ela; a sua chave pblica voc coloca no servidor remoto.
Quando voc tentar estabelecer uma conexo ela s ser possvel se a chave privada
se encaixar na chave pblica. Com esse sistema, existe apenas uma nica chave
privada que se encaixa em uma nica chave pblica.
Como s h um par que se completa, apenas quem possuir a chave privada poder
estabelecer uma conexo utilizando a respectiva chave pblica. Uma ilustrao do
par de chaves assimtricas pode ser vista na figura: Quando criamos um par de chaves assimtricas devemos tomar o cuidado com a chave privada para que ningum
tenha acesso a ela.

13.1.3 Acesso SSH


1) Acessando uma mquina remota:
O SSH possui diversas formas de utilizao; a mais bsica de todas serve para
estabelecer uma simples shell remota:

# ssh nome_usuario_remoto@ip_servidor

Ou com a opo -l de login:

# ssh -l nome_usuario_remoto ip_servidor

Pgina 4

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Outra opo se logar no servidor remoto com o mesmo nome de usurio que voc
est logado, desde que este mesmo usurio exista remotamente:

# ssh ip_servidor

Acessar o servidor por ssh:

# ssh aluno@192 .168.0.1

Ou:

# ssh -l aluno 192.168.0.1

Desconecte e conecte-se novamente sem colocar o nome do usurio:

# ssh 192.168.0.1

Determine qual a porta utilizada pelo SSH:

# nmap localhost

A porta padro do ssh a porta 22.


2) Execute um comando na mquina remota:

# ssh

aluno@192 .168.0.1

Nome do curso

ls -l / etc / yum / yum . repos . d

Pgina 5

13.1 Introduo Terica

4Linux www.4linux.com.br

13.1.4 Copiando Arquivos Remotos

13.1.5 Cpia maq_LOCAL para maq_REMOTA


Para copiar arquivo:

# scp arquivo usuario@ip_de_destino :/ destino

Para copiar diretrio:

# scp -r diret rio usuario@ip_de_destino :/ destino

Copiando arquivo:

# scp / home / aluno / arquivo aluno@192 .168.0.1:/ home / aluno

Copiando diretrio:

# scp -r / home / aluno / diretorio aluno@192 .168.0.1:/ home / aluno

13.1.6 Cpia maq_REMOTA para maq_LOCAL


Para copiar arquivo:

# scp

Pgina 6

usuario@ip_de_origem ( remoto ) :/ arquivo / destino

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Para copiar diretrio:

# scp -r usuario@ip_de_origem ( remoto ) :/ diret rio / destino

Copiando arquivo:

# scp aluno@192 .168.0.1:/ home / aluno / arquivo / tmp

Visualize o arquivo copiado:

# ls / tmp

Copiando diretrio:

# scp -r aluno@192 .168.0.1:/ home / aluno / diretorio / tmp

Visualize o diretrio copiado:

# ls / tmp

13.1.7 SSH com Chaves Assimtricas


Quando criarmos o par de chaves assimtricas, ser criado um diretrio /.ssh na
home do usurio.
Em nossa mquina local, sem ser via ssh, vamos criar o par de chaves:

Nome do curso

Pgina 7

13.1 Introduo Terica

4Linux www.4linux.com.br

Digite uma senha na passphrase, no exemplo colocamos 123456.

# ssh - keygen -t rsa

Generating public / private rsa key pair .

Enter file in which to save the key (/ root /. ssh / id_rsa ) :

Enter passphrase ( empty for no passphrase ) : 123456

Enter same passphrase again : 123456

Your identification has been saved in / root /. ssh / id_rsa .

Your public key has been saved in / root /. ssh / id_rsa . pub .

The key fingerprint is :

c6 :51:3 e :75:0 e :10: b7 :98:5 d :6 d :81:5 f :8 a :8 f :38:2 a root@aula #

10

The key s randomart image is :

11

+ - -[ RSA 2048] - - - -+

12

13

. . o

14

. . . o

15

| . .

16

|. +

o S

17

| *

18

|. ooo

19

| .o+o

20

21

+ - - - - - - - - - - - - - - - - -+

... Eo +

.=+

. o . |
|

Obs.: A passphrase pode ser desde uma senha "normal", com 6 ou 12 caracteres, at uma frase complexa, sem limite de tamanho; o importante que no seja
algo fcil de adivinhar. Caso a passphrase no seja definida o acesso remoto ser
sem senha.

A partir da, ao invs de pedir sua senha, o servidor envia um "desafio"encriptado


usando a chave pblica. Para respond-lo, o cliente SSH na sua mquina precisa
usar a chave privada, que por sua vez precisa ser destravada usando a passphrase.

Pgina 8

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Mesmo que algum consiga roubar sua chave privada, no conseguir conectar sem
saber a passphrase e vice-versa.
O comando gerar os arquivos ".ssh/id_rsa"e ".ssh/id_rsa.pub"dentro do seu diretrio home, que so, respectivamente, sua chave privada e sua chave pblica. O
".ssh/id_rsa" um arquivo secreto, que deve usar obrigatoriamente o modo de acesso
"600", para evitar que outros usurios da mquina possam l-lo. Muitos servidores
recusam a conexo caso os arquivos estejam com as permisses abertas.
1) Verifique que as chaves foram criadas:

# ls / root /. ssh

id_rsa

id_rsa . pub

known_hosts

Depois de gerar seu par de chaves, falta o comando final, que instala a chave pblica
no servidor, permitindo que ela seja usada para autenticao:

# ssh - copy - id -i ~/. ssh / id_rsa . pub usuario@ip_do_servidor

Copiando a chave:

# ssh - copy - id -i ~/. ssh / id_rsa . pub root@192 .168.0.1

Em resumo, o que o ssh-copy-id faz nada mais do que copiar o contedo do arquivo ".ssh/id_rsa.pub", dentro do seu diretrio home, para o arquivo ".ssh/authorized_keys"dentro do diretrio home do servidor remoto, uma operao que tambm
pode ser realizada manualmente em caso de problemas.
Tente acessar o servidor:

Nome do curso

Pgina 9

13.1 Introduo Terica

4Linux www.4linux.com.br

# ssh root@192 .168.0.1

2
3

Enter passphrase for key / root /. ssh / id_rsa : 123456

Last login : Tue Jun 14 08:54:15 2011 from 192.168.0.100

13.1.8 Acesso por SSH sem senha com ssh-agent


O comando ssh-agent usado para salvar as passphrases na memria, sem com
isso abrir mo da segurana. Ele funciona como uma espcie de "cache", onde voc
digita a passphrase apenas uma vez e ela fica gravada na memria at que a sesso
seja encerrada. A segurana no prejudicada, pois a passphrase no salva em
lugar algum, fica apenas armazenada (de forma encriptada) em uma rea protegida
de memria, acessvel apenas ao ssh-agent. Ao desligar o micro, tudo perdido.

# ssh - agent

SSH_AUTH_SOCK =/ tmp / ssh - dSVLR17117 / agent .17117; export SSH_AUTH_SOCK ;

SSH_AGENT_PID =17118; export SSH_AGENT_PID ;

echo Agent pid 17118;

Execute os comandos que exportam as variveis criadas pelo comando ssh-agent:

# SSH_AUTH_SOCK =/ tmp / ssh - dSVLR17117 / agent .17117; export


SSH_AUTH_SOCK ;

# SSH_AGENT_PID =17118; export SSH_AGENT_PID ;

Adicione a chave:

# ssh - add

Enter passphrase for / root /. ssh / id_rsa : 123456

Identity added : / root /. ssh / id_rsa (/ root /. ssh / id_rsa )

Pgina 10

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

Tente acessar o servidor sem colocar a passphrase:

# ssh root@192 .168.0.1

13.1.9 Configurando o servidor SSH (CentOS):


H diversos parmetros de configurao que podem ser alterados de forma a ajustar
seus parmetros de funcionamento.
Vamos entender alguns desses parmetros editando o arquivo de configurao do
servidor de SSH. Edite o arquivo /etc/ssh/sshd_config:
Alguns parmetros:
Keyword Description Default AllowGroups Habilita acesso apenas para grupos especificados * AllowUsers Habilita acesso apenas para usurios especificados * DenyGroups Nega acesso apenas para grupos especificados none DenyUsers Nega acesso
apenas para usurios especificados none
Port - porta de acesso ao ssh
PermitRootLogin - habilita/nega acesso do usurio root por ssh
X11Forwading - habilita/nega acesso ao X
Banner /etc/issue.net - habilita banner do issue.net
LoginGraceTime - tempo para se logar no servidor
Alterando o arquivo:

Nome do curso

Pgina 11

13.1 Introduo Terica

4Linux www.4linux.com.br

# vim / etc / ssh / sshd_config

# $OpenBSD : sshd_config , v 1.73 2005/12/06 22:38:28 reyk Exp $

3
4

# This is the sshd server system - wide configuration file .

# sshd_config (5) for more information .

See

6
7

# This sshd was compiled with PATH =/ usr / local / bin :/ bin :/ usr / bin

8
9

# The strategy used for options in the default sshd_config shipped


with

10

# OpenSSH is to specify options with their default value where

11

# possible , but leave them commented .

12

# default value .

Uncommented options change a

13
14

AllowUsers suporte

15

Port 2222

16

# Protocol 2 ,1

17

Protocol 2

18

# AddressFamily any

19

# ListenAddress 0.0.0.0

20

# ListenAddress ::

21
22

# HostKey for protocol version 1

23

# HostKey / etc / ssh / ssh_host_key

24

# HostKeys for protocol version 2

25

# HostKey / etc / ssh / ssh_host_rsa_key

26

# HostKey / etc / ssh / ssh_host_dsa_key

27

# Lifetime and size of ephemeral version 1 server key #


KeyRegenerationInterval 1 h

28

# ServerKeyBits 768

29

# Logging

30

# obsoletes QuietMode and FascistLogging

31

# SyslogFacility AUTH

32

SyslogFacility AUTHPRIV

33

# LogLevel INFO

34

# Authentication :

35

LoginGraceTime 15

Pgina 12

Nome do curso

4Linux www.4linux.com.br

36

PermitRootLogin no

37

# StrictModes yes

38

# MaxAuthTries 6

13.1 Introduo Terica

39
40

# RSAAuthentication yes

41

# PubkeyAuthentication yes

42

# AuthorizedKeysFile . ssh / authorized_keys

43
44

# For this to work you will also need host keys in / etc / ssh /
ssh_known_hosts

45

# RhostsRSAAuthentication no

46

# similar for protocol version 2

47

# HostbasedAuthentication no

48

# Change to yes if you don t trust ~/. ssh / known_hosts for

49

# RhostsRSAAuthentication and HostbasedAuthentication

50

# IgnoreUserKnownHosts no

51

# Don t read the user s ~/. rhosts and ~/. shosts files

52

# IgnoreRhosts yes

53
54

# To disable tunneled clear text passwords , change to no here !

55

# PasswordAuthentication yes

56

# PermitEmptyPasswords no

57

PasswordAuthentication yes

58

# Change to no to disable s / key passwords #


ChallengeResponseAuthentication yes

59

ChallengeResponseAuthentication no

60

# Kerberos options

61

# KerberosAuthentication no

62

# KerberosOrLocalPasswd yes

63

# KerberosTicketCleanup yes

64

# KerberosGetAFSToken no

65

# GSSAPI options

66

# GSSAPIAuthentication no

67

GSSAPIAuthentication yes

68

# GSSAPICleanupCredentials yes

69

GSSAPICleanupCredentials yes

70

# Set this to yes to enable PAM authentication , account processing

Nome do curso

Pgina 13

13.1 Introduo Terica

4Linux www.4linux.com.br

,
71

# and session processing . If this is enabled , PAM authentication


will

72

# be allowed through the ChallengeResponseAuthentication mechanism .

73

# Depending on your PAM configuration , this may bypass the setting


of

74

# PasswordAuthentication , PermitEmptyPasswords , and

75

# " PermitRootLogin without - password ". If you just want the PAM
account and

76

# session checks to run without PAM authentication , then enable this


but set

77

# ChallengeResponseAuthentication = no

78

# UsePAM no

79

UsePAM yes

80
81

# Accept locale - related environment variables

82

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY


LC_MESSAGES

83

AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

84

AcceptEnv LC_IDENTIFICATION LC_ALL

85

# AllowTcpForwarding yes

86

# GatewayPorts no

87

# X11Forwarding no

88

X11Forwarding yes

89

# X11DisplayOffset 10

90

# X11UseLocalhost yes

91

# PrintMotd yes

92

# PrintLastLog yes

93

# TCPKeepAlive yes

94

# UseLogin no

95

# UsePrivilegeSeparation yes

96

# PermitUserEnvironment no

97

# Compression delayed

98

# ClientAliveInterval 0

99

# ClientAliveCountMax 3

100

# ShowPatchLevel no

101

# UseDNS yes

Pgina 14

Nome do curso

4Linux www.4linux.com.br

102

# PidFile / var / run / sshd . pid

103

# MaxStartups 10

104

# PermitTunnel no

105

# ChrootDirectory none

106
107

13.1 Introduo Terica

# no default banner path


Banner / etc / issue . net

108
109

# override default of no subsystems

110

Subsystem sftp

/ usr / libexec / openssh / sftp - server

Reinicie o servio:

# service sshd restart

Agora para fazer o acesso da mquina remota ao servidor:

# ssh -p 2222 suporte@192 .168.0.1

Onde: -p identifica a porta


Como usurio suporte, determine qual a porta utilizada pelo SSH:

$ nmap -sV localhost

Agora ele no consegue identificar a porta do ssh, pois voc alterou a porta padro,
mas ainda existem parmetros do nmap que conseguem identificar:

$ nmap -p 0 -65535 - sV localhost

Nome do curso

Pgina 15

13.1 Introduo Terica

4Linux www.4linux.com.br

A opo -p serve para passar um range de portas ou uma porta especfica a ser
escaneada.
Ele ainda no identificou qual o servio est sendo executado na porta, ento coloque a opo -sV para escanear a verso do programa:

# nmap -sV -p 0 -65535 localhost

-s - escaneia -V - banner(mostra programa e verso)

13.1.10 Cpia remota com porta diferente:

# scp -P 2222 arquivo suporte@192 .168.0.1:

-P - porta
Ao no se definir um destino aps os dois pontos : o arquivo ou diretrio ser
copiado para o diretrio home do usurio remoto.

13.1.11 Tunelamento SSH


Uma forma simples de encriptografar protocolos que em condies normais no suportam encriptao usar o SSH para criar tneis seguros, ligando uma das portas
da sua mquina porta do servidor onde o servio em questo est ativo.
Por exemplo, se algum se encontra dentro de uma instituio cuja conexo Internet protegida por um firewall que bloqueia determinadas portas de conexo, no
ser possvel, por exemplo, acessar e-mails via POP3, o qual utiliza a porta 110, nem
envi-los via SMTP, pela porta 25.

Pgina 16

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

As duas portas essenciais so a 80, para HTTP e a 443, para HTTPS, as quais
garantem uma navegao em pginas da Web sem restries.
No h necessidade do administrador da rede deixar vrias portas abertas, uma vez
que conexes indesejadas e que comprometam a segurana da instituio possam
ser estabelecidas atravs das mesmas.
Contudo, isso compromete a dinamicidade de aplicaes na Internet. Um funcionrio
ou aluno que queira acessar painis de controle de sites, arquivos via FTP ou amigos
via Instant Messengers, por exemplo, no ter a capacidade de faz-lo, uma vez que
as respectivas portas para seus funcionamentos esto bloqueadas.
Para quebrar essa imposio rgida, porm necessria, o SSH oferece o recurso do
Tnel.
Acesse em seu navegador o ip do servidor:
http://192.168.0.1
Voc ver o site da dexter.com.br.
Por ssh vamos criar um tnel com esse servidor e mapear a porta 80 para a porta
12345 na nossa mquina local:

# ssh - Lporta_local : servidor_remoto : porta_remota usu


rio@servidor_remoto

Lembre-se que estamos utilizando uma porta diferente da padro, e que o nico
usurio que pode se conectar o aluno:

# ssh -p 2222 - L12345 :192.168.0.1:80 aluno@IP_DO_SERVIDOR_DEXTER

Acesse o site no navegador localmente: http://localhost:12345

Nome do curso

Pgina 17

13.1 Introduo Terica

4Linux www.4linux.com.br

Para desconectar, deslogue do servidor.


Outras opes:
-f - O parmetro -f"dentro do comando faz com que ele seja executado em background, liberando o terminal depois que a conexo estabelecida.
-N - O parmetro -N"faz com que o SSH apenas crie o redirecionamento da porta,
sem abrir um terminal do servidor remoto.

13.1.12 Mensagem em broadcast: wall


O comando wall envia uma mensagem a todos os usurios logados no sistema.
Este comando faz a leitura de um arquivo ou entrada padro e escreve o resultado
em todos os terminais onde existem usurios conectados. Somente o usurio root
pode utilizar este comando.
No confundam o comando wall com o antigo netsend da Microsoft. A mensagem broadcast enviada pelo wall, para todos os terminais conectados naquele
determinado servidor, enquanto o netsend faz broadcast para todos os endereos
ativos na rede.
Enviando sua mensagem:

# wall

minha mensagem

< ctrl +d >< enter >

1- Acesse o servidor por ssh


2- Acesse o diretrio onde ficam as imagens do site da aula: /var/www/intranet/menu

Pgina 18

Nome do curso

4Linux www.4linux.com.br

13.1 Introduo Terica

3- Renomeie o arquivo home.png para home.original.png


4- copie uma imagem do cliente para o servidor e substitua a imagem do home: arquivo a ser copiado: /usr/share/images/desktop-base/gnome-foot.png salve o arquivo
com o nome de home.png
5- Acesse o site e verifique se o cone para ir para o home mudou.

Nome do curso

Pgina 19

TCP Wrappers
13.2 Introduo Terica
Os TCP Wrappers so usados para aplicar regras de acesso a diversos servios em
seu servidor, podendo permitir ou negar conexes a eles. Eles so controlados por
dois arquivos: /etc/hosts.allow - configurao de acessos permitidos para determinados IPs e /etc/hosts.deny - configurao de acessos negados para determinados
IPs. TCP - Sigla para "Transmission Control Protocol".

13.2.1 Entendendo o TCP Wrappers


Existem dezenas de possibilidades de configurao para o tcp_wrappers e voc pode
estud-las em extenso atravs das pginas de manual hosts_access e hosts_options.
Portanto, sero ilustrados apenas alguns casos interessantes do uso desta ferramenta.
As regras de controle de acesso, existentes nestes dois arquivos, tm o seguinte
formato:

lista_de_daemons : lista_de_clientes [: comando ]

lista_de_daemons: Lista de um ou mais nomes de daemons (como especificados


no /etc/inetd.conf), ou curingas.

20

4Linux www.4linux.com.br

13.2 Introduo Terica

lista_de_clientes: Lista de um ou mais endereos ou nomes de mquinas, padres


ou curingas utilizados para especificar quais clientes podem e quais no podem acessar o servio.
comando (opcional): possvel executar um comando sempre que uma regra casa
com um padro e utilizada.
Veja exemplos a seguir:
Como citado anteriormente, curingas podem ser utilizados tanto na lista de daemons
quanto na lista de clientes. Entre os existentes, pode-se destacar os seguintes:
ALL - Significa todos os servios ou todos os clientes, dependendo apenas do campo
em que se encontra.
LOCAL - Este curinga casa com qualquer nome de mquina que no contenha um
caractere ponto ., isto , uma mquina local.
PARANOID - Casa com qualquer nome de mquina que no case com seu endereo.
Isto geralmente ocorre quando algum servidor DNS est mal configurado ou quando
alguma mquina est tentando se passar por outra.
Na lista de clientes podem ser utilizados nomes ou endereos de mquinas, ou ento
padres que especificam um conjunto de mquinas. Se a cadeia de caracteres que
identifica um cliente inicia com um ponto ., um nome de mquina ir casar com
este padro sempre que o final desse nome casar com o padro especificado. Por
exemplo, se fosse utilizada a cadeia de caracteres .minhaorganizao, o nome de
mquina server.minhaorganizao casaria com o padro.
Similarmente, se a cadeia de caracteres termina com um ponto ., um endereo de
mquina ir casar com o padro quando seus campos numricos iniciais casarem
com a cadeia de caracteres especificada. Para exemplificar, se fosse utilizada a
cadeia de caracteres 192.168.220., todas as mquinas que tenham um endereo IP
que inicie com estes 3 conjuntos de nmeros iro casar com o padro (192.168.220.0
ao 192.168.220.255).

Nome do curso

Pgina 21

13.2 Introduo Terica

4Linux www.4linux.com.br

Alm destes mtodos, possvel identificar um cliente atravs do IP/mscara de


rede. Voc pode especificar, por exemplo, 192.168.220.0/255.255.255.128, e qualquer mquina com endereo IP entre 192.168.220.0 e 192.168.220.127 casaria com
o padro.

13.2.2 Suporte a TCP/Wrappers


Para saber se um servio tem suporte a TCP/Wrappers verifique suas bibliotecas:

# which sshd

# ldd / usr / sbin / sshd

A existncia da libwrap confirma o suporte a TCP/Wrappers:

libwrap . so .0 = > / lib / libwrap . so .0 (0 xb7ef7000 )

Bloqueie todos os acessos ao seu servidor por ssh:

# vim / etc / hosts . deny

sshd : ALL

Tente acessar seu servidor CentOS por ssh a partir da mquina Debian:

# ssh -p 2222 192.168.0.1

No possvel devido a regra do TCP/Wrappers. Libere o acesso ssh ao seu servidor


CentOS apenas para seu cliente Debian:

Pgina 22

Nome do curso

4Linux www.4linux.com.br

# vim / etc / hosts . allow

sshd : 192.168.0.100

13.2 Introduo Terica

Acesse seu servidor CentOS por ssh a partir da mquina Debian:

# ssh -p 2222 192.168.0.1

Nome do curso

Pgina 23

4451
Linux System Administration

www.4linux.com.br

Contedo
Introduo ao uso do GPG

14.1 Introduo terica sobre criptografia . . . . . . . . . . . . . . . . . . . .

14.2 Caractersticas da criptografia simtrica . . . . . . . . . . . . . . . . . .

14.3 Caractersticas da criptografia assimtrica . . . . . . . . . . . . . . . .

14.4 GNUPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.5 Gerando chaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.6 Exportando uma chave pblica . . . . . . . . . . . . . . . . . . . . . . .

14.7 Dica de segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11


14.8 Importado uma chave pblica . . . . . . . . . . . . . . . . . . . . . . . 11
14.9 Encriptar arquivos com GPG . . . . . . . . . . . . . . . . . . . . . . . . 13
14.10Decriptar arquivos com GPG . . . . . . . . . . . . . . . . . . . . . . . . 13
14.11Criando assinaturas com GPG . . . . . . . . . . . . . . . . . . . . . . . 14

Introduo ao uso do GPG

14.1 Introduo terica sobre criptografia

O que criptografia?
Criptografia o estudo dos princpios e tcnicas pelas quais a informao pode ser
transformada da sua forma original para outra ilegvel, de forma que possa ser conhecida apenas por seu destinatrio (detentor da "chave secreta"), o que a torna
difcil de ser lida por algum no autorizado.
Assim sendo, s o receptor da mensagem pode ler a informao com facilidade. A
quem interessa a criptografia e quem contribuiu e contribui para ela evoluir? Militares,
diplomatas e pessoas que precisam guardar segredos e at amantes.
O que simetria?
Simetria se refere igualdade de propriedades existente entre dois lados opostos de
uma mesma situao.
Encriptar ou cifrar so termos usados para descrever a transformao de informaes legveis/teis em dados embaralhados (sem sentido), que no se aproveita.
Decriptar ou decifrar so termos usados para descrever a transforamo de informaes sem sentido (embaralhadas) em informaes legveis/teis.

14.2 Caractersticas da criptografia simtrica

4Linux www.4linux.com.br

14.2 Caractersticas da criptografia simtrica


Simples e til;
Cobre situaes nas quais uma parte esteja envolvida;
A pessoa que encripta a mesma que decripta.

Exemplos de Algoritmos Simtricos:

(Advanced Encryption Standard): Est presente nos softwares BitLocker,


WinZip, no padro WPA2 etc;
DES: Algoritimo criado pela IBM;
IDEA :International Data Encryption Algorithm
Blowfish: Elaborado por Bruce Schneier em 1993, leva o nome de um peixe
que no Brasil conhecido como baiacu

14.3 Caractersticas da criptografia assimtrica


Proporciona privacidade e autenticidade;
teis na troca de e-mail;
Seu uso exige que cada um dos lados possua um par chaves: uma pblica e
outra privada

Diferena entre Chave Pblica e Privada

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

14.3 Caractersticas da criptografia assimtrica

A chave pblica de um usurio de e-mail deve ser de conhecimento das pessoas


que lhe desejam enviar mensagens. Voc pode disponibilizar publicamente, sem
problemas.
A chave privada deve sempre ser de conhecimento exclusivo do dono. Tome muito
cuidado para que ningum tome posse de sua chave privada! A par de chaves do
remetente confere autenticidade, isto , atribui legitimidade s informaes trocadas
entre partes diferentes. A par de chaves do destinatrio confere privacidade, isto ,
atribui sigilo s informaes trocadas entre partes distintas.
Logo, entre os interlocutores, o uso das duas chaves leva em conta que cada um
possua a chave pblica do outro.
Mas afinal o que esta tal chave?
Seria uma senha grande ou um parmetro para se encriptar e decriptar informaes.
E qual deve ser o tamanho da chave em bits?
Isto relativo e deve ser levado em conta os seguintes fatores:

Produtividade;
Segurana

Chaves com 512 bits oferecem melhor desempenho nas operaes criptogrficas,
mas so facilmente quebradas. O uso de chaves grandes causa lentido, mas proporciona muita segurana.
Qual seria o tamanho "ideal"?
1024 bits ou 2048 bits para os mais "precavidos".

Linux System Administration

Pgina 5

14.4 GNUPG

4Linux www.4linux.com.br

14.4 GNUPG
Vamos utililizar o software gnup. O gnupg licenciado pela GPL e pode ser usado
tanto no Linux, quanto no Windows e MAC OS X. O gnupg trabalha com critografia
simtrica e assimtrica. Os algoritmos que o gnupg utiliza so:
RSA para criptografia assimtrica;
TripleDES, AES e Blowfish;
Funes hash MD5 e SHA;
ZIP, ZLIB e BZIP2 para compresso
Certifique-se que este pacote esteja instalado na sua distribuio.
Para instalar no Debian:

# aptitude install gnupg

Para instalar no CentOS:

# yum install gnupg

Para verificar a verso do GnuPG (Debian e CentOS)

# gpg -- version

gpg ( GnuPG ) 1.4.10

Copyright ( C ) 2008 Free Software Foundation , Inc .

License GPLv3 +: GNU GPL version 3 or later < http :// gnu . org / licenses /
gpl . html >

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

14.5 Gerando chaves

This is free software : you are free to change and redistribute it .

There is NO WARRANTY , to the extent permitted by law .

7
8

Home : ~/. gnupg

Algoritmos suportados :

10

Chave p blica : RSA , RSA -E , RSA -S , ELG -E , DSA

11

Cifra : 3 DES , CAST5 , BLOWFISH , AES , AES192 , AES256 , TWOFISH ,


CAMELLIA128 ,
CAMELLIA192 , CAMELLIA256

12
13

Dispers o : MD5 , SHA1 , RIPEMD160 , SHA256 , SHA384 , SHA512 , SHA224

14

Compress o : Uncompressed , ZIP , ZLIB , BZIP2

14.5 Gerando chaves


Acesse a maquina Debian com um usurio comum, e digite o comando abaixo para
gerar a chave pblica e privada.

$ gpg --gen - key

gpg ( GnuPG ) 1.4.10; Copyright ( C ) 2008 Free Software Foundation , Inc


.

This is free software : you are free to change and redistribute it .

There is NO WARRANTY , to the extent permitted by law .

A utilizar o comando o diretrio oculto .gnupg sera criado na home do usurio logado.

gpg : directory / home / aluno /. gnupg created

As chaves pblica e privada sero criadas com os nomes "pubring.gpg"e "secring.gpg".

Linux System Administration

Pgina 7

14.5 Gerando chaves

4Linux www.4linux.com.br

gpg : porta - chaves / home / aluno /. gnupg / secring . gpg criado

gpg : porta - chaves / home / aluno /. gnupg / pubring . gpg criado

Varias perguntas sero feitas durante a criao do par de chaves. Responda com as
seguintes opes:
Por favor selecione o tipo de chave desejado:
Tecle 2 para selecionar DSA usada para assinaturas digitais e Elgamal usada
para conferir privacidade s comunicaes.
DSA keys may be between 1024 and 3072 bits long.
Tecle 1024 para selecionar o tamanho da chave
Por favor especifique por quanto tempo a chave deve ser vlida.
Tecle 1y para definir o tempo de renovao das chaves por 1 ano
Is this correct? (y/N)
Tecle y para confirmar a informao
You need a user ID to identify your key; the software constructs the user ID from the
Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter)
<heinrichh@duesseldorf.de>"
Nome completo: Aluno Linux Administration
Endereo de correio eletrnico: aluno@dexter.com.br
Comentrio: Maquina Debian

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

14.6 Exportando uma chave pblica

Voc selecionou este identificador de usurio: "Aluno Linux Administration (Maquina


Debian) <aluno@dexter.com.br>"
Muda (N)ome, (C)omentrio, (E)ndereo ou (O)k/(S)air? O
Voc precisa de uma frase secreta para proteger sua chave.
Digite a frase secreta e em seguida confirme a mesma
No h bytes aleatrios suficientes. Por favor, faa algum outro trabalho para que o
sistema possa coletar mais entropia! (So necessrios mais 276 bytes)
Agora o gpg far vrios clculos para gerar uma chave pblica e uma privada.
Abra outro terminal com usurio root, e digite comandos de pesquisa e listagem de arquivos para gerar mais entropia
gpg: /home/aluno/.gnupg/trustdb.gpg: banco de dados de confiabilidade criado gpg:
key B28CCB9D marked as ultimately trusted chaves pblica e privada criadas e assinadas.
gpg: a verificar a base de dados de confiana gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q,
0n, 0m, 0f, 1u gpg: proxima verificao da base de dados de confiana a 2013-0712 pub 1024D/B28CCB9D 2012-07-12 [expires: 2013-07-12] Key fingerprint = A125
D989 0EFC 74E2 6ED2 D309 3FC5 09C6 B28C CB9D uid Aluno Linux Administration (Maquina Debian) <aluno@dexter.com.br> sub 1024g/A40A66E8 2012-07-12
[expires: 2013-07-12]

14.6 Exportando uma chave pblica


Para exportar a chave pblica do usurio para um arquivo, utilizae o comando abaixo
com o usurio comum:

Linux System Administration

Pgina 9

14.6 Exportando uma chave pblica

4Linux www.4linux.com.br

$ gpg -- armor -- output " chave_publica_aluno . txt " -- export "


aluno@dexter . com . br "

Visualize o contedo do arquivo que contm a chave pblica atravs do comando


cat:

$ cat chave_publica_aluno . txt

----- BEGIN PGP PUBLIC KEY BLOCK - - - - -

Version : GnuPG v1 .4.10 ( GNU / Linux )

4
5

mQGiBE // Ad0RBADlzDbqxM5Bqfqq2tq / LIVO1pYHPOvn43OoVBSvbHyvNcGb0TGX

Nw9bZ8oroYB / I5705zqLRQjuy7G090u6sMjbg6U5e9GHSTrTy6YxQ3LZ5ZftJXgO

p9awnnYv6ke2hTFhfRg53hVAL17N86QVomfNWJjEk0DKf + aeYZgIHMTvXwCgsykb

M34ZOUJbISJBW4SgcQiHTmUD / j0PeL1d0I4ekhGQcp5oENoePz8ZJNhZe / f3OTg2

qmtbeFWSqEQXNfrRXoc0eCfvIuk93TIpMYOFwUHssKIILrLwSAiat6AMcHxpFTjK

10

dxdbWcHNBr9OO + ddrsMVVe03jSkbX6rdd +271 NcsAl + qzYN9ezUdDTv8iLacp +1 o

11

REMtBACZ + ss + iMIU0mvnH33qoXTEz9boo + Or0LEKHqYwppZn3p5GwnBxebOAMEa /

12

+ OqZx2oANPj0EoP0QAV1f7I2sNSf + h1v4 + OP / uWCpcYpzfXmSGovcm0K0bLnycAW

13

IGQ90uJXQ5Ze3pW5WOmL3NFJ1olRezbcAqT5Z1qmcoAQnD6mC7RBQWx1bm8gTGlu

14

dXggQWRtaW5pc3RyYXRpb24gKE1hcXVpbmEgRGViaWFuKSA8YWx1bm9AZGV4dGVy

15

LmNvbS5icj6IaAQTEQIAKAUCT /8 B3QIbAwUJAeEzgAYLCQgHAwIGFQgCCQoLBBYC

16

AwECHgECF4AACgkQP8UJxrKMy516YwCggwMGttnNbIqmrUYKx6NdRyMa13YAn0nM

17

hzMZgZmqQyvlWNn7iECMFY1ZuQENBE // Ad0QBADdQ8GM1hh9 + ilWnSfoavffSMqd

18

1 tn69uBpEmGju2f + j92qY2 / wZWeiYTCYZvU6Tlfjqk6 + OcozdyInpnhVXHHCodmN

19

HSuJKFDd2T + gG85MI4yqI95AXgHgVbOZX9U1WacMmcAIDBmVlpPunZ3E3dxijd6w

20

yCvWF5mOcFiFNCtoowADBgQAvTjy8D5ANTyvTb4EAz9w4J + n40zlgebUVJ45f7eU

21

6 lwIu3m +/ MCrUD8e5a3E7bqbkXPo3w48X1k4MtzgyUMhygVNaDd9b3CTcWlk6JnV

22

5 y5yXYbU9BxABJv + TTJbwg5tHdiXcl6lFPkUeR1kdjmu1Rux6Sv7uD4siRz5m6uv

23

ZpOITwQYEQIADwUCT /8 B3QIbDAUJAeEzgAAKCRA / xQnGsozLnQP / AKCtFY87vAfc

24

PeW / Oy8gsaa6igw7UgCfYMnwny2z1EeXQE / h9NssRF9dyCk =

25

= utVZ

26

----- END PGP PUBLIC KEY BLOCK - - - - -

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

14.7 Dica de segurana

14.7 Dica de segurana


Os arquivos pubring.gpg, secring.gpg e trustdb.gpg guardam chaves e informaes
referentes ao par. Guarde a cpia em um local de difcil acesso.
Faa uma cpia dos arquivos do diretrio /.gnupg

$ ls . gnupg /

gpg . conf

pubring . gpg

pubring . gpg ~

random_seed

secring . gpg

trustdb . gpg

Compatibilidade: O gnupg gera arquivos com extenso .gpg quando encripta. Um


programa proprietrio gera um arquivo com extenso .pgp.

14.8 Importado uma chave pblica


Acesse a maquina CentOS com um usurio comum (diferente do aluno) e repita os
procedimentos da sesso "Gerando chaves", alterando as seguintes informaes:
Nome completo
Endereo de correio eletrnico
Comentrio
Na maquina CentOS envie para o usurio Aluno da maquina Debian, o arquivo da
chave pblica atravs do comando scp:

$ scp chave_publica_user_centos . txt aluno@192 .168.200.1:

Linux System Administration

Pgina 11

14.8 Importado uma chave pblica

4Linux www.4linux.com.br

Na maquina Debian, importe a chave de usurio do CentOS atravs do comando:

$ gpg -- import chave_publica_user_centos . txt

Para listar as chaves importadas use o comando:

$ gpg -- list - keys

Depois de adicionar o destinatrio, defina a autenticidade associada aquela chave


(o grau de confiana):

$ gpg -- edit - key " Tux CentOS "

Use o comando "trust"para definir o grau de confiana):

Command > trust

Please decide how far you trust this user to correctly verify other users keys (by
looking at passports, checking fingerprints from different sources, etc.)
Tecle 5 para definir que Confia totalmente
Para sair da edio da chave use o comando quit:

Command > quit

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

14.9 Encriptar arquivos com GPG

14.9 Encriptar arquivos com GPG


Antes de enviar um arquivo ao usurio que importou sua chave pblica, garanta a
segurana na troca de informaes encriptando o arquivo com o comando GPG.
Na maquina Debian, use o comando abaixo para encriptar o arquivo lista_secreta.txt
usando a chave pblica do usurio do CentOS:

$ gpg -- recipient " Tux CentOS " -- output " lista_secreta . txt . gpg " -encrypt " lista_secreta . txt "

Envie o arquivo encriptado ao usurio da maquina CentOS:

$ scp lista_secreta . txt . gpg tux@192 .168.200.2:

14.10 Decriptar arquivos com GPG


Na maquina CentOS, use o comando abaixo para decriptar o arquivo lista_secreta.txt.gpg,
informando sua frase secretao:

$ gpg -- decrypt - files " lista_secreta . txt . gpg "

Enter passphrase :

Para verificar se ocorreu tudo com sucesso, liste o contedo do diretrio

$ ls

lista_secreta . txt lista_secreta . txt . gpg

Linux System Administration

Pgina 13

14.11 Criando assinaturas com GPG

4Linux www.4linux.com.br

14.11 Criando assinaturas com GPG


Cenrio: Vamos supor que voc quer enviar um arquivo de texto e que o destinatrio
deseja uma prova sua de que realmente foi voc quem enviou. Uma assinatura no
basta, ainda mais em um texto.
Crie um arquivo chamado aviso.txt e digite uma frase:

$ echo " Sua frase aqui " > aviso . txt

Use o comando gpg para assinar um arquivo com a opo clearsign:

$ gpg -- clearsign aviso . txt

Enter passphrase :

Liste o contedo do diretrio para verificar o arquivo original (.txt) e o arquivo assinado (.asc)

$ ls

aviso . txt aviso . txt . asc

Visualize o contedo do arquivo assinado:

$ cat aviso . txt . asc

----- BEGIN PGP SIGNED MESSAGE - - - - -

Hash : SHA1

Sua frase aqui

----- BEGIN PGP SIGNATURE - - - - -

Version : GnuPG v1 .4.10 ( GNU / Linux )

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

14.11 Criando assinaturas com GPG

iEYEARECAAYFAkv +2
y4ACgkQixXsqYEooo6D2QCfYSwOZE3Yy6LlXeYspLxrOdw9e1cAoKpPCAoSDYZYY /
c8BkC9SzY + gk0P = DDzt

----- END PGP SIGNATURE - - - - -

O arquivo "arquivo.txt.asc"est pronto para ser enviado, mas no est encriptado.


Se ele no est encriptado, falta privacidade ou autenticidade? Privacidade. Se o
arquivo j est assinado, existe sim autenticidade. Agora, eu posso disponibilizar o
arquivo assinado no servidor de arquivos que Maria tem acesso ou enviar por email
como anexo.
Ou pode enviar o contedo do arquivo no corpo de uma mensagem, mas alguns
clientes de e-mail tem problemas de codificao e isto pode gerar erros. O Gmail por
exemplo utiliza a codificao UTF-8.
O outro usurio ao receber o arquivo testar a assinatura com o comando:

$ gpg -- verify " aviso . txt . asc "

gpg : Signature made Thu 12 Jul 2012 21:11:54 PM BRT using DSA key ID
8128 A28E

Good

signature

from " Tux CentOS ( Maquina

CentOS )
3

gpg : < tux@dexter . com . br > "

Linux System Administration

Pgina 15

4451
Linux System Administration

www.4linux.com.br

Contedo
Compilao do Kernel

15.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15.2 Introduo ao Kernel verso 3 . . . . . . . . . . . . . . . . . . . . . . .

15.3 Funcionalidades do Kernel 3.3 . . . . . . . . . . . . . . . . . . . . . . .

15.4 Conhecendo o hardware da maquina

. . . . . . . . . . . . . . . . . . .

15.5 Configurar, compilar e instalar o Kernel . . . . . . . . . . . . . . . . . .

Compilao do Kernel

15.1 Introduo Terica

O centro atravs do qual todas distribuies so construdas o kernel do sistema


operacional GNU/Linux. Ele fica entre os programas de usurio e o hardware do sistema. o kernel quem fornece suporte ao hardware, protocolos e alguns softwares.
Vimos no captulo de Mdulos que kerneis genricos baseiam-se na utilizao de
mdulos, ou seja, o desenvolvedor compila um kernel bsico e compila todo o resto
em forma de mdulos, de maneira que todos os suportes adicionais sejam adicionados de forma modular.

Quando compilamos um kernel, a idia torn-lo mais enxuto e seguro. Frequentemente seremos forados a realizar uma compilao a fim de adicionar o suporte a
alguma funcionalidade que no veio habilitada por padro.

De certa forma, queremos passar de um esquema modular a um esquema em que


a maioria, se no todas, as funcionalidades que iremos utilizar estejam built-in no
kernel, ou seja, no modular, como pode ser visto na figura abaixo.

15.1 Introduo Terica

4Linux www.4linux.com.br

A perfeio seria ter um kernel bem compilado contendo apenas o conjunto de partes estritamente necessrias ao funcionamento do nosso servidor e no ter nenhum
mdulo externo compilado. Retiraramos at o suporte a carregar mdulos.

Configurar um kernel manualmente frequentemente tido como o procedimento


mais difcil que um usurio de Gnu/Linux tem que fazer. Isso no bem verdade,
depois de configurar uns dez kerneis voc nem lembrar que foi difcil :) Como tudo
na vida mais uma questo de prtica do que de inteligncia.

No entanto, uma coisa verdade: voc deve conhecer muito bem seu sistema
quando voc comear a configurar o kernel manualmente. A maior parte das informaes pode ser obtida utilizando o comando lspci.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

15.2 Introduo ao Kernel verso 3

15.2 Introduo ao Kernel verso 3


A verso 3 do kernel foi lanada em 22 de Julho de 2011 em comemorao aos
20 anos do Linux, com alteraes bastante tcnicas incluindo suporte a mais dispositivos, reduo na fragmentao no sistema de arquivos Btrfs e um backend de
armazenamento para o Xen. Outras mudanas aparecem com suporte mais amplo
a placas de rede wireless, webcams, e at mesmo o Kinect da Microsoft.
A verso 3.0 teve seu lanamento com 14,647,033 linhas de cdigo, diferente de
outras verses, como pode ser comparada na lista abaixo:

Verso 1.0.0: 176,250 linnhas de cdigo;


Verso 2.2.0: 1,800,847 linhas de cdigo;
Verso 2.4.0: 3,377,902 linhas de cdigo;
Verso 2.6.0: 5,929,913 linhas de cdigo;
Verso 3.0: 14,647,033 linhas de cdigo.

15.3 Funcionalidades do Kernel 3.3


Quais so as novas funcionalidades do Kernel 3.3?
A verso 3.3 do Kernel trouxe muitas novidades significativas, e esta a verso
que sera instalada em nossa pratica. Acompanhe abaixo um resumo de algumas
novidades:
Suporte melhorado a sistemas de arquivos

Linux System Administration

Pgina 5

15.3 Funcionalidades do Kernel 3.3

4Linux www.4linux.com.br

Redimensionamento do sistema de arquivos Ext4 mais inteligente e suporte a balanceamento e re-striping ao sistema de arquivos Btrfs, permitindo que a migrao de
RAIDs criados com o Btrfs seja pausada, cancelada e reiniciada aps uma falha.
Fuso com o projeto Android
A fuso entre o Kernel Linux e o kernel modificado do Android, se torna realidade
nesta verso, trazendo melhorias para ambos os projetos onde proporciona a melhora do suporte do sistema operacional em outras plataformas ou at mesmo rodar
aplicativos dele usando o Kernel Linux.
Melhor ligao em interfaces de redes
H um novo dispositivo que combina mltiplos dispositivos Ethernet em um nico
dispositivo virtual. Este dispositivo de rede virtual pode usar a tcnica Round-Robin
para dividir o trfego de rede entre as mltiplas portas; alternativamente, uma porta
designada de "backup ativo"pode assumir a conexo caso ocorram problemas com
a conexo primria de rede.
Open VSwitch
O Open vswitch uma implementao de software de um switch de rede de mltiplas
camadas, onde est sendo mesclado na rvore principal do Kernel. Esta implementao projetada para cenrios mais complexos, e especialmente para ser usado
como um vswitch em ambientes de servidores virtualizados.
Suporte a drivers
Esta verso teve uma reviso melhorada no suporte do Kernel (hardware), para que
houvesse progresso nos drivers de cdigo aberto para a processadores AMD, Intel e
processadores grficos NVIDIA.
Suporte de inicializao EFI
Esta verso apresenta um esboo de inicializao EFI que permite que uma ima-

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

15.4 Conhecendo o hardware da maquina

gem bzImage x86, seja carregada e executada diretamente pelo firmware do EFI. O
bzImage aparece para o firmware como uma aplicao EFI. Tanto a BIOS e gerenciadores de inicializao EFI podem carregar e executar a mesma bzImage, permitindo
que uma nica imagem de kernel possa trabalhar em qualquer ambiente de inicializao.

15.4 Conhecendo o hardware da maquina


Vamos conhecer um pouco do hardware antes de iniciarmos a configurao do kernel:

# cat / proc / interrupts

# cat / proc / ioports

# cat / proc / meminfo

# cat / proc / cpuinfo

Dica LPI: Lembre-se:

/proc/interrupts - contm as informaes dos canais IRQ;


/proc/ioports - contm as informaes Input/Output;
/proc/meminfo - contm informaes da memria;
/proc/cpuinfo - contm informaes do processador;
/proc/mtab - contm informaes dos diretrios que esto montados;
/proc/swaps - contm informaes dos swaps em uso;

Linux System Administration

Pgina 7

15.4 Conhecendo o hardware da maquina

4Linux www.4linux.com.br

/proc/dma - contm informaes dos canais de DMA em uso;


/proc/filesystems - contm informaes dos sistemas de arquivos;
/proc/modules - contm informaes dos mdulos carregados;

Para obtermos informaes a respeito dos componentes PCI e USB conectados


mquina devemos instalar dois programas o lscpi e o lsusb:

# aptitude install pciutils usbutils

# yum install pciutils usbutils

Veja os dispositivos PCI e USB conectados mquina:

# lspci

# lsusb

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

15.5 Configurar, compilar e instalar o Kernel

15.5 Configurar, compilar e instalar o Kernel


Agora que voc sabe as novidades do Kernel 3.3 e tem conhecimento do hardware
da maquina, vamos colocar em pratica a implementao da verso 3 do Kernel. O
download sera feito no endereo do kernel.org, e a distribuio usada sera o Debian
6.
Antes de compilar qualquer verso do Kernel, comece instalando os pacotes abaixo
para resolver as dependncias durante a compilao.

# aptitude install make gcc g ++ autoconf libncurses5 libncurses5 - dev


ncurses - base ncurses - bin ncurses - term

# yum install ncurses - devel

# yum groupinstall " Development Tools "

O proximo passo para compilarmos um kernel fazer o download de seu cdigo


fonte a partir do site:

http://www.kernel.org

Linux System Administration

Pgina 9

15.5 Configurar, compilar e instalar o Kernel

4Linux www.4linux.com.br

Seguindo a FHS acesse o diretrio /usr/src para baixar a fonte do Kernel.

# cd / usr / src /

Use o comando wget e baixe a verso 3.3.3 usando o endereo abaixo:

# wget -c http :// www . kernel . org / pub / linux / kernel / v3 .0/ linux -3.3.3.
tar . bz2

Para desempacotar e descompactar use o comando tar no arquivo baixado

# tar jxvf linux -3.3.3. tar . bz2

Crie um link simblico padronizando o nome linux como fonte do Kernel

# ln -s / usr / src / linux -3.3.3 / usr / src / linux

# cd linux

Um passo extremamente importante antes de configurar o nosso kernel sempre


adicionar uma EXTRAVERSION afim de organizar uma eventual estrutura de mdulos no /lib.
Utilize o comando date para gerar uma string de extraversion:

# date +" -% Y % m % dc1 "

-20120725 c1

Adicione essa string varivel EXTRAVERSION na Makefile do kernel:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

# cd / usr / src / linux -3.3.3

# vim Makefile

EXTRAVERSION = -20120725 c1

15.5 Configurar, compilar e instalar o Kernel

Veja as opes da Makefile do kernel:

# make help

Maneiras de configurar o kernel:


make menuconfig: Escolha de opes usando interface ncurses;
make config: Configurao a base de perguntas e respostas no terminal;
make xconfig: Configurao modo grfico feito em QT ;
make gconfig: Configurao modo grfico feito em GTK;
make localmodconfig: Configurao a base de perguntas e respostas no terminal, onde possvel retirar mdulos no utilizados do seu kernel!
Se essa no for a primeira compilao desse kernel, sempre recomendado realizar uma limpeza no diretrio do fonte do kernel:

# make mrproper

mrproper -> remove todos arquivos gerados pelo comando make + arquivo config +
vrios arquivos de backup
Inicie o processo de configurao do kernel:

Linux System Administration

Pgina 11

15.5 Configurar, compilar e instalar o Kernel

4Linux www.4linux.com.br

# make menuconfig

A interface de configurao fornece uma estrutura de menus e sub-menus nos quais


devemos navegar afim de selecionar as opes que desejamos adicionar, remover
ou compilar como mdulos.

Aps salvar as configuraes, podemos visualizar o arquivo gerado e copi-lo para


um lugar seguro:

# less . config

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

15.5 Configurar, compilar e instalar o Kernel

# cp . config / boot / config -3.3.3 -20120725 c1

Agora que est tudo pronto, vamos compilar o kernel:

# make CONFIG_DEBUG_SECTION_MISMATCH = y

Dica: Caso seu processador possua varios ncleos otimize a compilao atravs da
flag -j. Exemplo:

# make CONFIG_DEBUG_SECTION_MISMATCH = y - j4

-j4: Executa a compilao do kernel em quatro processos simultneos!


Aps compilar o kernel e seus mdulos, vamos copiar os mdulos para o diretrio
apropriado em /lib/modules:

# make modules

# make modules_install

Dica LPI: O Processo de compilao do kernel: make ; make modules_install

Depois de compilado o kernel, ser gerado um arquivo da imagem (o bzImage) no


diretrio /usr/src/linux-3.3.3/arch/XXX/boot.
Onde XXX a arquitetura da mquina.
Copie-o para o diretrio /boot, com o nome de vmlinuz, este o nome dado ao
kernel:

Linux System Administration

Pgina 13

15.5 Configurar, compilar e instalar o Kernel

# cd arch / i386 / boot /

# file bzImage

# cp bzImage / boot / vmlinuz -3.3.3 -20120725 c1

4Linux www.4linux.com.br

Se o nosso kernel tiver sido compilado com mdulos que sejam extremamente
necessrios durante o boot, ser necessrio criar uma imagem de boot.

Para isso, precisamos instalar o seguinte pacote no Debian:

# aptitude install initramfs - tools

Agora devemos construir nosso arquivo initrd no /boot:

# mkinitramfs -o / boot / initrd . img -3.3.3 -20120725 c1 / lib / modules


/3.3.3 -20120725 c1

# mkinitrd / boot / initrd -3.3.3 -20120725 c1 . img / lib / modules


/3.3.3 -20120725 c1

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

15.5 Configurar, compilar e instalar o Kernel

Feitos esses procedimentos devemos configurar o nosso Boot Loader.

Esta parte mais simples! Se o Kernel tem o nome vmlinuz-verso no diretrio /boot.
Aos invs de criar uma configurao manual com a entrada do Kernel e initrd-img,
apenas digite o comando abaixo e a entrada no Grub 1 ou 2 sera feita de forma
automtica:

# update - grub

Linux System Administration

Pgina 15

4451
Linux System Administration

www.4linux.com.br

Contedo
Gerenciadores de Boot

16.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16.1.1 GRUB (Padro CentOS) . . . . . . . . . . . . . . . . . . . . . . .

16.1.2 Segurana no grub . . . . . . . . . . . . . . . . . . . . . . . . . . 12


16.2 GRUB2 (Padro Debian) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
16.2.1 Melhorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
16.2.2 GRUB vs GRUB2

. . . . . . . . . . . . . . . . . . . . . . . . . . 14

16.2.3 Hierarquia de arquivos e diretrios . . . . . . . . . . . . . . . . . 15


16.2.4 Configurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
16.2.5 Entradas personalizadas . . . . . . . . . . . . . . . . . . . . . . 19
16.2.6 Criando menus personalizados . . . . . . . . . . . . . . . . . . . 21
16.2.7 Regras para construo de menuentry . . . . . . . . . . . . . . . 22
16.2.8 Configurando fonte e cores . . . . . . . . . . . . . . . . . . . . . 23
16.2.9 Segurana no grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 24
16.3 Colocar Imagem no Grub2 . . . . . . . . . . . . . . . . . . . . . . . . . 25
16.4 Atualizando novas entradas no menu

. . . . . . . . . . . . . . . . . . . 26

Gerenciadores de Boot
16.1 Introduo Terica
Um bootloader o software responsvel por carregar o sistema operacional durante a inicializao do sistema. H vrios bootloaders diferentes disponveis no
GNU/Linux. O papel do bootloader fornecer uma lista de opes de sistemas
operacionais disponveis na mquina e que podem ser carregados. Uma vez que
o usurio. Escolheu qual sistema deseja subir o GRUB inicia o carregamento do
kernel na memria RAM o qual passa a ter o controle sobre a mquina.
Ao contrrio da maioria dos programas que colocam seus arquivos de configurao
no diretrio /etc o grub coloca-os no diretrio /boot/grub.

16.1.1 GRUB (Padro CentOS)


Este o BootLoader padro do CentOS. Para que nosso novo kernel, possa ser
inicializado, devemos configurar nosso bootloader. Veja agora como fazer isso no
Grub.
Embora seja "enjoado", o grub no to complicado como pode parecer primeira
vista. Vamos aproveitar a deixa para aprender um pouco mais sobre ele.
O grub usa o arquivo de configurao "/boot/grub/menu.lst" no Debian, no CentOS
ele um link para /boot/grub/grub.conf. Este arquivo lido a cada boot, por isso

16.1 Introduo Terica

4Linux www.4linux.com.br

no necessrio reinstalar o grub ao fazer alteraes, como no caso do lilo.


Este um exemplo de arquivo de configurao do grub:

default 0

timeout 5

color cyan / blue white / blue

splashimage =( hd0 ,0) / grub / splash . xpm . gz

5
6

title CentOS

root ( hd0 ,0)

kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root

initrd / initramfs -2.6.32 -71. el6lx86_64

10
11

title Microsoft Windows

12

root ( hd0 ,2)

13

makeactive

14

chainloader +1

# Se usar Windows7 comente esta linha .

15
16

title Debian Squeeze

17

root ( hd0 ,3)

18

kernel / vmlinuz -2.6.31 ro root =/ dev / sda3

19

initrd / initrd . img -2.6.31

O CentOS o default, por causa da opo "default 0"no incio do arquivo. Do ponto
de vista do grub, o CentOS o sistema "0", o Windows o sistema 1, enquanto
que o Debian o sistema 2. Note que ele conta os sistemas includos na lista a
partir do zero.
Se voc quisesse que o Debian passasse a ser o sistema default, bastaria trocar
"default 0"por "default 2". O mesmo vale para os outros sistemas operacionais instalados.
A linha "timeout 5" um pouco mais cosmtica. Ela diz que se voc no pressionar
nenhuma tecla na tela de boot, o sistema default ser iniciado depois de 5 segundos.

Pgina 4

Linux System Administration

4Linux www.4linux.com.br

16.1 Introduo Terica

Voc pode aumentar ou diminuir o tempo a seu gosto.


A linha "color cyan/blue white/blue"tambm cosmtica. Ela apenas indica as cores
do texto e do fundo na tela de boot. Veja que as cores so definidas duas vezes. Da
primeira voc diz as cores que so usadas quando exibida a mensagem de boot
e na segunda as cores que sero usadas em micros onde no seja possvel exibir a
imagem de fundo.
Completando, temos a linha "splashimage=(hd0,0)/grub/splash.xpm.gz", que indica
a imagem de fundo que ser exibida. No caso do CentOS usado um arquivo de
tema, que composto por diversos arquivos dentro da imagem de fundo.
O "(hd0,0)"dentro da opo diz a partio onde o CentOS est instalado, onde ele
vai procurar o arquivo. Como pode ver, o grub usa uma nomenclatura prpria para
designar as parties do HD, o que acaba sendo o aspecto da configurao mais
difcil de entender.
No Linux os HDs e parties so acessados atravs de dispositivos especiais, localizados dentro do diretrio "/dev". Um HD IDE instalado como master na primeira
porta IDE, visto pelo sistema como "/dev/hda"e a primeira partio dentro dele
vista como "/dev/hda1". Se voc usasse um HD serial ATA, ento ele seria visto como
"/dev/sda"e a primeira partio como "/dev/sda1".
Se voc est me acompanhando at aqui, sente e respire fundo, pois nada disso vale
para o grub. Para "simplificar", os desenvolvedores decidiram adotar uma nomenclatura prpria, onde os HDs e parties so nomeados a partir do zero.
Ou seja, o "/dev/hda1"ou /dev/sda1 referenciado na configurao do grub como
"(hd0,0)"(primeiro HD, primeira partio). O "(hd0,2)"do exemplo seria referente terceira partio do primeiro HD, ou seja, faria referncia ao "/dev/hda3"ou /dev/sda3.
Em resumo, na nomenclatura adotada pelo grub temos:

/ dev / hda = 0

Linux System Administration

Pgina 5

16.1 Introduo Terica

/ dev / hdb = 1

/ dev / hdc = 2

/ dev / hdd = 3

4Linux www.4linux.com.br

As parties dentro de cada HD so tambm nomeadas a partir do zero:

/ dev / hda1 ou / dev / sda1 = 0 ,0

/ dev / hda2 ou / dev / sda2 = 0 ,1

/ dev / hda3 ou / dev / sda3 = 0 ,2

/ dev / hda4 ou / dev / sda4 = 0 ,3

/ dev / hda5 ou / dev / sda5 = 0 ,4

/ dev / hda6 ou / dev / sda6 = 0 ,5

Para o grub esta distino entre hds no existe. O "/dev/sda1"continua sendo "(hd0,0)"dentro
do grub.
O que acontece ento se voc tiver um HD IDE e outro SATA na mesma mquina?
Bem, a depende de como eles estiverem configurados dentro do setup. O HD "primrio", ou seja, o que o BIOS acessa primeiro na hora de carregar o sistema, ser
visto como "(hd0)", independentemente de ser SATA ou IDE, enquanto o outro ser
visto como "(hd1)".
Uma forma de confirmar isso checar o contedo do arquivo "/boot/grub/device.map"
(com o sistema j instalado). Ele contm uma lista dos HDs detectados pelo grub, e
o endereo atribudo a cada um.
Agora que entendemos como o grub nomeia os HDs e parties, podemos ir ao
que interessa, ou seja, entender como funcionam as mltiplas sees do grub, que
permitem carregar cada sistema operacional.
No exemplo, o HD est configurado da seguinte forma:

/ dev / sda1 : CentOS

Pgina 6

Linux System Administration

4Linux www.4linux.com.br

/ dev / sda2 : Windows

/ dev / sda3 : Debian

16.1 Introduo Terica

Esta configurao vem bem a calhar, pois permite explicar os casos mais comuns,
ou seja, a seo referente ao CentOS, ao Windows e referente a outras distribuies
Linux, no caso o Debian.
Vamos comear com a seo do CentOS:

title CentOS

root ( hd0 ,0)

kernel / vmlinuz -2.6.32 -71. el6lx86_64 ro root =/ dev / VolGroup / lv_root

initrd / initramfs -2.6.32 -71. el6lx86_64

A linha "title" contm apenas o nome do sistema, da forma como ele ir aparecer na
tela de boot. No preciso que o nome indique corretamente o sistema, voc pode
usar apelidos, o importante apenas que um sistema receba um apelido diferente
do outro.
A linha "root" logo a seguir, indica a localizao do /boot (no formato do grub), ou
seja, onde o sistema est instalado. Como o CentOS neste caso est instalado na
primeira partio do HD, usamos "(hd0,0)".
A terceira linha, "kernel", indica o arquivo com o kernel, que ser carregado no
incio do boot. O Kernel vai sempre dentro da pasta "/boot"e o arquivo tem o nome
padro de "vmlinuz", seguido da verso, como "vmlinuz-2.6.32-71.el6lx86_64". Alm
de indicar a localizao do arquivo, voc pode incluir opes que sero passadas
para ele no incio do boot, por exemplo: "acpi=off", "vga=791"e assim por diante.
A opo de acpi=off desabilita o gerenciador de energia acpi, j a opo vga=791
indica a resoluo de vdeo que ser usada no terminal. O nmero "791"indica
1024x768, "788"indica 800x600 e se voc substituir o nmero pela palavra "normal",
o terminal passa a usar a resoluo de texto padro, como nos monitores CGA ;).

Linux System Administration

Pgina 7

16.1 Introduo Terica

4Linux www.4linux.com.br

Usando "vga=normal"o bootsplash exibido durante o carregamento do sistema tambm deixa de funcionar.
Finalmente, temos a linha "initrd", que opcional, permitindo indicar a localizao
de um arquivo initrd, que ser carregado junto com o Kernel. O initrd nem sempre usado. Quando necessrio, ele gerado durante a instalao, incluindo mdulos de que o sistema precisar no incio do boot. Se ele no estiver dentro da
pasta "/boot"junto com o Kernel, no precisa se preocupar, pois ele no est sendo
usado.
Em seguida temos a seo referente ao Windows:

title Microsoft Windows

root ( hd0 ,2)

makeactive

chainloader +1

O Windows um caso especial, pois ele no carregado diretamente pelo grub.


Em vez disso ele inicializado em um modo chamado de "chainload", onde o grub
simplesmente carrega o gerenciador de boot do Windows (que instalado dentro da
partio) e deixa que ele se encarregue de inicializar o sistema. Isso indicado pela
linha "chainloader +1".
Isto simplifica as coisas, pois voc precisa apenas indicar um nome ou apelido na
linha "title"e indicar a partio onde ele est instalado na linha "root". No nosso
exemplo, o Windows est instalado na terceira partio do HD, por isso o "(hd0,2)".
A opo "makeactive" marca a partio do Windows como ativa, uma configurao
que necessria ao inicializar o Windows 95/98/ME, onde ainda utilizado o MSDOS na fase inicial do boot. Ela no mais necessria no XP ou no Vista, mas,
como tambm no atrapalha, comum que ela continue sendo usada.
Concluindo, temos a seo referente ao Debian, que pode ser usada (com as devidas
modificaes) tambm para outras distribuies Linux instaladas no HD:

Pgina 8

Linux System Administration

4Linux www.4linux.com.br

title Debian GNU / Linux ( testing / unstable )

root ( hd0 ,3)

kernel / boot / vmlinuz -2.6.18 ro quiet vga =791

initrd / boot / initrd . img -2.6.18

16.1 Introduo Terica

Esta seo muito similar seo do CentOS, que vimos a pouco. O Debian neste
caso est instalado na quarta partio, que no grub vista como "(hd0,3)". O importante indicar corretamente o arquivo com o Kernel, dentro da partio e o initrd
(caso exista).

Voc poderia duplicar estas quatro linhas para incluir outras distribuies. Bastaria
alterar a partio dentro da linha "root"e indicar corretamente o arquivo do Kernel e
o initrd que seriam usados.

Embora seja um tema um pouco chato de estudar, importante conhecer pelo menos
o bsico sobre a configurao do grub, pois ele usado atualmente em praticamente
todas as distribuies, de forma que um conhecimento que voc vai acabar usando
bastante.

Continuando, a configurao feita no arquivo "/boot/grub/menu.lst" lido pelo grub


a cada boot, por isso voc no precisa se preocupar em regravar o grub a cada
alterao no arquivo, como no caso do lilo. Em geral, voc s precisa regravar o grub
em caso de acidentes, como quando ele subscrito acidentalmente, ao reinstalar o
Windows ou instalar outra distribuio no mesmo HD.

No caso das distribuies, Linux, quase sempre voc tem a opo de instalar gravando o gerenciador de boot na partio, o que permite reinstalar sem subscrever o
grub "titular". Aqui, por exemplo, temos um screenshot do instalador do Ubuntu:

Linux System Administration

Pgina 9

16.1 Introduo Terica

4Linux www.4linux.com.br

O problema o Windows, j que ele chega "chutando o balde", gravando seu gerenciador de boot na MBR sem nem te consultar.
Isto acaba se revelando um grande problema, j que voc perde o acesso ao Linux
instalado no HD sempre que precisar reinstalar o Windows.
Nestes casos, voc pode regravar o grub dando boot com um live CD do linux.
D boot pelo CD e abra um terminal como root. A partir da, use o comando "grub"para
entrar no prompt do grub, onde usaremos os comandos para regravar o gerenciador
de boot:

# grub

Dentro do prompt, precisamos rodar dois comandos, especificando a partio onde


o CentOS (ou a distribuio "dona"do grub) est instalada e o dispositivo onde o grub
ser instalado.
Comece rodando o comando "root", que especifica a partio de instalao do sistema. No exemplo, o CentOS est instalado no "(hd0,0)", de forma que o comando
fica:

Pgina 10

Linux System Administration

4Linux www.4linux.com.br

16.1 Introduo Terica

grub > root ( hd0 ,0)

Falta agora o comando "setup", que especifica aonde o grub ser gravado. Neste
caso, estou gravando o grub na MBR do primeiro HD:

grub > setup ( hd0 )

Terminando, voc pode sair do prompt do grub usando o "quit"e reiniciar o micro.
Este um exemplo de operao que mais simples no grub. No lilo, era necessrio
montar a partio e abrir um chroot para conseguir regravar o gerenciador :).
Mais um problema comum acontece quando voc precisa configurar o grub numa
mquina com vrios HDs. Nestes casos, alm de verificar como o grub detectou
cada um, voc precisa se preocupar em gravar o grub no MBR do HD correto.
O problema muito simples. Quando voc possui mais de um HD na mquina, voc
configura uma ordem de boot no Setup do micro. O HD que estiver em primeiro na
ordem de boot do setup, ser usado para inicializar a mquina e, consequentemente
ser reconhecido pelo grub como "(hd0)".
Se voc instalar o CentOS no segundo HD, e o grub for instalado na MBR do segundo
HD, o CentOS no vai inicializar depois de instalado, pois o BIOS do micro continuar
lendo o MBR do primeiro HD.
A soluo no caso bem simples. Mesmo que voc instale o CentOS, ou qualquer outra distribuio no segundo HD, tome sempre o cuidado de gravar o grub no
MBR do primeiro HD. Se voc est instalando o Debian (por exemplo), na partio
/dev/sdb1 (a primeira partio do segundo HD) o "root", ou seja, o dispositivo aonde
o sistema est sendo instalado ser "(hd1,0)", mas na hora de gravar o grub, voc
indicaria o "(hd0)", que o primeiro HD.
Ao fazer isso manualmente pelo prompt do grub, voc usaria os comandos:

Linux System Administration

Pgina 11

16.1 Introduo Terica

# grub

grub > root ( hd1 ,0)

grub > setup ( hd0 )

grub > quit

4Linux www.4linux.com.br

Note que isto necessrio apenas ao regravar o grub manualmente. Outra pegadinha que quando voc tem uma instalao do Windows no segundo HD (hd1,0 no
grub), como em situaes onde voc compra outro HD para instalar Linux e instala
o HD com o Windows como secundrio, necessrio adicionar duas linhas na seo do grub referente ao Windows. Elas fazem com que a posio lgica dos dois
HD seja trocada, fazendo com que o Windows pense que est inicializando a partir
do primeiro. Sem isso, voc tem um erro de "partio invlida"durante o boot e o
Windows no carregado.
Ao adicionar as duas linhas, a seo referente ao Windows ficaria:

title Windows

root ( hd1 ,0)

makeactive

chainloader +1

map ( hd1 ) ( hd0 )

map ( hd0 ) ( hd1 )

16.1.2 Segurana no grub


Para melhorarmos nossa segurana local, uma boa seria colocar senha no grub,
ento vamos fazer melhor, iremos colocar uma senha criptografada nele:

# / sbin / grub - md5 - crypt

$1$q0ZwgzZO$BMy4amrK53Q01oRLg . W166ivy

Pgina 12

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

Aps digitarmos nossa senha ela criptografada em md5, a basta copi-la e editar
o arquivo /boot/grub/menu.lst.
Adicione no comeo do arquivo a seguinte linha:

password -- md5 \ $1 \ $q0ZwgzZO \ $BMy4amrK53Q01oRLg . W166ivy

A importncia de termos senha no Grub que se o mesmo estiver livre de senha,


qualquer pessoa na hora da inicializao pode edit-lo e inicializ-lo para ganhar
poderes de root sem saber a senha.

16.2 GRUB2 (Padro Debian)


Este o bootloader padro no Debian Squeeze. Na inicializao do computador o
GRUB2 apresenta o menu e espera a atuao do usurio dentro do tempo fixado ou
transfere automaticamente o controle para o sistema operacional.
GRUB2 um software Open Source. Ele descendente do GRUB (GRand Unified
Bootloader).
Foi completamente reescrito para dar ao usurio flexibilidade e performance significativamente aumentadas.

16.2.1 Melhorias
As melhorias em relao ao GRUB incluem :
- apoio de scripts - mdulo de carregamento dinmico - modo de recuperao - menus personalizados - temas - suporte ao menu grfico - imagens iso de Live CD de

Linux System Administration

Pgina 13

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

boot diretamente do disco rgido - nova estrutura de arquivos de configurao - sem


suporte a plataforma x-86 (tal como PowerPc) - suporte universal a UUIDs

16.2.2 GRUB vs GRUB2


O menu do GRUB2 parecer familiar aos usurios do Grub mas h muitas diferenas
internamente.
- pressione a tecla SHIFT para mostrar o menu durante o boot (no GRUB legacy
formalmente ESC). - /boot/grub/menu.lst do GRUB legacy foi substituido por /boot/grub/grub.cfg no GRUB2.

no h "/find boot/grub/stage1"no prompt do grub. Stage 1.5 foi eliminado

o principal arquivo de menu /boot/grub/grub.cfg no para ser editado mesmo


pelo root.

grub.cfg sobrescrito sempre que houver uma atualizao, um kernel for adicionado/removido ou o usurio executar update-grub.

o usurio pode criar um arquivo personalizado em /etc/grub.d/40_custom com


suas prprias entradas. Esse arquivo no ser sobrescrito.

o arquivo de configurao principal para alterar as configuraes do menu o


/etc/default/grub.

existem vrios arquivos para configurar o menu - /etc/default/grub mencionado


acima e todos os arquivos da pasta /etc/grub.d/.

mudou a numerao das parties. A primeira partio agora 1 em vez de 0.


O primeiro dispositivo no entanto continua 0 (no mudou).

Pgina 14

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

buscas automticas para outros sistema operacionais como Windows sempre


que update-grub executado.
nenhuma mudana na configurao dos arquivos acontecer at que o comando update-grub seja executado.

16.2.3 Hierarquia de arquivos e diretrios


/boot/grub/grub.cfg
o que mais se assemelha ao /boot/grub/menu.lst do GRUB mas diferentemente
desse o grub.cfg no se destina a ser editado. Cada seo claramente delimitada
com (### BEGIN) e a referncia do arquivo na pasta /etc/grub.d a partir da qual
a informao foi gerada. grub.cfg atualizado executando o comando update-grub
e automaticamente modificado quando h uma atualizao ou instalao/remoo
de kernel.
Por padro, e sempre que o comando update-grub executado, este arquivo feito
somente leitura. Isto porque a inteno que o arquivo no seja editado manualmente.
O usurio tambm ver uma infinidade de arquivos *. mod na pasta /boot/grub. Esses
arquivos so da natureza modular do GRUB 2 e so carregados necessariamente
pelo GRUB 2.
/etc/default/grub
Esse arquivo pode ser editado e configurado. Detalhes da configurao esto mais
adiante em Configurando GRUB 2.
/etc/grub.d/ (diretrio)
Os arquivos nessa pasta so lidos durante a execuo do comando update-grub e

Linux System Administration

Pgina 15

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

suas instrues so incorporadas ao /boot/grub/grub.cfg.


A colocao dos tens de menu no grub.cfg determinada pela ordem em que os arquivos so executados nessa pasta. Arquivos com numeral no incio so executados
primeiro comeando pelo menor. 10_linux executado antes de 20_mentest que
executado antes de 40_custom.
Entradas personalizadas podem ser criadas no arquivo 40_custom ou outro recm
criado.
Somente arquivos executveis geram sada para o grub.cfg durante a execuo do
update-grub.
Os arquivos default nesta pasta so :
- 00_header: suas configuraes normalmente so importadas de informaes do
/etc/default/grub e os usurios no precisam mudar esse arquivo.
- 05_debian_theme : configura splash image, cor do texto, cor de realce e tema. Na
ausncia de splash image esse arquivo configura um tema monocromtico para o
menu inicial.
- 10_hurd : no usada.
- 10_linux : localiza kernels no root device para o sistema operacional em uso.
Leva essa informao e estabelece os nomes apresentados no menu para estes
kernels.
- 20_memtest86+ : procura por /boot/memtest86+.bin e o inclue como opo no
menu do GRUB 2. No h opo para remover essa entrada do menu.Pode ser inibido removendo o executvel desse arquivo sudo chmod -x /etc/grub.d/20_memtest86+
e executando depois update-grub.
- 30_os-prober : procura por Linux e outros sistemas operacionais.Resultados so
colocados no grub.cfg baseando-se nos scripts desse arquivo. O arquivo dividido

Pgina 16

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

em 4 sees representando os tipos de sistemas operacionais manipulados pelos


scripts : Linux, Windows, OSX e Hurd. Variveis nesse arquivo determinam o formato dos nomes exibidos no /boot/grub/grub.cfg e no menu do GRUB 2. Usurios
familiarizados com scripts bsico podem alterar essas variveis e mudar o formato
das entradas de menu exibidas. Alternativamente o usurio pode inserir uma entrada
no /etc/default/grub a qual desativa esse script.
40_custom : Para adicionar entradas de menu personalizado que sero inseridas
no grub.cfg depois de update-grub. Mais informaes sobre esse arquivo na parte
de configurao.

16.2.4 Configurao

Alteraes na configurao so normalmente feitas em /etc/defaul/grub e nos


arquivos da pasta /etc/grub.d.
O arquivo /boot/grub/grub.cfg no deve ser editado pelo usurio; mudanas nesse
arquivo so feitas pelos scripts de configurao.
Algumas das alteraes mais comuns como OS/kernel default, menu timeout podem
ser feitas pelo StartUp-Manager.
O Arquivo /etc/default/grub o principal arquivo de configurao para alterar as
configuraes padro.
Aps a instalao as seguintes linhas podem ser alteradas pelo usurio :
- GRUB_DEFAULT
Configura a entrada padro do menu.
Entradas podem ser numricas ou saved (ltima usada).

Linux System Administration

Pgina 17

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

- GRUB_DEFAULT=0
Configura a entrada default pela posio. Como no GRUB a primeira entrada zero,
a segunda 1, etc,
- GRUB_DEFAULT=saved
Define a entrada de menu padro com o que foi selecionado anteriormente (a ltima
seleo).
Se o menu exibido durante a inicializao, a ltima entrada selecionada ser realada. Se nenhuma ao for tomada, esta seleo ser iniciada no final do tempo
limite ou se o menu est oculto.
- GRUB_DEFAULT=xxxx
Uma entrada de menu exata, incluida entre aspas, tambm pode ser usada. Neste
caso, a localizao no menu no importa. Exemplo: GRUB_DEFAULT=Debian
Squeeze
- GRUB_TIMEOUT= Configura o tempo.
- GRUB_HIDDEN_TIMEOUT=0 O menu ficar oculto.
- GRUB_HIDDEN_TIMEOUT=0
O menu no ser oculto
- GRUB_HIDDEN_TIMEOUT_QUIET=true
true = nenhuma contagem regressiva exibida. A tela ficar em branco. false = Um
contador ser exibido numa tela em branco durante o tempo do GRUB_HIDDEN_TIMEOUT.
- GRUB_GFXMODE=640480 Descomente essa linha para mudar a resoluo. Ela
fornece resolues suportadas pela placa de vdeo do usurio (640480, 800600,

Pgina 18

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

12801024, etc). aplica-se apenas a resoluo do menu de boot.

Dica: Definindo a mesma resoluo do sistema operacional o tempo de inicializao diminuir ligeiramente.

Embora no seja necessrio, o usurio tambm pode especificar a cor BitDepth


anexando-o configurao da resoluo. Um exemplo seria 1280x1024x24 ou 640x480x32.
O usurio tambm pode adicionar vrias resolues. Se o GRUB2 no pode usar a
primeira entrada, ela ir tentar o prximo ajuste.
As configuraes so separadas por uma vrgula. Exemplo: 1280x1024x16, 800x600x24,
640480.
Se utilizar uma splash image, certifique-se que a configurao da resoluo e do
tamanho da imagem so compatveis.
Se estiver usando uma entrada que produz uma mensagem no encontrado ao
executar update-grub, tente adicionar ou alterar a cor BitDepth.
Se esta linha est comentada (#) ou a resoluo no est disponvel o GRUB 2 usa
a configurao padro determinada pelo /etc/grub.d/00_header.
- GRUB_DISABLE_LINUX_RECOVERY=true Adicione ou descomente essa linha
se no desejar o Recovery mode no menu. Recovery mode para apenas um
kernel, fazer uma entrada especial em /etc/grub/40_custom.

16.2.5 Entradas personalizadas


GRUB2 permite ao usurio criar selees de menus personalizados que sero automaticamente adicionados ao menu principal quando o comando update-grub exe-

Linux System Administration

Pgina 19

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

cutado. Um arquivo 40_custom vazio est disponvel em /etc/grub.d/ para uso ou


para servir de exemplo para criar menus personalizados. Aqui esto algumas consideraes para menus personalizados:

O nome do arquivo determina a ordem das selees no menu. Nomes numrico so


executados primeiro, seguido por nomes alfabticos.

Entrada 10_linux aparecer antes de 30_os prober, que ser colocado antes de entradas 40_custom, que ir preceder my.custom.entries.

O usurio que desejar que as suas entradas de menu personalizado apaream em


primeiro lugar no menu principal pode nomear a pasta para 06_xxx que suas listas
estaro em primeiro lugar no menu.

O arquivo deve ser feito executvel :

# chmod + x / etc / grub . d / filename

O contedo desse arquivo adiconado ao grub.cfg sem alteraes quando o comando update-grub executado.

Ao contrrio do grub.cfg, arquivos personalizados podem ser editados a qualquer


momento, no so s leitura, e podem ser propriedade do usurio, se ele desejar.
Os arquivos personalizados so estticos. O contedo no ser alterado, quando
novos kernels so adicionados ou removidos.

Se o arquivo personalizado coloca as entradas no topo do grub.cfg, o usurio poder


confirmar no /etc/default/grub (DEFAULT= x) aps executar update-grub. Certifiquese se ainda aponta para a entrada de menu desejada. Para contar, a primeira entrada
do menu no arquivo /etc/default/grub 0.

Pgina 20

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

16.2.6 Criando menus personalizados


O usurio pode editar o arquivo default /etc/grub.d/40_custom ou criar um novo. A
maneira mais fcil de criar o contedo de um menu personalizado copiar uma
entrada do /boot/grub/grub.cfg. Depois de copiado, o contedo do 40_custom pode
ser adaptado a vontade do usurio.
De acordo com o arquivo personalizado padro da amostra (etc/grub.d/40_custom/)
as duas primeiras linhas de um arquivo personalizado em /etc/grub.d devem ser:

# !/ bin / sh

exec tail -n +3 $0

podem ser copiadas entradas de menu existente no arquivo boot/grub/grub.cfg


ou de um arquivo do GRUB legacy. Se for copiado do arquivo menu.lst do
GRUB legacy:

uma cpia de backup deste arquivo pode estar na pasta /boot/grub se o usurio
atualizou do GRUB para GRUB 2.

as seguintes entradas do menu do GRUB legacy devem ser mudadas :

title mudado para menuentry. A linha deve terminar com ({)

root muda para set root=

kernel passa a ser linux

qualquer designao de parties (sda4, sdb6) deve ser mudada porque no


GRUB legacy a primeira partio 0 e no GRUB2 1 (o primeiro disco continua
sendo 0 igual ao GRUB legacy).

Linux System Administration

Pgina 21

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

16.2.7 Regras para construo de menuentry


a primeira linha inicia com menuentry e termina com ({)
o que est entre aspas o que vai aparecer no menu do GRUB 2. Edite como
desejar
a ltima linha do menuentry deve ser (})
no deixe espaos em branco no fim das linhas
a linha set root= deve apontar para a localizao de inicializao do GRUB2
(sdXY)
referncia root da linha Linux dever apontar para a partio do sistema.

Dica : Se GRUB 2 no encontra o kernel referenciado, tente substituir a UUID


pelo nome do dispositivo (exemplo: / dev/sda6).

Exemplo de menuentry :

# ## BEGIN / etc / grub . d /10 _linux ###

menuentry " Debian Squeeze , Linux 2.6.31 -15 - generic " {

recordfail =1

if [ -n $ { have_grubenv } ]; then save_env recordfail ; fi

set quiet =1

insmod ext2

set root =( hd0 ,0)

search -no - floppy -fs - uuid - set 22290 d2e -82 c9 -48 d5 -92 c1 - ce138634eedc

linux / boot / vmlinuz -2.6.31 -15 - generic root = UUID =22290 d2e -82 c9 -48 d5
-92 c1 - ce138634eedc ro vga =789 quiet splash

Pgina 22

Linux System Administration

4Linux www.4linux.com.br

16.2 GRUB2 (Padro Debian)

10

initrd / boot / initrd . img -2.6.31 -15 - generic

11

12

# Essa uma entrada de exemplo para uma parti o com Windows :

13

menuentry " Windows Vista " {

14

set root =( hd0 ,2)

15

chainloader +1

16

16.2.8 Configurando fonte e cores

Estas linhas esto contidas em /etc/grub.d/05_debian_theme.


A cor definida pela linha abaixo. A primeira cor a cor do texto, a segunda a cor
de fundo.

set color \ _normal = black / black

O cdigo abaixo define a cor de entradas selecionadas. A primeira cor a cor do


texto em destaque, a segunda a cor de fundo da linha selecionada. Se black a
segunda entrada, a linha de destaque ser transparente e apenas o texto mudar de
cor.

set color_highlight = magenta / black

O black a cor de transparncia GRUB2 padro . Altere apenas a cor do primeiro


(ou seja, xxxxx /black), se utilizar uma imagem de splash.
Se o segundo valor nesta linha alterada para uma cor diferente de black a imagem
splash ser escondida atrs de um fundo de cor slida.

Linux System Administration

Pgina 23

16.2 GRUB2 (Padro Debian)

4Linux www.4linux.com.br

16.2.9 Segurana no grub2


Para melhorarmos nossa segurana local, uma boa seria colocar senha no grub2,
ento vamos fazer melhor, iremos colocar uma senha criptografada nele, para isso
temos que gerar uma senha criptografada:

# ( echo 123456 ; echo 123456) | grub - mkpasswd - pbkdf2

Enter password :

Reenter password :

Your PBKDF2 is grub . pbkdf2 . sha512 .10000.1 CCB58AE691A20A26872A50FF5D0

ED4D1C872F8B3366548C3AA23F1B735B5CB6498B672835C7A1FD3D10E3E8E8677776

D71658264789132F72B08E66A4224FCD . C6B51DB03F8665FD6B080EDF502DBAD2A20

F3F1992FC878C3CDAE11E4AF82C6EA74A19469A7FB4C7F96275FA7DF3834EB7070EE

D9FFAEBC9C84ADB9D272052A7

Onde : (echo 123456 ;echo 123456) 123456 a senha, caso no queira passar a
senha no comando execute diretamente e preencha o prompt com a senha quando
for solicitado:

# grub - mkpasswd - pbkdf2

Aps digitarmos nossa senha ela criptografada em sha512, a basta copi-la e


editar o arquivo /etc/grub.d/00_header.
Adicione no final do arquivo a seguinte linha:

# vim / etc / grub . d /00 _header

cat << EOF

set superusers = " user "

password_pbkdf2 user grub . pbkdf2 . sha512 .10000.393 F191284EF

E4575DCFFE4D939635CFDDF63E254B86F0DB409C0EE6723691D24C0BB7

3 E0599CE6E39DD22EE5713816D155D0F89EABCDBF0057DEB6DDE953401

Pgina 24

Linux System Administration

4Linux www.4linux.com.br

16.3 Colocar Imagem no Grub2

.8037149 B1F04504F84E019100C56D86816D3859ED7DD557CBEEBD2F95

B5177CCC5C5947559092C4A5320E70B8AA07C81EEAE37711763589D525

F77C54E10CF85EOF

Atualize o grub2:

update - grub

A importncia de termos senha no Grub que se o mesmo estiver livre de senha,


qualquer pessoa na hora da inicializao pode edit-lo e inicializ-lo para ganhar
poderes de root sem saber

16.3 Colocar Imagem no Grub2


Para colocar uma imagem no grub2 bem simples basta ter uma imagem valida,
JPEG, PNG, TGA e JPG, e passar o seu caminho dentro de um arquivo e ja esta
pronto. Vamos a prtica, dentro do diretrio home tem uma imagem jpeg, dexter.jpeg,
vamos colocar ela no grub. Copie a imagem para o /boot/grub:

cp / root / dexter . jpeg / boot / grub

Entre no arquivo 05_debian_theme na linha 146 e mude a imagem padrao do grub


para a nova:

# vim +146 / etc / grub . d /05 _debian_theme

Na linha onde

ANTES

Linux System Administration

Pgina 25

16.4 Atualizando novas entradas no menu

145 set_background_image " $ { WALLPAPER } " " $ { COLOR_NORMAL } " " $ {


COLOR_HIGHLIGHT } " |

4Linux www.4linux.com.br

146 set_background_image " / usr / share / images / desktop - base / desktop grub . png " ||

147 set_default_theme

8
9

DEPOIS

10
11

145 set_background_image " $ { WALLPAPER } " " $ { COLOR_NORMAL } " " $ {


COLOR_HIGHLIGHT } " |

12

146 set_background_image " / boot / grub / dexter . jpeg " ||

13

147 set_default_theme

Pronto, agora basta atualizar o grub, ja vai estar valendo:

# update - grub2

16.4 Atualizando novas entradas no menu


Execute o comando para inserir o novo kernel no arquivo de configurao do GRUB
ou edite-o na mo:

# update - grub2

OU

# vi / boot / grub / grub . cfg

Pgina 26

Linux System Administration

4Linux www.4linux.com.br

16.4 Atualizando novas entradas no menu

menuentry Debian GNU / Linux , with Linux 2.6.32 -5 -686 -- class


debian -- class

gnu - linux -- class gnu -- class os {

insmod part_msdos

insmod ext2

set root = ( hd0 , msdos2 )

search --no - floppy --fs - uuid -- set 8970340 d - ac56 -461 b -815 a
-2388 f9bdadd3

linux

/ vmlinuz -2.6.32 -5 -686 root = UUID =661 d7f7c -3 bfc -4 b9e

- b6d3 -9 c56cda87d3a ro
8

initrd

quiet

/ initrd . img -2.6.32 -5 -686

Aps feitas essas alteraes, reinicie o computador, e veja se o nosso Novo kernel
"boota".
Para adicionar automaticamente um kernel ao Bootloader o nome do kernel deve
comear com vmlinuz e as imagens dos mdulos com initrd ou initramfs.

# update - grub

ou

# update - grub2

Linux System Administration

Pgina 27

16.4 Atualizando novas entradas no menu

4Linux www.4linux.com.br

# grubby -- title = CentOS -- add - kernel =/ boot / vmlinuz -3.2.1 -20111225 c1


-- initrd =/ boot / initrd . img -20111225 c1 -- args =" root =/ dev / VolGroup /
lv_root "

Pgina 28

Linux System Administration

Você também pode gostar