Der Versuch, ein Java-Programm zu schreiben, das einen UNIX-Befehl als anderer UNIX-Benutzer ausführen kann. Ich habe das Passwort des Benutzers, und ich kenne den Befehl, den ich ausführen möchte, aber der Befehl muss als dieser Benutzer ausgeführt werden - also muss ich mich zuerst als dieser Benutzer anmelden.Ausführen von UNIX-Befehlen als anderer Benutzer, von Java
Zum Beispiel: Sagen wir, wir haben einen Benutzer, Jim, der sehen will, was in bobs Home-Verzeichnis ist, und (aus welchen Gründen auch immer) jim hat Zugriff auf ls, während bob nicht tut. Wir sind derzeit als Bob angemeldet. Hier ist das, was wir (könnten) tun:
[email protected]$ su jim && ls ~bob
Problem ist, erhalten wir für Jims Passwort gefragt. Da dies von einem Java-Programm ausgeführt wird, d. H.
werden wir aufgefordert, für das Passwort von jim aufgefordert und aufgelegt. Wir kennen Jims Passwort. Ich kann es jedoch nicht eingeben.
Zusätzlich können wir kein Expect-Skript verwenden (nicht installiert haben) und wir können nicht der Superuser werden. Ich sah auch in SSH verwenden, dies zu versuchen, da wir technisch
tun konnten[email protected]$ ssh [email protected] "ls ~bob"
, aber dies wird auch nicht funktionieren, da ich keine Berechtigung zum Setup passwordless SSH.
Meine letzte Bemühung ist es, eine SSH-Bibliothek für Java zu verwenden, da das Kennwort für das Java-Programm verfügbar ist und ich mich damit anmelden (und den richtigen Befehl ausführen könnte). Aber da ich auf dem gleichen Host laufen werde, scheint es Overkill zu sein.
Irgendwelche Vorschläge?
P.S: Java Version 1.4.2, kann nicht aktualisiert werden; AIX UNIX 5.3.
konnten Sie einen Workaround finden, ohne eine Drittanbieter-Bibliothek zu verwenden, wenn ja, können Sie bitte teilen? – HyperioN