Essayer de savoir si un utilisateur particulier est connecté à la machine, en particulier l'utilisateur à l' aide de l'interface utilisateur graphique.
Est-ce possible via la ligne de commande?
Essayer de savoir si un utilisateur particulier est connecté à la machine, en particulier l'utilisateur à l' aide de l'interface utilisateur graphique.
Est-ce possible via la ligne de commande?
Réponses:
GUI:
Ligne de commande:
Vérifiez le propriétaire de /dev/console
stat -f '%u %Su' /dev/console
Dans un programme C:
Le code C dans Q&A technique QA1133: Déterminer l'état de connexion de l'utilisateur de la console montre comment déterminer quel utilisateur possède la session GUI active.
Par exemple:
/* 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;
}
Via la ligne de commande, who
et users
devrait fonctionner.
who
et cherchez "console". Merci.
who
n'est pas précise sur mon système 10.4 lors de l'utilisation d'un changement rapide d'utilisateur (le système que j'utilise actuellement montre un autre utilisateur sur "console" même si ma session GUI est la plus active). Peut-être qu'il est plus fiable dans les versions plus récentes.