从C ++代码

时间:2015-12-26 09:37:25

标签: c++ root setuid

我正在尝试从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;
即使在我调用setuid(0)获取root权限之后,

getuid()和geteuid()函数也会返回相同的值(例如1234)。

我在这里做错了什么?

我在stackoverflow上阅读了其他答案,但无法正确理解。

1 个答案:

答案 0 :(得分:-1)

chmod 0555 script.sh应解决此问题

修改

chown root script.sh
chmod 0500 script.sh

应符合您的要求