"fmt"
"os"
"os/exec"
+ "syscall"
)
func main() {
}
}
+// FIXME: Can i pre-create namespace and preserve it using mount bind?
func run() {
fmt.Printf("Running %v\n", os.Args[2:])
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
+ cmd.SysProcAttr = &syscall.SysProcAttr {
+ Cloneflags: syscall.CLONE_NEWUTS|syscall.CLONE_NEWUSER|syscall.CLONE_NEWNS,
+ UidMappings: []syscall.SysProcIDMap{{0, 1000, 1}},
+ GidMappings: []syscall.SysProcIDMap{{0, 1000, 1}},
+ }
- fmt.Printf("SHLVL=%v\n", os.Getenv("SHLVL"))
- err := cmd.Run()
+ err := cmd.Start()
fmt.Println(err)
+ fmt.Printf("Created pid %v\n", cmd.Process.Pid)
+ cmd.Wait()
}