Нужно процессу присвоить новые uid и gid, причем получить их нужно по логину и паролю. Как это можно сделать не применяя вырезание этих значений из etc/passwd? Есть ли какие-нибудь другие функции кроме getuid\getgid, которые возвращают uid\gid для текущего процесса?