Partilhar: WhatsApp
aulify · Sebenta
UC · Unidade de Competência · UC00626

Instalar e configurar Sistema Operativo Open Source

Sebenta · Linux, shell, pacotes, permissões
25h · 2.25 pontos crédito Curso: T. Sist. Comp. Redes ↗ Referencial oficial SNQ
Índice

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:

  1. Liberdade 0 — executar o programa para qualquer fim.
  2. Liberdade 1 — estudar como funciona e adaptá-lo (acesso ao código).
  3. Liberdade 2 — redistribuir cópias.
  4. 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

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

Sequência

  1. Boot do USB (boot menu / boot order).
  2. "Try or Install Ubuntu".
  3. Idioma e teclado (Português PT).
  4. Tipo de instalação: Normal ou Mínima; opção de instalar updates e codecs durante.
  5. Particionamento:
  6. "Apagar disco e instalar Ubuntu" — simples.
  7. "Instalar ao lado de Windows" — dual-boot automático.
  8. "Outra opção" (manual) — controlo total.
  9. Fuso horário.
  10. Utilizador, senha, hostname.
  11. 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.

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

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

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