2012-07-09 10 views
5

Voglio eseguire un sottoprocesso in python e il sottoprocesso richiede un argomento per specificare una password. Per impostazione predefinita, chiunque può accedere a questa macchina può ottenere la password con l'utilità ps quando il sottoprocesso è in esecuzione.subprocesso python.Popen nascondi vero "nome dispaly"

E so che Popen ha un parametro __executable__, che può nascondere il nome del programma reale, ma non può nascondere l'argomento della password del sottoprocesso.

Come posso nascondere la mia password?

PS: Corre su Linux.

+1

Quale sistema operativo è in esecuzione? – hamstergene

+0

anche qual è il comando subprocess: è qualcosa che puoi controllare come gestisce i suoi argomenti o è un comando esistente di cui non hai il controllo? – Duncan

+0

@hamstergene linux – bones7456

risposta

1

Non credo che si può fare per sottoprocesso, ma c'è una biblioteca per farlo da sottoprocesso: http://code.google.com/p/py-setproctitle/

Il metodo è specifico per ogni sistema operativo; alcuni sistemi non lo supportano affatto. Se possibile, fornire la password al sottoprocesso con altri mezzi (ad esempio tramite pipe stdin).

+1

Non lascerebbe ancora una finestra in cui viene esposta la password (tra il genitore che crea il sottoprocesso e il sottoprocesso che nasconde i suoi argomenti)? – Duncan

+0

@Duncan Lo farà. – hamstergene

1

subprocess non espone un'API per farlo. Suggerirei di passare la password al comando utilizzando una variabile di ambiente:

+0

Non raggiungerà l'obiettivo: il processo della shell avrà una maschera mascherata, ma il vero comando avviato dalla shell verrà esposto allo stesso modo. – hamstergene

+0

Nessun effetto! – bones7456