0


我正在制作一个有权安装文件的 Cydia 应用程序。为此,我需要能够获得对 /Applications 的 root 访问权限。我看过这里,但有点不清楚。有人可以解释得更好一点吗?

谢谢!

4

2 回答 2

2

永远不要使用带有 setuid 的系统!例如,如果恶意人员将其更改PATH/tmp:$PATH,并且此人将自己的程序添加到 /tmp 并将其命名为“ls”,那么即使运行这个简单的代码也会让他们获得对您设备的 root 访问权限:

setuid(0); system("ls");

相反,您应该使用 exec 系列函数,而不是 execvp/execlp。

于 2012-05-04T03:07:47.380 回答
1

你可以用这个

setuid( 0 ); 
system( "/path/to/script.sh" );

其中脚本的路径是您的应用程序中将安装文件的脚本

或者

setuid( 0 ); 
system( "cmd" );

其中 cmd 是一个命令,例如

setuid( 0 ); system( "echo Hello World" );

您也可以通过这种方式将日志记录到/tmp目录或任何其他位置。

setuid( 0 ); system( "echo Hello World >> /tmp/install.log" );

setuid (0);给它root访问权限并且system (cmd);是实际的命令

请注意如何使用它,因为 root 可以访问任何地方。

于 2012-04-25T22:47:31.543 回答