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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章