【问题标题】:Setting UID to User Other Than Root in C++在 C++ 中将 UID 设置为非 root 用户
【发布时间】:2012-08-19 01:32:04
【问题描述】:

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

setuid(0);

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

谢谢, 彼得。

【问题讨论】:

  • "peter" 不是用户。它是与用户关联的字符串。用户由编号标识。您需要做的是找出哪个用户 ID 有一个与之关联的字符串“peter”。 getpwnam 会帮助你。

标签: c++ ubuntu-11.04 setuid


【解决方案1】:

您可能希望通过密码文件搜索正确的用户 ID,例如getpwnam()。比如:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多