我正在尝试了解一个进程如何获得它自己的saved-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);
}
发布于 2020-05-05 23:43:55
这实际上是做这件事的方法。你的方法太复杂了。看看这个:
uid_t ruid, euid, suid;
getresuid(&ruid, &euid, &suid);
printf("%d, %d, %d\n", ruid, euid, suid);
https://stackoverflow.com/questions/61613941
复制相似问题