我正在学习 Linux 命名空间,并尝试通过 golang 创建一个 UTS 命名空间。这是我的代码
func main() {
cmd := exec.Command("sh")
cmd.SysProcAttr = &syscall.SysProcAttr{
Cloneflags: syscall.CLONE_NEWUTS,
}
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
log.Fatal(err)
}
}
当我执行
go run uts.go
,我收到错误 fork/exec /bin/sh: operation not permitted
.我的操作系统是Ubuntu 18.04.3
, Linux Kerenl 版本为 5.0.0-32-generic
.
最佳答案
而是构建程序,然后将可执行文件作为 sudo 运行。
去构建 uts.go
须藤 ./uts
关于go - 不允许创建命名空间操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820365/