我正在尝试从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上阅读了其他答案,但无法正确理解。
答案 0 :(得分:-1)
chmod 0555 script.sh
应解决此问题
修改强>
chown root script.sh
chmod 0500 script.sh
应符合您的要求