python 切换root 执行命令

2023-10-31

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

配置文件配置普通用户信息,登入后切换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)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 切换root 执行命令 的相关文章

随机推荐

  • Java1.8安装详细教程

    Java JDK安装与配置 1 下载 官网地址 http www oracle com technetwork java javase downloads index html 1 点击DOWNLOAD 2 选择相应版本 因为我的是wind
  • Matlab曲线拟合不出结果——提示 blas 加载错误

    原因 这是由于在老版本Matlab中需要配置环境变量 BLAS VERSION 但在较新版本中并不需要配置这个环境变量 在运行时自动加载老版本blas 显示错误 解决办法 这时只需要在电脑 属性 高级系统设置 环境变量 删除 BLAS VE
  • 微信原生实现一个简易的图片上传功能

    一 实现原理 wx showActionSheet 显示操作菜单 选择是从相册选择还是相机拍摄照片 wx chooseImage 从本地相册选择图片或使用相机拍照 wx uploadFile 将本地资源上传到服务器 客户端发起一个 HTTP
  • ubuntu和树莓派文件共享

    一 环境 ubuntu1910 树莓派4b 并且需要在同一个局域网内 二 我对于服务器与客户端的理解一开始都不懂 但经过慢慢查找慢慢了解了一些 在同一个局域网内 开启的服务器端允许任何客户端访问 三 安装并配置 1 ubuntu下 1 安装
  • bean的作用域

    bean的作用域 说明 2 Spring Bean的作用域之间有什么区别 3 例子 说明 1 在Spring中 可以在
  • python最常用的几个模块大全,你都掌握了吗?

    一 os模块 1 os remove 删除文件 2 os rename 重命名文件 3 os unlink 删除文件 4 os listdir 列出指定目录下所有文件 5 os getcwd 获取当前文件路径 6 os mkdir 新建目录
  • pip install 使用国内镜像

    https blog csdn net dss875914213 article details 86500146
  • Mysql搭建以及使用

    优势 1 运行速度快 体积小 命令执行的速度快 2 使用成本低 mysql 是开源的 且提供免费版本 3 使用容易 与其他大型数据库的设置和管理相比 其复杂程度较低 易于使用 4 可移植性强 能够运行与多种系统平台上 如windouws L
  • 完整HTML实例网页代码(4)

    上接完整HTML实例网页代码 3 的js格式代码 3 gt 新建一个名为swiper min js的动画格式文件 代码 Swiper 4 5 0 Most modern mobile touch slider and framework w
  • Python 3.11,新特性亮点满满,让你的编程之路更加轻松!

    Python 3 11 已经发布了 这个版本中有很多令人兴奋的新特性 让 Python 开发者们的工作更加简单 高效和有趣 在本篇博客中 我们将介绍 Python 3 11 的五个最新特性 并提供示例来演示如何使用它们 1 模式匹配 简介
  • 添加layer的方法

    this gameObject layer LayerMask NameToLayer KongLong 为何这些脚本前边的方框都不见了 是因为这些脚本中没有Start 或者Update FixedUpdate OnGUI 等等方法 测试添
  • 【流媒体协议】RTMP和RTSP的区别

    RTMP和RTSP都是常用的流媒体协议 支持推流和拉流 但是它们的特点不同 应用场景也不同 RTMP协议 全称Real Time Messaging Protocol RTMP将整个视频分割为多个小的片段进行传输 基于TCP 连接稳定 低延
  • Java基础--------网络编程

    参考http www cnblogs com xdp gacl p 3631965 html 点击打开链接 以此为模板 自己做了整理 修改 目录 一 网络的概念 二 网络通信协议及接口 2 1 通信协议分层思想 2 2 参考模型 三 IP
  • AD怎么设置相同网络的线宽

    一 对网络进行分类 快捷键 D C 在弹出的面板中找到 net class 单击右键 选择 Add Class 二 选择网络 选中Net Classes中刚刚建好的类POWER 按住CTRL键 在Non Members中选择5V 20V 先
  • 最强nba体验服显示服务器正在停机,最强NBA玩不了怎么办 游戏进不去玩不了原因分析及解决方法...

    对于一些刚下载好游戏的萌新玩家来说 最头疼的可能就是游戏进不去或玩不了了 那么最强NBA玩不了怎么办 不要慌 小编这就给大家分析下游戏玩不了或进不去的各种原因以及解决方法 类别 体育竞技 大小 471 34M 语言 简体中文 评分 10 最
  • golang for range循环坑

    比较两段代码 package main import fmt func main a int 1 2 3 4 5 6 7 8 9 for len a gt 0 a a 1 fmt Println a 输出 2 3 4 5 6 7 8 9 3
  • 分布式概念

    集群与分布式区别 集群 复制模式 每台机器做一样的事 分布式 两台机器分工合作 每台机器做的不一样 分布式好处 独立开发 部署 测试 易于扩展 复用性高 例如 所有的产品都可以使用该系统作为用户系统 无需重复开发 架构演进 架构演进一 早期
  • python 如何查看模块所有方法-Python查看模块(变量、函数、类)方法

    常用五种方法 前提是要先导入这个包 然后用下面的方法去查看 这名称 可是包 方法 或 类 1 help 名称 2 名称 doc 3 dir 模块名 List item 通过 dir 函数获取到的模块成员 不仅包含供外部文件使用的成员 还包含
  • PySide6/PyQT多线程之 高效管理多线程:暂停、恢复和停止的最佳实践

    前言 关于 PySide6 PyQT 多线程 正确地处理多线程编程并确保线程之间的同步和通信并不容易 本文以一个示例代码为基础 介绍 PySide6 PyQT多线程的运用 展示如何创建和管理线程 以及如何实现线程之间的同步和通信 设想这么一
  • python 切换root 执行命令

    如下 以创建系统用户举例 配置文件配置普通用户信息 登入后切换root用户 创建一个指定名字和密码的系统用户 def create user root pwd username password import paramiko result