Linux PuTTY - 自动化 su 解决密码相关问题

Linux PuTTY - 自动化 su 解决密码相关问题

我正在通过PuTTY连接到服务器,如下所示:

putty.exe -ssh user@host -pw password -noagent -m commands.txt

之后我必须使用:

su someUser

它会要求输入密码 - 我已将其放在 command.txt 中,但它不起作用。

如何在一行中自动执行 su 命令(包括密码),并将其放在 command.txt 中?或者也许有其他方法?

我不想使用 sudo 或 execute 等。我尝试过:

echo password | su someUser

但这种方式的管道铺设并没有起到作用。

答案1

您可以通过在 /etc/sudoers 文件中添加脚本/程序特定行来禁用密码问题:yourusername ALL=(ALL) NOPASSWD: /usr/local/bin/whatever

答案2

使用 su 并将密码保存在文件中是否至关重要?如果不重要,请使用其他方法,因为:

$ su << LOL
> secretpassword
> LOL
su: must be run from a terminal

$ echo secretpassword|su - 
su: must be run from a terminal

你最好使用 ssh 密钥:快速 ssh-keys 介绍

答案3

为什么你不想使用sudo?su 将始终使用终端功能询问密码,因此您需要创建一个伪终端来与其通信。expect可以为您做到这一点。

不过,我认为解决这个问题的“正确”方法是使用特定用户拥有的 suid 可执行文件,或者更好的是——使用正确配置的sudo

相关内容