UNIXコマンドを実行できるJavaプログラムを別のUNIXユーザーとして書き込もうとしています。私はユーザーのパスワードを持っていて、実行したいコマンドを知っていますが、そのユーザーとしてコマンドを実行する必要があります。そのユーザーとして最初にログインする必要があります。Javaの異なるユーザーとしてUNIXコマンドを実行する
たとえば、ユーザー、jim、bobのホームディレクトリにあるものを見たいと思っている人、何らかの理由でjimがlsを実行するアクセス権を持っているのに対してbobはアクセスしていないとします。 現在、bobとしてログインしています。
[email protected]$ su jim && ls ~bob
問題は、私たちはジムのパスワードの入力を求められます。これはJavaプログラムから実行されるため、つまり
Process p = Runtime.getRuntime().exec("su jim && ls ~bob");
ジムのパスワードを要求され、ハングアップします。 ジムのパスワードはです。しかし、私はそれを入力することはできません。
さらに、Expectスクリプト(インストールされていない)を使用することはできず、スーパーユーザーになれません。我々は、技術的
[email protected]$ ssh [email protected] "ls ~bob"
を行うことができますので、私はまた、これをしようとするSSHを使用してに見えたが、私はセットアップパスワードなしのSSHへのアクセス権を持っていないので、これも動作しません。
パスワードはJavaプログラムで利用可能で、ログインして適切なコマンドを実行できるので、最後にはJava用のSSHライブラリを試してみてください。しかし、私は同じホスト上で実行されるので、それは過度のようです。
提案がありますか?
P.S:Javaバージョン1.4.2ではアップグレードできません。 AIX UNIX 5.3。
サードパーティのライブラリを使用せずに回避策を見つけることができましたか? – HyperioN