лучшее определение сохраненного идентификатора - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь понять, как процесс может получить свой собственный сохраненный-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);
}

1 Ответ

0 голосов
/ 05 мая 2020

Это действительно способ сделать это. Ваш подход слишком сложен. Взгляните на это:

uid_t ruid, euid, suid;
getresuid(&ruid, &euid, &suid);
printf("%d, %d, %d\n", ruid, euid, suid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...