Instalar e configurar Sistema Operativo Open Source
Apresentação
UC00626 (25h · 2,25 pts) do curso Técnico de Sistemas de Computação e Redes. Cobre a instalação e configuração de um sistema operativo open source (Linux, base Ubuntu/Debian): conceitos de software livre, instalação, shell, gestão de pacotes, utilizadores, permissões, rede e serviços com systemd.
Software livre e open source
As 4 liberdades
Software livre (Free Software Foundation) garante:
- Liberdade 0 — executar o programa para qualquer fim.
- Liberdade 1 — estudar como funciona e adaptá-lo (acesso ao código).
- Liberdade 2 — redistribuir cópias.
- Liberdade 3 — distribuir versões modificadas.
"Open source" é um termo próximo, focado no modelo de desenvolvimento. Na prática, a maioria do software relevante é ambos.
Licenças
- GPL (copyleft) — derivados têm de manter a mesma licença.
- LGPL — copyleft mais ligeiro (bibliotecas).
- MIT / BSD / Apache 2.0 — permissivas; podem ser usadas em software fechado.
Linux
Sistema operativo composto por: - Kernel Linux — núcleo que fala com o hardware. - GNU — utilitários e shell. - Ambiente gráfico — GNOME, KDE, XFCE (opcional em servidores). - Gestor de pacotes — instala e actualiza software.
Distribuições
| Distro | Base | Uso típico |
|---|---|---|
| Ubuntu | Debian | Desktop e servidor, iniciantes |
| Debian | — | Servidores, estabilidade |
| Linux Mint | Ubuntu | Desktop fácil (transição de Windows) |
| Fedora | — | Tecnologia recente, RH upstream |
| Rocky / AlmaLinux | RHEL | Servidores empresariais |
| Arch | — | Avançado, rolling release |
Esta sebenta usa Ubuntu como referência.
Instalação
Preparação
- Descarregar a ISO oficial (ubuntu.com), verificar checksum SHA-256.
- Criar pen bootável: Rufus (Windows), Ventoy (multi-ISO),
dd(Linux/Mac). - Backup de dados se houver SO existente.
Sequência
- Boot do USB (boot menu / boot order).
- "Try or Install Ubuntu".
- Idioma e teclado (Português PT).
- Tipo de instalação: Normal ou Mínima; opção de instalar updates e codecs durante.
- Particionamento:
- "Apagar disco e instalar Ubuntu" — simples.
- "Instalar ao lado de Windows" — dual-boot automático.
- "Outra opção" (manual) — controlo total.
- Fuso horário.
- Utilizador, senha, hostname.
- Aguardar, reiniciar, remover a pen.
Particionamento manual
| Partição | Montagem | Tamanho | FS |
|---|---|---|---|
| EFI System | /boot/efi |
~512 MB | FAT32 |
| Raiz | / |
25-50 GB+ | ext4 |
| Home | /home |
restante | ext4 |
| Swap | (swap) | ~RAM (se hibernar) | swap |
Separar /home permite reinstalar o sistema sem perder dados de utilizador.
Sistemas de ficheiros Linux: ext4 (padrão, robusto), xfs (grandes volumes), btrfs (snapshots, copy-on-write).
A shell
A shell (bash/zsh) é a interface de linha de comandos — essencial em servidores sem GUI.
Navegação e ficheiros
pwd # diretório atual
ls -la # listar com detalhe e ocultos
cd /var/log # mudar de diretório
cd ~ # ir para a home
mkdir -p a/b/c # criar pastas (recursivo)
cp origem destino # copiar
cp -r pasta destino # copiar recursivo
mv a b # mover/renomear
rm ficheiro # apagar
rm -r pasta # apagar pasta
touch ficheiro # criar ficheiro vazio
Ver e editar
cat ficheiro # mostrar tudo
less ficheiro # paginado (q para sair)
head -20 ficheiro # primeiras 20 linhas
tail -f log # acompanhar em tempo real
nano ficheiro # editor simples
vim ficheiro # editor avançado
Procurar
find /etc -name "*.conf" # ficheiros por nome
grep "erro" /var/log/syslog # texto dentro de ficheiros
grep -r "TODO" . # recursivo
which python3 # localizar comando
Estrutura de diretórios (FHS)
/ raiz do sistema
/home diretórios dos utilizadores
/root home do superutilizador
/etc ficheiros de configuração
/var dados variáveis (logs, BD, web)
/usr programas e bibliotecas
/bin /sbin binários essenciais
/lib bibliotecas
/tmp ficheiros temporários
/dev dispositivos
/proc /sys interfaces do kernel (virtuais)
/mnt /media pontos de montagem
Em Linux, "tudo é um ficheiro" — incluindo dispositivos e processos.
Pipes e redirecionamento
comando > ficheiro # stdout para ficheiro (sobrescreve)
comando >> ficheiro # acrescenta
comando 2> erros # stderr
comando &> tudo # stdout + stderr
cmd1 | cmd2 # liga saída de cmd1 à entrada de cmd2
# Exemplos
ls -l | grep "\.txt$"
cat /etc/passwd | wc -l
ps aux | grep nginx
journalctl | tail -50
Gestão de pacotes
APT (Debian/Ubuntu)
sudo apt update # atualizar índice de pacotes
sudo apt upgrade # atualizar pacotes instalados
sudo apt full-upgrade # incl. mudanças de dependências
sudo apt install nome # instalar
sudo apt remove nome # remover (mantém config)
sudo apt purge nome # remover incl. config
sudo apt autoremove # limpar dependências órfãs
apt search termo # procurar
apt show nome # detalhes
apt list --installed # instalados
Outros gestores
| Gestor | Distro |
|---|---|
dnf / yum |
Fedora, RHEL, Rocky |
pacman |
Arch |
zypper |
openSUSE |
snap |
universal (Canonical) |
flatpak |
universal (sandbox) |
apt/dpkg |
Debian/Ubuntu |
snap e flatpak empacotam dependências — úteis para apps desktop recentes, mais pesados.
Utilizadores e permissões
Gestão de utilizadores
sudo adduser joana # criar (interactivo, cria /home)
sudo passwd joana # definir/mudar senha
sudo usermod -aG sudo joana # adicionar a grupo (sudo)
sudo usermod -aG docker joana
sudo deluser joana # remover
sudo deluser --remove-home joana # remover incl. home
groups joana # grupos do utilizador
id joana # uid, gid, grupos
su - joana # mudar de utilizador
Ficheiros: /etc/passwd (utilizadores), /etc/shadow (senhas cifradas), /etc/group (grupos).
root e sudo
- root (uid 0) — superutilizador, controlo total.
- sudo — executa um comando como root, com a própria senha; registado em log.
/etc/sudoers(editar comvisudo) define quem pode usar sudo.
Boa prática: não usar root directamente; usar uma conta normal com sudo quando necessário.
Permissões
Cada ficheiro tem dono, grupo e permissões para dono/grupo/outros:
-rwxr-xr--
│└┬┘└┬┘└┬┘
│ │ │ └─ outros: r-- (4)
│ │ └──── grupo: r-x (5)
│ └─────── dono: rwx (7)
└───────── tipo: - ficheiro, d pasta, l link
chmod 755 script.sh # rwxr-xr-x
chmod +x script.sh # adiciona execução
chmod -R 750 pasta # recursivo
chown ana ficheiro # mudar dono
chown ana:staff ficheiro # dono e grupo
chgrp staff ficheiro # mudar grupo
Octal: r=4, w=2, x=1. Soma por classe: 7=rwx, 6=rw-, 5=r-x, 4=r--, 0=---.
Permissões especiais: SUID, SGID, sticky bit (ex.: /tmp tem sticky bit 1777).
Rede
Diagnóstico
ip addr # endereços IP
ip route # tabela de rotas
ping -c4 8.8.8.8 # conectividade
ping aulify.pt # conectividade + DNS
dig aulify.pt # resolução DNS
ss -tulpn # portas/sockets abertos
traceroute aulify.pt # caminho
cat /etc/resolv.conf # servidores DNS
Configuração
- Desktop: NetworkManager (GUI) ou
nmtui(texto). - Servidor Ubuntu: Netplan — editar
/etc/netplan/*.yaml:
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.50/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
Aplicar: sudo netplan apply.
Serviços com systemd
systemd é o sistema de init moderno: gere serviços ("units"), arranque e logs.
systemctl status ssh # estado de um serviço
sudo systemctl start ssh # iniciar
sudo systemctl stop ssh # parar
sudo systemctl restart ssh # reiniciar
sudo systemctl enable ssh # arrancar no boot
sudo systemctl disable ssh # não arrancar no boot
systemctl list-units --type=service
journalctl -u ssh # logs do serviço
journalctl -xe # logs recentes/erros
journalctl -f # acompanhar em tempo real
Ficheiros de unit: /etc/systemd/system/ e /lib/systemd/system/.
Pós-instalação · checklist
# Atualizar
sudo apt update && sudo apt upgrade -y
# Drivers proprietários (se aplicável)
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
# Codecs multimédia
sudo apt install ubuntu-restricted-extras -y
# Ferramentas base
sudo apt install git curl wget vim htop tree net-tools -y
# SSH (servidor)
sudo apt install openssh-server -y
sudo systemctl enable --now ssh
# Firewall
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
Princípios de segurança: utilizador não-root para uso diário; SSH com chaves (não senhas) em servidores; firewall activa; updates regulares.
Apêndices
A · Cheatsheet
# Ficheiros
ls cd pwd cp mv rm mkdir cat less nano find grep
# Pacotes
sudo apt update / upgrade / install / remove / search
# Utilizadores
sudo adduser / passwd / usermod -aG / id / groups
# Permissões
chmod 755 / chown user:grupo / ls -l
# Rede
ip addr / ip route / ping / ss -tulpn / dig
# Serviços
systemctl status/start/stop/enable | journalctl -u
B · Glossário
APT. Advanced Package Tool — gestor de pacotes Debian/Ubuntu. Distro. Distribuição Linux. FHS. Filesystem Hierarchy Standard. Kernel. Núcleo do SO. root. Superutilizador. Shell. Interpretador de comandos (bash). sudo. Executar como root temporariamente. systemd. Sistema de init e gestão de serviços.
C · Recursos
- ubuntu.com/tutorials · tutoriais oficiais.
- The Linux Command Line (livro gratuito) · linuxcommand.org.
- DigitalOcean Community · tutoriais Linux excelentes.
- Arch Wiki · referência profunda (aplicável a qualquer distro).
- OverTheWire: Bandit · jogo para aprender shell.