2012-04-05 38 views
1

如何编程修改正在运行的外部过程中使用C的UID和GID正在运行的外部进程的UID和GID?编程方式更改使用C

+0

这个确实做了同样的iOS上的方式,因为它在UNIX系统上?如果不是,则应删除iOS标记。如果是这样,哇,太棒了! – setholopolus 2017-10-02 23:24:18

回答

1

,包括可能改变使用现有的用户和组名GID UID等一个小例子:

#include <sys/types.h> 
#include <unistd.h> 
#include <pwd.h> 
#include <grp.h> 

// .. snip 

// find user and group 
struct passwd * pwd = getpwnam("new_user"); 
struct group * grp = getgrnam("new_group"); 

// not included : error checking 

uid_t uid = pwd->pw_uid; 
gid_t gid = grp->gr_gid; 

setgid(gid); 
setuid(uid); 

编辑:这只适用于当前进程

+0

对不起,刚才更新的问题,我想是改变uid和正在运行的外部进程的GID而不是自己。 – zsounder 2012-04-05 10:39:39

+0

这是不公平的:)不管怎样,恐怕它通常是不可行的。 – SirDarius 2012-04-05 10:47:41

+0

是的,似乎有点不公平,但我认为它可以解决我的问题:) – zsounder 2012-04-05 10:55:57