RET-11 Nachtrag: chattr+i-Wurzelursache korrigiert (unprivilegierter LXC, nicht ZFS) #312

Closed
patrick wants to merge 0 commits from docs/ret-11-nachtrag-chattr-untersuchung into main
pull from: docs/ret-11-nachtrag-chattr-untersuchung
Owner

Untersuchung des wiederholt dokumentierten WORM-chattr-Befunds (QA-02/QA-05/QA-07, Archive-Board).

Ergebnis: echte Infrastrukturgrenze, kein Code-Bug, kein Fix in wormstore.go moeglich.

Wichtige Korrektur gegenueber bisheriger Doku: Nicht ZFS ist die Ursache, sondern dass Host 204/131 unprivilegierte LXC-Container sind. CAP_LINUX_IMMUTABLE-Pruefung im Kernel ist klassisch, nicht namespace-bewusst (bewusste Kernel-Design-Entscheidung, LKML 2014, Patch dafuer abgelehnt). Problem traete identisch auf ext4/XFS/Btrfs auf, solange Container unprivilegiert ist.

8 Alternativen geprueft (ZFS-CLI, Snapshots, Bind-Mount-readonly, Proxmox-Flags, setcap, verschachtelte User-Namespaces, FUSE, externes Object-Lock-Backend) — keine im Container-Scope ausreichend. Bestehendes Fail-Closed-Verhalten in Put/ImmutableLockSupported ist bereits die richtige Reaktion, keine Code-Aenderung noetig.

Einzige strukturell gleichwertige Alternative: echtes S3/MinIO Compliance-Mode Object-Lock-Backend — Architekturwechsel, nicht Teil dieses Nachtrags.

Kein Merge, kein Deploy — nur Dokumentation.

🤖 Generated with Claude Code

Untersuchung des wiederholt dokumentierten WORM-chattr-Befunds (QA-02/QA-05/QA-07, Archive-Board). **Ergebnis: echte Infrastrukturgrenze, kein Code-Bug, kein Fix in wormstore.go moeglich.** **Wichtige Korrektur gegenueber bisheriger Doku:** Nicht ZFS ist die Ursache, sondern dass Host 204/131 unprivilegierte LXC-Container sind. `CAP_LINUX_IMMUTABLE`-Pruefung im Kernel ist klassisch, nicht namespace-bewusst (bewusste Kernel-Design-Entscheidung, LKML 2014, Patch dafuer abgelehnt). Problem traete identisch auf ext4/XFS/Btrfs auf, solange Container unprivilegiert ist. 8 Alternativen geprueft (ZFS-CLI, Snapshots, Bind-Mount-readonly, Proxmox-Flags, setcap, verschachtelte User-Namespaces, FUSE, externes Object-Lock-Backend) — keine im Container-Scope ausreichend. Bestehendes Fail-Closed-Verhalten in `Put`/`ImmutableLockSupported` ist bereits die richtige Reaktion, keine Code-Aenderung noetig. Einzige strukturell gleichwertige Alternative: echtes S3/MinIO Compliance-Mode Object-Lock-Backend — Architekturwechsel, nicht Teil dieses Nachtrags. Kein Merge, kein Deploy — nur Dokumentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-10-16 15:13:19 +02:00
archive-kanban: RET-11 Nachtrag - chattr +i EPERM ist Infrastrukturgrenze, kein Code-Bug
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Archive-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
a9333c7f51
Reale Reproduktion auf Host 204 (chattr, roher FS_IOC_SETFLAGS-Ioctl,
Gegenprobe auf tmpfs im selben Container) zeigt: Ursache ist der
unprivilegierte LXC-Container (capable(CAP_LINUX_IMMUTABLE) prueft
immer gegen den Host-Namespace, nicht gegen den Container), nicht ZFS
wie bisher in RET-11-PRUEFPROTOKOLL.md vermutet - betrifft jedes
Dateisystem im Container. Acht geprueften Alternativen (ZFS readonly/
hold, ACL/chmod, Proxmox-Features, Capabilities, verschachtelte
User-Namespaces, FUSE, externes Object-Lock-Backend) sind im
Container-Scope entweder nicht verfuegbar oder strukturell keine
vollwertige Entsprechung. Keine Aenderung an wormstore.go, da der
bestehende Fail-Closed-Mechanismus (ImmutableLockSupported) bereits
korrekt reagiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
Owner

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.
patrick closed this pull request 2026-10-19 12:29:45 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#312