Skip to content
Back to skills

Legacy Os Pitfalls

BSecurity

Loaded by the router when `substrate-report` names an `os.id` matching `centos6 | rhel6 | ubuntu1204 | ubuntu1404`, or when the curator authors shell for any `clean.*` or `defend.*` step. The pitch reads "compatible from CentOS 6 (2011) through modern distros." This bundle keeps the emit honoring that floor.

  • 14 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
securityshellbash

Security analysis

B85/100
  • highCreates or modifies cron jobs for persistent execution

Pro scans all 4 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add rfxn/blacklight --skill legacy-os-pitfalls --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Legacy Os Pitfalls?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Legacy Os Pitfalls
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/rfxn-legacy-os-pitfalls/badge)](https://www.skillsdirectory.com/skills/rfxn-legacy-os-pitfalls)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# legacy-os-pitfalls — keeping authored shell within the substrate floor

Loaded by the router when `substrate-report` names an `os.id` matching `centos6 | rhel6 | ubuntu1204 | ubuntu1404`, or when the curator authors shell for any `clean.*` or `defend.*` step. The pitch reads "compatible from CentOS 6 (2011) through modern distros." This bundle keeps the emit honoring that floor.

## The lived failure this prevents

The curator authors `bl clean cron --user $u` whose body uses `mapfile -d '' lines < <(crontab -u "$u" -l)`. Substrate named the host as CentOS 6, `bash.version=4.1.2`. `mapfile -d` is a bash 4.4 feature; the script parse-fails before any cron content reads. The case stalls in `pending` while the operator chases a syntax error.

## Three classes of pitfall, three files

- `pre-usr-merge-coreutils.md` — pre-`/usr`-merge hosts keep `cp`, `mv`, `rm`, `cat`, `chmod`, `mkdir`, `touch`, `ln` at `/bin/`. `command <util>` resolves portably.
- `no-systemd-no-journal.md` — no `systemctl`, no `journalctl`. Service control is `service` + `chkconfig`; logs sit at `/var/log/secure`, `/var/log/messages`, `/var/log/auth.log`.
- `bash-4.1-floor-features.md` — CentOS 6 ships bash 4.1.2. Idioms from 4.2 / 4.3 / 4.4 / 5.0 parse-fail. NEWS-cited intro versions and per-idiom workarounds live in that file.

## Routing

```
IF substrate.os.id IN {centos6, rhel6, ubuntu1204, ubuntu1404}
   OR authoring shell for any clean.* / defend.* step
  → load SKILL.md + three sister files

IF substrate.os.usrmerge = false → pre-usr-merge-coreutils.md binding
IF substrate.init.system IN {sysvinit, upstart} → no-systemd-no-journal.md binding
IF substrate.bash.version < 4.2 → bash-4.1-floor-features.md binding
```

The bash-4.1-floor file loads with the whole bundle — a patch that parses on Rocky 9 but uses a 5.0 idiom breaks the next time it lands on 4.1.

Cross: `defense-synthesis/firewall-rules.md` (no-systemd `defend firewall` emits `service iptables save`, not `systemctl reload firewalld`); project `CLAUDE.md` "Bash 4.1+ Floor (CentOS 6)" section as canonical project-internal authority.

<!-- public-source authored — extend with operator-specific addenda below -->

Files in this skill

  • SKILL.md2.2 KB
  • bash-4.1-floor-features.md4.5 KB
  • no-systemd-no-journal.md4.7 KB
  • pre-usr-merge-coreutils.md3.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.