我想以root身份运行应用程序
稍后,我通过一个间接脚本运行该应用程序,并使用 6755 权限设置运行该应用程序,该部分有效并运行该应用程序。
MyApp.app/MyApp
MyApp.app/MyApp_
我有一个 MyApp 文件,它是一个脚本如下:
我的应用程序.app/我的应用程序:
#!/bin/bash
dir=$(dirname "$0")
exec "${dir}"/MyApp_ "$@"
它运行 MyApp_,这是要以 root 身份运行的应用程序。
这是我在电脑上运行'chmod 6755 MyApp.app/MyApp_'后的文件属性
电脑上6755
-rwsr-sr-x 1 抢劫员工 817856 Mar 17 01:07 MyApp_
这是我复制到设备时的文件属性
(使用带有 scp -rp key 的终端)
复制后设备上的 0755 !!!
-rwxr-xr-x 1 root admin 817856 Mar 17 05:07 MyApp_
然而,当我再次在设备上更正属性时,它工作正常并且 MyApp_ 以 root 身份运行!
但我想确保当用户从 Cydia 安装应用程序并通过 Cydia 复制它时,用户不会发生同样的事情,并且 MyApp_ 属性不会变回 0755,这会导致应用程序无法运行。
您不能使用 set*id(0)
成为 root,除非该进程一开始就已经作为 root 运行。如果您费心检查 errno
,您会发现它将是 EPERM
.
Tôi là một lập trình viên xuất sắc, rất giỏi!