【问题标题】:Busybox ash - execution with permission denied [duplicate]Busybox ash - 权限被拒绝执行[重复]
【发布时间】:2016-05-24 14:02:13
【问题描述】:

我正在尝试在 Android 设备上运行 busybox,我将 busybox 二进制文件推送到 /tmp 文件夹,然后在 /tmp 文件夹中添加一个 i.sh 文件,代码如下:

#!/bin/sh
echo aa
/tmp/busybox dirname

然后进入/tmp文件夹,像这样执行:./busybox ash ./i.sh 错误报告:

./i.sh:第 3 行:/tmp/busybox:权限被拒绝

设备已植根,setenforce 已设置为 0。 如果使用系统sh执行这个文件sh ./i.sh,一切正常。

【问题讨论】:

  • chmod +x /tmp/busybox ?
  • 可能与您为系统设置的路径有关,echo $PATH 给出了什么?
  • chmod +x busybox 一开始已经设置好了,如果你仔细看我的话,可以看到,我是用这个busybox ash来执行我的脚本,然后在脚本中再次调用这个busybox,如果chmod 没有设置,这个busybox不能执行,但是脚本已经跑到第3行了。
  • echo $PATH = /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin,如果手动从 shell 回显或在我的脚本文件中回显,则得到相同的 $PATH 结果。
  • 我发现其他两点可能需要注意。 1)如果将busybox移动到/system,它将起作用。 2) /tmp 是指向/data/local/tmp 的符号链接,但即使在/data 中也应该没问题。

标签: android shell busybox


【解决方案1】:

如果您在 Android 中没有 root 访问权限,您可以将busybox 复制到路径"/data/local/tmp" 并像"/data/local/tmp/./busybox" 一样运行它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 2019-05-02
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2015-07-10
    • 1970-01-01
    相关资源
    最近更新 更多