rootとして指定のコマンドを実行し、Javaを使用してsudoユーザーを実行する必要があります。ただし、パスワードを渡すために使用できる方法についてはわかりません。パスワードを端末に渡す方法はありますか?Java Runtimeを使用してsudoにパスワードを入力する方法は?
答えて
あなたはsoduをすべて削除して、シェルスクリプトsuid rootを作成して代わりに実行できます。
chmod +s myscript && chown root myscript && chgrp root myscript
このスクリプトが呼び出されるたびに、そのスクリプトはrootとして実行されます。
特定のコマンドをパスワードなしで実行できるようにsudoを構成できます。これはあなたがパスワードを知る必要はありません。
プログラムのルートパスワードをある段階でクリアテキストにすることは、実際には安全性が低いIMHOです。
通常、sudoは端末で直接操作してパスワードを読み取ります。 sudo -S
をここで使用してください。このオプションを使用すると、標準入力からパスワードを読み取ろうとしてから、コマンドを実行するとによって作成されたProcess
からOutputStream
を使用してパスワードを送信できます。
しかし、sudoersファイルでrequirettyオプションを無効にする必要があります。 –
あなたが端末上でスクリプトを作成し、(のRuntime.execを使用して)、Javaからそれを呼び出す場合、それは良くなる
人はすでにあなたの現在の使用は次のようにシステムで設定されている場合にのみsudo
を使用することができます述べたように実行可能なものはsudo
です。それ以外の場合(通常は)、パスワードを入力する必要があります。
ssh
を使用してリモートコンピュータでコマンドを実行する場合、またはscp
を使用してリモートでファイルをコピーする場合は、パスワードを入力する必要があります。
一部のコマンドは、コマンドラインのパラメータとしてパスワードを受け入れることができます。たとえば、mysql
ユーティリティはスイッチ-p
の後にパスワードを受け入れることができます。他のコマンドはより厳密です:コマンドラインでパスワードを実行せず、プロセスの標準入力のリダイレクトによってパスワードを提供することさえできません。例はssh
とscp
です。
パスワードを入力する必要があるコマンドをプログラムで実行できることを確認する唯一の方法は、端末をエミュレートすることです。これはユーティリティーexpect
の機能です。そのマニュアルページをご覧ください:http://linux.die.net/man/1/expect
私は過去にexpect
を使用しました。それは、人間が端末を使って作業しているときとまったく同じように、ユーザの行動をシミュレートすることを可能にするスクリプト駆動型ユーティリティです。私たちは、通常の外部プロセスとしてjavaからexpectスクリプトを実行し、ProcessBuilder
を使用しました。
パスワードなしのsshを設定すると、sshまたはscpを使用して1台のマシンから別のマシンにアクセスできます。これは、一緒に作業する必要があり、ヘッドノードによって制御されるマシンのクラスタに使用される1つの方法です。たとえば、hadoopはこのメソッドを使用します。
ProcessBuilderを使用してtcpdumpを実行する必要がありました。ここで私はそれをやった方法です:
visudoを myuserのALL = NOPASSWDします。/ usr/sbin/tcpdumpを
次にJavaから私のコマンドは、MYUSERから実行された、だった: は/ usr/binに/ sudoのは/ usr/sbin/tcpdump -i eth0ポート8561 ...
- 1. pythonスクリプトを使ってsudoにパスワードを入力する方法
- 2. sudoを使用してダイアログウィンドウでパスワードを入力する
- 3. subprocess.callを使用しているときにsudoのパスワードを入力する方法は?
- 4. linux expectスクリプトを使用してパスワードを入力する方法
- 5. PINcadを使用してNcryptokiのパスワードを入力する方法
- 6. javaを使用してセレンのアラートボックスにユーザー名とパスワードを入力する方法は?
- 7. パスワードなしsudoを使用してサーバにログインする
- 8. DotNetBrowserを使用してユーザー名とパスワードを入力する方法
- 9. AJAXと.htaccessを使用してパスワードの入力を求める方法
- 10. 検索する場所を選択した後、sudoのパスワードを入力する方法Bashスクリプト
- 11. パスワードの入力時にパスワードのヒントを変更する方法
- 12. Javaの入力として定数を入力する方法
- 13. System.Diagnostics.Processを使用してパスワードを入力する
- 14. QTCreator Line editを使用しているときにパスワード入力オプションを有効にする方法は?
- 15. pythonを使用してサーバに接続した後にsudoコマンド/パスワードを提供する方法
- 16. 入力パスワードを使用したアラートビュー
- 17. GolangプロンプトでSSH Sudoパスワードを入力する(または終了する)
- 18. jQueryを使用して入力フィールドの入力をシミュレートする方法は?
- 19. PHPのsha256ハッシュメソッドを使用しているときにユーザー入力をdbパスワードと比較する方法は?
- 20. アンモナイトシェル」でsudoを使用する方法
- 21. エスプレッソを使用してSearchViewにテキストを入力する方法
- 22. スキャナを使用してjavaで空白文字列を入力する方法
- 23. Stringオブジェクトを使用してJavaで入力をパースする方法
- 24. AngularJSを使用して入力値を保存する方法
- 25. EWS JAVA APIを使用してOWAパスワードを変更する方法は?
- 26. git pullコマンドにパスワードを入力する方法は?
- 27. Linuxのユーザーのsudoのパスワードを解除する方法は?
- 28. robot.pressKeyを使用して 'a'と入力する方法は?
- 29. bashを使ってsshパスワードを入力するには?
- 30. クローラを使用してフォームフィールドに入力する方法
これは役に立つかもしれませんが、私の場合、sudoを通して実行されるスクリプトを常に事前に知っているわけではないので、実行するスクリプトごとにsudoersファイルを設定することはできません。私はその設定をsudoersファイルで行うと仮定しています。 –
あなたは何かを動かせるようにすることができますが、それは一生懸命に聞こえます。これは、侵入されたシステムがパスワードを必要とするかどうかにかかわらず、何かを実行することを可能にします。 –