Здесь у меня есть файл с именем uid_demo.c
, в котором отображается реальный и эффективный идентификаторы пользователя.
#include <stdio.h>
int main() {
printf("real uid: %d\n", getuid());
printf("effective uid: %d\n", geteuid());
}
И я выполнил следующие команды:
gcc -o uid_demo uid_demo.c
sudo chown root:root ./uid_demo
sudo chmod u+s ./uid_demo
ls -l uid_demo
Выход:
-rwsrwxr-x 1 root root 8712 Jun 29 15:09 uid_demo
Когда я запускаю программу, она должна отображать мой реальный ИД пользователя (1000) и эффективный ИД пользователя 0 (root), так как владельцем файла является root, а разрешение setuid включено. Тем не менее, он отображает следующее:
real uid: 1000
effective uid: 1000
Любая помощь? Заранее спасибо.