安全问题:通过python更改系统密码

时间:2009-12-29 21:21:29

标签: python security system

我正在开发一个针对Linux安装的系统管理的项目。

我需要执行一些任务,例如更改用户密码......

我打算为此使用子进程模块。 我担心安全问题,通过python执行此操作时的“最佳实践”是什么?

是否足够的子流程,或者是否有更好的工作?

[编辑]

我应该补充一点,这不是一个交互式脚本,它会将值解析为系统的passwd程序 [/编辑]

1 个答案:

答案 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"