Files
management/docs/adr/0008-agenten-sessions-root-aequivalent.md
T

91 lines
4.4 KiB
Markdown
Raw Normal View History

---
type: adr
id: "0008"
status: accepted
date: 2026-08-06
supersedes: null
superseded_by: null
related: []
---
# 0008 — Agenten-Sessions auf CFGMON laufen root-äquivalent über die docker-Gruppe
**Status:** akzeptiert · **Datum:** 2026-08-06 (Struktur-Workshop [#17](https://git.lab/axion1337.chat/management/-/issues/17)) · **Entscheider:** sorb
## Kontext
`sudo` ist aus einer Agenten-Session nicht bedienbar: Es gibt kein TTY, also auch
keine Passworteingabe (*„a terminal is required to read the password"*). Die
LABNET-02-Nacht lief deshalb über die **docker-Gruppenmitgliedschaft** des Kontos
`rantanplan` — privilegierter Container plus `nsenter` in die Host-Namespaces.
Das ist **root-äquivalent**, und zwar ohne Umweg: Wer Docker steuern darf, darf
alles. Auf Linux ist das normales Verhalten der docker-Gruppe und kein
Konfigurationsfehler — aber es hat zwei Folgen, die benannt gehören:
1. Die **sudo-Passwortabfrage ist für dieses Konto keine Sicherheitsgrenze**. Sie
sieht aus wie eine, ist aber umgehbar, ohne dass jemand etwas umgehen wollte.
2. Dieser Weg hinterlässt **keinen Eintrag in `auth.log`**. Was über die
docker-Gruppe geschieht, ist im Nachhinein nicht aus den üblichen
Protokollen rekonstruierbar.
Aufgedeckt im [CFGMON-AAR](../aar/2026-08-01-labnet02-cfgmon.md)
(Befund 3, MEDIUM), erfasst als
[#14](https://git.lab/axion1337.chat/management/-/issues/14).
## Entscheidung
**Es bleibt so — ausdrücklich und dokumentiert.** Agenten-Sessions auf CFGMON
arbeiten root-äquivalent über die docker-Gruppe.
Daraus folgt unmittelbar: **Auf diesem Host gilt „sudo mit Passwort" nicht als
Kontrollmechanismus.** Wer dort Sicherheit gegen unbeabsichtigte oder
unerwünschte Änderungen braucht, muss sie woanders aufhängen — an der
Erreichbarkeit des Hosts, an der Vergabe der Zugangsdaten, an der Frage, wer
überhaupt eine Session starten kann.
**Ziel bleibt Option C** (eigenes Agenten-Konto mit definierter, protokollierter
Rechteerhöhung), aber **erst wenn ein zweiter Mensch mitarbeitet**. Der Nutzen von
C ist Zuordnung — nachvollziehen zu können, *wer* was getan hat. Im
Ein-Personen-Betrieb gibt es niemanden, gegen den diese Zuordnung schützen würde;
sie wäre Aufwand ohne Adressaten.
## Konsequenzen
- **Der Arbeitsweg bleibt funktionsfähig.** Host-Sessions können weiterarbeiten;
ohne diese Entscheidung wäre LABNET-02 gar nicht durchführbar gewesen.
- **Die Protokollierung fehlt und wird nicht ersetzt.** Wer im Nachhinein wissen
will, was eine Session auf CFGMON getan hat, findet es **nicht** in `auth.log`,
sondern nur in Git-Historie, Issues und AARs. Das ist der Grund, warum die
AAR-Pflicht und „alles Offene wird ein Issue" auf diesem Host besonders zählen —
sie sind hier der einzige Nachvollzug.
- **Ein kompromittiertes `rantanplan`-Konto ist ein kompromittierter Host.** Nicht
neu durch diese Entscheidung, aber jetzt ausgesprochen.
- **Auslöser für Option C** ist ein zweiter Mensch mit Zugang — nicht ein Datum.
Kommt einer dazu, wird diese ADR abgelöst.
## Offen, bewusst nicht vor der Entscheidung geklärt
Das Issue verlangte vorab zu klären, **welche anderen Konten in der docker-Gruppe
sind und ob dasselbe auf MATRIX gilt**. Beides ist ungeprüft — dafür braucht es
eine Host-Session, vom Mac aus ist es nicht einsehbar.
Das ändert an der Entscheidung nichts (sie betrifft den Weg, nicht seinen Umfang),
wohl aber an ihrer Reichweite: Sollte sich zeigen, dass weitere Konten in der
Gruppe sind, ist zu prüfen, ob die alle dort hingehören. Nachzuholen bei der
nächsten Host-Session, festgehalten in #14.
## Verworfene Alternativen
- **B — Konto aus der docker-Gruppe nehmen**, Docker-Zugriff über gezielte
sudo-Regeln. Auditierbar, aber es **legt Agenten-Sessions auf CFGMON lahm**:
`sudo` braucht ein TTY, das eine Session nicht hat. Löst ein Protokollproblem,
indem es den Arbeitsweg entfernt — vertretbar erst, wenn ein Ersatz steht.
- **C sofort** — getrenntes Agenten-Konto mit protokollierter Rechteerhöhung.
Sauberste Lösung, aber echte Arbeit für einen Nutzen, der im
Ein-Personen-Betrieb nicht anfällt. Bleibt das Ziel, siehe oben.
- **Stillschweigend so lassen.** Genau das ist der Fehler, den ADR-0002 und die
ADR-Pflicht für dauerhafte Ausnahmen adressieren: Eine Ausnahme nur zu
dokumentieren statt sie zu entscheiden, ist keine Entscheidung. Deshalb diese ADR
und nicht bloß ein Absatz in `hosts/cfgmon.md`.