Jednorázové příkazy jako uvx nebo pkgx ušetří instalaci, ale nejsou bezpečnostní sandbox. Pro neznámý software je důležité vědět, zda se dostane k vašim souborům, klíčům a dalším citlivým údajům.
Nejdřív si ujasněte, co chcete vyřešit. Nezaneřádit počítač je něco jiného než zabránit programu, aby četl nebo měnil soubory. Nástroj spuštěný přes uvx může být snadné odstranit, ale pořád běží s oprávněními vašeho uživatelského účtu.
Jednoduchý režim: Python přes uvx, ostatní přes pkgx
Pro běžný Pythonový nástroj (zde ruff jen jako příklad) zkuste například:
uvx ruff --version
uvx stáhne potřebné balíčky do odděleného virtuálního prostředí a spustí nástroj bez trvalé instalace do projektu. Výchozím zdrojem je PyPI, takže najdete i méně známé balíčky, které nemusejí být v ručně udržovaném katalogu. To ale není kontrola bezpečnosti. Balíček musí být kompatibilní s vaším systémem a mít spustitelný příkaz. Pokud se jméno balíčku liší od příkazu, použijte například uvx --from httpie http. Dokumentace uv a indexy, které uv používá
Pro podrobnější vysvětlení se hodí TIP#3344: Nahradí uv pipx? Pro běžné použití ano, ale nejsou úplně stejné a TIP#3307 o pipx a Pythonových nástrojích v Terminálu.
Pro ostatní nástroje můžete zkusit pkgx, například:
pkgx openai --version
Na Macu ho nainstalujete přes Homebrew:
brew install pkgx
Tohle instaluje samotný pkgx; jeho dostupné balíčky pak spouštíte příkazem pkgx název. Viz také formule pkgx v Homebrew.
Na Linuxu i Macu pak pkgx hledá nástroje ve svém katalogu zvaném pantry. Ten je rozsáhlý, ale není to katalog všeho softwaru: pokud v něm program chybí, pkgx název ho samo nenajde. Dokumentace uvádí přes 1 700 položek v katalogu, jeho obsah se ale průběžně mění. Katalog pkgx a dokumentace pkgx
uvx i pkgx ukládají stažené soubory do cache, aby nemusely příště stahovat všechno znovu. Po ukončení příkazu se tedy neodinstaluje úplně vše. Cache uv lze vyčistit příkazem uv cache clean; starší verze balíčků v pkgx odstraní pkgx mash prune. Další podobné spouštěče jsou npx pro Node.js a bunx pro Bun. Ani ty nejsou sandboxem a také si nechávají cache. Dokumentace npm cache a dokumentace bunx
TIP: Jak ve Windows bezpečně testovat programy? Virtuální stroj nebo sandbox
Nix a mise: dobré pro prostředí a verze
Pokud už používáte Nix, můžete otevřít shell s konkrétním nástrojem:
nix shell nixpkgs#ripgrep
Po zavření shellu zmizí jeho dočasná úprava PATH, ale stažené balíčky zůstávají v Nix store, dokud je později neodstraní garbage collector. Nix je užitečný pro čisté a opakovatelné prostředí, ne pro izolaci nedůvěryhodného kódu. Dokumentace nix shell
mise exec se hodí hlavně pro spuštění konkrétní verze runtime, třeba Node.js, bez trvalé úpravy konfigurace shellu. Ani Nix, ani mise ale samy neomezí přístup programu k souborům vašeho účtu. Dokumentace mise
Homebrew pomůže s úklidem, ne s izolací
Homebrew je užitečný správce balíčků pro Mac, ale instalovaný program běží jako vy a může zapisovat do uživatelské konfigurace. Pokud potřebujete základní přehled, jak Homebrew nainstalovat a používat, pomůže TIP#1835 o Homebrew.
Před experimentováním si můžete uložit seznam toho, co chcete zachovat:
brew bundle dump --file=~/Brewfile
Po zkoušení vypište balíčky, které v tomto souboru nejsou:
brew bundle cleanup --file=~/Brewfile
Nejdřív si seznam odinstalací pečlivě projděte. Teprve pokud odpovídá tomu, co chcete odstranit, přidejte --force, které úklid provede bez dalšího potvrzování. Pokud už ~/Brewfile existuje, zkontrolujte jej nebo zvolte jiný název. --force při dumpu soubor přepíše. A pozor: úklid Homebrew neodstraní nutně nastavení či data, které program uložil do ~/.config, ~/Library a podobných míst. Dokumentace Homebrew Bundle
Podezřelý nástroj zkuste v kontejneru, ne v hlavním systému
Když chcete hlavně čisté Linuxové prostředí, spusťte například:
docker run --rm -it ubuntu bash
Program pak instalujete a spouštíte uvnitř kontejneru. --rm odstraní kontejner po ukončení, včetně balíčků, které jste do něj doinstalovali. Stažený obraz Ubuntu a cache Dockeru na disku zůstanou.
Nepřipojujte do kontejneru celý domovský adresář. Bezpečnostní výhoda se tím výrazně zmenší: proces uvnitř by mohl číst nebo měnit připojené soubory. Zvlášť nesdílejte .ssh, přístupové tokeny ani Docker socket. Docker upozorňuje, že zápisový bind mount umožňuje měnit soubory hostitele. Dokumentace Dockeru k bind mountům
Na Macu můžete použít Docker Desktop nebo Docker kompatibilní prostředí v OrbStacku. Docker na Macu spouští Linuxové kontejnery, ne macOS programy. TIP#3317 vysvětluje instalaci Dockeru na Macu.
OrbStack má také režim isolated pro Linuxový stroj, který ve výchozím stavu nepřipojí soubory Macu ani nepředává SSH agenta. Pořád ale sdílí Linuxový kernel, takže nejde o plnohodnotnou ochranu proti programu, který se aktivně snaží z prostředí uniknout. Dokumentace OrbStacku k izolovaným strojům
Když hrozí skutečné nebezpečí, použijte virtuální stroj
Kontejner je dobrý způsob, jak si uklidit běžné zkoušení. Pokud ale program opravdu považujete za škodlivý, nepouštějte ho na hlavním systému ani nespoléhejte jen na kontejner. Použijte virtuální stroj bez sdíleného domovského adresáře, SSH klíčů a dalších citlivých údajů. Pro testování Linuxových programů na Macu je možností i izolovaný Linuxový stroj; pro testování skutečného macOS, například brew install, potřebujete macOS VM.
Na Apple Silicon je jednou z možností Tart. Počítejte s velkým obrazem virtuálního stroje, v rychlém návodu kolem 25 GB. Předpřipravené obrazy Cirrus Labs používají podle dokumentace účet a heslo admin/admin; změňte heslo před připojením stroje k síti. Tart je vhodný pro test macOS-specifického chování, ale zbytečně těžký, pokud jen chcete vyzkoušet známý CLI nástroj. Tart Quick Start
Co zvolit
Pro známý Pythonový nástroj začněte s uvx. Pro jiný program zkuste pkgx, pokud ho najde v pantry. Pro běžný test v čistém Linuxu použijte kontejner bez připojených osobních složek. A jestli jde o opravdu podezřelý kód, sáhněte po virtuálním stroji. Jednorázové spuštění a bezpečné spuštění nejsou totéž.
POZNÁMKA: Hledal jsem přesně to, co je napsané v titulku tohoto tipu a probíral to s Claude, která mi dobře poradila. A protože je to fakt hodně šikovné, posunul jsem to o kousek dál do Hermes SKILL, ten rozšířil řešerši, mírně jsem mu to upravil o důležité pointy a výše máte výsledek. Mimopchodem zkoumal důkladně, takže 4.52 Kč. Jen tedy opět tentokrát tvrdohlavě dával všechny soiuvisející odkazy na konce odstavců. Což je přesně to co nemá dělat.

