多くのsudoコマンドを使用するスクリプトをPython 3.6で作成しています。このスクリプトは私のユーザとしてLinuxマシン上で動作します。このスクリプトは一種のレポートを作成し、多くのサーバーに対してsshを実行し、lsofのようなコマンドを実行しています。
私はsudoを使うときはいつでも、私のパスワードを与えるためにpythonを作る方法が必要です。明らかに初めてパスワードを入力し、スクリプトのメモリに保存することができます。 私は例えば、私はsudoコマンドを実行するPythonのサブプロセスを使用してきた:
pythonスクリプトを使ってsudoにパスワードを入力する方法
cmd = SSH + '-t ' + source + " ' " + SUDO + "-k " + LSOF + "-p " + pid + " ' " output = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, universal_newlines=True)
(out,error) = output.communicate()
それは可能ですか?
制約:このスクリプトは、多くのサーバーへのsshを行いますので、
ルートキットは、sudoでスクリプトを実行する
許可されていませんが、オプションではありませんし、セキュリティ上の理由から、私はそうすることを許されていませんよ。
sudoersファイルで何も変更できません。
STDINからパスワードを読み取る-Sスイッチを使用できます。 '$ echo | sudo -S '。しかし、私は別の良い方法があります。パスワードをソースコードに入れないでください。 –
トピックをオフにします:しかし、Pythonのさまざまな文字列フォーマットオプションをチェックしてください。あなたのSSH文字列を組み立てるのに二重引用符を20回以上打ち込んでいます。 – jsbueno