【发布时间】:2017-08-11 14:25:48
【问题描述】:
我有一个程序试图通过 shell 脚本执行
这是执行程序的命令
/data/local/tmp/dbus/dbus-run-session --dbus-daemon=/data/local/tmp/dbus/dbus-daemon --config-file=/data/local/tmp/dbus/session.conf sh
如果我在没有 shell 脚本的情况下直接运行程序,这可以正常工作
但是当我将相同的命令放入 shell 脚本并运行 shell 脚本时,我得到以下错误
exec 'sh 的权限被拒绝
如果我从命令末尾删除 sh,我会收到错误,即需要 非选项参数。
这不是 chmod +x 的问题,因为脚本正在运行并且我已经完成了 chmod
附言。我在 android 终端上运行这个 shell 脚本
有人知道如何解决这个问题吗?
【问题讨论】:
-
查看整个 shell 脚本会很有帮助。
-
/data/local/tmp/dbus/dbus-run-session --dbus-daemon=/data/local/tmp/dbus/dbus-daemon --config-file=/data/local /tmp/dbus/session.conf sh 这是我在 shell 脚本中的唯一命令
-
基本上是命令 /data/local/tmp/dbus/dbus-run-session --dbus-daemon=/data/local/tmp/dbus/dbus-daemon --config-file=/ data/local/tmp/dbus/session.conf sh 最后需要一个 sh 才能执行,否则它会抱怨需要一个非选项参数。如果我删除 sh 并将脚本作为 sh
运行,它会抱怨,因为最后缺少 sh -
取决于一堆我们没有的细节。据我们所知,您在一个 SELinux 处于强制模式的系统上,并且 dbus 不允许运行
/bin/sh,除非通过终端调用。 -
...也就是说,这很可能不是关于shell脚本的问题,而是一个配置问题。