我正在研究一个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用户并编辑文件。

最佳答案

首先,使用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权限执行命令。

sudo命令的 -S选项,使sudo从stdinread获取其
来自标准输入的密码,而不是使用
终端设备。

10-07 19:10
查看更多