python 切换root 执行命令的方法

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

配置文件配置普通用户信息,登入后切换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 执行命令的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. 使用Popen模块产生新的process 现在大部分人都喜欢使用Popen.Popen方法不会打印出cmd在linux上执行的信息.的确,Popen非常强大,支持多种参数和模式.使用前需要from subprocess import Popen, PIPE.但是Popen函数有一个缺陷,就是它是一个阻塞的方

  • python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: 该命令目前已经废弃,被subprocess所替代: # coding=utf-8 ''' Created on 2013年11月22日 @author: crazyant.net ''' import commands import pprint def cmd_exe(cmd_String): p

  • Pycharm以root权限运行脚本的方法

    因为权限不够,导致Pycharm在运行脚本时报错: socket.error: [Errno 1] Operation not permitted 网上有一些修改文件使得Pycharm运行脚本时可以不需要密码的以root权限运行. 但是大多操作雷同,估计是复制粘贴的,而且下方有几条评论表示IDE报错. 在跟随他操作到最后时发现无法继续,就干脆用简单粗暴的方式,以sudo启动IDE: sudo ./pycharm.sh 启动后需要手动导入项目与解释器,不然代码无法运行. 导入解释器后即可运行代码

  • Python下调用Linux的Shell命令的方法

    有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1. os模块的exec方法族 Python的exec系统方法同Unix的exec系统调用是一致的.这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回.( 这个看了点 help(os)  --> search "exec" 的相关介绍,但是没

  • python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了. 尝试第二种方案 os.popen() 复制代码 代码如下: output = os.popen('cat /proc/cpuinfo') print output.read() 通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的

  • 在Python中执行系统命令的方法示例详解

    前言 Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.在Python/wxPython环境下,执行外部命令或者说在Python程序中启动另一个程序的方法. 本文将详细介绍关于Python中如何执行系统命令的相关资料,下面话不多说了,来一起看看详细的介绍吧. (1) os.system() 这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息. >>> import os

  • python 切换root 执行命令的方法

    如下,以创建系统用户举例, 配置文件配置普通用户信息,登入后切换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(paramik

  • python利用paramiko连接远程服务器执行命令的方法

    python中的paramiko模块是用来实现ssh连接到远程服务器上的库,在进行连接的时候,可以用来执行命令,也可以用来上传文件. 1.得到一个连接的对象 在进行连接的时候,可以使用如下的代码: def connect(host): 'this is use the paramiko connect the host,return conn' ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddP

  • Python实现SSH远程登陆,并执行命令的方法(分享)

    在自动化测试过程中,比较常用的操作就是对远程主机进行操作,如何操作呢?使用SSH远程登陆到主机,然后执行相应的command即可. 使用Python来实现这些操作就相当简单了.下面是测试code. 代码如下:(code运行环境:python27+eclipse+pydev) import paramiko def sshclient_execmd(hostname, port, username, password, execmd): paramiko.util.log_to_file("par

  • Python远程linux执行命令实现

    1.远程登录到linux上,使用到的模块paramiko #远程登陆操作系统 def ssh(sys_ip,username,password,cmds): try #创建ssh客户端 client = paramiko.SSHClient() #第一次ssh远程时会提示输入yes或者no client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #密码方式远程连接 client.connect(sys_ip, 22, userna

  • 通过shell脚本循环进入目录执行命令的方法

    公司需要部署一套新的环境,新环境里面好多项目,整体目录结构如为:/webserver/* 所有的项目都在webserver目录下,其中有laravel和thinkphp项目的代码. laravel框架中, 根目录下storage vendor bootstrap 目录需要设置777权限. thinkphp框架,根目录App下Runtime目录需要设置777权限. 因此相对应的目录结构如下; laravel框架的目录结构为:/webserver/aaa/www/storage,vendor,boo

  • 在pycharm中python切换解释器失败的解决方法

    在pycharm中我们有时需要切换python的版本,这里需要注意的是我们是在PyCharm中的Preferences中切换的, 在File的Setting中切换可能会导致失败 以上这篇在pycharm中python切换解释器失败的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 改变 Python 中线程执行顺序的方法

    一.主线程会等待所有的子线程结束后才结束 首先我看下最普通情况下,主线程和子线程的情况. import threading from time import sleep, ctime def sing(): for i in range(3): print("正在唱歌...%d" % i) sleep(1) def dance(): for i in range(3): print("正在跳舞...%d" % i) sleep(1) if __name__ == '

  • 利用源码编译Android系统的APK和可执行命令的方法

    编译Android系统APK 1.设置环境 export ANDROID_HOME=/home/administrator/soft/android export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product/generic 2.创建项目 android create project -t 1 -k com.lhw.led -a

  • 让DOSBox启动后自动执行命令的方法讲解

    使用DOSBox,可以在win下模拟DOS,自些好玩的工作.例如,学习8086汇编. 每次启动DOSBox后,都要挂载.转盘符.遇上调试的程序老死,就不好玩了. 可以想想办法,让这些固定"套路"自动化. 注意到DOSBox初启时,有一个窗口,如下显示: 就这个文件,掌管DOSBox启动后执行的命令. 找到这个文件. 用记事本就可以编辑. 拉到最下面,找到[autoexec]部分,补充命令如下: 然后重启DOSBox就行了. 截屏?不给. 自己做吧! 总结 以上就是这篇文章的全部内容了,

  • Python切换pip安装源的方法详解

    一.pip简介 Pip 是安装python包的工具,提供了安装包,列出已经安装的包,升级包以及卸载包的功能. Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装. 二.Linux下的源配置 检查pip.conf文件是否存在 >>  cd ~ >>  mkdir .pip >>  ls ~/.pip 三.编辑源  方案1: 直接编辑pip.conf sud

随机推荐