1

在 linux 上,这将成功更改用户的密码。

subprocess.Popen('passwd', shell=True, stdin=subprocess.PIPE, stdout=None)
subprocess.communicate(input='abc\nabc')

但是在solaris上,我发现在我调用之后:

subprocess.Popen('iscsiadm modify -C iqn.xxx-xx.xxx', shell=True, stdin=subprocess.PIPE,        stdout=None)

它仍然会显示“输入密码”提示并要求输入密码。除了输入密码,我什么也做不了。当前的 shell 仍然属于那个 iscsiadm 进程。

我需要包装这个提示输入密码的 iscsiadm 并安静地运行它。但现在这里似乎有些不对劲。

编辑:为什么有些程序只接受来自终端的输入。如上例,linux passwd和solaris iscsiadm有什么区别。

4

0 回答 0