6 - Configuração de Rede e Conectividade

Conceitos Básicos de Rede Modelo TCP/IP A T I E p r n n l a t l i n e a c s r c a p n e ç o e ã r t o t e → → → → H T I E T C P t T P , h P , e , I r U C n S D M e S P P t H , , W F i T - P F , i D N S Endereçamento IP IPv4: 192.168.1.100 ...

February 2, 2026 · Fabrício Machado

7 - Uso Avançado do Terminal e Scripts

Bash Scripting Básico Primeiro Script 1 2 3 4 5 6 7 #!/bin/bash # meu_script.sh echo "Olá, mundo!" echo "Usuário: $USER" echo "Diretório: $PWD" echo "Data: $(date)" Tornar executável: 1 2 chmod +x meu_script.sh ./meu_script.sh Shebang 1 2 3 4 #!/bin/bash # Bash #!/bin/sh # Shell POSIX #!/usr/bin/env bash # Bash (portável) #!/usr/bin/python3 # Python Variáveis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/bin/bash # Definir variável NOME="João" IDADE=30 # Usar variável echo "Nome: $NOME" echo "Idade: ${IDADE}" # Variáveis de ambiente echo "Home: $HOME" echo "Path: $PATH" # Comando em variável DATA=$(date +%Y-%m-%d) ARQUIVOS=$(ls -1 | wc -l) echo "Data: $DATA" echo "Arquivos: $ARQUIVOS" Argumentos 1 2 3 4 5 6 7 #!/bin/bash echo "Script: $0" echo "Primeiro argumento: $1" echo "Segundo argumento: $2" echo "Todos argumentos: $@" echo "Número de argumentos: $#" Uso: ...

February 2, 2026 · Fabrício Machado

8 - Segurança no Linux

Princípios de Segurança Defesa em Profundidade Múltiplas camadas de segurança: Firewall Autenticação forte Permissões adequadas Atualizações regulares Monitoramento Backup Princípio do Menor Privilégio Usuários e processos devem ter apenas as permissões necessárias. Gerenciamento de Usuários Criar Usuário 1 2 3 4 5 6 7 8 9 10 11 # Criar usuário sudo useradd -m -s /bin/bash usuario # Definir senha sudo passwd usuario # Criar com home e grupos sudo useradd -m -G sudo,docker -s /bin/bash usuario # Criar usuário de sistema (sem login) sudo useradd -r -s /usr/sbin/nologin servico Modificar Usuário 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Adicionar a grupo sudo usermod -aG sudo usuario # Mudar shell sudo usermod -s /bin/zsh usuario # Bloquear usuário sudo usermod -L usuario # Desbloquear sudo usermod -U usuario # Expirar senha sudo passwd -e usuario Deletar Usuário 1 2 3 4 5 # Deletar usuário (mantém home) sudo userdel usuario # Deletar com home sudo userdel -r usuario Gerenciar Grupos 1 2 3 4 5 6 7 8 9 10 11 # Criar grupo sudo groupadd developers # Adicionar usuário a grupo sudo usermod -aG developers usuario # Ver grupos do usuário groups usuario # Deletar grupo sudo groupdel developers Arquivos Importantes 1 2 3 4 5 6 7 8 9 10 11 12 # Usuários /etc/passwd # Senhas (hash) /etc/shadow # Grupos /etc/group # Configuração padrão /etc/login.defs /etc/default/useradd Sudo - Privilégios Administrativos Configurar sudo 1 2 # Editar sudoers (SEMPRE use visudo) sudo visudo Exemplos: ...

February 2, 2026 · Fabrício Machado

9 - Administração Avançada e Troubleshooting

Gerenciamento de Processos ps - Process Status 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # Todos processos ps aux # Processos do usuário ps -u usuario # Árvore de processos ps auxf pstree # Processos por CPU ps aux --sort=-%cpu | head # Processos por memória ps aux --sort=-%mem | head # Informações específicas ps -eo pid,user,cmd,%cpu,%mem top - Monitor em Tempo Real 1 2 3 4 5 6 7 8 9 10 # Iniciar top top # Comandos dentro do top: # h - ajuda # k - matar processo # r - renice processo # M - ordenar por memória # P - ordenar por CPU # q - sair htop - Top Melhorado 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Instalar sudo apt install htop # Executar htop # Recursos: # F2 - configuração # F3 - buscar # F4 - filtrar # F5 - árvore # F6 - ordenar # F9 - matar # F10 - sair kill - Terminar Processos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Matar por PID kill 1234 # Forçar término kill -9 1234 kill -SIGKILL 1234 # Término gracioso kill -15 1234 kill -SIGTERM 1234 # Matar por nome killall firefox pkill firefox # Matar processos do usuário pkill -u usuario nice e renice - Prioridade 1 2 3 4 5 6 7 8 # Iniciar com prioridade (-20 a 19, menor = maior prioridade) nice -n 10 comando # Alterar prioridade renice -n 5 -p 1234 # Prioridade por usuário renice -n 10 -u usuario Processos em Background 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Executar em background comando & # Listar jobs jobs # Trazer para foreground fg %1 # Enviar para background bg %1 # Suspender processo (Ctrl+Z) # Depois: bg para continuar em background # Desassociar do terminal nohup comando & systemd - Gerenciamento de Serviços systemctl - Controle de Serviços 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # Status do serviço systemctl status nginx # Iniciar serviço sudo systemctl start nginx # Parar serviço sudo systemctl stop nginx # Reiniciar serviço sudo systemctl restart nginx # Recarregar configuração sudo systemctl reload nginx # Habilitar no boot sudo systemctl enable nginx # Desabilitar no boot sudo systemctl disable nginx # Verificar se está habilitado systemctl is-enabled nginx # Verificar se está ativo systemctl is-active nginx Listar Serviços 1 2 3 4 5 6 7 8 9 10 11 # Todos serviços systemctl list-units --type=service # Serviços ativos systemctl list-units --type=service --state=active # Serviços que falharam systemctl list-units --type=service --state=failed # Serviços habilitados systemctl list-unit-files --type=service --state=enabled Criar Serviço Customizado 1 sudo vim /etc/systemd/system/meuapp.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [Unit] Description=Minha Aplicação After=network.target [Service] Type=simple User=usuario WorkingDirectory=/opt/meuapp ExecStart=/opt/meuapp/start.sh Restart=always RestartSec=10 [Install] WantedBy=multi-user.target 1 2 3 4 5 6 # Recarregar systemd sudo systemctl daemon-reload # Habilitar e iniciar sudo systemctl enable meuapp sudo systemctl start meuapp Targets (Runlevels) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # Ver target atual systemctl get-default # Mudar target padrão sudo systemctl set-default multi-user.target # Targets comuns: # poweroff.target (runlevel 0) # rescue.target (runlevel 1) # multi-user.target (runlevel 3) # graphical.target (runlevel 5) # reboot.target (runlevel 6) # Mudar para target sudo systemctl isolate multi-user.target Gerenciamento de Disco df - Disk Free 1 2 3 4 5 6 7 8 # Espaço em disco df -h # Inodes df -i # Tipo de filesystem df -T du - Disk Usage 1 2 3 4 5 6 7 8 # Tamanho do diretório du -sh /var # Top 10 maiores diretórios du -h /var | sort -rh | head -10 # Tamanho de cada subdiretório du -h --max-depth=1 /var lsblk - Listar Dispositivos de Bloco 1 2 3 4 5 6 7 8 # Listar dispositivos lsblk # Com filesystem lsblk -f # Tamanhos em bytes lsblk -b fdisk - Particionar Disco 1 2 3 4 5 6 7 8 9 10 11 12 13 # Listar partições sudo fdisk -l # Particionar disco sudo fdisk /dev/sdb # Comandos dentro do fdisk: # m - ajuda # p - listar partições # n - nova partição # d - deletar partição # w - salvar e sair # q - sair sem salvar Formatar Partição 1 2 3 4 5 6 7 8 9 10 11 # ext4 sudo mkfs.ext4 /dev/sdb1 # xfs sudo mkfs.xfs /dev/sdb1 # btrfs sudo mkfs.btrfs /dev/sdb1 # Com label sudo mkfs.ext4 -L dados /dev/sdb1 Montar Filesystem 1 2 3 4 5 6 7 8 # Montar temporário sudo mount /dev/sdb1 /mnt # Desmontar sudo umount /mnt # Montar permanente (/etc/fstab) sudo vim /etc/fstab # / U d U < e I d v D e / = s x i d x c b x e 1 > < / / m d b o a a u d c n o k t s u > p < e e t x x y t t p 4 4 e > d d o e e p f f t a a i u u o l l n t t s s s > , n o a t i m e < 0 d 0 u m p > < 2 2 p a s s > 1 2 3 4 5 # Montar tudo do fstab sudo mount -a # Ver UUID sudo blkid LVM - Logical Volume Manager 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # Criar Physical Volume sudo pvcreate /dev/sdb1 # Criar Volume Group sudo vgcreate vg_dados /dev/sdb1 # Criar Logical Volume sudo lvcreate -L 10G -n lv_dados vg_dados # Formatar sudo mkfs.ext4 /dev/vg_dados/lv_dados # Montar sudo mount /dev/vg_dados/lv_dados /dados # Estender LV sudo lvextend -L +5G /dev/vg_dados/lv_dados sudo resize2fs /dev/vg_dados/lv_dados # Ver informações sudo pvdisplay sudo vgdisplay sudo lvdisplay RAID 1 2 3 4 5 6 7 8 9 # Criar RAID 1 (espelhamento) sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 # Ver status cat /proc/mdstat sudo mdadm --detail /dev/md0 # Salvar configuração sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf Monitoramento de Performance vmstat - Virtual Memory Statistics 1 2 3 4 5 # Estatísticas a cada 2 segundos vmstat 2 # 10 amostras vmstat 2 10 iostat - I/O Statistics 1 2 3 4 5 6 7 8 9 10 11 # Instalar sudo apt install sysstat # Estatísticas de I/O iostat # Detalhado iostat -x # A cada 2 segundos iostat -x 2 iotop - I/O por Processo 1 2 3 4 5 # Instalar sudo apt install iotop # Executar sudo iotop sar - System Activity Reporter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # CPU sar -u 2 10 # Memória sar -r 2 10 # I/O sar -b 2 10 # Rede sar -n DEV 2 10 # Histórico (requer sysstat habilitado) sar -u -f /var/log/sysstat/sa01 free - Memória 1 2 3 4 5 # Uso de memória free -h # Atualizar a cada 2 segundos free -h -s 2 uptime - Tempo de Atividade 1 2 3 4 5 # Uptime e load average uptime # Load average: 1min, 5min, 15min # Ideal: < número de CPUs Troubleshooting Comum Sistema Lento 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 1. Verificar load average uptime # 2. Verificar CPU top htop # 3. Verificar memória free -h # 4. Verificar disco df -h iostat -x # 5. Verificar processos ps aux --sort=-%cpu | head ps aux --sort=-%mem | head # 6. Verificar I/O sudo iotop Disco Cheio 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 1. Verificar uso df -h # 2. Encontrar maiores diretórios sudo du -h / | sort -rh | head -20 # 3. Encontrar arquivos grandes sudo find / -type f -size +100M -exec ls -lh {} \; # 4. Limpar logs sudo journalctl --vacuum-time=7d sudo find /var/log -name "*.log" -mtime +30 -delete # 5. Limpar cache de pacotes sudo apt clean sudo dnf clean all # 6. Remover pacotes órfãos sudo apt autoremove Processo Travado 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 1. Identificar PID ps aux | grep processo # 2. Ver detalhes sudo lsof -p PID sudo strace -p PID # 3. Tentar término gracioso kill PID # 4. Forçar término kill -9 PID # 5. Se não funcionar, verificar estado ps aux | grep PID # Estado D (uninterruptible sleep) = problema de I/O Rede não Funciona 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 1. Verificar interface ip link show # 2. Verificar IP ip addr show # 3. Verificar rota ip route show # 4. Testar gateway ping 192.168.1.1 # 5. Testar DNS ping 8.8.8.8 ping google.com # 6. Verificar DNS cat /etc/resolv.conf # 7. Reiniciar rede sudo systemctl restart NetworkManager Serviço não Inicia 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 1. Ver status sudo systemctl status servico # 2. Ver logs sudo journalctl -u servico -n 50 # 3. Verificar configuração sudo servico -t # nginx, apache sudo servico configtest # 4. Verificar permissões ls -l /etc/servico/ ls -l /var/log/servico/ # 5. Verificar porta sudo ss -tlnp | grep :80 # 6. Verificar SELinux/AppArmor sudo ausearch -m avc -ts recent sudo aa-status Boot Lento 1 2 3 4 5 6 7 8 9 10 11 # Analisar tempo de boot systemd-analyze # Serviços mais lentos systemd-analyze blame # Gráfico de boot systemd-analyze plot > boot.svg # Verificar serviços habilitados systemctl list-unit-files --type=service --state=enabled Memória Alta 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 1. Ver uso free -h # 2. Processos por memória ps aux --sort=-%mem | head # 3. Limpar cache (seguro) sudo sync sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches' # 4. Verificar swap swapon --show # 5. Ver OOM killer logs sudo dmesg | grep -i "out of memory" sudo journalctl -k | grep -i "out of memory" Logs e Diagnóstico dmesg - Kernel Ring Buffer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Ver mensagens do kernel dmesg # Últimas mensagens dmesg | tail # Buscar erros dmesg | grep -i error # Tempo legível dmesg -T # Seguir em tempo real dmesg -w strace - Rastrear System Calls 1 2 3 4 5 6 7 8 9 10 11 # Rastrear comando strace ls # Rastrear processo em execução sudo strace -p PID # Salvar em arquivo strace -o trace.txt comando # Estatísticas strace -c comando lsof - List Open Files 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Arquivos abertos por processo sudo lsof -p PID # Processos usando arquivo sudo lsof /var/log/syslog # Processos usando porta sudo lsof -i :80 # Arquivos abertos por usuário sudo lsof -u usuario # Conexões de rede sudo lsof -i Backup e Recuperação Backup do Sistema 1 2 3 4 5 6 7 8 9 10 11 12 13 # Backup completo (excluindo temporários) sudo tar czf backup_sistema_$(date +%Y%m%d).tar.gz \ --exclude=/proc \ --exclude=/sys \ --exclude=/dev \ --exclude=/tmp \ --exclude=/run \ --exclude=/mnt \ --exclude=/media \ / # Restaurar sudo tar xzf backup_sistema.tar.gz -C /mnt/restauracao/ Timeshift - Snapshots 1 2 3 4 5 6 7 8 9 10 11 # Instalar sudo apt install timeshift # Criar snapshot sudo timeshift --create --comments "Antes da atualização" # Listar snapshots sudo timeshift --list # Restaurar sudo timeshift --restore rsnapshot - Backups Incrementais 1 2 3 4 5 6 7 8 # Instalar sudo apt install rsnapshot # Configurar sudo vim /etc/rsnapshot.conf # Executar backup sudo rsnapshot daily Performance Tuning Swappiness 1 2 3 4 5 6 7 8 # Ver valor atual (0-100, padrão 60) cat /proc/sys/vm/swappiness # Definir temporário sudo sysctl vm.swappiness=10 # Permanente echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf I/O Scheduler 1 2 3 4 5 6 7 8 # Ver scheduler atual cat /sys/block/sda/queue/scheduler # Mudar (temporário) echo deadline | sudo tee /sys/block/sda/queue/scheduler # Permanente (udev rule) sudo vim /etc/udev/rules.d/60-scheduler.rules A C T I O N = = " a d d | c h a n g e " , K E R N E L = = " s d [ a - z ] " , A T T R { q u e u e / s c h e d u l e r } = " d e a d l i n e " Limites de Recursos 1 2 3 4 5 6 7 8 # Ver limites ulimit -a # Aumentar arquivos abertos ulimit -n 65536 # Permanente sudo vim /etc/security/limits.conf s h o a f r t d n n o o f f i i l l e e 6 6 5 5 5 5 3 3 6 6 Comandos de Referência Rápida 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # Processos ps aux top htop kill PID # Serviços systemctl status servico sudo systemctl restart servico # Disco df -h du -sh /var lsblk # Performance vmstat 2 iostat -x free -h uptime # Logs journalctl -u servico dmesg | tail tail -f /var/log/syslog # Rede ip addr show ss -tlnp ping google.com Recursos Adicionais Documentação 1 2 3 man comando info comando comando --help Comunidades Stack Overflow Unix & Linux Stack Exchange Reddit r/linuxadmin Linux Questions Livros Recomendados “The Linux Command Line” - William Shotts “Linux System Administration” - Tom Adelstein “UNIX and Linux System Administration Handbook” - Evi Nemeth Certificações LPIC-1: Linux Professional Institute Certification RHCSA: Red Hat Certified System Administrator Linux Foundation Certified System Administrator Conclusão do Curso Parabéns por completar o curso de Linux! Você agora tem conhecimento sobre: ...

February 2, 2026 · Fabrício Machado

4 - Gerenciamento de Arquivos e Permissões

Sistema de Permissões do Linux Linux é um sistema multiusuário. Cada arquivo e diretório tem permissões que controlam quem pode ler, escrever ou executar. Estrutura de Permissões 1 2 3 4 5 6 7 8 9 10 11 12 ls -l arquivo.txt -rw-r--r-- 1 usuario grupo 1024 fev 2 10:30 arquivo.txt │││││││││ │ │ │ │ │ │││││││││ │ │ │ │ └─ nome do arquivo │││││││││ │ │ │ └────── data de modificação │││││││││ │ │ └──────────── tamanho (bytes) │││││││││ │ └──────────────────── grupo │││││││││ └────────────────────── dono ││││││││└─ outros (r--) │││││└──── grupo (r--) ││└────── dono (rw-) │└─────── tipo (- = arquivo, d = diretório, l = link) Tipos de Permissões r (read): Ler conteúdo ...

February 2, 2026 · Fabrício Machado

5 - Gerenciamento de Pacotes e Software

Gerenciadores de Pacotes Diferente do Windows (baixar .exe), Linux usa gerenciadores de pacotes centralizados que: Instalam software de repositórios confiáveis Resolvem dependências automaticamente Mantêm sistema atualizado Removem software completamente Principais Gerenciadores por Distribuição Distribuição Gerenciador Formato Comando Ubuntu/Debian APT .deb apt, apt-get, dpkg Fedora/RHEL DNF .rpm dnf, yum Arch Linux Pacman .pkg.tar.zst pacman openSUSE Zypper .rpm zypper APT - Debian/Ubuntu Comandos Essenciais 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # Atualizar lista de pacotes sudo apt update # Atualizar sistema sudo apt upgrade # Atualizar com remoção de pacotes obsoletos sudo apt full-upgrade # Instalar pacote sudo apt install nginx # Instalar múltiplos pacotes sudo apt install vim git curl # Remover pacote (mantém configurações) sudo apt remove nginx # Remover completamente (inclui configurações) sudo apt purge nginx # Remover pacotes não utilizados sudo apt autoremove # Buscar pacote apt search nginx # Informações sobre pacote apt show nginx # Listar pacotes instalados apt list --installed # Listar pacotes atualizáveis apt list --upgradable # Limpar cache de pacotes sudo apt clean sudo apt autoclean apt vs apt-get apt é mais moderno e user-friendly: ...

February 2, 2026 · Fabrício Machado

Dica Rápida sobre Amazon Linux 2023

Bom me deparei subindo uma nova EC2 recentemente que a AMI do Amazon Linux 2023 tem algumas diferenças que vou deixar anotado aqui abaixo: - Selinux ativado por padrão - Antes a maquina apenas precisava ser liberada no Security Group da AWS, mas agora com o Selinux ativado ele precisa ser revisado também para conexões de entrada. - Crontab e Rsyslog - Mesmo sabendo que o SystemD pode gerenciar agendamentos muitas vezes queremos optar pelo bom e velho Cron para isso é necessário fazer a instalação dos serviço. Junto com ele recomendo o Rsyslog também ...

October 9, 2024 · Fabrício Machado

3 - Comandos de Terminal e Navegação de Diretórios

Por Que Usar o Terminal? O terminal (ou shell) é uma das ferramentas mais poderosas do Linux. Enquanto interfaces gráficas são limitadas ao que os desenvolvedores implementaram, o terminal oferece: Automação: Scripts para tarefas repetitivas Eficiência: Comandos mais rápidos que cliques Poder: Acesso a todas as funcionalidades do sistema Administração remota: SSH para gerenciar servidores Troubleshooting: Diagnóstico preciso de problemas Estrutura do Sistema de Arquivos Linux Diferente do Windows (C:, D:), Linux usa uma estrutura hierárquica única: ...

March 9, 2024 · Fabrício Machado

Latinoware 2023 - 20 Anos

Hoje tive a honra de participar e falar em um dos maiores eventos de software livre do Brasil a Latinoware que está completando seus 20 anos de existência. Desde que recebi o convite até o momento que comecei a aprensentar todo o caminho foi bastante desafiador, mas está trazendo bastante recompensa como eu esperava que fosse. Desde poder visitar um estado e uma cidade nova até o convívio com os outros palestrantes no Hotel as ótimas conversas e ver quanta gente boa de tecnologia temos no país é realmente encorajador. ...

October 24, 2023 · Fabrício Machado

ARM e os dispositivos no nosso dia-a-dia

Continuando a nossa jornada pelo mundo ARM, além de servidores em nuvem. Aqui estão algumas informações sobre a presença da arquitetura ARM em diferentes em vários tipos de dispositivos que estão pertinho de nós no nosso dia-a-dia: Smartphones e Tablets: A arquitetura ARM é dominante no mercado de smartphones e tablets. A maioria dos dispositivos móveis, incluindo iPhones da Apple e smartphones Android, contém em seu núcleo processadores ARM. Esses chips ARM são reconhecidos por oferecer bom desempenho e eficiência energética, o que é crucial para dispositivos móveis. Roteadores e Dispositivos de Rede: ...

September 19, 2023 · Fabrício Machado