Я пытаюсь запустить скрипт из моего кода на C++, принадлежащего root. Но это меня порождает ошибку Разрешение отклонено для запуска скрипта.Выполнение скрипта, принадлежащего корню из кода C++
Права доступа к файлам следующим образом:
-rwx------ 1 root mygame 39 Dec 24 19:11 script.sh
-rwsr-xr-x 1 gag5kor mygame 7999 Dec 26 12:23 a.out
C++ код:
int err = system("./script.sh");
cout << "Before err: " << err << endl;
cout << "setuid: " << seteuid(0) << endl;
err = system("./script.sh");
cout << "After err: " << err << endl;
getuid() и geteuid() возвращает меня такое же значение (скажем 1234) даже после того, как я называю УИП (0), чтобы получить права доступа root.
Что я здесь делаю неправильно?
Я прочитал другие ответы на stackoverflow, но не смог правильно понять.
Почему вы думаете, простой вызов функции (seteuid) достаточно, чтобы получить корневой доступ с помощью программы не- корневая программа? Конечно, это не так просто. – deviantfan
@deviantfan, как я могу достичь того, что я пытаюсь. Не могли бы вы рассказать, какие изменения потребуются. – Daemon
люди, которые имеют downvoted, вы можете объяснить причину того же. – Daemon