小编use*_*234的帖子

为什么我不能删除 sudo root 权限?

我正在调试一个程序,但不太清楚为什么我不能删除权限。

我有 root 权限sudo,可以调用setgid/setuid,但[is]不支持该操作。

重现的基本代码(golang):

package main

import (
    "fmt"
    "os"
    "strconv"
    "syscall"
)

func main() {
    if os.Getuid() != 0 {
        fmt.Println("run as root")
        os.Exit(1)
    }

    uid, err := strconv.Atoi(os.Getenv("SUDO_UID"))
    check("", err)

    gid, err := strconv.Atoi(os.Getenv("SUDO_GID"))
    check("", err)

    fmt.Printf("uid: %d, gid: %d\n", uid, gid)

    check("gid", syscall.Setgid(gid))
    check("uid", syscall.Setuid(uid))
}

func check(message string, err error) {
    if err != nil {
        fmt.Printf("%s: %s\n", message, err)
        os.Exit(1)
    }
}
Run Code Online (Sandbox Code Playgroud)

示例输出:

$ sudo ./drop-sudo 
uid: 1000, …
Run Code Online (Sandbox Code Playgroud)

root setuid permissions sudo system-calls

6
推荐指数
1
解决办法
1430
查看次数

标签 统计

permissions ×1

root ×1

setuid ×1

sudo ×1

system-calls ×1