我在 iOS 中有一个需要 su 的 MobileTerminal 脚本,有什么方法可以将命令添加到 bash 脚本中以 root 身份登录,而无需输入 su 然后输入密码?
干杯,
十二月
SUDO 和系统功能在 iOS 中是不允许的,它们违反了沙盒和安全性。
这就是对我有用的解决方案:
SSH 到你的 iPhone
$ssh root@<your iphone ip>
Password: alpine //no echo
并运行
iPhone:~ root# visudo
之后立即添加
root ALL=(ALL) ALL
这条线(你想要的不同)
mobile ALL=(ALL) ALL
sudo
。为了与您一起编辑,visudo
应该使用类似的控件vi
毕竟sudo
像这样添加到你的脚本硬编码调用
#!/bin/bash
sudo -S -p "" echo -n "" <<!
alpine
!
sudo echo "This line is printed as root"
现在解释:
-S
允许从块中读取密码<<!\n ... \n!
,它应该打印在单行上-p ""
禁止密码提示,因此Password:
不打印该行echo -n
最后不允许换行符所以你可以sudo
在你的脚本中没有任何密码提示。唯一的事情 - 在这种方法中,密码是硬编码的。但是您可以尝试像 $1 这样的命令行参数(未经测试,只是一个想法)