我正在制作一个有权安装文件的Cydia应用程序。我需要能够获得/ Applications的root访问权限。我看了here,但有点不清楚。有人可以解释一下吗?
谢谢!
答案 0 :(得分:2)
切勿将系统与setuid一起使用!例如,如果恶意个人将PATH
更改为/tmp:$PATH
,并且此人将自己的程序添加到/ tmp并将其命名为“ls”,那么即使运行此简单代码也会他们对您设备的root访问权限:
setuid(0); system("ls");
相反,您应该使用exec系列函数,而不是execvp / execlp。
答案 1 :(得分: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可以访问所有地方。