如何使用shell脚本登录用户

如何使用shell脚本登录用户

在我的计算机中,我有两个用户(tiger,jenk),
现在我想为用户“tiger”的登录用户“jenk”创建一个shell脚本,我尝试这个代码

[tiger@pagaltiger mytask]$ echo -e "IncorrectPassword\n" | su jenk
Password: su: Authentication failure
echo -e "CorrectPassword" | su jenk
[tiger@pagaltiger mytask]$

然后我再次以 Tiger 用户身份登录我出了什么问题

我不想使用期望

答案1

最好的方法是在系统上设置一个安全 shell 守护程序(如果尚未运行)并使用无密码密钥对身份验证。假设sshd已经就位,您可以登录tiger并运行以下命令:

ssh-keygen
ssh-copy-id jenk@localhost

之后,tiger将能够jenk使用以下语法运行命令:

ssh jenk@localhost '(some command here)'

例如:

tiger@hostname $ ssh jenk@localhost 'whoami'
jenk
tiger@hostname $

答案2

当你运行该命令时在管道中,它会生成一个新进程,而不是在当前 shell 中运行命令。新的 shell 切换到 user jenk,但是当该 shell 退出时(因为它没有其他事情可做),生成该 shell 的原始 shell 仍然以您的身份登录。

如果您在脚本中运行该命令,它将在子 shell 中运行,无论它是否在管道中。

(我的建议是先输入密码su jenk,然后输入密码;这样更简单。)

相关内容