好的,由于我不会进入的原因(因为它们相当愚蠢),我需要制作一个 shell 脚本,它将每隔 10 秒在 OS X 上启用 SSH。是的,我知道这听起来很愚蠢/毫无意义,但这是有原因的。
只是为了澄清,我知道 root 密码(我可以login root
在终端中成功),但脚本将在非管理员用户的登录时运行。
该脚本将在标准(非管理员)帐户上作为启动代理运行,并且需要以某种方式将自身提升为 root(我碰巧知道其密码),以便它可以启用 SSH。
我试过使用expect
,但无济于事(它只是拒绝在 OS X 上工作),似乎在 Bash 脚本中传递密码的唯一其他选择是使用echo $pass | sudo -S $command
,但它只是一个标准用户尝试sudo
,它不起作用。
我试过echo $pass | sudo -S login root
, echo "1234" | sudo -S su root
, 和echo "1234" | sudo -S su
,但他们都只是返回“对不起,再试一次。”,即使它正在回显正确的密码,我知道因为我可以成功login root
。
无论如何,我想我的问题是,我如何向 Bash 指定我想要sudo
作为 root 的身份,而不是运行脚本的当前标准帐户。否则,我如何编写一个脚本,当在普通用户下运行时,它会自行提升为 root 或至少一个管理帐户,而无需用户输入;当然,假设我知道 root 的密码。
我知道这个场景听起来真的“你为什么需要一个脚本来做这个”,但请帮助我;我将不胜感激。这是我当前的非工作代码。