我正在开发一个针对Linux安装的系统管理的项目。
我需要执行一些任务,例如更改用户密码......
我打算为此使用子进程模块。 我担心安全问题,通过python执行此操作时的“最佳实践”是什么?
是否足够的子流程,或者是否有更好的工作?
[编辑]
我应该补充一点,这不是一个交互式脚本,它会将值解析为系统的passwd程序 [/编辑]
答案 0 :(得分:3)
我相信pexpect模块是解决这个问题的最简单方法。
http://pexpect.sourceforge.net/pexpect.html
这些方面的东西应该可以很好地运作:
import pexpect
import time
def ChangePassword(user, pass):
passwd = pexpect.spawn("/usr/bin/passwd %s" % user)
for x in xrange(2):
# wait for password: to come out of passwd's stdout
passwd.expect("password: ")
# send pass to passwd's stdin
passwd.sendline(pass)
time.sleep(0.1)
ChangePassword('foo', 'bar') # changes user "foo"'s password to "bar"