我正在开发一个Python脚本,它可以通过SSH连接到多个远程CentOS机器,并在'/ etc / sysconfig / network-scripts / ifcfg-eth1'中将'ONBOOT'的值从'yes'更改为'no'。 我可以使用Paramiko通过我的用户凭据SSH到远程计算机。 为了编辑'/ etc / sysconfig / network-scripts / ifcfg-eth1'文件,我必须成为一个sudo用户,然后我才能编辑该文件。 我面对的问题是我无法以root用户身份直接登录到CentOS。我应首先使用我的用户凭据登录,然后使用'sudo -s'和密码更改为root。 有没有办法用我的用户凭据ssh到远程机器并更改为root用户并编辑文件。?
答案 0 :(得分:1)
首先,使用paramiko的ssh.connect建立连接,然后
import paramiko
ssh = paramiko.SSHClient()
ssh.connect("hostname", username = "username", password = "password")
cmd = "echo {} | sudo -S {}".format("password", "touch /opt/giri")
ssh.exec_command(cmd)
登录用户是具有sudo权限的普通用户。所以首先脚本登录为"普通用户"然后使用sudo权限执行命令。
-S选项让sudo从stdinread获取它的sudo命令 来自标准输入的密码而不是使用 终端设备。