से अलग उपयोगकर्ता के रूप में यूनिक्स कमांड चला रहा है, एक यूनिक्स कमांड को एक अलग यूनिक्स उपयोगकर्ता के रूप में चलाने में सक्षम जावा प्रोग्राम लिखने का प्रयास कर रहा है। मेरे पास उपयोगकर्ता का पासवर्ड है, और मुझे वह आदेश पता है जिसे मैं चलाने के लिए चाहता हूं, लेकिन कमांड को उस उपयोगकर्ता के रूप में चलाने के लिए है - इसलिए मुझे पहले उस उपयोगकर्ता के रूप में लॉगिन करना होगा।जावा
उदाहरण के लिए: कहें कि हमारे पास एक उपयोगकर्ता है, जिम, जो बॉब की होम निर्देशिका में क्या देखना चाहता है, और (किसी भी कारण से) जिम के पास एलएस निष्पादित करने की पहुंच है जबकि बॉब नहीं है। हम वर्तमान में बॉब के रूप में लॉग इन हैं। यहां हम क्या कर सकते हैं:
[email protected]$ su jim && ls ~bob
समस्या यह है कि हमें जिम के पासवर्ड के लिए संकेत मिलता है। इस के बाद से, एक जावा प्रोग्राम से चलाया जाता है अर्थात
Process p = Runtime.getRuntime().exec("su jim && ls ~bob");
हम जिम की पासवर्ड के लिए संकेत और काट दिया मिलता है। हम जिम के पासवर्ड जानते हैं। हालांकि, मैं इसे दर्ज नहीं कर सकता।
इसके अतिरिक्त, हम एक अपेक्षित स्क्रिप्ट का उपयोग नहीं कर सकते हैं (इसे इंस्टॉल नहीं किया है) और हम सुपरसियर नहीं बन सकते हैं। मैं भी SSH का उपयोग कर इस प्रयास करने के लिए में देखा, क्योंकि हम तकनीकी रूप से
[email protected]$ ssh [email protected] "ls ~bob"
कर सकता है, लेकिन यह भी के बाद से मैं सेटअप passwordless SSH करने के लिए अनुमति नहीं है काम नहीं करता।
मेरा आखिरी प्रयास प्रयास जावा के लिए एक एसएसएच लाइब्रेरी का प्रयास और उपयोग करना है, क्योंकि पासवर्ड जावा प्रोग्राम के लिए उपलब्ध है और मैं इसके साथ लॉगिन करने में सक्षम हूं (और उचित आदेश निष्पादित करता हूं)। लेकिन चूंकि मैं एक ही मेजबान पर दौड़ने जा रहा हूं, ऐसा लगता है कि यह अधिक है।
कोई सुझाव?
पीएस: जावा संस्करण 1.4.2, अपग्रेड नहीं कर सकता; ऐक्स यूनिक्स 5.3।
क्या आप किसी तृतीय पक्ष लाइब्रेरी का उपयोग किए बिना वर्कअराउंड ढूंढने में सक्षम थे, यदि आप कृपया साझा कर सकते हैं? – HyperioN