Я пытаюсь заставить программу на С всегда запускаться от имени пользователя root, независимо от того, кто его вызывает. По сути, я хочу, чтобы он вызывал "mkdir /test" в качестве примера. Поэтому я создал программу на C следующим образом:
#include <stdio.h>
int main()
{
system("mkdir /test");
printf("bye...\n");
return 0;
}
Теперь я только что скомпилировал: gcc test.c -o test
И теперь я попытался установить разрешения:
chmod +s test
Однако, запустив его как обычный пользователь, я получаю ошибку «Отказано в доступе». Таким образом, он выполняет файл, но не с правами root. Я также попытался установить разрешения как:
chmod a+s test
chmod o+s test
Но у меня всегда одна и та же проблема.
Кто-нибудь может мне помочь с этим? Кстати, файл test.c создается пользователем root, а также компилируется как root.
bash-3.2# ls -al | grep test
-rwxr-xr-x 1 root staff 8796 5 Ago 19:07 test
bash-3.2# chmod +s test
bash-3.2# ls -al | grep test
-rwsr-sr-x 1 root staff 8796 5 Ago 19:07 test
bash-3.2# whoami
root
bash-3.2#
Заранее спасибо! Cheerz!