在C ++中将UID设置为除Root之外的用户

时间:2012-08-19 01:32:05

标签: c++ ubuntu-11.04 setuid

我在Ubuntu 11.04上的NetBeans 6.9上使用C ++进行开发。我正在进行一个system()调用,我希望将其称为用户“peter”而不是root用户。我明白了

setuid(0);

将用户设置为root,但是如何将用户设置为peter?

谢谢, 彼得。

1 个答案:

答案 0 :(得分:2)

您可能希望通过以下方式在密码文件中搜索正确的用户ID: getpwnam()。类似的东西:

// look up peter's uid
uid_t peter_uid=getpwnam("peter")->pw_uid;

// Become peter
setuid(peter_uid);
seteuid(peter_uid);