清除python中的sys.argv

时间:2017-01-16 02:24:38

标签: python argv

当用户在MySQL cli(又名-pXXXXXX)中指定密码时,密码参数将替换为argv数组中的-p******

因此,当有人使用ps检查进程列表时,他们无法看到密码。

我怎样才能在Python中做同样的事情?这显然不起作用

for arg in sys.argv[1:]:
    arg = ""

3 个答案:

答案 0 :(得分:1)

sys.argv = [sys.argv[0]]

工作并且比删除除第一个元素之外的所有元素更有效和优雅。我无法确认这会覆盖或删除内存中sys.argv的先前值。

答案 1 :(得分:0)

您可以创建一个接受密码和其他参数的包装器。然后它会产生一个孩子,并以在命令行中看不到的方式传递密码,例如。与multiprocessing,并自杀。在保持孩子活着的同时杀死进程看here

答案 2 :(得分:0)

我找不到方法,所以我转向令牌的环境变量(并在获取变量后将其取消设置,以防止泄漏到子进程)。