क्या मैं वास्तव में उपयोगकर्ताओं को स्विच किए बिना किसी अन्य उपयोगकर्ता के रूप में एक आवेदन शुरू कर सकता हूं?


17

क्या किसी अन्य उपयोगकर्ता के रूप में एक आवेदन शुरू करने का एक तरीका है ताकि शुरू किया गया अनुप्रयोग अन्य उपयोगकर्ता की वरीयताओं / इतिहास / संसाधनों और अन्य वस्तुओं का उपयोग करे?

उदाहरण के लिए: मैंने एलिस के रूप में लॉग इन किया है और मैं फ़ायरफ़ॉक्स को बॉब के रूप में शुरू करना चाहूंगा, इसलिए फ़ायरफ़ॉक्स एलिस के बजाय बॉब के ब्राउज़िंग इतिहास को दिखाएगा।

मैंने कोशिश की

$ su Bob
$ open -a Firefox

लेकिन कोई स्पष्ट प्रभाव के साथ; एक तथ्य के रूप में गतिविधि की निगरानी से पता चलता है कि फ़ायरफ़ॉक्स प्रक्रिया ऐलिस द्वारा संचालित हो रही है - बॉब नहीं।

मैं समझता हूं कि मुझे बॉब के लॉगिन क्रेडेंशियल की आवश्यकता होगी, लेकिन यह कोई समस्या नहीं है।

जवाबों:


16

कमांड लाइन से आपको यूनिक्स निष्पादन योग्य ढूंढना है और इसे sudo जैसे प्रयोग करके चलाना है :

$ sudo -u Bob /Applications/Firefox.app/Contents/MacOS/Firefox 

… या सु के साथ समान: (हालांकि इसके लिए आपको रूट के लिए एक पासवर्ड सेट करने की आवश्यकता है - जिसकी मैं अनुशंसा नहीं करता हूं)

$ su Bob
$ /Applications/Firefox.app/Contents/MacOS/Firefox

(… या एक पंक्ति में ऊपर :)

$ su Bob -c /Applications/Firefox.app/Contents/MacOS/Firefox

अतीत में, पीपीसी मैक के लिए सबसे आसान तरीका छद्म का उपयोग करना था , लेकिन इसे लंबे समय से बंद कर दिया गया है । यह Pseudo के आइकन या विंडो पर एप्लिकेशन आइकन को ड्रॉप करना है।


आह, कुंजी यूनिक्स को निष्पादित करने योग्य थी। यह काम करता है suअगर कोई नहीं करना चाहता है sudo। धन्यवाद!
जरी कीनानलेन

हम्म, जब Google Chrome चलाने की कोशिश कर रहा हूं तो मुझे यह मिलता है:Trace/BPT trap: 5
Wojciech Bednarski

sudoदृष्टिकोण का उपयोग करते समय मुझे लॉगिन विफलता मिलती है भले ही मैं दूसरे उपयोगकर्ता के लिए सही पासवर्ड का उपयोग करता हूं। suदूसरी ओर काम करता है (रूट सेट के लिए कोई पासवर्ड नहीं)
लैपलैंड्सोहन

@lapplandscohan sudo वर्तमान उपयोगकर्ता का पासवर्ड लेता है
user151019

1
@ evan.bovie YTes से पता चलता है कि उन्होंने सुरक्षा के बारे में सोचा है
user151019

4

सभी अनुप्रयोगों के लिए काम क्यों नहीं करता है, इसके लिए /apple//a/102105/1860 देखें su

लॉन्च का bsexec

हाल के संस्करणों में launchdकिसी अन्य उपयोगकर्ता के सत्र के भीतर लॉन्च एप्लिकेशन की क्षमता है; हालांकि Apple इंजीनियरों ने इसके सामान्य उपयोग की सिफारिश नहीं की है।

उपयुक्त उपयोगकर्ता सत्र को लक्षित करने के लिए लॉन्चरbsexec में विकल्प का उपयोग करें :

 bslist [PID | ..] [-j]
          This prints out Mach bootstrap services and their respective states. While the namespace
          appears flat, it is in fact hierarchical, thus allowing for certain services to be only avail-
          able to a subset of processes. The three states a service can be in are active ("A"), inactive
          ("I") and on-demand ("D").

          If [PID] is specified, print the Mach bootstrap services available to that PID. If [..] is
          specified, print the Mach bootstrap services available in the parent of the current bootstrap.
          Note that in Mac OS X v10.6, the per-user Mach bootstrap namespace is flat, so you will only
          see a different set of services in a per-user bootstrap if you are in an explicitly-created
          bootstrap subset.

          If [-j] is specified, each service name will be followed by the name of the job which regis-
          tered it.

 bsexec PID command [args]
          This executes the given command in the same Mach bootstrap namespace hierachy as the given
          PID.

 bstree [-j]
          This prints a hierarchical view of the entire Mach bootstrap tree. If [-j] is specified, each
          service name will be followed by the name of the job which registered it.  Requires root priv-
          ileges.

अनुशंसित दृष्टिकोण एक लॉन्च जॉब टिकट लिखना और मैक को पुनरारंभ करना है - या उपयोगकर्ता को लॉग-आउट करने और फिर से वापस करने के लिए कहें।



0

आपको ssh करने की आवश्यकता है। Ie ssh username@123.456.00। जैसा कि आपने कहा, आपको उपयोगकर्ता के लिए पासवर्ड की आवश्यकता होगी। फिर आप वही कर सकते हैं जो आप पूछ रहे हैं। आपको सिस्टम प्रीफ़ेट्स> शेयरिंग के तहत रिमोट लॉगिन को सक्षम करना होगा:
रिमोट लॉगिन वरीयता
फिर, आप बस कर सकते हैं open -a Firefoxऔर फ़ायरफ़ॉक्स दूसरे उपयोगकर्ता के रूप में खुल जाएगा, न कि आपका।


दुर्भाग्य से मुझे मिलता है: LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.जब कोशिश कर रहा है open -a Firefox: - |
जरी Keinänen

@koiyu कोशिशsudo open -na Firefox
daviesgeek

यह ऊपर के रूप में विफल रहता है: - / (यूनिक्स एक्जीक्यूटेबल के लिए पथ का उपयोग करके भी, अलग-अलग तरीके से।)
जरी कीनानलेन

1
SSH सत्र से शुरू की गई प्रक्रियाओं की GUI तक पहुँच नहीं है। यदि यह आपके सिस्टम पर काम करता है, तो मुझे संदेह है कि आपने कुछ बिंदु पर निम्न-स्तरीय कॉन्फ़िगरेशन को बदल दिया है।
तोबियास

1
@daviesgeek लेकिन क्या आपने SSH में वर्तमान में GUI वाले व्यक्ति के अलावा किसी अन्य व्यक्ति को SSH किया था, जैसा कि ओपी चाहता था।
तोबियास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.