如何从root更改进程的Real用户ID

时间:2016-09-29 11:29:53

标签: c process kernel freebsd

我一直试图交换ID'一个测试我的程序的过程,我可以通过简单地调用

轻松设置该过程的effectiveUID / UGID
if (setegid(gid)==0)
    {
        if (seteuid(uid)==0)
        {
        }
    }

然后我想用给定的说7052切换我的realUID,将EffectiveUID切换到root(0)

if (setregid(egid,rgid)== 0) //egid(7052),rgid(0)
    {
        if (setreuid(euid,ruid) == 0)
        {
        }
     }

setregid没有工作,它会返回错误说"操作不被允许"我在FreeBSD上,它适用于debian和其他linux发行版,我可以在这里得到一些帮助吗?

1 个答案:

答案 0 :(得分:0)

更改凭据 - 这包括GID - 需要特权。而且你使用seteuid()将这个特权放在上面几行。