Anda di halaman 1dari 106

Curso de Formação LINUX para empresas

APOSTILA I - APLINUX.com.br
Administração de Sistemas LINUX

Prof. Alexandre Pedroso

Portal do Administrador
de Servidores LINUX

Baseada no Conectiva Linux 9.0


http://www.aplinux.com.br
Alexandre Pedroso – http://www.aplinux.com.br

AGRADECIMENTOS

Em primeiro lugar, gostaria de agradecer a minha esposa e minha filha


que tiveram toda a compreensão necessária para que um projeto
grandioso como este seguisse adiante. Além de compreensão, tive uma
ajuda muito especial da minha esposa, no que diz respeito às revisões
de textos da apostila.

Agradeço também a todas as pessoas que participaram direta ou


indiretamente deste projeto. A elas, eu envio um muito obrigado por
toda e qualquer ajuda que tenham prestado.

Gostaria de deixar também, o agradecimento a Deus, pois, com certeza,


sem Ele, eu não seria capaz de completar todo o processo. Agradeço por
Ele me fornecer conhecimento, força, disposição e clareza para expor
minhas idéias e pensamentos.

Além disso, fica aqui meus parabéns para todos os profissionais que
desenvolvem para plataformas LINUX. Além destes, os parabéns vão
também para os administradores de redes LINUX, usuários LINUX e, até
mesmo, para as pessoas que estão apenas começando neste universo e,
sem dúvida, merecem uma atenção especial, pois cada vez mais,
precisamos de novos adeptos ao sistema.

Para as empresas ou Grupo de Projetos LINUX que, a cada dia, tornam o


LINUX um sistema mais seguro, mais amigável e mais estável envio um
grande abraço e a mensagem que segue:

“Continuem assim, vocês realmente fazem a diferença e mostram


porque o Software Livre supera em todos os aspectos o Software
Proprietário”.

Alexandre Pedroso – http://www.aplinux.com.br


Página 2
Alexandre Pedroso – http://www.aplinux.com.br

ÍNDICE

Capítulo 01 – INTRODUÇÃO 06

- Sistema operacional + histórico 06


- GNU e Software Livre 08
- Distribuições 09

Capítulo 02 - PRIMEIROS PASSOS NO SISTEMA 14

- Usuários comuns e grupos 14


- Superusuário 15
- UID e GID 16
- Comandos envolvidos 17
- Exemplos de utilização 19

Capítulo 03 – SHELL 20

- Conceitos 20
- Tipos de execução do shell e seus arquivos 21
- Comandos envolvidos 23
- Exemplos de utilização 25
- Modelos dos arquivos de configuração do shell 26

Capítulo 04 - GERENCIAMENTO DE ARQUIVOS E 30


DIRETÓRIOS

- Introdução 30
- Metacaracteres 30
- Tipos de arquivos 31
- Listando arquivos e diretórios 31
- Criando e removendo arquivos e diretórios 32
- Copiando, renomeando e movendo arquivos e diretórios 32
- Hard Links e Links Simbólicos 33
- Exemplos de utilização 34

Capítulo 05 - ESTRUTURA DE DIRETÓRIOS 37

- Entendendo a estrutura de diretórios do sistema 37


- Funções dos diretórios do sistema 38

Capítulo 06 - DOCUMENTAÇÃO LINUX 40

- Como utilizar a documentação do sistema? 40

Alexandre Pedroso – http://www.aplinux.com.br


Página 3
Alexandre Pedroso – http://www.aplinux.com.br

- Exemplos de utilização 41
- Fontes de documentação na Internet 42

Capítulo 07 - PERMISSÕES EM ARQUIVOS E DIRETÓRIOS 43

- Introdução 43
- Modo Simbólico 44
- Modo Octal 45
- Suid bit, Sgid bit e Sticky bit 45
- Comandos envolvidos 47
- Exemplos de utilização 48

Capítulo 08 - COMANDOS AVANÇADOS DO SISTEMA 50

- Comandos avançados do sistema 50


- Exemplos práticos 53

Capítulo 09 – REDIRECIONAMENTO E PIPE 55

- Introdução 55
- Comandos envolvidos 55
- Exemplos de utilização 55

Capítulo 10 - GERENCIAMENTO DE USUÁRIOS E GRUPOS 57

- Introdução 57
- Contas de Usuários e Contas de Grupos 57
- Comandos envolvidos 58
- Exemplos de utilização 59

Capítulo 11 - SISTEMAS DE ARQUIVOS E PARTIÇÕES 61

- Introdução 61
- Comandos envolvidos 64
- Exemplos práticos 65

Capítulo 12 – SERVIÇOS E PROCESSOS 67

- Introdução 67
- Gerenciamento de processos 68
- Exemplos práticos 70

Capítulo 13 - INSTALAÇÃO DE PACOTES 71

Alexandre Pedroso – http://www.aplinux.com.br


Página 4
Alexandre Pedroso – http://www.aplinux.com.br

- Introdução 71
- Comandos envolvidos 72
- Exemplos de utilização 73

Capítulo 14 – EXERCÍCIOS 75

- Lista de exercícios 75

Capítulo 15 – INSTALAÇÃO DO CONECTIVA LINUX 9.0 87

- Instalação do Conectiva Linux 9.0 87

Capítulo 16 – GLOSSÁRIO DE TERMOS TÉCNICOS 89

- Glossário de termos técnicos 89

Capítulo 17 – GABARITO DOS EXERCÍCIOS 106

- Gabarito dos exercícios 106

Alexandre Pedroso – http://www.aplinux.com.br


Página 5
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 01 – INTRODUÇÃO

1.1 – SISTEMA OPERACIONAL + HISTÓRICO

O Linux é um sistema operacional. Mas o que vem a ser um sistema


operacional?

Sistema Operacional (S.O.) é um conjunto de programas que atuam


como intermediário entre o hardware e o usuário. Esse conjunto de
programas é responsável pela transmissão de instruções do usuário
para o hardware (computador) para que estas sejam executadas em
tempo real. Seguem abaixo, algumas tarefas que devem ser
desempenhadas por um Sistema Operacional:

- Controlar todos os dispositivos de I/O (input/output).


- Controlar as requisições de hardware.
- Prover uma interface agradável ao usuário.

Conforme vimos acima, o sistema operacional é formado por um


conjunto de programas. Mas como é dividido esse conjunto de
programas? Muito simples. Temos basicamente dois modos de
operação:

- Modo Kernel.
- Modo Usuário.

O Kernel é o núcleo do sistema operacional. É nele que rodam todas as


rotinas do sistema. Somente as rotinas do kernel têm acesso ao
hardware do computador. No Modo Kernel, o sistema operacional
trabalha com instruções privilegiadas tendo acesso total ao processador.
Suas principais funções são:

- Tratamento de interrupções.
- Criação e eliminação de processos.
- Sincronização e comunicação entre processos.
- Controle de processos.
- Gerência de memória.
- Gerência do sistema de arquivos.
- Operações de entrada e saída (I/O).

Alexandre Pedroso – http://www.aplinux.com.br


Página 6
Alexandre Pedroso – http://www.aplinux.com.br

No Modo Usuário, rodam as aplicações dos usuários que fazem com que
este interaja com o sistema operacional. Neste modo, não há acesso ao
hardware e também o acesso ao processador é reduzido.

Depois desta definição de sistema operacional podemos continuar


falando um pouco mais sobre sistemas LINUX. O LINUX foi criado a
partir de uma mini-distribuição de UNIX chamada MINIX.
Os sistemas UNIX existem há muito tempo. Talvez esse seja um dos
motivos de tamanho sucesso. Na verdade, toda a qualidade destes
sistemas está baseada na sua portabilidade e na sua estabilidade. Eles
são considerados portáteis, pois conseguem “rodar” a grande maioria
dos programas escritos nas mais diversas linguagens de programação e
nas mais diversas plataformas. Além disso, normalmente programas
escritos para UNIX são, facilmente, portados para outras plataformas. E
aí vem o mais importante: conseguem ser portáteis com uma
estabilidade invejável. Com essas duas qualidades, os sistemas UNIX
ganharam vários adeptos pelo mundo todo, inclusive programadores de
software, que encontraram nele todos os recursos necessários para se
escrever programas, além de um vasto material de pesquisa e
aprendizado.

Como falamos anteriormente, o LINUX surgiu de uma mini-distribuição


de UNIX chamada MINIX. Portanto, podemos concluir que, muitas das
características presentes nos sistemas UNIX também estão presentes
em sistemas LINUX. Dentre elas, podemos destacar:

- Multitarefa – capacidade do sistema operacional de compartilhar o


processador para duas ou mais tarefas, dando impressão que
estão sendo executadas simultaneamente.

- Multiusuário – capacidade do sistema operacional de permitir que


vários usuários consigam utilizá-lo ao mesmo tempo. Os usuários
podem utilizar a mesma máquina e os mesmos dispositivos
simultaneamente.

- Tempo Compartilhado para processos – capacidade do sistema


operacional de executar vários processos ao mesmo tempo,
gerando os conhecidos processos pais e processos filhos. Além
disso, pode-se definir prioridades de execução de processos com
muita eficácia.

- Simplicidade – normalmente, sistemas LINUX tem uma forma de


interação com os usuários bastante simples, porém muito

Alexandre Pedroso – http://www.aplinux.com.br


Página 7
Alexandre Pedroso – http://www.aplinux.com.br

eficiente. Podemos citar como exemplo, sua interface em modo


texto, que é bem simples e muito estável e rápida.

Existem várias outras características comuns aos dois sistemas, mas


creio que estas sejam as mais importantes e por esse motivo, não me
estenderei mais com isso.

1.2 – GNU E SOFTWARE LIVRE

O sistema operacional LINUX é composto por um conjunto de aplicações


e um Kernel. Este Kernel está sob os termos do GNU (General Public
License – GPL). Mas o que vem a ser GNU?

Na década de 70, o compartilhamento de programas entre


programadores de computadores era uma prática muito natural. Eles
compartilhavam o código fonte para ganhar agilidade no
desenvolvimento de seus programas. Sendo assim outros
programadores poderiam entender seus códigos, alterá-los e melhorá-
los, caso necessário. Porém, com o passar dos anos, esta prática foi se
tornando cada vez menos utilizada. Então, alguns programadores
resolveram desenvolver um sistema operacional totalmente GNU, para
poderem dar continuidade ao compartilhamento de seus códigos.

Surgia então, o primeiro sistema operacional sob os termos da licença


GNU. Este sistema foi desenvolvido com bases no UNIX, mas não era
um UNIX.

Quando falamos sobre GNU não podemos deixar de falar também sobre
Software Livre. Mas o que vem a ser Software Livre?

Este é um termo que costuma gerar muitas e muitas confusões. O


Software Livre não tem nada a ver com gratuidade, não tem a ver com
sistemas gratuitos. Software Livre refere-se à liberdade dos usuários em
executar, copiar, distribuir, estudar, modificar e melhorar o programa.
Seguem abaixo, as quatro liberdades mais conhecidas e citadas do
Software Livre (SL):

- Liberdade de executar o programa com qualquer propósito.

Alexandre Pedroso – http://www.aplinux.com.br


Página 8
Alexandre Pedroso – http://www.aplinux.com.br

- Liberdade para estudar como o programa funciona e adaptá-lo às


suas necessidades. O acesso ao código fonte é pré-requisito para
que isso possa acontecer.

- Liberdade para redistribuir cópias do programa, para que se possa


ajudar aos amigos, conhecidos, parentes, etc.

- Liberdade para melhorar o programa, e distribuir suas melhorias


para o público em geral, de maneira que toda a comunidade possa
se beneficiar. O acesso ao código fonte é pré-requisito para que
isso possa acontecer.

Mais informações dobre GNU ou sobre Software Livre podem ser


encontradas em:

- http://www.gnu.org/home.pt.html
- http://www.gnu.org/licenses/licenses.pt.html

Com os esclarecimentos acima sobre GNU e Software Livre, podemos


falar um pouco mais sobre o LINUX.

Linus Torvalds iniciou o projeto do Kernel do LINUX inspirado no MINIX,


como já foi dito anteriormente. A idéia era “criar um MINIX melhor do
que o MINIX”, de acordo com suas próprias palavras.

Em 1991 ele anunciou, na Internet, a primeira versão oficial do LINUX,


versão 0.02. Deste dia até hoje, muitos e muitos programadores
espalhados pelo mundo contribuíram para fazer do LINUX o que ele é
hoje – um sistema operacional que consegue agregar algumas
importantes características do UNIX com interesses técnicos dos
administradores de rede, administradores de sistema, programadores e
usuários. E o que é melhor, tudo isso dentro do conceito de Software
Livre.

1.3 – DISTRIBUIÇÕES

Existem várias distribuições LINUX disponíveis para todos os gostos e


para todos os tipos de uso. Temos distribuições voltadas para estações
de trabalho, distribuições voltadas para servidores de rede e até
distribuições voltadas para executarem apenas serviços específicos. Mas
o que vem a ser uma distribuição LINUX?

Alexandre Pedroso – http://www.aplinux.com.br


Página 9
Alexandre Pedroso – http://www.aplinux.com.br

Uma definição para distribuição LINUX é que ela é formada por um


Kernel e por um conjunto de aplicativos que acabam por completar o
sistema operacional. Além disso, as distribuições LINUX podem fornecer
aplicativos, serviços e scripts diferenciados e personalizados de acordo
com o objetivo de cada distribuição.
Existem basicamente dois modelos de desenvolvimento de distribuições
LINUX. São eles:

- Projetos
- Empresas

Projetos

As distribuições LINUX desenvolvidas como Projetos, são aquelas que,


na grande maioria dos casos, não tem fins lucrativos. Seria mais ou
menos assim. Um grupo de programadores que começam a trabalhar
juntos a fim de disponibilizar para sua comunidade de membros e
usuários um sistema LINUX voltado para aplicações específicas. Se este
sistema é bem aceito pela comunidade, ele pode expandir seus
horizontes para outros tipos de aplicações ou simplesmente continuar
com sua idéia inicial.

Neste modelo de desenvolvimento, muitas pessoas podem colaborar


com aplicativos, traduções, documentações, enfim, tudo que fará parte
do sistema operacional.

Podemos citar algumas distribuições LINUX baseadas neste modelo de


desenvolvimento, bem como suas principais características:

1) Debian

O Debian é desenvolvido por voluntários e estudantes de uma


universidade. Utiliza uma ferramenta chamada apt-get para
atualização de pacotes e atualização do próprio sistema. Suas
principais características são estabilidade e alto poder de atualização
do sistema. Seu principal defeito é que sua instalação pode ser
considerada complexa para usuários mais leigos.

Voltada tanto para estações de trabalho como para servidores de


rede.

Maiores informações podem ser encontradas em:

Alexandre Pedroso – http://www.aplinux.com.br


Página 10
Alexandre Pedroso – http://www.aplinux.com.br

http://www.debian.org

2) Slackware

Uma distribuição que, normalmente, é utilizada por usuários mais


experientes. Suas configurações são quase todas feitas em modo
texto, o que faz com que as pessoas que o utilizam, tenham que
conhecer profundamente seu sistema. Sua principal característica é a
estabilidade. Seu principal defeito também é a instalação que pode
ser considerada complexa para usuários mais leigos.

Voltada tanto para estações de trabalho como para servidores de


rede.

Maiores informações podem ser encontradas em:

http://www.slackware.org

3) Kurumin

O Kurumin é uma distribuição nacional mantida, principalmente, por


seu criador – Carlos Morimoto. O Kurumin inicialmente veio como
uma opção para as pessoas que gostariam de aprender e utilizar
sistemas LINUX, mas que não queriam ou não possuíam
conhecimentos suficientes para instalá-los em seus discos rígidos.
Então, foi criada essa distribuição, baseada no KNOPPIX, que “roda”
diretamente do cd-rom, ou seja, não é necessário instalação. Basta
colocar a media do Kurumin na unidade de cd-rom e reiniciar o
computador. Esta distribuição faz parte de um seleto grupo chamado
pela comunidade de LIVE-LINUX, ou seja, LINUX que “rodam”
diretamente do cd-rom. Suas principais características são a
facilidade de uso, a portabilidade do sistema e a detecção de
hardware. Seu principal defeito é não ter uma instalação /
configuração mais voltada para servidores de rede.

Voltada para estações de trabalho.

Maiores informações podem ser encontradas em:

http://www.kurumin.com.br

Alexandre Pedroso – http://www.aplinux.com.br


Página 11
Alexandre Pedroso – http://www.aplinux.com.br

Empresas

As distribuições LINUX desenvolvidas por Empresas, são aquelas que, na


grande maioria dos casos, disponibilizam além de um produto que pode
ser comprado ou “baixado” pela Internet, suporte para seus usuários
que adquiriram o produto comercialmente. Isso é importante,
principalmente, para profissionais que começaram a utilizar sistemas
LINUX há pouco tempo e que desejam suportá-lo e administrá-lo
profissionalmente. Além disso, quando comprado, o produto é entregue
em uma “caixinha” que contém além dos cd’s de instalação, manuais de
usuários, manuais de administradores e cartões de registro.

Neste modelo de desenvolvimento, somente os programadores da


empresa desenvolvem o produto. O máximo que usuários e membros da
comunidade podem fazer para participar do desenvolvimento é entrar
para o conhecido report de bug’s nas versões betas do produto.

Podemos citar algumas distribuições LINUX baseadas neste modelo de


desenvolvimento, bem como suas principais características:

1) Conectiva

Distribuição nacional de maior destaque e, muito provavelmente, a


mais utilizada em toda a América Latina. Existem diversas escolas
credenciadas pela Conectiva para oferecer treinamento LINUX e
certificação profissional neste produto. Suas principais características
são estabilidade, documentação em português, certificação
profissional reconhecida e instalação fácil. Seu principal defeito é o
modelo de desenvolvimento fechado.

Voltada tanto para estações de trabalho como para servidores de


rede.

Maiores informações podem ser encontradas em:

http://www.conectiva.com.br

2) Red Hat

Red Hat é a distribuição mais conhecida e mais utilizada em todo o


mundo. Isso fez com que várias distribuições se baseassem nela
(Conectiva LINUX, Mandrake, Fedora, entre outras).

Alexandre Pedroso – http://www.aplinux.com.br


Página 12
Alexandre Pedroso – http://www.aplinux.com.br

A Red Hat criou diversas ferramentas para gerenciamento do seu


sistema, tais como, sndconfig, Xconfigurator, rpm, entre outras. Suas
principais características são estabilidade, certificação profissional
reconhecida e instalação fácil. Seu principal defeito é o modelo de
desenvolvimento fechado e ultimamente só pode ser adquirida
comercialmente.

Voltada tanto para estações de trabalho como para servidores de


rede.

Maiores informações podem ser encontradas em:

http://www.redhat.com

3) Mandrake

Mandrake é uma distribuição muito fácil e indicada também aos


iniciantes no mundo LINUX.

A Mandrake criou diversas ferramentas para gerenciamento do seu


sistema, tais como, HardDrake, DrakX, DrakFont, entre outras. Suas
principais características são facilidade de uso, instalação fácil,
melhor organização de menus gráficos. Seu principal defeito é não
ter uma instalação / configuração mais voltada para servidores de
rede.

Voltada para estações de trabalho.

Maiores informações podem ser encontradas em:

http://www.mandrake.com

Com isso nós encerramos o primeiro capítulo da nossa apostila.

Alexandre Pedroso – http://www.aplinux.com.br


Página 13
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 02 - PRIMEIROS PASSOS NO SISTEMA

2.1 – USUÁRIOS COMUNS E GRUPOS

Para que os usuários possam utilizar o sistema operacional é necessário


que estes tenham uma conta de usuário cadastrada no sistema. É mais
ou menos assim. Todo usuário que deseja utilizar um computador com
um sistema LINUX, deverá fornecer um nome de usuário e uma senha
de acesso ao computador. Esta é uma forma de garantir a segurança e a
integridade dos dados contidos no disco rígido. Desta forma, somente
terão acesso ao sistema, as pessoas que tiverem as credenciais de
acesso. Isso é muito bom e deveria ser pré-requisito de qualquer
sistema operacional, mas infelizmente ainda encontramos alguns deles
que permitem o uso sem autenticação com usuário e senha. Mas
deixando isso de lado, vamos ao conceito de usuários comuns e grupos
em sistemas LINUX.

Os usuários comuns são contas de acesso que não possuem direitos


administrativos, ou seja, são contas que, simplesmente terão acesso a
arquivos e diretórios criados pelo seu usuário. Essas contas são
utilizadas para que os usuários do LINUX consigam acessar o sistema,
digitar documentos e criar planilhas, navegar na Internet, sem alterar
ou interferir em qualquer configuração do sistema operacional.

Mas isso não é o suficiente. Na grande maioria das empresas, os


computadores estão ligados em rede e existe um grande número de
usuários que compartilham recursos comuns. Como fazer então, para
que se tenha uma administração centralizada e fácil de todas as
configurações referentes aos usuários e senhas que utilizam os
sistemas?

O grande problema é que, podemos ter, por exemplo, três pessoas que
trabalham no departamento de Contabilidade da empresa que,
normalmente, acessam os mesmos arquivos e diretórios de trabalho
durante o dia. Então como fazer para diferenciar estes usuários e seus
direitos de acessos a arquivos e diretórios de trabalho no sistema, dos
demais usuários da empresa, que não poderão ter acesso a esses
arquivos e diretórios? Mais do que isso, como fazer para que essa
configuração não se torne repetitiva, difícil e trabalhosa para o
administrador da rede?

Alexandre Pedroso – http://www.aplinux.com.br


Página 14
Alexandre Pedroso – http://www.aplinux.com.br

Fácil. Utilizaremos para isso o conceito de grupos. Os grupos foram


criados para que usuários com tarefas comuns, acessos comuns a
arquivos e diretórios de trabalhos sejam colocados em um mesmo grupo
e todas as configurações sejam realizadas uma única vez ao grupo. Ou
seja, se os usuários alex, pedro e paulo fazem parte do grupo
contabilidade, então todos os três usuários terão os mesmos direitos
concedidos ao grupo Contabilidade.

Desta forma, o administrador tem um controle maior de suas


configurações, bem como, uma agilidade muito grande para realizá-las.

Podemos concluir então que, um grupo é um conjunto de usuários que


compartilham os mesmos direitos de acesso a determinados recursos do
sistema.

IMPORTANTE: Toda vez que é criado um usuário no sistema,


automaticamente é criado também, um grupo com o mesmo nome do
usuário. Este é o grupo primário daquele usuário, o qual ele faz parte e
sempre fará parte. Isso é uma configuração que pode ser alterada no
sistema, mas que por padrão, vem conforme descrito acima.

IMPORTANTE: Quando um usuário comum acessa o sistema, o prompt


fica com uma identificação visual diferente de quando o root faz o
acesso. A identificação de um usuário comum logado pode ser feita
através do caractere $ no prompt de comando. Vejamos o exemplo
abaixo:

[alex@pedroso root]$

Neste exemplo temos as seguintes informações, da esquerda para a


direita: nome do usuário logado no sistema, nome do host configurado
no sistema, diretório atual que o usuário se encontra e, por último, o
caractere que identifica o usuário comum ($).

2.2 – SUPERUSUÁRIO

Esta é uma conta de usuário no sistema para fins administrativos. Esta


conta deverá ser utilizada, exclusivamente, pelo administrador do
sistema. Ela, como seu próprio nome já diz, tem super poderes no
sistema LINUX. Com ela, é possível realizar qualquer tarefa,
independente de direitos e permissões concedidas à conta.

Alexandre Pedroso – http://www.aplinux.com.br


Página 15
Alexandre Pedroso – http://www.aplinux.com.br

Este superusuário é conhecido como root. Seguem abaixo alguns


privilégios do usuário root:

- Acessar arquivos, mesmo sem ter permissão ou direito concedido.


- Mudar permissão ou direito de qualquer arquivo do sistema.
- Adicionar e remover usuários no sistema.
- Instalar aplicativos e periféricos.

Seguem abaixo as principais obrigações do usuário root:

- Manter a segurança do sistema e a segurança da rede.


- Verificar o espaço livre em disco.
- Realizar backup diariamente.
- Disponibilizar e manter serviços de rede aos usuários.
- Gerenciamento do desempenho do sistema.
- Manter a analisar o log (registro) do sistema.

IMPORTANTE: Quando você está trabalhando como root, o sistema


assume que você sabe o que está fazendo. Qualquer comando digitado
será executado sem restrição. Portanto, qualquer engano cometido pode
danificar o sistema todo. Por isso a recomendação de utilizar a conta de
root somente para fins administrativos.

IMPORTANTE: Quando o superusuário (root) acessa o sistema, o


prompt fica com uma identificação visual diferente de quando um
usuário comum faz o acesso. A identificação do superusuário logado
pode ser feita através do caractere # no prompt de comando. Vejamos
o exemplo abaixo:

[root@pedroso root]#

Neste exemplo temos as seguintes informações: da esquerda para a


direita: nome do usuário logado no sistema, nome do host configurado
no sistema, diretório atual que o usuário se encontra e, por último, o
caractere que identifica o superusuário (#).

2.3 – UID e GID

O UID é a identificação de um usuário internamente no sistema. Se você


cria um usuário com o nome de alex, o sistema identifica este usuário
através de um código (número) seqüencial chamado UID.

Alexandre Pedroso – http://www.aplinux.com.br


Página 16
Alexandre Pedroso – http://www.aplinux.com.br

O GID é a identificação de um grupo internamente no sistema. Se você


cria um grupo com o nome de contabilidade, o sistema identifica este
grupo através de um código (número) seqüencial chamado GID.

Usuário root = UID = 0


Usuários administrativos = UID < 500
Usuários comuns = UID >= 500

Ou seja, quando criamos o primeiro usuário comum no sistema, este


será criado com UID = 500. O usuário root sempre tem UID = 0.

IMPORTANTE: Se você quiser que um usuário comum passe a ter


direito de root no sistema, basta alterar o seu UID para 0. Veremos
mais adiante como é feita essa alteração.

2.4 – COMANDOS ENVOLVIDOS

Este é nosso primeiro contato com o LINUX. Portanto, serão


apresentados alguns comandos básicos que servirão para que você
consiga dar os primeiros passos no sistema. Até o momento, todo o
nosso aprendizado estava focado para a parte conceitual. A partir deste
tópico, teremos uma mescla de conceitos e comandos práticos a serem
apresentados. Então, é muito importante que os comandos sejam
executados em um micro para que você consiga fixá-los melhor. Desta
forma, o aprendizado se torna mais rápido e amigável. Vamos lá, chega
de falarmos e vamos começar a colocar a mão na massa!

IMPORTANTE: A grande maioria dos comandos do LINUX possui


parâmetros que podem ser utilizados na linha de comando. Esses
parâmetros são opções que definirão como o comando deve se
comportar (seu modo de operação). Nesta apostila, serão demonstrados
os parâmetros mais comumente utilizados. Se você quiser conhecer
outros parâmetros, poderá fazê-lo acessando as páginas dos manuais do
sistema. Mais adiante veremos como ter acesso a esta vasta
documentação existente no próprio sistema. Essa é uma fonte rica de
conhecimento que deve ser explorada por você.

IMPORTANTE: O LINUX é um sistema que diferencia letras maiúsculas


de letras minúsculas, ou seja, se for digitado em maiúsculo um comando
que deve ser escrito em minúsculo, o sistema retornará um erro de
comando inválido. Isso também se aplica aos parâmetros dos comandos
e aos arquivos e diretórios do sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 17
Alexandre Pedroso – http://www.aplinux.com.br

login : Comando utilizado para acesso ao sistema. Deve ser digitada


uma conta de usuário válida para acessar o sistema. Após a digitação do
nome da conta, o sistema solicitará a senha de acesso.

IMPORTANTE: Se você errar a senha por mais de três vezes, o sistema


começa a demorar muito para responder às tentativas de login. Isso é
uma medida de segurança para evitar ataques conhecidos como “brute
force”.

logout : Comando utilizado para encerrar uma seção de login. Através


dele, você coloca o sistema em modo seguro, ou seja, esperando que se
digite uma conta de usuário e uma senha para o uso.

shutdown : Comando utilizado para desligar/reiniciar o sistema. Todos


os usuários que estiverem utilizando o sistema serão notificados que
este será desligado.

Parâmetros do shutdown:

now Indica que o comando deve ser executado agora.


-h Indica que o sistema deve ser desligado.
-r Reiniciar o sistema após o desligamento.
-F Força a checagem do disco na próxima reinicialização do
sistema.
-t Tempo em segundos que o sistema aguardará para o
desligamento.

halt : Comando utilizado para desligar ou paralisar o sistema.

reboot : Comando utilizado para reinicializar o sistema.

CTRL+ALT+DEL : Comando utilizado para desligar o sistema.

IMPORTANTE: A combinação das teclas CTRL+ALT+DEL desliga o


sistema sem precisar estar logado nele, ou seja, qualquer pessoa pode
pressionar estas teclas e tirar um servidor de operação, por exemplo.
Veremos mais adiante como desabilitar este comando, para garantir que
o sistema será desligado/reiniciado somente por pessoas autorizadas a
fazê-lo.

Alexandre Pedroso – http://www.aplinux.com.br


Página 18
Alexandre Pedroso – http://www.aplinux.com.br

2.5 – EXEMPLOS DE UTILIZAÇÃO

shutdown –h now
(desliga o sistema agora)

shutdown –r
(reinicia o sistema)

halt
(desliga o sistema)

reboot
(reinicia o sistema)

Alexandre Pedroso – http://www.aplinux.com.br


Página 19
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 03 – SHELL

3.1 – CONCEITOS

O shell é o interpretador de comandos do sistema. Ele oferece uma


interface de linha de comando entre o usuário e o sistema operacional
(LINUX). No Conectiva LINUX e, na grande maioria das distribuições, o
shell padrão do sistema é o bash.

Um shell pode ser utilizado para basicamente três propósitos. São eles:

- Utilização interativa – Aguarda a execução dos comandos por


parte do usuário para repassá-los ao sistema.

- Personalização de uma seção – Definir variáveis de ambiente, tais


como, diretórios de spool, diretório inicial, entre outras, a fim de
personalizar o ambiente de trabalho do usuário.

- Programação – Criação e execução de scripts (combinação de


comandos do shell com comandos do sistema).

Explicando um pouco melhor, podemos dizer que o shell interativo é


utilizado quando um usuário efetua login no sistema e começa a operá-
lo, digitando comandos em sua console. Com isso, o usuário estará
interagindo com o sistema, ou seja, passando comandos e recebendo as
saídas (resultados) desses comandos.

Um shell de personalização de uma seção é utilizado quando um usuário


efetua login no sistema. No momento do login, são configuradas
algumas variáveis de ambiente para este usuário. Estas variáveis de
ambiente também podem ser chamadas de perfil do usuário. Desta
forma, é possível configurar perfis diferentes e personalizados para os
usuários, de acordo com a necessidade particular de cada um. Para um
melhor entendimento, podemos exemplificar da seguinte forma.

Imagine que o usuário alex utiliza o sistema somente para acessar um


pequeno programa que realiza a contabilidade da empresa. Todas as
vezes que este usuário efetuar login, seria necessário digitar um
comando para acessar o programa de contabilidade. Além disso, este
programa está localizado em um diretório qualquer do sistema. Então,
poderíamos chegar ao absurdo de dizer que, primeiro o usuário deveria
digitar um comando para acessar este diretório e depois um segundo

Alexandre Pedroso – http://www.aplinux.com.br


Página 20
Alexandre Pedroso – http://www.aplinux.com.br

comando para acessar seu programa de contabilidade. Isso não é visto


com bons olhos pelos usuários. Então, o que poderíamos fazer para
resolver esse pequeno problema?

Utilizando os perfis de usuários e as variáveis de ambiente, poderíamos


configurar o sistema de modo que, todas as vezes que o usuário alex
acessasse o sistema, automaticamente seria configurado o PATH de
execução de programas e, ainda mais, o programa de contabilidade
seria carregado. Além disso, poderíamos implementar cores ao shell
deste usuário, criar alias para comandos do sistema, entre outras
coisas. Como os perfis podem ser configurados individualmente, esta
configuração só se aplicaria ao usuário em questão.

IMPORTANTE: Mais adiante, veremos as definições de PATH e alias de


comandos.

Um shell de programação é, normalmente, utilizado para “rodar” scripts


ou programas de forma automática. Neste tipo de shell, não existe a
interação do usuário ou do administrador do sistema, pois os scripts
“rodam” de forma automática. Um bom exemplo de um shell de
programação seria uma rotina de backup agendada para ser executada
todos os dias durante a madrugada. Quando o script responsável pela
realização do backup entra no ar, inicia-se então um shell de
programação.

3.2 – TIPOS DE EXECUÇÃO DO SHELL E SEUS ARQUIVOS

Os tipos de execução do shell definem como o shell se comportará e


para que este shell será utilizado. São eles:

- Shell de login – executado quando um usuário efetua login no


sistema. Neste caso, bash (shell padrão do LINUX) executa os
seguintes arquivos: /etc/profile, ~/.bash_profile e ~/.bash_logout.

- Shell interativo – executado quando um usuário digita comandos


no sistema e recebe as saídas (resultados) desses comandos.
Normalmente, um shell interativo é também um shell de login.
Neste caso, bash (shell padrão do LINUX) executa os seguintes
arquivos: ~/.bashrc e ~/.bash_history.

- Shell não interativo – executado quando um script (programa)


“roda” automaticamente, conforme visto acima.

Alexandre Pedroso – http://www.aplinux.com.br


Página 21
Alexandre Pedroso – http://www.aplinux.com.br

Vejamos agora, qual é a função de cada um dos arquivos comentados


nos tipos de execução do shell acima. São eles:

- /etc/profile – este arquivo contém a configuração dos perfis de


todos os usuários do sistema. É nele que configuraremos tudo o
que for comum a todos os usuários do sistema. São exemplos de
possíveis configurações deste arquivo as variáveis de ambiente
PATH, MANPATH, HOSTNAME, USER, LOGNAME, entre outras.

- ~/.bash_profile – este arquivo contém a configuração do perfil do


usuário corrente (usuário logado no sistema). É nele que
configuramos a personalização de cada usuário, de acordo com
suas necessidades. São exemplos de possíveis configurações deste
arquivo as variáveis de ambiente PATH, MANPATH, HOSTNAME,
USER, LOGNAME, entre outras.

- ~/.bash_logout – este arquivo é um pouco diferente dos citados


acima. Enquanto que os anteriores somente são executados
quando é carregado um shell de login, o ~/.bash_logout somente
é executado, como seu próprio nome diz, quando um usuário
efetua logout no sistema. Todos os comandos que estiverem
dentro deste arquivo serão executados neste momento. Um
exemplo clássico de comando que pode ser adicionado a este
arquivo é o clear (limpeza da tela do terminal).

- /etc/bashrc - este arquivo contém os aliases e funções de todos os


usuários do sistema. É nele que configuraremos tudo o que for
comum a todos os usuários do sistema. São exemplos de possíveis
configurações deste arquivo os aliases e funções, conforme dito
acima.

- ~/.bashrc – este arquivo contém os aliases e funções do usuário


corrente (usuário logado no sistema). É nele que configuramos a
personalização de cada usuário, de acordo com suas necessidades.
São exemplos de possíveis configurações deste arquivo os aliases
e funções, conforme dito acima.

- ~/.bash_history – este arquivo contém todos últimos comandos


digitados pelo usuário corrente (usuário logado no sistema). No
LINUX, existe um atalho para procura dos últimos comandos
digitados, a fim de poupar tempo e serviço dos usuários e
administradores do sistema. Pressionando a seta para cima do
teclado, o sistema mostra os últimos comandos digitados pelo
usuário corrente. O interessante e o diferencial para outros

Alexandre Pedroso – http://www.aplinux.com.br


Página 22
Alexandre Pedroso – http://www.aplinux.com.br

sistemas operacionais é que esta lista de últimos comandos estará


disponível mesmo após a reinicialização do sistema, pois o
armazenamento é feito em arquivo (~/.bash_history) e não na
memória RAM.

IMPORTANTE: Para as explicações acima foi utilizado o caractere “~”


em alguns dos caminhos de arquivos do shell. Mas o que vem a ser o
caractere “~” e o que ele representa no sistema? Bom, vamos lá. O
caractere “~” é uma forma bastante simples de representar o diretório
“home” do usuário corrente (usuário logado no sistema). Então, se nós
estivermos logados no sistema com um usuário chamado alex o
caractere “~”, na verdade, equivale ao caminho /home/alex/. Isso é
muito interessante, pois temos uma espécie de variável que pode ser
utilizada independentemente do usuário que está logado. Imagine a
seguinte situação: você precisa fazer um script ou um programa
qualquer que gravará um arquivo no diretório home do usuário que está
logado no sistema. Você pode então, escrever um código que grava o
arquivo referido sempre em “~”, que automaticamente ele gravará em
/home/alex se o usuário alex estiver logado e em /home/pedro, quando
pedro estiver logado. Portanto, o caractere “~” é amplamente utilizado,
principalmente para elaboração de scripts.

IMPORTANTE: Também nos referimos muito a variável de ambiente


PATH. Mas o que vem a ser a variável PATH? Path significa caminho em
inglês e é exatamente isso que esta variável representa no sistema. Ela
é responsável por armazenar os caminhos que o sistema deve procurar
por um comando que é executado pelos usuários ou pelo administrador
do sistema. Exemplificando, imagine que o comando halt se encontra
dentro do diretório /usr/bin/. Todas as vezes que eu quisesse executar
este comando, teria primeiro que acessar este diretório e depois
executar o comando. É para evitarmos esse desconforto que utilizamos
a variável PATH, ou seja, definimos nossa variável PATH com o valor
/usr/bin/. Assim sendo, de qualquer diretório (local) que eu estiver no
sistema, posso executar o comando halt com êxito. É bom salientar que,
a variável PATH pode apontar para mais de um diretório diferente,
conforme necessidade.

3.3 – COMANDOS ENVOLVIDOS

set : comando utilizado para visualizar na saída padrão todas as


variáveis de ambientes configuradas para o usuário corrente e seus
respectivos conteúdos. Dentre essas variáveis podemos destacar: BASH,

Alexandre Pedroso – http://www.aplinux.com.br


Página 23
Alexandre Pedroso – http://www.aplinux.com.br

BASH_VERSION, PATH, HOSTNAME, HOSTTYPE, HOME, LANG, MAIL,


LOGNAME, OSTYPE, MANPATH, USERNAME, entre outras.

echo : comando utilizado para visualizar na saída padrão o conteúdo de


uma variável de ambiente.

export : comando utilizado para exportar o conteúdo de uma variável de


ambiente para diferentes shell’s carregados pelo usuário.

exit : comando utilizado para encerrar uma seção de shell. Perceba que
exit não é o mesmo que logout. O comando logout permite ao usuário
sair do sistema, enquanto que o comando exit encerra somente uma
seção de shell carregada.

unset : comando utilizado para limpar o conteúdo de uma variável de


ambiente.

alias : comando utilizado para criação de alias de comandos do sistema.


Mas o que vem a ser um alias? Um alias nada mais é do que um apelido
dado a um comando. Isso pode ser utilizado, por exemplo, para
comandos complexos e de difícil memorização. Ao invés de ter de digitar
mount –r –t iso9660 /dev/cdrom /mnt/cdrom todas as vezes que for
utilizar o cdrom, você pode criar um alias chamado cdrom que fará o
mesmo trabalho com bem menos digitação.

unlias : comando utilizado para exclusão de aliases criados no sistema.

bash : o comando bash é utilizado para carregar uma nova seção de


shell para o usuário. No LINUX, podemos carregar uma série de seções
de shell com um mesmo usuário. É como se existisse um shell pai (que
é iniciado quando o usuário efetua login no sistema) e carregássemos
vários outros shell’s em sequência, criando com isso shell’s filhos. Como
vimos acima, temos os comandos export (exportar variáveis de
ambiente para diferentes shell’s carregados) e exit (encerrar seção de
shell) que estão diretamente relacionados ao comando bash.

IMPORTANTE: Não podemos confundir o bash que é o shell padrão do


LINUX com o comando bash que executa uma nova seção de shell no
sistema.

IMPORTANTE: Variáveis de ambiente são sempre escritas em


maiúsculo. Isso não é uma lei e sim um padrão. Não deixarão de
funcionar se forem escritas em minúsculos, mas os padrões estão aí
para facilitar e para serem utilizados.

Alexandre Pedroso – http://www.aplinux.com.br


Página 24
Alexandre Pedroso – http://www.aplinux.com.br

3.4 – EXEMPLOS DE UTILIZAÇÃO

set
(visualizar as variáveis de ambiente do usuário corrente)

set | more
(visualizar as variáveis de ambiente do usuário corrente com paginação
– pausa na tela)

echo $TURMA
(visualizar o conteúdo da variável chamada TURMA)

export TURMA=noite
(definir o conteúdo da variável TURMA e exportar para todos os shell’s
do sistema)

exit
(encerrar uma seção de shell)

unset $TURMA
(limpar o conteúdo da variável de sistema $TURMA)

alias
(visualizar os aliases existentes para o usuário corrente)

alias | less
(visualizar os aliases existentes para o usuário corrente com paginação
– pausa na tela)

alias cdrom=”mount –r –t iso9660 /dev/cdrom /mnt/cdrom”


(criar um alias chamado cdrom que na verdade irá executar o comando
padrão para montagem da unidade de cdrom no sistema)

unalias cdrom
(remover o alias cdrom criado anteriormente)

bash
(carregar um novo shell)

IMPORTANTE: Todas as variáveis de ambiente, aliases e funções


definidas via linha de comando, conforme exemplos acima, estarão
disponíveis enquanto o usuário se mantiver logado no sistema. Porém
quando o usuário efetuar logout, essas variáveis, aliases e funções

Alexandre Pedroso – http://www.aplinux.com.br


Página 25
Alexandre Pedroso – http://www.aplinux.com.br

serão perdidos. Então, como poderíamos fazer para resolver este


problema? Bom, vamos lá. Conforme vimos neste capítulo, o shell é um
interpretador de comandos e pode ser utilizado para vários propósitos.
Existem três tipos básicos de execução de um shell e cada um desses
tipos, faz uso de arquivos que auxiliam e ajudam nas configurações
personalizadas para o uso do sistema. Bingo! Quando nós precisamos
declarar variáveis de ambiente que devam estar disponíveis sempre a
todos os usuários do sistema, incluímos estas variáveis dentro de um
arquivo que foi feito justamente para isso - /etc/profile. Assim sendo,
quando nós precisamos declarar variáveis de ambiente que devam estar
disponíveis para um usuário em particular, incluímos estas variáveis
dentro de um arquivo que foi feito justamente para isso -
~/.bash_profile. Continuando com a brincadeira, quando nós precisamos
declarar alias e funções que devam estar disponíveis sempre a todos os
usuários do sistema, incluímos estes dentro de um arquivo que foi feito
justamente para isso - /etc/bashrc. E assim respectivamente,
respeitando sempre a função de cada arquivo no sistema, de acordo
com as explicações descritas na pág. 21, 22 e 23 desta apostila.
Vejamos abaixo alguns modelos desses arquivos para exemplificar
melhor o uso.

3.5 – MODELOS DOS ARQUIVOS DE CONFIGURAÇÃO DO SHELL

Vamos ver agora alguns exemplos de arquivos de configuração do shell


estudados neste capítulo. Estes modelos foram retirados do Conectiva
LINUX 9.0. É bom salientar que, da forma como estão, estes arquivos
são criados automaticamente pelo sistema, quando este está sendo
instalado. Na verdade, no momento da instalação do Conectiva LINUX
9.0 é criada a conta do superusuário root, seu diretório home (/root) e
seus arquivos de configuração do shell. Como já vimos anteriormente,
cada usuário possuí seus próprios arquivos de configuração do shell.
Sendo assim, o melhor local para armazenar estes arquivos é no
diretório home de cada usuário do sistema.

Vejamos agora, alguns exemplos destes arquivos.

01) /etc/profile

# /etc/profile

# System wide environment and startup programs


# Functions and aliases go in /etc/bashrc

Alexandre Pedroso – http://www.aplinux.com.br


Página 26
Alexandre Pedroso – http://www.aplinux.com.br

PATH="$PATH:/usr/bin/X11:/usr/games:/usr/local/bin"

# remember to always keep a ':' at the end of MANPATH

if [ $MANPATH ]; then
MANPATH="$MANPATH:/usr/local/man:/usr/share/man:/usr/local/share
/man:"
else
MANPATH="/usr/local/man:/usr/share/man:/usr/local/share/man:"
fi
# This is the original ksh default PS1 value
# Bash will get its own from /etc/bashrc
PS1='$(/bin/hostname -s) [$PWD] > '

ulimit -c 0
if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
umask 002
else
umask 022
fi

USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
EDITOR=/usr/bin/vi

HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000

INPUTRC=/etc/inputrc

export EDITOR HISTFILESIZE HISTSIZE HOSTNAME INPUTRC LOGNAME


MAIL MANPATH PATH PS1 USER

for i in /etc/profile.d/*.sh ; do
if [ -x $i ]; then
. $i
fi
done

unset I

Alexandre Pedroso – http://www.aplinux.com.br


Página 27
Alexandre Pedroso – http://www.aplinux.com.br

02) /etc/bashrc

# /etc/bashrc

# System-wide functions and aliases


# Environment configuration on /etc/profile

PS1="[\u@\h \W]\\$ "

alias which="type -path -a"


alias l="ls -laF --color=auto"
alias ls="ls --color=auto"
alias m="minicom -s -con -L"
alias minicom="minicom -s -con -L"
alias tm="tail -f /var/log/messages"
alias tmm="tail -f /var/log/maillog"
alias tms="tail -f /var/log/secure"
alias cds="cd /etc/rc.d/init.d && ls"
alias fd="mount /dev/fd0 /mnt/floppy; cd /mnt/floppy && ls"
alias ufd="cd /mnt && umount floppy && ls"
alias ldir="mount /mnt/floppy && l /mnt/floppy && umount /mnt/floppy"

03) ~/.bash_profile

# ~/.bash_profile: executed by Bourne-compatible login shells.

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bi
n/X11
export PATH
mesg n

04) ~/.bashrc

# ~/.bashrc: executed by bash(1) for non-login shells.

export PS1='\h:\w\$ '


umask 022
# You may uncomment the following lines if you want `ls' to be
colorized:
# export LS_OPTIONS='--color=auto'

Alexandre Pedroso – http://www.aplinux.com.br


Página 28
Alexandre Pedroso – http://www.aplinux.com.br

# eval `dircolors`
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
# Some more alias to avoid making mistakes:
alias cls='clear'
alias dir='ls -lah'
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

05) ~/.bash_logout

# ~/.bashrc: executed by bash(1) for non-login shells.


clear

06) ~/.bash_history

logout
cd /etc/apt/
mcedit sources.list
cd
apt-get update
apt-get install apt
apt-get dist-upgrade
cls
lynx http://www.aplinux.com.br
lynx http://www.br-linux.org
logout

Alexandre Pedroso – http://www.aplinux.com.br


Página 29
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 04 - GERENCIAMENTO DE ARQUIVOS E DIRETÓRIOS

4.1 – INTRODUÇÃO

Uma das mais importantes tarefas de um administrador de sistemas


LINUX é conhecer como se dá o gerenciamento de arquivos e diretórios
do sistema. Mais do que isso, o administrador do sistema, deve
conhecer a fundo a grande maioria dos arquivos de configuração do
sistema, sua localização na árvore de diretórios e os comandos
utilizados para manipulação destes arquivos. Neste capítulo,
começaremos o estudo dos arquivos e diretórios do sistema e falaremos
sobre comandos, considerados básicos, mas vitais para qualquer
administrador.

4.2 – METACARACTERES

Os Metacaracteres são um conjunto de símbolos utilizados para facilitar


a manipulação de arquivos e diretórios do sistema. Eles são muito
utilizados em várias tarefas administrativas, tais como:

- Cópias de arquivos
- Busca em arquivos
- Busca de string ou expressão
- Scripts
- Backup do Sistema
- Monitoramento

O intuito deste tópico é apresentar os principais Metacaracteres


existentes no sistema e demonstrar como estes podem ser úteis para as
tarefas diárias de um administrador. Então, vamos lá.

* : representa qualquer caractere em qualquer quantidade

? : representa qualquer caractere na quantidade um.

[] : representa uma lista de caracteres.

{} : representa uma seqüência de caracteres separados por vírgula.

Alexandre Pedroso – http://www.aplinux.com.br


Página 30
Alexandre Pedroso – http://www.aplinux.com.br

Estes são os Metacaracteres que iremos estudar. Mais adiante no tópico


de exemplos práticos deste capítulo, veremos as suas utilizações de
forma mais detalhada.

4.3 – TIPOS DE ARQUIVOS

Em sistemas LINUX, temos vários tipos de arquivos que podem ser


identificados com o comando ls –lah. Vejamos agora os tipos mais
comuns de arquivos presentes em sistemas LINUX.

Tipos de arquivos
- Arquivo regular (comum)
d Diretório
l Link simbólico
b Dispositivo orientado a bloco (hd, disquete, etc)
c Dispositivo orientado a caractere (modem, serial, etc)
s socket (comunicação entre processos do sistema)
p pipe (comunicação entre processos do sistema)

Abaixo, segue uma demonstração do comando ls –la e como


identificamos os tipos de arquivos listados.

Tipo + Perm L U.D. G.D. Tam Data Hora Arquivo


-rw------- 1 root root 217 2004-06-28 12:43 .ICEauthority
drw-r--r-- 1 root root 0 2004-06-24 17:40 .qconf
-rw-r--r-- 1 root root 272 2004-06-28 13:01 APLINUX.doc

No exemplo acima, temos na primeira coluna a identificação do tipo de


arquivo e suas permissões. Ainda é cedo para falarmos das permissões,
mas como podemos perceber, o primeiro caractere desta coluna indica
que tipo de arquivo está sendo visualizado. Observe sua tabela com os
tipos de arquivos existentes e compare com este primeiro caractere
para saber os tipos de arquivos listados com o comando.

4.4 – LISTANDO ARQUIVOS E DIRETÓRIOS

cd: comando utilizado para troca de diretórios (movimentação no


sistema).

Alexandre Pedroso – http://www.aplinux.com.br


Página 31
Alexandre Pedroso – http://www.aplinux.com.br

pwd: comando utilizado para informar o caminho completo que o


usuário corrente se encontra.

ls : comando utilizado para listar arquivos e diretórios na saída padrão.

Parâmetros do ls:

-a Visualizar todos os arquivos, inclusive ocultos.


-l Visualizar em forma de lista (na vertical)
-F Visualizar também um símbolo para identificar o tipo do
arquivo.
-h Visualizar tamanho dos arquivos com formatação visual.

4.5 – CRIANDO E REMOVENDO ARQUIVOS E DIRETÓRIOS

touch : comando utilizado para criar arquivos vazios no sistema.

mkdir : comando utilizado para criar diretórios vazios no sistema.

Parâmetros do mkdir:

-p Utilizado para criar uma árvore de diretórios.

rmdir : comando utilizado para remover diretórios vazios no sistema.

rm : comando utilizado para remover arquivos e diretórios no sistema.

Parâmetros do rm:

-r Remover árvore de diretórios de forma recursiva.


-f Modo forçado, ou seja, sem confirmação para exclusão.
-i Modo interativo, ou seja, com confirmação para exclusão.

4.6 – COPIANDO, RENOMEANDO E MOVENDO ARQUIVOS E


DIRETÓRIOS

cp : comando utilizado para copiar arquivos e diretórios

Alexandre Pedroso – http://www.aplinux.com.br


Página 32
Alexandre Pedroso – http://www.aplinux.com.br

Parâmetros do cp:

-R Copiar árvore de diretórios de forma recursiva.


-f Modo forçado, ou seja, sem confirmação para sobrescrever
destino.
-i Modo interativo, ou seja, com confirmação para
sobrescrever destino.
-a Copiar arquivos preservando suas permissões originais.
-b Faz um backup do arquivo de destino que será sobrescrito.

mv : comando utilizado para renomear ou mover arquivos e diretórios.

Parâmetros do mv:

-i Modo interativo, ou seja, com confirmação para


sobrescrever destino.
-b Faz um backup do arquivo de destino que será sobrescrito.

4.7 – HARD LINKS E LINKS SIMBÓLICOS

A função dos comandos de link é criar uma ligação simbólica (atalho)


entre arquivos. Existem basicamente dois tipos de ligações no sistema:
os hard links e os links simbólicos.

Os hard links podem ser chamados de cópias de um mesmo arquivo em


um mesmo diretório ou em diretórios diferentes. Na verdade, não são
cópias e sim o mesmo arquivo com nomes diferentes. É importante
salientar que, o arquivo somente é apagado definitivamente do disco
quando todos os seus links são removidos. Outra característica
interessante dos hard links é que quando for alterado um dos arquivos
linkados, todos os demais serão alterados.

Já os links simbólicos estão mais para atalhos de arquivos no sistema.


Neste caso, a alteração ou a exclusão de um dos arquivos linkados, não
interfere em nada os demais. Portanto, excluindo um arquivo para o
qual links simbólicos apontam, nada acontece. É claro que, os links
estarão quebrados e por esse motivo os atalhos não funcionarão, mas
não existe, além disso, nenhuma ligação entre os arquivos.

ln : comando utilizado para criar links no sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 33
Alexandre Pedroso – http://www.aplinux.com.br

Parâmetros do ln:

-s Utilizado para criação de links simbólicos.


-f Modo forçado, ou seja, sem confirmação para sobrescrever.

4.8 – EXEMPLOS DE UTILIZAÇÃO

ls –l
(formato longo)

ls –la
(formato longo, listando todos os arquivos, inclusive ocultos).

ls –lah
(formato longo, listando todos os arquivos, inclusive ocultos e com
formatação visual do tamanho).

ls –lah *.txt
(listar somente os arquivo com extensão txt).

cp /etc/arquivo.t?t /opt
(copiar arquivo.t alguma coisa t do diretório /etc/ para o diretório /opt).

ls arq[123]
(mostra todos arquivos e diretórios que comecem com arq e tenham um
único caractere completando seu nome que pode ser 1, 2 ou 3.).

ls arq{123,4,5}
(mostra todos os arquivos e diretórios que comecem com arq e tenham
como complemento do seu nome 123, 4 ou 5).

touch arquivo.txt
(criar o arquivo vazio com o nome de arquivo.txt).

mkdir aplinux
(criar diretório aplinux)

mkdir /etc/teste
(criar o diretório teste dentro do diretório /etc já existente).

mkdir /opt/prog /opt/appl


(criar os diretórios prog e appl dentro do diretório /opt já existente).

Alexandre Pedroso – http://www.aplinux.com.br


Página 34
Alexandre Pedroso – http://www.aplinux.com.br

mkdir –p /opt/sistema/contabilidade
(criar a árvore de diretórios sistema/contabilidade dentro do diretório
/opt já existente).

pwd
(informar o caminho completo que o usuário corrente se encontra).

cd
(quando utilizado sozinho, muda do diretório atual para o diretório home
do usuário corrente).

cd /
(mudar do diretório atual para a raíz do sistema).

cd /opt
(mudar do diretório atual para o diretório /opt).

rmdir /etc/aplinux
(remove o diretório aplinux, desde que este esteja vazio).

rm arquivo.txt
(remove o arquivo com o nome de arquivo.txt).

rm –i arquivo.txt
(remove o arquivo com o nome de arquivo.txt, solicitando confirmação).

rm –rf /opt
(remove o diretório /opt recursivamente, sem confirmação).

IMPORTANTE: O uso do comando rm com os parâmetros rf não é


recomendado, principalmente se estiver logado no sistema como root.
Como já vimos, o sistema não impede nenhuma ação que seja realizada
pelo superusuário. Portanto, uma exclusão acidental pode causar danos
irreparáveis ao sistema.

cp arquivo.txt /etc/sysconfig
(copiar o arquivo com o nome de arquivo.txt para dentro do diretório
/etc/sysconfig)

cp arquivo1.txt arquivo2.txt arquivo3.txt /opt


(copiar os arquivos com os nomes de arquivo1.txt, arquivo2.txt e
arquivo3.txt simultaneamente para dentro do diretório /opt).

cp –R /etc /opt

Alexandre Pedroso – http://www.aplinux.com.br


Página 35
Alexandre Pedroso – http://www.aplinux.com.br

(copiar a árvore de diretórios /etc recursivamente para dentro do


diretório /opt).

cp –b arquivo.txt /opt
(copiar o arquivo com o nome de arquivo.txt para dentro do diretório
/opt e caso haja, no destino, um arquivo com o mesmo nome, o arquivo
de destino será renomeado para arquivo.txt~, ou seja, será feito backup
antes de sobrescrever o destino).

mv arquivo.txt documento.txt
(renomeia o arquivo com o nome de arquivo.txt para documento.txt)

mv /etc/arquivo.txt /opt
(move o arquivo com o nome de arquivo.txt para dentro do diretório
/opt).

mv /opt/teste /etc
(move o diretório teste de dentro do diretório /opt para o diretório /etc).

mv /etc/arquivo.txt /opt/documento.txt
(move e renomeia o arquivo chamado arquivo.txt de dentro do diretório
/etc para dentro do diretório /opt com o nome de documento.txt).

ln /opt/teste teste

ln –s /mnt/cdrom/conectiva/RPMS cdrom
(criar um link simbólico com o nome de cdrom que aponta para o
diretório /mnt/cdrom/conectiva/RPMS, ou seja, um atalho).

IMPORTANTE: No exemplo dado acima, se você digitar o comando da


forma apresentada, poderá acessar o diretório
/mnt/cdrom/conectiva/RPMS, digitando apenas cd cdrom, simplificando
com isso, o trabalho de digitação do administrador do sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 36
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 05 – ESTRUTURA DE DIRETÓRIOS

5.1 - ENTENDENDO A ESTRUTURA DE DIRETÓRIOS DO SISTEMA

Entender e conhecer a estrutura de diretórios de sistemas LINUX é uma


das tarefas fundamentais ao administrador do sistema. Vejamos porque.

Imagine que você tenha que consertar o motor de um veículo sem


conhecer como este motor funciona, sem conhecer suas características e
suas particularidades e, além disso, não conhece também as peças que
o compõe. Situação um tanto quanto complicada, não acha?

Com o LINUX é a mesma coisa. É impossível realizar uma boa


administração e um bom suporte ao sistema sem saber quais são e para
que servem seus diretórios.

Quando instalamos o Conectiva LINUX 9.0, são criados alguns diretórios


padrões que serão utilizados pelo sistema. Estes diretórios estão
presentes na maioria das distribuições LINUX, havendo pouca, ou
muitas vezes, nenhuma diferença entre eles. Estudaremos agora, a
estrutura de diretórios existente no Conectiva LINUX 9.0, detalhando a
função de cada um deles no sistema.

Antes de começarmos, gostaria de fazer um rápido comentário. No


LINUX, a estrutura de diretórios é apresentada de uma forma muito
diferente dos demais sistemas operacionais. Nele, não encontramos
letras de unidades para identificação de partições e muito menos
utilizamos a barra invertida para localização de diretórios. As partições
ficam dispostas e acessíveis a partir de uma mesma raiz no sistema,
denominada /. Para entendermos melhor, segue uma breve explicação.

Suponhamos que, você tenha instalado o seu sistema com duas


partições diferentes, uma para o boot e outra para o sistema.
Suponhamos também que, sua partição de boot é a /boot e sua partição
do sistema é a /. Então, digitando, no prompt, o comando cd /, iremos,
como já vimos, para a raiz do sistema. Na raiz do sistema, digitando ls –
lah, você pode perceber que serão listados todos os diretórios que se
encontram na partição /. Além destes, são listados também os diretórios
que se encontram em outras partições do disco, no nosso exemplo, o
diretório /boot que se encontra na partição /boot. Em breve,
compreenderemos porque isso é possível. Por enquanto, simplesmente
devemos saber que, o acesso a todos os diretórios do sistema, é feito

Alexandre Pedroso – http://www.aplinux.com.br


Página 37
Alexandre Pedroso – http://www.aplinux.com.br

através de um ponto único /, mesmo que estes estejam em partições de


discos diferentes.

Além disso, toda a navegação pelos diretórios é feita utilizando-se a


barra normal. Você escreve cd /etc para acessar o diretório etc e não
cd\etc. Você escreve cd / para acessar a raiz do sistema e não c:\.

Com estes conceitos importantes esclarecidos, podemos então, partir


para as funções de cada um dos diretórios do sistema.

5.2 – FUNÇÕES DOS DIRETÓRIOS DO SISTEMA

/ Raiz do sistema.

/home Diretórios e arquivos de trabalho dos usuários comuns do


sistema.

/root Diretórios e arquivos de trabalho do superusuário (root).

/boot Contém o kernel e todos os arquivos necessários para a


inicialização do sistema.

/bin Contém aplicativos e utilitários do sistema.

/sbin Contém ferramentas de configuração e manutenção do


sistema.

/lib Contém as bibliotecas compartilhadas e os módulos do


kernel.

/dev Contém todos os dispositivos do sistema, tais como,


modem, hd, floppy, cdrom, etc

/etc Contém todos os arquivos de configuração do sistema.

/tmp Diretório reservado para os arquivos temporários utilizados


por algumas aplicações.

/mnt Diretório reservado para montagem de dispositivos.

/proc Contém informações sobre os processos em execução no


sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 38
Alexandre Pedroso – http://www.aplinux.com.br

/usr Programas de usuários, sistemas de janelas X, jogos, etc.

/var Contém arquivos de dados variáveis como log do sistema e


diretórios de spool.

/opt Diretório reservado para instalação de aplicações de


terceiros como OpenOffice.

Alexandre Pedroso – http://www.aplinux.com.br


Página 39
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 06 – DOCUMENTAÇÃO LINUX

6.1 – COMO UTILIZAR A DOCUMENTAÇAO DO SISTEMA

O Conectiva LINUX 9.0 vem com uma vasta documentação disponível no


próprio sistema. Estas são as páginas do manual contidas no produto,
em sua grande maioria, escritas em português. Isso é muito útil e deve
ser utilizado sempre que exista alguma dúvida ou a necessidade de
aprofundamento em alguns dos tópicos apresentados nesta apostila.
Este manual online é muito completo. Por exemplo, os comandos
apresentados pelo manual, trazem muitas e muitas opções de
parâmetros que não se encontram nesta apostila. Por esse motivo,
separei um capítulo inteiro da apostila para falar da documentação do
sistema e repetir quantas vezes for necessário, a importância de utilizar
esta documentação diariamente, como forma de aprendizado ou
complemento ao aprendizado.

IMPORTANTE: As páginas do manual são pacotes opcionais que podem


ou não ser instalados no sistema. Cabe a você, decidir no momento da
instalação se deseja ou não que sejam instalados estes pacotes.
Particularmente, eu recomendo a instalação desses e de outros pacotes
que fizerem referência à documentação do sistema. Primeiro porque,
nunca sabemos quando poderemos precisar de auxílio para resolver
algum problema ou para realizar alguma tarefa ou, até mesmo, para
sanar aquela pequena dúvida que sempre aparece nas horas erradas. E
em segundo lugar, eu nunca conheci alguém que soubesse exatamente
tudo que se encontra nesta documentação e que pudesse falar com
franqueza: “Eu não preciso dela, por isso não vou instalar”. A única boa
explicação para que se não instale a documentação do sistema é a de
que o computador não possui espaço suficiente para comportar todos os
pacotes que a compõe. Ainda sim, seria melhor tentar adquirir um novo
disco rígido...

Existem algumas formas de acessarmos a documentação do sistema.


Normalmente, o fazemos digitando alguns dos comandos demonstrados
abaixo.

man : comando utilizado para exibir as páginas do manual de um


comando qualquer do sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 40
Alexandre Pedroso – http://www.aplinux.com.br

Parâmetros do man:

-C Especificar um arquivo de configuração alternativo para as


páginas.
-M Especificar um caminho para a busca pelas páginas de
manuais.
-P Especificar qual paginador será utilizado para exibição.
-a Exibir todas as páginas que combinem com o nome
especificado.

IMPORTANTE: Na grande maioria das vezes, utilizamos o comando


man sem parâmetro algum, pois por padrão ele já vem com as
configurações citadas acima definidas para o uso.

help : comando utilizado para exibir uma rápida ajuda sobre um


comando qualquer do sistema.

info : comando utilizado para exibir as páginas do manual de um


comando qualquer do sistema. Gradativamente, o info vem substituindo
o man.

6.2 – EXEMPLOS DE UTILIZAÇÃO

man find
(exibe as páginas do manual do comando find).

man rmdir
(exibe as páginas do manual do comando rmdir).

rmdir --help
(exibe uma rápida ajuda sobre o comando rmdir).

info find
(exibe as páginas do manual do comando find).

IMPORTANTE: Além disso, temos as documentações específicas de


cada pacote instalado no sistema. Por exemplo, meu computador vai ser
um servidor que publica zonas de DNS, portanto, tenho instalado em
meu LINUX os pacotes do BIND (Berkeley Internet Name Domain). Se
eu precisar sanar alguma dúvida com referência ao BIND, não usarei o
man, o help e tão pouco o info. Vou acessar um diretório do sistema que
contém a documentação de todos os pacotes instalados. Este diretório é

Alexandre Pedroso – http://www.aplinux.com.br


Página 41
Alexandre Pedroso – http://www.aplinux.com.br

o /usr/share/doc/. Dentro dele, existem vários sub-diretórios que


contém os manuais específicos de cada pacote. Vale salientar que, estes
manuais só estarão disponíveis para mim neste diretório, se eu optar
por instalá-los no momento da instalação do BIND.

6.3 – FONTES DE DOCUMENTAÇÃO NA INTERNET

Todos nós sabemos que, nos dias de hoje, a Internet é uma grande
fonte de conhecimento e de pesquisa disponível para todos. Nela você
pode encontrar desde simples receitas culinárias até modelos de
cálculos avançados de interoperabilidade espacial. Isso é muito bom,
desde que se saiba como procurar essas documentações e que se saiba,
principalmente, filtrar o que realmente são documentos sérios e
originais do que nós chamamos de falso-conteúdo e plágio.

Falando sobre LINUX, as regras são as mesmas. Existem muitos e


muitos bons sites espalhados na Internet, mas também existem os
ruins. Cabe a você examiná-los, explorá-los e aproveitar tudo que eles
tem a oferecer. A comunidade LINUX brasileira vem crescendo muito
ultimamente e, todos os dias, surgem novos sites com propostas
inovadoras. Isso é muito bom e muito importante, pois precisamos
mesmo de muitas e muitas pessoas desenvolvendo para LINUX,
trabalhando com LINUX, escrevendo LINUX e lecionando LINUX.

Quero deixar claro que, as opiniões apresentadas nesta apostilas não


são verdades absolutas e não foram escritas com este propósito.
Portanto, os sites que recomendo abaixo, são experiências particulares
minhas e que podem não agradar a todos, mas que a mim, agradaram.
Neles vocês encontrarão muitos e muitos artigos sobre LINUX, dicas,
novidades, notícias e excelentes fóruns para perguntas e respostas
sobre os diversos assuntos desse universo chamado LINUX. Então,
vamos lá, a lista tão esperada segue abaixo.

1) http://www.aplinux.com.br
2) http://www.conectiva.com.br
3) http://www.br-linux.org
4) http://www.noticiaslinux.com.br
5) http://www.underlinux.com.br
6) http://www.dicas-l.unicamp.br
7) http://www.linuxdicas.com.br
8) http://www.ccl-br.com.br
9) http://www.revistadolinux.com.br

Alexandre Pedroso – http://www.aplinux.com.br


Página 42
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 07 - PERMISSÕES EM ARQUIVOS E DIRETÓRIOS

7.1 – INTRODUÇÃO

Qualquer sistema operacional precisa contar com um bom controle de


acesso aos seus arquivos e diretórios. Isso é o primeiro passo para
garantir a segurança e a integridade dos dados gravados no sistema.

Além disso, como poderemos garantir que as configurações do sistema


não serão alteradas por pessoas não autorizadas, se o sistema
operacional não conta com um bom controle de acesso aos seus
arquivos e diretórios.

No LINUX o controle de acesso aos arquivos e diretórios possui uma


forma particular de funcionamento, muito diferente da maioria dos
demais sistemas operacionais. Apesar de bem simples, o controle é
eficaz e garante a segurança do sistema, se bem configurado, é claro.

O que vamos estudar neste capítulo é exatamente isso. Como podemos


garantir que o nosso sistema LINUX esteja com seus dados e seus
arquivos de configuração seguros e bem salvos de qualquer tipo de
alteração indevida.

Primeiramente, é importante definir que, em sistemas LINUX, existem


dois modos de se definir as permissões em arquivos e diretórios. Iremos
aprender os dois modos, mas é importante salientar que, existe um
deles que é mais difundido e mais utilizado por toda a comunidade.

O LINUX possui apenas três tipos de permissões. Por esse motivo,


alguns especialistas em segurança de sistemas, dizem que sua
segurança não é boa no que diz respeito ao acesso aos arquivos, porém
eu discordo plenamente. É claro que, se for comparado com outros
sistemas operacionais, poderemos até considerar como sendo uma
desvantagem, porém não é uma falha. Digo isso porque, mesmo com
poucas permissões disponíveis, o LINUX pode ser configurado de forma
segura e, com certeza, não ficar atrás de nenhum outro sistema
operacional no quesito segurança do sistema de arquivos. Seguem
abaixo as permissões existentes no LINUX.

Outro detalhe que devemos apresentar é que as permissões são dadas


para contas de usuários e para contas de grupos no sistema. Isso quer
dizer que, os direitos efetivos de um usuário em arquivos e diretórios

Alexandre Pedroso – http://www.aplinux.com.br


Página 43
Alexandre Pedroso – http://www.aplinux.com.br

são a soma das permissões deste usuário com as permissões dos grupos
aos quais este usuário pertence.

7.2 – MODO SIMBÓLICO

Neste modo, utilizaremos o comando chmod e, além dele, utilizaremos


as permissões em modo simbólico, os operadores e as notações
simbólicas. Vejamos abaixo, a explicação de cada um dos itens citados
acima.

Permissões LINUX
r leitura
w gravação
x execução

IMPORTANTE: Se nós temos somente as permissões mostradas acima,


como poderíamos fazer para dar permissão de exclusão a um usuário
em um arquivo qualquer do sistema? Simples e complicado ao mesmo
tempo. Simples porque, quando dermos a um usuário a permissão de
gravação em um arquivo, automaticamente este usuário terá permissão
de exclusão para este arquivo. Complicado porque, um usuário que tem
permissão de alteração em um arquivo, pode excluí-lo acidentalmente e
complicar a vida do administrador do sistema. É claro que existem
outras formas de garantir que este arquivo não seja excluído
acidentalmente, mas de qualquer forma, achei que valeria a pena
alertar para o problema. Nas permissões LINUX, não existe permissões
separadas para configuração de alteração e exclusão de arquivos. E isso
é ruim...

Operadores do modo Simbólico


+ Utilizado para adicionar a permissão
- Utilizado para remover a permissão
= Utilizado para atribuir somente a permissão especificada na
linha de comando

Notação simbólica
u Usuário dono do arquivo
g Grupo dono do arquivo
o Outros usuários do sistema
a Utilizado para definir permissões tanto para o usuário dono,
para o grupo dono e para os outros usuários do sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 44
Alexandre Pedroso – http://www.aplinux.com.br

7.3 – MODO OCTAL

Este é o modo mais utilizado para definirmos permissões no LINUX. Isso


porque, além de ser mais fácil, é também mais prático quando digitado
na linha de comando. Para utilizarmos o modo octal, basta apenas
sabermos os valores octais de cada uma das três permissões existentes
no LINUX.

Valores octais das permissões LINUX


r leitura 4
w gravação 2
x execução 1

7.4 – SUID BIT, SGID BIT E STICKY BIT

O suid bit, o sgid bit e o sticky bit são permissões avançadas que podem
ser utilizadas para garantir ainda mais a segurança do sistema. Vejamos
agora a função de cada uma dessas permissões.

- suid bit : um arquivo com o suid bit ativado, será executado com
as permissões do usuário dono do arquivo e não com as
permissões do usuário que o executou (valor octal = 4).

- sgid bit : em um diretório com o sgid bit ativado, qualquer arquivo


que seja criado dentro dele, será criado com o mesmo grupo dono
do diretório (valor octal = 2).

- sticky bit : em um diretório com o sticky bit ativado, somente o


dono do arquivo poderá remove-lo, ou seja, mesmo que um
usuário qualquer tentar remover este arquivo e tenha permissão
para isso, o sticky bit não permitirá (valor octal = 1).

IMPORTANTE: Dentre essas três permissões avançadas estudadas


acima, podemos dizer que somente as permissões dois e três, sgid bit e
sticky bit, respectivamente, podem ser utilizadas com a finalidade de
manter a segurança do sistema. A primeira delas, suid bit, é muito
perigosa e deve ser evitada em qualquer sistema, mesmo os que não
tenham conexões ativas com a Internet. Isso porque, imagine que um
script tenha como usuário dono o root. Se este script estiver com o suid
bit ativado, qualquer usuário que executá-lo, o estará fazendo com
direito de root. Até aí tudo bem, o problema vem agora. Imagine que

Alexandre Pedroso – http://www.aplinux.com.br


Página 45
Alexandre Pedroso – http://www.aplinux.com.br

este mesmo script tenha um código para excluir recursivamente todo o


diretório /etc. Bingo! Um simples usuário acabou com seu sistema em
poucos segundos. Se você não é louco e não deseja que isso aconteça
com você, procure por todos os suid bit do sistema e remova-os
impiedosamente. Mais adiante estudaremos como fazer isso de uma
maneira bem simples, rápida e prática.

IMPORTANTE: É bom salientar que para trabalharmos com permissões


no sistema de arquivos do LINUX, sempre temos que utilizar dois
comandos em conjunto. Um deles será utilizado para definir permissões
nos arquivos e diretórios e o outro será utilizado para definir quem terá
estas permissões. É mais ou menos assim. Imagine que você precisa
dar um presente a alguém. Você precisa de duas informações para
realizar esta tarefa sem erros. Primeiro você precisa saber que presente
vai dar e em segundo, você precisa saber para quem será dado o
presente. A mesma coisa acontece com as permissões em arquivos e
diretórios do LINUX. Primeiro você deve saber qual permissão será dada
e depois para qual ou para quais usuários do sistema elas serão
concebidas.

IMPORTANTE: Uma das maiores falhas de seguranças encontradas em


sistemas de computadores é a união da permissão de gravação com a
permissão de execução em um arquivo ou diretório. Para visualizarmos
o problema, imaginemos que você definiu em um diretório qualquer em
seu sistema que os outros usuários podem gravar e executar arquivos.
Isso significa que, em poucos segundos seu sistema pode, literalmente,
virar poeira ou deixar de existir. Mas porque, você acaba de me
perguntar... É bem simples. Se um usuário malicioso escrever um
código (shell script) que faz alguma coisa errada no sistema, ele poderá
gravar este script neste diretório e, por incrível que pareça, poderá
executar este script e causar danos graves ao sistema. Isso ainda não é
o pior. Imagine agora que além de dar permissão de gravação e
execução neste diretório, você ativou o suid bit. Pronto, agora você
realmente está querendo morrer! Este script gravado pelo usuário, será
executado por ele com poderes de root e isso significa um problema e
tanto para você. Portanto, nada de permissões casadas de gravação e
execução e nada de suid bit em seu sistema.

Visualização das permissões de arquivos e diretórios


Tipo + Perm L U.D. G.D. Tam Data Hora Arquivo
-rw------- 1 root root 217 2004-06-28 12:43 .ICEauthority
drw-r--r-- 1 root root 0 2004-06-24 17:40 .qconf
-rw-r--r-- 1 root root 272 2004-06-28 13:01 APLINUX.doc

Alexandre Pedroso – http://www.aplinux.com.br


Página 46
Alexandre Pedroso – http://www.aplinux.com.br

No exemplo acima, podemos observar que a primeira coluna da tabela


contém as informações de permissões dos arquivos e diretórios do
sistema. Como já vimos anteriormente, o primeiro caractere da
esquerda para a direita desta coluna representa o tipo de arquivo. Então
vamos desconsiderar este caractere para as permissões. Contando do
segundo caractere da esquerda para a direita na primeira coluna da
tabela, temos três grupos de três caracteres cada um. Estes grupos de
caracteres indicam, conforme já vimos, as permissões do usuário dono
do arquivo ou diretório (primeiro grupo de três caracteres), grupo dono
do arquivo ou diretório (segundo grupo de três caracteres) e outros
usuários do sistema (terceiro grupo de três caracteres). Além disso, a
tabela nos informa também quem são, atualmente, o usuário dono do
arquivo ou diretório e o grupo dono do arquivo ou diretório. Estas
informações estão, respectivamente, nas colunas três e quatro da
tabela. Desta forma, temos todas as informações necessárias para
alterar as permissões em arquivos e diretórios do sistema.

7.5 – COMANDOS ENVOLVIDOS

chmod : comando utilizado para alterarmos as permissões em arquivos


e diretórios do sistema.

Parâmetros do chmod:

-R Alterar permissões de forma recursiva em uma árvore de


diretórios.

chown : comando utilizado para alterarmos o usuário dono e o grupo


dono de arquivos e diretórios do sistema.

Parâmetros do chown:

-R Alterar usuário dono e grupo dono de forma recursiva em


uma árvore de diretórios.

umask : comando utilizado para definirmos as permissões padrões para


criação de novos arquivos e diretórios no sistema.

O comando umask exige um conceito e um cálculo a mais para ser


utilizado. Por padrão, qualquer arquivo criado em um sistema LINUX
sem umask configurado, terá permissão octal de 666. No Conectiva
LINUX 9.0, o umask padrão do sistema tem valor octal de 022.

Alexandre Pedroso – http://www.aplinux.com.br


Página 47
Alexandre Pedroso – http://www.aplinux.com.br

Portanto, podemos concluir que, qualquer arquivo que seja criado no


sistema terá permissão octal de 644. É simples. Basta subtrair o valor
octal do comando umask ao valor octal padrão do sistema que é 666.
No nosso exemplo, 666 – 022 = 644.

7.6 – EXEMPLOS DE UTILIZAÇÃO

chmod u+r /etc/passwd


(adiciona permissão de leitura ao usuário dono do arquivo /etc/passwd).

chmod u-w /etc/passwd


(exclui permissão de gravação do usuário dono do arquivo /etc/passwd).

chmod g+x /etc/passwd


(adiciona permissão de execução ao grupo dono do arquivo
/etc/passwd).

chmod g-r /etc/passwd


(exclui permissão de leitura do grupo dono do arquivo /etc/passwd).

chmod o+rw /etc/passwd


(adiciona permissões de leitura e gravação aos outros usuários do
sistema no arquivo /etc/passwd).

chmod u=rw,g=rw,o=r /etc/passwd


(define as permissões do usuário dono, do grupo dono e de outros
usuários do sistema para leitura + gravação, leitura + gravação e
leitura, respectivamente, no arquivo /etc/passwd).

chmod 000 /etc/passwd


(define as permissões do usuário dono, do grupo dono e de outros
usuários do sistema para nenhum acesso, nenhum acesso e nenhum
acesso, respectivamente, no arquivo /etc/passwd).

chmod 644 /etc/passwd


(define as permissões do usuário dono, do grupo dono e de outros
usuários do sistema para leitura + gravação, leitura e leitura,
respectivamente, no arquivo /etc/passwd).

chmod 755 /etc/passwd

Alexandre Pedroso – http://www.aplinux.com.br


Página 48
Alexandre Pedroso – http://www.aplinux.com.br

(define as permissões do usuário dono, do grupo dono e de outros


usuários do sistema para direito total, leitura + execução e leitura +
execução, respectivamente, no arquivo /etc/passwd).

umask 000
(define a permissão octal padrão para criação de arquivos e diretórios
no sistema para 777 – péssima idéia!).

umask 022
(define a permissão octal padrão para criação de arquivos e diretórios
no sistema para 644 – ótima idéia!).

chown root:root /etc/passwd


(altera o usuário dono e o grupo dono para root e root,
respectivamente, no arquivo /etc/passwd).

chown alex:admin /etc/passwd


(altera o usuário dono e o grupo dono para alex e admin,
respectivamente, no arquivo /etc/passwd).

chmod 1755 /opt/sistema


(altera as permissões do diretório /opt/sistema habilitando o sticky bit).

chmod 4755 /opt/sistema


(altera as permissões do diretório /opt/sistema habilitando o suid bit).

chmod 2755 /opt/sistema


(altera as permissões do diretório /opt/sistema habilitando o sgid bit).

Alexandre Pedroso – http://www.aplinux.com.br


Página 49
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 08 - COMANDOS AVANÇADOS DO SISTEMA

8.1 – COMANDOS AVANÇADOS DO SISTEMA

Os comandos avançados do sistema são muito utilizados pelos


administradores. Através deles, é possível realizar quase todas as
tarefas administrativas do sistema. Portanto, além de muito importantes
para o dia a dia do profissional LINUX, estes comandos estão presentes
na avaliação de certificação. Então, mãos a obra!

cat : comando utilizado para visualizar o conteúdo de um arquivo na


saída padrão (listagem da primeira para a última linha).

tac : comando utilizado para visualizar o conteúdo de um arquivo na


saída padrão (listagem da última para a primeira linha).

sort : comando utilizado para classificar as linhas de um arquivo na


saída padrão.

Parâmetros do sort:

-d Classificação em ordem crescente


-r Classificação em ordem decrescente
-u Não repete linhas idênticas encontradas no arquivo
-f Ignora diferenciação entre maiúscula e minúscula, existente
por padrão no sistema.

wc : comando utilizado para contar as palavras, as linhas ou os


caracteres presentes em um arquivo.

Parâmetros do wc:

-l Contagem das linhas do arquivo


-w Contagem das palavras do arquivo
-c Contagem dos caracteres do arquivo

head : comando utilizado para visualizar as primeiras linhas de um


arquivo na saída padrão.

Parâmetros do head:

-n Número de linhas a mostrar

Alexandre Pedroso – http://www.aplinux.com.br


Página 50
Alexandre Pedroso – http://www.aplinux.com.br

-v Imprime cabeçalho com o nome do arquivo

tail : comando utilizado para visualizar as últimas linhas de um arquivo


na saída padrão.

Parâmetros do tail:

-n Número de linhas a mostrar


-c Número de caracteres a mostrar
-f Continua indefinidamente, assumindo que arquivo está
crescendo (muito usado para log’s do sistema).

cut : comando utilizado para cortar colunas ou campos de um arquivo. O


cut não altera o conteúdo do arquivo, somente envia o resultado para
saída padrão.

Parâmetros do cut:

-c Colunas a serem cortadas no arquivo


-d Informa o caractere usado como delimitador de campo
-f Define o range de campos a serem cortados

expand : comando utilizado para substituir ocorrências de tabulações


por caracteres em branco.

Parâmetros do expand:

-i Substitui ocorrências de tabulação no início da linha


-t n Substitui ocorrências de todas as tabulações por número de
caracteres em branco (n)

fmt : comando utilizado para formatação de arquivos.

Parâmetros do fmt:

-w n Largura do texto a ser formatada (n)


-s Não concatena linhas, respeitando as quebra de linhas

pr : comando utilizado para formatar um arquivo para impressão.

Parâmetros do pr:

-d Utiliza duplo espaçamento de linha para impressão


-f Utiliza como separador de página o avanço de formulário

Alexandre Pedroso – http://www.aplinux.com.br


Página 51
Alexandre Pedroso – http://www.aplinux.com.br

-h Título a ser impresso

grep : comando utilizado para procurar por palavras ou expressões


dentro de um arquivo.

Parâmetros do grep:

-i Não faz distinção entre minúscula e maiúscula na busca


-l Lista os nomes dos arquivos ao invés de linhas
individualizadas
-v Lista as linhas não correspondidas

find : comando utilizado para procurar por arquivos no sistema de


arquivos.

Parâmetros do find:

-name Utilizado para informar o nome do arquivo a ser procurado

updatedb : comando utilizado para gerar um banco de dados indexado


com informações de localização dos arquivos no sistema de arquivos.

locate : comando utilizado para localizar arquivos no banco de dados


gerado pelo comando updatedb.

IMPORTANTE: O comando locate é utilizado para consulta aos arquivos


do sistema. Sua vantagem é que a busca é muito rápida. Por ser feita
em um banco de dados indexado gerado pelo comando updatedb, essa
busca consegue retornar rapidamente a localização de qualquer arquivo
do sistema. Muito mais eficiente que o find, o locate tem um único
defeito. Ele depende que o comando updatedb seja executado
regularmente, pois senão a busca será feita em um arquivo
desatualizado, podendo mostrar falsos resultados.

whereis : comando utilizado para localizar somente os comandos do


sistema de forma rápida. O whereis não faz consultas a arquivos,
somente a comandos do sistema, somente consulta os diretórios
informados na variável PATH do sistema.
sed : comando utilizado para fazer substituições de textos em arquivos.

Parâmetros do sed:

s Substitui palavra ou expressão no arquivo por outra


informada

Alexandre Pedroso – http://www.aplinux.com.br


Página 52
Alexandre Pedroso – http://www.aplinux.com.br

g Substitui de forma global, ou seja, em todo o arquivo,


mesmo que haja repetição.

8.2 – EXEMPLOS PRÁTICOS

cat /etc/passwd
(visualiza o conteúdo do arquivo /etc/passwd – do início para o fim).

tac /etc/passwd
(visualiza o conteúdo do arquivo /etc/passwd – do fim para o início).

sort –r cidades.txt
(visualiza o conteúdo do arquivo cidades.txt em ordem decrescente).

sort cidades.txt
(visualiza o conteúdo do arquivo cidades.txt em ordem crescente).

wc cidades.txt
(informa o número de linhas, palavras e caracteres do arquivo
cidades.txt).

wc –l cidades.txt
(informa o número de linhas do arquivo cidades.txt).

head –20 /var/log/messages


(lista somente as primeiras 20 linhas do arquivo /var/log/messages).

tail –20 /var/log/messages


(lista somente as últimas 20 linhas do arquivo /var/log/messages).

echo $PATH | tail –c10


(lista somente os últimos 10 caracteres do conteúdo da variável $PATH).

cut –d: -f1-1 /etc/passwd


(mostra somente o primeiro campo do arquivo /etc/passwd utilizando :
como delimitador).

cut –d: -f1-3 /etc/passwd


(mostra o primeiro, o segundo e o terceiro campo do arquivo
/etc/passwd utilizando : como delimitador).

expand cidades.txt

Alexandre Pedroso – http://www.aplinux.com.br


Página 53
Alexandre Pedroso – http://www.aplinux.com.br

(substitui ocorrências de tabulações no arquivo cidades.txt por


caracteres em branco).

fmt –w50 –s cidades.txt


(formata a largura do texto para 50, respeitando a quebra de linha).

pr –d –h “CABEÇALHO DA IMPRESSÃO” cidades.txt


(imprime o conteúdo do arquivo cidades.txt com espaçamento de duas
linhas e título, conforme comando).

grep alex /etc/passwd


(lista as linhas que contem a palavra alex dentro do arquivo
/etc/passwd).

find / –name *.txt


(procura por arquivos com a extensão txt em todo o sistema - /).

updatedb
(gera banco de dados indexado com informações de arquivos e
diretórios do sistema).

locate cidades.txt
(localiza o arquivo cidades.txt rapidamente no banco de dados indexado
gerado pelo comando updatedb).

whereis halt
(localiza o comando halt nos diretórios de PATH do sistema).

sed s/C\.E\.P/cep/g cidades.txt


(substitui todas as ocorrências da palavra CEP pela palavra cep no
arquivo cidades.txt).

Alexandre Pedroso – http://www.aplinux.com.br


Página 54
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 09 – REDIRECIONAMENTO E PIPE

9.1 – INTRODUÇÃO

Os comandos do sistema, quando utilizados isoladamente, tem uma


função específica e rendem muito menos do que poderiam render ao
administrador do sistema. Porém, quando utilizamos um conjunto de
comandos de forma unificada, eles se tornam poderosas ferramentas
capazes de realizar praticamente todas as tarefas imagináveis no
sistema.

Vamos estudar agora, quais são as maneiras de unificar os comandos


para atingir os objetivos descritos acima.

9.2 – COMANDOS ENVOLVIDOS

tee : comando utilizado para receber a saída de outro comando e enviar


o resultado para saída padrão e para um próximo comando.

| : comando utilizado para redirecionar a saída padrão de um comando


para ser utilizada como entrada padrão de outro comando.

> : comando utilizado para modificar a saída padrão de um comando.

< : comando utilizado para modificar a entrada padrão de um comando.

2> : comando utilizado para redirecionar as saídas de erro de um


comando para um arquivo qualquer.

9.3 – EXEMPLOS DE UTILIZAÇÃO

cat cidades.txt | head –5 | tail –1


(visualizar a quinta linha do arquivo cidades.txt).

cat cidades.txt | sort | tee cidades.ordenada | wc –l


(visualizar o número de linhas do arquivo cidades.txt e criar o arquivo
cidades.ordenada que terá o conteúdo do arquivo cidades.txt com as
linhas em ordem crescente).

Alexandre Pedroso – http://www.aplinux.com.br


Página 55
Alexandre Pedroso – http://www.aplinux.com.br

ls –l > arquivos.txt
(cria o arquivo arquivos.txt com o conteúdo do comando ls –l).

find / -name *.txt 2> erro.log


(procura por arquivos no sistema e redireciona os erros gerados pelo
comando para o arquivo erro.log).

Alexandre Pedroso – http://www.aplinux.com.br


Página 56
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 10 - GERENCIAMENTO DE USUÁRIOS E GRUPOS

10.1 – INTRODUÇÃO

As contas de usuários e grupos, como já visto anteriormente, são


fundamentais para garantirmos a segurança e a integridade dos dados
do sistema. O usuário utilizará, sempre, uma conta e uma senha para
acessar o sistema (realizar o login). Depois disso, poderá somente ter
acesso, aos arquivos e diretórios com permissões para esta conta de
usuário ou com permissões para alguma conta de grupo que este
usuário faça parte.

É tarefa fundamental dos administradores de sistemas LINUX saber criar


contas de usuários no sistema, criar contas de grupos, delegar
autoridades aos usuários, configurar as permissões de acessos aos
arquivos e diretórios do sistema de forma adequada, agrupar os
usuários com acessos comuns e manter somente contas utilizadas no
banco de dados de usuários do sistema.

Neste capítulo, estudaremos como podemos realizar todas essas tarefas


citadas acima em sistemas LINUX.

10.2 – CONTAS DE USUÁRIOS E CONTAS DE GRUPOS

Primeiramente, vamos estudar alguns conceitos importantes sobre o


funcionamento destas contas em sistema LINUX.

No momento que criamos um usuário no sistema, serão alterados os


seguintes arquivos.

- /etc/passwd – banco de dados com informações de contas de


usuários do sistema e suas propriedades.

- /etc/shadow – banco de dados com informações de senhas de


usuários do sistema (senhas criptografadas).

- /etc/group – banco de dados com informações de contas de


grupos do sistema e suas propriedades.

Alexandre Pedroso – http://www.aplinux.com.br


Página 57
Alexandre Pedroso – http://www.aplinux.com.br

No momento que criamos um usuário no sistema, serão utilizados os


seguintes arquivos.

- /etc/login.defs – neste arquivo estão as configurações padrões


para o login do usuário. É nele que definimos algumas das opções
de segurança, tais como, quantidade mínima de caracteres na
senha, tempo de expiração da senha, entre outras.

- /etc/skel/* - o conteúdo deste diretório será copiado para dentro


do diretório home do usuário, no momento em que este está
sendo criado. Esses são arquivos de configuração do shell do
usuário, que têm a finalidade de estipular um padrão de criação
de contas de usuários. São exemplos desses arquivos: .bashrc,
.bash_profile, .bash_logout, .bash_history, entre outros.

10.3 - COMANDOS ENVOLVIDOS

useradd : comando utilizado para criação de contas de usuário no


sistema.

Parâmetros do useradd:

-d Definir o diretório home do usuário


-g Definir o grupo primário do usuário
-s Definir o shell que será utilizado pelo usuário

userdel : comando utilizado para exclusão de contas de usuário no


sistema.

Parâmetros do userdel:

-r Apagar também o diretório home do usuário

passwd : comando utilizado para alteração de senha de usuário no


sistema.

groupadd : comando utilizado para criação de contas de grupo no


sistema.

-f Modo forçado, ou seja, cria o grupo mesmo que já exista no


sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 58
Alexandre Pedroso – http://www.aplinux.com.br

gpasswd : comando utilizado para incluir ou excluir usuários nas contas


de grupos. Além disso, o gpasswd é utilizado para administrar os grupos
do sistema.

Parâmetros do gpasswd:

-a Adicionar usuário no grupo


-d Excluir usuário do grupo
-R Desabilitar o acesso ao grupo através do comando newgrp
-r Remover a senha de um grupo
-A Definir o administrador do grupo
-M Definir os membros e seus direitos no grupo

newgrp : comando utilizado pelos próprios membros do grupo para


inclusão de novos usuários no grupo.

id : comando utilizado para listar informações sobre o usuário, tais


como, sei uid, seu gid, grupos que pertence, entre outras.

10.4 – EXEMPLOS DE UTILIZAÇÃO

useradd alex
(cria o usuário alex no sistema).

userdel alex
(remove o usuário alex do sistema).

userdel –r alex
(remove o usuário alex e seu diretório home do sistema).

passwd alex
(defini ou altera a senha do usuário alex no sistema).

passwd
(defini ou altera a senha do usuário corrente).

groupadd contabilidade
(cria o grupo contabilidade no sistema)

gpasswd –a alex contabilidade


(inclui o usuário alex no grupo contabilidade).

Alexandre Pedroso – http://www.aplinux.com.br


Página 59
Alexandre Pedroso – http://www.aplinux.com.br

gpasswd –d alex contabilidade


(exclui o usuário alex do grupo contabilidade).

id alex
(mostra informações sobre o usuário alex).

id
(mostra informações sobre o usuário corrente).

Alexandre Pedroso – http://www.aplinux.com.br


Página 60
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 11 - SISTEMAS DE ARQUIVOS

11.1 – INTRODUÇÃO

Os sistemas de arquivos de um sistema operacional são a forma como


este acessa o disco em busca das informações, seja para leitura ou
gravação. Eles constituem um conjunto de propriedades que ditam
como os arquivos serão armazenados no disco e como serão acessados
pelo sistema operacional.

Existem vários tipos de sistema de arquivos, que basicamente, servem


para realizar o mesmo trabalho. A diferença entre eles é a forma como o
trabalho é feito e os recursos disponíveis em cada um dos sistemas de
arquivos existentes. São exemplos de sistemas de arquivos FAT16,
FAT32, NTFS, EXT2, EXT3, ISO9660, entre outros.

No Conectiva LINUX 9.0, o sistema de arquivo padrão é o EXT3. O EXT3


é uma evolução natural para o EXT2. Suas principais características são:

Journaling

O fsck consegue prover resultados satisfatórios, mas a correção de erros


pode levar muito tempo, algo inaceitável em aplicações críticas. Além
disso, se o desligamento incorreto do computador ocorreu quando dados
estavam sendo gravados no disco, o fsck não conseguirá completar
esses processos, ocasionando a perda das informações que estavam
sendo gravadas.

Diante desses problemas, foi apresentada uma solução viável: a


utilização de sistemas de arquivos com a tecnologia "Journaling", que
possuem a capacidade de acompanhar as mudanças que serão feitas no
sistema de arquivos (por exemplo, gravações/atualizações de dados)
antes que realmente sejam feitas. Essas informações que o Journaling
captura são então armazenadas em uma parte separada do sistema de
arquivos, denominada "Journal" (mas também conhecida por "registros
de log"). Quando as informações são armazenadas no Journal, o sistema
de arquivos aplica as mudanças registradas nele e então, remove as
informações do Journal.

Agora, entenda porque o Journaling é uma solução eficiente para os


problemas de erro. Os registros de log são escritos antes que as
mudanças efetivamente ocorram no sistema de arquivos e esses

Alexandre Pedroso – http://www.aplinux.com.br


Página 61
Alexandre Pedroso – http://www.aplinux.com.br

registros somente são eliminados quando as mudanças são feitas.


Assim, se o computador é indevidamente desligado, o processo de
montagem no próximo startup verificará se há mudanças gravadas no
Journal "marcadas" como não feitas. Se houver, tais mudanças são
então aplicadas ao sistema de arquivos. Isso faz com que os riscos de
perda de dados sejam reduzidos drasticamente.

Sistema de arquivos ext3

Existem vários sistemas de arquivos disponíveis com a tecnologia


Journaling, como o XFS, desenvolvido originalmente pela Silicon
Graphics e posteriormente disponibilizado com código aberto, o
ReiserFS, desenvolvido especialmente para Linux, JFS, desenvolvido
originalmente pela IBM mas também liberado com código aberto, e o
mais conhecido deles: o ext3, desenvolvido pelo Dr. Stephen Tweedie
juntamente com outros colaboradores, na Red Hat, e que veremos
agora.

O sistema de arquivos ext3 é basicamente o sistema de arquivos ext2


com recursos de Journaling. Talvez, essa seja a razão de seu uso amplo:
ele é totalmente compatível com ext2 (que foi um sistema de arquivos
muito usado), o que nenhum outro sistema de arquivos baseado em
Journaling é.

O ext3 passou a ser efetivamente suportado pelo kernel do Linux a


partir da versão 2.4. Conseqüentemente, todas as distribuições Linux
lançadas com esse kernel ou superior, tem suporte padrão para ext3.

No ext3, o código de Journaling usa uma camada chamada "Journaling


Block Device" (JBD). A JBD foi criada com o propósito de implementar
Journal em qualquer tipo de dispositivo com base em blocos de dados.
Por exemplo, o código ext3 informa e "pede autorização" a JDB para
efetuar as mudanças, antes de modificar/adicionar qualquer dado no
disco. Sendo assim, é o JDB que verdadeiramente "gerencia" o Journal.
O fato mais interessante disso é que, a JDB funciona como uma
entidade independente, permitindo que não só o ext3 a use, mas
também outros sistemas de arquivos.

A JDB utiliza um método diferente de outros Journalings para


recuperação de informações. Ao invés de armazenar as informações em
bytes que depois devem ser implementados, a JDB grava os próprios
blocos modificados do sistema de arquivos. Assim, o ext3 também
armazena "réplicas" completas dos blocos modificados em memória para
rastrear as operações que ficaram pendentes. A desvantagem desta

Alexandre Pedroso – http://www.aplinux.com.br


Página 62
Alexandre Pedroso – http://www.aplinux.com.br

forma de trabalho é que o Journal acaba sendo maior. No entanto, o


ext3 não precisa lidar com a complexidade dos Journalings que
trabalham gravando bytes.

Tipos de Journaling no ext3

O ext3 suporta três diferentes modos de trabalho do Journaling. São


eles:

- Journal: grava todas as mudanças em sistema de arquivos. É o


mais lento dos três modos, mas é o que possui maior capacidade
de evitar perda de dados.

- Ordered: grava somente mudanças em arquivos metadata


(arquivos que guardam informações sobre outros arquivos), mas
guarda as atualizações no arquivo de dados antes de fazer as
mudanças associadas ao sistema de arquivos. Este Journaling é o
padrão nos sistemas de arquivos ext3.

- Writeback: também só grava mudanças para o sistema de arquivo


em metadata, mas utiliza o processo de escrita do sistema de
arquivos em uso para gravação. É o mais rápido Journaling ext3,
mas o menos confiável.

O modo Ordered é o padrão no ext3, mas é possível especificar qual o


modo que você deseja usar, através da atualização do arquivo fstab.

Vamos aprender agora, como é o esquema de particionamento de disco


em sistemas LINUX. Seguem abaixo as identificações de cada dispositivo
físico anexado ao sistema, bem como sua devida explicação.

- /dev/hda – disco rígido ligado na porta master da ide primária do


computador.

- /dev/hdb – disco rígido ligado na porta slave da ide primária do


computador.

- /dev/hdc – disco rígido ligado na porta master da ide secundária


do computador.

- /dev/hdd – disco rígido ligado na porta slave da ide secundária do


computador.
- /dev/sda – disco rígido ligado na porta master da scsi primária do
computador.

Alexandre Pedroso – http://www.aplinux.com.br


Página 63
Alexandre Pedroso – http://www.aplinux.com.br

- /dev/sdb – disco rígido ligado na porta slave da scsi primária do


computador.

- /dev/sdc – disco rígido ligado na porta master da scsi secundária


do computador.

- /dev/sdd – disco rígido ligado na porta slave da scsi secundária do


computador.

- /dev/fd0 – unidade de disquete

- /dev/cdrom – unidade de cdrom

- /dev/zip – unidade de zipdrive

Após este pequena introdução, podemos então partir para os comandos


que envolvem o capítulo.

11.2 – COMANDOS ENVOLVIDOS

fdisk : comando utilizado para editar a tabela de partições do sistema.

Parâmetros do fdisk:

-u Exibe informações em setores ou cilindros do disco

mkfs : comando utilizado para construir um sistema de arquivos em um


disco particionado.

Parâmetros do mkfs:

-t Especificar o tipo de sistema de arquivos a construir


-c Verificar a integridade física do dispositivo

fsck : comando utilizado para verificar a integridade do sistema de


arquivos.

Parâmetros do fsck:

-p Reparação automática do sistema de arquivos

Alexandre Pedroso – http://www.aplinux.com.br


Página 64
Alexandre Pedroso – http://www.aplinux.com.br

-c Faz também exame de superfície


-R Não verifica raiz do sistema se estiver montado para leitura
e gravação

mount : comando utilizado para montar um dispositivo em um ponto de


montagem no sistema.

Parâmetros do mount:
-t Especificar tipo do sistema de arquivos do dispositivo que
será montado.
-r Montar como somente leitura

umount : comando utilizado para desmontar um dispositivo de um


ponto de montagem no sistema.

du : comando utilizado para exibir informações do tamanho de arquivos


e diretórios do disco.

-s Totalização do tamanho do diretório


-h Visualizar tamanho com formatação visual.

df : comando utilizado para exibir informações de espaço em disco


ocupado pelas partições montadas no sistema.

-h Visualizar tamanho com formatação visual.

11.3 – EXEMPLOS PRÁTICOS

fdisk /dev/hda
(edita a tabela de partição do /dev/hda).

mkfs –t ext3 /dev/hda4


(constrói sistema de arquivos ext3 no /dev/hda4).

fsck /dev/hda4
(verifica a integridade do sistema de arquivos do /dev/hda4).

mount –t ext3 /dev/hda5 /mnt/linux


(monta a partição /dev/hda5 com sistema de arquivos ext3 em
/mnt/linux).

Alexandre Pedroso – http://www.aplinux.com.br


Página 65
Alexandre Pedroso – http://www.aplinux.com.br

mount –t iso9660 /dev/cdrom /mnt/cdrom


(monta a unidade de cdrom em /mnt/cdrom).

mount –t ntfs /dev/hda6 /mnt/windows


(monta a partição /dev/hda6 com sistema de arquivos ntfs em
/mnt/windows).

mount –t vfat /dev/fd0 /mnt/floppy


(monta a unidade de disquete em /mnt/floppy).

umount /mnt/windows
(desmonta a partição montada em /mnt/windows).

umount /mnt/cdrom
(desmonta a unidade de cdrom).

du –sh
(exibe tamanho em disco do diretório corrente).

df –h
(exibe espaço livre em disco de todas as partições montadas no
sistema).

umount /mnt/floppy
(desmonta a unidade de disquete)

Alexandre Pedroso – http://www.aplinux.com.br


Página 66
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 12 - SERVIÇOS E PROCESSOS

12.1 – INTRODUÇÃO

O LINUX controla suas aplicações através de serviços e processos que


estão “rodando” no sistema operacional. Mas o que vem a ser os
serviços?

Os serviços são aplicações desenvolvidas para realizar determinadas


tarefas no sistema. Por exemplo, quando instalado um sistema LINUX
como sendo um Servidor de DNS, teremos um serviço que
desempenhará o papel de DNS neste sistema. Além deste, teremos o
serviço de rede, responsável pelas conexões deste servidor com as
redes e a Internet, e assim por diante.

Quando instalamos o Conectiva LINUX, podemos decidir quais os


serviços serão instalados automaticamente. Portanto, podemos dizer
que, os serviços, nada mais são do que aplicações (aplicativos) que
“rodam” em um servidor ou estão de trabalho com o intuito de
desempenhar funções específicas, porém sempre com a finalidade de
servir os clientes ou usuários da rede.

Para cada tarefa ou para cada serviço que está em execução no sistema
o LINUX cria um processo. Na verdade, dependendo da utilização deste
serviço ou tarefa o LINUX cria vários e vários processos. Um processo
nada mais é do que uma identificação de um serviço ou tarefa que está
em execução. Os processos são criados automaticamente pelo sistema
operacional quando um serviço ou uma tarefa é iniciado e, é através
deles, que o sistema consegue ter controle total sobre os serviços e
tarefas que estão em execução.

O LINUX possui um ótimo controle de serviços e processos em


execução. Através deste controle, é possível especificar prioridades de
execução, finalizar processos ociosos, finalizar processos travados, e
redefinir prioridades de processos em execução. Essas são tarefas
diárias de um administrador de sistemas LINUX.

Além disso, o LINUX utiliza endereço reservado de memória para os


processos, ou seja, na área de memória que está “rodando” o sistema
operacional, por exemplo, não “rodará” nem uma outra aplicação. Assim
acontece com qualquer serviço no sistema. Isso é muito bom, pois

Alexandre Pedroso – http://www.aplinux.com.br


Página 67
Alexandre Pedroso – http://www.aplinux.com.br

garante que se um serviço travar, não afetará os demais serviços em


execução e, tão pouco, afetará o sistema operacional.

Outro detalhe importante é que, dependendo da carga dos serviços, o


sistema cria processos filhos de um processo pai, ou seja, são divididos
os processos para ganhar em agilidade, estabilidade e tempo de
resposta ao cliente da rede. Uma explicação bem resumida disso segue
abaixo.

Imagine que você tem um servidor de publicação web. Neste servidor


estão hospedados alguns sites. Então em um determinado momento,
seu servidor tem um pico de acesso simultâneo, ou seja, muitas e
muitas pessoas acessando seus sites ao mesmo tempo. Neste momento,
com certeza, o sistema terá criado vários processos filhos de um
processo pai do serviço apache (serviço de http – web server). Isso
também é feito de forma automática pelo sistema operacional.

Neste capítulo, ainda não iremos aprofundar nos serviços, pois faltam
alguns conhecimentos necessários para falarmos deles. Aprofundaremos
sim nos processos e seus comandos.

Da mesma forma que existem os UID e os GID para identificação de


usuários e grupos no sistema, respectivamente, existem também os PID
para identificação dos processos no sistema. Portanto, cada processo
possui um número que o identifica, que nós chamaremos de PID.
Através deste PID, é possível alterar a prioridade de processos em
execução, parar processos, reiniciar processos e “matar” processos caso
estes estejam com problemas ou causando problemas ao sistema.

12.2 – GERENCIAMENTO DE PROCESSOS

Existe um conjunto de comandos utilizados para realizar o


gerenciamento de processos em sistemas LINUX. São eles.

ps : comando utilizado para visualizar processos ativos no sistema.

Parâmetros do ps:

-a Mostrar todos os processos ativos


-f Mostrar em formato de árvore
-u Incluir usuário do processo e hora de início
-x Incluir processos não associados a um terminal

Alexandre Pedroso – http://www.aplinux.com.br


Página 68
Alexandre Pedroso – http://www.aplinux.com.br

kill – comando utilizado para encerrar um processo ativo.

Parâmetros do kill:

-l Exibir os sinais que podem ser enviados a um processo.

nice – comando utilizado para ajustar a prioridade que será executado


um novo processo.

Parâmetros no nice:

+n ou –n Definir a prioridade do processo em n (-20 prioridade


máxima de execução e 19 prioridade mínima de execução).

renice - comando utilizado para ajustar a prioridade de um processo em


execução.

Parâmetros no renice:

+n ou –n Definir a prioridade do processo em n (-20 prioridade


máxima de execução e 19 prioridade mínima de execução).

IMPORTANTE: Somente o usuário root pode definir prioridades


negativas (prioridades máximas) para um processo em sistemas LINUX.
Os usuários comuns só podem definir prioridades positivas, ou seja,
prioridades que não podem comprometer o sistema.

IMPORTANTE: Os processos estão sempre ajustados para as melhores


prioridades. Não convém alterar esses valores, ao menos que você saiba
muito bem o que faz.

top : comando utilizado para mostrar informações de processos,


memória RAM, memória virtual, usuários online, entre outros.

Parâmetros do top:

-d n Atualizar a tela de n em n segundos


-i Não inclui na listagem processos ociosos ou zombies.

free : comando utilizado para visualizar informações de memória do


sistema.

Alexandre Pedroso – http://www.aplinux.com.br


Página 69
Alexandre Pedroso – http://www.aplinux.com.br

12.3 – EXEMPLOS PRÁTICOS

ps aux
(mostrar todos os processos ativos).

ps aux | grep named


(mostrar somente os processos referentes ao named).

kill –l
(lista todos os sinais que podem ser enviados ao processo).

kill –9 PID
(matar um processo baseado no seu PID).

top –d1
(mostra informações de processos, memória RAM, memória virtual,
entre outros, atualizando a tela de um em um segundo).

free
(mostra informações de memória do sistema).

Alexandre Pedroso – http://www.aplinux.com.br


Página 70
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 13 - INSTALAÇÃO DE PACOTES

13.1 – INTRODUÇÃO

A instalação de pacotes no sistema é uma tarefa bastante comum. Os


administradores de sistemas LINUX devem fazer isso quase que
constantemente. Isso porque hoje em dia, a segurança exige uma
permanente atualização de pacotes instalados, a fim de sanar os bug´s
encontrados em versões mais antigas.

Desta forma, o administrador do sistema deve conhecer os métodos de


instalação, desinstalação e atualização de pacotes no sistema.

IMPORTANTE: É importante manter os pacotes do sistema atualizados,


porém todo cuidado em uma atualização é pouco. Imagine que temos
um servidor de publicação web instalado em nossa empresa. Além de
hospedar vários sites, este servidor também é responsável por
publicações de DNS e possui um banco de dados MySQL para uso nos
sites. Você percebe que tem uma nova versão do MySQL disponível para
download, que entre outras coisas, atualiza um bug grave de segurança
existente no produto. A maneira mais correta de proceder essa
atualização é criar um servidor clone do seu servidor de produção,
atualizar este servidor, aguardar por alguns dias para ver se ocorre
algum problema e, se nada de errado acontecer, atualizar seu sistema
de produção. Muitos e muitos administradores não seguem esses
passos. É bem verdade que, na grande maioria dos casos nada de
errado acontece, mas lembre-se que, quando o sistema não puder parar
um misero segundo, acontecerá algo de errado e você estará
encrencado. Portanto, evite riscos desnecessários. Faça sempre como
manda o figurino.

Existem algumas formas bem conhecidas de se instalar pacotes e


atualizar pacotes do sistema. No Conectiva LINUX, as formas mais
conhecidas são o rpm e o apt-get. Este último é uma excelente
ferramenta, pois verifica e resolve a grande maioria das dependências
entre os pacotes. Mas o que vem a ser a dependência de pacotes em
sistemas LINUX?

É um conceito muito simples. Imagine que você deseja tomar um copo


de leite. Para realizar essa tarefa, você depende de duas coisas: o leite
e o copo. Nunca será possível tomar um copo de leite sem o leite ou
sem o copo. Isso acontece também com os pacotes do sistema, ou seja,

Alexandre Pedroso – http://www.aplinux.com.br


Página 71
Alexandre Pedroso – http://www.aplinux.com.br

dependendo do pacote que você deseja instalar no sistema, terá que


instalar vários outros pacotes dos quais esse depende. Exatamente por
esse motivo, o apt-get é muito utilizado. Enquanto que o rpm não
resolve nenhuma dependência de pacotes, ou seja, você deve resolvê-
las por conta própria, o apt-get, na grande maioria dos casos, resolve
essas dependências, poupando com isso, muito trabalho do
administrador do sistema.

Resumidamente, em instalações via rpm, os pacotes serão instalados


através dos cd’s fornecidos com o produto (exemplo cd’s Conectiva
LINUX). Os pacotes rpm podem ser baixados também da Internet.

Já as instalações via apt-get, podem ser feitas dos cd’s, mas


normalmente os pacotes são baixados via ftp e instalados no sistema,
satisfazendo todas as dependências para o bom funcionamento do
pacote.

Um pacote rpm tem a seguinte estrutura:

dia – 0.86 – 11 cl . i386 . rpm

Da esquerda para direita temos: nome do pacote, versão do pacote,


distribuição (cl = conectiva linux), plataforma e extensão do arquivo
(rpm).

Em seguida, estudaremos os comandos utilizados para realizar as


tarefas citadas acima, suas principais utilizações e alguns exemplos
práticos.

13.2 – COMANDOS ENVOLVIDOS

rpm : comando utilizado para instalação, desinstalação e atualização de


pacotes no sistema.

Parâmetros do rpm:

-ivh Instalação de pacotes no sistema


--force Somente pode ser utilizado com o parâmetro ivh.
Através dele, é possível forçar a instalação do pacote,
ignorando se o pacote já está instalado.

Alexandre Pedroso – http://www.aplinux.com.br


Página 72
Alexandre Pedroso – http://www.aplinux.com.br

--nodeps Somente pode ser utilizado com o parâmetro ivh.


Através dele, é possível forçar a instalação do pacote,
ignorando as dependências exigidas pelo sistema.
--replacefiles Somente pode ser utilizado com o parâmetro ivh.
Através dele, é possível forçar a instalação do pacote,
ignorando possíveis conflitos com outros pacotes do
sistema.
-Uvh Atualização de pacotes no sistema.
--oldpackage Somente pode ser utilizado com o parâmetro Uvh.
Através dele, é possível forçar a instalação do pacote,
mesmo que este seja mais antigo do que o pacote que já
estava instalado no sistema.
-e Desinstalação de pacotes do sistema.
-q Consultar nome, versão e release do pacote.
-f Consultar pacote ao qual o arquivo faz parte.
-p Consultar um arquivo de pacote.
-qp Mostrar o nome do pacote para o arquivo rpm
especificado.
-qd Documentação do pacote.
-V Faz verificação do pacote.
-Va Verifica todos os pacotes instalados no sistema.

apt-get : comando utilizado para instalação, desinstalação e atualização


de pacotes no sistema.

Parâmetros do apt-get:

install Instalar pacotes no sistema.


remove Remover pacotes do sistema.
update Atualizar índices dos pacotes.
dist-upgrade Fazer upgrade da distribuição (todos os pacotes).

13.3 – EXEMPLOS DE UTILIZAÇÃO

rpm –ivh arquivo.rpm


(instala o pacote presente em arquivo.rpm no sistema).

rpm –ivh arquivo.rpm –force


(instala o pacote presente em arquivo.rpm, em modo forçado no
sistema).

Alexandre Pedroso – http://www.aplinux.com.br


Página 73
Alexandre Pedroso – http://www.aplinux.com.br

rpm –Uvh arquivo.rpm


(atualiza o pacote presente em arquivo.rpm no sistema).

Alexandre Pedroso – http://www.aplinux.com.br


Página 74
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 14 – EXERCÍCIOS

Este capítulo é reservado aos exercícios de fixação de todo conteúdo


apresentado na apostila. Estes exercícios devem ser feitos quantas
vezes forem necessárias para que não haja dúvida sobre nenhum
tópico. A idéia de colocá-los aqui, é justamente prepará-lo para suas
provas de certificação profissional.

Procure ser criterioso na hora de respondê-los e mantenha uma folha


com as anotações do porque de cada uma de suas respostas. Isso pode
ser muito útil quando você for estudar daqui a alguns dias.
Provavelmente, você esquecerá porque marcou a alternativa “a” e não a
alternativa “b”. Sendo assim, uma explicação anotada pode refrescar
sua memória rapidamente, poupando com isso, tempo e desgaste
desnecessário.

14.1 – LISTA DE EXERCÍCIOS

1) Sempre que criamos um usuário no sistema, um grupo é criado


com o mesmo nome do usuário. Essa afirmação é correta?
Explique.

2) Marque o(s) comando(s) para encerrar uma seção de shell.

a) login

b) logout

c) halt

d) exit

3) Marque o(s) comando(s) para realizar a reinicialização do


sistema.

a) shutdown –h now

b) shutdown –r now

c) reboot

Alexandre Pedroso – http://www.aplinux.com.br


Página 75
Alexandre Pedroso – http://www.aplinux.com.br

d) exit

4) Marque o(s) comando(s) para realizar o desligamento do


sistema.

a) halt

b) reboot

c) shutdown

d) shutdown –h now

5) Marque a alternativa que, respectivamente, identifica usuários,


grupos, usuários comuns e root no sistema.

a) GID, UID, >500 e 0

b) UID, PID, 0 e >500

c) UID, GID, >500 e 0

d) UID, GID, 0 e >500

6) Altere os arquivos ~/.bashrc e ~/.bash_profile para testes de


aliases e variáveis de ambiente criados por você.

7) Não são consideradas características do shell a(s) alternativa(s).

a) Interpretador de comandos

b) Interface do usuário

c) Pode ser configurado somente pelo superusuário

d) Admite programação por scripts

8) São exemplos de utilização de um shell não interativo a(s)


alternativa(s) abaixo.

a) Comando digitado pelo usuário na console

b) Usuário efetuando login no sistema

Alexandre Pedroso – http://www.aplinux.com.br


Página 76
Alexandre Pedroso – http://www.aplinux.com.br

c) Script de backup “rodando” no servidor

d) Usuário efetuando logout

9) Marque o(s) comando(s) para alterar o nome de arquivos no


sistema.

a) rename

b) change

c) mv

d) nda

10) Marque o(s) comando(s) para mover arquivos e diretórios no


sistema.

a) move

b) mv

c) cp

d) nda

11) Marque o parâmetro que deve ser utilizado com o comando rm


para apagar uma árvore de diretórios.

a) –rf

b) –f

c) –bf

d) nda

12) Marque o(s) comando(s) para criar hard links e links simbólicos,
respectivamente, no sistema.

a) ls e ln

b) ln e ln –s

Alexandre Pedroso – http://www.aplinux.com.br


Página 77
Alexandre Pedroso – http://www.aplinux.com.br

c) hl e ls

d) nda

13) Fale sobre a estrutura de diretórios em sistemas LINUX.

14) Sobre o comando man, não podemos afirmar.

a) Você pode especificar parâmetros para o comando

b) Só mostra as opções básicas do comando

c) Manual completo do comando

d) nda

15) Para que servem as opções –P e –M do comando man?

16) Quais comandos podem ser considerados comando de


documentação do LINUX.

a) man, ls e info

b) man e info

c) man, info e help

d) nda

17) Marque o(s) comando(s) para alterar permissões em arquivos e


diretórios do sistema.

a) chmod

b) chown

c) set change

d) nda

18) Qual é a seqüência existente nas permissões de arquivos e


diretórios do sistema?

Alexandre Pedroso – http://www.aplinux.com.br


Página 78
Alexandre Pedroso – http://www.aplinux.com.br

a) Dono do arquivo, membros do grupo e identificação do


arquivo ou diretório

b) Dono do arquivo, superusuário e outros

c) Dono do arquivo, membros do grupo e outros usuários

d) Identificação do arquivo, membros do grupo e outros usuários

19) Explique a permissão 752 para um arquivo.

a) Dono pode ler, gravar e executar; membros do grupo podem


ler e executar; outros usuários podem ler

b) Dono pode ler, gravar e executar; membros do grupo podem


ler e gravar; outros podem gravar

c) Dono pode ler, gravar e executar; membros do grupo podem


ler e executar; outros podem gravar

d) Dono pode ler, gravar e executar; membros do grupo podem


ler e gravar; outros podem gravar

20) Marque o(s) comando(s) para alterar usuário dono e grupo dono
de arquivos e diretórios.

a) chown

b) chmod

c) chattr

d) nda

21) Marque a(s) alternativa(s) que permite(m) que um arquivo


criado em um diretório somente possa ser apagado pelo seu
usuário dono, independentemente das permissões que o arquivo
tenha.

a) suid bit

b) sgid bit

c) sticky bit

Alexandre Pedroso – http://www.aplinux.com.br


Página 79
Alexandre Pedroso – http://www.aplinux.com.br

d) nda

22) Marque o(s) comando(s) para mostrar na saída padrão todas as


linhas de um arquivo qualquer.

a) ls

b) head

c) cat

d) nda

23) Marque o(s) comando(s) para filtrar conteúdo de arquivo


baseado em uma string fornecida.

a) grep

b) find

c) sed

d) locate

24) Marque o(s) comando(s) para exibir somente as últimas linhas


de um arquivo qualquer.

a) cat

b) tail

c) tac

d) nda

25) Marque a(s) alternativa(s) que contém o comando correto para


mostrar na tela a antepenúltima linha do arquivo.

a) tail –3 /var/log/messages | head –1

b) head –2 /var/log/messages | tail –1

c) tail –3 /var/log/messages | head –2

Alexandre Pedroso – http://www.aplinux.com.br


Página 80
Alexandre Pedroso – http://www.aplinux.com.br

d) head –2 /var/log/messages | tail –2

26) Quais dos comandos abaixo fazem uma rápida busca por
arquivos no sistema.

a) locate

b) find

c) findfast

d) find –fast

27) Para redirecionar a saída do comando ls –la para dentro do


arquivo arquivos.txt, podemos utilizar.

a) cat arquivos.txt | arquivos.txt

b) ls –la | arquivos.txt

c) ls –la > arquivos.txt

d) ls –la | arquivos.txt

28) Qual das alternativas abaixo poderia ser utilizada para listar
somente os logins de todos os usuários do sistema?

a) cat /etc/passwd

b) cat /etc/passwd | grep login

c) cut –d: -f1-1 /etc/passwd

d) cut /etc/passwd | grep login

29) O comando wc é utilizado para.

a) Contar linhas, palavras e caracteres de um arquivo

b) Classificar o conteúdo de um arquivo

c) Visualizar o conteúdo de um arquivo

Alexandre Pedroso – http://www.aplinux.com.br


Página 81
Alexandre Pedroso – http://www.aplinux.com.br

d) nda

30) Qual é o arquivo que contém informações de contas de usuário


no sistema?

a) /etc/shadow

b) /etc/pawword

c) /etc/passwd

d) /opt/passwd

31) Qual é o arquivo que contém as senhas criptografadas de todos


os usuários do sistema?

a) /etc/passwd

b) /etc/senhas

c) /opt/shadow

d) /etc/shadow

32) Como poderíamos fazer para colocar usuários dentro de um


grupo no sistema?

a) useradd usuário grupo

b) useradd usuário

c) gpasswd –d usuário grupo

d) gpasswd –a usuário grupo

33) Se você quiser remover um usuário do sistema e todos os seus


arquivos, você digitaria.

a) userdel

b) userdel –a

c) userdel –r

Alexandre Pedroso – http://www.aplinux.com.br


Página 82
Alexandre Pedroso – http://www.aplinux.com.br

d) rm –rf /home/usuario

34) O diretório home do usuário alex e do usuário root são,


respectivamente.

a) /alex e /root

b) /home/alex e /root

c) /home/alex e /home/root

d) /opt/alex e /home/root

35) Marque o comando correto para efetuar a montagem de um


disquete que é utilizado também no Windows.

a) mkfs /dev/fd0

b) mount –t ntfs /dev/fd0 /mnt/floppy

c) mount –t vfat /dev/fd0 /mnt/floppy

d) mkfs /dev/fd0 /mnt/floppy

36) Marque o comando correto para efetuar a montagem de um


cdrom que é utilizado também no Windows.

a) mkfs /dev/cdrom

b) mount –r –t iso9660 /dev/cdrom /mnt/cdrom

c) mount –r –t vfat /dev/cdrom /mnt/cdrom

d) mkfs /dev/fd0 /mnt/floppy

37) Um hd IDE pode ser representado no sistema como.

a) /dev/sda

b) /dev/hda

c) /mnt/hda

Alexandre Pedroso – http://www.aplinux.com.br


Página 83
Alexandre Pedroso – http://www.aplinux.com.br

d) /mnt/sda

38) Um hd SCSI pode ser representado no sistema como.

a) /dev/sda

b) /dev/hda

c) /mnt/hda

d) /mnt/sda

39) Marque o(s) comando(s) para apresentar os processos correntes


no sistema.

a) top –d1

b) ps aux

c) free

d) nda

40) Marque o(s) comando(s) para apresentar informações de


memória RAM, memória virtual, quantidade de usuários logados
e tempo que o sistema está ativo.

a) free

b) top –d1

c) ps aux

d) nda

41) Marque o(s) comando(s) para alterar a prioridade de um


processo que será executado no sistema.

a) renice

b) ps aux | grep +20

c) nice

Alexandre Pedroso – http://www.aplinux.com.br


Página 84
Alexandre Pedroso – http://www.aplinux.com.br

d) nda

42) Como poderíamos fazer para “matar” um processo que está


travado no sistema?

a) ps aux | kill PID

b) stop PID

c) kill –9 PID

d) stop –9 PID

43) Qual opção do comando kill é utilizada para listar os sinais que
podem ser enviados aos processos?

a) –a

b) –l

c) –p

d) –s

44) Quais os comandos podem ser utilizados para instalação de


aplicações em sistemas LINUX?

a) setup.exe

b) install.exe

c) rpm

d) apt

45) Qual é o procedimento para excluir um pacote do sistema?

a) uninstall

b) rpm –ivh pacote

c) rpm –e pacote

Alexandre Pedroso – http://www.aplinux.com.br


Página 85
Alexandre Pedroso – http://www.aplinux.com.br

d) rpm –q pacote

46) Qual é o procedimento para atualizar um pacote do sistema?

a) rpm –e pacote

b) rpm –ivh pacote

c) rpm –qd pacote

d) rpm –Uvh pacote

47) Você quer instalar um pacote sem se preocupar com as possíveis


dependências para que ele funcione. Como você faria?

a) apt

b) install

c) rpm

d) nda

48) O comando rpm utiliza um servidor de ftp com pacotes para


instalar e atualizar seu sistema. Isso é correto? Explique.

49) Explique a maneira correta de realizar a atualização de pacotes


em um sistema de produção.

50) Fale sobre a melhor forma de criar as partições de um servidor


LINUX. Explique.

Alexandre Pedroso – http://www.aplinux.com.br


Página 86
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 15 – INSTALAÇÃO DO CONECTIVA LINUX 9.0

15.1 – INSTALAÇÃO DO CONECTIVA LINUX 9.0

01) Boot com o cd1 na unidade

02) Seleção do Idioma - Português

03) Release Notes - É sempre bom dar uma boa lida nas principais
mudanças que ocorreram nesta versão.

04) Seleção do Mouse

05) Seleção do Teclado – ABNT2

06) Configuração de Rede

1º Nome da Máquina - seumicro.seudominio.com.br


2º Configurar Rede Manualmente
3º Endereço IP - seuip
4º Máscara - suamáscara
5º Roteador - ipdoroteador
6º Servidor de Nomes - ipdoservidordns

07) Seleção do Perfil – Servidor de Redes. Na mesma tela marque as


opções "Forçar Particionamento Manual" e "Forçar Seleção de Pacotes"

08) Particionamento de disco - Para uma instalação de Servidor:

1ª partição: linux-swap = 2XRAM


2ª partição: ext3 /boot = 30Mb
3ª partição: ext3 / = restante do disco

09) Aguarde a cópia e instalação dos pacotes

10) Selecione os pacotes necessários para compilação – Vá em tarefas e


marque os pacotes: task-c++-devel e task-kernel-compiling. Depois,
clique em aplicar

11) Aguarde a cópia e instalação dos pacotes

12) Sair do Synaptic - Sim

Alexandre Pedroso – http://www.aplinux.com.br


Página 87
Alexandre Pedroso – http://www.aplinux.com.br

13) Seleção da Placa de Vídeo - Normalmente o sistema detecta

14) Seleção do Monitor - Normalmente o sistema detecta

15) Configuração da Área de Trabalho - Escolha a configuração de sua


preferência

16) Configuração do Usuário - Digite a senha do root (duas vezes)

17) Configuração do Loader - Eu utilizo LILO

18) Instalação Concluída

Alexandre Pedroso – http://www.aplinux.com.br


Página 88
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 16 – GLOSSÁRIO DE TERMOS TÉCNICOS

16.1 – GLOSSÁRIO DE TERMOS TÉCNICOS

AGENTE

Um programa de computador ou processo que opera sobre uma


aplicação cliente ou servidor e realiza uma função específica, como
uma troca de informações. Ver também: aplicação.

ALIAS

Significa segundo nome ou apelido. Pode referenciar um endereço


eletrônico alternativo de uma pessoa ou grupo de pessoas, ou um
segundo nome de uma máquina. É também um dos comandos básicos
do UNIX.

ANSI

Acrônimo de American National Standards Institute, uma organização


afiliada à ISO e que é a principal organização norteamericana envolvida
na definição de padrões (normas técnicas) básicos como o ASCII.

APLICAÇÃO

Programa que faz uso de serviços de rede tais como transferência de


arquivos, login remoto e correio eletrônico.

ARCHIE

Um serviço de busca de arquivos armazenados em FTP anônimo. Pouco


disseminado no Brasil.

ARPANET

Advanced Research Projects Agency Network. Rede de longa distância


criada em 1969 pela Advanced Research Projects Agency (ARPA,
atualmente Defense Advanced Projects Research Agency, ou DARPA) em
consórcio com as principais universidades e centros de pesquisa dos
EUA, com o objetivo específico de investigar a utilidade da comunicação
de dados em alta velocidade para fins militares. É conhecida como a
rede-mãe da Internet de hoje e foi colocada fora de operação em 1990,

Alexandre Pedroso – http://www.aplinux.com.br


Página 89
Alexandre Pedroso – http://www.aplinux.com.br

posto que estruturas alternativas de redes já cumpriam seu papel nos


EUA.

ASCII

American Standard Code for Information Interchange. Trata-se de um


esquema de codificação que atribui valores numéricos às letras do
alfabeto, números, sinais de pontuação e alguns símbolos especiais para
ser usado em computadores e dispositivos de armazenamento eletrônico
de dados.

ASSINATURA

1. Um arquivo (tipicamente de três ou quatro linhas) que as pessoas


inserem no fim de suas mensagens; 2. Ato de subscrever uma lista de
discussão ou newsgroup; 3. Informação que autentica uma mensagem.

BACKBONE

A interconexão central de uma rede internet. Pode ser entendido como


uma espinha dorsal de conexões que interliga pontos distribuídos de
uma rede, formando uma grande via por onde trafegam informações.

BAUND RATE

Medida de taxa de transmissão elétrica de dados em uma linha de


comunicação. Mede o número de sinais elétricos transmitidos por
unidade de tempo. Ver também: bps.

BBS

Bulletin Board System é um sistema que, tipicamente, oferece serviços


de correio eletrônico, repositório de arquivos (de programas, dados ou
imagens) e outros serviços tais como conversação on-line. Seus
assinantes, usualmente, obtêm acesso através de linhas telefônicas (isto
é, de voz) utilizadas via computador pessoal e modem.

BITNET

Because It's Time Network. Rede de computadores formada em maio de


1981 para interconectar instituições educacionais e de pesquisa, fazendo
uso de um protocolo chamado RSCS (Remote Spooling Communication
System). Teve seu tráfego encerrado em 1996.

Alexandre Pedroso – http://www.aplinux.com.br


Página 90
Alexandre Pedroso – http://www.aplinux.com.br

BPS

Uma medida da taxa de transferência real de dados de uma linha de


comunicação. É dada em bits por segundo. Variantes ou derivativos
importantes incluem Kbps (= 1.000 bps) e Mbps (= 1.000.000 bps). Ver
também: baud rate

BRIGDE

Um dispositivo que conecta duas ou mais redes de computadores


transferindo, seletivamente, dados entre ambas. Ver também: repetidor

BROWSER

O browser é um cliente para extração de informação em um servidor


Web ou gopher. Tipicamente, um browser será um programa em um
computador pessoal que acessará, através de uma linha telefônica, um
servidor (isto é, um programa que atende a demanda de clientes
remotos) contendo informações de interesse amplo. Ver também:
cliente, servidor, Gopher, Mosaic, Web

CCITT

Acrônimo de Comité Consultatif Internationale de Telegraphie et


Telephonie, um órgão da International Telecommunications Union (ITU)
das Nações Unidas que define padrões de telecomunicações. (Em 1993,
foi extinto e suas atribuições passaram para o ITU-TSS,
Telecommunications Standards Section da ITU.)

CERN

Trata-se do European Laboratory for Particle Physics, possivelmente o


mais importante centro para pesquisas avançadas em física nucleares e
de partículas localizadas em Genebra, Suíça. O nome CERN relaciona-se
ao seu nome anterior, Conseil Europeen pour la Recherche Nucleaire.
Para os usuários Internet, o CERN é conhecido como o local onde foi
desenvolvido a Web. Ver também: Web

CIBERSPAÇO

Conjunto de computadores e serviços que constitui a rede Internet.


Termo cunhado em analogia com o espaço sideral explorado pelos
astronautas.

Alexandre Pedroso – http://www.aplinux.com.br


Página 91
Alexandre Pedroso – http://www.aplinux.com.br

CLIENTE

É um processo ou programa que requisita serviços a um servidor. Ver


também: servidor

CORREIO ELETRÔNICO

Um meio de comunicação baseado no envio e recepção de textos,


chamados de mensagens, através de uma rede de computadores.

DATAGRAMA

Pacote de informação e dados complementares, como endereço de


destino, que é enviado através de uma rede de pacotes.

DDN

Acrônimo para Defense Data Network, uma porção da Internet que


conecta bases militares norte-americanas e seus fornecedores e é usada
para comunicações não-confidenciais. MILNET é uma das redes DDN.

DIAL-UP

Método de acesso a computador remoto (ou rede) que se dá via rede de


telefonia convencional.

DOMÍNIO

É uma parte da hierarquia de nomes da Internet - DNS -, que permite


identificar as instituições ou conjunto de instituições na rede.
Sintaticamente, um nome de domínio da Internet consiste de uma
seqüência de nomes separados por pontos (.). Por exemplo, ci.rnp.br.
Neste caso, dentro do domínio ci.rnp.br, o administrador do sistema
pode criar diferentes grupos como info.ci.rnp.br ou staff.ci.rnp.br,
conforme a necessidade.

DOMÍNIO PÚBLICO

Programa disponível publicamente, segundo condições estabelecidas


pelos autores, sem custo de licenciamento para uso. Em geral, o
software pode ser utilizado sem custos para fins estritamente
educacionais e não tem garantia de manutenção ou atualização. Um
dos grandes trunfos da Internet é a quantidade praticamente

Alexandre Pedroso – http://www.aplinux.com.br


Página 92
Alexandre Pedroso – http://www.aplinux.com.br

inesgotável de software de domínio público, de excelente qualidade, que


circula pela rede. Ver também: shareware

DNS

O Domain Name System (DNS) é um serviço e protocolo da família


TCP/IP para o armazenamento e consulta a informações sobre recursos
da rede. A implementação é distribuída entre diferentes servidores e
trata principalmente da conversão de nomes Internet em seus números
IPs correspondentes.

DOWNLOAD

Processo de se transferência de uma cópia de um arquivo presente em


um computador remoto para outro computador através da rede. O
arquivo recebido é gravado em disco no computador local. O
computador de onde os dados são copiados é subentendido como
“maior” ou “superior” segundo algum critério hierárquico, enquanto o
computador para o qual os dados são copiados é subentendido “menor”
ou “inferior” na hierarquia. O sentido literal é, portanto “puxar para
baixo”.

ETHERNET

Um padrão muito usado para a conexão física de redes locais,


originalmente desenvolvido pelo Palo Alto Research Center (PARC) da
Xerox nos EUA. Descreve protocolo, cabeamento, topologia e
mecanismos de transmissão.

E-MAIL

1. Correio eletrônico; 2. Endereço de correio eletrônico.

FAQ

Acrônimo de Frequently Asked Questions, documento com perguntas e


respostas sobre determinado assunto, em geral voltado para leigos ou
neófitos.

FDDI

Acrônimo de Fiber Distributed Data Interface, um padrão para o uso de


cabos de fibras óticas em redes locais (LANs) e metropolitanas (MANs).
A FDDI fornece especificações para a velocidade de transmissão de

Alexandre Pedroso – http://www.aplinux.com.br


Página 93
Alexandre Pedroso – http://www.aplinux.com.br

dados (alta, 100 Mbps), em redes em anel, podendo,


por exemplo, conectar 1.000 estações de trabalho a distâncias de até
200 Km.

FIDONET

Rede mundial de BBS, baseada no uso do protocolo Fido, interligando


computadores pessoais via linhas telefônicas.

FINGER

Um serviço Internet que permite obter informações sobre usuários de


uma máquina.

FIREWALL

Um sistema de segurança de rede, cujo principal objetivo é filtrar o


acesso a uma rede.

FREENET

Uma máquina na Internet que é dedicada a acesso pela comunidade


sem cobrança de nenhuma taxa. O acesso é fornecido através de
bibliotecas públicas ou acesso dial-up. Oferece serviços de BBSs, correio
eletrônico e acesso (restrito, em geral) à Internet.

FREEWARE

Ver: Domínio público

FTP

File Transfer Protocol. Protocolo padrão da Internet, usado para


transferência de arquivos entre computadores.

FTP ANÔNIMO

Serviço que possibilita o acesso a repositórios públicos de arquivos via


FTP. Ver também: FTP

FYI

Acrônimo de For Your Information (FYI), uma série de artigos sobre a

Alexandre Pedroso – http://www.aplinux.com.br


Página 94
Alexandre Pedroso – http://www.aplinux.com.br

Internet; são similares as RFCs, mas possuem conteúdo


consideravelmente menos técnico e não definem novos padrões.

GATEWAY

1. Sistema que possibilita o intercâmbio de serviços entre redes com


tecnologias completamente distintas, como FidoNet e Internet; 2.
Sistema e convenções de interconexão entre duas redes de mesmo nível
e idêntica tecnologia, mas sob administrações distintas. 3 Roteador
(terminologia TCP/IP).

GOPHER

Um sistema distribuído para busca e recuperação de documentos, que


combina recursos de navegação através de coleções de documentos e
bases de dados indexadas, por meio de menus hierárquicos. O protocolo
de comunicação e o software seguem o modelo cliente servidor,
permitindo que usuários em sistemas heterogêneos naveguem,
pesquisem e recuperem documentos armazenados em diferentes
sistemas, de maneira simples e intuitiva.

HOST

Computador ligado à Internet.

HTML

Acrônimo de Hypertext Markup Language, é a linguagem padrão para


escrever páginas de documentos Web (WWW). É uma variante da SGML
(Standard Generalized Markup Language), bem mais fácil de aprender e
usar, que possibilita preparar documentos com gráficos e links para
outros documentos para visualização em sistemas que utilizam Web.

HTTP

O protocolo HTTP (HyperText Transfer Protocol) permite que os autores


de hipertextos incluam comandos que possibilitam saltos para recursos
e outros documentos disponíveis em sistemas remotos, de forma
transparente para o usuário.

internet

Uma coleção de redes locais e/ou de longa distância, interligadas numa

Alexandre Pedroso – http://www.aplinux.com.br


Página 95
Alexandre Pedroso – http://www.aplinux.com.br

rede virtual pelo uso de um protocolo que provê um espaço de


endereçamento comum e roteamento. Ver Internet.

INTERNET

Significa a "rede das redes". Originalmente criada nos EUA, que se


tornou uma associação mundial de redes interligadas, que utilizam
protocolos da família TCP/IP. A Internet provê transferência de arquivos,
login remoto, correio eletrônico, news e outros serviços.

IP

O Internet Protocol é o protocolo responsável pelo roteamento de


pacotes entre dois sistemas que utilizam a família de protocolos TCP/IP,
desenvolvida e usada na Internet. É considerado o mais importante dos
protocolos em que a Internet é baseada.

IRC

Acrônimo de Internet Relay Chat, serviço que possibilita a comunicação


escrita on-line entre vários usuários pela Internet. É a forma mais
próxima do que seria uma “conversa escrita” na rede.

ISO

International Organization for Standardization (ISO)‚ uma organização


internacional formada por órgãos de diversos países que discute,
especifica e propõe padrões para protocolos de redes. Muito conhecido
por ter estabelecido um modelo de sete camadas que descreve a
organização conceitual de protocolos, o OSI.

ISDN

Uma rede digital que integra serviços de diversas naturezas como voz,
dados, imagens, etc. que deve substituir gradualmente a infra-estrutura
física atual de comunicações, em que cada serviço tende a trafegar por
segmentos independentes.

ITU

International Telecommunications Union. Órgão da ONU responsável


pelo estabelecimento de normas e padrões em telecomunicações.

Alexandre Pedroso – http://www.aplinux.com.br


Página 96
Alexandre Pedroso – http://www.aplinux.com.br

KERMIT

Um programa popular de transferência de arquivos e emulação de


terminal.

LAN

Acrônimo de Local Area Network, rede de computadores limitada, em


geral, limitada a um prédio ou conjunto de prédios de uma instituição.
LISTSERV

Servidor de listas de discussões.

LOGIN REMOTO

Acesso a um computador via rede para execução de comandos. Para


todos os efeitos, o computador local, usado pelo usuário para “logar” no
computador remoto, passa a operar como se fosse um terminal deste
último.

MAN

Acrônimo de Metropolitan Area Network, uma rede com tecnologia que


opera a alta velocidade (de centenas de megabits por segundo a alguns
gigabits por segundo) e que tem abrangência metropolitana.

MOSAIC

Um programa cliente de fácil utilização projetado para procura de


informações disponíveis na Web. Distribuído como freeware, o Mosaic foi
criado pelo National Center for Supercomputing Applications (NCSA) dos
EUA e tem capacidade multimídia.

MULTICAST

Um endereço para uma coleção específica de nós numa rede, ou uma


mensagem enviada a uma coleção específica de nós. É útil para
aplicações como teleconferência.

NAVEGAÇÃO

Ato de conectar-se a diferentes computadores da rede distribuídos pelo


mundo, usando as facilidades providas por ferramentas como browsers
Web. O navegante da rede realiza uma “viagem” virtual explorando o

Alexandre Pedroso – http://www.aplinux.com.br


Página 97
Alexandre Pedroso – http://www.aplinux.com.br

ciberespaço, da mesma forma que o astronauta explora o espaço


sideral. Cunhado por analogia ao termo usado em Astronáutica.

NET

The Net ou Internet, a rede.

NETIQUETA

Um conjunto de regras de etiqueta para o uso socialmente responsável


da Internet, ou seja, o modo como os usuários devem proceder na rede,
especialmente na utilização de correio eletrônico.

NETNEWS

Usenet News, Usenet ou News. Serviço de discussão eletrônica sobre


vasta gama de assuntos, cada qual ancorado por um grupo de
discussão.

NEWS

Ver: netnews

NEWSGROUP

Grupo temático de discussão do netnews.

NFS

O Network File System, desenvolvido pela Sun Microsystems Inc., é um


protocolo que usa IP para permitir o compartilhamento de arquivos
entre computadores.

NIC

Network Informations Center, centro de informação e assistência ao


usuário da Internet que disponibiliza documentos, como RFCs, FAQs e
FYIs, realiza treinamentos, etc.

NIS

Acrônimo para Network Information System (NIS), é um sistema


distribuído de bases de dados que troca cópias de arquivos de
configuração unindo a conveniência da replicação à facilidade de

Alexandre Pedroso – http://www.aplinux.com.br


Página 98
Alexandre Pedroso – http://www.aplinux.com.br

gerência centralizada. Servidores NIS gerenciam as cópias de arquivos


de bases de dados, e clientes NIS requerem informação dos servidores
ao invés de usar suas cópias locais destes arquivos. É muito usado por
administradores UNIX para gerenciar bases de dados distribuídas
através de uma rede. Ver também: NIS+

NIS+

Versão atualizada do NIS de propriedade da Sun Microsystems Inc. que


provê mais recursos ao serviço e uma maior segurança.

Qualquer dispositivo, inclusive servidores e estações de trabalho, ligado


a uma rede.

NOC

Network Operations Center. Um centro administrativo e técnico que é


responsável por gerenciar os aspectos operacionais da rede, como o
controle de acesso à mesma, roteamento, etc.

OSI

O Open Systems Interconnection (OSI) é um modelo conceitual de


protocolo com sete camadas definidas pela ISO, para a compreensão e o
projeto de redes de computadores. Trata-se de uma padronização
internacional para facilitar a comunicação entre computadores de
diferentes fabricantes. Ver também: ISO

PACOTE

Dado encapsulado para transmissão na rede. Um conjunto de bits


compreendendo informação de controle, endereço fonte e destino dos
nós envolvidos na transmissão.

PING

O ping (Packet Internet Groper) é um programa usado para testar o


alcance de uma rede, enviando a nós remotos uma requisição e
esperando por uma resposta.

PIR

Alexandre Pedroso – http://www.aplinux.com.br


Página 99
Alexandre Pedroso – http://www.aplinux.com.br

Locais previstos para a interconexão de redes de mesmo nível (peer


networks), visando assegurar que o roteamento entre redes seja
eficiente e organizado. No Brasil, os três principais PIR’s estão previstos
em Brasília, Rio de Janeiro e São Paulo.

PoP

Ponto de Presença de uma espinha dorsal de rede. Local onde uma rede
permite acesso à sub-redes e a provedores de serviços. Uma rede
madura cobre sua região de atuação através de pontos de presença nas
principais cidades/distritos dessa região: interligados por um conjunto
de linhas dedicadas, compondo um backbone.

POP

Post Office Protocol. Protocolo usado por clientes de correio eletrônico


para manipulação de arquivos de mensagens em servidores de correio
eletrônico.

PORTA

Uma abstração usada pelo protocolo TCP/IP para distinguir entre


conexões simultâneas para um único host destino. O termo também é
usado para denominar um canal físico de entrada ou de um dispositivo.

POSTMASTER

E-mail do responsável pelo correio eletrônico de uma instituição.

PPP
Um dos protocolos mais conhecidos para acesso via interface serial,
permite que um computador faça uso do TCP/IP através de uma linha
telefônica convencional e um modem de alta velocidade. É considerado
o sucessor do SLIP por ser mais confiável e eficiente.

PROTOCOLO

Uma descrição formal de formatos de mensagem e das regras que dois


computadores devem obedecer ao trocar mensagens. Um conjunto de
regras padronizado que especifica o formato, a sincronização, a
seqüência e a verificação de erros em comunicação de dados. O
protocolo básico utilizado na Internet é o TCP/IP.

PROVEDOR DE ACESSO

Alexandre Pedroso – http://www.aplinux.com.br


Página 100
Alexandre Pedroso – http://www.aplinux.com.br

Instituição que se liga à Internet, via um ponto de presença ou outro


provedor, para obter conectividade IP e repassá-la a outros indivíduos e
instituições, em caráter comercial ou não.

PROCEDOR DE INFORMAÇÃO

Instituição cuja finalidade principal é coletar, manter e/ou organizar


informações on-line para acesso, através da Internet, por parte de
assinantes da rede. Essas informações podem ser de acesso público
incondicional, caracterizando assim um provedor não-comercial ou, no
outro extremo, constituir um serviço comercial onde existem tarifas ou
assinaturas cobradas pelo provedor.

PROVEDOR DE SERVIÇO

Pode ser tanto o provedor de acesso quanto o de informação.

REPETIDOR

Um dispositivo que propaga (regenera e amplifica) sinais elétricos em


uma conexão de dados, para estender o alcance da transmissão, sem
fazer decisões de roteamento ou de seleção de pacotes. Ver também:
bridge, roteador

RFC

Acrônimo para Request For Comments. RFCs constituem uma série de


documentos editados desde 1969 e que descrevem aspectos
relacionados com a Internet, como padrões, protocolos, serviços,
recomendações operacionais, etc. Uma RFC é, em geral, muito densa
do ponto de vista técnico.

ROTEADOR

Dispositivo responsável pelo encaminhamento de pacotes de


comunicação em uma rede ou entre redes. Tipicamente, uma
instituição, ao se conectar a Internet, deverá adquirir um roteador para
conectar sua Rede Local (LAN) ao ponto de presença mais próximo.

SERVIDOR

1. No modelo cliente-servidor, é o programa responsável pelo


atendimento a determinado serviço solicitado por um cliente. Serviços

Alexandre Pedroso – http://www.aplinux.com.br


Página 101
Alexandre Pedroso – http://www.aplinux.com.br

como archie, Gopher, WAIS e WWW são providos por servidores; 2.


Referindo-se a equipamento, o servidor é um sistema que provê
recursos tais como armazenamento de dados, impressão e acesso dialup
para usuários de uma rede de computadores.

SITE

1. Uma instituição onde computadores são instalados e operados; 2. Um


nó Internet.

SHAREWARE

Programa disponível publicamente para avaliação e uso experimental,


mas cujo uso em regime pressupõe que o usuário pagará uma licença
ao autor. Note-se que shareware é distinto de freeware, no sentido de
que um software em shareware é comercial, embora em termos e
preços diferenciados em relação a um produto comercial “ortodoxo”. Ver
também: domínio público.

SLIP

Serial Line IP é um protocolo Internet bastante popular usado via


interfaces seriais. Ver também: PPP

SMILEY

Uma "carinha" construída com caracteres ASCII e muito usada em


mensagens eletrônicas para dar idéia de sentimentos ou emoções. Por
exemplo, a mais comum é :-), que significa humor e ironia. Você deve
girar o smiley 90 graus para a direita para entendê-lo.

SMTP

O Simple Mail Transfer Protocol é o protocolo TCP/IP usado para troca


de mensagens via correio eletrônico na Internet.

SNMP

O Simple Network Management Protocol é um protocolo usado para


monitorar e controlar serviços e dispositivos de uma rede TCP/IP. É o
padrão adotado pela RNP para a gerência de sua rede.

SYSOP

Alexandre Pedroso – http://www.aplinux.com.br


Página 102
Alexandre Pedroso – http://www.aplinux.com.br

A pessoa que opera e mantém um BBS. Abreviatura de system operator.

TALK

Serviço que permite a comunicação escrita on-line entre dois usuários


da Internet.

TCP/IP

Acrônimo de Transmission Control Protocol/Internet Protocol, é a família


de protocolos para a comunicação de dados inter-redes, originalmente
proposta para a Advanced Research Products Agency Network
(ARPANet). Hoje é um padrão de fato para inter-redes abertas, e seu
uso é amplamente difundido dentro e fora dos EUA.

TELNET

Serviço que permite login remoto segundo o jargão e a vertente técnica


Internet.

TRANSCEIVER

Dispositivo utilizado na conexão física de um nó a uma rede local.

TRANSFERENCIA DE ARQUIVO

Cópia de arquivos entre duas máquinas via rede. Na Internet,


implantada e conhecida por FTP.

UDP

Acrônimo para User Datagram Protocol, o protocolo de transporte sem


conexão da família TCP/IP, usado com aplicações como o de
gerenciamento de redes (SNMP) e de serviço de nomes (DNS).

URL

Acrônimo para Uniform Resource Locator, localizador que permite


identificar e acessar um serviço na rede Web. Por exemplo, a URL
abaixo aponta para o WWW da RNP: http://www.rnp.br/

USENET

Alexandre Pedroso – http://www.aplinux.com.br


Página 103
Alexandre Pedroso – http://www.aplinux.com.br

Ver: Netnews

USENET NEWS

Ver: Netnews

UUCP

UNIX-to-UNIX CoPy é uma coleção de programas para intercomunicação


de sistemas UNIX. Possibilita a transferência de arquivos, execução de
comandos e correio eletrônico.

VERONICA

Acrônimo para Very Easy Rodent-Oriented Net-wide Index to


Computerized Archives, ferramenta para pesquisa no GopherSpace, o
conjunto de servidores Gopher disponíveis na Internet.

WAFFLE

Um programa que possibilita a um BBS tornar-se um site Usenet.

WAIS

Acrônimo para Wide Area Information Server, é um serviço de bases de


dados distribuídas acessíveis via Internet, cuja principal peculiaridade é
a conversão automática de formatos para visualização remota de
documentos e dados.

WAN

Acrônimo de Wide Area Network, uma rede que interliga computadores


distribuídos em áreas geograficamente separadas. Ver também: LAN e
MAN

WEB

Ver: WWW

WHOIS

Banco de dados de informações sobre domínios, redes, hosts e pessoas,


fornecendo um serviço de diretório de usuários da Internet.

Alexandre Pedroso – http://www.aplinux.com.br


Página 104
Alexandre Pedroso – http://www.aplinux.com.br

WORM

Acrônimo de Write Once Read Many. 1. Ferramenta de busca na rede


Web; 2. Verme, programa que, explorando deficiências de segurança de
hosts, logrou propagar-se de forma autônoma na Internet na década de
80.

WWW

World Wide Web, ou Web. Meta-rede, baseada em hipertextos, que


integra diversos serviços Internet, através de uma interface que
possibilita o acesso a informações multimídia.

X.25

Protocolo de roteamento muito utilizado em redes públicas de pacotes.

X.400

Um protocolo que especifica serviços do tipo store-and-forward, sendo o


serviço de correio eletrônico Message Handle System (MHS) o mais
conhecido deles, como parte das recomendações OSI/ISO.

X.500

É um padrão ITU-TSS/ISO para serviços de diretório eletrônico. yellow


pages Ver: NIS

Alexandre Pedroso – http://www.aplinux.com.br


Página 105
Alexandre Pedroso – http://www.aplinux.com.br

Capítulo 17 – GABARITO DOS EXERCÍCIOS

17.1 – GABARITO DOS EXERCÍCIOS

01) V 11) A 21) C 31) D 41) C


02) D 12) B 22) C 32) D 42) C
03) B, C 13) - 23) A 33) C 43) B
04) A, D 14) B 24) B 34) B 44) C, D
05) C 15) - 25) A 35) C 45) C
06) - 16) C 26) A 36) B 46) D
07) C 17) A 27) C 37) B 47) A
08) C 18) C 28) D 38) A 48) -
09) C 19) C 29) A 39) A, B 49) -
10) B 20) A 30) C 40) B 50) -

Alexandre Pedroso – http://www.aplinux.com.br


Página 106