我正在编写一个python脚本来自动化与远程计算机的ssh连接。当使用python的Paramiko库连接到远程计算机时,如果我需要提升权限(特别是切换用户--切换到root或某个普通用户),我将执行命令su <some_normal_user>
(切换到普通用户)或su
(切换到root-默认情况下),但我面临的问题是它提示我输入密码。
我将用户和密码存储在 yaml 文件中,我希望该命令是一行,这样它就不会提示我手动输入密码。
有什么方法可以解决这个问题吗?
附言:我在网上查了一下,人们说su
出于安全原因,他们不建议以单行方式执行命令(因为可以从 bash 历史记录中检索密码)。就我而言,不存在安全问题,因为密码已经在 yaml 文件中了。
答案1
使用sudo
而不是su
。 该sudo
命令更适合这种用途。 您可以在文件中精确配置它,/etc/sudoers
以允许特定用户以其他特定用户的身份运行特定命令,无论是否要求输入密码。