Tema: linux
-
Resumir o tempo gasto em chamadas de sistema com strace -c, seu overhead e o perf trace como alternativa
O strace -c contabiliza tempo, chamadas e erros por chamada de sistema em vez de imprimir cada uma, mas o próprio manual do strace avisa que um processo rastreado roda mais devagar que um não rastreado; o perf trace, descrito como uma ferramenta inspirada no strace e baseada em perf_events em vez de ptrace, é a alternativa mais simples quando esse overhead importa.
-
Correção de KEVs do kernel Linux: verificar cada CVE no pacote da distribuição e no kernel em execução
Acompanhe separadamente cinco falhas exploradas do kernel. Use as correções de pacotes de cada distribuição e confirme o kernel iniciado ou a cobertura explícita de livepatch; mitigar um subsistema não resolve as falhas dos demais.
-
Verificar se um host Linux precisa de reinicialização ou de reinício de serviços após atualizações
Debian e Ubuntu sinalizam uma reinicialização pendente com o arquivo simples /var/run/reboot-required, enquanto nos sistemas da família RHEL é preciso comparar o kernel em execução com o mais recente instalado ou usar uma verificação do tipo needs-restarting; nenhuma das famílias avisa isso automaticamente no prompt do shell.
-
Noções básicas do cliente Kerberos no Linux: krb5.conf, kinit/klist/kdestroy e keytabs
Um host Linux usa Kerberos por meio de /etc/krb5.conf, de um cache de credenciais por usuário ou por serviço (gerenciado com kinit, klist e kdestroy) e de keytabs para autenticação sem intervenção humana. Diferença de relógio e nomes de realm sensíveis a maiúsculas e minúsculas causam a maioria dos erros que um agente encontrará.
-
Pools de armazenamento do libvirt e snapshots qcow2 não são um backup
O `virsh snapshot-create-as` cria snapshots internos qcow2 rapidamente, mas eles ficam dentro da mesma imagem de disco do guest e dependem de que essa imagem sobreviva. O artigo explica a diferença entre snapshots internos e externos, por que não substituem um backup e como verificar o estado da imagem com o qemu-img.
-
Permissões de arquivos no Unix e a umask
Cada arquivo tem bits de permissão de leitura, escrita e execução para dono, grupo e outros, além dos bits setuid, setgid e sticky; os arquivos novos recebem permissões a partir da umask do processo. Segredos devem ficar em arquivos 0600, diretórios precisam de execução para serem atravessados e serviços devem rodar com um usuário dedicado.
-
Administração do GRUB 2: /etc/default/grub, grub-mkconfig, grubby e a entrada padrão
O GRUB 2 é configurado de forma indireta: as opções ficam em /etc/default/grub e são compiladas em grub.cfg pelo grub-mkconfig (chamado como update-grub no Debian/Ubuntu), enquanto os sistemas da família RHEL com entradas da Boot Loader Specification costumam ser gerenciados com o grubby, em vez de editar o grub.cfg à mão.
-
Política do sudo em arquivos drop-in em /etc/sudoers.d, verificados com visudo -c
Adicionar uma regra restrita como arquivo próprio em /etc/sudoers.d, validado com o visudo antes de entrar em vigor, mantém a política do sudo auditável e evita que um erro de sintaxe bloqueie o acesso de todos. Esta metodologia também aborda o risco de regras NOPASSWD amplas e onde o sudo registra suas decisões.
-
epoll com disparo por borda: esgote o trabalho não bloqueante antes de esperar outra borda
Evite que uma conexão trave separando as notificações de prontidão das mensagens completas da aplicação.
-
Entradas de boot UEFI e estado do Secure Boot no Linux e no Windows
efibootmgr e bcdedit /enum firmware leem e reescrevem a lista de entradas de boot UEFI, que define o que o firmware tenta iniciar e em que ordem. mokutil --sb-state e Confirm-SecureBootUEFI indicam se o Secure Boot está em vigor, o que é distinto da confiança via shim/MOK num módulo de kernel de terceiros e é pré-requisito dela.
-
Logging em scripts de administração: logger e systemd-cat no Linux, Write-EventLog/New-WinEvent e Start-Transcript no Windows
Cada plataforma oferece um meio de enviar a saída de um script de administração para um local onde uma pessoa ou outra ferramenta a encontre depois, diferente de escrever em stdout: logger(1) ou systemd-cat no log do sistema no Linux; o Event Log do Windows via Write-EventLog (apenas no Windows PowerShell 5.1) ou New-WinEvent; e Start-Transcript para uma captura bruta da sessão. Nenhum deles deve jamais receber um segredo.
-
Usuários e grupos locais do jeito certo: useradd, contas de sistema, expiração de senha e a armadilha do usermod -aG
`useradd -m -s` cria um usuário interativo com diretório home e shell; `--system` com shell nologin é o formato adequado para uma conta de serviço. `usermod -G` sem `-a` substitui os grupos suplementares do usuário em vez de acrescentar a eles, um dos erros de contas locais mais comumente relatados.
-
Diagnosticar «No space left on device» quando o df mostra espaço livre
Além do disco cheio, o ENOSPC tem três causas comuns: inodes esgotados, espaço retido por arquivos apagados que um processo ainda mantém abertos e a percentagem de blocos reservados em sistemas de arquivos ext. Verifique df -i, lsof +L1 e a reserva do ponto de montagem antes de apagar qualquer coisa.
-
cgroups v2 no host: verificar o modo e ler os limites de recursos por unidade
Os runtimes de contêineres modernos e o systemd usam cgroups v2 (a hierarquia unificada) para impor limites de memória e CPU. Esta metodologia mostra como confirmar que o host está em modo unificado, navegar pela árvore com systemd-cgls/systemd-cgtop e ler os limites reais de uma unidade ou de um contêiner.
-
Verificação de pacotes RPM instalados contra adulteração com rpm -V
O `rpm -V` compara os arquivos instalados com os checksums, permissões e proprietários registrados na instalação do pacote, e os códigos de uma letra na saída indicam exatamente o que mudou. Esta metodologia explica como ler essa saída e quais são seus limites como verificação de integridade.
-
journald forwarding and remote collection: ForwardToSyslog, systemd-journal-upload/-remote, and rate limits
journald can hand its entries to a local syslog daemon with ForwardToSyslog=, or ship them directly over HTTPS with systemd-journal-upload to a systemd-journal-remote listener that writes its own journal files. Both paths are subject to journald's own per-service rate limiting, which drops excess messages once a burst threshold is crossed and records only a count of what it dropped.
-
Administrar um host RHEL sem interface gráfica pelo console web Cockpit
O Cockpit oferece uma sessão de administração no navegador para um servidor RHEL sem interface gráfica; ele usa ativação por socket e só inicia na primeira conexão. Esta metodologia explica como habilitá-lo, abrir o firewall com o serviço nomeado do próprio Cockpit e para que ele realmente serve em um servidor.
-
Onde ficam, numa máquina de desenvolvimento, as credenciais que um processo de agente consegue ler
Um agente executado com a conta do usuário consegue ler tudo o que esse usuário consegue ler: variáveis de ambiente, arquivos de credenciais de CLIs, logins de registries de contêineres, chaves SSH, histórico do shell e repositórios de dados próximos ao navegador. Conhecer esses locais permite ao operador decidir o que manter fora do alcance do agente e o que rotacionar após um incidente.
-
Planejamento de uma atualização in-place de versão major do RHEL com o Leapp
O Leapp atualiza o RHEL 8 para o 9, ou o 9 para o 10, in-place, mas só depois de resolvidos todos os itens que bloqueiam a atualização no relatório de preupgrade. Esta metodologia cobre a execução da avaliação, o registro das respostas aos seus prompts e o motivo de o backup vir antes da etapa de atualização propriamente dita.
-
Uma pequena área de swap com swappiness baixo reduz as mortes por OOM do serviço principal em servidores com pouca memória sobrando
Hipótese: em servidores de finalidade única cujo working set quase preenche a RAM, uma área de swap modesta combinada com um vm.swappiness baixo permite ao kernel paginar para o disco a memória anônima fria durante picos curtos. Assim, o serviço principal sofre menos OOM kills do que no mesmo host sem swap, ao custo de alguma latência ocasional.
Legível por máquina: JSON