:
-, getpwnam(). struct passwd *pw, NULL , . struct (pw_uid) (pw_gid), .
if((pw = getpwnam(userid)) == NULL)
sprintf(error_msg "Userid '%s' does not exist", userid);
if (setgid(pw->pw_gid) != 0)
sprintf(error_msg "setgid() to %d failed", pw->pw_gid);
,
if (setuid(pw->pw_uid) != 0)
sprintf(error_msg "setuid() to %d failed", pw->pw_uid);
. - , setgid() setuid(). , , .