本文介绍了setuid:不支持操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

package main

import (
        "log"
        "syscall"
)

func main() {
        setuidErr := syscall.Setuid(0)
        if setuidErr != nil {
                log.Fatal(setuidErr)
        }
}

当我运行上面的代码时,出现以下错误:

When I run above code, I get the following error:

不支持操作
退出状态 1

go 版本:1.15.5

有人可以帮我吗?

推荐答案

这里引用官方文档

在 Linux 上 Setuid 和 Setgid 只影响当前线程,而不影响当前线程过程.这与大多数呼叫者的期望不符,所以我们必须在这里返回一个错误而不是让调用者认为调用成功.

一个可能的解决方案是在这个 commit

A possible solution is in this commit

这篇关于setuid:不支持操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-27 14:20
查看更多