0

我正在尝试查看进程如何获得自己的保存集 uid。我能得到的唯一方法suid是 with 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);
}
4

1 回答 1

0

这实际上是做到这一点的方法。您的方法过于复杂。看看这个:

uid_t ruid, euid, suid;
getresuid(&ruid, &euid, &suid);
printf("%d, %d, %d\n", ruid, euid, suid);
于 2020-05-05T15:43:55.247 回答