为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Go 中的 CLONE_NEWUSER 克隆标志会导致参数无效错误

为什么 Go 中的 CLONE_NEWUSER 克隆标志会导致参数无效错误

Go
互换的青春 2022-07-11 14:40:46
我想测试CLONE_NEWUSER国旗。我的内核版本大于 3.8(因为CLONE_NEWUSER不是功能 <3.8)。当我运行代码时,它说无效参数错误:2020/10/18 23:09:59 fork/exec /usr/bin/sh: invalid argumentexit status 1这是源代码:package mainimport (    "log"    "os"    "os/exec"    "syscall")func main() {    cmd := exec.Command("sh")    cmd.SysProcAttr = &syscall.SysProcAttr{        Cloneflags: syscall.CLONE_NEWUTS | syscall.CLONE_NEWIPC | syscall.CLONE_NEWPID | syscall.CLONE_NEWUSER | syscall.CLONE_NEWNS | syscall.CLONE_NEWNET,    }    cmd.SysProcAttr.Credential = &syscall.Credential{        Uid: uint32(0),        Gid: uint32(0),    }    cmd.Stdin = os.Stdin    cmd.Stdout = os.Stdout    cmd.Stderr = os.Stderr    if err := cmd.Run(); err != nil {        log.Fatal(err)    }}
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

看起来像交叉编译错误。

可执行文件是为不同的操作系统配置构建的。参考:http ://dave.cheney.net/2015/08/22/cross-compilation-with-go-1-5


查看完整回答
反对 回复 2022-07-11
?
Helenr

TA贡献1780条经验 获得超3个赞

如果你的操作系统是 centos7,它默认禁用用户命名空间。使用以下命令启用它:

# echo 640 > /proc/sys/user/max_user_namespaces

也许对你有帮助。


查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信