我想以root身份运行应用程序 稍后我通过间接脚本运行应用程序,运行此应用程序并使用6755权限设置,该部分可以运行并运行应用程序。
MyApp.app/MyApp
MyApp.app/MyApp _
我有MyApp文件,其脚本如下:
MyApp.app/MyApp:
#!/bin/bash
dir=$(dirname "$0")
exec "${dir}"/MyApp_ "$@"
它运行MyApp_,它是以root身份运行的应用程序。
这是我在计算机上运行'chmod 6755 MyApp.app/MyApp_'之后的文件属性
计算机上的6755
-rwsr-sr-x 1 rob staff 817856 Mar 17 01:07 MyApp _
这是我将其复制到设备时的文件属性
(使用scp -rp键的终端)
在复制后设备上的0755 !!!
-rwxr-xr-x 1 root admin 817856 3月17日05:07 MyApp _
然而,当我在设备上再次更正属性时,它工作正常,MyApp_以root身份运行!
但我想确保当用户从Cydia安装应用程序并通过Cydia复制时,用户不会发生同样的事情,并且MyApp_属性不会更改回0755,这会导致应用无法正常工作。
答案 0 :(得分:2)
除非进程已经以root身份运行,否则不能使用set*id(0)
成为root用户。如果您费心检查errno
,您会发现它会EPERM
。
答案 1 :(得分:1)
您是否在main()中调用了setuid(0)?