利用Python怎么对Kerberos用户进行增删改查操作

  介绍

利用Python怎么对Kerberos用户进行增删改查操作?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1,首先模拟Python类似壳命令行操作的接口:

Python安装子流程(本地),paramiko (SSH远程)

# - *安康;编码:UTF-8  - * -   # !/usr/bin/python   import 操作系统,系统   import 子流程   import  paramiko   import 设置   ,   class  RunCmd(对象):   自我,def  __init__ ():   时间=self.cmd 才能;& # 39;ls # 39;   ,   ,@staticmethod   ,def  local_run (cmd):   打印才能(& # 39;start 执行……& # 39;)   打印才能(& # 39;cmd  is  - - - - - -→, % & # 39;, %, str (cmd))   s 才能=,subprocess.Popen (str (cmd), shell=True,, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)   ,,,err =, s.communicate ()   打印才能(“outinfo  is  - - - - - -→, % s", %,)   打印才能(“errinfo  is  - - - - - -→, % s", %,犯错)   打印才能(& # 39;finish 执行……& # 39;)   打印才能(& # 39;结果:- - - - - -祝辞,% & # 39;,%,s.returncode)   return  s.returncode才能   ,   ,@staticmethod   ,def  remote_run(主机,用户名,密码,港口,cmd):   时间=client 才能;paramiko.SSHClient ()   client.set_missing_host_key_policy才能(paramiko.AutoAddPolicy ())   client.connect才能(=主机,主机名,端口=int(港口),用户名=用户名,密码=密码,超时=5)   ,,,stdin、stdout, stderr =, client.exec_command (cmd)   时间=result 才能;stdout.read ()   client.close才能()   return 才能结果   ,   ,@staticmethod   ,def  krb_run (cmd):   打印才能(& # 39;krb_run 开始……& # 39;)   打印才能(& # 39;cmd  is  - - - - - -→, % & # 39;, %, str (cmd))   result 才能=,RunCmd.remote_run (settings.USERNAME, settings.KRB_HOST,还以为,settings.PASSWORD, settings.PORT,, cmd)   打印才能(& # 39;结果:- - - - - -祝辞,% & # 39;,%,结果)   打印才能(& # 39;krb_run 完成……& # 39;)   return 才能;结果

2, Kerberos常用的命令操作封装成接口,其他简单,但需要交互的是删除本金

, def  delete_user(自我,,用户名):   时间=cmd 才能;r"““   ,,expect  -c “   ,,set  timeout  1;   ,,spawn  kadmin.local  -q  \“delete_principal {主要}\“,   ,,expect 是的/no  {{, send  \“是的\ r \“,}},;   ,,expect  * \ r   ,,expect 。\ r   ,,expect  eof   ,,,,   “““才能.format(主要=用户名)   RunCmd.krb_run才能(cmd)

<强>补充知识:python操作有Kerberos认证的蜂巢库

之前访问蜂巢都比较简单,直接用pyhive连接即可。

但是最近遇到了一个问题,蜂巢有了Kerberosren认证。

最终经过各种尝试和灵感迸发,终于解决了这个问题,遂记录之。

代码

得到pyhive.hive  import 连接   时间=con 连接(主机=& # 39;xxxx # 39;,端口=10000,auth=& # 39; kerberos # 39;, kerberos_service_name=癶ive")   时间=cursor  con.cursor ()   cursor.execute (& # 39; select  *,得到tmp.pricing_calculate_result_spark  where  time_id=?01907171355“, limit  10 1 & # 39;)   时间=datas  cursor.fetchall ()   打印(数据)   cursor.close ()   con.close ()

端口和ip都换成自己的,身份验证和kerberos_service_name不要改

运行效果

利用Python怎么对Kerberos用户进行增删改查操作

关于利用Python怎么对Kerberos用户进行增删改查操作问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

利用Python怎么对Kerberos用户进行增删改查操作