1

Моя программа permissiontest имеет следующие привилегии:

-rwsrwxrwx 1 root root 8664 Nov 18 15:59 permissiontest

Он состоит из следующего кода при запуске от имени пользователя без полномочий root:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
    printf("EUID: %d\n", geteuid());
    printf("RUID: %d\n", getuid());
    return (EXIT_SUCCESS);
}

Это выводит:

EUID: 1000
RUID: 1000

Из того, что я прочитал о бите setuid, я думал, что реальный идентификатор пользователя должен быть равен 0, когда я запускаю программу, потому что root является владельцем программы. Однако реальный идентификатор пользователя не равен 0.

Кто-нибудь может сказать мне, почему это так?

Программа находится на локальном жестком диске, и fstab ничего не указывает, поэтому проблем с монтированием не должно быть.

0