Salvatron schreef op zondag 26 juli 2026 @ 21:55:
Moet opencode in een beschermde omgeving draaien? Als ik een vraag stel gaat hij allerlei commando's uitvoeren, lijkt me onveilig omdat die misschien bestanden gaat wissen of de hele desktop naar de tierenlantijnen helpt.
Niet strikt noodzakelijk, want zodra de agent buiten zijn projectdirectory probeert te gaan moet je dat expliciet accorderen. In de meeste gevallen wil hij toegang tot /tmp , of als je hem systeembeheerklusjes laat uitvoeren tot bijv. etc. Niet zo spannend.
Desondanks raad ik het nog steeds aan om te overwegen, omdat agenten niet 100% door Opencode in het gareel te houden zijn. Het is best mogelijk dat een agent in de projectdirectory commando's uitvoert die informatie over de rest van het systeem verschaffen. Ook dat hoeft niet direct gevoelige data te zijn, maar als je uit wilt sluiten....
Ik doe dat om die reden wel. Mijn methode is een simpele chroot, ik zal even uiteenzetten wat ik doe. Ik heb een aparte gebruiker "opencode" mijn systeem waarin ik opencode draai. Ik heb een chroot-omgeving in /hotel. Ik noem het het "hotel" van computer, omdat dat een plaats is waar minder vertrouwde gastgebruikers een homedir kunnen hebben. Daartoe maak je een serie directory's aan en /hotel/dev/ moet je met hand van enkele devices voorzien:
Vervolgens heb ik in /etc/fstab een serie bind-mounts:
Dan is het de groep "hotel" aanmaken en gebruiker "opencode" aanmaken in de groep "hotel" met homedirectory /home/hotel/opencode.
Vervolgens voeg je aan /etc/ssh/sshd_config toe:
Als gebruiker opencode nu inlogt via SSH, dan komt hij in de chroot-gevangenis terecht die we aangemaakt hebben. Opencode kan dan wel alle software op je computer zien en gebruiken, maar je home-directory en eventuele andere directory's waar je evt. waardevolle informatie hebt staan, is onzichtbaar voor opencode.
Dit werkt alleen via ssh, dus als "opencode" lokaal zou inloggen zou hij wel de volledige computer zien. Als je wilt kun je dit nog verder beveiligen, via /etc/pam zijn daar mogelijkheden voor. Voor gebruik van Opencode is dat niet nodig, als je gewoon:
ssh -Y opencode@localhost
opencode
...doet, dan zit Opencode gewoon gevangen. Dit is dus een simpele en effectieve manier om Opencode toegang tot je bestanden te ontzeggen zonder dat je een hele container of VM moet gaan optuigen.