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线程的两种编程方式
Apr 14 Python
一波神奇的Python语句、函数与方法的使用技巧总结
Dec 08 Python
Python 错误和异常代码详解
Jan 29 Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
django框架防止XSS注入的方法分析
Jun 21 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 Python
python将数组n等分的实例
Dec 02 Python
python 字典访问的三种方法小结
Dec 05 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
Python读取xlsx数据生成图标代码实例
Aug 12 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 类商品秒杀计时实现代码
2010/05/05 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
Stop SQL Server
2007/06/21 Javascript
javascript call方法使用说明
2010/01/11 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
13个PHP函数超实用
2015/10/21 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
Python 学习教程之networkx
2019/04/15 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
python中如何设置代码自动提示
2020/07/15 Python
销售经理竞聘书
2014/03/31 职场文书
青奥会口号
2014/06/12 职场文书
社区服务活动报告
2015/02/05 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
营业员岗位职责范本
2015/04/14 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
创业计划书之农家乐
2019/10/09 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
golang 语言中错误处理机制
2021/08/30 Golang
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript
教你如何用cmd快速登录服务器
2022/06/10 Servers