[英]Run python script in a remote machines as a sudo user
我对python编程很陌生,作为学习的一部分,我决定开始为一个简单的日常任务编写代码,这将节省一些时间,我已经完成了大部分脚本,但是现在我看到了执行它的巨大挑战,因为我需要使用sudo用户访问权限执行远程服务器。 基本上我需要的是
登录到远程系统。 运行sudo su-用户(不需要密码,因为它是基于SSH密钥的登录名)运行代码。 注销并将结果分配给varible。 我需要将脚本的最终结果存储在变量中,以便可以将其用于验证。
谢谢大家的回答。 Fabric为我工作,下面是代码片段。
from fabric.context_managers import settings
from fabric.api import *
with settings(host_string='username@host',user='runcommand_user'):
run('command')
但是在使用此功能之前,请确保已在主机(runcommand_user)主机中设置了如下的sudo访问权限:NOPASSWD:ALL
您可以登录主机并执行'sudo -l'来检查您是否具有上述访问权限
另一种方法是使用paramiko如下。
un_con = paramiko.SSHClient()un_con.set_missing_host_key_policy(paramiko.AutoAddPolicy())un_con.connect(主机,用户名=用户,key_filename = keyfile)stdin,stdout,stderr = un_con.exec_command(sudo -H -u sudo_user bash -c '命令')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.