私はLinuxのボックスでrootで保護されたアプリケーションを起動するためのコマンドライン引数を取るJava実行可能ファイルを持っています。私たちは、単一のJava実行可能ファイルを起動するためにsudoアクセス権が与えられている別々のユーザーアカウントを持っています。ユーザーはこのファイルを使用してrootで保護されたアプリケーションを起動できます。私がsudoを理解していることは、シングルコール中にルートの役割とそれ以降のコール(Java execがアプリケーションに行う呼び出し)を想定していることです。私のアプリケーションのほとんどで動作しますが、他の人には部分的にしか動作しません。特に、起動される外部アプリケーションが正しく動作しないことがあり、ファイルを開くことができないというエラーを出力しているように見えます。実行可能ファイルをrootで実行すると、実行可能ファイルとそれに続くアプリケーションはすべて正常に動作するので、sudoを使って何かすることができます。Java Wrapper Script with sudo does not work
私が気付いていない環境やランタイムの問題をsudoが変更するかどうかは、誰かが知っているかどうかを調べることで、必要に応じて詳細を提示できます。
更新日:
設定ファイルは読み取り可能なディレクトリにあります。私がJava execが起動しようとしているバイナリをすべてアクセス可能な読み取りにしていることを確かめるために、私のテスターアカウントから、私はJava exec(w/o sudo)を起動し、アプリケーションはうまく動作します。私は、ちょうど、バイナリの根を保護します、とはsudoを使用してJava execを実行し、アプリケーションの起動に失敗し、のように私にエラーを与える:
:
そのファイルを「レコーダーedtrecorder.cfgオープンに失敗」とそのディレクトリは両方とも両方からアクセス可能です。
Javaプログラムがアクセス可能なディレクトリで読み取ろうとしているファイルはありますか? – Carlo
詳細をお知らせください。どのコマンドが動作し、どちらが動作しないのですか?具体的にどのような誤りがありますか? sudoの呼び出しは何ですか? – Gray