Bagaimana Anda bisa mengetahui pengguna yang saat ini login di OS X GUI?


11

Mencoba mencari tahu apakah pengguna tertentu masuk ke mesin, khususnya pengguna yang menggunakan antarmuka pengguna grafis.

Apakah ini mungkin melalui baris perintah?


1
Tunggu GUI dan baris perintah? Kedua? Atau hanya baris perintah? Saya bingung.
Jelas

@ Nano8Blazex, buat pertanyaan lebih jelas untuk Anda.
gak

: D itu bagus!
Jelas

Jawaban:


19

GUI:

  • Buka panel preferensi Akun di Preferensi Sistem . Akun pengguna yang dipilih sebelumnya akan menjadi akun pengguna aktif.
  • Jika perpindahan pengguna cepat aktif, menu tambahannya (menu di sisi kanan bilah menu) dapat dikonfigurasikan untuk menampilkan nama pengguna aktif.

Garis komando:

  • Periksa pemilik /dev/console

    stat -f '%u %Su' /dev/console
    
  • Tulis program yang menggunakan API resmi ( SCDynamicStoreCopyConsoleUser ; lihat di bawah)

Dalam program C:

Kode C dalam T&J Teknis QA1133: Menentukan status login pengguna konsol menunjukkan cara menentukan pengguna mana yang memiliki sesi GUI aktif.

Sebagai contoh:

/* 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;
}

Lihat halaman getlogin.
Itachi

stat -f '% u% Su' / dev / console bekerja dengan sempurna. Terima kasih
Akshat

7

Melalui baris perintah, whodan usersharus bekerja.


Ah, whodan cari "konsol". Terima kasih.
gak

1
@ Emerald: Menggunakan whotidak akurat pada sistem 10.4 saya ketika menggunakan beralih pengguna cepat (sistem yang saya gunakan sekarang menunjukkan pengguna lain pada "konsol" meskipun sesi GUI saya adalah yang aktif). Mungkin lebih dapat diandalkan di versi yang lebih baru.
Chris Johnsen

@JohnT: jika Anda memiliki 2 pengguna yang login (perpindahan pengguna), perintah who akan mencantumkan kedua pengguna yang terkait dengan 'konsol'. Ini tidak berfungsi dengan benar.
Akshat
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.