使用keytab从python脚本中获取kinit

时间:2011-08-25 21:39:05

标签: python subprocess popen

有没有人知道如何使用keytab在python脚本中进行kinit;那是为了避免提示输入密码?

谢谢

3 个答案:

答案 0 :(得分:2)

我更喜欢使用诸如 krbcontext 之类的库:

from krbcontext.context import krbContext

with krbContext(using_keytab=True, principal='[username]@[REALM]', keytab_file='/etc/security/keytabs/[name].keytab', ccache_file='/tmp/krb5cc_pid_appname'):
    pass

答案 1 :(得分:0)

from subprocess import Popen, PIPE

kinit_args - [ '/usr/bin/kinit', '-kt', '/home/username/username.keytab', 'username@realm' ]
subp = Popen(kinit_args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
subp.wait()

答案 2 :(得分:-2)

这应该可以解决问题

from subprocess import Popen, PIPE

kinit = Popen(['kinit', 'userid@realm'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
kinit.stdin.write('%s\n' % 'useridpass')
kinit.wait()

它不使用keytab,但我不知道那是什么......