【发布时间】:2016-09-26 12:59:50
【问题描述】:
我正在尝试使用下面的代码更改进程的真实 UID
int ERN2=setreuid(euid,m_ruid);
printf("something went wrong with setreuid %s\n", strerror(ERN2));
std::cout<<"error no for setrugid"<<ERN2<<"\n";
if ( ERN2 == 0)
{
.....
}
m_ruid 是 root(0),euid 是可接受的 ID,但是当我得到 setreuid() 的结果时,它总是 -1,我使用了 strerror(),上面写着“不允许操作“此外,我可以更改 realGID setregid() 但更改 UID 总是失败,任何人都可以解释一下。
我在 FreeBSD 上。我想知道为什么即使我们将 root 作为参数之一也会发生这种情况。
【问题讨论】:
标签: c++ c kernel freebsd user-permissions