【发布时间】:2010-11-03 19:13:23
【问题描述】:
我正在尝试使用 setuid() 和 setgid() 来设置程序的相应 id 以从 root 中删除权限,但是要使用它们,我需要知道我想要更改的用户的 uid 和 gid到。
是否有系统调用来执行此操作?我不想硬编码它或从 /etc/passwd 解析。
我也想以编程方式而不是使用:
id -u 用户名
任何帮助将不胜感激
【问题讨论】:
-
解析/etc/passwd有什么问题?
-
我应该说,“我宁愿不解析 /etc/passwd”,因为我怀疑有一个更简单的方法,感谢答案,我找到了。
-
解析 /etc/passwd 的一个问题是用户名可能没有存储在那里 - 它们可能在某个目录服务器(LDAP 等)上。另一个错误是 getpwnam() 等人已经为你完成了。
标签: c++ c unix privileges system-calls