我正在尝试破解我自己的 Android 应用程序,该应用程序可以打开与我的计算机的 SSH 连接并发送命令。
我的目标是将这个过程的交互性保持在最低限度,使其具有远程控制的感觉。
我添加了一个 sudo“开关”,当激活时,它会要求输入 sudo 密码,然后运行要以之运行的命令 x,sudo -S -p '' x
然后将密码发送到 STDIN。
问题是,如果登录失败,命令将等待另外 2 次密码尝试,从而增加我不想要的交互性!
我知道我可以passwd_tries
在sudoers
文件中进行编辑,但我更想知道是否有办法将其设置为 sudo 的参数,或者它是否也是可以设置的环境变量?
有人知道吗?或者出于安全原因不允许这样做?
答案1
浏览文件后man sudo
,sudoers
我没有看到任何方法可以实现想要的行为。
可能的原因:
从安全角度来看,无法增加密码重试次数。虽然可以减少密码重试次数,但我想这没有必要。
可能的解决方案:使用 -S,因为如果密码不正确,它会立即失败:
echo <passwd> | sudo -S ls
答案2
尝试设置一个单独的用户帐户并配置您的sudoers
文件以授予无需密码的访问权限。
myuser ALL = NOPASSWD: ALL
或者,设置用户拥有uid
实际上0
是第二个根帐户。
这会从您的 Android 应用中删除所有秘密密码。请务必避免以纯文本形式存储共享秘密(例如用户密码)。