go - 不允许创建命名空间操作?

标签 go namespaces

我正在学习 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/

相关文章:

c++ - 静态成员变量和命名空间变量有什么区别?

c++ - 来自不同命名空间的 friend 方法

go - 如何将请求主体解码/解码为 Golang 结构和结构 slice ?

php - SimpleXML SOAP 响应命名空间问题

javascript - 为什么不推荐 `with`?有没有更好或其他方法将 "descend"放入对象的 namespace ?

c# - 您将如何使用 Scala 的异步使多个异步请求超时?

php - 连接命名空间类静态变量的最佳方法是什么?

go - 获取一个简单的服务器来显示网页

json - 如何检查 JWT 的角色声明(值数组)的某个值?

go - 如何使用带有可变数量参数的 go-sqlmock WithArgs()?