Как изменить реальный идентификатор пользователя процесса из root
Я пытался поменять идентификаторы процесса, чтобы протестировать свою программу, я мог легко установить эффективное UID/UGID этого процесса, просто вызвав
if (setegid(gid)==0)
{
if (seteuid(uid)==0)
{
}
}
И тогда я хочу переключить свой realUID с указанным скажем 7052 и EffectiveUID на root(0)
if (setregid(egid,rgid)== 0) //egid(7052),rgid(0)
{
if (setreuid(euid,ruid) == 0)
{
}
}
setregid
не работает, возвращает сообщение об ошибке "операции запрещены", я нахожусь на FreeBSD, работает нормально для Debian и других дистрибутивов Linux, могу ли я получить некоторую помощь здесь?
1 ответ
Изменение учетных данных - включая GID - требует привилегий. И вы отбрасываете эту привилегию всего несколькими строками выше с помощью seteuid().