Ubuntu Solução de Problemas
Aqui estão 30 problemas comuns, organizados pelo sintoma, ou seja, pelo que você vê na tela. Cada um mostra a mensagem real do Ubuntu 26.04, o que a causou, um comando para confirmar antes de mexer em qualquer coisa, a solução e a aula que explica o assunto a fundo.
- Leia a mensagem inteira. Ela quase sempre diz o problema: "Permissão negada", "inexistente", "não encontrado". Copie o texto exato; ele é ótimo para pesquisar.
- Confirme a causa com um comando que só olha (ls, systemctl status, journalctl, df). Não mude nada ainda.
- Mude uma coisa por vez e teste de novo. Se piorar, você sabe exatamente o que desfazer.
Índice de sintomas
Nível 1 · Iniciante
O Chromium está aberto na sua frente, mas o terminal diz que não:
$ ps
PID TTY TIME CMD
3001 pts/0 00:00:00 bash « só os processos DESTE terminal
3100 pts/0 00:00:00 ps
$ pgrep chromium
$ echo $?
1 « 1 = nada encontrado
Causa: são duas. O ps sem opções só mostra o que foi aberto neste terminal. E o pgrep procura no nome do processo, que nem sempre é o nome do app: o Chromium em snap roda um programa chamado chrome.
Como confirmar: procure na linha de comando inteira com -f e veja o nome real com -a:
$ pgrep -af chromium 2210 /snap/chromium/3554/usr/lib/chromium-browser/chrome --password-store 2251 /snap/chromium/3554/usr/lib/chromium-browser/chrome --type=renderer $ pgrep -l chrome 2210 chrome « o nome que o pgrep enxerga 2251 chrome
Solução: use ps aux (todos os processos) ou pgrep -af parte-do-nome. Lembre também: maiúsculas importam (use -i para ignorar), e o nome curto tem no máximo 15 caracteres (gnome-text-editor vira gnome-text-edit). Aula: ps, pgrep, top.
Missão: nesta máquina fictícia o Chromium está aberto. Tente pgrep chromium e veja que nada aparece. Depois descubra o PID dele de outro jeito.
A tela congelou, o mouse não responde, ou responde muito devagar.
Causa: quase sempre um programa consumindo toda a memória ou CPU. Às vezes é o próprio GNOME.
Como confirmar: abra um terminal de texto fora da interface com Ctrl+Alt+F3, entre com usuário e senha e veja quem está pesando:
$ ps aux --sort=-%mem | head -4 $ top
Solução, do mais leve ao mais pesado:
- Encerre o culpado:
pkill -f nomeoukill PID. Volte com Ctrl+Alt+F2. - Reinicie só a sessão gráfica:
sudo systemctl restart gdm(perde o que não foi salvo). - Reinicie a máquina:
sudo reboot. - Se nem o TTY abre: segure Alt+SysRq e aperte, devagar, S, U, B.
Aula: Quando o Sistema Trava.
Você digita e nada acontece, ou aparece um > no lugar do prompt.
$ echo "Olá > « o bash espera você fechar as aspas >
Causa e solução:
| O que aparece | Causa | Saída |
|---|---|---|
Um > no começo da linha | Aspas ou parênteses abertos | Feche as aspas ou aperte Ctrl+C |
| Nada, nem o que você digita | Você apertou Ctrl+S (congela a tela) | Ctrl+Q |
| Cursor parado depois de um comando | O comando está rodando ou esperando entrada (ex.: cat sem arquivo) | Ctrl+C cancela; Ctrl+D encerra a entrada |
Tela com : embaixo | Você está dentro do less ou do man | q |
-- INSERT -- ou ~ na lateral | Você está no vim | Esc, :q!, Enter |
Aula: O Terminal e Atalhos de Teclado.
$ ls /root ls: não é possível abrir o diretório '/root': Permissão negada $ touch /etc/teste.conf touch: não é possível executor o touch em '/etc/teste.conf': Permission denied
Causa: seu usuário não tem a permissão necessária. Fora da sua pasta pessoal, quase tudo pertence ao root. Alguns comandos do 26.04 mostram a mensagem em inglês (Permission denied); outros, em português.
Como confirmar: veja o dono e as permissões do arquivo, e quem você é:
$ ls -ld /etc drwxr-xr-x 140 root root 12288 Oct 15 08:02 /etc « só o root (rwx) escreve $ id uid=1000(ana) gid=1000(ana) groups=1000(ana),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),114(lpadmin)
Solução: se a ação é de administração (instalar, editar /etc), use sudo. Se o arquivo deveria ser seu, corrija o dono com chown. Nunca use chmod 777 como atalho. Aulas: Entendendo Permissões, sudo.
$ htop Comando 'htop' não encontrado, mas poder ser instalado com: sudo snap install htop # version 3.4.1, or sudo apt install htop # version 3.4.1-1 $ lss lss: comando não encontrado
Causa: no primeiro caso, o programa não está instalado, e o Ubuntu sugere o pacote (o "poder" é um erro da tradução original). No segundo, é erro de digitação.
Como confirmar: type nome diz se o comando existe; echo $PATH mostra onde o shell procura.
Solução: instale com sudo apt install pacote, corrija a digitação (use Tab), ou rode programas da pasta atual com ./programa. As versões na sugestão variam. Aulas: apt, .bashrc, alias, PATH.
$ cd documentos bash: cd: documentos: Arquivo ou diretório inexistente $ ls Área de trabalho ls: não é possível acessar 'Área': Arquivo ou diretório inexistente ls: não é possível acessar 'de': Arquivo ou diretório inexistente ls: não é possível acessar 'trabalho': Arquivo ou diretório inexistente
Causa: o nome não existe exatamente assim, onde você está. As três causas campeãs: maiúsculas (documentos ≠ Documentos), espaços sem aspas e estar em outra pasta.
Como confirmar: pwd mostra onde você está; ls mostra os nomes exatos.
Solução: use Tab para completar nomes (ele acerta maiúsculas e espaços) e aspas em nomes com espaço: ls "Área de trabalho". Aula: Caminhos.
$ sudo apt update [sudo: authenticate] Senha: « você digita e nada aparece: é normal
Causa: não é defeito. O terminal esconde a senha por segurança, sem nem mostrar asteriscos.
Solução: digite a senha normalmente e aperte Enter. Se errou, apague tudo com Ctrl+U e digite de novo. Aula: sudo.
$ sudo apt update [sudo: authenticate] Senha: sudo: I'm sorry joao. I'm afraid I can't do that
Causa: o usuário não está no grupo sudo, então não pode administrar a máquina. A mensagem vem do sudo-rs, em inglês.
Como confirmar: groups não mostra sudo na lista.
Solução: um administrador roda sudo usermod -aG sudo joao, e o joao sai e entra de novo na sessão. Se não há mais nenhum administrador, use o modo de recuperação. Aulas: Usuários e Grupos, Recuperar um Sistema.
$ sudo apt install htop Erro: Não foi possível obter a trava /var/lib/dpkg/lock-frontend. Ela está sendo mantida pelo processo 2147 (unattended-upgr)
Causa: outro programa está instalando pacotes agora. Na maioria das vezes são as atualizações automáticas (unattended-upgr), logo depois de ligar a máquina.
Como confirmar: ps -p 2147 -o pid,etime,cmd mostra o processo e há quanto tempo ele roda.
Solução: espere alguns minutos e tente de novo. Não apague os arquivos de trava: isso pode corromper a instalação que está em andamento. Sem sudo, a mensagem é outra: "você é root?". Aula: apt.
$ sudo apt install vscode Erro: Não é possível encontrar o pacote vscode
Causa: não existe pacote com esse nome nos repositórios configurados, ou a lista de pacotes está desatualizada.
Como confirmar: apt search termo procura o nome certo; snap find termo procura nos snaps.
Solução: rode sudo apt update e procure o nome correto. Alguns programas só existem como snap (ex.: sudo snap install code --classic) ou num repositório extra. Aulas: apt, Snap, Repositórios e PPAs.
$ sudo apt upgrade Erro: dpkg foi interrompido, você deve executar manualmente 'sudo dpkg --configure -a' para corrigir o problema.
Causa: uma instalação anterior parou no meio (máquina desligada, terminal fechado).
Solução: faça exatamente o que a mensagem pede, e depois complete as dependências:
$ sudo dpkg --configure -a $ sudo apt install -f $ sudo apt upgrade
Aula: dpkg e .deb.
$ cp video.mp4 ~/Vídeos/ cp: erro de escrita de '/home/ana/Vídeos/video.mp4': Não há espaço disponível no dispositivo
Causa: a partição encheu. Alguns comandos mostram em inglês: No space left on device.
Como confirmar: veja qual partição está cheia e depois quem está ocupando:
$ df -h / Sist. Arq. Tam. Usado Disp. Uso% Montado em /dev/nvme0n1p2 468G 468G 0 100% / « cheio $ du -h -d 1 ~ 2>/dev/null | sort -h | tail -5
Solução: apague ou mova o que for grande e inútil (Downloads, vídeos), limpe pacotes com sudo apt autoremove e sudo apt clean, e logs antigos com sudo journalctl --vacuum-time=2weeks. Aulas: lsblk, df, du, Manutenção.
Você não consegue entrar, nem usar o sudo.
Causa: sem a senha, só o root pode trocá-la, e no Ubuntu o root não tem senha. O caminho é o modo de recuperação.
Solução:
- Reinicie e segure Shift (ou aperte Esc) para ver o menu do GRUB.
- Escolha Advanced options for Ubuntu e depois a linha com (recovery mode).
- No menu, escolha root (shell de root).
- Libere a escrita e troque a senha:
#> mount -o remount,rw / #> passwd ana #> reboot
Aula: Recuperar um Sistema.
Nível 2 · Intermediário
$ ./backup.sh bash: ./backup.sh: Permissão negada $ echo $? 126 « achou o arquivo, mas não pôde executar $ ls -l backup.sh -rw-rw-r-- 1 ana ana 45 Oct 15 09:15 backup.sh « não tem nenhum x
Causa: o arquivo não tem permissão de execução.
Solução: chmod +x backup.sh e rode de novo. Outra forma, sem mudar permissão: bash backup.sh. Aulas: chmod, Primeiro Script.
$ ping -c 2 8.8.8.8 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=14.2 ms « por IP funciona $ ping -c 2 google.com ping: google.com: Nome ou serviço desconhecido « por nome não: é o DNS
Causa: se nem o IP responde, o problema é a conexão (cabo, Wi-Fi, roteador). Se o IP responde e o nome não, o problema é o DNS.
Como confirmar, em ordem:
$ ip -br a # tenho IP? $ ip r # tenho gateway (linha "default")? $ ping -c 2 192.168.0.1 # o roteador responde? $ resolvectl status # qual DNS estou usando?
Solução: reconecte o Wi-Fi ou o cabo; reinicie o roteador; se for só o DNS, configure outro servidor (ex.: 1.1.1.1) em Configurações ou com nmcli. Aulas: Conceitos de Rede, Configurar a Rede.
$ nmcli radio WIFI-HW WIFI WWAN-HW WWAN habilitado desabilitado missing habilitado « Wi-Fi desligado
Causa: são três problemas diferentes. Não liga: o rádio está bloqueado (por software, ou por uma chave/tecla). Não aparece: falta driver ou firmware para a placa. Não conecta: senha errada ou conexão salva com a senha antiga.
Como confirmar, em ordem:
$ rfkill # Wi-Fi bloqueado? (soft ou hard) $ ip -br link # existe uma placa wl…? $ lspci -k # a placa interna tem "Kernel driver in use"? $ nmcli device wifi list # a rede aparece?
Solução: bloqueio soft: rfkill unblock wifi; hard: chave, tecla Fn ou BIOS. Sem driver: Drivers Adicionais ou sudo ubuntu-drivers install. Senha: esqueça a rede e conecte de novo. Enquanto isso, use a internet do celular pelo cabo USB. Aulas: Wi-Fi, Wi-Fi que Não Funciona, Celular e Modem 4G.
$ ssh ana@192.168.0.50 ssh: connect to host 192.168.0.50 port 22: Connection refused
Causa: a máquina respondeu, mas nada está escutando na porta 22: o servidor SSH não está instalado, está parado ou usa outra porta.
Como confirmar, no servidor: systemctl status ssh e sudo ss -tlnp | grep ssh.
Solução: sudo apt install openssh-server; se usa outra porta, conecte com ssh -p PORTA. Aula: SSH.
$ ssh ana@192.168.0.50 ssh: connect to host 192.168.0.50 port 22: Connection timed out
Causa: ninguém respondeu: IP errado, máquina desligada, outra rede, ou um firewall descartando a conexão.
Como confirmar: ping 192.168.0.50 e, no servidor, sudo ufw status.
Solução: confira o IP com ip -br a no servidor e libere o SSH no firewall: sudo ufw allow ssh. Aulas: SSH, Firewall (ufw).
$ ssh ana@192.168.0.50 ana@192.168.0.50: Permission denied (publickey).
Causa: o servidor só aceita chaves, e a sua chave não está no ~/.ssh/authorized_keys dele (ou as permissões dessa pasta estão abertas demais).
Como confirmar: ssh -v ana@192.168.0.50 mostra quais chaves foram oferecidas.
Solução: instale a chave (ssh-copy-id, enquanto ainda há outra forma de acesso) e confira no servidor: chmod 700 ~/.ssh e chmod 600 ~/.ssh/authorized_keys. Aula: SSH.
$ ssh ana@192.168.0.50 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Causa: a "impressão digital" do servidor mudou desde a última conexão. Isso é normal se você reinstalou a máquina ou o IP passou a ser de outra. Se não fez nada disso, pode ser um ataque.
Solução: só se você sabe por que mudou, apague a impressão antiga e conecte de novo: ssh-keygen -R 192.168.0.50. Aula: SSH.
$ sudo systemctl restart nginx Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
Causa: quase sempre um erro de configuração, uma porta ocupada ou um caminho errado no ExecStart (o código status=203/EXEC significa "não consegui executar o programa").
Como confirmar: a própria mensagem diz onde olhar:
$ systemctl status nginx $ journalctl -u nginx -n 20 --no-pager $ sudo nginx -t # muitos programas têm um teste de configuração
Solução: corrija a linha que o log aponta e rode sudo systemctl restart de novo. Se você editou um arquivo .service, rode antes sudo systemctl daemon-reload. Aulas: systemctl, Logs (journalctl), Criar um Serviço.
No terminal o script funciona, mas no horário marcado nada acontece.
Causa: o cron roda com um ambiente mínimo: o PATH é curto, não há ~/.bashrc e a pasta de trabalho é a home. Comandos sem caminho completo e caminhos relativos falham em silêncio.
Como confirmar: veja se o cron tentou rodar e guarde a saída num log:
$ grep CRON /var/log/syslog | tail -3 $ crontab -l
Solução: use caminhos absolutos (/home/ana/bin/backup.sh), dê chmod +x ao script, e mande a saída para um arquivo: … >> /home/ana/backup.log 2>&1. Aula: Agendar Tarefas (cron).
Causa: uma de quatro coisas está no limite: CPU, memória, disco ou rede.
Como confirmar: compare a carga com o número de CPUs e veja a memória:
$ uptime 10:30:00 up 2:31, 1 user, load average: 6,12, 3,40, 1,95 $ nproc 8 « carga 6 com 8 CPUs: alta, mas ainda cabe $ free -h $ top # P ordena por CPU, M por memória
Solução: encerre o processo que pesa; se a memória acaba sempre, feche abas ou aumente a swap; se o problema é o disco, veja o próximo item. Aula: Desempenho e Monitoramento.
Causa: algum processo lendo ou gravando muito, disco quase cheio, ou um disco começando a falhar.
Como confirmar:
$ iostat -x 2 3 # %util perto de 100 = disco no limite (pacote sysstat) $ sudo iotop -o # quem está usando o disco agora $ sudo smartctl -H /dev/sda # saúde do disco (pacote smartmontools)
Solução: encerre o processo responsável; libere espaço; se o SMART indicar falha, faça backup imediatamente e troque o disco. Aulas: Desempenho e Monitoramento, Backup.
Nível 3 · Avançado
#> touch /teste touch: cannot touch '/teste': Read-only file system
Causa: a partição está montada só para leitura. No modo de recuperação isso é proposital. Fora dele, o kernel faz isso sozinho quando detecta erros no disco, para não piorar o estrago.
Como confirmar: findmnt / mostra ro nas opções; dmesg -T | tail mostra erros de disco, se houver.
Solução: no recovery, mount -o remount,rw /. Se foi por erro de disco, faça backup e rode fsck com a partição desmontada (a partir de um pendrive). Aula: Recuperar um Sistema.
You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, or "exit" to boot into default mode. Cannot open access to console, the root account is locked.
Causa: uma linha do /etc/fstab aponta para um disco que não existe (UUID errado, disco removido) ou tem erro de digitação.
Solução: entre no modo de recuperação (shell de root), libere a escrita e corrija o fstab:
#> mount -o remount,rw / #> nano /etc/fstab #> findmnt --verify #> reboot
Para discos que nem sempre estão ligados, use a opção nofail, e sempre teste com sudo findmnt --verify e sudo mount -a antes de reiniciar. Aulas: mount e fstab, Recuperar um Sistema.
Causa: geralmente um kernel novo ou um driver de vídeo que não se deu bem com o hardware.
Solução:
- Tente um TTY (Ctrl+Alt+F3). Se ele abre, o problema é só gráfico: veja
journalctl -b -p err. - Reinicie, abra o menu do GRUB (Shift ou Esc) e, em Advanced options for Ubuntu, escolha o kernel anterior.
- Se funcionar, o culpado é o kernel novo: mantenha o anterior até sair uma correção.
- Para testar sem driver de vídeo, no GRUB aperte e e acrescente
nomodesetà linhalinux(vale só para esse boot).
Aula: Boot, GRUB e Kernel.
$ journalctl -u nginx -n 1 --no-pager Oct 15 14:10:22 servidor nginx[3112]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Causa: outro programa já ocupa a porta (outro servidor web, um container, uma cópia antiga do mesmo serviço).
Como confirmar: veja quem está escutando:
$ sudo ss -tlnp | grep ':80 '
Solução: pare o outro programa (sudo systemctl stop apache2, docker stop nome) ou mude a porta de um dos dois. Aulas: ip, ping, ss, Servidor Web (nginx).
$ curl -I -H "Host: app.local" http://localhost HTTP/1.1 502 Bad Gateway $ sudo tail -1 /var/log/nginx/error.log 2026/10/15 13:55:02 [error] 2210#2210: *17 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: app.local, request: "HEAD / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "app.local"
Causa: o nginx funciona, mas a aplicação por trás dele (o "upstream", aqui na porta 3000) está parada ou em outra porta.
Solução: suba a aplicação (systemctl status app, docker ps) e confira se a porta do proxy_pass é a mesma em que ela escuta (ss -tlnp). Aula: Servidor Web (nginx).
$ docker ps permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Causa: seu usuário não está no grupo docker, que dá acesso ao serviço do Docker.
Solução: sudo usermod -aG docker $USER, depois saia e entre na sessão (ou rode newgrp docker). Atenção: quem está no grupo docker tem, na prática, poder de root. Aula: Docker.
$ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall está ativo e habilitado na inicialização do sistema
Causa: o ufw bloqueia toda entrada por padrão. Se o SSH não foi liberado antes, a próxima conexão é recusada.
Solução: você precisa de outro acesso: o console do provedor de nuvem, o teclado do servidor ou, numa VM, a janela dela. Lá, rode sudo ufw allow OpenSSH (ou sudo ufw allow 22/tcp). Da próxima vez, libere o SSH antes de ufw enable. Aulas: Firewall (ufw), Segurança do Servidor.
Exercícios
1. ping 8.8.8.8 responde, mas ping ubuntu.com dá "Nome ou serviço desconhecido". Onde está o problema?
2. O apt diz que a trava está com o processo unattended-upgr. O que fazer?
3. ./script.sh devolve "Permissão negada" e echo $? mostra 126. Qual é a correção mais direta?