python subprocess.Popen隐藏真实的“显示名称”

问题描述 投票:6回答:2

我想在python中执行一个子过程,并且该子过程需要一个参数来指定密码。默认情况下,当我的子进程正在运行时,所有可以登录此计算机的人都可以使用ps实用程序获取密码。

而且我知道Popen有一个__executable__参数,它可以隐藏真实的程序名称,但不能隐藏子进程的password参数。

如何隐藏密码?

PS:我在Linux上运行。

python popen
2个回答
1
投票

我认为您不能执行for子过程,但是有一个库可以执行from子过程:http://code.google.com/p/py-setproctitle/

该方法特定于每个操作系统;有些系统根本不支持。如果可能,请通过其他方式(例如通过stdin管道)将密码输入子进程。


1
投票

subprocess不会公开API来做到这一点。我建议使用环境变量将密码传递给命令:

subprocess.check_call('command --password="$PASSWORD"', shell=True,
                      env=dict(os.environ, PASSWORD=password))
© www.soinside.com 2019 - 2024. All rights reserved.