Программа suux для Linux не сохраняет euid после execv - PullRequest
0 голосов
/ 26 апреля 2018

Вот мой фрагмент кода c из test.c.

printf("ruid:%d, euid:%d\n",getuid(),geteuid());
char *args[] = {"/bin/bash","-c","exec id",0};
execv("/bin/bash",args);

. Я компилирую код с sudo gcc test.c -o test; sudo chmod +s ./test, поэтому программа test имеет бит suid и принадлежит пользователю root.

printf выводит, как ожидается, ruid:1000, euid:0, но программа id указывает, что ruid и euid оба 1000.

...