我想在python中执行一个子进程,子进程需要一个参数来指定密码。默认情况下,ps
当我的子进程运行时,每个可以登录这台机器的人都可以使用该实用程序获取密码。
而且我知道Popen有一个__executable__
参数,它可以隐藏真实的程序名称,但不能隐藏子进程的密码参数。
如何隐藏我的密码?
PS:我在linux上运行。
subprocess
不公开 API 来做到这一点。我建议使用环境变量将密码传递给命令:
subprocess.check_call('command --password="$PASSWORD"', shell=True,
env=dict(os.environ, PASSWORD=password))
我不认为你可以为子进程做到这一点,但有一个库可以从子进程中做到这一点:http ://code.google.com/p/py-setproctitle/
该方法特定于每个操作系统;有些系统根本不支持。如果可能,通过其他方式(例如通过标准输入管道)为子进程提供密码。