私はubuntuで自分のpythonを実行していて、シェルと通信するスクリプトを作ろうとしています。私のスクリプトはシンプルですPythonからシェルに入力する方法は?
スクリプトを実行してxyzにログインしようとすると、シェルでパスワードを尋ねられます。しかし、私はどのようにパスワードをPythonスクリプトを介して送信し、ログインするだけですか?これを行うより良い方法はありますか?
私はubuntuで自分のpythonを実行していて、シェルと通信するスクリプトを作ろうとしています。私のスクリプトはシンプルですPythonからシェルに入力する方法は?
スクリプトを実行してxyzにログインしようとすると、シェルでパスワードを尋ねられます。しかし、私はどのようにパスワードをPythonスクリプトを介して送信し、ログインするだけですか?これを行うより良い方法はありますか?
パスワードをコマンドライン文字列にパイプしてみることができます。
注:これは非常に安全です。誰でもあなたのパスワードを知っているあなたのpythonスクリプトにアクセスし、あなたのシステムを保持することができます。
import os
password = 'ABCDEFG'
os.system('echo {} | sudo -S su - xyz'.format(password))
EDIT:注echo
を追加し、あなたはどのコマンドの入力にそれを持っていないように、それは標準入力にハードコードされたパスワードをパイピングパイプから
をパスワードを受け入れることができるように、sudo
に-S sudoerの特権がある必要がありますそれはoversecinkingそれ(非常に不安に加えて)。
あなたのルートがPythonスクリプトの中にあると仮定します(つまり、sudoでコマンドを実行しないでください)。
import os
os.system('su - xyz')
次に、sudoでPythonスクリプトを起動します。
$ sudo python foo.py
奇妙な要件がない限り、これは最も自然な方法です。
パスワードだけを含む別のコマンドを実行するとどうなりますか?あるいは、 'xyz'の後に改行を入れてから、パスワードを入力してください。 – Carcigenicate