繁体   English   中英

以sudo用户身份在远程计算机上运行python脚本

[英]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')

但是在使用此功能之前,请确保已在主机(runco​​mmand_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM