我想測試/自動化一些倉庫,基本流程是這樣的:是否有辦法chroot /沙箱去os.exec調用(防止室射頻/)
repos := []string{"repo 1", "repo 2", ...}
for r := range repos {
// git clone the repo
// cd repo dir
// make test
// make build
// ...
}
我做這與使用os.exec
調用所有的一系列命令GO,是這樣的:
exec.Command("sh", "-c", "git clone project")
到目前爲止好,但我想知道是否有保證/防止在Makefile文件的東西誤寫的方式這可能會做類似rm -rf /
。並打破我的主機。
基本上我想使用系統庫/工具,但限制/ chroot只輸出到一個特定的workdir
,以便我可以避免預先爲此構建一個chroot。
一個可行的解決方案是使用一個FreeBSD jail,但我想知道是否有替代/安全的方式來做到這一點,而不需要容器,virtualbox等;並使用基本的Mac OS X工作站。這樣任何人都可以「安全」地運行&測試而不用擔心。
任何想法?
你需要什麼樣的沙箱?你需要沙盒只是文件系統或其他東西,如網絡套接字? – fntlnz
有一個名爲syscall的軟件包,它具有一個Chroot功能,可以執行您所需要的功能:https://golang.org/pkg/syscall/ – robbrit
我只需要沙盒用於文件系統 – nbari