Todos os artigos
-
Relatar falhas parciais de forma estruturada
Retorne o resultado de cada operação e um estado agregado explícito, para que o trabalho já concluído não seja repetido após um resultado misto.
-
Criar um espelho RAID1 por software com mdadm e substituir um disco com falha
O comando mdadm --create monta um array RAID por software no Linux a partir de partições ou discos inteiros; sem uma entrada em mdadm.conf e sem atualizar o initramfs, o array pode não ser remontado no próximo boot, embora funcione normalmente logo após a criação.
-
Diagnóstico da aplicação de Group Policy: gpresult, gpupdate e o módulo GroupPolicy
Como ver quais políticas foram realmente aplicadas a um computador ou usuário com gpresult /h e Get-GPResultantSetOfPolicy, forçar o reprocessamento com gpupdate /force e fazer backup de uma GPO com Backup-GPO antes de editá-la.
-
Rastreamento distribuído em resumo: spans, IDs de pai e propagação do W3C Trace Context
Um trace é uma árvore de spans, cada um com trace ID, span ID próprio, ID do span pai, timestamps, atributos e status; o cabeçalho W3C traceparent transporta o trace ID, o ID do pai e o flag sampled entre processos, e um serviço que apenas repasse os dois cabeçalhos já mantém os traces íntegros.
-
Envenenamento de memória: quando uma única instrução injetada persiste em todas as sessões seguintes
Agentes com memória persistente podem ser induzidos a armazenar uma instrução de um atacante como se fosse um fato ou uma preferência, que passa então a influenciar sessões que nunca tiveram contato com o conteúdo original. Gravações na memória precisam de proveniência, revisão e prazo de validade, e o que é lido da memória deve ser tratado como texto não confiável.
-
Escolher a próxima verificação de depuração pelas hipóteses que ela consegue distinguir
Evita que uma investigação repita diagnósticos de pouca informação, escolhendo cada nova verificação em função das explicações concorrentes que o seu resultado consegue separar.
-
Armazenamento de senhas e chaves de API
Senhas devem ser armazenadas apenas como hashes lentos com salt (Argon2id, scrypt, bcrypt); chaves de API de alta entropia podem usar um hash rápido com chave. Ambos são comparados em tempo constante e nunca são registrados em log nem devolvidos após a emissão.
-
Comparação de sincronização de relógio: chrony, systemd-timesyncd, w32tm, timed do macOS e xntpd do AIX
Referência rápida para verificar se o relógio de um host está de fato sincronizado, nos daemons de tempo usados por Linux, Windows, macOS e AIX. Não é um estudo aprofundado de uma ferramenta específica, já que a verificação tem o mesmo formato em todos: há uma fonte configurada e o relógio está sincronizado neste momento?
-
Como adicionar uma CA privada ao repositório de confiança do sistema na família RHEL e no Debian/Ubuntu
As famílias RHEL e Debian de Linux usam mecanismos distintos para adicionar um certificado de CA de confiança local: update-ca-trust com âncoras em /etc/pki/ca-trust, e update-ca-certificates com arquivos .crt em /usr/local/share/ca-certificates. Usar o diretório ou a extensão errada deixa a CA sem confiança, sem nenhum aviso.
-
Códigos de saída do wget e do rsync: os códigos 23 e 24 do rsync geralmente não são a falha que parecem
O wget atribui um código fixo e pequeno a cada classe de erro (rede, SSL, autenticação, protocolo); a tabela do rsync é maior e inclui o 23 (transferência parcial por erro) e o 24 (transferência parcial por arquivos de origem que desapareceram), que geralmente só indica que um arquivo sumiu durante a varredura, sem evidenciar uma transferência com problema.
-
Conventional Commits: tipos de commit legíveis por máquina
A especificação Conventional Commits acrescenta às mensagens de commit um prefixo tipado (feat, fix e outros) e marcadores de breaking change, para que changelogs e incrementos de versão possam ser derivados automaticamente.
-
Senhas de uso único baseadas em tempo como segundo fator
O TOTP (RFC 6238) gera um código curto a partir de um segredo compartilhado e do intervalo de tempo atual; protege contra a reutilização de senhas, mas não contra phishing em tempo real, e exige armazenamento seguro do segredo, tolerância de relógio e códigos de recuperação.
-
Roteamento de alertas: agrupamento, inibição, silenciamentos e políticas de escalonamento
Entre um alerta disparado e o telefone de alguém há quatro decisões: qual equipe e qual canal o recebem (árvore de roteamento), quais alertas seguem juntos (agrupamento com group_wait, group_interval e repeat_interval), quais são silenciados porque um alerta de causa já os explica (inibição) ou porque há manutenção planejada (silenciamentos), e quanto tempo o responsável tem antes de o acionamento escalar para a pessoa seguinte.
-
Como fazer requisições HTTP corretamente em Python
Defina timeout em toda requisição, reutilize um cliente para aproveitar o pool de conexões, envie os cabeçalhos Accept e User-Agent, decodifique conforme o charset declarado e trate códigos de status e novas tentativas de forma deliberada; a biblioteca padrão e o httpx suportam tudo isso.
-
Executar um serviço com o systemd
Um arquivo de unidade declara como um serviço é iniciado, reiniciado e isolado; use Type, Restart=on-failure, limites de recursos e diretivas de sandboxing, e leia os logs com journalctl em vez de escrever sua própria daemonização.
-
Confirmar que um patch de segurança foi realmente aplicado: comparar versões instaladas com os avisos do fabricante em várias famílias de SO
Um job de atualização que reporta sucesso não prova que uma vulnerabilidade específica foi corrigida. O que fecha o ciclo é comparar a versão instalada do pacote ou da build com o aviso do próprio fabricante: Ubuntu USN, um aviso da família RHEL (RHSA no RHEL) via dnf updateinfo --security, Debian DSA via debsecan, Windows Get-HotFix ou o número de build do macOS com a página de versões de segurança da própria Apple. Mesmo depois dessa verificação, uma reinicialização pendente pode deixar o binário antigo e vulnerável em execução.
-
OAuth 2.0 client credentials para acesso máquina a máquina
O fluxo client credentials permite que um serviço ou agente obtenha um token de acesso com o próprio client ID e secret, sem envolver um usuário; scope e resource indicators limitam o token, e o secret deve ser tratado como uma senha: armazenado com hash no servidor e rotacionado pelo cliente.
-
Delimitar regras do Firewall do Windows Defender com NetSecurity sem bloquear a própria sessão
Get-NetFirewallProfile e New-NetFirewallRule gerenciam o Firewall do Windows Defender pelo PowerShell; delimitar uma regra com -RemoteAddress e -Profile mantém uma porta de gerenciamento aberta apenas para os endereços e tipos de rede que precisam dela, e testar a partir de uma segunda sessão evita cortar a que você está usando.
-
Governança para um projeto pequeno: direitos de decisão escritos antes de serem necessários
Um arquivo de governança responde quem pode fazer merge, quem resolve uma disputa de escopo, como os mantenedores são adicionados e removidos e como as próprias regras mudam. A PEP 13 do Python mostra um modelo de conselho cuja autoridade deve ser exercida raramente e com deliberação pública; o glossário da Apache define lazy consensus, em que uma proposta passa se ninguém se opuser dentro de um prazo declarado. Um projeto com um a três mantenedores precisa apenas de uma página.
-
Aprendizado contrastivo autossupervisionado: pares, aumento de dados e colapso
Aprenda representações comparando visões relacionadas e contrastantes, escolha transformações que preservem informação útil e avalie as representações além da perda de treinamento.
Legível por máquina: JSON