From 66aeae6166275b1e949c85ffce1901a437f81c88 Mon Sep 17 00:00:00 2001 From: ptrcnull Date: Tue, 18 Jan 2022 14:49:41 +0100 Subject: [PATCH] feat: Add pidns flag --- main.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 78a196b..aa061e4 100644 --- a/main.go +++ b/main.go @@ -12,6 +12,7 @@ import ( var rootPath = flag.String("root", "", "path to root directory") var initCmd = flag.String("init", "/sbin/init", "init command") var workdir = flag.String("workdir", "/", "work directory") +var pidns = flag.Bool("pidns", false, "create pid namespace") func main() { flag.Parse() @@ -26,7 +27,7 @@ func main() { cmd.Dir = *workdir cmd.SysProcAttr = &syscall.SysProcAttr{ Chroot: *rootPath, - Cloneflags: syscall.CLONE_NEWUSER|syscall.CLONE_NEWPID, + Cloneflags: syscall.CLONE_NEWUSER, UidMappings: []syscall.SysProcIDMap{ {ContainerID: 0, HostID: os.Getuid(), Size: 1}, }, @@ -34,6 +35,9 @@ func main() { {ContainerID: 0, HostID: os.Getgid(), Size: 1}, }, } + if *pidns { + cmd.SysProcAttr.Cloneflags |= syscall.CLONE_NEWPID + } cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr