SShortSingh.
Back to feed

Misconfigured sudo logging silently consumed 10 GB by duplicating nightly database backups

0
·23 views

A disk-usage alert on a Chatwoot production server revealed that /var/log/sudo-io had grown to 5.9 GB and was adding roughly 654 MB per week. Investigation showed the server had fewer sudo sessions than any other host in the fleet, yet its per-session log size was 8.3 times heavier than comparable machines. The root cause was a nightly offsite backup job that read database dumps through sudo, causing sudoers' log_output feature to write a full byte-for-byte copy of each dump into the audit log. Other hosts in the same fleet had already exempted these backup-read commands via /etc/sudoers.d/iolog-exemptions, but the Chatwoot host did not, because exemption files had been configured manually on each server with no consistency checks. The fix was to apply scoped command exemptions that suppress only the byte stream for known file-read operations while preserving session metadata, and to roll the exemptions out uniformly across all four logging hosts.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Auditing AI C++ Patch Graders by Seeding Faulty Mutants

A hypothetical example describes an eval harness that reported PASS on AI-generated C++ patches for weeks while a signed modulo replacing a bounded comparison went undetected. The unit tests and sanitizer checks stayed green because no test case exercised the faulty branch, showing that a passing report does not prove the grader can still catch a given failure. The proposed remedy is a weekly self-audit that pushes known-faulty patches, called mutants, through the real harness and flags any grader that fails to reject them. Each mutant is declared in a manifest with the graders that must catch it, and a surviving mutant counts as a finding. The approach requires a clean git worktree and a harness that reports per-grader status in machine-readable form.

0
ProgrammingDEV Community ·

Declaring Degradation: A Fallback Contract for AI Agents That Lose Their Cloud Model

An illustrative scenario describes a nightly job that tags support tickets via a remote model, where a retry wrapper silently returns empty tags during timeouts and the failure goes unnoticed. The author argues this is a missing contract between a capability and its degraded form, not a model-quality issue. The proposed remedy is a three-tier declaration (local_only, cloud_preferred, cloud_required) that specifies whether each tool may leave the host and what it may return when the cloud path is unavailable. Declarations live alongside each tool as data, so reviewers can audit them and missing entries fail at startup rather than at runtime. A small outcome object reporting status (ok, degraded, refused) and payload source is recommended over resolvers that return inconsistent values.

0
ProgrammingDEV Community ·

AetherScope V2.2.1 releases a Rust-based SAST tool with 3D code visualization and an MCP server for AI agents

AetherScope V2, a native Rust engine called aether-engine, merges four tools into a single fast binary aimed at checking code written by AI agents such as Claude, Cursor and Antigravity. It offers a WebGL 2 interactive 'galaxy' view of codebases or Obsidian vaults, plus a real-time static analysis linter that runs in under 50 ms on each save. The linter covers over 185 CWE and zero-day rules across several languages, along with taint tracking, SCA via OSV.dev and SARIF 2.1.0 export. A spec-driven governance feature seals per-folder rules with BLAKE3 hashes and blocks unsigned AI changes, while an MCP server lets agents verify patches in real time. The project is demonstrated through a live web demo and a GitHub release for version 2.2.1.

0
ProgrammingDEV Community ·

10 ejercicios de hoisting y scope para practicar entrevistas frontend

Un nuevo artículo de DEV Community propone diez ejercicios para practicar preguntas de hoisting y scope que suelen aparecer en entrevistas frontend. Cada ejercicio muestra un fragmento de código que el lector debe predecir antes de revisar la solución. El texto explica cómo var, let, const, las declaraciones de función y las expresiones de función se comportan al elevarse. Las respuestas, según el autor, fueron verificadas en Node.js, y el material se presenta como continuación de un post previo sobre variables y tipos de dato.