Gegenbuch-Container: Rechte am Bind-Mount selbst geraderuecken
Fehlerbild aus dem echten Betrieb: "mkdir: cannot create directory '/gegenbuch/schluessel': Permission denied", Container in der Neustart-Schleife. Ursache: Das Datenverzeichnis kommt als Bind-Mount vom Host; der Betreiber hatte das Projekt als root geklont, der Container lief aber direkt als UID 1000 und durfte dort nichts anlegen. Der .gitkeep-Ansatz hatte stillschweigend angenommen, dass als normaler Benutzer geklont wird - auf einem Server ist root der Normalfall. Fix: Der Container startet als root, setzt /gegenbuch per chown auf den Arbeitsbenutzer (PUID/PGID, Standard 1000) und startet sich per setpriv als dieser neu. Die eigentliche Arbeit laeuft weiterhin unprivilegiert. Schlaegt das chown fehl (rootless Docker), gibt es einen Hinweis mit dem passenden Host-Befehl statt eines stummen Abbruchs. Verifiziert mit exakt der Ausgangslage: Datenverzeichnis auf root:root gesetzt, Container gestartet -> laeuft durch, erzeugte Dateien gehoeren 1000:1000, der private Schluessel liegt mit 0600. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -113,7 +113,14 @@ tools/audit-notary/data/prod/
|
||||
```
|
||||
|
||||
Der Inhalt ist vom Repository ausgenommen – der Signaturschlüssel gehört dort
|
||||
nicht hinein. Die Verzeichnisse selbst sind über `.gitkeep` vorhanden, damit
|
||||
nicht hinein.
|
||||
|
||||
**Zu Dateirechten:** Der Container startet kurz als `root`, setzt das
|
||||
Datenverzeichnis auf den Arbeitsbenutzer um und gibt die Privilegien dann ab.
|
||||
Das ist nötig, weil das Verzeichnis vom Host kommt – wer das Projekt als `root`
|
||||
geklont hat, hätte sonst ein Verzeichnis, in das der Container nicht schreiben
|
||||
darf. Passiert automatisch, du musst nichts tun. Ein anderer Zielbenutzer geht
|
||||
über `PUID`/`PGID`. Die Verzeichnisse selbst sind über `.gitkeep` vorhanden, damit
|
||||
sie nach einem `git clone` schon existieren und Docker sie nicht als `root`
|
||||
anlegt.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user