diff --git a/main.c b/main.c index 9563625..548b494 100644 --- a/main.c +++ b/main.c @@ -13,15 +13,17 @@ pid_t pid_child; void drop_root(void) { + uid_t uid = getuid(); // Drop root privileges - if (seteuid(getuid()) == -1) + if (setresuid(-1,uid,uid) == -1) { int err = errno; - printf("Failed to drop root privileges with seteuid (%d)\n", err); + printf("Failed to drop root privileges with setresuid (%d)\n", err); exit(err); } - if (setegid(getgid()) == -1) + gid_t gid = getgid(); + if (setresgid(-1,gid,gid) == -1) { int err = errno; printf("Failed to drop root privileges with setegid (%d)\n", err);