python 切换root 执行命令的方法

 更新时间:2019年01月19日 15:37:21   作者:格林-scorpio  
今天小编就为大家分享一篇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 执行命令的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python gdal安装与简单使用

    python gdal安装与简单使用

    这篇文章主要介绍了python gdal安装与简单使用,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • PYQT5开启多个线程和窗口,多线程与多窗口的交互实例

    PYQT5开启多个线程和窗口,多线程与多窗口的交互实例

    今天小编就为大家分享一篇PYQT5开启多个线程和窗口,多线程与多窗口的交互实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python中tkinter+MySQL实现增删改查

    Python中tkinter+MySQL实现增删改查

    这篇文章主要介绍了Python中tkinter+MySQL实现增删改查,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 在Tensorflow中查看权重的实现

    在Tensorflow中查看权重的实现

    今天小编就为大家分享一篇在Tensorflow中查看权重的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python内省与反射巧妙运用示例

    Python内省与反射巧妙运用示例

    这篇文章主要为大家介绍了Python内省与反射巧妙运用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • git查看、创建、删除、本地、远程分支方法详解

    git查看、创建、删除、本地、远程分支方法详解

    这篇文章主要介绍了git查看、创建、删除、本地、远程分支方法详解,需要的朋友可以参考下
    2020-02-02
  • Golang GBK转UTF-8的例子

    Golang GBK转UTF-8的例子

    今天小编就为大家分享一篇Golang GBK转UTF-8的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Numpy中关于arctan和arctan2的区别

    Numpy中关于arctan和arctan2的区别

    这篇文章主要介绍了Numpy中关于arctan和arctan2的区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 解决python 出现unknown encoding: idna 的问题

    解决python 出现unknown encoding: idna 的问题

    这篇文章主要介绍了解决python出现 unknown encoding: idna 的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python构建自定义回调函数详解

    python构建自定义回调函数详解

    在工作中,回调函数使用的场景是非常多的,下面我们就来通过例子程序来详细了解利用了Python的属性机制构建了一个自定义回调函数的使用
    2017-06-06

最新评论