2012-04-05 2 views
1

Как программно изменить uid и gid работающего внешний процесс с использованием c?Программно изменить uid и gid работающего внешнего процесса с помощью c

+0

Является ли это на самом деле сделать то же самое путь на iOS, как на unix-системах? Если нет, тег iOS следует удалить. Если так, ничего себе, это потрясающе! – setholopolus

ответ

1

Небольшой пример, который включает в себя возможность изменить UID ЕТ GID, используя существующие имена пользователей и групп:

#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

+0

Это несправедливо :) В любом случае, я боюсь, что это обычно невозможно. – SirDarius

+0

yup, кажется немного несправедливым, но я думаю, что он мог бы решить мою проблему :) – zsounder

Смежные вопросы