2026 OpenClaw MeshMac in der Praxis: Konfiguration und Log-Pfade pro Projekt auf gemeinsamen Knoten — reproduzierbare Mindestrechte-Schritte
Typische Schmerzpunkte auf gemeinsamen Builder-Knoten
- Globale Konfiguration: Ein einziges
OPENCLAW_CONFIG_ROOTmischt Queue-Namen, Webhook-Pfade und Skills — Änderungen für Projekt A brechen Projekt B. - Log-Stürme: Gemeinsame
/var/log-Dateien ohne Gruppentrennung erschweren forensische Auswertung und erzwingen breite Leseberechtigungen. - Überdimensionierte Tokens: Vollzugriffs-API-Keys in Home-Verzeichnissen von Menschen verletzen Least-Privilege und Rotationspflichten.
Layout-Matrix: Konfiguration, Logs, Blast-Radius
Die Tabelle fasst fünf Entscheidungsdimensionen für Mehrprojekt-Isolation auf einem physischen Mac zusammen — unabhängig davon, ob Sie SSH-Sessions oder dedizierte Dienstkonten nutzen.
| Dimension | Variante A — Unterordner | Variante B — eigenes Volume |
|---|---|---|
| Konfigurationspfad | /etc/openclaw/projects/{slug}/ |
gleicher Pfad, Volume nur für Logs empfohlen |
| POSIX-Modus | Verzeichnis 0750 root:ocproj-{slug} |
Log-Wurzel optional 2770 mit setgid |
| Quota & Monitoring | Projektbezogene Rotation, globaler freier Speicher | Volume-Quota und Alarme pro Mandant |
| Backup-Richtlinie | Konfig in Git; Logs kurz retentieren | Snapshots nur Log-Volume selektiv |
| Blast-Radius | mittel — volles Systemvolume | niedrig — Volllauf isoliert |
| Signal | Zielwert (Richtwert) | Messmethode |
|---|---|---|
| Freier Speicher System | mindestens etwa 40 GB Puffer | df -h / |
| Projekt-Log-Größe | Rotation vor 10 GB pro Slug | du -sh /var/log/openclaw/* |
| Token-Alter | Rotation alle 90 Tage oder bei Rollenwechsel | Ticket + Secret-Inventory |
Schritt 1 — Projekt-Slug und Unix-Gruppe definieren
Wählen Sie einen stabilen PROJECT_SLUG aus Kleinbuchstaben und Bindestrichen. Die Gruppe ocproj-${PROJECT_SLUG} bündelt alle Konten, die dieselbe Konfiguration lesen dürfen.
export PROJECT_SLUG="acme-ios"
sudo dseditgroup -o create "ocproj-${PROJECT_SLUG}"
sudo dseditgroup -o edit -a openclaw_worker_acme -t user "ocproj-${PROJECT_SLUG}"
Prüfpunkt: dsmemberutil checkmembership -U openclaw_worker_acme -G "ocproj-${PROJECT_SLUG}" muss user is a member melden.
Schritt 2 — Konfigurationsverzeichnis mit Mindestrechten anlegen
Render-Ziele liegen unter /etc/openclaw/projects/${PROJECT_SLUG}/. Geheimnisse bleiben außerhalb in /etc/openclaw/secrets.d/... und werden nur referenziert — konsistent mit dem HowTo zu Umgebungs-Templates im Einleitungsabsatz.
sudo install -d -o root -g "ocproj-${PROJECT_SLUG}" -m 0750 \
"/etc/openclaw/projects/${PROJECT_SLUG}/active"
sudo install -m 0640 -g "ocproj-${PROJECT_SLUG}" ./rendered/openclaw.yaml \
"/etc/openclaw/projects/${PROJECT_SLUG}/active/openclaw.yaml"
Prüfpunkt: sudo -u openclaw_worker_acme test -r "/etc/openclaw/projects/${PROJECT_SLUG}/active/openclaw.yaml" und ein zweites Projekt ohne Gruppenmitgliedschaft muss scheitern.
Schritt 3 — Log-Wurzel: Unterpfad oder separates Volume
Für Unterordner genügt ein gemeinsamer Pfad /var/log/openclaw/${PROJECT_SLUG} mit identischer Gruppe. Für stärkere Isolation hängen Sie ein kleines APFS-Volume ein und setzen Besitz auf dieselbe Gruppe.
sudo install -d -o root -g "ocproj-${PROJECT_SLUG}" -m 2770 \
"/var/log/openclaw/${PROJECT_SLUG}"
sudo chgrp "ocproj-${PROJECT_SLUG}" "/var/log/openclaw/${PROJECT_SLUG}"
sudo chmod 2770 "/var/log/openclaw/${PROJECT_SLUG}"
Prüfpunkt: namei -l "/var/log/openclaw/${PROJECT_SLUG}" zeigt setgid und Gruppe ocproj-…; neue Dateien erben die Gruppe.
Schritt 4 — Tokens auf einen Webhook oder eine Queue begrenzen
Erzeugen Sie getrennte Automation-Credentials je Projekt. Speichern Sie sie als Dateien mit Modus 0440, Gruppe ocproj-${PROJECT_SLUG}, Besitzer root — analog zu den im Einleitungsabsatz verlinkten Geheimnis-Mindestrechten.
sudo install -m 0440 -g "ocproj-${PROJECT_SLUG}" ./tokens/acme_webhook.token \
"/etc/openclaw/secrets.d/projects/${PROJECT_SLUG}/webhook_inbound"
Prüfpunkt: Ein Nutzer ohne Gruppe darf cat nicht lesen; der Dienstbenutzer schon.
Schritt 5 — LaunchDaemon-Umgebung und Health-Checks
Setzen Sie in der plist oder Unit-Hülle OPENCLAW_CONFIG_ROOT auf /etc/openclaw/projects/${PROJECT_SLUG}/active und OPENCLAW_LOG_DIR auf die Log-Wurzel. Laden Sie den Dienst neu und fahren Sie einen harmlosen Diagnosebefehl.
sudo launchctl bootout system /Library/LaunchDaemons/com.example.openclaw-acme.plist
sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.openclaw-acme.plist
sudo -u openclaw_worker_acme openclaw doctor --config "/etc/openclaw/projects/${PROJECT_SLUG}/active/openclaw.yaml" || true
Prüfpunkt: Logs erscheinen nur unter dem Projekt-Pfad; grep -R PROJECT_SLUG /var/log/openclaw/${PROJECT_SLUG} bestätigt Zuordnung ohne fremde Slugs.
Fehlerdiagnose-Matrix
| Symptom | Wahrscheinliche Ursache | Erster Befehl |
|---|---|---|
| Dienst startet, bricht sofort ab | Pfad oder Token nicht lesbar | sudo -u worker namei -l $CONFIG_PATH |
| Logs landen im falschen Slug | OPENCLAW_LOG_DIR vererbt aus Shell-Profil |
sudo launchctl print system/com.example.openclaw-acme |
| Webhook akzeptiert Events von Projekt B | Token-Scope zu breit oder gemeinsamer Listener | Secret-Inventory diff gegen Routing-Tabelle |
FAQ
Braucht jedes Projekt ein eigenes APFS-Volume für Logs?
Separate Volumes verbessern Quoten und Blast-Radius. Unterordner reichen, wenn Sie Gruppe, Rotation und Speicheralarme pro Slug durchsetzen.
Dürfen zwei Menschen ein Konfigverzeichnis teilen?
Nicht für produktive Automation: Editor-Artefakte riskieren Token-Lecks. Nutzen Sie persönliche Staging-Pfade und Dienstkonten für Produktion.
Weitere HowTos und Blog-Übersicht; Produktüberblick auf der Startseite; Support im Hilfezentrum.
Dedizierte MeshMac-Knoten für saubere OpenClaw-Isolation
Mieten Sie Apple-Silicon-Kapazität mit SSH/VNC und setzen Sie projektweise Konfiguration und Logs ohne Hardwarebeschaffung um — auf der Preisseite Pakete vergleichen, im Hilfezentrum Einrichtung lesen, die OpenClaw-Themenseite und Blog-Übersicht nutzen sowie die Startseite für den Überblick.