我正在编写一个小型Python实用程序,它将Kerberos v5 keytab存储在StringIO对象中。我想避免将所述密钥表存储在计算机磁盘的任何位置。
因此,我非常希望像这样调用kinit
(split()
和subprocess()
来跟随):
command = "/usr/bin/kinit -V -c {0} -t {1} {2}@{3}".format(cache, ticket, loginUser, kerberosDomain)
票证是:
ticket = StringIO.StringIO(data)
但kinit并不是真的喜欢它。其source file说:
925 /* Ensure we can be driven from a pipe */
有没有人有从管道驱动kinit
的经验,特别是如何将票据注入(可能是)stdin?
或者,StringIO
可以包含在像mmap
这样的内容中,以表现得像一个真实的"提交到kinit
?
谢谢!
PS:我在发布这个问题时读到了一个非常有趣的讨论: Python - How do I pass a string into subprocess.Popen (using the stdin argument)?