2017-12-20 5 views
3

ツールはsudoのように/ dev/ttyから読み取ってパスワードを読み取ります。/dev/ttyからの読み取り禁止

私はこれを避けたいと思います。

サブプロセスは/ dev/ttyを読み取れません。サブプロセスは、常に入力を待つのではなく、すぐに失敗するはずです。

私はPythonのsubprocessモジュールを使用しています。サブプロセスは/ dev/ttyからの読み取りを試みると失敗するはずです。

覚えていること:ツールsudoは単なる例に過ぎません。 sudoの空想的なコマンドライン引数は私の問題を解決しません。これはすべてのLinuxコマンドラインツールで有効です。

質問:どのツールを/ dev/tty(Pythonのサブプロセスモジュール経由で呼び出されます)から読み込みたい場合はどうすればいいですか?

背景:これは通常のLinuxユーザープロセスであり、rootではありません。

+1

あなたの質問はありますか? '/ dev/tty'から読み込み権限を削除するには? –

+0

@AndrejsCainikovs質問を更新しました。 – guettli

+3

プロセスを作成するときに、['start_new_session = True'](https://docs.python.org/3/library/subprocess.html#subprocess.Popen)が必要なのでしょうか? – mata

答えて

5

python3.2 Popenは、子プロセスを実行する前にsetsid()を呼び出すことによって、実行されたプロセスが現在の制御端末から切り離されるようにする引数start_new_sessionを受け取るので、

あなたが必要とするのは、このプロセスを開始することです。start_new_session=True

+0

ありがとうございます。新しいバージョンのsubxでは、デフォルトでこれが使用されています。https://pypi.python.org/pypi/subx/ – guettli

関連する問題