将两个密码传递给su命令



我正在尝试通过PHP脚本运行shell注释。我想先将su转换为用户,然后运行sudo命令。我试过了:

echo mypassword | (su -c "sudo reboot" user2)

它不起作用,因为它需要两个密码,而我只传递了一个密码。我查看了许多其他帖子,下面的解决方案对我不起作用,因为我没有当前用户的sudo密码。我需要先更改用户a,然后再做一个sudo。我能得到一些帮助吗?

echo mypassword | sudo -s ...   Not work...

我知道这是一种不好的做法。我只需要它来重新启动服务器,因为端口22意外关闭。我无法通过ssh进入服务器进行任何操作。。

这是从PHP端重新启动服务器的一次性使用,因为我现在无法联系管理员重新启动服务器。我完全理解缺点。。。请不要提出缺点。

由于这是一次性的事情,请尝试使用以下内容。它生成了一个sudo环境(用于当前用户(,在该环境中调用sudo reboot

#! /bin/bash
read -sp "pass? " pass
expect 2>&1 <<-EOF
spawn sudo reboot
expect "*: " { send "${pass}r" }
expect eof
catch wait result
exit [lindex $result 3]
EOF
exit $?

您可以按如下方式调用它来实现自动化。

$ ./test.sh <<-EOF
notreallymypassword
EOF

注意:虽然我认为它有效,但我还没有测试过。

相关内容

  • 没有找到相关文章

最新更新