通过运行其他地方记录的漏洞利用程序,可以在终端中得到根提示。(例如,此处:http ://wiki.cyanogenmod.com/wiki/Motorola_Droid_2_Global: _Full_Update_Guide)
此时,我可以安装“ su”二进制文件并为其授予权限4755。这应该允许任何人执行它,并且由于二进制文件的所有者是“ root”并且设置了sticky位,因此我应该成为root用户。但是我显然没有重启终端就无法从终端上消失的根。但是,重新启动后,似乎无法使用'su'成为root用户。
$ ls -l /system/bin/su
-rwsr-xr-x root app_101 26234 2012-07-09 15:00 su
好的,权限看起来不错,我应该能够运行它成为root,但仅在终端的此特定调用中才可以。
$ /system/bin/su
Permission denied
如果我指定该命令以root用户或其他任何参数运行,它也会失败:
$ /system/bin/su /system/bin/sh
Permission denied
为什么?还有其他工作机制吗?我不想安装Superuser.apk,因为我只想一种方法,可以根据需要临时获得root shell,例如手动删除不需要的文件。此外,Superuser.apk无论如何都依赖于su二进制文件,因此它必须具有某种调用它的方法,那么为什么不能在终端中复制它呢?
编辑:我有另一个想法,所以我尝试将/ bin / sh复制到另一个位置,并将其设为suid根。但是,尽管我可以执行新的二进制文件,但它并没有给我root。Android是否在suid上做一些棘手的/与众不同的事情,而suid却是常规Linux不能做到的?