Você está na página 1de 39

Administração de Redes

Linux (Fundamentos)
Administração de rede s
Unix/Linux2/2
Prof Silvano Oliveira
prof.silvano.oliveira@gmail.com
Fundamentos

Prof Silvano Oliveira (Adm de Redes em Linux) 2


Características gerais de sistemas *nix
• Multitarefa preemptiva, multiusuário e com suporte a
multiprocessamento.
• Interface gráfica independente do kernel.
• Orientado a arquivos, praticamente tudo pode ser acessado
como arquivo. Ex:
/dev/sda: disco rígido mestre na primeira IDE
/dev/ttyS0: primeira porta serial
• Estrutura de diretórios relativamente similar.
Aplicações Servidor X Shell

Kernel
Prof Silvano Oliveira (Adm de Redes em Linux) 3
Estrutura de diretórios
• /bin, /sbin: arquivos executáveis mais importantes para
manutenção e configuração do sistema, usado com frequência..
• /boot: arquivos de inicialização e kernel Linux. É onde ficam os .
arquivos do Grub também. |-- bin
• /dev: diretórios com arquivos representando diversos |-- boot
|-- dev
dispositivos do sistema. |-- etc
• /etc: diretório onde geralmente são armazenados os arquivos |-- home
|-- lib
de configuração do sistema. |-- lost+found
|-- media
• /home: distório destinado a contas de usuário. |-- mnt
• /lib e /usr/lib: diretórios onde são armazenadas as principais |-- proc
|-- root
bibliotecas do sistema e do kernel. |-- sbin
• /mnt e /media: área de montagem de dispositivos (pendrives, |-- tmp
|-- usr
discos externos, etc). `-- var

Prof Silvano Oliveira (Adm de Redes em Linux) 4


Estrutura de diretórios
• /proc: sistema virtual de arquivos gerado pelo kernel, com
informações gerais do kernel em execução e outras
informações úteis para diversos programas. .
• /lost+found: arquivo existente em toda partição e usado |-- bin
|-- boot
para armazenamento de arquivos recuperados por |-- dev
comandos como fsck. |-- etc
|-- home
• /root: diretório onde reside a conta do administrador (root). |-- lib
|-- lost+found
• /tmp: área temporária de armazenamento. Geralmente |-- media
apagada na partida do sistema. |-- mnt
|-- proc
• /usr: onde residem a maior parte das aplicações instaladas. |-- root
|-- sbin
• /var: dados de aplicações diversas, como spool de |-- tmp
impressão, email, banco de dados, logs, etc. |-- usr
`-- var

Prof Silvano Oliveira (Adm de Redes em Linux) 5


Ubuntu: administração via comando sudo
• No Ubuntu, a administração é planejada para ser feita através de
um usuário com privilégios normais, bastando que ele faça parte
do grupo admin.
• Quando necessário, o usuário invoca o comando sudo para
ganhar poderes de administrador (root), diminuindo as chances
de erro como administrador.
• Operações administrativas são feitas como a seguir (a sua senha
será pedida):
sudo <comando> <opções do comando>
• Caso se prefira trabalhar diretamente como administrador,
configure uma senha para o root:
sudo passw root
Prof Silvano Oliveira (Adm de Redes em Linux) 6
Dispositivos para disco e UUID
• Os arquivos dentro do /dev/ eram estáticos,
até o aparecimento do kernel 2.6.10 e do
gerenciador de dispositivos udev. ls /dev/sd* /dev/sc*
• Discos IDE eram normalmente identificados /dev/scd0
como /dev/hd[a,b,c,d,...]. Nos kernels mais /dev/sda
novos é usada a notação /dev/sd[a,b,c,d,...] /dev/sda1
/dev/sda2
• Número adicionais indicam partições, como /dev/sda3
/dev/sda1, /dev/sda2. /dev/sda5
/dev/sda6
• CD, DVDs eram identificados como /dev/hd*
também, mas agora usam /dev/sc*.
• O udev permite personalizar estes nomes
(/etc/udev/rules.d/).
Prof Silvano Oliveira (Adm de Redes em Linux) 7
Dispositivos para disco e UUID
• O Ubuntu passou a usar a um identificador universal
único (UUID) para referenciar partições e discos.
• A ideia é permitir independência do nome do
dispositivo em configurações mais complexas.
• No caso das partições, o UUID muda sempre que a
partição é formatada. ls /dev/disk/by-uuid/ -l
2a495a8e-f986-4a3f-9d94-1c24fa2820c8 -> ../../sda5
794d5282-e505-42b8-a699-c4d3a276abc5 -> ../../sda1
7960bf08-9dd9-4201-8571-ea0536416e9b -> ../../sda6
d29466ec-4f0e-4a81-9754-ba23949f1982 -> ../../sda2
Prof Silvano Oliveira (Adm de Redes em Linux) 8
Sistemas de arquivos: suporte amplo
• DOS, FAT, NTFS: para compatibilidade com Windows.
• ext2, ext3, ext4: sistema de arquivo original do Linux. Ext3 é sinônimo de
estabilidade e robustez.
• xfs (Silicon Graphics), jfs (IBM), ambos com bom desempenho mas ainda com
pouco tempo de vida no Linux. ReiserFS perdendo espaço recentemente.
• Suporte aos sistemas de arquivos da Sun, HP, Apple.
• ISO9660, Joliet: sistemas de arquivos para Cds.
• Sistemas de arquivos para rede, como NFS, GFS.
• Diversos outros sistemas de arquivos para clusters, acesso distribuídos,
gerenciamento de volumes, etc.
• Diversos sistemas de arquivos para dispositivos embarcados.

Prof Silvano Oliveira (Adm de Redes em Linux) 9


Sistemas de arquivos: montagem
• Antes de usar um sistema de arquivo, é preciso ”montá-lo”
• Montar significa associar um diretório (ponto de montagem) a um
dispositivo (geralmente uma partição)
• É usado o comando mount, como a seguir:
mount –o <opções> -t <tipo> <device> <pontodemnt>
• Exemplo1: montando um pendrive formatado no Windows
mount –t vfat /dev/sdb1 /media/pendrive
• Exemplo 2: montando um CD
mount –t iso9660 /dev/scd0 /media/cdrom
• Em sistemas com interface gráfica todo o processo é feito
automaticamente.
Prof Silvano Oliveira (Adm de Redes em Linux) 10
Sistemas de arquivos: montagem
• Na partida, o sistema monta as partições criadas pelo
usuário, seguindo informação do arquivo /etc/fstab.
• Pode-se ver, a qualquer momento, os sistemas de arquivos
montados através do comando df.
• O comando umount permite desmontar um sistema de
arquivo, desde que ele não esteja sendo usado por nenhum
processo.
• umount /dev/sdb1 (ou)
• umount /media/pendrive
• O comando lsof <arquivo> pode lhe ajudar a apontar quem
está usando o sistema de arquivos em questão.
Prof Silvano Oliveira (Adm de Redes em Linux) 11
Sistemas de arquivos:
particionamento e verificação manual
• Comando para particionamento: cfdisk ou fdisk
• Comandos para formatação de uma partição: mkfs.*
• Comandos para verificação de integridade: fsck.*
• Exemplo:
• cfdisk /dev/sda (suponha que sda7 vá ser criada neste passo)
• mkfs.ext3 /dev/sda7
• fsck.ext3 /dev/sda7
• mkdir /mnt/pos (cria o diretório /mnt/pos)
• mount /dev/sda7 /mnt/pos
• Falta adicionar uma linha ao fstab para que a modificação seja
mantida entre reboots.
Prof Silvano Oliveira (Adm de Redes em Linux) 12
Sistemas de arquivos: /etc/fstab
• O fstab é um arquivo texto, com campos separados por
espaços ou tabs, com o seguinte formato:
<SISARQ> <MNT> <TIPO> <OPT> <DUMP> <PASS>
• SISARQ: Sistema de arquivos (dispositivo ou UUID)
• MNT: Ponto de montagem
• TIPO: Tipo do sistema de arquivos
• OPT: Opções de montagem (ro, rw, auto, defaults, ...)
• DUMP: Frequência de uso do dump nesta partição
• PASS: Ordem em que o fsck será usado para verificar erros
Prof Silvano Oliveira (Adm de Redes em Linux) 13
Sistemas de arquivos: /etc/fstab
• Deixando a alteração permanente no fstab:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sda2
UUID=d29466ec-4f0e-4a81-9754-ba23949f1982 / ext3 relatime,errors=remount-ro 0 1
# /dev/sda1
UUID=794d5282-e505-42b8-a699-c4d3a276abc5 /boot ext3 relatime 0 2
# /dev/sda6
UUID=7960bf08-9dd9-4201-8571-ea0536416e9b /home ext3 relatime 0 2
# /dev/sda5
UUID=2a495a8e-f986-4a3f-9d94-1c24fa2820c8 none swap sw 0 0
#
# adicionando a nossa nova linha
/dev/sda7 /mnt/pos ext3 defaults 0 3

Prof Silvano Oliveira (Adm de Redes em Linux) 14


Linha de comando (shell)
• Para um administrador Linux, é praticamente impossível não ter
contato com a linha de comando.
• Um bom editor, um guia de referência e as páginas de manual
podem ajudar muito no início.
• Com o tempo você vai notar que é mais rápido digitando alguns
comandos do que dando cliques.
• A ausência de interface gráfica elimina bugs de segurança
potenciais.
• No entanto, caso se sinta mais confortável ou a linha de comando
seja muito improdutiva num primeiro instante, instale uma GUI
até se acostumar.
Prof Silvano Oliveira (Adm de Redes em Linux) 15
Linha de comando (shell): dicas gerais
• O sistema é todo dependente da caixa (Teste <> teste)
• A barra de separação de diretórios é sempre para a direita: “/”
• Arquivos que começam com ponto (“.”) são considerados ocultos por padrão e
não são mostrados a menos que opções adicionais sejam dadas.
• Os diretórios “.” e “..” são como no DOS, indicando o diretório atual e o
imediatamente superior.
• Vários comandos numa mesma linha podem ser separados por ponto e vírgula
(“;”).
• Finalizar o comando com “e” comercial (“&”) permite que o comando seja
executado em background, liberando o prompt.
• Extensões não são obrigatórias e o ponto é só mais um caractere.
• Asterisco (“*”) e interrogação (“?”) também são curingas, como no DOS.
Adicionalmente, {} e [] desempenham funções especiais.
Prof Silvano Oliveira (Adm de Redes em Linux) 16
Linha de comando (shell): editores de texto
• Existem muitas opções. Escolha um mais simples e comece
a aprender alguns comandos do vi paralelamente.
• nano: default do Debian/Ubuntu.
• mcedit: uma boa relação para quem vem do Windows.
• vi/vim: Presente em todas as distribuições. Com o tempo
você passa a gostar dele (sintaxe colorida muito boa,
procuras e substituições facilitadas, edição poderosa).
• Outros: joe, pico, emacs...
Prof Silvano Oliveira (Adm de Redes em Linux) 17
Linha de comando (shell): help
• Com o tempo você também irá memorizar várias opções e
comandos. Até lá, use e abuse do manual:
• Obtendo detalhes de um comando:
man <comando>
• Procurando nas páginas do manual:
apropos <palavras chaves>
• Local padrão para documentação no Ubuntu/Debian:
/usr/share/doc/<nome do aplicativo>
• Geralmente os comandos tem opção --help:
<comando> --help
Prof Silvano Oliveira (Adm de Redes em Linux) 18
Linha de comando (shell): variáveis de ambiente
• Como em outros sistemas, existem variáveis de
ambiente num shell usadas pelo sistema operacional.
• Os comandos set ou env mostram as variáveis atuais
• Algumas variáveis importantes:
• PATH: path usada na busca de arquivos
• PS1: definição do prompt
• HOME: local da conta do usuário logado
• SHELL: shell em uso pelo usuário
• VISUAL: editor de textos default do usuário
Prof Silvano Oliveira (Adm de Redes em Linux) 19
Linha de comando (shell): variáveis de ambiente
• As principais variáveis são definidas no arquivo /etc/profile,
valendo para todos os usuários. Outras são criadas no
momento do login.
• Para se criar uma variável de ambiente, use o comando
export ou set (este último só deixa a variável válida para o
shell corrente):
export MYPATH=/mnt/pos
• No arquivo /home/<usuário>/.bashrc podem ser
adicionadas variáveis e outras configuração. Este arquivo é
carregado toda vez que o usuário se loga ao sistema.
Prof Silvano Oliveira (Adm de Redes em Linux) 20
Linha de comando (shell): atalhos úteis
• CTRL+C: Finalizar a execução do comando e retorna ao prompt do
shell.
• CTRL+Z: Manda para segundo plano o comando em execução,
liberando a linha de comando.
• CTRL+R: Permite buscar nos últimos comandos digitados.
• CTRL+P e CTRL+N navegam nos últimos comandos. O comando
history lista os últimos comandos dados. Exclamação (“!”)
seguido do número do comando permite executá-lo novamente.
• O arquivo /home/<usuário>/.bash_history tem a lista dos últimos
comandos digitados.
Prof Silvano Oliveira (Adm de Redes em Linux) 21
Linha de comando (shell):
comandos básicos para manipulação de arquivos
• cd: muda de diretório.
• pwd: imprime o diretório atual.
• mkdir: cria um novo diretório.
• rm: apaga arquivos e/ou diretórios.
• ls: lista o conteúdo de um diretório.
• cp: copia arquivos.
• mv: move arquivos.
• touch: cria um arquivo vazio.
• man: permite obter informações sobre um comando.
Prof Silvano Oliveira (Adm de Redes em Linux) 22
Linha de comando (shell):
comandos básicos para manipulação de arquivos
• cat: imprime o conteúdo de um arquivo no terminal.
• tac: imprime o conteúdo de um arquivo mas em ordem
inversa.
• tail: mostra as últimas linhas de um arquivo.
• head: mostra as primeiras linhas de um arquivo.
• more: visualiza um arquivo na tela, passo a passo.
• less: uma melhoria do more, permitindo também voltar na
visualização.
• man: permite obter informações sobre um comando.

Prof Silvano Oliveira (Adm de Redes em Linux) 23


Linha de comando (shell):
comandos básicos para procura
• grep: procura por padrões dentro de outros arquivos.
• find: procura por arquivos.
• whereis: mostra a localização do arquivo.
• tree: imprime a árvore de diretórios/arquivos.
• locate: localiza arquivos pelo nome.
• man: permite obter informações sobre um comando.

Prof Silvano Oliveira (Adm de Redes em Linux) 24


Linha de comando (shell):
comandos básicos de sistema
• uptime: mostra há quanto tempo o sistema está rodando.
• free: mostra a memória livre.
• uname: mostra a versão do kernel em execução e outros
detalhes do sistema.
• reboot, halt, poweroff: desligamento do sistema.
• shutdown: desligamento, mas com controles adicionais de
hora.
• dmesg: mostra as mensagens geradas pelo kernel.
• man: permite obter informações sobre um comando.

Prof Silvano Oliveira (Adm de Redes em Linux) 25


Linha de comando (shell):
comandos básicos de sistema
• date: mostra a data atual.
• cal: imprime um calendário em modo texto.
• clear: limpa o terminal.
• reset: reseta o terminal atual (útil quando caracteres estranhos
começam a aparecer “inexplicavelmente”).
• shutdown: desligamento, mas com controles adicionais de hora.
• df: mostra o uso atual das partições do sistema.
• du: mostra o espaço usado por arquivos ou diretórios.
• man: permite obter informações sobre um comando.
Prof Silvano Oliveira (Adm de Redes em Linux) 26
Linha de comando (shell):
pipes e redirecionamento
• O pipe ("|") permite que a saída de um programa seja
usada como entrada para outro programa, encadeando
o processamento:
cat /etc/X11/xorg.conf | less
less /etc/X11/xorg.conf
locate bash | grep bin
ls -la | less

Prof Silvano Oliveira (Adm de Redes em Linux) 27


Linha de comando (shell):
pipes e redirecionamento
• “>”: redireciona a saída do programa para um arquivo ou
dispositivo. O arquivo será criado caso não exista.
ls /usr -la > /tmp/arquivos
cat /etc/X11/xorg.conf > /dev/ttyS0
• “>>”: redireciona a saída do programa para um arquivo ou
dispositivo, mas adicionando ao arquivo caso ele já exista
ls /home/ -la >> /tmp/arquivos
• “<”: redireciona a entrada do programa.
less < /etc/X11/xorg.conf
• Existem outros usos e operadores
Prof Silvano Oliveira (Adm de Redes em Linux) 28
Linha de comando (shell): links simbólicos
(o que todo atalho gostaria de ser)
• Mecanismo que permite a criação de referências a
outros arquivos ou diretórios. Bastante flexível e útil no
gerenciamento do sistema.
ln <opções> <destino_do_link> <nome_do_link>
• Existem links simbólicos (“-s”) e hard links (“-d”). O
simbólico é apenas uma referência para o destino. Já o
hard é realmente idêntico ao destino.
• Hard links não podem ser usados com diretórios nem
podem ser feitos para outras partições.
Prof Silvano Oliveira (Adm de Redes em Linux) 29
Linha de comando (shell): links simbólicos
(o que todo atalho gostaria de ser)
• Alguns detalhes de links simbólicos:
• Apagar ou mover um link simbólico não apaga ou move o
destino, só o link.
• Copiar ou visualizar, por exemplo, um link simbólico, copia
ou visualiza realmente o destino.
• Existem muitos usos para links simbólicos no sistema:
• Na inicialização (níveis de inicialização e init.d).
• Gerenciamento de versões de programas ou bibliotecas.
• Compatibilização de distribuições.
Prof Silvano Oliveira (Adm de Redes em Linux) 30
Gerenciamento de software: A Gênese
• No início, criou Unix o tar.gz.
• E o autoconf era difícil e chato; e havia trevas sobre a recompilação; e os
arquivos se moviam por todo o disco.
• E disse Debian: que haja pacote; e houve pacote.
• E a comunidade viu que era bom o pacote e fez separação entre distros com e
sem pacotes.
• E chamou os pacotes de .deb e criou o dpkg. Foi a tarde e a manhã de debug, o
dia primeiro.
• E disse Debian: haja uma gerência dos pacotes com o apt e haja separação em
repositórios.
• E fez Debian os repositórios; e separou os .deb entre main, contrib e nonfree; e
assim foi.
• E a comunidade viu que isto era bom e copiou sem dó.
Prof Silvano Oliveira (Adm de Redes em Linux) 31
Gerenciamento de software: Ubuntu
• O Ubuntu se baseia na gerencia de
pacotes proveniente da Debian.
• Num nível mais baixo, o dpkg gerencia Arquivos
(make)
pacotes individuais, sem tratar
dependências, apenas instalação Pacotes
(dpkg)
isolada.
• Num nível mais alto, o apt permite tratar Repositório
(apt)

dependências, atualizações, buscas e


várias outras operações de nível mais
elevado.
Prof Silvano Oliveira (Adm de Redes em Linux) 32
Gerenciamento de software: Repositórios
• Os pacotes são agrupados em repositórios:
• main: software livre oficialmente suportado
pela Canonical.
• restricted: software com licenças que não são
consideradas abertas.
• universe: software livre sem suporte pela
Canonical.
• multiverse: software com licenças que não são
consideradas abertas e sem suporte pela
Canonical.
• backports: bleeding-edge software, geralmente
as últimas versões ainda pouco testadas.
Prof Silvano Oliveira (Adm de Redes em Linux) 33
Gerenciamento de software: Repositórios
• Os repositórios são listados em /etc/apt/sources.list, contendo
linhas como a seguir:
• deb http://br.archive.ubuntu.com/ubuntu/ hardy main restricted
• deb-src http://br.archive.ubuntu.com/ubuntu/ hardy main restricted
• Note que são especificados:
• Pacotes binários (deb) ou fonte (deb-src).
• Servidor (http...), também existem servidores que operam via ftp e
CDs pode ser usados com “cdrom:”
• O codename da versão atual.
• Repositórios disponíveis neste servidor.

Prof Silvano Oliveira (Adm de Redes em Linux) 34


Gerenciamento de software: aptitude e apt
• Para adiconar novos repositórios, edite o
/etc/apt/sources.list e atualize a base de dados do apt
sudo aptitude update
ou
sudo apt-get update
• Para instalar as versões mais novas de pacotes disponíveis,
use o comando upgrade (será pedido uma confirmação
antes):
sudo aptitude safe-upgrade
ou
sudo apt-get upgrade
Prof Silvano Oliveira (Adm de Redes em Linux) 35
Gerenciamento de software: aptitude e apt
• É possível inclusive atualizar toda a distribuição,
mudando de versão (da 7.10 para 8.04, por exemplo):
sudo apt-get upgrade
sudo apt-get dist-upgrade
• Buscas no repositório são possíveis:
sudo aptitude seach <palavras chaves>
ou
sudo apt-cache search <palavras chaves>
Prof Silvano Oliveira (Adm de Redes em Linux) 36
Gerenciamento de software: aptitude e apt
• Uma vez que se sabe o nome do pacote, a sua instalação
pode ser feita com:
sudo aptitude install <nome_do_pacote>
sudo apt-get install <nome_do_pacote>
• Já a remoção é feita com remove ou purge, sendo que o
purge também remove arquivos de configuração
associados:
sudo aptitude remove <nome_do_pacote>
sudo aptitude purge <nome_do_pacote>
sudo apt-get remove <nome_do_pacote>
sudo apt-get purge <nome_do_pacote>
Prof Silvano Oliveira (Adm de Redes em Linux) 37
Gerenciamento de software: aptitude e apt
• É possível remover um pacote e suas dependências (default
para o aptitude):
sudo apt-get autoremove <nome_do_pacote>
• A reinstalação de um pacote é outra ação bastante
explorada:
sudo aptitude reinstall <nome_do_pacote>
sudo apt-get install --reinstall <nome_do_pacote>
• Finalmente, o indispensável:
aptitude --help
aptget --help

Prof Silvano Oliveira (Adm de Redes em Linux) 38


Gerenciamento de software: dpkg básico
• O dpkg é útil ao lidar com pacotes isolados.
• Instalar: sudo dpkg -i <pacote.deb>
• Remover: sudo dpkg -r <pacote.deb>
• Purge: sudo dpkg -P <pacote.deb>
• Procurar por padrão: sudo dpkg -l <padrão>
• Listar arquivos num pacote: dpkg -L <nome_do_pacote>
• A que pacote pertence um arquivo: dpkg -S <padrão>
• E, o mais importante: dpkg --help
Prof Silvano Oliveira (Adm de Redes em Linux) 39

Você também pode gostar