我在Ubuntu 11.04上的NetBeans 6.9上使用C ++进行开发。我正在进行一个system()调用,我希望将其称为用户“peter”而不是root用户。我明白了
setuid(0);
将用户设置为root,但是如何将用户设置为peter?
谢谢, 彼得。
答案 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);