2015-12-26 2 views
-3

Я пытаюсь запустить скрипт из моего кода на 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, но не смог правильно понять.

+3

Почему вы думаете, простой вызов функции (seteuid) достаточно, чтобы получить корневой доступ с помощью программы не- корневая программа? Конечно, это не так просто. – deviantfan

+0

@deviantfan, как я могу достичь того, что я пытаюсь. Не могли бы вы рассказать, какие изменения потребуются. – Daemon

+0

люди, которые имеют downvoted, вы можете объяснить причину того же. – Daemon

ответ

-1

chmod 0555 script.sh исправить эту

EDIT

chown root script.sh 
chmod 0500 script.sh 

должны выполнить ваши требования

+0

Если я делаю chmod 0555, тогда этот скрипт может запускаться всеми. Я хочу, чтобы только root мог запускать файл сценария. Поэтому я дал разрешение как 0700 на script.sh – Daemon

+0

@Gaurav - См. Выше –

 Смежные вопросы

  • Нет связанных вопросов^_^