मैं यह जानने की कोशिश कर रहा हूं कि GUI एप्लिकेशन को किसी अन्य उपयोगकर्ता के रूप में कैसे लॉन्च किया जाए, जो उस उपयोगकर्ता के ग्राफिकल सत्र में अंतःक्रियात्मक रूप से लॉग इन हो।
उदाहरण के लिए, मान लें कि मेरे दो उपयोगकर्ता हैं, फू और बार। दोनों में लॉग इन किया जाता है, लेकिन वर्तमान इंटरैक्टिव उपयोगकर्ता foo है। मैं उपयोगकर्ता "बार" के रूप में कैलक्यूलेटर लॉन्च करना चाहता हूं, ताकि जब मैं उपयोगकर्ता को बार में स्विच करूं, तो मुझे लगता है कि बार के सत्र में कैलकुलेटर विंडो खुली है।
यहाँ मैंने कोशिश की है कि काम न करे:
sudo -u bar /Applications/Calculator.app/Contents/MacOS/Calculator
यह कैलक्यूलेटर.app को बार के रूप में लॉन्च करता है, लेकिन विंडो फू के ग्राफिकल सत्र में खुलती है।
sudo -u bar osascript -e "tell application \"Calculator\" to activate"
एक ही प्रभाव।
sudo -u bar open "/Applications/Calculator.app"
कैलकुलेटर को फू के रूप में लॉन्च करता है, बार में नहीं।
launchctl asuser [uid of bar] [any of the above commands]
एक ही प्रभाव।
क्या इसे पूरा करने का कोई रास्ता है? मैं संभावित समाधान के सभी तरीकों का मनोरंजन करने के लिए तैयार हूं, जिसमें बैश स्क्रिप्टिंग, AppleScript, कोर फाउंडेशन या कोको प्रोग्राम लिखना, और इसी तरह शामिल हैं। मेरी स्थिति में, कोई भी प्रोग्राम या स्क्रिप्ट रूट सहित किसी भी उपयोगकर्ता के रूप में निष्पादित हो सकता है।
नोट: मुझे पता है कि यह दूरस्थ Apple ईवेंट्स का उपयोग करना संभव है, लेकिन मैं इसका उपयोग नहीं कर सकता क्योंकि जिस स्थिति में मैं यह करने की कोशिश कर रहा हूं, मुझे इसकी कोई गारंटी नहीं है कि "दूरस्थ Apple ईवेंट्स" साझाकरण प्राथमिकताओं में सक्षम होंगे।
किसी भी तरह की सहायता का स्वागत किया जाएगा!
open
कमांड का उपयोग करके कोशिश कीSSH
?