У меня проблема с setuid и setgid. Я написал этот код C:
int main() {
setuid(0);
setgid(0);
system("/path/to/script.sh");
return 0;
}
Скомпилировал его с помощью gcc:
gcc test.c -o test
Тогда я использовал chmod +s
. В script.sh
есть только команда id
. Вот разрешения для исполняемого файла test
:
-rwxr-sr-x 1 root root 8464 mag 15 20:14 test
Когда я выполняю программу, я получаю следующий вывод:
uid=1000(user) gid=1000(user) gruppi=1000(user)
Почему я не получаю вывод id
выполняемого пользователем root?