Я пытаюсь понять, как процесс может получить свой собственный сохраненный-set-uid. Единственный способ получить suid
- использовать getresuid()
, но я думаю, это не лучшее решение.
Как я могу получить его «более инженерным способом»?
Это мой код:
#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
int main(void) {
uid_t *ruid = malloc(sizeof (uid_t));
uid_t *euid = malloc(sizeof (uid_t));
uid_t *suid = malloc(sizeof (uid_t));
getresuid(ruid, euid, suid);
printf("%d, %d, %d\n", *ruid, *euid, *suid);
}