Você está na página 1de 82

Linux Junior Administrator

Especializa Treinamentos
Av. Engº Domingos Ferreira, 2391, salas 1202/1203/1204
Boa Viagem – Recife/PE
Tel.: (81) 3465-0032
Especializa Treinamentos <http:/ /www.especializa.com.br>

Índice

1 O Linux....................................................................................................................................4
1.1 Distribuições.......................................................................................................................4
2 Por que Ubuntu?......................................................................................................................4
2.1 Ubuntu Desktop ou Server?................................................................................................5
2.2 Versões do Ubuntu.............................................................................................................5
2.3 Obtendo o Ubuntu..............................................................................................................6
3 Virtualização com o Virtualbox................................................................................................7
3.1 Obtendo o Virtualbox..........................................................................................................7
3.2 Instalando o Virtualbox.......................................................................................................7
3.3 Criando máquinas virtuais..................................................................................................8
4 Instalando o Ubuntu Server...................................................................................................10
4.1 Iniciando o instalador.......................................................................................................10
5 Usando o sistema..................................................................................................................15
5.1 Acessando o sistema........................................................................................................15
5.2 Obtendo ajuda: whatis, apropos, man, info e help............................................................17
5.3 Quando as coisas não estão bem.....................................................................................20
5.4 Manipulação de arquivos e diretórios...............................................................................20
5.5 Compactando e descompactando arquivos e diretórios...................................................21
5.6 Utilizando editores de texto..............................................................................................23
6 FHS – Filesystem Hierarchy Standard.....................................................................................25
7 A inicialização do sistema......................................................................................................27
7.1 Níveis de execução...........................................................................................................29
7.2 Os Scripts de Inicialização................................................................................................29
8 Fundamentos de TCP/IP.........................................................................................................32
8.1 Configurando a rede de forma temporária........................................................................34
8.2 Configurando a Rede no Debian/Ubuntu (persistente)......................................................35
8.3 Configurando a Rede no RedHat/CentOS (persistente).....................................................36
9 Gerenciamento de Pacotes....................................................................................................38
9.1 Gerenciamento de Pacotes no Ubuntu..............................................................................38
9.2 Gerenciamento de Pacotes no RedHat.............................................................................43
9.3 Instalação de software através código fonte.....................................................................44
10 Sistemas de arquivos...........................................................................................................44
10.1 Tipos de Sistemas de Arquivos.......................................................................................45
10.2 Criando um Sistema de Arquivos....................................................................................46
10.3 Montagem de Sistemas de Arquivos...............................................................................46
10.4 O fstab............................................................................................................................47
11 Contas de usuários e grupos................................................................................................48
11.1 Adicionando contas de usuários.....................................................................................48
11.2 Removendo contas de usuários......................................................................................50
11.3 Adicionando Grupos........................................................................................................50
12 Permissões de Arquivos e Diretórios....................................................................................51
12.1 Permissões comuns........................................................................................................51
12.2 Permissões especiais......................................................................................................53
13 Arquivos, Diretórios, Links e dispositivos.............................................................................54
13.1 Dispositivos de caractere................................................................................................54
13.2 Discos.............................................................................................................................55
13.3 Links...............................................................................................................................55

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
1
Especializa Treinamentos <http:/ /www.especializa.com.br>

14 Gerenciamento de processos...............................................................................................55
14.1 top..................................................................................................................................56
14.2 ps...................................................................................................................................57
14.3 kill...................................................................................................................................57
14.4 killall...............................................................................................................................57
14.5 nice e renice...................................................................................................................57
15 Introdução ao Shell Script....................................................................................................58
15.1 Estrutura de script..........................................................................................................58
15.2 Variáveis.........................................................................................................................58
16 Agendamento de tarefas.....................................................................................................59
16.1 cron................................................................................................................................59
16.2 anacron..........................................................................................................................60
17 Usando seu servidor............................................................................................................60
17.1 Configurando um servidor proxy....................................................................................60
17.2 Configurando um servidor de arquivos...........................................................................61
18 Consulta de comandos.........................................................................................................62
18.1 . ou source......................................................................................................................62
18.2 apt-cache.......................................................................................................................62
18.3 apt-get............................................................................................................................63
18.4 bash...............................................................................................................................64
18.5 bzip2...............................................................................................................................64
18.6 cat..................................................................................................................................64
18.7 chgrp..............................................................................................................................64
18.8 chmod............................................................................................................................64
18.9 chown.............................................................................................................................65
18.10 df..................................................................................................................................65
18.11 dpkg.............................................................................................................................65
18.12 echo.............................................................................................................................65
18.13 env...............................................................................................................................66
18.14 export...........................................................................................................................66
18.15 fdisk..............................................................................................................................66
18.16 file................................................................................................................................66
18.17 find...............................................................................................................................66
18.18 grep..............................................................................................................................66
18.19 gzip...............................................................................................................................66
18.20 gunzip...........................................................................................................................66
18.21 halt...............................................................................................................................67
18.22 head.............................................................................................................................67
18.23 history..........................................................................................................................67
18.24 kill.................................................................................................................................67
18.25 locate...........................................................................................................................68
18.26 ls...................................................................................................................................68
18.27 lsmod............................................................................................................................68
18.28 lspci..............................................................................................................................68
18.29 ps.................................................................................................................................69
18.30 pwd..............................................................................................................................69
18.31 man..............................................................................................................................69
18.32 mkdir............................................................................................................................69
18.33 mkfs.............................................................................................................................69
18.34 mount...........................................................................................................................69
18.35 mv................................................................................................................................70
18.36 rpm...............................................................................................................................70
18.37 rm.................................................................................................................................70
18.38 rmdir.............................................................................................................................70
18.39 shutdown......................................................................................................................70
18.40 tail................................................................................................................................70

2 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

18.41 tar.................................................................................................................................71
18.42 top................................................................................................................................71
18.43 touch............................................................................................................................71
18.44 uniq..............................................................................................................................71
18.45 umount.........................................................................................................................71
18.46 uname..........................................................................................................................71
18.47 updatedb......................................................................................................................72
18.48 uptime..........................................................................................................................72
18.49 wc.................................................................................................................................72
18.50 which............................................................................................................................72
18.51 whereis.........................................................................................................................73
18.52 yum..............................................................................................................................73
19 Exercícios.............................................................................................................................73

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
3
Especializa Treinamentos <http:/ /www.especializa.com.br>

1 O Linux
O Linux é talvez o sistema operacional que mais evoluiu nos últimos anos. Ele foi
desenvolvido inicialmente pelo então estudante de Ciências da Computação da
Universidade de Helsinki Linus Torvalds.
A intenção de Linus Torvalds naquele momento era desenvolver um sistema melhor
que o Minix1, um sistema operacional baseado em Unix desenvolvido para fins
educativos pelo Professor Andrew Tananembaum.
Ao concluir a versão 0.01 do Linux, em 1991, ele enviou uma mensagem para a
Usenet convocando pessoas que ficassem interessadas para contribuir com o
desenvolvimento do sistema. Em 1994 foi lançada a primeira versão utilizável do
kernel.
Em paralelo a isto, Richard Stallman fundava a Free Software Foundation, e seria
criado então o projeto GNU, que estava criando as peças de um grande quebra-
cabeça, um sistema operacional totalmente livre.
O kernel do sistema operacional do GNU em desenvolvimento era o Hurd, mas ele não
estava pronto, e ainda não está nos dias de hoje. Já que o GNU possuia as outras
partes deste quebra-cabeça então o kernel do Linux seria utilizado. Surgiu então o
nome GNU/Linux. Na verdade o sistema desenvolvido naquela época tinha em sua
totalidade muito mais código GNU que Linux, mas por motivos não concretos o
sistema acabou sendo mais conhecido como Linux.
É por este motivo que a distribuição Debian, que era a distribuição oficial do projeto
GNU possui o nome de Debian GNU/Linux, diferente das demais distrbuições da
época, como SuSe Linux, RedHat Linux e outras.

1.1 Distribuições
Uma distribuição é uma compilação do kernel do Linux e diversos softwares de forma
que seja utilizável. O Linux por si só não é utilizável, ninguém é capaz de utilizar
somente o kernel. Algumas distribuições de Linux foram a base para a criação da
vasta quantidade de distribuições existentes atualmente, são elas: o Debian, a
RedHat, o Slackware e a SuSe. A distribuição Ubuntu, Knoppix e também o Kurumin,
uma distribuição muito popular no Brasil, são oriundas do Debian GNU/Linux. Já as
distribuições CentOS e Fedora são derivadas da RedHat, uma das mais antigas e
maiores distribuições comerciais existentes.

2 Por que Ubuntu?


O Ubuntu2 é uma distribuição GNU/Linux baseada em Debian3. Ela foi criada pela
empresa Canonical. Possui uma grande quantidade de pacotes disponíveis nos
repositórios oficiais para instalação através das melhores ferramentas de
gerenciamento de pacotes. Novas versões são lançadas semestralmente, nos meses
de abril e outubro, garantindo que as novidades cheguem rapidamente à distribuição.

1 http://www.minix.org
2 http://www.ubuntu.com
3 http://www.debian.org

4 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

O Ubuntu, para garantir o livre acesso a todos os softwares da distribuição fez as


seguintes promessas:
● Ubuntu sempre será livre de pagamento, incluindo versões empresariais e
atualizações de segurança;
● Ubuntu vem com suporte comercial completo da Canonical 1 e centenas de
companhias espalhadas pelo mundo;
● Ubuntu inclui a melhor infraestrutura de acessibilidade e tradução que a
comunidade de software livre tem a oferecer.
● O CD do Ubuntu contém apenas aplicações software livre; nós encorajamos que
use sofware livre e de código aberto; instale e passe-o a frente.

A distribuição conta com dois perfis de instalação, um orientada a Desktops e a outra


orientada a Servidores.

2.1 Ubuntu Desktop ou Server?


A versão Server possui um perfil de instalação bem básico. A instalação padrão não
ultrapassa os 500MB. Isto garante ao administrador que após a instalação o sistema
terá somente os softwares necessários ao funcionamento do servidor,
proporcionando mais segurança.
O Ubuntu Desktop possui um perfil de instalação completo para uso em estações de
trabalho e computadores pessoais. Uma série de softwares é instalada por padrão
para facilitar a vida do usuário. Interface gráfica, Suites Office, navegadores de
internet, mensageiros, compactadores, tocadores e gravadores de CD/DVD estão
disponíveis para o usuário ao término da instalação.
O Ubuntu Desktop conta ainda com dois instaladores, o instalador Desktop padrão e o
Alternate. A diferença entre os dois é que o Alternate, ao contrário do Desktop padrão,
não possui o instalador gráfico nem o LiveCD, em compensação uma série de outras
ferramentas são encontradas neste CD, como os arquivos para instalação pela rede.

2.2 Versões do Ubuntu


As versões do Ubuntu são lançadas a cada seis meses, nos meses de abril e outubro
de cada ano. O tempo de vida de cada versão é de 18 meses. Como exemplo
podemos pegar a versão 7.10, que foi lançada em outubro de 2007 e será mantida
até abril de 2009.
Existem algumas versões especiais chamadas de LTS (Long Term Support). Estas
versões possuem um prazo de suporte diferenciado, que para o perfil Desktop é de
três anos e para o perfil Server é de cinco anos. Isto é ideal para quem possui um
grande parque de máquinas instalado, pois não precisará trocar a versão do sistema
operacional dos seus computadores com uma freqüência muito alta.

1 http://www.canonical.com

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
5
Especializa Treinamentos <http:/ /www.especializa.com.br>

As versões LTS são lançadas com intervalos de dois anos. Observe que a versão 6.06
é chamada assim por atraso no seu lançamento, que deveria ter ocorrido em abril de
2006, mas só foi lançada em junho deste mesmo ano.
Durante o nosso curso iremos sempre instalar a última versão Server LTS lançada,
visto o tempo de suporte oferecido para esta versão.

2.3 Obtendo o Ubuntu


O Ubuntu pode ser obitido fazendo-se o download diretamente no site da distribuição,
no endereço http://releases.ubuntu.com. Acessando este endereço você encontrará
links para download das várias versões lançadas do Ubuntu.
As imagens dos CDs estão disponíveis para a download através de várias formas:
– download direto do ISO;
– jigdo;
– torrent.

Está disponível ainda um arquivo MD5SUMS com o hash md5 de cada imagem ISO.
Isto é útil para fazer a verificação de integridade da imagem após a conclusão do
download, evitando falhas durante a instalação.
Para testar se a sua imagem ISO está perfeita execute o comando abaixo:
$ md5sum arquivo.iso
Compare o resultado obtido com o encontrado no arquivo MD5SUMS. Caso haja
diferença entre os valores, descarte o arquivo e faça o download novamente.

6 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

3 Virtualização com o Virtualbox


Durante as aulas deste curso será necessário realizar a instalação do sistema
operacional Ubuntu. A instalação deste sistema será realizada utilizando-se uma
máquina virtual que será executada em cada PC do laboratório. A utilização de uma
máquina virtual para a realização da instalação do sistema possibilita que todos os
alunos possam aprender a instalar e configurar todo o sistema sem impactar no uso
da máquina real.
O software de virtualização utilizado no laboratório será o VirtualBox da Sun. Como ele
podemos definir um disco virtual, até quatro placas de rede, conexão a porta usb do
hospedeiro, portas serias e muitas outras opções.
O VirtualBox possui quatro opções para conexão de placas de rede virtuais: não
conectado, NAT, interface do hospedeiro e rede interna. Com a opção não conectado a
placa de rede em questão não possui conectividade em nenhuma rede, com a opção
NAT a placa de rede virtual está conectada em uma rede com conexão à rede local
através de NAT, com uma faixa de endereçamento IP diferente da utilizada na rede
local, com a opção interface do hospedeiro a placa de rede virtual está conectada na
mesma rede onde está a placa de rede do hospedeiro (máquina real) e por último com
a opção rede interna a placa de rede virtual está conectada a uma rede privada sem
conectividade com a rede local ou internet.
Quando a opção interface do hospedeiro está ativa há a opção de escolher qual será a
interface de rede física a qual a placa de rede virtual estará anexada.

3.1 Obtendo o Virtualbox


Para obter o VirtualBox é necessário acessar o site http://www.virtualbox.org. Neste
site há o instalador para os sistemas operacionais Windows, Linux e MacOS.

3.2 Instalando o Virtualbox


A instalação do VirtualBox varia de acordo com o sistema operacional escolhido. No
caso do windows a instalação é realizada exatamente como a instalação de um
software padrão, não sendo necessário alterar qualquer das opções propostas pelo
instalador.
Para a instalação no Linux existem os pacotes deb para instalação em um sistema
Debian ou Ubuntu e rpm para instalação nas distribuições que utilizam este
gerenciador de pacotes.
O processo de instalação de pacotes será visto mais adiante durante o decorrer do
curso, mas como será necessário instalar um pacote se você estiver utilizando Linux
no hospedeiro segue abaixo o procedimento.
Antes de instalar o pacote é necessário verificar se as dependências estão instaladas
no sistema. O VirtualBox necessita que estejam instalados os compiladores e os
cabeçalhos do kernel utilizados no hospedeiro. Para isto instale os softwares
executando o comando abaixo:
# aptitude install build-essential linux-headers-`uname -r`

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
7
Especializa Treinamentos <http:/ /www.especializa.com.br>

# dpkg -i nome_do_pacote.deb
No caso da distribuição utilizada utilize o gerenciador de pacotes rpm instale com o
comando abaixo:
# yum install kernel-headers
# rpm -ivh nome_do_pacote.rpm

3.3 Criando máquinas virtuais


Para criar uma máquina virtual no VirtualBox siga o procedimento abaixo:
1. Abra o VirtualBox;
2. Clique no botão 'Novo';
3. No assistente de criação de máquina virtual clique no botão 'Próximo';
4. Escolha um nome para a máquina virtual e escolha qual será o sistema a ser
instalado e em seguinda clique em 'Próximo';
5. Escolha a quantidade de memóra RAM a ser alocada para a máquina virtual e
clique em 'Próximo';
6. Na tela 'Disco rígido virtual' clique no botão 'Novo';
7. Na tela do assistente de criação de disco virtual clique em 'Próximo';
8. Em tipo de armazenamento do disco rígido clique em 'Próximo';
9. Escolha a localização e o nome do arquivo onde será criado o disco virtual, seu
tamanho e clique em 'Próximo';
10.Clique em 'Finalizar';
11.Agora voltando à tela 'Disco Rígido Virtual' clique em 'Próximo';
12.Na tela do sumário da criação de máquina virtual clique em 'Finalizar'.

Para ligar a máquina vitual basta selecioná-la e clicar no botão 'Iniciar'. Durante a
primeira vez que a máquina for ligada o drive de CD/DVD será alocado a esta
máquina.
Quando o hospedeiro não tiver uma unidade de CD/DVD podemos utilizar uma
imagem de CD/DVD como se fosse um dispositivo físico. Para isto é necessário clicar
com o botão direito sobre a máquina e escolher 'Configurações...'. Em seguida clique
em CD/DVD-ROM. Do lado direito da tela marque o checkbox 'Montar drive de
CD/DVD', marque o radiobutton 'Arquivo de imagem ISO' e escolha qual será o arquivo
a ser utilizado com drive de CD/DVD.

8 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Ilustração 1: VirtualBox em ação

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
9
Especializa Treinamentos <http:/ /www.especializa.com.br>

4 Instalando o Ubuntu Server


Neste documento iremos descrever o procedimento de instalação do Ubuntu Server
na sua versão LTS 8.04. A instalação da versão Server é realizado em ambiente de
menu em modo texto, diferente da versão Desktop, que é realizada em ambiente
gráfico. Apesar das diferenças entre os dois modos de instalação o conhecimento
adquirido durante a realização da instalação desta versão capacita o aluno a realizar a
instalação da versão Desktop.
Para realizar a instalação é necessário configurar o equipamento para que a
inicialização seja realizada através do drive de CD ou DVD onde será inserido o CD de
instalação da distribuição.
Em algumas BIOS não é necessário alterar qualquer configuração no Setup, nestas
resta apenas que durante o POST seja pressionada a tecla F10 ou F12 para que um
menu de opções de inicialização seja apresentado. Neste menu deverão constar algo
como o Hard Disk local, o drive de CD/DVD-ROM e nas versões de BIOS mais
modernas ainda USB Drive e Network.

4.1 Iniciando o instalador


Após o início da máquina a partir do drive de CD é mostrada a . Nesta fase temos
cinco opções disponíveis: Install Ubuntu Server, Check CD for defects, Rescue a
broken system, Test memory e Boot from first hard disk.
Descreremos brevemente a função de cada uma destas funções.

A opção Install Ubuntu Server inicia o instalador do


Ubuntu Server. A opção Check CD for defects realiza o
teste de checksum em cada um dos pacotes existentes
no CD e compara-os com o arquivo com os hashes
localizado na própia mídia e qualquer divergência indica
falha na mídia. A opção Rescue a broken system fornece
ao administrador a oportunidade de recuperar um
sistema que não esteja iniciando normalmente a partir
do disco rígido. A opção Test memory inicia o software
Memtest86+, que executa uma busca por falha nos
módulos de memória RAM e por último a opção Boot
form first hard disk que abandona o menu do CD e incia
a partir do disco rígido configurado no Setup da
máquina.

10 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Após escolhida a opção Install Ubuntu Server é solicitado


que seja escolhido o idioma, na tela a ser utilizado
durante o processo de instalação. Este idioma também
será utilizado como idioma padrão do sistema após a
instalação. É importante salientar que aconselhável que
o administrador escolha para a instalação de servidores
o idioma Inglês. O motivo desta escolha é que alguns
scripts podem se comportar mau quando um idioma
diferente é escolhido.

O país onde está localizado o servidor também é uma


das informações solicitadas durante a fase de
instalação. Esta informação é útil para se estabelecer o
fuso horário, calculado a partir do horário de Greenwich.
Na primeira tela sobre a escolha do país escolha a opção
other.

Selecionando-se other na tela anterior é aberta uma


nova tela com uma lista mais completa sobre os países
disponíveis. Nesta tela selecione a opção Brazil.

Será solicitado também que o administrador informe


qual o layout do teclado utilizado. Esta informação é útil,
pois os teclados utilizados nos diferentes países
possuem layout diferentes. Nesta etapa você poderá
optar pela detecção do teclado ou a informação manual
pelo administrador. O processo de detecção do teclado é
realizado solicitado ao administrador que pressione
determinadas teclas e informando sobre a presença de
outras.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
11
Especializa Treinamentos <http:/ /www.especializa.com.br>

Na segunda tela sobre a detecção do teclado selecione a


opção Brazil.

Caso exista mais de uma interface de rede disponível


será solicitado ao administrador que escolha qual é a
interface de rede primária. Esta interface será utilizada a
acessar a internet durante o processo de instalação de
pacotes.

Será solicitado ao administrador que ele escolha um


hostname para a máquina. Este nome identifica cada
máquina em uma rede e deverá ser único.

Com a escolha do país de instalação sendo o Brasil não é


possível determinar exatamente o fuso horário, então
faz-se necessário escolher também sua cidade ou uma
cidade que esteja na relação que possua o mesmo
horário que a sua.

12 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Agora será necessário definir o método de


particionamento do disco rígido para a instalação do
sistema. A primeira opção disponível no menu é o
método Guided – use entire disk. Esta opção irá apagar
qualquer partição existente no disco rígido e criar um
novo definido pelo próprio instalador. Este método é
recomendado para iniciantes e reduz a probabilidade de
cometer erros na criação das partições. A segunda
opção, o método Guided – use entire disk and set up
LVM faz o mesmo que a opção anterior, porém é
utilizado LVM1 em vez da criação dos sistemas de
arquivos diretamente na partição. Isto dá flexibilidade ao
administrador de sistemas no momento do
redimensionamento de alguma das partições, mas
introduz uma complexidade extra. A terceira opção
difere da segunda apenas pela criptografia. O
particionamento manual dá flexibilidade ao
administrador na criação do seu próprio layout de
partições criado-as do tamanho que ele achar melhor.
No particionamento manual também está disponível a
opção de usar LVM.

Será solicitado ao administrador a criação de um usuário


para administrar o sistema. Por padrão a distribuição
Ubuntu desabilita o usuário root. Na primeira tela digite
o nome completo do usuário, nas telas seguintes
escolha o nome de usuário, username, e quando
solicitado digite a senha.

1 LVM – Logical Volume Management

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
13
Especializa Treinamentos <http:/ /www.especializa.com.br>

Se seu acesso à Internet for realizado mediante o uso de


proxy informe-o na tela abaixo. O debconf irá acessar a
internet para atualizar sua lista de pacotes e realizar a
atualização do sistema com os últimos pacotes
disponíveis nos repositórios de atualizações de
segurança.

Será solicitado ao administrador para escolher o perfil


de instalação da máquina. Estarão várias opções
disponíveis, como: DNS server, LAMP server, Mail server,
OpenSSH server, PostgreSQL database, Print server e
Samba file server. O administrador poderá optar ou não
pela escolha de qualquer destes perfís. A não seleção de
nenhum perfil irá instalar um sistema mínimo, ideal para
os nossos laboratórios.

Após a instalação de todos os pacotes no sistema a


instalação estará concluída e o debconf irá solicitar ao
administrador para realizar o reinício do sistema. Para
isto siga as orientações da próxima tela, removendo a
mídia de instalação e pressione Continue.

Após o reinício do sistema o Ubuntu Server estará completamente instalado e pronto


para ser utilizado.

14 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

5 Usando o sistema
Após o início do sistema, estará disponível na tela um prompt aguardando que o
usuário digite seu usuário e senha para ter acesso à linha de comandos.

Ubuntu 8.04.2 srvlab tty1


srvlab login:
Na primeira linha Ubuntu 8.04.2 indica a distribuição e versão utilizada, srvlab indica o
hostname da máquina e tty1 indica o terminal atual. Cada terminal é uma console de
acesso ao sistema, no Ubuntu, por padrão são disponbilizados seis terminais, de tty1 a
tty6. Nos ambientes de Desktop o ambiente gráfico é identificado pelo terminal sete,
ou seja tty7.
Para alternar entre os terminais devemos pressionar as teclas Alt + F<n>, onde n é o
número do terminal desejado.

5.1 Acessando o sistema


Após a digitação o usuário e senha é exibido um prompt de comandos semelhante ao
mostrado abaixo:

aluno@srvlab:~$
Neste prompt aluno indica o usuário logado, @srvlab indica onde o usuário está
logado, neste caso no servidor de hostname srvlab. O sinal '~' indica que o diretório
atual é o home directory do usuário.
Home directory é o diretório pessoal de cada usuário do sistema, nele são
armazenados todas os seus arquivos pessoais e também suas configurações
individuais, como papel de parede, ícones na área de trabalho, etc.
No sistema existem vários usuários. Cada pessoa que possua permissão para executar
tarefas, cada serviço em execução e também o usuário administrativo possuem uma
conta cadastrada. O usuário administrativo em qualquer sistema baseado em Unix
possui o nome root.
O usuário root é o usuário que tem permissão de executar qualquer tarefa
administrativa do sistema. Por questões de segurança este usuário deverá ser
utilizado somente para execução deste tipo de tarefa. O uso da conta de usuário root
para qualquer tarefa que não exija privilégios administrativos deverá ser evitada. Na
distribuição Ubuntu o acesso direto à conta root é desabilitado, para acessar esta
conta é necessário executar o sudo -i.
O prompt do sistema identifica o usuário root pela presença do caractere '#'. Os
usuários comuns são identificados pela presença do caractere '$'.
A presença do prompt de comandos indica que o usuário está logado e o sistema está
apto a receber comandos. Um comando instrui o sistema a executar uma determinada
tarefa. Como exemplo de comandos podemos citar o ls, que lista arquivos e diretórios.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
15
Especializa Treinamentos <http:/ /www.especializa.com.br>

Durante o logon do usuário, antes mesmo da exibição do prompt algumas tarefas são
realizadas, dentre elas destacam-se a execução de alguns scripts de shell, como os
scripts /etc/profile, /etc/bash.bashrc, .bash_profile, .bash_login ou .profile, que dentre
outras coisas, realizam a configuração das chamadas variáveis de ambiente. Uma das
mais importantes variáveis de ambientes do sistema é a variável PATH. Nela está
definida a ordem que o sistema busca pelo comandos. Para visualizar o conteúdo de
uma variável executamos o comando echo.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Outra variável de muita importância é a variável LANG, que define o idioma.
Note que as variáveis são sensíveis ao caso, ou seja, a variável PATH deve assim ser
escrita, e não path, Path ou qualquer outra variação.
Tomando como exemplo a variável $PATH mostrada acima, os comandos
primeiramente serão procurados no diretório /usr/local/sbin, em seguida em /usr/local/
bin e assim sucessivamente, de acordo com a ordem encontrada na variável PATH. É
importante notar que na ocorrência de um executável estar disponível em dois ou
mais diretórios especificados na variável PATH, será executado o que for encontrado
primeiro, de acordo com a sequência definida nesta variável.
Além das variáveis PATH e LANG ainda existem outras. Para verificar quais são as
suas variáveis de ambiente do seu sistema execute o comando env.
$ env

Dica dos Especialistas


Preste muita atenção na sua variável PATH. É comum que usuários
instalem versões do java da sun e fiquem surpresos que ao
executar os aplicações em java estas permanecem sendo
executadas com outra versão encontrada instalada. Na grande
maioria das vezes o problema é a variável mal configurada.

Falando agora sobre os scripts /etc/profile, /etc/bash.bashrc, .bash_profile, .bash_login


e .profileque foram ligeiramente citados acima. Durante o logon de um usuário do
sistema, primeiramente é executado o script /etc/profile. Este script é executado pelo
bash, o interpretador de comandos, também chamado de shell, mais utilizado no
Linux.
O script /etc/profile ativa o ambiente padrão para todos os usuários do sistema,
durante a sua execução executa os scripts contidos no diretório /etc/profile.d que
contenham a extensão .sh, além de executar o script /etc/bash.bashrc.
Após concluída a execução do script /etc/profile o sistema verifica se o usuário que
está logando possui o arquivo .bash_profile, caso possua este script será executado e
o processo de logon será concluído. Se este arquivo não existir será verificada a
existência do arquivo .bash_login, caso exista ele será executado e o processo de
logon será concluído. Caso contrário será verificada a existência do arquivo .profile e
da mesma forma que os demais scripts ele será executado.
Abaixo uma representação lógica do texto acima, que de forma mais direta descreve
como estes scripts são executados.

16 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

executa /etc/profile
SE ~/.bash_profile existir ENTÃO
executa ~/.bash_profile
SENÃO
SE ~/.bash_login exist ENTÃO
executa ~/.bash_login
SENÃO
IF ~/.profile exist ENTÃO
executa ~/.profile
FIM DO SE
FIM DO SE
FIM DO SE

Dica dos Especialistas


É importante notar que a exsitência do arquivo .bash_profile faz
com que os arquivos .bash_login e .profile não sejam executados,
bem como a existência do arquivo .bash_login faz com que o
arquivo .profile não seja executado.

5.2 Obtendo ajuda: whatis, apropos, man, info e help


Às vezes necessitamos de ajuda para executarmos algumas tarefas. Mas onde
procurar ajuda? O sistema possui por si só diversas ferramentas que podem auxiliá-lo
na solução de problemas. Para isto foram criadas páginas de manual, listas de
discussão, fóruns e canais irc. Neste capítulo vamos estudar algumas formas de se
obter ajuda.

5.2.1 Whatis
Como o próprio comando diz, ele pergunda ao sistema o que é alguma coisa.

$ whatis smb.conf
smb.conf (5) - The configuration file for the Samba suite

5.2.2 man – Página de manual


Uma páginas de manual (man page) deve ser uma das primeiras fontes de consulta
que um administrador deverá procurar quando se deparar com o desconhecido.
Opções de comandos, formatos de arquivos de configuração estão plenamente
documentado nesta fonte de documentação.
As páginas de manuais possuem seções. Cada seção documenta um fim específico.

1 Programas executáveis e comandos do shell

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
17
Especializa Treinamentos <http:/ /www.especializa.com.br>

2 Chamadas do sistema (Funçoes providas pelo kernel)


3 Chamadas de bibliotecas
4 Arquivos especiais (usualmente encontrados em /dev)
5 Formatos e convençoes de arquivos
6 Jogos
7 Miscelaneas
8 Comandos de administration do sistema
9 Rotinas do Kernel

O comando acima mostra informações sobre o arquivo de configuração passwd, que


contém informações sobre os usuários cadastrados no sistema.
$ man 5 passwd
O comando acima mostra informações sobre o comando passwd, que troca a senha
dos usuários.
$ man 1 passwd

5.2.3 apropos
O apropos é uma ferramenta de busca para páginas de manual. No exemplo abaixo
estão sendo exibidas todas as páginas de manual que fazem referência ao samba.

$ apropos samba
cupsaddsmb (8) - export printers to samba for windows clients
lmhosts (5) - The Samba NetBIOS hosts file
net (8) - Tool for administration of Samba and remote CIFS servers.
samba (7) - A Windows SMB/CIFS fileserver for UNIX
smb.conf (5) - The configuration file for the Samba suite
smbpasswd (5) - The Samba encrypted password file

5.2.4 info
O comando info é uma outra forma de acessar as páginas de manual.

$ info uname

5.2.5 help
O comando help fornece ajuda para os comandos internos do sistema operacional.

$ help for
for: for NAME [in WORDS ... ;] do COMMANDS; done
The `for' loop executes a sequence of commands for each member in a
list of items. If `in WORDS ...;' is not present, then `in "$@"' is
assumed. For each element in WORDS, NAME is set to that element, and
the COMMANDS are executed.
for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done
Equivalent to
(( EXP1 ))
while (( EXP2 )); do
COMMANDS

18 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

(( EXP3 ))
done
EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is
omitted, it behaves as if it evaluates to 1.

5.2.6 comando --help


Esta é uma forma de acessar a ajuda de forma resumida. Normalmente é acessada
mais frequentemente quando se deseja consultar as opções mais utilizadas.

$ name --help
Usage: uname [OPTION]...
Print certain system information. With no OPTION, same as -s.

-a, --all print all information, in the following order,


except omit -p and -i if unknown:
-s, --kernel-name print the kernel name
-n, --nodename print the network node hostname
-r, --kernel-release print the kernel release
-v, --kernel-version print the kernel version
-m, --machine print the machine hardware name
-p, --processor print the processor type or "unknown"
-i, --hardware-platform print the hardware platform or "unknown"
-o, --operating-system print the operating system
--help display this help and exit
--version output version information and exit

Report bugs to <bug-coreutils@gnu.org>.

5.2.7 /usr/share/doc
Este é o diretório de documentação de cada pacote instalado no seu sistema. Esta é
uma fonte de documentação mais detalhada e normalmente, para pacotes que
exigem configuração, são apresentados arquivos de exemplo.

$ cd /usr/share/doc/grub
$ ls
AUTHORS changelog.gz NEWS.Debian.gz README.Debian.gz
BUGS copyright NEWS.gz THANKS.gz
changelog.Debian.gz examples README TODO

5.2.8 Listas de discussão, fóruns e a web


As listas de discussão, fóruns e a web também são boas fontes de pesquisas para
encontrar soluções aos seus problemas e exemplos de arquivos de configuração. O
Ubuntu conta com um fórum1 e uma área de documentação2 no seu site. Como a
distribuição foi desenvolvida utilizando o Debian como base, a maioria das orientações

1 Fórum Ubuntu http://ubuntuforums.org


2 Documentação oficial do Ubuntu http://help.ubuntu.com

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
19
Especializa Treinamentos <http:/ /www.especializa.com.br>

destinadas ao Debian aplicam-se ao Ubuntu. Assine uma lista de discussão como a


debian-user-portuguese1 ou o fórum do Ubuntu e poste lá as suas dúvidas de forma
mais clara possível, utilizando um bom português e fornecendo a maior quantidade de
informação possível.

5.3 Quando as coisas não estão bem


Logs são mensagens que avisam sobre a atividade do sistema. Eles são úteis para
ajudar na solução de problemas e também para a realização de auditorias no sistema.
Os logs, na maioria das vezes, são armazenados no diretório /var/log.
No diretório /var/log podem ser encontrados diversos arquivos e diretórios. Dentre os
principais arquivos podemos destacar o messages e syslog

5.4 Manipulação de arquivos e diretórios


Após a instalação do sistema devemos realizar configurações no nosso servidor e para
isto é necessário editar arquivos de configuração. Estes arquivos estão armazenados
em diretórios espalhados pelo sistema de arquivos. Sendo assim vamos aprender
agora como manipular estes arquivos e diretórios.
Para criar diretórios utilizamos o comando mkdir.
Apesar de pouco utilizadas o comando mkdir possui algumas opções interessantes.
-p – cria o caminho até o diretório, caso não exista
-m – define as permissões (modo)
$ mkdir nome_do_diretório
$ mkdir -p cursos/especializa/linux/junior
$ mkdir -m 700 /tmp/script1
Para mover um diretório utilizamos o comando mv.

$ mv aula1 laa/aula1
Para renomeá-lo também utilizamos o comando mv. Observe que mover e renomear
um diretório têm o mesmo significado.

$ mv nome_atual nome_novo
Para removê-lo utilizamos o comando rmdir.

$ rmdir nome_do_diretório
Uma observação importante é que o comando rmdir apaga somente diretórios vazios,
para apagar um diretório juntamente com o seu conteúdo utilize o comando rm com a
opção -r, de recursive. Utilize ainda a opção -f, de force, para que não seja solicitada
confirmação arquivo por arquivo.

$ rm -rf nome_do_diretório

1 Lista debian-user-portuguese em http://lists.debian.org/debian-user-portuguese

20 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Acima vimos como criar, renomear e apagar diretórios, agora vamos ver estas
mesmas atividades sendo realizadas em arquivos.
Para criar um arquivo devemos utilizar uma aplicação apropriada dependendo do tipo
do arquivo. Para criar um arquivo de texto devemos utilizar um editor, como o nano
ou vi, por exemplo. Este editores de texto serão vistos em mariores detalhes adiante.
Um arquivo vazio poderá ser criado como o comando touch conforme abaixo:
$ touch nome_do_arquivo

Para visualizar o conteúdo de um arquivo usamos o comando cat. Outros comandos


também podem ser utilizados para este fim, como o comando head que exibe as
primeiras linhas de um arquivo; o comando tail que exibe as últimas linhas de um
arquivo e o comando grep que exibem apenas as linhas que contiverem alguma
sequencia de caracteres especificada.
$ cat /etc/passwd
$ head /etc/passwd
$ tail /etc/passwd
$ grep aluno /etc/passwd
Para movê-lo ou renomeá-lo utilizamos o comando mv, e para apagar um arquivo
utilizamos o comando rm, os mesmos comandos utilizados para mover, renomear e
apagar diretórios.

$ mv origem destino
$ rm nome_do_arquivo

Dica dos Especialistas


Com barra (/) ou sem barra?
É muito comum que iniciantes cometam erros quando desejam
acessar um determinado arquivo ou diretório e usarem a barra de
forma incorreta, colocando-a quando não é necessário e omitindo-
a quando é necessário.
Lembre-se: a barra sempre deverá ser especificada quando
desejamos especificar um arquivo desde a raiz, é o que chamamos
de caminho absoluto e, quando desejamos especificar um
arquivo ou diretório a partir do local atual a barra deverá ser
omitida, é o que chamados de caminho relativo.

5.5 Compactando e descompactando arquivos e diretórios


O processo de compactação de arquivos é realizado para torná-los pequenos o
suficiente para que seja possível armazená-los em mídias limitadas e também que
seja possível enviá-lo através de uma rede com baixa capacidade de transferência.
No Linux existem vários compactadores quem poderão ser utilizado para realizar esta
tarefa. Cada compactador possui suas características próprias. o gzip, por exemplo,
compacta o arquivo em si mesmo, isto é, não é gerada uma cópia compactada do

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
21
Especializa Treinamentos <http:/ /www.especializa.com.br>

arquivo, o próprio conteúdo do arquivo é compactado. Já outros compactadores, o zip,


por exemplo cria uma cópia.

5.5.1 gzip e gunzip


Estes dois comando compactam e descompactam, respectivamente arquivos,
somente arquivos. Diretórios não podem ser compactados com gzip.

$ gzip smb.conf
Como resultado o arquivo smb.conf é compactado. Após compactado o arquivo ganha
a extensão .gz, resultando no arquivo smb.conf.gz. É importante notar que o próprio
arquivo é compactado, não é gerada uma cópia compactada, como na maioria dos
compactadores.

5.5.2 bzip2
O bzip2 funciona de forma muito semelhante ao gzip, porém o bzip2 possui um
algorítmo de compactação com maior compressão. Os arquivos compactados
possuem a extensão .bzip2. Da mesma forma que o gzip, o bzip2 compacta somente
arquivos.

$ bzip2 smb.conf
Como resultado um arquivo smb.conf.bz2 é criado em substituição ao arquivo
smb.conf.

5.5.3 zip e unzip


O zip e unzip funcionam criando uma cópia compactada do arquivo ou diretório.

$ zip smb.conf.zip smb.conf


Com o zip é necessário especificar o nome o arquivo compactado a ser gerado e
também o nome do arquivo ou diretório a ser compactado.
Para descompactar um arquivo .zip é necessário utilizar o comando unzip.

$ unzip smb.conf.zip

5.5.4 tar

$ tar cvf tarball.tar arquivos_ou_diretórios


onde:
c ==> (create) cria tarball
x ==> (extract) extrai os arquivos do tarball
v ==> (verbose) modo verbose, mostra o andamento da operação
f ==> (file) indica que o nome do arquivo será especificado

22 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

O tar pode criar o tarball e compactar o arquivo ao mesmo tempo. Para isto basta
especificar na linha de comando qual será o compactador utilizado.
Usando o o compactador zip.
$ tar zcvf arquivo.tar.gz arquivos_ou_diretórios
$ tar zxvf arquivo.tar.gz

Usando o o compactador bzip2.


$ tar jcvf arquivo.tar.bz2 arquivos_ou_diretórios

$ tar jxvf arquivo.tar.bz2


onde:
j ==> compactador bzip2
z ==> compactador zip

5.6 Utilizando editores de texto


A maioria das configurações do sitema é realizada editando-se arquivos de
configuração. Para editar cada um destes arquivos é necessária a utilização de um
editor de textos. No Linux existem vários editores disponíveis para edição deste tipo
de arquivo. Os mais utilizados são: vi, emacs, nano e mcedit.
O vi, lê-se vi-ai, é um dos editores de texto mais utilizados para edição de arquivos de
configuração de sistemas baseados em Unix. Ele possui muitos recursos que poderão
ser utilizados no momento da edição de arquivos de configuração.
Diferente da maioria dos editores de texto, o vi não possui um menu onde o usuário
possa executar suas tarefas, em vez disso ele possui dois modos: o de comandos e o
de edição. O modo de comandos é utilizado para que o usuário possa executar suas
tarefas como abrir ou salvar um arquivos, buscar por palavras, realizar substituição de
conteúdos dentre outras.
O modo de comandos é habilitado pressionando-se a tecla 'Esc'. O pressionamento
desta tecla a qualquer momento faz com que o usuário abandone imediatamente o
modo de edição e entre no modo de comandos. No modo de comandos qualquer tecla
pressionada será interpretada como um comando.
Para entrar no modo de edição podemos pressionar a tecla 'i', por exemplo. Este
comando habilita a inserção de caracteres a partir do local onde está o cursor. Já o
pressionamento da tecla 'a', de append, habilita o modo de edição, mas neste último
o cursor é deslocado um caractere à direita.
Abaixo é mostrado um quadro com os comandos do vi mais utilizados.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
23
Especializa Treinamentos <http:/ /www.especializa.com.br>

Comando Função
/palavra ou regex1 Busca por 'palavra' ou 'regex' em todo o arquivo
?palavra ou regex Busca por 'palavra' ou 'regex' em todo o arquivo no sentido inverso.
A Vai para o final da linha e entra no modo de edição fazendo append,
a Entra no modo de edição deslocando um caractere à diretiva, append.
i Entra no modo de edição a partir da posição onde está o cursor.
I Entra no modo de edição no início da linha onde está o cursor.
x Apaga o caratere sob o cursor.
dd Recorta toda a linha onde está o cursor.
yy Copia a linha onde está o cursor.
p Cola a linha que está na área de tranferência do vi.
:q! Abandona o arquivo sem salvar.
:wq Salva o arquivo e sai.
:w Salva o arquivo.

Tabela 1: Comandos do vi

Ilustação 1: Editor de textos vi

O nano é um editor de textos de fácil utilização. Ele não possui tantos recursos quanto
o vi, mas é ideal para usuários iniciantes.
Para usar o nano é simples. Para digitar um texto basta iniciar a digitação. Não
existem modos de comandos e edição como o editor vi. O caractere '^' mostrado em
cada opção do menu indica o pressionamento da tecla 'Crtl'. Assim para sair do nano

1 regex – expressões regulares na wikipedia http://en.wikipedia.org/wiki/Regex

24 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

conforme indicado no menu pressionam-se as teclas 'Ctrl + X'. No menu estão


disponível tarefas corriqueiras como buscar por uma determinada palavra no texto,
copiar e colar, obter ajuda e mais.

Ilustação 2: Editor de textos nano

Dica dos Especialistas


Utilize a conta de usuário root somente para executar tarefas
administrativas. Uso indiscrimado desta conta de usuário deixa o
sistema vulnerável, pois a execução de um programa malicioso
com esta conta poderá causar estragos irreversíveis ao sistema e
aos dados dos usuários.

6 FHS – Filesystem Hierarchy Standard


O sistema de arquivos do Linux obedece ao padrão FHS (Filesystem Hirarchy Stardard,
ou Padrão de Hierarquia de Sistema de Arquivos, em Português). Esta estrutura
organiza de forma semântica todos os recursos do sistema, seja eles arquivos,
diretórios, links ou dispositivos.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
25
Especializa Treinamentos <http:/ /www.especializa.com.br>

Diretório Descrição
/ Também chamado de diretório raiz (root). Ponto de partida de todos os
demais diretórios, arquivos e dispositivos existentes no sistema.
/etc Diretório onde estão localizados a maioria dos arquivos de configuração
existentes no sistema.
/boot Diretório onde estão localizados os arquivos contendo o kernel do linux e
arquivo de configuração do grub.
/home Diretório onde estão localizados os arquivos e diretórios de propriedade
dos usuários do sistema.
Ex: /home/aluno/Documentos/orçamento.odt
/root Home directory do usuário root.
/bin Arquivos executáveis orientados aos usuários.
Ex: /bin/ls
/sbin Arquivos executáveis orientados ao usuário administrador do sistema.
Ex: /sbin/ifconfig
/usr Dentro deste diretório é replicada parte da estrutura externa ao
diretório. Podemos verificar a existência dos subdiretórios bin e sbin. Os
diretórios bin e sbinpossuem os arquivos executáveis dos programas
instalados pelo usuários, isto é, arquivos que não fazem parte do
sistema operacional em si. Como exemplo de arquivos que são
encontrados neste diretório podemos citar o /usr/bin/firefox.
O conteúdo deste diretório permanece estático durante a utilização do
sistema, variando apenas quando for realizada a instalação de algum
software.
/usr/local Réplica da estrutura de diretórios padrão para instalação de softwares
que não fazem parte da distribuição. Normalmente utilizado quando se
compila um software de forma manual.
/var Diretório que contenham arquivos variáveis com a simples utilização do
sitema. Note que alguns arquivos de logs sofrem variação mesmo que o
sistema não esteja sendo utilizado, bastando que o sistema esteja em
execução.
Ex: /var/log/apache/access_log, /var/spool
/tmp Diretório para armazenamento de dados temporários. O conteúdo deste
diretório não é preservado durante o reboot do sistema. A política de
limpeza deste diretório pode diferir de acordo com a distrbuição. Nas
distribuições Debian e Ubuntu o conteúdo é removido a cada reboot e
nas distribuições baseadas em RedHat o conteúdo é removido a cada
mês.
/opt Utilizado para pacotes de software que não fazem parte da distribuição.
Ex: /opt/eclipse
/proc Sistema de arquivos em memória de uso do sistema operacional. Neste
diretório são disponibilizadas informações sobre a execução do sistema,
como: uso de discos, memória, parâmetros de execução do kernel. É a
fonte de informações para muitos programas de monitoramento do
sistema. Você também poderá passar alguns parâmetros de
configuração editando-se os arquivos encontrados aqui, porém após um
reboot todas configurações serão perdidas. Neste caso recomenda-se a
realização das configurações editando-se os arquivos destinados a
receber a configuração. Boa parte das configurações deste tipo são
realizadas editando-se o arquivo /etc/sysctl.conf.

26 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

/media ou /mnt Ponto de montagem para dispositivos externos como: pendrives,


máquinas fotográficas, etc.
Ex: /media/Kingston
/dev Utilizado para acesso a dispositivos de hardware e software.
Ex: /dev/sda1, /dev/null
/lib Utilizado para armazenamento de bibliotecas compartilhadas do sistema
operacional.
/usr Diretório para armazenar dados de aplicações instaladas.
swap É uma área de troca utilizada pelo sistema operacional. É conhecida no
mundo windows como memória virtual, para os mais ítimos ao mundo
windows este é o equivalente ao arquivo pagefile.sys. Nos unix em geral,
incluindo o linux, é uma partição no disco rígido.

7 A inicialização do sistema
A inicialização do sistema começa com o boot da máquina. Após a conclusão do POST
a máquina inicia o sistema operacional contido no primeiro dispositivo configurado
que contenha um sistema operacional. A ordem de pesquisa é definida na
configuração da BIOS do equipamento.
Após selecionado o dispositivo que será utilizado para ser realizada a carga do
sistema operacional o sistema carrega a imagem de inicialização encontrada nos
primeiros 512 bytes do disco. Neste local, em sistemas Linux está instalado o
gerenciador de boot. Os principais gerenciadores de boot são o LILO e o GRUB. O LILO
já foi o mais utilizado num passado não muito distante, mas hoje a maioria das
distrbuições utiliza o GRUB por padrão devido à sua simplicidade e disponbilidade de
recursos.
O GRUB permite ao administrador ter dois ou mais sistemas instalados ou várias
versões de kernel para um sistema com Linux instalados na máquina, dando a opção
de escolher qual será carregado no momento da inicialização da máquina. Esta
escolha é realizada através de um menu apresentado durante a inicialização. Abaixo
iremos apresentar o arquivo de configuração do GRUB, o menu.lst. Este é um dos
poucos arquivos de configuração do sistema que está fora do diretório /etc.
Cada entrada apresentada no menu do GRUB é numeda a partir do zero. Esta
numeração é utilizada para definir qual o sistema será carregado caso o usuário não
faça uma escolha de qual sistema será carregado. A entrada padrão deverá ser
escolhida editando-se a linha default seguida do número da entrada.
A diretiva timeout define a quantidade de segundos que o GRUB deverá aguardar que
o usuário faça a sua escolha. Na tela será apresentada uma contagem regressiva para
a carga do sistema escolhido como padrão.
A diretiva hiddenmenu, quando presente, indica que o menu não será apresentado
para o usuário. Quando esta diretiva está presente é necessário que o usuário
pressione a tecla 'Esc' no momento em que estiver sendo realizada a contagem
regressiva.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
27
Especializa Treinamentos <http:/ /www.especializa.com.br>

A diretiva password dá ao administrador a possibilidade de restringir o acesso a uma


determinada entrada no menu ou bloquear a passagem de parâmetros de boot
mediante a digitação de uma senha. Esta senha poderá ser armazenada em texto
plano ou criptografado. Para criptografar a senha para inserí-la neste arquivo utilize o
comando grub-md5-crypt.
Após estas configurações temos as seções quem criam as entradas no menu para a
escolha do sistema que será utilizado na inicialização. Cada uma destas seções é
definido o título, através da diretiva title, e o dispositivo de armazenamento onde está
instalado o sistema, através da diretiva root. Quando o sistema for Linux é definido
ainda a versão do kernel que será utilizada, através da diretiva kernel e o initrd com
os drivers que deverão ser carregados durante a inicialização do sistema, definido na
diretiva initrd.

$ cat /boot/grub/menu.lst

default 0
timeout 2
hiddenmenu

# password topsecret
password --md5 $1$D50Dg$lKqCsZuDdzQ6Hbw4QdygT0

title Ubuntu 8.04.2, kernel 2.6.24-21-generic


root (hd0,7)
kernel /vmlinuz-2.6.24-21-generic root=UUID=2fabdf08-
df1c-4d21-9b6d-16799143003b ro quiet splash
initrd /initrd.img-2.6.24-21-generic
quiet

title Ubuntu 8.04.2, kernel 2.6.24-21-generic (recovery mode)


root (hd0,7)
kernel /vmlinuz-2.6.24-21-generic root=UUID=2fabdf08-
df1c-4d21-9b6d-16799143003b ro single
initrd /initrd.img-2.6.24-21-generic

title Ubuntu 8.04.2, memtest86+


root (hd0,7)
kernel /memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root

# This entry automatically added by the Debian installer for a non-linux OS


# on /dev/sda3
title Windows Vista/Longhorn (loader)
root (hd0,2)
savedefault
makeactive
chainloader +1

28 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Após a carga do kernel com os drivers do dispositivos é iniciada a execução do


processo pai de todos os demais processos em execução no sistema, o init. Cada
processo em execução no sistema possui um número de identificação, o Process ID,
ou PID. O processo do init possui o PID 1.

7.1 Níveis de execução


Após a chamada do init o sistema é carregado iniciando-se os scripts de inicilialização
contidos em cada nível de execução, runlevel. A forma com que estes scripts são
executados e o nível de execução que será carregado diverge entre as distribuições.
No Debian e Ubuntu, por exemplo, durante a inicialização os scripts do runlevel 'S' são
iniciados primeiramente e, após a conclusão destes são executados os scripts do
runlevel '2'. Já nas distribuições derivadas do RedHat a inicialização é diferente, não
existe o runlevel 'S'. Durante o boot são executados diretamente os scripts do
runelevel '3' ou '5', sem ou com ambiente gráfico respectivamente.

Nível de Debian/Ubuntu RedHat/CentOS


execução
S Boot Não existe
0 Desligar Desligar
1 Single Single
2 Normal Não utilizado
3 Normal Normal/Texto
4 Normal Não utilizado
5 Normal Normal/Gráfico
6 Reboot Reboot

7.2 Os Scripts de Inicialização


Os scripts de inicialização são scripts que são executados durante a entrada e saída
de qualquer dos níveis de execução do sistema. Eles também podem ser executados
manualmente por um usuários que tenha privilégios para iniciar ou parar serviços. Um
script de inicialização aceita um parâmetro, que na maioria das vezes são: start, stop
ou restart. Cada serviço pode ainda definir seus próprios parâmetros adicionais, mas
pelo start, stop e restart deverão ser implementados por todos os serviços conforme
definido pela LSB1.
No exemplo abaixo mostramos como é possível reinciar o serviço da rede utilizando o
script de inicialização.

# /etc/init.d/networking restart

1 Linux Standard Base http://www.linuxfoundation.org/en/LSB

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
29
Especializa Treinamentos <http:/ /www.especializa.com.br>

Nas distribuições baseadas em RedHat há um script chamado service que pode ser
executado em substituição ao caminho dos scripts. O mesmo exemplo é mostrado
abaixo na distribuição RedHat.

# service network restart


ou
# /etc/init.d/network restart
Podemos definir quais scripts serão executados durante a entrada e saída em cada
nível de execução do sistema. Para isto é necessária a criação de links simbólicos nos
diretórios de cada nível de execução apontando para o script original que está no
diretório /etc/init.d.

aluno@srvlab:~$ ls -ld /etc/rc*.d


drwxr-xr-x 2 root root 4096 2008-11-24 21:01 /etc/rc0.d
drwxr-xr-x 2 root root 4096 2008-11-24 21:01 /etc/rc1.d
drwxr-xr-x 2 root root 4096 2008-11-24 21:01 /etc/rc2.d
drwxr-xr-x 2 root root 4096 2008-11-24 21:01 /etc/rc3.d
drwxr-xr-x 2 root root 4096 2008-11-24 21:01 /etc/rc4.d
drwxr-xr-x 2 root root 4096 2008-11-24 21:01 /etc/rc5.d
drwxr-xr-x 2 root root 4096 2008-11-24 21:01 /etc/rc6.d
drwxr-xr-x 2 root root 4096 2008-07-02 07:32 /etc/rcS.d

A criação dos links simbólicos poderá ser feita manualmente ou utilizando alguma
ferramenta de administração do runlevel. As distribuições Debian e Ubuntu
disponibilizam o comando update-rc.d e a distribuição RedHat e derivados
disponibilizam o chkconfig e também o ntsysv. As distribuições Debian e Ubuntu
disponibilizam ainda uma outra ferramenta mais intuitiva para a realização desta
tarefa, o sysvconfig.
Para instalar o sysvconfig execute:
# aptitude install sysvconfig
Para executá-lo execute o comando sysvconfig.
Já no RedHat e derivados a definição de quais níveis de execução um dado serviço
será executado é definida diretamente no script de inicialização do serviço. Abaixo
mostramos um trecho de um script de inicialização contendo a definição de quais os
níveis e a ordem que o serviço será executado.

#!/bin/sh
#
# Startup script for programa
#
# chkconfig: 345 85 15
# description: Descrição do programa
# processname: processo
# pidfile: /var/run/processo.pid

No exemplo acima o serviço será iniciado nos níveis 3, 4 e 5 com o parâmetro start e
será executado na ordem 85 e nos demais níveis ele será executado na ordem 15
com parâmetro stop.

30 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Para incluir um novo script na inicialização é necessário colocá-lo no diretório


/etc/init.d e executar o comando abaixo para que os links simbólicos seja criados nos
devidos diretórios.
# chkconfig --add nome_do_script

Já no Debian e Ubuntu para incluir um novo script também é necessário incluí-lo no


diretório /etc/init.d e executar o comando abaixo para incluir os links simbólicos nos
devidos diretórios.
# update-rc.d nome_do_script start 85 2 3 4 5 . stop 15 0 1 6 .
No exemplo acima o script será executado com parâmetro start nos níveis 2, 3, 4 e 5
na ordem 85 e será executado com parâmetro stop nos níveis 0, 1 e 6 na ordem 15.
Ou seja serão criados os links simbólicos conforme abaixo:
$ ls -1 /etc/rc*.d/*nome_do_script
/etc/rc0.d/K15nome_do_script
/etc/rc1.d/K15nome_do_script
/etc/rc2.d/S85nome_do_script
/etc/rc3.d/S85nome_do_script
/etc/rc4.d/S85nome_do_script
/etc/rc5.d/S85nome_do_script
/etc/rc6.d/K15nome_do_script
Nos diretórios /etc/rcX.d estão localizados os links simbólicos para os scripts de
inicialização. Os scripts contidos neste diretório são executados em ordem
alfanumérica e os que são iniciados pela letra 'K' serão iniciados com parâmetro stop.
O número que segue a letra 'K' indica a ordem que o script será executado. O mesmo
vale para os scripts que iniciam com a letra 'S', porém para estes scripts o parâmetro
start é passado.
Sempre que o sistema entra em um determinado nível primeiramente são executados
todos os scripts 'K' e em seguida os scripts 'S'.
A sequência da inicialização do sistema no Ubuntu é a seguinte
1. São executados os scripts do runlevel S, primeiramente os 'K' e depois os 'S'.
2. São executados os scripts do runlevel 2, primeiramente os 'K' e depois os 'S'.
3. O script /etc/rc.local é executado

No RedHat a inicialização é ligeiramente diferente. Os scripts do runlevel 3 ou 5 são


iniciados diretamente, não há um runlevel intermediário como o Debian e Ubuntu.
1. São executados os scripts do runlevel 3 ou 5, primeiramente os 'K' e depois os
'S'.
2. O script /etc/rc.local é executado

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
31
Especializa Treinamentos <http:/ /www.especializa.com.br>

8 Fundamentos de TCP/IP
Assim como cada casa em uma rua tem um endereço, cada computador em uma rede
também o tem. O endereço de rede é indispensável para que dois ou mais
computadores estabelecam comunicação. Com ele os pacotes podem trafegar ao
longo da rede e chegarem ao seu destino. O protocolo IP é responsável por
estabelecer este endereçamento na internet e na grande maioria das redes privadas.
O Endereço IP identifica um host em uma rede de computadores. Ele é formado por
uma sequência de 32 bits que podem ser representados na forma decimal pontuada,
binário e hexadecimal. A forma decimal pontuda é feita dividindo-se o endereço em 4
octetos e convertendo cada um destes octetos em decimal.
Os endereços são divididos em classes, que são definidas de acordo com os bits que
formam o primeiro octeto.

Classe de Primeiro Faixa de endereçamento Faixa de endereçamento Máscara


endereços octeto (representação binária do (representação decimal do Padrão
primeiro octeto) primeiro octeto)
Classe A 0XXXXXXX 00000000 - 01111111 0 - 127 8
Classe B 10XXXXXX 10000000 - 10111111 128 - 191 16
Classe C 110XXXXX 11000000 - 11011111 192 - 223 24
Classe D 1110XXXX 11100000 - 11101111 224 - 239 -

A classe D foi propositalmente colocada em evidência com a escrita realizada em


itálico. Por que? Esta faixa de endereçamento é utilizada para comunicações em
multicast1.
A máscara de rede identifica em um dado endereço, qual a porção deste que
identifica a sua rede e qual a porção que identifica o host. Quando dois ou mais hosts
possuem a porção que identifica a rede igual, significa que eles estão na mesma rede,
e isto é determinante para que estes possam comunicar-se diretamente, ou seja, sem
a necessidade de utilizar um gateway de rede, um roteador.
Uma máscara pode representada de três formas: binária, decimal ou decimal
pontuada. As formas decimal e decimal pontuada são as mais utilizadas, mas lembre-
se que todos o processamento interno do computador ocorre em binário.
Cada classe de endereçamento IP possui uma máscara padrão. O fato de existir uma
máscara padrão não significa que esta será sempre utilizada. O administrador de
redes, quando for necessário, poderá utilizar máscaras diferentes da padrão.

Classe Máscara Máscara Máscara


(binária) (decimal) (decimal pontuada)
Classe A 11111111 00000000 00000000 00000000 8 255.0.0.0
Classe B 11111111 11111111 00000000 00000000 16 255.255.0.0
Classe C 11111111 11111111 11111111 00000000 24 255.255.255.0

1 Multicast na wikipedia http://pt.wikipedia.org/wiki/Multicast

32 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

A representação binária de uma máscara dá uma idéia mais clara do limite que define
qual é a porção do endereço que indica a rede e do host. Os bits '1' indicam a porção
de rede e os bits '0' indicam a porção de host. No exemplo abaixo os três primeiros
octetos do endereço IP representam a sua porção de rede.

IP 11000000 10101000 00001010 00000010 => 192.168.10.2


Máscara 11111111 11111111 11111111 00000000 => 255.255.255.0
Rede 11000000 10101000 00001010 00000000 => 192.168.10.0
1° host 11000000 10101000 00001010 00000001 => 192.168.10.1
u° host 11000000 10101000 00001010 11111110 => 192.168.10.254
broadcast 11000000 10101000 00001010 11111111 => 192.168.10.255

Como visto, os endereços IPs e sua respectiva máscara são usados para se calcular
qual é a faixa de endereços válidos para utilizarmos em uma rede local. Exitem
ferramentas que auxiliam o administrador de redes a saber ou mesmo definir quais
serão os endereços que poderão ser utilizados. O ipcalc é uma destas ferramentas. A
sua instalção é bastantes simples em sistemas Ubuntu, para isto é necessário
executar o comando abaixo:
# aptitude install ipcalc

Após instalado o ipcalc está pronto para ser utilizado. Como exemplo iremos verificar
quais são os endereços de rede, broadcast e o primeiro endereço e o último endereço
válido da rede à qual pertence o endereço IP 192.168.10.2 com máscara de rede
255.255.255.0.
$ ipcalc 192.168.10.2 255.255.255.0
Address: 192.168.10.2 11000000.10101000.00001010. 00000010
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.10.0/24 11000000.10101000.00001010. 00000000
HostMin: 192.168.10.1 11000000.10101000.00001010. 00000001
HostMax: 192.168.10.254 11000000.10101000.00001010. 11111110
Broadcast: 192.168.10.255 11000000.10101000.00001010. 11111111
Hosts/Net: 254 Class C, Private Internet

A linha Address indica o endereço que estamos consultando, primeiramente é


mostrada a forma decimal pontuada e em seguida a representação binária deste
endereço.
A linha Netmask e Broadcast indicam a máscara e o endereço de broadcast também
nas duas representações.
A linha Wildcard é uma outra representação de máscara de rede e é utilizada em
alguns equipamentos, como a tabela de roteamento de roteadores cisco. Seu uso é
bastante restrito.
Agora chegamos às configurações mais esperadas, o endereço de rede do host
(Network) é exibido nas duas representações. Note que na representação binária os

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
33
Especializa Treinamentos <http:/ /www.especializa.com.br>

três primeiros bits estão em destaque. O destaque indica a definição de qual classe de
endereços este host pertence.
A linha HostMin e HostMax indicam respecitamente qual o primeiro e último endereço
IP válido nesta subrede.
A linha Hosts/Net indica a quantidade de hosts que é possível endereçar em cada uma
das redes com está máscara. Nesta linha também é mostrada qual é a classe de
endereços à qual este host faz parte, que neste exemplo foi a classe C.
Vejamos agora um exemplo onde não é utilizada a máscara padrão.
$ ipcalc 10.0.10.14/28
Address: 10.0.10.14 00001010.00000000.00001010.0000 1110
Netmask: 255.255.255.240 = 28 11111111.11111111.11111111.1111 0000
Wildcard: 0.0.0.15 00000000.00000000.00000000.0000 1111
=>
Network: 10.0.10.0/28 00001010.00000000.00001010.0000 0000
HostMin: 10.0.10.1 00001010.00000000.00001010.0000 0001
HostMax: 10.0.10.14 00001010.00000000.00001010.0000 1110
Broadcast: 10.0.10.15 00001010.00000000.00001010.0000 1111
Hosts/Net: 14 Class A, Private Internet

Observe que no exemplo acima, apesar da máscara utilizada ser diferente da máscara
padrão de classe A, este endereço continua pertencendo a esta classe. Isto deve-se
ao fato de que o fator determinante da classe de endereçamento IP não é a máscara
de rede e sim os primeiros bits do primeiro octecto do endereço.

8.1 Configurando a rede de forma temporária


A configuração da rede poderá ser realizada através da linha de comandos. Esta
configuração é indicada em casos de configurações temporárias. Qualquer
configuração persistente deverá ser realizada editando-se os arquivos de configuração
de acordo com a distribuição.
Para configurar o endereço IP de uma inteface de rede execute o comando ifconfig.
# ifconfig eth0 192.168.10.2 netmask 255.255.255.0
onde:
eth0 – a interface de rede a ser configurada
192.168.10.2 – o endereço IP atribuído ao host
255.255.255.0 – a máscara de rede

Além o endereço IP é necessário definir o endereço do gateway. A configuração deste


endereço é realizada executando o comando route.
# route add default gw 192.168.10.1
onde:
192.168.10.1 – enderço do gateway

Já a configuração do DNS só é possível editando-se o arquivo de configuração


/etc/resolv.conf.

34 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

8.2 Configurando a Rede no Debian/Ubuntu (persistente)


A configuração da rede no Ubuntu Server é realizada através da edição do arquivo de
configuração /etc/hostname , /etc/network/interfaces, /etc/hosts e /etc/resolv.conf.
Em /etc/hostname definimos qual será o nome do host. Neste arquivo não há qualquer
outra informação que não seja este nome.
No arquivo /etc/network/interfaces são configuradas os endereços IP, máscara de
rede, endereço de rede, broadcast e o gateway. Algumas configurações mais
avançadas, como scripts para serem executados durante as mudanças de estados da
interface também poderão ser especificados.
Um exemplo de configuração deste arquivo é mostrado abaixo:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.10.2
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1

As duas primeiras linhas encontradas neste arquivo fazem referência à configuração


da interface de loopback e nunca deverá ser alterada, sob pena de mau
funcionamento do sistema.
A linha auto indica quais interfaces deverão ser configuradas durante o início da
serviço networking, executando automaticamente durante a inicialização do sistema
ou manualmente pelo administrador quando necessário.
A linha iface eth0 inet static define a configuração manual da interface de rede eth0.
As linhas address, netmask, network, broadcast e gateway são os parâmetros de
configuração desta interface.
Para que a configuração desta interface de rede fosse configurada dinamicamente o
arquivo seria semelhante ao mostrado abaixo:
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp
A linha iface eth1 inet dhcp define que a configuração da interface eth1 será realizada
de forma dinâmica, com as configurações estabelecidas por um servidor DHCP
disponível no segmento de rede.
Vários endereços de rede podem ser estabelecidos a uma única inteface de rede. Para
isto é necessário a criação de aliases. Esta configuração é mostrada abaixo,
adicionando o endereço 192.168.10.3 à mesma interface de rede.
auto lo

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
35
Especializa Treinamentos <http:/ /www.especializa.com.br>

iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.10.2
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1

auto eth0:0
iface eth0:0 inet static
address 192.168.10.3
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
Após a configuração do arquivo /etc/network/interfaces é necessário reiniciar o serviço
da rede. Para isto execute o comando abaixo:

# /etc/init.d/networking restart
O arquivo /etc/hosts contém uma tabela de conversão de nome em IP. Este arquivo
possui prioridade nas pesquisas de resolução de nome. Então, mesmo que o host
esteja configurado com outro

127.0.0.1 localhost
192.168.10.2 sol sol.labespecializa.com.br

Uma máquina que possua mais de nome poderá ter estes nomes especificados na
mesma linha, como no exemplo mostrado acima. Observe que o host sol possui dois
nomes: sol e sol.labespecializa.com.br.
O arquivo /etc/resolv.conf são configurados quais servidores de DNS serão utilizados
para resolver nomes. Um exemplo deste arquivo é mostrado abaixo:
search labespecializa.com.br
nameserver 192.168.10.2
A diretiva search indica qual é o domínio padrão utilizado durante a tentativa de
resolução de um nome. Ele será utilizado caso o host não esteja cadastrado em
/etc/hosts e não tenha sido especificado o nome FQDN1.
A diretiva nameserver especifica quais ou quais servidores DNS serão utilizados para
resolução de nomes. Neste arquivo poderão especificadas até três entradas deste
tipo.

8.3 Configurando a Rede no RedHat/CentOS (persistente)


O objeto do nosso curso é a configuração do sistema Ubuntu, mas o aluno poderá
deparar-se com o sistema baseado em RedHat e precisar configurá-lo. Então, diante
desta possibilidade mostramos abaixo como configurar a rede em um sistema deste
tipo.

1 FQDN – Fully Qualified Domain Name

36 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

A configuração da rede em um sistema RedHat 1 é realizada editando arquivos de


configuração. No diretório /etc/sysconfig há um arquivo de nome network. Neste
arquivo há várias configurações, como NETWORKING, que define se a rede será
habilitada ou não. A diretiva HOSTNAME que define o hostname, o gateway também é
definido neste arquivo editando-se a diretiva GATEWAY, que também poderá ser
definido no arquivo de configuração da interface de rede. A diretiva NOZEROCONF,
quando ajustada em yes desabilita a configuração automática de rede sem a
utilização de servidores DHCP, o APIPA (Automatic Private IP Addressing).

# vi /etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=sol.labespecializa.com.br
GATEWAY=192.168.10.1
NOZEROCONF=yes
A configuração das interfaces de rede é realizado criando-se um arquivo para cada
interface. O nome do arquivo é formado por ifcfg-<nome_da_interface>. O conteúdo
do arquivo possui diretivas de configuração que definem o nome do dispositivo, o seu
endereço IP, máscara de rede, endereço de rede, broadcast, o gateway, caso já não o
tenha configurado no arquivo /etc/sysconfig/network e por fim, a diretiva ONBOOT que
indica se a interface será configurada automaticamente na inicialização.

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=192.168.10.2
NETMASK=255.255.255.0
NETWORK=192.168.10.0
BROADCAST=192.168.10.255
GATEWAY=192.168.10.1
ONBOOT=yes
Após a reconfiguração da rede é necessário reiniciar o serviço network.
# service network restart
O servidor de DNS e o nome do domínio de pesquisa, da mesma forma que no Ubuntu,
são definidos no arquivo /etc/resolv.conf e não é necessário reiniciar qualquer serviço
após a sua modificação.

Dica dos Especialistas


Sempre configure a rede editando os arquivos de configuração
adequados. A configuração da rede utilizando o arquivo
/etc/rc.local incluindo os comandos ifconfig e route é uma forma
suja de fazer esta configuração e poderá ocasionar problemas
quando algum serviço depender da rede já configurada.

1 http://www.redhat.com

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
37
Especializa Treinamentos <http:/ /www.especializa.com.br>

9 Gerenciamento de Pacotes
Pacotes são porções de software pré-compilados que estão prontos para serem
instalados em seu sistema. A utilização de pacotes dá ao administrador a comodidade
de não ter que compilar cada software que for utilizar em seu sistema. Ganhos em
segurança também são observados, uma vez que o mantenedor do pacote será
responsável por identificar o lançamento de correções de segurança liberados pelo
desenvolvedor do software e aplicá-las imediamente ao seu código fonte e liberar
uma versão compilada nos servidores repositórios da distribuição.
O gereciamento de pacotes é diferenciado dependendo da distribuição. As
distribuições baseadas em Debian possuem como gerenciador de pacotes e dpkg
(Debian Package Manager), já os baseados em RedHat utilizam o rpm (RPM Package
Manager). Os pacotes que foram criados com o dpkg possuem a extensão .deb e os
que foram criados utilizando o rpm possuem a extensão .rpm.
O Ubuntu, objeto do nosso curso, já que é baseado na distribuição Debian, utiliza
como gerenciador de pacotes o dpkg.

9.1 Gerenciamento de Pacotes no Ubuntu


O gerenciamento de pacotes no Debian utiliza o dpkg, o sistema de gerenciamento de
pacotes do Debian. A instalação de pacotes poderá ser realizada utilizando-se
diretamente o dpkg na linha de comando ou utilizando o APT, que facilita a procura e
instalação de pacotes, resolvendo suas dependências.
O apt possui um arquivo com a lista de repositório de pacotes que serão utilizados.
Este arquivo é /etc/apt/souces.list.
Cada linha deste arquivo de configuração identifica um repositório a ser utilizado pelo
gerneciador de pacotes.
A primeira coluna indica o tipo de pacotes disponível no repositório, a presença de
deb indica que os pacotes estão compilados e no formado do dpkg. Já a presença de
deb-src indica que o repositório possui pacotes fonte que são utilizados pelas
ferramentas de criação de pacotes do dpkg.
A segunda coluna possui o endereço do repositório, uma url.
A terceira e demais colunas indicam a seção do repositório. Na primeira linha do
arquivo abaixo temos as seções hardy, a versão do Ubuntu e as seções main e
restricted.
A seção main possui todos os pacotes considerados livres pela Debian Free Software
Guidelines.
A seção restricted possui softwares proprietários de distribuição gratuíta, como
drivers de dispositivos, por exemplo.
Existem ainda as seções universe e multiverse, que possuem softwares não
suportados pelo Ubuntu. O Ubuntu alerta ainda que estes softwares não terão
atualizações de segurança liberadas pelo time de segurança e também que estes
respositórios poderão conter softwares não-livres.

38 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Para adicionar uma mídia de CD ou DVD à lista de repositórios basta executar o


comando abaixo. Para isto não é necessária qualquer intervenção manual no arquivo
sources.list.
# apt-cdrom add

# vi /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://archive.ubuntu.com/ubuntu/ hardy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu


## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://archive.ubuntu.com/ubuntu/ hardy universe
deb-src http://archive.ubuntu.com/ubuntu/ hardy universe
deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu


## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu/ hardy multiverse
deb-src http://archive.ubuntu.com/ubuntu/ hardy multiverse
deb http://archive.ubuntu.com/ubuntu/ hardy-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates multiverse

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe
multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted
universe multiverse

## Uncomment the following two lines to add software from Canonical's


## 'partner' repository. This software is not part of Ubuntu, but is
## offered by Canonical and the respective vendors as a service to Ubuntu
## users.
# deb http://archive.canonical.com/ubuntu hardy partner
# deb-src http://archive.canonical.com/ubuntu hardy partner

deb http://security.ubuntu.com/ubuntu hardy-security main restricted

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
39
Especializa Treinamentos <http:/ /www.especializa.com.br>

deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted


deb http://security.ubuntu.com/ubuntu hardy-security universe
deb-src http://security.ubuntu.com/ubuntu hardy-security universe
deb http://security.ubuntu.com/ubuntu hardy-security multiverse
deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse

9.1.1 Usando o Synaptic


A instalação de pacotes em sistemas Debian e Ubuntu também poderá ser realizado
através de uma ferramenta gráfica bastante intuitiva, o Synaptic. Apesar do nome
difícil de pronunciar, pelo menos para nós brasileiros, a utilização do Synaptic é talvez
a forma mais simples de realizar a instalação de software em um sistema operacional.
Mais fácil até que o tão conhecido Next, Next e Finish. O Synaptic, por utilizar a
interface gráfica, só está disponível no Ubuntu na versão Desktop.
Para executar o Synaptic clique em Sistema, Administração e finalmente Gerenciador
de Pacotes Synaptic. Antes de abrir o software será solicitada a senha do usuário. Para
executar o Synaptic é necessário estar cadastrado como Administrador no Ubuntu.

Ilustração 2: Tela do Synaptic

9.1.2 Instalando software com o dpkg


A instalação de softwares quando dispomos do pacote deverá ser realizada utilizando-
se o comando dpkg. Com este comando é necessário realizar a dependência de
pacotes de forma manual. Assim quando desejarmos instalar algum pacote que
dependa de um outro, é necessário que seja instalado o segundo primeiro. Nos casos

40 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

em que dois ou três pacotes fazem parte da cadeia de dependência de uma pacote
tudo fica muito fácil, mas complexidade aumenta significativamente quando esta
quantidade de pacotes aumenta.
# dpkg [ opção ] nome_do_pacote_ou_arquivo

Opção Significado
-i ou --install Instala um pacote
-r ou --remove Faz a desinstalação de um pacote preservando-se os arquivos de
configuração.
-P ou --purge Faz a desisntalação completa de um pacote removendo seus arquivos de
configuração.
-s ou --status Mostra o status de um pacote.
-S ou --search Informa a qual pacote pertence um determinado arquivo.
Ex: dpkg --search apache2.conf
-l ou --list Lista pacotes e informa a sua situação
-L ou --listfiles Lista arquivos pertencentes a um pacote

9.1.3 Usando o APT


O apt é uma ferramenta em modo texto que tem a finalidade de facilitar o
gerenciamento pacotes .deb do sistema. Com ele é possível atualizar todos os pacotes
instalados, realizar busca por pacotes nos repositórios da distribuição e instalar e
remover pacotes.
Ele foi o primeiro software a resolver de forma automática a dependência entre os
pacotes. Foi desenvolvido pela distribuição Debian e foi adotado por algumas outras
distribuições, como a Conectiva, que uniu-se à Madrake e virou Mandriva, e também o
Ubuntu a distribuição baseada em Debian que conseguiu obter o maior sucesso.
O apt está disponível tanto no Ubuntu nas versões Desktop quanto na versão Server.

9.1.3.1 Atualizando o sistema


A atualização do sistema poderá ser executada utilizando-se o apt executando os
comandos abaixo:
# apt-get update ou aptitude update
# apt-get upgrade ou aptitude upgrade
Os comando apt-get/aptitude upgrade atualizam a base de dados local, sincronizando-
a com a disponível nos repositórios cadastrados. Isto é necessário, pois a cada nova
versão de pacote liberada uma nova base é disponibilida nos repositórios.
O segundo comando, o apt-get/aptitude upgrade executa a atualização de cada
pacote instalado no sistema para que fique igual às última versão disponível nos
repositórios.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
41
Especializa Treinamentos <http:/ /www.especializa.com.br>

9.1.3.2 Procurando por pacotes


A busca por pacotes para instalá-los no servidor é bastante simples. Não é necessário
buscá-los na internet através de sites para fazer o download e depois instalá-lo. O apt
possui a funcionalidade de procurar nos repositórios da distribuição pacotes de acordo
com uma pesquisa realizada nas descrições dos pacotes.
Como exemplo podemos buscar pelo pacote do apache, o servidor web mais utilizado
em toda a Internet.
# aptitude search apache
Uma lista de pacotes que façam referência ao apache será exibida na tela.
Uma vez localizado o nome do pacote desejado poderemos realizar a instalação.

9.1.3.3 Instalando pacotes


Para fazer a instalação de um pacote utilizando-se o apt é necessário apenas executar
o comando abaixo. O proprio gerenciador de pacotes será responsável por baixá-lo
dos repositórios, verificar e resolver todas as dependências e então realizar a
instalação.
# aptitude install apache2
Os arquivos baixados durante a instalação de um pacote ficarão disponíveis no
diretório /var/cache/apt/archive e poderão ser utilizados para instalação em outras
máquinas.
Para remover os pacotes deste diretório após a instalação execute o comando abaixo:
# aptitude clean
Para remover os pacotes antigos e permanecer somente com a última versão de cada
pacote execute:
# aptitude autoclean
Ter o pacote já disponível em /var/cache/apt/archives no momento da instalação faz
com que o arquivo não precise ser baixado novamente do repositório. Então use
aptitude autoclean se falta de espaço em disco não for o seu problema.

9.1.3.4 Removendo pacotes


A remoção de um pacote poderá ser feita de duas formas. A primeira, simplesmente
remoção, o pacote é removido e seus arquivos de configuração permanecem intactos
no disco. Isto possibilita que não seja necessária a realização de configurações
posteriormente quando for necessária a reinstalação deste pacote.
A outra forma disponível de remoção é a remoção completa onde todo o pacote é
removido do sistema, inclusive os arquivos de configuração. Isto é útil quando
desejamos desistalar algum software e queremos remover qualquer referência a este
pacote.
Remoção Normal de um pacote
# aptitude remove nome_do_pacote

42 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Remoção completa de um pacote


# aptitude remove --purge nome_do_pacote

9.2 Gerenciamento de Pacotes no RedHat


O sucesso do apt no Debian fez com que as outras distribuições melhorassem
também o seu gerenciamento de pacotes. A RedHat desenvolveu então o YUM. O uso
desta ferramenta é muito parecido com o apt.
Para usar o YUM no RedHat é necessário que a máquina esteja devidamente
cadastrada na RHN (RedHat Network). Para realizar o cadastro é necessário possuir a
licença do software. A distribuição CentOS é completamente compatível com o
RedHat e possui repositórios com acesso independente da aquisição de licenças.

9.2.1 Procurando por pacotes


Para procurar pacotes nos repositórios da distribuição RedHat ou CentOS utilize o
yum:
# yum search apache
Algumas referêcias sobre o apache serão exibidas. Diferentemente do Debian e
Ubuntu, nestas distribuições o nome do pacote que contém o servidor web Apache é
httpd.
Uma diferença notável entre o apt e o yum é que durante qualquer busca por pacotes
o yum para cada uma destas, abre conexão com o servidor repositório e baixa
novamente as descrições.

9.2.2 Instalando pacotes


Para instalar um novo pacote basta executar o comando abaixo:
# yum install nome_do_pacote

9.2.3 Removendo pacotes


Para remover um pacote do sistema execute o comando abaixo:
# yum remove nome_do_pacote

9.2.4 Usando o RPM


Quando temos em mãos o pacote a ser instalado não é possível instalá-lo através do
YUM. Para executarmos esta tarefa devemos realizar a instalação manual, utilizando o
comando rpm.
Para instalar um pacote com o rpm execute o comando abaixo:
# rpm -ivh nome_do_pacote.rpm

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
43
Especializa Treinamentos <http:/ /www.especializa.com.br>

Para listar todos os pacotes instalados execute o comando:


# rpm -qa
Para remover um pacote execute o comando:
# rpm -e nome_do_pacote

9.3 Instalação de software através código fonte


A instalação através do código fonte poderá variar de acordo com o software a ser
instalado. É comum que os membros do projeto incluam arquivos com instruções para
compilação e instalação. Estes arquivos normalmente possuem o nome INSTALL ou
README, mas outros nomes poderão ser utilizados.
A melhor forma de saber como compilar um determindo software é consultando sua
própria documentação através do site do projeto ou através dos arquivos incluídos no
código fonte.
Na marioria das vezes o procedimento de compilação e instalação resume-se à
execução de três comandos. O primeiro comando, o ./configure verifica se todas
ferramentas e bibliotecas necessárias à compilação estão disponíveis e também cria o
ambiente necessário para a compilação do software, gerando o arquivo Makefile com
as instruções para o make realizar a compilação. O segundo comando, o make, faz a
compilação do software, deixando a ponto de instalá-lo. O terceiro e último comando,
make install, faz a instalação do software nos diretórios.
# ./configure
# make
# make install
O software poderá exigir a definição de algumas opções, mas isto deverá ser
analisado caso à caso. Na maioria das vezes o local de instalação poderá ser
especificado durante a primeira etapa passando como parâmetro a flag --prefix.
# ./configure --prefix=/usr/local
No exemplo acima, após a execução de todos os passos da instalação o software
estará disponível no diretório /usr/local.

Dica dos Especialistas


Sempre que possível utilize softwares compilados pela sua
distribuição. Isto lhe dá a comodidade de atualizar os softwares
apenas executando um apt-get upgrade e apt-get upgrade ou
yum upgrade. Além disso os mantenedores de pacotes estão de
olho nas falhas de segurança e as correções estão rapidamente
disponíveis nos repositórios oficiais.

10 Sistemas de arquivos

44 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

10.1 Tipos de Sistemas de Arquivos


No Linux existem vários tipos de sistemas de arquivos que você poderá utilizar. A
escolha do tipo deve ser feita analisando o uso que você irá fazer do seu sistema. Para
cada uso existe um sistema de arquivos ideal. Neste capítulo iremos estudar as
principais características dos sistemas de arquivos EXT2, EXT3, XFS e ReiserFS.

10.1.1 EXT2
O sistema de arquivos EXT2 foi utilizado por muito tempo em sistemas Linux. O longo
tempo em funcionamento deu a este uma boa estabilidade e confiabilidade. Este
sistema de arquivos possuia

10.1.2 EXT3
O sistema de arquivos EXT3 é uma evolução do EXT2. Neste novo sistema de arquivos
foram ampliados os tamanhos máximos de arquivos e partição, bem como a inclusão
de recursos muito esperados como journal de dados.

Tamanho do Tamanho máximo de Tamanho máximo do


Bloco arquivo sistema de arquivos
1KiB 16GiB <2TiB
2KiB 256GiB <4TiB
4KiB 2TiB <8TiB
8KiB 2TiB <16TiB

Fonte Wikipedia1

10.1.3 XFS
O XFS é um sistema de arquivos que foi desenvolvido pela Silicon Graphics. Este
sistema de arquivos é conhecido pela sua alta performance. Uma das mais
interessantes características deste sistema de arquivos é o redimensionamento on-
line de partições, não sendo necessário parar os serviços em produção para
desmontar as partições antes de realizar o redimensionamento.

Atributo Valor
Tamanho máximo de arquivo 8 exabytes
Tamanho máximo do volume 16 exabytes

1 EXT3 na Wikipedia http://en.wikipedia.org/wiki/Ext3

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
45
Especializa Treinamentos <http:/ /www.especializa.com.br>

10.1.4 ReiserFS
O sistema de arquivos ReiserFS foi desenvolvido pela empresa Namesys liderada pelo
Hans Reiser, daí a origem do nome. Algumas grandes distribuições chegaram a
patrocinar o desenvolvimento deste sistema de arquivos e colocá-lo como opção
padrão nos seus instaladores, porém após a publicação da suspeita do Hans Reiser ter
assassinado sua esposa as empresas imediatamente retiraram a opção no instalador
como opção padrão o cortaram seus investimentos.
Nos dias atuais o desenvolvimento do ReiserFS está na versão 4.

Atributo Valor
Tamanho máximo de arquivo 8 TiB
Tamanho máximo do volume 16 TiB

10.2 Criando um Sistema de Arquivos


Para que seja possível que um sistema de arquivos seja criado é necessário
primeiramente que exista uma partição. A forma de criar uma partição pode variar
dependendo de como o sistema foi instalado, com ou sem LVM. Caso não tenha
optado por usar LVM esta tarefa poderá ser realizada utilizando o clássico fdisk ou o
cfdisk. O primeiro utiliza uma série de comandos realizados de forma interativa e o
segundo como uma espécie de menu, uma opção bem mais intuitiva que o fdisk. O
cfdisk se assemelha muito como o fdisk da Microsoft, com a vantagem de possuir
suporte a dezenas de tipos de sistemas de arquivos.
A criação de um sistema de arquivos em uma partição é realizada com o comando
mkfs.xxx, onde xxx corresponde ao tipo de sistema de arquivos desejado, conforme
exemplificada abaixo:
# mkfs.ext3 -j dispositivo
# mkfs.reiserfs dispositivo
# mkfs.xfs dispositivo

10.3 Montagem de Sistemas de Arquivos


Os dados armazenados em um sistema de arquivos só está visível após a sua
montagem em um diretório no sistema de arquivos atual, a este diretório damos o
nome de ponto de montagem.
# mkdir /ponto_de_montagem
# mount -t tipo_de_sistema_de_arquivos /dev/dispositivo /ponto_de_montagem
Ex:
# mkdir /joomladb
# mount -t xfs /dev/sda5 /joomladb

46 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

10.4 O fstab
O fstab é o arquivo que são inseridas todas os parâmetros sobre montagens de
dispositivos de armazenamento. Nele informamos quais as partições de um
determinado disco será montado, qual o tipo de sistema de arquivos utilizado, qual o
ponto de montagem, quais os parâmetros adicionais, se houve, inclusive se o
dispositivo será montando automaticamente durante a carga do sistema operacional.
Você poderá especificar um dispositivo no fstab através do seu nome ou através do
seu UUID. Para descobrir o UUID de um dado sistema de arquivos execute o comando
blkid.
# blkid /dev/sda5
/dev/sda5: UUID="eabca6fb-1691-4099-9f5d-530108348bf3" SEC_TYPE="ext2"
TYPE="ext3"
A vantagem de especificar uma partição desta forma é que a forma como um disco é
instalado na máquina a sua nomenclatura poderá ser alterada e especificando o UUID
a montagem será realizada com sucesso independente do nome do dispositivo.
# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sda9
UUID=2fabdf08-df1c-4d21-9b6d-16799143003b / xfs relatime 0 1
# /dev/sda8
UUID=3029adab-70d2-4224-804d-c378120a49b0 /boot ext3 relatime 0 2
# /dev/sda6
UUID=f8ffbc24-da3e-4821-ae7e-7b9b8fde3799 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/sda3 /mnt/windows ntfs defaults,uid=1002,gid=1002 0 0

O campo file system é especificado qual é o sistema de arquivos que será montado.
Poderá ser especificado pelo nome, ex /dev/sda9 ou com o seu UUID, ex
UUID=2fabdf08-df1c-4d21-9b6d-16799143003b. Para obter o UUID de uma partição
execute o comando blkid.
O campo mount point é o diretório onde este sistema de arquivos está visível após a
montagem.
O campo type indica o tipo de sistema de arquivos, ex: ext2, ext3, xfs, jfs, ntfs, vfat,
reiserfs ou outros suportado pela distribuição.
O campo options especifica quais serão as opções utilizadas na montagem deste
sistema de arquivos. O valor default corresponde aos valores rw, suid, dev, exec,
auto, nouser e async. O valor rw indica que o sistema de arquivos será montado com
permissão de leitura e escrita, suid indica que esta função poderá ser utilizada neste
sistema de arquivos, dev indica que dispositivos de bloco ou caractere serão
interpretados, exec indica que arquivos poderão ser executados, auto indica que o
sistema de arquivos será montado automaticamente durante o boot, nouser indica
que somente o usuário root poderá montá-lo e async indica que o IO será realizado de
forma assíncrona.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
47
Especializa Treinamentos <http:/ /www.especializa.com.br>

O campo dump indica se será feito backup do sistema de arquivos através do dump. O
valor '0' indica que o dump não será realizado neste sistema de arquivos e '1' indica
que ao executar o dump ele será realizado neste sistema de arquivos.
O campo pass indica se a ordem na qual será verificado o sistema de arquivos durante
a execução do chkfs.

11 Contas de usuários e grupos


Para acessar o sistema é necessário que cada usuário possua suas próprias
credenciais. Normalmente estas credenciais são materializadas em um cadastro de
usuários e senhas.
11.1 Adicionando contas de usuários
A criação de usuários poderá ser realizada utilizando os comandos adduser ou
useradd. O comando adduser é na verdade um script que solicita ao administrador
informações sobre o usuário a ser adicionado ao sistema e ao final realiza a criação
utilizando o comando useradd.
rute@noname:~$ sudo adduser lja
Adding user `lja' ...
Adding new group `lja' (1006) ...
Adding new user `lja' (1006) with group `lja' ...
Creating home directory `/home/lja' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for lja
Enter the new value, or press ENTER for the default
Full Name []: Linux Junior Administrator
Room Number []: 02
Work Phone []: 8134650032
Home Phone []:
Other []:
Is the information correct? [y/N] y

A criação de um usuário utilizando-se o comando useradd requer mais atenção do


administrador, porém como ele muito mais opções de criação estarão disponíveis. A
simples execução do comando useradd nome_do_usuario faria com que o home
directory não fosse criado e além do shell padrão seria o /bin/sh e não o /bin/bash com
desejado pela maioria dos usuários e administradores.
No exemplo abaixo iremos criar um usuário com as seguintes características:
Nome Completo: João Cabral de Melo Neto
Nome de usuário: joaoneto
Home directory: /home/joaoneto
Shell Padrão: /bin/bash
Grupo primário: joaoneto

48 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Grupos complementares: adm, dialout, fax, cdrom, floppy, tape,


audio, dip, video, plugdev, scanner e fuse.

# useradd -c “Joao Cabral de Melo Neto” -m -s /bin/bash -G


adm,dialout,fax,cdrom,floppy,tape,audio,dip,video,plugdev,scanner,fuse joaoneto

onde:
-c Comentário sobre o usuário. Normalmente o nome completo
-m Cria o home directory, caso não exista
-d Indica o home directory do usuário, se não for especificado será
/home/nome
-s Incida o shell, se não for especificado será utilizado /bin/sh
-g Indica o grupo primário do usuário
-G Grupos adicionais. Se vários, separe-os por vírgula

Quando um usuário é criado algumas entradas são adicionadas em alguns arquivos do


sistema. No arquivo passwd são incluídas informações como nome do usuário, seu
nome completo, seu home directory e o seu shell.
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
lja:x:1000:1000:Linux Junior Administrator:/home/lja:/bin/bash

Acima um trecho do arquivo /etc/passwd. Ele é organizado em colunas separadas por


':'. Na primeira coluna temos o username, que é o nome de usuário utilizado durante o
login. Na segunda coluna, teríamos a senha do usuário e quando o sistema está
utilizando senhas sombra (shadow passwords) é representado pelo caractere 'x'. Os
campos três e quatro representam respectivamente o UID e o GID do usuário. O
campo cinco contém informações sobre o usuário, normalmente o nome completo.
Este campo é conhecido como GECOS. O campo seis indica o home directory do
usuário e o sétimo e último campo indica o shell do usuário.
Como dito acima, quando o segundo campo possui a indicação 'x' a senha do usuário
será armazenada como senha sombra. Estas senhas estão armazenadas no arquivo
/etc/shadow. Sempre que um usuário é adicionado em um sistema que esteja
utilizando senhas sombras uma linha é adicionada. Abaixo um trecho deste arquivo:
# cat /etc/shadow
root:!:14126:0:99999:7:::
lja:$1$467/I3Dk$9vHONCwOtVdiDjMYJZ/TC.:14126:0:99999:7:::
O arquivo /etc/shadow também possui campos separados pelo caractere ':'. O
primeiro campo contém o username do usuário. O segundo campo contém senha do
usuário criptografada. O terceiro campo contém a quantidade de dias da última
modificação de senha desde 1 de janeiro de 1970. O quarto campo contém a idade
mínima da senha, este é o tempo mínimo que o usuário deverá aguardar para poder
fazer a modificação da senha.. O quinto campo é o tempo de vida máximo da senha.
O sexto campo é a quantidade de dias antes da expiração da senha que o usuário
deverá ser informado para alteração da senha. O sétimo campo é a quantidade de
dias após a senha ter expirado que o usuário será impedido de acessar o sistema. O
oitavo dias desde 1 de janeiro de 1970 que a conta do usuário está desabilitada. O
nono campo é reservado.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
49
Especializa Treinamentos <http:/ /www.especializa.com.br>

Apesar de ser possível configurar cada um destes campos editando diretamente o


arquivo shadow, existe uma ferramenta que auxilia este procedimento. Então
utilizando o comando chage você poderá definir a idade mínima e máxima da senha,
tempo de aviso de expiração da senha, etc.
# chage lja
Changing the aging information for lja
Enter the new value, or press ENTER for the default

Minimum Password Age [0]:


Maximum Password Age [99999]: 45
Last Password Change (YYYY-MM-DD) [2009-01-10]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]: 2009-12-31

Para aceitar o valor padão, indicado entre cochetes '[' e ']', basta pressionar Enter.
Verifique que após a execução deste comando os valores encontrados na linha do
arquivo shadow referente ao usuário lja foram alterados.

11.2 Removendo contas de usuários


Para remover um usuário use o comando userdel.
# userdel nome
onde:
-f Force. Apaga usuário mesmo que esteja logado e também o seu home
directory. Só usar em último caso, pode causar instabilidade no sistema.
-r Remove home directory.

11.3 Adicionando Grupos


Para adicionar um grupo ao sistema use o comando groupadd.
# groupadd nome_do_grupo
Cada usuário criado no sistema terá uma entrada no arquivo /etc/group. Na entrada
estarão definidos o nome do grupo, sua senha, seu GID e a lista de usuários que estão
neste grupo separados por vírgula ','.
# cat /etc/group
root:x:0:
admin:x:115:rute
lja:x:1000:
Para adicionar um usuário existente a um grupo também já existente procure o grupo
no arquivo /etc/group e adicione o seu username ao final da linha. Nos grupos que
contém vários usuários seus usernames são separados por vírgula ','.
Alternativamente você também poderá fazê-lo pela linha de comando, executando o
comando usermod.
# usermod -a -G <grupo> <username>

Dica dos Especialistas


Tome muito cuidado ao incluir um usuário em um group através
do comando usermod. A omissão da opção -a fará com que o

50 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

usuário seja removido de todos os grupos ao qual ele faz parte e


adicionado apenas no grupo informado na opção -G.
12 Permissões de Arquivos e Diretórios
As permissões são direitos que usuário possui sobre um determinado recurso. Nos
sistemas *nix em geral as permissões básicas são leitura, escrita e execução.

12.1 Permissões comuns


As permissões em um sistema baseado em Unix são concedidas a três atores: o
usuário proprietário (u – user), o grupo (g – group) e outros usuários (o – other).
Abaixo são exibidas os possíveis resultados encontrados na resposta do comando ls.
Na resposta do comando a primeira informação exibida diz respeito ao tipo de entrada
a árvore de diretórios e suas permissões.
As permissões são aplicadas a três atores do sistema: o usuário proprietário, o grupo
e os demais usuários.

tipo u g o
- r w x r w x r w x

onde:
u – usuário (user)
g – grupo (group)
o – outros (others)
r – leitura (read)
w – escrita (write)
x – execução (execute)

A permissão de leitura 'r' em um aquivo dá direito ao usuário de verificar o seu


conteúdo, mas não de alterá-lo. A permissão de escrita 'w' dá o direito de modificar o
arquivo e a permissão de execução 'x' dá o direito do usuário executá-lo. Cada
comando do sistema é um arquivo e este deverá ter a permissão de execução. Veja
abaixo as permissões do arquivo /bin/ls, que é o comando ls.
$ ls -l /bin/ls
-rwxr-xr-x 1 root root 92376 2008-04-04 03:42 /bin/ls
Observe que o arquivo /bin/ls pertence ao usuário e grupo root. Para o usuário
proprietário foi concedida a permissão de leitura, escrita e execução. Para o grupo
proprietário, coincidentemente também root a permissão é de apenas leitura e
execução e para os demais usuários a permissão, neste caso coincide com as
permissões do grupo, ou seja, leitura e execução.
Para trocar as permissões de um arquivo ou diretório é utilizado o comando chmod.
Este comando pode ser utilizado passando as permissões em octal ou literal. Para
ajustarmos as permissões utilizando a forma octal devemos convertê-las
primeiramente para representação binária. Para isto, nas permissões, onde
encontrarmos as letras 'r', 'w' ou 'x' as substituiremos por '1' e onde houver o

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
51
Especializa Treinamentos <http:/ /www.especializa.com.br>

caractere '-' o substituiremos por '0'. Em seguinda formaremos grupos de três bits e
os converteremos para a representação octal.
Ex:
r w x r - x r - x
1 1 1 1 0 1 1 0 1
7 5 5

Para ajustarmos as permissões para a mostrada acima devemos executar o seguinte


comando:
# chmod 755 <arquivo_ou_diretório>

Outra forma de executarmos o ajuste das permissões é a utilização da forma literal.


Assim utilizaremos somente as letras que indicam usuário, group e outros adicionados
das permissões r, w ou x. Abaixo um exemplo desta forma de ajustar permissões:
Ex:
u g o
r w x r - x r - x

# chmod u=rwx,go=rx <arquivo_ou_diretório>

Por padrão o kernel grava diretórios com a permissão 0777 e arquivos com a
permissão 0666. Mas se você já observou os diretórios quando criados possuem a
permissão 0755 e os aquivos 0644. Isto se deve ao uso de uma máscara, que faz os
devidos ajustes para tornar o sistema mais seguro. Esta máscara faz uma subtração
em cada octeto das permissões padrão dos arquivo diretórios no momento da sua
criação.

Para diretorios:
0777 - 0022 = 0755

Para arquivos:
0666 - 0022 = 0644

A máscara padrão no sistema linux é 0022. A máscara poderá ser visualizada


executando-se o comando umask. A máscara padrão de todos os usuários do sistema
é definida o arquivo /etc/profile, que é executado quando os usuários efetuam logon
no sistema. Para definir uma máscara para um dado usuário configure o
arquivo .profile.
$ umask
0022

52 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

12.2 Permissões especiais


Além das permissões já mostradas, existem ainda algumas permissões especiais, são
elas: SUID, SGID e Sticky bit

12.2.1 SUID
Esta permissão aplica-se somente a arquivos. Com esta configuração ativa um
executável compilado, somente compilados, são executados com os privilégios do seu
proprietário, desprezando-se neste caso as permissões do usuário executor. O
comando ping é um executável do sistema que possui esta característica. A existência
desta permissão configurada em um arquivo no sistema é observada pela substituição
do caractere 'x' das permissões do usuário proprietário pelo caractere 's'. A
inexistência de permissão de execução pelo proprietário altera a representação
substituindo-se o caractere '-' pelo caractere 'S', em maiúsculo. A existência deste
caractere em maiúsculo alerta o administrador para uma falha de configuração, pois
conceder permissão de execução como o proprietário dono do arquivo e se este não
tiver permissão de execução não tem sentido algum.

$ ls -l /bin/ping
-rwsr-xr-x 1 root root 30856 2007-12-10 14:33 /bin/ping

Para adicionar SUID em um arquivo execute o comando abaixo:


$ chmod u+s nome_do_arquivo
Para adicionar permissão de execução e SUID ao mesmo tempo:
$ chmod u+xs nome_do_arquivo

12.2.2 SGID
Esta permissão funciona exatamente igual à permissão SUID quando configurada em
arquivos. Ao contrário do SUID, o SGID possui função quando configurado em
diretórios
Quando configurado em um diretório, o SGID faz com que arquivos e diretórios criados
dentro deste possuam o grupo proprietário igual ao do diretório, desprezando-se neste
caso o grupo primário do usuário criador do arquivo. A existência desta permissão
configurada em um arquivo no sistema é observada pela substituição do caractere 'x'
das permissões do grupo proprietário pelo caractere 's'. A inexistência de permissão
de execução pelo grupo proprietário altera a representação substituindo-se o
caractere '-' pelo caractere 'S', em maiúsculo.
Para adicionar GUID em um arquivo ou diretório execute:
$ chmod g+s nome_do_arquivo_ou_diretório

12.2.3 Sticky bit


Com esta permissão concedida em arquivos, o kernel é instruído a não remover o
programa da memória após concluir a sua execução. Isto aumentada a performance

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
53
Especializa Treinamentos <http:/ /www.especializa.com.br>

de um programa na execução de tarefas repetitivas, mas esta funcionalidade está


presente nas versões mais recentes do kernel sem a necessidade de conceder esta
permissão, enão podemos dizer que ela está obsoleta.
Com esta permissão em um diretório, mesmo que ele esteja concedendo permissões
para leitura e escrita, que permitiria um usuário apagar o seu conteúdo, somente o
proprietário de arquivos e diretórios contidos neste diretório poderia apagá-los.
Quando o sticky bit está ativo em um diretório a letra 'x' do campo others é
substituído pela letra 't'. A usência da permissão de execução neste diretório levaria a
substituição do caractere '-' pela letra 'T', em maiúsculo.
No exemplo abaixo
# ls -ld /tmp
drwxrwxrwt 18 root root 4096 2008-12-07 13:32 /tmp
Para adicionar sticky bit em um diretório execute o comando abaixo:
$ chmod o+t nome_do_diretório

Permissão Arquivos Diretórios


SUID Sim Não
(executáveis compilados)
SGID Sim Sim
(executáveis compilados)
Sticky bit Sim (porém ultrapassado) Sim

13 Arquivos, Diretórios, Links e dispositivos


Você já deve ter percebido que todos os dispositivos do seu sistema como portas
seriais, usb, terminais, discos, etc. Os dispositivos do sistema podem ser identificados
pelo primeiro campo do comando ls -l.

Tipo Letra Exemplo


Arquivo - /etc/passwd
Bloco b /dev/sda
Caractere c /dev/ttyS0
Diretório d /etc
Link l /etc/rc2.d/S20cups
Pipe (FIFO) p /dev/initctl

13.1 Dispositivos de caractere


Dispositivos de caractere como seriais, modens e terminais são identificados pelo
caractere 'c'.
# ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 2009-02-25 10:35 /dev/ttyS0

54 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

13.2 Discos
Os discos possuem uma variação na nomenclatura dependendo da tecnologia
utilizada. Os discos mais comuns até bem pouco tempo eram de tecnologia IDE. Estes
discos são apresentados ao sistema como /dev/hdX, onde X pode assumir as letras a,
b, c ou d variando com a controladora IDE primária e secundária e também se o
dispositivo está configurado como master ou slave.

Controladora Jumper Dispositivo


Primária Master /dev/hda
Primária Slave /dev/hdb
Secundária Master /dev/hdc
Secundária Slave /dev/hdd

Já os discos SATA e SCSI possuem nomenclatura diferente. Nesta tecnologia não há


controladora primária, secundária, nem master e slave. A cada dispositivo SATA ou
SCSI é atribuído nome /dev/sdX. Onde X varia a partir de a na sequência em que os
dispositivos são detectados pelo sistema e também com os jumpers encontrados nos
discos.
Dispositivos de armazenamento como discos internos ou externos, pendrives e
memórias flash são identificados pelo caractere 'b'.

$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 2009-02-25 10:35 /dev/sda

13.3 Links
Existem dois tipos de links: os simbólicos e os hard links.
Um link simbólico é simplesmente um atalho para o arquivo original. Após o
apagamento do arquivo original o link simbólico fica perdido, apontando para um
arquivo inexistente.
Já um hard link é uma nova entrada na tabela de inodes do sistema de arquivos, o que
significa que após o apagamento do arquivo original não há qualquer mudança no
comportamento do link. Na verdade um hard link não é um link, o efetio observado é
de um único arquivo que possui dois nomes.

14 Gerenciamento de processos
Cada processo em execução no sistema possui um identificador único. Através destes
identificadores nós podemos executar ações nestes, como aumentar ou diminuir sua
prioridade, terminar o processo e outras ações.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
55
Especializa Treinamentos <http:/ /www.especializa.com.br>

Veremos a alterações destes parâmetros utilizaremos algumas ferramentas


disponíveis em todas as grandes distribuições de Linux existentes na atualidade.

14.1 top
O top é um software que dá uma boa visão sobre os processos que estão execução.
Uma tela é exibida mostrando informações relevantes como: o tempo que o sistema
operacional está em execução, a quantidade de usuários conectados, a média de
carga, o uso da memória RAM e swap, além dos processos.
Para cada processo é exibido o seu PID (Process ID), o proprietário, o uso de memória,
CPU, o tempo de CPU e algumas outras informações.
Através do top também é possível interagir com os processos, como trocar a
prioridade ou encerrar (matar).
As colunas exibidas podem ser reorganizadas, também é possível definir qual será a
coluna pela qual os processos são classificados, por padrão os processos são
classificados pelo uso de CPU. Todas a interação com top é realizada pressionando-se
as teclas de função. Para consultar as teclas de função do top pressione a tecla 'h'.
Para sair do top pressione a tecla 'q'.

Ilustração 3: Tela do comando top

Abaixo será apresentada uma tabela com algumas teclas de função do top.

56 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

Tecla Função
q quit - Sair
h help - Ajuda
k kill - Encerrar (matar) um processo
r renice - Trocar a prioridade de um
processo
u user - Exibir somente processos
pertencentes a um determinado usuário

14.2 ps
O comando ps é utilizado para visualizar processos em execução. Diferente do top ele
não possui uma interface amigável, com os processos são apresentados na tela como
uma tabela estática. Com este comando é possível apenas visualizar os processos em
execução e para interagir com eles é necessária a utilização de comandos externos ao
ps, como o kill, killall e renice.

$ ps aux

14.3 kill
O comando kill é utilizado para encerrar processos em execução.

14.4 killall
O comando killall assemelha-se muito ao kill. Mas a diferença está na forma de
especificarmos qual será o processo a ser finalizado. Com ele passamos o nome do
processo que desejamos encerrar, e não o seu PID.

$ killall firefox

14.5 nice e renice


Os comandos nice e renice são utilizados para definir a prioridade de execução de
uma programa.
A diferença básica entre os dois comandos é que o primeiro define a prioridade de um
processo no momento do seu início, já o segundo redefine a prioridade de um
processo já execução a qualquer momento.
Abaixo iniciamos a execução do script de nome backup_database.sh com a prioridade
de execução 15.
$ nice -n 15 /usr/local/bin/backup_database.sh

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
57
Especializa Treinamentos <http:/ /www.especializa.com.br>

Aqui aumentamos em dez pontos a prioridade do processo cujo PID é 7135.


$ renice +10 7135
Os valores de prioridade de execução variam de -20 (prioridade mínima) até 20
(prioridade máxima).

15 Introdução ao Shell Script


O que é um shell script?
Um script é um procedimento realizado executando sequências de comandos do shell.
De uma forma bem simples podemos dizer que o script em bash é um arquivo
contendo todos os comandos executariamos para executar uma determinada tarefa.
Ele pode ser utilizado para automatizar praticamente qualquer procedimento
realizado manualmente, desde os procedimentos mais simples até os mais
complexos.
Para isto um shell script utiliza-se de recursos de programação. Um script deste tipo
utiliza variáveis, testes condicionais, laços.

15.1 Estrutura de script

#!/bin/bash <== Interpretador de comandos


# Comentário sobre o script <== Comentário
#

TMP=/tmp/script1 <== Definição de variáveis globais


SAIDA=${TMP}/para_enviar

function envia { <== Funções

if [ ! -d $SAIDA ] <== Código principal


then
mkdir $SAIDA
fi

. . .

15.2 Variáveis
Variáveis são recursos utilizados pelo programador para fazer referência a dados que
podem ser alterados durante a execução do programa.

SERVIDOR=10.0.0.12 <== Variável SERVIDOR


usuario=aluno <== Variável usuario

Uma variável poderá ser lida durante a execução do programa com o comando read.

58 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

echo -n “Digite o login desejado: “


read usuario

16 Agendamento de tarefas
Agora que você construiu um script chegou a hora de agendar a sua execução. Este
agendamento poderá ser realizado utilizando-se a crontab ou o anacron. A diferença
básica entre utilizar o primeiro ou o segundo é que no primeiro o administrador
escolhe exatamente quando a tarefa deverá ser executada, já no segundo a
administrador escolhe quanto tempo decorrido de uso as tarefas poderão ser
executadas.

16.1 cron
Como foi dito anteriormente, com o cron o administrador irá escolher exatamente o
horário que suas tarefas serão executadas. Neste caso podemos agendar a tarefa
editandos-se a crontab do usuário ou dispondo o script nos diretórios cron.hourly,
cron.daily, cron.weekly ou cron.monthly. Abaixo iremos detalhar mais como fazer um
agendamento desta forma.

$ crontab opção
onde opção:
-l Lista a crontab do usuário
-e Edita a crontab do usuário

$ crontab -l
# m h dom mon dow command
30 2 * * 0 /usr/local/bin/backup.sh <== Todos os domingos às 2h30min
30 0 1 * * /usr/local/bin/envia_relatorio.sh <== Todo dia 1º à 0h30min
*/5 * * * * /usr/local/bin/sincronismo.sh <== A cada 5 minutos

onde:
m minuto (0-59)
h hora (0-23)
dom dia do mês (1-31)
mon mês (1-12)
dow dia da semana (0-domingo,
1-segunda,
2-terça,
3-quarta,
4-quinta,
5-sexta,
6-sábado e
7-domingo)

Existem ainda os diretórios em /etc. Para usá-los basta colocar os scripts ou links em
um dos diretórios abaixo conforme desejado:

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
59
Especializa Treinamentos <http:/ /www.especializa.com.br>

/etc/cron.hourly a cada hora (minuto 17)


/etc/cron.daily diariamente (6h25min)
/etc/cron.weekly semanalmente (domingo 6h47min)
/etc/cron.monthly mensalmente (dia1º de cada mês, às 6h25min)

16.2 anacron
Como vimos anteriormente, o cron assume que a máquina estará ligada no momento
da execução da tarefa, isto é perfeitamente aceitável para servidores, que
normalmente ficam ligados continuamente. Quando pretendemos fazer agendamento
de tarefas em Desktops nos deparamos com o problema de não sabermos com
segurança quais os horários que o equipamento estará ligado e pronto para executar
as tarefas agendadas.
O anacron veio para resolver este problema, ele não assume que a máquina está
ligada continuamente. Com a periodicidade especificada em dias sempre verifica
quando foi a última execução de uma determinada tarefa e, quando a máquina estiver
disponível, mesmo que ultrapassado o tempo especificado, a tarefa agendada será
executada.
O anacron lê as configurações armazenadas em /etc/anacrontab. Abaixo é mostrado o
conteúdo deste arquivo de configuração.

$ cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

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

# These replace cron's entries


1 5 cron.daily nice run-parts --report
/etc/cron.daily
7 10 cron.weekly nice run-parts --report
/etc/cron.weekly
@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly
A primeira coluna especifica a periocidade, em dias, da execução da tarefa. A segunda
coluna indica o atrazo da execução. A terceira coluna um identificador único e em
seguida o comando a ser executado.

17 Usando seu servidor


Já vimos como instalar e configurar o seu servidor, agora chegou a hora de usar o
servidor para prover algum serviço na rede local.

17.1 Configurando um servidor proxy


Neste momento iremos fazer a configuração de um servidor proxy.
Para instalar o squid use o comando aptitude conforme abaixo:

60 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

#aptitude install squid3

Após instalado o servidor squid permite o acesso à internet somente ao localhost.


Para prover o serviço de proxy para todos os hosts da rede local é necessário ajustar a
configuração do squid no arquivo /etc/squid3/squid.conf.
Os ajustes necessário são:
– Definir o endereço da rede local na acl localnet e descomentar a referida linha;
– Descomentar a linha http_access allow localnet
Após este procedimento é necessário reiniciar o serviço squid3 executando o
comando abaixo:
# /etc/init.d/squid3 restart
Para reiniciar rapidamente use o parâmetro force-reload, pois o parâmetro restart
aguarda 30 segundos para que as conexões em andamento possam ser concluídas.
Os logs de acesso podem ser visualizados no arquivo /var/log/squid3/access.log.

17.2 Configurando um servidor de arquivos


Nesta seção iremos configurar um servidor samba para compartilhar um diretório no
servidor com máquinas windows. A configuração que será realizada será o mais
simples possível. Não serão estabelecidos controles de acesso ou qualquer
configuração mais elaborada.
Para instalar o samba é necessário executar o comando abaixo:
# aptitude install samba
Após a instalação o samba estará pronto para ser utilizado. O arquivo de configuração
do samba é o smb.conf e encontra-se no diretório /etc/samba. Para adicionar um
compartilhamento para disponbilizar softwares para instalação através da rede, por
exemplo, será necessário inserir algumas linhas no arquivo de configuração.
Antes de mais nada é necessário que o diretório que será compartilhado exista no
servidor. Então vamos criar um diretório /softwares. O nome do compartilhamento
também se chamará softwares e qualquer usuário da rede terá permissão de apenas
leitura no conteúdo deste compartilhamento.
# mkdir /softwares
Será necessário também alterar o arquivo smb.conf. Procure pela linha “; security =
user” e altere conforme abaixo. Insira o compartilhamento softwares ao final do
arquivo.

# vi /etc/samba/smb.conf
[global]
security = share

[softwares]
comment = Softwares para windows
path = /softwares

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
61
Especializa Treinamentos <http:/ /www.especializa.com.br>

read only = yes


guest ok = yes
Após a configuração é necessário reiniciar o serviço do samba executando o comando
abaixo:

# /etc/init.d/samba restart
Agora o compartilhamento softwares poderá ser acessador através de qualquer
máquina windows existente na rede.

18 Consulta de comandos
Nesta seção alguns dos comandos mais importantes para um administrador. Alguns
deles serão utilizados durante as aulas, na execução dos laboratórios. A maioria
destes comandos são alvo de questões nas certificações LPI, então se você pretende
certificar-se estude cada um deles e aprenda as opções mais utilizadas. Para cada
comando serão listadas as opções mais utilizadas.

18.1 . ou source
Executa um script no shell atual.
Ex:
$ . /caminho/script.sh
source /caminho/script.sh

18.2 apt-cache
Busca por pacotes através das descrições dos pacotes.

# apt-cache search apache


Mostra a descrição de um determinado pacote.

# apt-cache show apache2


Package: apache2
Priority: optional
Section: web
Installed-Size: 100
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
Architecture: all
Version: 2.2.9-7ubuntu3
Depends: apache2-mpm-worker (>= 2.2.9-7ubuntu3) | apache2-mpm-prefork (>=
2.2.9-7ubuntu3) | apache2-mpm-event (>= 2.2.9-7ubuntu3)
Filename: pool/main/a/apache2/apache2_2.2.9-7ubuntu3_all.deb
Size: 44748
MD5sum: 049db270f8622573b300359f1e11c0d4
SHA1: 482078fb928541ca78fb8b9de9f995b329381f4f

62 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

SHA256: 37c33ba41151b142afbfebc2cab89028a7d95ef1d54a6736cea61fdcf289334a
Description: Apache HTTP Server metapackage
The Apache Software Foundation's goal is to build a secure, efficient and
extensible HTTP server as standards-compliant open source software. The
result has long been the number one web server on the Internet.
.
It features support for HTTPS, virtual hosting, CGI, SSI, IPv6, easy
scripting and database integration, request/response filtering, many
flexible authentication schemes, and more.
Homepage: http://httpd.apache.org/
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu
Task: lamp-server

18.3 apt-get
Instala e remove software
Usage: apt-get [options] command
apt-get [options] install|remove pkg1 [pkg2 ...]
apt-get [options] source pkg1 [pkg2 ...]

Commands:
update - Retrieve new lists of packages
upgrade - Perform an upgrade
install - Install new packages (pkg is libc6 not libc6.deb)
remove - Remove packages
autoremove - Remove automatically all unused packages
purge - Remove and purge packages
source - Download source archives
build-dep - Configure build-dependencies for source packages
dist-upgrade - Distribution upgrade, see apt-get(8)
dselect-upgrade - Follow dselect selections
clean - Erase downloaded archive files
autoclean - Erase old downloaded archive files
check - Verify that there are no broken dependencies

Options:

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
63
Especializa Treinamentos <http:/ /www.especializa.com.br>

-h This help text.


-q Loggable output - no progress indicator
-y Assume Yes to all queries and do not prompt
-f Attempt to correct a system with broken dependencies in place

apt-get update – atualiza informações sobre pacotes disponíveis nos repositórios


apt-get upgrade
apt-get install apache2
apt-get remove apache2
apt-get clean
apt-get auto-clean

18.4 bash
Executa um shell script
$ bash script1
-x ==> executa em modo verbose.
$ bash -x script1

18.5 bzip2
Compacta arquivos.
# bzip2 arquivo

18.6 cat
Exibe na tela o conteúdo de um arquivo.
Ex: cat /etc/passwd

18.7 chgrp
Troca o grupo de um arquivo ou diretório.
# chgrp [GRUPO] arquivo
# chgrp root arq1

18.8 chmod
Altera permissões.
# chmod [PERMISSÃO] arquivo

64 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

# chmod 755 arq1


# chmod u=rwx,go=rx arq1

18.9 chown
Altera o proprietário de um arquivo ou diretório.
# chown [PROPRIETÁRIO] arquivo
# chown aluno arq1

18.10 df
Exibe informações sobre o uso do sistema de arquivos.
Opções mais utilizadas:
-h – converte para KB, MB, GB, TB
-i – exibe inodes
$ df -h
$ df -i

18.11 dpkg
Gerenciador de pacotes das distribuições baseadas em Debian.
# dpkg [OPÇÃO] pacote
Opções mais utilizadas:
-i, --install – instala um pacote
-r, --remove – remove (desinstala) um pacote
-P, --purge – remove (desinstala) removendo arquivos de configuração
-l, --list – lista pacotes instalados
-L, --list-files – lista arquivos de um pacote instalado
-S, --search – procura por pacotes que contenham um determinado arquivo

# dpkg -i php-doc_20070501-1_all.deb
# dpkg -r php-doc
# dpkg -S smb.conf
# dpkg -L xterm

18.12 echo
Exibe um texto ou o conteúdo de uma variável na tela.
Opções: -n Não vai para a próxima linha após mostrar na tela.
Ex: echo -n “Iniciando backup: “

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
65
Especializa Treinamentos <http:/ /www.especializa.com.br>

echo “Concluido.”

18.13 env
Mostra o conteúdo das variáveis de ambiente.
Ex: env

18.14 export
Exporta uma variável de ambiente
export DISPLAY=10.0.14.27:0

18.15 fdisk
Particiona um disco rígido.
# fdisk /dev/sda

18.16 file
Exibe o tipo de um arquivo.
$ file dsc06482.jpg
dsc06482.jpg: JPEG image data, EXIF standard 2.2

18.17 find
Realiza busca em uma árvore de diretórios.
$ find /home/kleber -type f -ctime +7

18.18 grep
Exibe linhas que coincidem com o critério de busca.
$ gzip aluno /etc/passwd <== Exibe linhas que contenham aluno em /etc/passwd
$ cat /etc/passwd | grep aluno <== O mesmo que a linha anterior

18.19 gzip
Compacta arquivos.
$ gzip arquivo1

18.20 gunzip
Descompacta arquivos que foram compactados com o comando gzip.
$ gunzip arquivo1.gz

66 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

18.21 halt
Desliga o sistema
Exemplo:
# halt

18.22 head
Exibe as primeiras dez linha de um arquivo.
Exemplo:
$ head /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh

18.23 history
Exibe o histório de comandos do usuário corrente
opções: -c – limpa histórico
Exemplos:
$ history
1 ls
2 cat /etc/passwd

$ history -c

18.24 kill
Encerra (mata) um processo
Opções mais utilizadas:
-15 – encerra um processo
-9 – mata o processo
Exemplo:
$ kill -9 1728

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
67
Especializa Treinamentos <http:/ /www.especializa.com.br>

18.25 locate
Localiza arquivos ou diretório. É necessário que a base esteja atualizada. Para
atualizar a base execute 'updatedb'.
$ locate passwd

18.26 ls
Lista um diretório. Na listagem são exibidos arquivos, diretórios, links, dispositivos de
caracte, dispositivos de bloco e pipes.
Opções mais utilizadas:
-l – lista longa
-h – transforma para KB, MB, GB e TB
-a – exibe todos os arquivos, inclusive ocultos
-t – classifica pela data de modificação
-r – inverte o critério de classficação
Exemplo:
$ ls -la
drwxr-xr-x 2 kleber kleber 4096 2009-04-06 23:30 Documents
-rw-r--r-- 1 kleber kleber 1969834 2009-02-01 11:45 dsc06482.jpg

18.27 lsmod
Lista os módulos carregados
$ lsmod
Module Size Used by
wlan_ccmp 15104 2
via 49280 0
drm 86056 1 via
af_packet 25728 2
binfmt_misc 16904 1
bridge 56980 0
stp 10628 1 bridge

18.28 lspci
Lista os dispositivos de hardware conectados ao sistema
$ lspci
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237A PCI to ISA Bridge
00:11.7 Host bridge: VIA Technologies, Inc. VT8251 Ultra VLINK Controller
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 7c)
00:13.0 PCI bridge: VIA Technologies, Inc. VT8237A Host Bridge
00:13.1 PCI bridge: VIA Technologies, Inc. VT8237A PCI to PCI Bridge
01:00.0 VGA compatible controller: VIA Technologies, Inc. CN896/VN896/P4M900
[Chrome 9 HC] (rev 01)
04:01.0 Audio device: VIA Technologies, Inc. VT1708/A [Azalia HDAC] (VIA High
Definition Audio Controller) (rev 10)

68 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

05:01.0 Ethernet controller: Atheros Communications Inc. AR2413 802.11bg NIC


(rev 01)

18.29 ps
Exibe processos em execução
$ ps aux
kleber 6876 0.0 1.0 32432 9700 ? Sl 14:05 0:00 /usr/lib/evolut
kleber 6981 0.0 0.3 9256 3524 ? S 14:05 0:00 /usr/lib/gnome-
kleber 6982 0.0 1.0 37112 9204 ? S 14:05 0:01 python /usr/bin
postfix 7080 0.0 0.1 5800 1692 ? S 14:05 0:00 qmgr -l -t fifo
kleber 7089 0.0 1.5 23720 13616 ? S 14:05 0:00 /usr/lib/notifi
ntp 7206 0.0 0.1 4272 1216 ? Ss 14:05 0:00 /usr/sbin/ntpd
kleber 7258 5.7 16.4 255160 148348 ? Sl 14:06 7:11 /usr/lib/firefo
kleber 7591 2.1 9.4 208944 85176 ? Sl 14:22 2:20 /usr/lib/openof
kleber 7738 0.0 1.8 26404 16680 ? S 14:40 0:01 gcalctool

18.30 pwd
Exibe o diretório atual
$ pwd
/home/kleber

18.31 man
Exibe a página de manual
$ man crontab

18.32 mkdir
Cria diretórios
mkdir /home/kleber/especializa
mkdir ~/especializa
mkdir especializa

18.33 mkfs
Cria e formata um sitema de arquivos.
# mkfs.ext3 -j /dev/hda5

18.34 mount
Monta um sistema de arquivos.
# mount /dev/hda5 /dados

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
69
Especializa Treinamentos <http:/ /www.especializa.com.br>

18.35 mv
Move e/ou renomeia arquivos ou diretórios.
$ mv arq1 especializa/linux/aula1
$ mv arq1 arq2

18.36 rpm
Gerencia pacotes em sistemas baseados em RedHat.
# rpm -i pacote
# rpm -e pacote

18.37 rm
Apaga arquivos e diretórios
$ rm arq1 arq2 arq??
Opções mais utilizadas:
-r – recursive. Apaga diretório e arquivos
-f – foce. Não solicita confirmação antes de apagar

18.38 rmdir
Apaga diretórios vazios
$ rm especializa

18.39 shutdown
Desliga ou reinicia o sistema.
# shutdown -r now
# shutdown -h now

18.40 tail
Exibe as dez últimas linhas de um arquivo.
Opções frequentemente utilizadas:
-n <numero> Quantidades de linhas. Se não informado o padrão é 10.
-f Continua mostrando as últimas linhas até que o usuário cancele
utilizanco Ctrl+C.

Ex: tail -n 10 /var/log/messages


tail -f /var/log/messages

70 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

18.41 tar
Empacota arquivos ou diretórios. Pode ser utilizado para compactar com o uso de
compactadores externos, como o gzip e bzip2.
$ tar [opções] arquivo_de_saida diretorio_arquivo_entrada

# tar cvf arquivo1.tar dir1 dir2 <== cria pacote arquivo1.tar com os diretórios
dir1 e dir2
# tar xvf arquivo1.tar <== extrai conteúdo de arquivo1.tar
# tar zcvf arquivo1.tar.gz dir1 <== cria pacote compactado com gzip
arquivo1.tar.gz com os diretórios dir1 e dir2
Onde opções pode ser:
z – compacta com gzip
j – compacta com bzip2
c – cria pacote
x – extrai pacote
v – modo verbose
f – indica que o nome do arquivo será fornecido

18.42 top
Gerenciador de processos.
$ top

18.43 touch
Cria arquivo vazio ou atualiza hora de modificação e acesso, caso exista.
$ touch /tmp/arq1

18.44 uniq
Exibe o conteúdo de um arquivo sem repetir linhas iguais.
$ uniq /caminho/arquivo

18.45 umount
Desmonta um sistema de arquivos
# umount /dados

18.46 uname
Exibe informações sobre o kernel em execução.
Usage: uname [OPÇÃO]...
Exibe certas informações do sistema. Sem opção é o mêsmo que -s.

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
71
Especializa Treinamentos <http:/ /www.especializa.com.br>

-a, --all exibe todas as informações


-r, --kernel-release exibe a release do kernel
-v, --kernel-version exibe a versão do kernel
--help display this help and exit
--version output version information and exit

18.47 updatedb
Atualiza banco de dados para uso do locate.
# updatedb

18.48 uptime
Exibe quanto tempo o sistema está em operação.
$ uptime

18.49 wc
Conta palavras.
-l – conta linhas
cat /etc/passwd | wc -l

18.50 which
$ man which
WHICH(1)

NAME
which - locate a command

SYNOPSIS
which [-a] filename ...

DESCRIPTION
which returns the pathnames of the files which would be executed
in the current environment, had its arguments been given as commands in a
strictly POSIX-conformant shell. It does this by searching the PATH for
executable files matching the names of the arguments.

OPTIONS
-a print all matching pathnames of each argument

EXIT STATUS
0 if all specified commands are found and executable

1 if one or more specified commands is nonexistent or not executable

2 if an invalid option is specified

Debian 12 Jul 2004


WHICH(1)

72 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

18.51 whereis
Exibe onde está localizado um comando do sistema.
$ whereis uname
uname: /bin/uname /usr/share/man/man1/uname.1.gz

18.52 yum
Instala softwares em distribuições baseadas em RedHat. É semelhante ao apt-
get/aptitude nas distribuições baseadas em Debian.
# yum install httpd

19 Exercícios
1. O que significam os caracteres '$' ou '#' no prompt do usuário?
a) '$' usuário comum e '#' usuário root
b) '$' usuário root e '#' usuário comum
c) '$' usuário bloqueado e '#' usuário desbloqueado
d) '$' usuário com senha fraca e '#' usuário com senha forte
2. Quais comandos abaixo podem ser utilizados para obter ajuda?
a) howto, info, help, search e man
b) info, help, manpage, whereis e howto
c) info, help, whatis, apropos e man
d) help, whatis, apropos, howto e info
3. Qual(ais) definições abaixo estão corretas?
a) help – ajuda para comando externos
b) whatis – indica onde estão os arquivos de ajuda do sistema
c) apropos – procura referências nas páginas de manual
d) man – navega nas páginas de manual
4. São exemplos de comandos internos
a) for, cd, alias, help
b) cp, mkdir, if, history
c) while, whatis, cp, reboot
d) shutdown, help, cd, cp
5. O sistema poderá ser desligado executando-se quais dos comandos abaixo?
a) shutdown -r now, halt, init 6
b) halt, poweroff, init 0, shutdown -h now, telinit 0

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
73
Especializa Treinamentos <http:/ /www.especializa.com.br>

c) halt, shutdown -h now, init 6, telnit 0


d) powerdown, init 0, poweroff, shutdown
6. Sobre os níveis de execução (runlevel) indique a alternativa verdadeira
a) o nível de execução padrão do Ubuntu é o 2
b) o nível de execução padrão do RedHat quando sem interface gráfica é o 5
c) o nível de execução 0 desliga a máquina enquanto que o 6 a reinicia
7. Observe a saída do comando abaixo:
$ ls -l /etc/rc2.d
K08vmware K20apache2 S30gdm
README S20apmd S30system-tools-backends
S01policykit S20apport S89anacron
S05vbesave S20cups S89atd
S10acpid S20hotkey-setup S89cron
S10powernowd.early S20postfix S90binfmt-support
S10sysklogd S20powernowd S90vmware
S10xserver-xorg-input-wacom S20rsync S91mysql
S11klogd S20xinetd S98usplash
S12dbus S23ntp S99acpi-support
S14avahi-daemon S24hal S99laptop-mode
S16ssh S25bluetooth S99rc.local
S17mysql-ndb-mgm S25pulseaudio S99rmnologin
S18mysql-ndb S28NetworkManager S99stop-readahead

a) O script do serviço cups será executado com parâmetro start ou stop?


b) Qual serviço será iniciado primeiro: mysql ou apmd?
c) Estas entradas neste diretório são referentes a qual nível de execução?
d) Qual script seria executado primeiro se dois destes tivessem o mesmo
número?
8. Qual é a utilidade do arquivo /etc/rc.local?

9. Sobre a manipulação de arquivos e diretório indique as alternativas corretas


a) cd ~ - Acessa o diretório raiz
b) cd ../dir2 – volta um nível e acessa o diretório dir2
c) mkdir ~/especializa – cria um diretório de nome especializa no home
directory do usuário
d) rmdir /home/aluno/especializa – apaga o diretório /home/aluno/especializa,
inclusive o seu conteúdo
e) Se o usuário aluno estiver em seu home directory e executar 'cd
/especializa/linux-junior' irá acessar o diretório
/home/aluno/especializa/linux-junior.
f) O comando cd /home/aluno/Desktop tem o mesmo efeito que cd ~/Desktop
se executado pelo usuário aluno

74 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

g) touch /tmp/script1.lock – Cria um arquivo vazio de nome script1.lock no


diretório /tmp
h) file /home/aluno/arquivo1 – Exibe qual é o tipo do arquivo de nome arquivo1
i) mkdir -p /home/aluno/especializa/linux – cria o diretório linux somente se o
diretório especializa existir
10.Sobre a manipulação de usuários e grupos
a) useradd -c “Linux Junior Administrator” -d /home/lja lja – cria o usuário lja e
seu home directory em /home/lja
b) As configurações de home directory, UID, GID e shell são armazenadas no
arquivo /etc/passwd
c) Qualquer usuário do sistema poderá executar comandos administravos na
distribuição Ubuntu adicionando-se sudo no início de cada comando, o que
torna a distribuição fraca no quesito de segurança
d) O su é uma alternativa mais segura quando comparada ao sudo pois para
executar comando administrativos é necessário que o usuário conheça a
senha do usuário root
e) Por padrão o usuário que esteja cadastrado no grupo admin do Ubuntu
poderá executar comandos com privilégios administrativos adicionando-se
sudo no início de cada comando
f) userdel lja – apaga o usuário lja e todo o conteúdo do seu home directory
g) usermod -G admin lja – adiciona o usuário lja ao grupo admin sem removê-lo
dos grupos já adicionados
h) usermod -a -G admin lja – adiciona o usuário lja ao grupo admin sem
removê-lo dos grupos já adicionados
i) userdel -r lja – apaga o usuário lja e todo o conteúdo do seu home directory
11.Qual é o comando a ser executado para criar um usuários com as
características abaixo?
Nome Completo: Linus Torvalds
Nome de usuário: linus
Shell: /bin/bash
Home Directory: /home/linus
Grupo Primário: users
Grupos adicionais: contabilidade

12.O que contém os arquivos /etc/passwd, /etc/group e /etc/shadow?


13.Sobre propriedade e permissões podemos afirmar que:
a) a permissão 644 é a permissão padrão para diretórios e 755 para arquivos

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
75
Especializa Treinamentos <http:/ /www.especializa.com.br>

b) a permissão 755 é a permissão padrão para diretórios e 644 para arquivos


c) a permissão 644 permite que qualquer usuário do sistema tenha permissão
de visualizar o conteúdo do arquivo
d) a permissão 666 é a mais segura das permissões, visto que não permite
acesso de leitura a nenhum usuário do sistema
e) para alterar a permissão de um arquivo retirando-se a permissão de
execução para todos os usuários, inclusive o dono, executa-se o comando
'chmod -x arquivo'
f) para ajustar as permissões de um arquivo para -rwxr--r-- é necessário
executar 'chmod 755 arquivo' ou 'chmod u=rwx,go=rw arquivo'
g) os comandos 'chmod 640 arquivo' e 'chmod u=rw,g=r,o= arquivo' tem o
mesmo significado
h) 'chown aluno arquivo' altera a propriedade de 'arquivo' para o usuário aluno
i) o comando 'chown aluno:users arquivo' tem a mesma função que 'chown
aluno arquivo; chgrp users arquivo'
14.Sobre redes de computadores
a) Um gateway é necessário em uma rede de computadores para fazer
resolução de nomes
b) Um gateway é necessário em uma rede de computadores para conectar
redes distintas
c) As máscaras de rede 255.255.255.0, 255.255.0.0, 255.255.255.248 e
255.255.192.0 podem ser escritas respectivamente /24, /16, /29 e /17
d) Uma rede de máscara /16 possui uma maior quantidade de endereços de
hosts quando comparada à rede de máscara /24
e) Uma rede de máscara 255.255.255.240 possui uma maior quantidade de
endereços de hosts quando comparada à rede de máscara 255.255.255.192
f) Os hosts 10.0.14.27/28 e 10.0.14.14/28 podem se comunicar entre si sem a
presença de um gateway
g) Indicamos qual servidor de DNS será utilizado editando-se o arquivo
/etc/hosts
h) Cada host em uma rede pode possuir apenas um endereço IP
i) O comando 'ifconfig eth0 192.168.10.2 netmask 255.255.255.0' configura a
interface de rede eth0 como endereço 192.168.10.2 e as configurações
serão perdidas após a reinício do sistema
j) Para tornar as configurações de rede persistentes devemos colocar o
comando 'ifconfig eth0 192.168.10.2 netmask 255.255.255.0' no arquivo
/etc/rc.local
k) O arquivo de configuração da rede no Debian/Ubuntu é
/etc/network/interfaces e no RedHat estas configurações são realizadas no
arquivo /etc/sysconfig/network-scripts/ifcfg-<nome_da_interface>

76 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

l) O servidor de DNS que será utilizado para a resolução de nomes é indicado


na diretiva nameserver no arquivo de configuração /etc/resolv.conf. Neste
arquivo podemos especificar até três entradas deste tipo.
m)O comando ping pode ser utilizado para diagnosticarmos problemas de rede
15.Dado o host de endereço IP 10.2.14.127/26, informe:
a) A máscara de rede na notação decimal pontuada
b) O endereço de rede
c) O endereço de broadcast
d) O primeiro IP válido desta rede
e) O último IP válido desta rede
f) A classe de endereçamento
g) Indique se este endereço é de uso privado ou internet
h) Este endereço é válido? Por que?
16.Instalação de software
a) A maior vantagem de instalar software através do código fonte é que cabe à
distribuição lançar versões com correção de falhas
b) dpkg -i <nome_do_aquivo.deb> é o comando utilizado quando desejamos
instalar algum software que dispomos o pacote .deb em mãos
c) apt-get install <nome_do_pacote> é o comando utilizado para realizar a
instalação softwares que estão nos repositórios, não sendo necessário baixá-
los antecipadamente
d) o comando equivalente ao mostrado na alternativa 'c' para as distribuições
baseadas em RedHat é 'yum install <nome_do_pacote>'
e) Para atualizarmos todo o sistema Debian/Ubuntu executamos o comando
'apt-get update'
f) O apt tem os poderes da Super Vaca enquanto que o aptitude não os tem
g) Os repositórios para o apt são cadastrados no arquivo /etc/apt/repositories
h) Os repositórios para o apt são cadastrados no arquivo /etc/apt/sources.list
i) apt-get -d install apache2 irá baixar o pacote apache2 e suas dependências,
mas a instalação não será realizada
j) apt-get search e aptitude search possuem a mesma função: procurar por
pacotes através das descrições
k) apt-get autoclean irá apagar os arquivos de pacotes antigos do cache
l) Os pacotes dos softwares instalados através do apt são baixados e
armazenados em /var/cache/apt/arquive
m)Para procurarmos por pacotes que fazem referência ao apache podemos
executar 'apt-cache search apache'

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
77
Especializa Treinamentos <http:/ /www.especializa.com.br>

n) 'apt-cdrom add' é o comando utilizado para adicionar um CD ou DVD à base


de pacotes do apt
o) './configure; make; make install' são comando utilizados para instalar
softwares pré-compilados
17.Quanto ao agendamento de tarefa podemos afirmar que:
a) o comando 'crontab -l' abre a tabela de agendamento do usuário corrente
para edição
b) o comando 'crontab -e' abre a tabela de agendamento do usuário corrente
para edição
c) o agendamento '0 0 * * 2 /usr/local/bin/backup.sh' executa o script
backup.sh às terças-feiras à meia noite
d) o agendamento '*/5 * * * * /usr/local/bin/sincronismo.sh' executa o script
sincronismo.sh a cada cinco minutos
18.Sobre a nomenclatura de dispositivos do linux podemos afirmar que:
a) /dev/sda3 é a terceira partição do disco master da controladora IDE primária
b) /dev/hdb2 é a segunda partição do disco slave da controladora IDE
secundária
c) /dev/sda é um dispositivo de armazenamento não-IDE
d) /dev/cdrom é um link para o dispositivo onde esta conectado o drive de
cdrom
e) podem existir no máximo 4 discos rígidos IDE em um computador pessoal:
hda, hdb, hdc e hdd
f) podemos afirmar que /dev/sda3 é uma partição do tipo primária de um disco
não-IDE
g) /dev/hdb6 é uma partição extendida de um disco IDE
19.A inserção do conteúdo abaixo no arquivo /etc/fstab ...
/dev/sda3 /opt xfs noauto,defaults 00
a) realiza a montagem automática da partição /dev/sda3 nodiretório /opt
b) possibilita a montagem de /dev/sda3 em /opt sem informar qual será a
partição a ser montada
c) ocasiona um erro na inicialização, visto que noauto e defaults são opções
conflitantes
d) possibilita a montagem de /dev/sda3 executando-se o comando 'mount /opt'
pelo usuário root
e) possibilita a montagem de /dev/sda3 executando-se o comando 'mount /opt'
por qualquer usuário do sistema
20.Qual é a vantagem de especificar uma partição do disco usando a identificação
UUID invés do nome do dispositivo?
21.Como obter o UUID de uma partição?

78 Especializa Linux Junior Administrator


Especializa Treinamentos <http:/ /www.especializa.com.br>

22.Após criar uma partição é necessário formatá-la. Qual é o comando que


formata uma partição com o sistema de arquivos do tipo EXT3?
23.Como identificar um disco recém instalado? Quais procedimentos são
necessários para utilizar um disco novo inserido?

Especializa Linux Junior Administrator


Kléber Alves Leal - 2009
79
Especializa Treinamentos <http:/ /www.especializa.com.br>

A apostila do curso Especializa Linux Junior Administrator foi desenvolvida por:


Kléber Alves Leal
kleber.leal@gmail.com
http://blogdosl.blogspot.com
2009

80 Especializa Linux Junior Administrator

Você também pode gostar