Я пытаюсь запустить скрипт из моего кода C ++, принадлежащего пользователю root.
Но это бросает мне ошибку доступ запрещен запустить скрипт.
Разрешения для файлов следующие:
-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) даже после того, как я вызываю setuid (0) для получения прав root
Что я здесь не так делаю?
Я прочитал другие ответы на stackoverflow, но не в состоянии понять правильно.
chmod 0555 script.sh
должен это исправить
РЕДАКТИРОВАТЬ
chown root script.sh
chmod 0500 script.sh
Должен выполнить ваши требования
Других решений пока нет …