User Tools

Site Tools


wiki:linux:ol:sysadmin

Comandos de Gerenciamento de Pacotes

YUM/DNF (para gerenciamento de pacotes e repositórios)

  • Instalar um pacote:
    1. sudo dnf install nome_do_pacote
    2. Instala um pacote usando o gerenciador de pacotes DNF (substituto moderno do YUM).
  • Remover um pacote:
    1. sudo dnf remove nome_do_pacote
    2. Remove um pacote do sistema.
  • Atualizar todos os pacotes instalados:
    1. sudo dnf update
    2. Atualiza todos os pacotes instalados para suas versões mais recentes.
  • Listar pacotes instalados:
    1. sudo dnf list installed
    2. Lista todos os pacotes atualmente instalados no sistema.
  • Limpar o cache de pacotes:
    1. sudo dnf clean all
    2. Limpa o cache do DNF, útil para liberar espaço ou corrigir problemas de cache corrompido.
  • Pesquisar por pacotes disponíveis:
    1. dnf search nome_do_pacote
    2. Pesquisa pacotes no repositório com base no nome ou descrição.
  • Obter informações sobre um pacote:
    1. dnf info nome_do_pacote
    2. Exibe informações detalhadas sobre um pacote, como versão, tamanho e repositório.
  • Habilitar/Desabilitar um repositório temporariamente:
    1. sudo dnf --enablerepo=nome_do_repositorio install nome_do_pacote
    2. 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:
    1. sudo rpm -ivh pacote.rpm
    2. 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:
    1. sudo rpm -e nome_do_pacote
    2. Remove um pacote instalado com RPM.
  • Verificar informações sobre um pacote RPM:
    1. rpm -qi nome_do_pacote
    2. 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:
    1. rpm -ql nome_do_pacote
    2. Lista todos os arquivos instalados por um pacote RPM.
  • Verificar dependências de um pacote RPM:
    1. rpm -qR nome_do_pacote
    2. Lista todas as dependências de um pacote RPM.
  • Verificar a assinatura de um pacote RPM:
    1. rpm --checksig pacote.rpm
    2. Verifica a assinatura digital de um pacote RPM, garantindo sua autenticidade.
  • Atualizar um pacote RPM manualmente:
    1. sudo rpm -Uvh pacote.rpm
    2. Atualiza um pacote RPM para uma nova versão.

Reposições de Pacotes

  • Adicionar um repositório:
    1. sudo dnf config-manager --add-repo=http://url-do-repositorio
    2. Adiciona um novo repositório de pacotes ao sistema.
  • Listar repositórios habilitados:
    1. sudo dnf repolist
    2. Lista todos os repositórios atualmente habilitados no sistema.
  • Desabilitar temporariamente um repositório:
    1. sudo dnf config-manager --set-disabled nome_do_repositorio
    2. 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:
    1. sudo dnf config-manager --set-enabled nome_do_repositorio
    2. Reabilita um repositório previamente desativado.

Gerenciamento de Grupos de Pacotes

  • Listar grupos de pacotes disponíveis:
    1. sudo dnf group list
    2. Exibe uma lista de grupos de pacotes categorizados, como “Desktops” ou “Ferramentas de Desenvolvimento”.
  • Instalar um grupo de pacotes:
    1. sudo dnf group install "nome_do_grupo"
    2. Instala todos os pacotes pertencentes ao grupo especificado.
  • Remover um grupo de pacotes:
    1. sudo dnf group remove "nome_do_grupo"
    2. 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:
    1. sudo systemctl start nome_do_servico
    2. Inicia o serviço especificado, como `nginx` ou `sshd`.
  • Parar um serviço:
    1. sudo systemctl stop nome_do_servico
    2. Para a execução de um serviço.
  • Reiniciar um serviço:
    1. sudo systemctl restart nome_do_servico
    2. 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:
    1. sudo systemctl reload nome_do_servico
    2. 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:
    1. sudo systemctl enable nome_do_servico
    2. Configura o serviço para iniciar automaticamente quando o sistema é inicializado.
  • Desabilitar um serviço no boot:
    1. sudo systemctl disable nome_do_servico
    2. Remove o serviço da lista de inicialização automática.
  • Verificar o status de um serviço:
    1. sudo systemctl status nome_do_servico
    2. Exibe o status atual do serviço, incluindo logs recentes e o estado (ativo/inativo).
  • Listar todos os serviços e seus estados:
    1. systemctl list-units --type=service
    2. Lista todos os serviços do sistema e seu estado atual (ativos, inativos, falhos).
  • Reiniciar o sistema:
    1. sudo systemctl reboot
    2. Reinicia o sistema de forma controlada.
  • Desligar o sistema:
    1. sudo systemctl poweroff
    2. Desliga completamente o sistema.

Gerenciamento de Processos (comando ps e top)

  • Listar todos os processos em execução:
    1. ps aux
    2. 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:
    1. ps -u nome_do_usuario
    2. Mostra os processos que pertencem ao usuário especificado.
  • Monitorar processos em tempo real (modo interativo):
    1. top
    2. Exibe uma lista interativa de processos, atualizando constantemente o uso de recursos como CPU e memória.
  • Monitorar processos de forma personalizada com htop:
    1. htop
    2. Uma versão aprimorada do `top`, mostrando uso de recursos com cores, barras e navegação interativa.
  • Encerrar um processo manualmente:
    1. kill -9 PID
    2. Força o encerramento de um processo usando o PID (Process ID).
  • Matar todos os processos de um usuário específico:
    1. sudo pkill -u nome_do_usuario
    2. Encerra todos os processos pertencentes ao usuário especificado.
  • Encerrar processos pelo nome:
    1. sudo pkill nome_do_processo
    2. Encerra todos os processos com o nome especificado.
  • Renice (alterar prioridade de execução) de um processo:
    1. sudo renice +10 PID
    2. 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:
    1. jobs
    2. Exibe uma lista de todos os jobs executados em segundo plano (background).
  • Enviar um processo em execução para o segundo plano:
    1. Ctrl + Z

      (pressionar para pausar o processo)<br>

bg

(executa o processo em segundo plano)

  1. 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:
    1. fg
    2. Traz o processo mais recente em segundo plano para o primeiro plano.
  • Executar um comando diretamente em segundo plano:
    1. comando &
    2. Executa um comando em segundo plano diretamente.
  • Destruir um job em segundo plano:
    1. kill %número_do_job
    2. 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):
    1. crontab -e
    2. Abre o arquivo crontab para editar as tarefas agendadas para o usuário atual.
  • Listar as tarefas agendadas para o usuário atual:
    1. crontab -l
    2. Exibe todas as tarefas atualmente agendadas no crontab do usuário.
  • Remover todas as tarefas agendadas do usuário:
    1. crontab -r
    2. Remove o crontab do usuário atual, apagando todas as tarefas agendadas.
  • Exemplo de entrada no crontab para uma tarefa diária:
    1. 0 3 * * * /usr/bin/python3 /caminho/script.py
    2. Executa o script Python diariamente às 03:00.
  • Exemplo de tarefa que roda a cada 10 minutos:
    1. */10 * * * * /usr/sbin/logrotate /etc/logrotate.conf
    2. 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:
    1. free -h
    2. 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:
    1. df -h
    2. 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:
    1. du -sh /caminho/diretorio
    2. Exibe o tamanho total do diretório especificado.
  • Monitorar o uso da CPU de forma detalhada:
    1. mpstat
    2. Exibe o uso detalhado de cada CPU/core no sistema.
  • Exibir informações detalhadas sobre o desempenho do disco:
    1. iostat
    2. 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:
    1. iotop
    2. Mostra o uso de disco por processos em tempo real, semelhante ao `top`.
  • Observar a carga média do sistema:
    1. uptime
    2. 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:
    1. vmstat 2
    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:
    1. ss -tuln
    2. 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:
    1. ifstat
    2. Exibe estatísticas de entrada/saída de pacotes para todas as interfaces de rede.
  • Monitorar o tráfego de rede em tempo real:
    1. iftop
    2. 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:
    1. netstat -i
    2. Exibe estatísticas sobre pacotes recebidos/enviados por interface de rede.
  • Monitorar desempenho de rede usando iperf:
    1. No servidor (para aceitar conexões):
iperf3 -s
  1. No cliente (para testar a conexão com o servidor):
iperf3 -c IP_do_servidor
  1. Realiza testes de desempenho de rede entre dois sistemas.
  • Exibir a tabela de roteamento do sistema:
    1. ip route
    2. Exibe as rotas atuais configuradas no sistema, útil para verificar o caminho dos pacotes na rede.
  • Monitorar a latência de rede com ping:
    1. ping IP_ou_hostname
    2. Verifica a conectividade e a latência entre o sistema e outro dispositivo na rede.
  • Testar conectividade com uma porta específica usando netcat:
    1. nc -zv IP_do_servidor porta
    2. 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:
    1. ip address show
    2. Exibe detalhes das interfaces de rede e seus respectivos endereços IP.
  • Atribuir um endereço IP a uma interface:
    1. sudo ip addr add 192.168.1.100/24 dev eth0
    2. Atribui o endereço IP 192.168.1.100 à interface eth0.
  • Remover um endereço IP de uma interface:
    1. sudo ip addr del 192.168.1.100/24 dev eth0
    2. Remove o endereço IP `192.168.1.100` da interface `eth0`.
  • Ativar uma interface de rede:
    1. sudo ip link set dev eth0 up
    2. Ativa a interface `eth0`, trazendo-a “para cima”.
  • Desativar uma interface de rede:
    1. sudo ip link set dev eth0 down
    2. Desativa a interface `eth0`, trazendo-a “para baixo”.
  • Exibir as rotas da tabela de roteamento:
    1. ip route show
    2. Exibe as rotas atualmente configuradas no sistema, mostrando o caminho dos pacotes.
  • Adicionar uma rota estática ao sistema:
    1. sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
    2. 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:
    1. dig exemplo.com
    2. 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:
    1. curl -I https://www.exemplo.com
    2. 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:
    1. nmap -p 22,80,443 IP_do_servidor
    2. 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:
    1. ss -tn dst IP_do_servidor
    2. Exibe informações de conexões TCP estabelecidas para um IP específico.
  • Manipular regras de firewall usando Firewalld:
    1. sudo firewall-cmd --list-all
    2. Exibe todas as regras ativas no firewall para a zona padrão.
  • Abrir uma porta específica no Firewalld (porta 8080, TCP):
    1. sudo firewall-cmd --permanent --add-port=8080/tcp
    2. Abre a porta `8080` para conexões TCP permanentemente.
  • Fechar uma porta específica no Firewalld:
    1. sudo firewall-cmd --permanent --remove-port=8080/tcp
    2. 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:
    1. sudo chown usuario:grupo arquivo_ou_diretorio
    2. Modifica o proprietário e o grupo de um arquivo ou diretório.
  • Alterar permissões de leitura/escrita/execução de um arquivo:
    1. chmod 755 arquivo
    2. 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:
    1. chmod -R 755 /caminho/diretorio
    2. 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:
    1. chmod u+x arquivo
    2. Adiciona a permissão de execução para o usuário proprietário do arquivo.
  • Remover permissões de escrita para outros usuários:
    1. chmod o-w arquivo
    2. Remove a permissão de escrita para “outros” no arquivo.
  • Definir a Imutabilidade de um Arquivo (chattr):
    1. sudo chattr +i arquivo
    2. 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:
    1. sudo chattr -i arquivo
    2. Remove a imutabilidade de um arquivo, permitindo modificações.
  • Verificar os atributos de um arquivo:
    1. lsattr arquivo
    2. Exibe os atributos especiais de um arquivo ou diretório.

Auditoria de Logs (Auditd e Logrotate)

  • Exibir logs de auditoria do sistema:
    1. sudo ausearch -m avc
    2. Exibe logs de controle de acesso (AVC) para auditoria de segurança do SELinux.
  • Monitorar alterações de arquivos específicos:
    1. sudo auditctl -w /etc/passwd -p war -k alteracoes_passwd
    2. 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:
    1. sudo ausearch -k alteracoes_passwd
    2. Exibe os relatórios de auditoria associados à chave `alteracoes_passwd`.
  • Configurar rotação de logs com logrotate:
    1. Editar o arquivo de configuração para um serviço:
sudo nano /etc/logrotate.d/nginx
  1. 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
    }
  1. Configura a rotação de logs do NGINX diariamente, mantendo 7 arquivos de log antigos.
  • Forçar a rotação de logs imediatamente:
    1. sudo logrotate -f /etc/logrotate.conf
    2. 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:
    1. sudo firewall-cmd --state
    2. Exibe o status atual do FirewallD (ativo/inativo).
  • Listar as zonas ativas e suas interfaces:
    1. sudo firewall-cmd --get-active-zones
    2. Exibe as zonas de firewall ativas e as interfaces de rede associadas.
  • Listar as regras de uma zona:
    1. sudo firewall-cmd --list-all --zone=public
    2. Exibe todas as regras de firewall para a zona `public`.
  • Abrir uma porta específica (porta 22, protocolo TCP):
    1. sudo firewall-cmd --add-port=22/tcp --permanent
    2. Abre a porta `22` para o protocolo `TCP` de forma permanente.
  • Fechar uma porta específica:
    1. sudo firewall-cmd --remove-port=22/tcp --permanent
    2. Fecha a porta `22` para o protocolo `TCP`.
  • Permitir tráfego para um serviço (ex.: HTTP):
    1. sudo firewall-cmd --add-service=http --permanent
    2. Permite o tráfego HTTP na zona de firewall.
  • Recarregar as regras do firewall:
    1. sudo firewall-cmd --reload
    2. Recarrega todas as regras do firewall sem interromper conexões ativas.
  • Bloquear um endereço IP específico:
    1. sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent
    2. Bloqueia permanentemente o IP `192.168.1.100` no firewall.
  • Habilitar o masquerading (NAT) em uma zona:
    1. sudo firewall-cmd --zone=public --add-masquerade --permanent
    2. Ativa o mascaramento de IPs na zona `public`, útil para compartilhamento de conexão.
  • Desabilitar o masquerading em uma zona:
    1. sudo firewall-cmd --zone=public --remove-masquerade --permanent
    2. Desativa o mascaramento de IPs na zona `public`.

Gerenciamento de Usuários e Grupos (useradd, passwd, gpasswd)

  • Adicionar um novo usuário:
    1. sudo useradd nome_do_usuario
    2. Cria um novo usuário no sistema.
  • Definir uma senha para um usuário:
    1. sudo passwd nome_do_usuario
    2. Define ou altera a senha do usuário `nome_do_usuario`.
  • Adicionar um usuário a um grupo:
    1. sudo usermod -aG nome_do_grupo nome_do_usuario
    2. 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:
    1. sudo gpasswd -d nome_do_usuario nome_do_grupo
    2. Remove o usuário `nome_do_usuario` do grupo `nome_do_grupo`.
  • Bloquear um usuário (desativar login):
    1. sudo usermod -L nome_do_usuario
    2. Bloqueia a conta de um usuário, impedindo o login.
  • Desbloquear um usuário:
    1. sudo usermod -U nome_do_usuario
    2. Desbloqueia a conta do usuário, permitindo login novamente.
  • Excluir um usuário e seus arquivos:
    1. sudo userdel -r nome_do_usuario
    2. Remove a conta de um usuário e todos os arquivos no diretório home.
  • Listar todos os usuários do sistema:
    1. cut -d: -f1 /etc/passwd
    2. Exibe uma lista de todos os usuários registrados no sistema.
wiki/linux/ol/sysadmin.txt · Last modified: by Wiki Administrator