===== Comandos de Gerenciamento de Pacotes =====
==== YUM/DNF (para gerenciamento de pacotes e repositórios) ====
* **Instalar um pacote:**
- sudo dnf install nome_do_pacote
- Instala um pacote usando o gerenciador de pacotes **DNF** (substituto moderno do **YUM**).
* **Remover um pacote:**
- sudo dnf remove nome_do_pacote
- Remove um pacote do sistema.
* **Atualizar todos os pacotes instalados:**
- sudo dnf update
- Atualiza todos os pacotes instalados para suas versões mais recentes.
* **Listar pacotes instalados:**
- sudo dnf list installed
- Lista todos os pacotes atualmente instalados no sistema.
* **Limpar o cache de pacotes:**
- sudo dnf clean all
- Limpa o cache do DNF, útil para liberar espaço ou corrigir problemas de cache corrompido.
* **Pesquisar por pacotes disponíveis:**
- dnf search nome_do_pacote
- Pesquisa pacotes no repositório com base no nome ou descrição.
* **Obter informações sobre um pacote:**
- dnf info nome_do_pacote
- Exibe informações detalhadas sobre um pacote, como versão, tamanho e repositório.
* **Habilitar/Desabilitar um repositório temporariamente:**
- sudo dnf --enablerepo=nome_do_repositorio install nome_do_pacote
- Permite instalar pacotes de um repositório específico sem alterar sua configuração permanentemente.
==== RPM (para gerenciamento direto de pacotes) ====
* **Instalar um pacote RPM:**
- sudo rpm -ivh pacote.rpm
- Instala um pacote RPM baixado manualmente, exibindo o progresso com a opção `-v` (verbose) e uma barra de progresso com `-h`.
* **Remover um pacote instalado via RPM:**
- sudo rpm -e nome_do_pacote
- Remove um pacote instalado com RPM.
* **Verificar informações sobre um pacote RPM:**
- rpm -qi nome_do_pacote
- Exibe informações detalhadas sobre um pacote RPM instalado, como versão, descrição e data de instalação.
* **Listar arquivos de um pacote RPM:**
- rpm -ql nome_do_pacote
- Lista todos os arquivos instalados por um pacote RPM.
* **Verificar dependências de um pacote RPM:**
- rpm -qR nome_do_pacote
- Lista todas as dependências de um pacote RPM.
* **Verificar a assinatura de um pacote RPM:**
- rpm --checksig pacote.rpm
- Verifica a assinatura digital de um pacote RPM, garantindo sua autenticidade.
* **Atualizar um pacote RPM manualmente:**
- sudo rpm -Uvh pacote.rpm
- Atualiza um pacote RPM para uma nova versão.
==== Reposições de Pacotes ====
* **Adicionar um repositório:**
- sudo dnf config-manager --add-repo=http://url-do-repositorio
- Adiciona um novo repositório de pacotes ao sistema.
* **Listar repositórios habilitados:**
- sudo dnf repolist
- Lista todos os repositórios atualmente habilitados no sistema.
* **Desabilitar temporariamente um repositório:**
- sudo dnf config-manager --set-disabled nome_do_repositorio
- Desativa um repositório para que ele não seja utilizado nas operações de instalação e atualização.
* **Habilitar novamente um repositório:**
- sudo dnf config-manager --set-enabled nome_do_repositorio
- Reabilita um repositório previamente desativado.
==== Gerenciamento de Grupos de Pacotes ====
* **Listar grupos de pacotes disponíveis:**
- sudo dnf group list
- Exibe uma lista de grupos de pacotes categorizados, como "Desktops" ou "Ferramentas de Desenvolvimento".
* **Instalar um grupo de pacotes:**
- sudo dnf group install "nome_do_grupo"
- Instala todos os pacotes pertencentes ao grupo especificado.
* **Remover um grupo de pacotes:**
- sudo dnf group remove "nome_do_grupo"
- Remove todos os pacotes pertencentes a um grupo.
===== Controle de Serviços e Gerenciamento de Processos =====
==== Systemctl (Gerenciamento de Serviços) ====
* **Iniciar um serviço:**
- sudo systemctl start nome_do_servico
- Inicia o serviço especificado, como `nginx` ou `sshd`.
* **Parar um serviço:**
- sudo systemctl stop nome_do_servico
- Para a execução de um serviço.
* **Reiniciar um serviço:**
- sudo systemctl restart nome_do_servico
- Reinicia um serviço, útil após mudanças na configuração.
* **Recarregar a configuração de um serviço sem interromper sua execução:**
- sudo systemctl reload nome_do_servico
- Recarrega a configuração do serviço sem pará-lo, ideal para serviços como web servers.
* **Habilitar um serviço para iniciar automaticamente no boot:**
- sudo systemctl enable nome_do_servico
- Configura o serviço para iniciar automaticamente quando o sistema é inicializado.
* **Desabilitar um serviço no boot:**
- sudo systemctl disable nome_do_servico
- Remove o serviço da lista de inicialização automática.
* **Verificar o status de um serviço:**
- sudo systemctl status nome_do_servico
- Exibe o status atual do serviço, incluindo logs recentes e o estado (ativo/inativo).
* **Listar todos os serviços e seus estados:**
- systemctl list-units --type=service
- Lista todos os serviços do sistema e seu estado atual (ativos, inativos, falhos).
* **Reiniciar o sistema:**
- sudo systemctl reboot
- Reinicia o sistema de forma controlada.
* **Desligar o sistema:**
- sudo systemctl poweroff
- Desliga completamente o sistema.
==== Gerenciamento de Processos (comando ps e top) ====
* **Listar todos os processos em execução:**
- ps aux
- Exibe uma lista completa de todos os processos em execução no sistema, com detalhes como PID, uso de CPU, memória, etc.
* **Exibir processos de um usuário específico:**
- ps -u nome_do_usuario
- Mostra os processos que pertencem ao usuário especificado.
* **Monitorar processos em tempo real (modo interativo):**
- top
- Exibe uma lista interativa de processos, atualizando constantemente o uso de recursos como CPU e memória.
* **Monitorar processos de forma personalizada com htop:**
- htop
- Uma versão aprimorada do `top`, mostrando uso de recursos com cores, barras e navegação interativa.
* **Encerrar um processo manualmente:**
- kill -9 PID
- Força o encerramento de um processo usando o **PID** (Process ID).
* **Matar todos os processos de um usuário específico:**
- sudo pkill -u nome_do_usuario
- Encerra todos os processos pertencentes ao usuário especificado.
* **Encerrar processos pelo nome:**
- sudo pkill nome_do_processo
- Encerra todos os processos com o nome especificado.
* **Renice (alterar prioridade de execução) de um processo:**
- sudo renice +10 PID
- Aumenta a prioridade de um processo específico para que ele consuma menos recursos da CPU.
==== Gerenciamento de Tarefas em Segundo Plano (bg, fg e jobs) ====
* **Listar todos os jobs em segundo plano:**
- jobs
- Exibe uma lista de todos os jobs executados em segundo plano (background).
* **Enviar um processo em execução para o segundo plano:**
- Ctrl + Z (pressionar para pausar o processo)
bg (executa o processo em segundo plano)
- Pausa o processo com `Ctrl + Z` e o coloca em segundo plano com o comando `bg`.
* **Trazer um processo em segundo plano de volta para o primeiro plano:**
- fg
- Traz o processo mais recente em segundo plano para o primeiro plano.
* **Executar um comando diretamente em segundo plano:**
- comando &
- Executa um comando em segundo plano diretamente.
* **Destruir um job em segundo plano:**
- kill %número_do_job
- Encerra um job em segundo plano usando o número do job listado pelo comando `jobs`.
==== Cron e Agendamento de Tarefas ====
* **Editar as tarefas agendadas (crontab):**
- crontab -e
- Abre o arquivo **crontab** para editar as tarefas agendadas para o usuário atual.
* **Listar as tarefas agendadas para o usuário atual:**
- crontab -l
- Exibe todas as tarefas atualmente agendadas no **crontab** do usuário.
* **Remover todas as tarefas agendadas do usuário:**
- crontab -r
- Remove o **crontab** do usuário atual, apagando todas as tarefas agendadas.
* **Exemplo de entrada no crontab para uma tarefa diária:**
- 0 3 * * * /usr/bin/python3 /caminho/script.py
- Executa o script Python diariamente às 03:00.
* **Exemplo de tarefa que roda a cada 10 minutos:**
- */10 * * * * /usr/sbin/logrotate /etc/logrotate.conf
- Executa o logrotate a cada 10 minutos para rodar a rotação de logs.
===== Monitoramento de Desempenho =====
==== Monitoramento de Recursos de Sistema (CPU, Memória, Disco) ====
* **Monitorar o uso de CPU, memória e swap:**
- free -h
- Exibe o uso de memória física, memória swap e buffers em um formato amigável, mostrando detalhes em gigabytes (`-h`).
* **Exibir o uso de espaço em disco:**
- df -h
- Mostra a quantidade de espaço em disco usado e disponível em cada sistema de arquivos, com a opção `-h` para exibir em formato legível (GB/MB).
* **Exibir uso detalhado de um diretório específico:**
- du -sh /caminho/diretorio
- Exibe o tamanho total do diretório especificado.
* **Monitorar o uso da CPU de forma detalhada:**
- mpstat
- Exibe o uso detalhado de cada CPU/core no sistema.
* **Exibir informações detalhadas sobre o desempenho do disco:**
- iostat
- Exibe estatísticas sobre o uso do disco e I/O, útil para detectar gargalos de disco.
* **Monitorar entradas/saídas de disco em tempo real:**
- iotop
- Mostra o uso de disco por processos em tempo real, semelhante ao `top`.
* **Observar a carga média do sistema:**
- uptime
- Exibe o tempo que o sistema está em execução e a média de carga do sistema para os últimos 1, 5 e 15 minutos.
* **Exibir uso de CPU e disco em tempo real:**
- vmstat 2
- Exibe estatísticas de sistema (CPU, memória, disco) com atualizações a cada 2 segundos.
==== Monitoramento de Rede ====
* **Monitorar conexões de rede ativas:**
- ss -tuln
- Exibe todas as conexões de rede ativas e portas de escuta, com `ss` sendo um substituto moderno para o `netstat`.
* **Exibir estatísticas detalhadas de interface de rede:**
- ifstat
- Exibe estatísticas de entrada/saída de pacotes para todas as interfaces de rede.
* **Monitorar o tráfego de rede em tempo real:**
- iftop
- Exibe o tráfego de rede em tempo real, útil para monitorar o uso de banda por cada conexão.
* **Exibir o número de pacotes enviados/recebidos por interfaces:**
- netstat -i
- Exibe estatísticas sobre pacotes recebidos/enviados por interface de rede.
* **Monitorar desempenho de rede usando iperf:**
- **No servidor (para aceitar conexões):**
iperf3 -s
- **No cliente (para testar a conexão com o servidor):**
iperf3 -c IP_do_servidor
- Realiza testes de desempenho de rede entre dois sistemas.
* **Exibir a tabela de roteamento do sistema:**
- ip route
- Exibe as rotas atuais configuradas no sistema, útil para verificar o caminho dos pacotes na rede.
* **Monitorar a latência de rede com ping:**
- ping IP_ou_hostname
- Verifica a conectividade e a latência entre o sistema e outro dispositivo na rede.
* **Testar conectividade com uma porta específica usando netcat:**
- nc -zv IP_do_servidor porta
- Verifica se uma porta específica está aberta em um determinado IP, útil para testes de serviços.
===== Configuração de Rede =====
==== Gerenciamento de Interfaces de Rede ====
* **Exibir informações das interfaces de rede:**
- ip address show
- Exibe detalhes das interfaces de rede e seus respectivos endereços IP.
* **Atribuir um endereço IP a uma interface:**
- sudo ip addr add 192.168.1.100/24 dev eth0
- Atribui o endereço IP ''192.168.1.100'' à interface ''eth0''.
* **Remover um endereço IP de uma interface:**
- sudo ip addr del 192.168.1.100/24 dev eth0
- Remove o endereço IP `192.168.1.100` da interface `eth0`.
* **Ativar uma interface de rede:**
- sudo ip link set dev eth0 up
- Ativa a interface `eth0`, trazendo-a "para cima".
* **Desativar uma interface de rede:**
- sudo ip link set dev eth0 down
- Desativa a interface `eth0`, trazendo-a "para baixo".
* **Exibir as rotas da tabela de roteamento:**
- ip route show
- Exibe as rotas atualmente configuradas no sistema, mostrando o caminho dos pacotes.
* **Adicionar uma rota estática ao sistema:**
- sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
- Adiciona uma rota para a rede `192.168.2.0/24` via o gateway `192.168.1.1` na interface `eth0`.
==== Ferramentas de Rede ====
* **Obter detalhes sobre o domínio e servidores DNS:**
- dig exemplo.com
- Executa uma consulta DNS para o domínio `exemplo.com`, exibindo os registros A, servidores de nome e muito mais.
* **Verificar detalhes de uma URL ou servidor web:**
- curl -I https://www.exemplo.com
- Recupera e exibe o cabeçalho HTTP de um servidor web, útil para verificar a conectividade e o status HTTP.
* **Testar conectividade com múltiplas portas e serviços:**
- nmap -p 22,80,443 IP_do_servidor
- Verifica se as portas 22 (SSH), 80 (HTTP) e 443 (HTTPS) estão abertas em um servidor específico.
* **Exibir informações de uma conexão TCP específica:**
- ss -tn dst IP_do_servidor
- Exibe informações de conexões TCP estabelecidas para um IP específico.
* **Manipular regras de firewall usando Firewalld:**
- sudo firewall-cmd --list-all
- Exibe todas as regras ativas no firewall para a zona padrão.
* **Abrir uma porta específica no Firewalld (porta 8080, TCP):**
- sudo firewall-cmd --permanent --add-port=8080/tcp
- Abre a porta `8080` para conexões TCP permanentemente.
* **Fechar uma porta específica no Firewalld:**
- sudo firewall-cmd --permanent --remove-port=8080/tcp
- Remove a regra que permitia o tráfego na porta `8080`.
===== Segurança e Auditoria de Sistema =====
==== Controle de Permissões (chown, chmod, chattr) ====
* **Alterar o proprietário de um arquivo/diretório:**
- sudo chown usuario:grupo arquivo_ou_diretorio
- Modifica o proprietário e o grupo de um arquivo ou diretório.
* **Alterar permissões de leitura/escrita/execução de um arquivo:**
- chmod 755 arquivo
- Define as permissões de um arquivo para o proprietário ter leitura, escrita e execução, e o grupo e outros apenas leitura e execução.
* **Recursivamente alterar permissões de diretórios e arquivos:**
- chmod -R 755 /caminho/diretorio
- Aplica permissões recursivamente, afetando todos os arquivos e subdiretórios dentro de `/caminho/diretorio`.
* **Adicionar a permissão de execução para o proprietário de um arquivo:**
- chmod u+x arquivo
- Adiciona a permissão de execução para o usuário proprietário do arquivo.
* **Remover permissões de escrita para outros usuários:**
- chmod o-w arquivo
- Remove a permissão de escrita para "outros" no arquivo.
* **Definir a Imutabilidade de um Arquivo (chattr):**
- sudo chattr +i arquivo
- Define um arquivo como imutável, impedindo que ele seja modificado ou excluído até que o atributo seja removido.
* **Remover a Imutabilidade de um Arquivo:**
- sudo chattr -i arquivo
- Remove a imutabilidade de um arquivo, permitindo modificações.
* **Verificar os atributos de um arquivo:**
- lsattr arquivo
- Exibe os atributos especiais de um arquivo ou diretório.
==== Auditoria de Logs (Auditd e Logrotate) ====
* **Exibir logs de auditoria do sistema:**
- sudo ausearch -m avc
- Exibe logs de controle de acesso (AVC) para auditoria de segurança do SELinux.
* **Monitorar alterações de arquivos específicos:**
- sudo auditctl -w /etc/passwd -p war -k alteracoes_passwd
- Monitora alterações no arquivo `/etc/passwd` com ações de gravação, alteração de atributos ou leitura.
* **Exibir relatórios de auditoria baseados em chave:**
- sudo ausearch -k alteracoes_passwd
- Exibe os relatórios de auditoria associados à chave `alteracoes_passwd`.
* **Configurar rotação de logs com logrotate:**
- **Editar o arquivo de configuração para um serviço:**
sudo nano /etc/logrotate.d/nginx
- **Exemplo de configuração:**
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
- Configura a rotação de logs do NGINX diariamente, mantendo 7 arquivos de log antigos.
* **Forçar a rotação de logs imediatamente:**
- sudo logrotate -f /etc/logrotate.conf
- Força a execução imediata das regras de rotação de logs configuradas no sistema.
==== Gerenciamento de Firewall (FirewallD) ====
* **Verificar o status do firewall:**
- sudo firewall-cmd --state
- Exibe o status atual do **FirewallD** (ativo/inativo).
* **Listar as zonas ativas e suas interfaces:**
- sudo firewall-cmd --get-active-zones
- Exibe as zonas de firewall ativas e as interfaces de rede associadas.
* **Listar as regras de uma zona:**
- sudo firewall-cmd --list-all --zone=public
- Exibe todas as regras de firewall para a zona `public`.
* **Abrir uma porta específica (porta 22, protocolo TCP):**
- sudo firewall-cmd --add-port=22/tcp --permanent
- Abre a porta `22` para o protocolo `TCP` de forma permanente.
* **Fechar uma porta específica:**
- sudo firewall-cmd --remove-port=22/tcp --permanent
- Fecha a porta `22` para o protocolo `TCP`.
* **Permitir tráfego para um serviço (ex.: HTTP):**
- sudo firewall-cmd --add-service=http --permanent
- Permite o tráfego HTTP na zona de firewall.
* **Recarregar as regras do firewall:**
- sudo firewall-cmd --reload
- Recarrega todas as regras do firewall sem interromper conexões ativas.
* **Bloquear um endereço IP específico:**
- sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent
- Bloqueia permanentemente o IP `192.168.1.100` no firewall.
* **Habilitar o masquerading (NAT) em uma zona:**
- sudo firewall-cmd --zone=public --add-masquerade --permanent
- Ativa o mascaramento de IPs na zona `public`, útil para compartilhamento de conexão.
* **Desabilitar o masquerading em uma zona:**
- sudo firewall-cmd --zone=public --remove-masquerade --permanent
- Desativa o mascaramento de IPs na zona `public`.
==== Gerenciamento de Usuários e Grupos (useradd, passwd, gpasswd) ====
* **Adicionar um novo usuário:**
- sudo useradd nome_do_usuario
- Cria um novo usuário no sistema.
* **Definir uma senha para um usuário:**
- sudo passwd nome_do_usuario
- Define ou altera a senha do usuário `nome_do_usuario`.
* **Adicionar um usuário a um grupo:**
- sudo usermod -aG nome_do_grupo nome_do_usuario
- Adiciona o usuário `nome_do_usuario` ao grupo `nome_do_grupo` sem removê-lo de outros grupos.
* **Remover um usuário de um grupo:**
- sudo gpasswd -d nome_do_usuario nome_do_grupo
- Remove o usuário `nome_do_usuario` do grupo `nome_do_grupo`.
* **Bloquear um usuário (desativar login):**
- sudo usermod -L nome_do_usuario
- Bloqueia a conta de um usuário, impedindo o login.
* **Desbloquear um usuário:**
- sudo usermod -U nome_do_usuario
- Desbloqueia a conta do usuário, permitindo login novamente.
* **Excluir um usuário e seus arquivos:**
- sudo userdel -r nome_do_usuario
- Remove a conta de um usuário e todos os arquivos no diretório home.
* **Listar todos os usuários do sistema:**
- cut -d: -f1 /etc/passwd
- Exibe uma lista de todos os usuários registrados no sistema.