python 切换root 执行命令的方法


Posted in Python onJanuary 19, 2019

如下,以创建系统用户举例,

配置文件配置普通用户信息,登入后切换root用户,创建一个指定名字和密码的系统用户:

def create_user(root_pwd,username,password):
  import paramiko
  result = []
  ssh = paramiko.SSHClient()
  #把要连接的机器添加到known_hosts文件中
  ssh.load_system_host_keys()
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  ssh.connect(
       hostname = settings.HOST,
       port = settings.PORT,
       username = settings.USERNAME,
       password = settings.PASSWORD,
       timeout = 60,
     )
  sc = ssh.invoke_shell()
 
  def exe_cmd(cmd,t=0.1):
    sc.send(cmd)
    sc.send("\n")
    time.sleep(t)
    resp = sc.recv(9999).decode("utf8")
    #print "cmd='%s',echo='%s'\n"%(cmd,resp)
    return resp
  
  #切换root账号
  resp = exe_cmd("su root",t=1)
  if resp.endswith(u"密码:"):
    resp = exe_cmd(root_pwd)
  
  #创建用户
  cmd_create_user = "useradd {username} -d /home/{username}".format(
    username = username,
  )
  exe_cmd(cmd_create_user)
 
  #修改密码
  cmd_change_user_pwd = """echo "{password}" | passwd --stdin {username}""".format(
    username = username,
    password = password,
  )
  exe_cmd(cmd_change_user_pwd)

以上这篇python 切换root 执行命令的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的内存泄漏及gc模块的使用分析
Jul 16 Python
Python isinstance函数介绍
Apr 14 Python
总结Python编程中三条常用的技巧
May 11 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python3实现的简单验证码识别功能示例
May 02 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
Python 如何创建一个线程池
Jul 28 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
在Python 不同级目录之间模块的调用方法
Jan 19 #Python
python导入模块交叉引用的方法
Jan 19 #Python
python添加模块搜索路径和包的导入方法
Jan 19 #Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 #Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 #Python
在pycharm 中添加运行参数的操作方法
Jan 19 #Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 #Python
You might like
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
PDO::errorInfo讲解
2019/01/28 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
vue.js循环radio的实例
2019/11/07 Javascript
javascript History对象原理解析
2020/02/17 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
Python判断变量是否已经定义的方法
2014/08/18 Python
python发送HTTP请求的方法小结
2015/07/08 Python
Python reduce()函数的用法小结
2017/11/15 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Python文件操作函数用法实例详解
2019/12/24 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
数控机床专业自荐信
2014/05/19 职场文书
小马王观后感
2015/06/11 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android