आप OS X GUI में वर्तमान में लॉग इन उपयोगकर्ता का पता कैसे लगा सकते हैं?


11

यह पता लगाने की कोशिश की जा रही है कि कोई विशेष उपयोगकर्ता मशीन में लॉग इन किया गया है, विशेष रूप से ग्राफिकल यूजर इंटरफेस का उपयोग करने वाला उपयोगकर्ता।

क्या यह कमांड लाइन के माध्यम से संभव है?


1
GUI और कमांड लाइन की प्रतीक्षा करें? दोनों? या सिर्फ कमांड लाइन? मैं उलझन में हूं।
2

@ Nano8Blazex, ने आपके लिए प्रश्न को और अधिक स्पष्ट कर दिया है।
gak

: D यह बहुत अच्छा है!
4

जवाबों:


19

जीयूआई:

  • सिस्टम प्राथमिकता में खाता प्राथमिकता फलक खोलें । पूर्व चयनित उपयोगकर्ता खाता सक्रिय उपयोगकर्ता खाता होगा।
  • यदि तेज उपयोगकर्ता स्विचिंग सक्रिय है तो इसका मेनू अतिरिक्त है (मेनू बार के दाईं ओर स्थित मेनू) सक्रिय उपयोगकर्ता का नाम दिखाने के लिए कॉन्फ़िगर किया जा सकता है।

कमांड लाइन:

  • के मालिक की जाँच करें /dev/console

    stat -f '%u %Su' /dev/console
    
  • एक प्रोग्राम लिखें जो आधिकारिक एपीआई ( SCDynamicStoreCopyConsoleUser ; नीचे देखें) का उपयोग करता है

एक सी कार्यक्रम में:

तकनीकी क्यू एंड ए QA1133 में C कोड : कंसोल उपयोगकर्ता लॉगिन स्थिति का निर्धारण दिखाता है कि यह निर्धारित करने के लिए कि कौन सा उपयोगकर्ता सक्रिय GUI सत्र का मालिक है।

उदाहरण के लिए:

/* Adapted from QA1133:
 *    http://developer.apple.com/mac/library/qa/qa2001/qa1133.html
 */
#include <assert.h>
#include <SystemConfiguration/SystemConfiguration.h>

int main(int argc, char **argv) {
    SCDynamicStoreRef store;
    CFStringRef name;
    uid_t uid;
#define BUFLEN 256
    char buf[BUFLEN];
    Boolean ok;

    store = SCDynamicStoreCreate(NULL, CFSTR("GetConsoleUser"), NULL, NULL);
    assert(store != NULL);
    name = SCDynamicStoreCopyConsoleUser(store, &uid, NULL);
    CFRelease(store);

    if (name != NULL) {
        ok = CFStringGetCString(name, buf, BUFLEN, kCFStringEncodingUTF8);
        assert(ok == true);
        CFRelease(name);
    } else {
        strcpy(buf, "<none>");
    }

    printf("%d %s\n", uid, buf);

    return 0;
}

देखें मैनपेज गेटलॉइन
इटाची

स्टेट -f '% u% Su' / dev / कंसोल पूरी तरह से काम करता है। धन्यवाद
अक्षत

7

कमांड लाइन के माध्यम से, whoऔर usersकाम करना चाहिए।


आह, whoऔर "कंसोल" की तलाश करें। धन्यवाद।
३६

1
@ गेराल्ड: whoतेज उपयोगकर्ता स्विचिंग का उपयोग करते समय मेरे 10.4 सिस्टम पर उपयोग करना सही नहीं है (अभी मैं जो सिस्टम उपयोग कर रहा हूं वह किसी अन्य उपयोगकर्ता को "कंसोल" पर दिखाता है, हालांकि मेरा जीयूआई सत्र सक्रिय है)। शायद यह नए संस्करणों में अधिक विश्वसनीय है।
क्रिस जॉन्सन

@ जॉन: यदि आपके पास 2 उपयोगकर्ता (उपयोगकर्ता स्विचिंग) हैं, तो कौन कमांड 'कंसोल' से जुड़े दोनों उपयोगकर्ताओं को सूचीबद्ध करेगा। यह सही ढंग से काम नहीं करता है।
अक्षत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.