Wprowadzenie
Zatwierdzenia exec dzialaja jako blokada bezpieczenstwa dla agentow w sandboxie wykonujacych polecenia na rzeczywistych hostach (gateway lub node). Wspolpracuja z polityka narzedzi i bramowaniem elevated, kontrolujac, ktore polecenia moga zostac uruchomione na podstawie trzech czynnikow: polityka + allowlista + (opcjonalne) zatwierdzenie uzytkownika.
Mechanizm dzialania
System wymusza zatwierdzenia lokalnie na hostach wykonawczych — na maszynie gateway lub node runner. Model zaufania zaklada, ze:
- Uwierzytelnieni wywolujacy Gateway sa zaufanymi operatorami
- Sparowane wezly rozszerzaja te mozliwosc na hosty node
- Zatwierdzenia zmniejszaja ryzyko przypadkowego wykonania, ale nie tworza granic uwierzytelniania per-uzytkownik
Zatwierdzone uruchomienia wiaza kanoniczny kontekst wykonawczy: kanoniczny cwd, dokladne argv, wiazanie env (jesli obecne) i przypieta sciezka do pliku wykonywalnego.
Polityki bezpieczenstwa
Ustawienia security
deny— blokuj wszystkie zadania exec na hoscieallowlist— zezwol tylko na polecenia z allowlistyfull— zezwol na wszystko (rownowazne z elevated)
Ustawienia ask
off— nigdy nie pytajon-miss— pytaj tylko gdy allowlista nie pasujealways— pytaj przy kazdym poleceniu
Fallback pytania
deny— blokuj zadania wymagajace promptuallowlist— zezwol jesli pasuje do allowlistyfull— zezwol na zadania
Tryb YOLO
Aby uruchamiac polecenia bez pytania o zatwierdzenie, obie warstwy polityk musza byc otwarte:
openclaw config set tools.exec.host gateway
openclaw config set tools.exec.security full
openclaw config set tools.exec.ask off
openclaw gateway restart
Allowlisty
Allowlisty sa per-agent i uzywaja globowych wzorow pasujacych do sciezek binarnych (wielkosc liter nie ma znaczenia):
~/Projects/**/bin/peekaboo~/.local/bin/*/opt/homebrew/bin/rg
Safe Bins
Funkcja tools.exec.safeBins definiuje binaria stdin-only, ktore moga dzialac w trybie allowlist bez jawnych wpisow. Domyslne safe bins to: cut, uniq, head, tail, tr, wc.
Zatwierdzanie przez kanaly czatowe
Mozna przekazywac prompty o zatwierdzenie do kanalow czatowych (Slack, Telegram, Discord, Matrix). Zatwierdzanie w czacie odbywa sie przez:
/approve <id> allow-once
/approve <id> allow-always
/approve <id> deny
Bezpieczenstwo IPC na macOS
Na macOS komunikacja odbywa sie przez Unix socket IPC z uprawnieniami 0600, tokenem w pliku konfiguracyjnym, weryfikacja UID peera oraz uwierzytelnianiem challenge/response z krotkim TTL.