2012-07-09 11 views
5

私はpythonでサブプロセスを実行したいのですが、サブプロセスはパスワードを指定するために引数を必要とします。デフォルトでは、このマシンにログインできる人は誰でも、サブプロセスの実行時にpsユーティリティでパスワードを取得できます。python subprocess.Popen実際の "dispaly name"を隠す

Popenには__executable__ paramがあります。これは実際のプログラム名を隠すことができますが、サブプロセスのパスワード引数を隠すことはできません。

パスワードを非表示にするにはどうすればよいですか?

PS:Linuxで動作しています。

+1

実行中のオペレーティングシステムは? – hamstergene

+0

また、サブプロセスコマンドとは何ですか?それは引数の処理方法を制御できますか、それとも制御できない既存のコマンドですか? – Duncan

+0

@hamstergene linux – bones7456

答えて

1

私はあなたがサブプロセスのためことを行うことができるとは思わないが、サブプロセスからそれをを行うためのライブラリがあります:http://code.google.com/p/py-setproctitle/

方法は、各OSに固有のものです。一部のシステムはそれをまったくサポートしていません。可能であれば、他の手段(例えばstdinパイプ経由)でサブプロセスにパスワードを与えてください。

+1

パスワードが公開されている(サブプロセスを作成している親プロセスとサブプロセスが引数を隠している)ウィンドウが残っていませんか? – Duncan

+0

@ダンカンそうです。 – hamstergene

1

subprocessこれを行うためのAPIは公開されていません。パスワードを環境変数を使用してコマンドに渡すことをおすすめします。

subprocess.check_call('command --password="$PASSWORD"', shell=True, 
         env=dict(os.environ, PASSWORD=password)) 
+0

これは目標を達成しません。シェルのプロセスにはパスワードがマスクされますが、シェルによって開始された実際のコマンドはまったく同じように表示されます。 – hamstergene

+0

効果はありません! – bones7456

関連する問題