如何在脚本中使用密码从shell脚本登录用户帐户?

时间:2014-02-14 10:25:41

标签: linux bash shell unix putty

我正在编写一个shell脚本,使用shell脚本本身提到的密码登录任何用户帐户。我的shell脚本如下:

mypass="helloworld"
echo mypass>su myaccount

执行此shell脚本后,我仍在我当前的用户帐户而不是myaccount

TL; DR我想知道如何通过运行它来通过shell脚本登录用户帐户。

2 个答案:

答案 0 :(得分:3)

使用expect脚本可以通过脚本发送密码,下面是登录su帐户和执行pwd命令的最基本的期望脚本。

#!/usr/bin/expect

spawn su myaccount          # Spawning the su process
expect "Password:*"         # Wait/expect for the Password string from the spawned process
send "uraccpassword\r"      # send the password to spawned process as an input.
expect "*bash*"
send "pwd\r"
expect "*bash*"

答案 1 :(得分:0)

如果您想在不提供密码的情况下登录帐户,则需要使用ssh-keygen从您的帐户生成ssh密钥,并将公钥复制到您要登录的帐户中。另外,我总是会在生成的密钥上设置密码,然后使用ssh-agent进行管理。