Perguntas de Linux em entrevistas: 24 perguntas com respostas
Em entrevistas de Linux, as perguntas mais frequentes tratam da estrutura do sistema de arquivos e dos inodes, de links físicos e simbólicos, de permissões e sudo, de processos e sinais, da inicialização do sistema e da rede: como verificar portas abertas, como funciona a resolução DNS e o que fazer quando o servidor não responde.
Perguntas sobre Linux aparecem em entrevistas para engenheiros DevOps, administradores de sistemas, SREs e desenvolvedores back-end. O entrevistador raramente espera que você decore flags de comandos: o que importa é entender como o sistema funciona e conseguir chegar à causa de um problema. A seguir estão as perguntas de Linux mais comuns em entrevistas, do básico ao diagnóstico, com respostas e comandos.
Dica: ao responder, cite o comando com que você verificaria sua afirmação. A frase «eu verificaria com ss -tlnp» soa muito mais convincente do que respostas genéricas.
Sistema de arquivos
1. O que é o FHS e o que fica nos principais diretórios?
O FHS (Filesystem Hierarchy Standard) é o padrão que define a localização dos diretórios. Toda a árvore começa na raiz /; não existem discos separados com letras, e os outros sistemas de arquivos são montados em diretórios dessa árvore.
/etc: configuração do sistema e dos serviços;/var: dados que mudam: logs (/var/log), cache, filas, bancos de dados;/home: diretórios pessoais dos usuários;/rooté o diretório pessoal do root;/usr: programas e bibliotecas; nas distribuições atuais,/bine/sbincostumam ser links para/usr/bine/usr/sbin;/tmp: arquivos temporários;/boot: kernel e gerenciador de boot;/proce/sys: sistemas de arquivos virtuais com informações de processos e do kernel;/dev: arquivos de dispositivos.
2. O que é um inode?
O inode é a estrutura do sistema de arquivos que guarda os metadados de um arquivo: tipo, permissões, dono, tamanho, datas, número de links físicos e ponteiros para os blocos de dados. O inode não contém o nome do arquivo: o nome fica no diretório, como um par «nome → número do inode».
O número do inode aparece com ls -i, e os detalhes com stat file. A quantidade de inodes de um sistema de arquivos é limitada, e df -i mostra quantos estão em uso. Daí a situação clássica «tem espaço no disco, mas não é possível criar arquivos»: os inodes se esgotaram por causa de milhões de arquivos pequenos.
3. Qual a diferença entre link físico (hard link) e link simbólico?
O link físico (ln file link) é outro nome para o mesmo inode. Os dois nomes são equivalentes, e os dados só são apagados quando o contador de links chega a zero. Há limites: não é possível criar link físico para um diretório, nem atravessar a fronteira de um sistema de arquivos.
O link simbólico (ln -s target link) é um arquivo separado, com inode próprio, que contém o caminho do alvo. Ele pode apontar para um diretório ou para outro sistema de arquivos, mas fica «quebrado» se o alvo for apagado ou movido.
4. O disco está cheio, mas o du mostra menos do que o df. Por quê?
A causa mais comum é um arquivo que foi apagado, mas ainda está aberto por algum processo, como um log grande de um serviço em execução. O nome já não existe, por isso o du não o enxerga, mas os blocos continuam ocupados, e o df os contabiliza.
Esses arquivos podem ser encontrados com lsof +L1 ou lsof | grep deleted. A solução é reiniciar o processo ou truncar o arquivo pelo descritor: : > /proc/PID/fd/N. No futuro, limpe logs com truncate ou com a rotação do logrotate, e não com rm.
5. Como acontece a inicialização do Linux?
O firmware (BIOS ou UEFI) inicializa o hardware e passa o controle ao gerenciador de boot, geralmente o GRUB. O gerenciador lê a configuração e carrega na memória o kernel e o initramfs, um sistema de arquivos raiz temporário com os drivers necessários para acessar a raiz real.
O kernel inicializa os dispositivos, monta o sistema de arquivos raiz e inicia o primeiro processo do espaço do usuário, com PID 1, que na maioria das distribuições é o systemd. O systemd sobe os serviços até o target padrão, como o multi-user.target. O tempo de cada etapa aparece com systemd-analyze.
6. O que faz o comando mount, e onde se configura a montagem automática?
O mount conecta um sistema de arquivos de um dispositivo a um diretório (ponto de montagem): mount /dev/sdb1 /mnt/data. As montagens atuais são exibidas com findmnt ou com mount sem argumentos.
A montagem na inicialização é descrita em /etc/fstab. Nele, é melhor indicar os dispositivos pelo UUID (que aparece em blkid) e não pelo nome /dev/sdb1, que pode mudar. Antes de reiniciar, verifique as alterações com mount -a: um erro no fstab pode impedir a inicialização.
Usuários e permissões
7. Como funcionam as permissões no Linux?
Todo arquivo tem um dono, um grupo e três conjuntos de permissões: para o dono, para o grupo e para os demais. Cada conjunto contém r (leitura), w (escrita) e x (execução). Na forma numérica, r=4, w=2 e x=1; assim, chmod 640 file dá ao dono leitura e escrita, ao grupo leitura e aos demais nenhuma permissão.
$ ls -l app.conf
-rw-r----- 1 deploy www-data 512 Oct 12 10:03 app.conf
O dono é alterado com chown user:group file, e as permissões com chmod.
8. O que significam r, w e x para um diretório?
Para diretórios o significado é outro: r permite obter a lista de nomes, w permite criar, apagar e renomear arquivos dentro dele, e x permite entrar no diretório e acessar arquivos pelo nome.
Daí a consequência importante: quem tem permissão de escrita em um diretório pode apagar um arquivo nele, mesmo que o arquivo não seja seu. Sem x no diretório, de nada adianta o r: os nomes aparecem, mas os arquivos não podem ser abertos.
9. O que são SUID, SGID e sticky bit?
O bit SUID em um executável faz o programa rodar com os privilégios do dono do arquivo, e não de quem o executou. O exemplo clássico é /usr/bin/passwd: ele pertence ao root e pode alterar /etc/shadow. O SGID em um arquivo faz o mesmo com o grupo; em um diretório, faz os arquivos novos herdarem o grupo do diretório, o que é útil para pastas compartilhadas.
O sticky bit em um diretório permite apagar arquivos apenas ao seu dono, mesmo que o diretório seja gravável por todos. É assim que funciona o /tmp: em ls -ld /tmp aparece drwxrwxrwt. Para auditar todos os arquivos SUID do sistema use find / -perm -4000 -type f 2>/dev/null.
10. O que é o umask?
O umask é uma máscara que remove permissões de arquivos e diretórios novos. As permissões básicas são 666 para arquivos e 777 para diretórios, e o umask subtrai os bits indicados. Com o valor comum 022, os arquivos são criados com 644 e os diretórios com 755. O valor atual é mostrado pelo comando umask.
11. Onde ficam guardados os usuários e as senhas?
As contas ficam em /etc/passwd: nome, UID, GID do grupo principal, diretório pessoal e shell. Os hashes das senhas ficam separados em /etc/shadow, que só o root consegue ler, para que usuários comuns não possam pegar os hashes e tentar quebrá-los. Os grupos ficam em /etc/group.
As informações de um usuário podem ser vistas com id user e getent passwd user; o segundo também consulta fontes externas, como LDAP.
12. Como funciona o sudo, e por que ele é melhor do que entrar como root?
O sudo executa um comando como outro usuário (por padrão, root), segundo as regras de /etc/sudoers e dos arquivos em /etc/sudoers.d/. O usuário digita a própria senha, não a do root, e cada ação é registrada no log com quem a executou.
Uma regra pode permitir tudo (alena ALL=(ALL:ALL) ALL) ou apenas comandos específicos. O sudoers deve ser editado com visudo, que verifica a sintaxe antes de salvar, de modo que um erro não tira o seu acesso ao sudo. No Ubuntu, os direitos de administrador são dados pela participação no grupo sudo; nos sistemas RHEL, pelo grupo wheel.
13. Como adicionar um usuário a um grupo, e por que a mudança não surtiu efeito?
O comando usermod -aG docker alena adiciona o usuário a um grupo extra. A opção -a é obrigatória: sem ela, o -G substitui toda a lista de grupos.
A mudança vale depois de um novo login, porque a sessão atual mantém a lista antiga de grupos. Você pode sair e entrar de novo, ou abrir um shell com o novo grupo com newgrp docker. Para conferir, use id.
Processos
14. O que é um processo e um PID? Como listar os processos?
Um processo é um programa em execução, com espaço de endereçamento próprio, arquivos abertos e um identificador PID. Cada processo tem um pai (PPID), e o ancestral comum de todos os processos é o de PID 1. A lista de processos é exibida por ps aux e ps -ef; a árvore, por pstree ou ps -ef --forest; e a visão em tempo real, por top e htop.
15. Qual a diferença entre SIGTERM e SIGKILL?
kill PID envia, por padrão, o SIGTERM (15), que é um pedido educado para encerrar. O processo pode capturá-lo, fechar conexões, salvar dados e sair. O SIGKILL (9, ou kill -9) não pode ser capturado: o kernel encerra o processo imediatamente, sem nenhuma limpeza.
A ordem correta é enviar primeiro o SIGTERM e usar o SIGKILL apenas se o processo não responder. Outro sinal comum é o SIGHUP: muitos daemons releem a configuração ao recebê-lo.
16. O que é um processo zumbi?
Um zumbi é um processo que já terminou, mas cujo pai ainda não leu o código de retorno com a chamada wait(). Ele quase não consome recursos, mas permanece na tabela de processos. No ps, seu estado aparece como Z.
Não é possível matar um zumbi, porque ele já está morto. É preciso que o pai o recolha: corrigir o programa pai, ou encerrar o pai; nesse caso, o zumbi é adotado pelo PID 1, que o recolhe.
17. O que mostra o load average?
Os três números em uptime e top são a média de processos prontos para executar nos últimos 1, 5 e 15 minutos. No Linux, também entram nessa conta os processos em espera ininterrupta (estado D), geralmente esperando pelo disco.
O valor é comparado com o número de núcleos (nproc): carga 4 em 4 núcleos significa carga total; em 16 núcleos, apenas um quarto. Carga alta com baixo uso de CPU costuma indicar problema de E/S, que se verifica com iostat ou com o campo wa do top.
Rede
18. Como ver endereços IP, rotas e portas abertas?
Os endereços das interfaces são vistos com ip a, e a tabela de rotas com ip r. Os antigos ifconfig e netstat, do pacote net-tools, não vêm instalados por padrão em muitas distribuições.
As portas em escuta e os processos que as abriram são mostrados por ss -tlnp: t para TCP, l para somente as que estão em escuta, n para não converter nomes, p para mostrar o processo. Para UDP, use ss -ulnp.
$ sudo ss -tlnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=812,fd=6))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=640,fd=3))
19. Um serviço escuta em 127.0.0.1:8080. Dá para acessá-lo de fora?
Não. O endereço 127.0.0.1 é a interface de loopback, acessível somente a partir da própria máquina. Para aceitar conexões externas, o serviço deve escutar no endereço da interface externa ou em 0.0.0.0 (todos os endereços IPv4). Essa é uma causa frequente de «a porta está aberta, mas não funciona de fora», junto com o firewall.
20. Como o Linux converte um nome de host em endereço IP?
A ordem das fontes é definida pela linha hosts: em /etc/nsswitch.conf, normalmente primeiro o arquivo /etc/hosts e depois o DNS. Os endereços dos servidores DNS vêm de /etc/resolv.conf; em sistemas com systemd-resolved, ali aparece o endereço local 127.0.0.53, e os servidores reais são mostrados por resolvectl status.
Para testar, use dig example.com ou dig @1.1.1.1 example.com (consulta a um servidor específico). Uma sutileza importante: dig e nslookup consultam o DNS diretamente e não leem /etc/hosts, enquanto getent hosts example.com segue o mesmo caminho que as aplicações.
21. Qual a diferença entre TCP e UDP?
O TCP estabelece uma conexão (aperto de mão em três etapas: SYN, SYN-ACK, ACK), garante a entrega e a ordem dos dados e retransmite pacotes perdidos. Sobre ele funcionam HTTP, SSH e a maioria dos bancos de dados. O UDP envia datagramas sem conexão e sem garantias, mas com menor latência; é usado em consultas DNS, chamadas de vídeo e jogos.
22. O site não abre. Como você procura a causa?
Seguindo as camadas, do nome até a aplicação:
- O nome resolve?
dig site.example, e o endereço é o esperado? - O host responde?
ping(pode estar bloqueado),tracerouteoumtr. - A porta está aberta?
nc -zv host 443oucurl -v https://site.example. - No servidor: o serviço está ativo (
systemctl status nginx), a porta está em escuta (ss -tlnp), o firewall está bloqueando (sudo nft list ruleset,sudo ufw status)? - Os logs da aplicação e o
journalctl -udo serviço.
O entrevistador valoriza a ordem sistemática, e não um conjunto específico de ferramentas.
23. O que é o estado TIME_WAIT?
Depois que uma conexão TCP é fechada, o lado que a fechou primeiro mantém o socket em TIME_WAIT por algum tempo, para que pacotes atrasados da conexão antiga não entrem em uma nova conexão com os mesmos endereços e portas. Muitos TIME_WAIT são normais em um servidor muito carregado ou em um cliente que abre muitas conexões curtas. Para contá-los: ss -tan state time-wait | wc -l.
24. Qual a diferença entre /etc/hosts e DNS, e quando usar o primeiro?
/etc/hosts é uma tabela estática «endereço — nome» em uma máquina específica. Com o nsswitch padrão, ela é consultada antes do DNS e é útil para testes, por exemplo para apontar um domínio para um servidor novo antes de trocar os registros DNS. O DNS é um sistema distribuído, cujas respostas são as mesmas para todos os clientes. Um erro no /etc/hosts é causa comum da situação «o site abre aqui, mas não abre para os outros».
Conclusão
As perguntas de Linux em entrevistas avaliam três coisas: se você entende o modelo do sistema (inodes, permissões, processos, inicialização), se conhece as ferramentas de diagnóstico (ss, dig, journalctl, lsof) e se sabe procurar a causa passo a passo. Responda com comandos e exemplos vindos da prática. Sistema de arquivos, permissões e rede são explicados em detalhes e com prática no curso de Linux.
Perguntas frequentes
O que costuma ser perguntado sobre Linux em entrevistas para DevOps júnior?
Normalmente o básico: navegação e permissões, processos e systemctl, leitura de logs, comandos de rede como ip, ss, dig e curl, e fundamentos de scripts bash. Também é comum uma tarefa prática, como «encontre o que está enchendo o disco».
Preciso decorar as flags dos comandos?
Não. É aceitável dizer que você consultaria a opção no man. O mais importante é entender qual ferramenta resolve cada problema e o que significa a sua saída.
Qual distribuição estudar para a entrevista?
Qualquer distribuição popular de servidor: Ubuntu, Debian, ou uma compatível com RHEL, como o Rocky Linux. Os fundamentos são os mesmos; as diferenças principais são o gerenciador de pacotes e os nomes de alguns serviços.
Como me preparar para a parte prática da entrevista?
Suba uma máquina virtual e resolva tarefas reais: configure um servidor web como serviço systemd, habilite o login por chave SSH, configure o firewall e encontre um processo pela porta. Explicar em voz alta os seus passos também faz parte da preparação.
Este tema é abordado em profundidade, com prática, no curso “Linux: с нуля до уверенного администрирования”.
- Как устроена файловая система Linux: от корня до загрузки ядра
- Пользователи, права доступа и sudo: кто и что может делать в системе
- Сеть в Linux: от IP-адреса до сокета и DNS