Java で Sudo 権限を使用して Bash コマンドを実行するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-25 00:49:30
オリジナル
913 人が閲覧しました

How to Execute Bash Commands with Sudo Privileges in Java?

Java で Sudo 権限を使用して Bash コマンドを実行する

bash コマンドを使用する場合、次のように特定のコマンドを実行する必要がある状況が発生することがあります。スーパーユーザー。 Java の ProcessBuilder クラスは、bash コマンドを実行する便利な方法を提供しますが、デフォルトではスーパーユーザー権限を渡すことはできません。

ProcessBuilder を使用して sudo 権限でコマンドを実行するには、次のアプローチを採用できます (注意してください)セキュリティへの影響):

<br>import java.io.*;</p>
<p>public class Main {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">public static void main(String[] args) throws IOException {
    // Prepare the command with "sudo" and the desired command
    String[] cmd = {"/bin/bash", "-c", "echo password| sudo -S ls"};

    // Execute the command using Runtime.getRuntime().exec()
    Process pb = Runtime.getRuntime().exec(cmd);

    // Process the output and print the result
    BufferedReader input = new BufferedReader(new InputStreamReader(pb.getInputStream()));
    String line;
    while ((line = input.readLine()) != null) {
        System.out.println(line);
    }
    input.close();
}
ログイン後にコピー

}

このアプローチでは、「sudo」コマンドを「-S」オプションと一緒に使用し、標準入力経由でパスワードを入力できるようにします。次に、パスワードは「ls」コマンドにパイプされ、昇格された特権で実行されます。

注: この方法では、コマンド ラインからパスワードを入力する必要があるため、潜在的なセキュリティ リスクが発生します。 。必要な場合にのみ、注意して使用してください。状況によっては、専用のコマンドライン ツールや sudo をサポートする Java ライブラリを使用するなどの代替アプローチの方が適切な場合があります。

以上がJava で Sudo 権限を使用して Bash コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!