从C++代码中执行root拥有的脚本

Execute the script owned by root from C++ code

本文关键字:拥有 脚本 root 执行 C++ 代码      更新时间:2023-10-16

我正试图从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),即使在我调用setuid(0)以获取根权限之后也是如此。

我在这里做错了什么?

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

chmod 0555 script.sh应修复此

编辑

chown root script.sh
chmod 0500 script.sh

应满足您的要求